Загрузка данных


Act as an expert in telecom protocol analysis and Wireshark Lua plugin development. 

### Context:
I am analyzing 3G/UMTS network traffic on the Iu-CS interface using Wireshark. In RANAP messages (like Initial UE Message or Direct Transfer), there is an ASN.1 coded element containing the Mobile Station Classmark 3 (wrapped inside an OCTET STRING container). 

### The Problem:
1. In standard 2G BSSAP traces, Wireshark natively and beautifully dissects all bit-level fields of "Classmark Information Type 3" (using the internal `gsm_a_gm` or `gsm_a_dtap` dissector handle) because it is tied to the A-interface parser.
2. In 3G RANAP traces, however, Wireshark only shows the raw hex bytes of this element (for example: `601404e291810f120250`) inside the `ranap.classmarkInformation3` field. It does NOT automatically trigger the GSM NAS layer sub-dissector to decode it.
3. Standard "Decode As..." from the Wireshark GUI is unavailable or locked for this specific internal ASN.1 RANAP field.
4. Attempting to use a standard Lua listener via `Field.new("ranap.classmarkInformation3")` throws a runtime error during Wireshark startup: "bad argument #1 to 'new' (Field_new: a field with this name must exist)". This happens because Lua plugins are initialized before the RANAP protocol's ASN.1 fields are fully registered in Wireshark's memory.

### What I Want to Achieve:
I need a robust, production-grade Wireshark Lua script (either a dynamic Postdissector or a safely deferred Packet Tap/Listener) that:
1. Automatically detects whenever a RANAP packet contains the Classmark 3 element.
2. Avoids any "field not found" compilation or loading errors during Wireshark startup by properly deferring the field lookup (e.g., inside the execution loop or using `Proto` fields post-initialization).
3. Extracts the exact `TvbRange` (offset and dynamic length) of the Classmark 3 payload for ANY mobile device (the hex values and length will vary across different devices, so hardcoded byte patterns like matching `60 14` via string hooks cannot be used).
4. Forwards this dynamic payload straight into the native Wireshark GSM layer-3 parser (`gsm_a_gm`), so that the detailed bit-level tree of Classmark 3 features (A5 ciphers, EDGE Multi-slot classes, UMTS FDD capabilities, MS positioning, etc.) appears at the bottom of the packet dissection pane for every RANAP message.

Please write the complete, clean, and error-free Lua script code to solve this. Explain where to put it and how to reload it.