{
  "patch_test_started": true,
  "errors": [],
  "original_response_received": true,
  "gcm_section_added": true,
  "logs": [
    "GCM Test: Patch is applied, calling get_configuration...",
    "GCM Patch: === STARTING PATCH EXECUTION ===",
    "GCM Patch: Calling original get_configuration...",
    "GCM Patch: Original method returned: type=_Response",
    "GCM Patch: Response status: 200",
    "GCM Patch: cmp.gcm.enabled raw='True' parsed=True",
    "GCM Patch: Starting JSON parsing...",
    "GCM Patch: Response object attributes: ['__annotations__', '__call__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_clean_status', '_ensure_sequence', '_is_range_request_processable', '_process_range_request', '_wrap_range_response', '_wrapped__', 'accept_ranges', 'access_control_allow_credentials', 'access_control_allow_headers', 'access_control_allow_methods', 'access_control_allow_origin', 'access_control_expose_headers', 'access_control_max_age', 'add_etag', 'age', 'allow', 'autocorrect_location_header', 'automatically_set_content_length', 'cache_control', 'calculate_content_length', 'call_on_close', 'charset', 'close', 'content_encoding', 'content_language', 'content_length', 'content_location', 'content_md5', 'content_range', 'content_security_policy', 'content_security_policy_report_only', 'content_type', 'cross_origin_embedder_policy', 'cross_origin_opener_policy', 'data', 'date', 'default_mimetype', 'default_status', 'delete_cookie', 'expires', 'flatten', 'force_type', 'freeze', 'from_app', 'get_app_iter', 'get_data', 'get_etag', 'get_json', 'get_wsgi_headers', 'get_wsgi_response', 'implicit_sequence_conversion', 'is_json', 'is_qweb', 'is_sequence', 'is_streamed', 'iter_encoded', 'json', 'json_module', 'last_modified', 'load', 'location', 'make_conditional', 'make_sequence', 'max_cookie_size', 'mimetype', 'mimetype_params', 'render', 'retry_after', 'set_cookie', 'set_data', 'set_default', 'set_etag', 'status', 'status_code', 'stream', 'vary', 'www_authenticate']",
    "GCM Patch: Trying response.get_data() method...",
    "GCM Patch: Successfully extracted data via get_data(), length: 6060",
    "GCM Patch: Successfully extracted raw data from response.get_data(), length: 6060",
    "GCM Patch: Raw data preview: {\"categories\": [{\"id\": 1, \"technical_key\": \"strictly_necessary\", \"name\": \"Strictly Necessary\", \"description\": \"These cookies are essential for the website to function properly. They are usually only s...",
    "GCM Patch: Successfully parsed JSON. Keys: categories,consentLifespanDays,debugLoggingEnabled,declarations,demoModeEnabled,error,policyUrl,publishedPolicyId,publishedPolicyRequiresReconsent,showErrorNotifications,showSuccessNotifications,visitorUUID,websiteCurrencyCode",
    "GCM Patch: Starting GCM section building...",
    "GCM Patch: wait_for_update parameter: '500'",
    "GCM Patch: Calling helper functions...",
    "GCM Helper: _gcm_determine_user_region() called",
    "GCM Helper: request.geoip exists: True, type: GeoIP",
    "GCM Helper: GeoIP country code: US",
    "GCM Helper: Found country: United States (ID: 233)",
    "GCM Helper: EU group reference found: True",
    "GCM Helper: Using country code region: US",
    "GCM Helper: Final user region: US",
    "GCM Patch: User region determined: US",
    "GCM Helper: _gcm_get_regional_defaults() called",
    "GCM Helper: Region config model has 4 records",
    "GCM Patch: Regional defaults retrieved: 4 keys",
    "GCM Helper: _gcm_get_category_mappings() called",
    "GCM Helper: Base domain: [('is_active', '=', True)]",
    "GCM Helper: Website context found (ID: 1), domain: [('is_active', '=', True), '|', ('website_id', '=', False), ('website_id', '=', 1)]",
    "GCM Helper: Found 4 categories matching domain",
    "GCM Helper: Processing category: strictly_necessary (ID: 1)",
    "GCM Helper: Category 'strictly_necessary' mappings: {'ad_storage': False, 'analytics_storage': False, 'ad_user_data': False, 'ad_personalization': False}",
    "GCM Config: Category 'strictly_necessary' has no GCM mappings enabled.",
    "GCM Helper: Processing category: preferences (ID: 2)",
    "GCM Helper: Category 'preferences' mappings: {'ad_storage': False, 'analytics_storage': False, 'ad_user_data': False, 'ad_personalization': False}",
    "GCM Config: Category 'preferences' has no GCM mappings enabled.",
    "GCM Helper: Processing category: analytics (ID: 3)",
    "GCM Helper: Category 'analytics' mappings: {'ad_storage': False, 'analytics_storage': True, 'ad_user_data': False, 'ad_personalization': False}",
    "GCM Helper: Added mapping for category: analytics",
    "GCM Helper: Processing category: marketing (ID: 4)",
    "GCM Helper: Category 'marketing' mappings: {'ad_storage': True, 'analytics_storage': False, 'ad_user_data': True, 'ad_personalization': True}",
    "GCM Helper: Added mapping for category: marketing",
    "GCM Helper: Final mappings: 2 categories",
    "GCM Patch: Category mappings retrieved: 2 keys",
    "GCM Patch: GCM section built successfully",
    "GCM Patch: GCM section added to original data. New keys: categories,consentLifespanDays,debugLoggingEnabled,declarations,demoModeEnabled,error,gcm,policyUrl,publishedPolicyId,publishedPolicyRequiresReconsent,showErrorNotifications,showSuccessNotifications,visitorUUID,websiteCurrencyCode",
    "GCM Patch: GCM Details - enabled=True wait=500 region=US defaults_keys=DEFAULT,GB,GROUP:base.europe,US-CA mappings_keys=analytics,marketing",
    "GCM Patch: Creating updated response...",
    "GCM Patch: JSON serialization successful, length: 6907",
    "GCM Patch: Updated Response object created successfully",
    "GCM Patch: Copied headers from original response",
    "GCM Patch: === PATCH EXECUTION COMPLETED SUCCESSFULLY ===",
    ""
  ],
  "patch_applied": true,
  "response_keys": [
    "categories",
    "declarations",
    "policyUrl",
    "consentLifespanDays",
    "publishedPolicyId",
    "publishedPolicyRequiresReconsent",
    "visitorUUID",
    "websiteCurrencyCode",
    "debugLoggingEnabled",
    "demoModeEnabled",
    "showSuccessNotifications",
    "showErrorNotifications",
    "error",
    "gcm"
  ],
  "gcm_details": {
    "enabled": true,
    "waitForUpdate": 500,
    "userRegion": "US",
    "regionalDefaults": {
      "GROUP:base.europe": {
        "ad_storage": "denied",
        "analytics_storage": "denied",
        "ad_user_data": "denied",
        "ad_personalization": "denied"
      },
      "GB": {
        "ad_storage": "denied",
        "analytics_storage": "denied",
        "ad_user_data": "denied",
        "ad_personalization": "denied"
      },
      "US-CA": {
        "ad_storage": "denied",
        "analytics_storage": "denied",
        "ad_user_data": "denied",
        "ad_personalization": "denied"
      },
      "DEFAULT": {
        "ad_storage": "denied",
        "analytics_storage": "denied",
        "ad_user_data": "denied",
        "ad_personalization": "denied"
      }
    },
    "categoryMappings": {
      "analytics": {
        "ad_storage": false,
        "analytics_storage": true,
        "ad_user_data": false,
        "ad_personalization": false
      },
      "marketing": {
        "ad_storage": true,
        "analytics_storage": false,
        "ad_user_data": true,
        "ad_personalization": true
      }
    }
  }
}