[Swfdec] 9 commits - libswfdec/swfdec_as_function.c libswfdec/swfdec_as_initialize.as libswfdec/swfdec_as_initialize.h libswfdec/swfdec_as_object.c libswfdec/swfdec_as_strings.c libswfdec/swfdec_player_as.c test/trace

Pekka Lampila medar at kemper.freedesktop.org
Wed Sep 12 12:46:55 PDT 2007


 libswfdec/swfdec_as_function.c              |   11 
 libswfdec/swfdec_as_initialize.as           |    4 
 libswfdec/swfdec_as_initialize.h            |  311 ++++++++++++++--------------
 libswfdec/swfdec_as_object.c                |   73 ++++--
 libswfdec/swfdec_as_strings.c               |    1 
 libswfdec/swfdec_player_as.c                |   15 +
 test/trace/Makefile.am                      |   14 +
 test/trace/assetnative-5.swf                |binary
 test/trace/assetnative-5.swf.trace          |   28 ++
 test/trace/assetnative-6.swf                |binary
 test/trace/assetnative-6.swf.trace          |   40 +++
 test/trace/assetnative-7.swf                |binary
 test/trace/assetnative-7.swf.trace          |   39 +++
 test/trace/assetnative.as                   |   17 +
 test/trace/object-isprototypeof-5.swf       |binary
 test/trace/object-isprototypeof-5.swf.trace |  154 +++++++++++++
 test/trace/object-isprototypeof-6.swf       |binary
 test/trace/object-isprototypeof-6.swf.trace |  155 +++++++++++++
 test/trace/object-isprototypeof-7.swf       |binary
 test/trace/object-isprototypeof-7.swf.trace |  155 +++++++++++++
 test/trace/object-isprototypeof.as          |   39 +++
 test/trace/values.as                        |   10 
 22 files changed, 880 insertions(+), 186 deletions(-)

New commits:
diff-tree 03eac76520edd164d555bbf7c050752f84179d82 (from 0b03c9ee20bed5b6ef2089e706655f1382c1b535)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Sep 12 22:44:29 2007 +0300

    Fix a problem with watch when unwatched inside the watching function

