From 52f9be1826f5223837fab5696816f74c1f2a2861 Mon Sep 17 00:00:00 2001 From: "James A. Morrison" Date: Wed, 23 Mar 2005 02:35:36 +0000 Subject: [PATCH] treelang.h (struct parameter_part): Skip WHERE_TO_PUT_VAR_TREE during GC. 2005-03-22 James A. Morrison * treelang.h (struct parameter_part): Skip WHERE_TO_PUT_VAR_TREE during GC. From-SVN: r96919 --- gcc/testsuite/treelang/ChangeLog | 4 ++++ gcc/testsuite/treelang/compile/memory.tree | 18 ++++++++++++++++++ gcc/treelang/ChangeLog | 5 +++++ gcc/treelang/treelang.h | 2 +- 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/treelang/compile/memory.tree diff --git a/gcc/testsuite/treelang/ChangeLog b/gcc/testsuite/treelang/ChangeLog index 4f7fd02b5e9..410cb9480ab 100644 --- a/gcc/testsuite/treelang/ChangeLog +++ b/gcc/testsuite/treelang/ChangeLog @@ -1,3 +1,7 @@ +2005-03-22 James A. Morrison + + * compile/memory.tree: New test. + 2005-02-26 James A. Morrison * compile/var_defs: Add uninitialized variables. diff --git a/gcc/testsuite/treelang/compile/memory.tree b/gcc/testsuite/treelang/compile/memory.tree new file mode 100644 index 00000000000..a18475be5b8 --- /dev/null +++ b/gcc/testsuite/treelang/compile/memory.tree @@ -0,0 +1,18 @@ +external_definition int foo (int a, int b); +external_definition int bar (int c, int d); +external_definition int bart (int e); + +bar +{ + return c + d; +} + +foo +{ + return a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b; +} + +bart +{ + return e; +} diff --git a/gcc/treelang/ChangeLog b/gcc/treelang/ChangeLog index 3a780f58b24..f21482ac670 100644 --- a/gcc/treelang/ChangeLog +++ b/gcc/treelang/ChangeLog @@ -1,3 +1,8 @@ +2005-03-22 James A. Morrison + + * treelang.h (struct parameter_part): Skip WHERE_TO_PUT_VAR_TREE + during GC. + 2005-03-15 Zack Weinberg * Make-lang.in (TEXI_TREELANG_FILES): Add gcc-vers.texi. diff --git a/gcc/treelang/treelang.h b/gcc/treelang/treelang.h index c0d85de1090..5b3b76617dd 100644 --- a/gcc/treelang/treelang.h +++ b/gcc/treelang/treelang.h @@ -125,7 +125,7 @@ struct parameter_part GTY(()) { struct prod_token_parm_item *next; /* Next entry. */ unsigned char* variable_name; /* Name. */ - tree * GTY ((length ("1"))) where_to_put_var_tree; /* Where to save decl. */ + tree * GTY ((skip)) where_to_put_var_tree; /* Where to save decl. */ }; /* A production or a token. */ -- 2.30.2