diff --git a/libswfdec/swfdec_as_object.c b/libswfdec/swfdec_as_object.c
index e7086e6..db4119a 100644
--- a/libswfdec/swfdec_as_object.c
+++ b/libswfdec/swfdec_as_object.c
@@ -293,6 +293,7 @@ swfdec_as_object_do_set (SwfdecAsObject 
     const SwfdecAsValue *val, guint flags)
 {
   SwfdecAsVariable *var;
+  SwfdecAsWatch *watch;
 
   if (!swfdec_as_variable_name_is_valid (variable))
     return;
@@ -335,7 +336,7 @@ swfdec_as_object_do_set (SwfdecAsObject 
   }
   if (object->watches) {
     SwfdecAsValue ret = *val;
-    SwfdecAsWatch *watch = g_hash_table_lookup (object->watches, variable);
+    watch = g_hash_table_lookup (object->watches, variable);
     /* FIXME: figure out if this limit here is correct. Add a watch in Flash 7 
      * and set a variable using Flash 6 */
     if (watch && swfdec_as_watch_can_recurse (watch)) {
@@ -354,6 +355,8 @@ swfdec_as_object_do_set (SwfdecAsObject 
     }
 
     var->value = ret;
+  } else {
+    watch = NULL;
   }
   if (var->get) {
     if (var->set) {
@@ -361,7 +364,7 @@ swfdec_as_object_do_set (SwfdecAsObject 
       swfdec_as_function_call (var->set, object, 1, val, &tmp);
       swfdec_as_context_run (object->context);
     }
-  } else if (!object->watches) {
+  } else if (watch == NULL) {
     var->value = *val;
   }
   if (variable == SWFDEC_AS_STR___proto__) {
diff-tree 0b03c9ee20bed5b6ef2089e706655f1382c1b535 (from 421999f93c864a84497d9a37496c3788c966cadb)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Sep 12 22:15:07 2007 +0300

    Initialize Function's methods in swfdec_as_initialize.as

diff --git a/libswfdec/swfdec_as_function.c b/libswfdec/swfdec_as_function.c
index c8f4fbe..2bf731e 100644
--- a/libswfdec/swfdec_as_function.c
+++ b/libswfdec/swfdec_as_function.c
@@ -147,7 +147,8 @@ swfdec_as_function_call (SwfdecAsFunctio
 
 /*** AS CODE ***/
 
-static void
+SWFDEC_AS_NATIVE (101, 10, swfdec_as_function_do_call)
+void
 swfdec_as_function_do_call (SwfdecAsContext *context, SwfdecAsObject *fun,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
 {
@@ -166,7 +167,8 @@ swfdec_as_function_do_call (SwfdecAsCont
   swfdec_as_context_run (context);
 }
 
-static void
+SWFDEC_AS_NATIVE (101, 11, swfdec_as_function_apply)
+void
 swfdec_as_function_apply (SwfdecAsContext *cx, SwfdecAsObject *fun,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
 {
@@ -250,11 +252,6 @@ swfdec_as_function_init_context (SwfdecA
     SWFDEC_AS_VALUE_SET_OBJECT (&val, function);
     swfdec_as_object_set_variable_and_flags (proto, SWFDEC_AS_STR_constructor,
 	&val, SWFDEC_AS_VARIABLE_HIDDEN | SWFDEC_AS_VARIABLE_PERMANENT);
-    /* prototype functions */
-    swfdec_as_object_add_function (proto, SWFDEC_AS_STR_call,
-	SWFDEC_TYPE_AS_FUNCTION, swfdec_as_function_do_call, 0);
-    swfdec_as_object_add_function (proto, SWFDEC_AS_STR_apply,
-	SWFDEC_TYPE_AS_FUNCTION, swfdec_as_function_apply, 0);
   }
 }
 
diff --git a/libswfdec/swfdec_as_initialize.as b/libswfdec/swfdec_as_initialize.as
index d5321df..ddd1394 100644
--- a/libswfdec/swfdec_as_initialize.as
+++ b/libswfdec/swfdec_as_initialize.as
@@ -24,6 +24,9 @@ ASSetNativeAccessor = ASnative (4, 1);
 
 /*** BASE OBJECTS ***/
 
+ASSetNative (Function.prototype, 101, "6call,6apply", 10);
+ASSetPropFlags(o, null, 3);
+
 ASSetNative(Object.prototype, 101, "6watch,6unwatch,6addProperty,valueOf,toString,6hasOwnProperty,6isPrototypeOf,6isPropertyEnumerable");
 Object.prototype.toLocaleString = function () {
   return this.toString ();
diff --git a/libswfdec/swfdec_as_initialize.h b/libswfdec/swfdec_as_initialize.h
index 82b1a36..77a8d0c 100644
--- a/libswfdec/swfdec_as_initialize.h
+++ b/libswfdec/swfdec_as_initialize.h
@@ -2,163 +2,168 @@
 
 /* compiled from swfdec_as_initialize.as */
 const unsigned char swfdec_as_initialize[] = {
-  0x88, 0xCF, 0x04, 0x33,  0x00, 0x41, 0x53, 0x53,  0x65, 0x74, 0x4E, 0x61,  0x74, 0x69, 0x76, 0x65,
+  0x88, 0xE7, 0x04, 0x36,  0x00, 0x41, 0x53, 0x53,  0x65, 0x74, 0x4E, 0x61,  0x74, 0x69, 0x76, 0x65,
   0x00, 0x41, 0x53, 0x6E,  0x61, 0x74, 0x69, 0x76,  0x65, 0x00, 0x41, 0x53,  0x53, 0x65, 0x74, 0x4E,
-  0x61, 0x74, 0x69, 0x76,  0x65, 0x41, 0x63, 0x63,  0x65, 0x73, 0x73, 0x6F,  0x72, 0x00, 0x4F, 0x62,
-  0x6A, 0x65, 0x63, 0x74,  0x00, 0x70, 0x72, 0x6F,  0x74, 0x6F, 0x74, 0x79,  0x70, 0x65, 0x00, 0x36,
-  0x77, 0x61, 0x74, 0x63,  0x68, 0x2C, 0x36, 0x75,  0x6E, 0x77, 0x61, 0x74,  0x63, 0x68, 0x2C, 0x36,
-  0x61, 0x64, 0x64, 0x50,  0x72, 0x6F, 0x70, 0x65,  0x72, 0x74, 0x79, 0x2C,  0x76, 0x61, 0x6C, 0x75,
-  0x65, 0x4F, 0x66, 0x2C,  0x74, 0x6F, 0x53, 0x74,  0x72, 0x69, 0x6E, 0x67,  0x2C, 0x36, 0x68, 0x61,
-  0x73, 0x4F, 0x77, 0x6E,  0x50, 0x72, 0x6F, 0x70,  0x65, 0x72, 0x74, 0x79,  0x2C, 0x36, 0x69, 0x73,
-  0x50, 0x72, 0x6F, 0x74,  0x6F, 0x74, 0x79, 0x70,  0x65, 0x4F, 0x66, 0x2C,  0x36, 0x69, 0x73, 0x50,
-  0x72, 0x6F, 0x70, 0x65,  0x72, 0x74, 0x79, 0x45,  0x6E, 0x75, 0x6D, 0x65,  0x72, 0x61, 0x62, 0x6C,
-  0x65, 0x00, 0x74, 0x6F,  0x4C, 0x6F, 0x63, 0x61,  0x6C, 0x65, 0x53, 0x74,  0x72, 0x69, 0x6E, 0x67,
-  0x00, 0x74, 0x68, 0x69,  0x73, 0x00, 0x74, 0x6F,  0x53, 0x74, 0x72, 0x69,  0x6E, 0x67, 0x00, 0x41,
-  0x53, 0x53, 0x65, 0x74,  0x50, 0x72, 0x6F, 0x70,  0x46, 0x6C, 0x61, 0x67,  0x73, 0x00, 0x42, 0x6F,
-  0x6F, 0x6C, 0x65, 0x61,  0x6E, 0x00, 0x41, 0x53,  0x63, 0x6F, 0x6E, 0x73,  0x74, 0x72, 0x75, 0x63,
-  0x74, 0x6F, 0x72, 0x00,  0x76, 0x61, 0x6C, 0x75,  0x65, 0x4F, 0x66, 0x2C,  0x74, 0x6F, 0x53, 0x74,
-  0x72, 0x69, 0x6E, 0x67,  0x00, 0x4E, 0x75, 0x6D,  0x62, 0x65, 0x72, 0x00,  0x4E, 0x61, 0x4E, 0x00,
-  0x50, 0x4F, 0x53, 0x49,  0x54, 0x49, 0x56, 0x45,  0x5F, 0x49, 0x4E, 0x46,  0x49, 0x4E, 0x49, 0x54,
-  0x59, 0x00, 0x49, 0x6E,  0x66, 0x69, 0x6E, 0x69,  0x74, 0x79, 0x00, 0x4E,  0x45, 0x47, 0x41, 0x54,
-  0x49, 0x56, 0x45, 0x5F,  0x49, 0x4E, 0x46, 0x49,  0x4E, 0x49, 0x54, 0x59,  0x00, 0x4D, 0x49, 0x4E,
-  0x5F, 0x56, 0x41, 0x4C,  0x55, 0x45, 0x00, 0x4D,  0x41, 0x58, 0x5F, 0x56,  0x41, 0x4C, 0x55, 0x45,
-  0x00, 0x53, 0x74, 0x72,  0x69, 0x6E, 0x67, 0x00,  0x76, 0x61, 0x6C, 0x75,  0x65, 0x4F, 0x66, 0x2C,
-  0x74, 0x6F, 0x53, 0x74,  0x72, 0x69, 0x6E, 0x67,  0x2C, 0x74, 0x6F, 0x55,  0x70, 0x70, 0x65, 0x72,
-  0x43, 0x61, 0x73, 0x65,  0x2C, 0x74, 0x6F, 0x4C,  0x6F, 0x77, 0x65, 0x72,  0x43, 0x61, 0x73, 0x65,
-  0x2C, 0x63, 0x68, 0x61,  0x72, 0x41, 0x74, 0x2C,  0x63, 0x68, 0x61, 0x72,  0x43, 0x6F, 0x64, 0x65,
-  0x41, 0x74, 0x2C, 0x63,  0x6F, 0x6E, 0x63, 0x61,  0x74, 0x2C, 0x69, 0x6E,  0x64, 0x65, 0x78, 0x4F,
-  0x66, 0x2C, 0x6C, 0x61,  0x73, 0x74, 0x49, 0x6E,  0x64, 0x65, 0x78, 0x4F,  0x66, 0x2C, 0x73, 0x6C,
-  0x69, 0x63, 0x65, 0x2C,  0x73, 0x75, 0x62, 0x73,  0x74, 0x72, 0x69, 0x6E,  0x67, 0x2C, 0x73, 0x70,
-  0x6C, 0x69, 0x74, 0x2C,  0x73, 0x75, 0x62, 0x73,  0x74, 0x72, 0x00, 0x66,  0x72, 0x6F, 0x6D, 0x43,
-  0x68, 0x61, 0x72, 0x43,  0x6F, 0x64, 0x65, 0x00,  0x4D, 0x61, 0x74, 0x68,  0x00, 0x45, 0x00, 0x4C,
-  0x4E, 0x31, 0x30, 0x00,  0x4C, 0x4E, 0x32, 0x00,  0x4C, 0x4F, 0x47, 0x31,  0x30, 0x45, 0x00, 0x4C,
-  0x4F, 0x47, 0x32, 0x45,  0x00, 0x50, 0x49, 0x00,  0x53, 0x51, 0x52, 0x54,  0x31, 0x5F, 0x32, 0x00,
-  0x53, 0x51, 0x52, 0x54,  0x32, 0x00, 0x61, 0x62,  0x73, 0x2C, 0x6D, 0x69,  0x6E, 0x2C, 0x6D, 0x61,
-  0x78, 0x2C, 0x73, 0x69,  0x6E, 0x2C, 0x63, 0x6F,  0x73, 0x2C, 0x61, 0x74,  0x61, 0x6E, 0x32, 0x2C,
-  0x74, 0x61, 0x6E, 0x2C,  0x65, 0x78, 0x70, 0x2C,  0x6C, 0x6F, 0x67, 0x2C,  0x73, 0x71, 0x72, 0x74,
-  0x2C, 0x72, 0x6F, 0x75,  0x6E, 0x64, 0x2C, 0x72,  0x61, 0x6E, 0x64, 0x6F,  0x6D, 0x2C, 0x66, 0x6C,
-  0x6F, 0x6F, 0x72, 0x2C,  0x63, 0x65, 0x69, 0x6C,  0x2C, 0x61, 0x74, 0x61,  0x6E, 0x2C, 0x61, 0x73,
-  0x69, 0x6E, 0x2C, 0x61,  0x63, 0x6F, 0x73, 0x2C,  0x70, 0x6F, 0x77, 0x00,  0x44, 0x61, 0x74, 0x65,
-  0x00, 0x67, 0x65, 0x74,  0x46, 0x75, 0x6C, 0x6C,  0x59, 0x65, 0x61, 0x72,  0x2C, 0x67, 0x65, 0x74,
-  0x59, 0x65, 0x61, 0x72,  0x2C, 0x67, 0x65, 0x74,  0x4D, 0x6F, 0x6E, 0x74,  0x68, 0x2C, 0x67, 0x65,
-  0x74, 0x44, 0x61, 0x74,  0x65, 0x2C, 0x67, 0x65,  0x74, 0x44, 0x61, 0x79,  0x2C, 0x67, 0x65, 0x74,
-  0x48, 0x6F, 0x75, 0x72,  0x73, 0x2C, 0x67, 0x65,  0x74, 0x4D, 0x69, 0x6E,  0x75, 0x74, 0x65, 0x73,
-  0x2C, 0x67, 0x65, 0x74,  0x53, 0x65, 0x63, 0x6F,  0x6E, 0x64, 0x73, 0x2C,  0x67, 0x65, 0x74, 0x4D,
-  0x69, 0x6C, 0x6C, 0x69,  0x73, 0x65, 0x63, 0x6F,  0x6E, 0x64, 0x73, 0x2C,  0x73, 0x65, 0x74, 0x46,
-  0x75, 0x6C, 0x6C, 0x59,  0x65, 0x61, 0x72, 0x2C,  0x73, 0x65, 0x74, 0x4D,  0x6F, 0x6E, 0x74, 0x68,
-  0x2C, 0x73, 0x65, 0x74,  0x44, 0x61, 0x74, 0x65,  0x2C, 0x73, 0x65, 0x74,  0x48, 0x6F, 0x75, 0x72,
-  0x73, 0x2C, 0x73, 0x65,  0x74, 0x4D, 0x69, 0x6E,  0x75, 0x74, 0x65, 0x73,  0x2C, 0x73, 0x65, 0x74,
-  0x53, 0x65, 0x63, 0x6F,  0x6E, 0x64, 0x73, 0x2C,  0x73, 0x65, 0x74, 0x4D,  0x69, 0x6C, 0x6C, 0x69,
-  0x73, 0x65, 0x63, 0x6F,  0x6E, 0x64, 0x73, 0x2C,  0x67, 0x65, 0x74, 0x54,  0x69, 0x6D, 0x65, 0x2C,
-  0x73, 0x65, 0x74, 0x54,  0x69, 0x6D, 0x65, 0x2C,  0x67, 0x65, 0x74, 0x54,  0x69, 0x6D, 0x65, 0x7A,
-  0x6F, 0x6E, 0x65, 0x4F,  0x66, 0x66, 0x73, 0x65,  0x74, 0x2C, 0x74, 0x6F,  0x53, 0x74, 0x72, 0x69,
-  0x6E, 0x67, 0x2C, 0x73,  0x65, 0x74, 0x59, 0x65,  0x61, 0x72, 0x00, 0x67,  0x65, 0x74, 0x55, 0x54,
-  0x43, 0x46, 0x75, 0x6C,  0x6C, 0x59, 0x65, 0x61,  0x72, 0x2C, 0x67, 0x65,  0x74, 0x55, 0x54, 0x43,
-  0x59, 0x65, 0x61, 0x72,  0x2C, 0x67, 0x65, 0x74,  0x55, 0x54, 0x43, 0x4D,  0x6F, 0x6E, 0x74, 0x68,
-  0x2C, 0x67, 0x65, 0x74,  0x55, 0x54, 0x43, 0x44,  0x61, 0x74, 0x65, 0x2C,  0x67, 0x65, 0x74, 0x55,
-  0x54, 0x43, 0x44, 0x61,  0x79, 0x2C, 0x67, 0x65,  0x74, 0x55, 0x54, 0x43,  0x48, 0x6F, 0x75, 0x72,
-  0x73, 0x2C, 0x67, 0x65,  0x74, 0x55, 0x54, 0x43,  0x4D, 0x69, 0x6E, 0x75,  0x74, 0x65, 0x73, 0x2C,
-  0x67, 0x65, 0x74, 0x55,  0x54, 0x43, 0x53, 0x65,  0x63, 0x6F, 0x6E, 0x64,  0x73, 0x2C, 0x67, 0x65,
-  0x74, 0x55, 0x54, 0x43,  0x4D, 0x69, 0x6C, 0x6C,  0x69, 0x73, 0x65, 0x63,  0x6F, 0x6E, 0x64, 0x73,
-  0x2C, 0x73, 0x65, 0x74,  0x55, 0x54, 0x43, 0x46,  0x75, 0x6C, 0x6C, 0x59,  0x65, 0x61, 0x72, 0x2C,
-  0x73, 0x65, 0x74, 0x55,  0x54, 0x43, 0x4D, 0x6F,  0x6E, 0x74, 0x68, 0x2C,  0x73, 0x65, 0x74, 0x55,
-  0x54, 0x43, 0x44, 0x61,  0x74, 0x65, 0x2C, 0x73,  0x65, 0x74, 0x55, 0x54,  0x43, 0x48, 0x6F, 0x75,
-  0x72, 0x73, 0x2C, 0x73,  0x65, 0x74, 0x55, 0x54,  0x43, 0x4D, 0x69, 0x6E,  0x75, 0x74, 0x65, 0x73,
-  0x2C, 0x73, 0x65, 0x74,  0x55, 0x54, 0x43, 0x53,  0x65, 0x63, 0x6F, 0x6E,  0x64, 0x73, 0x2C, 0x73,
-  0x65, 0x74, 0x55, 0x54,  0x43, 0x4D, 0x69, 0x6C,  0x6C, 0x69, 0x73, 0x65,  0x63, 0x6F, 0x6E, 0x64,
-  0x73, 0x00, 0x76, 0x61,  0x6C, 0x75, 0x65, 0x4F,  0x66, 0x00, 0x67, 0x65,  0x74, 0x54, 0x69, 0x6D,
-  0x65, 0x00, 0x55, 0x54,  0x43, 0x00, 0x41, 0x72,  0x72, 0x61, 0x79, 0x00,  0x70, 0x75, 0x73, 0x68,
-  0x2C, 0x70, 0x6F, 0x70,  0x2C, 0x63, 0x6F, 0x6E,  0x63, 0x61, 0x74, 0x2C,  0x73, 0x68, 0x69, 0x66,
-  0x74, 0x2C, 0x75, 0x6E,  0x73, 0x68, 0x69, 0x66,  0x74, 0x2C, 0x73, 0x6C,  0x69, 0x63, 0x65, 0x2C,
-  0x6A, 0x6F, 0x69, 0x6E,  0x2C, 0x73, 0x70, 0x6C,  0x69, 0x63, 0x65, 0x2C,  0x74, 0x6F, 0x53, 0x74,
-  0x72, 0x69, 0x6E, 0x67,  0x2C, 0x73, 0x6F, 0x72,  0x74, 0x2C, 0x72, 0x65,  0x76, 0x65, 0x72, 0x73,
-  0x65, 0x2C, 0x73, 0x6F,  0x72, 0x74, 0x4F, 0x6E,  0x00, 0x43, 0x41, 0x53,  0x45, 0x49, 0x4E, 0x53,
-  0x45, 0x4E, 0x53, 0x49,  0x54, 0x49, 0x56, 0x45,  0x00, 0x44, 0x45, 0x53,  0x43, 0x45, 0x4E, 0x44,
-  0x49, 0x4E, 0x47, 0x00,  0x55, 0x4E, 0x49, 0x51,  0x55, 0x45, 0x53, 0x4F,  0x52, 0x54, 0x00, 0x52,
-  0x45, 0x54, 0x55, 0x52,  0x4E, 0x49, 0x4E, 0x44,  0x45, 0x58, 0x45, 0x44,  0x41, 0x52, 0x52, 0x41,
-  0x59, 0x00, 0x4E, 0x55,  0x4D, 0x45, 0x52, 0x49,  0x43, 0x00, 0x65, 0x73,  0x63, 0x61, 0x70, 0x65,
-  0x00, 0x75, 0x6E, 0x65,  0x73, 0x63, 0x61, 0x70,  0x65, 0x00, 0x70, 0x61,  0x72, 0x73, 0x65, 0x49,
-  0x6E, 0x74, 0x00, 0x69,  0x73, 0x4E, 0x61, 0x4E,  0x00, 0x69, 0x73, 0x46,  0x69, 0x6E, 0x69, 0x74,
-  0x65, 0x00, 0x96, 0x13,  0x00, 0x08, 0x00, 0x07,  0x00, 0x00, 0x00, 0x00,  0x07, 0x04, 0x00, 0x00,
-  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x1D, 0x96, 0x13,  0x00, 0x08, 0x02, 0x07,
-  0x01, 0x00, 0x00, 0x00,  0x07, 0x04, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,
-  0x3D, 0x1D, 0x96, 0x09,  0x00, 0x08, 0x05, 0x07,  0x65, 0x00, 0x00, 0x00,  0x08, 0x03, 0x1C, 0x96,
-  0x02, 0x00, 0x08, 0x04,  0x4E, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x00, 0x3D,
-  0x17, 0x96, 0x02, 0x00,  0x08, 0x03, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x04,  0x4E, 0x96, 0x02, 0x00,
-  0x08, 0x06, 0x9B, 0x05,  0x00, 0x00, 0x00, 0x00,  0x12, 0x00, 0x96, 0x07,  0x00, 0x07, 0x00, 0x00,
-  0x00, 0x00, 0x08, 0x07,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x08, 0x52, 0x3E,  0x4F, 0x96, 0x08, 0x00,
-  0x07, 0x03, 0x00, 0x00,  0x00, 0x02, 0x08, 0x03,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x04, 0x4E, 0x96,
-  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x09, 0x3D, 0x17, 0x96,  0x08, 0x00, 0x07, 0x07,
-  0x00, 0x00, 0x00, 0x02,  0x08, 0x03, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,
-  0x09, 0x3D, 0x17, 0x96,  0x13, 0x00, 0x08, 0x0A,  0x07, 0x02, 0x00, 0x00,  0x00, 0x07, 0x6B, 0x00,
-  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x0B, 0x3D, 0x1D, 0x96,  0x09, 0x00, 0x08, 0x0C,
-  0x07, 0x6B, 0x00, 0x00,  0x00, 0x08, 0x0A, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x04, 0x4E, 0x96, 0x07,
-  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x00,  0x3D, 0x17, 0x96, 0x08,  0x00, 0x07, 0x03, 0x00,
-  0x00, 0x00, 0x02, 0x08,  0x0A, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x04, 0x4E,  0x96, 0x07, 0x00, 0x07,
-  0x03, 0x00, 0x00, 0x00,  0x08, 0x09, 0x3D, 0x17,  0x96, 0x13, 0x00, 0x08,  0x0D, 0x07, 0x02, 0x00,
-  0x00, 0x00, 0x07, 0x6A,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x0B, 0x3D, 0x1D,
-  0x96, 0x09, 0x00, 0x08,  0x0C, 0x07, 0x6A, 0x00,  0x00, 0x00, 0x08, 0x0D,  0x1C, 0x96, 0x02, 0x00,
-  0x08, 0x04, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x00, 0x3D, 0x17, 0x96,
-  0x08, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x02,  0x08, 0x0D, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x04,
-  0x4E, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x09, 0x3D,  0x17, 0x96, 0x02, 0x00,
-  0x08, 0x0D, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x0E,  0x08, 0x0E, 0x1C, 0x4F,  0x96, 0x02, 0x00, 0x08,
-  0x0D, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x0F, 0x08,  0x10, 0x1C, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x0D,
-  0x1C, 0x96, 0x04, 0x00,  0x08, 0x11, 0x08, 0x10,  0x1C, 0x96, 0x05, 0x00,  0x07, 0xFF, 0xFF, 0xFF,
-  0xFF, 0x0C, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x0D,  0x1C, 0x96, 0x07, 0x00,  0x08, 0x12, 0x07, 0x00,
-  0x00, 0x00, 0x00, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x0D, 0x1C, 0x96, 0x0B,  0x00, 0x08, 0x13, 0x06,
-  0xFF, 0xFF, 0xEF, 0x7F,  0xE2, 0xFF, 0xFF, 0xFF,  0x4F, 0x96, 0x08, 0x00,  0x07, 0x07, 0x00, 0x00,
-  0x00, 0x02, 0x08, 0x0D,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x09, 0x3D,
-  0x17, 0x96, 0x13, 0x00,  0x08, 0x14, 0x07, 0x00,  0x00, 0x00, 0x00, 0x07,  0xFB, 0x00, 0x00, 0x00,
-  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x0B, 0x3D,  0x1D, 0x96, 0x0E, 0x00,  0x07, 0x01, 0x00, 0x00,
-  0x00, 0x08, 0x15, 0x07,  0xFB, 0x00, 0x00, 0x00,  0x08, 0x14, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x04,
-  0x4E, 0x96, 0x07, 0x00,  0x07, 0x04, 0x00, 0x00,  0x00, 0x08, 0x00, 0x3D,  0x17, 0x96, 0x08, 0x00,
-  0x07, 0x03, 0x00, 0x00,  0x00, 0x02, 0x08, 0x14,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x04, 0x4E, 0x96,
-  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x09, 0x3D, 0x17, 0x96,  0x02, 0x00, 0x08, 0x14,
-  0x1C, 0x96, 0x13, 0x00,  0x08, 0x16, 0x07, 0x0E,  0x00, 0x00, 0x00, 0x07,  0xFB, 0x00, 0x00, 0x00,
-  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x08, 0x00,  0x07, 0x03, 0x00, 0x00,
-  0x00, 0x02, 0x08, 0x14,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x09, 0x3D,
-  0x17, 0x96, 0x5F, 0x00,  0x08, 0x17, 0x08, 0x18,  0x06, 0x0A, 0xBF, 0x05,  0x40, 0x74, 0x57, 0x14,
-  0x8B, 0x08, 0x19, 0x06,  0xB1, 0x6B, 0x02, 0x40,  0x1F, 0x55, 0xB5, 0xBB,  0x08, 0x1A, 0x06, 0x42,
-  0x2E, 0xE6, 0x3F, 0xEC,  0x39, 0xFA, 0xFE, 0x08,  0x1B, 0x06, 0x7B, 0xCB,  0xDB, 0x3F, 0x11, 0xE5,
-  0x26, 0x15, 0x08, 0x1C,  0x06, 0x47, 0x15, 0xF7,  0x3F, 0xEF, 0x82, 0x2B,  0x65, 0x08, 0x1D, 0x06,
-  0xFB, 0x21, 0x09, 0x40,  0x11, 0x2D, 0x44, 0x54,  0x08, 0x1E, 0x06, 0x9E,  0xA0, 0xE6, 0x3F, 0xD1,
-  0x3B, 0x7F, 0x66, 0x08,  0x1F, 0x06, 0x9E, 0xA0,  0xF6, 0x3F, 0xE3, 0x3B,  0x7F, 0x66, 0x07, 0x08,
-  0x00, 0x00, 0x00, 0x43,  0x1D, 0x96, 0x09, 0x00,  0x08, 0x20, 0x07, 0xC8,  0x00, 0x00, 0x00, 0x08,
-  0x17, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x00,  0x3D, 0x17, 0x96, 0x08,
-  0x00, 0x07, 0x07, 0x00,  0x00, 0x00, 0x02, 0x08,  0x17, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,
-  0x00, 0x00, 0x08, 0x09,  0x3D, 0x17, 0x96, 0x13,  0x00, 0x08, 0x21, 0x07,  0x00, 0x01, 0x00, 0x00,
-  0x07, 0x67, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x0B,  0x3D, 0x1D, 0x96, 0x09,
-  0x00, 0x08, 0x22, 0x07,  0x67, 0x00, 0x00, 0x00,  0x08, 0x21, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x04,
-  0x4E, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x00, 0x3D,  0x17, 0x96, 0x0E, 0x00,
-  0x07, 0x80, 0x00, 0x00,  0x00, 0x08, 0x23, 0x07,  0x67, 0x00, 0x00, 0x00,  0x08, 0x21, 0x1C, 0x96,
+  0x61, 0x74, 0x69, 0x76,  0x65, 0x41, 0x63, 0x63,  0x65, 0x73, 0x73, 0x6F,  0x72, 0x00, 0x46, 0x75,
+  0x6E, 0x63, 0x74, 0x69,  0x6F, 0x6E, 0x00, 0x70,  0x72, 0x6F, 0x74, 0x6F,  0x74, 0x79, 0x70, 0x65,
+  0x00, 0x36, 0x63, 0x61,  0x6C, 0x6C, 0x2C, 0x36,  0x61, 0x70, 0x70, 0x6C,  0x79, 0x00, 0x6F, 0x00,
+  0x41, 0x53, 0x53, 0x65,  0x74, 0x50, 0x72, 0x6F,  0x70, 0x46, 0x6C, 0x61,  0x67, 0x73, 0x00, 0x4F,
+  0x62, 0x6A, 0x65, 0x63,  0x74, 0x00, 0x36, 0x77,  0x61, 0x74, 0x63, 0x68,  0x2C, 0x36, 0x75, 0x6E,
+  0x77, 0x61, 0x74, 0x63,  0x68, 0x2C, 0x36, 0x61,  0x64, 0x64, 0x50, 0x72,  0x6F, 0x70, 0x65, 0x72,
+  0x74, 0x79, 0x2C, 0x76,  0x61, 0x6C, 0x75, 0x65,  0x4F, 0x66, 0x2C, 0x74,  0x6F, 0x53, 0x74, 0x72,
+  0x69, 0x6E, 0x67, 0x2C,  0x36, 0x68, 0x61, 0x73,  0x4F, 0x77, 0x6E, 0x50,  0x72, 0x6F, 0x70, 0x65,
+  0x72, 0x74, 0x79, 0x2C,  0x36, 0x69, 0x73, 0x50,  0x72, 0x6F, 0x74, 0x6F,  0x74, 0x79, 0x70, 0x65,
+  0x4F, 0x66, 0x2C, 0x36,  0x69, 0x73, 0x50, 0x72,  0x6F, 0x70, 0x65, 0x72,  0x74, 0x79, 0x45, 0x6E,
+  0x75, 0x6D, 0x65, 0x72,  0x61, 0x62, 0x6C, 0x65,  0x00, 0x74, 0x6F, 0x4C,  0x6F, 0x63, 0x61, 0x6C,
+  0x65, 0x53, 0x74, 0x72,  0x69, 0x6E, 0x67, 0x00,  0x74, 0x68, 0x69, 0x73,  0x00, 0x74, 0x6F, 0x53,
+  0x74, 0x72, 0x69, 0x6E,  0x67, 0x00, 0x42, 0x6F,  0x6F, 0x6C, 0x65, 0x61,  0x6E, 0x00, 0x41, 0x53,
+  0x63, 0x6F, 0x6E, 0x73,  0x74, 0x72, 0x75, 0x63,  0x74, 0x6F, 0x72, 0x00,  0x76, 0x61, 0x6C, 0x75,
+  0x65, 0x4F, 0x66, 0x2C,  0x74, 0x6F, 0x53, 0x74,  0x72, 0x69, 0x6E, 0x67,  0x00, 0x4E, 0x75, 0x6D,
+  0x62, 0x65, 0x72, 0x00,  0x4E, 0x61, 0x4E, 0x00,  0x50, 0x4F, 0x53, 0x49,  0x54, 0x49, 0x56, 0x45,
+  0x5F, 0x49, 0x4E, 0x46,  0x49, 0x4E, 0x49, 0x54,  0x59, 0x00, 0x49, 0x6E,  0x66, 0x69, 0x6E, 0x69,
+  0x74, 0x79, 0x00, 0x4E,  0x45, 0x47, 0x41, 0x54,  0x49, 0x56, 0x45, 0x5F,  0x49, 0x4E, 0x46, 0x49,
+  0x4E, 0x49, 0x54, 0x59,  0x00, 0x4D, 0x49, 0x4E,  0x5F, 0x56, 0x41, 0x4C,  0x55, 0x45, 0x00, 0x4D,
+  0x41, 0x58, 0x5F, 0x56,  0x41, 0x4C, 0x55, 0x45,  0x00, 0x53, 0x74, 0x72,  0x69, 0x6E, 0x67, 0x00,
+  0x76, 0x61, 0x6C, 0x75,  0x65, 0x4F, 0x66, 0x2C,  0x74, 0x6F, 0x53, 0x74,  0x72, 0x69, 0x6E, 0x67,
+  0x2C, 0x74, 0x6F, 0x55,  0x70, 0x70, 0x65, 0x72,  0x43, 0x61, 0x73, 0x65,  0x2C, 0x74, 0x6F, 0x4C,
+  0x6F, 0x77, 0x65, 0x72,  0x43, 0x61, 0x73, 0x65,  0x2C, 0x63, 0x68, 0x61,  0x72, 0x41, 0x74, 0x2C,
+  0x63, 0x68, 0x61, 0x72,  0x43, 0x6F, 0x64, 0x65,  0x41, 0x74, 0x2C, 0x63,  0x6F, 0x6E, 0x63, 0x61,
+  0x74, 0x2C, 0x69, 0x6E,  0x64, 0x65, 0x78, 0x4F,  0x66, 0x2C, 0x6C, 0x61,  0x73, 0x74, 0x49, 0x6E,
+  0x64, 0x65, 0x78, 0x4F,  0x66, 0x2C, 0x73, 0x6C,  0x69, 0x63, 0x65, 0x2C,  0x73, 0x75, 0x62, 0x73,
+  0x74, 0x72, 0x69, 0x6E,  0x67, 0x2C, 0x73, 0x70,  0x6C, 0x69, 0x74, 0x2C,  0x73, 0x75, 0x62, 0x73,
+  0x74, 0x72, 0x00, 0x66,  0x72, 0x6F, 0x6D, 0x43,  0x68, 0x61, 0x72, 0x43,  0x6F, 0x64, 0x65, 0x00,
+  0x4D, 0x61, 0x74, 0x68,  0x00, 0x45, 0x00, 0x4C,  0x4E, 0x31, 0x30, 0x00,  0x4C, 0x4E, 0x32, 0x00,
+  0x4C, 0x4F, 0x47, 0x31,  0x30, 0x45, 0x00, 0x4C,  0x4F, 0x47, 0x32, 0x45,  0x00, 0x50, 0x49, 0x00,
+  0x53, 0x51, 0x52, 0x54,  0x31, 0x5F, 0x32, 0x00,  0x53, 0x51, 0x52, 0x54,  0x32, 0x00, 0x61, 0x62,
+  0x73, 0x2C, 0x6D, 0x69,  0x6E, 0x2C, 0x6D, 0x61,  0x78, 0x2C, 0x73, 0x69,  0x6E, 0x2C, 0x63, 0x6F,
+  0x73, 0x2C, 0x61, 0x74,  0x61, 0x6E, 0x32, 0x2C,  0x74, 0x61, 0x6E, 0x2C,  0x65, 0x78, 0x70, 0x2C,
+  0x6C, 0x6F, 0x67, 0x2C,  0x73, 0x71, 0x72, 0x74,  0x2C, 0x72, 0x6F, 0x75,  0x6E, 0x64, 0x2C, 0x72,
+  0x61, 0x6E, 0x64, 0x6F,  0x6D, 0x2C, 0x66, 0x6C,  0x6F, 0x6F, 0x72, 0x2C,  0x63, 0x65, 0x69, 0x6C,
+  0x2C, 0x61, 0x74, 0x61,  0x6E, 0x2C, 0x61, 0x73,  0x69, 0x6E, 0x2C, 0x61,  0x63, 0x6F, 0x73, 0x2C,
+  0x70, 0x6F, 0x77, 0x00,  0x44, 0x61, 0x74, 0x65,  0x00, 0x67, 0x65, 0x74,  0x46, 0x75, 0x6C, 0x6C,
+  0x59, 0x65, 0x61, 0x72,  0x2C, 0x67, 0x65, 0x74,  0x59, 0x65, 0x61, 0x72,  0x2C, 0x67, 0x65, 0x74,
+  0x4D, 0x6F, 0x6E, 0x74,  0x68, 0x2C, 0x67, 0x65,  0x74, 0x44, 0x61, 0x74,  0x65, 0x2C, 0x67, 0x65,
+  0x74, 0x44, 0x61, 0x79,  0x2C, 0x67, 0x65, 0x74,  0x48, 0x6F, 0x75, 0x72,  0x73, 0x2C, 0x67, 0x65,
+  0x74, 0x4D, 0x69, 0x6E,  0x75, 0x74, 0x65, 0x73,  0x2C, 0x67, 0x65, 0x74,  0x53, 0x65, 0x63, 0x6F,
+  0x6E, 0x64, 0x73, 0x2C,  0x67, 0x65, 0x74, 0x4D,  0x69, 0x6C, 0x6C, 0x69,  0x73, 0x65, 0x63, 0x6F,
+  0x6E, 0x64, 0x73, 0x2C,  0x73, 0x65, 0x74, 0x46,  0x75, 0x6C, 0x6C, 0x59,  0x65, 0x61, 0x72, 0x2C,
+  0x73, 0x65, 0x74, 0x4D,  0x6F, 0x6E, 0x74, 0x68,  0x2C, 0x73, 0x65, 0x74,  0x44, 0x61, 0x74, 0x65,
+  0x2C, 0x73, 0x65, 0x74,  0x48, 0x6F, 0x75, 0x72,  0x73, 0x2C, 0x73, 0x65,  0x74, 0x4D, 0x69, 0x6E,
+  0x75, 0x74, 0x65, 0x73,  0x2C, 0x73, 0x65, 0x74,  0x53, 0x65, 0x63, 0x6F,  0x6E, 0x64, 0x73, 0x2C,
+  0x73, 0x65, 0x74, 0x4D,  0x69, 0x6C, 0x6C, 0x69,  0x73, 0x65, 0x63, 0x6F,  0x6E, 0x64, 0x73, 0x2C,
+  0x67, 0x65, 0x74, 0x54,  0x69, 0x6D, 0x65, 0x2C,  0x73, 0x65, 0x74, 0x54,  0x69, 0x6D, 0x65, 0x2C,
+  0x67, 0x65, 0x74, 0x54,  0x69, 0x6D, 0x65, 0x7A,  0x6F, 0x6E, 0x65, 0x4F,  0x66, 0x66, 0x73, 0x65,
+  0x74, 0x2C, 0x74, 0x6F,  0x53, 0x74, 0x72, 0x69,  0x6E, 0x67, 0x2C, 0x73,  0x65, 0x74, 0x59, 0x65,
+  0x61, 0x72, 0x00, 0x67,  0x65, 0x74, 0x55, 0x54,  0x43, 0x46, 0x75, 0x6C,  0x6C, 0x59, 0x65, 0x61,
+  0x72, 0x2C, 0x67, 0x65,  0x74, 0x55, 0x54, 0x43,  0x59, 0x65, 0x61, 0x72,  0x2C, 0x67, 0x65, 0x74,
+  0x55, 0x54, 0x43, 0x4D,  0x6F, 0x6E, 0x74, 0x68,  0x2C, 0x67, 0x65, 0x74,  0x55, 0x54, 0x43, 0x44,
+  0x61, 0x74, 0x65, 0x2C,  0x67, 0x65, 0x74, 0x55,  0x54, 0x43, 0x44, 0x61,  0x79, 0x2C, 0x67, 0x65,
+  0x74, 0x55, 0x54, 0x43,  0x48, 0x6F, 0x75, 0x72,  0x73, 0x2C, 0x67, 0x65,  0x74, 0x55, 0x54, 0x43,
+  0x4D, 0x69, 0x6E, 0x75,  0x74, 0x65, 0x73, 0x2C,  0x67, 0x65, 0x74, 0x55,  0x54, 0x43, 0x53, 0x65,
+  0x63, 0x6F, 0x6E, 0x64,  0x73, 0x2C, 0x67, 0x65,  0x74, 0x55, 0x54, 0x43,  0x4D, 0x69, 0x6C, 0x6C,
+  0x69, 0x73, 0x65, 0x63,  0x6F, 0x6E, 0x64, 0x73,  0x2C, 0x73, 0x65, 0x74,  0x55, 0x54, 0x43, 0x46,
+  0x75, 0x6C, 0x6C, 0x59,  0x65, 0x61, 0x72, 0x2C,  0x73, 0x65, 0x74, 0x55,  0x54, 0x43, 0x4D, 0x6F,
+  0x6E, 0x74, 0x68, 0x2C,  0x73, 0x65, 0x74, 0x55,  0x54, 0x43, 0x44, 0x61,  0x74, 0x65, 0x2C, 0x73,
+  0x65, 0x74, 0x55, 0x54,  0x43, 0x48, 0x6F, 0x75,  0x72, 0x73, 0x2C, 0x73,  0x65, 0x74, 0x55, 0x54,
+  0x43, 0x4D, 0x69, 0x6E,  0x75, 0x74, 0x65, 0x73,  0x2C, 0x73, 0x65, 0x74,  0x55, 0x54, 0x43, 0x53,
+  0x65, 0x63, 0x6F, 0x6E,  0x64, 0x73, 0x2C, 0x73,  0x65, 0x74, 0x55, 0x54,  0x43, 0x4D, 0x69, 0x6C,
+  0x6C, 0x69, 0x73, 0x65,  0x63, 0x6F, 0x6E, 0x64,  0x73, 0x00, 0x76, 0x61,  0x6C, 0x75, 0x65, 0x4F,
+  0x66, 0x00, 0x67, 0x65,  0x74, 0x54, 0x69, 0x6D,  0x65, 0x00, 0x55, 0x54,  0x43, 0x00, 0x41, 0x72,
+  0x72, 0x61, 0x79, 0x00,  0x70, 0x75, 0x73, 0x68,  0x2C, 0x70, 0x6F, 0x70,  0x2C, 0x63, 0x6F, 0x6E,
+  0x63, 0x61, 0x74, 0x2C,  0x73, 0x68, 0x69, 0x66,  0x74, 0x2C, 0x75, 0x6E,  0x73, 0x68, 0x69, 0x66,
+  0x74, 0x2C, 0x73, 0x6C,  0x69, 0x63, 0x65, 0x2C,  0x6A, 0x6F, 0x69, 0x6E,  0x2C, 0x73, 0x70, 0x6C,
+  0x69, 0x63, 0x65, 0x2C,  0x74, 0x6F, 0x53, 0x74,  0x72, 0x69, 0x6E, 0x67,  0x2C, 0x73, 0x6F, 0x72,
+  0x74, 0x2C, 0x72, 0x65,  0x76, 0x65, 0x72, 0x73,  0x65, 0x2C, 0x73, 0x6F,  0x72, 0x74, 0x4F, 0x6E,
+  0x00, 0x43, 0x41, 0x53,  0x45, 0x49, 0x4E, 0x53,  0x45, 0x4E, 0x53, 0x49,  0x54, 0x49, 0x56, 0x45,
+  0x00, 0x44, 0x45, 0x53,  0x43, 0x45, 0x4E, 0x44,  0x49, 0x4E, 0x47, 0x00,  0x55, 0x4E, 0x49, 0x51,
+  0x55, 0x45, 0x53, 0x4F,  0x52, 0x54, 0x00, 0x52,  0x45, 0x54, 0x55, 0x52,  0x4E, 0x49, 0x4E, 0x44,
+  0x45, 0x58, 0x45, 0x44,  0x41, 0x52, 0x52, 0x41,  0x59, 0x00, 0x4E, 0x55,  0x4D, 0x45, 0x52, 0x49,
+  0x43, 0x00, 0x65, 0x73,  0x63, 0x61, 0x70, 0x65,  0x00, 0x75, 0x6E, 0x65,  0x73, 0x63, 0x61, 0x70,
+  0x65, 0x00, 0x70, 0x61,  0x72, 0x73, 0x65, 0x49,  0x6E, 0x74, 0x00, 0x69,  0x73, 0x4E, 0x61, 0x4E,
+  0x00, 0x69, 0x73, 0x46,  0x69, 0x6E, 0x69, 0x74,  0x65, 0x00, 0x96, 0x13,  0x00, 0x08, 0x00, 0x07,
+  0x00, 0x00, 0x00, 0x00,  0x07, 0x04, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,
+  0x3D, 0x1D, 0x96, 0x13,  0x00, 0x08, 0x02, 0x07,  0x01, 0x00, 0x00, 0x00,  0x07, 0x04, 0x00, 0x00,
+  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x1D, 0x96, 0x0E,  0x00, 0x07, 0x0A, 0x00,
+  0x00, 0x00, 0x08, 0x05,  0x07, 0x65, 0x00, 0x00,  0x00, 0x08, 0x03, 0x1C,  0x96, 0x02, 0x00, 0x08,
+  0x04, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x04, 0x00,  0x00, 0x00, 0x08, 0x00,  0x3D, 0x17, 0x96, 0x08,
+  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x02, 0x08,  0x06, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,
+  0x00, 0x00, 0x08, 0x07,  0x3D, 0x17, 0x96, 0x09,  0x00, 0x08, 0x09, 0x07,  0x65, 0x00, 0x00, 0x00,
+  0x08, 0x08, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x04,  0x4E, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,
+  0x00, 0x08, 0x00, 0x3D,  0x17, 0x96, 0x02, 0x00,  0x08, 0x08, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x04,
+  0x4E, 0x96, 0x02, 0x00,  0x08, 0x0A, 0x9B, 0x05,  0x00, 0x00, 0x00, 0x00,  0x12, 0x00, 0x96, 0x07,
+  0x00, 0x07, 0x00, 0x00,  0x00, 0x00, 0x08, 0x0B,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x0C, 0x52, 0x3E,
+  0x4F, 0x96, 0x08, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x02, 0x08, 0x08,  0x1C, 0x96, 0x02, 0x00,
+  0x08, 0x04, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x07, 0x3D, 0x17, 0x96,
+  0x08, 0x00, 0x07, 0x07,  0x00, 0x00, 0x00, 0x02,  0x08, 0x08, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x03,
+  0x00, 0x00, 0x00, 0x08,  0x07, 0x3D, 0x17, 0x96,  0x13, 0x00, 0x08, 0x0D,  0x07, 0x02, 0x00, 0x00,
+  0x00, 0x07, 0x6B, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x0E, 0x3D, 0x1D, 0x96,
+  0x09, 0x00, 0x08, 0x0F,  0x07, 0x6B, 0x00, 0x00,  0x00, 0x08, 0x0D, 0x1C,  0x96, 0x02, 0x00, 0x08,
+  0x04, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x00,  0x3D, 0x17, 0x96, 0x08,
+  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x02, 0x08,  0x0D, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x04, 0x4E,
+  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x07, 0x3D, 0x17,  0x96, 0x13, 0x00, 0x08,
+  0x10, 0x07, 0x02, 0x00,  0x00, 0x00, 0x07, 0x6A,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
+  0x08, 0x0E, 0x3D, 0x1D,  0x96, 0x09, 0x00, 0x08,  0x0F, 0x07, 0x6A, 0x00,  0x00, 0x00, 0x08, 0x10,
+  0x1C, 0x96, 0x02, 0x00,  0x08, 0x04, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,
+  0x00, 0x3D, 0x17, 0x96,  0x08, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x02,  0x08, 0x10, 0x1C, 0x96,
+  0x02, 0x00, 0x08, 0x04,  0x4E, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x07, 0x3D,
+  0x17, 0x96, 0x02, 0x00,  0x08, 0x10, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x11,  0x08, 0x11, 0x1C, 0x4F,
+  0x96, 0x02, 0x00, 0x08,  0x10, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x12, 0x08,  0x13, 0x1C, 0x4F, 0x96,
+  0x02, 0x00, 0x08, 0x10,  0x1C, 0x96, 0x04, 0x00,  0x08, 0x14, 0x08, 0x13,  0x1C, 0x96, 0x05, 0x00,
+  0x07, 0xFF, 0xFF, 0xFF,  0xFF, 0x0C, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x10,  0x1C, 0x96, 0x07, 0x00,
+  0x08, 0x15, 0x07, 0x00,  0x00, 0x00, 0x00, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x10, 0x1C, 0x96, 0x0B,
+  0x00, 0x08, 0x16, 0x06,  0xFF, 0xFF, 0xEF, 0x7F,  0xE2, 0xFF, 0xFF, 0xFF,  0x4F, 0x96, 0x08, 0x00,
+  0x07, 0x07, 0x00, 0x00,  0x00, 0x02, 0x08, 0x10,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,
+  0x00, 0x08, 0x07, 0x3D,  0x17, 0x96, 0x13, 0x00,  0x08, 0x17, 0x07, 0x00,  0x00, 0x00, 0x00, 0x07,
+  0xFB, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x0E, 0x3D,  0x1D, 0x96, 0x0E, 0x00,
+  0x07, 0x01, 0x00, 0x00,  0x00, 0x08, 0x18, 0x07,  0xFB, 0x00, 0x00, 0x00,  0x08, 0x17, 0x1C, 0x96,
   0x02, 0x00, 0x08, 0x04,  0x4E, 0x96, 0x07, 0x00,  0x07, 0x04, 0x00, 0x00,  0x00, 0x08, 0x00, 0x3D,
-  0x17, 0x96, 0x02, 0x00,  0x08, 0x21, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x04,  0x4E, 0x96, 0x04, 0x00,
-  0x08, 0x24, 0x08, 0x21,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x04, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x25,
-  0x4E, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x21, 0x1C,  0x96, 0x13, 0x00, 0x08,  0x26, 0x07, 0x01, 0x01,
-  0x00, 0x00, 0x07, 0x67,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
-  0x96, 0x08, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x02, 0x08, 0x21, 0x1C,  0x96, 0x02, 0x00, 0x08,
-  0x04, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x09,  0x3D, 0x17, 0x96, 0x08,
-  0x00, 0x07, 0x07, 0x00,  0x00, 0x00, 0x02, 0x08,  0x21, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,
-  0x00, 0x00, 0x08, 0x09,  0x3D, 0x17, 0x96, 0x13,  0x00, 0x08, 0x27, 0x07,  0x00, 0x00, 0x00, 0x00,
-  0x07, 0xFC, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x0B,  0x3D, 0x1D, 0x96, 0x0E,
-  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x28,  0x07, 0xFC, 0x00, 0x00,  0x00, 0x08, 0x27, 0x1C,
-  0x96, 0x02, 0x00, 0x08,  0x04, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x04, 0x00,  0x00, 0x00, 0x08, 0x00,
-  0x3D, 0x17, 0x96, 0x08,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x02, 0x08,  0x27, 0x1C, 0x96, 0x02,
-  0x00, 0x08, 0x04, 0x4E,  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x09, 0x3D, 0x17,
-  0x96, 0x02, 0x00, 0x08,  0x27, 0x1C, 0x96, 0x07,  0x00, 0x08, 0x29, 0x07,  0x01, 0x00, 0x00, 0x00,
-  0x4F, 0x96, 0x02, 0x00,  0x08, 0x27, 0x1C, 0x96,  0x07, 0x00, 0x08, 0x2A,  0x07, 0x02, 0x00, 0x00,
-  0x00, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x27, 0x1C,  0x96, 0x07, 0x00, 0x08,  0x2B, 0x07, 0x04, 0x00,
-  0x00, 0x00, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x27,  0x1C, 0x96, 0x07, 0x00,  0x08, 0x2C, 0x07, 0x08,
-  0x00, 0x00, 0x00, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x27, 0x1C, 0x96, 0x07,  0x00, 0x08, 0x2D, 0x07,
-  0x10, 0x00, 0x00, 0x00,  0x4F, 0x96, 0x13, 0x00,  0x08, 0x2E, 0x07, 0x00,  0x00, 0x00, 0x00, 0x07,
-  0x64, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x1D, 0x96, 0x13, 0x00,
-  0x08, 0x2F, 0x07, 0x01,  0x00, 0x00, 0x00, 0x07,  0x64, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,
-  0x00, 0x08, 0x01, 0x3D,  0x1D, 0x96, 0x13, 0x00,  0x08, 0x30, 0x07, 0x02,  0x00, 0x00, 0x00, 0x07,
-  0x64, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x1D, 0x96, 0x13, 0x00,
-  0x08, 0x31, 0x07, 0x12,  0x00, 0x00, 0x00, 0x07,  0xC8, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,
-  0x00, 0x08, 0x01, 0x3D,  0x1D, 0x96, 0x13, 0x00,  0x08, 0x32, 0x07, 0x13,  0x00, 0x00, 0x00, 0x07,
-  0xC8, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x1D, 0x96, 0x0D, 0x00,
-  0x07, 0x06, 0x00, 0x00,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x02, 0x08,  0x07, 0x1C, 0x96, 0x07,
-  0x00, 0x07, 0x04, 0x00,  0x00, 0x00, 0x08, 0x09,  0x3D, 0x17, 0x00
+  0x17, 0x96, 0x08, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x02, 0x08, 0x17,  0x1C, 0x96, 0x02, 0x00,
+  0x08, 0x04, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x07, 0x3D, 0x17, 0x96,
+  0x02, 0x00, 0x08, 0x17,  0x1C, 0x96, 0x13, 0x00,  0x08, 0x19, 0x07, 0x0E,  0x00, 0x00, 0x00, 0x07,
+  0xFB, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x08, 0x00,
+  0x07, 0x03, 0x00, 0x00,  0x00, 0x02, 0x08, 0x17,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,
+  0x00, 0x08, 0x07, 0x3D,  0x17, 0x96, 0x5F, 0x00,  0x08, 0x1A, 0x08, 0x1B,  0x06, 0x0A, 0xBF, 0x05,
+  0x40, 0x74, 0x57, 0x14,  0x8B, 0x08, 0x1C, 0x06,  0xB1, 0x6B, 0x02, 0x40,  0x1F, 0x55, 0xB5, 0xBB,
+  0x08, 0x1D, 0x06, 0x42,  0x2E, 0xE6, 0x3F, 0xEC,  0x39, 0xFA, 0xFE, 0x08,  0x1E, 0x06, 0x7B, 0xCB,
+  0xDB, 0x3F, 0x11, 0xE5,  0x26, 0x15, 0x08, 0x1F,  0x06, 0x47, 0x15, 0xF7,  0x3F, 0xEF, 0x82, 0x2B,
+  0x65, 0x08, 0x20, 0x06,  0xFB, 0x21, 0x09, 0x40,  0x11, 0x2D, 0x44, 0x54,  0x08, 0x21, 0x06, 0x9E,
+  0xA0, 0xE6, 0x3F, 0xD1,  0x3B, 0x7F, 0x66, 0x08,  0x22, 0x06, 0x9E, 0xA0,  0xF6, 0x3F, 0xE3, 0x3B,
+  0x7F, 0x66, 0x07, 0x08,  0x00, 0x00, 0x00, 0x43,  0x1D, 0x96, 0x09, 0x00,  0x08, 0x23, 0x07, 0xC8,
+  0x00, 0x00, 0x00, 0x08,  0x1A, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x00,
+  0x3D, 0x17, 0x96, 0x08,  0x00, 0x07, 0x07, 0x00,  0x00, 0x00, 0x02, 0x08,  0x1A, 0x1C, 0x96, 0x07,
+  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x07,  0x3D, 0x17, 0x96, 0x13,  0x00, 0x08, 0x24, 0x07,
+  0x00, 0x01, 0x00, 0x00,  0x07, 0x67, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x0E,
+  0x3D, 0x1D, 0x96, 0x09,  0x00, 0x08, 0x25, 0x07,  0x67, 0x00, 0x00, 0x00,  0x08, 0x24, 0x1C, 0x96,
+  0x02, 0x00, 0x08, 0x04,  0x4E, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x00, 0x3D,
+  0x17, 0x96, 0x0E, 0x00,  0x07, 0x80, 0x00, 0x00,  0x00, 0x08, 0x26, 0x07,  0x67, 0x00, 0x00, 0x00,
+  0x08, 0x24, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x04,  0x4E, 0x96, 0x07, 0x00,  0x07, 0x04, 0x00, 0x00,
+  0x00, 0x08, 0x00, 0x3D,  0x17, 0x96, 0x02, 0x00,  0x08, 0x24, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x04,
+  0x4E, 0x96, 0x04, 0x00,  0x08, 0x27, 0x08, 0x24,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x04, 0x4E, 0x96,
+  0x02, 0x00, 0x08, 0x28,  0x4E, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x24, 0x1C,  0x96, 0x13, 0x00, 0x08,
+  0x29, 0x07, 0x01, 0x01,  0x00, 0x00, 0x07, 0x67,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,
+  0x08, 0x01, 0x3D, 0x4F,  0x96, 0x08, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x02, 0x08, 0x24, 0x1C,
+  0x96, 0x02, 0x00, 0x08,  0x04, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x07,
+  0x3D, 0x17, 0x96, 0x08,  0x00, 0x07, 0x07, 0x00,  0x00, 0x00, 0x02, 0x08,  0x24, 0x1C, 0x96, 0x07,
+  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x07,  0x3D, 0x17, 0x96, 0x13,  0x00, 0x08, 0x2A, 0x07,
+  0x00, 0x00, 0x00, 0x00,  0x07, 0xFC, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x0E,
+  0x3D, 0x1D, 0x96, 0x0E,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x2B,  0x07, 0xFC, 0x00, 0x00,
+  0x00, 0x08, 0x2A, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x04, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x04, 0x00,
+  0x00, 0x00, 0x08, 0x00,  0x3D, 0x17, 0x96, 0x08,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x02, 0x08,
+  0x2A, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x04, 0x4E,  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,
+  0x08, 0x07, 0x3D, 0x17,  0x96, 0x02, 0x00, 0x08,  0x2A, 0x1C, 0x96, 0x07,  0x00, 0x08, 0x2C, 0x07,
+  0x01, 0x00, 0x00, 0x00,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x2A, 0x1C, 0x96,  0x07, 0x00, 0x08, 0x2D,
+  0x07, 0x02, 0x00, 0x00,  0x00, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x2A, 0x1C,  0x96, 0x07, 0x00, 0x08,
+  0x2E, 0x07, 0x04, 0x00,  0x00, 0x00, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x2A,  0x1C, 0x96, 0x07, 0x00,
+  0x08, 0x2F, 0x07, 0x08,  0x00, 0x00, 0x00, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x2A, 0x1C, 0x96, 0x07,
+  0x00, 0x08, 0x30, 0x07,  0x10, 0x00, 0x00, 0x00,  0x4F, 0x96, 0x13, 0x00,  0x08, 0x31, 0x07, 0x00,
+  0x00, 0x00, 0x00, 0x07,  0x64, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,
+  0x1D, 0x96, 0x13, 0x00,  0x08, 0x32, 0x07, 0x01,  0x00, 0x00, 0x00, 0x07,  0x64, 0x00, 0x00, 0x00,
+  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x1D, 0x96, 0x13, 0x00,  0x08, 0x33, 0x07, 0x02,
+  0x00, 0x00, 0x00, 0x07,  0x64, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,
+  0x1D, 0x96, 0x13, 0x00,  0x08, 0x34, 0x07, 0x12,  0x00, 0x00, 0x00, 0x07,  0xC8, 0x00, 0x00, 0x00,
+  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x1D, 0x96, 0x13, 0x00,  0x08, 0x35, 0x07, 0x13,
+  0x00, 0x00, 0x00, 0x07,  0xC8, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,
+  0x1D, 0x96, 0x0D, 0x00,  0x07, 0x06, 0x00, 0x00,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x02, 0x08,
+  0x0B, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x04, 0x00,  0x00, 0x00, 0x08, 0x07,  0x3D, 0x17, 0x00
 };
 
diff-tree 421999f93c864a84497d9a37496c3788c966cadb (from 1e1deb870ea4ab1608bf0f30db8cdd321cc517bd)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Sep 12 21:59:20 2007 +0300

    Add a test for assetnative's prefixes

diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index 967e505..fb81cde 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -161,6 +161,13 @@ EXTRA_DIST = \
 	asnative-create-7.swf.trace \
 	asnative-create-8.swf \
 	asnative-create-8.swf.trace \
+	assetnative.as \
+	assetnative-5.swf \
+	assetnative-5.swf.trace \
+	assetnative-6.swf \
+	assetnative-6.swf.trace \
+	assetnative-7.swf \
+	assetnative-7.swf.trace \
 	ASSetPropFlags-extended.as \
 	ASSetPropFlags-extended-5.swf \
 	ASSetPropFlags-extended-5.swf.trace \
diff --git a/test/trace/assetnative-5.swf b/test/trace/assetnative-5.swf
new file mode 100644
index 0000000..b4f87d4
Binary files /dev/null and b/test/trace/assetnative-5.swf differ
diff --git a/test/trace/assetnative-5.swf.trace b/test/trace/assetnative-5.swf.trace
new file mode 100644
index 0000000..1a6fe5e
--- /dev/null
+++ b/test/trace/assetnative-5.swf.trace
@@ -0,0 +1,28 @@
+local.o = object
+  0a = function
+    constructor (hp) = _global.Object.constructor
+  10k = function
+    constructor (hp) = _global.Object.constructor
+  11l = function
+    constructor (hp) = _global.Object.constructor
+  1b = function
+    constructor (hp) = _global.Object.constructor
+  2c = function
+    constructor (hp) = _global.Object.constructor
+  3d = function
+    constructor (hp) = _global.Object.constructor
+  4e = function
+    constructor (hp) = _global.Object.constructor
+  5f = function
+    constructor (hp) = _global.Object.constructor
+  9j = function
+    constructor (hp) = _global.Object.constructor
+  __constructor__ (hn) = _global.Object
+  __proto__ (hp) = _global.Object.prototype
+  constructor (h) = _global.Object
+  g (n) = function
+    constructor (hp) = _global.Object.constructor
+  h (n) = function
+    constructor (hp) = _global.Object.constructor
+  i (n) = function
+    constructor (hp) = _global.Object.constructor
diff --git a/test/trace/assetnative-6.swf b/test/trace/assetnative-6.swf
new file mode 100644
index 0000000..74ab4b3
Binary files /dev/null and b/test/trace/assetnative-6.swf differ
diff --git a/test/trace/assetnative-6.swf.trace b/test/trace/assetnative-6.swf.trace
new file mode 100644
index 0000000..5b3ae70
--- /dev/null
+++ b/test/trace/assetnative-6.swf.trace
@@ -0,0 +1,40 @@
+local.o = object
+  0a = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  10k = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  11l = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  1b = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  2c = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  3d = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  4e = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  5f = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  9j = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  __constructor__ (h) = _global.Object
+  __proto__ (hp) = _global.Object.prototype
+  constructor (h) = _global.Object
+  g = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  h (n) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  i (n) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
diff --git a/test/trace/assetnative-7.swf b/test/trace/assetnative-7.swf
new file mode 100644
index 0000000..472722a
Binary files /dev/null and b/test/trace/assetnative-7.swf differ
diff --git a/test/trace/assetnative-7.swf.trace b/test/trace/assetnative-7.swf.trace
new file mode 100644
index 0000000..22939f2
--- /dev/null
+++ b/test/trace/assetnative-7.swf.trace
@@ -0,0 +1,39 @@
+local.o = object
+  0a = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  10k = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  11l = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  1b = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  2c = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  3d = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  4e = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  5f = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  9j = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  __constructor__ (h) = _global.Object
+  __proto__ (hp) = _global.Object.prototype
+  g = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  h = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
+  i (n) = function
+    __proto__ (hp) = _global.Function.prototype
+    constructor (hp) = _global.Function
diff --git a/test/trace/assetnative.as b/test/trace/assetnative.as
new file mode 100644
index 0000000..80a9fc4
--- /dev/null
+++ b/test/trace/assetnative.as
@@ -0,0 +1,17 @@
+// makeswf -v 7 -r 1 -o assetnative-7.swf assetnative.as
+
+#include "trace_properties.as"
+
+var o = new Object ();
+var empty = new Object ();
+ASSetPropFlags (empty, null, 0, 7);
+for (var prop in empty) {
+  empty[prop] = "to-be-deleted";
+  delete empty[prop];
+}
+
+ASSetNative (o, 103, "0a,1b,2c,3d,4e,5f,6g,7h,8i,9j,10k,11l");
+
+trace_properties (o, "local", "o");
+
+loadMovie ("FSCommand:quit", "");
diff-tree 1e1deb870ea4ab1608bf0f30db8cdd321cc517bd (from baa87dfb79b344b02bf296b9a245a5fd994e4bad)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Sep 12 21:57:27 2007 +0300

    Fix typo in ASSetNative's prefix parsing that made 7 prefix act like 6

diff --git a/libswfdec/swfdec_player_as.c b/libswfdec/swfdec_player_as.c
index 790655e..de7d507 100644
--- a/libswfdec/swfdec_player_as.c
+++ b/libswfdec/swfdec_player_as.c
@@ -192,7 +192,7 @@ ASSetNative (SwfdecAsContext *cx, Swfdec
       flags |= SWFDEC_AS_VARIABLE_VERSION_6_UP;
       s++;
     } else if (s[0] == '7') {
-      flags |= SWFDEC_AS_VARIABLE_VERSION_6_UP;
+      flags |= SWFDEC_AS_VARIABLE_VERSION_7_UP;
       s++;
     } else if (s[0] == '8') {
       flags |= SWFDEC_AS_VARIABLE_VERSION_8_UP;
diff-tree baa87dfb79b344b02bf296b9a245a5fd994e4bad (from c8aa28f218da7807757b58226325fa1c26ed0bf7)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Sep 12 21:52:38 2007 +0300

    Initialize Object's method in swfdec_as_initialize.as

diff --git a/libswfdec/swfdec_as_initialize.as b/libswfdec/swfdec_as_initialize.as
index bf283c5..d5321df 100644
--- a/libswfdec/swfdec_as_initialize.as
+++ b/libswfdec/swfdec_as_initialize.as
@@ -24,6 +24,7 @@ ASSetNativeAccessor = ASnative (4, 1);
 
 /*** BASE OBJECTS ***/
 
+ASSetNative(Object.prototype, 101, "6watch,6unwatch,6addProperty,valueOf,toString,6hasOwnProperty,6isPrototypeOf,6isPropertyEnumerable");
 Object.prototype.toLocaleString = function () {
   return this.toString ();
 };
diff --git a/libswfdec/swfdec_as_initialize.h b/libswfdec/swfdec_as_initialize.h
index 2a752dc..82b1a36 100644
--- a/libswfdec/swfdec_as_initialize.h
+++ b/libswfdec/swfdec_as_initialize.h
@@ -2,155 +2,163 @@
 
 /* compiled from swfdec_as_initialize.as */
 const unsigned char swfdec_as_initialize[] = {
-  0x88, 0x6C, 0x04, 0x32,  0x00, 0x41, 0x53, 0x53,  0x65, 0x74, 0x4E, 0x61,  0x74, 0x69, 0x76, 0x65,
+  0x88, 0xCF, 0x04, 0x33,  0x00, 0x41, 0x53, 0x53,  0x65, 0x74, 0x4E, 0x61,  0x74, 0x69, 0x76, 0x65,
   0x00, 0x41, 0x53, 0x6E,  0x61, 0x74, 0x69, 0x76,  0x65, 0x00, 0x41, 0x53,  0x53, 0x65, 0x74, 0x4E,
   0x61, 0x74, 0x69, 0x76,  0x65, 0x41, 0x63, 0x63,  0x65, 0x73, 0x73, 0x6F,  0x72, 0x00, 0x4F, 0x62,
-  0x6A, 0x65, 0x63, 0x74,  0x00, 0x70, 0x72, 0x6F,  0x74, 0x6F, 0x74, 0x79,  0x70, 0x65, 0x00, 0x74,
-  0x6F, 0x4C, 0x6F, 0x63,  0x61, 0x6C, 0x65, 0x53,  0x74, 0x72, 0x69, 0x6E,  0x67, 0x00, 0x74, 0x68,
-  0x69, 0x73, 0x00, 0x74,  0x6F, 0x53, 0x74, 0x72,  0x69, 0x6E, 0x67, 0x00,  0x41, 0x53, 0x53, 0x65,
-  0x74, 0x50, 0x72, 0x6F,  0x70, 0x46, 0x6C, 0x61,  0x67, 0x73, 0x00, 0x42,  0x6F, 0x6F, 0x6C, 0x65,
-  0x61, 0x6E, 0x00, 0x41,  0x53, 0x63, 0x6F, 0x6E,  0x73, 0x74, 0x72, 0x75,  0x63, 0x74, 0x6F, 0x72,
-  0x00, 0x76, 0x61, 0x6C,  0x75, 0x65, 0x4F, 0x66,  0x2C, 0x74, 0x6F, 0x53,  0x74, 0x72, 0x69, 0x6E,
-  0x67, 0x00, 0x4E, 0x75,  0x6D, 0x62, 0x65, 0x72,  0x00, 0x4E, 0x61, 0x4E,  0x00, 0x50, 0x4F, 0x53,
-  0x49, 0x54, 0x49, 0x56,  0x45, 0x5F, 0x49, 0x4E,  0x46, 0x49, 0x4E, 0x49,  0x54, 0x59, 0x00, 0x49,
-  0x6E, 0x66, 0x69, 0x6E,  0x69, 0x74, 0x79, 0x00,  0x4E, 0x45, 0x47, 0x41,  0x54, 0x49, 0x56, 0x45,
-  0x5F, 0x49, 0x4E, 0x46,  0x49, 0x4E, 0x49, 0x54,  0x59, 0x00, 0x4D, 0x49,  0x4E, 0x5F, 0x56, 0x41,
-  0x4C, 0x55, 0x45, 0x00,  0x4D, 0x41, 0x58, 0x5F,  0x56, 0x41, 0x4C, 0x55,  0x45, 0x00, 0x53, 0x74,
-  0x72, 0x69, 0x6E, 0x67,  0x00, 0x76, 0x61, 0x6C,  0x75, 0x65, 0x4F, 0x66,  0x2C, 0x74, 0x6F, 0x53,
-  0x74, 0x72, 0x69, 0x6E,  0x67, 0x2C, 0x74, 0x6F,  0x55, 0x70, 0x70, 0x65,  0x72, 0x43, 0x61, 0x73,
-  0x65, 0x2C, 0x74, 0x6F,  0x4C, 0x6F, 0x77, 0x65,  0x72, 0x43, 0x61, 0x73,  0x65, 0x2C, 0x63, 0x68,
-  0x61, 0x72, 0x41, 0x74,  0x2C, 0x63, 0x68, 0x61,  0x72, 0x43, 0x6F, 0x64,  0x65, 0x41, 0x74, 0x2C,
-  0x63, 0x6F, 0x6E, 0x63,  0x61, 0x74, 0x2C, 0x69,  0x6E, 0x64, 0x65, 0x78,  0x4F, 0x66, 0x2C, 0x6C,
-  0x61, 0x73, 0x74, 0x49,  0x6E, 0x64, 0x65, 0x78,  0x4F, 0x66, 0x2C, 0x73,  0x6C, 0x69, 0x63, 0x65,
-  0x2C, 0x73, 0x75, 0x62,  0x73, 0x74, 0x72, 0x69,  0x6E, 0x67, 0x2C, 0x73,  0x70, 0x6C, 0x69, 0x74,
-  0x2C, 0x73, 0x75, 0x62,  0x73, 0x74, 0x72, 0x00,  0x66, 0x72, 0x6F, 0x6D,  0x43, 0x68, 0x61, 0x72,
-  0x43, 0x6F, 0x64, 0x65,  0x00, 0x4D, 0x61, 0x74,  0x68, 0x00, 0x45, 0x00,  0x4C, 0x4E, 0x31, 0x30,
-  0x00, 0x4C, 0x4E, 0x32,  0x00, 0x4C, 0x4F, 0x47,  0x31, 0x30, 0x45, 0x00,  0x4C, 0x4F, 0x47, 0x32,
-  0x45, 0x00, 0x50, 0x49,  0x00, 0x53, 0x51, 0x52,  0x54, 0x31, 0x5F, 0x32,  0x00, 0x53, 0x51, 0x52,
-  0x54, 0x32, 0x00, 0x61,  0x62, 0x73, 0x2C, 0x6D,  0x69, 0x6E, 0x2C, 0x6D,  0x61, 0x78, 0x2C, 0x73,
-  0x69, 0x6E, 0x2C, 0x63,  0x6F, 0x73, 0x2C, 0x61,  0x74, 0x61, 0x6E, 0x32,  0x2C, 0x74, 0x61, 0x6E,
-  0x2C, 0x65, 0x78, 0x70,  0x2C, 0x6C, 0x6F, 0x67,  0x2C, 0x73, 0x71, 0x72,  0x74, 0x2C, 0x72, 0x6F,
-  0x75, 0x6E, 0x64, 0x2C,  0x72, 0x61, 0x6E, 0x64,  0x6F, 0x6D, 0x2C, 0x66,  0x6C, 0x6F, 0x6F, 0x72,
-  0x2C, 0x63, 0x65, 0x69,  0x6C, 0x2C, 0x61, 0x74,  0x61, 0x6E, 0x2C, 0x61,  0x73, 0x69, 0x6E, 0x2C,
-  0x61, 0x63, 0x6F, 0x73,  0x2C, 0x70, 0x6F, 0x77,  0x00, 0x44, 0x61, 0x74,  0x65, 0x00, 0x67, 0x65,
-  0x74, 0x46, 0x75, 0x6C,  0x6C, 0x59, 0x65, 0x61,  0x72, 0x2C, 0x67, 0x65,  0x74, 0x59, 0x65, 0x61,
-  0x72, 0x2C, 0x67, 0x65,  0x74, 0x4D, 0x6F, 0x6E,  0x74, 0x68, 0x2C, 0x67,  0x65, 0x74, 0x44, 0x61,
-  0x74, 0x65, 0x2C, 0x67,  0x65, 0x74, 0x44, 0x61,  0x79, 0x2C, 0x67, 0x65,  0x74, 0x48, 0x6F, 0x75,
-  0x72, 0x73, 0x2C, 0x67,  0x65, 0x74, 0x4D, 0x69,  0x6E, 0x75, 0x74, 0x65,  0x73, 0x2C, 0x67, 0x65,
-  0x74, 0x53, 0x65, 0x63,  0x6F, 0x6E, 0x64, 0x73,  0x2C, 0x67, 0x65, 0x74,  0x4D, 0x69, 0x6C, 0x6C,
-  0x69, 0x73, 0x65, 0x63,  0x6F, 0x6E, 0x64, 0x73,  0x2C, 0x73, 0x65, 0x74,  0x46, 0x75, 0x6C, 0x6C,
-  0x59, 0x65, 0x61, 0x72,  0x2C, 0x73, 0x65, 0x74,  0x4D, 0x6F, 0x6E, 0x74,  0x68, 0x2C, 0x73, 0x65,
-  0x74, 0x44, 0x61, 0x74,  0x65, 0x2C, 0x73, 0x65,  0x74, 0x48, 0x6F, 0x75,  0x72, 0x73, 0x2C, 0x73,
-  0x65, 0x74, 0x4D, 0x69,  0x6E, 0x75, 0x74, 0x65,  0x73, 0x2C, 0x73, 0x65,  0x74, 0x53, 0x65, 0x63,
-  0x6F, 0x6E, 0x64, 0x73,  0x2C, 0x73, 0x65, 0x74,  0x4D, 0x69, 0x6C, 0x6C,  0x69, 0x73, 0x65, 0x63,
-  0x6F, 0x6E, 0x64, 0x73,  0x2C, 0x67, 0x65, 0x74,  0x54, 0x69, 0x6D, 0x65,  0x2C, 0x73, 0x65, 0x74,
-  0x54, 0x69, 0x6D, 0x65,  0x2C, 0x67, 0x65, 0x74,  0x54, 0x69, 0x6D, 0x65,  0x7A, 0x6F, 0x6E, 0x65,
-  0x4F, 0x66, 0x66, 0x73,  0x65, 0x74, 0x2C, 0x74,  0x6F, 0x53, 0x74, 0x72,  0x69, 0x6E, 0x67, 0x2C,
-  0x73, 0x65, 0x74, 0x59,  0x65, 0x61, 0x72, 0x00,  0x67, 0x65, 0x74, 0x55,  0x54, 0x43, 0x46, 0x75,
-  0x6C, 0x6C, 0x59, 0x65,  0x61, 0x72, 0x2C, 0x67,  0x65, 0x74, 0x55, 0x54,  0x43, 0x59, 0x65, 0x61,
-  0x72, 0x2C, 0x67, 0x65,  0x74, 0x55, 0x54, 0x43,  0x4D, 0x6F, 0x6E, 0x74,  0x68, 0x2C, 0x67, 0x65,
-  0x74, 0x55, 0x54, 0x43,  0x44, 0x61, 0x74, 0x65,  0x2C, 0x67, 0x65, 0x74,  0x55, 0x54, 0x43, 0x44,
-  0x61, 0x79, 0x2C, 0x67,  0x65, 0x74, 0x55, 0x54,  0x43, 0x48, 0x6F, 0x75,  0x72, 0x73, 0x2C, 0x67,
-  0x65, 0x74, 0x55, 0x54,  0x43, 0x4D, 0x69, 0x6E,  0x75, 0x74, 0x65, 0x73,  0x2C, 0x67, 0x65, 0x74,
-  0x55, 0x54, 0x43, 0x53,  0x65, 0x63, 0x6F, 0x6E,  0x64, 0x73, 0x2C, 0x67,  0x65, 0x74, 0x55, 0x54,
-  0x43, 0x4D, 0x69, 0x6C,  0x6C, 0x69, 0x73, 0x65,  0x63, 0x6F, 0x6E, 0x64,  0x73, 0x2C, 0x73, 0x65,
-  0x74, 0x55, 0x54, 0x43,  0x46, 0x75, 0x6C, 0x6C,  0x59, 0x65, 0x61, 0x72,  0x2C, 0x73, 0x65, 0x74,
-  0x55, 0x54, 0x43, 0x4D,  0x6F, 0x6E, 0x74, 0x68,  0x2C, 0x73, 0x65, 0x74,  0x55, 0x54, 0x43, 0x44,
-  0x61, 0x74, 0x65, 0x2C,  0x73, 0x65, 0x74, 0x55,  0x54, 0x43, 0x48, 0x6F,  0x75, 0x72, 0x73, 0x2C,
-  0x73, 0x65, 0x74, 0x55,  0x54, 0x43, 0x4D, 0x69,  0x6E, 0x75, 0x74, 0x65,  0x73, 0x2C, 0x73, 0x65,
-  0x74, 0x55, 0x54, 0x43,  0x53, 0x65, 0x63, 0x6F,  0x6E, 0x64, 0x73, 0x2C,  0x73, 0x65, 0x74, 0x55,
-  0x54, 0x43, 0x4D, 0x69,  0x6C, 0x6C, 0x69, 0x73,  0x65, 0x63, 0x6F, 0x6E,  0x64, 0x73, 0x00, 0x76,
-  0x61, 0x6C, 0x75, 0x65,  0x4F, 0x66, 0x00, 0x67,  0x65, 0x74, 0x54, 0x69,  0x6D, 0x65, 0x00, 0x55,
-  0x54, 0x43, 0x00, 0x41,  0x72, 0x72, 0x61, 0x79,  0x00, 0x70, 0x75, 0x73,  0x68, 0x2C, 0x70, 0x6F,
-  0x70, 0x2C, 0x63, 0x6F,  0x6E, 0x63, 0x61, 0x74,  0x2C, 0x73, 0x68, 0x69,  0x66, 0x74, 0x2C, 0x75,
-  0x6E, 0x73, 0x68, 0x69,  0x66, 0x74, 0x2C, 0x73,  0x6C, 0x69, 0x63, 0x65,  0x2C, 0x6A, 0x6F, 0x69,
-  0x6E, 0x2C, 0x73, 0x70,  0x6C, 0x69, 0x63, 0x65,  0x2C, 0x74, 0x6F, 0x53,  0x74, 0x72, 0x69, 0x6E,
-  0x67, 0x2C, 0x73, 0x6F,  0x72, 0x74, 0x2C, 0x72,  0x65, 0x76, 0x65, 0x72,  0x73, 0x65, 0x2C, 0x73,
-  0x6F, 0x72, 0x74, 0x4F,  0x6E, 0x00, 0x43, 0x41,  0x53, 0x45, 0x49, 0x4E,  0x53, 0x45, 0x4E, 0x53,
-  0x49, 0x54, 0x49, 0x56,  0x45, 0x00, 0x44, 0x45,  0x53, 0x43, 0x45, 0x4E,  0x44, 0x49, 0x4E, 0x47,
-  0x00, 0x55, 0x4E, 0x49,  0x51, 0x55, 0x45, 0x53,  0x4F, 0x52, 0x54, 0x00,  0x52, 0x45, 0x54, 0x55,
-  0x52, 0x4E, 0x49, 0x4E,  0x44, 0x45, 0x58, 0x45,  0x44, 0x41, 0x52, 0x52,  0x41, 0x59, 0x00, 0x4E,
-  0x55, 0x4D, 0x45, 0x52,  0x49, 0x43, 0x00, 0x65,  0x73, 0x63, 0x61, 0x70,  0x65, 0x00, 0x75, 0x6E,
-  0x65, 0x73, 0x63, 0x61,  0x70, 0x65, 0x00, 0x70,  0x61, 0x72, 0x73, 0x65,  0x49, 0x6E, 0x74, 0x00,
-  0x69, 0x73, 0x4E, 0x61,  0x4E, 0x00, 0x69, 0x73,  0x46, 0x69, 0x6E, 0x69,  0x74, 0x65, 0x00, 0x96,
-  0x13, 0x00, 0x08, 0x00,  0x07, 0x00, 0x00, 0x00,  0x00, 0x07, 0x04, 0x00,  0x00, 0x00, 0x07, 0x02,
-  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x1D, 0x96,  0x13, 0x00, 0x08, 0x02,  0x07, 0x01, 0x00, 0x00,
-  0x00, 0x07, 0x04, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x1D, 0x96,
-  0x02, 0x00, 0x08, 0x03,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x04, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x05,
-  0x9B, 0x05, 0x00, 0x00,  0x00, 0x00, 0x12, 0x00,  0x96, 0x07, 0x00, 0x07,  0x00, 0x00, 0x00, 0x00,
-  0x08, 0x06, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x07,  0x52, 0x3E, 0x4F, 0x96,  0x08, 0x00, 0x07, 0x03,
-  0x00, 0x00, 0x00, 0x02,  0x08, 0x03, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x04,  0x4E, 0x96, 0x07, 0x00,
-  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x08, 0x3D,  0x17, 0x96, 0x08, 0x00,  0x07, 0x07, 0x00, 0x00,
-  0x00, 0x02, 0x08, 0x03,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x08, 0x3D,
-  0x17, 0x96, 0x13, 0x00,  0x08, 0x09, 0x07, 0x02,  0x00, 0x00, 0x00, 0x07,  0x6B, 0x00, 0x00, 0x00,
-  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x0A, 0x3D,  0x1D, 0x96, 0x09, 0x00,  0x08, 0x0B, 0x07, 0x6B,
-  0x00, 0x00, 0x00, 0x08,  0x09, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x04, 0x4E,  0x96, 0x07, 0x00, 0x07,
-  0x03, 0x00, 0x00, 0x00,  0x08, 0x00, 0x3D, 0x17,  0x96, 0x08, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,
-  0x02, 0x08, 0x09, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x04, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,
-  0x00, 0x00, 0x08, 0x08,  0x3D, 0x17, 0x96, 0x13,  0x00, 0x08, 0x0C, 0x07,  0x02, 0x00, 0x00, 0x00,
-  0x07, 0x6A, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x0A,  0x3D, 0x1D, 0x96, 0x09,
-  0x00, 0x08, 0x0B, 0x07,  0x6A, 0x00, 0x00, 0x00,  0x08, 0x0C, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x04,
-  0x4E, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x00, 0x3D,  0x17, 0x96, 0x08, 0x00,
-  0x07, 0x03, 0x00, 0x00,  0x00, 0x02, 0x08, 0x0C,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x04, 0x4E, 0x96,
-  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x08, 0x3D, 0x17, 0x96,  0x02, 0x00, 0x08, 0x0C,
-  0x1C, 0x96, 0x04, 0x00,  0x08, 0x0D, 0x08, 0x0D,  0x1C, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x0C, 0x1C,
-  0x96, 0x04, 0x00, 0x08,  0x0E, 0x08, 0x0F, 0x1C,  0x4F, 0x96, 0x02, 0x00,  0x08, 0x0C, 0x1C, 0x96,
-  0x04, 0x00, 0x08, 0x10,  0x08, 0x0F, 0x1C, 0x96,  0x05, 0x00, 0x07, 0xFF,  0xFF, 0xFF, 0xFF, 0x0C,
-  0x4F, 0x96, 0x02, 0x00,  0x08, 0x0C, 0x1C, 0x96,  0x07, 0x00, 0x08, 0x11,  0x07, 0x00, 0x00, 0x00,
-  0x00, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x0C, 0x1C,  0x96, 0x0B, 0x00, 0x08,  0x12, 0x06, 0xFF, 0xFF,
-  0xEF, 0x7F, 0xE2, 0xFF,  0xFF, 0xFF, 0x4F, 0x96,  0x08, 0x00, 0x07, 0x07,  0x00, 0x00, 0x00, 0x02,
-  0x08, 0x0C, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x08, 0x3D, 0x17, 0x96,
-  0x13, 0x00, 0x08, 0x13,  0x07, 0x00, 0x00, 0x00,  0x00, 0x07, 0xFB, 0x00,  0x00, 0x00, 0x07, 0x02,
-  0x00, 0x00, 0x00, 0x08,  0x0A, 0x3D, 0x1D, 0x96,  0x0E, 0x00, 0x07, 0x01,  0x00, 0x00, 0x00, 0x08,
-  0x14, 0x07, 0xFB, 0x00,  0x00, 0x00, 0x08, 0x13,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x04, 0x4E, 0x96,
-  0x07, 0x00, 0x07, 0x04,  0x00, 0x00, 0x00, 0x08,  0x00, 0x3D, 0x17, 0x96,  0x08, 0x00, 0x07, 0x03,
-  0x00, 0x00, 0x00, 0x02,  0x08, 0x13, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x04,  0x4E, 0x96, 0x07, 0x00,
-  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x08, 0x3D,  0x17, 0x96, 0x02, 0x00,  0x08, 0x13, 0x1C, 0x96,
-  0x13, 0x00, 0x08, 0x15,  0x07, 0x0E, 0x00, 0x00,  0x00, 0x07, 0xFB, 0x00,  0x00, 0x00, 0x07, 0x02,
-  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x4F, 0x96,  0x08, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x02,
-  0x08, 0x13, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x08, 0x3D, 0x17, 0x96,
-  0x5F, 0x00, 0x08, 0x16,  0x08, 0x17, 0x06, 0x0A,  0xBF, 0x05, 0x40, 0x74,  0x57, 0x14, 0x8B, 0x08,
-  0x18, 0x06, 0xB1, 0x6B,  0x02, 0x40, 0x1F, 0x55,  0xB5, 0xBB, 0x08, 0x19,  0x06, 0x42, 0x2E, 0xE6,
-  0x3F, 0xEC, 0x39, 0xFA,  0xFE, 0x08, 0x1A, 0x06,  0x7B, 0xCB, 0xDB, 0x3F,  0x11, 0xE5, 0x26, 0x15,
-  0x08, 0x1B, 0x06, 0x47,  0x15, 0xF7, 0x3F, 0xEF,  0x82, 0x2B, 0x65, 0x08,  0x1C, 0x06, 0xFB, 0x21,
-  0x09, 0x40, 0x11, 0x2D,  0x44, 0x54, 0x08, 0x1D,  0x06, 0x9E, 0xA0, 0xE6,  0x3F, 0xD1, 0x3B, 0x7F,
-  0x66, 0x08, 0x1E, 0x06,  0x9E, 0xA0, 0xF6, 0x3F,  0xE3, 0x3B, 0x7F, 0x66,  0x07, 0x08, 0x00, 0x00,
-  0x00, 0x43, 0x1D, 0x96,  0x09, 0x00, 0x08, 0x1F,  0x07, 0xC8, 0x00, 0x00,  0x00, 0x08, 0x16, 0x1C,
-  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x00, 0x3D, 0x17,  0x96, 0x08, 0x00, 0x07,
-  0x07, 0x00, 0x00, 0x00,  0x02, 0x08, 0x16, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,
-  0x08, 0x08, 0x3D, 0x17,  0x96, 0x13, 0x00, 0x08,  0x20, 0x07, 0x00, 0x01,  0x00, 0x00, 0x07, 0x67,
-  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x0A, 0x3D, 0x1D,  0x96, 0x09, 0x00, 0x08,
-  0x21, 0x07, 0x67, 0x00,  0x00, 0x00, 0x08, 0x20,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x04, 0x4E, 0x96,
-  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x00, 0x3D, 0x17, 0x96,  0x0E, 0x00, 0x07, 0x80,
-  0x00, 0x00, 0x00, 0x08,  0x22, 0x07, 0x67, 0x00,  0x00, 0x00, 0x08, 0x20,  0x1C, 0x96, 0x02, 0x00,
-  0x08, 0x04, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x04,  0x00, 0x00, 0x00, 0x08,  0x00, 0x3D, 0x17, 0x96,
-  0x02, 0x00, 0x08, 0x20,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x04, 0x4E, 0x96,  0x04, 0x00, 0x08, 0x23,
-  0x08, 0x20, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x04,  0x4E, 0x96, 0x02, 0x00,  0x08, 0x24, 0x4E, 0x4F,
-  0x96, 0x02, 0x00, 0x08,  0x20, 0x1C, 0x96, 0x13,  0x00, 0x08, 0x25, 0x07,  0x01, 0x01, 0x00, 0x00,
-  0x07, 0x67, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x4F, 0x96, 0x08,
-  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x02, 0x08,  0x20, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x04, 0x4E,
-  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x08, 0x3D, 0x17,  0x96, 0x08, 0x00, 0x07,
-  0x07, 0x00, 0x00, 0x00,  0x02, 0x08, 0x20, 0x1C,  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,
-  0x08, 0x08, 0x3D, 0x17,  0x96, 0x13, 0x00, 0x08,  0x26, 0x07, 0x00, 0x00,  0x00, 0x00, 0x07, 0xFC,
-  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x0A, 0x3D, 0x1D,  0x96, 0x0E, 0x00, 0x07,
-  0x01, 0x00, 0x00, 0x00,  0x08, 0x27, 0x07, 0xFC,  0x00, 0x00, 0x00, 0x08,  0x26, 0x1C, 0x96, 0x02,
-  0x00, 0x08, 0x04, 0x4E,  0x96, 0x07, 0x00, 0x07,  0x04, 0x00, 0x00, 0x00,  0x08, 0x00, 0x3D, 0x17,
-  0x96, 0x08, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x02, 0x08, 0x26, 0x1C,  0x96, 0x02, 0x00, 0x08,
-  0x04, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x08,  0x3D, 0x17, 0x96, 0x02,
-  0x00, 0x08, 0x26, 0x1C,  0x96, 0x07, 0x00, 0x08,  0x28, 0x07, 0x01, 0x00,  0x00, 0x00, 0x4F, 0x96,
-  0x02, 0x00, 0x08, 0x26,  0x1C, 0x96, 0x07, 0x00,  0x08, 0x29, 0x07, 0x02,  0x00, 0x00, 0x00, 0x4F,
-  0x96, 0x02, 0x00, 0x08,  0x26, 0x1C, 0x96, 0x07,  0x00, 0x08, 0x2A, 0x07,  0x04, 0x00, 0x00, 0x00,
-  0x4F, 0x96, 0x02, 0x00,  0x08, 0x26, 0x1C, 0x96,  0x07, 0x00, 0x08, 0x2B,  0x07, 0x08, 0x00, 0x00,
-  0x00, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x26, 0x1C,  0x96, 0x07, 0x00, 0x08,  0x2C, 0x07, 0x10, 0x00,
-  0x00, 0x00, 0x4F, 0x96,  0x13, 0x00, 0x08, 0x2D,  0x07, 0x00, 0x00, 0x00,  0x00, 0x07, 0x64, 0x00,
-  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x1D, 0x96,  0x13, 0x00, 0x08, 0x2E,
-  0x07, 0x01, 0x00, 0x00,  0x00, 0x07, 0x64, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,
-  0x01, 0x3D, 0x1D, 0x96,  0x13, 0x00, 0x08, 0x2F,  0x07, 0x02, 0x00, 0x00,  0x00, 0x07, 0x64, 0x00,
-  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x1D, 0x96,  0x13, 0x00, 0x08, 0x30,
-  0x07, 0x12, 0x00, 0x00,  0x00, 0x07, 0xC8, 0x00,  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,
-  0x01, 0x3D, 0x1D, 0x96,  0x13, 0x00, 0x08, 0x31,  0x07, 0x13, 0x00, 0x00,  0x00, 0x07, 0xC8, 0x00,
-  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x01, 0x3D, 0x1D, 0x96,  0x0D, 0x00, 0x07, 0x06,
-  0x00, 0x00, 0x00, 0x07,  0x01, 0x00, 0x00, 0x00,  0x02, 0x08, 0x06, 0x1C,  0x96, 0x07, 0x00, 0x07,
-  0x04, 0x00, 0x00, 0x00,  0x08, 0x08, 0x3D, 0x17,  0x00
+  0x6A, 0x65, 0x63, 0x74,  0x00, 0x70, 0x72, 0x6F,  0x74, 0x6F, 0x74, 0x79,  0x70, 0x65, 0x00, 0x36,
+  0x77, 0x61, 0x74, 0x63,  0x68, 0x2C, 0x36, 0x75,  0x6E, 0x77, 0x61, 0x74,  0x63, 0x68, 0x2C, 0x36,
+  0x61, 0x64, 0x64, 0x50,  0x72, 0x6F, 0x70, 0x65,  0x72, 0x74, 0x79, 0x2C,  0x76, 0x61, 0x6C, 0x75,
+  0x65, 0x4F, 0x66, 0x2C,  0x74, 0x6F, 0x53, 0x74,  0x72, 0x69, 0x6E, 0x67,  0x2C, 0x36, 0x68, 0x61,
+  0x73, 0x4F, 0x77, 0x6E,  0x50, 0x72, 0x6F, 0x70,  0x65, 0x72, 0x74, 0x79,  0x2C, 0x36, 0x69, 0x73,
+  0x50, 0x72, 0x6F, 0x74,  0x6F, 0x74, 0x79, 0x70,  0x65, 0x4F, 0x66, 0x2C,  0x36, 0x69, 0x73, 0x50,
+  0x72, 0x6F, 0x70, 0x65,  0x72, 0x74, 0x79, 0x45,  0x6E, 0x75, 0x6D, 0x65,  0x72, 0x61, 0x62, 0x6C,
+  0x65, 0x00, 0x74, 0x6F,  0x4C, 0x6F, 0x63, 0x61,  0x6C, 0x65, 0x53, 0x74,  0x72, 0x69, 0x6E, 0x67,
+  0x00, 0x74, 0x68, 0x69,  0x73, 0x00, 0x74, 0x6F,  0x53, 0x74, 0x72, 0x69,  0x6E, 0x67, 0x00, 0x41,
+  0x53, 0x53, 0x65, 0x74,  0x50, 0x72, 0x6F, 0x70,  0x46, 0x6C, 0x61, 0x67,  0x73, 0x00, 0x42, 0x6F,
+  0x6F, 0x6C, 0x65, 0x61,  0x6E, 0x00, 0x41, 0x53,  0x63, 0x6F, 0x6E, 0x73,  0x74, 0x72, 0x75, 0x63,
+  0x74, 0x6F, 0x72, 0x00,  0x76, 0x61, 0x6C, 0x75,  0x65, 0x4F, 0x66, 0x2C,  0x74, 0x6F, 0x53, 0x74,
+  0x72, 0x69, 0x6E, 0x67,  0x00, 0x4E, 0x75, 0x6D,  0x62, 0x65, 0x72, 0x00,  0x4E, 0x61, 0x4E, 0x00,
+  0x50, 0x4F, 0x53, 0x49,  0x54, 0x49, 0x56, 0x45,  0x5F, 0x49, 0x4E, 0x46,  0x49, 0x4E, 0x49, 0x54,
+  0x59, 0x00, 0x49, 0x6E,  0x66, 0x69, 0x6E, 0x69,  0x74, 0x79, 0x00, 0x4E,  0x45, 0x47, 0x41, 0x54,
+  0x49, 0x56, 0x45, 0x5F,  0x49, 0x4E, 0x46, 0x49,  0x4E, 0x49, 0x54, 0x59,  0x00, 0x4D, 0x49, 0x4E,
+  0x5F, 0x56, 0x41, 0x4C,  0x55, 0x45, 0x00, 0x4D,  0x41, 0x58, 0x5F, 0x56,  0x41, 0x4C, 0x55, 0x45,
+  0x00, 0x53, 0x74, 0x72,  0x69, 0x6E, 0x67, 0x00,  0x76, 0x61, 0x6C, 0x75,  0x65, 0x4F, 0x66, 0x2C,
+  0x74, 0x6F, 0x53, 0x74,  0x72, 0x69, 0x6E, 0x67,  0x2C, 0x74, 0x6F, 0x55,  0x70, 0x70, 0x65, 0x72,
+  0x43, 0x61, 0x73, 0x65,  0x2C, 0x74, 0x6F, 0x4C,  0x6F, 0x77, 0x65, 0x72,  0x43, 0x61, 0x73, 0x65,
+  0x2C, 0x63, 0x68, 0x61,  0x72, 0x41, 0x74, 0x2C,  0x63, 0x68, 0x61, 0x72,  0x43, 0x6F, 0x64, 0x65,
+  0x41, 0x74, 0x2C, 0x63,  0x6F, 0x6E, 0x63, 0x61,  0x74, 0x2C, 0x69, 0x6E,  0x64, 0x65, 0x78, 0x4F,
+  0x66, 0x2C, 0x6C, 0x61,  0x73, 0x74, 0x49, 0x6E,  0x64, 0x65, 0x78, 0x4F,  0x66, 0x2C, 0x73, 0x6C,
+  0x69, 0x63, 0x65, 0x2C,  0x73, 0x75, 0x62, 0x73,  0x74, 0x72, 0x69, 0x6E,  0x67, 0x2C, 0x73, 0x70,
+  0x6C, 0x69, 0x74, 0x2C,  0x73, 0x75, 0x62, 0x73,  0x74, 0x72, 0x00, 0x66,  0x72, 0x6F, 0x6D, 0x43,
+  0x68, 0x61, 0x72, 0x43,  0x6F, 0x64, 0x65, 0x00,  0x4D, 0x61, 0x74, 0x68,  0x00, 0x45, 0x00, 0x4C,
+  0x4E, 0x31, 0x30, 0x00,  0x4C, 0x4E, 0x32, 0x00,  0x4C, 0x4F, 0x47, 0x31,  0x30, 0x45, 0x00, 0x4C,
+  0x4F, 0x47, 0x32, 0x45,  0x00, 0x50, 0x49, 0x00,  0x53, 0x51, 0x52, 0x54,  0x31, 0x5F, 0x32, 0x00,
+  0x53, 0x51, 0x52, 0x54,  0x32, 0x00, 0x61, 0x62,  0x73, 0x2C, 0x6D, 0x69,  0x6E, 0x2C, 0x6D, 0x61,
+  0x78, 0x2C, 0x73, 0x69,  0x6E, 0x2C, 0x63, 0x6F,  0x73, 0x2C, 0x61, 0x74,  0x61, 0x6E, 0x32, 0x2C,
+  0x74, 0x61, 0x6E, 0x2C,  0x65, 0x78, 0x70, 0x2C,  0x6C, 0x6F, 0x67, 0x2C,  0x73, 0x71, 0x72, 0x74,
+  0x2C, 0x72, 0x6F, 0x75,  0x6E, 0x64, 0x2C, 0x72,  0x61, 0x6E, 0x64, 0x6F,  0x6D, 0x2C, 0x66, 0x6C,
+  0x6F, 0x6F, 0x72, 0x2C,  0x63, 0x65, 0x69, 0x6C,  0x2C, 0x61, 0x74, 0x61,  0x6E, 0x2C, 0x61, 0x73,
+  0x69, 0x6E, 0x2C, 0x61,  0x63, 0x6F, 0x73, 0x2C,  0x70, 0x6F, 0x77, 0x00,  0x44, 0x61, 0x74, 0x65,
+  0x00, 0x67, 0x65, 0x74,  0x46, 0x75, 0x6C, 0x6C,  0x59, 0x65, 0x61, 0x72,  0x2C, 0x67, 0x65, 0x74,
+  0x59, 0x65, 0x61, 0x72,  0x2C, 0x67, 0x65, 0x74,  0x4D, 0x6F, 0x6E, 0x74,  0x68, 0x2C, 0x67, 0x65,
+  0x74, 0x44, 0x61, 0x74,  0x65, 0x2C, 0x67, 0x65,  0x74, 0x44, 0x61, 0x79,  0x2C, 0x67, 0x65, 0x74,
+  0x48, 0x6F, 0x75, 0x72,  0x73, 0x2C, 0x67, 0x65,  0x74, 0x4D, 0x69, 0x6E,  0x75, 0x74, 0x65, 0x73,
+  0x2C, 0x67, 0x65, 0x74,  0x53, 0x65, 0x63, 0x6F,  0x6E, 0x64, 0x73, 0x2C,  0x67, 0x65, 0x74, 0x4D,
+  0x69, 0x6C, 0x6C, 0x69,  0x73, 0x65, 0x63, 0x6F,  0x6E, 0x64, 0x73, 0x2C,  0x73, 0x65, 0x74, 0x46,
+  0x75, 0x6C, 0x6C, 0x59,  0x65, 0x61, 0x72, 0x2C,  0x73, 0x65, 0x74, 0x4D,  0x6F, 0x6E, 0x74, 0x68,
+  0x2C, 0x73, 0x65, 0x74,  0x44, 0x61, 0x74, 0x65,  0x2C, 0x73, 0x65, 0x74,  0x48, 0x6F, 0x75, 0x72,
+  0x73, 0x2C, 0x73, 0x65,  0x74, 0x4D, 0x69, 0x6E,  0x75, 0x74, 0x65, 0x73,  0x2C, 0x73, 0x65, 0x74,
+  0x53, 0x65, 0x63, 0x6F,  0x6E, 0x64, 0x73, 0x2C,  0x73, 0x65, 0x74, 0x4D,  0x69, 0x6C, 0x6C, 0x69,
+  0x73, 0x65, 0x63, 0x6F,  0x6E, 0x64, 0x73, 0x2C,  0x67, 0x65, 0x74, 0x54,  0x69, 0x6D, 0x65, 0x2C,
+  0x73, 0x65, 0x74, 0x54,  0x69, 0x6D, 0x65, 0x2C,  0x67, 0x65, 0x74, 0x54,  0x69, 0x6D, 0x65, 0x7A,
+  0x6F, 0x6E, 0x65, 0x4F,  0x66, 0x66, 0x73, 0x65,  0x74, 0x2C, 0x74, 0x6F,  0x53, 0x74, 0x72, 0x69,
+  0x6E, 0x67, 0x2C, 0x73,  0x65, 0x74, 0x59, 0x65,  0x61, 0x72, 0x00, 0x67,  0x65, 0x74, 0x55, 0x54,
+  0x43, 0x46, 0x75, 0x6C,  0x6C, 0x59, 0x65, 0x61,  0x72, 0x2C, 0x67, 0x65,  0x74, 0x55, 0x54, 0x43,
+  0x59, 0x65, 0x61, 0x72,  0x2C, 0x67, 0x65, 0x74,  0x55, 0x54, 0x43, 0x4D,  0x6F, 0x6E, 0x74, 0x68,
+  0x2C, 0x67, 0x65, 0x74,  0x55, 0x54, 0x43, 0x44,  0x61, 0x74, 0x65, 0x2C,  0x67, 0x65, 0x74, 0x55,
+  0x54, 0x43, 0x44, 0x61,  0x79, 0x2C, 0x67, 0x65,  0x74, 0x55, 0x54, 0x43,  0x48, 0x6F, 0x75, 0x72,
+  0x73, 0x2C, 0x67, 0x65,  0x74, 0x55, 0x54, 0x43,  0x4D, 0x69, 0x6E, 0x75,  0x74, 0x65, 0x73, 0x2C,
+  0x67, 0x65, 0x74, 0x55,  0x54, 0x43, 0x53, 0x65,  0x63, 0x6F, 0x6E, 0x64,  0x73, 0x2C, 0x67, 0x65,
+  0x74, 0x55, 0x54, 0x43,  0x4D, 0x69, 0x6C, 0x6C,  0x69, 0x73, 0x65, 0x63,  0x6F, 0x6E, 0x64, 0x73,
+  0x2C, 0x73, 0x65, 0x74,  0x55, 0x54, 0x43, 0x46,  0x75, 0x6C, 0x6C, 0x59,  0x65, 0x61, 0x72, 0x2C,
+  0x73, 0x65, 0x74, 0x55,  0x54, 0x43, 0x4D, 0x6F,  0x6E, 0x74, 0x68, 0x2C,  0x73, 0x65, 0x74, 0x55,
+  0x54, 0x43, 0x44, 0x61,  0x74, 0x65, 0x2C, 0x73,  0x65, 0x74, 0x55, 0x54,  0x43, 0x48, 0x6F, 0x75,
+  0x72, 0x73, 0x2C, 0x73,  0x65, 0x74, 0x55, 0x54,  0x43, 0x4D, 0x69, 0x6E,  0x75, 0x74, 0x65, 0x73,
+  0x2C, 0x73, 0x65, 0x74,  0x55, 0x54, 0x43, 0x53,  0x65, 0x63, 0x6F, 0x6E,  0x64, 0x73, 0x2C, 0x73,
+  0x65, 0x74, 0x55, 0x54,  0x43, 0x4D, 0x69, 0x6C,  0x6C, 0x69, 0x73, 0x65,  0x63, 0x6F, 0x6E, 0x64,
+  0x73, 0x00, 0x76, 0x61,  0x6C, 0x75, 0x65, 0x4F,  0x66, 0x00, 0x67, 0x65,  0x74, 0x54, 0x69, 0x6D,
+  0x65, 0x00, 0x55, 0x54,  0x43, 0x00, 0x41, 0x72,  0x72, 0x61, 0x79, 0x00,  0x70, 0x75, 0x73, 0x68,
+  0x2C, 0x70, 0x6F, 0x70,  0x2C, 0x63, 0x6F, 0x6E,  0x63, 0x61, 0x74, 0x2C,  0x73, 0x68, 0x69, 0x66,
+  0x74, 0x2C, 0x75, 0x6E,  0x73, 0x68, 0x69, 0x66,  0x74, 0x2C, 0x73, 0x6C,  0x69, 0x63, 0x65, 0x2C,
+  0x6A, 0x6F, 0x69, 0x6E,  0x2C, 0x73, 0x70, 0x6C,  0x69, 0x63, 0x65, 0x2C,  0x74, 0x6F, 0x53, 0x74,
+  0x72, 0x69, 0x6E, 0x67,  0x2C, 0x73, 0x6F, 0x72,  0x74, 0x2C, 0x72, 0x65,  0x76, 0x65, 0x72, 0x73,
+  0x65, 0x2C, 0x73, 0x6F,  0x72, 0x74, 0x4F, 0x6E,  0x00, 0x43, 0x41, 0x53,  0x45, 0x49, 0x4E, 0x53,
+  0x45, 0x4E, 0x53, 0x49,  0x54, 0x49, 0x56, 0x45,  0x00, 0x44, 0x45, 0x53,  0x43, 0x45, 0x4E, 0x44,
+  0x49, 0x4E, 0x47, 0x00,  0x55, 0x4E, 0x49, 0x51,  0x55, 0x45, 0x53, 0x4F,  0x52, 0x54, 0x00, 0x52,
+  0x45, 0x54, 0x55, 0x52,  0x4E, 0x49, 0x4E, 0x44,  0x45, 0x58, 0x45, 0x44,  0x41, 0x52, 0x52, 0x41,
+  0x59, 0x00, 0x4E, 0x55,  0x4D, 0x45, 0x52, 0x49,  0x43, 0x00, 0x65, 0x73,  0x63, 0x61, 0x70, 0x65,
+  0x00, 0x75, 0x6E, 0x65,  0x73, 0x63, 0x61, 0x70,  0x65, 0x00, 0x70, 0x61,  0x72, 0x73, 0x65, 0x49,
+  0x6E, 0x74, 0x00, 0x69,  0x73, 0x4E, 0x61, 0x4E,  0x00, 0x69, 0x73, 0x46,  0x69, 0x6E, 0x69, 0x74,
+  0x65, 0x00, 0x96, 0x13,  0x00, 0x08, 0x00, 0x07,  0x00, 0x00, 0x00, 0x00,  0x07, 0x04, 0x00, 0x00,
+  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,  0x3D, 0x1D, 0x96, 0x13,  0x00, 0x08, 0x02, 0x07,
+  0x01, 0x00, 0x00, 0x00,  0x07, 0x04, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x01,
+  0x3D, 0x1D, 0x96, 0x09,  0x00, 0x08, 0x05, 0x07,  0x65, 0x00, 0x00, 0x00,  0x08, 0x03, 0x1C, 0x96,
+  0x02, 0x00, 0x08, 0x04,  0x4E, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x00, 0x3D,
+  0x17, 0x96, 0x02, 0x00,  0x08, 0x03, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x04,  0x4E, 0x96, 0x02, 0x00,
+  0x08, 0x06, 0x9B, 0x05,  0x00, 0x00, 0x00, 0x00,  0x12, 0x00, 0x96, 0x07,  0x00, 0x07, 0x00, 0x00,
+  0x00, 0x00, 0x08, 0x07,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x08, 0x52, 0x3E,  0x4F, 0x96, 0x08, 0x00,
+  0x07, 0x03, 0x00, 0x00,  0x00, 0x02, 0x08, 0x03,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x04, 0x4E, 0x96,
+  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x09, 0x3D, 0x17, 0x96,  0x08, 0x00, 0x07, 0x07,
+  0x00, 0x00, 0x00, 0x02,  0x08, 0x03, 0x1C, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,
+  0x09, 0x3D, 0x17, 0x96,  0x13, 0x00, 0x08, 0x0A,  0x07, 0x02, 0x00, 0x00,  0x00, 0x07, 0x6B, 0x00,
+  0x00, 0x00, 0x07, 0x02,  0x00, 0x00, 0x00, 0x08,  0x0B, 0x3D, 0x1D, 0x96,  0x09, 0x00, 0x08, 0x0C,
+  0x07, 0x6B, 0x00, 0x00,  0x00, 0x08, 0x0A, 0x1C,  0x96, 0x02, 0x00, 0x08,  0x04, 0x4E, 0x96, 0x07,
+  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x00,  0x3D, 0x17, 0x96, 0x08,  0x00, 0x07, 0x03, 0x00,
+  0x00, 0x00, 0x02, 0x08,  0x0A, 0x1C, 0x96, 0x02,  0x00, 0x08, 0x04, 0x4E,  0x96, 0x07, 0x00, 0x07,
+  0x03, 0x00, 0x00, 0x00,  0x08, 0x09, 0x3D, 0x17,  0x96, 0x13, 0x00, 0x08,  0x0D, 0x07, 0x02, 0x00,
+  0x00, 0x00, 0x07, 0x6A,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x0B, 0x3D, 0x1D,
+  0x96, 0x09, 0x00, 0x08,  0x0C, 0x07, 0x6A, 0x00,  0x00, 0x00, 0x08, 0x0D,  0x1C, 0x96, 0x02, 0x00,
+  0x08, 0x04, 0x4E, 0x96,  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x00, 0x3D, 0x17, 0x96,
+  0x08, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x02,  0x08, 0x0D, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x04,
+  0x4E, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x09, 0x3D,  0x17, 0x96, 0x02, 0x00,
+  0x08, 0x0D, 0x1C, 0x96,  0x04, 0x00, 0x08, 0x0E,  0x08, 0x0E, 0x1C, 0x4F,  0x96, 0x02, 0x00, 0x08,
+  0x0D, 0x1C, 0x96, 0x04,  0x00, 0x08, 0x0F, 0x08,  0x10, 0x1C, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x0D,
+  0x1C, 0x96, 0x04, 0x00,  0x08, 0x11, 0x08, 0x10,  0x1C, 0x96, 0x05, 0x00,  0x07, 0xFF, 0xFF, 0xFF,
+  0xFF, 0x0C, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x0D,  0x1C, 0x96, 0x07, 0x00,  0x08, 0x12, 0x07, 0x00,
+  0x00, 0x00, 0x00, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x0D, 0x1C, 0x96, 0x0B,  0x00, 0x08, 0x13, 0x06,
+  0xFF, 0xFF, 0xEF, 0x7F,  0xE2, 0xFF, 0xFF, 0xFF,  0x4F, 0x96, 0x08, 0x00,  0x07, 0x07, 0x00, 0x00,
+  0x00, 0x02, 0x08, 0x0D,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x09, 0x3D,
+  0x17, 0x96, 0x13, 0x00,  0x08, 0x14, 0x07, 0x00,  0x00, 0x00, 0x00, 0x07,  0xFB, 0x00, 0x00, 0x00,
+  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x0B, 0x3D,  0x1D, 0x96, 0x0E, 0x00,  0x07, 0x01, 0x00, 0x00,
+  0x00, 0x08, 0x15, 0x07,  0xFB, 0x00, 0x00, 0x00,  0x08, 0x14, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x04,
+  0x4E, 0x96, 0x07, 0x00,  0x07, 0x04, 0x00, 0x00,  0x00, 0x08, 0x00, 0x3D,  0x17, 0x96, 0x08, 0x00,
+  0x07, 0x03, 0x00, 0x00,  0x00, 0x02, 0x08, 0x14,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x04, 0x4E, 0x96,
+  0x07, 0x00, 0x07, 0x03,  0x00, 0x00, 0x00, 0x08,  0x09, 0x3D, 0x17, 0x96,  0x02, 0x00, 0x08, 0x14,
+  0x1C, 0x96, 0x13, 0x00,  0x08, 0x16, 0x07, 0x0E,  0x00, 0x00, 0x00, 0x07,  0xFB, 0x00, 0x00, 0x00,
+  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x4F, 0x96, 0x08, 0x00,  0x07, 0x03, 0x00, 0x00,
+  0x00, 0x02, 0x08, 0x14,  0x1C, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x09, 0x3D,
+  0x17, 0x96, 0x5F, 0x00,  0x08, 0x17, 0x08, 0x18,  0x06, 0x0A, 0xBF, 0x05,  0x40, 0x74, 0x57, 0x14,
+  0x8B, 0x08, 0x19, 0x06,  0xB1, 0x6B, 0x02, 0x40,  0x1F, 0x55, 0xB5, 0xBB,  0x08, 0x1A, 0x06, 0x42,
+  0x2E, 0xE6, 0x3F, 0xEC,  0x39, 0xFA, 0xFE, 0x08,  0x1B, 0x06, 0x7B, 0xCB,  0xDB, 0x3F, 0x11, 0xE5,
+  0x26, 0x15, 0x08, 0x1C,  0x06, 0x47, 0x15, 0xF7,  0x3F, 0xEF, 0x82, 0x2B,  0x65, 0x08, 0x1D, 0x06,
+  0xFB, 0x21, 0x09, 0x40,  0x11, 0x2D, 0x44, 0x54,  0x08, 0x1E, 0x06, 0x9E,  0xA0, 0xE6, 0x3F, 0xD1,
+  0x3B, 0x7F, 0x66, 0x08,  0x1F, 0x06, 0x9E, 0xA0,  0xF6, 0x3F, 0xE3, 0x3B,  0x7F, 0x66, 0x07, 0x08,
+  0x00, 0x00, 0x00, 0x43,  0x1D, 0x96, 0x09, 0x00,  0x08, 0x20, 0x07, 0xC8,  0x00, 0x00, 0x00, 0x08,
+  0x17, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x00,  0x3D, 0x17, 0x96, 0x08,
+  0x00, 0x07, 0x07, 0x00,  0x00, 0x00, 0x02, 0x08,  0x17, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,
+  0x00, 0x00, 0x08, 0x09,  0x3D, 0x17, 0x96, 0x13,  0x00, 0x08, 0x21, 0x07,  0x00, 0x01, 0x00, 0x00,
+  0x07, 0x67, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x0B,  0x3D, 0x1D, 0x96, 0x09,
+  0x00, 0x08, 0x22, 0x07,  0x67, 0x00, 0x00, 0x00,  0x08, 0x21, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x04,
+  0x4E, 0x96, 0x07, 0x00,  0x07, 0x03, 0x00, 0x00,  0x00, 0x08, 0x00, 0x3D,  0x17, 0x96, 0x0E, 0x00,
+  0x07, 0x80, 0x00, 0x00,  0x00, 0x08, 0x23, 0x07,  0x67, 0x00, 0x00, 0x00,  0x08, 0x21, 0x1C, 0x96,
+  0x02, 0x00, 0x08, 0x04,  0x4E, 0x96, 0x07, 0x00,  0x07, 0x04, 0x00, 0x00,  0x00, 0x08, 0x00, 0x3D,
+  0x17, 0x96, 0x02, 0x00,  0x08, 0x21, 0x1C, 0x96,  0x02, 0x00, 0x08, 0x04,  0x4E, 0x96, 0x04, 0x00,
+  0x08, 0x24, 0x08, 0x21,  0x1C, 0x96, 0x02, 0x00,  0x08, 0x04, 0x4E, 0x96,  0x02, 0x00, 0x08, 0x25,
+  0x4E, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x21, 0x1C,  0x96, 0x13, 0x00, 0x08,  0x26, 0x07, 0x01, 0x01,
+  0x00, 0x00, 0x07, 0x67,  0x00, 0x00, 0x00, 0x07,  0x02, 0x00, 0x00, 0x00,  0x08, 0x01, 0x3D, 0x4F,
+  0x96, 0x08, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x02, 0x08, 0x21, 0x1C,  0x96, 0x02, 0x00, 0x08,
+  0x04, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x08, 0x09,  0x3D, 0x17, 0x96, 0x08,
+  0x00, 0x07, 0x07, 0x00,  0x00, 0x00, 0x02, 0x08,  0x21, 0x1C, 0x96, 0x07,  0x00, 0x07, 0x03, 0x00,
+  0x00, 0x00, 0x08, 0x09,  0x3D, 0x17, 0x96, 0x13,  0x00, 0x08, 0x27, 0x07,  0x00, 0x00, 0x00, 0x00,
+  0x07, 0xFC, 0x00, 0x00,  0x00, 0x07, 0x02, 0x00,  0x00, 0x00, 0x08, 0x0B,  0x3D, 0x1D, 0x96, 0x0E,
+  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x08, 0x28,  0x07, 0xFC, 0x00, 0x00,  0x00, 0x08, 0x27, 0x1C,
+  0x96, 0x02, 0x00, 0x08,  0x04, 0x4E, 0x96, 0x07,  0x00, 0x07, 0x04, 0x00,  0x00, 0x00, 0x08, 0x00,
+  0x3D, 0x17, 0x96, 0x08,  0x00, 0x07, 0x03, 0x00,  0x00, 0x00, 0x02, 0x08,  0x27, 0x1C, 0x96, 0x02,
+  0x00, 0x08, 0x04, 0x4E,  0x96, 0x07, 0x00, 0x07,  0x03, 0x00, 0x00, 0x00,  0x08, 0x09, 0x3D, 0x17,
+  0x96, 0x02, 0x00, 0x08,  0x27, 0x1C, 0x96, 0x07,  0x00, 0x08, 0x29, 0x07,  0x01, 0x00, 0x00, 0x00,
+  0x4F, 0x96, 0x02, 0x00,  0x08, 0x27, 0x1C, 0x96,  0x07, 0x00, 0x08, 0x2A,  0x07, 0x02, 0x00, 0x00,
+  0x00, 0x4F, 0x96, 0x02,  0x00, 0x08, 0x27, 0x1C,  0x96, 0x07, 0x00, 0x08,  0x2B, 0x07, 0x04, 0x00,
+  0x00, 0x00, 0x4F, 0x96,  0x02, 0x00, 0x08, 0x27,  0x1C, 0x96, 0x07, 0x00,  0x08, 0x2C, 0x07, 0x08,
+  0x00, 0x00, 0x00, 0x4F,  0x96, 0x02, 0x00, 0x08,  0x27, 0x1C, 0x96, 0x07,  0x00, 0x08, 0x2D, 0x07,
+  0x10, 0x00, 0x00, 0x00,  0x4F, 0x96, 0x13, 0x00,  0x08, 0x2E, 0x07, 0x00,  0x00, 0x00, 0x00, 0x07,
+  0x64, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x1D, 0x96, 0x13, 0x00,
+  0x08, 0x2F, 0x07, 0x01,  0x00, 0x00, 0x00, 0x07,  0x64, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,
+  0x00, 0x08, 0x01, 0x3D,  0x1D, 0x96, 0x13, 0x00,  0x08, 0x30, 0x07, 0x02,  0x00, 0x00, 0x00, 0x07,
+  0x64, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x1D, 0x96, 0x13, 0x00,
+  0x08, 0x31, 0x07, 0x12,  0x00, 0x00, 0x00, 0x07,  0xC8, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,
+  0x00, 0x08, 0x01, 0x3D,  0x1D, 0x96, 0x13, 0x00,  0x08, 0x32, 0x07, 0x13,  0x00, 0x00, 0x00, 0x07,
+  0xC8, 0x00, 0x00, 0x00,  0x07, 0x02, 0x00, 0x00,  0x00, 0x08, 0x01, 0x3D,  0x1D, 0x96, 0x0D, 0x00,
+  0x07, 0x06, 0x00, 0x00,  0x00, 0x07, 0x01, 0x00,  0x00, 0x00, 0x02, 0x08,  0x07, 0x1C, 0x96, 0x07,
+  0x00, 0x07, 0x04, 0x00,  0x00, 0x00, 0x08, 0x09,  0x3D, 0x17, 0x00
 };
 
diff --git a/libswfdec/swfdec_as_object.c b/libswfdec/swfdec_as_object.c
index 658336c..e7086e6 100644
--- a/libswfdec/swfdec_as_object.c
+++ b/libswfdec/swfdec_as_object.c
@@ -1206,7 +1206,8 @@ swfdec_as_object_add_variable (SwfdecAsO
 
 /*** AS CODE ***/
 
-static void
+SWFDEC_AS_NATIVE (101, 2, swfdec_as_object_addProperty)
+void
 swfdec_as_object_addProperty (SwfdecAsContext *cx, SwfdecAsObject *object,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *retval)
 {
@@ -1298,7 +1299,7 @@ swfdec_as_object_get_prototype (SwfdecAs
   return SWFDEC_AS_VALUE_GET_OBJECT (&val);
 }
 
-SWFDEC_AS_NATIVE (101, 7, swfdec_as_object_isPrototypeOf)
+SWFDEC_AS_NATIVE (101, 6, swfdec_as_object_isPrototypeOf)
 void
 swfdec_as_object_isPrototypeOf (SwfdecAsContext *cx,
     SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
@@ -1403,14 +1404,16 @@ swfdec_as_object_unwatch (SwfdecAsContex
   }
 }
 
-static void
+SWFDEC_AS_NATIVE (101, 3, swfdec_as_object_valueOf)
+void
 swfdec_as_object_valueOf (SwfdecAsContext *cx, SwfdecAsObject *object,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *retval)
 {
   SWFDEC_AS_VALUE_SET_OBJECT (retval, object);
 }
 
-static void
+SWFDEC_AS_NATIVE (101, 4, swfdec_as_object_toString)
+void
 swfdec_as_object_toString (SwfdecAsContext *cx, SwfdecAsObject *object,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *retval)
 {
@@ -1451,25 +1454,6 @@ swfdec_as_object_init_context (SwfdecAsC
   SWFDEC_AS_VALUE_SET_OBJECT (&val, object);
   swfdec_as_object_set_variable_and_flags (proto, SWFDEC_AS_STR_constructor,
       &val, SWFDEC_AS_VARIABLE_HIDDEN | SWFDEC_AS_VARIABLE_PERMANENT);
-
-  if (version > 5) {
-    swfdec_as_object_add_function (proto, SWFDEC_AS_STR_addProperty, 
-	SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_addProperty, 0);
-    swfdec_as_object_add_function (proto, SWFDEC_AS_STR_hasOwnProperty, 
-	SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_hasOwnProperty, 0);
-    swfdec_as_object_add_function (proto, SWFDEC_AS_STR_isPropertyEnumerable,
-	SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_isPropertyEnumerable, 0);
-    swfdec_as_object_add_function (proto, SWFDEC_AS_STR_isPrototypeOf,
-	SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_isPrototypeOf, 0);
-    swfdec_as_object_add_function (proto, SWFDEC_AS_STR_watch,
-	SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_watch, 0);
-    swfdec_as_object_add_function (proto, SWFDEC_AS_STR_unwatch,
-	SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_unwatch, 0);
-  }
-  swfdec_as_object_add_function (proto, SWFDEC_AS_STR_valueOf, 
-      SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_valueOf, 0);
-  swfdec_as_object_add_function (proto, SWFDEC_AS_STR_toString, 
-      SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_toString, 0);
 }
 
 /**
diff-tree c8aa28f218da7807757b58226325fa1c26ed0bf7 (from 0432397927e47c6f2a0a02b8c95dec097ee79891)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Sep 12 21:52:00 2007 +0300

    Implement turning 6, 7 and 8 prefixes to propflags in ASSetNative function

diff --git a/libswfdec/swfdec_player_as.c b/libswfdec/swfdec_player_as.c
index 5d17a31..790655e 100644
--- a/libswfdec/swfdec_player_as.c
+++ b/libswfdec/swfdec_player_as.c
@@ -173,6 +173,7 @@ ASSetNative (SwfdecAsContext *cx, Swfdec
   SwfdecAsFunction *function;
   SwfdecAsObject *target;
   SwfdecAsValue val;
+  SwfdecAsVariableFlag flags;
   const char *s;
   char **names;
   guint i, x, y;
@@ -186,8 +187,15 @@ ASSetNative (SwfdecAsContext *cx, Swfdec
   names = g_strsplit (s, ",", -1);
   for (i = 0; names[i]; i++) {
     s = names[i];
-    if (s[0] >= '0' && s[0] <= '9') {
-      SWFDEC_FIXME ("implement the weird numbers");
+    flags = 0;
+    if (s[0] == '6') {
+      flags |= SWFDEC_AS_VARIABLE_VERSION_6_UP;
+      s++;
+    } else if (s[0] == '7') {
+      flags |= SWFDEC_AS_VARIABLE_VERSION_6_UP;
+      s++;
+    } else if (s[0] == '8') {
+      flags |= SWFDEC_AS_VARIABLE_VERSION_8_UP;
       s++;
     }
     function = swfdec_get_asnative (cx, x, y);
@@ -196,7 +204,8 @@ ASSetNative (SwfdecAsContext *cx, Swfdec
       break;
     }
     SWFDEC_AS_VALUE_SET_OBJECT (&val, SWFDEC_AS_OBJECT (function));
-    swfdec_as_object_set_variable (target, swfdec_as_context_get_string (cx, s), &val);
+    swfdec_as_object_set_variable_and_flags (target,
+	swfdec_as_context_get_string (cx, s), &val, flags);
     y++;
   }
   g_strfreev (names);
diff-tree 0432397927e47c6f2a0a02b8c95dec097ee79891 (from 9caf080ddff5b1337674d6fae84e49b6fb5a9d72)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Sep 12 21:40:13 2007 +0300

    Add a test for Object's isPrototypeOf method

diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index c0a12e0..967e505 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -748,6 +748,13 @@ EXTRA_DIST = \
 	object-ispropertyenumerable-6.swf.trace \
 	object-ispropertyenumerable-7.swf \
 	object-ispropertyenumerable-7.swf.trace \
+	object-isprototypeof.as \
+	object-isprototypeof-5.swf \
+	object-isprototypeof-5.swf.trace \
+	object-isprototypeof-6.swf \
+	object-isprototypeof-6.swf.trace \
+	object-isprototypeof-7.swf \
+	object-isprototypeof-7.swf.trace \
 	object-math-5.swf \
 	object-math-5.swf.trace \
 	object-math-6.swf \
diff --git a/test/trace/object-isprototypeof-5.swf b/test/trace/object-isprototypeof-5.swf
new file mode 100644
index 0000000..5223310
Binary files /dev/null and b/test/trace/object-isprototypeof-5.swf differ
diff --git a/test/trace/object-isprototypeof-5.swf.trace b/test/trace/object-isprototypeof-5.swf.trace
new file mode 100644
index 0000000..1b54a8a
--- /dev/null
+++ b/test/trace/object-isprototypeof-5.swf.trace
@@ -0,0 +1,154 @@
+valueOf called
+toString called
+toString called with 
+valueOf called with 
+0: valueOf!
+1: valueOf!
+2: valueOf!
+3: valueOf!
+4: valueOf!
+5: valueOf!
+6: valueOf!
+7: valueOf!
+8: valueOf!
+9: valueOf!
+10: valueOf!
+11: valueOf!
+12: valueOf!
+13: valueOf!
+14: valueOf!
+15: valueOf!
+16: valueOf!
+17: valueOf!
+18: valueOf!
+19: valueOf!
+20: valueOf!
+21: valueOf!
+21: toString!
+22: valueOf!
+23: valueOf!
+23: toString!
+24: valueOf!
+24: toString!
+25: valueOf!
+25: toString!
+26: valueOf!
+26: toString!
+undefined
+undefined
+undefined
+undefined
+undefined
+undefined
+undefined
+undefined
+undefined
+undefined
+Testing: (0)  (undefined)
+    
+Testing: (1) null (null)
+    
+Testing: (2) true (boolean)
+    
+Testing: (3) false (boolean)
+    
+Testing: (4) 0 (number)
+    
+Testing: (5) 1 (number)
+    
+Testing: (6) 0.5 (number)
+    
+Testing: (7) -1 (number)
+    
+Testing: (8) -0.5 (number)
+    
+Testing: (9) Infinity (number)
+    
+Testing: (10) -Infinity (number)
+    
+Testing: (11) NaN (number)
+    
+Testing: (12)  (string)
+    
+Testing: (13) 0 (string)
+    
+Testing: (14) -0 (string)
+    
+Testing: (15) 0.0 (string)
+    
+Testing: (16) 1 (string)
+    
+Testing: (17) Hello World! (string)
+    
+Testing: (18) true (string)
+    
+Testing: (19) _level0 (string)
+    
+Testing: (20) _level0 (movieclip)
+    
+Testing: (21) [object Object] (object)
+    
+Testing: (22)  (undefined)
+    
+Testing: (23) [type Object] (object)
+    
+Testing: (24) [type Object] (object)
+    
+Testing: (25) [object Object] (object)
+    
+Testing: (26)  (object)
+    
+Testing: (27)  (object)
+    
+Testing: (28) null (object)
+    
+Testing: (29) true (object)
+    
+Testing: (30) false (object)
+    
+Testing: (31) 0 (object)
+    
+Testing: (32) 1 (object)
+    
+Testing: (33) 0.5 (object)
+    
+Testing: (34) -1 (object)
+    
+Testing: (35) -0.5 (object)
+    
+Testing: (36) Infinity (object)
+    
+Testing: (37) -Infinity (object)
+    
+Testing: (38) NaN (object)
+    
+Testing: (39)  (object)
+    
+Testing: (40) 0 (object)
+    
+Testing: (41) -0 (object)
+    
+Testing: (42) 0.0 (object)
+    
+Testing: (43) 1 (object)
+    
+Testing: (44) Hello World! (object)
+    
+Testing: (45) true (object)
+    
+Testing: (46) _level0 (object)
+    
+Testing: (47) _level0 (object)
+    
+Testing: (48) [type Object] (object)
+    
+Testing: (49)  (object)
+    
+Testing: (50) [type Object] (object)
+    
+Testing: (51) [type Object] (object)
+    
+Testing: (52) [type Object] (object)
+    
+Testing: (53) [type Object] (object)
+    
diff --git a/test/trace/object-isprototypeof-6.swf b/test/trace/object-isprototypeof-6.swf
new file mode 100644
index 0000000..56d1c1e
Binary files /dev/null and b/test/trace/object-isprototypeof-6.swf differ
diff --git a/test/trace/object-isprototypeof-6.swf.trace b/test/trace/object-isprototypeof-6.swf.trace
new file mode 100644
index 0000000..e0126c0
--- /dev/null
+++ b/test/trace/object-isprototypeof-6.swf.trace
@@ -0,0 +1,155 @@
+valueOf called
+toString called
+toString called with 
+valueOf called with 
+0: valueOf!
+1: valueOf!
+2: valueOf!
+3: valueOf!
+4: valueOf!
+5: valueOf!
+6: valueOf!
+7: valueOf!
+8: valueOf!
+9: valueOf!
+10: valueOf!
+11: valueOf!
+12: valueOf!
+13: valueOf!
+14: valueOf!
+15: valueOf!
+16: valueOf!
+17: valueOf!
+18: valueOf!
+19: valueOf!
+20: valueOf!
+21: valueOf!
+21: toString!
+22: valueOf!
+22: toString!
+23: valueOf!
+23: toString!
+24: valueOf!
+24: toString!
+25: valueOf!
+25: toString!
+26: valueOf!
+26: toString!
+true
+true
+false
+false
+true
+true
+false
+false
+false
+true
+Testing: (0)  (undefined)
+false false false false false
+Testing: (1) null (null)
+false false false false false
+Testing: (2) true (boolean)
+true false false true false
+Testing: (3) false (boolean)
+true false false true false
+Testing: (4) 0 (number)
+true false true false false
+Testing: (5) 1 (number)
+true false true false false
+Testing: (6) 0.5 (number)
+true false true false false
+Testing: (7) -1 (number)
+true false true false false
+Testing: (8) -0.5 (number)
+true false true false false
+Testing: (9) Infinity (number)
+true false true false false
+Testing: (10) -Infinity (number)
+true false true false false
+Testing: (11) NaN (number)
+true false true false false
+Testing: (12)  (string)
+true true false false false
+Testing: (13) 0 (string)
+true true false false false
+Testing: (14) -0 (string)
+true true false false false
+Testing: (15) 0.0 (string)
+true true false false false
+Testing: (16) 1 (string)
+true true false false false
+Testing: (17) Hello World! (string)
+true true false false false
+Testing: (18) true (string)
+true true false false false
+Testing: (19) _level0 (string)
+true true false false false
+Testing: (20) _level0 (movieclip)
+true false false false false
+Testing: (21) [object Object] (object)
+true false false false false
+Testing: (22) [type Function] (function)
+true false false false false
+Testing: (23) [type Object] (object)
+true false false false false
+Testing: (24) [type Object] (object)
+true false false false false
+Testing: (25) [object Object] (object)
+true false false false false
+Testing: (26)  (object)
+false false false false false
+Testing: (27)  (object)
+true false false false false
+Testing: (28) null (object)
+true false false false false
+Testing: (29) true (object)
+true false false false false
+Testing: (30) false (object)
+true false false false false
+Testing: (31) 0 (object)
+true false false false false
+Testing: (32) 1 (object)
+true false false false false
+Testing: (33) 0.5 (object)
+true false false false false
+Testing: (34) -1 (object)
+true false false false false
+Testing: (35) -0.5 (object)
+true false false false false
+Testing: (36) Infinity (object)
+true false false false false
+Testing: (37) -Infinity (object)
+true false false false false
+Testing: (38) NaN (object)
+true false false false false
+Testing: (39)  (object)
+true false false false false
+Testing: (40) 0 (object)
+true false false false false
+Testing: (41) -0 (object)
+true false false false false
+Testing: (42) 0.0 (object)
+true false false false false
+Testing: (43) 1 (object)
+true false false false false
+Testing: (44) Hello World! (object)
+true false false false false
+Testing: (45) true (object)
+true false false false false
+Testing: (46) _level0 (object)
+true false false false false
+Testing: (47) _level0 (object)
+true false false false false
+Testing: (48) [type Object] (object)
+true false false false false
+Testing: (49) [type Object] (object)
+true false false false false
+Testing: (50) [type Object] (object)
+true false false false false
+Testing: (51) [type Object] (object)
+true false false false false
+Testing: (52) [type Object] (object)
+true false false false false
+Testing: (53) [type Object] (object)
+true false false false false
diff --git a/test/trace/object-isprototypeof-7.swf b/test/trace/object-isprototypeof-7.swf
new file mode 100644
index 0000000..40972a7
Binary files /dev/null and b/test/trace/object-isprototypeof-7.swf differ
diff --git a/test/trace/object-isprototypeof-7.swf.trace b/test/trace/object-isprototypeof-7.swf.trace
new file mode 100644
index 0000000..15e52ef
--- /dev/null
+++ b/test/trace/object-isprototypeof-7.swf.trace
@@ -0,0 +1,155 @@
+valueOf called
+toString called
+toString called with 
+valueOf called with 
+0: valueOf!
+1: valueOf!
+2: valueOf!
+3: valueOf!
+4: valueOf!
+5: valueOf!
+6: valueOf!
+7: valueOf!
+8: valueOf!
+9: valueOf!
+10: valueOf!
+11: valueOf!
+12: valueOf!
+13: valueOf!
+14: valueOf!
+15: valueOf!
+16: valueOf!
+17: valueOf!
+18: valueOf!
+19: valueOf!
+20: valueOf!
+21: valueOf!
+21: toString!
+22: valueOf!
+22: toString!
+23: valueOf!
+23: toString!
+24: valueOf!
+24: toString!
+25: valueOf!
+25: toString!
+26: valueOf!
+26: toString!
+true
+true
+false
+false
+true
+true
+false
+false
+false
+true
+Testing: (0) undefined (undefined)
+false false false false false
+Testing: (1) null (null)
+false false false false false
+Testing: (2) true (boolean)
+true false false true false
+Testing: (3) false (boolean)
+true false false true false
+Testing: (4) 0 (number)
+true false true false false
+Testing: (5) 1 (number)
+true false true false false
+Testing: (6) 0.5 (number)
+true false true false false
+Testing: (7) -1 (number)
+true false true false false
+Testing: (8) -0.5 (number)
+true false true false false
+Testing: (9) Infinity (number)
+true false true false false
+Testing: (10) -Infinity (number)
+true false true false false
+Testing: (11) NaN (number)
+true false true false false
+Testing: (12)  (string)
+true true false false false
+Testing: (13) 0 (string)
+true true false false false
+Testing: (14) -0 (string)
+true true false false false
+Testing: (15) 0.0 (string)
+true true false false false
+Testing: (16) 1 (string)
+true true false false false
+Testing: (17) Hello World! (string)
+true true false false false
+Testing: (18) true (string)
+true true false false false
+Testing: (19) _level0 (string)
+true true false false false
+Testing: (20) _level0 (movieclip)
+true false false false false
+Testing: (21) [object Object] (object)
+true false false false false
+Testing: (22) [type Function] (function)
+true false false false false
+Testing: (23) [type Object] (object)
+true false false false false
+Testing: (24) [type Object] (object)
+true false false false false
+Testing: (25) [object Object] (object)
+true false false false false
+Testing: (26) undefined (object)
+false false false false false
+Testing: (27) undefined (object)
+true false false false false
+Testing: (28) null (object)
+true false false false false
+Testing: (29) true (object)
+true false false false false
+Testing: (30) false (object)
+true false false false false
+Testing: (31) 0 (object)
+true false false false false
+Testing: (32) 1 (object)
+true false false false false
+Testing: (33) 0.5 (object)
+true false false false false
+Testing: (34) -1 (object)
+true false false false false
+Testing: (35) -0.5 (object)
+true false false false false
+Testing: (36) Infinity (object)
+true false false false false
+Testing: (37) -Infinity (object)
+true false false false false
+Testing: (38) NaN (object)
+true false false false false
+Testing: (39)  (object)
+true false false false false
+Testing: (40) 0 (object)
+true false false false false
+Testing: (41) -0 (object)
+true false false false false
+Testing: (42) 0.0 (object)
+true false false false false
+Testing: (43) 1 (object)
+true false false false false
+Testing: (44) Hello World! (object)
+true false false false false
+Testing: (45) true (object)
+true false false false false
+Testing: (46) _level0 (object)
+true false false false false
+Testing: (47) _level0 (object)
+true false false false false
+Testing: (48) [type Object] (object)
+true false false false false
+Testing: (49) [type Object] (object)
+true false false false false
+Testing: (50) [type Object] (object)
+true false false false false
+Testing: (51) [type Object] (object)
+true false false false false
+Testing: (52) [type Object] (object)
+true false false false false
+Testing: (53) [type Object] (object)
+true false false false false
diff --git a/test/trace/object-isprototypeof.as b/test/trace/object-isprototypeof.as
new file mode 100644
index 0000000..599366e
--- /dev/null
+++ b/test/trace/object-isprototypeof.as
@@ -0,0 +1,39 @@
+// makeswf -v 7 -r 1 -o test-7.swf test.as
+
+#include "values.as"
+
+var o = new Object ();
+var empty = new Object ();
+ASSetPropFlags (empty, null, 0, 7);
+for (var prop in empty) {
+  empty[prop] = "to-be-deleted";
+  delete empty[prop];
+}
+
+trace (Object.prototype.isPrototypeOf (Object));
+trace (Object.prototype.isPrototypeOf (o));
+trace (Object.isPrototypeOf (o));
+
+trace (Object.prototype.isPrototypeOf ());
+trace (Object.prototype.isPrototypeOf (Object, o));
+trace (String.prototype.isPrototypeOf ("test", o));
+trace (String.prototype.isPrototypeOf (o, "test"));
+
+trace (o.isPrototypeOf (empty));
+empty.prototype = o;
+trace (o.isPrototypeOf (empty));
+delete empty.prototype;
+empty.__proto__ = o;
+trace (o.isPrototypeOf (empty));
+
+for (var i = 0; i < values.length; i++) {
+  trace ("Testing: " + names[i]);
+  trace (Object.prototype.isPrototypeOf (values[i]) + " " +
+      String.prototype.isPrototypeOf (values[i]) + " " +
+      Number.prototype.isPrototypeOf (values[i]) + " " +
+      Boolean.prototype.isPrototypeOf (values[i]) + " " +
+      Array.prototype.isPrototypeOf (values[i]));
+}
+
+
+loadMovie ("FSCommand:quit", "");
diff-tree 9caf080ddff5b1337674d6fae84e49b6fb5a9d72 (from 894adaeac00bc31c847d85f279d872886a32751e)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Wed Sep 12 21:36:47 2007 +0300

    Implement Object's isPrototypeOf method

diff --git a/libswfdec/swfdec_as_object.c b/libswfdec/swfdec_as_object.c
index d6831f2..658336c 100644
--- a/libswfdec/swfdec_as_object.c
+++ b/libswfdec/swfdec_as_object.c
@@ -1286,6 +1286,46 @@ swfdec_as_object_isPropertyEnumerable (S
   SWFDEC_AS_VALUE_SET_BOOLEAN (retval, TRUE);
 }
 
+static SwfdecAsObject *
+swfdec_as_object_get_prototype (SwfdecAsObject *object)
+{
+  SwfdecAsValue val;
+
+  swfdec_as_object_get_variable (object, SWFDEC_AS_STR___proto__, &val);
+  if (!SWFDEC_AS_VALUE_IS_OBJECT (&val))
+    return NULL;
+
+  return SWFDEC_AS_VALUE_GET_OBJECT (&val);
+}
+
+SWFDEC_AS_NATIVE (101, 7, swfdec_as_object_isPrototypeOf)
+void
+swfdec_as_object_isPrototypeOf (SwfdecAsContext *cx,
+    SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+    SwfdecAsValue *retval)
+{
+  SwfdecAsObject *class;
+
+  SWFDEC_AS_VALUE_SET_BOOLEAN (retval, FALSE);
+
+  // return false even if no params
+  if (argc < 1)
+    return;
+
+  class = swfdec_as_value_to_object (cx, &argv[0]);
+  if (class == NULL)
+    return;
+
+  while ((class = swfdec_as_object_get_prototype (class)) != NULL) {
+    if (object == class) {
+      SWFDEC_AS_VALUE_SET_BOOLEAN (retval, TRUE);
+      return;
+    }
+  }
+
+  // not found, nothing to do
+}
+
 SWFDEC_AS_NATIVE (101, 0, swfdec_as_object_watch)
 void
 swfdec_as_object_watch (SwfdecAsContext *cx, SwfdecAsObject *object,
@@ -1419,6 +1459,8 @@ swfdec_as_object_init_context (SwfdecAsC
 	SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_hasOwnProperty, 0);
     swfdec_as_object_add_function (proto, SWFDEC_AS_STR_isPropertyEnumerable,
 	SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_isPropertyEnumerable, 0);
+    swfdec_as_object_add_function (proto, SWFDEC_AS_STR_isPrototypeOf,
+	SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_isPrototypeOf, 0);
     swfdec_as_object_add_function (proto, SWFDEC_AS_STR_watch,
 	SWFDEC_TYPE_AS_OBJECT, swfdec_as_object_watch, 0);
     swfdec_as_object_add_function (proto, SWFDEC_AS_STR_unwatch,
diff --git a/libswfdec/swfdec_as_strings.c b/libswfdec/swfdec_as_strings.c
index ba00073..1beeb46 100644
--- a/libswfdec/swfdec_as_strings.c
+++ b/libswfdec/swfdec_as_strings.c
@@ -354,6 +354,7 @@ const char swfdec_as_strings[] = 
   SWFDEC_AS_CONSTANT_STRING ("watch")
   SWFDEC_AS_CONSTANT_STRING ("unwatch")
   SWFDEC_AS_CONSTANT_STRING ("apply")
+  SWFDEC_AS_CONSTANT_STRING ("isPrototypeOf")
   /* add more here */
 ;
 
diff-tree 894adaeac00bc31c847d85f279d872886a32751e (from e1c72a42832cf84d1b7c491fefe2879313415805)
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date:   Tue Sep 11 21:38:41 2007 +0300

    Rename valueof and tostring to printvalueof and printtostring in values.as
    
    To avoid non-determinism with having multiple variables using different case

diff --git a/test/trace/values.as b/test/trace/values.as
index 25afaea..b7759c7 100644
--- a/test/trace/values.as
+++ b/test/trace/values.as
@@ -16,14 +16,14 @@ printall.toString = function () {
   return this;
 };
 
-tostring = new Object ();
-tostring.toString = function () {
+printtostring = new Object ();
+printtostring.toString = function () {
   trace ("toString called with " + arguments);
   return this;
 };
 
-valueof = new Object ();
-valueof.valueOf = function () {
+printvalueof = new Object ();
+printvalueof.valueOf = function () {
   trace ("valueOf called with " + arguments);
   return this;
 };
@@ -36,7 +36,7 @@ values = [ 
   true, false, 
   0, 1, 0.5, -1, -0.5, Infinity, -Infinity, NaN,
   "", "0", "-0", "0.0", "1", "Hello World!", "true", "_level0",
-  this, new Object (), Function, printall, tostring, valueof, nothing ];
+  this, new Object (), Function, printall, printtostring, printvalueof, nothing ];
 
 var l = values.length;
 var v = function () {


More information about the Swfdec mailing list