From reid at x10sys.com Mon Jun 13 01:40:43 2005 From: reid at x10sys.com (Reid Spencer) Date: Sun, 12 Jun 2005 23:40:43 -0700 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp In-Reply-To: <200506041244.HAA12176@zion.cs.uiuc.edu> References: <200506041244.HAA12176@zion.cs.uiuc.edu> Message-ID: <1118644843.13257.99.camel@bashful.x10sys.com> Andrew, This change has broken several of the InstCombine regression tests. Without your changes, the regression tests all pass so I have reverted your patch. Could you please find a workaround that doesn't break InstCombine? In the future, please do "make check" and ensure that all changes of this nature pass all the Feature and Regression tests (at a minimum) before you commit them. Here's the regression test output: FAIL: /proj/llvm/build/../llvm/test/Regression/Transforms/InstCombine/2004-11-27-SetCCForCastLargerAndConstant.ll: %Y = cast sbyte %SB to uint ; [#uses=1] %Y = cast sbyte %SB to int ; [#uses=1] %Y = cast sbyte %SB to int ; [#uses=1] %Y = cast ubyte %SB to uint ; [#uses=1] %Y = cast ubyte %SB to int ; [#uses=1] %Y = cast sbyte %SB to uint ; [#uses=1] %Y = cast sbyte %SB to int ; [#uses=1] %Y = cast sbyte %SB to int ; [#uses=1] %Y = cast ubyte %SB to uint ; [#uses=1] %Y = cast ubyte %SB to int ; [#uses=1] FAIL: /proj/llvm/build/../llvm/test/Regression/Transforms/InstCombine/JavaCompare.ll: %c1 = setgt int %A, %B ; [#uses=1] %tmp = cast bool %c1 to int ; [#uses=1] %c2 = setlt int %A, %B ; [#uses=1] %c31 = setlt int %tmp, 1 ; [#uses=1] %c3 = or bool %c2, %c31 ; [#uses=1] FAIL: /proj/llvm/build/../llvm/test/Regression/Transforms/InstCombine/cast-set.ll: %B = cast bool %A to int ; [#uses=1] FAIL: /proj/llvm/build/../llvm/test/Regression/Transforms/InstCombine/cast.ll: %c = cast int %X to long ; [#uses=1] FAIL: /proj/llvm/build/../llvm/test/Regression/Transforms/InstCombine/set.ll: %C = seteq int %a, %b ; [#uses=1] Reid. On Sat, 2005-06-04 at 07:44 -0500, Andrew Lenharth wrote: > > Changes in directory llvm/lib/Transforms/Scalar: > > InstructionCombining.cpp updated: 1.345 -> 1.346 > --- > Log message: > > hack to fix bzip2 (bug 571: http://llvm.cs.uiuc.edu/PR571 ) > > --- > Diffs of the changes: (+2 -0) > > InstructionCombining.cpp | 2 ++ > 1 files changed, 2 insertions(+) > > > Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp > diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.345 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.346 > --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.345 Sat May 14 07:25:32 2005 > +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Sat Jun 4 07:43:56 2005 > @@ -3088,6 +3088,8 @@ > return 0; > } > > + return 0; //The rest of this function is broken. See bug 571 > + > // Okay, we have the two reduced sized operands. If we are doing a <,> > // comparison, make sure we perform the compare with the same signedness as > // the DestTy. We don't have to do this if the comparison is !=/== or if the > > > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://mail.cs.uiuc.edu/mailman/listinfo/llvm-commits -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20050612/3b88f628/attachment.bin From reid at x10sys.com Mon Jun 13 01:41:37 2005 From: reid at x10sys.com (Reid Spencer) Date: Mon, 13 Jun 2005 01:41:37 -0500 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp Message-ID: <200506130641.BAA11792@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.346 -> 1.347 --- Log message: Unbreak several InstCombine regression checks introduced by a hack to fix the bzip2 test. A better hack is needed. --- Diffs of the changes: (+0 -2) InstructionCombining.cpp | 2 -- 1 files changed, 2 deletions(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.346 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.347 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.346 Sat Jun 4 07:43:56 2005 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Mon Jun 13 01:41:26 2005 @@ -3088,8 +3088,6 @@ return 0; } - return 0; //The rest of this function is broken. See bug 571 - // Okay, we have the two reduced sized operands. If we are doing a <,> // comparison, make sure we perform the compare with the same signedness as // the DestTy. We don't have to do this if the comparison is !=/== or if the From natebegeman at mac.com Mon Jun 13 22:55:35 2005 From: natebegeman at mac.com (Nate Begeman) Date: Mon, 13 Jun 2005 22:55:35 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/PowerPC/PPC32ISelPattern.cpp Message-ID: <200506140355.WAA14105@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/PowerPC: PPC32ISelPattern.cpp updated: 1.92 -> 1.93 --- Log message: Commit a small improvement that is already in the x86 and ia64 backends to not generate unnecessary register copies. This improves compile time by 2-5% depending on the test. --- Diffs of the changes: (+5 -0) PPC32ISelPattern.cpp | 5 +++++ 1 files changed, 5 insertions(+) Index: llvm/lib/Target/PowerPC/PPC32ISelPattern.cpp diff -u llvm/lib/Target/PowerPC/PPC32ISelPattern.cpp:1.92 llvm/lib/Target/PowerPC/PPC32ISelPattern.cpp:1.93 --- llvm/lib/Target/PowerPC/PPC32ISelPattern.cpp:1.92 Tue Jun 7 23:14:27 2005 +++ llvm/lib/Target/PowerPC/PPC32ISelPattern.cpp Mon Jun 13 22:55:23 2005 @@ -1572,6 +1572,11 @@ SDNode *Node = N.Val; MVT::ValueType DestType = N.getValueType(); + if (Node->getOpcode() == ISD::CopyFromReg && + MRegisterInfo::isVirtualRegister(cast(Node)->getReg())) + // Just use the specified register as our input. + return cast(Node)->getReg(); + unsigned &Reg = ExprMap[N]; if (Reg) return Reg; From duraid at octopus.com.au Tue Jun 14 02:30:02 2005 From: duraid at octopus.com.au (Duraid Madina) Date: Tue, 14 Jun 2005 02:30:02 -0500 Subject: [llvm-commits] CVS: llvm/docs/CFEBuildInstrs.html Message-ID: <200506140730.CAA15029@zion.cs.uiuc.edu> Changes in directory llvm/docs: CFEBuildInstrs.html updated: 1.51 -> 1.52 --- Log message: nothing funny about building the CFE on Linux/Itanium --- Diffs of the changes: (+2 -1) CFEBuildInstrs.html | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) Index: llvm/docs/CFEBuildInstrs.html diff -u llvm/docs/CFEBuildInstrs.html:1.51 llvm/docs/CFEBuildInstrs.html:1.52 --- llvm/docs/CFEBuildInstrs.html:1.51 Wed May 18 14:43:24 2005 +++ llvm/docs/CFEBuildInstrs.html Tue Jun 14 02:29:50 2005 @@ -146,6 +146,7 @@

Linux/x86:
+Linux/IA-64:
MacOS X/PowerPC (requires dlcompat library):
AIX/PowerPC:

@@ -354,7 +355,7 @@ Brian Gaeke
LLVM Compiler Infrastructure
- Last modified: $Date: 2005/05/18 19:43:24 $ + Last modified: $Date: 2005/06/14 07:29:50 $ From criswell at cs.uiuc.edu Tue Jun 14 13:48:09 2005 From: criswell at cs.uiuc.edu (John Criswell) Date: Tue, 14 Jun 2005 13:48:09 -0500 Subject: [llvm-commits] CVS: llvm-gcc/gcc/llvm-expand.c Message-ID: <200506141848.NAA32260@choi.cs.uiuc.edu> Changes in directory llvm-gcc/gcc: llvm-expand.c updated: 1.98 -> 1.99 --- Log message: Spelling correction. --- Diffs of the changes: (+1 -1) llvm-expand.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm-gcc/gcc/llvm-expand.c diff -u llvm-gcc/gcc/llvm-expand.c:1.98 llvm-gcc/gcc/llvm-expand.c:1.99 --- llvm-gcc/gcc/llvm-expand.c:1.98 Tue May 10 17:33:16 2005 +++ llvm-gcc/gcc/llvm-expand.c Tue Jun 14 13:47:51 2005 @@ -5158,7 +5158,7 @@ /* llvm_expand_constant_expr - This function is responsible for translating a * constant tree expression into a suitable LLVM constant value. This is - * seperate from other expresion evaluation code because it is used to compute + * seperate from other expression evaluation code because it is used to compute * the initializers for global variables, which are required to be constants. * * ReqTy specifies the type that the result must be. Note that this may be very From criswell at cs.uiuc.edu Tue Jun 14 16:41:13 2005 From: criswell at cs.uiuc.edu (John Criswell) Date: Tue, 14 Jun 2005 16:41:13 -0500 Subject: [llvm-commits] CVS: llvm-gcc/gcc/llvm-expand.c Message-ID: <200506142141.QAA21269@choi.cs.uiuc.edu> Changes in directory llvm-gcc/gcc: llvm-expand.c updated: 1.99 -> 1.100 --- Log message: Fixed another spelling error noticed by Reid. --- Diffs of the changes: (+1 -1) llvm-expand.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm-gcc/gcc/llvm-expand.c diff -u llvm-gcc/gcc/llvm-expand.c:1.99 llvm-gcc/gcc/llvm-expand.c:1.100 --- llvm-gcc/gcc/llvm-expand.c:1.99 Tue Jun 14 13:47:51 2005 +++ llvm-gcc/gcc/llvm-expand.c Tue Jun 14 16:40:55 2005 @@ -5158,7 +5158,7 @@ /* llvm_expand_constant_expr - This function is responsible for translating a * constant tree expression into a suitable LLVM constant value. This is - * seperate from other expression evaluation code because it is used to compute + * separate from other expression evaluation code because it is used to compute * the initializers for global variables, which are required to be constants. * * ReqTy specifies the type that the result must be. Note that this may be very From natebegeman at mac.com Wed Jun 15 13:22:55 2005 From: natebegeman at mac.com (Nate Begeman) Date: Wed, 15 Jun 2005 13:22:55 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/PowerPC/PPC32ISelPattern.cpp Message-ID: <200506151822.NAA18629@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/PowerPC: PPC32ISelPattern.cpp updated: 1.93 -> 1.94 --- Log message: Commit fix for generating conditional branch pseudo instructions that avoids dereferencing the end() iterator when selecting the fallthrough block. This requires an ilist change. --- Diffs of the changes: (+8 -3) PPC32ISelPattern.cpp | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) Index: llvm/lib/Target/PowerPC/PPC32ISelPattern.cpp diff -u llvm/lib/Target/PowerPC/PPC32ISelPattern.cpp:1.93 llvm/lib/Target/PowerPC/PPC32ISelPattern.cpp:1.94 --- llvm/lib/Target/PowerPC/PPC32ISelPattern.cpp:1.93 Mon Jun 13 22:55:23 2005 +++ llvm/lib/Target/PowerPC/PPC32ISelPattern.cpp Wed Jun 15 13:22:43 2005 @@ -1232,9 +1232,9 @@ Select(N.getOperand(0)); //chain CCReg = SelectCC(N.getOperand(1), Opc, Inv, Idx); - // Iterate to the next basic block, unless we're already at the end of the - ilist::iterator It = BB, E = BB->getParent()->end(); - if (++It == E) It = BB; + // Iterate to the next basic block + ilist::iterator It = BB; + ++It; // If this is a two way branch, then grab the fallthrough basic block argument // and build a PowerPC branch pseudo-op, suitable for long branch conversion @@ -1256,6 +1256,11 @@ } } } else { + // If the fallthrough path is off the end of the function, which would be + // undefined behavior, set it to be the same as the current block because + // we have nothing better to set it to, and leaving it alone will cause the + // PowerPC Branch Selection pass to crash. + if (It == BB->getParent()->end()) It = Dest; BuildMI(BB, PPC::COND_BRANCH, 4).addReg(CCReg).addImm(Opc) .addMBB(Dest).addMBB(It); } From reid at x10sys.com Wed Jun 15 13:25:41 2005 From: reid at x10sys.com (Reid Spencer) Date: Wed, 15 Jun 2005 13:25:41 -0500 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp Message-ID: <200506151825.NAA18673@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.347 -> 1.348 --- Log message: Put the hack back in that removes features, causes regressions to fail, but allows test programs to succeed. Actual fix for this is forthcoming. --- Diffs of the changes: (+2 -0) InstructionCombining.cpp | 2 ++ 1 files changed, 2 insertions(+) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.347 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.348 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.347 Mon Jun 13 01:41:26 2005 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Wed Jun 15 13:25:30 2005 @@ -3088,6 +3088,8 @@ return 0; } + return 0; //The rest of this function is broken. See bug 571 + // Okay, we have the two reduced sized operands. If we are doing a <,> // comparison, make sure we perform the compare with the same signedness as // the DestTy. We don't have to do this if the comparison is !=/== or if the From natebegeman at mac.com Wed Jun 15 13:28:55 2005 From: natebegeman at mac.com (Nate Begeman) Date: Wed, 15 Jun 2005 13:28:55 -0500 Subject: [llvm-commits] CVS: llvm/include/llvm/ADT/ilist Message-ID: <200506151828.NAA18760@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/ADT: ilist updated: 1.25 -> 1.26 --- Log message: Add some operators the PowerPC backend needs to efficiently and correctly generate conditional branches. --- Diffs of the changes: (+20 -0) ilist | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+) Index: llvm/include/llvm/ADT/ilist diff -u llvm/include/llvm/ADT/ilist:1.25 llvm/include/llvm/ADT/ilist:1.26 --- llvm/include/llvm/ADT/ilist:1.25 Wed Mar 16 16:42:45 2005 +++ llvm/include/llvm/ADT/ilist Wed Jun 15 13:28:44 2005 @@ -169,6 +169,26 @@ template void operator+(ilist_iterator,int); +// operator!=/operator== - Allow mixed comparisons without dereferencing +// the iterator, which could very likely be pointing to end(). +template +bool operator!=(const T* LHS, const ilist_iterator &RHS) { + return LHS != RHS.getNodePtrUnchecked(); +} +template +bool operator==(const T* LHS, const ilist_iterator &RHS) { + return LHS == RHS.getNodePtrUnchecked(); +} +template +bool operator!=(T* LHS, const ilist_iterator &RHS) { + return LHS != RHS.getNodePtrUnchecked(); +} +template +bool operator==(T* LHS, const ilist_iterator &RHS) { + return LHS == RHS.getNodePtrUnchecked(); +} + + // Allow ilist_iterators to convert into pointers to a node automatically when // used by the dyn_cast, cast, isa mechanisms... From reid at x10sys.com Wed Jun 15 13:40:56 2005 From: reid at x10sys.com (Reid Spencer) Date: Wed, 15 Jun 2005 13:40:56 -0500 Subject: [llvm-commits] CVS: llvm/include/llvm/Support/Annotation.h Message-ID: <200506151840.NAA19037@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/Support: Annotation.h updated: 1.19 -> 1.20 --- Log message: Don't lie to the casual reader about Value subclassing from Annotable. --- Diffs of the changes: (+1 -2) Annotation.h | 3 +-- 1 files changed, 1 insertion(+), 2 deletions(-) Index: llvm/include/llvm/Support/Annotation.h diff -u llvm/include/llvm/Support/Annotation.h:1.19 llvm/include/llvm/Support/Annotation.h:1.20 --- llvm/include/llvm/Support/Annotation.h:1.19 Thu Apr 21 22:35:49 2005 +++ llvm/include/llvm/Support/Annotation.h Wed Jun 15 13:40:45 2005 @@ -81,8 +81,7 @@ //===----------------------------------------------------------------------===// // // Annotable - This class is used as a base class for all objects that would -// like to have annotation capability. One notable subclass is Value, which -// means annotations can be attached to almost everything in LLVM. +// like to have annotation capability. // // Annotable objects keep their annotation list sorted as annotations are // inserted and deleted. This is used to ensure that annotations with identical From lattner at cs.uiuc.edu Wed Jun 15 14:01:21 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Wed, 15 Jun 2005 14:01:21 -0500 Subject: [llvm-commits] CVS: llvm-www/pubs/2005-06-13-PLDI-PoolAllocSlides.pdf 2005-06-13-PLDI-PoolAllocSlides.ppt 2005-05-21-PLDI-PoolAlloc.html Message-ID: <200506151901.OAA19362@zion.cs.uiuc.edu> Changes in directory llvm-www/pubs: 2005-06-13-PLDI-PoolAllocSlides.pdf added (r1.1) 2005-06-13-PLDI-PoolAllocSlides.ppt added (r1.1) 2005-05-21-PLDI-PoolAlloc.html updated: 1.2 -> 1.3 --- Log message: Add pool allocation slides --- Diffs of the changes: (+21 -1) 2005-05-21-PLDI-PoolAlloc.html | 22 +++++++++++++++++++++- 2005-06-13-PLDI-PoolAllocSlides.pdf | 0 2005-06-13-PLDI-PoolAllocSlides.ppt | 0 3 files changed, 21 insertions(+), 1 deletion(-) Index: llvm-www/pubs/2005-06-13-PLDI-PoolAllocSlides.pdf Index: llvm-www/pubs/2005-06-13-PLDI-PoolAllocSlides.ppt Index: llvm-www/pubs/2005-05-21-PLDI-PoolAlloc.html diff -u llvm-www/pubs/2005-05-21-PLDI-PoolAlloc.html:1.2 llvm-www/pubs/2005-05-21-PLDI-PoolAlloc.html:1.3 --- llvm-www/pubs/2005-05-21-PLDI-PoolAlloc.html:1.2 Wed Apr 20 23:58:46 2005 +++ llvm-www/pubs/2005-05-21-PLDI-PoolAlloc.html Wed Jun 15 14:01:08 2005 @@ -44,12 +44,15 @@
"Automatic Pool Allocation: Improving Performance by Controlling Data Structure Layout in the Heap"
- Chris Lattner and Vikram Adve. + Chris Lattner and Vikram Adve.
Proc. of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'05), Chicago, Illinois, Jun, 2005.
+

Awarded PLDI 2005 Best Paper Award

+

Download:

+

Paper:

+

Slides:

+ + +

Update:

+ +

A more recent and expanded version of this work is available in Chris Lattner's Ph.D. Thesis. +

BibTeX Entry:






From lattner at cs.uiuc.edu  Wed Jun 15 14:01:59 2005
From: lattner at cs.uiuc.edu (Chris Lattner)
Date: Wed, 15 Jun 2005 14:01:59 -0500
Subject: [llvm-commits] CVS: llvm-www/pubs/2005-05-21-PLDI-PoolAlloc.html 
Message-ID: <200506151901.OAA19390@zion.cs.uiuc.edu>



Changes in directory llvm-www/pubs:

2005-05-21-PLDI-PoolAlloc.html updated: 1.3 -> 1.4
---
Log message:

fix typo


---
Diffs of the changes:  (+1 -1)

 2005-05-21-PLDI-PoolAlloc.html |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm-www/pubs/2005-05-21-PLDI-PoolAlloc.html
diff -u llvm-www/pubs/2005-05-21-PLDI-PoolAlloc.html:1.3 llvm-www/pubs/2005-05-21-PLDI-PoolAlloc.html:1.4
--- llvm-www/pubs/2005-05-21-PLDI-PoolAlloc.html:1.3	Wed Jun 15 14:01:08 2005
+++ llvm-www/pubs/2005-05-21-PLDI-PoolAlloc.html	Wed Jun 15 14:01:48 2005
@@ -68,7 +68,7 @@
   
  • Automatic Pool Allocation: Improving Performance by Controlling Data Structure Layout in the Heap - Slides (PPT)
  • -
  • Automatic Pool Allocation: +
  • Automatic Pool Allocation: Improving Performance by Controlling Data Structure Layout in the Heap - Slides (PDF)
  • From lattner at cs.uiuc.edu Wed Jun 15 14:18:42 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Wed, 15 Jun 2005 14:18:42 -0500 Subject: [llvm-commits] CVS: llvm-www/pubs/2005-06-12-MSP-PointerComp.html 2005-06-12-MSP-PointerComp.pdf 2005-06-12-MSP-PointerComp.ps 2005-06-12-MSP-PointerCompSlides.pdf 2005-06-12-MSP-PointerCompSlides.ppt index.html Message-ID: <200506151918.OAA19958@zion.cs.uiuc.edu> Changes in directory llvm-www/pubs: 2005-06-12-MSP-PointerComp.html added (r1.1) 2005-06-12-MSP-PointerComp.pdf added (r1.1) 2005-06-12-MSP-PointerComp.ps added (r1.1) 2005-06-12-MSP-PointerCompSlides.pdf added (r1.1) 2005-06-12-MSP-PointerCompSlides.ppt added (r1.1) index.html updated: 1.19 -> 1.20 --- Log message: Add pointer compression paper --- Diffs of the changes: (+54751 -1) 2005-06-12-MSP-PointerComp.html | 87 2005-06-12-MSP-PointerComp.pdf | 0 2005-06-12-MSP-PointerComp.ps |54655 +++++++++++++++++++++++++++++++++++ 2005-06-12-MSP-PointerCompSlides.pdf | 0 2005-06-12-MSP-PointerCompSlides.ppt | 0 index.html | 10 6 files changed, 54751 insertions(+), 1 deletion(-) Index: llvm-www/pubs/2005-06-12-MSP-PointerComp.html diff -c /dev/null llvm-www/pubs/2005-06-12-MSP-PointerComp.html:1.1 *** /dev/null Wed Jun 15 14:18:41 2005 --- llvm-www/pubs/2005-06-12-MSP-PointerComp.html Wed Jun 15 14:18:31 2005 *************** *** 0 **** --- 1,87 ---- + + + + + + Transparent Pointer Compression for Linked Data Structures + + + +
    + Transparent Pointer Compression for Linked Data Structures +
    + + +

    Abstract:

    +
    + 64-bit address spaces are increasingly important for modern + applications, but they come at a price: pointers use twice + as much memory, reducing the effective cache capacity and memory + bandwidth of the system (compared to 32-bit address spaces). This paper + presents a sophisticated, + automatic transformation that shrinks pointers from 64-bits + to 32-bits (and potentially less). The approach is macroscopic, i.e., it + operates on an entire logical data structure in the program at a time. It + allows an individual data structure instance or even a subset thereof + to grow up to 232 bytes in size. Furthermore, the transformation can + choose to compress some data structures in a program but not others (e.g. if + only part of the program is type-safe). We also describe (but have not + implemented) a dynamic version of the technique that can transparently expand + the pointers in an individual data structure if it exceeds the 4GB limit. + For a collection of pointer-intensive benchmarks, we show that the + transformation improves performance substantially (20% to 2x) for several of + these benchmarks, and also reduces peak heap size by a similar factor. +
    + +

    Published:

    +
    + "Transparent Pointer Compression for Linked Data Structures"
    + Chris Lattner and Vikram Adve.
    + Proceedings of the ACM Workshop on Memory System Performance (MSP'05), + Chicago, Illinois, June, 2005. +
    + +

    Download:

    +

    Paper:

    + +

    Slides:

    +

    Note, animations do not work in PDF version. Please use PPT version if + possible.

    + + +

    Update:

    + +

    The full context for this work is available in Chris Lattner's Ph.D. Thesis. +

    + +

    BibTeX Entry:

    +
    +   @InProceedings{PointerComp:MSP05,
    +     author    = {Chris Lattner and Vikram Adve},
    +     title     = "{Transparent Pointer Compression for Linked Data Structures}",
    +     booktitle = "{Proceedings of the ACM Workshop on Memory System Performance (MSP'05)}",
    +     address   = {Chigago, Illinois},
    +     month     = {June},
    +     year      = {2005}
    +   }
    + 
    + + +
    + Valid CSS! + Valid HTML 4.01! + + + Index: llvm-www/pubs/2005-06-12-MSP-PointerComp.pdf Index: llvm-www/pubs/2005-06-12-MSP-PointerComp.ps diff -c /dev/null llvm-www/pubs/2005-06-12-MSP-PointerComp.ps:1.1 *** /dev/null Wed Jun 15 14:18:42 2005 --- llvm-www/pubs/2005-06-12-MSP-PointerComp.ps Wed Jun 15 14:18:31 2005 *************** *** 0 **** --- 1,54655 ---- + %!PS-Adobe-3.0 + %%Title: (p25-lattner.dvi) + %%Version: 1 2 + %%Creator: (dvips\(k\) 5.90a Copyright 2002 Radical Eye Software) + %%CreationDate: (D:20050527154721) + %%DocumentData: Clean7Bit + %%LanguageLevel: 2 + %%BoundingBox: 0 0 612 792 + %%Pages: 12 + %%DocumentProcessColors: (atend) + %%DocumentNeededResources: (atend) + %%DocumentSuppliedResources: + %%+ procset (Adobe Acrobat - PDF operators) 1.2 0 + %%+ procset (Adobe Acrobat - type operators) 1.2 0 + %%EndComments + %%BeginDefaults + %%EndDefaults + %%BeginProlog + %%EndProlog + %%BeginSetup + %%BeginResource: l2check + %%Copyright: Copyright 1993 Adobe Systems Incorporated. All Rights Reserved. + systemdict /languagelevel known + { systemdict /languagelevel get 1 eq } + { true } + ifelse + { + initgraphics /Helvetica findfont 18 scalefont setfont + 72 600 moveto (Error: Your printer driver needs to be configured) dup show + 72 580 moveto (for printing to a PostScript Language Level 1 printer.) dup show + exch = = + /Helvetica-Bold findfont 16 scalefont setfont + 72 520 moveto (Windows and Unix) show + /Times-Roman findfont 16 scalefont setfont + 72 500 moveto (Select ?Language Level 1? in the PostScript options section) show + 72 480 moveto (of the Acrobat print dialog.) show + /Helvetica-Bold findfont 16 scalefont setfont + 72 440 moveto (Macintosh) show + /Times-Roman findfont 16 scalefont setfont + 72 420 moveto (In the Chooser, select your printer driver.) show + 72 400 moveto (Then select your printer and click the Setup button.) show + 72 380 moveto (Follow any on-screen dialogs that may appear.) show + showpage + quit + } + if + %%EndResource + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: file Pscript_CFF PSVER + userdict/ct_CffDict 6 dict put ct_CffDict begin/F0Subr{systemdict/internaldict + known{1183615869 systemdict/internaldict get exec/FlxProc known{save true}{ + false}ifelse}{userdict/internaldict known not{userdict/internaldict{count 0 eq + {/internaldict errordict/invalidaccess get exec}if dup type/integertype ne{ + /internaldict errordict/invalidaccess get exec}if dup 1183615869 eq{pop 0}{ + /internaldict errordict/invalidaccess get exec}ifelse}dup 14 get 1 25 dict put + bind executeonly put}if 1183615869 userdict/internaldict get exec/FlxProc + known{save true}{false}ifelse}ifelse[systemdict/internaldict known not{100 + dict/begin cvx/mtx matrix/def cvx}if systemdict/currentpacking known{ + currentpacking true setpacking}if{systemdict/internaldict known{1183615869 + systemdict/internaldict get exec dup/$FlxDict known not{dup dup length exch + maxlength eq{pop userdict dup/$FlxDict known not{100 dict begin/mtx matrix def + dup/$FlxDict currentdict put end}if}{100 dict begin/mtx matrix def dup + /$FlxDict currentdict put end}ifelse}if/$FlxDict get begin}if grestore/exdef{ + exch def}def/dmin exch abs 100 div def/epX exdef/epY exdef/c4y2 exdef/c4x2 + exdef/c4y1 exdef/c4x1 exdef/c4y0 exdef/c4x0 exdef/c3y2 exdef/c3x2 exdef/c3y1 + exdef/c3x1 exdef/c3y0 exdef/c3x0 exdef/c1y2 exdef/c1x2 exdef/c2x2 c4x2 def + /c2y2 c4y2 def/yflag c1y2 c3y2 sub abs c1x2 c3x2 sub abs gt def/PickCoords{{ + c1x0 c1y0 c1x1 c1y1 c1x2 c1y2 c2x0 c2y0 c2x1 c2y1 c2x2 c2y2}{c3x0 c3y0 c3x1 + c3y1 c3x2 c3y2 c4x0 c4y0 c4x1 c4y1 c4x2 c4y2}ifelse/y5 exdef/x5 exdef/y4 exdef + /x4 exdef/y3 exdef/x3 exdef/y2 exdef/x2 exdef/y1 exdef/x1 exdef/y0 exdef/x0 + exdef}def mtx currentmatrix pop mtx 0 get abs 1e-05 lt mtx 3 get abs 1e-05 lt + or{/flipXY -1 def}{mtx 1 get abs 1e-05 lt mtx 2 get abs 1e-05 lt or{/flipXY 1 + def}{/flipXY 0 def}ifelse}ifelse/erosion 1 def systemdict/internaldict known{ + 1183615869 systemdict/internaldict get exec dup/erosion known{/erosion get + /erosion exch def}{pop}ifelse}if yflag{flipXY 0 eq c3y2 c4y2 eq or{false + PickCoords}{/shrink c3y2 c4y2 eq{0}{c1y2 c4y2 sub c3y2 c4y2 sub div abs}ifelse + def/yshrink{c4y2 sub shrink mul c4y2 add}def/c1y0 c3y0 yshrink def/c1y1 c3y1 + yshrink def/c2y0 c4y0 yshrink def/c2y1 c4y1 yshrink def/c1x0 c3x0 def/c1x1 + c3x1 def/c2x0 c4x0 def/c2x1 c4x1 def/dY 0 c3y2 c1y2 sub round dtransform + flipXY 1 eq{exch}if pop abs def dY dmin lt PickCoords y2 c1y2 sub abs .001 gt{ + c1x2 c1y2 transform flipXY 1 eq{exch}if/cx exch def/cy exch def/dY 0 y2 c1y2 + sub round dtransform flipXY 1 eq{exch}if pop def dY round dup 0 ne{/dY exdef}{ + pop dY 0 lt{-1}{1}ifelse/dY exdef}ifelse/erode PaintType 2 ne erosion .5 ge + and def erode{/cy cy .5 sub def}if/ey cy dY add def/ey ey ceiling ey sub ey + floor add def erode{/ey ey .5 add def}if ey cx flipXY 1 eq{exch}if itransform + exch pop y2 sub/eShift exch def/y1 y1 eShift add def/y2 y2 eShift add def/y3 + y3 eShift add def}if}ifelse}{flipXY 0 eq c3x2 c4x2 eq or{false PickCoords}{ + /shrink c3x2 c4x2 eq{0}{c1x2 c4x2 sub c3x2 c4x2 sub div abs}ifelse def/xshrink + {c4x2 sub shrink mul c4x2 add}def/c1x0 c3x0 xshrink def/c1x1 c3x1 xshrink def + /c2x0 c4x0 xshrink def/c2x1 c4x1 xshrink def/c1y0 c3y0 def/c1y1 c3y1 def/c2y0 + c4y0 def/c2y1 c4y1 def/dX c3x2 c1x2 sub round 0 dtransform flipXY -1 eq{exch} + if pop abs def dX dmin lt PickCoords x2 c1x2 sub abs .001 gt{c1x2 c1y2 + transform flipXY -1 eq{exch}if/cy exch def/cx exch def/dX x2 c1x2 sub round 0 + dtransform flipXY -1 eq{exch}if pop def dX round dup 0 ne{/dX exdef}{pop dX 0 + lt{-1}{1}ifelse/dX exdef}ifelse/erode PaintType 2 ne erosion .5 ge and def + erode{/cx cx .5 sub def}if/ex cx dX add def/ex ex ceiling ex sub ex floor add + def erode{/ex ex .5 add def}if ex cy flipXY -1 eq{exch}if itransform pop x2 + sub/eShift exch def/x1 x1 eShift add def/x2 x2 eShift add def/x3 x3 eShift add + def}if}ifelse}ifelse x2 x5 eq y2 y5 eq or{x5 y5 lineto}{x0 y0 x1 y1 x2 y2 + curveto x3 y3 x4 y4 x5 y5 curveto}ifelse epY epX}systemdict/currentpacking + known{exch setpacking}if/exec cvx/end cvx]cvx executeonly exch{pop true exch + restore}{systemdict/internaldict known not{1183615869 userdict/internaldict + get exec exch/FlxProc exch put true}{1183615869 systemdict/internaldict get + exec dup length exch maxlength eq{false}{1183615869 systemdict/internaldict + get exec exch/FlxProc exch put true}ifelse}ifelse}ifelse{systemdict + /internaldict known{1183615869 systemdict/internaldict get exec/FlxProc get + exec}{1183615869 userdict/internaldict get exec/FlxProc get exec}ifelse}if} + executeonly def/F1Subr{gsave currentpoint newpath moveto}bind def/F2Subr{ + currentpoint grestore gsave currentpoint newpath moveto}bind def/HSSubr{ + systemdict/internaldict known not{pop 3}{1183615869 systemdict/internaldict + get exec dup/startlock known{/startlock get exec}{dup/strtlck known{/strtlck + get exec}{pop 3}ifelse}ifelse}ifelse}bind def end + %%EndResource + + userdict /pdf_svglb get setglobal + /currentpacking where{pop currentpacking true setpacking}if + %%BeginResource: procset pdfvars + %%Copyright: Copyright 1987-2001 Adobe Systems Incorporated. All Rights Reserved. + %%Version: 5.0 6 + %%Title: definition of dictionary of variables used by PDF & PDFText procsets + userdict /PDF 160 dict put + userdict /PDFVars 89 dict dup begin put + /docSetupDone false def + /InitAll 0 def + /TermAll 0 def + /DocInitAll 0 def + /DocTermAll 0 def + /_pdfEncodings 2 array def + /_pdf_str1 1 string def + /_pdf_i 0 def + /_pdf_na 0 def + /_pdf_showproc 0 def + /_italMtx [1 0 .212557 1 0 0] def + /_italMtx_WMode1 [1 -.212557 0 1 0 0] def + /_italMtxType0 [1 0 .1062785 1 0 0] def + /_italMtx_WMode1Type0 [1 -.1062785 0 1 0 0] def + /_basefont 0 def + /_basefonto 0 def + /_pdf_oldCIDInit null def + /_pdf_FontDirectory 30 dict def + /_categories 10 dict def + /_sa? true def + /_ColorSep5044? false def + /nulldict 0 dict def + /_processColors 0 def + /overprintstack null def + /_defaulttransfer currenttransfer def + /_defaultflatness currentflat def + /_defaulthalftone null def + /_defaultcolortransfer null def + /_defaultblackgeneration null def + /_defaultundercolorremoval null def + /_defaultcolortransfer null def + PDF begin + [/c/cs/cm/d/d0/f/h/i/j/J/l/m/M/n/q/Q/re/ri/S/sc/sh/Tf/w/W + /applyInterpFunc/applystitchFunc/domainClip/encodeInput + /initgs/int/limit/rangeClip + /defineRes/findRes/setSA/pl + %% to keep CoolType entries in GlyphDirProcs safe from collisions with Win PS driver + /? /! /| /: /+ /GetGlyphDirectory + /pdf_flushFilters /pdf_readstring /pdf_dictOp /pdf_image /pdf_maskedImage + /pdf_shfill /pdf_sethalftone + ] {null def} bind forall + end + end + %%EndResource + PDFVars begin PDF begin + %%BeginResource: procset pdfutil + %%Copyright: Copyright 1993-1999 Adobe Systems Incorporated. All Rights Reserved. + %%Version: 4.0 2 + %%Title: Basic utilities used by other PDF procsets + /bd {bind def} bind def + /ld {load def} bd + /bld { + dup length dict begin + { null def } forall + bind + end + def + } bd + /dd { PDFVars 3 1 roll put } bd + /xdd { exch dd } bd + /Level2? + systemdict /languagelevel known + { systemdict /languagelevel get 2 ge } { false } ifelse + def + /Level1? Level2? not def + /Level3? + systemdict /languagelevel known + {systemdict /languagelevel get 3 eq } { false } ifelse + def + /getifknown { + 2 copy known { get true } { pop pop false } ifelse + } bd + /here { + currentdict exch getifknown + } bd + /isdefined? { where { pop true } { false } ifelse } bd + %%EndResource + %%BeginResource: procset pdf + %%Version: 5.0 7 + %%Copyright: Copyright 1998-2001 Adobe Systems Incorporated. All Rights Reserved. + %%Title: General operators for PDF, common to all Language Levels. + /cm { matrix astore concat } bd + /d /setdash ld + /f /fill ld + /h /closepath ld + /i {dup 0 eq {pop _defaultflatness} if setflat} bd + /j /setlinejoin ld + /J /setlinecap ld + /M /setmiterlimit ld + /n /newpath ld + /S /stroke ld + /w /setlinewidth ld + /W /clip ld + /initgs { + 0 setgray + [] 0 d + 0 j + 0 J + 10 M + 1 w + false setSA + /_defaulttransfer load settransfer + 0 i + /RelativeColorimetric ri + newpath + } bd + /int { + dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul + exch pop add exch pop + } bd + /limit { + dup 2 index le { exch } if pop + dup 2 index ge { exch } if pop + } bd + /domainClip { + Domain aload pop 3 2 roll + limit + } [/Domain] bld + /applyInterpFunc { + 0 1 DimOut 1 sub + { + dup C0 exch get exch + dup C1 exch get exch + 3 1 roll + 1 index sub + 3 index + N exp mul add + exch + currentdict /Range_lo known + { + dup Range_lo exch get exch + Range_hi exch get + 3 2 roll limit + } + { + pop + } + ifelse + exch + } for + pop + } [/DimOut /C0 /C1 /N /Range_lo /Range_hi] bld + /encodeInput { + NumParts 1 sub + 0 1 2 index + { + dup Bounds exch get + 2 index gt + { exit } + { dup + 3 index eq + { exit } + { pop } ifelse + } ifelse + } for + 3 2 roll pop + dup Bounds exch get exch + dup 1 add Bounds exch get exch + 2 mul + dup Encode exch get exch + 1 add Encode exch get + int + } [/NumParts /Bounds /Encode] bld + /rangeClip { + exch dup Range_lo exch get + exch Range_hi exch get + 3 2 roll + limit + } [/Range_lo /Range_hi] bld + /applyStitchFunc { + Functions exch get exec + currentdict /Range_lo known { + 0 1 DimOut 1 sub { + DimOut 1 add -1 roll + rangeClip + } for + } if + } [/Functions /Range_lo /DimOut] bld + /pdf_flushfilters + { + aload length + { dup status + 1 index currentfile ne and + { dup flushfile closefile } + { pop } + ifelse + } repeat + } bd + /pdf_readstring + { + 1 index dup length 1 sub get + exch readstring pop + exch pdf_flushfilters + } bind def + /pdf_dictOp + { + 3 2 roll + 10 dict copy + begin + _Filters dup length 1 sub get def + currentdict exch exec + _Filters pdf_flushfilters + end + } [/_Filters] bld + /pdf_image {{image} /DataSource pdf_dictOp} bd + /pdf_imagemask {{imagemask} /DataSource pdf_dictOp} bd + /pdf_shfill {{sh} /DataSource pdf_dictOp} bd + /pdf_sethalftone {{sethalftone} /Thresholds pdf_dictOp} bd + /pdf_maskedImage + { + 10 dict copy begin + /miDict currentdict def + /DataDict DataDict 10 dict copy def + DataDict begin + /DataSource + _Filters dup length 1 sub get + def + miDict image + _Filters pdf_flushfilters + end + end + } [/miDict /DataDict /_Filters] bld + /RadialShade { + 40 dict begin + /background exch def + /ext1 exch def + /ext0 exch def + /BBox exch def + /r2 exch def + /c2y exch def + /c2x exch def + /r1 exch def + /c1y exch def + /c1x exch def + /rampdict exch def + gsave + BBox length 0 gt { + newpath + BBox 0 get BBox 1 get moveto + BBox 2 get BBox 0 get sub 0 rlineto + 0 BBox 3 get BBox 1 get sub rlineto + BBox 2 get BBox 0 get sub neg 0 rlineto + closepath + clip + newpath + } if + c1x c2x eq + { + c1y c2y lt {/theta 90 def}{/theta 270 def} ifelse + } + { + /slope c2y c1y sub c2x c1x sub div def + /theta slope 1 atan def + c2x c1x lt c2y c1y ge and { /theta theta 180 sub def} if + c2x c1x lt c2y c1y lt and { /theta theta 180 add def} if + } + ifelse + gsave + clippath + c1x c1y translate + theta rotate + -90 rotate + { pathbbox } stopped + { 0 0 0 0 } if + /yMax exch def + /xMax exch def + /yMin exch def + /xMin exch def + grestore + xMax xMin eq yMax yMin eq or + { + grestore + end + } + { + rampdict begin + 40 dict begin + background length 0 gt { background sssetbackground gsave clippath fill grestore } if + gsave + c1x c1y translate + theta rotate + -90 rotate + /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def + /c1y 0 def + /c1x 0 def + /c2x 0 def + ext0 { + 0 getrampcolor + c2y r2 add r1 lt + { + c1x c1y r1 360 0 arcn + xMin yMin moveto + xMax yMin lineto + xMax yMax lineto + xMin yMax lineto + xMin yMin lineto + eofill + } + { + c2y r1 add r2 le + { + c1x c1y r1 0 360 arc + fill + } + { + c2x c2y r2 0 360 arc fill + r1 r2 eq + { + /p1x r1 neg def + /p1y c1y def + /p2x r1 def + /p2y c1y def + p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto + fill + } + { + /AA r2 r1 sub c2y div def + /theta AA 1 AA dup mul sub sqrt div 1 atan def + /SS1 90 theta add dup sin exch cos div def + /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def + /p1y p1x SS1 div neg def + /SS2 90 theta sub dup sin exch cos div def + /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def + /p2y p2x SS2 div neg def + r1 r2 gt + { + /L1maxX p1x yMin p1y sub SS1 div add def + /L2maxX p2x yMin p2y sub SS2 div add def + } + { + /L1maxX 0 def + /L2maxX 0 def + }ifelse + p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto + L1maxX L1maxX p1x sub SS1 mul p1y add lineto + fill + } + ifelse + } + ifelse + } ifelse + } if + c1x c2x sub dup mul + c1y c2y sub dup mul + add 0.5 exp + 0 dtransform + dup mul exch dup mul add 0.5 exp 72 div + 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 1 index 1 index lt { exch } if pop + /hires exch def + hires mul + /numpix exch def + /numsteps NumSamples def + /rampIndxInc 1 def + /subsampling false def + numpix 0 ne + { + NumSamples numpix div 0.5 gt + { + /numsteps numpix 2 div round cvi dup 1 le { pop 2 } if def + /rampIndxInc NumSamples 1 sub numsteps div def + /subsampling true def + } if + } if + /xInc c2x c1x sub numsteps div def + /yInc c2y c1y sub numsteps div def + /rInc r2 r1 sub numsteps div def + /cx c1x def + /cy c1y def + /radius r1 def + newpath + xInc 0 eq yInc 0 eq rInc 0 eq and and + { + 0 getrampcolor + cx cy radius 0 360 arc + stroke + NumSamples 1 sub getrampcolor + cx cy radius 72 hires div add 0 360 arc + 0 setlinewidth + stroke + } + { + 0 + numsteps + { + dup + subsampling { round cvi } if + getrampcolor + cx cy radius 0 360 arc + /cx cx xInc add def + /cy cy yInc add def + /radius radius rInc add def + cx cy radius 360 0 arcn + eofill + rampIndxInc add + } + repeat + pop + } ifelse + ext1 { + c2y r2 add r1 lt + { + c2x c2y r2 0 360 arc + fill + } + { + c2y r1 add r2 le + { + c2x c2y r2 360 0 arcn + xMin yMin moveto + xMax yMin lineto + xMax yMax lineto + xMin yMax lineto + xMin yMin lineto + eofill + } + { + c2x c2y r2 0 360 arc fill + r1 r2 eq + { + /p1x r2 neg def + /p1y c2y def + /p2x r2 def + /p2y c2y def + p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto + fill + } + { + /AA r2 r1 sub c2y div def + /theta AA 1 AA dup mul sub sqrt div 1 atan def + /SS1 90 theta add dup sin exch cos div def + /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def + /p1y c2y p1x SS1 div sub def + /SS2 90 theta sub dup sin exch cos div def + /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def + /p2y c2y p2x SS2 div sub def + r1 r2 lt + { + /L1maxX p1x yMax p1y sub SS1 div add def + /L2maxX p2x yMax p2y sub SS2 div add def + } + { + /L1maxX 0 def + /L2maxX 0 def + }ifelse + p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto + L1maxX L1maxX p1x sub SS1 mul p1y add lineto + fill + } + ifelse + } + ifelse + } ifelse + } if + grestore + grestore + end + end + end + } ifelse + } bd + /GenStrips { + 40 dict begin + /background exch def + /ext1 exch def + /ext0 exch def + /BBox exch def + /y2 exch def + /x2 exch def + /y1 exch def + /x1 exch def + /rampdict exch def + gsave + BBox length 0 gt { + newpath + BBox 0 get BBox 1 get moveto + BBox 2 get BBox 0 get sub 0 rlineto + 0 BBox 3 get BBox 1 get sub rlineto + BBox 2 get BBox 0 get sub neg 0 rlineto + closepath + clip + newpath + } if + x1 x2 eq + { + y1 y2 lt {/theta 90 def}{/theta 270 def} ifelse + } + { + /slope y2 y1 sub x2 x1 sub div def + /theta slope 1 atan def + x2 x1 lt y2 y1 ge and { /theta theta 180 sub def} if + x2 x1 lt y2 y1 lt and { /theta theta 180 add def} if + } + ifelse + gsave + clippath + x1 y1 translate + theta rotate + { pathbbox } stopped + { 0 0 0 0 } if + /yMax exch def + /xMax exch def + /yMin exch def + /xMin exch def + grestore + xMax xMin eq yMax yMin eq or + { + grestore + end + } + { + rampdict begin + 20 dict begin + background length 0 gt { background sssetbackground gsave clippath fill grestore } if + gsave + x1 y1 translate + theta rotate + /xStart 0 def + /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def + /ySpan yMax yMin sub def + /numsteps NumSamples def + /rampIndxInc 1 def + /subsampling false def + xStart 0 transform + xEnd 0 transform + 3 -1 roll + sub dup mul + 3 1 roll + sub dup mul + add 0.5 exp 72 div + 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 1 index 1 index lt { exch } if pop + mul + /numpix exch def + numpix 0 ne + { + NumSamples numpix div 0.5 gt + { + /numsteps numpix 2 div round cvi dup 1 le { pop 2 } if def + /rampIndxInc NumSamples 1 sub numsteps div def + /subsampling true def + } if + } if + ext0 { + 0 getrampcolor + xMin xStart lt + { xMin yMin xMin neg ySpan rectfill } if + } if + /xInc xEnd xStart sub numsteps div def + /x xStart def + 0 + numsteps + { + dup + subsampling { round cvi } if + getrampcolor + x yMin xInc ySpan rectfill + /x x xInc add def + rampIndxInc add + } + repeat + pop + ext1 { + xMax xEnd gt + { xEnd yMin xMax xEnd sub ySpan rectfill } if + } if + grestore + grestore + end + end + end + } ifelse + } bd + %%EndResource + %%BeginResource: procset pdflev2 + %%Version: 5.0 15 + %%Copyright: Copyright 1987-2001 Adobe Systems Incorporated. All Rights Reserved. + %%LanguageLevel: 2 + %%Title: PDF operators, with code specific for Level 2 + /docinitialize { + PDF begin + /_defaulthalftone currenthalftone dd + /_defaultblackgeneration currentblackgeneration dd + /_defaultundercolorremoval currentundercolorremoval dd + /_defaultcolortransfer [currentcolortransfer] dd + /_defaulttransfer currenttransfer dd + end + PDFVars /docSetupDone true put + } bd + /initialize { + PDFVars /docSetupDone get { + _defaulthalftone sethalftone + /_defaultblackgeneration load setblackgeneration + /_defaultundercolorremoval load setundercolorremoval + _defaultcolortransfer aload pop setcolortransfer + } if + false setoverprint + } bd + /terminate { } bd + /c /curveto ld + /cs /setcolorspace ld + /l /lineto ld + /m /moveto ld + /q /gsave ld + /Q /grestore ld + /sc /setcolor ld + /setSA/setstrokeadjust ld + /re { + 4 2 roll m + 1 index 0 rlineto + 0 exch rlineto + neg 0 rlineto + h + } bd + /concattransferfuncs { + [ 3 1 roll /exec load exch /exec load ] cvx + } bd + /concatandsettransfer { + /_defaulttransfer load concattransferfuncs settransfer + } bd + /concatandsetcolortransfer { + _defaultcolortransfer aload pop + 8 -1 roll 5 -1 roll concattransferfuncs 7 1 roll + 6 -1 roll 4 -1 roll concattransferfuncs 5 1 roll + 4 -1 roll 3 -1 roll concattransferfuncs 3 1 roll + concattransferfuncs + setcolortransfer + } bd + /defineRes/defineresource ld + /findRes/findresource ld + currentglobal + true systemdict /setglobal get exec + [/Function /ExtGState /Form /Shading /FunctionDictionary /MadePattern /PatternPrototype /DataSource /Image] + { /Generic /Category findresource dup length dict copy /Category defineresource pop } + forall + systemdict /setglobal get exec + /ri + { + /findcolorrendering isdefined? + { + mark exch + findcolorrendering + counttomark 2 eq + { type /booleantype eq + { dup type /nametype eq + { dup /ColorRendering resourcestatus + { pop pop + dup /DefaultColorRendering ne + { + /ColorRendering findresource + setcolorrendering + } if + } if + } if + } if + } if + cleartomark + } + { pop + } ifelse + } bd + /knownColorants? { + pop false + } bd + /getrampcolor { + /indx exch def + 0 1 NumComp 1 sub { + dup + Samples exch get + dup type /stringtype eq { indx get } if + exch + Scaling exch get aload pop + 3 1 roll + mul add + } for + setcolor + } bd + /sssetbackground { aload pop setcolor } bd + %%EndResource + %%BeginResource: procset pdftext + %%Version: 5.0 6 + %%Copyright: Copyright 1987-2001 Adobe Systems Incorporated. All Rights Reserved. + %%Title: Text operators for PDF + PDF /PDFText 78 dict dup begin put + /docinitialize + { + /resourcestatus where { + pop + /CIDParams /ProcSet resourcestatus { + pop pop + false /CIDParams /ProcSet findresource /SetBuildCompatible get exec + } if + } if + PDF begin + PDFText /_pdfDefineIdentity-H known + { PDFText /_pdfDefineIdentity-H get exec} + if + end + } bd + /initialize { + PDFText begin + } bd + /terminate { end } bd + Level2? + { + /_safeput + { + 3 -1 roll load 3 1 roll put + } + bd + } + { + /_safeput + { + 2 index load dup dup length exch maxlength ge + { dup length 5 add dict copy + 3 index xdd + } + { pop } + ifelse + 3 -1 roll load 3 1 roll put + } + bd + } + ifelse + /pdf_has_composefont? systemdict /composefont known def + /CopyFont { + { + 1 index /FID ne 2 index /UniqueID ne and + { def } { pop pop } ifelse + } forall + } bd + /Type0CopyFont + { + exch + dup length dict + begin + CopyFont + [ + exch + FDepVector + { + dup /FontType get 0 eq + { + 1 index Type0CopyFont + /_pdfType0 exch definefont + } + { + /_pdfBaseFont exch + 2 index exec + } + ifelse + exch + } + forall + pop + ] + /FDepVector exch def + currentdict + end + } bd + Level2? {currentglobal true setglobal} if + /cHexEncoding + [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 + /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 + /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 + /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B + /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E + /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 + /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 + /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 + /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA + /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD + /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 + /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 + /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 + /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF] def + Level2? {setglobal} if + /modEnc { + /_enc xdd + /_icode 0 dd + counttomark 1 sub -1 0 + { + index + dup type /nametype eq + { + _enc _icode 3 -1 roll put + _icode 1 add + } + if + /_icode xdd + } for + cleartomark + _enc + } bd + /trEnc { + /_enc xdd + 255 -1 0 { + exch dup -1 eq + { pop /.notdef } + { Encoding exch get } + ifelse + _enc 3 1 roll put + } for + pop + _enc + } bd + /TE { + /_i xdd + StandardEncoding 256 array copy modEnc + _pdfEncodings exch _i exch put + } bd + /TZ + { + /_usePDFEncoding xdd + findfont + dup length 6 add dict + begin + { + 1 index /FID ne { def } { pop pop } ifelse + } forall + /pdf_origFontName FontName def + /FontName exch def + currentdict /PaintType known + { PaintType 2 eq {/PaintType 0 def} if } + if + _usePDFEncoding 0 ge + { + /Encoding _pdfEncodings _usePDFEncoding get def + pop + } + { + _usePDFEncoding -1 eq + { + counttomark 0 eq + { pop } + { + Encoding 256 array copy + modEnc /Encoding exch def + } + ifelse + } + { + 256 array + trEnc /Encoding exch def + } + ifelse + } + ifelse + pdf_EuroProcSet pdf_origFontName known + { + pdf_origFontName pdf_AddEuroGlyphProc + } if + Level2? + { + currentdict /pdf_origFontName undef + } if + FontName currentdict + end + definefont pop + } + bd + Level2? + { + /TZG + { + currentglobal true setglobal + 2 index _pdfFontStatus + { + 2 index findfont + false setglobal + 3 index findfont + true setglobal + ne + { + 2 index findfont dup rcheck + { + dup length dict begin + { + 1 index /FID ne { def } { pop pop } ifelse + } forall + currentdict end + } + if + 3 index exch definefont pop + } + if + } if + setglobal + TZ + } bd + } + { + /TZG {TZ} bd + } ifelse + Level2? + { + currentglobal false setglobal + userdict /pdftext_data 5 dict put + pdftext_data + begin + /saveStacks + { + pdftext_data + begin + /vmmode currentglobal def + false setglobal + count array astore /os exch def + end + countdictstack array dictstack pdftext_data exch /ds exch put + cleardictstack pdftext_data /dscount countdictstack put + pdftext_data /vmmode get setglobal + } bind def + /restoreStacks + { + pdftext_data /vmmode currentglobal put false setglobal + clear cleardictstack + pdftext_data /ds get dup + pdftext_data /dscount get 1 2 index length 1 sub + { get begin dup } for + pop pop + pdftext_data /os get aload pop + pdftext_data /vmmode get setglobal + } bind def + /testForClonePrinterBug + { + currentglobal true setglobal + /undefinedCategory /Generic /Category findresource + dup length dict copy /Category defineresource pop + setglobal + pdftext_data /saveStacks get exec + pdftext_data /vmmode currentglobal put false setglobal + /undefined /undefinedCategory { resourcestatus } stopped + pdftext_data exch /bugFound exch put + pdftext_data /vmmode get setglobal + pdftext_data /restoreStacks get exec + pdftext_data /bugFound get + } bind def + end + setglobal + /pdf_resourcestatus + pdftext_data /testForClonePrinterBug get exec + { + { + pdftext_data /saveStacks get exec + pdftext_data /os get dup dup length 1 sub + dup 1 sub dup 0 lt { pop 0 } if + exch 1 exch { get exch dup } for + pop pop + { resourcestatus } + stopped + { + clear cleardictstack pdftext_data /restoreStacks get exec + { pop pop } stopped pop false + } + { + count array astore pdftext_data exch /results exch put + pdftext_data /restoreStacks get exec pop pop + pdftext_data /results get aload pop + } + ifelse + } + } + { { resourcestatus } } + ifelse + bd + } + if + Level2? + { + /_pdfUndefineResource + { + currentglobal 3 1 roll + _pdf_FontDirectory 2 index 2 copy known + {undef} + {pop pop} + ifelse + 1 index (pdf) exch _pdfConcatNames 1 index + 1 index 1 _pdfConcatNames 1 index + 5 index 1 _pdfConcatNames 1 index + 4 + { + 2 copy pdf_resourcestatus + { + pop 2 lt + {2 copy findresource gcheck setglobal undefineresource} + {pop pop} + ifelse + } + { pop pop} + ifelse + } repeat + setglobal + } bd + } + { + /_pdfUndefineResource { pop pop} bd + } + ifelse + Level2? + { + /_pdfFontStatus + { + currentglobal exch + /Font pdf_resourcestatus + {pop pop true} + {false} + ifelse + exch setglobal + } bd + } + { + /_pdfFontStatusString 50 string def + _pdfFontStatusString 0 (fonts/) putinterval + /_pdfFontStatus + { + FontDirectory 1 index known + { pop true } + { + _pdfFontStatusString 6 42 getinterval + cvs length 6 add + _pdfFontStatusString exch 0 exch getinterval + { status } stopped + {pop false} + { + { pop pop pop pop true} + { false } + ifelse + } + ifelse + } + ifelse + } bd + } + ifelse + Level2? + { + /_pdfCIDFontStatus + { + /CIDFont /Category pdf_resourcestatus + { + pop pop + /CIDFont pdf_resourcestatus + {pop pop true} + {false} + ifelse + } + { pop false } + ifelse + } bd + } + if + /_pdfString100 100 string def + /_pdfComposeFontName + { + dup length 1 eq + { + 0 get + 1 index + type /nametype eq + { + _pdfString100 cvs + length dup dup _pdfString100 exch (-) putinterval + _pdfString100 exch 1 add dup _pdfString100 length exch sub getinterval + 2 index exch cvs length + add 1 add _pdfString100 exch 0 exch getinterval + exch pop + true + } + { + pop pop + false + } + ifelse + } + { + false + } + ifelse + dup {exch cvn exch} if + } bd + /_pdfConcatNames + { + exch + _pdfString100 cvs + length dup dup _pdfString100 exch (-) putinterval + _pdfString100 exch 1 add dup _pdfString100 length exch sub getinterval + 3 -1 roll exch cvs length + add 1 add _pdfString100 exch 0 exch getinterval + cvn + } bind def + /_pdfTextTempString 50 string def + /_pdfRegOrderingArray [(Adobe-Japan1) (Adobe-CNS1) (Adobe-Korea1) (Adobe-GB1)] def + /_pdf_CheckCIDSystemInfo + { + 1 index _pdfTextTempString cvs + (Identity) anchorsearch + { + pop pop pop pop true + } + { + false + _pdfRegOrderingArray + { + 2 index exch + anchorsearch + { pop pop pop true exit} + { pop } + ifelse + } + forall + exch pop + exch /CIDFont findresource + /CIDSystemInfo get + 3 -1 roll /CMap findresource + /CIDSystemInfo get + exch + 3 -1 roll + { + 2 copy + /Supplement get + exch + dup type /dicttype eq + {/Supplement get} + {pop 0 } + ifelse + ge + } + { true } + ifelse + { + dup /Registry get + 2 index /Registry get eq + { + /Ordering get + exch /Ordering get + dup type /arraytype eq + { + 1 index type /arraytype eq + { + true + 1 index length 1 sub -1 0 + { + dup 2 index exch get exch 3 index exch get ne + { pop false exit} + if + } for + exch pop exch pop + } + { pop pop false } + ifelse + } + { + eq + } + ifelse + } + { pop pop false } + ifelse + } + { pop pop false } + ifelse + } + ifelse + } bind def + pdf_has_composefont? + { + /_pdfComposeFont + { + 2 copy _pdfComposeFontName not + { + 2 index + } + if + (pdf) exch _pdfConcatNames + dup _pdfFontStatus + { dup findfont 5 2 roll pop pop pop true} + { + 4 1 roll + 1 index /CMap pdf_resourcestatus + { + pop pop + true + } + {false} + ifelse + 1 index true exch + { + _pdfCIDFontStatus not + {pop false exit} + if + } + forall + and + { + 1 index 1 index 0 get _pdf_CheckCIDSystemInfo + { + 3 -1 roll pop + 2 index 3 1 roll + composefont true + } + { + pop pop exch pop false + } + ifelse + } + { + _pdfComposeFontName + { + dup _pdfFontStatus + { + exch pop + 1 index exch + findfont definefont true + } + { + pop exch pop + false + } + ifelse + } + { + exch pop + false + } + ifelse + } + ifelse + { true } + { + dup _pdfFontStatus + { dup findfont true } + { pop false } + ifelse + } + ifelse + } + ifelse + } bd + } + { + /_pdfComposeFont + { + _pdfComposeFontName not + { + dup + } + if + dup + _pdfFontStatus + {exch pop dup findfont true} + { + 1 index + dup type /nametype eq + {pop} + {cvn} + ifelse + eq + {pop false} + { + dup _pdfFontStatus + {dup findfont true} + {pop false} + ifelse + } + ifelse + } + ifelse + } bd + } + ifelse + /_pdfStyleDicts 4 dict dup begin + /Adobe-Japan1 4 dict dup begin + Level2? + { + /Serif + /HeiseiMin-W3-83pv-RKSJ-H _pdfFontStatus + {/HeiseiMin-W3} + { + /HeiseiMin-W3 _pdfCIDFontStatus + {/HeiseiMin-W3} + {/Ryumin-Light} + ifelse + } + ifelse + def + /SansSerif + /HeiseiKakuGo-W5-83pv-RKSJ-H _pdfFontStatus + {/HeiseiKakuGo-W5} + { + /HeiseiKakuGo-W5 _pdfCIDFontStatus + {/HeiseiKakuGo-W5} + {/GothicBBB-Medium} + ifelse + } + ifelse + def + /HeiseiMaruGo-W4-83pv-RKSJ-H _pdfFontStatus + {/HeiseiMaruGo-W4} + { + /HeiseiMaruGo-W4 _pdfCIDFontStatus + {/HeiseiMaruGo-W4} + { + /Jun101-Light-RKSJ-H _pdfFontStatus + { /Jun101-Light } + { SansSerif } + ifelse + } + ifelse + } + ifelse + /RoundSansSerif exch def + /Default Serif def + } + { + /Serif /Ryumin-Light def + /SansSerif /GothicBBB-Medium def + { + (fonts/Jun101-Light-83pv-RKSJ-H) status + }stopped + {pop}{ + { pop pop pop pop /Jun101-Light } + { SansSerif } + ifelse + /RoundSansSerif exch def + }ifelse + /Default Serif def + } + ifelse + end + def + /Adobe-Korea1 4 dict dup begin + /Serif /HYSMyeongJo-Medium def + /SansSerif /HYGoThic-Medium def + /RoundSansSerif SansSerif def + /Default Serif def + end + def + /Adobe-GB1 4 dict dup begin + /Serif /STSong-Light def + /SansSerif /STHeiti-Regular def + /RoundSansSerif SansSerif def + /Default Serif def + end + def + /Adobe-CNS1 4 dict dup begin + /Serif /MKai-Medium def + /SansSerif /MHei-Medium def + /RoundSansSerif SansSerif def + /Default Serif def + end + def + end + def + /TZzero + { + /_wmode xdd + /_styleArr xdd + /_regOrdering xdd + 3 copy + _pdfComposeFont + { + 5 2 roll pop pop pop + } + { + [ + 0 1 _styleArr length 1 sub + { + _styleArr exch get + _pdfStyleDicts _regOrdering 2 copy known + { + get + exch 2 copy known not + { pop /Default } + if + get + } + { + pop pop pop /Unknown + } + ifelse + } + for + ] + exch pop + 2 index 3 1 roll + _pdfComposeFont + {3 -1 roll pop} + { + findfont dup /FontName get exch + } + ifelse + } + ifelse + dup /WMode 2 copy known + { get _wmode ne } + { pop pop _wmode 1 eq} + ifelse + { + exch _wmode _pdfConcatNames + dup _pdfFontStatus + { exch pop dup findfont false} + { exch true } + ifelse + } + { + dup /FontType get 0 ne + } + ifelse + { + dup /FontType get 3 eq _wmode 1 eq and + { + _pdfVerticalRomanT3Font dup length 10 add dict copy + begin + /_basefont exch + dup length 3 add dict + begin + {1 index /FID ne {def}{pop pop} ifelse } + forall + /Encoding Encoding dup length array copy + dup 16#27 /quotesingle put + dup 16#60 /grave put + _regOrdering /Adobe-Japan1 eq + {dup 16#5c /yen put dup 16#a5 /yen put dup 16#b4 /yen put} + if + def + FontName + currentdict + end + definefont + def + /Encoding _basefont /Encoding get def + /_fauxfont true def + } + { + dup length 3 add dict + begin + {1 index /FID ne {def}{pop pop} ifelse } + forall + FontType 0 ne + { + /Encoding Encoding dup length array copy + dup 16#27 /quotesingle put + dup 16#60 /grave put + _regOrdering /Adobe-Japan1 eq + {dup 16#5c /yen put} + if + def + /_fauxfont true def + } if + } ifelse + /WMode _wmode def + dup dup /FontName exch def + currentdict + end + definefont pop + } + { + pop + } + ifelse + /_pdf_FontDirectory 3 1 roll _safeput + } + bd + Level2? + { + /Tf { + _pdf_FontDirectory 2 index 2 copy known + {get exch 3 -1 roll pop} + {pop pop} + ifelse + selectfont + } bd + } + { + /Tf { + _pdf_FontDirectory 2 index 2 copy known + {get exch 3 -1 roll pop} + {pop pop} + ifelse + exch findfont exch + dup type /arraytype eq + {makefont} + {scalefont} + ifelse + setfont + } bd + } + ifelse + /cshow where + { + pop /pdf_cshow /cshow load dd + /pdf_remove2 {pop pop} dd + } + { + /pdf_cshow {exch forall} dd + /pdf_remove2 {} dd + } ifelse + /pdf_xshow + { + /_pdf_na xdd + /_pdf_i 0 dd + currentpoint + /_pdf_y xdd + /_pdf_x xdd + { + pdf_remove2 + _pdf_str1 exch 0 exch put + _pdf_str1 /_pdf_showproc load exec + {_pdf_na _pdf_i get} stopped + { pop pop } + { + _pdf_x _pdf_y moveto + 0 + rmoveto + } + ifelse + _pdf_i 1 add /_pdf_i xdd + currentpoint + /_pdf_y xdd + /_pdf_x xdd + } + exch + pdf_cshow + } bd + /pdf_yshow + { + /_pdf_na xdd + /_pdf_i 0 dd + currentpoint + /_pdf_y xdd + /_pdf_x xdd + { + pdf_remove2 + _pdf_str1 exch 0 exch put + _pdf_str1 /_pdf_showproc load exec + {_pdf_na _pdf_i get} stopped + { pop pop } + { + _pdf_x _pdf_y moveto + 0 exch + rmoveto + } + ifelse + _pdf_i 1 add /_pdf_i xdd + currentpoint + /_pdf_y xdd + /_pdf_x xdd + } + exch + pdf_cshow + } bd + /pdf_xyshow + { + /_pdf_na xdd + /_pdf_i 0 dd + currentpoint + /_pdf_y xdd + /_pdf_x xdd + { + pdf_remove2 + _pdf_str1 exch 0 exch put + _pdf_str1 /_pdf_showproc load exec + {_pdf_na _pdf_i get} stopped + { pop pop } + { + {_pdf_na _pdf_i 1 add get} stopped + { pop pop pop} + { + _pdf_x _pdf_y moveto + rmoveto + } + ifelse + } + ifelse + _pdf_i 2 add /_pdf_i xdd + currentpoint + /_pdf_y xdd + /_pdf_x xdd + } + exch + pdf_cshow + } bd + /pdfl1xs {/_pdf_showproc /show load dd pdf_xshow} bd + /pdfl1ys {/_pdf_showproc /show load dd pdf_yshow} bd + /pdfl1xys {/_pdf_showproc /show load dd pdf_xyshow} bd + Level2? _ColorSep5044? not and + { + /pdfxs {{xshow} stopped {pdfl1xs} if} bd + /pdfys {{yshow} stopped {pdfl1ys} if} bd + /pdfxys {{xyshow} stopped {pdfl1xys} if} bd + } + { + /pdfxs /pdfl1xs load dd + /pdfys /pdfl1ys load dd + /pdfxys /pdfl1xys load dd + } ifelse + /pdf_charpath {false charpath} bd + /pdf_xcharpath {/_pdf_showproc /pdf_charpath load dd pdf_xshow} bd + /pdf_ycharpath {/_pdf_showproc /pdf_charpath load dd pdf_yshow} bd + /pdf_xycharpath {/_pdf_showproc /pdf_charpath load dd pdf_xyshow} bd + /pdf_strokepath + { + { + pdf_remove2 + _pdf_str1 exch 0 exch put + _pdf_str1 false charpath + currentpoint S moveto + } bind + exch pdf_cshow + } bd + /pdf_xstrokepath {/_pdf_showproc {pdf_charpath S} dd pdf_xshow} bd + /pdf_ystrokepath {/_pdf_showproc {pdf_charpath S} dd pdf_yshow} bd + /pdf_xystrokepath {/_pdf_showproc {pdf_charpath S} dd pdf_xyshow} bd + Level2? {currentglobal true setglobal} if + /d0/setcharwidth ld + /nND {{/.notdef} repeat} bd + /T3Defs { + /BuildChar + { + 1 index /Encoding get exch get + 1 index /BuildGlyph get exec + } + def + /BuildGlyph { + exch begin + GlyphProcs exch get exec + end + } def + /_pdfT3Font true def + } bd + /_pdfBoldRomanWidthProc + { + stringwidth 1 index 0 ne { exch .03 add exch }if setcharwidth + 0 0 + } bd + /_pdfType0WidthProc + { + dup stringwidth 0 0 moveto + 2 index true charpath pathbbox + 0 -1 + 7 index 2 div .88 + setcachedevice2 + pop + 0 0 + } bd + /_pdfType0WMode1WidthProc + { + dup stringwidth + pop 2 div neg -0.88 + 2 copy + moveto + 0 -1 + 5 -1 roll true charpath pathbbox + setcachedevice + } bd + /_pdfBoldBaseFont + 11 dict begin + /FontType 3 def + /FontMatrix[1 0 0 1 0 0]def + /FontBBox[0 0 1 1]def + /Encoding cHexEncoding def + /_setwidthProc /_pdfBoldRomanWidthProc load def + /_bcstr1 1 string def + /BuildChar + { + exch begin + _basefont setfont + _bcstr1 dup 0 4 -1 roll put + dup + _setwidthProc + 3 copy + moveto + show + _basefonto setfont + moveto + show + end + }bd + currentdict + end + def + pdf_has_composefont? + { + /_pdfBoldBaseCIDFont + 11 dict begin + /CIDFontType 1 def + /CIDFontName /_pdfBoldBaseCIDFont def + /FontMatrix[1 0 0 1 0 0]def + /FontBBox[0 0 1 1]def + /_setwidthProc /_pdfType0WidthProc load def + /_bcstr2 2 string def + /BuildGlyph + { + exch begin + _basefont setfont + _bcstr2 1 2 index 256 mod put + _bcstr2 0 3 -1 roll 256 idiv put + _bcstr2 dup _setwidthProc + 3 copy + moveto + show + _basefonto setfont + moveto + show + end + }bd + currentdict + end + def + /_pdfDefineIdentity-H + { + /Identity-H /CMap PDFText /pdf_resourcestatus get exec + { + pop pop + } + { + /CIDInit/ProcSet findresource begin 12 dict begin + begincmap + /CIDSystemInfo + 3 dict begin + /Registry (Adobe) def + /Ordering (Identity) def + /Supplement 0 def + currentdict + end + def + /CMapName /Identity-H def + /CMapVersion 1 def + /CMapType 1 def + 1 begincodespacerange + <0000> + endcodespacerange + 1 begincidrange + <0000> 0 + endcidrange + endcmap + CMapName currentdict/CMap defineresource pop + end + end + } ifelse + } def + } if + /_pdfVerticalRomanT3Font + 10 dict begin + /FontType 3 def + /FontMatrix[1 0 0 1 0 0]def + /FontBBox[0 0 1 1]def + /_bcstr1 1 string def + /BuildChar + { + exch begin + _basefont setfont + _bcstr1 dup 0 4 -1 roll put + dup + _pdfType0WidthProc + moveto + show + end + }bd + currentdict + end + def + Level2? {setglobal} if + /MakeBoldFont + { + dup /ct_SyntheticBold known + { + dup length 3 add dict begin + CopyFont + /ct_StrokeWidth .03 0 FontMatrix idtransform pop def + /ct_SyntheticBold true def + currentdict + end + definefont + } + { + dup dup length 3 add dict + begin + CopyFont + /PaintType 2 def + /StrokeWidth .03 0 FontMatrix idtransform pop def + /dummybold currentdict + end + definefont + dup /FontType get dup 9 ge exch 11 le and + { + _pdfBoldBaseCIDFont + dup length 3 add dict copy begin + dup /CIDSystemInfo get /CIDSystemInfo exch def + /_Type0Identity /Identity-H 3 -1 roll [ exch ] composefont + /_basefont exch def + /_Type0Identity /Identity-H 3 -1 roll [ exch ] composefont + /_basefonto exch def + currentdict + end + /CIDFont defineresource + } + { + _pdfBoldBaseFont + dup length 3 add dict copy begin + /_basefont exch def + /_basefonto exch def + currentdict + end + definefont + } + ifelse + } + ifelse + } bd + /MakeBold { + 1 index + _pdf_FontDirectory 2 index 2 copy known + {get} + {exch pop} + ifelse + findfont + dup + /FontType get 0 eq + { + dup /WMode known {dup /WMode get 1 eq }{false} ifelse + version length 4 ge + and + {version 0 4 getinterval cvi 2015 ge } + {true} + ifelse + {/_pdfType0WidthProc} + {/_pdfType0WMode1WidthProc} + ifelse + _pdfBoldBaseFont /_setwidthProc 3 -1 roll load put + {MakeBoldFont} Type0CopyFont definefont + } + { + dup /_fauxfont known not 1 index /SubstMaster known not and + { + _pdfBoldBaseFont /_setwidthProc /_pdfBoldRomanWidthProc load put + MakeBoldFont + } + { + 2 index 2 index eq + { exch pop } + { + dup length dict begin + CopyFont + currentdict + end + definefont + } + ifelse + } + ifelse + } + ifelse + pop pop + dup /dummybold ne + {/_pdf_FontDirectory exch dup _safeput } + { pop } + ifelse + }bd + /MakeItalic { + _pdf_FontDirectory exch 2 copy known + {get} + {exch pop} + ifelse + dup findfont + dup /FontInfo 2 copy known + { + get + /ItalicAngle 2 copy known + {get 0 eq } + { pop pop true} + ifelse + } + { pop pop true} + ifelse + { + exch pop + dup /FontType get 0 eq Level2? not and + { dup /FMapType get 6 eq } + { false } + ifelse + { + dup /WMode 2 copy known + { + get 1 eq + { _italMtx_WMode1Type0 } + { _italMtxType0 } + ifelse + } + { pop pop _italMtxType0 } + ifelse + } + { + dup /WMode 2 copy known + { + get 1 eq + { _italMtx_WMode1 } + { _italMtx } + ifelse + } + { pop pop _italMtx } + ifelse + } + ifelse + makefont + dup /FontType get 42 eq Level2? not or + { + dup length dict begin + CopyFont + currentdict + end + } + if + 1 index exch + definefont pop + /_pdf_FontDirectory exch dup _safeput + } + { + pop + 2 copy ne + { + /_pdf_FontDirectory 3 1 roll _safeput + } + { pop pop } + ifelse + } + ifelse + }bd + /MakeBoldItalic { + /dummybold exch + MakeBold + /dummybold + MakeItalic + }bd + Level2? + { + /pdf_CopyDict + {1 index length add dict copy} + def + } + { + /pdf_CopyDict + { + 1 index length add dict + 1 index wcheck + { copy } + { begin + {def} forall + currentdict + end + } + ifelse + } + def + } + ifelse + /pdf_AddEuroGlyphProc + { + currentdict /CharStrings known + { + CharStrings /Euro known not + { + dup + /CharStrings + CharStrings 1 pdf_CopyDict + begin + /Euro pdf_EuroProcSet 4 -1 roll get def + currentdict + end + def + /pdf_PSBuildGlyph /pdf_PSBuildGlyph load def + /pdf_PathOps /pdf_PathOps load def + /Symbol eq + { + /Encoding Encoding dup length array copy + dup 160 /Euro put def + } + if + } + { pop + } + ifelse + } + { pop + } + ifelse + } + def + Level2? {currentglobal true setglobal} if + /pdf_PathOps 4 dict dup begin + /m {moveto} def + /l {lineto} def + /c {curveto} def + /cp {closepath} def + end + def + /pdf_PSBuildGlyph + { + gsave + 8 -1 roll pop + 7 1 roll + currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse + dup 9 1 roll + { + currentdict /StrokeWidth 2 copy known + { + get 2 div + 5 1 roll + 4 -1 roll 4 index sub + 4 1 roll + 3 -1 roll 4 index sub + 3 1 roll + exch 4 index add exch + 4 index add + 5 -1 roll pop + } + { + pop pop + } + ifelse + } + if + setcachedevice + pdf_PathOps begin + exec + end + { + currentdict /StrokeWidth 2 copy known + { get } + { pop pop 0 } + ifelse + setlinewidth stroke + } + { + fill + } + ifelse + grestore + } def + /pdf_EuroProcSet 13 dict def + pdf_EuroProcSet + begin + /Courier-Bold + { + 600 0 6 -12 585 612 + { + 385 274 m + 180 274 l + 179 283 179 293 179 303 c + 179 310 179 316 180 323 c + 398 323 l + 423 404 l + 197 404 l + 219 477 273 520 357 520 c + 409 520 466 490 487 454 c + 487 389 l + 579 389 l + 579 612 l + 487 612 l + 487 560 l + 449 595 394 612 349 612 c + 222 612 130 529 98 404 c + 31 404 l + 6 323 l + 86 323 l + 86 304 l + 86 294 86 284 87 274 c + 31 274 l + 6 193 l + 99 193 l + 129 77 211 -12 359 -12 c + 398 -12 509 8 585 77 c + 529 145 l + 497 123 436 80 356 80 c + 285 80 227 122 198 193 c + 360 193 l + cp + 600 0 m + } + pdf_PSBuildGlyph + } def + /Courier-BoldOblique /Courier-Bold load def + /Courier + { + 600 0 17 -12 578 584 + { + 17 204 m + 97 204 l + 126 81 214 -12 361 -12 c + 440 -12 517 17 578 62 c + 554 109 l + 501 70 434 43 366 43 c + 266 43 184 101 154 204 c + 380 204 l + 400 259 l + 144 259 l + 144 270 143 281 143 292 c + 143 299 143 307 144 314 c + 418 314 l + 438 369 l + 153 369 l + 177 464 249 529 345 529 c + 415 529 484 503 522 463 c + 522 391 l + 576 391 l + 576 584 l + 522 584 l + 522 531 l + 473 566 420 584 348 584 c + 216 584 122 490 95 369 c + 37 369 l + 17 314 l + 87 314 l + 87 297 l + 87 284 88 272 89 259 c + 37 259 l + cp + 600 0 m + } + pdf_PSBuildGlyph + } def + /Courier-Oblique /Courier load def + /Helvetica + { + 556 0 24 -19 541 703 + { + 541 628 m + 510 669 442 703 354 703 c + 201 703 117 607 101 444 c + 50 444 l + 25 372 l + 97 372 l + 97 301 l + 49 301 l + 24 229 l + 103 229 l + 124 67 209 -19 350 -19 c + 435 -19 501 25 509 32 c + 509 131 l + 492 105 417 60 343 60 c + 267 60 204 127 197 229 c + 406 229 l + 430 301 l + 191 301 l + 191 372 l + 455 372 l + 479 444 l + 194 444 l + 201 531 245 624 348 624 c + 433 624 484 583 509 534 c + cp + 556 0 m + } + pdf_PSBuildGlyph + } def + /Helvetica-Oblique /Helvetica load def + /Helvetica-Bold + { + 556 0 12 -19 563 710 + { + 563 621 m + 537 659 463 710 363 710 c + 216 710 125 620 101 462 c + 51 462 l + 12 367 l + 92 367 l + 92 346 l + 92 337 93 328 93 319 c + 52 319 l + 12 224 l + 102 224 l + 131 58 228 -19 363 -19 c + 417 -19 471 -12 517 18 c + 517 146 l + 481 115 426 93 363 93 c + 283 93 254 166 246 224 c + 398 224 l + 438 319 l + 236 319 l + 236 367 l + 457 367 l + 497 462 l + 244 462 l + 259 552 298 598 363 598 c + 425 598 464 570 486 547 c + 507 526 513 517 517 509 c + cp + 556 0 m + } + pdf_PSBuildGlyph + } def + /Helvetica-BoldOblique /Helvetica-Bold load def + /Symbol + { + 750 0 20 -12 714 685 + { + 714 581 m + 650 645 560 685 465 685 c + 304 685 165 580 128 432 c + 50 432 l + 20 369 l + 116 369 l + 115 356 115 347 115 337 c + 115 328 115 319 116 306 c + 50 306 l + 20 243 l + 128 243 l + 165 97 300 -12 465 -12 c + 560 -12 635 25 685 65 c + 685 155 l + 633 91 551 51 465 51 c + 340 51 238 131 199 243 c + 555 243 l + 585 306 l + 184 306 l + 183 317 182 326 182 336 c + 182 346 183 356 184 369 c + 614 369 l 644 432 l + 199 432 l + 233 540 340 622 465 622 c + 555 622 636 580 685 520 c + cp + 750 0 m + } + pdf_PSBuildGlyph + } def + /Times-Bold + { + 500 0 16 -14 478 700 + { + 367 308 m + 224 308 l + 224 368 l + 375 368 l + 380 414 l + 225 414 l + 230 589 257 653 315 653 c + 402 653 431 521 444 457 c + 473 457 l + 473 698 l + 444 697 l + 441 679 437 662 418 662 c + 393 662 365 700 310 700 c + 211 700 97 597 73 414 c + 21 414 l + 16 368 l + 69 368 l + 69 359 68 350 68 341 c + 68 330 68 319 69 308 c + 21 308 l + 16 262 l + 73 262 l + 91 119 161 -14 301 -14 c + 380 -14 443 50 478 116 c + 448 136 l + 415 84 382 40 323 40 c + 262 40 231 77 225 262 c + 362 262 l + cp + 500 0 m + } + pdf_PSBuildGlyph + } def + /Times-BoldItalic + { + 500 0 9 -20 542 686 + { + 542 686 m + 518 686 l + 513 673 507 660 495 660 c + 475 660 457 683 384 683 c + 285 683 170 584 122 430 c + 58 430 l + 34 369 l + 105 369 l + 101 354 92 328 90 312 c + 34 312 l + 9 251 l + 86 251 l + 85 238 84 223 84 207 c + 84 112 117 -14 272 -14 c + 326 -14 349 9 381 9 c + 393 9 393 -10 394 -20 c + 420 -20 l + 461 148 l + 429 148 l + 416 109 362 15 292 15 c + 227 15 197 55 197 128 c + 197 162 204 203 216 251 c + 378 251 l + 402 312 l + 227 312 l + 229 325 236 356 241 369 c + 425 369 l + 450 430 l + 255 430 l + 257 435 264 458 274 488 c + 298 561 337 654 394 654 c + 437 654 484 621 484 530 c + 484 516 l + 516 516 l + cp + 500 0 m + } + pdf_PSBuildGlyph + } def + /Times-Italic + { + 500 0 23 -10 595 692 + { + 399 317 m + 196 317 l + 199 340 203 363 209 386 c + 429 386 l + 444 424 l + 219 424 l + 246 514 307 648 418 648 c + 448 648 471 638 492 616 c + 529 576 524 529 527 479 c + 549 475 l + 595 687 l + 570 687 l + 562 674 558 664 542 664 c + 518 664 474 692 423 692 c + 275 692 162 551 116 424 c + 67 424 l + 53 386 l + 104 386 l + 98 363 93 340 90 317 c + 37 317 l + 23 279 l + 86 279 l + 85 266 85 253 85 240 c + 85 118 137 -10 277 -10 c + 370 -10 436 58 488 128 c + 466 149 l + 424 101 375 48 307 48 c + 212 48 190 160 190 234 c + 190 249 191 264 192 279 c + 384 279 l + cp + 500 0 m + } + pdf_PSBuildGlyph + } def + /Times-Roman + { + 500 0 10 -12 484 692 + { + 347 298 m + 171 298 l + 170 310 170 322 170 335 c + 170 362 l + 362 362 l + 374 403 l + 172 403 l + 184 580 244 642 308 642 c + 380 642 434 574 457 457 c + 481 462 l + 474 691 l + 449 691 l + 433 670 429 657 410 657 c + 394 657 360 692 299 692 c + 204 692 94 604 73 403 c + 22 403 l + 10 362 l + 70 362 l + 69 352 69 341 69 330 c + 69 319 69 308 70 298 c + 22 298 l + 10 257 l + 73 257 l + 97 57 216 -12 295 -12 c + 364 -12 427 25 484 123 c + 458 142 l + 425 101 384 37 316 37 c + 256 37 189 84 173 257 c + 335 257 l + cp + 500 0 m + } + pdf_PSBuildGlyph + } def + end + Level2? {setglobal} if + currentdict readonly pop end + %%EndResource + PDFText begin + [userdict /pdf_svglb currentglobal put true setglobal + 39/quotesingle 96/grave 128/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis + /Udieresis/aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute + /egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde + /oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex + /udieresis/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls + /registered/copyright/trademark/acute/dieresis/.notdef/AE/Oslash + /.notdef/plusminus/.notdef/.notdef/yen/mu/.notdef/.notdef + /.notdef/.notdef/.notdef/ordfeminine/ordmasculine/.notdef/ae/oslash + /questiondown/exclamdown/logicalnot/.notdef/florin/.notdef/.notdef + /guillemotleft/guillemotright/ellipsis/space/Agrave/Atilde/Otilde/OE/oe + /endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide + /.notdef/ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright + /fi/fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand + /Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex + /Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex + /Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring/cedilla + /hungarumlaut/ogonek/caron + 0 TE + [1/dotlessi/caron 39/quotesingle 96/grave + 127/bullet/Euro/bullet/quotesinglbase/florin/quotedblbase/ellipsis + /dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE + /bullet/Zcaron/bullet/bullet/quoteleft/quoteright/quotedblleft + /quotedblright/bullet/endash/emdash/tilde/trademark/scaron + /guilsinglright/oe/bullet/zcaron/Ydieresis/space/exclamdown/cent/sterling + /currency/yen/brokenbar/section/dieresis/copyright/ordfeminine + /guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus + /twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla + /onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters + /questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla + /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis + /Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash + /Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave + /aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute + /ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde + /ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute + /ucircumflex/udieresis/yacute/thorn/ydieresis + 1 TE + end + + userdict /pdf_svglb get setglobal + %%BeginResource: pdfasc.prc + %%Version: 4.0 2 + %%Copyright: Copyright 1992-1997 Adobe Systems Incorporated. All Rights Reserved. + /AS { + 9 dict begin + /shrink? xdd + /Pury xdd + /Purx xdd + /Plly xdd + /Pllx xdd + gsave newpath clippath pathbbox newpath grestore + /Dury xdd + /Durx xdd + /Dlly xdd + /Dllx xdd + Durx Dllx sub Dury Dlly sub + Pury Plly sub div exch Purx Pllx sub div + 2 copy gt { exch } if pop + Durx Dllx add 2 div Dury Dlly add 2 div translate + shrink? { dup scale } { pop } ifelse + Purx Pllx add -2 div Pury Plly add -2 div translate + end + } [/shrink? /Pury /Purx /Plly /Pllx /Durx /Dury /Dllx /Dlly] + bld + %%EndResource + currentdict readonly pop + end end + /currentpacking where {pop setpacking}if + PDFVars/DocInitAll{[PDF PDFText]{/docinitialize get exec}forall }put + PDFVars/InitAll{[PDF PDFText]{/initialize get exec}forall initgs}put + PDFVars/TermAll{[PDFText PDF]{/terminate get exec}forall}put + PDFVars begin PDF begin + PDFVars/DocInitAll get exec PDFVars/InitAll get exec + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font YUSZLK+CMR6 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMR6) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /YUSZLK+CMR6 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { 0 -21 564 675 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3EC8DC423323 + 00A152553EC9C9C51591C81BB5A2F58753878D92B1C73E948BB360F467A7D593 + 2446E52E22935D5D0316634839C917AE2BE363D6AE3760363F748EAAEAD9AB74 + D863835F45718D23FB3980D0C645610BF765847F4BC5CB03391BDC9D40A6A460 + ABF0D95BB6A176DB5088A1068A0DFDC266C25ADCBEF3E5472E03E0D29BC6801F + A2AEAD77E33C836B01D3632DEB22D63B3C2572FE1DFC770815B76608523BAFFD + DA862456E4C538AD97F8DA4503B285C5BF293C8E4F4B65390D8C76DB8184D5F3 + CAFAE9F941BCE3CB8EE317CA5B51796D717B5E48FF981B26780E16C5A55F1571 + EFCD77B14E69783BEFCDD7DD3536968D2541F682479A999B701B1BB2515FD327 + A1868B69E733E3B16EB08EC7BD49F68AF17C5174DA3199489E21A30503FE023D + CC9867FDE7B5274F54BAC3BB47E14280D9758E1AC546B1C76A42B5238CB8DB9B + 1084D640AECFE5698DFB3C05BFC5D0098957C1E97C02ABEC67C42C1A574B0018 + 769E09C6F2DA493FBE7CC597B957C6829DE0C682088ABF5A175B0D0AEA800D93 + CA21269CA424C876580BFC965B1F51A3D9039B41D21BEFD7D1A8399062B7D027 + 8FA9BF9D445B9F7CE77FF40F7FB640E9E2C156FC01AC72A24B42AA495CA716EB + E877AE6383821EC5E48F23A00EB92C1CA00527AB171D1F15AF48AB0071392C32 + 58E7DCF6FAEE7156FBDD429D85ADABE6FEFE95D8C2538E766702EBF82B68A594 + 1735CBF787173B4773DDDE66687DE10D132C3FC71EFF9AA5F34108492E1553AF + DF3118BB19F3611D1529E9DCF5775376501EE8E37D363D4E3DA05957EB2B14B1 + 4C4374D6DDCFD4830BFDB0F3E61BD51A141892D0722A074387C55B1694ADC57B + 117522D248A7A2DC051D34A847704997E19547A3A93DC71AFD51583115D00A26 + 7E4F45DF8D343C1BB8012FA711264B0AA7E41335A2513659485D4C947243F8DF + 2566537EF2E3E10DABB78367155B920086E36CECEF11C6BD6C8FDF6764C3303D + 01C77E40A9D9DD24ACDA832A8D3FBFF9A3105842CA3FD2A58BD158C2349EDA38 + 188CCA9053ED256C2454DD02F0ACFE14ADA50D2AF05A9A1949A0F767CB5548BA + 937E1F4519B5EDE5F5EFACE4335FB8339AF4BA62921AFF21DF1CA43EB47719E2 + 678E4E4072C8B80618FDFE1EE3948B3036DBDE5BDEFAD565A7E3E547A418F6F1 + 324230F7E73F0CBCF216F62B57305920F1C8B4AAE9F2262F99382870E6C2353B + AD84E7929CDFAB7EF31EC79ECF1D0C7F0F8E5905291BA8EA5AC7E54F1CE60977 + 92D7BA127945DA41A4986BAAF0341F74FCDD420108F5443F1B399814545CE8B3 + 6F858959BF87A8AEBCA479C507DD25783566A9CB869CD876290101FFAF606CBA + A8758F03CAA8D64D6E2E16B14FE02346E1B5E59F15CC6388639021AA99C54919 + 4B712C6F087A600B1EA99E3402E2296B8AF148B5F3EE72AA2B3D8E3904203FE8 + 1DBB21115A78C91D325358C2EA7E4192B89C87303DE9AA98FCAE96440495D902 + 61557B26EEC2ED3D145D2B082EA84C8E8F5FC1D06895FFD4351DC09AD099DFBE + 443F8FE83499FC2A6D4390698660D3FA164DCE5A60634F6B6AC90A9A419B820B + 1BC55D0011CDAC81041BCF54F285DB3E9D60E66B932046BB2C4F9DB625B00BEB + 9EF5AD4BCC9299C21A0CB3224717535BC517C871684045703AEE004466B226B7 + 82FBC3A4F0C01AD4DEE941C58C1796153B78A4CDCF3A045E5E557514705B6A4F + AD69C09777FEBDF4ED23E098EA0EEE35357E2DDC70FAC0715DDAE97B41CF470A + EA620C9F0F6B2860BA2AA12271FE6FEF2DC5206FB1AC8661CD8C5EA70DCCFC6C + 51EF99FC638D3DF230465578843EFFEA99397405D7C66941E5C5D1C802F435BF + B8804B77D231B7DFE5B2CFFE7594E639169B5F3DABE0237F4247B21AB6EEC56E + 56005CF3A7E17CC9A4AF34746CBD3725414D5F800041349C7CF85BAA20B18CB7 + D978F892BF39D39316698E12BB5B0AB63BBFF209EF593B6DC76C12BE81254E87 + 4A713E326AB9633276478B00DA4695B32568614E347F78328526D9BD87F626ED + BACE33BED0D41849383D59AFB848B10F317782E16052F42AE7C7F2A0A832BE0B + 52D67D922EABF78EC013BB3991EFB43629B3EF4E887E3E31791C3737299BC2BB + BB54E73792B053E99A00BA831FE0E25435971CBA20D9A24E5373DA40A0DBA506 + F22EE14C46E2B4A2C868C42C3AB9FABF6F5AFCF0419C12FA19DFAFA45775AF6D + 2C8803763F33832D3F0144B5363BAE9F5266EC6ECADC099F4CAC002673803D0C + 60BBDB6EA3C1F83ECA832A8530ACF4D3039204C714E3813166F7BDECB7F60664 + 72218706A2631D17B2F0F3303F881E871D7CE809F5D42722975DEDA6364EFCEC + 8531084470BC3184290572ED3E02412C9EC5A922BB0491220EA5C45ECF86D222 + B02928CC6B8E649E7F9AFC81E3B627B74B90567C1BFA4522D1445C8110469C0D + 18EAADFA7F3AF546A15F5308211185A5AF05B146D32A70A65F91242F7BADB6F8 + FD9D602DC527F4DE2714FF7E67BE40B0632F44269228B8680AF515ADC4A025B1 + D82D8C79A20256878E19D41CA6A239E9038BD5B9FD6CA6050E182F93932A2EB3 + 8DA8CBCF101594CCFA1633CE3366294F157239867A187613DABC3662EA2C9828 + 5D20A0B6237A1A9CE2D2BBBDEEC217A2D4A4DCEF1E4D51E76C073C2F448A815D + D7653647CBB65EEE5B8F2AF61150FCF57831F309227589568E6CB7E931E3BD52 + DD3BA595223750CE6DCDB5D6F0CE17920D83708E4A9835A093518F53E8C9BFCF + ECCC7A3200EFD40030266CEF4DF9B665B3CF71E25664FED56B9360995931212F + 3C966FEAD94C942993E7994A8722DD73179039704B3BF28BB56A8836CE147AD7 + 62F82CB083323CC1D527193F8E6913F51CE8501FBFE47AB2C56729AD8338C803 + A8BF44153BEA5B82C40A68C2313CFD07C79415BDFB9B5D8E1824A930C7B93FEB + B7B92560FE41333CD892912BB9CC111DEAA9B3CA9BC760755A9546D0F88B6D00 + 5B47F503AECF58011847D41869482AFA6B6F9D7EC51CFDD0B1038EC55FBA7FFD + 2131404522BA1917FC0F7A9A0CE3C8D0BEC7CD4C926C1C0381CB67CB7D66E339 + 4C7B60EE51498BB0EC7AFBF8A9FB7A1C7A2EFEFDD53880E762C62AFA74FC5A52 + E298CFE8D80DEF33B5FDE0A86B90A666A52C + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /YUSZLK+CMR6 findfont /Encoding get + dup 0 /.notdef put + pop + end + /YUSZLK+CMR6 findfont /Encoding get + dup 0 /.notdef put + dup 48 /.notdef put + dup 49 /.notdef put + dup 50 /.notdef put + dup 51 /.notdef put + dup 52 /.notdef put + dup 53 /.notdef put + dup 54 /.notdef put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [/N21/YUSZLK+CMR6 1 TZG + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font MXUJJG+CMR8 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMR8) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /MXUJJG+CMR8 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { -36 -250 1070 750 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3EC8DC423323 + 00A152553EC9C9C51591C81BB5A2F58753878D92B1C73E948BB360F467A7D593 + 2446E52E22935D5D0316634839C917AE2BE363D6AE3760363F748EAAEAD9AB74 + D863835F45718D23FB3980D0C645610BF765847F4BC5CB03391BDC9D40A6A460 + ABF0D95BB6A176DB5088A1068A0DFDC266C25ADCBEF3E5472E03E0D29BC6801F + A2AEAD77E33C836B01D3632DEB22D63B3C2572FE1DFC770815B76608523BAFFD + DA862456E4C538AD97F8DA4503B285C5BF293C8E4F4B65390D8C76DB8184D5F3 + CAFAE9F941BCE3CB8EE317CA5B51796D7B4B0A38FA07929DD61A147547B4C58F + D2236CAFC414F441422F0FD1CBCD2F826CF005D545809875564B3A161DFA4694 + 0465B671F0FEF35B3F85487C8C75CA69C0B84CE25E0817756BDEC9C8AA4DF760 + 71F4BC67D9BBDADB2A78BFC3CDF06883C654FABD0A62F7D9ED5EE02DBB9DF70E + D0D677799CD12B291AF13EED456DDD9565820B3E2205011CAE96A15CC58A73F1 + DB41B2E007A37042E08E8C346769460703FC06E816B3344D1D594F4B027B3A62 + A6BD89CEC459C6264BF1B02C3AD44FF31D8004AF44699620F3580E8A6A437311 + 63D4CD4B71825A154ABB14EF1B3CDCC583B64E09A7088AF3ED9BAB20FEAE9559 + 1599FE0348CCA584CCEAAE37E6B65EF29976F708CFE8C0513D8B42EF3C4391DD + 0E3D6EEDB7D61E86FA8F7AABBBAEC903CBD2D7EDF8E9A0D4EBD88B707537D642 + 28405C3D0B4A1EEC2D82E045CB1AC8F10C892D9E9AD16F752629DE78F960AED2 + 2F4AEA1436DE4DCA9C26AFD8C56499F70BAB90BDB0D89EAA59E31E1A7AA8F35E + 18C6844648FA14D72982A1C01EA6B968C8A7861D67CB5518B7243677CBF8875A + C60BA0463791531696D2DBC54587334341431A8A061A553F4CF7D5369ED4BF95 + 968FA73C63E5A9A8B7FD1AA59CB121C1046586A2DCD4925CCBA76B767E7E4CDB + 7ED8A1CBC9A56F4EDFF61857D8FF0CA6C39C82475053376AA2CCE5C7CAE5B023 + EF9D80989C971EE303B01AE7D6730CAE40B82ADAB315FDB991F834E7F201B382 + 49D5EFB2FC529F106DFB3907B08FE77CE4A8E43EF9D09CF219D0764758D72BA1 + 89672759CE7CF8A58BAC0A7D5A7175462119B106EA55463DD4C110BC7FA69D33 + A5408A02FBC994009B6D5F7C54C16B1BBEAB0C04F215BD3783CDF915E2C1015F + 0191AFE7CCF51CD883AA857686A237EFCFBE0C9851E4B4277C103C7F206A7234 + F1C0BCCB55C9C0304301B6A4301C34EABE7515DD1301657ED226325927EEE037 + 9DAF9A80E445AA7CDC55C1419165E2ED0F3B025C3F12627C2266CEB1EBAE434D + EAA5E89CBCA8B976A02E6CC6CEAB8A4559E51BC0E5ADA2DF079B125A6FD8C1F0 + AC6CA4009F481724A4F3ACF92A2E649916680B8E5E12FB9CA04CBA77F1467129 + 256A6DBFF878FE585633EB85F858354C1553E2DFCCEBA6794EA38AF4439AE38C + DDC96371E2F4224575D7C2FA62232D367ED44453E90ED78E30508F3A6501E5BA + 15BC6B0E24CE8DB1AF086E472CD3A4E9AE72674168480EB729B40E9D6EB52F29 + A6B8EA5507488B44FA1FF70AB0AB74884F1CF603B6E506BBA55ED25FF36BC325 + ED1EED8AE4DD703A6960DF0B051B2A1C45044E36A422AAAAF397A45CD21ACFEE + 565D88D5599DB0EFBBCA54243737419A04DF3EE33663CB0309935744DB2FA29D + 03D63C7C0B59FFC0DF56BD7B3C381F68EAF4D6E0F036B9D56B1C3BAF7B80CB03 + 68C39E0079965F9FAE519EFBC36992841907C79537DA7FAE993243F730D6F940 + 01BE8483D1A9D0B8201A1DA23C51E9B94EA0B720D65B12D08DF1ADF08D96260B + F4739E061D04C94B4BF9FE5CF403F5DB26B9D86C002093B0A663B22F9113AFB8 + 740C3E6E6EEC54A71B261A7AE4000092A35230903ACE37628CE0D60608D9F551 + 03D75AAC88797251142E77362268F115D67BDC7516ACFE13F0D50766900203DF + F051D5528006C7CD6EC6C896A3B008E2CE9ACB42C849F6A8FD72FAE8A7F2D127 + 13FF4F5573AD3F354381C846235E3F8B558C7ECD4DACC2FD2294CDE23B725384 + 59E19E29B1D4F76E02B4D3B484F5776B4BBCC0F4FF9B1927E3974C773491C9BD + 468CEB45DF3CC0F8D8A22CA33ECFF62B0C9569636E7FD1DFE374D487956E6526 + A73F53C2423172B8BFC154D75FB7357506278D07EC08B90F190044724D0BAA52 + 0CC0FB2960581B8957EA1F7F5D72EDCAECBCE23DE460E57A6D24EE4567E2DB44 + 09BC252626983F3AF842E18267EA2317A14B7D3DF13ED0431D13ED0132F1EFCE + 3F058E34879B56684550F35C875DDB96F37C19815B3B16BC8FABA23FA5C4FBD5 + 02043E4419479039100CB4E58719F6722830C0DE506E378590D59DDC9E7733F8 + A96B082E7A2894CE9C16C1630E8D086F1A269D1C31A3CFC8D5AA4A6198BE0A4C + 96FD6F8B68E30DB447617253728D75B1BB8DFA4537E77D2EB0C5897024D0B71C + DB0A8637F582D143F5B6DFD9A07BEC83BA449EA8785CFE3C6DB98BF6B89606EC + 1AB28F0DCA92CA81D6D399D355E3325390955E57B6218EFD4DB36153ED611C86 + 7BC7BBA678BFF24E88D3C9356660CCC1E8DF9733FDF8C5D65797A043308CCAE8 + 079FC0886EBB8500F1FADDB3720EFDF12D3E1F18114866E94DDCF6993037174A + B182FF266697431B201B618D4D49BE16487E74B4A645008E425E2C3880876B08 + 31528C9E15D1E18E45EFEB128F231A494E621C353CF4B898229C94DBED9AE619 + 126BC5CCF5B3302FEFE7100C7C92F4410CD977D1F914B070784B600FA6379C5F + FCC8CA8B7A46A2E74409C679C0A00D64F3AF7706005D2C155A4DA937392BC23D + 5537B1A6605DB02ADA6F9E0D626BE5314B0EB2CAFBAA530CEFCFB8FC13DEA734 + F1AFDE3D48C08D64C4536C66FC565DDCC94BDF9CE23FA8816B225ECFA394D7EF + 76013804B23230BC6EBCB90D755185209DF8AC5545E911ADF3477044EBDCA596 + 094FF89E6E698D0B39303D3CCC60F5081A2E0F7B216ED21E21BCFD7E03D333AE + D490B91697EFD7B33FF7FB504612A7B1D2CB308F1A7D32EE52D2916E997E82E5 + 08E9F86A39B6E03F2033B6665E5243C1F45CB1C2BC82C5B6EF3AAE45807C82E8 + 53DA60AE15C6BAC346B4D48661154292757161A60D40AB1FC21AB33C736A3949 + ECC20A4B46FDF5940A6D729AB382EC03BC5318A65763C666C8DFAFD0DCB76FCD + A46F8AD55103435F7B9E525CF52EAD77F4719B9A991715467F5E4664A8101E2D + AEB6821FCC4CE23B0F62B7EFEC151E0F7780783580C7A0789E1A9939B81EB00C + 77F79F2509649C743A393ED59B4527BDD8DF068FF80C6FC1DC9C0935CA316639 + A7E7D6EDA216349845ACB15B827A90FB59613695F3072996E1B9F9FDBC581B40 + 77A28CB49E9A1D6E5637B20B49C42A093AFA64B149671F8072C2C6014572F5D5 + C6FB4D81BF2CDE55ED9D333C9B8CE2A50E7B2A9EDEAC20C233FE9FF5C880006D + 9F999998FD144F67AC4667CDB2BEA856A9357E9766B3BF5AA7AD0B3CE9598481 + 65C5DBA7891AA975B9A48AB5022CCD186F9C5249326C765013638B5E82B77540 + D1F76F90B7B8CBA73881C73B4B191A843478EE5B23CFB2E12C32185CE33281C4 + C7F8EC7015A184B96F4E92CAA999F0A6AC1F512FEC9811141E7E5A50BA8F27CE + D7BDB9CAF4F8FAB2D8049A3325699C30216A0537D8DDE0FDFBA742536E2B4E38 + F186B2F038EB99B32A547A59CA3B0625841376ABAA6012F87874F8CA1402221F + 9A1F4FB3D0716536A17E8EE0CAA3F4D4143577BE89AF255E182DD0F3322B25EB + 865D7D206D35A51C51D26F1FC7471EA11B33AF456590207FAF2973ED967FCBDF + 26547823794E934E4CFF01F310D0DF7D80A05E0DD8C90B3EDA5F4895EF0EBB0E + 060C1181774E86EA0BA999C75990C6CBFCB074FD6AE52EC2E323AB516F15708E + F58DCFF221638B5E6D95CF21567D1BD84C1EF073FAB5A5327C633E7B77EE23F2 + 278D2EBE19A57B4917A6667EDEC8B4E586C284D7E5B9B55615831B3AC89072C3 + CABCD76ADAC682C96DD3B6A28846DE48CB869909CE27D83EEA9F93CE071EED01 + 1DA677DB9249433972C49EF6052307EB7EC96A857511E5CE020B590BD49AF77E + 111CB945D09A6CF7B0984E1428CB0336E4CC55BD03DF2EDF8098202D586B76A0 + E5F22F5F80DEEC551C6B90080F686F4695F489D71E339465B5D597CA0D1FF0D2 + 5D354A492DA9D0B9B3B7281C726101FCB911DD2DD2A4E88E9792495BFB427449 + 10F84EB0EC9AE8CC42992903C7229A837A28A41CFD1C01E94D45D3F7CFDA1879 + 48BB61BB5BEC42D9AB3733FD7724F79BED7E850946F37F41EF3160A5304F0F60 + DC9202379615258189EDB50EAC8025CE8E3BC123454CAA8F5BD80168743AE298 + C4E1EADF32D183C063137A75EA8F43A9B361F253BBF43B46E7A0606F2B94E21D + F84D61CB6A12E57F29A38F04EA581ED6407078A44F40AFCEDA656A189386DA7B + 91F009843FE29D7CBD0953DEDE8CC9158640F6DDA80AA57FEA02F9D4E6B3B3C4 + A363E65B3D9A04CEE7668BBAC882E9ACDD213E41E2B9CACEDF12E21ACCFDC80B + 80F86361AB269FC7D5073E66451500BD7C7044A709EDFD1896875FC2618F3DD8 + 0CC7996177BFB208350D57A4A276C478FEB7F3564031401A7A8FFD191F8AF7AC + DB3A23478444BA049AC7A5DAE21E5F9B3B02B861F96672E62A622CF830089242 + 436A3CBA32B56025B5AF72EFF362B4998DC4A661A2A22F58CF92987FE3D651F3 + 787374EBB2FF6E55DB06F0799AEACB4B00CED66308ED59243B23A651AA6518DC + 50A1B75E04545193E7E37D4BBC76D6AF91D1AAACBA275E4E52269446ACC313B6 + 4BABB77B98938A2A4E7AAF37550BB5C72ABAF8951B7FF95FC6D2B1380B0DFA83 + FEEB8DDDB4A0175FD7734D753822F9E63F999152AAF229FD9AB83A503C17B94B + 32084D28D2025E695B2D48384CF531335EAC13C8F1C0EBFC5F1B997F2C19FF5B + 3EBD571277380A23763B478EDF987ED90B9476096AF5FE716AE23E872DD14700 + EE0FF7479492660A8B22655A9CFCF74A8D2AD1B24AEF767C961B9CB8DE53A59F + AF9048DCC35AFF1BAE010CBF1E3F17C130A13027AC09E15083DB509EDEE7A626 + 37F494383BC60AAE0B5692A55A0E1503B27ACCF46C76B23865E6FD64394F0777 + EFC5807B81133D8775CC3CBA7A9B943A551192180CCF20321F95CC903A5B82D2 + 0C7E661EE8F8076D66B4AD42AA64ED96D3BE7E30E605C6F76A3D03EDC01D094F + 3B410DAB51E7B04A7E4576F74AE2FDC621C6004A39D12253750165A0DC750ED6 + 5D02EC768469635C316B229572E2AEF03DF17F4D5C418B3E16EB1F8BFE034911 + A99B61242AED3F9C61F26412DE58D39FD19EF067885AFC17DF65FC346F7F418F + BF2F1888C6B97447907B5610E6332F00C49BA7C377E8F3F8E1748FE25129C1F0 + 3A618B1912EB11DD9605923BC5B829F9E078B02B673196F3CD0A62F0DA4D4C8C + B00F97B499DB18B9688B3E58DF056006D9EB6ECC39EF35CD7D47755B8F888F1D + C2D42714DE2E31EDC4AB51BCF9E5F0CD5DCFF6B9FD934B05BCF4F987795D7340 + 6D88EACAB557AAF1FD32DA9C3CD605EDC9EAD49E8547173089C1D371DAADC053 + 313B31B5B1DC2D27A9B81403D8F84543CA9C426CD68B2420DC568F7742826605 + 2D56716B6098300F4E778C30C1EA4EF98A0817906A0626F2A008396175318043 + 06B02B482FE8F5CBC5A603EC42EB761545C8F2B5595779BDB4E607F6E214C75A + AB118B8951500E0835432182321571D9CF9BBE8F2962C9794B7054686B5D23B9 + 5CF370CFFF95A460511BD8751E869B10AB5FE3C5278CAC52C070C5A40DA0C009 + C10269DEB64C93A2DD5A2A6603B6DCA22060DDDAA09E057ACD8A6B22A4435A9D + A379A178F8E384EF15EAE9B4445DB897B3974829BECD2D35CA1DFF7CDDFD2DBF + 3D0D04DFEB42C08AB9417ECBFC98BC0A55883C05D0ACB051749DC2D3AD2BDCF2 + 56E7E2BFF8E47BE58C17C2DEF3AB3949B49A48BC04DEA1A2AF9FE12C2769D836 + 366F11EC3D97432D43EF2053C7C37B0C3001E957280006C1CADAFB219D434268 + 09EF58C37EA86A48B5C9931C1FA6F5DDAFDCBA71875AA7E992B15D1918F2427B + C16CA0CD4713E1A7557D591B6B539E7155AF9D6029C001A5B689F8B1214EC746 + DFD2878C9ABD5F4B81353A33A09BB6D36BDC4A8E01473D98406CB82FBC19714F + 31D1AD867A4C1E90AEE2C7B5CB30769FDA01F714B275D5FDD9692446E99B120B + DEC62E82AFC1AF5747F29C17572A87B9B8EBCB6C98C5FBF1BEA82E267D9C87EA + 3C2F3FD537C877412B796A93284201129FAA4ECBF01DCCF65E20210128623287 + 43329BB95C489AB5A17D4A156E2AEC5A75DC9BC6B151B0017C7D533F1C6ABA14 + DFE883406F74D8D02CF4EE61F7FDA96DC4544FCEBDCCE50D0CFA15F872341EC0 + CF0E040DF0217F24A4992D198DF7DC720C01E411ACD814A38E96707D920D6290 + D7CE89AAF28291F102B1384818438A36144D04A81ABC6D74971034ABFB78BEB2 + 6C79D3E83D7D80A2453C3170448AF47C8A7C10DFEC84352546FE5B155BB88D77 + 1AE253338FCAA864B7726C71D2A67C85ECF224B0CD01CD0AA2A4DBC8D5812BD0 + D99E96D28BEDC61DE46346A546033BB7E0B0A2BD97F50A60028CE33FDE4DBAEA + 7C12C3519EFD8717DA791A40CB6D0D20EEA05AFBCC06254F18F3421EA7DEB638 + 251D8D435A81CCE627FD5775C01ADB1921AC57D876E5F356748F0824672B43FC + 2AC4CC9C9B559574A161082ECDCE98ED74FF7BDE4B696BD469ABF20A4692E969 + 61069EC10C60AA49C29B079DB641671C62291751B76EE9358F4EC47B88D1492C + 9C994A73C00CD39BE35FBF7D69836A28F38A334623A000A90659FA3158D30864 + 76D52DD421437198DA87707C9AE70FF7706F71E292704E7567F467465120D1C5 + 4ED502B87191294AAA64F0F5FA8C750CAE9812F8E559F4C490DFB6D7160EDCC7 + 2F5D8FCAC9607F4B6DD4EB198B33373B930B7AEBBECADC086E4B859B68B016C7 + 65EE95B676E99FF016EC234974B4ABF5E0659DE35576DA6A21C1ED8AC3427441 + 92809E8262D02570503DBEB7DAEAC43E704ED73076741D2A2194192A344D50E8 + 698803DFC417E0A41C2FC5A8C4895CE37BB5507309B1D505298056563D18D11A + AFA13CCE934B457D11CB5C0819C9BC5DC40AD880B9A73E185EF0B0203B16045F + 7B3D28CDE49970ABFE4AC7BFB363E7F4397E426B2A9D5924BF5E4C5A9059EED5 + E717BD257ACCB52738B7A7F2890E2E83C862E55E4B9B21B92576CDBAF7E74004 + D6A5BA003273FA04A932FE1B4C132A77603AF96B78E6FFB783AC74A892B64113 + 49ADF80391A1B771DAA1E144F21CF3389F512FC0BAC9619D41EB1B4575AC18CE + E38B7B3A0E821170BDFE9689FDFF281242EBB0CCB1CA4E7871F8600D131D59D4 + F4BD96D3D60391D8AD1BA0D62BF4848EA782EC9E533BDC256BC0DF57277E0300 + 0517642A02299C1356FE861BAEDCD9C5E355734DC369FE35B5F27CE5B324D7D2 + E56A11D040877DA73C6055CB15CAA9352390020BF0F6366F64611BF4DEB01D45 + 04A5BA4485DCC324CFE50BC4042758464A90DD7CA64E5FAB73B8A695D0187A64 + 987377EF96E00F447A41B8D885CF185E0696A7BF0D626831B67C6F2539D25B55 + 218DC8EEA082A2D2B8CA7F11F74B6CA6C998F5CBCAB2C219252EBEB7A82EA34C + 4EC9F293F661088F37CF40F85AEAB4B5FFB20196BD83F9D012F02293B1484EDB + 9585058867FDF1CD73EF507DBAD96B3F1EAD407979E207E39780C589A236B969 + 4816753198AEEF978CA4A7C5ED299024496B8DA3E968629B6238B80FE6130208 + 11223758C70DB9008658A164518854A25173BC6BD2894B94F19E30BC3CF3AD37 + 6B8D57302316BCE4ABEB031AEB0B2CA8A22F3C9A45B7BC7442C6EFDD69C23702 + AE4F1C9C9B681968FCA15A1BDFCC2BE23A7AAEB33048147F2C015E5C435CAFFE + 47BAF65BE877AAFFF7CFE6A65309EB3AA14F616B6A4CA0E6B247636235F8C18C + 6DE018E3EE479D4531832B15964D4C38615452FDE1F4441531D5E5CFAA858DA5 + 3845E9E62C60A221A7EF86E33D4275AB0D8EF3C9D7774B31BC130436976A88D6 + 6ED99A0A4F311834DC4452962E7F640680ABC2E06F147CD84B6C3D3E0770D502 + B985C366ED7E6EBB84147FD4686F5213375E99245730D0984238164656ED7E84 + EBDC19A541D4E1786B67F409FDC1036830ADFB4BD6E46B23EA0AAA609CBA3E38 + 12C19A165E835DBA72C40A340B3922EADDB6D5444067961E1994A76E4470D991 + 237AD66E1F82B36DC02D018E94AA04BC9D3B6607235FAA42DCD94EEF043A8B8E + 2681E8DF7C73B9BD9C71B4D845D981915A383E7539A29A233577A9F592F4437B + DA825DC29059723E1ADAB7B822212AB9EB650CDEADAE16A6EDA83ECE721C4CEB + 8D56A9FCAB95DFF84C0227FB49B7C6F7D53E39D90AD1275DBE3C53D5ADDDFC3E + 3664B960BF2E12D4C3E4A51A198AB9CB9C464577F35F6A9DD4468AA728D547C5 + 04389801B442B194B13E50D7492F94DC96DEAA920BADD556590A66D06E2EEDAB + 1A34B8E38CF2A2A7949A1EDA974B7F4458AD9B74F4F2496A4F5D575117A4F777 + 9C81318DA9E4E6E0009E40B3A49447460D394277CD3C4C61ECF0ABCDD4C2C153 + DCAD62DD2CE7F29ADC5CD3A0E9E00F061C2B46BB7003F6ABA6571DAFF2613D6E + 0FE7E69EAC3824C3CE41FE530B1E2ADC7718F47DE08184114654EB4ACEA1F6C5 + 4651D62DFE59B363423E7FB87B3C211D0053C484D224679155FBED20CC12DC21 + 83778756B222F5FF4F72CFF455073F078753C678842AC2C7284E1F84873C7E31 + C03E47FF7499A4559A4DA6991BF9862CEA101041E42810A3945AD9DEF83EEBAB + 30E30A1D0429349CEE84AEE9C840EA81A69A41A341135FAB1F7D9D06092AA5A8 + 7337D71C7AB5EED9DC61AF37337564CC0A9A03980C3D7C35C6C629D1CFF923D8 + D2D69DF3AB6AB60D31ECAD916B2CE7F8BDDC0B0E87713CDA5EC2B9A1FA15D75E + 971D5A7DA3C63904EB316D0CBA3DA6072AF0785F1400E63D09DC362F2B8A6374 + 441AFAF08CC9A8412F9EE162A46C03C6995B9E6CDD7290D92991BEAA8A51EB07 + 6CFAB8DD19F9A164B6A48DB52E5844518BF857C39250A918A635FEEF88290E16 + 6D9C358E625672E767C31BBEF8BF63CD92EBF46AD78352FC782B818F76E01255 + 1F4F1F9B2064BB0B372E46D79CF4B16A24571BBF28D281B9EB3DE85A0F641765 + E762509A524AE7608F129CC3C053928C3FAE392707B75D69365956B576AC290D + DDF3D63CA2864C7EDCED79AE032B91123B995C5C47AEFEA1FB128AD01B50A7B4 + 9A539DB69E168869329406928575448536F6370294A4E2CFAACAEA43EA85F224 + 593FDE58E768FE72CBDD0F6E6CD21D49DA60D4726F9C7FFE2BB6EE78B4356235 + 27723BDE452307B79C26D7229D91671A8071EF17B0773333676E3AFCCCF275D8 + DBA37995D42C2A2B8FAB37F774547B6F944D4C6B8EDD1D4A0CE00F11A9DFE2EB + 546BDFD63CB5C8F14AE07755214A7A9A2F9DF1265F179742851D4FCED327E5C3 + 9272A7FB5E21E86242DD1DB8106A8DFD7A053596317C2F374D3C0030991911A6 + 6FA61A265C1E44DD06A0A3312B2B14D245BA4B5B8AFE3B2ED0A9149C30EE8C72 + 93FCA2EF0C0304814615EF376238C3EB10BD714DD038F0211D3FDBC968F58526 + 6BBDCF148078A7473380F179382DDB3D6D97CC96CBF109328BBBF7459EB7877F + 127243BF21ACD92E1A3E31ACA58BD6EA0570DD7C852ABAD264032EF1502F2F88 + 5F901E41742A66CB8391DD913EC3F1CD730E5FB00DD34006BDD5BC53DD68E5EE + E0D5BBFD8A2D0D7CC9C6069B3060D05F57003863BE2C89DC740828EDF81A9383 + 0A1F80FDF23AFF6D1F1212EB0FD109B2E2DB8290992801D562C271545FE36274 + 941525BCA4061550BD84B93E3E57E8C19A3953B9D3C247D4028C291028701FEA + AAB3EA6A63172058553ADB8EE05DC18251F578398238BE3FB0C42DA760D141C9 + 2B6F26AE1C78CB6FB1125A01AFC2B34ACED09699C02B8F62469DC02C2374B978 + 314F358D25876D2E4AE9A96050722094D203639CE38BB21D7FAD4E3CD7BEAB80 + 855BF36DFA129A696D6C77523EF7A0637020F0AE0B2DF7AB214233EE5E4EC8BC + A8CC5FD97F5F6C70D68B7498ADB9817D77ECB44C9D297F8EEB281D6DF1DDDD69 + 079EB3D4B522A32081B52B949B08063133A61B332F1A3C98F24F75717FE688C2 + 463B6C1138BB55C377DD1443A1A91030379A7354CDD7657D2725947E26DCB2F7 + 1038A51FBF31A27DEA3C35B451B47C4622D4F857C5ABB609F8E628385164DB25 + 9A21098D0F4F1D5C462DFC44CE5483D962A6ADC52F2C75652C68440104330707 + 93A8D7140114F7BE2302B90BD5D2496201C09B7A903E83E25F8B7DF7EBD2F32F + 9984C1C263EAB8603F8134CA4BECCD2B4E89279F116C109F934065CE273C981D + FF68AB4FE945B1E9497A23C02C9BA6C766791E5C03C75BA2ACED3DBA5FEE8E48 + 3FA6AF655D89D702C48BD35CD21C31C12241BF55CAF2A537669751F8DBD5A817 + 11E98A1BB80FB8C2DFEB1579A798301905A25A1CF4F03421C912CDDBD4739BC4 + 487AA27EBB5D2E872C170C036FD99EA9578F72C5E9449147DCB2C9F267A59B84 + D1C9C4FEFD5022B16D51DEF0E2A6D96DB76EF24C7462D39A429B81EDD6CC1DFB + F3A52F8D472704FD32D52D1D249983279BD67B4A5EC1852E523D663E74C2B0CE + BF45D18361A8A3C31D9D3BFB4E59BA2406940113BC44D206C515157F780B4BE8 + 7AA0E3ECA710DAD30579E9B6E029BC3D139B42DE257481FA0E2868B482F09F85 + 2E2782C161C17463D56D41D4E211A25B54EC84E1E9A085EEBEB1D8F4EE88B995 + 8F9152EF4ADF632052FF55014A6FD66D6919D079E7549EDF4F27CD3789BFE0FC + 2646DADD749B243BCFA121130BB85518CF9D6D5EDC22CBBB9A5C313E5E88F716 + A8F3F45ECAA6AE7D869C62A352C8DEF69211D31F0E7607B0DBD7D5B57C7DB8CD + 64C38473ACD6D4E0D3CD5F5B2A4CA8CC32E180FBFC436C39A2EABE70BEDB51CB + 45B6DA87C19113C9A5186257B5511E6A5561DD9F7B63C63D8B1D633597724DCB + 667473E16192A12CF4D8FE1EB7550B5DFB382DB3B8BB10272A934693CC15A484 + E8E8BF1EEC3327FBAE968EE1706732A8B90AD11F24E1053C55C2CBF3B81A4513 + EA7FAC61FBD31935C26112B4F0245296EFAC31F513A4386ACEE8DFA529D645D1 + C279024207C890476E3E691E4E59304D0C87C23D5FBC7BED1A9C7E247909F555 + 6FB51F95D00B6E1590E427DD95E0B9C3CEDB7283EA32A9F6C94D0D4D934C1FA5 + B6E0D8D4CA4F425B93A8808CAE08E0536ADF6E09A8F4B3D18C88D9FD1AD88DF0 + B881CE471F8F8BB924AA980FE1F7B063A4C5992A20B4BDCF87C7A30B9CD09D47 + 25039DC497F2F665689A418B30682A4A502F34FB8D37165516B355CA7C11FBF5 + 4CB27EB23A8A70074A523F4DFDCB714EE566C0CC94FAE3C8C107FD7064E7CD19 + 5B25ED4D17F0A9502875A40DC9D3D02F79FD1CBE2AA8F7B808CBFF3E152EF719 + CAD733A826DA86C2E5ED5A7CE92499CD2219D71FBF6C74D0B4CE3CAEA0DCADD5 + D2464B74D19523391620CE9246866F8B3E671D7463F114D0E0FBC8DF39A2D797 + 9B6DBE526F1BFB535321F0F75158CDB1F9BC995AF3A0331A30FA539E47E79B6C + 7985FEB1524F5F022940AD792B764255A930DFB171882FAFC55A363B965D823B + 64F2A0DE8612BD280FCBDFB036BB6D7F4E11E7D04D27D678D8F15F2A17317403 + 1F26FDB7971308D883E8AED3707C5B2D70BD4415FDDD84CB14489E99F23DE0FC + C9BC8509DC13C0CA6C0F66DFEC2552DE89B2EAC0BBCF27F850FF69F2B1F5B412 + 532EB9C94FFFEFEF4B8E6B5A98D4A779913F81E3470D37BC86850DB50058BA7B + 6A713374C6C03A4B89823A9939EE017B9943B83C5FE0D0990BEEB5EB379FA8AF + 8D7F96AF4E72BA602FA8F2AF0A749C714538936DE305BEB7E31C964416F366A7 + 3AE552F6F30CC7D72809CA09B2EDEB6B66AE19D5CA9A32E23555C3BDE8F557FB + 330A4F47A432D1DE1D485DB3C2ED17D1A06CDDDEDEB36BC4794D367A3C9AF0C5 + 6F774205EEAE2E5279A03429B99AF65A338360C42236636B59762EDD66B79892 + 4CF6FAD36A9BD06597C962C1C3BC27DE62E4E83CCAF95DDDEBDFAAF0C0345620 + F1A457E8610C046F5E0976EA498D0DF89EC5E3720309DEF5B4F3E405BDE77054 + 9939BA78AE759A96B6969E257A44A4AB854F17D8B06BFD4D2CCFFEB7AC815108 + D4AC24D68FB92889F11B6C91B5409E3BB1B73C1814B81ACD80B8BA2A204747F2 + 5B7C0429A7B7B6BBCA5BDD33B98F2472D0D54AE7C4725379EDB0D15680F9E01E + 4D0291B29116D6543AD1DD0333FB01FB97E3037A9DD9A01E91CE5A43890CD048 + 7D9D29C3DFF80BE0FF619B2BE870CC678FF3713A1BF7404143125D9E528E7D98 + 78ADA907B084035D4353334020E1012DE08B82BA73C8578162A011027D8B9A7D + 9AC25ACBE943B5B6826B65FC3E9994B7D210856124D5AAF8BBA6792BAA9394F5 + DF265F27BC64D1D5B77A9E90E6D00C15BC5CBAB055DFF57751F6E5077BFED853 + 8F4F919370AD8529A5B038699E83F5095A1DA5461EFB6EA63FFF38ADAEE85DE1 + FA58B46C635C26FEC76037D4374A527948FE82100BE08C9030D5FCA85F60DA25 + 72664A5F4216E9B8C088FC3D3E8E740A565F37F6C3FBFF557F4DF033CD72E1F4 + DA4B078EEE1B46FBEDD4A84503BA94DFBEA4DBA6A73139C92C293982ADC25170 + 063BC35D2AFC439915EECAD477A636741F0B7160BF2E87FD215151B92A0FAD08 + CB11CC7499852F2D807BC42992F652FB3D0266B66AF3C1BBA3C5C1EC2CAE7609 + 8F0DFBB7696166A6C70586B9D8E39F2DA0BB50797108245584DF031084D2541D + C9F6C4A9AB65D3970A42A21252BFF3DD6C7D1F6B2AAE48D491AF960F7E32321A + 943C3B05673771170243890E95CCDED0283FDEA5F8E9344B7A7FDAD40734107F + 9AEC8FF8D539CFA1D143CA7020E04E23A94F7E9E5ABB6209649838FF53DE7A1E + F939EFB55653F0ECA91F22DB73A31417D96534CF0A1DFDAD79D421F0E2B438A7 + 9E384777B18F4D4BB4D4E6DEF2D835657A6331873CC7455173FEDAF3A01E404C + 37868F49108908C5EA2F18B8325226349C5227A461C0E94900703970529BEDEE + 53E94A48497892024701673D3AD902C520D729309A9197F3A8CFAB4EC87C24A8 + B4FBBF553E4E376F62A0D67BE5FE593A1C643F668567E146FF0FB885DD854DAD + 4654F2DBEFA84A0EADBDB98476D285DAE1319515E980717B8F2843DB5D1FF428 + 5CE80633AE8EFFF03F668743784832C0D0787FD1F41D5845B81F7091B8EC2252 + 2C26DFE40A96D9A7EE3D12E605646F51E709514709F365F853426380B7EBF392 + 30E521234910A980EFE02CBB1E5922AF162839D9DD4384177310A4E5FC4A9F17 + A8507C5A8F50395C43749FD709C1885BC15431D5E5BEB603BAE43E1FF4B5CD02 + 9E29AF40E66FC05C49511D75C95AAEADE6AA1E1DC472DB8CC013D375B4E65131 + 9E69904CE95F55AEDDB4398E3327FED6E2411288CBE46C3261C875441DA9E330 + 0C2BD67F7C542B6C67F32F3D970DB55EC244DDD74032F76FE181CD70BAC588DE + C1436369996EFE382F9708DAAF4BCA49B48C254DDF3BD3962AC5F8DF3A276E75 + 4C6D1C2378D944BD31B75F48943A078320D1D1D85D51805256852898B0CE7ECD + 73B8A8A5D8E2138746C5DED00638812AE6F35DA18F9C24E928D795A0DCC54DB0 + 0CB2B6D15B1DA747890AA10F9F42DBE0E04583CB2C520C51C61579FA01DBB07E + 2EAB0A0AB2CDC208A873BE02DD80CC6EE3CDBDDE2DF0F59741D332084342FD27 + 1CCF4518EC004CAB4478387BF28148B3745309D01C52AC28FA7570BDFF95A492 + 13FEFE75541982ADF4CBA98CC29F6211E92C6392BEAD83779D3B5BB9867F755B + 1553B7A3E3A466F5394D0042D3B95E14FEE40E4E997DDFAFE45A6187B2E2CDB5 + 551A715F74D867826D6FADF534ADF35F6DD6DA63F01753D1C28AAA7E3B8E58AC + 6B06F3CE4B986D6B71BB61AFA9AA118533CD9EA89C195D41E109A6974CC9E811 + 9BE20F4DA3661244EEB62CA23D32895AA1CC4993A200C21B4F286A829CFA7C29 + 606E9E21BD3B0B1D1CE74C55B0A67B2ABEC3833877CC1282B519330B26D229F1 + D773A2DF67A94B77DE3DEDEB91A3E645E3A176E11599999F531E6AB6CC524474 + 02B81D96AD3D786A97E179A989945D79718AB200276A6EF683AA8E6329556770 + FD263371030B9DCFDF750866D1E2406EBDB17257EE3A5E6D1F2EAF7538F06F3F + 85E846CBE40707561D1A1C38506D6EF679F3B61BD5F2C93C01C24D7AE5EFCF12 + 2A44FD821AB5B38FB52B4538A360102D3064B4572151B42F54EF8364B94C13C3 + 2AA0C53818555C91E23CFF4B648BE416102B31005B59D99AE107728A191474D4 + 3A21A7AE164475DDE19575B751BE0D11707F9A97AA09E11E84834754E2202FEE + 58793EBDEEDE4D1F2B7EF597D8AEDB963FC34FE5BC3D66F7C6D62B4170CA9C80 + BF0FFC162CFD0561B1B7DA2CABDB720D3D1BACD617EFCB52C011ADDE5039BB66 + DF3696770A7CD42AB383CEA00D1585C9258526EC72FEEC9D214B3BF35598EA19 + 6D60FA9E9D683B469E2E46CF0B7C74229D51C5A23F1A3730A49FF7DEBAC40F9E + 8FDC11728727E4F5F4EC2DB5AA08FCACEE54AD437D45B7DE2A406D1F03FCCB21 + 51C6E2F9B2DB3BBC6B9766923AB5ABCFE1D1DD7612DF7B9EF5A097663DAE1830 + EE8479800BABFF4F1399FDC76D8D8D4A86425954745FB69E6053BB28F2C339B7 + 1CA8055063B0F3E7D16F5DAD547EADDE815C230017B95465ED28237196E32F5B + 53BE3B95D0A97C1BCA4F6668C641A972F25C6FDA233A0E7122EAE159AB16511D + 155EB2354DF830F81A6C073904FFF663B2E1D7FE9EFDC64EFBBE7F8802C5309D + B3FBD4B0326B98E4130A8C6A4F57A6C3012B05BA04A03EE45AD2B7B64D053D67 + 53090A069A48D34CB1D9ED1C2F7A892050FF1035AACA96E9DB05B1F49EA6562D + 2D195356CF77836564325F0E09431D0E86ED634436AC17B981B39ADCCB9DBD81 + 7FE1428CCFCFD1939BC265A86F2DE79F58DA16CC5BAEEF0A9D5AE807DAD3BFFA + 6B5EC06131A44A6AAD33A85E230E7135D63796BF8F0D160B677CC26511BF1F6F + BE8DA30623D7B99B3B755D20AF84A2C2E62ECD7004E091CC708DDFEB7F8D0FB4 + CD3ABCB0341B103C9511E0475FFE8927FDD99FB1577DD4AA904F97AFF2AED24E + 5EF7608C01B2E10E9FFF14479B2E81E6B5F22DFAB2D4C09E168C40A0AFA2775E + 2C8EF0D09F5206C6DCA81F1FD1ADA2EE6382218EF0EB97A28F3CE0DD02A3D20C + 1395E7100CF3336F3D1CC0F85415330F5057E2C5307A28C53781642CC5E0C77D + 8C001284CE76817C82248B141F8685E87C4F33FB19C9C70AAFC8E5E68787B5AE + 0573257F1367892C69884F3EF4223F9ECFFC698890F996D5BDB7F9441D20DAF7 + C5E0357F06726C53929046EAA7E0719534E04A158CD36A41F874CCBBDADB4E60 + 402E4FB49B1317CFD8A3BAD3F3DBA2E1F76E397BFC6591E3D7C94B92BFC882E9 + ACDD213E41E2B9CACE2B50F88E35CED4481D1FB516E32A4D6AF2DB5DBB104EDC + 934767827B357FC5010FDFD70C2AB57FA3A381D2D0FA97E05FF698D8A9F25C29 + C7DF6130B51F18ABA77898C1EC71C6A8B7F57D3C3646218193C0E386DC21CE1B + 325CE2FB014CE228B5804DB2240A391CAEF39C620E2112ADE44103F6928255D4 + 3E3143E17A96C5079F4644D08D2BE27388648B8FBF7297BBBB09F8E687969E27 + 8D527F2B624BE8D1C1BDF421B8AB63EA5C29B7F3244669542E4991B7392606A6 + D27BB62C04DC83BEEEEDA6B03D817DC9E606E8CEC4EB4B08973FC0268E48C227 + 88951E8CA64BC114B85D7716D8C878B7028425C1FFB2C7B7E0E77ED0F00C1158 + 06A62C4445828C6DCFA4B4DD6AAC11A4B647FD5CE0D31FF6C30B181B8F71DE5D + 58723E4F70A5EF8FF3912AEEE8048BF13D7C12758E72D4EE284E0123A1DCB626 + 2173DC5FD0AADD97B299B9726B98843877F648C9CC98D7AD90AF1421F73475EB + 74FF80D9F8C0C838EE8A2B234DA82B28207B85EEF8290A3885658603C09901F7 + 36C751451D8CE6AC31AC1E738D08DAE1E9B534973EDA0CB22B17E13950F82A4E + BD9F3911F95475E393C6A7B2D2A6F275565441518930989CFB9055C659C203D8 + 6C6539A49270E52D2C1959E6A5EC37AD6D8D92761990F53FDEA0EB7C5CEC7CEC + 703250E987E4F84C2866DE477B2C669BF1B5AEE755480C706DEE6B471767C317 + D625A799AF9779D4C8C457626773C92539107631EE165560F7FA614B6AE0DB80 + 07F4542E7931AB1A4EF4018B5BF5C51CB651E84AE43DB18F41CC1D4BE56025E2 + 354B8DFA065D7789CAF813F490054A2E80325068C8447C0742F757EFB35CA478 + 03284DE8018E975DB440BFD6EE527DA8B658CA139D22E2D30795BA55D5AB273C + E19D5E2ACCB29485E06E98A32E60C618BC009F90C307FD44BBD4CB7E7D162F31 + FA337581944B938D29A08995EB25E79DFA52DA20E21109E30E03680EF7FAAE68 + 19D76BAECFA37AE052B78BC3A10DABC18794EA12623B46D177AD55CC3D02C7F8 + 61DA12719536D1E2FF6CD5583EAE801E4692BA8C666B0D2655E4C6E83E792376 + 7C3D24776704B291657413263C391173AB5C887BB52033BCF49865E0ECD0FD60 + 7BD3E8CBE6DDC97E4C0E3EBE1CF929650A44FBE2E099569C421759978ECB182D + 2B856E1D9509ED5C9BC618F7921389949E189866B69182B9945F4CDB809BD0AF + 3078BC90794C737C88952D00D52444872DC8420FB4B1B24581D1791F9D5E1185 + 75F74A0F344ECA6E0F7D39D721ADD8DE61795FC9D808027A2AA5EFB5CF2A5982 + 6BC697AD1C5559A3617E5F4469F6D60864FE4422AF5A87942E0FE6AAB81D07D6 + DFF30D8AAF096E8326B04BC73567185BDDC08921808DF071B55A58B48BDBD55F + CD9F2238915C9AF04CBC0F0A20D8778EBEB0A6203C86B21B227AC189C25B21DE + 9BE35B36414CE3ED8F581C79A1EDD70238184294B6208679CE315540B88F805F + 6C8AA0B0A0ACC825869CCF994592C643DC5694B84B222F6C73EDF119A5071352 + B42107767FB31B773833BA49E870C3CC2076945A2AA329C735FD80E0D40A2886 + 01BCBD8FC32A3A92598E095518326F247CB42E9A3D6A0033D40461EEA73613BB + F0CB93C6BA607D6AFB390E2F1D4DCECE55B3C1183157C82170B501E66705553E + 68567984FEDAC02CC1C40C9454D1E6195B6B9B38C502288960128B25C36DBFDA + 405C2DB46F63B19129ADFF50AEE632D23215015E296DA493AAB1697BFED92278 + 87ED1CF3371C340335ED229F510A87FF335200E04FC5125344222C740D5B6273 + 364204B4280925FD480A53EFD8AEB3125CA6AD526D83864D8BD4D51A265450A7 + 2094DDC69821C1EE3D7259A662AA06927084B114FE39D49549A3F47B71831546 + A5B26409DFAC40FC2D7B63A8A682D03BF20369956633ADD9D62CBCEA8EC826C6 + B17903FA940591C7F39DA10857AD0FC08A6B60F5CB67CA8CD18E5FB39AC17372 + F6A6D421CD39D7736D1173F97EA7C21AA97E40187154E877CF63F6CDE88387BF + 03466B55DD09130F1BF0B3C54B82664607B6A3F3F31F5A5FFBF99A0CF56CCDDC + CFABAF3DD981619FDF92D3860AF38363C9FDC4C6BF5D2C250475D319C5B0CCD7 + 1AE8D22F08A5B27C867F18D26ED56B22563D32AE7F2B76C83CC9385CAA70848B + 3F15A8E00AF6B3EA7C11E71DAC2978D0D790002A8BAD5F63B6CBCC479EC20E5E + 1C14EE64F61D0ED0DC98A51879DBB87B99FFA2C797BF632CDEE5CD8DC7B2F1CB + 27061DF6D624C960EEEDB6EEB95BBD744E65BC9C928A0E23994AD06672BAC872 + CB86BAA0FE0B1EF6F65B9952041DBC4047BACEB7A4E071161D127380AA568E1E + 1DDE14 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /MXUJJG+CMR8 findfont /Encoding get + dup 0 /.notdef put + pop + end + /MXUJJG+CMR8 findfont /Encoding get + dup 0 /.notdef put + dup 11 /ff put + dup 12 /fi put + dup 13 /fl put + dup 14 /ffi put + dup 40 /.notdef put + dup 41 /.notdef put + dup 44 /.notdef put + dup 45 /.notdef put + dup 46 /.notdef put + dup 48 /.notdef put + dup 49 /.notdef put + dup 50 /.notdef put + dup 51 /.notdef put + dup 52 /.notdef put + dup 53 /.notdef put + dup 54 /.notdef put + dup 55 /.notdef put + dup 56 /.notdef put + dup 57 /.notdef put + dup 58 /.notdef put + dup 59 /.notdef put + dup 65 /.notdef put + dup 66 /.notdef put + dup 67 /.notdef put + dup 68 /.notdef put + dup 69 /.notdef put + dup 70 /.notdef put + dup 71 /.notdef put + dup 72 /.notdef put + dup 73 /.notdef put + dup 74 /.notdef put + dup 75 /.notdef put + dup 76 /.notdef put + dup 77 /.notdef put + dup 78 /.notdef put + dup 79 /.notdef put + dup 80 /.notdef put + dup 82 /.notdef put + dup 83 /.notdef put + dup 84 /.notdef put + dup 85 /.notdef put + dup 86 /.notdef put + dup 87 /.notdef put + dup 89 /.notdef put + dup 90 /.notdef put + dup 91 /.notdef put + dup 93 /.notdef put + dup 97 /.notdef put + dup 98 /.notdef put + dup 99 /.notdef put + dup 100 /.notdef put + dup 101 /.notdef put + dup 102 /.notdef put + dup 103 /.notdef put + dup 104 /.notdef put + dup 105 /.notdef put + dup 106 /.notdef put + dup 107 /.notdef put + dup 108 /.notdef put + dup 109 /.notdef put + dup 110 /.notdef put + dup 111 /.notdef put + dup 112 /.notdef put + dup 114 /.notdef put + dup 115 /.notdef put + dup 116 /.notdef put + dup 117 /.notdef put + dup 118 /.notdef put + dup 119 /.notdef put + dup 120 /.notdef put + dup 121 /.notdef put + dup 122 /.notdef put + dup 123 /endash put + dup 127 /dieresis put + dup 150 /endash put + dup 168 /dieresis put + dup 173 /hyphen put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [ 1 /dotlessi/caron 11 /ff/fi/fl/ffi + 32 /space/exclam/quotedbl/numbersign/dollar/percent + /ampersand/quotesingle/parenleft/parenright/asterisk/plus + /comma/hyphen/period/slash/zero/one + /two/three/four/five/six/seven + /eight/nine/colon/semicolon/less/equal + /greater/question/at/A/B/C + /D/E/F/G/H/I + /J/K/L/M/N/O + /P/Q/R/S/T/U + /V/W/X/Y/Z/bracketleft + /backslash/bracketright/asciicircum/underscore/grave/a + /b/c/d/e/f/g + /h/i/j/k/l/m + /n/o/p/q/r/s + /t/u/v/w/x/y + /z/endash/bar/braceright/asciitilde/dieresis + /Euro/bullet/quotesinglbase/florin/quotedblbase/ellipsis + /dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft + /OE/bullet/Zcaron/bullet/bullet/quoteleft + /quoteright/quotedblleft/quotedblright/bullet/endash/emdash + /tilde/trademark/scaron/guilsinglright/oe/bullet + /zcaron/Ydieresis/space/exclamdown/cent/sterling + /currency/yen/brokenbar/section/dieresis/copyright + /ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron + /degree/plusminus/twosuperior/threesuperior/acute/mu + /paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright + /onequarter/onehalf/threequarters/questiondown/Agrave/Aacute + /Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla + /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute + /Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute + /Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave + /Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls + /agrave/aacute/acircumflex/atilde/adieresis/aring + /ae/ccedilla/egrave/eacute/ecircumflex/edieresis + /igrave/iacute/icircumflex/idieresis/eth/ntilde + /ograve/oacute/ocircumflex/otilde/odieresis/divide + /oslash/ugrave/uacute/ucircumflex/udieresis/yacute + /thorn/ydieresis + /N45/MXUJJG+CMR8 -1 TZG + %%IncludeResource Times-Bold + [ 2 /fi 32 /space/exclam/quotedbl/numbersign/dollar + /percent/ampersand/quoteright/parenleft/parenright/asterisk + /plus/comma/hyphen/period/slash/zero + /one/two/three/four/five/six + /seven/eight/nine/colon/semicolon/less + /equal/greater/question/at/A/B + /C/D/E/F/G/H + /I/J/K/L/M/N + /O/P/Q/R/S/T + /U/V/W/X/Y/Z + /bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft + /a/b/c/d/e/f + /g/h/i/j/k/l + /m/n/o/p/q/r + /s/t/u/v/w/x + /y/z/braceleft/bar/braceright/asciitilde + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/exclamdown/cent + /sterling/fraction/yen/florin/section/currency + /quotesingle/quotedblleft/guillemotleft/guilsinglleft/hyphen/fi + /fl/.notdef/endash/dagger/daggerdbl/periodcentered + /.notdef/paragraph/bullet/quotesinglbase/quotedblbase/quotedblright + /guillemotright/ellipsis/perthousand/.notdef/questiondown/.notdef + /grave/acute/circumflex/tilde/macron/breve + /dotaccent/dieresis/.notdef/ring/cedilla/.notdef + /hungarumlaut/ogonek/caron/emdash/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/AE/.notdef/ordfeminine/.notdef + /.notdef/.notdef/.notdef/Lslash/Oslash/OE + /ordmasculine/.notdef/.notdef/.notdef/.notdef/.notdef + /ae/.notdef/.notdef/.notdef/dotlessi/.notdef + /.notdef/lslash/oslash/oe/germandbls/.notdef + /.notdef/.notdef/.notdef + /N9/Times-Bold -1 TZ + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font JFQEJS+CMR9 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMR9) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /JFQEJS+CMR9 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { -39 -250 1036 750 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3EC8DC423323 + 00A152553EC9C9C51591C81BB5A2F58753878D92B1C73E948BB360F467A7D593 + 2446E52E22935D5D0316634839C917AE2BE363D6AE3760363F748EAAEAD9AB74 + D863835F45718D23FB3980D0C645610BF765847F4BC5CB03391BDC9D40A6A460 + ABF0D95BB6A176DB5088A1068A0DFDC266C25ADCBEF3E5472E03E0D29BC6801F + A2AEAD77E33C80C0DC39DD6133A821B832A2E5715CD8DD3C7704BE0CE847FD4E + 30AAA6F252821D2FCC05C18620253ABD203C35429EE66F4003EA4E043FAB487A + AA0B453226EB997AE835F0E07428EDEBAB9F6B230BB1560953E4A6E00AB850E2 + 9EE6F9894ABB0568A0E1369E175E8834462A32834728F93988AEAD4971EE6A70 + 832118777145D7031F77382047BE09A9CF99C24A8BC24092DBC42FD0C9B9254B + A5BB27D26182382F8B76A2483D009C11C914DF6AB8F370955DDE472D2841361B + D8B01E6F7B107A4A4A9ED340FE8A5776553F2DB7CE6BCDE484CFA80E4A3E7500 + 85887BDD78B14DCBC00A62A3CEB57FA2ACC23DB88CB94A280C5C0E40C64872D6 + C520E2FB622610C19530CACF7BFBED0E6DEC832DD28BC85C23C7BDD749DD6CB3 + F6CCF7C88E7D6F1064CDC963C70BC0D564E4D584CDBCC989497C9D5F4205262D + C380B0400EBB0C6907F0C7AEC8DEA328EB781F2AF6DB8CE9FEC28959955E349C + AD1136D82CE4E2F89EF5C7D741E681E82C4F41211BE7EDE269020D12E60AE05A + EE5BBC100F5599A90AFA6CD4B01A7BA16BE926EE6B4671251D672BE01F75E776 + F0544EE7BBE8B410202532A38EB0507F168CEE0A5FA187A19D584C4724236BC2 + 5F9E8FB951ECF493C9A8B02D0687A24BBBFC71102B3E013EF00A5B642691D3DE + 45FC7E9CBD310034E32257A90EF17AAD9BB87DA1E05E8B3C480F430D043CD744 + D9C18826531E76D7DAC3D7B3191AEA9BE70B381967D63D6704287AF6C6A11DBE + C6B41B9891D3AD4E2066BE52B996F435AE00053477D94E3906EF39893086F0DE + 65C047F01474DCA476FE71AB0E976C39D2BDE8AA588DFE857DD0F5D8B7A13033 + 73723176F977AC9EC2DDA69C183CF0AF6BF4073D4A5EEBA0108D02FA8F968776 + C0926B36D100FF8883CB8BD4F6D18A1F4169028ED25BEC12A27595A72DABEB44 + 4A7FD81847D92A5C8433D9272AC2A3030B2384B6BCE755D9DF7B56F50801E7B0 + F593E36DF4C6035AA845F6577ED0CAEEC0FB3F3A535B6E241E6F4D7EF4F4A414 + 21583CE194DB60B9A04A3CFFEB313AF91BFB60C706462F031EB2508279616A92 + 56ADEDC383AF02D57743622C5B3C0BED08B68F34F89B147C58B8BD2E199ECDA5 + 7226076BD44B7145A16A480E2F48C8F0D42F62DB8F3658E3D599B2DFE01E9C28 + 32EFCA400C2F0F7AACADCC389BCE0C60D43D4097BD6AECE174A9B06FC45AEBAC + 35A079F59C7FD5E66E1A4AB4613793CCDA0B0BB3470FC47112F5FDA95F91492C + 352278086041E2C43A205DE1CB582AAC932F868632977EAC296B97D62F6CE9B6 + 85F2F3163168DCB83458FFF6219612FC94D8A0255BB66FA07A8378D66D36709E + CAE00A07CAEC13C3F9F08005A9B7EB11E0F287C0D2594F6220B72B1B59E9EEC0 + EEAB9A284F92CDA273D36E232AE0FC3D9FB789CFC3BA8DE4A94617F408F6B58B + 184A49C73126CE59A08A79C39CDCF2DC38A42D8456C7CF9E52AEB1227AEF3764 + 849AC30C43BA10B96680BDB3CD5A81DBD8C23450A6C9075A8DFBB170CA3E1B7F + 0A93475F843F935484F38392778F6443C19691C4E72EEEED0133E0296C52E80A + B40636045E90E8306AD7EEE36AD6F1B48EFB3A0F09E10E39095BE484474BE402 + 2BCB19ED9201E808F2CAA1C2BEF285E600CDCA89503FD3E6BD0CA319F308D1DA + FE3B5EF7AC8ACE16702AEC44C5AB71200A6728BB2D02F02B14C7FB9BEB984843 + 23F98DF5183E5BB6FF11D73B7BC23F3E7242A3C73E81A4EDF0204EAD349A90CA + 9FFE69332DF53C300051EDA30926E437B7C35A4D4DDB39CE1FBC8418F2F6E269 + CB777E3A6A06237B1F83603FC96B1DB377AAC8781B622AB717278FF344937B80 + 3B52E32BA59F305521A1E8C9D4D63BCE67CE21D2D1CA25BEE5F57B27CA7CC1AA + 1D2EF4340472C9F7419474D3249A35F3A79D22543534CB233724754E94C7D90C + 4A8B219555A49D024DD1A39EA3E7FDA9892EB4B337D41AFE470406104704002C + 7F719F5091C1C4763CB61F4DB0AA31F69B175CC0265BC61A80906BF8F0851131 + 7A8FBD6CC34500C866482CC14F5826EC6EB6B70A8C0FBDBBBE9546533BACFCAC + B1CC9556494C0FEB403D61CC5BB2D5B5BA2132B889064035D1225827538730B2 + 12DB5C23D3DDC733B3275253111669D7994E705CEE90C05C00AFCD3F434D4B2D + 419CBC447AA1CEB01164A08CC5BFBBEFB0F16694D70E8F108CAA4944C9E6BC22 + 806331DCCE777C7A18A83A69510FD0784C915AB055A24D0E203297882D2D7761 + 276BD245B25E74812C7CBB5461441E5D564B85440C6AD3A5E61959BF4875A283 + B2F25C1DC34D8984CBA4422ED1CB5569828A43A95CE9F2FA31CDE52C22354697 + 35DC04F061CA246BCDC1CAC975D30268CA8CE29EB92F1519AE4F7A083F594EF3 + 40B4F7A2B2B53A425CD19DC63E0E2E0DCC66ACC17FCA4FAA7BFD6EDA1640D658 + 823A75E71F4D99BB1443C4F62CB88BEBE9E387A59B6FDDD5A83EDCBF0F5563F8 + 6F35BA70A8F15AB94C7071765C1672ED75F1BF3CB43BBF6679797E28D0E27E8A + 7E129ED4C5823D26D674B0E1052D569BFF5B2E940446012236901F55936F89C4 + 1125EBDC1EEB008E075031D9099477754199BE211AC0BA5906B8441F5B2A5258 + DCAB4C1D4D86B9FDDD76833F7B8F0005C57092130CC0964AA2B0FB8BB3DCD18A + AF828B6F6D1052EB5DE3995118FCAE72D4D303B001721750286539160133BED3 + 3BCF53B6A84C333CC52758A5D5ECEE188492B0CF9FBDA12FF9C43DAD5A174DB3 + 909773E007F023D2947903A1140050B3DFA8867F80971F4796981D4C8458E20D + E08FBB133E7EAC94140A9B2D0FCAE19B3E96ACF756835AF412524C81C910CAD3 + FFD7C3A5E93730358145347A3BAF85B212D1C44532EEF1F43C7EBF58DD26DC6B + 40493AAF45DB778F69EF3081186433932E1D2DBFA3BE9575FED8D8C049689FA8 + AFC622FE7236098543B9F1113E2451F598747E8BB1092009F7CBC44B4227D0B6 + 4F3C9DF2E21CC264BA3581B785EF154A7F1392CB05B53C44D6B744B9D96CC0BE + B561FE8A766804ED46ADB635ECC332DF26C2BBDFCD1E1FA68A98E41F6EFF90B5 + 894BE6993AB25CFF6492F954D428BECF501E27CBE52C4074163C00F4751EE28F + 25A5597C1BCFE08BCF7691D17B44269A010E9E50CAA5346D154D67B3C64228F0 + 8AFFB94F90E2C183E50324FFCB74EF9196CAE21BB05DF6F8D00896010E4CD40E + D0BD32C56EF1255402BEA418DF8DBD88CF5E2C7B853E66AE8053B0A0BEB0FE72 + EB4C60598B51B2C76331EB62A6FD612136B15AD5F109E86A0DD2D79BC8EE2C03 + 35AB1BDE2A27FBDAFF66519A4F2E2E9368E4786D315F3E26F7CA58D1A12FC531 + DA9765B5B52DA116C213E1DE29D19B8EC7781D32A8792CFF339156FC7BCC69CA + D4737C79CB7E381713B544C12E8E7CFD72249E030919C1483131112A53B0F2F6 + 723225285D2E8518B971BDDA7BCB0FB7F8D75FA82DE68F3E50BF1B09D2B6A1EA + DD8C4160524469AE7A6D5073E00E7534AD06F512E905691CFACBDEDE561DBF46 + 16D95E23C6E378C8E7DC5147A9AE3195C94633145D6B9699185DE85165E8E7C7 + 83BC68F8388F4E6B9797DD1BB721EF721F5A9969CCAC6169488135830AA1D150 + 40B61E624AF7700FA56AD0B28E3FAC7FD759F6F4CA259C2FE4ACAAD9160A107B + 24488350C78D731CF32046DAD47AEEB142DD8B90F7222C0E2765BD2DC16E6B0E + 8F5F0D5B6ED8AF5C613DEDC053C599B6250AF8506BD51EC211612DD54FEA7C83 + 801C174F5094773C174961E159338A8C21C158AC303283231C7CE517304A817E + D989BCF23400CB4FB0F3EF34188D5F5090039A5EE79392EE1E8595F8BFA02708 + 9F1B67C59794DC51548E0E003492CBBA13812438B061A16DFEF1B37AFC8DA42C + 3084CB0CD9E2CBBE602E9F869484C42A4EACBA5A627DF552CDC2AD88671F6AD3 + 2CA4BD5AE41B7EF4EAC95E91D58A9D1FADC21C55A8A63F44D2800D979BEF616C + 659E7C590059E8E927964DE1E1CEB0371B24D6DC98F0AEE9D0EAF3B8E6D16BE3 + E56CF81F872510EE85FEC08266602FCC0C4159F176ECBD0156895F591F1DFE3E + 63225035B70D81526915CE17B510CEA4696324F1D955B95F569DB38E4A213786 + EED050BE464BBBDE2F31F023AEA9B2C3732FE0F2FB2B43E1986E406E66574464 + 3498A0CB64C4BC67C304D574469369B34E497D7FB4635F50F5B1EF4F412DECB2 + B30AD52DD89DF009ECF27AEA373AE192695F22264B7BB552422889432F49D9CB + 034EFD87547335DDBB980B8403F42A975AB3C644BFD448A61BA298769B31501F + 4F4BB24E3A277EB23E9DD047372538CBC8C1B266DA84E86F70278D597F1C6CE7 + 05A0EDB264C6F0683D96D283E658AAA41A9BE10EA182301CFC666352D79CFF86 + 94846EE91D27462A5BDBEE5B85EEBC84DA40890E2EDCE1D0ABB0F92A221AA24D + 7F225D8B1E1A8CD5892EEFB1A46B335BC3AB14AF6E9C9A3DE7555C9B76C9A16E + BE282B967E63BE15842006CF6BBDB7905CB208E651C9EB6F2A8DA568806F5580 + DD57CA21D12AEDF489224B85FF4F6DCBCCC11547AF550B71EC326F249057763B + 0E64BFD1FD0E5FC44F03F622E707DD3A870FADF541B74A7C347E6FE771A8D40A + 87E60462E50EF07F618011B2A2B42C08EF1B989925FC11218078F690DBAD8C2D + 465E8999E9A13AB98A9AD746B672CDE87DFE29687A24BFE34DB1334B8792735B + EA97CE4E10D0EE058B50192B2AA5F302EE552758A53047543242F228092C1E01 + 8C6C614E9ED24E0112199AB2709D16368E7F9852B70F2526B0577114FD273B36 + 73A9520A6E1CAD7ED553ED47663FFEE223F6CF0BE6AAF08154C871F67BC9340D + F015169B7047BD97E8AC29341C21674F24251CAC96DC0FDEBEC41CC517A40A05 + D8AEAA706D7BBBA660461383DCAAA726FC6460BA11DE8E2D43F22962E2C58BA7 + BBAE0C5DC224E9936FD9CDDB559D1CC9C5D76FE10638E19F77961A8B031C58B7 + AF8021C047BA505BAA40F7969C30BC1E895E77BD7146752BFCC4A716C5A366AB + 2690D43C7C3FD609EB2DDAF4D4CC610F54228BF826504911482D08E34FFD9876 + 13A7478BA3BDDB28BF2C74E4A004D2B11E693E00AC7774C66EBD9537BF87C387 + 12B3A051EEC4CC5C90D0667EF552135915D502CCD67492097CF82DB9E6AB40AB + 1077C992427752D5A8E2464004DBDF5761D563B7B15ACF630FD411C18F460F92 + 1703AC3F11E08271E8E52EBE7DEDAC31E011432101A470BF4E204666E62BE167 + F415DDCEB77DF5684F79D1AEA2041578A610F90ED23B304F6DAA5398AB4D2AC4 + 55AB2C864A42045F6A37AE9591C5D5FD36A9408A7590AE8B4536BAD2D631E9D5 + EF9E70D8FEB0F4DE98D17CFAF0C28785D3822749637E1AD6C826AF9CCD0409D5 + 2CDE2333C18CEAD56CB62F85F60A97686676DC536031AC3227F365483B79C7AF + FF550B915C92FBBE8529C86E60863B6BDE216EC8D6695E2EFA18A0F3FA33CD7C + 7FF307CB19FE2AA293F07680EE15F57BE74685F9023C2FE9190DD15E00085422 + 62926A8425BEA427B8B7136594101927658AB0002B50471DCB3C98F9E1404837 + 6E7011AC0D3154EE08F9ADD0FF62148816066C212E9E2220A677E4DC9D648F2D + 6EA095D553F0024C9C35E68F47D45312868DE11BD4E17ADA774AAD2E89286348 + 186B9B176FA801479116981B40A7B4BE5DFD3F4D08952221C518D5E7FBA1B9DD + 1347D6485648BB949CFDA77273E0324A0FA9219935B0DC994C6B14961188EFD9 + 1A822EAE8AB1FEAB7BCC27FEB926757ED9A508A13987EB373ECE2D937F41431E + 5D18C201D2D1E8502501B63C38AF4179CB91861E5A696983383A300A7110490F + 680D83ABC6C3814360E716C85CE2F541F6D48EF8855ABEC46411A152C554DA3B + 99D8F4F8D15FBC3D57078716A4F41C5C92F4B249E1364B1E87A8F08122FC0F52 + 1F35D1B66DD03D07E3B677357180906721276F7F7CCD715E7CFE67D9ABEBAFA4 + 229E33BE0EE4153E4CACEE724C285825791B11C6C91676DEDD0730A7D583B31C + 8F11B43654C2950DE0F1315CBAC5F8AA072721FB9FD509A22D111878451BD06A + 33C1E5ED514941C16B7DBE0217FA087A239C38D867501030B03E03DEFD394798 + F3D9F3B9234F8725F9F90774E75429283CF15FCC5FC4D79F3BC214CEF9D17E80 + 1A3F4136174C7E298AB91C45B28C4CBDB697593DB2C5E4C49C436EDD7B2333C9 + CFC4EB44A9BD4FF897EDF25355DCC413E00D82C2F6DDD80ED7C12D47CC55D76F + 496F0E36BEA179A6240E0C5DA521691701FB4D654F89C8BA6239C47DA97244B5 + 77151BAD944E396BA2B6DA30D2524FA2DC940F6D96A3261090E4C61D443B94D6 + 8D11AB15C7C4754AC6081CE575BBC728A922ABCB3E3220548A8ED75A5C67E7AF + A78C71551CB93A33747DB13A0BBA5CE9F6961E740CB53AA445F54FF01976E49F + CFA1097E9D52B47CFB516F3EBF484492FB57F53211B7F6BA6B88513C068A9BC5 + E8CAC6A968C93DCAFD345FF0685D3C466C92B29C9A4044E608F16B39C21FB3A3 + 0F795B7A9DA6A3DF00A803AAF8A2EA23976AF6BF6744B79D04BFD0510B174257 + 484308DC427D07FD94322FCDCF1D295214C4F4EE42BF274E2E4F9E68BC4B71C3 + 6E0DCEA78A977A7E75A0484FD289C4DDE551BD8153C4536B585792072B393A52 + 0537ED4D7FEDEFF3C216A789834A4CEB39049921696128A4D7378E8CA656479E + 59F7DD43C4E475036C4BA9090EBA41A6616D89016574C0125AA253317B663418 + 40A43183230A0A17A4F53F7AB234984DCBC6462D4F7632B37A433B1865BA132E + BD115E2509F6224BF6A09A38EF30D8C456AD32CAF919D070B1260A6CF580FED2 + 42C5242AF346FA51FF75331237C274AE87CAF74FCE471C171EF16C4690825D17 + 6864C6A1EB29BA866BDD889BDDE3DE7A72DCDD1831BF09522BB1D95F98B0FEE2 + 05AB1EDA72C9DDB38BF5373CFB43603D227394A179A8FE1A5B618BE071F16B09 + 9CA33A4EF8EF601345881206033D256764157E08DBD4754105804152FC945759 + 336947A4AA953D5DDA160EB768A195ADC9A0F51926236E58D20983C7D0CAD646 + 8CF9AFE236FD1DA4498C63CD339934913F4525754B9798F7826A4A5EDF01D9B5 + 666D1E7F29A52A0B7EFEA84CBAE0B7DB1B96BBB46A16103696ABE0D45511ED44 + E2914A28BC25D4E22CED86A889AEA12848D240FF04C80EBD218C921E43D30D2D + 28CA95BD0CF2D43AEDFACCB4FCA33793CB10FB6F44A2A836CDE3C228D5D5EA3B + 367A9E919B2DC3B6067EC005C58E48A4B03B74D5B75D11168998D6B14DA39717 + A2CAC6B4072ED5146DF5FF7EBD65E74CB1E3E175A5E9F8CE63C227C7BF1CEE71 + 68F4CC2B032F21FD799B517B019DB9D446ED2036BFFAB7FCA2F3F87A5CC241CD + ED0ABD52BE6E78F310DC109CA14C6B0910CD2C324B3F3328CD13308F611DEDD4 + A45A26277736CD1725A922AE275EF2147D6B62CDED8799D86AB0BB61D7133267 + 5DDB8688BC316990231ED42F2C6494B48D305A0F557C126F231B36A1668739FD + 851F2321FDFB1932A2B161A231295FBDC518D349F1DC78D52DF4A1FA685B77DF + 0B95884DE042D414A77239114B99E2F027D023925464F0C12119045490F91314 + FB056D9BCDB4D150F16E166D64C58B721C7D492F337D696D86D60E3F3E1D5C7F + 3469EE243EB53F3CD90D185BDA558765F16665D3DB49AA0642790C1C57E26A76 + B20E7F15BD4C47453F7E65DED56C12CF3BEC65BEA620D9B681F23BC3B83C4988 + F02DAC714D498A670E8ACA3EF7F50AE58514360AF9C6234E8262A8B221F46F02 + 4CBB087459FC57BBC5AE3EDF8AA28A554863FFCC94CE0CBD47DD8E3BF5D01DE7 + 8AAF2AAA9FD9624CCD524AE542A23BDC76686368399AD41C4926090EA4833B48 + F7D0FA25E6AD8692EA19360EFDBB9388928E84A77313D01411395A6A9BEF2A7B + C5B2CD3E13A1A77D08039EBEC259190E0E2A1B4C194A8A07E8DBFC38CDAD6385 + 5ADD2FF1042699B5E8950B9190498BF7326DAE356CB5950F8288ECD9FCF9EC45 + 4BD087301D2DE1831471969DE3D49509608319208380AA597ECDE0344B4AC469 + D328EEBB1DFC0F21B7AC276363F2B9D005A0876F22090795640E29249F8AD433 + 41498B43E2DBF8C2CC4035B817E100B22C978F0647F8B9783F5B851BC4F784D9 + 7CD1BB4873662C58DB0F4A4328F3B7528323C492916E016E2AE01F80FDC34311 + 27EB6CDE8EF2257C2E4C82976D05B03DDAB7B2014943B5BCE57CDEEF74A26C7E + C17498238872C3E95B01917C2263BE3A417207095F68E04BFE06ECCA246813C1 + F127DD525F4999D891A8B014F95E2BFCE9EDA31C6CA63BD810024C9E68F87C69 + 45E996B814011E4572601C353048F378F3735E855BE29B78243B21B3E5F6A34F + 9272F62FE2ACA2A9CA8BC532020115705E128ED6EE070F96B03EAAF4B796744D + 8A72C93F0BE512C80B2BCB4F8A90F476483225855115EBCA4978D3E482EF4CD5 + 9F38D86970CAC33B77D7DFE35A5100EC8701BDE406F7E0581A216D43F9D750BD + 770311AB6CACCED9B908A65ADD9FBA09A98C73557B6C42F1A9FBD67C61236956 + 662C082F6A5B4863C9A140AF8F5CFBCA8C48383D4EC666D0F1ABBD7B63A50C95 + 80EDD30A34CA97D20BF452EE187D170DBDFF8ABEFB2B36E8AC95CEB106B65CA6 + 25FFD207C0D06169516B931D39A40E73D23AAD65ACE4362372E88F563C244C5B + F2E128304BC90BE7FAF9E45F178612B7D528939F6E5657BEBE5C5D632B31B943 + 98A0FF01A13C5B9D8D1EB206FF4ED0DA577F2C337E83B682A0FE08328703A908 + 5740A02CAEC6ABAB67C9FFEF178EB07F7491511599B55E27C407903D51DFDDD0 + A8936562BA291ABB1FE4B42B47A7C83832F0CEF1B2A8B6D788D2B62C40685E83 + 4F6A33B463C68693691B14DB3D5B6658F5D8A80EB2CA3D626ECE4AB0A721311C + C6EED06262F51A446CDDBA8A86F76B8DEB29A104590E24E4ABF9DFADE87E9144 + 5E19C97935CBF82927547527D0B24737F9D8FB870F4037994DC0A6FC22B8EBF5 + 5E6D9429113016079F223741B35F2F00786E4BEDC91198CEBF7C69C036EE96AD + 1DD1D4EED5D873CA17B7CA7F3798B5C680CE4AF2EE04ABDC032093A85B939044 + EF8DDF6E4C828BC2328F3019AE9A73E12838EB09206F4B77CC11FE8A41BEB866 + DAF08DC34AD8551ED3A702985188588EA84882CBC0E93C34965620CE3E688FFA + C1B98985865A64E46C11ECA81A762836F1D5B321C90FFB608CD719E9656F638D + DA1DFE0FC33E0134DE2165D23CC527E1AFC6D8C2838A3C06B302D20DF2091748 + 58A8E2D44CF46B7C482B82814B2CB6932DA54174F3DE2BE1389CC1822BAB98B7 + 6F5424A3434E5EB007F7E34E0A0E41D0D6D5462F2CE51DAFCB8E16F194AECB4E + C7CDDFD2584D9E0EBC1C7DB279285CCCB9ECC3279BD629D455114C2CAB744EE7 + 358C298A69923D7E7F51FE7C64419191957C8F73D689AAEB67AAEF069EB5698E + A1E04C378E8F0528CFA4283D63EE3E35251E31281F9FEF722629E5EBDA5FC2A7 + EB22D63584550B7A7624FBB1C7C4A1DF56146B367A2D860F9514EDCCEE3E0AE9 + F47367E9CBF4DBE09AECA822686C2CD1A5372B5869DE2CFF07180BE67C19E235 + 88C729E5CCA421A7AC0003831269DE1FA91D4A0E3588DDFC32DAA329DEB058B4 + 21F7DAF639D13040CB00A7F74397FACB495A0A0EE7A648541607F8962B14022F + 12F75AFC7636CAA5DA1C4B0412D16760C3A5A448E179D7C41930FD8F900B12DA + FD7A69352263EAD18C2E70F79B0D369B4B134BE663A38BDD114988198806F161 + 2F68D5435FD41AA425CC80270FDC13C4198EB53087CB3A4280AAA6B434704B9F + 61F515A77C991B367981A08CA1819DAD7C8F336736C8CEBD47899791E6FA24B3 + F387983B5203CE5786631E7708582A2E9840C3786E02D304074F704C3C7FA797 + B5DDC4ED9D54591D0404D03983CEC6FFB3A994042BA259711F120AA6CB2DA709 + 7A417C203FE97128126E8CE84040334C4B875FB2148E99C1D68C8AC36D06D14D + 1191B44B88014E8DD6CFED20E1D8B0E708D22B9C9515BB904A49AE64FFBBDAD7 + 7F690C16CE9D8E0CB7B2E832AED1D91DB6A540B707C89D7773650A088D0AE87F + DF4E90C1EC1D5E4ED5CD2B0A5933E90D734975E54E4109FE0F2DED7EC72549A5 + 58295E08E69A131731BF7EBD5D4AC903BA09560714E3540AD56AE58FA135473B + 6F4912D3C2753405C00D6C8D845C5D66342D9787D9DB35F71F00B17631C9E1C0 + AC0E2E2A1F6D72CD6F518C25A583587BDF87EFE03ACB7FD9A245D62363FD97C0 + 29A5A037021516D0FD86AF2596169BF7C405E8F3519FCDFA0376D3CBC1F5C049 + 9C8D999312C19E89B2FC6C0F7EE32251DAF5790DB242772D559A128E10501D6E + A0655CE18CB4EDAE717242CFE96CBF124028C3F68E126E1FDE12D3BBFE242BF5 + 0BAC746B9EB1501338B53144A09C5FF83F58725CCC4BE17F39B5990BD73941BF + FE31EB9092C77A8D9F514FB44783523B972D45844446A9D2C91DB99B6C68589D + 0DAB7A98D646DB17065A74CBB2EB12DC8ABEA35B0E64C828230EA0AAC3C974D7 + 88ACBB9D3E1896E603AD1DFAD1B9A0CA635B2CC742D031D07DA762650C2B5EB2 + 5D43DD1629FE64DD886DF53E5295AB3AE383D91A28E548883077B55284E61890 + 31F85E71CC2A649D60C4D32831FD501543994E69E437D242BAE098C766FCD945 + 5C27C637212111D9F43B310FC41173E8E8DEDAF83AB1FBA9DE3F0129AF2416A7 + F9B1D3A5C9A9DDEFED6D20C1C0AA1CDC94DFE8013036D30033FECDDA779C11A3 + 7ECEE96C5E246EF8636B98D3B8F525C79DA7F6C372359638927E5A93B81AA5E1 + 229464DCFDEC7D3C48B5327B1C07C19B1FA216FD5FABB3B06C7ABE52A5682C8F + 1C46A16E6C53DE5D3914BD6FBDAD5A70F20FECF8AE087DE8B3A3F55F603490B7 + 9B3C1EB58E16B2203D37706742C47469D3D5F83714154CDEC60097D9315AEE5B + 1493631077021AC3FE3F6EF383D3C7D7BB70FF351C7D27B3D518D45C663A2ED9 + 9E8299926DDFA9DBE8BAF2BFA34CE09A59A764478DE48493527BFE9C60D75035 + 65ED8491B6F0197C97D6A410F1A5AA57A0EAED5D191D95D8F60953A21CC10A22 + D1E6D96550D04C641E017227AEA3A840F3A297EC5BEDFBE9B1B380AF7B0CAEB3 + 0FB25AA1FF987371FE9AF0D53D8FD6FBDFB163F448E54260E29C723DE6B6119D + 3C4CD6BC3FF491A851E40C1CABFED0789D108B64DB94D30EB3AB1A4680EEFCBE + A270F3973E98B3925ED1F3930FCA794B3A148F7FCA15E01B5DFA67CC29862A54 + ECD2A9893CD22CEAA5B10AC9264266F2615C90AE31800F08064C5901CCC5BB9F + DA1BF52983FA0B52B65BF9FA6B57C0C7D1F17C9DA3C4CBFC1E0C6FE9124B2F95 + B3AEE14B4F9B8AB401B9DEAC4DAAD1760C2EFD58643347BE1867C299D23BDFAE + 3A014BD8D543AAF93873692435D5B78D41C6B60B85B2E4ED197BA2847969BE1E + EDE751518660952644D0994C00E3CC429EB887792DBAD75157468AC30E7D27C4 + D6F091CF74A040438BB632B4719F317BE5298377B3D2DB00AC810298BE437CC1 + FF9FCF35C0204C6EF4769ADBFB9B8D6588CAE8E1CF98057A27DEFF8D1EEC52F5 + 203F42CF077BDDF42B55D81E92BA9A4E1D342A5F3694604EE6411E9863E05278 + 6E783B31F6B1BAFDFB1A270D9677B6C1FB7D9D0A568EF5C5B02E47FC72D3571E + 527A045DB2A34F9783C456D045FB9F2C738080316F616A50FA7A1E2AE8F31DBE + 68C3BD0B8D9D027F5C967BE10A03BEE8B4E558B9F1167F9C0119BE0F28805550 + 588C90CE88E70711FC2A80B7BDE811991AD68DF453BC999244C484BECD45FC53 + 61F535543088C7A7D6FB69EE24120B3F2005D37E8EFCEED8D29B25836EA0E9B5 + 819C25167C19B5418FC6E45C6A121A77AD807EE6D7E73EF62BD50ECDBDD71A05 + E65B4A337D66E6BAEE5DC1F5A50C3BB6756F1656B5C167BCAF0CAA50CE26CCEE + 3A0AC39C5A0A5ED80DA0258C6285FAF68091C123FDD5975AD70FFC367D2525DD + 60AF42906C37E431F4837A5E3FA97F9D4ABBFCD46AEA268F91DF7EC9C05F1791 + D24389136E82F774340583B17D2CC0C831A739A75372AF615189B79A94AD665F + E61D5A3B9F18F323DC016AEE1ABED7D8518E3917ED40F88046412FA77F30F510 + 864C3A71373BC5DD895085DF9523A896EC44867AA2B68B6C519DD3798D1C0B6F + C9741F73B942FC88CF53D382BF0ED82DC952D81E31530E3A999695F58C8BDD27 + 3E68B5C1910D8D9FB4A49396AB84CA40220B2B280E952D511F313517B081974B + 8170C1A551FC0054DADAE19580D2646B535CA4F7847F3369885348B737FA13BF + 09D3D2E2DF3D025683FEEE29E71FCE2B68E01027A2A5EC2D7A4EB904B19BDF70 + DCAEED26391211023F49D2B18F695761D97716CE6FE6B93ECD7DCC855BC5C017 + 3D37738AA8610ABC9BCC7FE7DC29237043A23D2F972DE679E6C39A66419A49F3 + 12599EE82AA7855474FD701BF8BE2698C14B97F66095A4762A6E2D6C7DD42A22 + C08D9D78BCD5428010506461C5A41BF42003BD639756709A4085C1512F1AB1F2 + F5FB6A42EACDEA47270CAA79A49150A245809BC721DAE043CA8E74BB554EB7A2 + D6245E190993B835C47B20746A9FC83EB076B25BB7DEC2722849434536E65950 + 37369619251C38AC7EEFE26C0762F1148710A8FAFD2B67D5DAADDB54ADF1DDCA + 29F41BE5AAEADF9FF92460E8DE4DA4254558CD0EA3EA51B3A65644D47AD51FE8 + 8DAF406E2741849664B23CD0EB850A052F69567C50204537A3FF0E8BD3D3C233 + 9C8C64CFD3C3A207F71D0F4BAC740EA9D422AB1ABF60B84CAEDE7B74B9157B00 + B1A38A7496648E9A5DC09ED37D907246C714C1CF82DEC32E758E74E9F5B6BCA0 + 016B9D0D71CCE3DD6BA45A1FFB079D5998383E1370E467ACE605AD680D9AF0B2 + 0D24F6B7F66C98D528C22CB4D134290D17A0EB534AD12515F65E110AAD47EADB + E4A16F4C711F36BF6E97C71695EA51B645B8313A4A3FD2EEABA9B417EF96B7D1 + CA812847B9A3E5CB196B79A7BB95EC09601D608A19CBDFD97F8865C08430687B + 48333723F172352530807901E29C181ABE6AD3DE1A8FCF1CBB3B58274E468A6C + 42A605A19685810031D8774F969A269AFAEA45F6BBB7DC329A28BB7470C8FF60 + AB2FB21D539E1C3217A79EF9FFE43D2BD25252E31CE0B219FF3382B9769FEF2F + 0E5C1C7283575928A5BBBC728C184BCAAE1BEFAC86B6DDAB656E158E4EB4246B + 7B089D3988BF6AF45A68555A3A1653D7E14FFB87BE13218C512443623824A0CE + 53BFC313D0259EAC1A850C6A7170ACB2ED9A1A68190B7B50466D904019F3F25B + 841BED9EDACCF8D06B2EB4D5AAA6A050D011722F87C7140EABDDD4BB7C85B0FA + C48F923B3E13A1931B2DDE12F8D753BAB82E638BE119E36E998D6B866EAEE6CC + EB6E3344E877E6D87F3B659B538855CED0F6AFBC989ACD21919044A46D080ECE + 3C9839DEB500F9DF332C861B32D26E6D7C7AA6165AFD1C67510D184C8161ECD6 + 445601224E29ADAD7A6E47075F6CEE1602FF2DE63A149645B9008555F0EC42B3 + E62A0F23BAE3C0B8736A8F6DC337BE8C4414249817A6F95256A247E905FE69B7 + 70A06433F77C2B46CC81F6A7C223D6462CE581A325DAD9527966665D746DA572 + 1F7E56F08BAA33EBAA59CDC485D4A4D287F677EAF1E07C70FFC12E9AC62F77B5 + 005DCEECBE549CC16B488AC424C59523B8D235184EE9D8CA58B905A72FE48877 + A78B3B550D9F94A2471D37850663E69254DB483A7A08347A9A632DDF1CB7803D + 4634128E453C1376B7BDFA38946616A14176749F6ECBFE8A03296D2730A6F9E8 + 7F8964350036D882AD9E0D9CA074C1B3A4B68AA91A84B32C2AD00343B26CD664 + 4F47C10C017012E4326A7350B009AB8E058BE540181A13CCD032E4F0E7892004 + 20D1A3D6381858A4E8A82BF5E03F396BD3E61CE4C53C49AA96B40A66BEDCA0D0 + D0358A7307C5A45EE28B8D9258F08E6A8ADAAB88C80C1D1F15153FE926A1441E + C92AB11C77BD249B3D07D77E207DD83791CEA7447BA5E1D1D06A2E73A582CC5B + 3B10FC8B86ADE8A9D4B8FBCA3F2608ACE09B9D4B108F9DA067EB902C2D9447A6 + B2465A6930F117797E9D78BDFD5DED1A265EFFDB9E45FCE8685648CF9ABDFA4C + DFABE75CDCEA88262D38E49C41D3DC07A8BE7B8B917ABDBCCF51CA4E28DBFD0A + 4E19A2AF8629A59462270011F45339D8330713B6E12F7A9C0C50C7BED449223B + AC376D157DBE0E95293FE94CF9CA6BEF4F59EFFCEE5FC44C89DF98CC2D5C92DC + 73502DA51FA32B09A2CB7A04EE7579CD449C940DB2C0C3FD0E9D0198C0246A74 + 4B5718C54EA06E424C779822DB8EE159AFA823E51573EB24A202E49531659E16 + 3DC25ACB28FC30E7A4422AF4635F479FD52A50ADD86CCDEFB7C0E47BA85B217D + 7C47E8CE6D98AA96247CBCA6B97A163DCA915A6F84A17670DC8E4A6CF12CA86F + D810E3AD0CEA94ED6D2907C5EDF8AF87A85CDB2625CAE3CBA3775304AE346716 + C715D3F56DD82126A10EFE87AD54D8117243E90863B6E4D72958AEAF77E6C65C + F28E34355C32B15D2EFF8AB3FD723E94228C454C67C194C34DBB59C03DA72478 + CA77F56EF1CAF1C2F45576FF5892987881C9CA227C2B1A846B3896C641A627A6 + A1F00864D71D5DC50B5B7A2DA7C92167EDABB5924A0E996C829DA08685A93B06 + CBDE1D5AAFBF96C7B9600FCDB073222AF1D5CCF6B54E37887189B740ADCFDF61 + B195BF84035A57F00083B59104604AEC82ACF0A71544D32E386A002E83B04253 + 402FF4C1E5F06CFCA470B4F211AEDD2B4E4A7F51EA721218D99267B845C832DD + 5708FC966B265AF62F722FBFEC752D32EA82FB9DFCE144102A8E3FC402E950F0 + 5004C78355C50D88B90FAF22A4182F2C6631951D2E08E8E4D37177D261931E4B + 7BC1CCDE7CA89BCD9A4D03EAC1F12A3F81B89450012198206F197DB4C3CD95C4 + 05F62313F57828423F14B85650CB62C587FFC1221EDE16BDD76409F087214BFF + 106425DAAEC6B739BBB82453E19C090738D87CEF2884DF2C4A4747FB24839465 + 74EF6E123B93484EA6CA6F655A738E9E53523556BD3A9A675D470C6EC90CA8DB + AA2D0F4ED1AFC70044248707ED797212D544DFCA9C35D59ABF17CC7B28914170 + 3A7095D0D8CDF328561FAA70392C204B5202EBA04C80E65E7493510BA63BBF06 + 51DA907B73F6531D2E686332624CFED8989C1CDB2FF65B5CB6D2502C3DB52294 + 06C3DFD184FA9A697C10169683A693DD93EA5BD913EF7676A4F922C4A44B402F + 630269E3A5808FB3E6AAC1E3C6B4F5452D681B56141BE549B887712623457966 + A01FB8DAC0029D66678895A239EDBE4E8DB24ED3AF427F4898CBBEC88047D5E1 + 9A8DBB29DDAF2DDA8BA3FED8179C5DF641F516D53C20C0821A3CF2ADB98DE654 + A58C2244C8894D460AE440AB1FCE75ECBFA6E193BCB0F8860F4EB79EB5AECCC2 + E6C23CB44AB90AB2D87655C85E3E6128E6533563A294B4D3DD6E872B09E0FF44 + 75AFA94F2978D5002869AFCA761BA49F2F9BC3C1C7C35B46720A54931A93970E + 4CE25D66987E91ECA08F6A71B6FA2CED83C4AAEB80C82A23492603985281AF5F + DE3B8800BC69B7DDDAF939F9F360EC31879B065301C2DACA58B832377E4F4A33 + A3727EFE7FD7FA7E3B87D86BD0D5677C6A6B402207EC015F6FD0C27B8706EC88 + D20659AED83C982E523AA04B6F8AB98A16A9D436F02B38BFA1136C7016761067 + 9495FD499302B7E75F3C1174A35FBD42991EB0B89C1304427C2B58B1164A3B81 + E4A750CC95537948B3BE45EA677DF0E0C688B1EDA6D6F8CC61D2D268EAB51366 + 2B3D3D383B44B25D3BE1A598F44AC7AAC461B27836C8364851376DBFD7959780 + 06FEA962639FF87E8A1C4E456833E4C666BDFD382F3A57F0D132F5EBA73D122C + 48C61BE6A59DCD77D8CF9A58FC104EFB3B9C33A4C58718CF5B0973FC26B1E419 + 4A5AFC169D9DDD97C28E0F46FBE76DEE0AA7A4ECC1B30546BCAF3B30F51A674A + B65E87F57C991BC6E9C149F21E163D1153DE1F9494B982C55D28509CA28F84DA + 94313CF1EBB47560578B760CF89E3BAB3497600AE3F6B1C275923037E9AA93F3 + CCEE26D296A6BC9FAA166C5C5C4FA058614ABE5076B981F57D575EBB04909E86 + 73C58D2C349D4EBA579EAC22A8A1E6B482B06AD19D827B96D08EEE4FE334E81F + DC0F89BC1D680EF2444EF8A2626AA40B36674159E93ED465A1AC0DA150D2880C + 7909289C31991C16D15EFD2DEDD70612969A94789C3364596A342CD72E6B2877 + 155DF22EB70F425CE06953D25274F1DB139C35249EC5A1410E2B6C318E9583F7 + 77533F17890919C162414AC5CC87A9C2B634A12EEDB236D624A1BE87E1E13E25 + F69EFE7BE947BEF324724A4A3EB4581C3604AECD330CF385F45F175793C1A2B6 + 9BAC6C1419A50F8B960647E46780D7FC69B88F07476D160DB8EE533E2FD9C66B + E355A3894238CDF25FFDE5FB58DDE0A2A4D408329D3965616E610ECD0850BDCB + 4B2FC4FC8437AD4295C93545DEC8C8BF4BC96BAD95BE518E434B9C1D6B309CFB + EA26A567FD412B38230E354E3798CD0981622A6B35C80B66024E486206B748BC + 8FA10A081CBEBBBF5A6D3456ED737C9650D5086B2823F41FEE922157C56C5B19 + C298DEC2AF5C0301CA05B57A6D836DD4A3246B70401DA9C1FFBBC6ADE2F1DE9C + 087BDB040AB94DBEDE6AF6FE2633A5C61F4FFAC1DA93AE344C194FE9596B82F2 + 18068817E6D384293FDDE678719F92A5C50DE8689710EF7D407655516AC4A05D + 960C4E9630D568434BC28E87D3D2A2F52BDB7A3037F9685AC770F42AECE27AA3 + 26038A5C95C05CA06F7878C9EF32F83AF91DB59ADEAA9F4AD98403B215E8D306 + 832FE765E269638887F9E32367FD30BA5EFD3677FB4DFBF87A7B3B686AC2CAD0 + 8101F055FED3C4AE9C243E824F554A8ECDE74F99B3E0CBA460F4153BF81F6933 + DDD24E594D71A07A0047DFD20DB79B59E115EA0E38EE5CFC3FB9A64107BC4290 + 3AFC8795420D6635FE3764CFF028689CF4BB002398B8835F464CAB89EDFC8166 + 67010D981256B4473D2DE09A0356785407112C533FD5CD45E786D40FDE45D897 + 262244340378FAC77D8A70301A154D5B3E228B6DC3922EE9EFF55C1FAF6A8D4F + C16E2EF766F2F9FC756A518BCDA829BF421C735A04B8F83E20E1F9C6837CB01E + 82BAC25B9817B61802B4F7CB65D830C06ACF62418AF751B66AF758E93A8A2294 + 27ED15F8305AD1A0A594F7BAC1D67E7D00DA63BA459D20077E396A56D2522A61 + 37C52121E09B46578497D38C684D6B5F016274B5EED1ADA0F60E7A8EF116303F + 6C897A294C9E4F6AF3BF8AAD49F5283CD2B6C40F9F1A107A8F2CE24B0A68BA29 + 16D74CC2F8324B50B61B7FF08A26F5326EB7404F25C0A310BDF1B260AD9BDEB5 + DB2D8F5357A3902F23BDBA75A0FCAD54AD0F4E2A2C2A99E551AAE6721BEA0205 + 0414B3B5C9A99602C04FE4AAFF28E9FECA3A23EFBC1B8C7426F26A1A4F182396 + 097F78064CD5CB124625679C0BC98498D805FA605B1658FF5448C4DDABF4DA36 + 5F5FD336B830D0F21B889588B122C0BC4225FADC3B6DB612F53B493A725666E0 + CD9EBA9120D4DE08D89781463528EBFE1FF3F89881DE1164EAF9095A3AC2CAC8 + 375795E614C33C41095BD81A0DF2093E6620B12E061953578DDF4A5EE718D6BE + 62CF3147A36C19D993FA4C531ED0B9AE32CC21C66C7D4CAD0B04499EDC3402C2 + 6F5DAE11754960B21B9770D05552F544C976D9875E20AB287E3826D8869BA31D + E417E199D241BE4568D1A4093DFB0851FA241CF89A08218DED5A948AEECF4DBA + 583233052F9296A386B74FD693B38EAD37EE480389CCED6D1CA7ADF0C9B4CB33 + D66C5C0659437361DBD9BF66673E19C108336E9A7E008533B8465353F5737229 + 447F3B7EE27067467715EAEB3613D9B99E5885D1CBEF59A347B876FBC3D8ADE8 + ADBEBFCACACF28C2B148C0EE7C7E89542E715854FA1A57D6710735FE4209C040 + AF82A5C2AB90F95242A7FB58E70DB49410687687536DEF198D9A7CBC7792836C + AB7DF1A3288EDC9FC1CD24FA95B41DE1D77494FF4D75983A277420D7D9ED3C6F + 2E63B7EDFD33F318496308526A67523B47736CFEE5171CA1582895A660605078 + 11C7989E09CA2EE307C68A3CAF57DB5C428C6C3A0D075A9FAC5B817A95647933 + 6192034800BF504CDD6E6BB25A6BB635EE62319791A12EC4EDB6353AC523BC64 + C410371B4D53ABF23B238472EE36F02A1DA11E4C8BF47E61F00ED9401F1FF449 + DAA0BD2BA3AB94C7CDDBEFB5FF17A4ED373CCCB14C40FCEEC066D94656968C04 + 619D09610E5371164D504B439AAA30978D8CBE556F7B3CF95F4DC2DA1A46A119 + F328D3EED27A5495D86DB9B67BDDA22726FB29FB6C292CDB14BC962EB03F3214 + BCB9F6DA58D243F8EDED0179FC75F7BD1FE7EA618B51DDE2E2ADA1855196CFAC + EB3A510C31CD0A666C1B9EE7465BA5F57134B0F3DA9B2FC1BE67C664DD5068D8 + 895D40ED1101C0B4B2C40A867BAC2BBC99D62071FE44442C5A3A890A2BB7245D + 893F21624E393C2942C866029457778E8FBDA477416EF8BE5D90EB230EB512A5 + CCD24EAFEEE51E0C4F55CFF2431B0A96AE76A54FB05BA6A865838B165125210E + BADED003DE85A5340EC3350960FC56354039A8B27A46B735F739422A460F3696 + E4D33F2F6E0452D08CC47A2AD9037212E875121BC32DB8440ECDE98117394BFB + 9DDF995AF18CD48735806CD37CBEB5D6134BAF5EB795F7655E17226ABD672248 + 8BD22D12A2836AE062E6626C0679729B1A9BA3D434DDE0FE1E9D8E5235D6CF4D + 3BF5D15061CD92522548501D7E5CFD579F0F616A133A28B6029A0ECC8879588A + F6E01E35E5FA7BF57BA56EDB41692A553DF2717A902C2C7EED082043373D2AEE + 7007EDCAC317FD1BA798F646F81C4779EF29BD1C0BE8F3B6445A1FA27FF99F19 + E8A72B0026D2B096B02EAF408D00D579B0F6B13DBF3BCEBE84065EC5F6642F7E + C5513B0FEBE5FBD13D0C7A6B5E4A15AD3EE04824A537F33057EB192D8ECB1DAA + 7B0D8D2FE8E062D0E07756348D66F5CB46F4DA6438162236EE8C1E76741A9096 + 7970B43240465EBE53FA08431E4F729F4DFD7C790746F29C22696FA4972D2A50 + 4155A4E00E724299162FD344B93D2B7DAC11D5E3B1089A72188216962F9216CD + DC64C503BFD98122C35D713F6A313AB36283A40E9A4B4F9B2F1EC60745BC736F + 0420BFCF79667FDFF6DB9F2258E1B51EF3CFB980FA2538BC1D9C11C18BFC0E44 + 8B37B69DBB8F98389A10E0B11F33AA5E01C869EAF5D6140A9C4E0A7A0F2B498D + 57880D2A6BBA2EEFE2B6507CA21F0E151C65FBFF3C051A681F460C6DBC9CA9E5 + 106C6F541B5FD1D433D64FED984A66BCDFCD96117C2BEE399606148CE8244CC8 + D3DA20C21FFA65244A182BC87B546B52EBFD68D155126CDF8D6FD2DDE38C8387 + F5F6F2A5BCCC1E3C8D3218FA50145E57BA97CDED2FE679C0ABE7198CD0A94408 + 2B0DD370F08F828CE5D0F890738A0266ED3231FD83B857487DB607D0B3CBB1E3 + 6BCD865CD4941DD6B02A283289C935338EDAE29155B5CF1CC924D1BC79E10765 + 867A6463394D3BB73C96F8B29B823339A062828D3A92061E3E3C4523D6991215 + A1AE0D5AC269C0E317D04F2ECB5A3F7DDD593A884B8DF87A26758B2830974037 + 7C2C97690B09E9D65379C0608F9094699CF73E375C5DD3995613A17558A1EA76 + 2DA624CAF16E62995020B7966A419792E34D113D9B32CE79452EF850DFFFE367 + 84DABD8961F396FAF93CE803BF7A8A3E23FA57E6F44F06CC433B1D5D90F3D269 + DEA78440770D7261967055C2A42FD745AADFDB27EC41F05AC9DE97ED872D0082 + 889E85424B3B6203DB052AC1083244FF40D17E83DB3848F9DACEC1BA002231FC + 1FE9D4D73F5BA13053F58C98448A4E5FC9D90F6B67D6D164BC0F40999CEFCE96 + 337FD50859407CA9B80E554D893BDF7736B5979DCDAE04E202C2688C5FBE74F1 + 85BC5D54507F4884F52ABB2BB54384290DAA5FCCAD9E825F982185F6ABB15124 + 814B880D402025AA1D797F0ACA4D41166AE518110DE932A9C5F4241AC177D1A2 + 6476C0DCCA21EABAAED9896A05B3C8564F185B1DD469EB8016801990A9247EB3 + C3E5B2BEA05921FE8063B2D6B7F7E36F9FA2B1A8C45533707D447958973D83C3 + EEBA1EF55B708D130A1C52FA709B9F56614C9FD8D1A1815BECCECC8D18186AF3 + 3B25DD3CD1FD6E34D7D62BBE8513DADE932135843E00120D6A9C9CDCD8EA6166 + 79B7131E54A75354F7499E4B9CCB6F5283E82D2CB239F77EB8D9566E8E1B6FF6 + E36826AC3A9442A5EC6BD8716844C507F850BD7E0716E29FF0072B8972CF7ED3 + 3CE636A4DB3A918EA495E15EEDA0D735EB299A915D2A8085A3C96CEF0A0F3C84 + A38906D7AF034BC473C88A79878DDB710AAEFAC431FFDDECBEEBD1F5FF71393D + B85650CA454A20E7B1E23B9D913FE5F461B98C + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /JFQEJS+CMR9 findfont /Encoding get + dup 0 /.notdef put + pop + end + /JFQEJS+CMR9 findfont /Encoding get + dup 0 /.notdef put + dup 11 /ff put + dup 12 /fi put + dup 13 /fl put + dup 14 /ffi put + dup 34 /quotedblright put + dup 35 /.notdef put + dup 36 /.notdef put + dup 37 /.notdef put + dup 39 /quoteright put + dup 40 /.notdef put + dup 41 /.notdef put + dup 43 /.notdef put + dup 44 /.notdef put + dup 45 /.notdef put + dup 46 /.notdef put + dup 47 /.notdef put + dup 48 /.notdef put + dup 49 /.notdef put + dup 50 /.notdef put + dup 51 /.notdef put + dup 52 /.notdef put + dup 53 /.notdef put + dup 54 /.notdef put + dup 55 /.notdef put + dup 56 /.notdef put + dup 57 /.notdef put + dup 58 /.notdef put + dup 59 /.notdef put + dup 61 /.notdef put + dup 63 /.notdef put + dup 65 /.notdef put + dup 66 /.notdef put + dup 67 /.notdef put + dup 68 /.notdef put + dup 69 /.notdef put + dup 70 /.notdef put + dup 71 /.notdef put + dup 72 /.notdef put + dup 73 /.notdef put + dup 74 /.notdef put + dup 75 /.notdef put + dup 76 /.notdef put + dup 77 /.notdef put + dup 78 /.notdef put + dup 79 /.notdef put + dup 80 /.notdef put + dup 82 /.notdef put + dup 83 /.notdef put + dup 84 /.notdef put + dup 85 /.notdef put + dup 86 /.notdef put + dup 87 /.notdef put + dup 88 /.notdef put + dup 90 /.notdef put + dup 91 /.notdef put + dup 92 /quotedblleft put + dup 93 /.notdef put + dup 97 /.notdef put + dup 98 /.notdef put + dup 99 /.notdef put + dup 100 /.notdef put + dup 101 /.notdef put + dup 102 /.notdef put + dup 103 /.notdef put + dup 104 /.notdef put + dup 105 /.notdef put + dup 106 /.notdef put + dup 107 /.notdef put + dup 108 /.notdef put + dup 109 /.notdef put + dup 110 /.notdef put + dup 111 /.notdef put + dup 112 /.notdef put + dup 113 /.notdef put + dup 114 /.notdef put + dup 115 /.notdef put + dup 116 /.notdef put + dup 117 /.notdef put + dup 118 /.notdef put + dup 119 /.notdef put + dup 120 /.notdef put + dup 121 /.notdef put + dup 122 /.notdef put + dup 123 /endash put + dup 146 /quoteright put + dup 147 /quotedblleft put + dup 148 /quotedblright put + dup 150 /endash put + dup 173 /hyphen put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [ 1 /dotlessi/caron 11 /ff/fi/fl/ffi + 32 /space/exclam/quotedblright/numbersign/dollar/percent + /ampersand/quoteright/parenleft/parenright/asterisk/plus + /comma/hyphen/period/slash/zero/one + /two/three/four/five/six/seven + /eight/nine/colon/semicolon/less/equal + /greater/question/at/A/B/C + /D/E/F/G/H/I + /J/K/L/M/N/O + /P/Q/R/S/T/U + /V/W/X/Y/Z/bracketleft + /quotedblleft/bracketright/asciicircum/underscore/grave/a + /b/c/d/e/f/g + /h/i/j/k/l/m + /n/o/p/q/r/s + /t/u/v/w/x/y + /z/endash/bar/braceright/asciitilde/bullet + /Euro/bullet/quotesinglbase/florin/quotedblbase/ellipsis + /dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft + /OE/bullet/Zcaron/bullet/bullet/quoteleft + /quoteright/quotedblleft/quotedblright/bullet/endash/emdash + /tilde/trademark/scaron/guilsinglright/oe/bullet + /zcaron/Ydieresis/space/exclamdown/cent/sterling + /currency/yen/brokenbar/section/dieresis/copyright + /ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron + /degree/plusminus/twosuperior/threesuperior/acute/mu + /paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright + /onequarter/onehalf/threequarters/questiondown/Agrave/Aacute + /Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla + /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute + /Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute + /Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave + /Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls + /agrave/aacute/acircumflex/atilde/adieresis/aring + /ae/ccedilla/egrave/eacute/ecircumflex/edieresis + /igrave/iacute/icircumflex/idieresis/eth/ntilde + /ograve/oacute/ocircumflex/otilde/odieresis/divide + /oslash/ugrave/uacute/ucircumflex/udieresis/yacute + /thorn/ydieresis + /N17/JFQEJS+CMR9 -1 TZG + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font ARVOBE+CMTT8 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMTT8) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /ARVOBE+CMTT8 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { -5 -228 530 694 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3EC8DC423323 + 00A152553EC9C9C51591C81BB5A2F58753878D92B1C73E948BB360F467A7D593 + 2446E52E22935D5D0316634839C917AE2BE363D6AE3760363F748EAAEAD9AB74 + D863835F45718D23FB3980D0C645610BF765847F4BC5CB03391BDC9D40A6A460 + ABF0D95BB6A176DB5088A1068A0DFDC266C25ADCBEF3E5472E03E0D29BC6801F + A2AEAD77E33F2EB0754F549DAF3A0B4ACF4FCE41D6D4639C60553C9405705B41 + F73F8F99531E0D12390E575CF5152E7CD0A2FDF3E1271827DD5D580634734A2E + E956961AFCA25742F0AC9B2A9B2A755BF972AE7C1C555FC21C302D0CAC6B884E + AF3704B6573C84344861AEDF08057C41EEB081C8A24746216DFB46300E9EA739 + CCB6A84967D28B665801AB11DEE226A213EEFAD536D05C40A034A4445A31664E + CC05B1E0486A39B159FC68DD4FDD4C818BAF6365066A5BDAF2BD0C8FAB1662F4 + 42BD3C76AA1EB011EE1E6A1DF4E7E97552C23A06AABC4998ECEFE92EA73FAA25 + 17C76F92AAC75E135E0CDBFDB209B4BAB356BCB325140784A0677912B9CF6B8F + E29AAB3024279A8ED401EE72BD6A5AC9A178A2ECD551460EFB0867FFBBF91C5A + 25F20667EA06A40790C43A60163E1FC27304E7ECF1CCDBDC04E16A68C8887F9F + A0773704A970729A599F44B368A7F197F2141EEC8B6B8A9F61C9F70A37701F34 + F803F4B36C816AD50AE05E624791223B2CE35A94ED3BD43AD987E688D5C249A4 + 6CA2AAFAFBB705DB5A7EEA32D938E7A503F067A65A0D0825366B55266E465008 + 8CBD093210A4CA0543C86C4309086343D7DF4B9BEC98D90339F08153C5CAD14B + 505DF982263CCABEA727037755AC3570DEDB7A843B25A37B8C3C5D48C48C68DE + A8D909C9F4B983F23D19679EED64DE268473D52D2D363194B6A540CDA0B61059 + 03D1988597C86A1E615ECBA6070BEC338000B4F16BCA2C1999F7E6194D2BDD12 + 3A64DAC480DF459B039F558147672A6E049AF12014D45595676853DCE5AC9748 + B44E70E8F51AF97195DB9C5023E18B102EF42E5E7F0BD5146583DC915BA7B19C + 15118778A8FED65E47F20732CD9DDEF888FAC65A319E293B3FE288E206106783 + A4E1F0285BB83D8D0F6979D701BBBF357D2C893C54D9BFF7D476BD9BAD737606 + 6A84E240CED53FDB68BD776EEE1EB2EEDC59A64BE288C117148FD133A1F4E65F + 7DA80BD5C13436654E7202F059AE85985E4DDF0DF54F4F3DCF13881E655DD5B4 + 1005C1CE8A8E5654D139409175426D07B64BB7385EE29176C53E601AC156798B + CDEC46BA70A0D7029D851E9F28A14E6FB6A6B425A27F9327CEA47AA9ACA4930F + F2C51876C81B37B815A5F717519F2523898CDA5111AD3BA49712609C001153EA + ACD943921CC39FA5640556B9FD8714E7CF9F8D6419AD57758727A15A339EFDA6 + FBF3AA10A976742B2AE274E75DE6A445A94ED1D8CE3C549961E46AC360850DD4 + 52A76A0497205453D9E55155C427FDE2E5567E46CC5F4AD1790D1EBF426A54D7 + 05FDDEFD6B1362D775980871F03284875A99A37C81AC05CB57990C1DFE791FDD + 1BA3171F53CBBCF588C22AF9319691A650D68F865111A0254421317DC4D1B083 + E3B16265FB0462E425539193D4C4E7EA04777C39AE10D933699B74E8DBFBC08A + 508B6D923E66CC29B659FDD9A1407937253FF613F56CC8AE86BB6E62DAD9B7F5 + FF456D005EACDE7A3697333D333146C0F4592C7C1AB31F86343E5D1BD8AD3E09 + 8D95A1EB6B822DCC93C5DE9BDB1E0A56F7C4748DE481509DCFF43B6B16719C89 + 97E44D43BE24606D3190384520C6DD7C2AF82DEB32022643AA353F19F77C5B98 + 6061D8FF402A1FBAEBC3354984F81B9A1EA44B8A12078DE8E65C73186DD59425 + B9B4684042CF1FB0554029571B06FB5EE03EE0B15EB21756A0D5157918FD1DEE + 17E52945784182EC2CF853A7C53546C926C61C60BEC1F75807AA7EA220E30A00 + F65B38A0698C48C50DEB7477ECF46D6787DA701A83E6ECF8F92832DBBB92E699 + D2D758A43FFE087FA11E4707BAB7FFFA60E712EC65C24D9A18FCD66C1A7CF527 + CBE0EDF2BBFDE7C5F64C5F386656E9B055B50E8A7025E921669F2FDDAC4A48CE + 0F0E33D1196409EA796108D6E87DC4BF5127F128AB8FECD95B71DCE7BD110B95 + F61DCD98B3C930B8076A3EA0CCBD5D18EC96F86C76130B316FBFB64AA0E98054 + 452174959A567D98C49E514B62B717CCF5FBCDCFA823711652C0E0A54A3F5D07 + 64E4B534684EFCE3FD50923D617ABC1E56C09FD42EE13D5AAF83BA16DCF1051F + 7A37A47AF5C31E7A692294B2A0BA41DB595AA82DF6D561CDE55EE2D3F06CC439 + F856F0DCC6BDB8BB16843DA733B9EA981A2C8C94C146B0258AED15320171EB0F + E49FC09C9EF3F5BEE8CFDF583F19BFCA00F5B65EF9FE2F9EC1A0593583CAA85D + 91076D08BB1ABEE1ACC62B5604F50B1FA1E5551D41B61AFD9DA02C7E22B27168 + 7A6A50E27A378F55C9CE72F75C1C5C9B4730F18A33B745A42CB8D8EFB75318E1 + 0CE57B9974E08F2830E4449FD89EBA9B9CF3CF97472339B6E4B5784CC4D59E39 + ECD02C098A286E419C05325F11EF513A56517E8C18B6C1AAC7D9B1D8D552BE6D + 1FF5D7F2B86FC77C23A2F09BF463F1B789F49295DA810739F35A385A1B639DA3 + 29A9CA7094930A08897BF66A7C8EC8673EDA9B788528A2A0D4975F83C1897AA8 + 288F1C25B45B82B715955C6948BCC4F7D53F825F9837A4216656438A95A1C6C2 + 81FC7187BDDFAAE794101D7EF077DDAA94D5A65839496B6BA368575292963CEB + CE4E423175B2073B436E886A048BF75E430C45B88431794D55C83AE6461017CE + BACF1A1F25B9F8CEFEE0C24CF1D332C8C0FFECFDA0E3D7E77325956F2FB1B0D4 + 0CB0530F08BF33AE045A5ED4EE970A8119C5A101ED0C78283FA3096D6EEEA06F + 157D4115FBE1BBC9809670496EEF7C57951ECF4F2EBD11805A6D7A445DF92619 + 27EEDF18F5414BF90F119427793D28D8DAF766A34A1FA099428A194B5AD18465 + B5EC5B89A798CC4BD69C8F1B5FA83AEB8496BE698E2669FB5BE6E62C06F1140E + 1CE0D1F1BC2146B9417DA5CCBE3BBF9D44FEA839A6E24F6C7B7AD2938182EF36 + CDDD9B609B4712968C0893D5415ADA3E6211E18166DCA81BB5640E224285EAB2 + CFF636D4EF3A87F3CBD812DD00AE9E30598D9A71B3D7626A0F2F54C2605F0988 + CDE2C899E176AD0BBA9DD7D85744182170AC016E354EF1AC05A2DF4D6A61EB36 + D42CD5B339C57C2B2205F405D5EDFF2A31C4D39773DC54F4945EC1D7FD411CBA + FFC26AAAFAA497BC90CBD5080D8C43BEB40896522117C5B76467A1EB92E0A3BE + 1CE28FAC02E48EBF069FC354AD1208F51DD79D6645D04C1507712CA6BAD3A58E + 2C0243BF831CBBE220C84F4905254CF650B731C11D6A1A26BC3EC9FEC55316E3 + D800CD31FD0877D821ADD1EB73B780AA9972808250F468DE34F864C6E02BCD59 + 528AF6E41DB81FA8FD00000386A52C1075EFCD756C3B36F28FB62396AB6AFB16 + BCFA9DD3AB85ADCF08856EC776481CBE0AEED657EB09CFC601E03D1062E5439C + 9522DA22E5301492D52FEA1C400867372AAA84F0B30197D7F0081027860DC412 + A415745F05F96470977FE9D9C6C0A80D17EAE4698C77C171D19FE958C9CF70F7 + 4FBDC9A60E8E304A67D5FE90EA8B8E3A6D14BA31FBF4901384C0B625D6D86304 + B0584327A012796C608912B67DFC562D5B0C7B8BD60D604005CD07CA8AF5800C + 4AE2FEDE1B3803F05F33707659DA1542F75D8F93042186A9B3C3DB80EEAE404D + 04541202061FACF2099A569A25BA0B2F55BC3F85C4E15E9F3F9B7CA706CDBA3B + EB7EBB4254AB46966CE8DC02CD8A8B4C6F32610669AF4BEDB0C0281F18FE6BFE + A66787CC80EDBDCBD096FEF6C4F38C3BDB7043BD9751658E1DD3853D4B1C8D71 + E5D70B43DCCDB475289FB6AAB1AB598A53F88F166C90D33D90F4173BD208A003 + 7E3AAA47022026C6D4308E5808F03D1F182EF0F3060B9ED16BB36D06545BEC39 + 35BBCE620B40A7FB548387D6A8797E9FCA642BC52D5CA4B935071DB05C443E0C + 967016A195F28755BDA8FB0E217E8A8CEED3ABEA637F8A3461AE7F481C805E33 + 14574AC3C3BF28D290811F380717EC5BBFFD1FAACDA03B0134119A66148F745B + 324E3A7B2F5C9D4973AF037814F17D198E9543AB44B0D680A7B26D82CBCBA6BB + 2904AED9FEC9F38EBD3EC1E16EC4FBAC51A6A3A87BFBA65ACDEEA3902FF8EE09 + 4F9BABDF4A81EABD2E4863834EEE563146C1052E5230FD4C14EFBAD93C0E8ABA + 1F8463A9E346EF2A534D27BFC763237367C43A4066EFAEF21B9C456B48FF451B + E181E485FD856B999251294F05F79821EF8129458AC6DA8C2E1069E9B5C8D3C0 + 0F04BC41D18FB57381669F4F104544E88172E3FF79F1907A9F2120F86E853FE4 + DE00CB3A8012954FC40C386E369CED90F3F92C034CE5726E34BE75309D7E18B1 + CDB64A1856455374C4B3CE3647C73905A451D02614B631EFF9BA33C42D89DFE4 + 239620D69C1920DD41FE3841F8D61C495CA928C96DB324328B5553EF3DF8F8F1 + 851CC41A83B3CFAEF96E7A8D69C1071DDC2BC71EE60796698B2169A7091E4DAE + CDABF8D390567258805BDDC75FB33182238F4921D5B34D841724531E295669C8 + 472AA1C0C959B011C4AA695EB70CFEAA23807B7A91EDABAE0CBCB87BFE5ADD58 + 4055F40C5C28CF37E8C9DA0216633C5F7AB68D0D3136E56F0EF498F421BACD34 + F7019B04B43596AA4F001A333BFDF3B63FB69B765A08B9244F2FBC060029C289 + BA492778A5DB1E884C9703EF9F920F96AF4450BB3E04A1F6DF6D78960AA44395 + 0A93BFC1C0B9A82EA4E23AEE535B6385302FAD19B173B6C2B88074024AD902C3 + 25D4EBB657C3C0A11030E99E7FB1A750234009A75BAFAD1E24E73A33EA66421C + 4B1D304C165CDB375035571FC060C20400B1983A6D4DC1FBEFDFC28C0C1EE1B5 + DAA19456DBFC45EB860DC28B288F01E2B71F19D641489312AE354D22205CBA63 + EB6E61D9805CCD55FC26F201C6934DB096F79B182BB78C2B3E09596353615A91 + B78AC51A533C451BC56BE46B132CA84AAC12D1994B67EF3A226FC628A933AF2B + D73F4CC0013C5C55902826812614B17BF462E523304780C48578FAD9056FA949 + 103B51A17508570358C22FC28B2D9AACE5933B6AD7226F9EBE9B36BC1B2EF8DA + 5DDEFA04EF471156FD69039E5864C05CFFD794076AC6F8C072BEF214F5AA9281 + 8E1A6F3154F0D87FC6B772AA905DD85125DCDCB1585231F036F7E602CE939460 + 5C68B695CEB7FC5E16385293C448ED9110C57B5845C71573F223C7B715CFBBB3 + 7F7853F143C4FF2644ACC47B43E8F251EAE24AB99E0CE6BE09E104E13DDF7FFC + 5E418BE21327BF3E41EF61AD56BFC3F04329CFB43F7247A92F4817BA2A527E5E + 47D2F1D13CAE90968838B116BF9E64B06ABF95E4DE108314EC48C79D72A92A82 + 8A748C66CBD3B9AA1ECB8B3E10029BB70599C1E28264E681D2541AFE4E447175 + 895F6ABFF72038FF5517CBCB5FCC7D425A3D06C94D479054C59E8836F8B276B3 + 20E06F18531F5AE52575BB567AE2B9CC6E33EFC426264FDA482DFFBBCA1B3E91 + DBD858BC3A9478D0707C5AB65E8EB71220B9C2E4B85B75255424A7A89877F971 + 8783A2738EB6DCBF295E8260B8CD782756A49B42B0EE368E30EFEFDB6CF300E6 + 10B2D2A2514C879ACFC4F342E8967F9463593B4FFC2C8CD2F76B979D4464BC4C + 5DC00B9D43AF77B300A595F5EBBCE29AD57A0BBA232340A19831F4300B86670A + A1CBD1922D6BD69E6B2C5C8D69C9800352830457EFF155A28BA3C7E99A547971 + F429059C60C3F992B428D1442EBA2C955ACB52EDF4D17B89D1F034DE685FC878 + 2589BB1EA16A8CB9A1160105CEA1702B2BF77412AD62DE079DA37FC5749250E8 + 90D3DC5BCCAA8121E07A6A7E2622A2BBF3070B2734A0B135C06CC75C93959196 + F2B16F9F4829BF5E3262D28D49F4BD7D75FF902B7F9E2BF02E2FB90F96298BF8 + 9A5F83624EF69B91E152B9EE02DF86EBEB45A289E4811D38D05B08F6AAEA85A6 + EF29E3CDAAF78132D980FCD39187F27B50AFAC714E38A520C767F75ADB062354 + 8FC5DC83D7EA45936EE09922DC57427421E93A178499A82A346ED2113DB0AEE1 + 35D4ECA2AF65C259AF4E6C4B2A127EFF948EAFCCAD8768E463DAD9B8D635D911 + 30F83E16CB2E34DA59D7CAFF616B95A12A17490575AB83B1A41EC05082652DAA + F455A7C9163AE946F098E3A3CED977639B402A7DC4BCB5B9DC410275C9F84F6E + 9CFACA8051742F1E97BA7EC522DD8679740481192ED2EC64C368E6316F474267 + D81B5058B6D811665436ED5D7DC228E15CCD0192993CB07EDDEA4E719FDF99D1 + 871739C1CC9B1BEFEAA153546CA906FD1D90194E89AFA95C6C1A59E7430B9BFA + EBE16E78D9BDFF538478E625FAF8CD484904C4B92DBCF3568A38A734CD11BB42 + 28D2073879F27B10272A994261A71177571D9F6DA71FABAEC03B03F1BE1072B5 + 9FA68848817C7B44B59002497AF547F53D76F33D6C9F1E815A4441C524EAF37F + 74C9422E33427CE8A8756586B3966A562F6958487B24A46C9660F294331ABB0A + F8CA587760A5C1782B09D498822E60BB36966AFD2259D8B0B90D8CA6A979122B + AA076BD336210521A6EE1197073FCC04584C413E6F3FFA2ACFF22E57BC50313D + CE1206D11EFCD47F905B90518C01876CA40B099DB8288363FF7E6C601C0F00C0 + 6E3B6D86E4D674817BCBB247723CEA4AED41F25FCB2E0612969E7B9164403E30 + 879EB4847E6B076E2045984B41816C58A8D457B7ED531DBAB7D6C6297B73E59B + 5BE1F182A367B323F6EDC43FBC1B9A44F96A46CF132FA64F747A8A62E565C58D + 8FB9078ADE96C066327A594F7641D21839FDCF06AE763250F20444913A54E511 + 2E3F4AD56C1984963415D5507B19BB4508910F18F43A6384885115A8432F281E + ADABDC20E7D81A3B35596D095723D9BBF464A6A5794F72556E91A215CB9A6EF5 + 74172F5D69C108339F3FCD3DC429275F33FA20225DF7CEE35B05F958C29DEAE8 + C418E226DDD57078FE75B43FA6272E2BBCDBED0EAB230E622E9BC22E0A3FEDFA + 1B405F6D02104A0584BD5B161DB485D4EA76CC85DDB1A2F85481BF5478A1B343 + BAB29959968493CF6FBC8404F3E96416EBC314BA98C286D47E62B682A51B3F43 + D39C5578C231EA4B26B350B0D66230166FBDB662442269709D4AFD86A38642C5 + D85FAB295921013E5EA669D72B4656CFB3FCC7B06B551F39F5079CD48C7C555F + CA346BA830D1CBB4BFA44A9317D5DEB99C718999C48CBEFF23AA982C1F1EEE16 + 71E05DA61CBA838AEA91F2B582A7DF6DE838D88DAF9A30A936FBD4B28222680E + C34CB97EA39E50CEC4A7F64CA01DB7B0B169AFF83829147D6176A17339AE8017 + 507C06EAC48ABAC4D272C0B0D66F1B1DC69441BF4D1B0310DDF85CA535FCCFAA + 945249A157E71F8662AF1B79A80583D1D94F28C0CDEDA8481667853D30B9EC8E + E135E3BF3893A80566AF259D7BF56777EB4DF4259606FC70989922BD6961992B + 59858F1BF8A4E8C242938547BBCE888AF40105F382D3A6DC75792F91FC307B8B + 76ED66E5296C4482A17BCE12F1E1259E65AC6151D651886D58E646DEE03FE594 + 61E102DDDE89C4DBD08B85448C67066B428C8101F9608A861DA9BF570C468890 + A4ADE4089E1EC72665F5E19014F7C727A743C3402B21632FADF27473AB8C255D + 3DCA4C6BFC3FC5B808CE2E6FA50028662B3EFEAED9E178D4A83DEDD7B02E3466 + BD95267B1E615F40691571AA058126F68E59FDD768F1C9101FEFB23F9FD5AB40 + B912C6441B53ADA2FA08C23CBCE4E47A1C257FB1F2B5A811FFF15DE566196888 + B12C25C51AAB873E6D88680B32DB2B5A182F571C36DB2AF41C2BA3DAB294471E + 3DDC84AA6A8B7B5CC0D9CF0D20F2561D03DC33A697F1C5BC119DAC5CBEB1A453 + 47CE65BD872C17F16F38B8720DDD872451EBD8728D61F8EEBA41420EB5D0EB79 + D5D1AAC2D05780FA1C935FACBC198EC4513E105810E5FADF2F48A9A9E2050D15 + 27B377186CA1EB5B5FC9A3A535ABC3E517C1B77A66197C745F5C9CD1B20B0C07 + 70DC53185BB9072EBA5C83DACC301E915CBE40BBCA95B98878DCA8B7B16715E6 + 5501B558F4AC30C0786C7CF78A537A827B3DCF2BE28429F7318EAE33E0EB38BE + 3115DB495B7EDF3342F727717E1060B583C8CD3954EC357E6EE79BC3EDC3F9CA + 5FEB529E6F1E5274557F5B186C656CD5262C2AC719064926DBA2E1F47EE1E232 + D2C75F9564B28A9BB03BDA816D4E05B5F9503F2C5A6CAC21471A201F4A2E1EC9 + FFB3FDD6598B6A836F1D1FDC49B0F25E7E89DEEC86D0B612108D739374FD4E55 + 795B80B65A63AFC1960FBAF70F5208B1464F51E949EC9C54CEB45EA5396654D4 + 0508D2C30241AEB4C411E65AA976BC02B3FEF9B62D9242B47F3315153B9E3665 + 85BE16A6E464E3E81DD163E9F1554B18626B62511DFE9C7A23A3AC7941040C57 + AD8B9C200DEC1978AC49A568431EF8EA18ED1DC6A129A2A17FB0F6D5755A6A9C + 5CB7285A24496AC54EA41A028E51DF1B5FBB4D6B84E9CD760FC85A28A23A1567 + 2FD342F8DE4EE9ED82296E10C775D7164E1D6C27A16B4D686050A92F2BF43513 + 7724A23534694D739381A79E705D3AFD488258E89AD1B4A7A86E83C695B2769A + EC800E0BE4B81A9DF842EE41999000EAA41985B6AE4836844E752D9A3B8570D4 + D47090ABD7CF13AD475248193D6CE7B99E848066F56CB47AED09DABADD1909C8 + 12E579CC04A5588A71F4DEE0A129887A750BD1E6C61F4FA38C3E837BC138D087 + 30B520DE788B52A8A2C163786FDB36F290D56901D8DEADDFD7719C3B856DF7C1 + B5EEEBD9CFE14DE1D7B323078EE608138A3F8E3721617C16967643294E9017BB + FF9DCD6E2CF5BBD265010D960C76C5231B9F603940DD5418A6465EE5A8F3FFC0 + E77FCA8D0071D36D8DBC0A3B35C96248C9109DDCAA4FBAC5B9B5580B91E869E8 + 78E1E85D68EB2CADB0AC263E25413FF1F5D916C26CF65B0BC5EE940B865BC4CD + 2711DE7147538A3A74BC7D09B6E949AA7CAA9438802C2533832C97F7A3D639D1 + 80B5CB7B2AE2487EDF688C28E8175DAB228579C5463EA30B287611B799F79C52 + C2F94B06A024A397037B4EAE48AA4C500F83F9682100DAB8EFC9EFE75713BEF8 + 405EB6A3327E407A6BC028D01D1A74C35F3A8053DEFAB1C075B1602E291ADC45 + EEC456D9A7F750EC4AA35DA167D1A328E1EC912A8215E7EF6CAA9EC9A2F8E63B + 5B5B4E85C3D914045AB0293F71ED29A468552C17686C06502148F40684BD2533 + 275DF8585B5C5F120B5F68784D22AAB134D6C1428503AC464733A077D0EC4899 + BCDE2B8A595BAD4E74369A64A8F9DA9A787506E13508E4391242010348602BF9 + AFE567DFB04A3F9009BF265002802573918706800B6AC6FBC4AE7B3281B9152C + E0FBE62E88022C967E126C94D00E95A4A1D48D5E445D220B2B008983AC61A52B + D0D32BC7D042EB190E7E69D090CC6B4AB3C403BFD14BB184BC3122932E8371E3 + 0357174E093457E37F6E4C52689B0728B5103AEA01A790BDD30A865EFDF4BD43 + 7AC6A6432611B787EAE10E37CF30B77F9563B63AE3BEE1E5ED20FBEF2A93FED9 + D951C807FCD5492D71C5ECADC36AE9E32F0C37BC932EDE8CC540054C65F39355 + 21996022EDDCBB405E4B209FCE378056668280B40EAB1F5960A942FF399CA2AE + 5395D778F67BC263062460844DA2E54A46ED2B5AD84A251F5D57820819A7B552 + C9DCDB281D8503DF395B40F17F1206A77F10D1683EC77C4C2C3F80121366F172 + E3CB2EB6A911F5841C8D98B0C15FF73ED4748A9FB7ECB748F8FA85C250EC6FC1 + 034D77272F989DC2A05C6814A6FED4812798F489BE6448713A3A0BEC27270C23 + 3FB5B1F54AEDF7798A5F99B414243FA05467872E31AA1D004DBCCDC0B3ED3C27 + 60994182F2B2E6E95A13078AE415B935754DD57D7BEC989A200EEA7C3844A3B6 + FD98155BC1869EE5F165D0F7F0CFABB8536B9909DD6E03DBE75EC19F77FB8E37 + 88EB21DAF4A521DB490F365F860D47176122C98133074C8D185A0C5DD34A12AA + 1695E487B79F010847783E9543F32A98835B2925AF271F7CE6994358CAB0D8DC + 429B608819477F8CAF64285A2DB04575741BE181F1EC2AAE55028205B3F306D5 + 09D161B37A3FE0C7CF34D19E92EC40EEA8FF8AE7A0B966C308D6B465B09AED07 + 5FFF9982CF4226D63BE764FE028FC86EBE0DDA9BC31623557E97C13266EC8D2C + FB77080054BC40317EB2AD556AD0C3DE0E342E3F574C99AC3545EC76EFC0BC77 + F9E6E89A5CCE853B4F2BB78ED8A21A5D611DC8E2D2C6EC1444B136959947FC33 + 9514D4764F0986D39CF73E62CAEBB5CA409E6E7373A60E048765CEAAA291285A + D948A4146FEDEC6C827FE939C95280D7CB5F5A8493AD1B3B39E4168A5476AF1B + 82082A375D82CE9A8983DAE0EDBE65922DB241E7057E0CE9625C8A68E5A993A6 + A3F3EC96B96693973C7C2DF2748AC69175ADA81249CE9B1EDF1E45759FAB3058 + 65459B46201175966FB4310C68874A36C1CD1E2486222EDC44100C6CE8FAD865 + CFBAC4B1F8CB01967555E9DB197306BA3665B4420077AC8DA04B8F35FA68EBDA + 9A41AF45AE00F744BB84BC55C45DECD48CF0774113ACBCEC5BDE402BA637FED7 + 57EF3409F7BB01843561A0BCF57D0573DC335ABD7214707F78C9F43FE5AC3A25 + BB93E04D5A3903EA4564977885ADDB25C9D8557602A4D9AD59679E59E75261F6 + 64994989EBE16AB829A373107F809340E0765F4E1D814D96BE6DE1BE709F23A3 + 35CE832187829803E05DB4CB81205CB67F44E11117C5F70EE49DA2E24E43EC2E + 5C2885877A5EC97B4813CD7E197D259E0ADAE90D314666BCC6858BAE38B15325 + 15A53DE656D1BB93BA89334FCCD30A44F0AAEDCF4D56391EE6E4C015DFD1575B + C76711C32F3070002BBFEAD5639EFE484958D5C61AB28C0578C66CA5C4FBB408 + A5C30640CA1CB18812C609CEAEEB9E68EA0E7E019AAD338AB72DCE2ABCF662DF + B8B770F9CD9D7C84B4FBE108A56F26A015D4BE442AC60D70F47CF8F1D28E88B3 + 9331F8C7DFEDF5E11F034017F7123C3C7AC030CA57E16F7192B52C718BABED3B + 0D0F7762339FF279F8EE3E8DE1DF25AC372938B3BF6E44CA834712CDD5A2ECA7 + E1461907C33DE98A0735A2FAA700BD6E6D32042F31B612AEFE7A7CCB281FE7FD + 94B7489F33875D932D3F7B6E7C432D0F1442F546FEF301E2788C35B6535DB47D + 9C7459BED6AB323BA337FD304089E969D2A99E9FE73F05D6A87276220BC36F5C + 5EAF723C60E3A9E6E225203D1335445D357529A8E2BC26BFB79D04F4543EDE25 + B2E403BDDB312D0421957ECE27758E5C1CC0FD9B414971D79A786DD469DFD2D2 + 2FDFB9EA9387C93B9F2945CD5B37E3049EBE192C98E8FDA340CBD3DA68AD2FB9 + 4804383EF17B9132E516FD136834A9241DB4C2B220F21F42701AE4F00F27A4C8 + 7DE317D4D69135B865BA39000DA3FBF8E65ADC0D1362F171E714B190BFDD8148 + 843B93C95F14C5B1ED1F5B516436DBA77BB00DE44516A1235F043E1434885872 + 9A86D31784BDA88C4A2AAEEB7AC3AB5D24A7B54985AB252CBC16D40D79523E3D + CB82F0C568C8C1E3395915EFDB843EEB450F3D5EC67ED2E51F201629B4ED998B + C3DFF8DCF16090FB76031EDAA3640C88CA2D810722844BDEB7D606C4A3589E0A + A9CD801F3A6743D0AB007C0B193B15152426FC9AD850E0700D817D5C11060668 + CF7C492B2B392C9697ED679B85AE5A1AB757A237A2B78DC24675D63CDDDFEC03 + 98D40E91ECDA213E0C5E54AC74D62D3C6EC9EC5D0518D247375F7AA58BF654CD + E2E90C0DDC1081A447235DCFE5E48BDAAB148D22F6C1051853702965EC195B3D + 43E2B6C2BA4659BFF69EC0D1A370771928946421E7649915409475AD4CB4591B + 8939245394280AF95B4177A7FFB65A57D642CDBCDCD1FD1826BCC3A43AEA2485 + B9B61BE3593D6598F9AE16D134F36D2B4F82FB9107B28BF3BBBF048B8238F68F + 1E624C95B5BAD1EBDA921E961970F0A29AB231D6D1B59A1856756B19C5EBDCBE + 1013FE57210AF2DEC19BBAF40250E19F8F06636CB33E273787376F75B07348D6 + 8EC285448F3FF683860AC921B9CE4E4A95BD9442E5377F0CE4E583FDE964AC2B + 783C6A2A0C39CEB8F1561DFCFD0CED697F9C5C1E58330CEC9866404950041246 + 54F9C0D315E0545B945AF93193AAB3392D90CF3A2FA0968383B2B96FF78FA66B + 18678EB2B91ED498843A4D11099B75F183BD089E5CCAE57721DB807265DBC544 + A4007897AC402F875FC08263F159514AA78513B58AA846032A2E632865ACC88B + 301E862B970E472652693F3F71BEC667DF1F1F86DD56738048E8FE5F0CA04E34 + C08E13DB121DBD5AE57C0E2F686EC03B68D0C3C1891C6CA342953364A82BEBCB + 599E41747B7A673DE60D44F68D234488B1B1FEFB8EDE4BF4FEA448444DB69504 + 0A9704BDE337CCBCC5203638FAEE2B9DF87AD0CAF69E989A6C57C8C32980D450 + BB4C8E580FE767F39135D0903EA60F5B83D70D2DF5F147823AC855BE38807DEA + 8AF6C82B1EDD6E1710E5B9563B0B6A0CCB0D06EB9F3DA120B4B7647206C98B72 + 5579951E38375BE3637DF14CD2212F37CCDDCDB8D1825051D0F0D0AC9B3660C9 + 567F0307A104DFD5EC175BAC5EB4710C493026CC4EBD2B9499D8863EA31387C9 + 71F3FB12FD2197183E9DA35B7E0AABC39FDAC967583042E87157B14F274BBE55 + 84C17BFD1AA68A32BDE9589D6C7ECCF4A5AD33E754396916C58B8C5E5DF46457 + 234C5618D63742F85E096CEFC2D4CB36EEC52A522C85917B88C48087CC83E58A + 3625B291BECBAD02AC236569F21B77521E400CF6A136015B075B91429E4AFD9A + 3F25A2C83A3286CCDD8E938520CA3F2285B97116627D3FF27369305EF6F74A13 + B5F3E37E97FD524F00E42481ED87E41983BD9C6A537B66467FA535172A14089B + 96F4C817DEADDA46D998233C90FC758A220639B30343532875D9BFF37ADD8368 + 6211F5DEEE428D5D31BAE87426304F405D308DF40B7147D14FF6CC178EA43DE3 + 4FE2BD071E0924CB6B6E599CED9205325B9B7356726EFF14B18BDC588F09A425 + 7912B2B9E2B36E1B0DD7757B2AC502AA145977C3BEACED216666435ED7FFEDE0 + ED41B1AF62D4B81D259388AE9B9F43EC559A6B11E87676A117F25440DA38DD73 + 8BA800EF75E230355F6158FC32D6CAED27516B16037EA5C68F0600CC8512F20C + 01DD079EF8E3A71A7C61664C2C374E7F8586909EE70C363A2F6112D415FE81CC + 5804E149CD656A6CFDF432927D9B0AF7C52A5E4BF1EA4E073A3846D402C3961E + 16B835E3B7AC2DA1111B9437E7072EFAE0A3822877097DFB7629B3D41AE5F3C6 + AF32231E8CBADF875213F233AF683277C011CCA3F86D61E61727B7E2B84073A2 + A12606973002D188A638EB92EA55E845D124072EEBE8F859F5DB56490F9727AF + F360D83D4B3EC82D81BF5312496A65B143ED9E3A38A5F40E3A106E151BD2CF5F + 551FEAA00DBBC621B27A2DFC8F2EF7CAFE151950DAE9D3F6CE9A59C2F949376C + 79996855C0D3A2CAAF2CF43EC9D05E8BD3265EC26AB246F38F6DEDD09AAD17DA + 6D6CF234DCB7FB4231487CD9309997061BD3979870B92D7572B6C28D4AF1B2E8 + 5FC9922418259AB8B7789A4B522CA38CE2FB9359D4B529F3B6F304DFE9BB1540 + 120D2FF5029F45532D539B63DCD1B195272306D26645655914CEDB33E48BC481 + B249C715379845D7E9E6662EE444CDF80EBDC06395D1DB77C2C85AB371236899 + A63A0D0732939A6CCF6F58B5630EEF4BCAF42DB36B2080C54C6CF74309D6A317 + 4EC4C2F356D0D6C1D75AC607BACDEF68AFA59175F34079730A5C4917A794A6C1 + 45FB190029956A8A3DEE6E1FC5FD4A039221FC413DEE68CF7B78AE82E68940D2 + E78A6F7B90CDA642408115D5F2914F65E341C685E78B86B46B245AC05E66DDF8 + EF68A80677F5983B538ED5ACE855EF7493C1F6ED070DD30436859D2AB039B086 + ECC4273726A42D0183BF5AF450C76BFDB6AAF25A95E7907CD4ECEF2D3F71FFB4 + 052CA70FFD814DACF6F7AA5AEDA48C12FDF58220B3028FE5549478FA68C8D4F5 + 066512F9BBC70FA71F037959DED45A7E8CE5914BA7459F55A1F3BD6F5BD9A05B + 2E15F101CA0845F12D109E017DD32EFFB6D872044BA08F705F1B87F0DCB869C0 + 07769140B7C2DF6FEC1B853BD3DA2FBCE2E9954F3B191B3CE1B0F883A8718494 + 390A473FDF6C7C9F21A72E6878C94D34829349B75587A6B6DF90C32A9739A259 + 7D83676F26805F6D263A571C41893C47DA577CDE5D266D7524EE61EAF1D47C9F + 2D3E2D191AF019CC1CB0E6CD7266EBE11DC4B900A0C414E06182824E8C2DC97C + BB2BCD413F626AC9DE630E004B15BFE745B71DC505FC527116D70E3FA4511F05 + 41AD8B9E3E96BE1145C94C69C559DA4BE00A40DDBD26DD9D1E4911E1FDDEBD67 + 5B9541A477829E36508BFD40722479DD86CDE3BBE6BAA907AC7B1D54C5704548 + 0A00A09CC69252F61BF331F2E673B30F35A1368EB84C6BEA8556A177CDB981A2 + 53AC113AFA2D2C80D7BB2B2EE323261F5B128476714C03F55BDB4EBCA70885EF + D94E52D4F91EEF78403D2C859DD898C6D3E077B10DB06645618F8069BD1FB8DE + E8362D6AB54E6022B85D535F4EE4928D88120D16C38521DE852E18D48CDEFF79 + 0F30D3F9D16B669F05E415632420697697CBF19A35E1841B7355A3786053991C + B27BB2135631DF9C07AB59E81640C6EAA5205929C3A5B4A0F890EC1E6E71AB6C + 292E9E80153DC186C4F7AFD3A1AC76BDB5D5A925AE79BDDD9A2EEBD1B641E28A + E0D824E28CCD788E69766C4043584A8ABF32D760A8813EB76443C4A4FE05625D + 6BAEE0F47447CFA0EEB848B5EBCFDA902CE3F90D996ED48CEBFD7974CBCF698E + EF539B6BDDDB0F0647093B42F9DDDBF29708B84678164BE82FA794D2A4204133 + A859A0CBE9E24C01FB3E38DD046578FA2868F542094E64C04230DC73877CBC72 + C5CA7D40E55FCF41D9A32A386B3F24BCE4A5E506A4DD443051BD3C7C90F997B7 + A8544BB45D08928BC3EB8D95A64DDC76F3DD0FFAC734402D13658421EA4235BD + 9D53B986B540A6FD3FD3BB5618F6446F6F53F263192EAB9E236E1B88011FFAD9 + 2E7C4B9A82C9A6A8B7ABBBB56C629A28C20B72673EE1FC1C658558ED93137BFE + E5AC02B2BF7D425DEB30EC32D5CB0A1964177B11ABA524917A8BAB5FC23C5C71 + 48182F050684351E8A69D2EE6C959F77458971E7D86699B821676B5367BD5725 + 8AD85B28586310C24F5EA2D3C09D5E097A5166EA5D3431079E91B936A858CA24 + 86AA2B4EEC68F94B7B536E0295E4B9BA9094F2F6655A79B2AA7C9922A92D256B + 52F75B143659AA32C24BC9162DFB5303A47B703F445AF2056952808046D2FC26 + 3044039946BBD9F49BBD3395076B62B12B4BEE412A1064700C9DEFC921596592 + 376A7C78FEC8528F715996C0EDEB561C2B63D0D3D49EAA56A40DD66E5D1448E3 + 16239C8F6084B92508F8A669629089688527C78B70197A236844A4D677AB4A7A + D7587056B0293240A65D839F3087BAD50E3B327D3350C4CE9C0374C3C61D8965 + 7EFF4F51098E14723E2FB0BC1087B4A4590D4D938B8AB9B3A0AF8A54B07909F5 + 21339336E7CFC34C74F1F843CF6B6C5B51412DB1F081030E27AB6EE0302ABE17 + 4B6FA36BEC328D79A1B6F21D186A928EFED2754A98E073E7B2CCB5CFA7623682 + 135D7758D585E729A77F2817AC298073916592BE6BB5B190CBAB8313CB2CEB08 + 772936D8B88385ED6AAF3DEB0A + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /ARVOBE+CMTT8 findfont /Encoding get + dup 0 /.notdef put + pop + end + /ARVOBE+CMTT8 findfont /Encoding get + dup 0 /.notdef put + dup 33 /.notdef put + dup 38 /.notdef put + dup 39 /quoteright put + dup 40 /.notdef put + dup 41 /.notdef put + dup 42 /.notdef put + dup 43 /.notdef put + dup 44 /.notdef put + dup 45 /.notdef put + dup 46 /.notdef put + dup 47 /.notdef put + dup 48 /.notdef put + dup 49 /.notdef put + dup 50 /.notdef put + dup 51 /.notdef put + dup 52 /.notdef put + dup 53 /.notdef put + dup 54 /.notdef put + dup 56 /.notdef put + dup 58 /.notdef put + dup 59 /.notdef put + dup 61 /.notdef put + dup 62 /.notdef put + dup 63 /.notdef put + dup 65 /.notdef put + dup 66 /.notdef put + dup 67 /.notdef put + dup 68 /.notdef put + dup 69 /.notdef put + dup 73 /.notdef put + dup 76 /.notdef put + dup 77 /.notdef put + dup 78 /.notdef put + dup 79 /.notdef put + dup 80 /.notdef put + dup 82 /.notdef put + dup 83 /.notdef put + dup 84 /.notdef put + dup 86 /.notdef put + dup 88 /.notdef put + dup 91 /.notdef put + dup 93 /.notdef put + dup 95 /.notdef put + dup 97 /.notdef put + dup 98 /.notdef put + dup 99 /.notdef put + dup 100 /.notdef put + dup 101 /.notdef put + dup 102 /.notdef put + dup 103 /.notdef put + dup 104 /.notdef put + dup 105 /.notdef put + dup 107 /.notdef put + dup 108 /.notdef put + dup 109 /.notdef put + dup 110 /.notdef put + dup 111 /.notdef put + dup 112 /.notdef put + dup 114 /.notdef put + dup 115 /.notdef put + dup 116 /.notdef put + dup 117 /.notdef put + dup 118 /.notdef put + dup 119 /.notdef put + dup 120 /.notdef put + dup 121 /.notdef put + dup 122 /.notdef put + dup 123 /.notdef put + dup 125 /.notdef put + dup 126 /.notdef put + dup 146 /quoteright put + dup 173 /hyphen put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [ 1 /dotlessi/caron 32 /space/exclam/quotedbl/numbersign + /dollar/percent/ampersand/quoteright/parenleft/parenright + /asterisk/plus/comma/hyphen/period/slash + /zero/one/two/three/four/five + /six/seven/eight/nine/colon/semicolon + /less/equal/greater/question/at/A + /B/C/D/E/F/G + /H/I/J/K/L/M + /N/O/P/Q/R/S + /T/U/V/W/X/Y + /Z/bracketleft/backslash/bracketright/asciicircum/underscore + /grave/a/b/c/d/e + /f/g/h/i/j/k + /l/m/n/o/p/q + /r/s/t/u/v/w + /x/y/z/braceleft/bar/braceright + /asciitilde/bullet/Euro/bullet/quotesinglbase/florin + /quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand + /Scaron/guilsinglleft/OE/bullet/Zcaron/bullet + /bullet/quoteleft/quoteright/quotedblleft/quotedblright/bullet + /endash/emdash/tilde/trademark/scaron/guilsinglright + /oe/bullet/zcaron/Ydieresis/space/exclamdown + /cent/sterling/currency/yen/brokenbar/section + /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen + /registered/macron/degree/plusminus/twosuperior/threesuperior + /acute/mu/paragraph/periodcentered/cedilla/onesuperior + /ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown + /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring + /AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis + /Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde + /Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply + /Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute + /Thorn/germandbls/agrave/aacute/acircumflex/atilde + /adieresis/aring/ae/ccedilla/egrave/eacute + /ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis + /eth/ntilde/ograve/oacute/ocircumflex/otilde + /odieresis/divide/oslash/ugrave/uacute/ucircumflex + /udieresis/yacute/thorn/ydieresis + /N39/ARVOBE+CMTT8 -1 TZG + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font EDWEUN+CMBX9 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMBX9) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /EDWEUN+CMBX9 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { 0 -250 1076 750 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3EC9EBBC6A5E + 2825687306A156DACC32FBF734087CDFC35B78DDA68032BCA38CA8E8A340AAA3 + 002A0E52D0B9162BC68AACFC0F14A1C933363A56EE460EB41CE8C2E9EDC509AB + 9E0462B9F619AD944F133AF072E5FD1625902963260181189070C40FB0D49A96 + 50D86FB0AA90098027455AC2354A299FC7BFC34B4F1162E5E9A3EFD80D6240B6 + 9378BB4F6F9F5E3566166B937251AC49680A4EF2E30CB2956B8A3359B5B0529B + 36994B571EBEA7BADCF14440D0237FAD83ECF873ADBB86B1F40834079195ACB2 + AECE6BF999EF9776E67D0324C6E484D76954C58F2DFF9FAAEC2DF9745F6D1CCD + E9B27B5C2BFA76F8FCDF63BBEDA61A89560D8B7664FB7C24D50C1A6A1FB153A2 + 1B8F23CF6C0715EEB2A3CBE3BC40D269D48C4027CCA0AFEBD4AA788DCC42F03E + DA105BCBDD4BD6630D92E8077939175898279DB48A94EEC0F44BED74A344F8A4 + 64ED6CD40AEB604D15FB92E1C4636B9DFA933A5E1B508FE907949A0611AB8F1A + 8B0E6088F80EB07CE20381B5914038EE7880FC47894B03D571E8276F4BC59F0C + 1F314B231A219AAD391BC204AA574290907EED3A86ADEA9C1C1B52C96B84EECB + 3066B54CF33B3296406DF6556636198BD5F4804135E02CE6612295E30A7DF564 + DBB19170FCCB8F45017F4581EC60315D674616691AC743822E66E352AECE4866 + 05F98EB4F423C3772B458EF9FAF5EDED74223586791B8B079A4127141F478612 + DBD6022A89AD26C46BBEDFD593D9423472BB77A106EC255B4617A973B4500A1D + E2973B62695B0F1D85761940D1A2DCD27226DE3940D063F18C3D531DB7B31DE8 + 4DC334C5762DB11D4097AFC8D361A943AF348798C9A49AB490D58552D1B20474 + DCC000DF080925665BB0B250E78F28411EC208720B98B4A9070CE66A03362D9B + 3435AB2C3BDC87D0206839CB43BD66412888B319E0D0F506FDBF1E2AB67DD8FB + D74B32F90A4AD77632C302280CCC380DE724CA61D1403C12D0AFA2E1FEE8DC92 + 3428C0817EB1ADF0E120F18EA3FA2C68C99664D2782B5DF09BAFE1D7B8C225BA + E9CCAEABBAB0CFA482DF1B0CCAD34E76F92EE4E7677380E2E4FFFA14873BA3BE + E072020F29DFDF877F841BC67556D2FFA5BCA89FEA6E7764EFA27007A81F4CB3 + 443408CDF3EAA39E4A290892D103BE3E6B776D235B9506848850B78EB13C97B0 + 5541F5F6F83757B84D8A3573B86420D28D2B6677D38729C561D4427DC0A5631B + BA76E4F646E6B30D55F9289601D5742EAD2123E63359E5B7B0845D2F781377F8 + 86D302BC98D80E2391DBAADA55A155767FB9DB87E3E726E23CCB4B9330A0B110 + 8B400FA8BBC89FFB51FA7878F82A25A84DD3841ED1486AC0CB70A063B9746E68 + 730D6738F2A2CEB704407B00164851A54D81535BF16CEAA3918EB2FA711C6636 + 2ABFB34A9C835D17EC67617D1FD261B12181EC0018C61CEBFEAADC823A2FDD2C + CD5D9E56C36D220169AFF010033E385DF76EA0E99E31ED2E74D76CAD7730C167 + 4130BAA7DE110FF7BBF17A4F9547339F66FA4BFDD6CFA7C93CE9A155FCEB1338 + 8844A8E68AB60149CACF4E920C6F21C1E4F6D8618CCA8F8FCB760D0875145E6E + 1478B07D7FF4EBEAB98ABA8B8AE29C809B2263186C2C8CFCB2F33F426380F400 + 5979EF2F367AC71B707AED9912A3F2EDB54735B9F872B11594544956191E1907 + EA3B259479567A02E5D502FCDE9933916BD8EB76DDBF7AEF28D972A48B23DDFC + 91CE76D4816C6CEA8CCB29EAD39EDE21B040F7CAC431ECC29C529E77679E637B + 7D053720CC274377CBEDE5B86F77B9081E7CF309999025CC78176055C5F7E510 + BD667B98F1322460DF3CE2C7586D4E925B28E2FC1A66F909CCF7D25DECCFC5F4 + B73827C792BBC86CA0A2ED7460D18CE265BDC5971DF2422FB1430D13CC221E04 + 454FCE64D215CDDDC0B4E933E445D7FC8C5947DE3BB4140A67905E97652C3D23 + E92FE9F59B972E5C5604E5A948D43B58063DF1DC9FB759C60DA86CB8AB07C5FB + 24813969A93D0B500111216C30935A5F4E6CD1629E9AC548E393831CE414D0DC + 5A96DD7F67987C23670598EE7C7632C01627CD389699BEE0DE39ED21C026835D + 25B7C687676A1F48E2C071EB8740B0332884096369B02C27FB935EFCFA97CC88 + 1C811DD8AC12559E51B050B8A85ACDC7D7A276F0FC1D00287CF4C9912A7153CF + 4CBD35C123ABE90B648016453A360C0B479BFD882A66B58C6E69C0F950BA142F + F19C44A4BB0A115E0EE20E7641EDFD1841350D2B5DC11681EE1144268CCF80E8 + 63CC764D959A0A78A37005833BE3E682F3515E10B39A99AC5ECBAD810A1B8A2D + 8F1BA94D5F880E88E961547471D5E875A22C99E42E9F26B9AB80A3C971EB13C0 + 3B202DE77654525A80AE81CA6AC47555108B35B7EBE0BCB0D4C3961CDC24E8A6 + 21A2359487032C9B1158B7E7E64A358A53251DCFBD7D795B3D9C2FB31D432D93 + DC817291D0E30FB125ADD47C620F09E9447CEFE882CA7BA181FC5099E70F664F + D5043C4E517DE3F2C12F26EFDDE7AF4551421134C022BA39AFB455586C29C29A + E0739FC1291AEC5F54254291BC6F619862C03F57EA335A62C76AA9668BFD61FE + 4B0D9E6EEC207CFC1D42577FB0CB4236B63E9F849217BBB39A5EAB4F8A2EB09A + 8A25231551A63792746AB70BF2D65E76D0A7ADDE3E9013609784FB00236B8204 + 2266D83E7603CC603F51B0184D08E5E54220822CBCEA5A6C550E9DE3F05767AF + 370721D7ECACE64B14500CCA9C79CDB5EE9E14B908D6B5D2F4FC08DEF917ABDA + B7434F35BC306E83ACFE77FCB1531DDD22DBBEDC70EC732579116F47F520E6F8 + 5693D36633293F3E5DE192EF4E5A9B42E3191EAAB281815807334BC89D95AC74 + 4219819003C9E5D64365703890FC24EB874F82B54D9F5875ED4490ADEDE12BD6 + 33809DC026011628A680DCB9CEA09F5ECAA225850C8C4B70585BB61DF77087C6 + 46905E00FE242ED13D8FBB0EB78432E2329CB4B75BE9E2C62CE261868F47AEE8 + 5E89FA2C6CF2F62DBF943F4C86022B0A71B69782016459ADB275AC1D98F52561 + F16834BFED1440C4EECF8A6ACFE4A2F87EE0E0BDF24D14E003F51B0B168E95C5 + 1C94AF444B0730BC9D8F0B32C47F8B78FB6CF8F941BB4E711766A566CE192120 + 5CBC80A51763651B4D280B41BCBFCE341753BBE0C2130A9E9DBA091F4231E415 + D3F06E14C02241B145352E9F538712590300B4C68E0381A4D1964702DDACB0A6 + 8BC967E1EE35B5CC32EFA997F93874021C7F6D21B756C9274540268FFC6B9CCC + 89AACE14ABD3E9B7B548C4B5EF510ACC2DDAD3C3CD7349AE1AB8DE1389AEA818 + F21B4E113C37AAAFFA7C0F8F5A58C803B6A9A4C8903C90EC994D4626E96565D5 + A87C77E22F9EF91BC43F1253F0C4ACE3D96C02DE48333C2A016D8066D273FFB6 + AF5AD682BA8C9D56F3DC3600C1862C7D50279516A33B3F4881DE3168D3AC10FF + 90F526877AE2FD29D4622C1A24BA0DB7391F118A0BCA32457F9DF6292C4F49C7 + F5A60FF02E95424DE25924A5489878E3B3AEC5C50B44C13C504BECE79C666B08 + 791CE21521B25C7D33E0805344908B0758C2EFF12AABA319C0060DE00BA0AAEA + F40CF3D930B8883DC52D78F92E0B33E9BCAEA475681DBB6A2109864E75A85A4D + 990D531C9D05C1844FFA1A20EF530080A764A78D95452C9B6410216A97A05803 + EA116B00DAA069EEF32FE1B398C3E5C6CC81483B75D332EA0CDFCE82D5B7D62A + 306A8C18D0A1AB5A6CD629847A0F751BC88E447464F0486EB6273DC4EBCA0804 + 670142B0A63D83CFFFAD524E8EE1ADCD33D9471BCA8EA3B39A12D3C9E5F06183 + F8B092B5EF602E28F55A601E1678E98A73759E8D12BDA1D4B11129FB9A48599D + 6626A47A7614F89F1839C00A71813DB0BCBB14DBF5CE73DBDE14076B267614FC + DE3377E38E04F62593F2074E65D0833FA14EF73053F8B5831DE2D00E13702C2E + 9A936E1343221DABB61A0D38C96B8D0ABA1635CC7AD78B5081F285D706003792 + 0E1A3AB99E84A30175DF691C5168397ADAEBA95AFA3138C2A997513E989309E9 + E677FF21B9179792EEDABB82E481464DD46D679A5C9A98DE3993E63700A4ACFE + A333D7A26F4DE95FBEEBBDC113113FCE21295360A537E35B5BDBEEE528240645 + B1B81D630AA6085E8E0F513527490BBBD82874C29750FBC7C4A4990AE696FA11 + FE6C1AD17E6E93238BCE492F2EED50B6EA20E91FEC8890EBA2FB96B5CD62D48F + 93643D4800CE04D6DAF51CEAC6B1C3D40ED25F9F9C4B2AF28D61807868F1E95C + BDAD2633C636BFD96815B41817C3A87E56CE796C710131011780299DAC8DDD4D + E98018164D7DA0081E5D2FE81CC12F845898C4C9C5796B9F3C54D352A9163B71 + 7D21ECC16F537CC9C29DE665F6DCCBAE6B134C4BD4B18955DE9B15781813151C + 33E23B5E0F33BE543CA0834A743A0089F5BE21378C2E7836AF9E98B06B5C7009 + 9ACC99B7D12B8DE4F45978BA5181907FA7E269A5AE03B3F077059343CE2EFF82 + 22CAFDF681460AD288D2866B400EB58BB0808EFACFB6BF4DF798455D34CD7499 + 8468072F85E42A250695EDA0533D290CB44F833F6029849CE715809D16C13AB8 + A41D577395A26ECAD6E40F9C9870963CAD47921D50F87FCD6BE7BE7FA3A8AB4F + 679F6ADF0C2ADB75F37BF74D02258BC7D42CFE98FFB8E92FB16D491FCD63C7DF + 148B28B37CBABAE4AD305F9EC88FE7883BA8F593E1470D03AC437E01D55C8B1F + 750512CCC0F65380DAF398EDC6C9D0B11BF99C05EE249B7EC7751E3B0865E6FB + 3DD4F2B056AAF27811CD9AA64C36117BAE89DE249979BB09434BEA21B159D6CB + 68FB03DCE078753EC57D679987E981B63EA7E52DC6F13F3F14BBE985029C9C2D + 0C147622978E02D24038E492925D686FADB65C39878C5D9D7CBE6B96C1712B6D + E1BC79A5D9B81B0D353047FEE19D3F5E24607D033E53CD88E980562C26FF257D + 34863ACDA1352FCAE1646303C292384A3F484A928AB81C8677297CB07A6A1C35 + 7B2E9C3227648F69C51BD3129BDF500849CD3F3A3D053296E751A09D1FD7A8B6 + 18938BA1D318BC1BA3C5CCA7C61A4504323899353260431006AE1A9BD3A936A0 + 6D5BBCAEC626658A903C4D504FD692C39F84C31AC8CC7625E492C46070697405 + 81692777F6DB56DEC56752BF92D727C3AB732E826B5DC3ED4C9C155D3B4A5710 + AADCAE7BCBF755A5564AB0FDB006E047EAF19345D8BC4FE884FA474C2A280669 + 7F64557019A02345209EC25820160613CEBCD0DDEA4098452585CFAD522B999C + 9A54952DFE2A7F18F5021D81861301EEE6EA360AAED256F252E7189ACDE68EB3 + 632D0AF987500F5966E37506045D79A73479D6A7240B505A29A77E95F6362A65 + D86EA82FB64F447D0732374E020F0C68040A887958C0AD498E90CB4AF1B983D5 + 19F2D15F714C8FBC5D1660E5D9820D0CF0896641AE636F8E2F604D6C320B8FB4 + 925E4D33E9BACF4894C3942E28DAD4CBED4CBA26A092C00BAE5CE0334C233617 + 3E39AE85A8292687AEDDE4CE7718719157AADD4A278058C33657D32F21DC2EBB + 9BD3A80225234B12BF7085B2237CEF4599F25948AAA5269CECDE6B3507810A5B + E920E3F53227692D6C98A672FB1D3B90D09860811629646CCD8D0E6E010516D0 + 32C4900D6ECDFD8D3BC7E1743ED6B8C5AC5AED87FBD3B5937D00473C9FE3C630 + 9EA2A0B9A86E70C6D8A2621B84C6138E656AE47906F03CD8582CD7E5407BD439 + 4040B40617BAA79018198BBAB4DA3C73D6D9ACA5F1B7FBADB0EB0B7037BCFE18 + 9F41DD7D0A197FD43A4D71BC12319CE4AD8EEC134FEFA6E47160D476F1B35412 + 55C2009CE722D82C96A86832C7C74B5E3FA4513905869D5E0AF1BB672AECAACE + C1015B98F109286465F46BD95F4BDCE7D91E54D1167BB85EB95C0C4E984DA1E1 + EBA71F4A2DE52C22FC25687AFB4E084DD572CE7FDB6C45CD55B3A0605419248D + E26E5DF739A17FD49866ABE0CC775B3C40777C497565B005D558A633710A5677 + 1476A697780B7DB03018632545C4566C07304A7D85125AD4B2B7C79E778C8667 + 226D2987CECAC49730E736FA939FE5775301A5E208FF78CCA006330E8A083084 + DC1CED5340EE90B1E2056350BE62AE9E9004725EB67EC9770A107D86CA9BD927 + D4C825362F8F1F6ED3E8CB968E8915334CF435CBBA1EA033E16B41D7A4E1ED9D + A6222632BD17623751391DB56175B6B3ED83061585CCE75DC367E9516ED05FC5 + 73B9A34D79A6243309123AEE1E7606F0CA24F51327102C4250AF7214C370F51F + FEA5AC2D0F5D8D6CFF0D11493060DE2AF164C2092D5E326D6DC292F2E4E22531 + 5DC18D4C04C30805BD0AFAD6A43D41E4E982EF9A6AC67A52D1F4DA04136E2CD7 + BFCFD056213340A145CC054F5BCDD2A1AAEF76E972B980BCCC74BA1E082B4A0F + F07525BF4DA4E1F6DE0C24D69E052DAF9878CB4FE29E28E4CFD3A772F89138FD + 7CD99BD9854D0657F21167585AAADF5B3DAFE4FB10CE53D506042E515AB815D2 + 69516CB97323154E2DB1B8CFCE22A47B371642EAD3A5C3384E52A7FBEC2714BD + 93DB6E71A6F2AD56F181796BC73EA106332A94D693A28A09EDE806FA1A254D72 + F5CFBFA76C5B9FF987DCE05337A2B81F41DC601D110A04667492FE9AAFF507D5 + AE981BE9D0F3FCE031B80EAF3C154655D962A97B57CB42674DDEF1A54567C1D7 + 1D8248CF2995C30A76202EF10CB9AE3AB9FC9B0E79576B7A68F5C481DFEE2D3A + F6358E2734E254F567726444B3F2703097AFC4B36F63B4F22204C2E1850A1A9B + 566350F340106FFCE87F2992CE461D8F4A9D01D9AD1FC02D81BC7113587D4BB1 + C4BB2C0C883450F8031C8AFFA6FC046AB1D173DCE37D2B94A8740A069ECFEC3A + AE115BCCDD8E1E9E0364FB01DEADFF373C37FF1E8C824AE7489F7C979FBCD1BC + A24BEF1BC0E54A69633DE1669F158DD1112D1339DAB7CDE93D1A73B69B4B64D2 + EFDC7D486976D3F2672559B362056C90FCA3D01D8245042032F10A7990651837 + 4F0E0AA55D948D28EA6D28BB23054C1E68FD52069B58C23D59182E92271F5DF7 + E6A9DCBFB204F006D8553414788327398E8AE855756E09816F513497790D9358 + D96E6AF2ABACB0B479390776F8E663CC3961CCB6A275C7CBA92C5C62B59FB1AF + 3CE0713A0CDD94AC2BF8EAFD54FBFAFE6F09EEDE21F8F7B7C4CDA00684543E9E + 5249EB2678347304893946380D13A72442868FD60D93A0033723AA3A5C99C966 + C20050F991C999705093ACF76FC66C1F65DC1A87902FA1629FF0CB90568C14BC + 14A6802570354BD05AD6904A2763FBB0A3A4BB2F0F49E0025D2BA89D4FE4581D + A161194EBB79B46499B6955CF6A2E4CB5D8DA362BE8B010CD002B91ED2D12426 + EEFFEFC3D29AACFD2E22CE551694B2DBC31A7DEFB8BF42D236EF214E16A476A1 + CD3196366D44B2218CE8610ED025C7D5B3E566BDE50F33F6FDC25C06E1AA220E + 13761153F25884F1D02F0C2B429DCB2C6570F476ED44F2C73442B25333951332 + 2295C42F220564F2732FD58EBC5EF3F453BEBFFE808F23ACD7ECC51736A790AD + 78E2E408870EC0C844E470ABCC01789EF93E312230A9F087C0D020895071B7D7 + 5ECBDF2C4BE368D26AD0AC0CA95086C62C136FA45BDBB0F706750C8E08356B04 + E5479AE27C1E86C86B0C54656BBFA93F75409226DB048C7082A984DB0825916E + B7D034A32B5CAC17DC20B1B0FDADD745FE427B4ACE3010CF758726494CCDF929 + CCB90EFAF70F78E50F6DC403A7A37A6C2446B149B4C8B5CA7C1EEF7D3A9AD94F + 2E7F99409CE0DCB56BF39B19CC89C51B93A76407008CC211D0602F26C49FBB32 + E1A8820EF56043C3C5C3533B35E8A63B4F4E30EDA4BD36E58795E297383C9350 + A0A3212F991B12AB1419BD8B13883833BE1E172CFB72F7B50BD2870E16140B38 + 9F5B7331654BCE8C6B916AC1DF2F418898758E1151094D1750DBF49DF306D3B2 + 9418D39498C40D17D6D4767365AB45ECF068F7680F5286AF08AF0AF907C8B29C + 0A6A9E1CCB3E8DF495074AA9FA60D65609128EBC35A9A7B2A2FB57D23DF96F76 + AE04F6596D8BB9094A5F8715CD3DDF6F3FA37EFA43601800BD0BEEFE91282E22 + AF87075CD4172AC7CE915669342B8D2E4F1EFFF1D0364EE1BF66A80F935DC330 + 4D78E19A848781B9D588C71BBC75ABC162AB957B63129D314CCA4EEAA7C48992 + E2D6B50EF106C17A2AA0BD3B07C30A931D02EBE8D8C73AC95BFAE151A2EB3280 + E42C0CD489EC8CA7345F0D539E293C40A0C4A81A3D3CB0A282A45A1EB7C888A8 + 61D4AA74E0AEEAC490DE6931AD7893B568C440A8A98814E8E1732743C750AC53 + F429A5D91BD310AA54013D796F964B0301BFF8FDA6F50F1B581AB9A3022A3EEF + 357AC3D0F77CB3D60C3D889A20E4C855B8DD4EA99E29F5A8DB9EA8FDD009DA1B + 7F1E62D1D9BCA809F231930CD2E79F832D9ED87A973C402098E5D84DCEEBD616 + 040184C222C35033EC572EB634D64E6B73B8C4738912B66877E7B15C4B3CB612 + 07E6C0B836CD12DB79CBB0EBDA7C425D9D92451CD95C3EC751B4EA9AA3FF0A21 + 3621DB30378477D86AF53A505404C0FCFCA5F4EC83C840E30CAFA92F338EC607 + F0825895FD2E4CA48EEE85F57CB718BBA361DF68004495F240990C58DA4B13A3 + 2A620E95F75BCBDA857F88A20A9D2566A4D317B30F73D08BBDE23474B05C8EC3 + D8C7AF4927B81A6A0D18717E11552BB51E731AC0FABD63366584591E1AB67478 + 5FC2F63C672961D89F879D433103CA77F7441AF866EC67A420337429428AEE71 + 28DBB284EFB0D8E47DBA71CB629DE782BA3A111A6E7E6EE8AF12567A1F9170FA + F96D1329F23687C2E68D207D724BDC67EB0B4721B9BD40A960D5830A8F0E0AA3 + 2A65AE96C67A373E5298A0FEA3BCFC804A821D5CF2B97A8C7E24142538B19927 + F7AAB0EED060317D9FC433B66A8485472CE29F468D161380C6B666D762EF9763 + B38306227E5E22DA15CAD81027B0B2935261C781E72337091C6CBC59DB553FE1 + CB6946352A3A5C8AF42266502C52080B9F20FA47EDB8BDDFFF44DF69F410A7C5 + 7411BB28320DE455A98896E0D381A4EEFA83F609E417B33A086A987EFA832491 + D476506F17B69C61D6A78DAA15B15E55B94D23FAF9AD1E41C9F23B33E2A81767 + 9EFCB5269A2018A71C5B7D06CC3F51FDF236550D655DC5485503C6360BED5BEA + 642A25078611A14E6818963ECA5C1AF2A16B1ABC3729F1FDBD3E414CDED1976A + 0E03555AD0228038E8DE5FA12AEAB3FDD4112AE5699932F7D60A946695A30225 + 4B2B21BB0C36F4A27C40A323C8963FFD8E5310AE3BAFE376D8A9DF347018404B + BDDA74B7673C72AE93BCC7260CB1496BD35D9283C4DAF652A68C3EBB2D2170B0 + 4AB55EEB485EB5FD02336AD593319D337B1EFD6B59B327068D83A1E705227CDF + 91FBAEF6CFEDDC29AE03B4B0BCEEDD1398FA16C0E3E28FB63B19FD0AD160A338 + BAE1206C32F4E49731FE0927474141DFA4DA0E30F5FB1849710DE4BC77875DF3 + C5471C57F42B0AFFA8857F16A5630354885259A29E37716210C7564ACF02E46E + D196BEAFE07B758FB0E29FB71013F4DE93E9E1468286550B313A5B99E89182C6 + 827368D4E7BE15A8F09542D1AA981BF05F97FF61AE437E8E0EDFB293159C634F + 136C446365CC2FAF9238B4701A551117DA885C3E8EA8B419B8B5A9384508F1EF + 8A9B219C35619BA151210574EE9C22D003D81093B638EAD6340990CA1E60790C + B718FCF9B7A92D74A4179137B714E55153999D12A0762705960D1EC1C13F8C1D + 6AC9F700C26ABAF16489245F30F6DC6B4FD5ED2D82AB8DE8E7257D2C618DADC2 + 295D6A370E9C25EC5ECDF3F0A120A7732F2ED3A307F7A18C3A9A28E816D8DF40 + 0CF758E9C862BB730DEB182B03EB5D4F51E9C38345517AB4A42EA2DBA9038AAF + 659E09A6FCC78DF379A1FB29AFC608ECBFE59FB4E786DC3E2242A61180EB547F + 63C05CA712A3312E115AFDDA09A6D5E8AF75BF7ADBA5CE3795BBE5B075D947A8 + 6CC26309070A0147C1000EA417190BC9677EFB4AA3681C4DB2119F71A3B2F967 + 998C82EE75F908415BBC5DDCF4524691218F49C2C885ED87A0E012731FC27E4E + A371397086760A8AF54023F47262E28FD3086F577B87720B3F57C54C9AACB089 + 083129F3592D9CF2DFF217947C50A5D594AA72DAC55F963E7F653056805CE2F2 + EDDC698FB639D844066EC17223C43F94D2BD3EA94304350329557C9911ECBFC3 + 42391BA1A6D5234C08842157F4DFD0782CA88F9C172755BB6B732AEE12FF7350 + 2F78484C1B587CB20663C3B734EBB1312C7D9B344E27A913FD47012C8829C578 + 3910D39C51975513936F7D2F6002EFCBA00D5E7DB715D78A33FEAD4384B5652A + E5E5F80CD5182486FE409CE15477FD55BA06A1E24E0DE08F8C01FD920D97FB66 + 38DDB6C2F343F70C7FCBDCA461EBDFB77912F2F68610DB427DE13A29EBA5B30A + D9A07AE181B2D10791D521089B4218388FF1449E6E17CEE12C8A74575492BD86 + FA1397933F11B4646EE48832921CF9BC226D238EAA5AA5476A1700987362E920 + 02826787AC51BA9A955AB802380B362AD217466F265951895B379ED2899F708E + 6C0E22FF80C38B29C714EB603EF96DC724717745E16302321E41C0453D02E268 + 8470AA982456976A6E3AAC49857680D40F6967E87ABEEB8E4600F0ACA3D6EA23 + 2E3984D03305FC5451BAB905AFB9492A708F9514893E31C94B8C84D629DD04BA + 2C131B3DC27682328013BA5C56A0E332ADB8F1E46072E0BEA2E9C6C1E4FE4D7C + 4B87D78590964333564C1148EF1E1CC0516AABA782488A47B4FC4C5BBC7C47F5 + 075221EE723FEAB431AD2E8481A4933A7CDA1EDFFB1E9A14E63E9D2A2EA1D029 + 03A2F1537A5427015290DAD252C25E563EE413B99CA1F6BED8A2688809BBAF08 + 51AAD438501EA4A2EAC3CEC183E82A39F9D3F81E524E34C28C05CCF443B45FE2 + 434FFE081120BBAD87DC43D57902F4B5FD04E5767A32D20B86300507DEF2C18F + 71C26B70EC26C0A3F2E95F950D81A818BA870AC12015805FE54DFACF30D0D683 + B19FA8DC7FCC6FC9B8F6B4131278DA7EAE0D7E0BA5AE097E35274F7E4D4453CE + 0FF8B2F1DEBEF63D33578487AA4A51B77EC5B85EC4DCEF9BAE15FAEC2CB722E3 + 64B4E169DCD33D635EDFFDA8BFD7BB61773FB609944267D940667166B5B6B5BD + FF480277E143B748C358CED94C702DE2ADCA738E132BE2EE7AE090D7962FCE6B + 0AA618501CEB6AD329DC09B98136771FEDD4D674F1AD900CE335A36AC5255841 + F6CFF80B2AD71AC99FD3F9B16EFC606EB68DC5DEC0629A4DB5B33A16566EB13E + 29C24740FDBFEF9B12BACF4B79207146011C6FE1D373F9FF35D2040CA11A1954 + 4A4E380D84A82F75203CDEDE7FA591CCF641210CAECC6AE80E744BB04D2FF497 + 90DAC195B8DAB59AC60D42DE41FBA258BD86FE60600104D430D8F0BF07A77E71 + E29A9F21B548B25904BB602FFBD7AE01CED1D26FB9EED9231BA28A5BF15577AB + 13A3229A424564B8E7966E0518E650D43B1788697606D225CB699CB8B264D99C + DB10E55DA4DE8CF84058CCA76C6632DFE6AB2F4BAEE89CA9B535300020742520 + 23B0C2E285F993EE1F62B36C2EF10142F18358989E5CC873C07BB10E0F5B2217 + 6055D910408D4C6A2FA9818CAD6CF1BED08DDB3DCB5F3714F503F33D807D489F + 98A1A0810E7F65E79969ECF2BAB42C9E64E3D25AC01916CB8FB4AE906F42B99B + 1D7BF15E69561AF91AD5A310E3EEEB781402B0E46EEACE849768A82269CD39C6 + A63C6F315ABBDCDE045C54050FC76DAED0F11AED994EAC069E2FF3BF54BA029C + F48A25BF77E6D32924D797C0BD3E8DCBD3E3486953338033D9948F46B8350CEE + B4849019D7C4DC051EF9A79B51D6164B64DF95ADF07A12929D37108AC03CB485 + AEBB2D73415A9F8048DCA0722CF027438F178CA990D401AD19833C0032A2054E + 17E7AC27B12DBAEAEFE3D314E1638B0778D4ABA9F9B34C1238D9F84DA8F2B920 + 8B7DF9F1DD8BD81D9FC9AA8ED277125FC7AD3628AAD0E060FE3BC33F758B85F7 + 9139FA674C8D2B99A7BE208B0B389F20674E730C312616E87322F8AE2222B109 + AC9EE685B3595D2127123493DAAE5BF97C61354EC28F195108B77EADE79F983E + 2A4CF7AF2D84D4D8E65D3B9823220AFBB5EEC4A1383409A32ECEFBAE6CC7D040 + E2EF78EBEF368F7FEC5F36FD56914D43783E5315A94ACFCC25ECCE2963E03087 + 526D43887C91715BC3BD356B2F633E0D72EF0F73EE6B0F19969E185696608519 + F8D57BD3A90B3CEF3A9DC7907A13F22F74D2F083B8B759E4E4B2AE79CE1FDD1F + F42339FB9C27EB23182630F9BB00DC267CE39D63A3858836F262254DCCF807DA + 812187F338F01FDD350E96AC05002BA1DD02F451DB4EA99E29F5A8DB9EA8FDD0 + 08D74990D1C562743EC09E5182537E4E59DB50FDE4C3EC9F9C59AAF7D5317C2C + 7EB2F71FB22B7148520BE0219EDBB4273527145F3B56D225AC9B32BE917C7C87 + 86940A516E79C0A7D337D6687C7772A4C5CA2EB4D6120DF5CEF32E2CE9A3F43C + BF971D77F0E28C106F46926AE2EDA921D098B2DEC44CDBA7F8BFEE2CADDD53A7 + 99F45B819D41E5511AF36E24B5D1CE802F42CB0A6D4B2567DFA19194AB52CD4B + F63433DE97692C25024CF7E2A104A3C521B6E250C22C47F622B52BA1C6647255 + 765467B2C37ACF4877659254B67193510AAC80DC3032B55020ABE393EC82B0BE + BDDEF92203E115DB299B1E548DE015EB7733FF052C17CF3C2CE3F2F6A8C40919 + C41D8B0C882D5FBDF95C92E20927702067FE293E050FD5BD81F55309457D7F5A + 456E554713133057605512B4523CDC513A97B6A855FF860585285092E0C2513C + 1BAF93F855F429000850EFB68657B4041B97EF6106297FDBB6F60AB4214D920E + 7C174143B0C95D2060500ADFD37DBD3A81B065658C9E910C0E97C458ED839CCD + C04646DA06D6D56988F8F1F41CC336BDF725966B41ABE0272D1766B7170637A7 + 16B3A73A9BB776F93D0E8D26CDDC455A1B1CB5B295827B63C103EECA59903B96 + 27A19BEE23DAA64459851C592646ACF2414FC866633565F0FCA7F2A64352A3D0 + 133F66CA7B6C9AF03E640B1A6FE2999C62C2B0CBA8F00574D09DFB1DCCAAE50C + 4651FE + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /EDWEUN+CMBX9 findfont /Encoding get + dup 0 /.notdef put + pop + end + /EDWEUN+CMBX9 findfont /Encoding get + dup 0 /.notdef put + dup 40 /.notdef put + dup 41 /.notdef put + dup 45 /.notdef put + dup 46 /.notdef put + dup 48 /.notdef put + dup 49 /.notdef put + dup 50 /.notdef put + dup 51 /.notdef put + dup 52 /.notdef put + dup 53 /.notdef put + dup 54 /.notdef put + dup 55 /.notdef put + dup 56 /.notdef put + dup 57 /.notdef put + dup 58 /.notdef put + dup 65 /.notdef put + dup 66 /.notdef put + dup 67 /.notdef put + dup 68 /.notdef put + dup 69 /.notdef put + dup 70 /.notdef put + dup 71 /.notdef put + dup 72 /.notdef put + dup 73 /.notdef put + dup 76 /.notdef put + dup 77 /.notdef put + dup 80 /.notdef put + dup 82 /.notdef put + dup 83 /.notdef put + dup 85 /.notdef put + dup 97 /.notdef put + dup 98 /.notdef put + dup 99 /.notdef put + dup 100 /.notdef put + dup 101 /.notdef put + dup 102 /.notdef put + dup 103 /.notdef put + dup 104 /.notdef put + dup 105 /.notdef put + dup 107 /.notdef put + dup 108 /.notdef put + dup 109 /.notdef put + dup 110 /.notdef put + dup 111 /.notdef put + dup 112 /.notdef put + dup 114 /.notdef put + dup 115 /.notdef put + dup 116 /.notdef put + dup 117 /.notdef put + dup 118 /.notdef put + dup 119 /.notdef put + dup 120 /.notdef put + dup 121 /.notdef put + dup 122 /.notdef put + dup 173 /hyphen put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [/N23/EDWEUN+CMBX9 1 TZG + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font TUNZYD+CMSY9 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMSY9) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /TUNZYD+CMSY9 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { 0 -250 970 750 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3ECB48FA43E4 + 4BE895991CB9C373C80EADF956F3CFF9953ED829311EA5C29ADABDA9B531D51E + 0E505FCDAE7E6EE841FB8BA6ABD575F8F932F2DBA26DD9F78D8861CC40A4D539 + 7F76C11ECF3859C3C67E4E5D79B4906B3752C9691C4D80E80213673F95E2F722 + FC51692F2F1F81A1F6E1A1D617FCE9082D4E318B4DA60F15B2E1B8DD32E0F349 + 9CEA3AFBC4E8E2DF5511D7D4C13A35AF1EDDFFC50C51D6BC7D54C37B9D9079E8 + 9989A5669BA52413AF7269F0D8C84171EE6A70832118777145D6E80E675B9C82 + D80F22EAF2B1F2ECE478D09E9D142ECCC864D81DC70641C7440B0D4ADA2A21E1 + E8D208BA68A62118A50D039EA9E1FF73D21DCC1C8B883A25E14418CEE9B0F4CA + E80D14AD1C6869BCDA08CB20549B69997E98466E235E85EC1235E721E6DEFAB0 + 22141FB2EC051A00AF2F377DB58ACE245C8181B214ACCA42B0FFF68D894730F3 + 0ED5E39F4DC9A152CD9DCE4787F88B03DA73BC473BB99B1CE93811082D1DCF48 + BBA805C1E49F2FB4CC7A146C84F34B68029001A18A47110DB84119839B1E09DC + 57D514096AA749BA0FCE32C39E4D792C6911B24E14A58DA7225BD367F9F697BC + D919FA752F652EA129710C8E169909CA554B8609F3C83ADDD4B8C51D8A25355B + 6150C98D413F20B5BDB56EF40AA1EB6FA8D455AE72F20EF19F83F6FBF3D9AAC3 + C39C754A0C79B7EF89EA236FA841EB3BCA889F856B90CC297CDAB404B3317FD6 + 1F71E3D3CD6605458312FC0F7E62060F35BCB5B027220BFCA30485F9898A350B + 3E74F921A12485D5503C072561181F319E333A9B3E86AD52722FC2A5D7F2D743 + 09C6186A59A507593CCEA1A931762539F9054152F7A7D61BD3758E558924B5A6 + 77B5E76A70707F045B66A02B72AB4D9B2EE62E40DCD3DA45C4AA0250F5F21631 + 5E667C62E12D8BF8A7025D1AC8EE6239615D46D982053F4AEB6CE8B80F524350 + D21C56B31EEE74DE617EEADFF9497387EDCF0F4BA10DF6FCDA20E96B5068BAD8 + 83C855D53254FCAF9161F4D3ACE556F726B6598D352BC8D054297C96514CCF15 + 81FFBB33DFDFFC434EF574A8A1EF395E4037FCFBBD180958C71EAF50D8CE9DD3 + C6A7C6FF01289F8362789C63130584AEE11336C362AC65DFA7DF0453889BC75A + 06F079122D5067CB41F763FC09A50AFA40EF2FAF83DC63E8D816DA1BD33520EE + F0051FC7BF5D49FBBB1E39024B8A8A3BDF60082659FFD1F0C48737D9C2B67C67 + 16A62FAFC7BFDB3A4C3CF430805B03ADFE56264BA9B6768E0FF23D13967C3069 + E94EEE8F2F12ACDA577C1F607FB2149099FA364C04358860F88665B4915C5DAA + E73489FF97EBA4EF2D62598B12AE827B4A9164EEF66FF4315FED1B2F8732A1D3 + 58856349555FA14659736E75B40FEF1EFFBDB9192CB69A9EF60D73999DFAD541 + FB72E99867E6479AF15EAB729E9447C918DCA45E63C732E3A3F51ED42D1B87B6 + CECA4BD6558EC37B9E7287C2F777E37CBCC1CAC38FC62F42184ED511C9489091 + DDC59CD0D19C538B2913E029944C5595CAB6FBE0F17EE63D84167884FEC47CE5 + 8AEB9ADAC4810F75501B0F41B772AE8A451985623F19DE9370BBF447927C2E14 + C652B33FA434663704B00723DBFEE200D23FE78C50E4455FB31AB460F8830AA6 + B00615D903D74C30A804086305552B07E26B6D6E7624F88E27FE31F7BE32751B + B73A2EBE04581E32AB7C5D94F5D3266E354CD083A39D424BB055DB2B561E1530 + 401E518113CAF5556E44135A517102918A44C6B02791364F8175BA480DD68FC5 + 9F2FA8C9EA284AB43E6994228BD606AFA7389002101E6161111FD76AF3DDD2E3 + A4A948B9859E76952326B45791332B85F8F07654CF9DBFE20DFEA9F15522F869 + 286F83CDF490739AD5B181AED053873A06FC0C2894B9B836276CAB54319E4BA6 + D50509F5DBD9AC12E190A99DB93A9AAF9912F22EF57706BB07BFD75619846EF1 + C7C9ADFEB31649E85F84244AA5DA6B5F7F86A1C99C0F201D85B96FBE45E0CE79 + F3387B6F492C5D4618D47B10570FE21525CF5B66FD7AF7890494A066E8CA9625 + 1AAB04994517B64DDD667E3594F832DD5B84746954A2D4375581C38C9C250213 + 1711297F1045384E824FF1FD5CACE9B09616057ECCC63B80EF16F00C0C723825 + 6CC189A9EE5404144691C211AD211E8F5DD447BF77A4B1EF86C2FD63B4497FFC + 760242A88D86E219754549179CE82E60F9659B78CADCCAC488D46645282B9D94 + 51673231B18CDF1F08197DA73D46A25BC80DA6BD9C296E79EC7FBA5782FC12FB + 7506AFDE98715E5D024B226E0EB88613D797A9F77D76C8B726C9E74CD5E70356 + C593AF7ABF4852B71D645E43B3D84032B12D45E779D67DE44782E52CA70054A2 + 980D28BF6AA6C3E9E756AF6EEEDAA9E79FB6FAFF26623DC6EC1E2E4DA7FDD96C + CFFE0E6605B6FCF48AA810CBC4AFA2393F920BF0DF94F98F14AF0C8DB72DCA34 + 7D80B5D7802FF8B8DBF605393F04874FA08C8050EEFE024F26CA9A5CDC09C05F + 06510A86A5F8D0CA66580653C731702A6BBC31E185D2CADDEC0A5C85B6E89807 + 2229A7B541022B1BFC8DB1CCB7D3AAB2900AF369D4B0E769F969774713EDB1DA + 903FE6327DA7C9A372BBEDCC61DEB26C723F67E35B9778CC9B7588EC011145ED + 6C0DB7BE7B38056A1D7941A888F8819C7EB2044674FFCBDFEE270A0A196CB8E9 + D40FABAA12707EC76778BFFEE14D85399D4FE19AE58FF7C9A2DFD1CBD4A2D335 + 77B578688737AD9CFE542C3EA0CE99C28043E8CDA0203BCBD3FDD1286E6CC753 + F4E73866086D5ABC8694A54E227CE6AB4EF3E5B7D23CE560974FEF3E766017DB + AFA3E5C0A2FFA9FFADA4F4D33FBF18B5154F2FE72C88CC9B0F9E856BB0A64A9E + 6288DB5AECE9854294F76F729195C83759262CF5F1DC7C89A589E31B39FE8069 + B2426963B293E72D3A2E150C141D930D07C0C8438A8D7EB5949C5578AC3754B0 + 9C5B2F4B072C4495A2F8CDB58E2F1F9478585865EE063D2366C66E7215083801 + BC1F88FF097894C1B6A5E816F39AB4F2BB1C4EF2AF529F5A13E3446F9E071820 + B984DAA70EFA9823E6A7F34DEE9A9D1A51C3AB1A2BAC1424AD0A9038E12AE97C + D54C82C4E68C7A59B8297B0EE64C2A13411E1466F4B2CECD28CC9A51A8D611A4 + 656421148DF024A64E612CAB85A0E9FE19D07687234F09CC562142FFC8E1B068 + CE70CDCC05A426455D1E7A5D1EEF86AC01204FB903E40B1A4A2F60103C29749C + 2775A2480418B162D3224E02C7D623CE8F4AA12D + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /TUNZYD+CMSY9 findfont /Encoding get + dup 0 /.notdef put + pop + end + /TUNZYD+CMSY9 findfont /Encoding get + dup 0 /.notdef put + dup 2 /multiply put + dup 15 /bullet put + dup 18 /reflexsubset put + dup 33 /arrowright put + dup 50 /element put + dup 54 /negationslash put + dup 63 /perpendicular put + dup 102 /braceleft put + dup 103 /braceright put + dup 127 /bullet put + dup 129 /bullet put + dup 141 /bullet put + dup 143 /bullet put + dup 144 /bullet put + dup 149 /bullet put + dup 157 /bullet put + dup 215 /multiply put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [ 1 /dotlessi/multiply 15 /bullet 18 /reflexsubset 32 /space/arrowright + /quotedbl/numbersign/dollar/percent/ampersand/quotesingle + /parenleft/parenright/asterisk/plus/comma/hyphen + /period/slash/zero/one/element/three + /four/five/negationslash/seven/eight/nine + /colon/semicolon/less/equal/greater/perpendicular + /at/A/B/C/D/E + /F/G/H/I/J/K + /L/M/N/O/P/Q + /R/S/T/U/V/W + /X/Y/Z/bracketleft/backslash/bracketright + /asciicircum/underscore/grave/a/b/c + /d/e/braceleft/braceright/h/i + /j/k/l/m/n/o + /p/q/r/s/t/u + /v/w/x/y/z/braceleft + /bar/braceright/asciitilde/bullet/Euro/bullet + /quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl + /circumflex/perthousand/Scaron/guilsinglleft/OE/bullet + /Zcaron/bullet/bullet/quoteleft/quoteright/quotedblleft + /quotedblright/bullet/endash/emdash/tilde/trademark + /scaron/guilsinglright/oe/bullet/zcaron/Ydieresis + /space/exclamdown/cent/sterling/currency/yen + /brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft + /logicalnot/hyphen/registered/macron/degree/plusminus + /twosuperior/threesuperior/acute/mu/paragraph/periodcentered + /cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf + /threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde + /Adieresis/Aring/AE/Ccedilla/Egrave/Eacute + /Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis + /Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde + /Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex + /Udieresis/Yacute/Thorn/germandbls/agrave/aacute + /acircumflex/atilde/adieresis/aring/ae/ccedilla + /egrave/eacute/ecircumflex/edieresis/igrave/iacute + /icircumflex/idieresis/eth/ntilde/ograve/oacute + /ocircumflex/otilde/odieresis/divide/oslash/ugrave + /uacute/ucircumflex/udieresis/yacute/thorn/ydieresis + /N13/TUNZYD+CMSY9 -1 TZG + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font RFXWON+CMTT9 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMTT9) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /RFXWON+CMTT9 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { -6 -228 524 694 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3EC8DC423323 + 00A152553EC9C9C51591C81BB5A2F58753878D92B1C73E948BB360F467A7D593 + 2446E52E22935D5D0316634839C917AE2BE363D6AE3760363F748EAAEAD9AB74 + D863835F45718D23FB3980D0C645610BF765847F4BC5CB03391BDC9D40A6A460 + ABF0D95BB6A176DB5088A1068A0DFDC266C25ADCBEF3E5472E03E0D29BC6801F + A2AEAD77E33F2F7EBE41F5627C7D0184CDFA9F2A570342A8B9879474A9292A49 + 8CAE2DDAEF553FFBEFBE04EF562EFB61EA9AE19ABD67D346F3AE26ED436A9902 + D473B55FC1909F711AF053CF56C1F63544564CDE453DDF1DB37ED0A5324C408A + FFE0B2F593CB1E6332D9F9D120B43063FB4A4C40A9CC0D70B3FA5021F483978C + 49B7EC6763BB601E887D6F456391064EAE7439AEAEF18B549F57D533AC3FCD5E + DC919354BC05D31A53ED4D6F8A3C62FFBBC7F1DB28B7BD7ACF4E0F0D3EB354F3 + 53DE1ACEEB2D15BB99AE81EEBE27F87217008F5CB1C1A56E5650B3C34F8E98D5 + 8AD4D9C29ED7B800F94DB5D13A27CE38CCFBDE0972066BAD3FB5992D06855583 + 062AAA64467F5007580633FA40BDAED02F075015BF838B91EA670A464C95B7B6 + 1AC5A03F58F4523D8A1896EE75F63BD3C0EA9BA7841CB7B72900EA6C7D2837CB + 8D25DB5B0E6E84B2ED8E1C4E6BE18DAC0AA0768BD79DACED53BA9E678F5EA96A + 9D12134C3E7D9AF285EB16C9EB768E8E0ADE75583CAE3667BABC9C93079F64F0 + D27BE6CB7CF5D1EA5DFC8BCE425D9A6622ED43C7AB0ED634F4F3519870DA269D + DA63FC66F764D2E94A33E4D4B7A765647126D42BF2E26CB37B877E22CA440054 + C8018105DB529342926E52274CCA05C742A6E16F8CBF23D3B65491AE103F16AD + 8CC005C10DC4118A99AD161FF4BF8F047C37DFA66D448D2A7CED0ACAA61B0AFF + C214CC7FF7ECFD16824031653083A95DE0CF46FC822A31EACBCE2276A857DECE + E4C48D58B7DB70CD85F72DC08F1CD958F12D1A316BBCEB1B5E41C57D33F0C95D + 9DC97C570D7868BB0E4A86FFED13E342C9B3C19C44A53B3DEFF9E557B98C4D08 + BC7B2BE234946F9A92EC4DBC03DC01D710012AB42023FDBA4C2C358E899A5E9E + 49A4FA7297D90BD7D42450F9FD3F10F71DF633ADF717F9D01295C82EFA5EE1EB + D9458338CF4B81093E1A3A7AF05C11C20434F6B63AF6EB70C4B3A24C39916932 + 58128CEB7E5B8D3903897076D5BC06C212A6D36B435E9BB4C6F79EB00055CE9B + B08BB6BB9B98EF05CB1386C8D8E7AA49E85128B9F75DBC4152FC1F0F810ACD93 + 88E5A98D33A3556DB37904FE4EF3A89977853BDEEB4D58AA759836D0057D6E71 + 05114483444C9DF48287F17F4041546E68616EFEB076285A420BBB40679F9450 + B647745BA5D44FD9AA8647B0911A57DE21D9A307D306E8A13134FC9ED75E6A66 + 61C248AF67A71447941E635A86F9C36534F003B6EEFBA2375E3DEC8FB8C6C52D + A05BC1D74E941ABA24DB35906305D4FD5D80FBB44660FFECDC06DD2A49B2B765 + DD5E7880B8B8E2E649F413E6BBFDC03E24C40A11547B8C6FDF1BE5B63C6AC0C9 + C5796B9F3C54D352AEA744B0F723E39AB20678D48F9A0D397DDDDA45358FAE83 + 4FFC5CAC52BE2A5D58EB69747CBEE1410A6A95DF9CCD460068DA9571830CA167 + 6ACC24ED271C6E699DADFC0453C3C74FE0E0837DD34874C903BC1771496663DF + 311BC80D71AF8A4CDC61195836B9D66E2975ED3033873D0BF1BE16210643BE2E + C6CA641993328FFB44CE0B2A342A0F717E99774608C8C079A3EB4AF761971491 + 35C12E827D5B0CC8CEC4E54AD78AE3839E0CE961BB1D631D4A6140C57914C58D + 9880023A5DF213A69D4CF2E7F8AAC442F8862120A87FB0498E44D911D589BED5 + 48B96734F6010A12B5E08C232EE12F53327362506A9DE3B9B1E2B2DD68829D5B + 74FC986BE44424ACF3EDDC962000ACE95AC859822A50531A54AFCB9D9F4D6BC6 + A9FDAE3BA1325C12ADA9A493844C5EF48A3BF77B0D3B262B522914F5F756C393 + 1F0FC1D8EF9D4B1D0C2BE614EA45983BB96F98FA989394F9C49C9EE51EC0A6D1 + 7C0806026754FD097E056A2EEFBA3643D47612D4F3CF09D73A4754B0E243B920 + EBEDEEE8FBB685637176320A432310FBAE8DE8F300B7EAB034527E7F606DBFCF + F6EE89E7CCCB82DA1F15440E74C6947CD661144CA1F4FB737E8133D2530CD462 + DCC137EE2AE1C8F32876923C6D22B207489558003ED10233A46DA6AFD15A6BC7 + ACA251193E0B7F826FBF00DBE018D49713157A79E1CE35FB7DD68B029C3961F9 + 3960D465783C7B1BB5997E9AE29619A19811D0EB2E936D7E69D93222FD57AC27 + A8BAC79E93A4C4210C750480BF8EF7B06E3EA4EDA59A1A348F7561283017C960 + 3E9166D0C129779BD1204D6A3DC1545D0B38C1F48896DF25104003F4631310B9 + 3C0D9B279570375D187571D9E4890DC2C4A0BC8CC6A8C40F11ECE4504CE886EB + BC86E347889EE99AC4090672BF8701FB4936886B52C95099665485DEF3228F8C + DDBCD25B56B6AE010618AB4471CB40C705070A31AFC49844A7B2944248CD0DDB + A5364CC2F6A34DB3158C05BD3CC146AE6A78543894A5A852801B294BB8D88382 + 5D571ECCC3D2EABC3FACC52170D4271006D58E89AC76B6033C4E1EC7DEAF9FC5 + AEBB28FAF04486C5072E5E10E864E669CFA7E39A212EAB8A51B89D1AE7D7C485 + 8E52FE2A538D8ECE57D75A45185130124DDFFFEF7E37B91FF170AD7E6D8A811A + C221CD943B3E1842AD4E740E09BBDB672ABC5012568C16CBFB56FF242C235D15 + 44FF7325C8D2B92E0DA189F567D16C7AF918AE26679D2F10DB43E06BFB2F84C4 + EF020D5BB7D860099B8B054B16C5C4243C75DC3440A7046BD4DE6FA61773C8A6 + 9E70C1A6AC9A4028893468B93C2BC48055ADF3B705368A57DAE96F690716CD91 + B0C4F9B91DD3166AA754652F5DD8E55F851F67E8D9DA552A73B89664DD658B5A + 201316FBCA267077DF6CE42780EC41D05B35A1FB5A5EA554C6365DF1A3A22C46 + 305E6DCE391CCF2C1F617C801ACBE4681C8D70EA7A027FCAEF37E190552E7E69 + B6FFCA3C3225AB241C05E73B1220856F4E703C775CA5318CE509507CB0D6BE78 + A9FE6B2D78E03A964E138150B544D92B01F2FE4D066D7439AF8834139B4C50CA + D166F6D3087F93F21B375FA97D5CDB1AB849F3A94A93992B72BD9B77ACB1D5FB + E944B164FA95B6C274A2C89770CCF58D9022C4B36D9CE93B1A92C54143233686 + 74E52BC863802BC96B229301979B29F5FB5EB75290412E1227B2DDB3AFAF9A86 + 56F76E7131A92B91418707517C1699C4CF6CAAC2EAA1CE8C8A634B1A5814EE74 + 52523FC7C07A9ED6B70BB9D54444E2BE08869A63E38E732525D2D56926F5686D + D5E46E03BA0BEC50AC0B8D65755523202A780E9274A7917F8D1FDF70130C927A + 4F3CC28FEA3AA8E59413597577434EBDFDDA3B86867D262832239D8D3EB48E51 + BE043CEE7572ECB27BB16B136EC036FC447F13CDCF0C9825E05EFAE6B2C9B997 + 1CA88EC59463688AB8F15CB1E887CACB6B253EC5AF993FB6C25A8B08D86FEC65 + A7CEA940E2D229E224DE04C854E88B096B3F0D45026037447745CC324BB55CA9 + E9074A97EA6DB37BC6494478A6C0092B718321453C8CA5A56004713D97E8CD47 + 4508E484492E7020989DD14BF1473D9D01A6D5D52D97CEB75E27B6BDEA71A8B3 + AB2ECCB09C5696315E21A589969E5CBD35C064E5F186FEE77FFD0BD7BA758F16 + D279F78E702163B851D72CE60B3C6DE6BB0998E9DB4D6B359281758B9FF1C077 + D369976833C965FB3E31DBD96FF93BAD37719CC3BBF7D9AB5E549AC171556BD6 + ADBEECD5C9AB3ECCB1BEBD3067B1E9E13E12BA9FEF6DCB1EB1674351BE593DE0 + C9F39E172E02C5C3ED6084EFFA43CB8C7EA583B59B44383C6C4CE076199C8CF8 + A83590A70A27DDE71BC19F293A1B864D674A2C2C70D245EEF488B062D4A5A646 + 28B41FDB64AF422926A5E66844F1E9DF49661976B71A39CEDA16A6CFD6C9C2B2 + AD91C08D21D7455E929B67EE2BB703FEEEE96E9818A21D7792DD1A1417A08380 + A2C9894E7E588EE237F0FA69AD183DD3BEF5D272FEC891890A65BCAE6C502B21 + 0C44C10BEE991810831BE8D5BFC0BDFCD8842DCD754BA5186C8452E97FB36330 + 33F5B4DE02734F25B323F1E85076AB13775A6B61AB077C83777832E72C6610F4 + 6C61FE7BE8A5A79130553DDB16813A1FB0A91F2809877D4665FEB8D6502FAA52 + 03B78E8476DBE9DB8D129A69A3EDA2F12566D6D9704D5F45F77392869562BD71 + 36607AF3B110994608BE3E3B794BBF0A05341ADE07FF03257B6B5151E0236C2E + E14AA0B19EE1579948DD2D7BC8F0D273184B7FF3F6135D8E2ED79CAF2B68DDCC + 410656EAED301FF90EF48A644F5FB1586B287333314E85A9F95D387D95EC3AB8 + 50D8E1E1600F43DC43966EADE38A15839FB944FA1EDF12DBF2EB34B08514982C + 2AB5747A31ACEE7F9B481E39D666B859B09AB8BF13EA531BDB1269791F6DA70E + 585891E7F5FDF659B22795108942FE1B7ED1FEE6661AB3885B198DFD534D67A6 + 4A97B851A78157B9D37CC9F0BFF6DDB6074760EB1A36AD750FA704E8118BD804 + 665A73D938F1C812D0804FF7F8CEE548979A399EBC7B2B16144C372BD93ADF4C + C3AA6B5495B7FDFF49CD35982CF00FAD9D5177308ECCB4638B3B6F769458815F + 699FA41D90E588CC97E16D0977C997214336E7CDEB8FDC2D4DB8FEDB177EA340 + 6DE16FABAB12CADF11F435B92B213BCBC9416CDD6163E399A9D98B25BA69A800 + 1BAED71D5CF37302B9B3AD2E2B68117F85ED796E530ABA5A304754D978E5F4FF + 1187AE988AC4546EEB251EA812A04A1B57906D28886F4A993DB090B0D22B5366 + DFADB9F1D505192DEC8605D4E0F8507AAC1E8B31EBCAFAF8EA81BA06DDD8D045 + 32725637194F07CAAD8104E7CC76E37F3E32CF0AF46827EB1854F73E7F3BB1A3 + B676A35C8C5094BC8BF4B7D9DCDC57FF7B3100D51593F5FDAFACE53943D6726E + 8706810018942313B84526AF502460A11C776391CBE00ECD12DE211A3826C429 + DA35E4BEEDCDFA55090FE7B716D46C38563933C2807E3E0ACBC1BB26C5C48B7D + 2359967D9D93EA02D4D9054EDBDB8D48E9164A9D0723AEEB09B17532C549E08D + BF82C1467DB124CDB57940DA399AF95251E526CC909B454D13C672412B263806 + C1095FD2E9845AB101D502D04E8A417F7EEFE175E8361A55143A9E24EE6C6B85 + 4194D482F6C1AB9ADD3DC6FE94C4057D4503A1EDB2F717651E7AFE8B94C6299C + 23D9A6B91D3DC2937EAFF6DA632F899E3CF0E97864D5820DFFA400F275C81A66 + 993DFE10B248D547F3F52BA807A2EC76969688D2FFF34D36443A5ECF450C1FDA + FD60CC2BF58307220F4D5F2AA11DD4DBB6BDD2B21DA5DE7794690EFB819EC3B7 + 0C1CA245F4F281A7FA79C70A771040BC585F3A710908FC8C58BCCE3BA0B0C4A8 + A94949761830AF789A51342830E347F45EDE905735E4A14B3795EC23894BA772 + 883AE5786DD8E177E2B8A3573F620937CAECAE424D306C6235E00063F25431FA + D093451A9FFFA1E0D6A81ADF9195C6598570B9A99976A88A4C09D0C036AD7145 + D6212EF99A1938A3B21354F4DAB4F5EFCFDCEAA9C4474B6553E72D96893FC1C1 + 4110D8B1DEC296CA629D334DA9F139CA850B321EA4660136DACCE2CCD17259DF + FC42DCF9A41CE46B6F6156A8B3CB6364C95D4E55E0F223A19E1E12AC83BAAA6F + 87AB3944A9383C872AB83C5E1E4587E47DD3C2F073FA66BA054816DAD68761C4 + 6BBADAD656053CC17AE25B4B939AEAD3A385A1BF3384087049413DC396AF4984 + D4451EC5373E29738632CC9DF2E1EB69D6DA5DDF034C98C15C248ECD7E682D8E + 31DC9CDD9DC666C9331D0DF78C0D05655A2A8DBCA812DFC6BDDFBEDDB5172698 + 7D411B851C2B3499BA654F444238CA6FDEB764A8E06BF58FDEEDB640D724FEB4 + D2075541FEA6605F3B7FC4BE91367CB26C85C5B377EF89F32C69AF9E4500C242 + E70DB86E8AF1EA998B64072B10803D6A3D26E620D249DA333518E0DB07CF545A + D62672FC52616ABE2CA8D39E9D2560EB0144EB0238F52B5F90282FC78EFB7EAF + CA2EC3C9407BE8DF2543DFE3136A4CBC83225EC86A2B31A2584A56CD5DABB821 + 16AD7A13DE93DDABC4575DF27A1B8DC690D2AC2BF8DD3E4A22E75C9421647653 + BCF3489B6AB0C739618D9D8EC5B87A80C37CA523BDC591C681B3F5B5935F7B9E + 13EFF00B20A47E61DF08A2F62A30308DFF9FDC9E5C76E625D6DBF8DE87B0DAF3 + 379C798C769C2C1605F69CACF7DC9810F331072F30A13FDC21BD13EAF91A0845 + 125B4BA9959067EC0D92B371DD786DADBC2D43AAFBA288BB162B40EDFEA15B6B + E4A7D5443200F6AA1FDD9AF1CA6F10212EC45CF764BC193C68668BFE162C4CBA + 36ECD6A6A30D1F2E4E224C16F5D415EE3141306647623A76BA8EF850D33FEC76 + 0C5A5394E419955DD0A741DC5DBB0E9A86005A41B77BF5454C529510BCD2D13D + 1C02685F273DD21AF5A636BB805F984DDAE9A747C1C15BA15C3C5E307646F76A + 5057F04AC0EBF9B646EDD2ED3B528DC24F3A9CFA4058B27D5E6115CBEFAF2642 + 5E0A2023B361F65DEF4B6C0AE62F548E1B06B5D71920B539BBC642DD84F5D183 + 587376EAB236D3B8484FDA44371EDDCC1F1AEC8FAEE4CCB71AAE10188D785D6F + 5172CECF86E8DB420A92DCD76CBD5824B56AABBCD879945E199142E8C9730A32 + 02493F3DB08934DB0D564C1694A0B5E12F7A9C0C50C7BED44E6C021605425E73 + 368C8D8A1D67E8A114E3B64B82DE8886FCB27458F16241CDE8E7BCF27B43ABFF + 9C6EB441CBDB602458B663A7D1AAFCDB826D297DD9F231A71C42C304A0FD8E6F + 450AA6915CE30E8B1131ACD7F88E56A766755DB93F66C0CDFC4B68652A2441F7 + 27081C7AB962226B81F828E60C5D5F9502587064FE3590737B5F421D3AF03E1F + 75381CFDA085058F6D363190354A3914B9953602D4398221B545C0BC338F23DF + 547AF9D982C142E5CBB94F7B65DB6E2223E568218767D682D81D69A98EE9792E + 2BB66F4D2BDF6727A6DA961F7E2BAD226F70DC2C55EA85B1872A9AA0621F32A0 + A772F89138E91C5EF70C7F9C9107D16F121FEACF0DC1E69FCD049377C0DC4A1C + 0BD3F85B6DD4003637CB25B311AA6D047C4EF84313060F2C6FC5B6B5EFE92E2B + 31D244B09812DA54CF7C30DECAACD2DA7931B4A621B1E405F366D0C298A66845 + 75CB25D75D11C6FAC8DED8D11F93980D080E5F260726EF0198375BB09866681A + 40EADEAB86B4C13B811F3BF8C7C9C1A74F39C9D115EAF7F44A62BA01B7227364 + 6ADE313AE52A36A45FD11F3FA3E8015574F360C3B88C625A638BF1216A686FF9 + 6D99820D6958C9FA0DFCBFE6643774EEBFE43D073A98800AA96407A83A5E808A + 98FCED1819E7CD392D904E9D4F5C0FF11922167FC5423AA1D6E6418A7C5606C8 + 3B88226DEFE3142DF299BA739F9DCACC7FAC65F5CC9C9D3DA5319512BB1AD4D9 + 7DE20C04C07C48B52F623ECE7A884D734539129854BC194777F729C4408FD068 + 479F556F0C8185CC9DE44453637983BDCB77AA84DEA5095410D64A20F54D3A47 + F2A494B248C1BA4DB2E40E227AFF30D5E51A9C224D8F00328F3A085C91DF1D40 + 50579D0FCBBEBD5C56F6B1699BD00695A42151149EF590135F9E751A13AFAD3A + 2861948C66A5A9DE2F75C17F0D588D9E70805E392B1492CBB85C6819B5EECAD8 + F35993781456C3C3D70747A42057863A1A074C941050664820A0E57D25840D87 + 44E0BA0EE115028ECE31D7BDD057D5E112764ADCA3CDAEB8F802ADCD344F4269 + 655729742A4D29895CE45825BEE1928055CE62303F3A171667E98A0A29326183 + B6330CABDF0803D256BEF21F192789F1A851A8CE62036D78872AC7F9884707D5 + C846D5339589E6532AD1D355B5648FEFB99721DCB06785E001A40C8F5D53DDD9 + 1FB1B480CCF2C0A4221C182E763972C0421EA6604F972B2DD258356AB4D89280 + E6AACF67EF1F744065AECE048858455207E89E86392A19865CAFC7B3F4B7DA78 + 98E01E085273840B33E95B13224AD50DD843D4FDA935516EC042479B62F076B3 + B7FE26F840A97B6672C30C8B8FCA5B472677802398B1437415872689EFA98EF2 + 7C6438F1FEFD4140DF5F259809AB8CD73521A983B516D698866D24D4A528BB37 + DEEB6FF3CD551E66E535D8107769506776CBB18DCC0C0E119F131E99046686B4 + B0575416564DEB08DCBB82994AFB1D1E446493CD8BF01286D08EC73FCCB13F31 + CAD2244CEE3D930B811D7DF878CC03A17BD65D6FA54AE9093901FAC8F7157239 + 6088585E0BFD1B746F365815410C051C322669EBC70E46C0368FD86B4C5F1399 + 672CBE6DE2AEBD8A456D6057CFE1F7B9BD98FCF2EB327C6ECA924C5FF75296E5 + 660E6C64F3FB1582AB21B8F9157FBB2A8BA983AB03174A612D1332F0EEEDF5DC + 9E32213ACB35291B647845346800D7F83D5E46AD3D59147EDAF7E3E6FC37864A + 13A389351274BC3FF30050B5B94349AE91E7AA92575D05A1092BAE5592CCDD2A + 308BCC57B6A197F6250639581AA1BBEAC67799DDBBA31B62D4C0BE255448D167 + CBCE39F8E9872D4102238256E76A51D4BFA27FC2945311FDF2221637BA8FA875 + 6BC23E1E48A94D2C78C10F4F5503CD3C6F19E1DA07B3283392B1AF13C8B19671 + E8CA67F94E9788A94D20232712AB4ABEE87EBCAA3F66F16CAD4D364616D0C6B8 + 1D4A6E650E4CB9EAC399DEB5316C120068264223F33D96CC9421A76FC177F326 + 2B7FA301952F4F8ED0293B103ACF9501C49A2B9C03DD57CCC5C08ED9F0467A92 + E1A515245A7301702EBC226AB5674AAB41E97D1AD8834374592D42ECB9B931B3 + 0DC17436D29E7FD9C38D50131BBBB0C63CA6C67A155493B3328C30AECDE84ED9 + 6606C7352A363D8C1946E41606AE47B181AD78EB9492F0B12609DDB335577FE1 + DFE92FB50898902AC3C061FADAA2282BF40B959C6882B7A86526EFA1E60FFFC0 + 2751B1C57D1F0065BCB89F9024C6E6076B1E576676A6C435860E273AC7ED9694 + 8D4B5AA05E012422E925FE80CA9B0393321877664313863D293D504DD916F46C + 44A99C1CBE9EAA8D58413D7D14A493E4EF4D5605BA4CF69539CE9871C795CF2F + 5EE8ECE00A410FE2BEB8BCEBF8D93E8E7392A9999E4438D3DBD30E39489E6AE8 + E84273A603AD03488E43F0FAC1D892FC8D41720AB298E2273C668AEFC66DE3C9 + 9B54043D9849B8F0F287BEE405316E58EC951DC8F904AFB470950F86ADA7312D + DDC6633548920BA58496D9190DBD011455508B67D5D566EDD572F8F71B93BAA3 + 03CE7FA140DD492C40E490126E194156AF1BAED39BFB7077276022745469FF29 + FD346468EB46230177475054422EBB8C1CFD463EB88C638A923239CBC9E62BED + 6E63B383B34F2932A30BD48A917B722CC9A5FB3F18ECCAB3420C2F946040C064 + EED2ED63C22C815C2EA2663612870A141B5951E3D187481757EC2492A5D5B223 + 1DCAEFBBAA96A25AAC888D652C8745C29A6EF44A56A4454097BCE07F57AF751B + 7BBA4E82C3A5B7960B8051E66A1718EA1EC94966ED83D682A1C3E38FB06308DF + 08B07C0F0657C3B74AACD54CF7661F2A69669FF7010DDE5DFDB0D49397CE2E44 + F92857E9D39913D3F035E74DC81386D9B34D50C456BD892FB9F5777C4595C8B3 + 52BD60FDA1EEF4B58B29B0891320826912C6D2675EB6EFB5967A5BFF347BC5E0 + D88DF05EE099D087EF646532C26D7072C2830A71F3A04FD9CB23262F1F88DACF + 6835C852AFB474D6944BBDC5DA85A93C12C941FE3E4EE0B2801FB67BC10CF73C + 32C2047A9AE2500534FFCFFB73BE33C33409B821F6DBEBFFB5C0C94C0CB37DCA + BF7F9C9A9397EB64B99722C01EE42CECDCDF989C467B0BBB5ADA9F73C90AD028 + D80B8958D930751FBCF311E5A6A58CB9485C03673115C3948078389A7E4B27B7 + 383380BC1F64458365492F1A311D184A577E8686C7776D3BAE04448E07E20041 + 0B8CB03AC407F982C764329CA86A0A6BEF4155371DBD2122E35A4C8BF4F2E16D + 794C5FE9F0B7AD572D4686B72D0EDE2B5A19581A295550EA5CBA4F63EB60F031 + DB15314870178FF82CC63FBCDDE844ED49CBB0F3756C8A4EA0BC5B81060389B3 + EADABFDD2E63A1C05BD20E37365CDEA584795005F2AFAABB9415306E98A20393 + D3D25D05E66CECEA3C6217C98F487660E31372C0D4B0A2F783BECE7B88C5BC06 + 8A1D83C04EE9B5D59D5B13263BB4E6AB9D5FA7BA50ACAD1BB791D178DBCCB7BD + F0F0022A9062305D24B06D2C279E5E9B085E1474895E2F49E83435D198F1BC79 + E83C6D7B25D07EE25A4C4242A00BD06FE87A0577BF1523183F96C4C130B898ED + E59A7CCF9E651BB68010AE3A826D7146D4D5DC6260E61587A1DDBE453963D671 + D86255E57200E717693169E56BA3FD67A07229ECD5883F4A1F36FFAFE78A18E4 + D95F84E266A4CACD4BAE95878673203AB08D0A3F4FA4496AFCC502507E305C10 + FFFF1DA4D9C8008C259B29199590040B3FFDE0084ACBB0658331BE82E4574420 + 6EBFA3D489E28B96F4FFB4BC835D5437F43ADDB6915250FDB666CA0BD5A5C69E + 6189C677D862D8BBDD8857D4232DC3BC08BFFDC57FDC90392753ADC547D0408A + 81DD743A2CC8FD06A0292E1C36212B6B7FCAFF6BF6BC2868F7C57A9753C3890D + BBAD2F1C86BE1630155239072F960BB60DE891E911483B9FCC1A08E047FD7049 + 6F1F1282CA5B624B24870DC1C023FEAAEDE61F66780BF5734163F8A6A4BC89E4 + B2072DFDA3A5F6A7ED0FB7AC174211D8BD66C72C61F713F7CD8A82C64F169394 + 8038391D58FFAC52718C31A0AAA349299CB61D3F3965C71E9FF7BB923C5839DF + BCE051761B58B98F17001E271C0DCCDF7FA8AB856476B0EF9FC3E450A1025875 + FC1B46892B8AAEF8D54D7C213ACF1DD8DF9704FC79A74EDA5C03060423311A67 + 6EC0982566945A26FFA6AE591655973537B691579754A9D214AFE3F15497368E + CC17BC87991777A8ECAA30D247B1AD72D63292452D1C765F5AC4C46FE288D8E0 + 0DCEF62BA897BF4554930DF782C40953692D830A24FEC51872405E612A99F14F + 44DA449E051B0AF5B92DC95FEDABE49CB6C3A8D26EF29F357113968FDF525D56 + 04234A640CEC38FBD0F6E91CD7A314D28089275697955710581F82C36C05CD48 + E0E839B19830DED0271C8583CA0F5B6B167D7A7F28790688D9E8FC6B6DC99C01 + 239E3031583456542FA2B254A8839097F8EFDC366DCE57734DBCD6335A5A1345 + 9C29956BAFB5B333573676E409DE390DD041DA5E181DA66E1E74F7FC4CB33E6D + 9E60B955445E03528EB33C0AA2046F87AEEAF65F57A5D8CD3B46396AB20863C4 + B5CCAA176AB33C3BB5C1D3BA5CD9CDC5B5B1A3AC75C66BDCCD0D65EEB23ED14D + B99A225BB9C8B2C4E7E8FCB0C47FFA79DBA2E646A4FE3A0231A17DB0E58563B5 + 6A75AD8A866E8E28D23DE4CDEB91D05774C2B56881943074AB7DC23A4BA2BFC9 + 98E529C004A1AC14087305C3ADA7574C93F0FEE4A0F82316CBE817005DAF199F + D88833477B8605CB3A1340190B6996908E6C65EFA5778F9EC37B7C79F627DDEF + 112D6FEF1650BB5143BBD69BBE9192AB0FDB72F0153A9F3E1F99DDAB386359E8 + 1203C6B28B2E7C39C6B5124E263675825EF1993CBBC8DBD523BD314407CD7F36 + 66F7DB37C0F55B2E42D2DBBA8CF59ABFF2F3E058CAB889129F2A39410C8260E5 + E4E84ED4FDB14597A7677590B1B058FA69573038E324F9C92EFF4024A2586B39 + 7163845A90E9FE85D393FBE635AD1887364E2011BD23C028667567A491AF08EB + 5D56B24C9C1ACC55A6573B4BBB65D8CC5BC4E523D4E836E37F73CA49A86CD434 + 222B25C4B8EA34BB5016658D1F2BAE27FBB86FB17385D9A14D8F1D35C20E621B + 801EB0A4679B3E3014E9DC4EB17DF2C6DD77279B608C80065E982CBAC52BD3D1 + 23B5154DFF38CDBFF5B27539F51540CF2A702120C10BA62E1E704DC00EA891A3 + 4F9E5A0353C2E5DA9A661259D06F8D9A71B003841B0080B8D6900023030E2C8A + 1E397CDCBD56B75016ECED29DBD4F31BB215DF3DE3EB8F1195A0E47DA26D0D16 + 9E67A8136B87921F0601CC60DBD94F28B6C96F64A6459A7EAC599E21FF2BF8B6 + A9DF63A13866B22B94F3B541997887CB412580025246C9143B9FA439D8FDA2CC + 7D7BB633FFE3C79F09B3DC68706E722DDDD635AFF301A37DCD48A888797989E8 + A655ECD7E5DDD38A03D67D5F8277 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /RFXWON+CMTT9 findfont /Encoding get + dup 0 /.notdef put + pop + end + /RFXWON+CMTT9 findfont /Encoding get + dup 0 /.notdef put + dup 40 /.notdef put + dup 41 /.notdef put + dup 42 /.notdef put + dup 43 /.notdef put + dup 44 /.notdef put + dup 45 /.notdef put + dup 46 /.notdef put + dup 48 /.notdef put + dup 49 /.notdef put + dup 50 /.notdef put + dup 51 /.notdef put + dup 59 /.notdef put + dup 60 /.notdef put + dup 61 /.notdef put + dup 62 /.notdef put + dup 64 /.notdef put + dup 65 /.notdef put + dup 66 /.notdef put + dup 67 /.notdef put + dup 68 /.notdef put + dup 69 /.notdef put + dup 76 /.notdef put + dup 77 /.notdef put + dup 78 /.notdef put + dup 79 /.notdef put + dup 80 /.notdef put + dup 82 /.notdef put + dup 83 /.notdef put + dup 84 /.notdef put + dup 86 /.notdef put + dup 88 /.notdef put + dup 97 /.notdef put + dup 98 /.notdef put + dup 99 /.notdef put + dup 100 /.notdef put + dup 101 /.notdef put + dup 102 /.notdef put + dup 103 /.notdef put + dup 104 /.notdef put + dup 105 /.notdef put + dup 106 /.notdef put + dup 107 /.notdef put + dup 108 /.notdef put + dup 109 /.notdef put + dup 110 /.notdef put + dup 111 /.notdef put + dup 112 /.notdef put + dup 114 /.notdef put + dup 115 /.notdef put + dup 116 /.notdef put + dup 117 /.notdef put + dup 118 /.notdef put + dup 121 /.notdef put + dup 122 /.notdef put + dup 173 /hyphen put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [/N15/RFXWON+CMTT9 1 TZG + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font OVYQVF+CMMI6 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMMI6) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /OVYQVF+CMMI6 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { 0 -10 708 695 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3ECB48FA43E4 + 4BE895991CB9C373C80EADF956F3CFF9953ED829311EA5C29ADABDA9B531D51E + 0E505FCDAE7E6EE841FB8BA6ABD575F8F932F2DBA26DD9F78D8861CC40A4D539 + 7F76C11ECF3859C3C67E4E5D79B4906B3752C9691C4D80E80213673F95E2F722 + FC51692F2F1F81A1F6E1A1D617FCE9082D4E318B4DA60F15B2E1B8DD32E0F349 + 9CEA3AFBC4E8E1119F7FEBD3B8F92334894117D4707B96983316A3BC8105F0EA + 92DEB78DBC9B9743ECF4D602C526C6E6F0106D5CA42D7335E93D30707C302490 + 8303C6308714A9E775A9CE9523FD5A7D1F9852931ABA601A8E8761C58A863CDF + 8693689AF91E8E6EEEEC4288FFDA4DFDEDB4317CD7551E8A8C12F1548B76BE3D + 4B7591FC32A363BEF38A391F59A5023787873CCE3B52FC6CEC387C53909CF9CA + DD23E01BC0B6D22A0D464C0098DB74D563AA2725A5A8611EA8859EA96B391AB8 + C9B0A25101C74A106474BEC248B17371991AEB07F57820C7567B23265768963A + 0D736065938E596B8687B31647042C2151C6518C2068C455B80D80112AB3555A + B4C19F5B0861F7737E4AACCABC5C25FF4C1B847BC5B5F6169BBCEED572B8AAE7 + 561BEDA665D778D1531F2350031A2EEDE04FB4613012F89228B23DFA4A322CAB + 9B8EBF3F2271B097BB308C5F07D30BF5C44D428236C53E1EBD3F4C456391BA70 + CDEE6E2CFB556EA62480341FB55E323382ADB9122A6FA93C73C39B1B752B86F4 + D33DE35A20F6E2CE9BBCDD4120BF61398038BC5ECF89DF6044733C47E9C9CC89 + 8C779ACB678F8EE862F3A781EB0BF408C93F0AC2D55D4F930FB94673BBC0DEF7 + 9EA1A0DBB350BF7C09D8106BAD604840B962A74BBAB238FFDAD1E7535BCB33F8 + CABC5AE7557B4EAFB23A4C9F7F9042E1A3B9F60D532E579CB8C61036E98D41A1 + 4A2760D319C83F3068AE8852FB6F4B8064B8AE591DCF2EE91B95F6BE017D1072 + 38E179223929DA39985C39D1ECA507AC932FFF93E8A16E5DAFDE93256550588F + 01A3AFAA2DE4EC3EA5C759490D8DD9719F89A9045D24D9350FD4EE4FA8A918EB + 55AB1BC96E377987C2F17D8E6611B264ED0AF5B6E6AC70F34047A4DF8BCD1E09 + BAFFE57F80881B3F19A5DAC6B7B5B26CC042B0951DE00729A512426ADA044E1C + E0BB20C6CF5E967B56EDC9FBC5684C6A60B7EA20FAAF1E2EDB6B87A376679195 + C9D1DEFDB81AB3D1E78A1C474E3432184427292447BF7B430E6325170E044CA2 + C68E50EFCA34369F36FA238CF0152656DADE8C60115E425D40FDC320CA6EDA4E + 3A972100462E847F7BCB95D92B3B97B83AE87BB57DECAA0D567B4115E8C33127 + 35297F7C85C16A139476D2E3CFD5079450BDB1F3C77FE0AD927B410B82B67632 + C968AB4A74607CBE03770CA46D2D2FCA1F3D5AF8001A41F456CA46DE786134B8 + BB70DB3E6106D278107D0D79BA38C64BFDA96FB70D4726CD42143BC6374AA58B + 77890587F4EC80E2E5EF049F3B45252BC5549D5DDA6EDF68B6DC369389BBF59C + 1BC63ACD665B6870C0EAC2C2EB90B3A461197EDF1BEF0CB514BCEAF426329C9B + F0CD68085F1E50A7127B709E0D50A532C5FF9F98D8922595AB999E621D26C377 + 451AFE2323DC3223FE186A024997588F5AE8EF8A690BB57B6BB8F7D6FBFBE25A + 8050791287DCD0B7FBF82C24E58ACCEF7D365DC49A09E097216B071ABE08FCA3 + AE198769E70B084B2593E881DFA027BDDFCC44298917E637AA8776E76491BC3C + 35AC063E5093F01B292D8A3388041A1888DD13D69FB3745E29F7F59814A8F6E4 + FB21EDE5E95B24FB257757BD43451F460DA45299AE2B11ACF8C846BCDDABC4EE + 2FFFB1096FA7BC7CA21156803F3DC5FDDAF95422098795EAF0BEA5D380F6A1AC + AB3F8C3CD76DA878E73F9D3573D0949972E0A2D1E071764CAB599C5FDDADFC9A + E528D78B71C59F000A57077DBE113C9FA2028FF2405E79E7B7A778687BE78061 + 74A224803B474BC67867E4ABEEEF1B7BF3A6F62802DE90B447FF83742AF7E348 + 121ED2B2105767E46184F4EC64028E5AA99E88CBBACF78C0BCEFBFD9A7A003AE + 964AF18289CAFC1C9868A5292062441F5FE8FA3D56EC8DD5D80E39EB463D67B6 + 4D538C587A7EAB584C9D06B6CCAC531AB69EE92811FDB4C10B85A3C70CD1B8AF + 157FBED0088903B402EE6EB6F4E212DB6B73449F5E550A5B11D16A7D545270A2 + 15F272634888B2FAFB45AE0B33BFC2CA6AC2F7AEE9A7E2100BFDEE67CCA59D96 + 5A3C7A9D74C0660BE4A7278CFC85D4E9D5154C08A45701937443917D0D934224 + 634AB1FA943014FD2065C90E55E8D9C26C36E45048E27F1B809F11012A74008F + E3F3132B606957BBC959E6651BF0E5926F28877F5C314CC611ECF5CABB6EF43E + DAD1D9949C3C87576C30F7B7260E5C059FE3557DF35D79ED4C538AED24876648 + 3C0403241CD55903C7FB6BD875B173C6CE1611601EE402D5C77A57789BCF3237 + 028817A19A976D202DFF68CFBDB632F64CF699A51B315F5B37129FF63066FE7C + 25B6A1268E6C6DC0E1B9E18F019466FA23CA29D75028DDE9BA3822E08EE53C62 + 0FC26CDD3338E2B9593C590B2C15781766CA8910533EE8EAD44D905F48392FAA + 880B6F08DE6D987ACDA3CA1B67E272443A3B35D023A17731AFC930D4EE919CB0 + 7364E8AFA89F9D90DB050C844D47891A01FC8A6C9FF19BC881D56C206FFB07A6 + 04B661842947431E69658E3FDF3055876948548CC303504DDA9A24ABD528C490 + 94C801D43F6F4BA0C23F65EFEB963E98C69F78CCD773F298B409D5A0ABB4891E + 5BA9C45BB1EEA54C5F971A9FC682467CE1D2FF841A17E1DF5CCF58B57BA499EB + ED79FB7D557C30CC6A41E7048E5E28AAB51435F092AC6775BBD689A2F71B3D4A + 4B1A4343CE23B46EBF1B898690D3926EABD59391CAC7F7DB5CFF6CEF7B3A1FC9 + 51A082650CA668F46C066462E4721CDCDD7BE50CF6B1B2EBD6883FD1E0329070 + 27F1EA74758348C50F44061226BE0D7CDED195FEBEFE673D62C68A4D01EAA3A3 + BE158531BC8C9D19A170C84BE4D158E536DFEFF57F9F9B14378597A158E18214 + F992D0C238D1B1F110E600A3F7CE98 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /OVYQVF+CMMI6 findfont /Encoding get + dup 0 /.notdef put + pop + end + /OVYQVF+CMMI6 findfont /Encoding get + dup 0 /.notdef put + dup 104 /.notdef put + dup 107 /.notdef put + dup 110 /.notdef put + dup 115 /.notdef put + dup 116 /.notdef put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [/N29/OVYQVF+CMMI6 1 TZG + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font YTQXDS+CMMI9 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMMI9) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /YTQXDS+CMMI9 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { -29 -205 1064 716 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3ECB48FA43E4 + 4BE895991CB9C373C80EADF956F3CFF9953ED829311EA5C29ADABDA9B531D51E + 0E505FCDAE7E6EE841FB8BA6ABD575F8F932F2DBA26DD9F78D8861CC40A4D539 + 7F76C11ECF3859C3C67E4E5D79B4906B3752C9691C4D80E80213673F95E2F722 + FC51692F2F1F81A1F6E1A1D617FCE9082D4E318B4DA60F15B2E1B8DD32E0F349 + 9CEA3AFBC4E8E2DF5511D7D4C13A35AF1EDD96094B9694AFB5047395ADF2253D + 833C97A7896132596F414C002888092AAF29840A5E1F054C6FD3C21F90E143BE + 79D62E7B05C65F4EF476AB021605985FA1D644566B143DBCA2A612AFC3F799A9 + DE85741A532D084B0A8A807B563E0384A12A0F36457F2EED6E9761B6AC04FEBF + CA210F6B02A2E9C98568C7F088ADA4B6AA03F12AC8F10ACD1A46C7813DE57407 + 6B5F122CEA06022826DE835C3EFF276B360C265EE57B04EF977C3049CBF2AE08 + 8867ED2DA0BBA41F2EC1ADBC8DE44A2D88762293A63D27DA131F8422613B788E + DD5BEB10DDDE5DD1FB42FF2BA727A001CB922C72658F295CFA008E40FA5BCECF + D75132331ECF940105F787B320C3ED941A8FA13D3F3AE6285B31A1C550C5A88D + 80A1FB28DE89F004EA1AEC7CAA98828A3B87A89B0317676E50AB54CAA3B44A0A + 49E821D773DA28A62B7D0E2DC3BCCCE1AC66229A82891D0B3120571EA7285B63 + FF3E9DAEC46075B1DE4FB7A779D439EE5E86BC581A8661E77E8E3C54F30903B3 + C1320B48F9729422433B74CB85DAD0EABEAAE5EFBB4C78A70BBD760DEC6A8FC0 + 87BEA0ABB026FEDD551EC6B2E757487EB1A29BFC24E334CAE83E504921DFE464 + 6CAD6F9CE00BAA635F1AF8C859DDF887ADF61FACE36DC6F574EC2DC4AFA3BCC3 + 06BB890018AB81220F19D8DB901B432BA8FAF8CA835E60BD9B0FB7AC20C22D96 + 09CC97826A9750FAD1DB2EE52FE7EA81A1A4258F98D20D79ACED3A874E032A46 + 78AFF01ED665C4918DBDB3A3E0188F52E931CB8639820E95BA64EE0F830BC7E0 + C8C8FD7A8E01316311E55E7CE7B49874E235417BE5CFEEDE5C4DFBF12932ABE9 + 74C41B761BC046651A36B55638C05E9EBC7F83AA8475885CAD22084CF6FEA64C + 6F8C4DA01917986EE028FBD9E46068D0D9B232FA1CE05D24A147A657EFA3FEB1 + 26888D04223E8894E43786A4CB4C9FA52454D66449DFB3A6A4F4640C9782291D + 174C421ECCFE3413E65CF2D44A98C9716255C981C242046F470BAC09248CC86D + 69E5D78626E66BC402A3A3F6836440D5F75359F342AE6A45C491EF73AC7FCAFB + 4A7D761BAB332F82239534FCE01B8198D7DFA15BFF5C45AD782FF96D6691EDAA + 49FA6F3F08D474A12058F635D40A7826FEED6108BFE7E6F40A64C793A4B2DFA8 + A040CD5DCD8D791056F4B598FF3B91D1B9CA6130EB20E216BFD6547F81548E6F + 7234A17E414B7E81F29D593A24C0162E8C779E128EF29491B6D0EEEA66E98A17 + F27DC4082852C9A56DF3C7376E76C239D9A59CC1B4A0A17526B8E1C400B9F840 + 50ADF9D03F3767E119D5FAAD0B3CCB6A138078B26F67BADAA988CE9EC1D42FA7 + 556BD9EC2CFBDBF70786A7319F9D069DA28300B997E89CD484A814E2F8A9F3A1 + FF1A0EFAD5AAD4EF2CB80B56D0B7A87B43AED69FC13E754C8DD5EC6CFA2D4FEE + 2308ABA88A037E57DD1CCCF2D81CD535A6053053973929251337FEE99EBCE452 + ABF37FF19A373270912740AD340B91826499BC5CB7A175EB236E8D36F55EFE83 + 4F9B9095B76356FD98450503F74186CB2F772F7B2B6F1262C9C7FB656328C80E + C9B49DC2607A598A1D33071557ACCDFDF6A5933AF1014FD7566A1BE964A3319B + AF2CEAD8CE075B7B8F7D657FDDCA29F9D3B8A415C8198D271125D0B7A49DDF66 + 603C34DC5F9B5FB65400B48BF1BE8A1557744031B82210C367DF5C236EB5E96E + 3BD7F5B32D1741FF2A47DED71B23E7EE9B1EFC0F434AA43256482E7B594170F9 + 95EB228A07E69F8E21E7A7E3C5599B62BFC9BBC8B8850A7A9B25033ACAA895E9 + 948B476FFA07A1E493F85317E694247C1E85FADF4262D5A5DA535EF3443BF637 + F01032D74772746D8F57D1DA5369C9EC628869A78720557FC6233BAB1B3D50BB + 304F41580AC0A7E9A17BB5070DDA021B98E7A16AC30FFA58F4CA01D6CD855B8E + 405E1B8FB4685C7F485396453318368D588711375AA8632A3FE04F294F693220 + D5A4916A6BC99B1949515CF923789BDFB6D409AE1096E3175DCE14F323A28CA2 + EC291A4F73E814A7F3DE6AE8FAB06D38933C64DB19B0933820C85757D46281AE + 1C7A6D4FDB776FDC0780F0782F3B56655BAD623E0F99FD0E46F9D23D5C2274B6 + 3C3C692770F1A6D09864F64DD56F7B80027E67FBA3FB6CD8DDBBDB888E3430AA + FD425F2A28B78E778DBBC68EDB372A251E7ABD8556C1755270B0DD835E950645 + 22ACE0208AC33E928BE1C419D5CF85EB53A300D1BA05CB4E0D1E7B2A8D953156 + 9996688EE00B3367CB9B000E6F9EC72B37DEB4F1A26A6D6D27B4C00181B85923 + 01559E462E35314C216807839F3B314C5F36CFCBDE61B8FCD2B42091CBB8357B + C997FDC4B7B1F91AD5AFBF6C56F6DE2CC24483CDD485B5ACD728BE6EEF4328E3 + 2FBB663A2B97271527F6C8F55B1A4CA846F0C4E2D90CAAB1F09937DE7DEFBA85 + 0B2AA6AC6778144173DCE28E9D865827ECE12FCAB028D9DB1A513F4F79EC0397 + A482263BD0A3DE99E924F6BF8257EDADDD0900BF73D154670CC62A97245291B9 + 5C084D4D35F893B5F6A3B7A698D6C9EFAF3EBE687DD81EBEA77CC0B5D72ED80B + E1A05BAD84BACE7F5092155431F00CA8926377A15B2E2F63614837DF5B73C471 + 7E188CCE2B1896794C1C150A9F9054D2463E4ED55EE4A69EC0C809F40FFEDC4D + B775C36C025E4017459FFB7FC1B5ABD9C0C4D5CEE4D061EEC3FE00F2AA6564DD + B9F6B13E35FC79DFA63EB344283B6D4B55F089714BC0C033DAC3A6201690D7D3 + DD558DAE1ADC20A6D2558C74D8A265DD04852E8257E8FDD76FDE6E2394B96C10 + 8A2150EAD28D041F56BA5A39B6C514E79489987E694CBA432047EAE9FD6509CD + 4D9DEE3A94796FE7BFB1CFB76B6E9BFE7F5547E70E4AEBBA5A7A8F08CF2B40A9 + 718DDD4BF6C19CFE8A1F6C59418E01AB22B97051DE0EDB267820326ACD765BC8 + 586E2816E648975E9093086198B7C63233858BF37F42135B1347B4F1D661E53F + E4B17BC91384BF2EC687EC7D2057A4B9C870BD50046E6F23A399E3AFB12A48FA + 64F585CA6384FE9F9630DAE629FB34D8BEFD4BA6F93F151C63B00C6EEE10A10A + 7A0FBDB297E8E9B8B18496EFA05B9FFF8D64A32DA47019EA2C56F0D3D3A97C09 + 74B0B73EF9E1F06DC5CF4282361F6AA81A1C2BA6AEA61E4288DC33821ADCB471 + 847B76CFD916382257B12982140F8C6320D8337D09451D1A40BFD49CF404A32A + 07F786249A9BF6255F808AAFAEDCED00BC15E80549F8BC21E7201DA7AB0F6B4C + 179EC46399352D1726952E6918D79DAFF11E4C520367A6724F594E55271C62C6 + 910D0C9BDD85E58C755F86003E94039607686C7BE03A3393674B114B8ECED284 + 64600F7BDE35A302CA5415C7AC18D6B5110969F01A61A4A15AACB7A938E185F7 + 4F0F0BA18B81C2924F133B72A26322319DA680397FC9FB29F8E3B18BA05D8226 + B56A5FF97B09C1AACC8456143C1F1245A93173236BEC4296FC6E4DB9A153810C + A702F04F1F855424AC3335FEA02C8758643EACE929F976ACBD3B3454032A8B2B + BF73AC29ABCBA62B5A0BD03710328377F27C85C2A2FF99823F74477505BBCD49 + A6A3BFF45007FE411BF4AE18F66847B653070EFD683417CB9D27A1EEA03B2834 + B1532EA7EF42E6439C69F651AF5520B707F495F30F860CC68B555885B7B92020 + B9D0BCDD4C83C6EE188F46214644C263E973DD8E4F44624EFEDE5F89462421F9 + 32568652698E5FC438121FA9A25A1E5C5A25A4E1B25B5FA034149670FBE01B8F + 4108B763C8998191240D930B2537E52ED694DA55414EC7B36E94E1F3B6173936 + 5B760061D470B77DAD41CC2A792826C012E303A1EAD0FD505C28D2468E3405F6 + E797E030A0CB3FFCD7691F7C148A7AB038CDA5707EAF9F0FC1E183EAE870C119 + 620723735BD99E41CD44CA8E295F1FD5F9D84D3CE84C5F4E33A475A261C82F99 + 2BC2C818AD0D901B8CC2DD7EA90D8C7D3DCC9B0EE7E4DD10E39F71268A291F3A + 6A9D9BCD83DB050118E3D45D67FC7662E0C9C24108CEAD03A9E7BF7821CE1226 + 76B092AB976A6D27794109BD66FBA03D4170041BD7E3C935ABFA3035C40C56CF + FB8FC2F03AA7CB2B0F8DA770379BD4C2262324F37E40B224585D87B651421335 + A1062F96F7684012355CD7189854C7B3F8AA21CEB9EF59FF0A1CACB6A9D1B962 + DC7E2D078E96719E601E0D5DA2C5A4C1AB55EC0328152B5504D01C42C3BA48FD + B09EA08565F7F39A9A7C3F14A74DF48C820909A0E4E94812155639383F68BAC6 + 1CFD7E154CD72716A979BF3AC048930945284EBCA8900F308FDB2F562E38FBD9 + B572F65FAFC03125A262A7EE0ED9214D99EFBAEBEBAD13E8F065123025869C96 + 02088B16280BA7A2D1B18878DD8C2BA3ABA72C9FDEB27D46072211C84D14419A + 82D5851A97D1AE3E20BBC2C09735FCE0397B0BF698DC008A7F782C50178A4348 + ADE52C1D6298F8641DCCB65E72061684EE3C456E6862406AB084E17E8F399207 + 4D523E9F9D3E13068BF6040A03BB1B26BD21192E39D5CC4C5FC12A0EBFF589CE + B8135246D621BCD6420680D07B67B3264B7B8E27D41E45AED58698E06777F220 + FA982D9D014EEF16B4A1B250C72BC7A786FFF98AE4AE7B50F1908A5DA32CEAA9 + C7F718CA9BABBACA2814453480EFE5CCE02170C04C89027DD37A7C1D545B9056 + 6080A9024DA8FF2C904863E37FAC0295F1D2D23853002655D0E33130817BBAE5 + D953033099BE61C2DDD6E7CC0D417AD7E83D364CEFB61FCE2646ADD155C7474D + 2D3A6B70D4F9A47CD8D4FA993EDF054D64851FFD9B53DE2DFF789316E181E60C + E9F3745FD46C31AE4485FF37D17831DAFD585D017FBAE1B549036702BBBC5D0E + 4A4FC730AAF96FA934D3136D189A1E0B0CDEB888D8D2F089ED7A1B5D5A17DD9A + E183895D4943BE978C0C057AA741F9900F7C0C8D381C80105A6EF78E67DFBEB1 + 9E694240D8957D3D78706158CCBBC7C68B1E0410666B3E387456B848A98C8E6C + 42906C79E48A3758E9AC8F6F04F7E610C82043CFAC658506DFE9DFC9A6AF71DA + 126156C066FD4EB89583F086275A9F99DC4D8A6D43E0B3E9F748A4D3A73E059D + FCF7FB1885989822E2796B3C5761AEE370ABC9A5CB149A5C50BB4889747E3EC7 + 24CF0AC35BEFD75A8308682CC303751F419CD7D315B0B7A2F8F59493358AB467 + F24BD5F4C0841A6D2171B9D4F7AAC1969F2E3BBF9D421CB73B8BBAF28A89E2B8 + 26AB69FCC652DED87C95795DA7CBA8EC486A87871A046BFF8F9FCE6EA710AE53 + 1690D72E9D1D59B12D598FC6009FF1E27DB2BBD25FC79B0CD485C5634243ADA8 + 02D9AD150F4BF0E44B192AA4DA69EFABBD95ED1968F134826145721399AD5C53 + F3130293594DE49C7CEE51C51D57F915A334384BD7BB0C60A85440B70FBDEF04 + 3244AF94B5281396FF6DFA051B219A413A8AFB0C7D99194B05D1B3791B029F3D + E1BBB29AE24CB496728A9373ED640769726D33E43C24BBFEAE68F13E1C8B99CC + 8876766BDDC4DDF2E8EC341AA9A8FB89B1A2375601DB8A1E13779D8E2BC73618 + 44E59A0B3CE8A99D9C6EA090FF5D08FBB8809375BAAA9BF15D66713796D8F2FF + 1F7DF9C8D4DD6C619727D7EEF3FDD8D646F8B5CBDADD62D56BD25C1EE36DB3FC + F73F8797B1DF711D66E976E84397DD0F1ED91C4C07F7CC44795DC77239624BEE + 1DCA14137B72309CC13499B8AC86A4AD5A58CD1ED9C0E90576704CA11BF413D8 + 43B5312FFC54B056B99464FF51815438351A253FE7983A19952B0EF825514A43 + FE6965A5E6CD6536AD027E16806201C5BDBBC2E9AC68619A8A0C25EA30356A30 + 9C24C22E10DC7B8F834A06030645E770C27A471A64B24B899CC426637413CAE2 + B7B456F3C9B3A0970729110A8C97B5F22161A5A69A2692A3250A1B9F39C44F3C + 0552C8CD9CC247F4DC7B4E88147D808E3882E2CE8377C5489DAAB85E781F9A79 + 1517721441167AC0ABA19340BB5965A09C3795FB2938E96C60B5D4151704EB71 + C80F41A531D09F911B0773587671A128715D08CEF31143D9244FA1B193856FAC + 30E9D53735680B2DA496681AEFC150C2041ECC713A956D6C3210CFE54490840B + 16D712C6FAF47A4A4CF93D0C3F170F55EBC1CC0B41DFDEEB2072FCB7182DEA22 + E956E13E890EC3E543F5B8EA27DE5FA738F08532F39CE34E73A657811649EBFC + 73082010411C9D67A57B23487E70F69E417CDE0B13CB6B5030CA981DD4416AA9 + FA47F72CE09E20FFC9AEF816E4784D729F5077B8B5BC985B9E8D470655D69928 + 830860D7E56BCDB520F5CC1707ADE6120B583BA7C5A6454DA5C503FCB6268938 + 2CF4B4EF0C0ABE99CA51E00F6154524AA23775D3AFB40324131E599ED957F5C7 + A21034890F1036DBC03808B78D519FEFA0C9A4EB66A7536A36A567DE55194BAA + 480CAF508A157E643C7A70191CFACB9082E22DBD16E4BFE5C7AF34400919987A + 024DD100765686AC8F00173B97619CD7672809EDDBE91F0D542E44769A082729 + 451EF7CB1720220D725543A4281F4208A2EB6DD02D86D27750792A5266A430F8 + 3A9C259869662E36A09CF4E168CC3BDCE99D4C95D9F934D9ADC96E3A012E7A84 + C5ED09220124A6CD91E7416B127B2EC29FF8B9AC9004609E49F390968B9281B3 + 5E46B007A88F8026196C5156C4AB6C7B54A9C5DC08564C00A79703CF219F7120 + 045FF050596E4FE3218AD679B5A0806BEBC66F1FD1613BE475AEFA138122D86A + 5D6857BD61F60E1A139C4608A742C072F5C86301136C35FB524843AB4CB01B11 + 9F0D23648B9DF267A4A0077AB83666766C014FB0A7E71DA524541D57C8B73CD9 + E7C2BFF15E590CDE9AFD3CFEBB09FE390355C5657014685F43E8625071DD98E7 + DDFD3066F674F48F7784C49C5D2E12942A2112B78E232DDD27884CF41AEBC542 + 86D6DDE7FD88CC5D36B21B66753BE1A719A1A02141612517577DF35B3383CC0E + 6F980D8D1BFB256FAF9B19838345C1BC3BA4540409F42A6B281B901E9B3F643F + 628BBEB17922E5E087CCB76F05C3972278AA3CDB87B9E3DC048655D0AB3F5C79 + 8D65C68BC8AC449ED57402B627A16E6365ADA6569D1A998E2F4C8D60EEBE21DB + EF47773905F7831D1F613C3F40E942176BFE14CC4D2B28DB04F961FDB6D04228 + 5CF2387CC3AA7DB4E01716D28AC3591B9010EF29073E495C1332344AA5AC1304 + DD7253A9D788811B23082AE01D628C7B1E4E84C36E8B36009FD041E49F7DCE48 + 1166E278CB403443A14DAAAB6A997E9DB53CC41A179BF7B854FC17DFEEBEBBE3 + 69E39F8D5B1AD4B3196327D6DEA6350573C9F5EDB0F75BD158B7D5E5A57AF4E9 + 5F511D366F362828F8CD6A5DAE2DCFC28609013860B8A2B27B9BE6D39EAE28E5 + 31C81F0594F066E7F43FAF46C95765D83366E8E57FBCADA44F895A07EA946E74 + 8C203256A28774C03751E0919C4CF8673246FB139944EF491251D6D4B5DBDF81 + 22266C0F9DBB2AE7083904FA7886D04C247C47D0A3E215FEF3C74156A21A5C1A + 37694293FCA0138F034AA2960C1EB9BD8FADE3DACAC5A851EF2FD713429F7D4E + AAE8FD44AAD7969C6F7B8C80D13266702873D381F7CBF72F65ADC2CE5506A5D1 + 0A0F2A63D61D8267B98C72DB4602F3B75AE7A8E5F59E054A302E2D6FE23A0127 + DF10366B5CEAEF0A88ED43B3E920FB562DA8D3344A645BA5303D8DAA24D8EE20 + 2F26EE12C21370D333C56B5F70E7F6D5AEF5B4F5584413D44DA85EC03CEC1444 + C0C0A12F7AE80D2F0FD30D562CD08A6EF9E3B7118B5D94D8C4BEE78733CA671D + 0C5B29B0FA17524E4057EF6D9F56EB71CD9B17FA5F1AABB6844837BB275667A4 + 1F536DB19F3D41DDB759DA5333EEFE6328995B25CFC7D48949AB3431D3C17A12 + 0F07388DCA492EFC217FFEF3137E08E11341B5BDDF39CAF55D1FB9BFA9B423BB + 621561E6D0A8D003544EBAC51F4E44768C3CCE92D8FBFAB4E58CA6259BF03056 + F956D1AE13FA6EA0317553C97EBB88EE88C14EB28848607C9BB4C143592D099B + 7FCF3912D6971433B8A370B410623B64EF9395B30E912B606E887C5E2A4B47F2 + D1DF619F40D66D6B050F2D8C77C87285E1D125346CD15466957B887A922C53B9 + 1FF5A5365CC12E0CA1BB03D58EC3B6CCFC43CB01D8F6B75E6B9DD65C69F91981 + D0E92C2FBDF112D66905AEE7DCE74E94F314571950479B314EAC8AE33FCE4FD4 + 8771E39BBEE2FFDFB035514F03C2D3D84675CD7D1B4E215153DA4D18F6FC883F + F5D8E56E55CDF0E8B6EE402B61EA273F00D9DC7AE8C41D5217E8B459DD33C130 + 45828A7080A5B5B45A4D80D9C36B0A5AB766F7B228F1D85C1F03509D23B0BA5B + 82A2506D252878B7E1D5C361E8BED064CE7E453DE00B6F33EE6952CBA1748832 + AD2526D18D62746D02317FD80073C086DF1310E9C5EA2D24BB70E4E3C9A4B814 + C1A101C3685F91FE9AE8E05AD4E65ED2ED13031D8C1306B75CAC1954194B83EB + 9BBF1ADFE7BEC5B6BBB133CFAF4AE593C4029A1FB8D39F6C81F5B106AB5C6FB4 + 7B32714AFA59C00090A96F38672C5A6D0AFF428408194DD07096A337989D9E07 + F135712A990FD992038F6406C7515AE0FD67507EBEC1E138C797D563848D95C5 + A909C2DACB2A021FF97554716952FC62CC0F0EAD5FD765CFBBE18656759C867B + 6A08004F10DD96449DBBC0A4C837071823BC909668FD4438092B5FEF4A0E4CCE + 297492DC4943401F4F5A8294CC6C5B16E8E1D558E5EDDF90A81013042AF55A49 + 085BC7719527D69FE228D54134E460AD57A4DBC91B8C17C039383BEDF27EAFB3 + B2E03623E3FC409DD1A72CE617C945342D800FB76E0D4FB5B8A1EF1A89561499 + 7A64218A945B17996891FCAF70605261CD09C37044DF5CCE871179EF6ADA20EB + C17BB8BCE47200F7656A2F6502A981FAADD40FEC60EFA1169F211B7BA9A813B8 + 0643BBFB892405020FAA18538BFD8740D1270F8F652A1D48A3635736C4E42EF3 + A75B04C8E2816148D894961956D3429CFD635C4FE5DF41778751FED340B177D7 + 539127E4DD9F29590012307492DC7CC6874B6AFAF6DA13CE4150665CE06C1ECB + 1716D262CFA2A96123F5C50CA6066BFD220AD524542292570B3C67556B754E63 + E97EBECCEE299DC5990A0F2792BB6B61C94A321BF3178368F6E5B733555DA511 + 9C1484775EEEC90378FA58EC54B46ACD09CB0041265C80DE92BC1BED51308DA4 + 7A82D25490340CD2E08355AC7F97810B5D9A1D90FDBE45A39E9AC2AA7F88AADE + 813E978EF333DB97AED9D7EB91F1BB4F8EFBC8914B06BD77F5636BE150944D3C + E74824EC6D049990484859371687AE063B69D409B53F99784F67C61D1E44185A + 796C4018BD6D30A393BBA5ED31D8F42D9822574A292995BDA72853DAD7F248D5 + EEA1EB32CF41DCA466749BFC2239FD95ADF07A128C3D7B8065571A9AA79A197A + 170C644BA4A1D1420E68D2719AEF00FA9897089B25FD17852A8BB436CA945A93 + 1D67B67E91858EF439A06C888801C78680F3C634AEF1A9F5F1212EC7A3E14EC2 + 36593C8808B9047C5D97CBEF96CD3E96AAEEAF829C8A4ED48D9D0754CDF2E910 + DC64F5BC96BAF44F746E0609785F4DC207EA99B0B4E297518EE016BB007EAB92 + 75BFFD2E23CA4ECEAB277848EF41EF67C0021A880D5F2B15066F7F342E00DE09 + 0D88E1D4FDDC380A2D916C7ECC2DAA59BADB77455D2E1FA6C444DB9820E637F4 + 3FBCEAD7D06C40B5E7F68CEC75355CA704E03079F14698890D060B5924BC14B8 + 5E39FFF47B6E7E91595040EBA5F962ADA985834CE15956F2761ACFF563653A1E + 5A85F517A6F8211AE76DCA5E3A26B7F9C825A6A784C1CDAB5AD956E7C482D246 + 2C65EDA607D7346BEE5F7E2617B731AC65F513F15A307DB624938E1E033CE561 + 5659838DA2939B0BAEF6F0EBE9BAB152068C032D3CDF861808627DDC164D837B + 35752E3E6D49CA5F9B9B7AB3EF46A80B63D7B56ED8A9FE75F99BAB69EC918F8A + B6E3317A4F3ED6E0CA503C3119DA68BC9B3074BCEF84A78F164143C2FC9FE397 + 203581F03C4753C23C10FA52FF29B823D83B5029E75856F418C567D60B2AA746 + F4F5F35BDBD2925832B83D9487B3663C4AF940A7FC45503212651F05EE2F4C29 + 6017D114A2AF7CE7B96832132B67E8C362DCB2C9A47521AAE602278125B6488F + 1A469653B73EBE31AA8BB9B61FDC37C4F2E72AA02AD3C1A0A88E19BA9908FFBB + 3D192CDAF3B0480E76F24C2E0AB256FF7300696D6E76809501327FDC753642E5 + AF7A5407AFC7D2B352463ED2AC055DB1F984278FAF4488BC188DB2D35B3BFCAA + 89FA489A4EA4BF35CA202B956EE37AE6F60D987FBE25B3F8167B97A47497A058 + B0760A78D59817CDDCC1575F72932C897CC0A12D479F9591E20F052EA7EC1043 + A2FF5878EA9F818283F9582432B4B385FAC22D4C5F8E64743CD61CA198D33558 + EEE70335A4493A027A4060FC7B124A2AAC450463C2F020125E20C9184BB28A19 + 6FED98E7A1EFA974DEB57957AEB13056272350A9B001E8C2C0A30FAA899C793B + B7349CF5E0B353959EC06D36FDA262CF568422096409 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /YTQXDS+CMMI9 findfont /Encoding get + dup 0 /.notdef put + pop + end + /YTQXDS+CMMI9 findfont /Encoding get + dup 0 /.notdef put + dup 28 /tau put + dup 58 /period put + dup 59 /comma put + dup 60 /.notdef put + dup 65 /.notdef put + dup 66 /.notdef put + dup 67 /.notdef put + dup 68 /.notdef put + dup 73 /.notdef put + dup 77 /.notdef put + dup 78 /.notdef put + dup 80 /.notdef put + dup 84 /.notdef put + dup 86 /.notdef put + dup 89 /.notdef put + dup 100 /.notdef put + dup 101 /.notdef put + dup 102 /.notdef put + dup 104 /.notdef put + dup 105 /.notdef put + dup 107 /.notdef put + dup 108 /.notdef put + dup 109 /.notdef put + dup 110 /.notdef put + dup 111 /.notdef put + dup 112 /.notdef put + dup 114 /.notdef put + dup 115 /.notdef put + dup 116 /.notdef put + dup 117 /.notdef put + dup 120 /.notdef put + dup 121 /.notdef put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [ 1 /dotlessi/caron 28 /tau 32 /space/exclam/quotedbl + /numbersign/dollar/percent/ampersand/quotesingle/parenleft + /parenright/asterisk/plus/comma/hyphen/period + /slash/zero/one/two/three/four + /five/six/seven/eight/nine/period + /comma/less/equal/greater/question/at + /A/B/C/D/E/F + /G/H/I/J/K/L + /M/N/O/P/Q/R + /S/T/U/V/W/X + /Y/Z/bracketleft/backslash/bracketright/asciicircum + /underscore/grave/a/b/c/d + /e/f/g/h/i/j + /k/l/m/n/o/p + /q/r/s/t/u/v + /w/x/y/z/braceleft/bar + /braceright/asciitilde/bullet/Euro/bullet/quotesinglbase + /florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex + /perthousand/Scaron/guilsinglleft/OE/bullet/Zcaron + /bullet/bullet/quoteleft/quoteright/quotedblleft/quotedblright + /bullet/endash/emdash/tilde/trademark/scaron + /guilsinglright/oe/bullet/zcaron/Ydieresis/space + /exclamdown/cent/sterling/currency/yen/brokenbar + /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot + /hyphen/registered/macron/degree/plusminus/twosuperior + /threesuperior/acute/mu/paragraph/periodcentered/cedilla + /onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters + /questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis + /Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex + /Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth + /Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis + /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis + /Yacute/Thorn/germandbls/agrave/aacute/acircumflex + /atilde/adieresis/aring/ae/ccedilla/egrave + /eacute/ecircumflex/edieresis/igrave/iacute/icircumflex + /idieresis/eth/ntilde/ograve/oacute/ocircumflex + /otilde/odieresis/divide/oslash/ugrave/uacute + /ucircumflex/udieresis/yacute/thorn/ydieresis + /N31/YTQXDS+CMMI9 -1 TZG + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font IEQYEI+CMR7 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMR7) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /IEQYEI+CMR7 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { -27 -250 1121 750 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3EC8DC423323 + 00A152553EC9C9C51591C81BB5A2F58753878D92B1C73E948BB360F467A7D593 + 2446E52E22935D5D0316634839C917AE2BE363D6AE3760363F748EAAEAD9AB74 + D863835F45718D23FB3980D0C645610BF765847F4BC5CB03391BDC9D40A6A460 + ABF0D95BB6A176DB5088A1068A0DFDC266C25ADCBEF3E5472E03E0D29BC6801F + A2AEAD77E33C825D7C5348B33774BCD33DAB263F91D4086EEBCE8EA621C9967F + F7BBC17B721D65CF0A69450AF67BE46CE07470F3A4F1E70CFB4C4A6165B5ED38 + 9EE54CF62C6A33969E1D74AEB5327E6A3DF12B68464F6D792BCDB41413E32E3A + 65403944BC164BC96F444630E4F94911A4D416D011AB0D98D63CBADB019B1C7F + 694DBBF1863BD69FA2A48C576D6152F06B07D782F1FAB0A9BC2E000640C90918 + B26609186112092166557F0932EB1E99BC071D171AE65139E189B688319F4591 + 7FE221ABD99CD82BE1E8C1BA2A60C6258F0D99DCD772CC5600E4473D2DD38E5B + 9C5BBC7AD79E168A3CF8B608DB97E2673100382C48EC18872F2455CC674F00D8 + CAA42A8B05513D4A7E35F6820D556BDF8C7DA44461780EF7B6BE5AA285660702 + 26CD07202EF8430292A170A15C415E250FD0994D80766C95F8B4A3A6DCC8ADE2 + FE636E2AA0714A2767E53D6FBBA88B2F5193907250EAAC566D8F940842362446 + 2A1050582B7C4436349541349B497B1848D43C9F7D0D976526DE3F8AD18DF926 + EAC5AADC0E7DF2ADB59235562A2A4C4ACC57E58C2A7512D587398098C72C3941 + 13CD79387138F8407B2A609322A9830570048C510F8C530089B630F73B2199CA + 418AB4A7F553187BA844930D8392F4579B023EC59629AB98E4091E9FFC8D2DC6 + 8D529F952522262B0B50CC6CDEF80AD513D8EA72799C8451E97D3831D3C8D661 + CB406E1BACC98F7EC5851D4254BA3FEA02940E381C19677665746D8AD3A267A0 + 9CC0B2A4C7CE35797BC72AC51725148E08AB3C1288D05A36B6A8B5C0372D1153 + A56A88E7FE4877D0FBE5C20E089A6C6C0A52723FB37EF14B13DE7BE9F3836635 + CB5C2B6776EEA7FCFC00DE4C31F6DE473CDC89A9E79FED35B812869959723647 + DF12686ECE6A65ADD032485BB3777B08DFFF898EB454BB3B8AB300B644BEF46A + A5DB095C29D2F16B92E35D33E0B74606872938EEDCB2E83F037F8800B4F93E62 + E57A541982ADF4CBA9FF8CCB917993E356DDD6B35E2E7E54C63C3EEF0D04B25B + 4B7DABE09888F7E840DD53DD21E5EFACFBAEB5BD6796666A1C8EA440CD67157B + AEE12E34E41BF7356FD2EA4F85E2379CEA7F4B26A81454568D1F7EF4345E8E22 + EDFFF4155B4623AE92EC910FD4F7A29CE65D2686A1310D8ACDA720617EFE8A23 + A802C0DE9AD218C0E1855E57125649730C6D95D9196D37D1C76EDE3D06AD7879 + 3A2DEFC654648D50A97E58D47C032614E678EB4EE12473EDC3C717171AF34D5D + 8B445FFDE0B278F9C91EC1052099757C06245321226476CE9E150FC80812B6B2 + BB8C5C9C365A84CD2F5E744C1DB74226C55BE0BF391BEEAD877750D14B9EA693 + B505FD77FA93A736A75D8E9E3795752CD99A870F4738B24F8600ADD9D900A74C + CD847E6F99478C532751DAEFCF165D4C46BC581FE506CE89B8C566D4484C8A59 + 8291E17CC230C99887C4393E4E36E0E960437F7F0B4917F6624C5995053FEEE5 + 8CB4FBC448F262E3899863F6D339DB5FAD2CBD8116203783FA3EB52485BAAAFE + 03387815DFBCE671F0BB8DE8B1B260DC4027291901D1505AAB6701FFFA77130B + 362DE8641D1E9148A4D10F1DFA222BAA23ABFDEA247ADB46916D7BC20216B1C9 + E748CCC38A2919953C25E14F5986E19DBF32BAD9F1EA8641F9FEE49100D2DF33 + B05692AE65BD3DE6F24EE67B83A9CE0BC50CDA7549DC20C2C8C23C72CA095EC0 + 279352A9169346E2BE3E6A4E10FA72DFEB7665AD7223662CA7DD2B29F69B18BA + 27B6D3BBA5343E923F87E44C682EAFAC0893B8EFB651FB1813F8F3F5B119CE20 + D8155F29A8F622670F40A47A3207CFA452CC366C4E917D7D1390D4AF402966CF + 160D45ABD25E2BAD4AF8AD33CED6BDA13654AC3434FFEBFEDBCE70A13F1498B5 + BCDA36B0CEDB319D797CC89738D9FECCC014D78DAA762111B43FAD6AACEA87AF + AF34891130EE805C01F120C32040FA4BEF4BBF21D639CAD11681FAF9C8B6F8D8 + 23355ECE0F6C3E0D15EDB5AC7B779FB08914616679B178CED9A7E02436276D71 + 03F8FDF500E6725C80BD30DB5C52F4D97CBD94D76DFA7B87B895D14BC2598865 + 65CEA19E0E0BD848F631E2C3FF16BAB45AC43CE25D0A0306563B5A9D5F695D8B + D71A201EC39750F916A991A6F0D810E3DA29B07CC9C35FE83E968BA0DB628521 + 59F0BA7BCA277D221185AAEBD48C0E688DA5951DEF110D40020DB5F23DBE32FB + 84F7C071456F415CCC7DAE1BEC3B7396D24AEFC97F990CB4758F897DD9C6865B + FE1165D71A65CDC92E9DF20385A16E6FC97BCD4CC148DB79895E85B297EE5DDF + 6113965E1C1C81012AC44DC0C3807744D053729C1E51266B29D7A88D893EAEC4 + 2EB33553204B3314A181DD71073A8EB2B9146C093AF5DB1EDE064A79D89F7141 + 106CD3318578B6EB421B5E2A847671B1F92995BFB5F455B96F9C7474DE94D349 + 59B704B1431655C6D2ABEF889304E8A4F20FFD0302CA893072D17E84FE0CA348 + FF2B30BA78D9256161B22EF363414E8ACB1E741429677A5CA3C8F9353BD922D8 + 3EA8B1C3C30FE6F4952814734C066F4FF5E9B8DCE9449F9E2EA668026D18AC2F + 0BD1736A6529E894C5D7B53BF2221983E22B2893C7F10F70DA1BB5CD1CD5E12D + 2FA1708F4FF1AF404EB7010615AFDB1317471937E99E631CBDE296901D8418A5 + 1B21282EBB83C94C685620DF3008850F7534114D288A427F4CC4CEA9CACE2BDA + 291DAEB32A670F3FDB06983189BA29F8DF8F4310CA8BAC42BE720145E9054D69 + A51411E01BC11427D3C00DC4B1C1F15E5788314FAEE5EF76DF1721D3E5BB3C57 + BD83F259171D6541E4FD1966ABCAB39E37C10E3B02218CB6FCB58FEAA60D6D83 + 425596FA937816D77AACA0951EB77209BBD830829CEA7AD76069E80F8A4F5CE7 + E966B97E61D2371699B33C6FFCF22E35F153A872E2852A047D19F462AA06FDF9 + 7F2F15AC22D6737BA4C50C0D303AA73FF76BFD896BC1D897A5EDB1B498944423 + A46683B2A9E20C3BC5480C414F81FAA0BDE823F22E040F699A551D18885C3520 + C66A1C8C39BA8D7C64C11B4A3AEB638500F50DB0F2C30F9DA46D572F8B8F3D89 + 8B0A9178A01FFC7136F2E145FA5FA9827318DD7F8CD6A0273FC2346AFDC94E96 + 401BA3DEA2848270ED5D9E00F788AC2847B38C4965F8D17FE1A358DF31ED1992 + A7427832DCF74C80228AD7C9DC87A251CB787A21A70C25A95DEF8ADEDD5FA5C4 + 0467ACD84FDD5413E7882AED0DBCB079D4D8085477B05315CE6F03C4E8BC1078 + 34F91225BA9D461C3420F01ADBB4E63C3A217DF634456F6A4535065ACF998889 + 9FAE54027F50F8687740F7C9DDCA16A9A74A2ED76F3A6372DED1E9A2B645AB78 + B8306B465466C1D99E63EE0AC13A4F559BEDE89D5C3FF34C52CD7135E30C397A + 8510C0B568FD8181426CCDE9BCCCF1785B2B285C172626D7A3C8E2B157173492 + 8D9E46FD2E9E9D0F5279C9C9300221905B97FF121BC097125A5A9E08F8AD2B25 + EEA62D0056BEB156077055D5F3DB3A3D8970AA2E35A5192B5302E723C4D60037 + 0B498F7A7E37CAB981B43C24D430DD2D5C64D3C9B7DD7FD03937729F3B822BA4 + 768C648EBB02893C86938403D824D61C7193370CD808786B97B3694D49990202 + 882FA1B990B2C4B8B5C3FDA2C50819DC959B91811ED06EF9F18781CBCE2CEA1A + 35210E41D6235EC92197CC5757D07F96F72C9B804592F595D17F36964B46A845 + CC2E0EF5943F1F64FB6E256AD7868685315F33EAEC25B6596E7FA1DEE9B84560 + 23B7AC5526D8CB167E69BE8CD746DE19919560C3124DD5DC99B6B58E3254FC1C + 3548AC5D92DDE253EAC07A7E557FC26E13CBF55BA7551086FEBDEA4E2263A7E6 + 8262635BC556B24CCFA21AD0BBC75870ED8C1BD58141706F37668C77389FCD38 + 67DC82887FD1237203931B602B6438108878D1146EC62F07D27B84642412A925 + 68E9F4C31D808D690DD5BB864C9046C1DBB3618452E7D6606FF6A6AD61D29E36 + 7217C9D0F36BD83DD1AECC49F8C5D20D403CDFE891B8F2F8085BE0690EEE0FED + 3A24389738257535819DF5DEC0B0F2C727BFA2D1953604F761BBD937902C4473 + 1607C045BB9F67ED46FE9719BA6C636A1BD9B5F8A3D7293F839567B2F3870B85 + 7BDF322B08653CA58D27B409D5A30EDB1BFE67075AC80A4256B0D5AF3A37EF3A + BE76AC49D0A097CE49948AF5862BA67180C99844C4237A612A89EBCDF09CD5BD + BE27C31608CF23DC1E48417D94B73733F5AAC803AD076ADADE6B386BA2FAB17D + 992B7AD5CEB48A47E4474F17AA80451A08770FC9DB2E68CA04E88F148FC68923 + EFCFD642DDCE350D3BEA54A21831805556E8E975EFE073198BA65DF53ED4AFA2 + E9FFB80D925663FFCEEF41561051B63B29828B3FD2D021AF3D39F26F28A71B29 + 7A92006175B82E2E2A76F41C75F4A3D191F0FF186B7D72B8A732BA6B855B53A4 + 36797E9B3ABAC0B59A512EE49A244325F1D9F24F20C2DA4A77CF361F49BA64F4 + 10DB00C92546D7A160F26EBCF8067DEFCD72DC9DC0D8E2C4FF8F7192A5BEE82E + 6F14DF27FCF29F968D5864B736F6BB2C1DAC8255C58DE12482F36E3DAB9084F2 + F885D5D5D5E7AFC7483B92E2E0D489825730C664399635FD99915E5174B7FD79 + 4F8C684DD568F421F896D63809816ED64B0808007C7951A233F315F10C13512D + BDF6E999488CA39262A6E9DF9A509C71CC6C16B5DCAE217F8EB03AD1D1C435B8 + 3E3A3BE460D01933180C1CAE31C615EEF67DC9BEB141105EA3992C65E4D8907E + A170D8136214F6D3D15B681B9E443A52B25F1C9236F245835BE83BAD23AEEEFF + 2C294E1B8BC4221637DE33CA801835FAA20F34BCA4538B30E38131AC4E71F631 + 852FE711249B583F1D0D42069A1AB4F93B3ADF8816A2943F4718FDA53A3F5FDF + D9FC607A071E2654F7343B84F5EB820555004C0BD1E8182C705036DA5222CFAA + 9DF00C4680343376827C6A19E6CAA41F57E1CDAE185F2EEC474BF54D67EC5E5C + 202D0DDBF72C5B6E7E3C03C15E2B2A0955662B4D81A65426E3B032631B1F75C8 + 6DAFF0314E57654700C4A3EFB4A52D2FDBB3B8A98CE40EC4892CABA583EE8AE6 + A219138B9032B4E128F3186224A3BB048B7EB35D63C6382ADCD54EB40EFFA988 + A719F3963A62A785CBCD2AAD8DEAE9499FC152BEAB5F39CA221AA52C9F74729A + D47FAF6E405AEEE0AB67DF3D35AAB5A321F3B0D8C4733F7A7A8405A6AAAAF2CC + D574C2A508269C6EC4A337AE63C6966CB99647C6610E729B373B156138540837 + A224BE45DDFAC238058CAF9056054B93613F5D4BE2FCE2AAD67F4675D6DC8282 + 28C74C6CCD45A5E344F7A9F70C7D3EE7D9C0B679231EF43368D9068E2053EBF2 + 32E0FFF26DD5C7B3EBD90D33E1E43D024E58471A8A36602B9059C1F5FA58127D + ED7B0EC08C8DDB8AD1D3CC14E82D753FDF62876343CFB5D8E3B6263B2C82513D + 2C889E9B2BFCC99E40FBA4CD75B1AD0C0B0057C4EB77148E4D453630F2B66B6C + C8B6BB62B72F81BED70D623FAB490A501195C59364B3B0FB0C83E2088D87DF00 + DF3D291FE019CBCAA568377678CED3857C10EA6E078AE6B4258030259523113B + 20233E48B3946A03A44246A66FC7BA0A0D52BED16126C446CE2D000BD28DF472 + 130A587D1FFA227A950135CE08E1305FBBE6B8989D11BAD617162B5062F2AAC6 + FA17EBFC9DF7B131850BF77DAAF04AE8B6EE81D16E5F99364393A362F62E439A + C5AB731FB7BD1486271C51B985B11CDCC2AE92A52ED1B7DB7ECF9190A2BAA7D5 + B84DFEB46E70CD69EFD76C4DF41E0C520860FA178B40CCE422C3106B57957C8A + 2C9FB6A73CD1D3C020B6B2C72BA69BB64939192F81068CEE4591D30087E2B697 + 8FF801F49B9CBCDBA2BAD0C5DFE9A48B197B613C4334B7FC319D937612EF3A04 + 9F21633E60C93445BAA3617DC92F0B2E4B822A2A55407450319E05A6A10EAF93 + CD0B3907D175A813B01B59E616EDE0517A58692BFC5AD1E23B5DE7CE5ECD72B8 + 2EDF07B45C899CFF6F03E146679B6A821460BBCA32FDA7B5028C569980383F6B + C29C87EC141CE99D05E2E2DBA90C30672696BCC240F3A41269D306849DCEB914 + 90EF1084982FA44825B72C13076A9F648A1C18D913C4C4F8369CED588F24260A + 755FF06551902D74B5A4AA186DC47A370D25670EDB50BC57A326B6F375A0C5E2 + 6D26664A592CE632A2AF3703B028218BA0BD0F30B45A6B8D5DC8C13F25AF8884 + 1B8C5FA9789F0D4144751525A4DC4005182C36E225E8F63660A6148FD7B936EF + 5E8D64A31E52E37AEC57461075CA67B72FB0AEE67B86E507E52A15EFD622F7A4 + F55B3EE975014D924AA763B744C0155484887B440330BF58A7C9EE325262653F + 0A7EA98283E99907873B1B09D66BDD21CF95D73FD6F4C6B6618F730882ED373F + 22EDAF9B8EE0A89026F71C2D02B27DFFDF0E2FAA64C047769350C750280837E3 + 553510D1E786581D8714E4237B436D9F8BA9B3EED30D5F825A9A69F6D5F2B9BA + D0B59482F8145406478043838CDD157CABA978CD88A8BB708628781FA1A4EB18 + CA6E3BD258F025B2D2C5D1167E5E5C8536627BF334CA8627688481B798070137 + 223B67AD499FE9A56F1AFE32D747E34A5DE2B649F15C1C8D3F34329699242665 + 15C8F2B55FCBDC3B216DED6244B2E7AA77279DE30D9FCF174C890F7E1017CBCE + 04061A0B7F5ED5D258B04A7348DCAF9D43144C7A07ACA7017A7B2FA688677D87 + A8136F5DD0745DDF87E908AEEED72E3E7FE88A1B7100987F1AF117FF568C092F + FD6459DBF177E66F65A589DC50719FF877F4771275BE399537CF2969DF4CAFDC + B437E89BB67719E0D70218D4EC44591E6AE28F36159A5AA6BF2BAE961947ABCA + ECD837816D1BC1BB17A4BD8ABBB35F422B910AA08FF2B000DE0AE06E8A7AAEDD + AA4C554D6716528FACAB570BCDC39C620571A15437BDFE47B716918777D6C99E + 28FEB31B8B1AD10C8C5FCD92EB1A7F66A5680EB74410585108450DF058C7D9BD + 700B8A4134973CC309008C40BBFAF1C2E07E964EEA601E8CBBD12CC0FDAF229E + 5334106C60F04D9E3C433BBB1FCF547756232E0560A0FD6057B42356E6A5AC12 + F23923F9317B4F32DF560D017821A25EDFFF3AB3E8B6E236C346E3CA195B7743 + 9C0DECF8D59B07BE163F1008889301FA5EF42F22100858D82CD966D7B19E05DF + 50EE5D8F42A9AEC84F07F42DB5BD8E15F9D5378BAB0CE770EE5AC58D6BFD97E4 + E58A10EF8B0F9B1C13E7630120CB79F19B525BCF4709021B2004667EB58114ED + 9FD4F73410F631D6847E86C0D08317666435479BD1269287AEB75B26640C0CEE + 0D257834572731381BE239AAD629E330E9F8C6A763909C6221E70A6B95931AC6 + 21BE013B81E00D6DFF62AC640ACF43EF1E3C8A7A3E4E62A7BA6E8A9E21F4E557 + 4948D819096EBC3F9D768119D143CA915E8CCAB16538160702510D75501F8DFD + 4B99C43A1DE63DA80DB8C358368D643385A13AA46000A0173D7C8F50D02CB000 + D1B8D32357FC48E564048C426FBC43D72B870075B9F221D210EC02BDB7777335 + 001B863BBB1C85DE73CCCFE1D33E176A0F78FCDDD3ACDB1CCC6F98D30291C463 + 2690B3AF64FF221B650728DEA60AF476DB119F26FE38EBDC0A06FE018702ACAA + 03869168A30F648EDB89ADB9B243C352B8A98C26CB0483DC209880B38B59B821 + EE39C935E6D5EE1EC78E5D5EEE71A4CD624E6B6157AF6EC018D9888E7553932A + A402FB4432829A29DA0BA84E94607FD77A55847D216A7E1255E1FFCD0BFF1625 + E5DFE230F14231D222805024CFFC72700669C6043D59E49728D125EFCAE0B4DE + 8572BAA6A02F44437B15A474806B04FCE66FA12481EC036D1472216D192C2A9A + 562402FBB4CEE881AF049C3AB670E65D44C88962E99200BEE0B56B743658F46A + 8239AC41617E92AA8D33E2EC46A7915D3F6F86D1A893592FF87FA245D18C86D7 + 91466D3EF9E724664FECCDF9F778269C23BC0B7A5AE0AC49B3DBA0CAF96FCB26 + 1E3B683BCE161FB53D6AB9C14AE381DEBA2BF5121D079897AF1960A19A766CE3 + A566904B45697E52E49917CB10560DD03FE3F035E6A6C0F5CCE898BF0AAECF5A + ABF5E4436D46378F3132E82000D889B00DA56D0660F9F446AC92A0986EDEFD0E + 678C88266A5B301E2CF6612C94C171F0966469E5690A826AB7BA6D8E2229D5FC + 11FA053E8CD778D719C0D9140C5DDFBBF10895260D95F5A4BB8BE1E8D0FCBA84 + 6E0E85D4EF8E1C640F00ED43E60539C77C0B5DFDE5C757D33BA3B82929E2BC48 + 6B34D51F517B1877441BB3A1980D5CCD6917ECE7257E965BCE85484C8EA2DA6C + 7808EC53D2F627A900F44A79F33D9F688DB79D45D41C04E6C4909F5E06FC757C + B53CEBFF83C6DC630E9E65845F14D3C80031BF76CFBF7BF675BCFB215C0F2755 + 22A24EFB291049DC7E236B530F7CE3C7D255B725F577DA92B838AB5A15613AE0 + 41C9834BDF114FE3BF2BA447B51594078D99D5D9C24318769147DEF5A584A2E6 + B05355C9D580A20650417C205086E6716CFB6DDC4E5C49C9DFC7C78D9ADE5E82 + F52C72BADE96AEA2D203FFC78AD50573A378AF3CD21AA245084C9E70673D80FD + 32EE99D459D88E55B890DEBE47D748CBC38D1F3B2D6C467537D12F072F0A778F + 1286B2EBC57ADB76604A297C4E3929ABF37E4E7920EE0E6EAD4045E4D30AB115 + 4612B37CCF8E43945030984E8A45D823CABD5DDF60DBAD61C0D372EF8006F6B6 + 55712DC7470AF3D284FEB721DD57121E3F649307E162CA50F5491BFA21E60172 + 7647B7EEF2DA73386A589F85EBEEE5F94E3CBEA95C1F3C439CF015ADCA162A70 + 746924001FB5C73C76330F16A2B3A3181EBF8A848B8F13755FBCA6F3DF4FF336 + FB8C7C0FB7FE1B7B3FBEC79E4FFCBC17FE08A12CB07A7D9E39AB7E7D6C506B31 + D97CE25FAFE98FA0C3ADC9B90CA329F60119C0DD29B8699A71FCB86E15E6E059 + B53746FDB7CCFDDC38D033B64568FDAC6BA2243749499833DF517F02EC4C3DEC + E728D0F6451CEAF6A56EBA7522A8EE5BF94FE94A4AA087A7835E34CD784617ED + 9013689313B1D15C1F4E0BF340FC1BFC1E482819D52534E59856F83A734F79F4 + 2DB9699749AEE2D671A4F098B95A1658BC03ADD5C5F2095F3039D4A2F491F071 + 14D992EB9D6567CE1B5F971D51AC0689A350AEC2F44EF52B5174BA8D07C14D66 + 886225DC94C79B2A8CEA99DB342FC6D23067F763587147F6481E3BD40B800CAF + 02FCAE602A0235E05C545C693EF1A65FB155289EDBB506952E8C45BBEA8FE799 + 4E38A26946D8706EFEA638CB76970A5FD8A52F7C38A6FE3B1D9299ED00F209D1 + CDC21D69D63F85B11E824031DCC76372790FA783F86F6F23130BD442065A1A52 + 2C11C650A45A1BE55FA5F998B8A0BBC4F5048290475552CE991A09E877F3C5F8 + 911C466A0338751E50D0107348FCE356C887FC4918426FD81DC86A1EB6CB4386 + B87050E8D0BFA4934BECEE630D50CB2A9CC642BC5D842E7931348AD40BCE803E + 5F44B4E3848A2B8D1EC4E30A15E1D17E848FDE1AEF8F96AD3D578D2CE2989A2B + 8299874C15FDAD028AC67E72F03314ED0B20C6E9E9D72B3114238A438262D9D8 + A9C75395DB8A0FFB8860A12AA452DB84888AFEC6F1C08AA02164EAF0B44528E2 + F22A8138AB3985F4D4B0202A431F2EF72604182874F49FFF90B2A0C6DF11CCD6 + 75105DF842FE69EA859322C28439383A8966260CC3E869B2F2411AFBD5DAA0CA + EB83BCE7B4A3FC95BDC49489255EEFB12DA3C534CC2A1E7EA7AE41053270A332 + B02BFA5FAB4CE8731746EDAD74EA83E3F4964FBDCA3A2D118EFB1D9D1CF6896D + CF2964FA2A1A7252D4B8BBA094A19860FD3A5E41E69D87A55C0ADB30538CD136 + E62FF54F198D2F4A02216014E6666097012AD9A89F1D598367A1989B3BE786C2 + 51F630B8C89D92C547C8E429064C49EC3DCD11BA32CDFDC7F354E742B9BCB276 + B09EB39F0635ADBDAA05E7B0E0A01EA7740CA9C729A7366227EC62E646380E94 + AAA349FADA352791783C0E1C05DA048362C8D9BE8325E03A71DC84DDE18B9027 + 882C68CAE895FC9985B00A539E207B6B0A912D2ADD894D447F499322FF0B4079 + CA737F9C040BF664F6FD9DA808EE56CEE01A2605209C2B4BACADC4A2C29FE2D9 + 16757D7726F86FEA7465809238660F5CBB664DE32930A8DA95415AAA44D12663 + DB936CD2DBB18C9B420F98DB9EC08A217720808DCD558D98D05281FDE309F6B9 + DFBF664DD11C894A1FEC69557E027609001CF45998262ACA9114F035A2891B45 + 99F69619FF79B5D60F302BD9E917B6166DC5F70A4CA49709065E3CF20AC86BD2 + 030F7129588F3C9AEFBF788EF0583D52AA9868AC613A6E23A23505492D483E9F + 2E9B8653171D25842A7BD0824AE2CFFA208E854298798E974E9E8191E3281D9B + 5482CED3B8E7069F799508AA260F558A2E20A8185C4C5C82C0B4653120C25FC4 + 9FAD1C0ED61F160ED4EF379A4A6269E1C6F2937BBA9840F8140DCAFDBD227578 + 650C66FD6CE8F1646F659F071A5C6D4017B72816962737C91E7D4174381F3BF7 + C1E0F74918E4CEC0BFDC8D22F3367249E22EB280B91DC791DB12C307DA46BA4C + 5873C6721E6920F08E01346871A1446B7741A3D29EE8F102AEBE62E28BD30BC1 + 41A046099F231CF22011A2BB2E19BC30C0CED6935B574B6AC7EDA94548E3AC00 + 403CF4685E33E4055FF39FEB9E12DC23A039FDEBE91E1112E7A9563EBB94501C + F2F6895F434D095122197DC14E78BD9E701561D3FEE01F2F26451A83AA7587E9 + 40B4A674671D6A00B24E258C457FF8145EF4847717113244BDA014926C7DFD8E + 561C5E01636D944F851864B8FF5375B5333912669D409660FF49D55A06F84261 + F5016D393A80ECEB46702F0C28AF627F93685844A0682384CC55EB199540D6A7 + 5ACA467DDC6DC555ED6F965358719E3E25D59818A0188506D17045E85C05FED0 + 9718AFE41280C626EB41B237235F3F9E5CD008714386C87A5B6F736AC36C4C30 + C2B23294DD84F4AD49EF499E34ACC24052FFD72648C0ABE925A4447B5478A970 + 6E52BA9D5BCD1A6DECE10118C5B85615D9CF9FE567BCC74A9FB4702B667CC7A8 + ABC4CA2CECBDF177BF28144310B7AA27A9085A9D8EF1CF39B786D356219BDF3D + 6B640A5F908E824F340DDB4DC295C369FA64CB459686F14EE361AF4311061A4D + 237568DC1467862AEBCB921DFF8BB86D8ED8DAF0E1EDCAF82E2A3D1383118710 + C97A040EA8C97C45F86E60CA35F20812E4AA44BD2BDA3165F0E643A35DA29064 + AA25830B908643D62E77EDB2626472F10351791655C08CC9C31E9B89B3505F04 + DF59DA2FC0965A419B937F88E0FDFB1C6B494AFBC3543C209E52F8555591BEA9 + BEEC731EAC9EA5D01C955CA64F9DE031E659198B22148BE6FC76E9E6B3634F54 + B889654DDCC307C90FD65BBC697EDC118ACB38FC74C22650F116D940CE1EE312 + 374738EEE0D7DE0B60AA67F0DC590E34E1426A0C7DBD038A006B081732D2A10F + 3130F4A9A44B18FBB594C046AFBF78C0D7FF8C7411A4C6546ACAE550606F680D + 04A7A0E3D337AC1092E0E9C1BE00B5E41925B1E00D9057E510D89F4A733CE921 + A39E5E4908AB74E27B3AD12157E480E707033AF2C8C2A3F32909B77B43920E87 + 44F442B5800873CC47EEC9C8BEDCA074B0C926515875962B81C5B9E775AF5D97 + F7CC8947663084C70A17F517A4396ABCCBEA1E357FA600EF8D18DC37851F9CCF + 27EEB5752958E94F97DAFC9AB7EBFF314CB24BDD68ACE4AB6BA8EE68785731C4 + F2AF8FF18C13FF24E4F06E1E9A2DC99A6D4F905EDF44939F70FA7527F9215485 + DCFFF458D0DB4C9407845BBBBE1C4CBA30A78ADAA06321D0D87D8F7D19DEA669 + 486C2D37C1A00FEE774A195FFAC57B22E3E8BFFC65E93902EB30D783CAA070C8 + 2752353FF0CCFE120CCAF7B19E2B5AC997AE14BC3576437635C3A01AD1392CCC + 7C9F8C9CC67FAE942990AF134C3373C3BCFAD98BF7AA2D1231C81726FC61B573 + A101B08EFE2C163E31577C3B131B7629B7F790636E6D168CB37082FED3484042 + 735279D60E950B2E00320CB66472F492EAD0615B75D54C909CD5824F213F571A + 320F858BA8E943AA9C1F99C835078E17C27CD46485ECCB99B0D26E9DAD65EC8F + F9EF2C3B3483C12A0F90CC79EBB290DB1A54F5FEADC509C2B39684AC38BCA37A + 7C0E75E33D2888EBD94F3BCF2B301BBD15E6DDA0B2D9F8FC70D51EE6082D4504 + D9B3C8BEB2D485C9ADBF5F43D101476400F6E4F765D1E124EB48FC8CD3342983 + 7BC714F571A9CA4BCE3C24C8622E7A77C90D3C63AAF7844E2FBB435359BCD32D + AF90ED014C4119EC6B11F7613C9F9703298F7CC97164923DE57AB2BB543758BC + 2B98763A8389C648E034D141A0E542BDF6BDC5B455027757CAA6DD54FF846852 + E4457A1FC0BCD96ABE032BEF08BC6333F885B28F89FADD70C7537B6C815C96AD + 8B7C133232AE1FEE276BF2C7C897CD74A4FF48C7A0C3B94F8B49865D149D3B16 + 7FC15353D5C2978A2F6B56C819527435E0EB85C6F84461EC50E4C4F7C72AB84C + 9BE04560EC572BD922F98D549FD1B3B59F67A1A12A67AB8EEAAB4D22C518070F + A267B4EBD40772F25C45BEB7307461865BD400500070CAF1794FDF85B88B3339 + DA2A880A2F356378E4DDDD02966AC9B090C3879D03525287639C4862C9FCF3D4 + E1E71B52E1CC60886B3B101124F9F96421CC31A7E10EA0CC3F50FFC9855F2FC9 + BBB3241937F0B9F508302D21B088488FAF2F1FFAB5E4DE08B1B237E24C3F7421 + D5E5B398B0BE30597468BF030C51F53C38D10C450708E73239E6D8373C2B29D9 + C5931B366D051BAB45E588733B957F429F7FFE471E5F2A08013D196FC4354F3A + 87AA3EB65FDA0747CFB590A054A4C642E2F4989238139BBCAA313677EA084D76 + 64DCEAA68747DC8DF99486F544CECB065FC5E92D2F52BBF04342A4AEA7A3A68B + 804B2E0CE4A6940F30DCA922F1C69AEA6A50812A911DFB08C42FBD525D2AB133 + 0C2A56AC233864753EADB95D18745C521C9BD4855212FCEC3AB62AE93499E024 + 7E496101D31196FB61EB221DD8DE39DE904DD0398DC60E6FFB1C2120567D84CD + 9DF7CAECDE16F7213AF3ABDE815E8813AEE6A82CD2C0A0F010C21FB3462D8C80 + 0AF34A2C11259D096CDE47DFDD3E2EF0EA99D54978C2D4C3F9C0100CB675F093 + 9FEFEE581FA9A68F7A3E43A189C3B71DD92DD51C44C0218764ED0490C14E1A3C + AE1270E7054B550284E8DA2686C5DAC36849DD23E22B2E2FB40181AF450F7565 + 72C6F2B9ACF5651BEC1C94AD4DEBD53835EF1184C9F3CBC7FFB1E5E29F4EB2E7 + 8A231C8BBA8140892433E1B75D3D42CED6B91119C10F17A699C294CF406D50D7 + CDEF24D591E52A71A9A4B08C819591A0CFE0A460998A15FDC5FD27F62B35EF19 + C9459D60B2AE9E1D3B4C7C3259E13F0A8AE95A35527D7F01C522F02C5977A564 + D7888ACAFE5A1748B3748B76BE4D4558ABCDD7EF84CEDBDF4648C0FBBA0BEE5B + 030B6C04DD7626E991A77064830A34B2C6000D5A979EBB26E23FBE173F200FB5 + 7FF84099C4E3392CE8ED8430E977322819349184966D46DB0470A361F6DEF420 + EEB94C64BBDC3E64BFA067F8D2BB0EF2B85C0B1115F8F0928FF806BA0208D692 + 31CC3A246006CD7236F6676771637F821745214D82EB4D11D67EA9FB1F25E696 + 70F0A0D92BDE33EAC4516A698D5C13EDA47CAC5E89337E23CDC62902DA0AD8C6 + E01A71788B68B710F365AD8DC47D6B8CD694F96186DAAEAA33EFB3F0CD573B95 + 14A6DE83665762F041F50A2B6F5E8BD5E888011F195EC5718162E15D482F2B1D + BCF09363312AD79F40005A2B1367657A0F7E106865366ECE0574DF66DC387D09 + 477B53E369453C1EBFB7095031CC9642EB0656A9F8ABF94D15F1A98C876D16DA + E4A35422A6545EE28D991D2EDBDE37C3892E0C41E2E30ADA5C71F833237E3207 + 412871347C7C3125EDFA4EA5036EDABAA61B7B913702B53BE1335D4E159D3ED7 + E686F197E8F3E21C6AD676AF65D8028F656B3B3B19517D4D985C37011E968D54 + E291092A261EFD28952470D8485B762386479AEA9D2DB572EA277092CF1CA425 + 9132BF5BF99F871D5B8B886D7A1654A4B8E1F26955E8A49C0B849208AC2B5231 + 77FD587C4B9F6612A4DB0E21E70BC4178282FC14223BD17D52E830B4BD4E0DA5 + D26774661C5BCEDB99D30CEF511EBE9BA59DBC196C6DFED887A1E527AF40440C + 4B8211B30805264684AFEBB227EED15CE4532F93A59E13E2D265F17E148FA57E + 1D4192BC6E20288F86175D28A975E5B91ED6B55466C4B0C7BAED20C3A9BAAD56 + 8D7297770BE24C405F3425AEA571ED3D9EDE556D5B75883A1D04606D642FF5AC + A0769F23BBB4A625D78627AE70B0BCD0CA525CB33C3468B5BD52E56F230D3FB7 + 405657CEA986B5F51B63C42BD8B04CC1CAA80F04888B4653FFAEF4DA7E8EB512 + 18CEF8CFCCFE49B4B645B3C7951E466D605538025B3C1DB1357A41EF91B673CE + C7D1A3A2755BC2C97570C21E8E86C10AA72256892041D0B2E66DB4E4BB230F85 + EB927CA0B7CEBE79F8A63D048B8BF4E039522FC205AD3DA7F36059917E2BE2ED + 48FD7DCE967AA25ADA93E8C82490086AFE707637038993F394EA11093B8BB6AF + C377BFCF8D1FD11B482D2B92463F24387072389608B3404E510C3D46F1DFEE5C + 12E7E72109AD748981E82568768EDE45D07627D549925B50775D07A0773A427B + E9BD92A93C3C4EF7FCBC29EA124700096023F68AF0258A11BA4E316E47227BB5 + E3AF0C88E417E2CD7A7F4E83A18CD411F590754001A468FF945C59BCD3693F2A + C7A475928E298FF4732DF5192D7352CE4C3F31102869B087AE9AF95E946D3249 + E51B4BA3E6A750096856D08C0D494A3AB39E5DBF2F389E7A3E76C403E322EDEF + 9D4CA778A132C0AA98576EDF92CF8E10E82B6F71D61A6C0BCF5F142235A6A383 + EBB0C5022CD61376DC003E2C65C98A0769657D7DF1723A4F8E359B49FECE5DA1 + 508EE7F30A231A3CAEBDB80F94655B79B1EA10B138B29F934CFC1C2828F674EE + 21F0BA743C161108B1D3045B33FDA64006EEBF8D37707F7565E297F7840A454C + EEA9618E68C89F22501F5648D83A74AB5F07A929B01186223327FF57B9A85F9D + 80C545218BC753E5A238F3373E4DE6861B57B00FE0B02319A6A54AD09235E811 + 5688F299249CB7903708F56904DA92D097CDA69CC290DE2095C4FCA7A405980B + 89CF5C4D3F5EADFB1AC9203FDD10662D5E2EEFB596D433E45EB63EC9D4BDE0D5 + D3343D0CC86A56C917712330893CB5C8F50F2CE78ABBD1E37C093D1D6471323B + 65394847E56AD73BD125D311828AECED7E9671916959FD754ECD5E61FB8AE741 + E0BAF1677239295300048345500E26C9AA6E1CEB06B151BB8DC8924E61B47063 + 0BF049ECC35521323B36C0CD1B43103989639C7BDF1D91A7DB8D897810BB4DBD + 20680FDC3C7932BBBEDA2A0565A0B656420B9031E33844E191D288594F6A20B4 + 5241CDE23A43918D2C7B15B81B9DE0346686F596A27BFA5CADDA379F7FB6E66A + 38EEE1CF665F4CA404ECA64DD37FB9AC342FA478729979E81FD8D4EA58E44DDF + 551DE4D3F41CBCA3176B6AB6D90D613A53D937891B26662D5AECDDC99A9985E7 + FD6250E67A892E1226688F28A546FD9E6836F80F6B6E26D464A348FF044D715E + 1B66E703143AB5E32669593C7783DDBCE0867881025D1BECC68179E67FDCA948 + 824FF5F8F4B961A264B9966EAB7D2F5F69A0708A70957564184BAC9FF9F53E35 + 990FFD72D2113C1D18A507FDBD80E41A89040DA5653158FB57492D7E04DCCCFC + 2CA8AECBFCE6B1B9905A8FA124D3503458B592A42CB7EFCD429249868C203F9D + 6FB51F5AF35E9687F196827D4B72093F8D00CB924226BA59561763B0BA3F0C27 + EEF58361EC966D52FED9691A47D872AE51008AD328292F3486A47C7ECD3D9360 + 5411CD7C0BB511D6848399D15067EB1C0FD0DC3E172C8948095846E10AA15D7C + F91DB2F35EA055CDD7711E8063869A5B3AE8ED2713D0EDBCCD6EB5A3B9001896 + DF98E686FA79F32FD48EB365FAC79285140F61381D1B9E0D4C454985C63192EA + 74D9BBD644F9EFC05D1996B3A8606CD664418FA186D373851EE1C24336A853FA + CFCD43ECBEBF755C87CE5149C5BBB4721D454957AAF7C8166CB052990BFEDAA8 + 29E683B6660F160C859FB09019916497AF8E52ED89BBE27DB3C1F72C5E2262C8 + 03DB844A26DC4FE071675B158B802DCC0520CCC28FD7FC35CFC96D4D949EF736 + C00F613FCEDF68335981EDBD8911A0E634D994D04D1B0DB9CD3D319F62E7E682 + E1BB9DD10B7264D87A8D7C51E50C125628D2F75FDD4EA29ECD460AA19557D3D5 + 8ACC310EFFF199FE96C690076A9883B468CDEF1A0FC162B4929C92A89394CE2C + DEE81F6F8D2998B24DDE8F8E12CD1F99753C4D87833E4A1B39A7FEFAE5A909FD + E0AB228E247FF04943137A23C4D7B75030960DC56C4E404E2E80795C6DF7A9A3 + F3E7E013951A028E7B48E8C1FF6D0F36C92842397BBE42245BDFD02CDFC003B8 + 9C45284E32A1B4639BDAA92624ED97ECDB90A0C39AA2FE8E7253D071BB2927A6 + B0A4B51C6AD5AEF6B49725FAF227ACDF7557F9CB1132C7F8EC232996E1E9DFAC + F0923BE43B475641A79E6C92AA53F5345A52B5D19858403385DF4B09234D3D0E + C545EBDC37E4BEB95F0D1741CE637D2D905AED581E22F493FA751AB0E2FB97B8 + E600772EBA88AD10BC4D930F6CB8EC07061D00539314609E8E58DEB904FBC703 + F541CAA6EDFF17711D494DA6E54803B1269B22CF9FD8E9C7DA896EFD5CE9AC39 + B6474E421A2B0344CDDFF03A9AD9ED710F6BFB54677F9677FF35548B1090A0DF + 254712DD1D2ABA1A2F1793D696588EF7C3ABB00B9F43B32DE0EFCAE04421FF4F + 1A21D101225C757C35457A0693D04AFA7D0A2AB4EAB2881AACBDA649252E2602 + E21455CFEBA49F985F5A676085EC10627E39789909981522844B0EDD249ECCA3 + 9F278E9240FD96090DB1C2FE11EB12CB45A920C6082E48F75C059930C39548F3 + 091A4060FB07142BE2BB568274E2F4B6F0A2E26B6775BCCD53F02FFCB9F3DE4E + 8CB4DFFF421B3AC576593460D830024A0E5142351A9731C685413212083B15D5 + 7B93442CD5EA572218AD881DC2CFDEFA95682B919927C883B22A2F807484691D + 4809ABB8474833B7EFBF6A31F0DB983DCD0134804749967649110B46824DA25F + 5FDCD458580EF4560D05BF4DE18278CD70A87A3525F08B93B1839BDF9BA5885F + 0EBFA5EE638B3A55718F6948AEA12DBFAE660137ECFC776B016BA6D4 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /IEQYEI+CMR7 findfont /Encoding get + dup 0 /.notdef put + pop + end + /IEQYEI+CMR7 findfont /Encoding get + dup 0 /.notdef put + dup 11 /ff put + dup 12 /fi put + dup 34 /quotedblright put + dup 38 /.notdef put + dup 40 /.notdef put + dup 41 /.notdef put + dup 42 /.notdef put + dup 43 /.notdef put + dup 44 /.notdef put + dup 45 /.notdef put + dup 46 /.notdef put + dup 47 /.notdef put + dup 48 /.notdef put + dup 49 /.notdef put + dup 50 /.notdef put + dup 51 /.notdef put + dup 52 /.notdef put + dup 53 /.notdef put + dup 54 /.notdef put + dup 55 /.notdef put + dup 56 /.notdef put + dup 57 /.notdef put + dup 58 /.notdef put + dup 61 /.notdef put + dup 63 /.notdef put + dup 65 /.notdef put + dup 66 /.notdef put + dup 67 /.notdef put + dup 68 /.notdef put + dup 70 /.notdef put + dup 71 /.notdef put + dup 73 /.notdef put + dup 75 /.notdef put + dup 76 /.notdef put + dup 77 /.notdef put + dup 78 /.notdef put + dup 79 /.notdef put + dup 80 /.notdef put + dup 83 /.notdef put + dup 84 /.notdef put + dup 85 /.notdef put + dup 86 /.notdef put + dup 87 /.notdef put + dup 91 /.notdef put + dup 92 /quotedblleft put + dup 93 /.notdef put + dup 97 /.notdef put + dup 98 /.notdef put + dup 99 /.notdef put + dup 100 /.notdef put + dup 101 /.notdef put + dup 102 /.notdef put + dup 103 /.notdef put + dup 104 /.notdef put + dup 105 /.notdef put + dup 106 /.notdef put + dup 107 /.notdef put + dup 108 /.notdef put + dup 109 /.notdef put + dup 110 /.notdef put + dup 111 /.notdef put + dup 112 /.notdef put + dup 113 /.notdef put + dup 114 /.notdef put + dup 115 /.notdef put + dup 116 /.notdef put + dup 117 /.notdef put + dup 118 /.notdef put + dup 119 /.notdef put + dup 120 /.notdef put + dup 121 /.notdef put + dup 122 /.notdef put + dup 147 /quotedblleft put + dup 148 /quotedblright put + dup 173 /hyphen put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [ 1 /dotlessi/caron 11 /ff/fi 32 /space/exclam + /quotedblright/numbersign/dollar/percent/ampersand/quotesingle + /parenleft/parenright/asterisk/plus/comma/hyphen + /period/slash/zero/one/two/three + /four/five/six/seven/eight/nine + /colon/semicolon/less/equal/greater/question + /at/A/B/C/D/E + /F/G/H/I/J/K + /L/M/N/O/P/Q + /R/S/T/U/V/W + /X/Y/Z/bracketleft/quotedblleft/bracketright + /asciicircum/underscore/grave/a/b/c + /d/e/f/g/h/i + /j/k/l/m/n/o + /p/q/r/s/t/u + /v/w/x/y/z/braceleft + /bar/braceright/asciitilde/bullet/Euro/bullet + /quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl + /circumflex/perthousand/Scaron/guilsinglleft/OE/bullet + /Zcaron/bullet/bullet/quoteleft/quoteright/quotedblleft + /quotedblright/bullet/endash/emdash/tilde/trademark + /scaron/guilsinglright/oe/bullet/zcaron/Ydieresis + /space/exclamdown/cent/sterling/currency/yen + /brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft + /logicalnot/hyphen/registered/macron/degree/plusminus + /twosuperior/threesuperior/acute/mu/paragraph/periodcentered + /cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf + /threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde + /Adieresis/Aring/AE/Ccedilla/Egrave/Eacute + /Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis + /Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde + /Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex + /Udieresis/Yacute/Thorn/germandbls/agrave/aacute + /acircumflex/atilde/adieresis/aring/ae/ccedilla + /egrave/eacute/ecircumflex/edieresis/igrave/iacute + /icircumflex/idieresis/eth/ntilde/ograve/oacute + /ocircumflex/otilde/odieresis/divide/oslash/ugrave + /uacute/ucircumflex/udieresis/yacute/thorn/ydieresis + /N33/IEQYEI+CMR7 -1 TZG + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font HZRQXK+CMTI9 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMTI9) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /HZRQXK+CMTI9 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { -35 -205 1018 716 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3ECB48FA43E4 + 4BE895991CB9C373C80EADF956F3CFF9953ED829311EA5C29ADABDA9B531D51E + 0E505FCDAE7E6EE841FB8BA6ABD575F8F932F2DBA26DD9F78D8861CC40A4D539 + 7F76C11ECF3859C3C67E4E5D79B4906B3752C9691C4D80E80213673F95E2F722 + FC51692F2F1F81A1F6E1A1D617FCE9082D4E318B4DA60F15B2E1B8DD32E0F349 + 9CEA3AFBC4E8E2DF5511D7D4C13A35AF1EDD96094B9694AFB5047135365D5544 + 1578A31E3A0AA0501EB15709A8A9D50A46E1EA598ED0A27FB51369051BF5ACDB + B60E7200D61EC9EA2AD6486EE34571C10A7E1AB95879E53A74051333210CC2F6 + F6EC7B5BAAC115727B0DF1CA54C401E85C0DECBE4902AD50428353638E99A83D + B2BA4CEA4A8A342DD3BB7D851C4E38C2E33BD2182C78C522111336A2B6A76203 + 8126A9434BCB1E3BEE86C8B8ED7AC4AD9D4E537A97A0FABABBCC1856D3761B84 + 51B0924D68E78A5C2530742A5CC521EC4E4E31507A9D0DD03628D3FAD78EA4A9 + 046AC0E1CDFD81146AD63CED49DF0726DE02D93D07D5D16CD76DF02677963619 + BEDB41A9C7206B1F157E396CF776B807F66ED728470552E3147C3DDA379433E8 + 19593A85F24E4FEDEDDABE55980D55CD041D0DD321F6F924286FEF4CD1887370 + A9DA456D9BADF1DB1DBE7D4B59A1FBB91FF1092AF014F9DBF829B083201AC8D4 + E2454739DBD8C930BB199FC143592D4965698D1E197BA2E82919C7B24A6AF0BD + 066065A96AC3A0BD7295F40E818DA4C2B3A791D2D956B630434B3C1271A8F9EF + 56B1F9439479EFFCEAED3952AA76E69E5AEF37396BBE59A78DD836FED79C569E + FAC80375639F4A0212114FDE8A2B7166C982FC92C1A3E2DF5C89211FC4AF570F + 2410E12D2440B6277D9FDE42222E7B6C09C27F86F8C3411EF519E972B9479F24 + 8D6E6F0901F05FA894C3FCDEF52CA86E6D505EA25530D7C993601FE0B4ADBDEC + E2224345E9DAA9F1A3AD17B2BAD675EA32706A4578C280D4944D10DF76F6AF16 + 190CFB940E9E823EF22EC9CABAE61C626A2E27F5F1CD4E420181FE2382144D8E + 9564A2D0592396E62FEA55084C7CD023DE78C9BE0DC0EDE7CC6A10DE95D3A7BB + 1E974E0F025266753FE9D240C0D7B63F190F57797E83DBA211AB82F6A88D0690 + 43F4BD5461526E44BB51191F633FCF850022BB1B3D0BBDAAE3FEABF344063211 + 37E4CF2F1512C752D425BA8E3E8776392D1908EB58FB5F036379C8EE71B629D4 + 6494A56D28FA524B11173BEFC6D94694305F98F7161A371926AB6A1C786E5500 + EAA59CEA6BA6ED896C7B106D4ADBCA5FC6704CEBA138BC175BE00B95E6E72943 + 58A4D1F2F69C44E6D8814971C0300C9F20F21362FD6A534545B0C6BF050892A7 + 1C4CBCD6C2812112CD6022CA3D7780D32632C164345157AFE48883A924C021BB + C444D65925D9B2919E2A0A2A4BC8E089883729A87DC6819B1B411E52968EB9F5 + 468F562DCAF3F3983C5DF7AB01BF31BF8560D0EA1B9E7BF053C9C1A26D38389A + 2340C46977BCB19DD309BD88C66D2019F2EEC6F7E0BE8AA9C12CF07A162859CC + DBF3A00E64DB7035EF93841CBA9FC866DBDCD8145C9028241C71F92960EA37C2 + 1AB56755D3DE41E21960632394608092F8B5931C04336706659349905A6DA394 + 974F12C9197291B9B785E8DEA532C7139FE99BB7531B16D309770F87B9C7E615 + D8646383F3E099A4F8E9ED4ACC10CACC8418F45D42FCDB1EB1C481383534D0CF + 35B95DCB3CA4C2AECFFD477A08D03327CCAE790488E767C7446B9244CF2E4EDE + 6676EB914343F2F26654CF4D7B0B93145E055854F0551DF435717D1ED6DB8BA3 + 1EEDDE66C9E4981294694E4EC701077C4D81B977A1AF25B67F7AAF745AF7D979 + B67A6BF0FC54014821F87964B7060FB1A9D6641F4168F72B766383400A7BBC18 + 88828193C3DA3815FF539C366ED2A6907E85DFE9A6EB7B448143C915B90E9FDE + F6462422368910F92CC95855F77A0627DFDFCE764BCFCF5CA7251B85D95AA48F + B51312CED69046842C5AA463B268D63022CD7B7174E68E94FFB78E00A29C7364 + 1C245C452B10CE9916273246AD8A0AB71186257FA7BD2E872F556CB7F2A5C872 + ABFAD1C1E0CC460FDC4FA3D4194E895C1BCBE804C1C550190FC78AB3BFBBBCAD + 6CA75AFC8874EF8781BCEBA831915B8AE3BDDF4116597EB21F38FBFA8DB4DA04 + 65E13765A10B358BA2425364EAA65AD0FE3783C6E9389E39ACBD3562EEAC9BBD + 10413E7A04B45F354EFF2B5648356E6C3CE188D43EA10CC1B3D33A8EF32F1916 + B2077A522F526A23AEF8063952D459B37DB086AD377836737ABAF9F0B868572D + 3F23F092274EFD0A6E403A18E22D0A6CD82CA4E5B26C77C112B56BDA58976A06 + 2862E0E4EAEB8859F4083DE0601B56C68D67FC662A8291DB3BD912022D11DE95 + 885AB29F1DD7C3004ADC7D3AA4969CB712C1C28CA2E8E3C22856FDBDE1C87108 + 6AC0C303FEEE72EC35E675BB5E4B480C93B2EE779E3E6F44073BD38C3800A6B2 + 11D01A0490D1A801A9902AE4C19539CD8F12E39BA42E9F3B8A199729A921C5F0 + C66DCBF6BC655BEC1BE56400621FABD2B3C55F774BAE6EC99C7DFEBDA7D1834D + 9260C1A18F40FD0D7E6971B789707A97823BAD670A9089EE69D4BFE392C2BFF3 + FC52C7BCF63816E95AD4ADA343BB3C5C0863544C276897029FB7F9CC9935559E + 0A62B7E898B1B5382A818D08673EB3E3434477523B3DC4666D29C5AE07AF1337 + F1E4B17D06B7EA531CA38F68AB683CD32E0649058E85B37FC22CA83F5E17A5AD + 8DFD06945369CF4C123634BC47938330148C36E13B783E99C989A80CF7FD2631 + 495D1E7D72DF661F0AAD6186A22D804429B9ECAFBAAE867AE6129029BF626E75 + 8676D020457E2071C8B064EA1FAC491D944B505AA8B3E998474137C32E3C548E + 2022A0553F36C1CED2AD73AF568177BE70BE99EFD59FB7B3AF93E646B1191F10 + 475F16EF6B98DF07C6D741CEE84AB87CD6CDFD81979C09218E3C45CD588F385C + 4CFA34D8F1017BF9095B8117B1E3E6AB04D2DEFF9391F5A55DD4F49030B6B049 + 1673E63A25E586D221D1CFAD29336A9F4551C8BDDC4F2F8107BA7D04D6906989 + 4B75CE017F75581D42F6E14A9092BB465A25D3B7FA9111631FBFFFBC41B81F31 + 31EDF9CC669C1FB399DD08E939521192C3FEF19FF58CDF4D874D22A2FAB032DC + F97D43807EB0741A1A86FCA15FD09A5F56F9EE1E5C03DFD4203F982561C8274C + CA92A8F25E90221DF9B0C51D0E8047BE72702958AC489835EE18321D603DD279 + ACD3F597762412BECE80C54E3876CDF6E90536590B62C1379685A0F9EAED1277 + 9A1AF93729DA60BB7717455C67D4CC3BA73C4EA7F2896F9802EAE6721FBDD512 + 95890AEEF802A2F3F03B03EA0BD968C2D3463D7BA20F3D9A90BBD1C7837D19D2 + AABC6C6E57BCDACF433EDDBF39AC46E30DB449861F6977B6D643D6609CF286AF + 64A51844A75C269CC98DFC4C1CE62114C92D3A306FA61CAB4CD7EF0E2AB3E18E + FD6CC0E4EE618710C04860C73D6F79BADE6B3E2C0724039409F8AE833DABA528 + 9A8B042B4FAF0A2E048524871305130DA119CD55567A156A3F9BE1E2C5539668 + 257F0FB09B74E51DBC74CE3BD8B46AB19ABC2B52506891602E109C54651CDD1F + 5E170302F338F413BA85BBA25702C419B15816B75823FB718DC9CBEC1E8C567E + D7489E904AAE92E5BE0BFA1929261070D6176A5F63A3C682CBD225D69BA47519 + 2556634D1669063EBA8DA4403DFEE16C749C3711B45AA9FB8B0C1CEA8CAAB894 + 9DFDA2CA3FA767C793F16909EAC333CFE2EBA14804FD0A72D7F969DD85AAA2ED + 6CE87AB7818010CD1B17ECA9D2708C30801D25BD240C21DE85CE39617B24C969 + 549ED1CBC33846169BC106A9C9CF38A66FBB316AB71013D77906883EF3265709 + 086D448078A956910ADB6D57B92758FF57A97E58D47C032614E678EB4EE54382 + E44725F66CF98D66354D696C768E2F3FB48B3C32F1857272904864AEB39EC38D + 02868FD8184B02BF01BDDC490270B3E98AF686D785FD2D109118EC3366AB7DF6 + D06DF08406106B1869A43A6215D2FCE5757DD058D7B0A55B7235BA40CB4F4E31 + 46625D545D154B7ACFE907380430C294E5AA305437CD144101EFDA3CFB8B7C66 + 382AD026C4BE1BBF81648561B79C15D102EFACE76C54CEB29D67063065E86021 + 3094F591F5214F4FB10BB620B1250D150436C91A47D1BCFEC93D8888BF482094 + ACB054E2C958FAAA3B33DCD8B191382F286477E88F18131B618F336F3A8A15E0 + 71BE83034CE8C82668D6F96E15E9818A2C53E2BCC8316F8C6D90C1C1AB922CB1 + EBCB6C675DA4B1EFA90B8BFF842AA3CBD0817A85B14351823814E6653B1B30F4 + DF655F7352D6CCA6C61873089D92FC8D06B0B8503853207921C7C56EFB76FA43 + 0C04300DF6FBC25C034CA3CD48E9E69B87579E8AE2329603121B768A4FDADC3E + 14CEB0DB8C09F5089AD3EF80DBFC5E38EB8B07CD765B8A532F3A9CC2D76139BE + 4C5518B02DB1A2A004136DA7ABB3061643EEAF6A088FF3DABE3B737194A3B07C + 9882844B18311AFCFF00852FC3178D4144BDB569CF6CF9AF23C7D023DCE63411 + 1544695AEB6F4FB8B8155D6E95229E0E001FDA03BA69E39450F4226BF9186969 + 46FB3027B40F549762563B20CDED76FB114E6CCC2F01DE1C658F5EDA34E00C39 + 99F1EC773E9F99DBC718918D5E8985A30521C0A2BFD69B1A6EE381998775D8BB + D3211F83B40965CF5081EC4F2AE1410A684C54FB8534B51A05CE71481D019198 + D6D467CEC1980B2A7B751BFAE0B58E6AB8525AE3E16C3633F9274B6D5891D894 + 1C4640BF10DF80772D91FF7F4706C0C72E88882038E2A74FDA61D920F1A28C94 + A293026719E37DF71EE1D2317A056BDAD1E801DDEDF6B162ED879ACC63DA7B9F + 28EF58DA333509CA6886885416B5F755B719B584280BA5B727E814728EE11D28 + BE2F8003532E04548B98502D9C79CD16D2ADFC3C58CE162C098A7C9AFDAB9839 + 55E99A7BFFA508E14734F809B76AC3E8E9E5FD3B1B987E48176699D06E5D8675 + B56387D571DC3127C75A41061BDC0084EA7C7719F9477246E2E1621F2509D308 + BBE22731254FA76074880BFE4D2F6624EA7F4EEDA16E76F5FB60570180763100 + 4599AEBB9126FD2335A24D79D35A001FFEA6483C0942BC89CEC1EC51AA39482F + C6E99E1A04CA181F9389EF2CFF078652E2F49EB411FC5E6428D1B482FF5FF8AA + A00655F98B5C670A52230E62B471AFDBBEDEF3B2B88E8A09983A2A5F2855C244 + ABB3EFD27C9003FF0ECD0B88B81DB8170B19E4FF8790014DCC6CFFE5B5FF930F + F8B4CE68173F00872B892D89D25713CF35C4326AAADCB18DF8FB14B98B531EF1 + 7DCAEC1955ADBA56C68A77868C783C4A4BA11F0AD50E172C042B1C82F0D91467 + 5E633436C5ACD77008BA1198E2002EA4D252FBEBADBEEC33D04DB2B3A5F75610 + 6652915C439DBE846707652C252F087A4C5E0DC970D3F13657281A50E76ED146 + 93108883BECE6EB1DD26E3D910874E5074EBB9F09386D0232EC40DF7EE7FFCF5 + B44E4DFED70CCD2C3CC8ACB37FAB9A9E4304956C0B1CD5E9949DA0748189FFF3 + 52EF415BEBF33B7EAC3F00D1BA2E707038067CD129D2856BBB830BFCB9E72FC3 + BA8F3E3887810C3AED0ECAC113C0FA50163ED19193F1430DA38DF15712323E76 + 67F0F653F7885358B7A81553CC1814959F6648DE629C4F991267CEA209DF6374 + CF0687B8FFE5425871FB87DEF617718694503A958368EC6BED638B3943B754BD + E1464D2AF5018FDC25FB9AB3E59375A3459E66B0EE0AD38960C5BBCE3D0F4138 + 8DB3BFC70A6F333E9C90CFF57EF0CC5A70E759F564C70B4B871A2BD5FD021E50 + CCC610543B1DF8F8A18B8CC115BC16734EC85DE9A39ABD8F6DC85C652337DA3F + B268FA240554EB2EB659F32782E6F2D2FB14511C9EB6699D2D3B60C2D64C0D84 + 74148A1DC68B314F2F09C9BEA3166BAD4C95F8EE5DEB9A1A5A2E8E710C3ED817 + A41CA49B4BE5CD98DDA360DC2F01A35B36790575596190496C40AA6528AC0CB6 + D7FBE801A2D9ED68D307DFE54C0568D481268C2670485A0CA46949F971B67ECC + DDFEB663DF98A173AA7BE5F195B63EA585EBDA48511CEE0BB8E3D886ADD36E86 + 918B53B21331C08528EBF967D772D623B5840FA34870B0D71B9FA03F3F7ED12B + 05061859AAFF01A2C026C45528458EAE27B472108457D9FA0CED31D7979B170F + B855873FE539A879760E4173B00F67A23E034A96224F77082F817466A9474CFC + 8CA070AF53B4DE573BCF676DF4327523DC5DA45E8C58326EFF22F589E2E7C9D1 + 59CD2515C81DCCDF5406DEC6C68AAAFCCCFACFB33396EF68C9432720E37866D4 + 108AA5693335403A5E29B261E67FB86C5E8A095C42AAC707EA81738459CC72E0 + 2FF271AB69D75157B2334E69B0D88FB4F244C142EFBF7055697BE7EADD94B5C8 + 73F7C66D81B9FE9CA590C224A9D9079D2829DD14C33C0FFE5DD3AF090F88C744 + DE3233B13E33868067DD951982CCF29546DFA1F73CB06A436A230D50BE3E9986 + 38F8D190485F3A0AD2554C9DAB5FBBA66FE64EF952CA68AB6181F9B5239157C2 + 578741B3B8E49692EC889CDB44AADF68626F10066D23C6C45CAD7999758C9F2B + A85C8634E4A68537B2D244E37D93C0C3974D1CD6755DA161418ADDD18E580B1F + 256818D9F0F693AFC2C8445F5E045FA9B03A470F70FE3FC2FEA1C4DAE3A613F6 + 52699C1F1F904A7595ED24B94DFFA1605AC5F9E3C4486284883FC5FE27493F24 + 056DF818CD16DC38DCD35570009AF86F92BFB7629859A884C521325A913295BB + D208120C9089D011F9F205B65D8005BF81067FD8541A0FE68356821FE32E789A + 52E447F3DD5207333E1B0BD80D989871E694D989814A88975ED1071A62FA6C06 + 65663F0476BD571A39CAD7AEE8E286CA4B805AD49AFEC881A58D5D6614E67648 + 5BE77832315CE18A3AE4874AFA9AE882E5398A4783FE3B436C659F5FBE197FC4 + 2AB5A7912DD10EF19304BE5F633C35D31C95A01BB7F778A47B028E3C06CA1960 + FC20049613D9A060A6771CA9CA18D91F94DC3526F9FE20A20AE87F098B0C1FEA + 740743A7479357B8EC4F666027089CA9A93901A2EE5845D929A89340C628AB75 + 0207E1E93FDD014F903C77DF2F0E5CC6A5FAD6464A4CC800DEB9E3CBA1BADD5E + EFEE46915DBEB355ED29F089804F36681D4FE9C0AA18EA063804412D704EF036 + BBC0D19F716C4B25DC53A59921B9806AA99EF23B1C07E0D96B11DB9566CC264C + A57158CE0787DF6F4D24345FAB0D4C454985D04E5B380D9B244C943813449C7F + D092325A1C9E38B8F0E6515F881FA52AB0BC10FE5C731FF26FA017E1A62B00BF + 0FC0BE7FB2108A7AEC3C892BEAED7D7CD71756EA943FC91BC8D7E20AB8CED10C + 63B70A5DE108B795A12FDFDC57F07114988079C73C22EF29746544558FA1C6C6 + C8AB94E02EE4A55A011A97C18E9D0C1F73E31D5BA00FFBF9A2DF82EB0287A924 + E78A617FB6D9E5DA6F93941151A320D1EBC4D2251060EB1F94021E19DE1B2CC7 + BC659CECA883D08996CAEC5C3C6D424B92B0833F5223BE85E888A5BCDEFBDA4A + 722F84A77A682B486F43446E864A241557284E3F1EC37057E59DD4EB5BB28D82 + D85E6FA27EB6811021DABA9C7239593967DABDA48F312379E7F0A90ADCD3D189 + EA060031CFBD9171EDD31A0A2859D6A68EA525A4BAD1EDDC569588861E67CF3F + E3D8356E8747CD5C8F24F15C5A7D2A18F842F29EE741E8234A5C0C1F38D3DD5A + 963252CFC82CED8443A584D622D5B5F7283B1DBAE702992A63ED08051C56F5E2 + CC3B8D0DA1CC8FB1F1C15E4F3C324F6F40F8BD548B1E7D0BC510155CBF839560 + F0DCF7B3455423AF2AC8A036FA33701F6922CA0250471B06860289BDFD72D8DF + D0A07554CD25456DF9F89063D09540ADB7E0E8FA9932716D6F79D2C3E9869A2B + A0770DBCF33137961D1FE7D8A3E90F22D74DAB5C3A23E9C53A18C31DF3A2331F + 23330EE23CF8E5726103560DF40F426F318E03D2EA88025FC681436910B74FD0 + 269163F0AB75EC512970A24AB58718C3CF709D32345132A11C9F71B59227C997 + 2CA29CEBBCB96D60298CD50E234708D3770B9FE7DB65BF8E6B3B71935E70E250 + B316C52C26E14E1F6B7811C45FB549DA8C26B7AE657D5036E683F9735151BA14 + 784420AB18E56A570788F6AA7F38B1F0DF3632ADE4D9094EBDFA34DFEA6D0D4E + AC1DD183532D5BEEF3260290462F988E2DCC58672577476EFDEEBA07E3C1583C + D33A0600AF9839873A536E8A182C086756B60F128E8C9A0367EBF308F6A441D3 + DCC9809A816F21D3DA4C535AB9D4CD1714DDF2D40A1E06C85D02A31C573F3E50 + 771351E193706A696B9AC733645C1419362AB6A726861D073827340FC71AB478 + 24179FA603AAB1A2AE7C1DCD7DFC288509A02DF3F6226244279298ED10FCADF8 + F98B7AAE17C1A6458C9E97A8E1E3479763D2C028A98285F5490F78207C4CE9B4 + 46E89AC7FB2AEF63B55C242CA9B1C63B02FC7E1DB81F6601DBFC213A00CA685F + 2F59432A974628F3E96AA73104C99D127A00A586788F0CE0911B8D141CDAEE7A + 7531C6264919B5A91061E4CE7483A8F0E15B692E74AC50EB4B90E3D6BCA5E9C4 + 328ED7799DB6FA3CB3239A549D3227DA5A4592C23B8FE6CAA41EA28121C09A85 + AC7A368EFB5F8DEDFAFE5704DE5779244426AE54A145086AD2CE17D4B5E4C85E + BF237E822F14F0D7F9E4CD496FD40659F392EE18C0BDFC3F5AB73C30D8F9302C + CEF5022B13AFEBCDE78211600212A32CBC0CCFA0D1445C0B79AB905C416FF62C + 64A8E080B2D3A85CE37A7A294B0754AF99C6069829A2E8975FED0230927068BC + 8C7C061762A854BF59A160F7D4A937847B77C905513F233F89044F41C718D408 + 5076C4CE6A0439FB593422FA2EB2AA0DDD64E318F56EE6A368897F0C67F30AEF + A9C58E22CAE04428B69D44E9DC9FF2C51034CDC33071D39038325BA8D477FA00 + 98C74EEE34CC50186812CE0148FE92203E9EC059644FE0745223EF1AA2DD7092 + DB102F54648E0A835E6F2A6DFD991128F87A228D8498F24A568A4626D2912EA9 + 5F88F756B6E61EC4DEB4D4C620DFFF02F72FFA81F9E792E60F83E57D7F5F3436 + 44AD61987EEE6FA003A622B2DF6DC5FBCDFD411AC2C51F85C5F229E7AF0C39C0 + 53CEA09D5DA1D4164805AACFB31F470BAFCD61AE5AA4DE08C9CD3C9DF320CE31 + E41FD05C4E390788313E46B90D9DD39575BD09131D56A7372C7FDB9A65D6AA04 + 6D56AC478F5EA2D64AACE610F2B4887B10D475B5AF8D07C38EFD2FFB45B39876 + 72FB3AF95737F05304CE3DB91F4BE02A688EC778D3BF4B33B9581496382E1854 + AD64AD0942F14DFB436969B9DC64700BE1395CDF3AFED811C7CECA40EE4212A5 + 55582561500C966A37A7794CAA0988B6FC33A29A10818A5B363B479717A422D6 + 7C607B88CA7964496C5264AFE7AB6056A7C7A3814EA6C7AE7B06D3D013B35467 + 8186B20B0F68F85FD5EC5C526E728C466E63F2BF7BA4A9945C99A87216F112FC + E29E153D3F59F7040BDAF1F9211319205788C35C0220649A552AAAE6ECEFABD7 + E79C5B3FD56C45FE047FDDB953F19F88AC0842E886759E7C9D2F8C13BA9BFD69 + 528CFFD2CDB63537A246558B078689BB40BC5F4DB49E6EECF626078C65A48782 + F9EB0539814510423713A9DBB9AE7DA210A9F67D44DE8CEB6326F434E8FDEA6E + ED444EA4013FAFDA8756F1CE6A78B019FFC69E3C0D1C4CE97BFE0094AD9136A0 + C2CB700670D16CD66DE3BFDB26385E418B12B3AF9E7EED17276E52B69F8578B7 + 81D30A1398E71B32B53A27A4A5EF591FDC32117866D96E905FFA72903A11A44C + DF7985D78BC14DBEB3F21581BDDA3DF0B4214E3CEB5C87B9A98F30853D648794 + 51F6878EBF7582CA2DE8F2A9674AD4FD0E74ED143E14A213A74E191B46E0C032 + 02C2CC83ACF214E539C45374EA6EDFE3F589F46D94EE31CFA0167F8F3DC828A3 + 2F182BE7AF793F8781AC1CD3CC03B2E3012748DEBFD37E901F088B6007F4EE99 + E36820DE7A95CE01582A67238605C9C9E00FB3E9DA088B3837FDF157F1141FE0 + 85A945A6B1713F50EE7242598139B2D34BC3025F80549A3A019B8833C9D6850E + 60B6E72AEE128907E4E9226460800412D16533364D6D0859F29F88DA31C477B8 + D3E65B3B1FABA30093D74FC82CF8AEAB674DFA8BCFFB5BD078D1D6340BB43CC3 + BAB69C9FA9141F347477BE9A481D411012026DCE845C4EBE68ECECFE29B30F11 + 6769B90B7E7535F73B2A65392501A617EE7379C84F4F4864CA4F5E52208DB2EE + 76CF1E377FB835B19507828626A5C3F4212908A64C466012A22DD09B4253DC87 + 305EC559EAD64A18133D665DBC15E6C819FA65962AD59635576EBABBCED2C175 + 59599FE350C6F3D2D4767076E241CA4F46C652CD23F01FEA867690ED64233E75 + 7FB96A5F7445970215B88325F8F889F6E2DFFB236E5F676E041BA4ADE2F14C9E + 527370EB41EC120995F2E8D85193F31CCD49557612A4230CC97B99EFD0CB646E + 51161499D87A0C307EC7EB8C524ACCD17CF5009F72D42AD5413FC6F4CEFCF759 + 7E5E6E4D16FEE8EE32CB774CEC6BC81B64476C43658551695426CB41DCB307B2 + 85837BFEDE4559E3F1DAAAD0B5641060CAA3D6159933144C18502BA5A302A1ED + CAEEA129D784E3D24E88015BA2C4E3794CA91CB37D891E491AC65A13E8BEAB17 + 0935B16BC0712D3734CEF34007316C9544DB566CB1D4FD642892BB017268C27F + F965D9152E9983531F7FAF31A90197E5053FD4C8E97DECD7E0A5F30352840AC3 + B423CC6B46544D9B2392FCBC657B0D667B2046EDE62211BA4C717DAAC9154157 + C630F9617CC2447D6A76EC652CA86B35FDD984503417724CF73B19CFBD3C41B4 + A7892A7FD021353337D92D163F150739B859A0B2944A1546F1E5E3154F2859B3 + E59F5A4BE23CEF156AAA86B742189493C82BFB3ECA7144CEC7D29BBEEE65B4C1 + C28E689DBDE07AA4DC112E896AB15C15D46AAC3C80C07E62B48DEC842BF5F2E3 + CEDF2108D8F48AC4CF165BA899D81A4E8016B59975FC8D116AAECC81BC97F5A0 + A9580365DA805D020A28A639176A4320EF11D07E0D27D99DFBF0B5E8C222E53B + F386699AE2C14FD92494207BD2818C2D05B0DC81DE5127381C6012BDDF93D034 + 6481B352DF041AE537A3467800ADEAF267E33B5F04F4318C9F526B4C3F03B11A + 1D7758816D4BE9713B249F63B22D722C2C712403BD87671C65CF10132CA3DAE2 + 2A383CDDACB2EE2EC27CA4AC0B7576581CE5927569CB4D5ED6B017801D416AAB + 2A406B82B5D9109284766F2E66D66AE539F03B8E0A81E92DBFA96B1E3D3E72EE + E0468179BAE03ACAD95DD530340BDFF292A34F8FC936F37B9D72CA2A67553275 + 22DA11B6D15E39347F4F4FB710EABFE00DB674F226262D2CC47069AE452FDC2D + 1F0CB5118D2783C97D852154B9D11C0DF63C31029E6B0B0C3E2BD1A244A12731 + E79B6172706EF11BA09C2082A4BC6820C8C0610316A9D0176BE17725CD761F6D + DD5A257E3BDF022CC0537AC4AC20E518F4B1534BA4CAB582FE8FBE01176DD018 + 6923347EA4CEF52FA5657BA047F854C7D584C8B5B9AE405DBDDB76B03936588C + D1EE065DF6BC80180866A717F0760236B0CAEED5AFA9D42C494B05881313889B + 37BD4686086564571E09F82A3A3E31E343FFDDF612E18851675486214C13140E + 41B8EB77ED3602BA2A5407E37F8EB564A75112D6261CE6691933609C0EF6171B + 31721E45AAEAFA8B3816FA539E3BB08735FCB417D71E8F20C1FF940E5065755A + 05BF51336CFA03D4965E69E748DB8A2F24B3D50DA5D1DD66CE450195DCEEAC39 + 9D307FFED54BEC9ABF616C70F41DCD3546543D6DA9 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /HZRQXK+CMTI9 findfont /Encoding get + dup 0 /.notdef put + pop + end + /HZRQXK+CMTI9 findfont /Encoding get + dup 0 /.notdef put + dup 11 /ff put + dup 12 /fi put + dup 44 /.notdef put + dup 45 /.notdef put + dup 46 /.notdef put + dup 65 /.notdef put + dup 67 /.notdef put + dup 70 /.notdef put + dup 73 /.notdef put + dup 77 /.notdef put + dup 80 /.notdef put + dup 83 /.notdef put + dup 84 /.notdef put + dup 97 /.notdef put + dup 98 /.notdef put + dup 99 /.notdef put + dup 100 /.notdef put + dup 101 /.notdef put + dup 102 /.notdef put + dup 103 /.notdef put + dup 104 /.notdef put + dup 105 /.notdef put + dup 106 /.notdef put + dup 108 /.notdef put + dup 109 /.notdef put + dup 110 /.notdef put + dup 111 /.notdef put + dup 112 /.notdef put + dup 113 /.notdef put + dup 114 /.notdef put + dup 115 /.notdef put + dup 116 /.notdef put + dup 117 /.notdef put + dup 118 /.notdef put + dup 119 /.notdef put + dup 120 /.notdef put + dup 121 /.notdef put + dup 173 /hyphen put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [ 1 /dotlessi/caron 11 /ff/fi 32 /space/exclam + /quotedbl/numbersign/dollar/percent/ampersand/quotesingle + /parenleft/parenright/asterisk/plus/comma/hyphen + /period/slash/zero/one/two/three + /four/five/six/seven/eight/nine + /colon/semicolon/less/equal/greater/question + /at/A/B/C/D/E + /F/G/H/I/J/K + /L/M/N/O/P/Q + /R/S/T/U/V/W + /X/Y/Z/bracketleft/backslash/bracketright + /asciicircum/underscore/grave/a/b/c + /d/e/f/g/h/i + /j/k/l/m/n/o + /p/q/r/s/t/u + /v/w/x/y/z/braceleft + /bar/braceright/asciitilde/bullet/Euro/bullet + /quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl + /circumflex/perthousand/Scaron/guilsinglleft/OE/bullet + /Zcaron/bullet/bullet/quoteleft/quoteright/quotedblleft + /quotedblright/bullet/endash/emdash/tilde/trademark + /scaron/guilsinglright/oe/bullet/zcaron/Ydieresis + /space/exclamdown/cent/sterling/currency/yen + /brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft + /logicalnot/hyphen/registered/macron/degree/plusminus + /twosuperior/threesuperior/acute/mu/paragraph/periodcentered + /cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf + /threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde + /Adieresis/Aring/AE/Ccedilla/Egrave/Eacute + /Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis + /Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde + /Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex + /Udieresis/Yacute/Thorn/germandbls/agrave/aacute + /acircumflex/atilde/adieresis/aring/ae/ccedilla + /egrave/eacute/ecircumflex/edieresis/igrave/iacute + /icircumflex/idieresis/eth/ntilde/ograve/oacute + /ocircumflex/otilde/odieresis/divide/oslash/ugrave + /uacute/ucircumflex/udieresis/yacute/thorn/ydieresis + /N19/HZRQXK+CMTI9 -1 TZG + %%IncludeResource Times-Roman + [ 2 /fi 32 /space/exclam/quotedbl/numbersign/dollar + /percent/ampersand/quoteright/parenleft/parenright/asterisk + /plus/comma/hyphen/period/slash/zero + /one/two/three/four/five/six + /seven/eight/nine/colon/semicolon/less + /equal/greater/question/at/A/B + /C/D/E/F/G/H + /I/J/K/L/M/N + /O/P/Q/R/S/T + /U/V/W/X/Y/Z + /bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft + /a/b/c/d/e/f + /g/h/i/j/k/l + /m/n/o/p/q/r + /s/t/u/v/w/x + /y/z/braceleft/bar/braceright/asciitilde + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/exclamdown/cent + /sterling/fraction/yen/florin/section/currency + /quotesingle/quotedblleft/guillemotleft/guilsinglleft/hyphen/fi + /fl/.notdef/endash/dagger/daggerdbl/periodcentered + /.notdef/paragraph/bullet/quotesinglbase/quotedblbase/quotedblright + /guillemotright/ellipsis/perthousand/.notdef/questiondown/.notdef + /grave/acute/circumflex/tilde/macron/breve + /dotaccent/dieresis/.notdef/ring/cedilla/.notdef + /hungarumlaut/ogonek/caron/emdash/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/AE/.notdef/ordfeminine/.notdef + /.notdef/.notdef/.notdef/Lslash/Oslash/OE + /ordmasculine/.notdef/.notdef/.notdef/.notdef/.notdef + /ae/.notdef/.notdef/.notdef/dotlessi/.notdef + /.notdef/lslash/oslash/oe/germandbls/.notdef + /.notdef/.notdef/.notdef + /N10/Times-Roman -1 TZ + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font PCJGBD+CMSY7 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMSY7) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /PCJGBD+CMSY7 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { 0 -250 1060 770 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3ECB48FA43E4 + 4BE895991CB9C373C80EADF956F3CFF9953ED829311EA5C29ADABDA9B531D51E + 0E505FCDAE7E6EE841FB8BA6ABD575F8F932F2DBA26DD9F78D8861CC40A4D539 + 7F76C11ECF3859C3C67E4E5D79B4906B3752C9691C4D80E80213673F95E2F722 + FC51692F2F1F81A1F6E1A1D617FCE9082D4E318B4DA60F15B2E1B8DD32E0F349 + 9CEA3AFBC4E8E3EE2810CA5D941EACCB8DCAC48889DF1AAC8D7ABE6A22E82D03 + 5AB508FFF778FDDDEAE7280A1AA8B72C9355BF85DABB3DAEC0DF42F9D2399E3B + EF867976A2C423A1AAEA485CF8D30C9ADDBF8FE3AB5CFF338D98EC87634015B8 + 9AF13CAB3310D3699B93874685B8CA93459C52D98700264C37AAC6C3858709F3 + 9CCA9EB6A8A7E72B479220EB921F122469A9D7105DED884D6CBE220A4120D36C + 922262F14B77BA6414787622AF5EA21FF3C39D4AE5FA06AEF548EB780CA6D525 + C727A510BC2D7E7304008C998BE56E1F0044378E08131120B21F8406B034FF42 + 5AED170A6138D33407D9617DEDD19D8BF10F46DB619FF72ED7AC570AE4020691 + AC6882E96FFF01A90E3DD1541445FD7E8E1BD87AAB4ED7927B8215A07BA01799 + 485348D816BEC87322F046E18E94312A63AF7111F73D93F970CC5796564B1ECE + 9E497BCD210F45E9E6E94A97819C3B470EBCF3F54F4CBA4A65A8A5A929B2F1C1 + 80B7B0B1E6BCAB1806400FB02F8488C29EBB8578C557BEACA6785CC0B5372302 + C3A26FDED4E40E04FB52F94C9DFE4F9D735406813CFFC8B2C82910EA4C43F216 + 08A27E880AD972C2A528086919F1D50397D428755897BD6B3C0F74E550591C3B + 0BB3E744961D80A9394F68A3ECE0D78A0FD0807713A1BBFB076A3EAAFD2B2427 + EE76E443C29B535DC28592EFF5A5FFE8050EB88E06D80DFF1636C1EF9B4C795C + D0308FD39B5D639064B9356A67CEABC20522D7CE57F5D8FF9D2893596F1DE5A9 + CCE406E05CDFE66926C1A72B745072E8BC8A43181033F0AD727E61576A1A1487 + 92412C2C50D39472BB83E363EB9DBEC4EC65F5301A760710A5C51E8981851FC1 + BB4BFDE07264FF86379A390C32D3FFC5F519EAB8B92A16F5951DB1258AC63132 + 966BE40E006200D11F29DE05C1175F568EC48B856C1CEE1C1ABFE5D590D7A5C2 + BE865FCC601A39D925B0DD4480912DD23CA61BABEF42C346545225217F3FD1B6 + FDFEF44124FD3267172D03032E4755A0189DDC905D2BEB7F79FBD6EE5D031665 + 890065143B358B8B9C57DF219FCFC19E5C5CD70171BACA2E28086C35BE950F73 + EE938E0A7329A8BBE4D0EA66404468DD70875A01D2F459DBD40CCD09A59D3E07 + EDE3DD58A8719B9F775FC9C9A56B50FAC74FB1567DDFD9FD3837E2D2B0E392A6 + 33A067E594775F91910610A6E67FAC394AFE5D20A0AE6AD910DCE5E5FD9A1B3B + 94CCE40D94CB5E884E3DA222B368FDD85C0EA1BE1A4408C22FC638ECA8948996 + 8D3D317FA6855F25F9E2F9DA1F12D90FE1C80CDA58281AF5C53BD6FA8B158115 + 80119FD21754E6E5E05D4E68A9753A3F2BACD30ECF6FA65779FE15F3723F46A5 + F3BB1BFF34EEC40D009F215DF94FEA6EDE13FD1FD966A6D1815D413E08F6D651 + 7AEEAD5DBAF3984C7F80ECB4369DDFD581F2C6A1DC5E252A77E141E0FABEE2AD + B1AAE5020160A57E67491637E23277E015DEC0FD71A55E7BC950D079041F80C3 + 23AEA9950EFDF420F0AF0A800E16E015A3D0F4F87B162F785AC907E6C38BBCCC + C3CA586CC184242E5A86962110963C817D34574A207321834049A831364E8EEA + E80D5F208739BE1F6BDBFAD6E29D4286E188F31753F078FD907BFD7D5F338793 + 2070E7499D1D3E7CAC024CE3B46DEC9AF366B809D322F395FCD394BD6D35FDD9 + 8450378701D06F55673A8B47EF165A0E1CF31ADC674876C594C69E3EF30A7D8B + DC2E887835B1ED4789C2E4AB4F9BE2D8603002DBEA393181134C6B315864BEC6 + 0B93A33E892AE8A745496742DB985F7D16809F5828902977D7A6884149845B03 + 42EB0F6EA940B16671C103A861583EF3F454EB188C680C4966B59016B765C728 + 68F7ADC74522DE852567745965F9CA1CCB3299578AAF410E62471F24030C2A2A + 759D78D3AC784592424890F492CE9FAF87387FCB8FB75F82C991578ECFD3A855 + 2EFB48208E4EDC69E0D22313ACB56F773C045345DD115C3814E05F08EAB3B5B8 + 06290F6DEEB88C02BE5A6B15CBDAADC218547F228772E2995DCA38E90E39303D + C06510CE39EDE2BB99FC93268620E80AA67B8EF82C7DF8723A986DF4CF9AEB73 + 0B048C433DD829ACCB9C1A0422F6CF7F0D0C2B51D58D1F6ADABC9D4521815A95 + BFA0B1B52F0DE3E452B3507F5BFA7F1EA67026E7CC2948048C5237D654FE43D2 + 491DD0160417098E707EDF985BBD22396D2510DECE52364F0C0823164EE4325B + 4AF5BF7AD9C5907AAA0137A7512B7FC368D73385E9996F3CF33E5050619E943B + 9B0DE711933F15EB25472EED4F26F832AB7C829E8EEF76831C2C9A9C47A83F23 + 1E76E87E3311C787D464BB87E47F7EB9D0C95142C2A05008D5E3FFF4401570C6 + 11FBC6F07C6C76D61B27CF1994D27B7909C5F962900761A88CBE24295F446038 + 1337BA56C5FAC67A5D7F7C6A0B0D12EEC3B8B6526184C44B03A5583E2389C6F6 + 144F65F73A6EF02F58D6F9BF539E252E6BEA3F6194899C2F310BCCF0E1806FA1 + 69FE1F57A0E9C22416FD55BBFE36537CE9C962E4E0ABFDA1EB7273B1CCFE5929 + C85A0C5A703F503369B34E91E26B674586D880C87DB6E4129B032ED68ABE08B1 + A927806ADB75F7C540BFBCCB73C621E3E0936C33D58E982D2DFE778CFC722EED + 9E1B099F3DDE5DACBB7686217805F6C1F2EA898159398987F6A2926CA96E8A98 + A45C08F33CA3216A819FEA298C9B272ABE5031B915A511DFC9CB692C12A10265 + 6BD472BC8A2C8143A58C6949A5F215A3F9DAD5858C4BC1A33CBF8D00A18CA708 + 6DD0798DEFC95E5F308062806D27C31E45028320E3C1E96B8A73F5C31DE59B35 + 48BFD4A982BCC7D6DC6FB1BA3D838E5B3B4030C6028B5FA1277FD9DEB824E7F5 + 171A5A9669222F788ABBA81B959B37632778EC49703EA71D73552ACA77EABADB + 38EC2ECC2C077A2420ED0C5605591DB0E39DF3A9EC0C93FDCB4239A3B01380C1 + 573B98EE11E91090B9B853477EFBF38D4177215FECA81292A8B65B22746A3CAD + 0285EEC541511A3E903F1A096F818F16060511178B45D594939592F0355E356E + 22959F99D33E8E57FAE388E857743F377E4E835069DA289452CA2483ECB88A2A + 29DE2C87B25D5436F50F030BB88F6B05CE02695189D6E1C56DC6A5AC250D8E99 + E0791697068BE653D78B09BF0131F3E9BEB35A27AE0C3B5E2F4C169A2A241045 + 2E35045CC59C67BA9D5BDA48F09BF4FF8C4AE699D09B32A801396FC9C497E145 + C3BB1C3D4AF43B613E735F48A8715E36E2028EDFA59668A66E3F0CB98C8E951B + 3AAC3F7A6BD7802D439F13EE6A7F9FF9B5809EF9F0EBAF27279AD42EC6037C49 + CB4D249E879F68A50F612A17D6880028CBF31FC0080BB933769C9B182DEF9E7D + F11F3A995A1D51C4BFE0EB6165AA204F81DE2351FA0D61A9B2C6BC79343AA0E7 + 1EEF32BE8C4FC17D32A71882CEA84074B97040154A28C0FA64B572134C345D80 + 5BE7FDC37212170EDF38D75AC793CB7307EDF158E8AB44D7E80CAEC288D3EFB1 + C1D16A3E3E5BD5FB7C35F73416CBA3F75E1F46683D88A4785719BCFA0EF630E1 + F78D98A13A5B39650AC640C1E75F96BA189C349A8B0B7AC6D328CB2B5AFD7134 + 92498548BC1C03918C11F12D50B467C9AE9CC067B9BA949C37B5FECE6FED3981 + 453E7CBD8AC4EB1EBE0B1F11B278274833A9DF40F2DAA3AED0A0DD418C552129 + 4E4DB38D8001D453916D7D6067C2F63AB1EAAECA8530040F22864D73457BB626 + 6FAEFD5B79650B3B9A411AF0CB53D1867DB942FBA2C9083C41D58547CD6A2593 + 96C2B3A2D28366BD5D8988CBF2E987B2A29458A512F75214A6AF311C2E1A7414 + A621169194DA296384AE22E5189661B8D39B + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /PCJGBD+CMSY7 findfont /Encoding get + dup 0 /.notdef put + pop + end + /PCJGBD+CMSY7 findfont /Encoding get + dup 0 /.notdef put + dup 3 /asteriskmath put + dup 20 /lessequal put + dup 21 /greaterequal put + dup 41 /arrowdblright put + dup 50 /element put + dup 54 /negationslash put + dup 56 /universal put + dup 59 /emptyset put + dup 91 /union put + dup 102 /braceleft put + dup 103 /braceright put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [ 1 /dotlessi/caron/asteriskmath 20 /lessequal/greaterequal 32 /space + /exclam/quotedbl/numbersign/dollar/percent/ampersand + /quotesingle/parenleft/arrowdblright/asterisk/plus/comma + /hyphen/period/slash/zero/one/element + /three/four/five/negationslash/seven/universal + /nine/colon/emptyset/less/equal/greater + /question/at/A/B/C/D + /E/F/G/H/I/J + /K/L/M/N/O/P + /Q/R/S/T/U/V + /W/X/Y/Z/union/backslash + /bracketright/asciicircum/underscore/grave/a/b + /c/d/e/braceleft/braceright/h + /i/j/k/l/m/n + /o/p/q/r/s/t + /u/v/w/x/y/z + /braceleft/bar/braceright/asciitilde/bullet/Euro + /bullet/quotesinglbase/florin/quotedblbase/ellipsis/dagger + /daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE + /bullet/Zcaron/bullet/bullet/quoteleft/quoteright + /quotedblleft/quotedblright/bullet/endash/emdash/tilde + /trademark/scaron/guilsinglright/oe/bullet/zcaron + /Ydieresis/space/exclamdown/cent/sterling/currency + /yen/brokenbar/section/dieresis/copyright/ordfeminine + /guillemotleft/logicalnot/hyphen/registered/macron/degree + /plusminus/twosuperior/threesuperior/acute/mu/paragraph + /periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter + /onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex + /Atilde/Adieresis/Aring/AE/Ccedilla/Egrave + /Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex + /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex + /Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute + /Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave + /aacute/acircumflex/atilde/adieresis/aring/ae + /ccedilla/egrave/eacute/ecircumflex/edieresis/igrave + /iacute/icircumflex/idieresis/eth/ntilde/ograve + /oacute/ocircumflex/otilde/odieresis/divide/oslash + /ugrave/uacute/ucircumflex/udieresis/yacute/thorn + /ydieresis + /N57/PCJGBD+CMSY7 -1 TZG + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font EYHIUN+CMMI7 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMMI7) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /EYHIUN+CMMI7 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { -1 -204 893 704 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3ECB48FA43E4 + 4BE895991CB9C373C80EADF956F3CFF9953ED829311EA5C29ADABDA9B531D51E + 0E505FCDAE7E6EE841FB8BA6ABD575F8F932F2DBA26DD9F78D8861CC40A4D539 + 7F76C11ECF3859C3C67E4E5D79B4906B3752C9691C4D80E80213673F95E2F722 + FC51692F2F1F81A1F6E1A1D617FCE9082D4E318B4DA60F15B2E1B8DD32E0F349 + 9CEA3AFBC4E8E042A8D26EE4CE54E68520C67ABE5AF924AA03D080F6AB484957 + 14915E0C8C48F619A227F01B0660620840F24E8705A34E49F9843592D4BF87DE + 18D113943155A5E5DB2DD2E7AADED1D046ED8A3624BD2BE8DA98FF07BEDCC257 + BB3BAA81D21AB2BD56B9F6ECCFAAEB776CC4466EC1D8D7E4399F87617851AD2F + 794AE4A4F58E4787E493C60DB8EA37D80026AA55E4D72F5C31CDC7DD5789C2D6 + EC988BC9D3EE262BB81691D739AABD7F05CBD8C2467A1143E008FE24CCB18E7B + A71C7074A84E7ED2CBD4A5A242A4C306184BCEA2C6BDFD37C20D8EF2C920B574 + 6B924F073B2DE22DD54B519F7D095EC536A56262882E1C843875F0997C543026 + C53BAAA43E89DA33DFBC56EB899BFD923E6B88A6EE5301781A6F3007EF81E367 + 9236BAF988D05C063DA0918733EF2EF7978BCC5AF89617D1737D588F8E0F6C2B + 965983C55E834DC6CBD3AB99DB48B1B5830E02E9136932F93AED5B25C6A791E9 + D689143FD55F0490936F70D39B181D683EB959946430278E14E78D33FE68FC2C + 1545B723CB552E7B09C71963F337C6DAA0E47F1706A11446BF2284D56E4C4981 + 8A5A0DA9DF86246D9092151833519441E621093A29308C1D85B691BD8A43DB52 + 412AA05D57CE5BC38358C3375E0E6C898518408E359B148FF2B4E641FE91B1C0 + 0EE48C1A591FA45149095A9AEAE1AAB73F4A00B0332126549FF4A3663683B9C5 + F25B8D67CBFA4A5F4B66020CD28EA55775B5EAC4DF366563898399D3F65976B7 + A3EF53803CCD6D0876CBBD4D8E215E991151260FC67F02825B21F95B07041190 + CCACA72227CE030C42C2F935908B282CBCECDFA41FA75A3BB404D3DAA53510D8 + 61E9B7441DDB5E871E2F753758D2A61AD9C8DB7CF2E6BE6701721599ECB9385B + AEF597D8DCDA6E137473D7B4695921F882852D8A8F1F0646D8F8F706A93451B8 + C6F6FF275D17F42454FB59147C455E8EA3DF36E423E064E21E2D376DA8A23D5D + 4C34FC94AE7BEFA6D47F531139E7D0C8B621DCDFAAC1C15EF356E11833F2C989 + 9DAADE9680499EA0EB58736D0D356D337A0210B7D9B0656AE6E6336DF9F13389 + 677778DB3421C2E7C0BDAEED4A03FE0B6AC896A76F69FB0934BF1936D3DD19A8 + EC53F6D53FE368B55AA6C9C05C47F5FE8BBC7373F37CA87DA6E2716D806EE0EF + F92E1582083B2D211BB42CFA3D1773C4B9D1D3CB56250BBFAF5BDBF6913D70D6 + 0416080083EF5E2F348E1A3306C2192B5C8314475880AB54310F308DC95DA4FD + EAFF9B02B5CAA284004A7AC3A53D24472D8C1330997A70E0EF4A5D51E62C37E3 + 14BA3D3AE2129B3554FEB20CD85A80AD0F465822EC47CAFFFCEE1EB0E0B1E888 + 483B4D9BA5273FFF8363C336AD2F3AB4E1BB8287257945D2C8C7255A90C23970 + 9EB563C3DADAE4F5C08B2BD66A5A1EDC549E63E2D5342ADE2CF108F97D7CE32C + 4F553D9515C7C4A39920066C7FF1518410AE0A51CAE6B60E95E9FA3F6307CB10 + 0A1CB7656EC7720C7FAF3D34CA90CC4191523033654228E0BA35F40D75D5B0F3 + BDE823F21A4C409BA8E0CBF968A51191DFCF18661FFDBF9D02F5D68BC3A9653E + 0427C4DBCAE815B7A979212CD1A89BEE6E9F60461CADBFC00DE1D339FC9E2903 + 53074A81DDC14A1B94A1AD02EBE5724DCDEE72C9AE7B8D793CCC2D1975201E5C + A856193EF1B85B7E37EE26D7C2E4DFC587252014A440B2A1F51785DF1258B8AD + F55642AC6C84C1D62A0D3A06405BE2160DE9E2D4A9455E990047F6C3E779664C + EAE2F923B7DBC735E74F3CF91D456CEC04863CB9BD17CE20D39CBB7A6A5B7E60 + BD20ED200A509EB9F442AD5E5DAD2699F320A57AAE43FE72E98E6E9DA9B50681 + 7A53DAA5253C17F75C9EFEA8416FDA9FE2D8C2011443BCA5619EC74725A1CD10 + 331F4AF41ECE376A1E3F55E543F498854F9D001FDAA695923351FA840BB83B6E + 53A0EEBE1420B56399E30CDE5224A292430626F750EA08DE6E84C3C832DACAF9 + 199E9F7BDEBAE000D9E1B9CD2213BEFF87DC1ADBB72654619EE6D5966907101F + 8B5C1AF87AFD73982BCAFCA597F5386AA606AC945622901D5496C298058A983C + B9EC0ACB6DE8B5DFD2BCC14BEBA22B2904AAD995996866B807244EC005CCFCEC + 8A39E6F659193415A406390F3C7AE77FB896C37C961D4540B0D5ADBA941FE469 + 07607364FE29420E0854F76E2CFCC358911E9AE9AF180D9CE5A08BC3CBD35DD1 + 196532DE938DC668497EF8D31A9793E1DC54A4EFEA29387C1BD2335C7B6EED71 + 99B399295EE73F2E57B27AEA32A084B3DA24C3DE71B527458C86CDF4509CA40F + 0ECB5133B6EF76ED5A8ABC00AA484CAEC1214C00C5A61E89B599AC85F79B252F + 6613265DA0CE666D873A70F873A07D17FA23DE5D846D4D4282C4C7AF25121055 + 470C69C473FF78157B1855F434015DA03892DF375BDA73439E95A37CBF2F7456 + 5C010D4481308D46873DC41C8D4EE89C60532F3E82BA91B1EC6F79410122C99F + 987271F5A963D1C680D275C90D8A92C2242ABE6DCD57CD9FA5890B80C123A8E3 + BB4A42C952D57AABF269578F267DC49D47604F726A172E2D984F34EF36836F23 + C845BC3BFE0E7775479FBCEA1CE28FA2657075020556267968D2EA436137DF8A + 1FB0FF18A9C25EC2792C4715535D1117146F2FA45319AA3AF498C10D0A5BCBE5 + D5E548725E2753E636D73B5D3A9E8C1E5BA74CD01F5E9854B27DD8DAC3465C5D + 85A8C06D7218151BFE63B9698E15C361199DAA9E1BEF37BBD242B6E40A6E6077 + E3ADCA0349166A21894F589F423D6AFF761BF3511517E54082959CB4243263AE + 514065E9C1A4F58379F7E5567FEE8353A80828E048691848790C877D80AE2454 + 131F31BBCD99293BC8BA6B8580762A8BFA9884CC6358F8637E60A785C45A8534 + 8C2BBD0720A5DAEA9E9D5D97E3FE9A3BD7002C70EF0BD8E72D5E737C07D5188B + 01EF9719CA5E9E7EE1422B52D3AD96E6207898AD4268807A24885FEF0EE99105 + 0817773FCDB8632CD90DEFB462DB246552802A41750C6BCB0FA2A6F673D8C823 + BC58E079C9FEC2CE64797865CAEAC9017FABEE8D4C90258D50AE4A659A2ADCB0 + D0370C9D979C01C4701DA9CDFDDC17BB6306F45C266DC17181B01BCFFD92F076 + 52F9D0055CBCBDD23B8D33267AEC2746A2FEB6F7C827D5D600567C0F007C9C8B + E868A2B33BB2DBE8127C07616A2CDCD24D6916A0D8BE938AA3A8EFD3E660A4C1 + 51000DBBD4794C7B7D9F1366387EDEF0CE2CF6516BD0B60FFBFBDBD9B878EC81 + 21FC556BCA8FC6D244375FCEFDC8A8E4BAAB0864F55F21FC3B7AE2C09CF2B03E + 990BD78BE1A37877703813388102F6F42503C4D1F714CBDA63414CF85A800491 + 000B1C525C0724D02EB5DDA843D696C943C6777511C004BE8651C7762DE502A5 + FB12B4C05DEB03AA9C871E6BC00A8929B1FE0FAE1ED7C336B6E8C51BF35CD730 + B49F7F31194224227C644966BC6DBB593E14A068B1005A28AA85F81CC61850D4 + 94FEC3B27BA5B47A195F42216F78ADECC15F9AAF0F953E63F0E8ADEF730B4E14 + 877170031D08030E38DBA49B02ECF33B9782CB1C6AEB9FC8D5F7685B4D967528 + 4E2FF652E8D44D8913D5677BCD32FC27904748A90D8DC008F03B287CFE563AE0 + CCE5CE9E63BAB3270AC56614703EE57C4DF1FE0637DA22D54D841CEB362C4114 + AE2207A0A0BD93BF1698E3A449F5E1CDB0E5C50FD56AD00C3F56F88164134E0A + F2DEC9DFCF8D0018A7EDE0E705780092D4403DD0B8DE6C70EA96CFE821C3D30B + 09AC7B374D070BF4882880A1B7FD5392522105CE069A5F945E4102916215B695 + B6A424F1688CFEB099004B06F7C227E6AA8CF8DA619B799E95A2EFE28AD5B3F3 + 5E091A75A78897B66D40A83199011B658C8BDFBB716C3198BF554C0423906050 + E8FD20FFCD834B88DC4333F1372672A8A0036400F02BE16D4F128D429C92EB7E + E81D8A88DDA2DB70AA1515FC51A1B36DE3DDD618D2A186225C265661379F663D + A546A0E858770EEB3ADCEFF93DB9930893685881C3792B9713791D6ADECD25EA + B6B9419A5A6506A1943F00AFFADF272B5C6E208DD1FE4849F7F8042096D46CC9 + 012D7899F1999F0535EBE718C623E243EBA4589776228445C670133C0C0B117E + 45E7187F64F54F1382BB314F41874CDAA96B4FE1C255587BC915A109092EEB03 + 067C5C7119BA9D51FB0E4733241394DD36BB52A7AC721A5CF5C36A00DD0AA2ED + 070DC70FBBCC6F3B710D0F8AE40F396EB136A2F6C97834763A0ECE611CB68F5D + 8683356360AD03C024817DFD384CCB73C24C5033F5C149B280A10158365CB5B0 + 4DCBB7628D1991143F50AC23BE78CEE22564431C8479352F1B55A4B0F605860B + 9C90136774FAF29BE9EA8649DCD77FD19951BCB47DCB61A847C05B55759712DA + 6EC6066FCA57346ABE8AB06EA2BE0759DA6ED8E07CBD6F268B4B6B1EDA6A19F0 + 232C23C0CE717CB9BFE5285044D22AE91A88CF331216D0280CE9A587629C5504 + F61EEFA7887CD322CEA289FB006FE75958FFEB73E335EA6C7B90041FC90B17A4 + D5CC08821AAF2232462508BFEC499552D55789F4F93195F89D6BEDAC096AFC46 + 23FE9463EE0FA6284BCB4F08BE9E145191A201E2BFE2C0B2DD6F89AB7A9CE405 + 0A1800A54A8DFF237818053A1B0C3599FC2E9B8992B8C379B8630BEE851B2A41 + BC9A01357DD4F2C68D7E04D5410877989009EBEA88AABDC148179EEA5992555A + 2627337DF4CAF225614F7189A724C671C31563BF20B07829F3B85DF8573F142C + E28813E32D5F91E57594FB4D362F281D6A5496B4E569153131499050622A400B + 2EF3DDB415F6327908F348D40B7F68DBF37ABF3AF0840B438C1C7875647A9CAF + 899ED7B3A09ADA4BFA5BB3AC40FA2B0B656765A943E3246106558804296E4E3E + DFC1319D70780F4722AD915E33D683F2FDFB265A30D2F913A72FC475228FB9B7 + 11F7C184BCB8FD9165E200FDFB4CDEC0A46B0C49E5C1FA6769596E4D1ADB92F9 + 3C349455F5F79F4E4AB7C058CE78C5BF339564322928E8B704CDA3D7CA590784 + ECC2DF7804798A9019040C589C28371E9341E1BA225C176BD7594A5324FC0D58 + 36FF670B6C3F808769270946840341AD1533FAB60A25F8543C2C0C3209D62763 + 3C46569F2DAF4A882A31A29530983E999B93BA528986CBA7992DB9B3F39411E5 + 8270DC395B4A0273B7506E128E40FE0CA9447FC91A8CC1B77965E0965D7A203D + 5501BE7C3ADD115905DEC21B3DEA2347E86B04A59ABBCD6C46192DE999E9BFC9 + 93EF0C918537EE403B73914878A11F3D701C33442609281A4F9D8876A1546557 + 28422917EB7D5B9E5EC188F90AA6B9A8C3EF85885937592A1AC10758EE454488 + FA3FFC5F33ACD2FBBBC378B91B7D70AB963E660A0CDA08E4B79ED35C5F224ED6 + 861E628503CD0B34A7EC06CD9D959181D056E063893B69149FB5194FE2A62632 + 3B9E89E2E3B30E2EF7C80919877D3FFEB92FD8CBCEDF7F151FAA3F0926FDD3D8 + 7F47BD8979AC425886F2A5CBCD3990A5743E08B83E12B1B57015D8FC87CDC97D + E3D5D07FCBDCBB16D01603577B7401095BC533330DCF0B39A21FBAD0977DB0C7 + B5743A53CD6B38E6A506403AF7E4949EAF7A71275E48B67FAC1E96C2093024EF + 56B8F2F0409C597A8197F2C8653FEC178A7C9753436EDA114B5CC4841744A34E + 12D23A5840D5FC65A7D7C6FB9CF6DDA8BF2AC1C0AE8403142C33599B4E150D26 + ABC1D209B3EE7686B985E9AB98D16F2D0E452410847603F2A5CC027AB4125660 + 69814485C0B1EA0E170A1E84E4FF0804BC57AFBDEA04AFBB23EB0CCF9BFC43BB + 0B17080305826FCC05B3092F1B8FCBEC256A4E3038D22838703DFFC4EDE9A173 + DD83278B139D40C87F74744CD2B6515367E0E90D1CFEAD616AE46F67FAAB37DA + 71A7D8FDBC460B98305BC9D4DD9E06183C88C7F791A07B27A661040429FDCC86 + 043A56D81DEDDA4EB2D1A5F693C0C5D752CA9153F6BDD0833690880D10A52180 + A2A61B833924EFA00D2B02936214D3E8A1F78FD5EF452CD232764E2FD8C20952 + 8D2CCFC15DA4165CB2F071B753F5B0CD2FA21421D2E5A4E6FB751C2D6E347376 + E05D6AE1497B7448560E937DFFBEF9323AC181D653EB8BD1001CE84A825B713E + DA3425EA53452A7926DF0BDBE2BB075382E122DB9B7A235C2058268FACBFB10B + 0D8A762D09CCBA61A577C50331F66009E630442B316CD43DFDA4AC8A93D1112A + BE12855533F274AA8004504B4DF9548049D12BA6AF850B920E01D353A817DE2A + 8E0039AC645330AD9D2BA92574976A8BFCF6930EFB727C3BF3D294AC136DBF58 + E6AE379797EAC88E17E99DDEBF806EDEB87E83926CF2B82D88F8AE5A14DF1602 + F26D0264B28CE24CAB2064C4870ED4300213AD2D20AA735BB829CD5B65E1ED6E + C35E0EE9FDE3DE9A4824435BDCD18D1453D11B5F3CA7E669139F16108803912F + 58D90437BA0CD3E762E08A53428777FAB2377413B5E7DBAE26F8D070185C329D + E98F96B9C62539FA536E57C293746623648826F5140F0DACEA381B0D3ED3728F + 8D376D4DAFC254F32F598E699DD07773FF48EB7D789AFCADFA19F9440FFBF321 + 2F1F81ACE1357BC3345B823AF08CFC994CBF1F2B74FFE6F20DBFC034765BFC82 + 4C97D4F3D8AFEE7E22ABDB77DD099949EF2488149B33864A18ECAF53CDF39A5E + 6162AD44412762D08D56069D9761808A937620C5F7E09B90C3C932EFC63B8C4D + 0333FD5A581BA94B91CB340AA1A106E91D8406C0E29907EBC237BEFFCF6BF07E + 517C5D524B96C24736CD0474905648E77063D911F297B4406E9BB692412EAA34 + C8ECCA2524F1E969592815F3E205B1707674B2B0AF41A1E5D8EFF68A96F0BA17 + 9DFC1D8B85E1CC9B04264847FB827B585CC2B0AEB34C43582EC7D2E708CF9323 + 4B45377773A3C0749E3345238557A3B94FEDEAF412CDBC4384F6FE80AED1AF36 + 310A1A674FABAF4F93C22B9A5586DC332983ECBD4670B7C3EF346E9A811ACF96 + 5D0C05B26FF6BBC6A8644EBC39F8E5BDE19CA70680B619836359208B04E5867C + 10376B96D4876D923A95AB2C722BA4146468CFAE6F4CE13391AA5B4190CF6331 + 6EB5E8511F1116807C4CB892C6B1C038508C65C4C767B56F131B412FAA623DC3 + D3FA39324FF493584C1E281736360BBAD8A559EB65709E2F6A74E7F51E1CA26E + D8C8B7375AEE2D68119FAAEC0468AA16B6AAEC65FC47791764CF00AAE0FEB0A5 + AC05CDAAFF9A42733F8114FB7A4F7826944448133CFCC2557CC6D0195EB993A9 + 151A143526CC04E50CCF2347D931D028BBBA18147ECB62B75B431474AC085E90 + 35C8CD22B6E68310AD2BB1C0E876A9404251BF83BBF6ADC027700F5FFE1F78DC + 7C32FC6B4BF66E520A6DF9A59A1E + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /EYHIUN+CMMI7 findfont /Encoding get + dup 0 /.notdef put + pop + end + /EYHIUN+CMMI7 findfont /Encoding get + dup 0 /.notdef put + dup 28 /tau put + dup 59 /comma put + dup 60 /.notdef put + dup 62 /.notdef put + dup 68 /.notdef put + dup 70 /.notdef put + dup 73 /.notdef put + dup 80 /.notdef put + dup 84 /.notdef put + dup 86 /.notdef put + dup 97 /.notdef put + dup 100 /.notdef put + dup 101 /.notdef put + dup 102 /.notdef put + dup 105 /.notdef put + dup 108 /.notdef put + dup 110 /.notdef put + dup 111 /.notdef put + dup 112 /.notdef put + dup 115 /.notdef put + dup 116 /.notdef put + dup 120 /.notdef put + dup 121 /.notdef put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [ 1 /dotlessi/caron 28 /tau 32 /space/exclam/quotedbl + /numbersign/dollar/percent/ampersand/quotesingle/parenleft + /parenright/asterisk/plus/comma/hyphen/period + /slash/zero/one/two/three/four + /five/six/seven/eight/nine/colon + /comma/less/equal/greater/question/at + /A/B/C/D/E/F + /G/H/I/J/K/L + /M/N/O/P/Q/R + /S/T/U/V/W/X + /Y/Z/bracketleft/backslash/bracketright/asciicircum + /underscore/grave/a/b/c/d + /e/f/g/h/i/j + /k/l/m/n/o/p + /q/r/s/t/u/v + /w/x/y/z/braceleft/bar + /braceright/asciitilde/bullet/Euro/bullet/quotesinglbase + /florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex + /perthousand/Scaron/guilsinglleft/OE/bullet/Zcaron + /bullet/bullet/quoteleft/quoteright/quotedblleft/quotedblright + /bullet/endash/emdash/tilde/trademark/scaron + /guilsinglright/oe/bullet/zcaron/Ydieresis/space + /exclamdown/cent/sterling/currency/yen/brokenbar + /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot + /hyphen/registered/macron/degree/plusminus/twosuperior + /threesuperior/acute/mu/paragraph/periodcentered/cedilla + /onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters + /questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis + /Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex + /Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth + /Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis + /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis + /Yacute/Thorn/germandbls/agrave/aacute/acircumflex + /atilde/adieresis/aring/ae/ccedilla/egrave + /eacute/ecircumflex/edieresis/igrave/iacute/icircumflex + /idieresis/eth/ntilde/ograve/oacute/ocircumflex + /otilde/odieresis/divide/oslash/ugrave/uacute + /ucircumflex/udieresis/yacute/thorn/ydieresis + /N55/EYHIUN+CMMI7 -1 TZG + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font KTYNWY+CMSY5 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMSY5) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /KTYNWY+CMSY5 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { 0 0 370 559 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3ECB48FA43E4 + 4BE895991CB9C373C80EADF956F3CFF9953ED829311EA5C29ADABDA9B531D51E + 0E505FCDAE7E6EE841FB8BA6ABD575F8F932F2DBA26DD9F78D8861CC40A4D539 + 7F76C11ECF3859C3C67E4E5D79B4906B3752C9691C4D80E80213673F95E2F722 + FC51692F2F1F81A1F6E1A1D617FCE9082D4E318B4DA60F15B2E1B8DD32E0F349 + 9CEA3AFBC4E8E4BC5174CB0C0ECBBEF8C4F2D4EB39EF0546CF7DCF23AA7A0474 + D08B80DDCD2E71E13AC990F8187CC30B422450A4DCF69DBB9303EB78E20DD9CE + A45DBEE2EFAA128D1DC384B99BDF7F23606ADEF6FAC2ECB4EE3BB04EF3CA2114 + 3D3DD2C65A7D211F910F9603D91AC026F7013CE528D2CAA89A4C631F9332AA21 + 44955DB824F1311CB3C0FD16306610C67BD29C37F895A134CFE3D190517042F1 + 08D2DCF9B336EBDEFF43DBE4A8BB393868280C4BC513CB40E49262ADE001636F + 6B8A78486BDB26EC6A8B7AFD2FFD2AF28866490D6D14FB2655210BF63B08243C + D97C29D68AD7F6F345EF3829BC1FE838BE346DC79FA81A7B3BFB880CCFA5BE78 + 7A19677414B8528CEFF4D463AE3E256FA6212945C189DD73AD9A9BA7A0828585 + A4D65D889EEAEDC17FF6E0A6B2DB2E0280D04360D5176310218D97BB8489C4FD + 32BD330998539D138E2924B956D47E7DD99E56B5A47B4F62BD91E388874D0D19 + DCED323C86AAD7435F283C2D1EC172F45CC832A027A09F9C90C0334874D60C73 + F6C4F2F0EC3F6F2BC55BB14355871C5C46AB8869950915B825B90A9B2916131C + 8AB4FA3C598B6F6A7E1A7811B516FE4687C9316ECFF432BBE2EAC4A90688F2A3 + C3F1E0BF43638D78BC183AEB1A03666B824E26E48AB165E30ED3B7EB0D3035C5 + 14E2267E90311A3C6ED8C1CE09375CF0411B4F757D391B5008B3F287E89D9C3C + 9A33BE76903B19B620DB205CB0E14760A29C8DBF2BCED8574A27AC3B9025BBF3 + 6AB5762576241DF52F02CA1AC446AE3AD89F8A6C2D14AD6BF0273A295A901BE1 + 5270F61FD34D8E7F67C5633F461B980D41DF8FB0E0C27CA64906E49D2BE599EB + AC23A926B5CB626181AD8F8F3087A463C7DAC754076C807D7ABFF0A49115A2F4 + 22D5855BAAC25A28D0C3DCAD0C25FCF226D8DFBFA182C822EF203517724B3378 + D4F4D53FAB845466B3D48C41B0FEEE9F76753C835ACCF3EB75D4D4F4295A89A3 + BE1E974E0F025157A73245F7EF7FC5CC3A962215C3A82BFDB44BD96FF1EE96FE + BB5858952302C14962FA83528B7F2832ECCCF131F42736181EB97E6350AE4467 + 0D2B69D41B13E577AF1305F58DFB7130046A23D4442F99B84CDE4D09BF44C66E + 1ECE871524F344C22E8FDF985720D6612E57EC16AB767E7986E0914367D3265A + 7F62C57245C3CB368AD4FA5301A1E3F70687368D32EB75C14611134C2FCCB071 + EC4A3066EEBDACD0B843C37F71116E76D1F35E81FB19A146F6C994746CF7884E + A32E96403801D40BAF0015A59649B2AC6D0676D1901C06CF3924498E7B473123 + 9C688EBDE2F3372D90495D4599AB0BB3DA8447D61753EB670D54724F3A40EEE2 + F4EBC573153BE2F0F9FD53302EFBA66D24B22E5F93CDC6178C00A4132F289674 + + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /KTYNWY+CMSY5 findfont /Encoding get + dup 0 /.notdef put + pop + end + /KTYNWY+CMSY5 findfont /Encoding get + dup 0 /.notdef put + dup 48 /prime put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [ 1 /dotlessi/caron 32 /space/exclam/quotedbl/numbersign + /dollar/percent/ampersand/quotesingle/parenleft/parenright + /asterisk/plus/comma/hyphen/period/slash + /prime/one/two/three/four/five + /six/seven/eight/nine/colon/semicolon + /less/equal/greater/question/at/A + /B/C/D/E/F/G + /H/I/J/K/L/M + /N/O/P/Q/R/S + /T/U/V/W/X/Y + /Z/bracketleft/backslash/bracketright/asciicircum/underscore + /grave/a/b/c/d/e + /f/g/h/i/j/k + /l/m/n/o/p/q + /r/s/t/u/v/w + /x/y/z/braceleft/bar/braceright + /asciitilde/bullet/Euro/bullet/quotesinglbase/florin + /quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand + /Scaron/guilsinglleft/OE/bullet/Zcaron/bullet + /bullet/quoteleft/quoteright/quotedblleft/quotedblright/bullet + /endash/emdash/tilde/trademark/scaron/guilsinglright + /oe/bullet/zcaron/Ydieresis/space/exclamdown + /cent/sterling/currency/yen/brokenbar/section + /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen + /registered/macron/degree/plusminus/twosuperior/threesuperior + /acute/mu/paragraph/periodcentered/cedilla/onesuperior + /ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown + /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring + /AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis + /Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde + /Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply + /Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute + /Thorn/germandbls/agrave/aacute/acircumflex/atilde + /adieresis/aring/ae/ccedilla/egrave/eacute + /ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis + /eth/ntilde/ograve/oacute/ocircumflex/otilde + /odieresis/divide/oslash/ugrave/uacute/ucircumflex + /udieresis/yacute/thorn/ydieresis + /N59/KTYNWY+CMSY5 -1 TZG + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font YMUYWM+CMR5 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMR5) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /YMUYWM+CMR5 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { 0 -22 600 705 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3EC8DC423323 + 00A152553EC9C9C51591C81BB5A2F58753878D92B1C73E948BB360F467A7D593 + 2446E52E22935D5D0316634839C917AE2BE363D6AE3760363F748EAAEAD9AB74 + D863835F45718D23FB3980D0C645610BF765847F4BC5CB03391BDC9D40A6A460 + ABF0D95BB6A176DB5088A1068A0DFDC266C25ADCBEF3E5472E03E0D29BC6801F + A2AEAD77E33C80C0DC39DD6133A821B832A2E5715CD8DD3C7704BE0CE847FD4E + 30AAA6F252821D2FCC05C18620253ABD203C35429EE66F4003EA4E043FAB487A + AA0B453226EB997AE835F0E07428EDEC5D55E1A7F48C819FB07FF697ECA46252 + 3CA8EA61658037881234B88B06FA49A0B6F0B4002EC859EA915E6E7C1CAE0B15 + 55727665538E3D6ACAEACCF61B15CFF0D872C8A3937818698B094DF936828217 + E95123B9DE1CDCC821F21C5E651BFFAAEB6E04030F3EA148F44DDC6DE992A91D + ABA8C64DEB72951AFA7D0BF4C5FFBC789B032614B2403DEA15A9E421B1C3D23D + F142C96D26D415393FB33BFA768ECB4D73AAD753863CC5A8B9C4C72A6F2AA5C0 + F52AC09752851B7EF9BAB899D3E14A33B9ABFAF0DFD6FADED6D7561EF9286B62 + 98D35AA46972372F6F1932D5DB6CC2B87C8A5A01A86F6867E6E1F1463D47C7DC + A85DA0723FE88F4AF6DF4D4AAAA2FC754F1B660C620F13864ED955EDE131789F + 57C446836FCDBCA7B4360C67D7AF1FE4F5EE37C2DEC91CFCFD7EC87D3B41672C + 3C04E744DF761FAF6050E6471A24A1D92E3589F9F903B2F4350B55DACC342D14 + FBE4FB2E63220BF8F536F1EDBF8D8AB44F89DE4B9CC851F6C98C6E047DE87FBE + 90812837F2C3962E81B809BB9D88DC8C31B701D6EA73C9398D7DD2B228CFDF03 + 2914CEA9B16BCEC466D14C9544BC9D3A57A3D1A2BD6ADE840413A563224EB73E + 64D2EE662F786B380E0E7175BD969A7353E97FE0BFE6A09D84B5DCC28560F033 + FA38A9A1B3755C89EB161377B5A6C5E3DF083FD761B8DD1180BE7A81BBB2397C + 6957DD440C872F7EE4B59B6BC69A57BB952C02516AB0EED513599C7E47E47A0E + 6DFFA51997F735CE07B727729BDABDB99AA3BDF43ED8ADFB04D2A45787A43148 + 9CA475E3AEFFB84589FF5C5094DAFCEA9A88A0929319E4E6785B0339D5759EAE + AC2CA0951E8D68D025480EB1F41A018EDCF4BD292401AB7940B4B329FB463D8E + 797C753F54F0082746BA6635AFF39DB0B4C07ACE01B114E2907EEB506E930F07 + D87087CFACDAE63744B1BD592D4792035D5C4B4DE95A9014E391D481711BB870 + 26701ACF9EC293ECF0D13C3435FF313F42EA25A7F419AE1786C79C4D670F490E + 41C7DDFB526E0AF0D97F684B4E362D2006EAAFDCE8B9D27CD5567615CA402869 + CB36443DD9364421FDDAB16245ED27E0E88C3AB7DEBDFA11E2698305E6C66296 + F3CD0A62CF30E593C2FEB29A013AE0340B86265A23D55D6B282B252A381CC577 + 4E690CAA751E09942A1CEF0BEAC2E65F7C7D4330447E8C022E2AA7BB5FD53E9E + BAC6F9CA8AAAFAACBC96DC9C0220F8B0E9BBF62D6294F43A09847FF28F41EAEF + C3782FED6AB513D856EAB36D762BF840B379D89BF7957BD489029AA4B8DAE10E + 1C62E1D02877397C5AE85DA222E7D2A9B2BFE87BDC91ABF8BEE28C00A21CBB76 + 0D1F7BCFDA118E056058D1456A22D2151C66037C530F6F1020B6FE7D93B85737 + 69AC268804C50CE5AB91C951AAE1977AB40D10961083C2C283AE9F5D38C5C287 + 068DCC6356BB42989CCA17256C96D77918BE9A0C5B91EC18A480DD4AAD926782 + 8616E61AF5088C6B64AE539EA0D69C0CDB7552BB9C221A8D63401B1788F5408D + 93204AFEC5EC1D625B0CB5A3FCD9C3925322C26795FA7B1994B9F97A060A569B + 4D8F1ED937DFB7202306117E67043AA906AD7C4A80474DE27C0BC6DAFC50F110 + 184A6883BB74B369120715CD64961DAC9AF0AF833A6D0D9CBD15BA69E1D09EA3 + 56CC53E6019F0328225A69CFFE789A84284EC35F22F2D0C567AA5B2AD0292243 + 75E2875C2900DF03771FA369B72BA787B178176E95B42BD7969DF38DDA0F26C7 + A2DF8AA727521E4FEF5F96938F6E1522A5F867D843913C5BF76ECD0B1D534E6B + 01E31D051D5C86B03A273082AC2300588B3FB35FE9FA3DEE2879385109B0F933 + FCC13AC3DCDC76F9B70492ED89AC9A0DFD438807CEB81E9CF9BE119F484303BA + 022C1902D692F120115DBD58D22888485C56F26A5084B94E30E20E2E6CA9E894 + 591BD3A644E439DF45AC8A2CB0525B8AB3B5DA40BF021E6B26FF16E8C122361B + E6DB1BDC06AD24397CDFBDDBC0EE7BFB8628D64A5F9807B8875DFC50CC9EC293 + 596427150D86D50BDAF5D43DB809AA7EED799DCF6D83DB09C7CF0C737CA23C7D + 98B11217C01894C3900CB8FF65370DC8F53B41C7A8FB42D36C9EBFA25821CE3E + 5D1E7E51FCD056B43CA1AD0F0D0AB20C4AD1573AB4FFA420 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /YMUYWM+CMR5 findfont /Encoding get + dup 0 /.notdef put + pop + end + /YMUYWM+CMR5 findfont /Encoding get + dup 0 /.notdef put + dup 49 /.notdef put + dup 50 /.notdef put + dup 51 /.notdef put + dup 63 /.notdef put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [/N61/YMUYWM+CMR5 1 TZG + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font VZBYBP+CMTI7 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMTI7) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /VZBYBP+CMTI7 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { -17 -249 941 750 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3ECB48FA43E4 + 4BE895991CB9C373C80EADF956F3CFF9953ED829311EA5C29ADABDA9B531D51E + 0E505FCDAE7E6EE841FB8BA6ABD575F8F932F2DBA26DD9F78D8861CC40A4D539 + 7F76C11ECF3859C3C67E4E5D79B4906B3752C9691C4D80E80213673F95E2F722 + FC51692F2F1F81A1F6E1A1D617FCE9082D4E318B4DA60F15B2E1B8DD32E0F349 + 9CEA3AFBC4E8E042A8D26EE4CE54E68520C67ABE5AF924AA03D08256FF3B8F3A + 16741F0607ACF4E5E95FAC5199AE0E8F0A3DAE2D00459044288FD657C9423CA3 + B16757500B40E14658EECB52999D9BBCB2F9451E029B13BEB7820C5559D43D8D + DCF5AE193529168152AD7ADA0D800FD0C4BFA5D44B47B1501FFC75E26FFCD344 + 4B33DBFDF01FDA3851FD177461956867D9A1092A52BA6FEB8202F48DB60D3A28 + 58B75EAD2678D411DD7E754F275092748C3F0B5EEF76650BE89983A156742C4C + FCA371D0FB5B00BE27AD3FD97EFD18376B23E44FEB70BC6EF89D2730F637813B + 1F2ECE4960562D51795561102340455E278A2C4D3E1633620A62429C32EE7AF4 + 7DD5C5016897BD4953590A4E7E42ECCA35A37EDFF5FDC08D8331B5585BDDAA7B + 15B3250C27AEB607475592A877546FF0A68FFE8968FE5C9E949345AA0ED18E0E + 592EEA3108016E2A0BFBD042E3F3A43D8DE392B7ECB0514D3B1EEBA6B57593B3 + 31DD305F5526A47598E282784E7A911C046788D667478888DBD1CAEDF784FB7A + DBA38412DAB372F10B131D71337A907376CFED20479FFF96E24C70054E3A5F16 + 7BADE03D9B8860D5503DC57BE3CDB3E28A1B9313F517FD93A7698CE23DA8EF49 + DE9093BFC01730B3879AB23B84318C11D05672684B0043B8E1E47C733F6ED43B + 30F8F68D6E64960649212276032728D9820686DE3201AD5E3CB79C3EA9D376DC + 492DA63B3DA12BC2CDEE1EF69B17E45497F3641E41A265C666F029712FF2B0BA + 77AF510B0D08D1DD3627ADE13E854C4C74EDB15DC3A77D7687D8CE57D72020F3 + 1969BC1709581E3B2D044D6D265F81E6C12D9CB8EC8544532A55D1A72D49BCED + DF2E825205DF8345507DB6AA8577801858CBF66C73D51AD58F90DA20BF6AEFDF + 9DB4946FCD020CC0693AED34F758133743D1F03ADE34473EB017864BE68C1F27 + 23231609C58F47DDDBFF3628368528DE15D4DB7FEABAF8C2D220274EFC76065A + 53C3104643954CDFB90D949549315DD15D6CD69F7D522B84498216D3A6384CF2 + 8896B00CD2D9B6023C1C58948DAF1733F9118FF462A0631C2A036F7E6AFC91F1 + CCF73AF3AD8886051D4C3F9B43CF8BAC6661ED5A6D84A53DA528ABB8E7BDFAF9 + C67D29B306B4707196412D15FD2E686C8B0DC75E0A6537297EAEDB0E8F5CE6AA + 4431EC455F8B494A1602352C998EAA2D1A01ABF89BD2480F69DDD790D0BFF591 + 338486CB7D27179C4422FF87CD299EE74A58F25534E09D86EE568B971DCDCD52 + 7AC1767B677508513ACC32B8CBA6C67029481BD92001FBA16CA7803EE2AD5373 + F6751F2756B49A2CBC867C4C350B2EC9E6091C9C9005CDE5ABCE6B0E70BF4DFC + CF50C43B5E2BFCC900D066329A984832B6B1148F65681F31C069230EC4BCC1A3 + F8B925D3AD24EFEE7468AFEFF0AEF3F3D1EB2E83B173DE4EA40A99D367049D5B + 6CC78374F15A2F3C125CBD079BCC22DCDF445A384A5C44BA23E880A32B91447D + 25BCB9EC8048A8CED27A5561F2239EA6B9E62D4E89C66AE044EFFDCFD8DF5310 + EBB40C87AB2B326BBF08B7C6601CFAF8B3F794292A5DA45DF696092EAEB58E81 + DC16F0B914944EBE736326DCE44325596FC1C7837CE1C8C1DFEB6BFCFA6C9335 + 8702A4FA5A20EF3A02C16EAF2E457F0C1D2E965AB0E34AB7859593BFD4E18EFD + E88541C82A83D60C392EB8E0725398C26CBF5B798ABCB8CF4EB9A70D062E3A0E + B8D875DD5FD2D9CC5883103847263A4819C1FC49C8FCAF60E71E705FFEBA2C42 + 19A981341979AC24584C859C6C3FF17D2D9E927A4818DD08A74BA2FDCD3BA02D + D7D3960B96C2887B607034839711B41594E4CB4DEC42BB677F5EEB5DCC740329 + E1C8F98A4C0AA7E3682C01684469B42ECE8CBCBAD478C11DBF9C485A4C86B805 + 1185A445C9ECC50255564230562A03E17295DA7870D0FFDDA1BAE4D0CEAD0FAA + 03375BF936C5DC9DB0B3A7A1C929FB5D007293C5E17967CE1FF90446C902C6AE + D024F1F476728E4AE88E6DD6D8E19D87B8D9A601DBEEAADD92802CA44AECBCE9 + F6C5BD8BAEF02568BDB0DBA9276CE5EA73674DCDFA5768EF920FF539692FBBB6 + BE5919A44CAD8CA12168F9602971ABC036B8CCDD89906E8C292B113B5E70738E + FA3C916DB69A23BFD4C44D54659FA13543983F1F109C10BAB324ECDF6B8C0970 + 51E654219456727B93DF60A6B3B2D8331A74293AE6177BB4211D1A3E23B82BDA + F196504B2898616FA42528A1A4250B97BBF93BABE7B4043EFA48816B738C005F + 2B8CF9CAABF7FDA7CB822BD40587AF0528B8A43280DB85A137C55A71B65E3087 + 131540892AC86939F87E5D417965E609D9C2F5EF4FF4FA485D217C7607C278B5 + 7E5CAEE2B7C9D38F57EF70562F49EBA0F263FDC7B515983E28A4C79746FADB9D + 64EFFB326A134535524FFEEB32513C298C0EFA2DBCDCF00580637BA7C27A0B1A + F7CD8F4E54D921400C15DA35875648E80E69B2AFEA0D7CA6F2A8EE5ABD25D5FA + 0CA29AFA471C1A16F0F0346ECDE5538E6970023CAE896B2CEA55E4D002930F6C + 23214C8EA1A97D2F44A2BF384B8C25C3356444D73B286E498A553BC83B068C57 + CE3BD5873575FE8A0874DC9876C535C7318731AE7345C281D27D6819AA0492ED + 09FE697CAD89B3EA117653C7A8E85AFB407BCDC1DD87BA0A344F0A5DD33ABA45 + 615C747AACCF2A51F66A3D0DB0080AB61963829FBFAE77384E5281A2D3504412 + E3CCDC25697D126977F108C77A6FC152FC94B6E76FE6949D576E284EB8C85131 + 002350DC66074A352891CDA46144912D2652445F09E429BD34EBC1BEF9913A96 + 46601D2FC4B764E178C245A4EF567F24FCF43C0ED6BA8E4D31CBCDBA5B1C08BA + 98F9F9F6371927BA73CAEA4913EF86F125CC7C15CB70E2CAA01B6FFFF8F58F53 + 46DCCBF3B92B92388A2D8184B6C9D09C5FD4FDA37F6C67613F53B5F8AB2CF72B + 3A2D51C53C30BCEDBAF325C993493B9FE762D56187DDDDCBAC62AE0B5230CF41 + D9AD6EF207A82722521538B6B77011B30A20A1EC7DE02984C908BA4701F26510 + A2284CB9846EA973653B7A6CF5F91D4DE86EA52352F950DE8966C4B33DCC7D85 + 4CA7838690C22AACB1A7DDAF4DCE2EFACB32A26619F7CEC5AE4347231E7FBF95 + 9CAD8F02CA547381D235E8289008655727812EF38A9B320A94DA2E87828C6E03 + DA82CC20A8025A698E16913D341A2F32E7718DF1D86B64C830E9A6925267F896 + C73AE056CFB0139E5D667AE428E26B83712CCD42E19C061A0C4BB59E5FA526D9 + ACE7BC81DA261D67CE9A4C72100EBD5AC165993DD74B7DC9E3AEF465182CC5F2 + 519BB21C9B4CDBA22275D1E3212E83A774C06B772355C78F92DD81E65F682BE2 + DF38BF5EF03968981EA284191209558FD657F7EE20CE9F90590304067F2617A6 + E49A44DB32CA7D829389044184D36581FE50D5F54DE1E7ADCA6E13D212D6DE74 + 59E13AD6C738D6D2BFAFBD167542D8B419263D664C74689AE1DC44A306AAD891 + 9726AF0670B2C530A98EB2289DE5126BA1AAD45E7FEAADF9C0BF230FEE2F4BA1 + 1FA16C6C39DA1E520D97192C850FE7D4154075504A4768D76865419B3D0C92B8 + 79F9A63A3F4AB939F10335FA1B5692D558ADC78C42630B3F84458F94C623A5EA + AACF4E905097941CD124FFC14F282224B6C508A69515AACD5CC22E56D343E8B5 + 0FE75EA460A3F7D39F007D5ABFE4754C9D53D4176C95152AFA308132BFB1D2D3 + C8EFCAD5C72F8E46CE02649632CC609866AF3BF2E881601A3F1367096AF04FC9 + 72CEDD7412DDCCB961C452022D21020B891070DB3A26A11A828323A52A3A821D + C21486FD4CC80229631EFE3908EE2CD5A4046007C03AF5D94061E853E43F5186 + C9B1583C6AA2EC03B5A5611AACC8BD520BB9DCE07F13C8383DA233C0E2B87EB1 + 99695A8D081DAA2B0D87DFC8881AA03BF2A7D80304122A91F91748B3B6329DD7 + 9097543DE3306FB6BB71E340B452EA07A04DBB31655E0A6ADDC8CD2124AD5826 + 632EAA2210158555AB8B1FAAEE33A57EB6944C60C3BAB0CDB03BDB99F263C781 + 2315FC2E785CD922FDFA832038E1B3CCE6DA7B41FE91B56CBD835ECCE9139B20 + 797E92BEC659E372F716C7358F9203341AA9807C3C022596C4C7C0AA955F9D71 + DC79D31223FB7978756D1B01C6241DEFB924CEFCB2206A40E66F347DA1E60BEA + 0228F5D9B243A248AABC7298E346124F28C1F12CF9576D9DB379C23965B7FC51 + 7B7383053A0676B18CC7C6418E4F33D46E5A09701BECA9D5C71CFE0DEC7F0CE1 + BA12E21F726745C55A47C94AD9592A68FA637E2F80BFB34CCDFB72E27DDA802B + 1996CCC179FC6798E67B3E639D86143C5B9A56C363AEC3ECB4B7D1746E8B829B + 813ACBDB57A31B62079CB08FD10AECFF52124C3CE4B63980197C0C1C5E0BD1A1 + CC4E6C3D85D734D6FD6F0FAF470C035364E0FDE7C71CC72191930DC68052CF1C + 7067C98627C114F90162C80EE7D7AB158EF041F462FE8251EAEB33DDAACC9CED + 85C71D467125ED3CBE641E2775B0F9ECDB78A81D89B27152532DF606891D1B74 + F6FAED948D96BAE2A72441C7DDD7F7FA1C9A593E211942BBBE4ED1A413260A56 + AE237EB11D3F073F9FBD333343B14E05C4A424BFC59038C03CAF22C5BB1D07DD + 4B1388AD9362046E008EC541DE5A133044EA680790024DB1DFFAC7511D6B50D2 + 2797BBB054546F64E37AFEC4776A639C108B287B5A126AD7AF5583E6EF966DA7 + E33BC4170996F234DDDA35F95DEBEC41624F6CCAD912DA6890729593C3F4AC75 + 3BC79029CD0ADE83F41612B48A4467EA2F11CA64B0297BA988AD1941386E7B55 + 4CDCB506BB462D9B09BCB0CCE5B2B93793C66DED262D0E55179738A7CC239E68 + D602D00545F51061BA79FA529A5B06C12EE1D3974D8B2586CAC398D1CF4548E7 + A36DE5AB22008B3CC916095BC6514B42E121479659306DBED486ECDD856378C1 + 3814D1C909E39E2525259144E1A1A5CA7DB8615D3B3828CC10D79493BCDB4904 + 1C9F7CBB9A3431FEF684131BA9B490CAF3BD81C37FB6A2571D280A39DD806E27 + 7623DE37E54D5C3D5CED38BCC37B4176107ACF4EF69005BC9E2C0F53FB6694F2 + 610B4BFE8C7A03E40F28F42C3734E546720CFF8EDA21CA563CB3D3C3C2C65294 + 678DF0EBE2D18F76F69AA8E53B7E106400874F77FE86B0D4A22B8DD8AAE550FE + 8A075133DFED61D56738A11A58EF058D3D0E1F1B271B594151BE07EFDA3F8B91 + EA73DC35B7301186AD4FC85A3B6D6FBF2F80A295041F4A1FC0D882730C4D0600 + 401DFFEF29A8B68E159661ADA6A2733FEF62FCF645D728D0968A5B2646C03BAB + 2C0E9623925B048E2473C697BC0147A9B8953977B1C9C9EE898E09F23B7FE164 + 569A5E5345BD2D6A5FDE0E6143233F981B8317ACB5436BF259EFFB92CB54D5FE + 15DAD5E734A34B81D18994D69DD991F5AEAE5E13E4AC9605C3406A4EB01D1A53 + 87DBF3FF82E56955301F3970645B89E0F0DF94AE0C1D39E17501E641AD4D9246 + 956B9534D575CF5DB2F1F068CD63D71E3C5C17B1138A34FED6F6F24EB94318C1 + B5C64EF86F96BBC0B85CBE9E87DBC012D00554E1549DB52E76B911CA24CCE215 + E81D5300DBCF7D62AF31235261D7BA23CEEA2164AA76A463BF47AEF664536CA0 + C325D1B5E88A6CCFF282CF4ECD31D268348A505AF9E508A4AB976511734889F4 + EF465AF84FEA0013B0F2AF60399563E98A26AFBD984796A26405AB74F830F52F + 51C1B3B7C55C9463B33FE85FD78DFD3C97284E062E068391E32ED0B6458B494C + 1D53C9F26E9EDF448FF34F52705E6F4163235E2E61A956A64A62E9C51036ACEA + 95FE156AE5992DC3110F7C9D669917B2F43291BBA01E1655616B74B5B6530441 + B7289DA233C70F5B0A986C7BC53041FA975FA6D2A5981B53F13E61012F12E34E + 2B4296AD352A97F1BF7C8AE066D786EB94EA1776FCC1F413465E9FFF153D3B5F + FBCCFAC9F6A6DC66E4D3205925228229AD8A5320B68D1BBD8140676522CFC0C2 + 26804BD96356B7B8D32B05182BB21CC4870DAAC3B874BC36EF9991C054F3AC62 + 4C6AA4EEEBC11ACB177CCEB8AE6CF98F77E76638DE17D49D08FB5F97752D68D4 + D75683E7C6449D2F5C8A97CFEAF44E17C119CDB45B6FCC18ED5A0B4F13862D4A + E6EE751001BE3AE3C33E8ECC6E6B8AE09796BF497D8B2A9BC32526863BA30554 + F952F5477F4E884D7BCD2F97D4C2770E738AF490DF47DC0041A512CFE58520F8 + A068CBE5133D051CBF38E1037E07A4061C2740C541BB50DC39F97CD16299340D + EBF0B49BA9C56444D31CD854E38007471648BCCEF19E1B089F1075BFF39626AF + D4EAE33DCCD577225425F0CCA0448ADC9D91937A16A8831C72480D7E0ECDE6E4 + 17C540A7CCBF1BD98B840AAD575C42E4B5A425A105C117C04BD324C27CED8A66 + D1B4BCA01190C8E60968F426CD6D55705C7825299E79F2F1C99141C557DFFD02 + 48BF469C00222E8F57631CD174060991831EBD699EBF4F3E1E03C1D29C783AC7 + 365DA46AC29972DE44DF414BF5FF764002E0706B0260EB0CD01D49FFD3A417EF + 7C69B0FE8787C315D209807FDC8E919355BBDF9A7E1DB350BCA6A3E3DA939C50 + 92B8FA9CCDD54E15B23991074F3A755D7D36E532678D5474C4D0079A9BED7205 + 470B7CC3C335E36C186530B7D3697DFD18A696FD6730AD490286E0C0481E342B + 49F30829D8DC8DE8A4B96DE4B878969D2A56D69B05AA41EC5660FB9744B0EE2F + 1B8FF8ECACF6C11E25BA2840F389F7F4C8FB17552CB453593E18F015E92DCB07 + 89DC4EE0189F52C8B34F19EFD713F50298D6E4BEDE5293865456159EE6B8A21F + BBA01F37883581BDD21F77C10F40EB279BDBFE85F81798CB08911CABBC5B8870 + 639AF71A8EB087A14BF5172202F37FE2B80993B5C9E26BDE706F7AF001E805D4 + B807B49480D958E558D7869AD7DD44CAF46B7E725414FCBC0A99DE0FFB38B3D8 + A5AAF4C79E145F872C47F8E6F9E8B6BEC496081BB840E18C4942F59D3189C162 + C339E22A266BFF398FCBE7578FCC1D66C5C10B60768D504F4AEF2D5BF86AEF7C + EC177AF8C9223A84BEA683C39143CDE1654F4F07D45D803E735A699E4983DC37 + A12DCCC867F016FA7E05C36F9B643FA2B15810B69717C2822F3E47C1C15E9A5F + 0E8285ADB2C7A01475E1AC5781B42823FE0BA589E52031F98FC59C07531FC959 + 4DA334AD5234A608AAEDE680B3807F40FC33300CA7CF0335AC4FCCD78DE19025 + E1FB697AD7BFB04E92F064972CC4BF4C4DF7ACC7E9C5FD53CB5D474C9C6C9644 + BD1BC09A50D0EE64F88AB787CB42F9C8941C15EE06B11352EB8F759AE4325D18 + DB + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /VZBYBP+CMTI7 findfont /Encoding get + dup 0 /.notdef put + pop + end + /VZBYBP+CMTI7 findfont /Encoding get + dup 0 /.notdef put + dup 40 /.notdef put + dup 41 /.notdef put + dup 45 /.notdef put + dup 72 /.notdef put + dup 73 /.notdef put + dup 84 /.notdef put + dup 97 /.notdef put + dup 100 /.notdef put + dup 101 /.notdef put + dup 102 /.notdef put + dup 103 /.notdef put + dup 104 /.notdef put + dup 105 /.notdef put + dup 110 /.notdef put + dup 111 /.notdef put + dup 112 /.notdef put + dup 114 /.notdef put + dup 115 /.notdef put + dup 116 /.notdef put + dup 117 /.notdef put + dup 119 /.notdef put + dup 121 /.notdef put + dup 173 /hyphen put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [/N47/VZBYBP+CMTI7 1 TZG + %%IncludeResource Helvetica-Bold + [/N7/Helvetica-Bold -1 TZ + %%IncludeResource Helvetica + [ 32 /space/exclam/quotedbl/numbersign/dollar/percent + /ampersand/quoteright/parenleft/parenright/asterisk/plus + /comma/hyphen/period/slash/zero/one + /two/three/four/five/six/seven + /eight/nine/colon/semicolon/less/equal + /greater/question/at/A/B/C + /D/E/F/G/H/I + /J/K/L/M/N/O + /P/Q/R/S/T/U + /V/W/X/Y/Z/bracketleft + /backslash/bracketright/asciicircum/underscore/quoteleft/a + /b/c/d/e/f/g + /h/i/j/k/l/m + /n/o/p/q/r/s + /t/u/v/w/x/y + /z/braceleft/bar/braceright/asciitilde/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/exclamdown/cent/sterling + /fraction/yen/florin/section/currency/quotesingle + /quotedblleft/guillemotleft/guilsinglleft/hyphen/fi/fl + /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef + /paragraph/bullet/quotesinglbase/quotedblbase/quotedblright/guillemotright + /ellipsis/perthousand/.notdef/questiondown/.notdef/grave + /acute/circumflex/tilde/macron/breve/dotaccent + /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut + /ogonek/caron/emdash/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef + /.notdef/.notdef/Lslash/Oslash/OE/ordmasculine + /.notdef/.notdef/.notdef/.notdef/.notdef/ae + /.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef + /lslash/oslash/oe/germandbls/.notdef/.notdef + /.notdef/.notdef + /N8/Helvetica -1 TZ + %%IncludeResource Times-Italic + [/N11/Times-Italic -1 TZ + PDFVars/TermAll get exec end end + + %%EndSetup + %%Page: 1 1 + %%BeginPageSetup + userdict /pgsave save put + PDFVars begin PDF begin PDFVars/InitAll get exec + 0 0 612 792 true PDF begin PDFVars begin AS end end + %%EndPageSetup + 0 0 612 792 re + W + n + q + 0.0999908 0 0 0.0999908 0 0 cm + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 146.7 706.68 m + /N7 17.9327 Tf + (TransparentPointerCompressionfor) + [9.53969 6.95985 9.95997 10.9798 9.95997 10.9798 9.95995 6.95986 9.95995 10.9798 10.9198 + 11.2198 10.9798 4.97996 10.9798 5.99985 9.95995 11.9397 12.9597 10.9798 15.9598 10.9798 + 6.95986 9.95995 9.95998 9.95995 4.97996 10.9799 15.8999 5.63972 10.9798 6.95986 ] pdfxs + 206.7 686.76 m + (LinkedDataStructures) + [10.9798 4.97996 10.9798 9.95998 9.95995 15.9 12.9597 9.95998 5.99985 14.9401 11.9398 + 5.99985 6.95986 10.9798 9.95998 5.99985 10.9798 6.95986 9.95995 9.95998 ] pdfxs + 208.38 645.48 m + /N8 11.9552 Tf + (ChrisLattnerVikramS.Adve) + [8.63981 6.66002 4.13975 2.63981 9.29986 6.66002 6.65999 3.30001 3.30001 6.66002 6.65999 + 46.6201 7.97992 2.63981 6 3.84007 6.66002 13.2598 7.73976 6.66016 7.97992 6.65999 + 5.69986 6.66002 ] pdfxs + 193.38 633.6 m + (UniversityofIllinoisatUrbana\255Champaign) + [8.63982 6.65999 2.63981 5.69986 6.66002 3.95989 6 2.63983 3.29998 9.30018 6.66002 + 6.65992 3.30001 2.63981 2.63983 2.63981 6.66002 6.65999 2.63983 9.35985 6.66002 6.60016 + 8.63981 3.95992 6.66002 6.65999 6.66002 6.65999 3.95992 8.63981 6.66002 6.65999 9.95992 + 6.65999 6.66002 2.63981 6.66002 6.66002 ] pdfxs + 241.38 623.16 m + /N13 8.96638 Tf + (f) show + 246 623.16 m + /N15 8.96638 Tf + (lattner,vadve) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 + 4.67995 4.67993 ] pdfxs + 306.84 623.16 m + /N13 8.96638 Tf + (g) show + 311.46 623.16 m + /N15 8.96638 Tf + (@cs.uiuc.edu) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.73994 4.67995 4.73986 4.67995 + 4.67995 ] pdfxs + 53.8195 575.82 m + /N9 11.9552 Tf + (ABSTRACT) + [8.63982 7.97991 6.65999 7.97991 8.63982 7.9799 8.63982 7.9799 ] pdfxs + 53.8195 561.36 m + /N17 8.96638 Tf + (64-bitaddressspacesareincreasinglyimportantformode) + [4.62111 4.62111 3.06372 5.10016 2.57565 6.24266 4.62111 5.10016 5.10016 3.59992 4.0785 + 3.65645 6.35637 3.65645 5.10016 4.62111 4.08197 4.0785 6.29629 4.62111 3.59993 6.7785 + 2.57565 5.10016 4.08196 3.59993 4.0785 4.62111 3.65645 2.57565 5.10016 4.62111 2.57565 + 7.55636 2.57567 7.67579 5.34016 4.62109 3.59993 3.60273 4.62109 4.86018 6.24258 2.81963 + 4.62109 6.29978 7.67579 4.86094 5.10017 4.0785 ] pdfxs + (r) show + 287.759 561.36 m + (n) show + 53.8195 550.92 m + (applications,buttheycomeataprice:pointersusetwice) + [4.62111 5.10016 5.10016 2.57565 2.57565 4.08196 4.62111 3.60274 2.57565 4.62111 5.10015 + 3.65645 6.41581 5.10016 5.10016 7.38282 3.60275 5.10016 4.07849 8.57637 4.08197 4.62111 + 7.67576 7.85834 4.62111 7.32259 8.4011 5.10016 3.59993 2.57564 4.08197 4.07848 8.03574 + 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 3.59993 7.37658 5.10017 3.65645 7.85841 + 3.36289 6.65759 2.57564 4.08197 4.0785 ] pdfxs + 53.8195 540.42 m + (asmuchmemory,reducingthee\013ectivecachecapacityand) + [4.62111 6.77644 7.43562 5.10016 3.8418 8.33999 7.67578 4.07849 7.67578 4.62111 3.59993 + 4.07606 5.7558 3.59993 4.0785 5.10015 5.10016 4.08197 2.57565 5.10016 7.8611 3.60275 + 5.10016 7.31841 4.0785 5.40425 4.07849 4.08197 3.60275 2.57564 4.61605 7.25865 4.08197 + 4.62109 3.84181 5.10017 7.31841 4.08197 4.62109 5.10017 4.62109 4.08197 2.57567 3.36257 + 7.97628 4.62109 5.10017 5.10017 ] pdfxs + 53.8195 529.98 m + (memorybandwidthofthesystem\(comparedto32-bitad-) + [7.67578 4.07849 7.67578 4.62111 3.59993 8.45612 5.10016 4.62111 5.10016 5.10016 6.65758 + 2.57565 5.10016 3.60275 8.76008 4.62111 6.35973 3.60275 5.10016 7.73834 3.65645 4.85621 + 3.65646 3.60273 4.0785 11.2158 3.60275 4.08197 4.62109 7.67579 5.10017 4.62109 3.59993 + 4.0785 8.70024 3.60273 8.22101 4.62109 4.62109 3.06375 5.10017 2.57567 7.14265 4.62109 + 5.10017 3.06375 ] pdfxs + 53.8195 519.54 m + (dressspaces\).Thispaperpresentsasophisticated,auto-) + [5.10016 3.59993 4.07849 3.65644 7.9166 3.65644 5.10016 4.62111 4.08196 4.07849 3.65645 + 3.60275 10.2558 6.65758 5.10016 2.57565 7.9166 5.10016 4.62111 5.34032 4.0785 7.98007 + 5.10016 3.59993 4.07849 3.65646 4.07849 4.86024 3.60275 7.91637 8.94093 3.65645 4.62109 + 5.10017 5.10017 2.57567 3.65642 3.60273 2.57567 4.08197 4.62109 3.60273 4.0785 5.10017 + 7.07581 4.62109 5.10017 3.60273 4.62109 3.06375 ] pdfxs + 53.8195 509.04 m + (matictransformationthatshrinkspointersfrom64-bitst) + [7.67578 4.62111 3.60274 2.57565 7.62195 3.60274 3.59993 4.62111 5.10016 3.65644 2.81964 + 4.62111 3.59993 7.67578 4.62111 3.60275 2.57565 4.62111 8.58016 3.60275 5.10016 4.62111 + 7.1429 3.65645 5.10016 3.59993 2.57565 5.10016 4.85621 7.19645 5.34 4.62109 2.57567 + 4.86033 3.60273 4.0785 3.59993 7.19651 2.81963 3.59993 4.62109 11.2757 4.62109 4.62109 + 3.06375 5.10017 2.57567 3.60273 7.13635 3.60273 ] pdfxs + (o) show + 53.8195 498.601 m + (32-bits.Theapproachis\\macroscopic,"i.e.,itoperates) + [4.62111 4.62111 3.06372 5.10016 2.57565 3.60274 3.65644 6.77557 6.65758 5.10016 7.25842 + 4.62111 5.10016 5.10016 3.59993 4.62112 4.62111 3.84197 8.28023 2.57565 6.77659 4.62111 + 7.67578 4.62111 4.08197 3.59993 4.62111 3.65645 4.08197 4.62111 5.10016 2.57564 4.08197 + 2.57567 7.6811 2.57567 2.57567 4.07848 2.57567 5.69559 2.57567 6.72273 4.62109 5.34033 + 4.0785 3.59993 4.62109 3.60273 4.0785 6.83635 ] pdfxs + (o) show + 287.82 498.601 m + (n) show + 53.8195 488.161 m + (anentirelogicaldatastructureintheprogramatatime.It) + [4.62111 7.91999 4.07849 4.86 3.60274 2.57565 3.59993 6.89856 2.57565 4.62111 4.62111 + 2.57565 4.08196 4.62112 5.27573 5.10016 4.62111 3.60275 7.38111 3.65645 3.60275 3.59993 + 5.10016 4.08197 3.60275 5.10016 3.59993 6.9585 2.57565 7.92014 3.60275 5.10016 6.89849 + 5.10017 3.59993 4.62109 4.62109 3.59993 4.62112 10.4358 4.62109 6.42258 7.38117 3.60273 + 2.57567 7.67579 4.07848 6.59551 3.30018 3.60273 ] pdfxs + 53.8195 477.661 m + (allowsan) + [4.62111 2.57565 2.57565 4.38127 6.65758 5.93644 4.62111 5.10016 ] pdfxs + 92.6996 477.661 m + /N19 8.96638 Tf + (i) show + (nd) + [5.15848 4.68266 ] pdfxs + (i) show + (v) + [4.25804 ] pdfxs + (i) show + (dual) + [4.68268 4.92057 4.68268 2.33684 ] pdfxs + 135.3 477.661 m + /N17 8.96638 Tf + (datastructureinstanceorevenasubset) + [5.10016 4.62111 3.60275 7.02095 3.65645 3.60275 3.59993 5.10016 4.08197 3.60275 5.10016 + 3.59993 6.53857 2.57565 5.10016 3.65642 3.60273 4.62112 5.10015 4.08197 6.47843 4.62109 + 5.99985 4.0785 4.6162 4.0785 7.56 7.02102 3.65645 5.10017 5.10017 3.65642 4.0785 + 3.60273 ] pdfxs + 53.8195 467.221 m + (thereoftogrowupto2) + [3.60274 5.10016 4.07849 3.59993 4.07849 4.62111 6.65948 3.60274 8.4011 4.62111 3.59992 + 4.38112 10.4374 5.10016 8.94 3.60275 8.4011 4.62111 ] pdfxs + 151.26 471.001 m + /N21 5.97748 Tf + (32) + [3.65924 3.65924 ] pdfxs + 162.839 467.221 m + /N17 8.96638 Tf + (bytesinsize,andcancompress) + [4.86031 4.85621 3.60275 4.0785 7.43652 2.57565 8.94007 3.65645 2.57564 4.08197 4.0785 + 6.5355 4.62109 5.10017 8.94032 4.08197 4.62109 8.94001 4.08197 4.62109 7.67579 5.10017 + 3.59993 4.07848 3.65645 3.65645 ] pdfxs + 53.8194 456.781 m + (pointerstosomedatastructuresbutnotothers.Together,) + [5.34 4.62111 2.57565 4.86031 3.60274 4.07849 3.59993 6.95628 3.60274 7.92103 3.65645 + 4.62112 7.67576 7.37834 5.10016 4.62111 3.60275 7.86119 3.65645 3.60275 3.59993 5.10016 + 4.08197 3.60275 5.10016 3.59993 4.07849 7.01629 5.10016 5.10016 6.90274 5.10017 4.62109 + 6.96281 4.62109 3.60273 5.10017 4.0785 3.59993 3.65645 7.37549 5.87766 4.62109 4.62109 + 4.0785 3.60273 5.10017 4.0785 3.59993 2.57567 ] pdfxs + 53.8194 446.281 m + (thesepropertiesallowe\016cientusageofalarge\(64-bit\)ad-) + [3.60274 5.10016 4.07849 3.65644 7.31865 5.10016 3.59993 4.62111 5.34031 4.07849 3.59993 + 3.60275 2.57564 4.0785 7.0166 4.62111 2.57565 2.57565 4.38126 9.83742 4.0785 7.67576 + 4.08197 2.57564 4.0785 4.86031 6.90274 5.10016 3.65645 4.62111 4.62112 7.31841 4.62109 + 6.05971 7.92102 2.57567 4.62109 3.59993 4.62109 7.31834 3.60273 4.62109 4.62109 3.06375 + 5.10017 2.57567 3.60273 6.78288 4.62109 5.10017 3.07549 ] pdfxs + 53.8194 435.841 m + (dressspace.Wealsodescribe\(buthavenotimplemented\)) + [5.10016 3.59993 4.07849 3.65644 7.13652 3.65644 5.10016 4.62111 4.08196 4.07849 8.03572 + 8.69858 7.61841 4.62111 2.57565 3.65645 8.10127 5.10016 4.0785 3.65645 4.08196 3.59993 + 2.57565 5.34 7.67857 3.60275 5.10016 5.10016 7.14259 5.10016 4.38118 4.61612 7.61841 + 5.10017 4.62109 7.08274 2.57567 7.67579 5.10017 2.57564 4.0785 7.67579 4.0785 4.86001 + 3.60273 4.0785 5.10017 3.60273 ] pdfxs + 53.8194 425.4 m + (adynamicversionofthetechniquethatcantransparently) + [8.22102 5.10016 4.8562 5.10016 4.62111 7.67578 2.57565 7.74203 4.61614 4.0785 3.59993 + 3.65645 2.57564 4.62112 8.7 4.62111 6.41949 3.60275 5.10016 7.73834 3.60275 4.0785 + 3.84188 5.10016 5.10016 2.57564 4.85622 5.10016 7.73857 3.60275 5.10017 4.62109 7.20265 + 4.08197 4.62109 8.76032 3.60273 3.59993 4.62109 5.10017 3.65645 5.10017 4.62109 3.59993 + 4.0785 4.86001 3.60273 2.57567 4.85619 ] pdfxs + 53.8194 414.9 m + (expandthepointersinanindividualdatastructureifitex-) + [4.07849 4.85621 5.10015 4.62111 5.10016 8.10015 3.60274 5.10016 7.07848 5.34 4.62111 + 2.57565 4.86031 3.60275 4.0785 3.59993 6.59652 2.57565 8.04007 4.62111 8.04031 2.57565 + 5.10016 5.10015 2.57565 4.85621 2.57565 5.10016 5.10016 4.62111 5.5155 5.10017 4.62109 + 3.60273 7.56118 3.65645 3.60273 3.59993 5.10017 4.08195 3.60273 5.10017 3.59993 7.0785 + 2.57567 5.75946 2.57567 6.48288 4.0785 4.85619 3.07549 ] pdfxs + 53.8194 404.461 m + (ceedsthe4GBlimit.Foracollectionofpointer-intensive) + [4.08196 4.07849 4.07849 5.10016 7.73652 3.60274 5.10016 8.09849 4.62111 7.25575 10.5007 + 2.57565 2.57564 7.67578 2.57564 3.60275 9.41549 5.22153 4.62111 7.67993 8.58119 4.08197 + 4.62111 2.57565 2.57564 4.0785 4.08196 3.60275 2.57565 4.62109 9.12001 4.62109 6.83979 + 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 3.59993 3.06372 2.57567 4.86025 3.60273 + 4.0785 5.10017 3.65642 2.57567 4.61605 4.0785 ] pdfxs + 53.8194 394.021 m + (benchmarks,weshowthatthetransformationreducespeak) + [5.34 4.07849 5.10016 3.84188 5.10016 7.67578 4.62111 3.59993 4.8562 3.65644 5.5155 + 6.4175 6.95865 3.65645 5.10016 4.38096 9.47765 3.60275 5.10016 4.62111 6.48275 3.60275 + 5.10016 6.95865 3.60275 3.59993 4.62111 5.10016 3.65645 2.81965 4.62109 3.59993 7.67579 + 4.62109 3.60273 2.57567 4.62109 7.92001 3.59993 4.0785 5.10017 5.10017 4.08197 4.07848 + 6.59629 5.34001 4.0785 4.62109 4.85621 ] pdfxs + 53.8194 383.521 m + (heapsizessubstantiallyby\(20%to2x\)forseveralofthese) + [5.10016 4.07849 4.62111 8.46031 3.65644 2.57565 4.08196 4.07849 6.89644 3.65644 5.10016 + 5.10016 3.65645 3.60275 4.62112 4.86016 3.60275 2.57565 4.62111 2.57564 2.57565 8.09636 + 4.86031 8.15637 3.60275 4.62111 4.62112 10.9757 3.60275 7.92103 4.62109 4.85621 6.84265 + 2.81963 4.62109 6.95993 3.65645 4.07848 4.61637 4.0785 3.59993 4.62109 5.81558 4.62109 + 6.11947 3.60273 5.10017 4.0785 3.65642 4.0785 ] pdfxs + 53.8194 373.081 m + (benchmarks,andimprovesoverallperformancesigni\fcantl) + [5.34 4.07849 5.10016 3.84188 5.10016 7.67578 4.62111 3.59993 4.8562 3.65644 5.39557 + 4.62111 5.10016 7.92 2.57565 7.67576 5.10016 3.59993 4.38096 4.61614 4.0785 6.35629 + 4.38119 4.61614 4.0785 3.59993 4.62111 2.57564 5.21565 5.34 4.0785 3.59993 2.81963 + 4.62109 3.59993 7.67579 4.62109 5.10017 4.08197 6.95865 3.65645 2.57564 4.62112 5.10017 + 2.57564 5.10017 4.08197 4.62109 4.86018 3.60273 2.55545 ] pdfxs + 288.118 373.081 m + (y) show + 53.8194 362.641 m + (insomecases.) + [2.57565 8.15999 3.65644 4.62111 7.67578 7.13849 4.08196 4.62111 3.65644 4.0785 3.65645 + 2.57564 ] pdfxs + 53.8194 339.781 m + /N9 11.9552 Tf + (CategoriesandSubjectDescriptors) + [8.63982 6 3.95992 5.27982 6 6 5.27982 3.3 5.27981 7.67992 6 + 6.65999 9.60015 6.65999 6.65999 6.65999 3.95992 5.27981 5.27982 7.01983 8.63982 5.27981 + 4.67992 5.27981 5.27982 3.29998 6.66002 3.95992 6 5.2798 4.67992 ] pdfxs + 53.8194 325.321 m + /N17 8.96638 Tf + (D.3.4[) + [7.01981 2.57565 4.62111 2.57565 10.4409 2.57565 ] pdfxs + 83.6393 325.321 m + /N23 8.96638 Tf + (Processors) + [7.25987 4.37907 5.58295 4.74074 4.86027 4.20219 4.20219 5.28302 4.37907 4.20219 ] pdfxs + 132.719 325.321 m + /N17 8.96638 Tf + (]:Compilers,Optimization,Memory) + [2.57565 12.2356 6.65758 4.62112 7.67576 5.10016 2.57565 2.57564 4.0785 3.59993 3.65645 + 9.11572 7.13659 5.10015 3.60273 2.57567 7.67579 2.57567 4.08195 4.62112 3.60273 2.57564 + 4.62112 5.10017 9.11564 8.46031 4.07848 7.67579 4.62109 3.59993 4.85621 ] pdfxs + 53.8194 314.881 m + (management) + [7.67578 4.62111 5.10016 4.62111 4.62111 4.07849 7.67578 4.07849 4.86 3.60275 ] pdfxs + 53.8194 292.021 m + /N9 11.9552 Tf + (GeneralTerms) + [9.3 5.27982 6.65999 5.27982 5.27982 6 6.36016 6.8999 5.27982 5.27981 9.95991 + 4.67992 ] pdfxs + 53.8194 277.561 m + /N17 8.96638 Tf + (Algorithms,Performance,Experimentation,) + [6.9029 2.57565 4.62111 4.62111 3.59992 2.57565 3.60274 5.10015 7.67578 3.65644 5.5158 + 6.05683 4.0785 3.59993 2.81964 4.62111 3.59993 7.67578 4.62111 5.10016 4.08197 4.07849 + 5.63558 6.29667 4.85621 5.34016 4.0785 3.59993 2.57564 7.67578 4.07849 4.86024 3.60273 + 4.62109 3.60273 2.57567 4.62109 5.10017 5.63582 ] pdfxs + (L) show + (anguages) + [4.62109 5.10017 4.62109 5.10017 4.62109 4.62109 4.0785 3.65645 ] pdfxs + 53.8194 254.761 m + /N9 11.9552 Tf + (Keywords) + [9 5.27982 6 8.51982 6 5.27982 6.65999 4.67991 ] pdfxs + 53.8194 240.301 m + /N17 8.96638 Tf + (Recursivedatastructure,datalayout,cache,staticanaly) + [6.77572 4.07849 4.08196 5.10016 3.59993 3.65645 2.57565 4.61621 6.53833 5.10016 4.62111 + 3.60275 7.08111 3.65645 3.60275 3.59993 5.10016 4.08197 3.60275 5.10016 3.59993 4.07849 + 5.21549 5.10016 4.62111 3.60275 7.08111 2.57565 4.38126 4.61614 4.62111 5.10016 3.60275 + 5.09558 4.08197 4.62109 3.84181 5.10017 4.0785 5.1555 3.65645 3.60273 4.62109 3.60273 + 2.57567 6.54195 4.62109 5.10017 4.62109 2.57567 4.85985 ] pdfxs + 280.558 240.301 m + (sis,) + [3.65642 2.57567 3.65645 2.57564 ] pdfxs + 53.8194 229.861 m + (pointercompression) + [5.34 4.62111 2.57565 4.86031 3.60274 4.07849 6.65977 4.08196 4.62111 7.67578 5.10016 + 3.59993 4.0785 3.65645 3.65645 2.57565 4.62111 5.10016 ] pdfxs + 53.8194 207.001 m + /N9 11.9552 Tf + (1.INTRODUCTION) + [6 14.8801 4.67991 8.63982 7.97991 8.2799 9.3 8.63982 8.63982 8.63981 7.97991 + 4.67991 9.3 8.63982 ] pdfxs + 62.7596 194.041 m + /N17 8.96638 Tf + (64-bitcomputingisbecomingincreasinglyimportantfor) + [4.62111 4.62111 3.06372 5.10016 2.57565 7.02274 4.08196 4.62111 7.67576 5.10016 5.10016 + 3.60275 2.57565 5.10016 8.16103 2.57565 7.0766 5.34 4.0785 4.08196 4.62112 7.67576 + 2.57565 5.10016 8.10095 2.57565 5.10016 4.08196 3.59993 4.07848 4.62112 3.65642 2.57567 + 5.10017 4.62109 2.57567 8.33603 2.57567 7.67579 5.34016 4.62109 3.59993 3.60273 4.62109 + 4.86018 7.02265 2.81963 4.62109 3.59993 ] pdfxs + 53.8194 183.601 m + (modernapplications.) + [7.67578 4.86096 5.10016 4.07849 3.59993 8.76 4.62111 5.10016 5.10016 2.57565 2.57564 + 4.08197 4.62111 3.60275 2.57565 4.62111 5.10016 3.65645 8.33573 ] pdfxs + (L) show + (argevirtualaddressspacesareim-) + [4.62112 3.59993 4.62111 7.73834 4.85621 2.57565 3.59993 3.60275 5.10016 4.62111 6.17549 + 4.62109 5.10017 5.10017 3.59993 4.0785 3.65642 7.25637 3.65645 5.10017 4.62109 4.08197 + 4.07848 7.3166 4.62109 3.59993 7.73865 2.57567 7.67579 3.06372 ] pdfxs + 53.8194 173.101 m + (portantforseveralreasons,includingincreasingphysic) + [5.34 4.62111 3.59993 3.60274 4.62111 4.86016 8.40273 2.81964 4.62111 8.45992 3.65645 + 4.0785 4.61637 4.0785 3.59993 4.62111 7.43549 3.59993 4.0785 4.62111 3.65645 4.62111 + 5.10016 3.65646 7.79548 2.57565 5.10016 4.08196 2.57565 5.10016 5.10016 2.57564 5.10017 + 9.54125 2.57567 5.10017 4.08197 3.59993 4.07848 4.62112 3.65642 2.57567 5.10017 9.42101 + 5.10017 4.86033 4.85621 3.65642 2.57567 4.08197 ] pdfxs + (a) show + 290.339 173.101 m + (l) show + 53.8194 135.241 m + /N10 7.97009 Tf + (Permissiontomakedigitalorhardcopiesofallorpartofthi) + [4.43999 3.53987 2.63994 6.17999 2.21999 3.11994 3.11994 2.22 3.95999 6.89984 2.22 + 6.95999 6.18 3.53987 3.89993 6.53988 3.96 2.22001 3.96 2.21999 2.22001 3.53987 + 5.16008 3.96 5.63995 3.96 3.53988 2.63994 7.02015 3.53988 3.96 3.96 2.21999 + 3.53988 6.06002 3.96 5.63995 3.53987 2.22001 5.15989 3.96 5.63991 3.96 3.53987 + 2.63992 5.22 3.96 5.63991 2.21998 3.96 2.21568 ] pdfxs + 258.299 135.241 m + (sworkfor) + [6.06009 5.69987 3.96 2.63992 6.95999 2.63992 3.96 2.63992 ] pdfxs + 53.8194 126.301 m + (personalorclassroomuseisgrantedwithoutfeeprovidedth) + [3.95999 3.53988 2.63994 3.11994 3.95999 3.96 3.53987 4.91984 3.95999 5.27978 3.53988 + 2.21999 3.53988 3.11993 3.11995 2.63993 3.96001 3.96 8.88008 3.96 3.11995 6.11988 + 2.21999 5.76002 3.96 2.63994 3.53988 3.96 2.21999 3.53988 6.65992 5.75988 2.22001 + 2.21999 3.96 3.96 3.96 4.92 2.63992 3.5399 6.18003 3.96 2.63992 3.83983 + 3.96 2.21998 3.95997 3.5399 6.71998 2.21998 3.98505 ] pdfxs + 251.759 126.301 m + (atcopiesare) + [3.53987 4.86007 3.53987 3.96 3.96 2.21998 3.53987 5.81979 3.53987 2.63994 3.53987 + ] pdfxs + 53.8194 117.361 m + (notmadeordistributedforpro\002torcommercialadvantagean) + [3.95999 3.96 4.44015 6.17999 3.53988 3.95999 5.81987 3.95999 4.85986 3.95999 2.22 + 3.11993 2.21999 2.63994 2.21999 3.78016 3.96 2.22001 3.53987 6.29993 2.63994 3.96 + 4.8601 3.96 2.63994 3.96 4.44 4.49999 3.96 4.92002 3.53988 3.96 6.17999 + 6.18 3.53988 2.63994 3.53987 2.22001 3.53987 4.49984 3.53987 3.96 3.78007 3.53987 + 3.96 2.21998 3.5399 3.95997 5.81973 3.53987 3.98505 ] pdfxs + 252.179 117.361 m + (dthatcopies) + [6.18007 2.21998 3.96 3.53987 4.44015 3.53987 3.96 3.96 2.21998 3.53987 3.11993 + ] pdfxs + 53.8194 108.361 m + (bearthisnoticeandthefullcitationonthe\002rstpage.Tocop) + [3.95999 3.53988 3.53987 4.6201 2.22 3.95999 2.22 5.03978 3.95999 3.96 2.21999 + 2.22 3.53988 5.51979 3.53988 3.96 6 2.21999 3.96001 5.45972 2.63994 3.96 + 2.21999 4.19993 3.53988 2.21999 2.22001 3.53987 2.22001 2.21999 3.96 5.94016 3.96 + 6.00016 2.21999 3.96001 5.45972 4.44 2.63994 3.11993 4.2 3.96 3.53987 3.96 + 3.53987 4.86015 4.19994 5.99999 3.53987 3.96 3.98505 ] pdfxs + 245.819 108.361 m + (yotherwise,to) + [5.93983 3.96 2.21998 3.95997 3.5399 2.63992 5.75988 2.21998 3.11993 3.53987 3.95993 + 2.21998 3.96 ] pdfxs + 53.8194 99.4212 m + (republish,topostonserversortoredistributetolists,re) + [2.63994 3.53987 3.95999 3.96 3.95999 2.22 2.22 3.11993 3.96 3.90008 2.22 + 5.81983 3.95999 3.96 3.11995 4.07991 3.96 5.82008 3.11993 3.53988 2.63994 3.83984 + 3.53988 2.63994 4.98009 3.96 4.5001 2.21999 5.81985 2.63994 3.53988 3.96 2.21999 + 3.11993 2.22001 2.63994 2.21999 3.77985 3.96 2.22001 5.45972 2.21999 5.81983 2.21998 + 2.21998 3.11996 2.21998 3.11993 3.78007 2.63992 3.5386 ] pdfxs + 229.919 99.4212 m + (quirespriorspeci\002c) + [3.95997 3.96 2.21998 2.63994 3.53987 4.98001 3.96 2.63992 2.21998 3.96 4.55977 + 3.11993 3.96 3.53987 3.5399 2.21998 4.43999 3.5399 ] pdfxs + 53.8194 90.4212 m + (permissionand/orafee.) + [3.95999 3.53988 2.63994 6.17999 2.22 3.11994 3.11994 2.21999 3.96 6.00015 3.53988 + 3.95999 3.95999 2.21999 3.96001 4.67986 5.57996 2.63994 3.53988 3.53987 1.98 ] pdfxs + 53.8194 81.4814 m + /N11 7.97009 Tf + (MSP'05,) + [6.65993 3.96 4.85993 2.63994 3.96 3.95999 1.98 ] pdfxs + 83.8796 81.4814 m + /N10 7.97009 Tf + (Chicago,USA.) + [5.33993 3.96 2.22 3.53987 3.53988 3.96 3.96 4.07999 5.75988 4.44 5.75988 + 1.98 ] pdfxs + 53.8194 72.4814 m + (Copyright2005ACM1\25559593\255147\2553/05/06...) + [5.33993 3.96 3.89999 3.95999 2.63994 2.22 3.95999 3.95999 4.26 3.95999 3.96 + 3.95999 6.05984 5.46004 5.33994 9.05993 3.96 2.63994 3.96 3.96 3.96 3.96001 + 3.96 2.63994 3.96 3.96 3.96 2.63994 3.96 2.21999 3.96001 3.96 2.21999 + 3.96 6.29985 1.98 1.97999 1.98 ] pdfxs + 201.899 72.4814 m + /N17 8.96638 Tf + ($) show + 206.519 72.4814 m + /N10 7.97009 Tf + (5.00.) + [3.96 1.97997 3.96 3.96 1.97997 ] pdfxs + Q + n + 5161.86 5550.42 122.551 122.551 re + [/DeviceRGB] cs 0.898346 0.898346 0.898346 sc + + f + 0.306335 w + n + 5161.86 5550.42 122.551 122.551 re + 0 0 0 sc + S + n + 4549.11 5550.42 122.551 122.551 re + 0.898346 0.898346 0.898346 sc + f + n + 4549.11 5550.42 122.551 122.551 re + 0 0 0 sc + S + n + 3936.37 5550.42 122.547 122.551 re + 0.898346 0.898346 0.898346 sc + f + n + 3936.37 5550.42 122.547 122.551 re + 0 0 0 sc + S + n + 3311.37 5547.36 122.547 122.551 re + 0.898346 0.898346 0.898346 sc + f + n + 3311.37 5547.36 122.547 122.551 re + 0 0 0 sc + S + 6.12744 w + n + 3188.82 5547.36 490.195 122.551 re + S + n + 3220.43 5577.99 m + 3229.05 5577.99 l + 3235.86 5596.25 l + 3262.2 5596.25 l + 3269.09 5577.99 l + 3279.08 5577.99 l + 3254.57 5643.68 l + 3245.3 5643.68 l + 3220.43 5577.99 l + 3238.59 5603.1 m + 3249.12 5631.25 l + 3259.65 5603.1 l + 3238.59 5603.1 l + f + 3.06372 w + n + 3433.91 5669.91 m + 3433.91 5547.36 l + 0.498001 0.498001 0.498001 sc + S + n + 3311.37 5669.91 m + 3311.37 5547.36 l + S + 6.12744 w + n + 3813.82 5550.42 490.195 122.551 re + 0 0 0 sc + S + n + 3904.3 5593.7 m + 3896.49 5589.95 3890.41 5588.32 3883.6 5588.32 c + 3868.25 5588.32 3859.45 5597.63 3859.45 5613.86 c + 3859.45 5630.53 3867.62 5639.75 3882.51 5639.75 c + 3888.05 5639.75 3894.59 5638.47 3904.21 5635.39 c + 3904.21 5643.84 l + 3895.87 5645.84 3889.34 5646.75 3883 5646.75 c + 3861.34 5646.75 3849.55 5635.15 3849.55 5613.86 c + 3849.55 5592.48 3861.07 5581.05 3882.55 5581.05 c + 3890.7 5581.05 3897.14 5582.51 3904.3 5586.05 c + 3904.3 5593.7 l + f + 3.06372 w + n + 4058.91 5672.97 m + 4058.91 5550.42 l + 0.498001 0.498001 0.498001 sc + S + n + 3936.37 5672.97 m + 3936.37 5550.42 l + S + 6.12744 w + n + 4426.56 5550.42 490.195 122.551 re + 0 0 0 sc + S + n + 4467.18 5581.05 m + 4490.57 5581.05 l + 4498.49 5581.05 4503.04 5581.6 4506.05 5582.96 c + 4511.24 5585.42 4514.61 5590.96 4514.61 5597.41 c + 4514.61 5606.32 4509.45 5611.59 4497.49 5615.23 c + 4507.7 5618.77 4512.07 5623.77 4512.07 5632.03 c + 4512.07 5642.66 4505.5 5646.75 4488.35 5646.75 c + 4467.18 5646.75 l + 4467.18 5581.05 l + 4476.56 5588.05 m + 4476.56 5612 l + 4484.19 5612 l + 4497.54 5612 4504.71 5607.08 4504.71 5598.06 c + 4504.71 5589.96 4500.63 5588.05 4483.46 5588.05 c + 4476.56 5588.05 l + 4476.56 5617.83 m + 4476.56 5639.75 l + 4485.24 5639.75 l + 4498.5 5639.75 4502.43 5637.57 4502.43 5630.39 c + 4502.43 5622.02 4496.49 5617.83 4484.52 5617.83 c + 4476.56 5617.83 l + f + 3.06372 w + n + 4671.66 5672.97 m + 4671.66 5550.42 l + 0.498001 0.498001 0.498001 sc + S + n + 4549.11 5672.97 m + 4549.11 5550.42 l + S + 6.12744 w + n + 5039.3 5550.42 490.199 122.551 re + 0 0 0 sc + S + n + 5076.55 5581.05 m + 5097.63 5581.05 l + 5118.54 5581.05 5130.57 5593.59 5130.57 5615.4 c + 5130.57 5636.3 5119.53 5646.75 5097.54 5646.75 c + 5076.55 5646.75 l + 5076.55 5581.05 l + 5085.93 5588.05 m + 5085.93 5639.75 l + 5092.81 5639.75 l + 5102.4 5639.75 5107.46 5638.76 5111.36 5636.12 c + 5117.51 5631.94 5120.68 5624.49 5120.68 5614.31 c + 5120.68 5596.68 5112.89 5588.05 5097.06 5588.05 c + 5085.93 5588.05 l + f + 3.06372 w + n + 5284.41 5672.97 m + 5284.41 5550.42 l + 0.498001 0.498001 0.498001 sc + S + n + 5161.86 5672.97 m + 5161.86 5550.42 l + S + 6.12744 w + n + 4407.93 5533.45 m + 4299.05 5442.59 4161.73 5392.83 4019.93 5392.83 c + 3841.17 5392.83 3671.54 5471.81 3556.48 5608.61 c + 0 0 0 sc + S + n + 4421.5 5545.81 m + 4411.62 5520.25 l + 4407.9 5533.43 l + 4395.12 5538.37 l + f + n + 4421.5 5545.81 m + 4411.62 5520.25 l + 4407.9 5533.43 l + 4395.12 5538.37 l + h + S + n + 3835.34 5686.11 m + 3964.68 5759.78 4110.97 5798.52 4259.82 5798.52 c + 4453.95 5798.52 4642.35 5732.66 4794.2 5611.7 c + S + n + 3819.66 5676.54 m + 3834.2 5699.77 l + 3835.35 5686.12 l + 3846.97 5678.86 l + f + n + 3819.66 5676.54 m + 3834.2 5699.77 l + 3835.35 5686.12 l + 3846.97 5678.86 l + h + S + n + 5020.76 5533.34 m + 4914.1 5443.52 4779.14 5394.26 4639.7 5394.26 c + 4462.07 5394.26 4293.83 5474.08 4181.48 5611.67 c + S + n + 5034.27 5545.78 m + 5024.54 5520.16 l + 5020.74 5533.33 l + 5007.93 5538.2 l + f + n + 5034.27 5545.78 m + 5024.54 5520.16 l + 5020.74 5533.33 l + 5007.93 5538.2 l + h + S + n + 3188.82 5731.18 245.098 122.547 re + 1 1 1 sc + f + n + 3188.82 5731.18 245.098 122.547 re + 0 0 0 sc + S + 3.06372 w + n + 5284.41 5550.42 m + 5529.5 5672.97 l + S + n + 5284.41 5672.97 m + 5529.5 5550.42 l + S + 6.12744 w + n + 3292.98 5795.52 m + 3204.93 5689.33 l + S + n + 3193.19 5675.18 m + 3199.4 5701.87 l + 3204.93 5689.33 l + 3218.27 5686.22 l + f + n + 3193.19 5675.18 m + 3199.4 5701.87 l + 3204.93 5689.33 l + 3218.27 5686.22 l + h + S + n + 3468.21 5795.52 m + 3472.78 5795.52 l + 3472.78 5808.45 l + 3479.59 5808.45 l + 3488.89 5808.45 3493.58 5812.21 3493.58 5819.57 c + 3493.58 5822.97 3492.45 5825.38 3490.2 5826.79 c + 3488.53 5827.87 3486.14 5828.23 3481.01 5828.23 c + 3468.21 5828.23 l + 3468.21 5795.52 l + 3472.78 5812 m + 3472.78 5824.74 l + 3479.5 5824.74 l + 3486.62 5824.74 3488.76 5823.47 3488.76 5819.3 c + 3488.76 5814.45 3485.63 5812 3479.41 5812 c + 3472.78 5812 l + f + n + 3507.96 5819.61 m + 3501.37 5819.61 3497.31 5815.05 3497.31 5807.56 c + 3497.31 5800.17 3501.37 5795.52 3507.83 5795.52 c + 3514.6 5795.52 3518.62 5800.04 3518.62 5807.61 c + 3518.62 5815.05 3514.55 5819.61 3507.96 5819.61 c + 3507.96 5816.34 m + 3511.85 5816.34 3513.8 5813.43 3513.8 5807.65 c + 3513.8 5801.82 3511.81 5798.79 3507.96 5798.79 c + 3504.03 5798.79 3502.13 5801.7 3502.13 5807.61 c + 3502.13 5813.39 3504.07 5816.34 3507.96 5816.34 c + f + n + 3524.01 5795.52 m + 3528.57 5795.52 l + 3528.57 5819.61 l + 3524.01 5819.61 l + 3524.01 5795.52 l + 3524.01 5823.88 m + 3528.57 5823.88 l + 3528.57 5828.23 l + 3524.01 5828.23 l + 3524.01 5823.88 l + f + n + 3534.89 5795.52 m + 3539.46 5795.52 l + 3539.46 5810.71 l + 3541.85 5814.3 3543.97 5815.89 3546.46 5815.89 c + 3548.67 5815.89 3549.35 5814.73 3549.35 5810.97 c + 3549.35 5795.52 l + 3553.91 5795.52 l + 3553.91 5812.45 l + 3553.91 5817.16 3551.81 5819.61 3547.74 5819.61 c + 3544.49 5819.61 3542.02 5818.12 3539.46 5814.56 c + 3539.46 5819.61 l + 3534.89 5819.61 l + 3534.89 5795.52 l + f + n + 3569.44 5799.01 m + 3568.98 5798.87 3568.53 5798.79 3567.94 5798.79 c + 3565.9 5798.79 3565.4 5799.67 3565.4 5803.38 c + 3565.4 5816.34 l + 3570.07 5816.34 l + 3570.07 5819.61 l + 3565.4 5819.61 l + 3565.4 5824.38 l + 3560.83 5823.97 l + 3560.83 5819.61 l + 3558.11 5819.61 l + 3558.11 5816.34 l + 3560.83 5816.34 l + 3560.83 5802.58 l + 3560.83 5797.93 3562.88 5795.52 3566.84 5795.52 c + 3567.72 5795.52 3568.42 5795.61 3569.44 5795.92 c + 3569.44 5799.01 l + f + n + 3577.09 5810.1 m + 3577.59 5814.55 3579.45 5816.5 3583.22 5816.5 c + 3586.85 5816.5 3588.48 5814.55 3588.62 5810.1 c + 3577.09 5810.1 l + 3592.98 5800.21 m + 3590.21 5799.26 3587.94 5798.83 3585.67 5798.83 c + 3583.22 5798.83 3581.31 5799.39 3579.9 5800.51 c + 3578.13 5801.94 3577.36 5803.62 3577 5807 c + 3593.07 5807 l + 3593.11 5808.29 l + 3593.11 5808.59 l + 3593.11 5815.81 3589.71 5819.61 3583.31 5819.61 c + 3576.59 5819.61 3572.41 5815.12 3572.41 5807.95 c + 3572.41 5800.29 3577.13 5795.52 3584.71 5795.52 c + 3587.3 5795.52 3589.98 5795.92 3592.98 5796.83 c + 3592.98 5800.21 l + f + n + 3599.74 5795.52 m + 3604.31 5795.52 l + 3604.31 5810.97 l + 3606.21 5814.29 3607.8 5815.8 3609.48 5815.8 c + 3609.94 5815.8 3610.53 5815.67 3611.35 5815.45 c + 3611.35 5819.61 l + 3611.16 5819.61 l + 3610.8 5819.61 3610.35 5819.61 3610.07 5819.61 c + 3607.54 5819.61 3605.8 5818.12 3604.31 5814.56 c + 3604.31 5819.61 l + 3599.74 5819.61 l + 3599.74 5795.52 l + f + n + 3467.39 5734.24 m + 3471.75 5734.24 l + 3483.96 5766.96 l + 3480.01 5766.96 l + 3469.98 5740.08 l + 3459.49 5766.96 l + 3454.72 5766.96 l + 3467.39 5734.24 l + f + n + 3508.96 5737.83 m + 3508.68 5737.83 3508.59 5737.83 3508.14 5737.83 c + 3506.64 5737.83 3505.82 5738.9 3505.82 5740.82 c + 3505.82 5751.09 l + 3505.82 5756.1 3503.3 5758.34 3497.55 5758.34 c + 3494.75 5758.34 3492.12 5757.79 3488.9 5756.52 c + 3488.9 5753.06 l + 3491.77 5754.43 3494.12 5755.07 3496.62 5755.07 c + 3499.71 5755.07 3501.26 5753.74 3501.26 5751.09 c + 3501.26 5748.35 l + 3500.22 5748.35 l + 3491.26 5748.35 3486.8 5745.75 3486.8 5740.54 c + 3486.8 5736.85 3489.72 5734.24 3493.91 5734.24 c + 3496.64 5734.24 3499.01 5735.29 3501.93 5737.83 c + 3502.62 5735.33 3503.83 5734.24 3505.97 5734.24 c + 3507.09 5734.24 3508.21 5734.52 3509.28 5735.07 c + 3508.96 5737.83 l + 3501.26 5740.09 m + 3499.08 5738.47 3497.36 5737.83 3495.36 5737.83 c + 3492.77 5737.83 3491.37 5739.07 3491.37 5741.29 c + 3491.37 5744.38 3494.13 5746 3499.31 5746 c + 3499.81 5746 l + 3501.26 5745.96 l + 3501.26 5740.09 l + f + n + 3514.01 5734.24 m + 3518.58 5734.24 l + 3518.58 5749.7 l + 3520.48 5753.02 3522.07 5754.52 3523.75 5754.52 c + 3524.21 5754.52 3524.8 5754.39 3525.62 5754.17 c + 3525.62 5758.34 l + 3525.43 5758.34 l + 3525.07 5758.34 3524.62 5758.34 3524.34 5758.34 c + 3521.8 5758.34 3520.07 5756.85 3518.58 5753.29 c + 3518.58 5758.34 l + 3514.01 5758.34 l + 3514.01 5734.24 l + f + n + 3529.07 5734.24 m + 3533.63 5734.24 l + 3533.63 5758.34 l + 3529.07 5758.34 l + 3529.07 5734.24 l + 3529.07 5762.6 m + 3533.63 5762.6 l + 3533.63 5766.96 l + 3529.07 5766.96 l + 3529.07 5762.6 l + f + n + 3560.84 5737.83 m + 3560.56 5737.83 3560.47 5737.83 3560.02 5737.83 c + 3558.52 5737.83 3557.7 5738.9 3557.7 5740.82 c + 3557.7 5751.09 l + 3557.7 5756.1 3555.18 5758.34 3549.43 5758.34 c + 3546.62 5758.34 3544 5757.79 3540.78 5756.52 c + 3540.78 5753.06 l + 3543.64 5754.43 3546 5755.07 3548.5 5755.07 c + 3551.59 5755.07 3553.14 5753.74 3553.14 5751.09 c + 3553.14 5748.35 l + 3552.1 5748.35 l + 3543.14 5748.35 3538.68 5745.75 3538.68 5740.54 c + 3538.68 5736.85 3541.6 5734.24 3545.79 5734.24 c + 3548.52 5734.24 3550.89 5735.29 3553.8 5737.83 c + 3554.5 5735.33 3555.71 5734.24 3557.85 5734.24 c + 3558.97 5734.24 3560.09 5734.52 3561.16 5735.07 c + 3560.84 5737.83 l + 3553.14 5740.09 m + 3550.96 5738.47 3549.23 5737.83 3547.24 5737.83 c + 3544.65 5737.83 3543.25 5739.07 3543.25 5741.29 c + 3543.25 5744.38 3546.01 5746 3551.19 5746 c + 3551.69 5746 l + 3553.14 5745.96 l + 3553.14 5740.09 l + f + n + 3570.46 5749.49 m + 3572.91 5753.09 3574.77 5754.61 3576.72 5754.61 c + 3579.54 5754.61 3581.26 5751.4 3581.26 5746.25 c + 3581.26 5740.07 3579.13 5736.91 3575.04 5736.91 c + 3574 5736.91 3572.64 5737.09 3570.46 5737.49 c + 3570.46 5749.49 l + 3570.46 5768.73 m + 3565.89 5768.73 l + 3565.89 5734.24 l + 3570.46 5734.24 l + 3572 5734.24 3573.23 5734.24 3574.63 5734.24 c + 3581.9 5734.24 3585.98 5738.71 3585.98 5746.69 c + 3585.98 5753.71 3582.67 5758.34 3577.63 5758.34 c + 3574.54 5758.34 3572.41 5756.87 3570.46 5753.36 c + 3570.46 5768.73 l + f + n + 3591.32 5734.24 4.56641 35.0039 re + f + n + 3605.49 5748.83 m + 3605.99 5753.28 3607.85 5755.23 3611.62 5755.23 c + 3615.25 5755.23 3616.89 5753.28 3617.02 5748.83 c + 3605.49 5748.83 l + 3621.38 5738.94 m + 3618.61 5737.99 3616.34 5737.55 3614.07 5737.55 c + 3611.62 5737.55 3609.71 5738.12 3608.3 5739.24 c + 3606.54 5740.67 3605.76 5742.35 3605.4 5745.72 c + 3621.47 5745.72 l + 3621.52 5747.02 l + 3621.52 5747.32 l + 3621.52 5754.54 3618.11 5758.34 3611.71 5758.34 c + 3604.99 5758.34 3600.81 5753.84 3600.81 5746.67 c + 3600.81 5739.01 3605.54 5734.24 3613.12 5734.24 c + 3615.71 5734.24 3618.38 5734.65 3621.38 5735.56 c + 3621.38 5738.94 l + f + 3.06372 w + n + 5039.3 5703.61 m + 5039.3 5734.24 5100.83 5734.24 5161.86 5734.24 c + S + n + 5529.5 5703.61 m + 5529.5 5734.24 5468.23 5734.24 5406.95 5734.24 c + S + n + 5161.86 5734.24 m + 5406.95 5734.24 l + S + n + 5284.41 5734.24 m + 5284.41 5764.88 l + S + n + 5200.13 5795.52 m + 5217.81 5795.52 l + 5217.81 5798.79 l + 5211.28 5798.79 l + 5211.28 5828.23 l + 5200.13 5825.59 l + 5200.13 5822.34 l + 5206.71 5823.92 l + 5206.71 5798.79 l + 5200.13 5798.79 l + 5200.13 5795.52 l + f + n + 5242.19 5826.96 m + 5239.7 5827.87 5237.89 5828.23 5235.91 5828.23 c + 5227.64 5828.23 5222.76 5821.73 5222.76 5810.88 c + 5222.76 5801.24 5226.88 5795.52 5233.78 5795.52 c + 5240.08 5795.52 5244.06 5799.84 5244.06 5806.65 c + 5244.06 5812.86 5240.73 5816.57 5235.17 5816.57 c + 5232.07 5816.57 5229.8 5815.47 5227.57 5812.88 c + 5227.57 5816.62 5227.9 5818.46 5228.73 5820.42 c + 5230.08 5823.42 5232.49 5824.96 5235.79 5824.96 c + 5237.45 5824.96 5239.27 5824.52 5242.19 5823.34 c + 5242.19 5826.96 l + 5233.84 5813.52 m + 5237.59 5813.52 5239.5 5810.93 5239.5 5805.83 c + 5239.5 5801.16 5237.64 5798.79 5233.98 5798.79 c + 5230.22 5798.79 5227.57 5802.07 5227.57 5806.78 c + 5227.57 5810.89 5230.03 5813.52 5233.84 5813.52 c + f + n + 5263.7 5795.52 m + 5275.2 5795.52 l + 5279.1 5795.52 5281.34 5795.79 5282.82 5796.48 c + 5285.37 5797.71 5287.03 5800.49 5287.03 5803.73 c + 5287.03 5808.2 5284.46 5810.84 5278.52 5812.67 c + 5283.59 5814.42 5285.76 5816.89 5285.76 5820.97 c + 5285.76 5826.22 5282.53 5828.23 5274.1 5828.23 c + 5263.7 5828.23 l + 5263.7 5795.52 l + 5268.26 5799.01 m + 5268.26 5810.99 l + 5272.04 5810.99 l + 5278.66 5810.99 5282.21 5808.53 5282.21 5804.02 c + 5282.21 5799.96 5280.18 5799.01 5271.68 5799.01 c + 5268.26 5799.01 l + 5268.26 5814.03 m + 5268.26 5824.74 l + 5272.52 5824.74 l + 5279.02 5824.74 5280.94 5823.67 5280.94 5820.16 c + 5280.94 5816.07 5278.03 5814.03 5272.16 5814.03 c + 5268.26 5814.03 l + f + n + 5299.7 5795.55 m + 5295.89 5786.79 l + 5300.48 5786.79 l + 5313.18 5819.61 l + 5309.33 5819.61 l + 5302.15 5801.13 l + 5295.62 5819.61 l + 5291.16 5819.61 l + 5299.7 5795.55 l + f + n + 5326.01 5799.01 m + 5325.55 5798.87 5325.1 5798.79 5324.51 5798.79 c + 5322.46 5798.79 5321.96 5799.67 5321.96 5803.38 c + 5321.96 5816.34 l + 5326.64 5816.34 l + 5326.64 5819.61 l + 5321.96 5819.61 l + 5321.96 5824.38 l + 5317.4 5823.97 l + 5317.4 5819.61 l + 5314.68 5819.61 l + 5314.68 5816.34 l + 5317.4 5816.34 l + 5317.4 5802.58 l + 5317.4 5797.93 5319.45 5795.52 5323.4 5795.52 c + 5324.29 5795.52 5324.98 5795.61 5326.01 5795.92 c + 5326.01 5799.01 l + f + n + 5333.66 5810.1 m + 5334.16 5814.55 5336.02 5816.5 5339.79 5816.5 c + 5343.42 5816.5 5345.05 5814.55 5345.19 5810.1 c + 5333.66 5810.1 l + 5349.55 5800.21 m + 5346.78 5799.26 5344.51 5798.83 5342.24 5798.83 c + 5339.79 5798.83 5337.88 5799.39 5336.47 5800.51 c + 5334.7 5801.94 5333.93 5803.62 5333.57 5807 c + 5349.64 5807 l + 5349.68 5808.29 l + 5349.68 5808.59 l + 5349.68 5815.81 5346.28 5819.61 5339.88 5819.61 c + 5333.16 5819.61 5328.98 5815.12 5328.98 5807.95 c + 5328.98 5800.29 5333.7 5795.52 5341.29 5795.52 c + 5343.88 5795.52 5346.55 5795.92 5349.55 5796.83 c + 5349.55 5800.21 l + f + n + 5355.8 5796.92 m + 5358.88 5795.92 5361.32 5795.52 5363.76 5795.52 c + 5369.64 5795.52 5373.3 5798.15 5373.3 5802.43 c + 5373.3 5805.67 5371.16 5808.05 5366.9 5809.34 c + 5363.45 5810.42 l + 5361.4 5811.07 5360.37 5812.11 5360.37 5813.49 c + 5360.37 5815.39 5361.88 5816.34 5364.85 5816.34 c + 5367.07 5816.34 5369.11 5816 5371.37 5815.32 c + 5371.37 5818.89 l + 5368.74 5819.39 5366.84 5819.61 5364.97 5819.61 c + 5358.93 5819.61 5355.8 5817.45 5355.8 5813.21 c + 5355.8 5810.1 5357.65 5807.99 5361.35 5806.78 c + 5365.22 5805.57 l + 5367.61 5804.83 5368.74 5803.71 5368.74 5802.15 c + 5368.74 5799.95 5367 5798.79 5363.79 5798.79 c + 5361.24 5798.79 5358.83 5799.38 5355.8 5800.8 c + 5355.8 5796.92 l + f + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 348.72 529.02 m + /N23 8.96638 Tf + (Figure1:LinkedListof4) + [6.66309 2.94267 5.28303 5.87642 4.37907 8.46026 5.28303 7.68282 6.36188 2.94267 5.87639 + 5.28441 4.86029 9.53639 6.36185 2.94267 4.2022 7.61839 5.28301 6.84382 5.28301 ] pdfxs + (-) show + (bytev) + [5.57639 5.58422 4.13851 8.46033 4.98431 ] pdfxs + (a) show + (lues) + [2.94267 5.87639 4.86029 4.2022 ] pdfxs + Q + n + 3430.01 4697.8 252.613 126.309 re + 1 1 1 sc + f + 6.31534 w + n + 3430.01 4697.8 252.613 126.309 re + 0 0 0 sc + S + n + 3462.59 4729.38 m + 3471.48 4729.38 l + 3478.5 4748.2 l + 3505.64 4748.2 l + 3512.75 4729.38 l + 3523.04 4729.38 l + 3497.78 4797.08 l + 3488.23 4797.08 l + 3462.59 4729.38 l + 3481.31 4755.25 m + 3492.16 4784.26 l + 3503.02 4755.25 l + 3481.31 4755.25 l + f + 3.15767 w + n + 3556.31 4824.11 m + 3556.31 4697.8 l + 0.498001 0.498001 0.498001 sc + S + n + 3682.62 4697.8 252.613 126.309 re + 1 1 1 sc + f + 6.31534 w + n + 3682.62 4697.8 252.613 126.309 re + 0 0 0 sc + S + n + 3775.88 4742.41 m + 3767.83 4738.54 3761.56 4736.86 3754.55 4736.86 c + 3738.73 4736.86 3729.65 4746.46 3729.65 4763.19 c + 3729.65 4780.37 3738.07 4789.88 3753.42 4789.88 c + 3759.13 4789.88 3765.87 4788.55 3775.79 4785.38 c + 3775.79 4794.09 l + 3767.2 4796.14 3760.47 4797.08 3753.93 4797.08 c + 3731.6 4797.08 3719.45 4785.13 3719.45 4763.18 c + 3719.45 4741.15 3731.32 4729.38 3753.46 4729.38 c + 3761.87 4729.38 3768.5 4730.88 3775.88 4734.52 c + 3775.88 4742.41 l + f + 3.15767 w + n + 3808.93 4824.11 m + 3808.93 4697.8 l + 0.498001 0.498001 0.498001 sc + S + n + 3935.23 4697.8 252.617 126.309 re + 1 1 1 sc + f + 6.31534 w + n + 3935.23 4697.8 252.617 126.309 re + 0 0 0 sc + S + n + 3977.1 4729.38 m + 4001.21 4729.38 l + 4009.37 4729.38 4014.07 4729.94 4017.16 4731.34 c + 4022.51 4733.87 4025.98 4739.59 4025.98 4746.23 c + 4025.98 4755.42 4020.66 4760.85 4008.34 4764.6 c + 4018.86 4768.25 4023.37 4773.39 4023.37 4781.91 c + 4023.37 4792.87 4016.59 4797.08 3998.92 4797.08 c + 3977.1 4797.08 l + 3977.1 4729.38 l + 3986.77 4736.58 m + 3986.77 4761.27 l + 3994.63 4761.27 l + 4008.39 4761.27 4015.79 4756.2 4015.79 4746.91 c + 4015.79 4738.55 4011.57 4736.58 3993.88 4736.58 c + 3986.77 4736.58 l + 3986.77 4767.28 m + 3986.77 4789.88 l + 3995.72 4789.88 l + 4009.38 4789.88 4013.43 4787.62 4013.43 4780.22 c + 4013.43 4771.59 4007.31 4767.28 3994.96 4767.28 c + 3986.77 4767.28 l + f + 3.15767 w + n + 4061.54 4824.11 m + 4061.54 4697.8 l + 0.498001 0.498001 0.498001 sc + S + n + 4187.85 4697.8 252.613 126.309 re + 1 1 1 sc + f + 6.31534 w + n + 4187.85 4697.8 252.613 126.309 re + 0 0 0 sc + S + n + 4226.23 4729.38 m + 4247.96 4729.38 l + 4269.51 4729.38 4281.91 4742.3 4281.91 4764.77 c + 4281.91 4786.31 4270.54 4797.08 4247.88 4797.08 c + 4226.23 4797.08 l + 4226.23 4729.38 l + 4235.91 4736.58 m + 4235.91 4789.88 l + 4242.99 4789.88 l + 4252.88 4789.88 4258.1 4788.85 4262.11 4786.13 c + 4268.46 4781.82 4271.72 4774.14 4271.72 4763.65 c + 4271.72 4745.48 4263.7 4736.58 4247.38 4736.58 c + 4235.91 4736.58 l + f + 3.15767 w + n + 4314.16 4824.11 m + 4314.16 4697.8 l + 0.498001 0.498001 0.498001 sc + S + n + 3196.87 4685.36 m + 3186.43 4685.36 3180 4675.67 3180 4660.04 c + 3180 4644.47 3186.43 4634.64 3196.65 4634.64 c + 3207.38 4634.64 3213.73 4644.2 3213.73 4660.11 c + 3213.73 4675.73 3207.3 4685.36 3196.87 4685.36 c + 3196.87 4680.29 m + 3203.09 4680.29 3206.67 4672.97 3206.67 4660.1 c + 3206.67 4646.71 3203.31 4639.71 3196.87 4639.71 c + 3190.64 4639.71 3187.06 4647.03 3187.06 4660.04 c + 3187.06 4672.97 3190.57 4680.29 3196.87 4680.29 c + 0 0 0 sc + f + n + 3441.67 4662.14 m + 3435.87 4657.94 3433.4 4653.67 3433.4 4647.86 c + 3433.4 4639.92 3439.96 4634.64 3449.95 4634.64 c + 3460.07 4634.64 3467.12 4640.18 3467.12 4648.26 c + 3467.12 4654 3463.57 4658.14 3455.3 4662.14 c + 3462.15 4666.36 3465.03 4670.17 3465.03 4674.86 c + 3465.03 4681.14 3459.46 4685.36 3451.12 4685.36 c + 3442.21 4685.36 3436.02 4680.41 3436.02 4673.18 c + 3436.02 4669.04 3437.67 4665.82 3441.67 4662.14 c + 3451.12 4664.12 m + 3450.81 4664.26 3450.58 4664.39 3450.5 4664.46 c + 3442.83 4668.15 3440.2 4670.66 3440.2 4674.09 c + 3440.2 4677.85 3443.84 4680.29 3449.42 4680.29 c + 3455.3 4680.29 3459.02 4677.72 3459.02 4673.69 c + 3459.02 4670.2 3456.62 4667.36 3451.12 4664.12 c + 3450.99 4656.87 m + 3458.3 4653.17 3460.33 4651.19 3460.33 4647.5 c + 3460.33 4642.88 3456.28 4639.71 3450.4 4639.71 c + 3444.25 4639.71 3440.2 4643.34 3440.2 4648.95 c + 3440.2 4653.17 3441.41 4655.55 3445.7 4659.57 c + 3450.99 4656.87 l + f + n + 3690.46 4634.64 m + 3717.58 4634.64 l + 3717.58 4639.71 l + 3707.46 4639.71 l + 3707.46 4685.36 l + 3690.46 4681.27 l + 3690.46 4676.21 l + 3700.66 4678.67 l + 3700.66 4639.71 l + 3690.46 4639.71 l + 3690.46 4634.64 l + f + n + 3755.22 4683.39 m + 3751.43 4684.79 3748.68 4685.36 3745.65 4685.36 c + 3733.05 4685.36 3725.6 4675.28 3725.6 4658.46 c + 3725.6 4643.52 3731.87 4634.64 3742.37 4634.64 c + 3751.95 4634.64 3758.01 4641.36 3758.01 4651.93 c + 3758.01 4661.56 3752.99 4667.32 3744.62 4667.32 c + 3739.95 4667.32 3736.53 4665.54 3733.18 4661.36 c + 3733.18 4667.23 3733.67 4670.11 3734.93 4673.18 c + 3736.96 4677.88 3740.6 4680.29 3745.57 4680.29 c + 3748.08 4680.29 3750.82 4679.6 3755.22 4677.77 c + 3755.22 4683.39 l + 3742.66 4662.36 m + 3748.34 4662.36 3751.21 4658.37 3751.21 4650.54 c + 3751.21 4643.36 3748.41 4639.71 3742.86 4639.71 c + 3737.18 4639.71 3733.18 4644.76 3733.18 4652 c + 3733.18 4658.3 3736.9 4662.36 3742.66 4662.36 c + f + n + 3938.74 4634.64 m + 3967.65 4634.64 l + 3967.65 4640.55 l + 3946.9 4640.55 l + 3947.89 4644.92 3950.71 4649.21 3955.51 4653.37 c + 3957.91 4655.49 l + 3965.25 4661.9 3967.65 4665.79 3967.65 4671.51 c + 3967.65 4679.97 3962.01 4685.36 3953.05 4685.36 c + 3948.89 4685.36 3944.8 4684.38 3940.01 4682.19 c + 3940.01 4676.35 l + 3945.21 4679.14 3948.73 4680.29 3952.11 4680.29 c + 3957.45 4680.29 3960.33 4677.24 3960.33 4671.53 c + 3960.33 4667.11 3958.15 4662.83 3953.72 4658.48 c + 3950.34 4655.16 l + 3946.62 4651.49 l + 3942.96 4647.75 3940.29 4644.02 3938.74 4640.55 c + 3938.74 4634.64 l + f + n + 3998.86 4634.64 m + 4005.14 4634.64 l + 4005.14 4649.02 l + 4011.96 4649.02 l + 4011.96 4654.51 l + 4005.14 4654.51 l + 4005.14 4685.36 l + 3998.86 4685.36 l + 3976.29 4654.09 l + 3976.29 4649.02 l + 3998.86 4649.02 l + 3998.86 4634.64 l + 3982.9 4654.51 m + 3998.86 4677.07 l + 3998.86 4654.51 l + 3982.9 4654.51 l + f + n + 4193.12 4636.26 m + 4198.32 4635.14 4201.7 4634.64 4204.44 4634.64 c + 4214.5 4634.64 4221.05 4640.39 4221.05 4649.13 c + 4221.05 4652.13 4220.27 4654.61 4218.71 4656.61 c + 4216.66 4659.28 4213.96 4660.68 4208.72 4662.02 c + 4216.32 4664.75 4219.48 4668.37 4219.48 4674.19 c + 4219.48 4681.48 4214.25 4685.36 4204.45 4685.36 c + 4200.96 4685.36 4197.69 4684.79 4193.12 4683.32 c + 4193.12 4677.59 l + 4197.8 4679.5 4201.03 4680.29 4204.11 4680.29 c + 4209.75 4680.29 4212.68 4677.85 4212.68 4673.1 c + 4212.68 4667.16 4207.99 4663.8 4199.71 4663.66 c + 4197.3 4663.6 l + 4197.3 4659.31 l + 4200.08 4659.31 l + 4208.89 4659.31 4213.73 4655.68 4213.73 4649.08 c + 4213.73 4643.01 4210.22 4639.71 4203.7 4639.71 c + 4201.39 4639.71 4198.1 4640.57 4193.68 4642.22 c + 4193.32 4642.35 l + 4193.12 4642.41 l + 4193.12 4636.26 l + f + n + 4231.46 4634.64 m + 4260.37 4634.64 l + 4260.37 4640.55 l + 4239.62 4640.55 l + 4240.61 4644.92 4243.43 4649.21 4248.23 4653.37 c + 4250.63 4655.49 l + 4257.97 4661.9 4260.37 4665.79 4260.37 4671.51 c + 4260.37 4679.97 4254.73 4685.36 4245.77 4685.36 c + 4241.61 4685.36 4237.52 4684.38 4232.73 4682.19 c + 4232.73 4676.35 l + 4237.93 4679.14 4241.45 4680.29 4244.82 4680.29 c + 4250.16 4680.29 4253.05 4677.24 4253.05 4671.53 c + 4253.05 4667.11 4250.87 4662.83 4246.44 4658.48 c + 4243.06 4655.16 l + 4239.34 4651.49 l + 4235.68 4647.75 4233.01 4644.02 4231.46 4640.55 c + 4231.46 4634.64 l + f + n + 3572.6 4729.38 m + 3611 4729.38 l + 3611 4737.24 l + 3583.45 4737.24 l + 3584.77 4743.07 3588.52 4748.8 3594.89 4754.36 c + 3598.07 4757.19 l + 3607.81 4765.75 3611 4770.94 3611 4778.59 c + 3611 4789.88 3603.5 4797.08 3591.61 4797.08 c + 3586.09 4797.08 3580.65 4795.77 3574.28 4792.87 c + 3574.28 4785.07 l + 3581.21 4788.8 3585.88 4790.34 3590.38 4790.34 c + 3597.49 4790.34 3601.33 4786.26 3601.33 4778.63 c + 3601.33 4772.73 3598.43 4767.01 3592.53 4761.2 c + 3588.04 4756.75 l + 3583.08 4751.85 l + 3578.21 4746.86 3574.66 4741.87 3572.6 4737.24 c + 3572.6 4729.38 l + f + n + 3652.44 4729.38 m + 3660.8 4729.38 l + 3660.8 4748.46 l + 3669.88 4748.46 l + 3669.88 4755.78 l + 3660.8 4755.78 l + 3660.8 4797.08 l + 3652.44 4797.08 l + 3622.4 4755.22 l + 3622.4 4748.46 l + 3652.44 4748.46 l + 3652.44 4729.38 l + 3631.2 4755.78 m + 3652.44 4785.98 l + 3652.44 4755.78 l + 3631.2 4755.78 l + f + n + 3830.48 4731.53 m + 3837.4 4730.03 3841.89 4729.38 3845.54 4729.38 c + 3858.91 4729.38 3867.6 4737.04 3867.6 4748.71 c + 3867.6 4752.73 3866.56 4756.02 3864.48 4758.7 c + 3861.73 4762.26 3858.13 4764.13 3851.13 4765.91 c + 3861.11 4769.57 3865.25 4774.4 3865.25 4782.17 c + 3865.25 4791.9 3858.35 4797.08 3845.42 4797.08 c + 3840.82 4797.08 3836.51 4796.33 3830.48 4794.36 c + 3830.48 4786.73 l + 3836.68 4789.28 3840.95 4790.34 3845.02 4790.34 c + 3852.48 4790.34 3856.36 4787.08 3856.36 4780.73 c + 3856.36 4772.79 3850.16 4768.3 3839.2 4768.12 c + 3836.01 4768.03 l + 3836.01 4762.3 l + 3839.69 4762.3 l + 3851.46 4762.3 3857.93 4757.45 3857.93 4748.63 c + 3857.93 4740.52 3853.26 4736.11 3844.57 4736.11 c + 3841.5 4736.11 3837.11 4737.26 3831.23 4739.46 c + 3830.76 4739.64 l + 3830.48 4739.73 l + 3830.48 4731.53 l + f + n + 3881.36 4729.38 m + 3919.76 4729.38 l + 3919.76 4737.24 l + 3892.21 4737.24 l + 3893.52 4743.07 3897.27 4748.8 3903.64 4754.36 c + 3906.82 4757.19 l + 3916.57 4765.75 3919.76 4770.94 3919.76 4778.59 c + 3919.76 4789.88 3912.26 4797.08 3900.37 4797.08 c + 3894.84 4797.08 3889.41 4795.77 3883.04 4792.87 c + 3883.04 4785.07 l + 3889.96 4788.8 3894.64 4790.34 3899.14 4790.34 c + 3906.25 4790.34 3910.09 4786.26 3910.09 4778.63 c + 3910.09 4772.73 3907.19 4767.01 3901.29 4761.2 c + 3896.79 4756.75 l + 3891.84 4751.85 l + 3886.97 4746.86 3883.41 4741.87 3881.36 4737.24 c + 3881.36 4729.38 l + f + n + 4084.64 4729.38 m + 4120.84 4729.38 l + 4120.84 4736.11 l + 4107.36 4736.11 l + 4107.36 4797.08 l + 4084.64 4791.61 l + 4084.64 4784.87 l + 4098.21 4788.15 l + 4098.21 4736.11 l + 4084.64 4736.11 l + 4084.64 4729.38 l + f + n + 4170.51 4794.46 m + 4165.48 4796.33 4161.85 4797.08 4157.84 4797.08 c + 4141.16 4797.08 4131.29 4783.63 4131.29 4761.18 c + 4131.29 4741.22 4139.59 4729.38 4153.47 4729.38 c + 4166.14 4729.38 4174.16 4738.29 4174.16 4752.34 c + 4174.16 4765.11 4167.55 4772.77 4156.54 4772.77 c + 4150.39 4772.77 4145.89 4770.43 4141.48 4764.91 c + 4141.48 4772.8 4142.13 4776.66 4143.79 4780.78 c + 4146.46 4787.1 4151.25 4790.34 4157.79 4790.34 c + 4161.11 4790.34 4164.71 4789.4 4170.51 4786.93 c + 4170.51 4794.46 l + 4153.98 4766.23 m + 4161.48 4766.23 4165.27 4760.94 4165.27 4750.51 c + 4165.27 4740.97 4161.57 4736.11 4154.25 4736.11 c + 4146.76 4736.11 4141.48 4742.82 4141.48 4752.46 c + 4141.48 4760.85 4146.39 4766.23 4153.98 4766.23 c + f + n + 4378.59 4797.08 m + 4364.67 4797.08 4356.11 4784.14 4356.11 4763.27 c + 4356.11 4742.49 4364.67 4729.38 4378.3 4729.38 c + 4392.6 4729.38 4401.07 4742.13 4401.07 4763.36 c + 4401.07 4784.23 4392.51 4797.08 4378.59 4797.08 c + 4378.59 4790.34 m + 4386.72 4790.34 4391.39 4780.55 4391.39 4763.36 c + 4391.39 4745.46 4387 4736.11 4378.59 4736.11 c + 4370.45 4736.11 4365.78 4745.9 4365.78 4763.27 c + 4365.78 4780.55 4370.36 4790.34 4378.59 4790.34 c + f + n + 3177.39 4697.8 252.617 126.309 re + 0.898346 0.898346 0.898346 sc + f + 6.31534 w + n + 3177.39 4697.8 252.617 126.309 re + 0 0 0 sc + S + 3.15767 w + n + 3303.7 4824.11 m + 3303.7 4697.8 l + 0.498001 0.498001 0.498001 sc + S + n + 3177.39 4981.99 252.617 126.309 re + 1 1 1 sc + f + 6.31534 w + n + 3177.39 4981.99 252.617 126.309 re + 0 0 0 sc + S + n + 3293.63 5050.29 m + 3286 5044.67 3282.75 5038.97 3282.75 5031.21 c + 3282.75 5020.61 3291.55 5013.57 3304.94 5013.57 c + 3318.51 5013.57 3327.97 5020.96 3327.97 5031.75 c + 3327.97 5039.41 3323.23 5044.94 3312.19 5050.29 c + 3321.45 5055.91 3325.36 5061 3325.36 5067.25 c + 3325.36 5075.65 3317.83 5081.27 3306.55 5081.27 c + 3294.51 5081.27 3286.14 5074.66 3286.14 5065.02 c + 3286.14 5059.48 3288.33 5055.2 3293.63 5050.29 c + 3306.5 5052.93 m + 3306.07 5053.11 3305.76 5053.28 3305.66 5053.37 c + 3295.22 5058.31 3291.63 5061.66 3291.63 5066.25 c + 3291.63 5071.27 3296.59 5074.53 3304.18 5074.53 c + 3312.19 5074.53 3317.25 5071.09 3317.25 5065.71 c + 3317.25 5061.04 3313.98 5057.25 3306.5 5052.93 c + 3306.24 5043.23 m + 3316.09 5038.29 3318.82 5035.65 3318.82 5030.71 c + 3318.82 5024.54 3313.35 5020.3 3305.41 5020.3 c + 3297.11 5020.3 3291.63 5025.15 3291.63 5032.65 c + 3291.63 5038.29 3293.28 5041.47 3299.12 5046.85 c + 3306.24 5043.23 l + f + n + 3440.04 5084.15 m + 3443.41 5084.15 l + 3443.97 5095.43 l + 3439.48 5095.43 l + 3440.04 5084.15 l + 3447.95 5084.15 m + 3451.32 5084.15 l + 3451.88 5095.43 l + 3447.34 5095.43 l + 3447.95 5084.15 l + f + n + 3458.4 5059.35 m + 3463.11 5059.35 l + 3463.11 5072.68 l + 3470.12 5072.68 l + 3479.71 5072.68 3484.54 5076.56 3484.54 5084.14 c + 3484.54 5087.65 3483.38 5090.13 3481.06 5091.58 c + 3479.34 5092.7 3476.88 5093.07 3471.59 5093.07 c + 3458.4 5093.07 l + 3458.4 5059.35 l + 3463.11 5076.34 m + 3463.11 5089.47 l + 3470.03 5089.47 l + 3477.38 5089.47 3479.57 5088.16 3479.57 5083.86 c + 3479.57 5078.87 3476.35 5076.34 3469.94 5076.34 c + 3463.11 5076.34 l + f + n + 3499.36 5084.19 m + 3492.57 5084.19 3488.38 5079.48 3488.38 5071.77 c + 3488.38 5064.15 3492.57 5059.35 3499.23 5059.35 c + 3506.2 5059.35 3510.34 5064.01 3510.34 5071.81 c + 3510.34 5079.48 3506.16 5084.19 3499.36 5084.19 c + 3499.36 5080.82 m + 3503.37 5080.82 3505.38 5077.81 3505.38 5071.86 c + 3505.38 5065.86 3503.32 5062.72 3499.36 5062.72 c + 3495.31 5062.72 3493.35 5065.72 3493.35 5071.81 c + 3493.35 5077.77 3495.36 5080.82 3499.36 5080.82 c + f + n + 3515.91 5059.35 m + 3520.61 5059.35 l + 3520.61 5084.19 l + 3515.91 5084.19 l + 3515.91 5059.35 l + 3515.91 5088.58 m + 3520.61 5088.58 l + 3520.61 5093.07 l + 3515.91 5093.07 l + 3515.91 5088.58 l + f + n + 3527.12 5059.35 m + 3531.83 5059.35 l + 3531.83 5075.01 l + 3534.29 5078.71 3536.48 5080.35 3539.04 5080.35 c + 3541.32 5080.35 3542.02 5079.16 3542.02 5075.28 c + 3542.02 5059.35 l + 3546.73 5059.35 l + 3546.73 5076.81 l + 3546.73 5081.66 3544.56 5084.19 3540.36 5084.19 c + 3537.02 5084.19 3534.46 5082.65 3531.83 5078.98 c + 3531.83 5084.19 l + 3527.12 5084.19 l + 3527.12 5059.35 l + f + n + 3562.73 5062.95 m + 3562.26 5062.81 3561.79 5062.72 3561.18 5062.72 c + 3559.07 5062.72 3558.56 5063.63 3558.56 5067.45 c + 3558.56 5080.82 l + 3563.38 5080.82 l + 3563.38 5084.19 l + 3558.56 5084.19 l + 3558.56 5089.1 l + 3553.86 5088.68 l + 3553.86 5084.19 l + 3551.05 5084.19 l + 3551.05 5080.82 l + 3553.86 5080.82 l + 3553.86 5066.63 l + 3553.86 5061.84 3555.97 5059.35 3560.04 5059.35 c + 3560.95 5059.35 3561.67 5059.45 3562.73 5059.77 c + 3562.73 5062.95 l + f + n + 3570.61 5074.39 m + 3571.13 5078.97 3573.05 5080.98 3576.93 5080.98 c + 3580.67 5080.98 3582.36 5078.97 3582.5 5074.39 c + 3570.61 5074.39 l + 3586.99 5064.19 m + 3584.14 5063.21 3581.8 5062.77 3579.46 5062.77 c + 3576.93 5062.77 3574.96 5063.35 3573.51 5064.5 c + 3571.69 5065.97 3570.89 5067.71 3570.52 5071.18 c + 3587.09 5071.18 l + 3587.13 5072.52 l + 3587.13 5072.83 l + 3587.13 5080.27 3583.62 5084.19 3577.02 5084.19 c + 3570.1 5084.19 3565.79 5079.55 3565.79 5072.16 c + 3565.79 5064.27 3570.66 5059.35 3578.48 5059.35 c + 3581.14 5059.35 3583.9 5059.77 3586.99 5060.71 c + 3586.99 5064.19 l + f + n + 3593.96 5059.35 m + 3598.67 5059.35 l + 3598.67 5075.28 l + 3600.63 5078.7 3602.27 5080.26 3604 5080.26 c + 3604.47 5080.26 3605.08 5080.12 3605.92 5079.89 c + 3605.92 5084.19 l + 3605.73 5084.19 l + 3605.36 5084.19 3604.89 5084.19 3604.61 5084.19 c + 3601.99 5084.19 3600.21 5082.65 3598.67 5078.98 c + 3598.67 5084.19 l + 3593.96 5084.19 l + 3593.96 5059.35 l + f + n + 3609.27 5084.15 m + 3612.64 5084.15 l + 3613.2 5095.43 l + 3608.71 5095.43 l + 3609.27 5084.15 l + 3617.18 5084.15 m + 3620.55 5084.15 l + 3621.11 5095.43 l + 3616.57 5095.43 l + 3617.18 5084.15 l + f + n + 3456.61 4996.2 m + 3461.1 4996.2 l + 3473.69 5029.92 l + 3469.62 5029.92 l + 3459.28 5002.21 l + 3448.47 5029.92 l + 3443.55 5029.92 l + 3456.61 4996.2 l + f + n + 3499.46 4999.89 m + 3499.17 4999.89 3499.08 4999.89 3498.61 4999.89 c + 3497.07 4999.89 3496.23 5001 3496.23 5002.98 c + 3496.23 5013.56 l + 3496.23 5018.73 3493.62 5021.04 3487.7 5021.04 c + 3484.81 5021.04 3482.11 5020.47 3478.79 5019.16 c + 3478.79 5015.59 l + 3481.74 5017 3484.17 5017.66 3486.75 5017.66 c + 3489.93 5017.66 3491.52 5016.3 3491.52 5013.56 c + 3491.52 5010.74 l + 3490.45 5010.74 l + 3481.22 5010.74 3476.62 5008.06 3476.62 5002.68 c + 3476.62 4998.88 3479.63 4996.2 3483.95 4996.2 c + 3486.77 4996.2 3489.2 4997.27 3492.21 4999.89 c + 3492.93 4997.32 3494.18 4996.2 3496.38 4996.2 c + 3497.53 4996.2 3498.68 4996.48 3499.79 4997.05 c + 3499.46 4999.89 l + 3491.52 5002.23 m + 3489.28 5000.56 3487.5 4999.89 3485.45 4999.89 c + 3482.78 4999.89 3481.33 5001.18 3481.33 5003.46 c + 3481.33 5006.64 3484.18 5008.32 3489.51 5008.32 c + 3490.03 5008.32 l + 3491.52 5008.27 l + 3491.52 5002.23 l + f + n + 3504.66 4996.2 m + 3509.37 4996.2 l + 3509.37 5012.13 l + 3511.34 5015.55 3512.97 5017.11 3514.7 5017.11 c + 3515.17 5017.11 3515.78 5016.97 3516.62 5016.74 c + 3516.62 5021.04 l + 3516.44 5021.04 l + 3516.06 5021.04 3515.59 5021.04 3515.31 5021.04 c + 3512.7 5021.04 3510.91 5019.5 3509.37 5015.82 c + 3509.37 5021.04 l + 3504.66 5021.04 l + 3504.66 4996.2 l + f + n + 3520.18 4996.2 m + 3524.89 4996.2 l + 3524.89 5021.04 l + 3520.18 5021.04 l + 3520.18 4996.2 l + 3520.18 5025.43 m + 3524.89 5025.43 l + 3524.89 5029.92 l + 3520.18 5029.92 l + 3520.18 5025.43 l + f + n + 3552.93 4999.89 m + 3552.64 4999.89 3552.55 4999.89 3552.08 4999.89 c + 3550.54 4999.89 3549.7 5001 3549.7 5002.98 c + 3549.7 5013.56 l + 3549.7 5018.73 3547.09 5021.04 3541.16 5021.04 c + 3538.28 5021.04 3535.57 5020.47 3532.26 5019.16 c + 3532.26 5015.59 l + 3535.21 5017 3537.64 5017.66 3540.22 5017.66 c + 3543.4 5017.66 3544.99 5016.3 3544.99 5013.56 c + 3544.99 5010.74 l + 3543.92 5010.74 l + 3534.69 5010.74 3530.09 5008.06 3530.09 5002.68 c + 3530.09 4998.88 3533.1 4996.2 3537.41 4996.2 c + 3540.23 4996.2 3542.67 4997.27 3545.68 4999.89 c + 3546.4 4997.32 3547.64 4996.2 3549.85 4996.2 c + 3551 4996.2 3552.15 4996.48 3553.25 4997.05 c + 3552.93 4999.89 l + 3544.99 5002.23 m + 3542.75 5000.56 3540.97 4999.89 3538.91 4999.89 c + 3536.25 4999.89 3534.8 5001.18 3534.8 5003.46 c + 3534.8 5006.64 3537.65 5008.32 3542.98 5008.32 c + 3543.5 5008.32 l + 3544.99 5008.27 l + 3544.99 5002.23 l + f + n + 3562.84 5011.92 m + 3565.37 5015.63 3567.29 5017.19 3569.3 5017.19 c + 3572.2 5017.19 3573.98 5013.89 3573.98 5008.57 c + 3573.98 5002.2 3571.77 4998.95 3567.56 4998.95 c + 3566.49 4998.95 3565.09 4999.13 3562.84 4999.54 c + 3562.84 5011.92 l + 3562.84 5031.75 m + 3558.13 5031.75 l + 3558.13 4996.2 l + 3562.84 4996.2 l + 3564.43 4996.2 3565.69 4996.2 3567.14 4996.2 c + 3574.63 4996.2 3578.84 5000.81 3578.84 5009.03 c + 3578.84 5016.27 3575.43 5021.04 3570.23 5021.04 c + 3567.05 5021.04 3564.85 5019.52 3562.84 5015.9 c + 3562.84 5031.75 l + f + n + 3584.35 4996.2 4.70703 36.0781 re + f + n + 3598.95 5011.23 m + 3599.46 5015.82 3601.38 5017.83 3605.27 5017.83 c + 3609.01 5017.83 3610.7 5015.82 3610.84 5011.23 c + 3598.95 5011.23 l + 3615.33 5001.04 m + 3612.47 5000.06 3610.13 4999.61 3607.79 4999.61 c + 3605.27 4999.61 3603.3 5000.2 3601.85 5001.35 c + 3600.03 5002.82 3599.23 5004.55 3598.86 5008.03 c + 3615.42 5008.03 l + 3615.46 5009.37 l + 3615.46 5009.68 l + 3615.46 5017.12 3611.96 5021.04 3605.36 5021.04 c + 3598.43 5021.04 3594.13 5016.4 3594.13 5009.01 c + 3594.13 5001.12 3599 4996.2 3606.81 4996.2 c + 3609.48 4996.2 3612.24 4996.62 3615.33 4997.55 c + 3615.33 5001.04 l + f + n + 3903.66 4981.99 505.227 126.309 re + 1 1 1 sc + f + n + 3903.66 4981.99 505.227 126.309 re + 0 0 0 sc + S + n + 4483.12 5060.93 m + 4487.83 5060.93 l + 4487.83 5074.27 l + 4494.85 5074.27 l + 4504.43 5074.27 4509.27 5078.14 4509.27 5085.72 c + 4509.27 5089.23 4508.11 5091.71 4505.78 5093.16 c + 4504.07 5094.28 4501.6 5094.66 4496.31 5094.66 c + 4483.12 5094.66 l + 4483.12 5060.93 l + 4487.83 5077.93 m + 4487.83 5091.05 l + 4494.75 5091.05 l + 4502.1 5091.05 4504.3 5089.75 4504.3 5085.45 c + 4504.3 5080.45 4501.07 5077.93 4494.66 5077.93 c + 4487.83 5077.93 l + f + n + 4524.09 5085.77 m + 4517.29 5085.77 4513.11 5081.06 4513.11 5073.35 c + 4513.11 5065.73 4517.29 5060.93 4523.95 5060.93 c + 4530.92 5060.93 4535.07 5065.59 4535.07 5073.39 c + 4535.07 5081.06 4530.88 5085.77 4524.09 5085.77 c + 4524.09 5082.4 m + 4528.09 5082.4 4530.1 5079.39 4530.1 5073.44 c + 4530.1 5067.44 4528.05 5064.3 4524.09 5064.3 c + 4520.04 5064.3 4518.07 5067.3 4518.07 5073.39 c + 4518.07 5079.35 4520.08 5082.4 4524.09 5082.4 c + f + n + 4550.82 5085.77 m + 4544.03 5085.77 4539.84 5081.06 4539.84 5073.35 c + 4539.84 5065.73 4544.03 5060.93 4550.68 5060.93 c + 4557.66 5060.93 4561.8 5065.59 4561.8 5073.39 c + 4561.8 5081.06 4557.61 5085.77 4550.82 5085.77 c + 4550.82 5082.4 m + 4554.83 5082.4 4556.83 5079.39 4556.83 5073.44 c + 4556.83 5067.44 4554.78 5064.3 4550.82 5064.3 c + 4546.77 5064.3 4544.81 5067.3 4544.81 5073.39 c + 4544.81 5079.35 4546.81 5082.4 4550.82 5082.4 c + f + n + 4567.36 5060.93 4.70703 36.0781 re + f + n + 4420.3 4997.78 m + 4431.21 4997.78 l + 4442.04 4997.78 4448.27 5004.21 4448.27 5015.41 c + 4448.27 5026.14 4442.55 5031.5 4431.16 5031.5 c + 4420.3 5031.5 l + 4420.3 4997.78 l + 4425 5001.38 m + 4425 5027.9 l + 4428.57 5027.9 l + 4433.55 5027.9 4436.18 5027.38 4438.2 5026.04 c + 4441.4 5023.89 4443.04 5020.07 4443.04 5014.85 c + 4443.04 5005.81 4439 5001.38 4430.78 5001.38 c + 4425 5001.38 l + f + n + 4457.65 5012.81 m + 4458.16 5017.4 4460.08 5019.41 4463.96 5019.41 c + 4467.71 5019.41 4469.39 5017.4 4469.54 5012.81 c + 4457.65 5012.81 l + 4474.03 5002.62 m + 4471.17 5001.64 4468.83 5001.19 4466.49 5001.19 c + 4463.96 5001.19 4462 5001.77 4460.55 5002.93 c + 4458.73 5004.4 4457.93 5006.13 4457.55 5009.61 c + 4474.12 5009.61 l + 4474.16 5010.95 l + 4474.16 5011.26 l + 4474.16 5018.7 4470.66 5022.61 4464.06 5022.61 c + 4457.13 5022.61 4452.83 5017.98 4452.83 5010.59 c + 4452.83 5002.7 4457.7 4997.78 4465.51 4997.78 c + 4468.18 4997.78 4470.94 4998.2 4474.03 4999.13 c + 4474.03 5002.62 l + f + n + 4480.47 4999.23 m + 4483.64 4998.2 4486.16 4997.78 4488.68 4997.78 c + 4494.74 4997.78 4498.51 5000.49 4498.51 5004.9 c + 4498.51 5008.24 4496.3 5010.69 4491.91 5012.03 c + 4488.36 5013.14 l + 4486.24 5013.81 4485.18 5014.88 4485.18 5016.3 c + 4485.18 5018.26 4486.73 5019.24 4489.8 5019.24 c + 4492.09 5019.24 4494.19 5018.89 4496.52 5018.18 c + 4496.52 5021.86 l + 4493.81 5022.38 4491.84 5022.61 4489.93 5022.61 c + 4483.7 5022.61 4480.47 5020.39 4480.47 5016.02 c + 4480.47 5012.81 4482.38 5010.63 4486.19 5009.39 c + 4490.18 5008.14 l + 4492.64 5007.38 4493.8 5006.22 4493.8 5004.62 c + 4493.8 5002.35 4492.01 5001.15 4488.7 5001.15 c + 4486.08 5001.15 4483.6 5001.77 4480.47 5003.22 c + 4480.47 4999.23 l + f + n + 4522.85 5002.88 m + 4520.23 5001.87 4518.31 5001.43 4516.39 5001.43 c + 4511.52 5001.43 4508.72 5004.6 4508.72 5010.2 c + 4508.72 5016.11 4511.39 5019.15 4516.58 5019.15 c + 4518.17 5019.15 4519.86 5018.84 4522.57 5018.09 c + 4522.57 5021.77 l + 4519.96 5022.33 4517.73 5022.61 4515.81 5022.61 c + 4508.22 5022.61 4503.75 5018.04 4503.75 5010.2 c + 4503.75 5002.71 4508.27 4997.78 4515.07 4997.78 c + 4517.59 4997.78 4520.06 4998.2 4522.85 4999.09 c + 4522.85 5002.88 l + f + n + 4529.12 4997.78 m + 4533.83 4997.78 l + 4533.83 5013.71 l + 4535.79 5017.13 4537.43 5018.68 4539.16 5018.68 c + 4539.63 5018.68 4540.24 5018.55 4541.08 5018.32 c + 4541.08 5022.61 l + 4540.89 5022.61 l + 4540.52 5022.61 4540.05 5022.61 4539.77 5022.61 c + 4537.15 5022.61 4535.37 5021.07 4533.83 5017.4 c + 4533.83 5022.61 l + 4529.12 5022.61 l + 4529.12 4997.78 l + f + n + 4544.64 4997.78 m + 4549.34 4997.78 l + 4549.34 5022.61 l + 4544.64 5022.61 l + 4544.64 4997.78 l + 4544.64 5027.01 m + 4549.34 5027.01 l + 4549.34 5031.5 l + 4544.64 5031.5 l + 4544.64 5027.01 l + f + n + 4560.56 4989.3 m + 4560.56 4997.78 l + 4562.14 4997.78 4563.4 4997.78 4564.85 4997.78 c + 4572.31 4997.78 4576.51 5002.48 4576.51 5010.87 c + 4576.51 5017.95 4573.11 5022.61 4567.93 5022.61 c + 4564.75 5022.61 4562.57 5021.09 4560.56 5017.45 c + 4560.56 5022.61 l + 4555.86 5022.61 l + 4555.86 4989.3 l + 4560.56 4989.3 l + 4560.56 5013.62 m + 4563.05 5017.18 4564.95 5018.68 4566.93 5018.68 c + 4569.79 5018.68 4571.54 5015.51 4571.54 5010.4 c + 4571.54 5004.28 4569.37 5001.15 4565.22 5001.15 c + 4564.11 5001.15 4563.01 5001.28 4560.56 5001.72 c + 4560.56 5013.62 l + f + n + 4591.46 5001.38 m + 4590.99 5001.24 4590.53 5001.15 4589.92 5001.15 c + 4587.81 5001.15 4587.3 5002.06 4587.3 5005.88 c + 4587.3 5019.24 l + 4592.11 5019.24 l + 4592.11 5022.61 l + 4587.3 5022.61 l + 4587.3 5027.52 l + 4582.59 5027.11 l + 4582.59 5022.61 l + 4579.79 5022.61 l + 4579.79 5019.24 l + 4582.59 5019.24 l + 4582.59 5005.05 l + 4582.59 5000.27 4584.7 4997.78 4588.78 4997.78 c + 4589.69 4997.78 4590.41 4997.87 4591.46 4998.2 c + 4591.46 5001.38 l + f + n + 4605.63 5022.61 m + 4598.84 5022.61 4594.65 5017.91 4594.65 5010.2 c + 4594.65 5002.57 4598.84 4997.78 4605.49 4997.78 c + 4612.46 4997.78 4616.61 5002.44 4616.61 5010.24 c + 4616.61 5017.91 4612.42 5022.61 4605.63 5022.61 c + 4605.63 5019.24 m + 4609.64 5019.24 4611.64 5016.24 4611.64 5010.29 c + 4611.64 5004.28 4609.59 5001.15 4605.63 5001.15 c + 4601.58 5001.15 4599.62 5004.15 4599.62 5010.24 c + 4599.62 5016.2 4601.62 5019.24 4605.63 5019.24 c + f + n + 4622.69 4997.78 m + 4627.4 4997.78 l + 4627.4 5013.71 l + 4629.36 5017.13 4631 5018.68 4632.73 5018.68 c + 4633.2 5018.68 4633.81 5018.55 4634.65 5018.32 c + 4634.65 5022.61 l + 4634.46 5022.61 l + 4634.09 5022.61 4633.62 5022.61 4633.34 5022.61 c + 4630.72 5022.61 4628.94 5021.07 4627.4 5017.4 c + 4627.4 5022.61 l + 4622.69 5022.61 l + 4622.69 4997.78 l + f + 3.15767 w + n + 4156.27 5108.3 m + 4156.27 4981.99 l + 0.498001 0.498001 0.498001 sc + S + n + 3989.95 5054.62 m + 3994.39 5054.62 l + 3994.39 5066.64 l + 4000.62 5066.64 l + 4009.16 5066.64 4013.47 5070.12 4013.47 5076.92 c + 4013.47 5080.07 4012.43 5082.3 4010.34 5083.6 c + 4008.79 5084.61 4006.58 5084.94 4001.82 5084.94 c + 3989.95 5084.94 l + 3989.95 5054.62 l + 3994.39 5070.04 m + 3994.39 5081.7 l + 4000.54 5081.7 l + 4007.07 5081.7 4009.03 5080.54 4009.03 5076.72 c + 4009.03 5072.28 4006.16 5070.04 4000.46 5070.04 c + 3994.39 5070.04 l + 0 0 0 sc + f + n + 4026.91 5076.84 m + 4020.77 5076.84 4016.98 5072.62 4016.98 5065.73 c + 4016.98 5058.91 4020.77 5054.62 4026.79 5054.62 c + 4033.11 5054.62 4036.85 5058.79 4036.85 5065.77 c + 4036.85 5072.62 4033.06 5076.84 4026.91 5076.84 c + 4026.91 5073.8 m + 4030.57 5073.8 4032.41 5071.12 4032.41 5065.8 c + 4032.41 5060.45 4030.54 5057.65 4026.91 5057.65 c + 4023.21 5057.65 4021.43 5060.33 4021.43 5065.77 c + 4021.43 5071.09 4023.26 5073.8 4026.91 5073.8 c + f + n + 4050.98 5076.84 m + 4044.83 5076.84 4041.04 5072.62 4041.04 5065.73 c + 4041.04 5058.91 4044.83 5054.62 4050.85 5054.62 c + 4057.17 5054.62 4060.91 5058.79 4060.91 5065.77 c + 4060.91 5072.62 4057.12 5076.84 4050.98 5076.84 c + 4050.98 5073.8 m + 4054.64 5073.8 4056.47 5071.12 4056.47 5065.8 c + 4056.47 5060.45 4054.6 5057.65 4050.98 5057.65 c + 4047.28 5057.65 4045.49 5060.33 4045.49 5065.77 c + 4045.49 5071.09 4047.32 5073.8 4050.98 5073.8 c + f + n + 4065.89 5054.62 4.18359 32.4492 re + f + n + 3983.79 4997.78 m + 3994.62 4997.78 l + 3998.29 4997.78 4000.4 4998.03 4001.79 4998.66 c + 4004.19 4999.8 4005.75 5002.36 4005.75 5005.36 c + 4005.75 5009.48 4003.34 5011.92 3997.75 5013.6 c + 4002.44 5015.23 4004.45 5017.53 4004.45 5021.33 c + 4004.45 5026.22 4001.42 5028.1 3993.53 5028.1 c + 3983.79 5028.1 l + 3983.79 4997.78 l + 3988.24 5001.02 m + 3988.24 5012.16 l + 3991.78 5012.16 l + 3997.98 5012.16 4001.31 5009.87 4001.31 5005.68 c + 4001.31 5001.91 3999.41 5001.02 3991.44 5001.02 c + 3988.24 5001.02 l + 3988.24 5014.77 m + 3988.24 5024.86 l + 3992.19 5024.86 l + 3998.21 5024.86 4000 5023.86 4000 5020.55 c + 4000 5016.7 3997.3 5014.77 3991.85 5014.77 c + 3988.24 5014.77 l + f + n + 4031.52 5001.1 m + 4031.26 5001.1 4031.18 5001.1 4030.76 5001.1 c + 4029.37 5001.1 4028.61 5002.09 4028.61 5003.86 c + 4028.61 5013.31 l + 4028.61 5017.93 4026.24 5020 4020.86 5020 c + 4018.23 5020 4015.77 5019.49 4012.76 5018.31 c + 4012.76 5015.12 l + 4015.46 5016.38 4017.69 5016.96 4020.05 5016.96 c + 4022.97 5016.96 4024.43 5015.75 4024.43 5013.31 c + 4024.43 5010.79 l + 4023.43 5010.79 l + 4015.02 5010.79 4010.83 5008.39 4010.83 5003.58 c + 4010.83 5000.18 4013.57 4997.78 4017.51 4997.78 c + 4020.07 4997.78 4022.3 4998.75 4025.04 5001.1 c + 4025.68 4998.79 4026.79 4997.78 4028.77 4997.78 c + 4029.79 4997.78 4030.82 4998.04 4031.81 4998.55 c + 4031.52 5001.1 l + 4024.43 5003.19 m + 4022.36 5001.7 4020.71 5001.1 4018.82 5001.1 c + 4016.36 5001.1 4015.02 5002.25 4015.02 5004.29 c + 4015.02 5007.12 4017.65 5008.62 4022.57 5008.62 c + 4023.05 5008.62 l + 4024.43 5008.58 l + 4024.43 5003.19 l + f + n + 4035.68 4999.08 m + 4038.52 4998.16 4040.79 4997.78 4043.05 4997.78 c + 4048.49 4997.78 4051.88 5000.21 4051.88 5004.15 c + 4051.88 5007.14 4049.89 5009.32 4045.93 5010.52 c + 4042.73 5011.52 l + 4040.82 5012.11 4039.86 5013.07 4039.86 5014.34 c + 4039.86 5016.09 4041.27 5016.96 4044.04 5016.96 c + 4046.11 5016.96 4048.01 5016.65 4050.12 5016.02 c + 4050.12 5019.32 l + 4047.67 5019.79 4045.91 5020 4044.18 5020 c + 4038.58 5020 4035.68 5018.01 4035.68 5014.1 c + 4035.68 5011.24 4037.39 5009.29 4040.83 5008.17 c + 4044.43 5007.06 l + 4046.66 5006.38 4047.7 5005.35 4047.7 5003.91 c + 4047.7 5001.88 4046.09 5000.81 4043.1 5000.81 c + 4040.74 5000.81 4038.5 5001.36 4035.68 5002.66 c + 4035.68 4999.08 l + f + n + 4060.82 5011.24 m + 4061.28 5015.34 4063.01 5017.13 4066.5 5017.13 c + 4069.87 5017.13 4071.38 5015.34 4071.51 5011.24 c + 4060.82 5011.24 l + 4075.55 5002.12 m + 4072.98 5001.25 4070.88 5000.85 4068.78 5000.85 c + 4066.5 5000.85 4064.73 5001.37 4063.43 5002.4 c + 4061.79 5003.71 4061.07 5005.27 4060.73 5008.37 c + 4075.64 5008.37 l + 4075.68 5009.57 l + 4075.68 5009.85 l + 4075.68 5016.49 4072.52 5020 4066.59 5020 c + 4060.36 5020 4056.49 5015.86 4056.49 5009.25 c + 4056.49 5002.18 4060.86 4997.78 4067.89 4997.78 c + 4070.29 4997.78 4072.77 4998.16 4075.55 4999 c + 4075.55 5002.12 l + f + n + 4268.06 5045.14 5.75 5.66016 re + f + n + 4281.43 5045.14 5.75 5.66016 re + f + n + 4294.79 5045.14 5.75 5.66016 re + f + 6.31534 w + n + 4029.96 5045.14 m + 3202.57 4830.63 l + S + n + 3184.23 4825.88 m + 3205.51 4844.45 l + 3202.57 4830.63 l + 3211.85 4819.99 l + f + n + 3184.23 4825.88 m + 3205.51 4844.45 l + 3202.57 4830.63 l + 3211.85 4819.99 l + h + S + 3.15767 w + n + 4187.85 4838.32 m + 4187.85 4869.89 4251.26 4869.89 4314.16 4869.89 c + S + n + 4440.46 4838.32 m + 4440.46 4869.89 4377.31 4869.89 4314.16 4869.89 c + S + n + 4314.16 4869.89 m + 4314.24 4887.26 l + S + n + 4243.44 4918.18 m + 4239.46 4915.38 4237.77 4912.54 4237.77 4908.68 c + 4237.77 4903.39 4242.15 4899.89 4248.81 4899.89 c + 4255.55 4899.89 4260.26 4903.57 4260.26 4908.95 c + 4260.26 4912.76 4257.88 4915.52 4252.34 4918.18 c + 4256.99 4920.98 4258.95 4923.52 4258.95 4926.63 c + 4258.95 4930.81 4255.23 4933.61 4249.67 4933.61 c + 4243.73 4933.61 4239.61 4930.32 4239.61 4925.52 c + 4239.61 4922.76 4240.73 4920.62 4243.44 4918.18 c + 4249.61 4919.49 m + 4249.41 4919.58 4249.25 4919.67 4249.2 4919.71 c + 4244.2 4922.17 4242.48 4923.84 4242.48 4926.12 c + 4242.48 4928.62 4244.86 4930.24 4248.5 4930.24 c + 4252.34 4930.24 4254.77 4928.53 4254.77 4925.86 c + 4254.77 4923.53 4253.2 4921.64 4249.61 4919.49 c + 4249.5 4914.67 m + 4254.24 4912.21 4255.55 4910.89 4255.55 4908.43 c + 4255.55 4905.37 4252.92 4903.26 4249.11 4903.26 c + 4245.11 4903.26 4242.48 4905.68 4242.48 4909.4 c + 4242.48 4912.21 4243.27 4913.79 4246.07 4916.46 c + 4249.5 4914.67 l + f + n + 4279.45 4899.89 m + 4291.3 4899.89 l + 4295.32 4899.89 4297.63 4900.17 4299.16 4900.88 c + 4301.79 4902.15 4303.5 4905.02 4303.5 4908.36 c + 4303.5 4912.96 4300.85 4915.69 4294.73 4917.57 c + 4299.95 4919.38 4302.19 4921.92 4302.19 4926.12 c + 4302.19 4931.54 4298.86 4933.61 4290.17 4933.61 c + 4279.45 4933.61 l + 4279.45 4899.89 l + 4284.15 4903.49 m + 4284.15 4915.84 l + 4288.05 4915.84 l + 4294.86 4915.84 4298.53 4913.3 4298.53 4908.66 c + 4298.53 4904.48 4296.44 4903.49 4287.68 4903.49 c + 4284.15 4903.49 l + 4284.15 4918.97 m + 4284.15 4930.01 l + 4288.54 4930.01 l + 4295.23 4930.01 4297.22 4928.91 4297.22 4925.29 c + 4297.22 4921.08 4294.22 4918.97 4288.17 4918.97 c + 4284.15 4918.97 l + f + n + 4316.56 4899.92 m + 4312.63 4890.89 l + 4317.36 4890.89 l + 4330.45 4924.73 l + 4326.48 4924.73 l + 4319.08 4905.68 l + 4312.35 4924.73 l + 4307.76 4924.73 l + 4316.56 4899.92 l + f + n + 4343.67 4903.49 m + 4343.2 4903.35 4342.73 4903.26 4342.12 4903.26 c + 4340.02 4903.26 4339.5 4904.17 4339.5 4907.99 c + 4339.5 4921.36 l + 4344.32 4921.36 l + 4344.32 4924.73 l + 4339.5 4924.73 l + 4339.5 4929.64 l + 4334.8 4929.22 l + 4334.8 4924.73 l + 4331.99 4924.73 l + 4331.99 4921.36 l + 4334.8 4921.36 l + 4334.8 4907.17 l + 4334.8 4902.38 4336.91 4899.89 4340.98 4899.89 c + 4341.89 4899.89 4342.61 4899.98 4343.67 4900.31 c + 4343.67 4903.49 l + f + n + 4351.55 4914.93 m + 4352.07 4919.51 4353.98 4921.52 4357.87 4921.52 c + 4361.61 4921.52 4363.3 4919.51 4363.44 4914.93 c + 4351.55 4914.93 l + 4367.93 4904.73 m + 4365.07 4903.75 4362.73 4903.3 4360.39 4903.3 c + 4357.87 4903.3 4355.9 4903.89 4354.45 4905.04 c + 4352.63 4906.51 4351.83 4908.25 4351.46 4911.72 c + 4368.02 4911.72 l + 4368.07 4913.06 l + 4368.07 4913.37 l + 4368.07 4920.81 4364.56 4924.73 4357.96 4924.73 c + 4351.04 4924.73 4346.73 4920.09 4346.73 4912.7 c + 4346.73 4904.81 4351.6 4899.89 4359.41 4899.89 c + 4362.08 4899.89 4364.84 4900.31 4367.93 4901.25 c + 4367.93 4904.73 l + f + n + 4374.38 4901.34 m + 4377.55 4900.31 4380.07 4899.89 4382.58 4899.89 c + 4388.64 4899.89 4392.42 4902.61 4392.42 4907.02 c + 4392.42 4910.36 4390.2 4912.8 4385.82 4914.14 c + 4382.27 4915.25 l + 4380.15 4915.92 4379.09 4916.99 4379.09 4918.41 c + 4379.09 4920.38 4380.64 4921.36 4383.7 4921.36 c + 4385.99 4921.36 4388.09 4921 4390.43 4920.3 c + 4390.43 4923.98 l + 4387.71 4924.49 4385.75 4924.73 4383.83 4924.73 c + 4377.61 4924.73 4374.38 4922.5 4374.38 4918.13 c + 4374.38 4914.93 4376.28 4912.75 4380.09 4911.5 c + 4384.09 4910.25 l + 4386.55 4909.49 4387.71 4908.34 4387.71 4906.73 c + 4387.71 4904.46 4385.92 4903.26 4382.61 4903.26 c + 4379.99 4903.26 4377.5 4903.88 4374.38 4905.34 c + 4374.38 4901.34 l + f + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 338.22 449.4 m + /N23 8.96638 Tf + (Figure2:PointerCompressedLinkedList) + [6.66309 2.94267 5.28303 5.87642 4.37907 8.40011 5.28303 7.74259 6.96004 5.28303 2.94267 + 5.57644 4.13846 4.86029 7.91901 7.68341 5.28306 8.81906 5.87644 4.37907 4.86029 4.2022 + 4.2022 4.86029 9.47624 6.36185 2.94267 5.87639 5.28441 4.86029 9.47624 6.36185 2.94267 + 4.2022 4.13846 ] pdfxs + 316.8 430.38 m + /N17 8.96638 Tf + (memorycapacity,rapidlygrowingdatasets,andseveralad-) + [7.67579 4.0785 7.67576 4.62112 3.59993 7.49634 4.08197 4.62109 5.10017 4.62109 4.08197 + 2.57567 3.36257 4.07628 5.27574 3.59993 4.62109 5.10017 2.57567 5.10017 2.57562 7.49631 + 4.62114 3.59993 4.3811 6.65759 2.57562 5.10017 7.20097 5.10017 4.62114 3.60276 7.26118 + 3.65647 4.07845 3.60276 3.65647 5.21555 4.62114 5.10017 7.7403 3.65647 4.07845 4.61639 + 4.07845 3.59993 4.62114 5.21555 4.62114 5.10017 3.07549 ] pdfxs + 316.8 419.88 m + (vancedprogrammingtechniques[15,18,6].) + [4.31612 4.62109 5.10017 4.08197 4.0785 8.28031 5.10017 3.59993 4.62109 4.62109 3.59993 + 4.62112 7.67576 7.67579 2.57567 5.10017 7.68118 3.60273 4.07845 3.84188 5.10017 5.10017 + 2.57562 4.85623 5.10017 4.0785 6.77644 2.57562 4.62114 4.62114 5.57562 4.62114 4.62109 + 5.57566 4.62114 2.57562 2.57562 ] pdfxs + 325.8 409.44 m + (Oneproblemwith64-bitaddressspacesisthat64-bit) + [7.13659 5.10017 8.87842 5.10017 3.59993 4.62109 5.10017 2.57567 4.0785 12.4158 6.65759 + 2.57564 3.60273 9.7801 4.62114 4.62109 3.06372 5.10017 2.57562 8.34269 4.62114 5.10017 + 5.10017 3.59993 4.07845 3.65647 8.3966 3.65647 5.10017 4.62109 4.08197 4.07845 8.33654 + 2.57562 8.3364 3.60276 5.10017 4.62114 8.34289 4.62114 4.62109 3.06372 5.10017 2.57562 + 3.60276 ] pdfxs + 316.8 399 m + (pointerscansigni\fcantlyreducememorysystemperfor-) + [5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 3.59993 8.87658 4.08197 4.62109 10.3802 + 3.65645 2.57564 4.62112 5.10017 2.57564 5.10017 4.08197 4.62109 4.86018 3.60276 2.57562 + 10.0162 3.59993 4.07845 5.10017 5.10017 4.08197 9.41853 7.67525 4.0785 7.67525 4.62114 + 3.59993 10.1362 3.65647 4.85623 3.65642 3.60276 4.0785 12.8353 5.34001 4.07845 3.59993 + 2.81965 4.62114 3.59993 3.06367 ] pdfxs + 316.8 388.5 m + (mance[12]comparedto32-bitpointers.Inparticular,) + [7.67579 4.62109 5.10017 4.08197 9.47864 2.57567 4.62109 4.62109 7.9155 4.08197 4.62109 + 7.67579 5.10017 4.62109 3.59993 4.0785 10.5002 3.60276 9.96127 4.62114 4.62109 3.06372 + 5.10017 2.57562 8.94269 5.34001 4.62114 2.57562 4.86033 3.60276 4.07845 3.59993 3.65647 + 13.4955 3.30018 10.5002 5.10017 4.62114 3.59993 3.60276 2.57562 4.08192 5.10017 2.57567 + 4.62109 3.59993 2.57567 ] pdfxs + 316.8 378.06 m + (pointer-intensiveprogramsona64-bitsystemwillsu\013er) + [5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 3.59993 3.06372 2.57567 4.86025 3.60273 + 4.0785 5.10017 3.65642 2.57567 4.61605 8.81841 5.10017 3.59993 4.62109 4.62109 3.59993 + 4.62114 7.67525 8.39631 4.62114 9.84029 9.36127 4.62114 4.62109 3.06372 5.10017 2.57562 + 8.28293 3.65647 4.85623 3.65642 3.60276 4.0785 12.3552 6.65759 2.57562 2.57567 7.25569 + 3.65647 5.10017 5.40425 4.07845 3.59993 ] pdfxs + 316.8 367.621 m + (from\(e\013ectively\)reducedcache/T) + [2.81963 3.59993 4.62109 11.9956 3.60273 4.0785 5.40425 4.0785 4.08195 3.60273 2.57567 + 4.61605 4.0785 2.57567 4.85619 7.92258 3.59993 4.0785 5.10017 5.10017 4.08197 4.07845 + 9.54025 4.08192 4.62114 3.84179 5.10017 4.07845 4.62114 6.65759 ] pdfxs + (L) show + (Bcapacityandmem-) + [10.9205 4.08192 4.62114 5.10017 4.62114 4.08192 2.57562 3.36262 9.17629 4.62114 5.10017 + 9.48014 7.67525 4.0785 7.67525 3.06372 ] pdfxs + 316.8 357.121 m + (orybandwidthforthesystem,comparedtoanotherwise) + [4.62109 3.59993 9.11604 5.10017 4.62109 5.10017 5.10017 6.65759 2.57564 5.10017 3.60273 + 9.42026 2.81963 4.62109 7.79978 3.60273 5.10017 8.3985 3.65647 4.85623 3.65642 3.60276 + 4.0785 7.67525 7.0158 4.08192 4.62114 7.67525 5.10017 4.62114 3.59993 4.07845 9.42018 + 3.60276 8.88119 4.62114 9.36022 4.62114 3.60276 5.10017 4.07845 3.59993 6.65759 2.57562 + 3.65647 4.07845 ] pdfxs + 316.8 346.681 m + (identical32-bitsystem.Theincreasingpopularityofobj) + [2.57567 5.10017 4.0785 4.86008 3.60273 2.57567 4.08197 4.62109 5.4555 4.62109 4.62109 + 3.06375 5.10017 2.57567 6.54264 3.65645 4.85619 3.65645 3.60273 4.0785 7.67576 6.53572 + 6.65759 5.10017 7.01853 2.57562 5.10017 4.08197 3.59993 4.07845 4.62114 3.65647 2.57562 + 5.10017 7.56128 5.34001 4.62114 5.10017 5.10017 2.57562 4.62114 3.59993 2.57562 3.36292 + 7.73607 4.62114 5.69953 4.62114 5.6403 2.81965 ] pdfxs + (e) show + 548.22 346.681 m + (ct) + [4.08192 3.60276 ] pdfxs + 316.8 336.181 m + (orientedprogramming\(whichtendstobepointerintensive\)) + [4.62109 3.59993 2.57567 4.0785 4.86001 3.60273 4.0785 7.86001 5.10017 3.59993 4.62109 + 4.62109 3.59993 4.62112 7.67576 7.67579 2.57567 5.10017 7.38117 3.60276 6.65759 5.10017 + 2.57562 3.84203 7.86032 3.60276 4.07845 5.10017 5.10017 6.41648 3.60276 7.32104 5.34001 + 6.89847 5.34001 4.62114 2.57562 4.86033 3.60276 4.07845 6.35979 2.57562 4.86003 3.60276 + 4.07845 5.10017 3.65647 2.57567 4.61605 4.07845 3.5865 ] pdfxs + 316.8 325.741 m + (amplifythepotentialproblem.Weobservethattheprimary) + [4.62109 7.67579 5.10017 2.57567 2.57567 2.81963 7.19627 3.60273 5.10017 6.53834 5.34001 + 4.62109 3.60273 4.0785 4.86033 3.60273 2.57567 4.62109 4.91558 5.10017 3.59993 4.62114 + 5.10017 2.57562 4.07845 7.67579 6.4157 8.69858 6.53831 4.62114 5.10017 3.65642 4.0785 + 3.59993 4.61629 6.47855 3.60276 5.10017 4.62114 5.94289 3.60276 5.10017 6.47855 5.10017 + 3.59993 2.57562 7.67579 4.62109 3.59993 4.85623 ] pdfxs + 316.8 315.301 m + (useofpointersinmanyprogramsistotraverselinkeddata) + [5.10017 3.65645 7.2584 4.62109 5.93978 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 + 3.59993 6.77659 2.57567 8.22016 7.67579 4.62109 4.86033 7.97629 5.10017 3.59993 4.62114 + 4.62109 3.59993 4.62114 7.67525 6.77639 2.57562 6.77663 3.60276 7.68119 3.60276 3.59993 + 4.3812 4.61615 4.07845 3.59993 3.65647 7.19832 2.57562 2.57567 5.10017 4.61629 4.07845 + 8.28034 5.10017 4.62114 3.60276 4.62109 ] pdfxs + 316.8 304.801 m + (structures,andveryfew) + [3.65645 3.60273 3.59993 5.10017 4.08195 3.60273 5.10017 3.59993 4.0785 3.65645 5.1555 + 4.62109 5.10017 7.56025 4.61612 4.0785 3.59993 7.37634 2.81963 4.0785 6.65759 ] pdfxs + 415.02 304.801 m + /N19 8.96638 Tf + (i) show + (nd) + [5.15843 4.68269 ] pdfxs + (i) show + (v) + [4.25806 ] pdfxs + (i) show + (dual) + [4.68264 4.92061 4.68264 2.33683 ] pdfxs + 457.68 304.801 m + /N17 8.96638 Tf + (datastructuresusemore) + [5.10017 4.62114 3.60276 7.0811 3.65647 3.60276 3.59993 5.10017 4.08192 3.60276 5.10017 + 3.59993 4.0785 6.11628 5.10017 3.65647 6.53847 7.67525 4.62114 3.59993 4.07845 ] pdfxs + 316.8 294.361 m + (than4GBofmemory,evenona64-bitsystem.Theques-) + [3.60273 5.10017 4.62109 8.70009 4.62109 7.25576 10.0808 4.62109 6.35971 7.67579 4.0785 + 7.67576 4.62112 3.59993 4.07604 6.29565 4.07845 4.61624 4.07845 8.76002 4.62114 8.70007 + 8.16127 4.62114 4.62109 3.06372 5.10017 2.57562 7.20285 3.65647 4.85623 3.65642 3.60276 + 4.0785 7.67525 8.09549 6.65759 5.10017 7.73846 4.85623 5.10017 4.07845 3.65647 3.06372 + ] pdfxs + 316.8 283.921 m + (tionthereforeishowcanweusepointersmoree\016cientlyto) + [3.60273 2.57567 4.62109 7.98025 3.60273 5.10017 4.0785 3.59993 4.0785 2.81963 4.62109 + 3.59993 7.0785 2.57567 6.53635 5.10017 4.38118 9.53742 4.08197 4.62109 8.04001 6.4175 + 7.01839 5.10017 3.65647 7.01853 5.34001 4.62114 2.57562 4.86033 3.60276 4.07845 3.59993 + 6.5364 7.67525 4.62114 3.59993 7.01839 4.07845 7.67579 4.08192 2.57567 4.07845 4.86033 + 3.60276 2.57562 7.79632 3.60276 4.62114 ] pdfxs + 316.8 273.421 m + (indexintoindividualdatastructures?) + [2.57567 5.10017 5.10017 4.0785 7.97603 2.57567 4.86001 3.60273 7.68118 2.57567 5.10017 + 5.10017 2.57567 4.85619 2.57567 5.10017 5.10017 4.62109 5.63582 5.10017 4.62114 3.60276 + 7.62109 3.65647 3.60276 3.59993 5.10017 4.08192 3.60276 5.10017 3.59993 4.0785 3.65642 + 4.37707 ] pdfxs + 325.8 262.981 m + (Thispaperpresentsasophisticatedcompilertransforma-) + [6.65759 5.10017 2.57564 6.7166 5.10017 4.62109 5.34033 4.0785 6.71992 5.10017 3.59993 + 4.0785 3.65642 4.0785 4.86025 3.60273 6.77651 7.68119 3.65647 4.62109 5.10017 5.10017 + 2.57567 3.65647 3.60276 2.57562 4.08192 4.62114 3.60276 4.07845 8.10016 4.08192 4.62114 + 7.67525 5.10017 2.57567 2.57562 4.0785 6.71975 3.60276 3.59993 4.62114 5.10017 3.65642 + 2.81965 4.62114 3.59993 7.67525 4.62114 3.06367 ] pdfxs + 316.8 252.541 m + (tion,AutomaticPointerCompression,whichtransparently) + [3.60273 2.57567 4.62109 5.10017 6.11558 6.90289 5.10017 3.60273 4.62109 7.67579 4.62109 + 3.60273 2.57567 7.50196 6.05683 4.62109 2.57567 4.86033 3.60273 4.07845 7.01994 6.65759 + 4.62109 7.67579 5.10017 3.59993 4.07845 3.65647 3.65647 2.57562 4.62114 5.10017 6.1157 + 6.65759 5.10017 2.57562 3.84203 8.58024 3.60276 3.59993 4.62114 5.10017 3.65642 5.10017 + 4.62114 3.59993 4.07845 4.86003 3.60276 2.57562 4.85985 ] pdfxs + 316.8 242.041 m + (convertspointerstouseasmallerrepresentation\(e.g.from) + [4.08197 4.62109 4.86033 4.61612 4.0785 3.59993 3.60273 6.77659 5.34001 4.62109 2.57567 + 4.86033 3.60273 4.0785 3.59993 6.71643 3.60273 7.74094 5.10017 3.65645 7.19862 7.68119 + 3.65647 7.67525 4.62114 2.57562 2.57567 4.07845 6.66009 3.59993 4.07845 5.10017 3.59993 + 4.0785 3.65647 4.07845 4.86033 3.60276 4.62114 3.60276 2.57562 4.62114 8.21999 3.60276 + 4.07845 2.57567 4.62109 6.71565 2.81965 3.59993 4.62109 7.67525 ] pdfxs + 316.8 231.601 m + (64-bitsto32-bits\)forasubsetofthedatastructuresina) + [4.62109 4.62109 3.06375 5.10017 2.57567 3.60273 7.37658 3.60273 8.4011 4.62109 4.62109 + 3.06375 5.10017 2.57567 3.60273 3.65642 7.32289 2.81963 4.62109 7.37985 8.40111 3.65647 + 5.10017 5.10017 3.65647 4.07845 7.32268 4.62114 6.59953 3.60276 5.10017 7.91839 5.10017 + 4.62114 3.60276 8.34125 3.65647 3.60276 3.59993 5.10017 4.08192 3.60276 5.10017 3.59993 + 4.0785 7.43659 2.57562 8.88034 4.62114 ] pdfxs + 316.8 221.162 m + (program.PointerCompressionbuildsonapreviouslypub-) + [5.10017 3.59993 4.62109 4.62109 3.59993 4.62112 7.67576 7.19551 6.05683 4.62109 2.57567 + 4.86033 3.60273 4.0785 6.78007 6.65759 4.62109 7.67579 5.10017 3.59993 4.07845 3.65647 + 3.65647 2.57562 4.62114 8.34016 5.10017 5.10017 2.57562 2.57567 5.10017 6.8966 4.62114 + 8.3403 7.86127 5.10017 3.59993 4.07845 4.85623 2.57567 4.62109 5.10017 3.65647 2.57562 + 8.09632 5.10017 5.10017 5.10017 3.06372 ] pdfxs + 316.8 210.662 m + (lishedtechniquecalledAutomaticPoolAllocation[10]to) + [2.57567 2.57567 3.65642 5.10017 4.0785 9.36032 3.60273 4.0785 3.84188 5.10017 5.10017 + 2.57567 4.85619 5.10017 8.39834 4.08197 4.62109 2.57567 2.57567 4.07848 9.36017 6.90289 + 5.10017 3.60276 4.62114 7.67525 4.62114 3.60276 2.57562 8.28201 6.05681 4.86128 4.62114 + 6.77562 6.90289 2.57562 2.57567 4.86104 4.08192 4.62114 3.60276 2.57562 4.62114 9.30016 + 2.57562 4.62114 4.62114 6.77562 3.60276 4.62114 ] pdfxs + 316.8 200.221 m + (modifytheprogramtoallocateandfreeobjectsfrompools) + [7.67579 4.86094 5.10017 2.57567 2.81963 7.97628 3.60273 5.10017 7.13833 5.10017 3.59993 + 4.62109 4.62109 3.59993 4.62112 10.7358 3.60273 7.68118 4.62114 2.57562 2.57562 4.86099 + 4.08192 4.62114 3.60276 7.13832 4.62114 5.10017 8.21999 2.81965 3.59993 4.07845 7.19847 + 4.62114 5.6403 2.81965 4.07845 4.08192 3.60276 6.65647 2.81965 3.59993 4.62109 10.7956 + 5.34001 4.86128 4.62114 2.57562 3.65647 ] pdfxs + 316.8 189.781 m + (ofmemorywithinthesystemheap.AutomaticPoolAl-) + [4.62109 7.13978 7.67579 4.0785 7.67576 4.62112 3.59993 9.23619 6.65759 2.57564 3.60273 + 5.10017 2.57567 9.42001 3.60273 5.10017 8.45865 3.65647 4.85623 3.65642 3.60276 4.0785 + 11.9954 5.10017 4.07845 4.62114 5.10017 10.5558 6.90289 5.10017 3.60276 4.62114 7.67525 + 4.62114 3.60276 2.57562 8.40193 6.05681 4.86128 4.62114 6.83577 6.90289 2.57562 3.06372 + ] pdfxs + 316.8 179.281 m + (locationattemptstosegregateheapobjectsfromdistinct) + [2.57567 4.86094 4.08197 4.62109 3.60273 2.57567 4.62109 9.30016 4.62109 3.60273 3.60273 + 4.0785 7.67579 5.10017 3.60273 7.85627 3.60273 8.82102 3.65645 4.07845 4.62114 3.59993 + 4.07845 4.62114 4.62109 3.60276 8.33841 5.10017 4.07845 4.62114 9.36032 4.62114 5.6403 + 2.81965 4.07845 4.08192 3.60276 7.85632 2.81965 3.59993 4.62109 11.9358 5.10017 2.57562 + 3.65647 3.60276 2.57567 5.10017 4.08192 3.60276 ] pdfxs + 316.8 168.841 m + (datastructuresintoseparatepools.Itguaranteesthatev-) + [5.10017 4.62109 3.60273 8.10102 3.65645 3.60273 3.59993 5.10017 4.08195 3.60273 5.10017 + 3.59993 4.0785 7.13659 2.57567 4.86001 3.60273 8.1011 3.65645 4.07848 5.10017 4.62114 + 3.59993 4.62109 3.60276 7.55833 5.34001 4.86128 4.62114 2.57562 3.65647 7.9157 3.30018 + 7.14259 4.62114 5.10017 4.62109 3.59993 4.62114 4.86008 3.60276 4.07845 4.0785 7.13645 + 3.60276 5.10017 4.62114 7.08274 4.07845 4.85623 3.07549 ] pdfxs + 316.8 158.401 m + (erystaticpointervariableorpointer\feldpointingintot) + [4.0785 3.59993 8.09626 3.65645 3.60273 4.62109 3.60273 2.57567 7.2021 5.34001 4.62109 + 2.57567 4.86033 3.60273 4.0785 6.78007 4.31612 4.62109 3.59993 2.57567 4.62109 5.10017 + 2.57562 7.31839 4.62114 6.7799 5.34001 4.62114 2.57562 4.86033 3.60276 4.07845 6.83987 + 5.10017 4.07845 2.57567 8.28 5.34001 4.62114 2.57562 4.86033 3.60276 2.57562 5.10017 + 7.80122 2.57562 4.86003 3.60276 7.80112 3.60276 ] pdfxs + (h) show + 551.82 158.401 m + (e) show + 316.8 147.901 m + (heapismappedtoauniquepooldescriptoratcompiletime.) + [5.10017 4.0785 4.62109 7.68024 2.57567 6.17658 7.67579 4.62109 5.10017 5.34001 4.0785 + 7.74008 3.60273 7.14094 7.14094 5.10017 5.10017 2.57562 4.85623 5.10017 6.65848 5.34001 + 4.86128 4.62114 5.1557 5.10017 4.07845 3.65647 4.08197 3.59993 2.57562 5.10017 3.60276 + 4.62114 6.17991 4.62114 6.06282 4.08192 4.62114 7.67525 5.10017 2.57567 2.57562 6.65848 + 3.60276 2.57562 7.67579 4.07845 2.57567 ] pdfxs + 316.8 137.461 m + (PointerCompressioncompressesa64-bitpointerbyreplac-) + [6.05683 4.62109 2.57567 4.86033 3.60273 4.0785 6.48008 6.65759 4.62109 7.67579 5.10015 + 3.59993 4.0785 3.65645 3.65642 2.57567 4.62109 7.98002 4.08197 4.62109 7.67525 5.10017 + 3.59993 4.0785 3.65647 3.65642 4.0785 6.5966 7.50112 4.62114 4.62109 3.06372 5.10017 + 2.57562 6.5427 5.34001 4.62114 2.57562 4.86033 3.60276 4.07845 6.53986 4.86033 7.79622 + 3.59993 4.07845 5.10017 2.57567 4.62109 4.08197 3.06372 ] pdfxs + 316.8 127.021 m + (ingitwithasmallerintegerindexfromthestartofthe) + [2.57567 5.10017 9.12109 2.57567 8.04264 6.65759 2.57564 3.60273 9.60001 9.12101 3.65645 + 7.67576 4.62112 2.57564 2.57567 4.0785 8.03977 2.57562 4.86003 3.60276 4.07845 4.62114 + 4.07845 8.10002 2.57562 5.10017 5.10017 4.0785 9.35613 2.81965 3.59993 4.62109 12.1757 + 3.60276 5.10017 8.57854 3.65647 3.60276 4.62109 3.59993 8.04269 4.62114 7.31945 3.60276 + 5.10017 4.07845 ] pdfxs + 316.8 116.521 m + (correspondingpool.) + [4.08197 4.62109 3.59993 3.59993 4.0785 3.65642 5.34026 4.62109 5.10017 5.10017 2.57567 + 5.10017 7.74094 5.34001 4.86126 4.62109 2.57567 2.57567 ] pdfxs + 325.8 106.081 m + (Considerasimplelinkedlistofintegers.Figure1illus-) + [6.65759 4.62109 5.10017 3.65642 2.57567 5.10017 4.0785 7.38 8.46125 3.65645 2.57564 + 7.67579 5.10017 2.57567 7.85865 2.57567 2.57567 5.10017 4.61629 4.07845 8.94011 2.57562 + 2.57567 3.65647 7.32258 4.62114 6.65969 2.57562 4.86003 3.60276 4.07845 4.62114 4.07845 + 3.59993 3.65647 8.87556 6.0016 2.57562 4.62114 5.10017 3.59993 7.91839 8.40111 2.57562 + 2.57567 2.57562 5.10017 3.65647 3.06372 ] pdfxs + 316.8 95.6406 m + (tratesthelistcompiledwithoutpointercompression,and) + [3.60273 3.59993 4.62109 3.60273 4.0785 7.73628 3.60273 5.10017 8.15865 2.57567 2.57567 + 3.65642 7.62257 4.08197 4.62109 7.67579 5.10017 2.57567 2.57564 4.0785 9.2403 6.65759 + 2.57562 3.60276 5.10017 4.62114 5.10017 7.62283 5.34001 4.62114 2.57562 4.86033 3.60276 + 4.07845 7.73986 4.08192 4.62114 7.67525 5.10017 3.59993 4.0785 3.65647 3.65642 2.57567 + 4.62109 5.10017 6.89573 4.62114 5.10017 5.10017 ] pdfxs + 316.8 85.1406 m + (Figure2illustratesthememoryorganizationwithpointers) + [6.00162 2.57567 4.62109 5.10017 3.59993 7.4985 7.98117 2.57567 2.57567 2.57564 5.10017 + 3.65645 3.60273 3.59993 4.62109 3.60273 4.0785 6.95659 3.60273 5.10017 7.43831 7.67525 + 4.0785 7.67525 4.62114 3.59993 8.27605 4.62114 3.59993 4.62109 4.62114 5.10017 2.57562 + 4.08197 4.62109 3.60276 2.57567 4.62109 8.40001 6.65759 2.57562 3.60276 8.46017 5.34001 + 4.62114 2.57562 4.86033 3.60276 4.07845 3.59993 3.65647 ] pdfxs + 316.8 74.7008 m + (compressedto32-bitintegerindexes.Inthisexample,each) + [4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 4.07848 8.22026 3.60273 + 7.68118 4.62109 4.62109 3.06375 5.10017 2.57567 6.60273 2.57567 4.85998 3.60276 4.07845 + 4.62114 4.07845 6.71994 2.57562 5.10017 5.10017 4.0785 4.85623 4.07845 3.65647 6.65555 + 3.30018 8.22009 3.60276 5.10017 2.57562 6.65647 4.07845 4.85623 4.62114 7.67525 5.10017 + 2.57567 4.07845 5.69563 4.07845 4.62114 3.84179 5.10017 ] pdfxs + Q + Q + PDFVars/TermAll get exec end end + userdict /pgsave get restore + showpage + %%PageTrailer + %%EndPage + %%Page: 2 2 + %%BeginPageSetup + userdict /pgsave save put + PDFVars begin PDF begin PDFVars/InitAll get exec + 0 0 612 792 true PDF begin PDFVars begin AS end end + %%EndPageSetup + 0 0 612 792 re + W + n + q + 0.0999908 0 0 0.0999908 0 0 cm + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 53.8199 728.22 m + /N17 8.96638 Tf + (nodeofthelistoriginallyrequired16bytesofmemory) + [5.10016 4.86127 5.10016 7.49849 4.62111 6.23979 3.60274 5.10016 7.49849 2.57565 2.57564 + 3.65645 6.90267 4.62111 3.59993 2.57565 4.62111 2.57565 5.10016 4.62111 2.57565 2.57564 + 8.21622 3.59993 4.0785 4.85621 5.10016 2.57564 3.59993 4.0785 8.58023 4.62111 7.9811 + 4.86033 4.85621 3.60273 4.07848 7.07637 4.62109 6.17963 7.67579 4.0785 7.67576 4.62112 + 3.59993 4.85619 ] pdfxs + 277.14 732.06 m + /N21 5.97748 Tf + (1) show + 284.7 728.22 m + /N17 8.96638 Tf + (\(4) + [3.60273 4.62109 ] pdfxs + 53.82 717.78 m + (bytesfortheinteger,4bytesofalignmentpadding,and) + [4.86031 4.8562 3.60274 4.07849 8.15644 2.81964 4.62111 8.15992 3.60274 5.10016 8.69849 + 2.57565 4.86 3.60275 4.0785 4.62111 4.07849 3.59993 7.49572 9.18118 4.86031 4.85621 + 3.60275 4.0785 8.15644 4.62111 7.37964 4.62111 2.57565 2.57565 4.62109 5.10017 7.67579 + 4.07848 4.86011 8.16288 5.10017 4.62109 5.10017 5.10017 2.57567 5.10017 4.62109 7.49558 + 4.62109 5.10017 5.10017 ] pdfxs + 53.82 707.34 m + (8bytesforthepointer\),andthenodesmaybescattered) + [8.7011 4.86031 4.8562 3.60274 4.07849 7.79629 2.81964 4.62111 7.67984 3.60275 5.10016 + 8.21842 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 3.59993 3.60273 6.95549 4.62111 + 5.10016 9.24031 3.60275 5.10016 8.21842 5.10016 4.86127 5.10017 4.0785 7.85627 7.67579 + 4.38125 8.93604 5.34001 8.27857 3.65645 4.08195 4.62112 3.60273 3.60273 4.07848 3.59993 + 4.0785 5.10017 ] pdfxs + 53.82 696.84 m + (throughouttheheap.Inthis\(extreme\)example,pointer) + [3.60274 5.10016 3.59993 4.62111 5.10015 4.62111 5.10016 4.62111 5.10016 7.8029 3.60275 + 5.10016 8.27857 5.10016 4.0785 4.62111 5.10016 10.0757 3.30019 9.30015 3.60275 5.10016 + 2.57564 7.85629 3.60275 4.0785 4.85621 3.60275 3.59993 4.07849 7.67579 4.0785 7.8028 + 4.0785 4.85619 4.62112 7.67576 5.10017 2.57567 4.0785 7.01557 5.34001 4.62109 2.57567 + 4.86033 3.60273 4.0785 3.59993 ] pdfxs + 53.82 686.4 m + (compressionreduceseachnodeto8bytesofmemory\(4for) + [4.08196 4.62111 7.67578 5.10016 3.59993 4.07849 3.65644 3.65645 2.57565 4.62111 8.10015 + 3.59993 4.0785 5.10015 5.10016 4.08197 4.0785 6.83652 4.0785 4.62111 3.84181 8.16031 + 5.10016 4.86127 5.10016 7.25865 3.60275 7.6211 7.68118 4.86033 4.85621 3.60273 4.07848 + 6.7166 4.62109 5.87963 7.67579 4.0785 7.67576 4.62112 3.59993 7.91626 3.60273 7.68118 + 2.81963 4.62109 3.59993 ] pdfxs + 53.82 675.96 m + (theinteger,and4fortheindexthatreplacesthepointer\).) + [3.60274 5.10016 7.55864 2.57565 4.86 3.60274 4.07849 4.62111 4.07849 3.59993 6.11565 + 4.62111 5.10016 8.64031 8.10111 2.81964 4.62112 7.07985 3.60275 5.10016 7.55865 2.57565 + 5.10016 5.10015 4.0785 8.39637 3.60275 5.10016 4.62111 7.02259 3.59993 4.0785 5.10017 + 2.57567 4.62109 4.08197 4.07848 7.19628 3.60273 5.10017 7.55865 5.34001 4.62109 2.57567 + 4.86033 3.60273 4.0785 3.59993 3.60273 2.57567 ] pdfxs + 53.82 665.46 m + (Eachindexholdsthebyteo\013setofthetargetnodefromthe) + [6.29667 4.62111 3.84212 7.80016 2.57565 5.10016 5.10016 4.07849 7.61628 5.10016 4.62111 + 2.57565 5.10016 6.3566 3.60275 5.10016 6.77858 4.86031 4.85621 3.60275 6.8385 4.62111 + 5.40425 3.65646 4.07849 6.24275 4.62111 5.51948 3.60275 5.10016 6.83834 3.60273 4.62109 + 3.59993 4.62109 4.0785 6.30266 5.10017 4.86126 5.10017 6.83834 2.81963 3.59993 4.62109 + 10.3757 3.60273 5.10017 4.0785 ] pdfxs + 53.82 655.02 m + (startofthepoolinsteadofanabsoluteaddressinmemory.) + [3.65644 3.60274 4.62111 3.59993 6.60274 4.62111 5.87963 3.60274 5.10016 7.13833 5.34 + 4.86127 4.62111 5.69557 2.57565 5.10016 3.65645 3.60275 4.07849 4.62112 8.10015 4.62111 + 5.87965 4.62111 8.22 4.62111 5.10016 3.65645 4.62112 2.57564 5.10016 3.60276 7.07847 + 4.62109 5.10017 5.10017 3.59993 4.0785 3.65642 6.77629 2.57567 8.16 7.67579 4.0785 + 7.67576 4.62112 3.59993 4.07604 2.57567 ] pdfxs + 62.7602 644.58 m + (Wedescribeandevaluatea\\static"versionofpointer) + [8.69858 8.69848 5.10016 4.07849 3.65644 4.08196 3.59992 2.57565 5.34 8.69849 4.62111 + 5.10016 9.72 4.0785 4.31621 4.62111 2.57565 5.10016 4.62111 3.60275 8.69842 9.18118 + 4.62111 3.65646 3.60275 4.62111 3.60275 2.57567 4.08197 9.12116 4.61612 4.0785 3.59993 + 3.65642 2.57567 4.62109 9.60001 4.62109 7.37963 5.34001 4.62109 2.57567 4.86033 3.60273 + 4.0785 3.59993 ] pdfxs + 53.82 634.08 m + (compressionthatlimitsindividualpoolsto2) + [4.08196 4.62111 7.67578 5.10016 3.59993 4.07849 3.65644 3.65645 2.57565 4.62111 8.94008 + 3.60275 5.10016 4.62111 7.44291 2.57565 2.57564 7.67578 2.57564 3.60275 7.43661 2.57565 + 5.10016 5.10015 2.57565 4.85621 2.57565 5.10016 5.10016 4.62111 6.41549 5.34 4.86126 + 4.62109 2.57567 7.55659 3.60273 8.46125 4.62109 ] pdfxs + 239.34 637.92 m + /N29 5.97748 Tf + (k) show + 247.74 634.08 m + /N17 8.96638 Tf + (byteseach,) + [4.86033 4.85621 3.60273 4.07848 7.55645 4.0785 4.62109 3.84181 5.10017 2.57567 ] pdfxs + 53.82 623.64 m + (forsome) + [2.81964 4.62111 5.87985 3.65644 4.62111 7.67578 4.07849 ] pdfxs + 89.4598 623.64 m + /N31 8.96638 Tf + (k<) + [7.61903 7.13659 ] pdfxs + 106.8 623.64 m + /N17 8.96638 Tf + (64\(e.g.,) + [4.62111 6.90104 3.60275 4.0785 2.57564 4.62111 2.57565 2.57565 ] pdfxs + 140.759 623.64 m + /N31 8.96638 Tf + (k) show + 148.379 623.64 m + /N17 8.96638 Tf + (=32\),\fxedatcompile-timeforeach) + [9.7165 4.62111 4.62112 3.60275 4.97557 5.10016 4.85621 4.0785 7.44023 4.62111 5.88274 + 4.08197 4.62109 7.67579 5.10017 2.57567 2.57564 4.0785 3.06375 3.60273 2.57564 7.67579 + 6.35851 2.81963 4.62109 5.87986 4.0785 4.62109 3.84181 5.10017 ] pdfxs + 53.8199 613.2 m + (pool.Itcanbeappliedselectively,i.e.,otherpoolscang) + [5.34 4.86127 4.62111 2.57565 6.47573 3.30019 6.24258 4.08196 4.62111 7.74 5.34 + 6.77858 4.62111 5.10016 5.10016 2.57565 2.57564 4.0785 7.74015 3.65645 4.0785 2.57564 + 4.0785 4.08196 3.60275 2.57565 4.61629 4.0785 2.57564 4.07606 5.27573 2.57565 2.57564 + 4.0785 2.57564 5.21551 4.62109 3.60273 5.10017 4.0785 6.23977 5.34001 4.86126 4.62109 + 2.57567 6.23628 4.08197 4.62109 7.74001 4.62109 ] pdfxs + (r) show + 281.879 613.2 m + (ow) + [4.3811 6.65759 ] pdfxs + 53.8199 602.7 m + (tothefull2) + [3.60274 7.32103 3.60274 5.10016 6.77857 2.81964 5.10016 2.57565 5.33549 4.62111 ] pdfxs + 100.68 606.54 m + /N21 5.97748 Tf + (64) + [3.65924 3.65924 ] pdfxs + 111.18 602.7 m + /N17 8.96638 Tf + (bytes.Weshowthatthistransformationpro-) + [4.86031 4.85621 3.60275 4.0785 3.65645 6.53549 8.69858 6.83834 3.65645 5.10016 4.38096 + 9.29757 3.60275 5.10016 4.62111 6.30267 3.60275 5.10017 2.57567 6.35628 3.60273 3.59993 + 4.62109 5.10017 3.65645 2.81963 4.62109 3.59993 7.67579 4.62109 3.60273 2.57567 4.62109 + 7.74032 5.10017 3.59993 4.62109 3.06375 ] pdfxs + 53.8199 592.26 m + (videssubstantialreductionsinmemoryconsumptionand,i) + [4.8562 2.57565 5.10015 4.0785 5.99636 3.65644 5.10016 5.10016 3.65644 3.60274 4.62111 + 4.86017 3.60275 2.57565 4.62111 4.8558 3.59993 4.0785 5.10015 5.10016 4.08197 3.60275 + 2.57565 4.62111 5.10016 6.11653 2.57565 7.50023 7.67578 4.07849 7.67578 4.62111 3.59993 + 7.25613 4.08197 4.62109 5.10017 3.65645 5.10017 7.67576 5.10017 3.60273 2.57567 4.62109 + 7.44025 4.62109 5.10017 5.10017 5.15574 2.57567 ] pdfxs + (n) show + 53.8199 581.76 m + (somecases,signi\fcantnetperformanceimprovementsover) + [3.65644 4.62111 7.67578 7.43849 4.08196 4.62111 3.65644 4.07849 3.65645 6.0558 3.65645 + 2.57565 4.62111 5.10016 2.57565 5.10016 4.08196 4.62112 4.86016 6.9629 5.10016 4.0785 + 7.0829 5.34 4.0785 3.59993 2.81964 4.62111 3.59993 7.67578 4.62111 5.10017 4.08197 + 7.61841 2.57567 7.67579 5.10017 3.59993 4.38093 4.61612 4.0785 7.67579 4.07848 4.86018 + 3.60273 7.01636 4.38118 4.61612 4.0785 3.59993 ] pdfxs + 53.8199 571.32 m + (poolallocationalone\(eventhoughpoolallocationitself) + [5.34 4.86127 4.62111 5.39556 4.62111 2.57565 2.57565 4.86096 4.08196 4.62111 3.60274 + 2.57564 4.62112 7.86031 4.62111 2.57565 4.62111 5.10016 6.89842 3.60275 4.0785 4.61621 + 4.0785 7.98031 3.60275 5.10016 4.62111 5.10016 4.62112 7.9203 5.34 4.86126 4.62109 + 5.45574 4.62109 2.57567 2.57567 4.86094 4.08197 4.62109 3.60273 2.57567 4.62109 7.86032 + 2.57567 3.60273 3.65642 4.0785 2.57567 5.5797 ] pdfxs + (h) show + 284.64 571.32 m + (as) + [4.62109 3.65645 ] pdfxs + 53.8198 560.88 m + (alreadyimprovedmemoryhierarchyperformancesubstan-) + [4.62111 2.57565 3.59993 4.07849 4.62111 5.10016 8.6962 2.57565 7.67578 5.10016 3.59993 + 4.38096 4.61614 4.0785 8.94007 7.67578 4.07849 7.67578 4.62111 3.59993 8.69637 5.10016 + 2.57565 4.07849 3.59993 4.62111 3.59993 3.8419 4.86031 8.69621 5.34001 4.0785 3.59993 + 2.81963 4.62109 3.59993 7.67579 4.62109 5.10017 4.08197 8.03833 3.65645 5.10017 5.10017 + 3.65642 3.60273 4.62109 5.10017 3.06375 ] pdfxs + 53.8198 550.38 m + (tiallyinmanycases\).) + [3.60274 2.57565 4.62111 2.57565 2.57565 7.79636 2.57565 8.22015 7.67578 4.62111 4.86031 + 7.91613 4.08197 4.62111 3.65645 4.0785 3.65645 3.60275 2.57564 ] pdfxs + 62.76 539.94 m + (Wealsodescribeanoptional\\dynamic"versionofthe) + [8.69858 8.5184 4.62111 2.57565 3.65644 8.9411 5.10016 4.0785 3.65645 4.08196 3.59993 + 2.57565 5.34 8.51841 4.62111 9.48015 4.62111 5.10016 3.60275 2.57565 4.62111 5.10016 + 4.62112 6.89549 4.62111 5.10016 4.85622 5.10017 4.62109 7.67579 2.57564 4.08197 9.0611 + 4.61612 4.0785 3.59993 3.65642 2.57567 4.62109 9.42033 4.62109 7.19955 3.60273 5.10017 + 4.0785 ] pdfxs + 53.8198 529.5 m + (transformationthatcanexpandindicesforaparticularpo) + [3.60274 3.59993 4.62111 5.10016 3.65644 2.81964 4.62111 3.59993 7.67578 4.62111 3.60274 + 2.57565 4.62111 7.50008 3.60275 5.10016 4.62111 6.06283 4.08197 4.62111 7.62007 4.0785 + 4.85621 5.10016 4.62111 5.10016 7.68 2.57565 5.10016 5.10015 2.57565 4.08197 4.07848 + 6.17644 2.81963 4.62109 6.12009 7.08117 5.10017 4.62109 3.59993 3.60273 2.57567 4.08197 + 5.10017 2.57564 4.62112 6.11992 5.34001 4.86126 ] pdfxs + (o) show + 290.34 529.5 m + (l) show + 53.8199 519 m + (transparentlyatrun-timefrom) + [3.60274 3.59993 4.62111 5.10016 3.65644 5.10016 4.62111 3.59992 4.0785 4.86 3.60274 + 2.57565 7.6162 4.62111 6.42259 3.59993 5.10016 5.10016 3.06372 3.60275 2.57565 7.67576 + 6.95858 2.81964 3.59993 4.62112 7.67576 ] pdfxs + 180.72 519 m + /N31 8.96638 Tf + (k) show + 188.58 519 m + /N17 8.96638 Tf + (to64bitswhenapoolex-) + [3.60275 7.44095 4.62111 7.3811 5.10017 2.57567 3.60273 6.47659 6.65759 5.10017 4.07848 + 7.98009 7.44094 5.34001 4.86126 4.62109 5.39558 4.0785 4.85619 3.06375 ] pdfxs + 53.8199 508.561 m + (ceeds2) + [4.08196 4.07849 4.07849 5.10016 7.07637 4.62111 ] pdfxs + 82.8601 512.4 m + /N29 5.97748 Tf + (k) show + 90.8397 508.561 m + /N17 8.96638 Tf + (bytes.Thistransformationensuresthatthetech-) + [4.86031 4.8562 3.60275 4.0785 3.65645 7.61556 6.65758 5.10016 2.57565 7.0166 3.60275 + 3.59993 4.62111 5.10016 3.65645 2.81965 4.62111 3.59993 7.67578 4.62111 3.60275 2.57565 + 4.62111 8.40008 4.0785 5.10017 3.65642 5.10017 3.59993 4.0785 7.07644 3.60273 5.10017 + 4.62109 6.96281 3.60273 5.10017 7.4985 3.60273 4.0785 3.84188 5.10017 3.06375 ] pdfxs + 53.8198 498.121 m + (niqueisfullytransparent,butisrestrictedinapplicabil) + [5.10016 2.57565 4.8562 5.10016 7.67841 2.57565 7.19652 2.81964 5.10016 2.57565 2.57565 + 8.45605 3.60275 3.59993 4.62111 5.10016 3.65645 5.10016 4.62112 3.59993 4.07849 4.86001 + 3.60275 6.29565 5.10016 5.10016 7.20274 2.57565 7.19652 3.59993 4.0785 3.65645 3.60273 + 3.59993 2.57567 4.08197 3.60273 4.0785 8.70024 2.57567 8.70024 4.62109 5.10017 5.10017 + 2.57567 2.57567 4.08195 4.62112 5.10017 2.57564 2.55545 ] pdfxs + 282.18 498.121 m + (ity) + [2.57567 3.36282 4.85621 ] pdfxs + 53.8198 487.621 m + (totype-safedatastructureswherepointersdonotpointint) + [3.60274 6.96126 3.3629 4.8562 5.34016 4.07849 3.06372 3.65645 4.62111 2.81963 6.47842 + 5.10016 4.62111 3.60275 6.96119 3.65645 3.60275 3.59993 5.10016 4.08197 3.60275 5.10016 + 3.59993 4.07849 6.05653 6.65758 5.10016 4.0785 3.59993 6.53857 5.34 4.62111 2.57565 + 4.86033 3.60273 4.0785 3.59993 5.99651 5.10017 7.02102 5.10017 4.62109 6.00266 5.34001 + 4.62109 2.57567 4.86033 5.94258 2.57567 4.86001 3.5865 ] pdfxs + 288.3 487.621 m + (o) show + 53.8198 477.181 m + (themiddleofobjects.) + [3.60274 5.10016 7.13833 7.67578 2.57565 5.10016 5.10016 2.57565 7.19834 4.62111 5.87965 + 4.62111 5.64032 2.81964 4.0785 4.08197 3.60273 3.65646 2.57564 ] pdfxs + 62.7599 466.741 m + (Webeginbydescribingtwounderlyingtechniques-a) + [8.69858 8.93833 5.34 4.07849 4.62111 2.57565 9.96 4.86031 9.65636 5.10016 4.0785 + 3.65645 4.08196 3.59993 2.57565 5.10016 2.57564 5.10016 9.42111 3.3629 6.4175 9.42102 + 5.10016 5.10016 5.10016 4.0785 3.59993 2.57564 4.85621 2.57567 5.10017 9.48117 3.60273 + 4.0785 3.84188 5.10017 5.10017 2.57567 4.85619 5.10017 4.0785 8.45651 7.92365 4.62109 + ] pdfxs + 53.8198 456.241 m + (pointeranalysis\(calledDataStructureAnalysis\)andAu-) + [5.34 4.62111 2.57565 4.86031 3.60274 4.07849 7.43985 4.62111 5.10016 4.62111 2.57565 + 4.85621 3.65646 2.57564 7.43661 3.60275 4.08197 4.62111 2.57564 2.57565 4.0785 8.94022 + 7.01981 4.62112 3.60275 8.4611 5.10016 3.60275 3.59993 5.10016 4.08196 3.60275 5.10017 + 3.59993 7.97865 6.90289 5.10017 4.62109 2.57567 4.85621 3.65642 2.57567 3.65642 7.38259 + 4.62109 5.10017 9.00009 6.90289 5.10017 3.06375 ] pdfxs + 53.8198 445.801 m + (tomaticPoolAllocation-thatprovidethefoundationfor) + [3.60274 4.62111 7.67578 4.62111 3.60273 2.57565 7.98203 6.05683 4.86127 4.62111 6.5358 + 6.90289 2.57565 2.57564 4.86104 4.08197 4.62111 3.60275 2.57564 4.62112 9.06031 7.0838 + 3.60275 5.10016 4.62111 7.62259 5.10016 3.59993 4.38119 4.85621 2.57565 5.10015 8.09835 + 3.60273 5.10017 8.09849 2.81963 4.62109 5.10017 5.10017 5.10017 4.62109 3.60273 2.57567 + 4.62109 9.12026 2.81963 4.62109 3.59993 ] pdfxs + 53.8198 435.361 m + (PointerCompression.Wethendescribethestaticanddy-) + [6.05683 4.62111 2.57565 4.86031 3.60274 4.07849 7.01992 6.65758 4.62111 7.67578 5.10016 + 3.59993 4.0785 3.65645 3.65645 2.57564 4.62112 5.10016 7.85556 8.69858 7.61841 3.60275 + 5.10016 4.07849 8.64008 5.10016 4.0785 3.65645 4.08196 3.59993 2.57567 5.34001 7.61841 + 3.60273 5.10017 7.55865 3.65645 3.60273 4.62109 3.60273 2.57567 7.50211 4.62109 5.10017 + 8.64032 5.10017 4.85621 3.06372 ] pdfxs + 53.8198 424.861 m + (namicversionsofthetechnique,severalsimpleoptimizati) + [5.10016 4.62111 7.67578 2.57565 6.12196 4.61613 4.07849 3.59993 3.65644 2.57565 4.62111 + 5.10016 5.69629 4.62111 4.91949 3.60275 5.10016 6.17857 3.60275 4.0785 3.84188 5.10016 + 5.10016 2.57564 4.85622 5.10016 4.07849 4.91549 3.65645 4.0785 4.61637 4.0785 3.59993 + 4.62109 4.61558 3.65645 2.57564 7.67579 5.10017 2.57567 6.11842 4.62109 5.10017 3.60273 + 2.57567 7.67579 2.57564 4.08197 4.62109 3.60273 2.55545 ] pdfxs + 279.599 424.861 m + (ons) + [4.62109 5.10017 3.65645 ] pdfxs + 53.8198 414.421 m + (thatcanimproveitsperformance,and\fnallyexperimental) + [3.60274 5.10016 4.62111 6.78274 4.08196 4.62111 8.33999 2.57565 7.67578 5.10016 3.59993 + 4.38096 4.61614 7.31841 2.57565 3.60275 6.83636 5.34 4.0785 3.59993 2.81964 4.62111 + 3.59993 7.67578 4.62111 5.10016 4.08197 4.07849 5.87581 4.62111 5.10016 8.34033 5.10017 + 5.10017 4.62109 2.57567 2.57567 8.09626 4.0785 4.85619 5.34026 4.0785 3.59993 2.57567 + 7.67576 4.0785 4.86025 3.60273 4.62109 2.57567 ] pdfxs + 53.8198 403.981 m + (resultsandrelatedwork.) + [3.59993 4.07849 3.65644 5.10016 2.57565 3.60274 6.65644 4.62111 5.10016 8.22 3.59993 + 4.0785 2.57564 4.62111 3.60275 4.0785 8.16008 6.4175 4.62111 3.59993 4.85622 2.57564 + ] pdfxs + 53.8198 378.181 m + /N9 11.9552 Tf + (2.BACKGROUNDINFORMATION) + [6 14.8801 7.61983 7.9799 8.63982 9.3 9.3 8.27974 9.3 8.63982 8.63982 + 11.58 4.67992 8.63981 7.31992 9.3 8.63981 11.2798 7.49999 7.97992 4.67992 9.30001 + 8.63981 ] pdfxs + 62.76 365.221 m + /N17 8.96638 Tf + (ThebroadgoalofAutomaticPoolAllocationistoenable) + [6.65758 5.10016 6.89864 5.10016 3.59993 4.62111 4.62111 7.92032 4.62111 4.62112 4.62111 + 5.33565 4.62111 5.57964 6.90289 5.10016 3.60275 4.62111 7.67578 4.62111 3.60275 2.57565 + 6.84181 6.05683 4.86127 4.62111 5.27565 6.90289 2.57567 2.57567 4.86101 4.08197 4.62109 + 3.60273 2.57567 4.62109 7.86032 2.57567 6.41643 3.60273 7.38117 4.0785 5.10017 4.62109 + 5.10017 2.57567 4.07848 ] pdfxs + 53.8198 354.781 m + /N19 8.96638 Tf + (macroscop) + [7.50429 4.68267 4.25803 3.42126 4.68267 3.78218 3.77788 4.68267 4.68267 ] pdfxs + (i) show + (c) show + 106.8 354.781 m + /N17 8.96638 Tf + (compilertransformationsbygivingthecom-) + [4.08197 4.62111 7.67576 5.10016 2.57565 2.57565 4.07849 8.04008 3.60275 3.59993 4.62111 + 5.10016 3.65645 2.81965 4.62111 3.59993 7.67578 4.62111 3.60275 2.57565 4.62111 5.10017 + 7.97644 4.86033 9.23603 4.62109 2.57567 4.85621 2.57564 5.10017 9.00095 3.60273 5.10017 + 8.51841 4.08197 4.62109 7.67579 3.06372 ] pdfxs + 53.8198 344.281 m + (pilerinformationandcontroloverdatastructurelayouts.) + [5.10016 2.57565 2.57565 4.07849 7.79977 2.57565 5.10016 2.81964 4.62111 3.59992 7.67578 + 4.62111 3.60275 2.57565 4.62111 9.24031 4.62111 5.10016 9.36024 4.08197 4.62111 4.86031 + 3.60275 3.59993 4.62111 6.7155 4.38119 4.61614 4.0785 7.8 5.10016 4.62109 3.60273 + 8.82094 3.65645 3.60273 3.59993 5.10017 4.08195 3.60273 5.10017 3.59993 8.33858 2.57567 + 4.38125 4.61612 4.62109 5.10017 3.60273 3.65645 2.55545 ] pdfxs + 53.8198 333.841 m + (PointerCompressionisonesuchclient.BothPoolAlloca-) + [6.05683 4.62111 2.57565 4.86031 3.60274 4.07849 7.01992 6.65758 4.62111 7.67578 5.10016 + 3.59993 4.0785 3.65645 3.65645 2.57564 4.62112 8.52023 2.57565 7.13636 4.62111 5.10016 + 7.61834 3.65645 5.10016 3.84197 8.58023 4.08197 2.57564 2.57565 4.07849 4.86025 3.60273 + 7.91558 6.54066 4.62112 3.60273 8.58 6.05683 4.86126 4.62109 5.99558 6.90289 2.57567 + 2.57567 4.86101 4.08197 4.62109 3.06375 ] pdfxs + 53.8198 323.401 m + (tionandPointerCompressionoperateonacommonpoints-) + [3.60274 2.57565 4.62111 7.80016 4.62111 5.10016 7.86023 6.05683 4.62111 2.57565 4.86031 + 3.60275 4.0785 6.3 6.65758 4.62112 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 + 2.57564 4.62112 7.80031 4.62111 5.34032 4.0785 3.59993 4.62111 3.60275 6.83834 4.62109 + 7.86025 7.32101 4.08197 4.62109 7.67579 7.67579 4.62109 7.86001 5.34001 4.62109 2.57567 + 4.86033 3.60273 3.65645 3.06372 ] pdfxs + 53.8198 312.901 m + (tographrepresentationwithspeci\fcproperties,whichwe) + [3.60274 8.4011 4.62111 3.59993 4.62111 5.10016 9 3.59993 4.07849 5.10016 3.59993 + 4.0785 3.65645 4.0785 4.86031 3.60275 4.62111 3.60275 2.57565 4.62111 8.94031 6.65758 + 2.57565 3.60275 8.94022 3.65645 5.34016 4.0785 4.08196 2.57565 5.10016 7.98188 5.10017 + 3.59993 4.62109 5.34033 4.0785 3.59993 3.60273 2.57567 4.07848 3.65645 6.59565 6.65759 + 5.10017 2.57564 3.84205 9.00016 6.4175 4.0785 ] pdfxs + 53.8198 302.461 m + (refertoas) + [3.59993 4.07849 2.81964 4.07849 6.78008 3.60274 7.80111 4.62111 3.65644 ] pdfxs + 97.98 302.461 m + /N23 8.96638 Tf + (DSGr) + [8.10333 9.59643 8.34059 4.37906 ] pdfxs + (a) show + (phs) + [5.87644 5.87644 4.20218 ] pdfxs + 149.52 302.461 m + /N17 8.96638 Tf + (.Below,wedescribetheDSGraph) + [6.9558 6.54066 4.07849 2.57565 4.38119 6.65758 5.75557 6.4175 7.25865 5.10017 4.0785 + 3.65642 4.08197 3.59993 2.57567 5.34001 7.31841 3.60273 5.10017 7.25865 7.0198 8.34033 + 7.25576 3.59993 4.62109 5.10017 5.10017 ] pdfxs + 53.8198 292.021 m + (representationandthenbrie\rysummarizethePoolAlloca-) + [3.59993 4.07849 5.10016 3.59993 4.07849 3.65644 4.0785 4.86031 3.60274 4.62111 3.60274 + 2.57565 4.62111 8.10015 4.62111 5.10016 8.16024 3.60275 5.10016 4.07849 8.16 5.10016 + 3.59993 2.57564 4.0785 5.10016 7.91629 3.65645 5.10016 7.67578 7.67576 4.62109 3.59993 + 2.57567 4.08197 7.13833 3.60273 5.10017 7.13833 6.05683 4.86126 4.62109 5.51551 6.90289 + 2.57567 2.57567 4.86101 4.08197 4.62109 3.06375 ] pdfxs + 53.8198 281.521 m + (tiontransformation.Theprecision\(butnotthecorrectnes) + [3.60274 2.57565 4.62111 7.43999 3.60274 3.59993 4.62111 5.10016 3.65644 2.81964 4.62111 + 3.59993 7.67578 4.62111 3.60275 2.57565 4.62111 5.10016 6.35573 6.65758 5.10016 6.5385 + 5.10016 3.59993 4.07849 4.08197 2.57565 3.65645 2.57564 4.62112 7.50015 3.60275 5.10016 + 5.10017 6.06289 5.10017 4.62109 6.00266 3.60273 5.10017 6.53834 4.08197 4.62109 3.59993 + 3.59993 4.0785 4.08197 3.60273 5.10015 4.0785 3.63137 ] pdfxs + 285.66 281.521 m + (s\)) + [3.65642 3.60273 ] pdfxs + 53.8198 271.081 m + (ofbothtransformationsisa\013ectedbyhowDSgraphsare) + [4.62111 6.71947 5.34 4.62111 3.60274 9.06023 3.60274 3.59993 4.62111 5.10016 3.65645 + 2.81965 4.62111 3.59993 7.67578 4.62111 3.60275 2.57565 4.62111 5.10016 7.49637 2.57565 + 7.55628 4.62111 5.40425 4.0785 4.08196 3.60275 4.0785 9.06008 4.86033 8.75635 5.10017 + 4.38118 10.6175 7.0198 9.06025 4.62109 3.59993 4.62109 5.10017 5.10017 7.6166 4.62109 + 3.59993 4.0785 ] pdfxs + 53.8198 260.581 m + (computed.Therefore,wealsoverybrie\rydescriberelevant) + [4.08196 4.62111 7.67578 5.10016 5.10016 3.60274 4.07849 5.10016 6.83565 6.65758 5.10016 + 4.0785 3.59993 4.07849 2.81965 4.62111 3.59993 4.07849 5.81581 6.4175 7.1985 4.62111 + 2.57565 3.65645 7.68095 4.61614 4.0785 3.59993 7.97636 5.10016 3.59993 2.57567 4.0785 + 5.10017 8.03619 5.10017 4.0785 3.65642 4.08197 3.59993 2.57567 5.34001 7.25865 3.59993 + 4.0785 2.57567 4.07848 4.31637 4.62109 4.86025 3.5865 ] pdfxs + 53.8198 250.141 m + (aspectsofthepointeranalysisweusetocomputeDSgraphs,) + [4.62111 3.65644 5.34008 4.07849 4.08196 3.60274 5.87629 4.62111 5.03979 3.60274 5.10016 + 6.2985 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 5.88008 4.62111 5.10016 4.62112 + 2.57564 4.85621 3.65646 2.57564 5.75653 6.4175 6.2985 5.10016 3.65645 6.35842 3.60273 + 6.78117 4.08197 4.62109 7.67579 5.10017 5.10017 3.60273 6.35833 7.0198 7.38017 4.62109 + 3.59993 4.62109 5.10017 5.10017 3.65645 2.57567 ] pdfxs + 53.8198 239.701 m + (whichwecallDataStructureAnalysis\(DSA\)[7].) + [6.65758 5.10016 2.57565 3.84204 8.16031 6.4175 7.13833 4.08196 4.62111 2.57565 5.63556 + 7.01981 4.62112 3.60275 7.68102 5.10016 3.60275 3.59993 5.10016 4.08196 3.60275 5.10016 + 3.59993 7.19858 6.90289 5.10016 4.62111 2.57565 4.85621 3.65645 2.57567 6.65642 3.60273 + 7.0198 5.10017 6.90289 6.72258 2.57567 4.62109 2.57567 2.57567 ] pdfxs + 62.7599 229.201 m + (Figure4showsasimplelinked-listexampleandtheDS) + [6.00161 2.57565 4.62111 5.10016 3.59993 7.85864 8.34095 3.65645 5.10016 4.38096 6.65758 + 7.31652 8.34095 3.65645 2.57565 7.67576 5.10016 2.57565 7.73834 2.57565 2.57564 5.10016 + 4.61629 4.0785 5.10016 3.06372 2.57564 2.57565 3.65645 7.26266 4.0785 4.85619 4.62112 + 7.67576 5.10017 2.57567 7.85858 4.62109 5.10017 8.88017 3.60273 5.10017 7.79849 7.0198 + 5.10017 ] pdfxs + 53.8198 218.761 m + (graphscomputedbyDSAforthethreefunctionsintheex-) + [4.62111 3.59993 4.62111 5.10016 5.10016 6.7166 4.08196 4.62111 7.67578 5.10016 5.10016 + 3.60275 4.0785 8.22023 4.86031 7.91613 7.01981 5.10016 10.0227 2.81964 4.62112 6.65992 + 3.60275 5.10016 7.1985 3.60275 5.10016 3.59993 4.0785 7.13841 2.81963 5.10017 5.10017 + 4.08197 3.60273 2.57567 4.62109 5.10017 6.71636 2.57567 8.22016 3.60273 5.10017 7.13833 + 4.0785 4.85619 3.06375 ] pdfxs + 53.8198 208.321 m + (ample.WewillusethisasarunningexampleinthisSection) + [4.62111 7.67578 5.10016 2.57565 4.07849 6.41572 8.69858 6.59849 6.65758 2.57565 2.57564 + 4.97565 5.10016 3.65645 6.59866 3.60275 5.10016 2.57564 6.0563 4.62111 6.11629 7.08119 + 3.59993 5.10016 5.10016 5.10016 2.57564 5.10016 7.2012 4.0785 4.85619 4.62112 7.67576 + 5.10017 2.57567 6.53865 2.57567 7.62016 3.60273 5.10017 2.57567 6.05627 5.10017 4.0785 + 4.08197 3.60273 2.57564 4.62112 5.10015 ] pdfxs + 53.8198 197.821 m + (andthenext.) + [4.62111 5.10016 8.16023 3.60274 5.10016 7.19849 5.10016 4.07849 4.8562 3.60275 2.57564 + ] pdfxs + 53.8198 178.501 m + /N9 11.9552 Tf + (2.1Points\255toGraphRepresentation:DSGraphs) + [6 3 17.8801 7.07999 6 3.3 6.65999 3.95991 4.67992 3.95991 3.95991 + 7.79993 9.3 5.27982 5.99999 6.66001 8.46 8.63982 5.27981 6.65999 5.03975 5.27982 + 4.67991 5.27982 6.65999 3.95989 6 3.95992 3.30001 6 6.66002 7.73983 8.63981 + 8.46002 9.30001 5.27982 6 6.65999 6.66002 4.67992 ] pdfxs + 62.7599 165.54 m + /N17 8.96638 Tf + (Thekeypropertiesofthepoints-tographrepresentation) + [6.65758 5.10016 7.55841 4.61613 4.07849 8.27635 5.10016 3.59993 4.62111 5.34032 4.0785 + 3.59993 3.60275 2.57564 4.0785 7.13652 4.62111 6.2398 3.60275 5.10016 7.55865 5.34 + 4.62111 2.57565 4.86031 3.60275 3.65645 3.06372 3.60275 7.9811 4.62109 3.59993 4.62109 + 5.10017 8.5801 3.59993 4.0785 5.10017 3.59993 4.0785 3.65642 4.0785 4.86033 3.60273 + 4.62109 3.60273 2.57567 4.62109 5.10017 ] pdfxs + 53.8198 155.04 m + (\(DSgraphs\)requiredforthisworkareasfollows.) + [3.60274 7.01981 8.28015 4.62111 3.59993 4.62111 5.10016 5.10016 3.65645 6.72266 3.59993 + 4.0785 4.85621 5.10016 2.57564 3.59993 4.0785 8.33999 2.81964 4.62112 6.77984 3.60275 + 5.10016 2.57564 6.77661 6.4175 4.62111 3.59993 8.03637 4.62111 3.59993 7.25857 4.62109 + 6.77644 2.81963 4.62109 2.57567 2.57567 4.38118 6.65759 3.65642 6.83582 ] pdfxs + (L) show + (ikeany) + [2.57564 4.61637 7.25865 4.62109 4.86025 4.85621 ] pdfxs + 53.8198 144.601 m + (points-tograph,aDSgraphisadirectedgraphthatpro-) + [5.34 4.62111 2.57565 4.86031 3.60274 3.65644 3.06373 3.60274 8.34126 4.62111 3.59993 + 4.62111 5.10016 5.10016 6.59548 8.4011 7.01981 9.00008 4.62111 3.59993 4.62112 5.10016 + 8.88007 2.57565 7.43636 8.46126 5.10016 2.57565 3.59992 4.0785 4.08195 3.60273 4.0785 + 8.94032 4.62109 3.59993 4.62109 5.10017 8.94025 3.60273 5.10017 4.62109 7.38273 5.10017 + 3.59993 4.62109 3.06375 ] pdfxs + 53.8198 134.161 m + (videsacompile-timerepresentationofthememoryobjects) + [4.8562 2.57565 5.10015 4.0785 7.07644 8.04095 4.08196 4.62111 7.67578 5.10016 2.57565 + 2.57565 4.07849 3.06372 3.60275 2.57565 7.67576 7.49834 3.59993 4.0785 5.10015 3.59993 + 4.0785 3.65645 4.0785 4.86031 3.60275 4.62111 3.60275 2.57565 4.62111 8.58016 4.62109 + 6.23979 3.60273 5.10017 7.55865 7.67579 4.0785 7.67576 4.62112 3.59993 8.27603 4.62109 + 5.64033 2.81963 4.0785 4.08197 3.60273 3.65642 ] pdfxs + 53.8198 123.661 m + (inaprogramandthepoints-torelationshipsbetweenthem.) + [2.57565 7.98031 7.5011 5.10016 3.59993 4.62111 4.62111 3.59993 4.62111 10.4959 4.62111 + 5.10016 8.04031 3.60275 5.10016 6.95865 5.34 4.62111 2.57565 4.86031 3.60275 3.65645 + 3.06372 3.60275 7.50103 3.59993 4.0785 2.57564 4.62111 3.60275 2.57565 4.62112 5.10017 + 3.65642 5.10017 2.57567 5.10017 6.47644 5.34001 4.0785 3.36257 6.4175 4.0785 4.0785 + 8.04016 3.60273 5.10017 4.0785 7.67579 2.57564 ] pdfxs + 53.8198 113.221 m + (EachnodewithinaDSgraphrepresentsadistinctsetof) + [6.29667 4.62111 3.84212 9.12007 5.10016 4.86127 5.10016 8.21841 6.65758 2.57565 3.60275 + 5.10016 2.57564 9.12 8.7011 7.01981 9.18015 4.62111 3.59993 4.62112 5.10016 9.24023 + 3.59993 4.0785 5.10015 3.59993 4.0785 3.65645 4.0785 4.86033 3.60273 7.73628 8.64094 + 5.10017 2.57567 3.65642 3.60273 2.57567 5.10017 4.08197 7.68281 3.65645 4.07848 7.6229 + 4.62109 2.81963 ] pdfxs + 53.8198 102.781 m + (memoryobjects.Thecurrentworkassumesfourkeyprop-) + [7.67578 4.07849 7.67578 4.62111 3.59993 8.09636 4.62111 5.64031 2.81964 4.0785 4.08197 + 3.60273 3.65646 7.25564 6.65758 5.10016 7.37834 4.08197 5.10016 3.59992 3.59993 4.0785 + 4.86008 6.90274 6.4175 4.62111 3.59993 8.09613 4.62111 3.65645 3.65642 5.10017 7.67579 + 4.0785 6.89643 2.81963 4.62109 5.10017 6.84001 4.61612 4.0785 8.15603 5.10017 3.59993 + 4.62109 5.10017 3.06375 ] pdfxs + 53.8198 92.2805 m + (ertiesforthegraph:) + [4.07849 3.59993 3.60274 2.57565 4.07849 6.7166 2.81964 4.62111 6.65992 3.60274 5.10016 + 7.13833 4.62111 3.59993 4.62112 5.10016 5.10016 2.57564 ] pdfxs + Q + n + 538 850 956.398 4.19922 re + [/DeviceGray] cs 0 sc + f + q + 10 0 0 10 0 0 cm + 54.3 78.4801 m + /N21 5.97748 Tf + (1) show + 58.3801 74.7001 m + /N33 6.97377 Tf + (Notincludingtheheaderaddedbymalloc,typically4bytes.) + [5.87814 3.95687 5.81711 2.27709 4.38027 3.54036 2.27709 4.38027 4.38027 2.2771 4.38027 + 6.657 3.11698 4.38029 6.24017 4.38029 3.54035 3.95688 4.38027 3.54036 5.87703 3.95687 + 4.38029 4.38027 3.54036 7.14025 4.14013 6.89857 6.53651 3.95687 2.27709 2.2771 4.19703 + 3.54035 4.91723 2.87707 4.19861 4.38029 2.2771 3.54035 3.95687 2.27707 2.2771 6.83874 + 6.65698 4.14013 4.19861 3.11698 3.54037 3.18289 2.25251 ] pdfxs + Q + n + 3332.53 7187.62 2062.22 187.754 re + [/DeviceRGB] cs 1 1 1 sc + + f + n + 3332.53 7329.21 m + 3286.36 7329.21 l + 3286.36 7354.7 3307.04 7375.38 3332.53 7375.38 c + f + n + 5394.75 7329.21 m + 5394.75 7375.38 l + 5420.25 7375.38 5440.92 7354.7 5440.92 7329.21 c + f + n + 3286.36 7233.79 2154.56 95.418 re + f + n + 3332.53 7233.79 m + 3332.53 7187.62 l + 3307.04 7187.62 3286.36 7208.3 3286.36 7233.79 c + f + n + 5394.75 7233.79 m + 5440.92 7233.79 l + 5440.92 7208.3 5420.25 7187.62 5394.75 7187.62 c + f + 1.53891 w + n + 3332.53 7375.38 m + 5394.75 7375.38 l + 0 0 0 sc + S + n + 3332.53 7187.62 m + 5394.75 7187.62 l + S + n + 3286.36 7329.21 m + 3286.36 7354.7 3307.04 7375.38 3332.53 7375.38 c + S + n + 5394.75 7375.38 m + 5420.25 7375.38 5440.92 7354.7 5440.92 7329.21 c + S + n + 3286.36 7329.21 m + 3286.36 7233.79 l + S + n + 5440.92 7329.21 m + 5440.92 7233.79 l + S + n + 3332.53 7187.62 m + 3307.04 7187.62 3286.36 7208.3 3286.36 7233.79 c + S + n + 5440.92 7233.79 m + 5440.92 7208.3 5420.25 7187.62 5394.75 7187.62 c + S + n + 5040.79 7218.41 123.117 123.117 re + 0.898346 0.898346 0.898346 sc + f + 0.30777 w + n + 5040.79 7218.41 123.117 123.117 re + 0 0 0 sc + S + n + 4548.32 7218.41 123.117 123.117 re + 0.898346 0.898346 0.898346 sc + f + n + 4548.32 7218.41 123.117 123.117 re + 0 0 0 sc + S + n + 3932.73 7218.41 123.117 123.117 re + 0.898346 0.898346 0.898346 sc + f + n + 3932.73 7218.41 123.117 123.117 re + 0 0 0 sc + S + n + 3440.26 7218.41 123.117 123.117 re + 0.898346 0.898346 0.898346 sc + f + n + 3440.26 7218.41 123.117 123.117 re + 0 0 0 sc + S + 6.15587 w + n + 3317.14 7218.41 492.469 123.117 re + S + n + 3348.9 7249.18 m + 3357.57 7249.18 l + 3364.41 7267.53 l + 3390.86 7267.53 l + 3397.79 7249.18 l + 3407.83 7249.18 l + 3383.2 7315.18 l + 3373.89 7315.18 l + 3348.9 7249.18 l + 3367.14 7274.41 m + 3377.72 7302.69 l + 3388.3 7274.41 l + 3367.14 7274.41 l + f + 3.07793 w + n + 3563.38 7341.52 m + 3563.38 7218.41 l + 0.498001 0.498001 0.498001 sc + S + n + 3440.26 7341.52 m + 3440.26 7218.41 l + S + 6.15587 w + n + 3809.61 7218.41 492.473 123.117 re + 0 0 0 sc + S + n + 3900.52 7261.89 m + 3892.67 7258.11 3886.56 7256.48 3879.72 7256.48 c + 3864.3 7256.48 3855.45 7265.84 3855.45 7282.14 c + 3855.45 7298.89 3863.66 7308.16 3878.62 7308.16 c + 3884.19 7308.16 3890.75 7306.87 3900.43 7303.78 c + 3900.43 7312.26 l + 3892.05 7314.27 3885.49 7315.18 3879.12 7315.18 c + 3857.35 7315.18 3845.52 7303.53 3845.52 7282.14 c + 3845.52 7260.66 3857.08 7249.18 3878.66 7249.18 c + 3886.86 7249.18 3893.32 7250.64 3900.52 7254.2 c + 3900.52 7261.89 l + f + 3.07793 w + n + 4055.85 7341.52 m + 4055.85 7218.41 l + 0.498001 0.498001 0.498001 sc + S + n + 3932.73 7341.52 m + 3932.73 7218.41 l + S + 6.15587 w + n + 4425.2 7218.41 492.469 123.117 re + 0 0 0 sc + S + n + 4466 7249.18 m + 4489.51 7249.18 l + 4497.46 7249.18 4502.04 7249.73 4505.05 7251.1 c + 4510.27 7253.57 4513.65 7259.14 4513.65 7265.62 c + 4513.65 7274.57 4508.47 7279.86 4496.46 7283.52 c + 4506.71 7287.07 4511.11 7292.09 4511.11 7300.39 c + 4511.11 7311.07 4504.5 7315.18 4487.27 7315.18 c + 4466 7315.18 l + 4466 7249.18 l + 4475.43 7256.21 m + 4475.43 7280.27 l + 4483.09 7280.27 l + 4496.51 7280.27 4503.71 7275.33 4503.71 7266.27 c + 4503.71 7258.13 4499.61 7256.21 4482.37 7256.21 c + 4475.43 7256.21 l + 4475.43 7286.13 m + 4475.43 7308.16 l + 4484.15 7308.16 l + 4497.47 7308.16 4501.42 7305.96 4501.42 7298.74 c + 4501.42 7290.34 4495.45 7286.13 4483.42 7286.13 c + 4475.43 7286.13 l + f + 3.07793 w + n + 4671.44 7341.52 m + 4671.44 7218.41 l + 0.498001 0.498001 0.498001 sc + S + n + 4548.32 7341.52 m + 4548.32 7218.41 l + S + 6.15587 w + n + 4917.67 7218.41 492.473 123.117 re + 0 0 0 sc + S + n + 4955.09 7249.18 m + 4976.27 7249.18 l + 4997.27 7249.18 5009.36 7261.78 5009.36 7283.69 c + 5009.36 7304.68 4998.27 7315.18 4976.18 7315.18 c + 4955.09 7315.18 l + 4955.09 7249.18 l + 4964.51 7256.21 m + 4964.51 7308.16 l + 4971.42 7308.16 l + 4981.06 7308.16 4986.15 7307.15 4990.06 7304.5 c + 4996.24 7300.3 4999.42 7292.82 4999.42 7282.59 c + 4999.42 7264.88 4991.6 7256.21 4975.69 7256.21 c + 4964.51 7256.21 l + f + 3.07793 w + n + 5163.91 7341.52 m + 5163.91 7218.41 l + 0.498001 0.498001 0.498001 sc + S + n + 5040.79 7341.52 m + 5040.79 7218.41 l + S + 6.15587 w + n + 4403.41 7205.46 m + 4310.07 7155.11 4205.67 7128.74 4099.61 7128.74 c + 3948.38 7128.74 3802.02 7182.31 3686.52 7279.94 c + 0 0 0 sc + S + n + 4419.29 7214.89 m + 4404.41 7191.72 l + 4403.41 7205.45 l + 4391.83 7212.89 l + f + n + 4419.29 7214.89 m + 4404.41 7191.72 l + 4403.41 7205.45 l + 4391.83 7212.89 l + h + S + n + 3832.6 7352.14 m + 3962.71 7408.3 4102.94 7437.28 4244.66 7437.28 c + 4439.03 7437.28 4629.52 7382.79 4794.49 7280 c + S + n + 3815.86 7344.41 m + 3833.05 7365.91 l + 3832.62 7352.15 l + 3843.38 7343.56 l + f + n + 3815.86 7344.41 m + 3833.05 7365.91 l + 3832.62 7352.15 l + 3843.38 7343.56 l + h + S + n + 4896.06 7205.19 m + 4802.71 7153.4 4697.71 7126.23 4590.96 7126.23 c + 4439.62 7126.23 4293.35 7180.8 4178.99 7279.94 c + S + n + 4911.8 7214.82 m + 4897.21 7191.46 l + 4896.04 7205.18 l + 4884.37 7212.48 l + f + n + 4911.8 7214.82 m + 4897.21 7191.46 l + 4896.04 7205.18 l + 4884.37 7212.48 l + h + S + n + 3317.14 7464.64 246.234 123.117 re + 1 1 1 sc + f + n + 3317.14 7464.64 246.234 123.117 re + 0 0 0 sc + S + 3.07793 w + n + 5163.91 7218.41 m + 5410.14 7341.52 l + S + n + 5163.91 7341.52 m + 5410.14 7218.41 l + S + 6.15587 w + n + 3452.57 7529.28 m + 3331.97 7362.08 l + S + n + 3321.17 7347.11 m + 3325.59 7374.28 l + 3331.97 7362.08 l + 3345.56 7359.87 l + f + n + 3321.17 7347.11 m + 3325.59 7374.28 l + 3331.97 7362.08 l + 3345.56 7359.87 l + h + S + n + 3582.45 7540.05 m + 3587.04 7540.05 l + 3587.04 7553.04 l + 3593.88 7553.04 l + 3603.21 7553.04 3607.93 7556.82 3607.93 7564.21 c + 3607.93 7567.63 3606.8 7570.05 3604.53 7571.46 c + 3602.86 7572.55 3600.46 7572.92 3595.3 7572.92 c + 3582.45 7572.92 l + 3582.45 7540.05 l + 3587.04 7556.61 m + 3587.04 7569.41 l + 3593.78 7569.41 l + 3600.95 7569.41 3603.09 7568.13 3603.09 7563.94 c + 3603.09 7559.07 3599.94 7556.61 3593.69 7556.61 c + 3587.04 7556.61 l + f + n + 3622.38 7564.25 m + 3615.76 7564.25 3611.68 7559.67 3611.68 7552.15 c + 3611.68 7544.72 3615.76 7540.05 3622.24 7540.05 c + 3629.04 7540.05 3633.08 7544.59 3633.08 7552.2 c + 3633.08 7559.67 3629 7564.25 3622.38 7564.25 c + 3622.38 7560.97 m + 3626.28 7560.97 3628.24 7558.04 3628.24 7552.24 c + 3628.24 7546.39 3626.24 7543.33 3622.38 7543.33 c + 3618.43 7543.33 3616.52 7546.26 3616.52 7552.2 c + 3616.52 7558 3618.47 7560.97 3622.38 7560.97 c + f + n + 3638.5 7540.05 m + 3643.09 7540.05 l + 3643.09 7564.25 l + 3638.5 7564.25 l + 3638.5 7540.05 l + 3638.5 7568.54 m + 3643.09 7568.54 l + 3643.09 7572.92 l + 3638.5 7572.92 l + 3638.5 7568.54 l + f + n + 3649.43 7540.05 m + 3654.02 7540.05 l + 3654.02 7555.31 l + 3656.43 7558.91 3658.56 7560.52 3661.05 7560.52 c + 3663.28 7560.52 3663.96 7559.36 3663.96 7555.57 c + 3663.96 7540.05 l + 3668.54 7540.05 l + 3668.54 7557.06 l + 3668.54 7561.8 3666.43 7564.25 3662.34 7564.25 c + 3659.08 7564.25 3656.59 7562.76 3654.02 7559.18 c + 3654.02 7564.25 l + 3649.43 7564.25 l + 3649.43 7540.05 l + f + n + 3684.14 7543.55 m + 3683.68 7543.42 3683.23 7543.33 3682.64 7543.33 c + 3680.58 7543.33 3680.08 7544.22 3680.08 7547.94 c + 3680.08 7560.97 l + 3684.78 7560.97 l + 3684.78 7564.25 l + 3680.08 7564.25 l + 3680.08 7569.04 l + 3675.49 7568.63 l + 3675.49 7564.25 l + 3672.76 7564.25 l + 3672.76 7560.97 l + 3675.49 7560.97 l + 3675.49 7547.14 l + 3675.49 7542.47 3677.55 7540.05 3681.52 7540.05 c + 3682.41 7540.05 3683.11 7540.14 3684.14 7540.46 c + 3684.14 7543.55 l + f + n + 3691.82 7554.7 m + 3692.32 7559.17 3694.2 7561.13 3697.98 7561.13 c + 3701.63 7561.13 3703.27 7559.17 3703.41 7554.7 c + 3691.82 7554.7 l + 3707.79 7544.77 m + 3705.01 7543.81 3702.73 7543.38 3700.45 7543.38 c + 3697.98 7543.38 3696.07 7543.94 3694.65 7545.07 c + 3692.88 7546.5 3692.1 7548.19 3691.73 7551.58 c + 3707.88 7551.58 l + 3707.93 7552.88 l + 3707.93 7553.18 l + 3707.93 7560.44 3704.5 7564.25 3698.07 7564.25 c + 3691.32 7564.25 3687.12 7559.74 3687.12 7552.53 c + 3687.12 7544.84 3691.87 7540.05 3699.49 7540.05 c + 3702.09 7540.05 3704.78 7540.46 3707.79 7541.37 c + 3707.79 7544.77 l + f + n + 3714.58 7540.05 m + 3719.17 7540.05 l + 3719.17 7555.57 l + 3721.08 7558.91 3722.68 7560.42 3724.37 7560.42 c + 3724.83 7560.42 3725.42 7560.29 3726.24 7560.07 c + 3726.24 7564.25 l + 3726.05 7564.25 l + 3725.7 7564.25 3725.23 7564.25 3724.96 7564.25 c + 3722.41 7564.25 3720.67 7562.76 3719.17 7559.18 c + 3719.17 7564.25 l + 3714.58 7564.25 l + 3714.58 7540.05 l + f + n + 3581.61 7478.49 m + 3586 7478.49 l + 3598.27 7511.36 l + 3594.3 7511.36 l + 3584.21 7484.35 l + 3573.68 7511.36 l + 3568.89 7511.36 l + 3581.61 7478.49 l + f + n + 3623.38 7482.09 m + 3623.1 7482.09 3623.01 7482.09 3622.55 7482.09 c + 3621.05 7482.09 3620.23 7483.17 3620.23 7485.1 c + 3620.23 7495.41 l + 3620.23 7500.45 3617.69 7502.7 3611.91 7502.7 c + 3609.1 7502.7 3606.46 7502.15 3603.23 7500.87 c + 3603.23 7497.39 l + 3606.11 7498.77 3608.48 7499.41 3610.99 7499.41 c + 3614.09 7499.41 3615.64 7498.08 3615.64 7495.41 c + 3615.64 7492.66 l + 3614.6 7492.66 l + 3605.6 7492.66 3601.12 7490.05 3601.12 7484.81 c + 3601.12 7481.11 3604.05 7478.49 3608.26 7478.49 c + 3611.01 7478.49 3613.38 7479.54 3616.31 7482.09 c + 3617.02 7479.58 3618.23 7478.49 3620.38 7478.49 c + 3621.5 7478.49 3622.62 7478.77 3623.7 7479.32 c + 3623.38 7482.09 l + 3615.64 7484.37 m + 3613.45 7482.74 3611.72 7482.09 3609.72 7482.09 c + 3607.12 7482.09 3605.71 7483.34 3605.71 7485.57 c + 3605.71 7488.67 3608.48 7490.3 3613.69 7490.3 c + 3614.19 7490.3 l + 3615.64 7490.26 l + 3615.64 7484.37 l + f + n + 3628.46 7478.49 m + 3633.04 7478.49 l + 3633.04 7494.02 l + 3634.96 7497.35 3636.55 7498.86 3638.24 7498.86 c + 3638.7 7498.86 3639.29 7498.73 3640.11 7498.51 c + 3640.11 7502.7 l + 3639.93 7502.7 l + 3639.57 7502.7 3639.11 7502.7 3638.84 7502.7 c + 3636.29 7502.7 3634.55 7501.2 3633.04 7497.62 c + 3633.04 7502.7 l + 3628.46 7502.7 l + 3628.46 7478.49 l + f + n + 3643.59 7478.49 m + 3648.17 7478.49 l + 3648.17 7502.7 l + 3643.59 7502.7 l + 3643.59 7478.49 l + 3643.59 7506.98 m + 3648.17 7506.98 l + 3648.17 7511.36 l + 3643.59 7511.36 l + 3643.59 7506.98 l + f + n + 3675.5 7482.09 m + 3675.22 7482.09 3675.13 7482.09 3674.68 7482.09 c + 3673.17 7482.09 3672.35 7483.17 3672.35 7485.1 c + 3672.35 7495.41 l + 3672.35 7500.45 3669.81 7502.7 3664.04 7502.7 c + 3661.22 7502.7 3658.59 7502.15 3655.35 7500.87 c + 3655.35 7497.39 l + 3658.23 7498.77 3660.6 7499.41 3663.11 7499.41 c + 3666.21 7499.41 3667.77 7498.08 3667.77 7495.41 c + 3667.77 7492.66 l + 3666.72 7492.66 l + 3657.72 7492.66 3653.24 7490.05 3653.24 7484.81 c + 3653.24 7481.11 3656.17 7478.49 3660.38 7478.49 c + 3663.13 7478.49 3665.5 7479.54 3668.43 7482.09 c + 3669.14 7479.58 3670.35 7478.49 3672.5 7478.49 c + 3673.62 7478.49 3674.75 7478.77 3675.82 7479.32 c + 3675.5 7482.09 l + 3667.77 7484.37 m + 3665.57 7482.74 3663.84 7482.09 3661.84 7482.09 c + 3659.24 7482.09 3657.83 7483.34 3657.83 7485.57 c + 3657.83 7488.67 3660.61 7490.3 3665.81 7490.3 c + 3666.31 7490.3 l + 3667.77 7490.26 l + 3667.77 7484.37 l + f + n + 3685.16 7493.81 m + 3687.62 7497.43 3689.5 7498.95 3691.46 7498.95 c + 3694.29 7498.95 3696.02 7495.73 3696.02 7490.55 c + 3696.02 7484.34 3693.87 7481.17 3689.77 7481.17 c + 3688.72 7481.17 3687.35 7481.35 3685.16 7481.75 c + 3685.16 7493.81 l + 3685.16 7513.14 m + 3680.57 7513.14 l + 3680.57 7478.49 l + 3685.16 7478.49 l + 3686.71 7478.49 3687.95 7478.49 3689.36 7478.49 c + 3696.66 7478.49 3700.76 7482.98 3700.76 7490.99 c + 3700.76 7498.05 3697.43 7502.7 3692.37 7502.7 c + 3689.27 7502.7 3687.12 7501.22 3685.16 7497.7 c + 3685.16 7513.14 l + f + n + 3706.13 7478.49 4.58594 35.168 re + f + n + 3720.36 7493.14 m + 3720.86 7497.61 3722.73 7499.57 3726.52 7499.57 c + 3730.16 7499.57 3731.81 7497.61 3731.95 7493.14 c + 3720.36 7493.14 l + 3736.32 7483.21 m + 3733.54 7482.25 3731.26 7481.82 3728.98 7481.82 c + 3726.52 7481.82 3724.6 7482.38 3723.19 7483.51 c + 3721.41 7484.94 3720.63 7486.63 3720.27 7490.02 c + 3736.42 7490.02 l + 3736.46 7491.32 l + 3736.46 7491.62 l + 3736.46 7498.88 3733.04 7502.7 3726.61 7502.7 c + 3719.86 7502.7 3715.66 7498.18 3715.66 7490.97 c + 3715.66 7483.28 3720.41 7478.49 3728.02 7478.49 c + 3730.62 7478.49 3733.32 7478.9 3736.32 7479.81 c + 3736.32 7483.21 l + f + n + 3809.61 7464.64 492.473 123.117 re + 1 1 1 sc + f + n + 3809.61 7464.64 492.473 123.117 re + 0 0 0 sc + S + n + 3945.04 7529.28 m + 3738.15 7386.69 l + S + n + 3722.94 7376.21 m + 3736.23 7400.32 l + 3738.15 7386.69 l + 3750.2 7380.04 l + f + n + 3722.94 7376.21 m + 3736.23 7400.32 l + 3738.15 7386.69 l + 3750.2 7380.04 l + h + S + n + 4371.36 7538.51 m + 4375.95 7538.51 l + 4375.95 7551.5 l + 4382.79 7551.5 l + 4392.13 7551.5 4396.85 7555.29 4396.85 7562.67 c + 4396.85 7566.09 4395.71 7568.51 4393.45 7569.92 c + 4391.78 7571.01 4389.38 7571.38 4384.22 7571.38 c + 4371.36 7571.38 l + 4371.36 7538.51 l + 4375.95 7555.07 m + 4375.95 7567.87 l + 4382.7 7567.87 l + 4389.86 7567.87 4392 7566.59 4392 7562.4 c + 4392 7557.53 4388.86 7555.07 4382.61 7555.07 c + 4375.95 7555.07 l + f + n + 4411.3 7562.71 m + 4404.68 7562.71 4400.59 7558.13 4400.59 7550.61 c + 4400.59 7543.18 4404.68 7538.51 4411.16 7538.51 c + 4417.96 7538.51 4422 7543.05 4422 7550.66 c + 4422 7558.13 4417.92 7562.71 4411.3 7562.71 c + 4411.3 7559.43 m + 4415.2 7559.43 4417.16 7556.5 4417.16 7550.7 c + 4417.16 7544.85 4415.16 7541.79 4411.3 7541.79 c + 4407.34 7541.79 4405.43 7544.72 4405.43 7550.66 c + 4405.43 7556.46 4407.39 7559.43 4411.3 7559.43 c + f + n + 4437.36 7562.71 m + 4430.73 7562.71 4426.65 7558.13 4426.65 7550.61 c + 4426.65 7543.18 4430.73 7538.51 4437.22 7538.51 c + 4444.02 7538.51 4448.05 7543.05 4448.05 7550.66 c + 4448.05 7558.13 4443.98 7562.71 4437.36 7562.71 c + 4437.36 7559.43 m + 4441.26 7559.43 4443.21 7556.5 4443.21 7550.7 c + 4443.21 7544.85 4441.21 7541.79 4437.36 7541.79 c + 4433.4 7541.79 4431.49 7544.72 4431.49 7550.66 c + 4431.49 7556.46 4433.45 7559.43 4437.36 7559.43 c + f + n + 4453.48 7538.51 4.58594 35.168 re + f + n + 4310.12 7476.95 m + 4320.77 7476.95 l + 4331.32 7476.95 4337.39 7483.22 4337.39 7494.13 c + 4337.39 7504.59 4331.82 7509.82 4320.72 7509.82 c + 4310.12 7509.82 l + 4310.12 7476.95 l + 4314.71 7480.46 m + 4314.71 7506.31 l + 4318.19 7506.31 l + 4323.05 7506.31 4325.61 7505.8 4327.58 7504.49 c + 4330.7 7502.4 4332.3 7498.68 4332.3 7493.59 c + 4332.3 7484.78 4328.36 7480.46 4320.35 7480.46 c + 4314.71 7480.46 l + f + n + 4346.54 7491.61 m + 4347.04 7496.07 4348.91 7498.03 4352.7 7498.03 c + 4356.34 7498.03 4357.98 7496.07 4358.12 7491.61 c + 4346.54 7491.61 l + 4362.5 7481.67 m + 4359.72 7480.71 4357.44 7480.28 4355.16 7480.28 c + 4352.7 7480.28 4350.78 7480.84 4349.36 7481.97 c + 4347.59 7483.4 4346.81 7485.09 4346.45 7488.48 c + 4362.59 7488.48 l + 4362.64 7489.79 l + 4362.64 7490.09 l + 4362.64 7497.34 4359.21 7501.16 4352.79 7501.16 c + 4346.04 7501.16 4341.84 7496.64 4341.84 7489.43 c + 4341.84 7481.74 4346.58 7476.95 4354.2 7476.95 c + 4356.8 7476.95 4359.49 7477.36 4362.5 7478.27 c + 4362.5 7481.67 l + f + n + 4368.79 7478.36 m + 4371.87 7477.36 4374.32 7476.95 4376.78 7476.95 c + 4382.69 7476.95 4386.36 7479.6 4386.36 7483.89 c + 4386.36 7487.15 4384.21 7489.54 4379.93 7490.84 c + 4376.47 7491.92 l + 4374.41 7492.58 4373.37 7493.62 4373.37 7495 c + 4373.37 7496.91 4374.89 7497.87 4377.87 7497.87 c + 4380.1 7497.87 4382.15 7497.53 4384.43 7496.84 c + 4384.43 7500.43 l + 4381.78 7500.93 4379.87 7501.16 4378 7501.16 c + 4371.93 7501.16 4368.79 7498.98 4368.79 7494.73 c + 4368.79 7491.61 4370.64 7489.48 4374.35 7488.27 c + 4378.25 7487.05 l + 4380.65 7486.31 4381.78 7485.18 4381.78 7483.62 c + 4381.78 7481.41 4380.03 7480.23 4376.8 7480.23 c + 4374.25 7480.23 4371.83 7480.84 4368.79 7482.26 c + 4368.79 7478.36 l + f + n + 4410.09 7481.93 m + 4407.53 7480.94 4405.66 7480.51 4403.79 7480.51 c + 4399.05 7480.51 4396.31 7483.6 4396.31 7489.06 c + 4396.31 7494.81 4398.91 7497.78 4403.98 7497.78 c + 4405.53 7497.78 4407.17 7497.48 4409.81 7496.75 c + 4409.81 7500.34 l + 4407.27 7500.88 4405.09 7501.16 4403.23 7501.16 c + 4395.83 7501.16 4391.47 7496.7 4391.47 7489.05 c + 4391.47 7481.75 4395.88 7476.95 4402.5 7476.95 c + 4404.96 7476.95 4407.37 7477.36 4410.09 7478.23 c + 4410.09 7481.93 l + f + n + 4416.2 7476.95 m + 4420.79 7476.95 l + 4420.79 7492.48 l + 4422.7 7495.81 4424.3 7497.32 4425.98 7497.32 c + 4426.45 7497.32 4427.04 7497.2 4427.86 7496.97 c + 4427.86 7501.16 l + 4427.67 7501.16 l + 4427.31 7501.16 4426.85 7501.16 4426.58 7501.16 c + 4424.03 7501.16 4422.29 7499.66 4420.79 7496.08 c + 4420.79 7501.16 l + 4416.2 7501.16 l + 4416.2 7476.95 l + f + n + 4431.33 7476.95 m + 4435.91 7476.95 l + 4435.91 7501.16 l + 4431.33 7501.16 l + 4431.33 7476.95 l + 4431.33 7505.44 m + 4435.91 7505.44 l + 4435.91 7509.82 l + 4431.33 7509.82 l + 4431.33 7505.44 l + f + n + 4446.85 7468.69 m + 4446.85 7476.95 l + 4448.39 7476.95 4449.62 7476.95 4451.03 7476.95 c + 4458.3 7476.95 4462.39 7481.54 4462.39 7489.71 c + 4462.39 7496.61 4459.07 7501.16 4454.03 7501.16 c + 4450.94 7501.16 4448.8 7499.68 4446.85 7496.12 c + 4446.85 7501.16 l + 4442.26 7501.16 l + 4442.26 7468.69 l + 4446.85 7468.69 l + 4446.85 7492.39 m + 4449.28 7495.86 4451.12 7497.32 4453.05 7497.32 c + 4455.84 7497.32 4457.55 7494.23 4457.55 7489.25 c + 4457.55 7483.29 4455.44 7480.23 4451.39 7480.23 c + 4450.31 7480.23 4449.23 7480.36 4446.85 7480.79 c + 4446.85 7492.39 l + f + n + 4476.97 7480.46 m + 4476.51 7480.32 4476.05 7480.23 4475.46 7480.23 c + 4473.41 7480.23 4472.91 7481.12 4472.91 7484.84 c + 4472.91 7497.87 l + 4477.61 7497.87 l + 4477.61 7501.16 l + 4472.91 7501.16 l + 4472.91 7505.95 l + 4468.32 7505.54 l + 4468.32 7501.16 l + 4465.59 7501.16 l + 4465.59 7497.87 l + 4468.32 7497.87 l + 4468.32 7484.04 l + 4468.32 7479.38 4470.38 7476.95 4474.35 7476.95 c + 4475.24 7476.95 4475.94 7477.04 4476.97 7477.36 c + 4476.97 7480.46 l + f + n + 4490.78 7501.16 m + 4484.16 7501.16 4480.08 7496.57 4480.08 7489.05 c + 4480.08 7481.62 4484.16 7476.95 4490.64 7476.95 c + 4497.45 7476.95 4501.48 7481.49 4501.48 7489.1 c + 4501.48 7496.57 4497.4 7501.16 4490.78 7501.16 c + 4490.78 7497.87 m + 4494.68 7497.87 4496.64 7494.95 4496.64 7489.14 c + 4496.64 7483.29 4494.64 7480.23 4490.78 7480.23 c + 4486.83 7480.23 4484.92 7483.16 4484.92 7489.1 c + 4484.92 7494.9 4486.88 7497.87 4490.78 7497.87 c + f + n + 4507.41 7476.95 m + 4512 7476.95 l + 4512 7492.48 l + 4513.91 7495.81 4515.51 7497.32 4517.2 7497.32 c + 4517.66 7497.32 4518.25 7497.2 4519.07 7496.97 c + 4519.07 7501.16 l + 4518.88 7501.16 l + 4518.52 7501.16 4518.06 7501.16 4517.79 7501.16 c + 4515.24 7501.16 4513.5 7499.66 4512 7496.08 c + 4512 7501.16 l + 4507.41 7501.16 l + 4507.41 7476.95 l + f + 3.07793 w + n + 4055.85 7587.76 m + 4055.85 7464.64 l + 0.498001 0.498001 0.498001 sc + S + n + 4151.78 7526.2 5.60547 5.51953 re + 0 0 0 sc + f + n + 4177.84 7526.2 5.60547 5.51953 re + f + n + 4203.9 7526.2 5.60547 5.51953 re + f + n + 4917.67 7403.08 m + 4917.67 7433.86 4979.48 7433.86 5040.79 7433.86 c + S + n + 5410.14 7403.08 m + 5410.14 7433.86 5348.59 7433.86 5287.02 7433.86 c + S + n + 5040.79 7433.86 m + 5287.02 7433.86 l + S + n + 5163.91 7433.86 m + 5163.91 7464.64 l + S + n + 5079.24 7495.42 m + 5097.01 7495.42 l + 5097.01 7498.7 l + 5090.44 7498.7 l + 5090.44 7528.29 l + 5079.24 7525.64 l + 5079.24 7522.36 l + 5085.85 7523.95 l + 5085.85 7498.7 l + 5079.24 7498.7 l + 5079.24 7495.42 l + f + n + 5121.49 7527.01 m + 5118.99 7527.92 5117.18 7528.29 5115.18 7528.29 c + 5106.88 7528.29 5101.97 7521.76 5101.97 7510.86 c + 5101.97 7501.17 5106.11 7495.42 5113.04 7495.42 c + 5119.38 7495.42 5123.38 7499.76 5123.38 7506.61 c + 5123.38 7512.84 5120.03 7516.57 5114.44 7516.57 c + 5111.32 7516.57 5109.05 7515.46 5106.81 7512.86 c + 5106.81 7516.62 5107.14 7518.47 5107.98 7520.44 c + 5109.33 7523.45 5111.75 7525 5115.06 7525 c + 5116.74 7525 5118.56 7524.55 5121.49 7523.37 c + 5121.49 7527.01 l + 5113.1 7513.51 m + 5116.88 7513.51 5118.79 7510.91 5118.79 7505.78 c + 5118.79 7501.09 5116.93 7498.7 5113.24 7498.7 c + 5109.47 7498.7 5106.81 7502 5106.81 7506.74 c + 5106.81 7510.86 5109.28 7513.51 5113.1 7513.51 c + f + n + 5143.1 7495.42 m + 5154.66 7495.42 l + 5158.58 7495.42 5160.83 7495.69 5162.31 7496.38 c + 5164.88 7497.62 5166.54 7500.41 5166.54 7503.67 c + 5166.54 7508.16 5163.96 7510.82 5157.99 7512.65 c + 5163.09 7514.41 5165.27 7516.89 5165.27 7520.99 c + 5165.27 7526.26 5162.02 7528.29 5153.55 7528.29 c + 5143.1 7528.29 l + 5143.1 7495.42 l + 5147.69 7498.93 m + 5147.69 7510.96 l + 5151.48 7510.96 l + 5158.13 7510.96 5161.7 7508.49 5161.7 7503.96 c + 5161.7 7499.89 5159.67 7498.93 5151.12 7498.93 c + 5147.69 7498.93 l + 5147.69 7514.02 m + 5147.69 7524.78 l + 5151.96 7524.78 l + 5158.49 7524.78 5160.43 7523.71 5160.43 7520.18 c + 5160.43 7516.07 5157.5 7514.02 5151.61 7514.02 c + 5147.69 7514.02 l + f + n + 5179.27 7495.45 m + 5175.45 7486.65 l + 5180.05 7486.65 l + 5192.82 7519.62 l + 5188.95 7519.62 l + 5181.73 7501.06 l + 5175.17 7519.62 l + 5170.7 7519.62 l + 5179.27 7495.45 l + f + n + 5205.71 7498.93 m + 5205.25 7498.79 5204.79 7498.7 5204.2 7498.7 c + 5202.15 7498.7 5201.64 7499.59 5201.64 7503.31 c + 5201.64 7516.34 l + 5206.34 7516.34 l + 5206.34 7519.62 l + 5201.64 7519.62 l + 5201.64 7524.41 l + 5197.06 7524 l + 5197.06 7519.62 l + 5194.32 7519.62 l + 5194.32 7516.34 l + 5197.06 7516.34 l + 5197.06 7502.51 l + 5197.06 7497.84 5199.12 7495.42 5203.09 7495.42 c + 5203.98 7495.42 5204.68 7495.51 5205.71 7495.83 c + 5205.71 7498.93 l + f + n + 5213.39 7510.07 m + 5213.89 7514.54 5215.76 7516.5 5219.55 7516.5 c + 5223.19 7516.5 5224.84 7514.54 5224.97 7510.07 c + 5213.39 7510.07 l + 5229.35 7500.14 m + 5226.57 7499.18 5224.29 7498.75 5222.01 7498.75 c + 5219.55 7498.75 5217.63 7499.31 5216.21 7500.44 c + 5214.44 7501.87 5213.66 7503.56 5213.3 7506.95 c + 5229.45 7506.95 l + 5229.49 7508.25 l + 5229.49 7508.55 l + 5229.49 7515.81 5226.07 7519.62 5219.64 7519.62 c + 5212.89 7519.62 5208.69 7515.11 5208.69 7507.9 c + 5208.69 7500.21 5213.43 7495.42 5221.05 7495.42 c + 5223.65 7495.42 5226.34 7495.83 5229.35 7496.74 c + 5229.35 7500.14 l + f + n + 5235.64 7496.83 m + 5238.73 7495.83 5241.18 7495.42 5243.63 7495.42 c + 5249.54 7495.42 5253.22 7498.07 5253.22 7502.36 c + 5253.22 7505.62 5251.06 7508.01 5246.79 7509.31 c + 5243.33 7510.39 l + 5241.26 7511.05 5240.23 7512.09 5240.23 7513.47 c + 5240.23 7515.38 5241.74 7516.34 5244.73 7516.34 c + 5246.96 7516.34 5249.01 7516 5251.28 7515.31 c + 5251.28 7518.89 l + 5248.64 7519.4 5246.72 7519.62 5244.85 7519.62 c + 5238.79 7519.62 5235.64 7517.45 5235.64 7513.2 c + 5235.64 7510.07 5237.5 7507.95 5241.21 7506.73 c + 5245.1 7505.52 l + 5247.5 7504.78 5248.63 7503.65 5248.63 7502.09 c + 5248.63 7499.88 5246.89 7498.7 5243.66 7498.7 c + 5241.11 7498.7 5238.68 7499.3 5235.64 7500.73 c + 5235.64 7496.83 l + f + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 352.2 691.92 m + /N23 8.96638 Tf + (Figure3:Pool) + [6.66309 2.94267 5.28303 5.87642 4.37907 8.46026 5.28303 7.68282 6.96004 5.58311 5.28301 + 2.94272 ] pdfxs + (-a) show + (lloc) + [2.94267 2.94267 5.58311 4.74074 ] pdfxs + (a) show + (tedLinkedList) + [4.13846 4.86029 9.47648 6.36185 2.94267 5.87639 5.28441 4.86029 9.47624 6.36185 2.94267 + 4.2022 4.13846 ] pdfxs + 327.6 678.18 m + /N17 8.96638 Tf + (1.) + [4.62109 2.57567 ] pdfxs + 339.24 678.18 m + /N19 8.96638 Tf + (Type) + [5.8839 4.43585 4.20251 8.63787 ] pdfxs + (i) show + (n) + [5.1585 ] pdfxs + (f) show + (orma) + [4.68266 3.90111 7.50429 4.68264 ] pdfxs + (ti) show + (on) + [4.68266 5.15848 ] pdfxs + 410.4 678.18 m + /N17 8.96638 Tf + (:Eachnode,) + [9.11555 6.29665 4.62114 3.84208 9.30016 5.10017 4.86128 5.10017 4.07845 2.57567 ] pdfxs + 469.86 678.18 m + /N31 8.96638 Tf + (n) show + 475.44 678.18 m + /N17 8.96638 Tf + (,isassociatedwith) + [7.07571 2.57562 7.85632 4.62114 3.65642 3.65647 4.86113 4.08192 2.57567 4.62109 3.60276 + 4.0785 9.30031 6.65759 2.57562 3.60276 5.10017 ] pdfxs + 339.24 667.74 m + (atype,) + [8.1011 3.36289 4.85621 5.34016 4.0785 2.57567 ] pdfxs + 371.16 667.74 m + /N31 8.96638 Tf + (n:\034) + [5.58016 2.57567 4.07616 ] pdfxs + 384.42 667.74 m + /N17 8.96638 Tf + (,thatissomeprogram-de\fnedtype,or) + [6.11558 3.60273 5.10017 4.62109 7.08274 2.57562 7.07664 3.65647 4.62109 7.67579 7.55838 + 5.10017 3.59993 4.62114 4.62109 3.59993 4.62114 7.67525 3.06372 5.10017 4.07845 5.10017 + 5.10017 4.0785 8.70031 3.36292 4.85623 5.34016 4.07845 6.23557 4.62114 3.59993 ] pdfxs + 548.76 667.74 m + /N13 8.96638 Tf + (?) show + 339.239 657.24 m + /N17 8.96638 Tf + (representinganunknowntype.AnyDSnodewith) + [3.59993 4.0785 5.10017 3.59993 4.0785 3.65642 4.0785 4.86033 3.60273 2.57567 5.10017 + 9.18124 4.62109 9.60009 5.10017 5.10017 4.85623 5.10017 4.38096 6.65759 9.66007 3.36292 + 4.85623 5.34016 4.07845 10.9758 6.90289 4.86033 9.41614 7.01985 9.60007 5.10017 4.86128 + 5.10017 8.69847 6.65759 2.57562 3.60276 5.10017 ] pdfxs + 339.239 646.8 m + /N31 8.96638 Tf + (\034) show + 347.699 646.8 m + /N13 8.96638 Tf + (6) show + 347.699 646.8 m + /N17 8.96638 Tf + (=) show + 358.26 646.8 m + /N13 8.96638 Tf + (?) show + 368.999 646.8 m + /N17 8.96638 Tf + (representsasetofobjectsofasingletype,) + [3.59993 4.0785 5.10017 3.59993 4.0785 3.65642 4.0785 4.86033 3.60273 7.25659 8.16127 + 3.65647 4.07845 7.14285 4.62114 6.41945 4.62114 5.6403 2.81965 4.07845 4.08192 3.60276 + 7.19655 4.62114 6.35968 8.16127 3.65647 2.57562 5.10017 4.62114 2.57562 7.61864 3.36292 + 4.85623 5.34016 4.07845 2.57567 ] pdfxs + 548.28 646.8 m + /N31 8.96638 Tf + (\034) show + 553.38 646.8 m + /N17 8.96638 Tf + (,) show + 339.239 636.36 m + (i.e.,thecompilerhasproventhatthatalloperations) + [2.57567 2.57567 4.07848 2.57567 6.35574 3.60273 5.10017 7.79849 4.08197 4.62109 7.67579 + 5.10017 2.57567 2.57564 4.0785 7.26001 5.10017 4.62114 7.31628 5.10017 3.59993 4.3812 + 4.61615 4.07845 8.82018 3.60276 5.10017 4.62114 7.26282 3.60276 5.10017 4.62114 7.26282 + 4.62114 2.57562 6.23547 4.62114 5.34031 4.07845 3.59993 4.62114 3.60276 2.57562 4.62114 + 5.10017 3.65647 ] pdfxs + 339.239 625.86 m + (onpointerstothenodeareconsistentwith) + [4.62109 9.54032 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 3.59993 8.15627 3.60273 + 9.00109 3.60273 5.10017 8.57854 5.10017 4.86128 5.10017 8.63831 4.62114 3.59993 8.51829 + 4.08192 4.62114 5.10017 3.65647 2.57562 3.65647 3.60276 4.07845 4.86003 8.04259 6.65759 + 2.57562 3.60276 5.10017 ] pdfxs + 527.219 625.86 m + /N31 8.96638 Tf + (\034) show + 532.319 625.86 m + /N17 8.96638 Tf + (.We) + [10.7956 8.69858 4.07845 ] pdfxs + 339.239 615.42 m + (refertosuchnodesastype-homogeneous\(TH\)nodes.) + [3.59993 4.0785 2.81963 4.0785 6.65976 3.60273 7.68118 3.65645 5.10017 3.84196 8.10016 + 5.10017 4.86126 5.10017 4.07845 6.77663 4.62114 6.65642 3.36292 4.85623 5.34016 4.07845 + 3.06372 5.10017 4.62114 7.67525 4.62114 4.62109 4.0785 5.10017 4.07845 4.62114 5.10017 + 6.77629 3.60276 6.65759 6.90289 6.60276 5.10017 4.86128 5.10017 4.07845 3.65647 2.57567 + ] pdfxs + 339.239 604.92 m + (If) + [3.30018 2.81963 ] pdfxs + 348.479 604.92 m + /N31 8.96638 Tf + (\034) show + 356.099 604.92 m + /N17 8.96638 Tf + (=) show + 365.879 604.92 m + /N13 8.96638 Tf + (?) show + 373.019 604.92 m + /N17 8.96638 Tf + (,thisistreatedlikeanunknown-sizearrayof) + [5.69566 3.60273 5.10017 2.57567 6.65642 2.57567 6.71643 3.60273 3.59993 4.07845 4.62114 + 3.60276 4.07845 8.22019 2.57562 2.57567 4.61629 7.13832 4.62114 8.16022 5.10017 5.10017 + 4.85623 5.10017 4.38096 6.65759 5.10017 3.06372 3.65642 2.57567 4.08192 7.25848 4.62114 + 3.59993 3.59993 4.3811 7.91614 4.62114 2.8196 ] pdfxs + 339.239 594.48 m + (bytesandisshownas) + [4.86033 4.85621 3.60273 4.07848 7.13652 4.62109 5.10017 8.64032 2.57567 7.13635 3.65645 + 5.10017 4.38093 6.65759 8.64015 4.62114 3.65642 ] pdfxs + 432.06 594.48 m + /N31 8.96638 Tf + (\034) show + 440.46 594.48 m + /N17 8.96638 Tf + (=) show + 450.899 594.48 m + /N15 8.96638 Tf + (byte) + [4.6799 4.67995 4.6799 4.67995 ] pdfxs + 473.279 594.48 m + /N17 8.96638 Tf + (plusan) + [5.10017 2.57562 5.10017 7.1364 4.62114 5.10017 ] pdfxs + 506.459 594.48 m + /N23 8.96638 Tf + (A) show + 514.439 594.48 m + /N17 8.96638 Tf + (\(rray\)\rag) + [3.60276 3.59993 3.59993 4.3812 4.85623 7.08259 5.10017 4.62114 4.62109 ] pdfxs + 339.239 584.04 m + (inthe\fgures.Figure4showsthatDSAconstructsa) + [2.57567 8.46 3.60273 5.10017 7.43834 5.10017 4.62109 5.10017 3.59993 4.0785 3.65642 + 7.55559 6.00162 2.57567 4.62109 5.10017 3.59993 7.43831 7.9812 3.65647 5.10017 4.38096 + 6.65759 6.95637 3.60276 5.10017 4.62114 6.90265 7.01985 5.10017 10.3227 4.08192 4.62114 + 5.10017 3.65647 3.60276 3.59993 5.10017 4.08192 3.60276 6.95647 4.62114 ] pdfxs + 339.239 573.54 m + (THnodefortheobjectsoftype) + [6.65759 9.72295 5.10017 4.86126 5.10017 7.01842 2.81963 4.62109 6.42009 3.60273 5.10017 + 6.95865 4.62114 5.6403 2.81965 4.07845 4.08192 3.60276 6.5364 4.62114 5.63976 3.36292 + 4.85623 5.34016 4.07845 ] pdfxs + 469.38 573.54 m + /N31 8.96638 Tf + (\034) show + 477 573.54 m + /N17 8.96638 Tf + (=) show + 487.02 573.54 m + /N15 8.96638 Tf + (list) + [4.6799 4.67995 4.6799 4.67995 ] pdfxs + 508.74 573.54 m + /N17 8.96638 Tf + (infunctions) + [2.57562 7.92019 2.81965 5.10017 5.10017 4.08192 3.60276 2.57562 4.62114 5.10017 3.65647 + ] pdfxs + 339.239 563.1 m + /N15 8.96638 Tf + (MakeList) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.67993 ] pdfxs + 381.059 563.1 m + /N17 8.96638 Tf + (and) + [4.62109 5.10017 5.10017 ] pdfxs + 400.019 563.1 m + /N15 8.96638 Tf + (Length) + [4.67995 4.67995 4.6799 4.67995 4.6799 4.6799 ] pdfxs + 432.419 563.1 m + /N17 8.96638 Tf + (andforthe) + [4.62114 5.10017 9.2403 2.81965 4.62109 7.74001 3.60276 5.10017 4.07845 ] pdfxs + 483.539 563.1 m + /N31 8.96638 Tf + (A) show + 494.579 563.1 m + /N17 8.96638 Tf + (listinfunction) + [2.57562 2.57567 3.65647 7.68273 2.57562 9.2401 2.81965 5.10017 5.10017 4.08192 3.60276 + 2.57562 4.62114 5.10017 ] pdfxs + 339.239 552.661 m + /N15 8.96638 Tf + (Testlists) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.67993 4.67995 ] pdfxs + 381.359 552.661 m + /N17 8.96638 Tf + (.Itmarksthe) + [7.91558 3.30018 7.08281 7.67579 4.62109 3.59993 4.85623 7.01653 3.60276 5.10017 4.07845 + ] pdfxs + 443.699 552.661 m + /N31 8.96638 Tf + (B) show + 454.499 552.661 m + /N17 8.96638 Tf + (listasnon-THbecausea) + [2.57562 2.57567 3.65647 6.96281 4.62114 7.01628 5.10017 4.62114 5.10017 3.06367 6.65759 + 10.3828 5.34001 4.07845 4.08197 4.62109 5.10017 3.65647 7.55848 4.62114 ] pdfxs + 339.239 542.161 m + (locationina) + [2.57567 4.86094 4.08197 4.62109 3.60273 2.57567 4.62109 8.10016 2.57567 8.16 4.62109 + ] pdfxs + 392.699 542.161 m + /N31 8.96638 Tf + (B) show + 403.199 542.161 m + /N17 8.96638 Tf + (listobjectisaccessedasacharacter.) + [2.57567 2.57567 3.65647 6.60276 4.62114 5.6403 2.81965 4.07845 4.08192 6.66261 2.57562 + 6.71648 4.62114 4.08192 4.08192 4.0785 3.65647 3.65642 4.0785 8.16008 4.62114 6.71629 + 7.68119 3.84179 5.10017 4.62114 3.59993 4.62109 4.08197 3.60276 4.07845 3.59993 2.57562 + ] pdfxs + 327.6 524.64 m + (2.) + [4.62109 2.57567 ] pdfxs + 339.239 524.64 m + /N19 8.96638 Tf + (Memoryclasses) + [8.27657 4.25801 7.50429 4.68266 3.90111 9.29577 4.25804 2.33685 4.68266 3.7822 3.78217 + 4.25804 3.7822 ] pdfxs + 404.759 524.64 m + /N17 8.96638 Tf + (:Memoryobjectsaredistinguished) + [9.9558 8.46031 4.07845 7.67579 4.62109 3.59993 9.59607 4.62114 5.6403 2.81965 4.07845 + 4.08192 3.60276 8.39655 4.62114 3.59993 8.87845 5.10017 2.57562 3.65647 3.60276 2.57567 + 5.10017 4.62109 5.10017 2.57567 3.65642 5.10017 4.0785 5.10017 ] pdfxs + 339.239 514.2 m + (intofourclasses:Heap,Stack,GlobalandUnknown.) + [2.57567 4.86001 3.60273 8.04093 2.81963 4.62109 5.10017 7.07986 4.08197 2.57567 4.62109 + 3.65642 3.65645 4.0785 3.65642 7.37558 6.90289 4.07845 4.62114 5.10017 6.17571 5.10017 + 3.60276 4.62114 3.84208 4.85623 6.17547 7.25576 2.57562 4.62114 5.10017 4.62109 5.93557 + 4.62114 5.10017 8.6403 6.90289 5.10017 4.85623 5.10017 4.38096 6.65759 5.10017 2.57562 + ] pdfxs + 339.239 503.761 m + (Foreachnode,thisisrepresentedasasetof\rags,) + [5.22155 4.62109 8.04008 4.0785 4.62109 3.84181 9.54 5.10017 4.86126 5.10017 4.0785 + 7.43557 3.60273 5.10017 2.57562 8.0364 2.57562 8.0364 3.59993 4.07845 5.10017 3.59993 + 4.0785 3.65647 4.07845 4.86033 3.60276 4.07845 9.60026 4.62114 8.0366 9.06127 3.65647 + 4.07845 8.04284 4.62114 7.19953 5.10017 4.62114 4.62109 3.65647 2.57562 ] pdfxs + 339.239 493.261 m + /N31 8.96638 Tf + (M) show + 353.7 493.261 m + /N13 8.96638 Tf + (\022f) + [11.7568 4.62109 ] pdfxs + 370.08 493.261 m + /N23 8.96638 Tf + (H) show + 378.299 493.261 m + /N31 8.96638 Tf + (;) show + 382.439 493.261 m + /N23 8.96638 Tf + (S) show + 388.319 493.261 m + /N31 8.96638 Tf + (;) show + 392.399 493.261 m + /N23 8.96638 Tf + (G) show + 400.739 493.261 m + /N31 8.96638 Tf + (;) show + 404.819 493.261 m + /N23 8.96638 Tf + (U) show + 412.979 493.261 m + /N13 8.96638 Tf + (g) show + 417.599 493.261 m + /N17 8.96638 Tf + (.Anodewith) + [10.3155 11.163 5.10017 4.86128 5.10017 8.45862 6.65759 2.57562 3.60276 5.10017 ] pdfxs + 484.8 493.261 m + /N23 8.96638 Tf + (U) show + 497.52 493.261 m + /N13 8.96638 Tf + (2) show + 508.259 493.261 m + /N31 8.96638 Tf + (M) show + 522.42 493.261 m + /N17 8.96638 Tf + (mustbe) + [7.43511 5.10017 3.65647 7.8029 5.34001 4.07845 ] pdfxs + 339.24 482.82 m + (assignedtype) + [4.62109 3.65645 3.65642 2.57567 4.62109 5.10017 4.0785 9.24033 3.36289 4.85621 5.34016 + 4.0785 ] pdfxs + 398.64 482.82 m + /N31 8.96638 Tf + (\034) show + 408.12 482.82 m + /N17 8.96638 Tf + (=) show + 419.7 482.82 m + /N13 8.96638 Tf + (?) show + 426.84 482.82 m + /N17 8.96638 Tf + (.Functionsaretreatedsimply) + [10.0155 5.22152 5.10017 5.10017 4.08192 3.60276 2.57567 4.62109 5.10017 7.85632 4.62114 + 3.59993 8.27845 3.60276 3.59993 4.07845 4.62114 3.60276 4.07845 9.30026 3.65647 2.57562 + 7.67579 5.10017 2.57562 4.85623 ] pdfxs + 339.24 472.381 m + (asGlobalobjectssothatfunctionpointersarerepre-) + [4.62109 6.95651 7.25576 2.57564 4.62112 5.10017 4.62109 5.87581 4.62109 5.64033 2.81963 + 4.0785 4.08197 3.60273 6.95627 3.65647 7.98095 3.60276 5.10017 4.62114 6.90265 2.81965 + 5.10017 5.10017 4.08192 3.60276 2.57562 4.62114 8.52008 5.34001 4.62114 2.57562 4.86033 + 3.60276 4.07845 3.59993 7.01648 4.62114 3.59993 7.43861 3.59993 4.07845 5.10017 3.59993 + 4.0785 3.06372 ] pdfxs + 339.24 461.881 m + (senteduniformlyinthegraph.) + [3.65645 4.07848 4.86018 3.60273 4.0785 8.16 5.10017 5.10017 2.57567 2.81963 4.62109 + 3.59993 7.67579 2.57567 7.91619 2.57562 8.22019 3.60276 5.10017 7.13832 4.62114 3.59993 + 4.62109 5.10017 5.10017 2.57567 ] pdfxs + 327.6 444.361 m + (3.) + [4.62109 2.57567 ] pdfxs + 339.24 444.361 m + /N19 8.96638 Tf + (F) + [5.99938 ] pdfxs + (i) show + (eld-sens) + [4.25804 2.33685 4.68266 3.29746 3.7822 4.25801 5.1585 3.7822 ] pdfxs + (iti) show + (vepo) + [4.25801 6.95803 4.20266 4.68266 ] pdfxs + (i) show + (n) + [5.15848 ] pdfxs + (t) show + (s-) + [3.78217 3.29749 ] pdfxs + (t) show + (o) + [7.5028 ] pdfxs + (i) show + (n) + [5.15843 ] pdfxs + (f) show + (orma) + [4.68264 3.90108 7.50429 4.68269 ] pdfxs + (ti) show + (on) + [4.68269 5.15843 ] pdfxs + 485.099 444.361 m + /N17 8.96638 Tf + (:AnedgeinaDS) + [6.47571 6.90289 7.62008 4.07845 5.10017 4.62114 6.59847 2.57562 7.56003 7.14096 7.01985 + 5.10017 ] pdfxs + 339.24 433.921 m + (graphisa4-tuple) + [4.62109 3.59993 4.62109 5.10017 8.40001 2.57567 6.8965 7.92102 4.62109 3.06375 3.60273 + 5.10017 5.10017 2.57564 4.0785 ] pdfxs + 414.419 433.921 m + /N13 8.96638 Tf + (f) show + 419.039 433.921 m + /N31 8.96638 Tf + (s;f) + [4.32203 4.01546 4.50141 ] pdfxs + 431.88 432.901 m + /N29 5.97748 Tf + (s) show + 435.9 433.921 m + /N31 8.96638 Tf + (;t;f) + [4.07571 3.29877 4.13548 4.50141 ] pdfxs + 451.919 432.901 m + /N29 5.97748 Tf + (t) show + 455.219 433.921 m + /N13 8.96638 Tf + (g) show + 459.839 433.921 m + /N17 8.96638 Tf + (.) show + 467.159 433.921 m + /N31 8.96638 Tf + (s) show + 474.719 433.921 m + /N17 8.96638 Tf + (and) + [4.62114 5.10017 5.10017 ] pdfxs + 492.839 433.921 m + /N31 8.96638 Tf + (t) show + 499.439 433.921 m + /N17 8.96638 Tf + (areDSnodes,) + [4.62114 3.59993 7.43861 7.01985 8.40007 5.10017 4.86128 5.10017 4.07845 3.65647 2.57567 + ] pdfxs + 339.239 423.421 m + (while) + [6.65759 5.10017 2.57564 2.57567 4.0785 ] pdfxs + 362.759 423.421 m + /N31 8.96638 Tf + (f) show + 367.259 422.401 m + /N29 5.97748 Tf + (s) show + 373.799 423.421 m + /N17 8.96638 Tf + (and) + [4.62109 5.10017 5.10017 ] pdfxs + 391.199 423.421 m + /N31 8.96638 Tf + (f) show + 395.699 422.401 m + /N29 5.97748 Tf + (t) show + 401.579 423.421 m + /N17 8.96638 Tf + (are\feldnumbersof) + [4.62109 3.59993 6.59837 5.10017 4.07845 2.57567 7.74015 4.86033 5.10017 7.43511 5.34001 + 4.07845 3.59993 6.2364 4.62114 2.8196 ] pdfxs + 482.519 423.421 m + /N31 8.96638 Tf + (s:\034) + [4.32203 2.57562 4.07616 ] pdfxs + 497.039 423.421 m + /N17 8.96638 Tf + (and) + [4.62114 5.10017 5.10017 ] pdfxs + 514.439 423.421 m + /N31 8.96638 Tf + (t:\034) + [3.29877 2.57562 4.07621 ] pdfxs + 527.939 423.421 m + /N17 8.96638 Tf + (respec-) + [3.59993 4.07845 3.65647 5.34026 4.07845 4.08197 3.06372 ] pdfxs + 339.239 412.981 m + (tively.Onlystructuretypeshavemultiple\felds,i.e.,) + [3.60273 2.57567 4.6162 4.0785 2.57567 4.07604 7.91558 7.13659 5.10017 2.57567 8.39612 + 3.65645 3.60273 3.59993 5.10017 4.08192 3.60276 5.10017 3.59993 7.61864 3.36292 4.85623 + 5.34016 4.07845 7.1364 5.10017 4.3812 4.61615 7.55862 7.43511 5.10017 2.57562 3.60276 + 2.57567 5.10017 2.57562 7.55848 5.10017 4.07845 2.57567 5.10017 3.65647 6.17561 2.57562 + 2.57567 4.07845 2.57567 2.57562 ] pdfxs + 339.239 402.541 m + (scalarorarraytypesaretreatedasasingle\feld.) + [3.65645 4.08195 4.62112 2.57564 4.62112 6.59992 4.62109 6.66 4.62109 3.59993 3.59993 + 4.3811 7.91612 3.36289 4.85621 5.34016 4.07845 6.71648 4.62114 3.59993 7.19837 3.60276 + 3.59993 4.07845 4.62114 3.60276 4.07845 8.16003 4.62114 6.71629 7.68119 3.65647 2.57562 + 5.10017 4.62114 2.57562 7.0785 5.10017 4.07845 2.57567 5.10017 2.57562 ] pdfxs + 327.599 385.021 m + (4.) + [4.62109 2.57567 ] pdfxs + 339.239 385.021 m + /N19 8.96638 Tf + (S) + [5.1585 ] pdfxs + (i) show + (ngle) + [5.15848 4.25804 2.33685 7.85803 ] pdfxs + (t) show + (arget) + [4.68264 3.42128 4.25804 4.25801 6.59948 ] pdfxs + (f) show + (oreachpo) + [4.68266 7.5011 3.77813 4.68264 4.25806 8.28258 4.20266 4.68264 ] pdfxs + (i) show + (n) + [5.15848 ] pdfxs + (t) show + (er) + [4.25801 3.90108 ] pdfxs + 458.159 385.021 m + /N17 8.96638 Tf + (:Everypointervariable) + [7.31555 6.29665 4.61615 4.07845 3.59993 8.21623 5.34001 4.62114 2.57562 4.86033 3.60276 + 4.07845 7.01994 4.31615 4.62114 3.59993 2.57562 4.62114 5.10017 2.57562 4.07845 ] pdfxs + 339.239 374.521 m + (or\feldhasasingleoutgoingedge,i.e.,allobjects) + [4.62109 8.27993 5.10017 4.0785 2.57567 9.84015 5.10017 4.62109 8.33659 9.36125 3.65645 + 2.57564 5.10017 4.62114 2.57562 8.75848 4.62114 5.10017 3.60276 4.62109 4.62114 2.57562 + 5.10017 9.2412 4.07845 5.10017 4.62114 4.07845 7.73557 2.57562 2.57567 4.07845 2.57567 + 7.61545 4.62114 2.57562 7.25578 4.62114 5.6403 2.81965 4.07845 4.08192 3.60276 3.65647 + ] pdfxs + 339.239 364.081 m + (pointedtobyacommonpointermustberepresented) + [5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 8.40024 3.60273 7.86125 4.86033 8.15635 + 7.92102 4.08197 4.62109 7.67525 7.67579 4.62109 8.40026 5.34001 4.62114 2.57562 4.86033 + 3.60276 4.07845 6.90003 7.43511 5.10017 3.65647 6.84274 5.34001 7.43831 3.59993 4.07845 + 5.10017 3.59993 4.0785 3.65647 4.07845 4.86033 3.60276 4.07845 5.10017 ] pdfxs + 339.239 353.64 m + (byasinglenode.Thebene\ftsofthispropertyforthe) + [4.86033 7.7962 7.50109 3.65645 2.57564 5.10017 4.62112 2.57564 6.9585 5.10017 4.86126 + 5.10017 4.0785 6.65549 6.65759 5.10017 7.07845 5.34001 4.07845 5.10017 4.0785 5.10017 + 3.60276 6.65647 4.62114 5.69953 3.60276 5.10017 2.57562 6.5364 5.10017 3.59993 4.62114 + 5.34031 4.07845 3.59993 3.36262 7.79622 2.81965 4.62109 6.54002 3.60276 5.10017 4.07845 + ] pdfxs + 339.239 343.14 m + (twotransformationsareexplainedinthenextsubsec-) + [3.36289 6.4175 7.62109 3.60273 3.59993 4.62109 5.10017 3.65645 2.81963 4.62109 3.59993 + 7.67579 4.62109 3.60273 2.57567 4.62114 5.10012 6.65647 4.62114 3.59993 7.1386 4.07845 + 4.85623 5.10017 2.57567 4.62109 2.57567 5.10017 4.07845 8.28024 2.57562 8.16003 3.60276 + 5.10017 7.19847 5.10017 4.07845 4.85623 6.72292 3.65647 5.10017 5.10017 3.65647 4.07845 + 4.08192 3.06372 ] pdfxs + 339.239 332.701 m + (tion.) + [3.60273 2.57567 4.62109 5.10017 2.57567 ] pdfxs + 325.799 315.301 m + (IncomputingDSgraphsasde\fnedabove,thenaming) + [3.30018 9.48024 4.08197 4.62109 7.67579 5.10017 5.10017 3.60273 2.57564 5.10017 9.00126 + 7.0198 9.54032 4.62109 3.59993 4.62109 5.10017 5.10017 8.03654 4.62114 7.97644 5.10017 + 4.07845 5.10017 5.10017 4.0785 9.60031 4.62114 5.34031 4.3812 4.61615 4.07845 7.2555 + 3.60276 5.10017 8.45862 5.10017 4.62114 7.67525 2.57562 5.10017 4.62114 ] pdfxs + 316.799 304.801 m + (schemeusedtodistinguishheapobjectscanhaveastrong) + [3.65645 3.84196 5.10017 4.0785 7.67579 7.61856 5.10017 3.65645 4.07848 8.70001 3.60273 + 8.1011 5.10017 2.57567 3.65642 3.60273 2.57567 5.10017 4.62109 5.10017 2.57567 3.65642 + 8.52018 5.10017 4.07845 4.62114 8.70016 4.62114 5.6403 2.81965 4.07845 4.08192 3.60276 + 7.1364 4.08192 4.62114 8.64001 5.10017 4.3812 4.61615 7.61839 8.10112 3.65647 3.60276 + 3.59993 4.62109 5.10017 4.62114 ] pdfxs + 316.799 294.361 m + (in\ruenceontheoutcomeoftransformationssuchasPool) + [2.57567 5.10017 5.10017 5.10017 4.07848 5.10017 4.08197 8.27843 4.62109 9.18017 3.60273 + 5.10017 8.21842 4.62109 5.10017 3.60273 4.08197 4.62109 7.67579 8.15863 4.62114 6.89953 + 3.60276 3.59993 4.62114 5.10017 3.65642 2.81965 4.62114 3.59993 7.67525 4.62114 3.60276 + 2.57562 4.62114 5.10012 7.61633 3.65647 5.10017 3.84193 9.18024 4.62114 7.67643 6.05681 + 4.86128 4.62114 2.57562 ] pdfxs + 316.799 283.921 m + (AllocationandPointerCompression,bothofwhichfocus) + [6.90289 2.57567 2.57567 4.86101 4.08197 4.62109 3.60273 2.57567 4.62109 9.24 4.62109 + 5.10017 9.36024 6.05683 4.62109 2.57567 4.86033 3.60273 4.0785 7.68005 6.65759 4.62109 + 7.67579 5.10017 3.59993 4.07845 3.65647 3.65647 2.57562 4.62114 5.10017 7.0157 5.34001 + 4.62114 3.60276 9.30006 4.62114 7.01945 6.65759 5.10017 2.57562 3.84203 9.30016 2.81965 + 4.86118 4.08192 5.10017 3.65647 ] pdfxs + 316.799 273.421 m + (onheapobjects.Inparticular,inordertosegregatedis-) + [4.62109 9.24033 5.10017 4.0785 4.62109 9.30016 4.62109 5.64033 2.81963 4.0785 4.08197 + 3.60273 3.65642 9.83574 3.30018 9.30016 5.10017 4.62114 3.59993 3.60276 2.57562 4.08192 + 5.10017 2.57567 4.62109 3.59993 6.95549 2.57562 9.2401 4.62114 3.59993 5.10017 4.07845 + 7.73976 3.60276 8.76128 3.65647 4.07845 4.62114 3.59993 4.07845 4.62114 4.62109 3.60276 + 8.15833 5.10017 2.57562 3.65647 3.06372 ] pdfxs + 316.799 262.981 m + (tinctdatastructuresintoseparatepools\(andapplypoint) + [3.60273 2.57567 5.10017 4.08197 6.06265 5.10017 4.62109 3.60273 7.0811 3.65645 3.60273 + 3.59993 5.10017 4.08195 3.60273 5.10017 3.59993 4.0785 6.11628 2.57567 4.86001 3.60276 + 7.02104 3.65647 4.07845 5.10017 4.62114 3.59993 4.62109 3.60276 6.53841 5.34001 4.86128 + 4.62114 2.57562 6.05661 3.60276 4.62114 5.10017 7.61999 4.62114 5.10017 5.10017 2.57562 + 7.31614 5.34001 4.62114 2.57562 4.86033 3.60276 ] pdfxs + (e) show + 549.238 262.981 m + (r-) + [3.59993 3.06372 ] pdfxs + 316.799 252.541 m + (compressiontoeachdatastructureseparately\),thepoint) + [4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 2.57564 4.62112 8.22016 + 3.60273 7.68118 4.0785 4.62109 3.84181 8.22009 5.10017 4.62114 3.60276 7.6811 3.65647 + 3.60276 3.59993 5.10017 4.08192 3.60276 5.10017 3.59993 7.19832 3.65647 4.07845 5.10017 + 4.62114 3.59993 4.62109 3.60276 4.0785 2.57562 4.85623 3.60276 5.63548 3.60276 5.10017 + 7.19847 5.34001 4.62114 2.57562 4.86033 3.60276 ] pdfxs + (e) show + 552.299 252.541 m + (r) show + 316.799 242.041 m + (analysismustusea) + [4.62109 5.10017 4.62109 2.57567 4.85621 3.65642 2.57567 7.61628 7.43563 5.10017 3.65645 + 7.6228 5.10017 3.65645 8.09864 4.62109 ] pdfxs + 401.759 242.041 m + /N19 8.96638 Tf + (f) show + (ullycon) + [4.92058 2.817 2.33683 8.69574 3.77813 4.68264 5.15848 ] pdfxs + (t) show + (ex) + [4.25806 4.26207 ] pdfxs + (t) show + (-sens) + [3.29749 3.78222 4.25806 5.15843 3.78222 ] pdfxs + (iti) show + (ve) + [4.25801 4.25806 ] pdfxs + 493.739 242.041 m + /N17 8.96638 Tf + (namingscheme) + [5.10017 4.62114 7.67525 2.57562 5.10017 8.64106 3.65647 3.84193 5.10017 4.07845 7.67579 + 4.07845 ] pdfxs + 316.799 231.601 m + (forheapobjects,i.e.,distinguishheapobjectsbyacyclic) + [2.81963 4.62109 8.04001 5.10017 4.0785 4.62109 9.54 4.62109 5.64033 2.81963 4.0785 + 4.08197 3.60273 3.65642 7.31582 2.57567 2.57567 4.07848 2.57567 7.3155 5.10017 2.57562 + 3.65647 3.60276 2.57567 5.10017 4.62109 5.10017 2.57567 3.65642 9.42018 5.10017 4.07845 + 4.62114 9.60017 4.62114 5.6403 2.81965 4.07845 4.08192 3.60276 8.0364 4.86033 9.29622 + 4.62114 4.08192 4.85623 4.08192 2.57567 2.57562 4.09764 ] pdfxs + 316.799 221.161 m + (callpaths.Thisisnecessaryinordertosegregatetwoin-) + [4.08197 4.62109 2.57567 6.29573 5.10017 4.62109 3.60273 5.10017 3.65645 8.63557 6.65759 + 5.10017 2.57564 7.37637 2.57567 7.37658 5.10017 4.0785 4.08197 4.07845 3.65647 3.65647 + 4.62109 3.59993 8.5764 2.57562 8.88034 4.62114 3.59993 5.10017 4.07845 7.38 3.60276 + 8.34096 3.65647 4.07845 4.62114 3.59993 4.07845 4.62114 4.62109 3.60276 7.79856 3.36292 + 6.4175 8.2812 2.57562 5.10017 3.06372 ] pdfxs + 316.799 210.661 m + (stancesofadatastructure\(e.g.,twodistinctbinarytrees) + [3.65645 3.60273 4.62109 5.10017 4.08197 4.07848 7.07637 4.62109 6.23979 7.98117 5.10017 + 4.62109 3.60273 8.04126 3.65645 3.60273 3.59993 5.10017 4.08195 3.60276 5.10017 3.59993 + 7.55848 3.60276 4.07845 2.57567 4.62109 2.57567 5.99578 3.36292 6.4175 7.9812 5.10017 + 2.57562 3.65647 3.60276 2.57567 5.10017 4.08192 6.96291 5.10017 2.57562 5.10017 4.62114 + 3.59993 8.2763 3.60276 3.59993 4.07845 4.0785 3.63137 ] pdfxs + 552.3 210.661 m + (\)) show + 316.799 200.221 m + (createdandprocessedbycommonfunctions.Bothtrans-) + [4.08197 3.59993 4.0785 4.62109 3.60273 4.0785 9.12023 4.62109 5.10017 9.12001 5.10017 + 3.59993 4.86126 4.08197 4.0785 3.65642 3.65645 4.0785 9.12023 4.86033 8.81614 4.08192 + 4.62114 7.67525 7.67579 4.62109 9.06002 2.81965 5.10017 5.10017 4.08192 3.60276 2.57562 + 4.62114 5.10017 3.65647 9.35554 6.54063 4.62114 3.60276 9.06008 3.60276 3.59993 4.62114 + 5.10017 3.65642 3.06372 ] pdfxs + 316.799 189.781 m + (formationswouldworkwithalessprecisenamingscheme,) + [2.81963 4.62109 3.59993 7.67579 4.62109 3.60273 2.57567 4.62109 5.10017 7.13652 6.4175 + 4.62109 5.10017 2.57567 8.70016 6.4175 4.62109 3.59993 8.39612 6.65759 2.57562 3.60276 + 8.64025 8.22104 2.57562 4.0785 3.65647 7.13659 5.10017 3.59993 4.07845 4.08197 2.57562 + 3.65647 7.73831 5.10017 4.62114 7.67525 2.57562 5.10017 8.16098 3.65647 3.84193 5.10017 + 4.07845 7.67579 4.07845 2.57567 ] pdfxs + 316.799 179.281 m + (e.g.,onebasedonallocationsites,butwouldnotsegregat) + [4.0785 2.57567 4.62109 2.57567 5.81573 4.62109 5.10017 7.3785 5.10017 4.62109 3.65645 + 4.0785 8.40031 4.62109 8.40009 4.62109 2.57567 2.57567 4.86094 4.08192 4.62114 3.60276 + 2.57562 4.62114 8.28024 3.65647 2.57562 3.60276 4.0785 3.65642 5.75549 5.10017 5.10017 + 6.90275 6.4175 4.62114 5.10017 2.57562 8.34 5.10017 4.62114 6.90265 3.65647 4.07845 + 4.62114 3.59993 4.07845 4.62114 4.62109 3.60276 ] pdfxs + (e) show + 316.799 168.841 m + (objectsfromtwosuchdatastructures.) + [4.62109 5.64033 2.81963 4.0785 4.08197 3.60273 6.71643 2.81963 3.59993 4.62109 10.7359 + 3.36289 6.4175 7.62109 3.65645 5.10017 3.84196 8.16032 5.10017 4.62114 3.60276 7.6811 + 3.65647 3.60276 3.59993 5.10017 4.08192 3.60276 5.10017 3.59993 4.0785 3.65642 2.57567 + ] pdfxs + 325.799 158.401 m + (Wehavedevelopedaveryfastcontext-sensitivepointer) + [8.69858 8.03833 5.10017 4.38118 4.61612 8.03833 5.10017 4.0785 4.6162 4.0785 2.57567 + 4.62109 5.34009 4.0785 9.12016 8.58119 4.61615 4.07845 3.59993 8.81624 2.81965 4.62109 + 3.65647 7.50276 4.08192 4.62114 4.86033 3.60276 4.07845 4.85623 3.60276 3.06372 3.65647 + 4.07845 5.10017 3.65647 2.57562 3.60276 2.57567 4.61629 7.97855 5.34001 4.62114 2.57562 + 4.86033 3.60276 4.07845 3.59993 ] pdfxs + 316.799 147.901 m + (analysisalgorithmwecall\\DataStructureAnalysis"\(DSA\)) + [4.62109 5.10017 4.62109 2.57567 4.85621 3.65642 2.57567 5.6366 4.62109 2.57567 4.62109 + 4.62109 3.59993 2.57567 3.60273 5.10017 9.65586 6.4175 6.11842 4.08197 4.62109 2.57562 + 4.55549 4.62114 7.0198 4.62114 3.60276 6.66103 5.10017 3.60276 3.59993 5.10017 4.08192 + 3.60276 5.10017 3.59993 6.17864 6.90289 5.10017 4.62114 2.57562 4.85623 3.65647 2.57562 + 3.65647 6.60126 3.60276 7.01985 5.10017 6.90289 3.5865 ] pdfxs + 555.119 147.901 m + ([7]) + [2.57562 4.62114 2.57562 ] pdfxs + 316.799 137.462 m + (tocomputetheDSgraphsusedbypoolallocationand) + [3.60273 9.72101 4.08197 4.62109 7.67579 5.10017 5.10017 3.60273 9.17864 3.60273 5.10017 + 9.17857 7.0198 10.2602 4.62109 3.59993 4.62109 5.10017 5.10017 8.75646 5.10017 3.65647 + 4.07845 10.2 4.86033 9.95638 5.34001 4.86128 4.62114 7.67561 4.62114 2.57562 2.57562 + 4.86099 4.08192 4.62114 3.60276 2.57562 4.62114 10.14 4.62114 5.10017 5.10017 ] pdfxs + 316.799 127.022 m + (pointercompression.DSAanalyzesprogramsof100K-200K) + [5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 6.11992 4.08197 4.62109 7.67579 5.10017 + 3.59993 4.07848 3.65645 3.65645 2.57564 4.62112 5.10017 6.47581 7.01985 5.10017 9.48287 + 4.62114 5.10017 4.62109 2.57567 4.85619 4.08197 4.07845 6.11662 5.10017 3.59993 4.62114 + 4.62109 3.59993 4.62114 7.67525 6.17639 4.62114 5.27961 4.62114 4.62109 4.62114 7.13798 + 3.06372 4.62109 4.62114 4.62114 7.13798 ] pdfxs + 316.799 116.522 m + (linesofcodein1-3seconds,andtakesasmallfractionofthe) + [2.57567 2.57567 5.10017 4.07848 6.17637 4.62109 5.33979 4.08197 4.86094 5.10017 6.65865 + 2.57567 7.62016 4.62109 3.06375 7.14101 3.65645 4.07848 4.08197 4.62109 5.10017 5.10017 + 3.65647 5.21555 4.62114 5.10017 7.61999 3.60276 4.62114 4.61605 4.07845 6.17664 7.14096 + 3.65647 7.67525 4.62114 2.57562 4.97557 2.81965 3.59993 4.62109 4.08197 3.60276 2.57562 + 4.62114 7.61999 4.62114 5.33976 3.60276 5.10017 4.07845 ] pdfxs + 316.799 106.082 m + (time\(about5%orless\)takenby) + [3.60273 2.57567 7.67579 8.03849 3.60273 4.62109 5.34033 4.62109 5.10017 7.62257 4.62109 + 11.6359 4.62109 7.56001 2.57567 4.0785 3.65642 3.65642 7.56262 3.60276 4.62114 4.61605 + 4.07845 9.06002 4.86033 4.85623 ] pdfxs + 459.299 106.082 m + /N15 8.96638 Tf + (gcc-O3) + [4.6799 4.67995 9.47975 4.6799 4.67995 4.6799 ] pdfxs + 496.199 106.082 m + /N17 8.96638 Tf + (tocompilethe) + [3.60276 8.58119 4.08192 4.62114 7.67525 5.10017 2.57567 2.57562 8.09832 3.60276 5.10017 + 4.07845 ] pdfxs + 316.799 95.6415 m + (sameprograms.DSAdistinguishesheapobjectsbyentire) + [3.65645 4.62109 7.67579 7.79864 5.10017 3.59993 4.62109 4.62109 3.59993 4.62112 7.67576 + 3.65645 8.69565 7.0198 5.10017 10.6829 5.10017 2.57562 3.65647 3.60276 2.57567 5.10017 + 4.62109 5.10017 2.57567 3.65642 5.10017 4.0785 7.37629 5.10017 4.07845 4.62114 8.88024 + 4.62114 5.6403 2.81965 4.07845 4.08192 3.60276 7.37663 4.86033 8.63606 4.07845 4.86003 + 3.60276 2.57562 3.59993 4.0785 ] pdfxs + 316.799 85.1415 m + (acycliccallpaths,asdescribedabove.Forexample,infunc-) + [4.62109 4.08197 4.85621 4.08195 2.57567 2.57567 6.72188 4.08197 4.62109 2.57567 5.21565 + 5.10017 4.62109 3.60273 5.10017 3.65645 5.27581 4.62109 6.23659 5.10017 4.07845 3.65647 + 4.08197 3.59993 2.57562 5.34001 4.07845 7.86002 4.62114 5.34031 4.3812 4.61615 4.07845 + 6.47581 5.22152 4.62114 6.29982 4.07845 4.85623 4.62114 7.67525 5.10017 2.57567 4.07845 + 5.27571 2.57562 7.74011 2.81965 5.10017 5.10017 4.08192 3.07549 ] pdfxs + 316.799 74.7018 m + (tion) + [3.60273 2.57567 4.62109 5.10017 ] pdfxs + 336.719 74.7018 m + /N15 8.96638 Tf + (Testlists) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.67993 4.67995 ] pdfxs + 378.839 74.7018 m + /N17 8.96638 Tf + (,thispropertyenablesDSAtodistinguish) + [7.1355 3.60273 5.10017 2.57567 7.67659 5.10017 3.59993 4.62114 5.34031 4.07845 3.59993 + 3.36262 8.93606 4.07845 5.10017 4.62114 5.10017 2.57562 4.0785 7.7966 7.01985 5.10017 + 10.9829 3.60276 8.64096 5.10017 2.57562 3.65647 3.60276 2.57567 5.10017 4.62109 5.10017 + 2.57567 3.65642 5.10017 ] pdfxs + Q + Q + PDFVars/TermAll get exec end end + userdict /pgsave get restore + showpage + %%PageTrailer + %%EndPage + %%Page: 3 3 + %%BeginPageSetup + userdict /pgsave save put + PDFVars begin PDF begin PDFVars/InitAll get exec + 0 0 612 792 true PDF begin PDFVars begin AS end end + %%EndPageSetup + 0 0 612 792 re + W + n + q + 0.0999908 0 0 0.0999908 0 0 cm + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 78.1199 717.42 m + /N39 6.97377 Tf + (structlist{intX;list*Next;};) + [3.71825 3.71824 3.71825 3.71825 3.71825 7.31813 3.71825 3.71826 3.71825 7.37805 7.37829 + 3.71825 3.71826 7.37813 3.71825 7.37821 3.71825 3.71826 3.71825 7.37805 3.71825 3.71826 + 3.71825 3.71825 3.71826 7.31813 3.71825 3.71825 ] pdfxs + 78.1199 701.46 m + (list*MakeList\(intN\){) + [3.71825 3.71824 3.71825 7.37805 3.71825 3.71825 3.71825 3.71825 3.71826 3.71825 3.71826 + 3.71825 3.71825 3.71826 3.71825 3.71825 7.19807 3.71825 7.37821 3.71825 ] pdfxs + 85.4999 693.48 m + (list*Result=0;) + [3.71825 3.71824 3.71825 7.37805 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 7.31806 + 7.37829 3.71825 3.71826 ] pdfxs + 85.4999 685.56 m + (for\(inti=0;i!=N;++i\){) + [3.71825 3.71824 7.37813 3.71825 3.71826 3.71825 7.37805 7.37829 7.43805 3.71825 7.37821 + 7.43805 3.71825 7.37821 3.71825 7.37821 3.71825 3.71826 3.71825 7.37805 3.71825 ] pdfxs + 92.9397 677.58 m + (list*Node=) + [3.71825 3.71824 3.71825 7.31829 3.71825 3.71826 3.71825 3.71825 7.37837 3.71825 ] pdfxs + 104.04 669.6 m + (malloc\(sizeof\(list\)\);) + [3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 + 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 3.71826 ] pdfxs + 92.9397 661.62 m + (Node->Next=Result;) + [3.71825 3.71824 3.71825 3.71825 3.71826 3.71825 3.71826 3.71825 3.71825 7.25806 7.37829 + 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 3.71826 ] pdfxs + 92.9397 653.641 m + (Node->X=i+'A';) + [3.71825 3.71824 3.71825 3.71825 3.71826 3.71825 7.31806 7.37829 3.71825 3.71826 3.71825 + 3.71825 3.71826 3.71825 ] pdfxs + 92.9397 645.661 m + (Result=Node;}) + [3.71825 3.71824 3.71825 3.71825 3.71826 7.31813 7.37829 3.71825 3.71826 3.71825 3.71825 + 14.7579 3.71825 ] pdfxs + 85.4999 637.74 m + (returnResult;}) + [3.71825 3.71824 3.71825 3.71825 3.71825 7.31813 3.71825 3.71826 3.71825 3.71825 3.71826 + 3.71825 11.0383 3.71825 ] pdfxs + 78.1199 621.781 m + (intLength\(list*L\){) + [3.71825 3.71824 7.37813 3.71825 3.71824 3.71825 3.71825 3.71826 3.71825 3.71826 3.71825 + 3.71825 3.71826 7.25836 3.71825 3.71826 7.37813 3.71825 ] pdfxs + 85.4999 613.801 m + (if\(L==0\)return0;) + [3.71825 7.43835 3.71825 7.3782 3.71825 7.37821 3.71825 7.37821 3.71825 3.71826 3.71825 + 3.71825 3.71826 7.31813 3.71825 3.71826 ] pdfxs + 85.4999 605.821 m + (returnLength\(L->Next\)+1;) + [3.71825 3.71824 3.71825 3.71825 3.71825 7.31813 3.71825 3.71826 3.71825 3.71825 3.71826 + 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 3.71825 3.71826 + 3.71825 3.71825 ] pdfxs + 78.1199 597.841 m + (}) show + 78.1199 581.941 m + (intTestlists\(\){) + [3.71825 3.71824 7.37813 3.71825 3.71824 3.71825 3.71825 3.71826 3.71825 3.71826 3.71825 + 3.71825 3.71826 7.25836 3.71825 ] pdfxs + 85.4999 573.961 m + (list*A=MakeList\(100\);) + [3.71825 3.71824 3.71825 7.37805 3.71825 7.37821 7.43805 3.71825 3.71826 3.71825 3.71825 + 3.71826 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 ] pdfxs + 85.4999 565.981 m + (list*B=MakeList\(20\);) + [3.71825 3.71824 3.71825 7.37805 3.71825 7.37821 7.43805 3.71825 3.71826 3.71825 3.71825 + 3.71826 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 3.71825 3.71826 ] pdfxs + 85.4999 558.001 m + (intSum=Length\(A\)+Length\(B\);) + [3.71825 3.71824 7.37813 3.71825 3.71826 7.37813 7.43805 3.71825 3.71826 3.71825 3.71825 + 3.71826 3.71825 3.71826 3.71825 7.25813 7.43805 3.71825 3.71826 3.71825 3.71825 3.71826 + 3.71825 3.71826 3.71825 3.71825 3.71826 ] pdfxs + 85.4999 550.021 m + (\(\(char*\)B\)[5]='c';//nottypesafe!) + [3.71825 3.71824 3.71825 3.71825 3.71825 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 + 3.71825 7.25822 7.37829 3.71825 3.71826 3.71825 7.37805 3.71825 7.37821 3.71825 3.71826 + 7.37813 3.71825 3.71826 3.71825 7.37805 3.71825 3.71825 3.71827 3.71825 3.71825 ] pdfxs + 85.4999 542.101 m + (returnSum;}) + [3.71825 3.71824 3.71825 3.71825 3.71825 7.31813 3.71825 3.71826 3.71825 7.37805 3.71825 + ] pdfxs + 126.3 526.261 m + /N17 8.96638 Tf + (\(a\)Original) + [3.60275 4.62111 6.60275 7.13659 3.59993 2.57564 4.62112 2.57564 5.10016 4.62112 2.57564 + ] pdfxs + Q + q + n + 2551.8 6702 m + 3514.41 6702 l + 3514.41 7242 l + 2551.8 7242 l + h + W + n + 3.91295 w + 1 M + n + 2903.97 6768.52 m + 3072.23 6768.52 l + [/DeviceRGB] cs 0 0 0 sc + + S + n + 3072.23 6768.52 m + 3095.71 6768.52 3123.1 6788.09 3123.1 6811.56 c + S + n + 3123.1 6811.56 m + 3123.1 6874.17 l + S + n + 3123.1 6874.17 m + 3123.1 6897.65 3095.71 6925.04 3072.23 6925.04 c + S + n + 3072.23 6925.04 m + 2903.97 6925.04 l + S + n + 2903.97 6925.04 m + 2880.49 6925.04 2857.01 6901.56 2857.01 6878.09 c + S + n + 2857.01 6878.09 m + 2857.01 6815.48 l + S + n + 2857.01 6815.48 m + 2857.01 6792 2880.49 6768.52 2903.97 6768.52 c + S + q + 10 0 0 10 0 0 cm + 289.798 686.634 m + /N10 5.47821 Tf + (list: HM) + [1.52294 1.52294 2.13098 1.52294 1.52294 1.36955 3.95518 4.87009 ] pdfxs + Q + n + 2857.01 6846.78 m + 3123.1 6846.78 l + S + q + 10 0 0 10 0 0 cm + Q + n + 2990.05 6768.52 m + 2990.05 6846.78 l + S + q + 10 0 0 10 0 0 cm + Q + n + 3091.79 6768.52 m + 3119.18 6737.21 3162.23 6705.91 3193.53 6733.3 c + 3263.97 6803.73 3263.97 6885.91 3193.53 6960.26 c + 3162.23 6987.65 3127.01 6975.91 3091.79 6948.52 c + S + n + 3095.71 6940.69 m + 3060.49 6925.04 l + 3087.88 6956.34 l + f + n + 2806.14 7136.34 m + 2806.14 7175.24 2750.08 7206.78 2680.92 7206.78 c + 2611.77 7206.78 2555.7 7175.24 2555.7 7136.34 c + 2555.7 7097.45 2611.77 7065.91 2680.92 7065.91 c + 2750.08 7065.91 2806.14 7097.45 2806.14 7136.34 c + S + q + 10 0 0 10 0 0 cm + 261.092 711.678 m + /N10 5.47821 Tf + (Result) + [3.65392 2.43224 2.13098 2.73911 1.52294 1.52294 ] pdfxs + Q + n + 2759.18 7062 m + 2798.32 7030.69 2841.36 6987.65 2880.49 6952.43 c + 0.630798 0.630798 0.630798 sc + S + n + 2767.01 7065.91 m + 2755.27 7054.17 l + S + n + 2888.32 6960.26 m + 2907.88 6925.04 l + 2872.66 6944.61 l + f + n + 3103.53 7136.34 m + 3103.53 7175.24 3052.72 7206.78 2990.05 7206.78 c + 2927.39 7206.78 2876.58 7175.24 2876.58 7136.34 c + 2876.58 7097.45 2927.39 7065.91 2990.05 7065.91 c + 3052.72 7065.91 3103.53 7097.45 3103.53 7136.34 c + 0 0 0 sc + S + q + 10 0 0 10 0 0 cm + 293.073 711.678 m + /N10 5.47821 Tf + (Node) + [3.95518 2.73911 2.73911 2.43224 ] pdfxs + Q + n + 2990.05 7046.34 m + 2990.05 7018.95 2990.05 6991.56 2990.05 6960.26 c + 0.630798 0.630798 0.630798 sc + S + n + 3001.79 7046.34 m + 2982.23 7046.34 l + S + n + 3001.79 6964.17 m + 2990.05 6925.04 l + 2982.23 6964.17 l + f + n + 3510.49 7136.34 m + 3510.49 7175.24 3435.15 7206.78 3342.23 7206.78 c + 3249.3 7206.78 3173.96 7175.24 3173.96 7136.34 c + 3173.96 7097.45 3249.3 7065.91 3342.23 7065.91 c + 3435.15 7065.91 3510.49 7097.45 3510.49 7136.34 c + 0 0 0 sc + S + q + 10 0 0 10 0 0 cm + 324.182 711.678 m + /N10 5.47821 Tf + (returning) + [1.8242 2.43224 1.52294 2.73911 1.8242 2.73911 1.52294 2.73911 2.73911 ] pdfxs + Q + n + 3252.23 7062 m + 3209.18 7030.69 3162.23 6987.65 3115.27 6948.52 c + 0.630798 0.630798 0.630798 sc + S + n + 3256.14 7054.17 m + 3244.4 7065.91 l + S + n + 3123.1 6944.61 m + 3087.88 6925.04 l + 3111.36 6956.34 l + f + Q + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 241.02 659.7 m + /N17 8.96638 Tf + (\(b\)BUDSgraphforMake) + [3.60273 5.10017 6.66288 6.54066 9.9629 7.0198 8.22002 4.62109 3.59993 4.62109 5.10017 + 8.16017 2.81963 4.62109 6.65993 8.46031 4.62109 4.6162 4.0785 ] pdfxs + (L) show + (ist) + [2.57567 3.65645 3.60273 ] pdfxs + Q + q + n + 2853 6024.6 m + 3213 6024.6 l + 3213 6564.6 l + 2853 6564.6 l + h + W + n + 3.91295 w + 1 M + n + 2899.95 6091.12 m + 3021.25 6091.12 l + [/DeviceRGB] cs 0 0 0 sc + + S + n + 3021.25 6091.12 m + 3040.82 6091.12 3068.21 6110.68 3068.21 6134.16 c + S + n + 3068.21 6134.16 m + 3068.21 6196.77 l + S + n + 3068.21 6196.77 m + 3068.21 6220.25 3044.73 6247.64 3021.25 6247.64 c + S + n + 3021.25 6247.64 m + 2899.95 6247.64 l + S + n + 2899.95 6247.64 m + 2880.38 6247.64 2856.91 6224.16 2856.91 6200.68 c + S + n + 2856.91 6200.68 m + 2856.91 6138.07 l + S + n + 2856.91 6138.07 m + 2856.91 6114.59 2876.47 6091.12 2899.95 6091.12 c + S + q + 10 0 0 10 0 0 cm + 289.633 618.894 m + /N10 5.47821 Tf + (list: R) + [1.52294 1.52294 2.13098 1.52294 1.52294 1.36955 3.65392 ] pdfxs + Q + n + 2856.91 6169.38 m + 3068.21 6169.38 l + S + q + 10 0 0 10 0 0 cm + Q + n + 2962.56 6091.12 m + 2962.56 6169.38 l + S + q + 10 0 0 10 0 0 cm + Q + n + 3044.73 6091.12 m + 3072.12 6059.81 3111.25 6028.51 3138.64 6055.9 c + 3209.08 6126.33 3209.08 6208.51 3138.64 6282.86 c + 3111.25 6306.33 3083.86 6298.51 3052.56 6275.03 c + S + n + 3060.38 6267.2 m + 3025.17 6247.64 l + 3044.73 6282.86 l + f + n + 3068.21 6458.94 m + 3068.21 6497.84 3020.9 6529.38 2962.55 6529.38 c + 2904.21 6529.38 2856.9 6497.84 2856.9 6458.94 c + 2856.9 6420.04 2904.21 6388.51 2962.55 6388.51 c + 3020.9 6388.51 3068.21 6420.04 3068.21 6458.94 c + S + q + 10 0 0 10 0 0 cm + 294.582 643.938 m + /N10 5.47821 Tf + (L) show + Q + n + 2962.56 6368.94 m + 2962.56 6341.55 2962.56 6314.16 2962.56 6282.86 c + 0.630798 0.630798 0.630798 sc + S + n + 2974.3 6368.94 m + 2954.73 6368.94 l + S + n + 2974.3 6286.77 m + 2962.56 6247.64 l + 2954.73 6286.77 l + f + Q + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 246 592.02 m + /N17 8.96638 Tf + (\(c\)BUDSgraphfor) + [3.60273 4.08197 6.66257 6.54066 9.9629 7.0198 8.22002 4.62109 3.59993 4.62109 5.10017 + 8.22033 2.81963 4.62109 6.65993 ] pdfxs + (L) show + (ength) + [4.07848 5.10017 4.62112 3.60273 5.10015 ] pdfxs + Q + q + n + 2556 5347.8 m + 3510.24 5347.8 l + 3510.24 5887.8 l + 2556 5887.8 l + h + W + n + 3.69856 w + 1 M + n + 2600.38 5440.26 m + 2807.5 5440.26 l + [/DeviceRGB] cs 0 0 0 sc + + S + n + 2807.5 5440.26 m + 2833.39 5440.26 2855.58 5458.75 2855.58 5480.95 c + S + n + 2855.58 5480.95 m + 2855.58 5540.12 l + S + n + 2855.58 5540.12 m + 2855.58 5562.31 2833.39 5588.2 2811.2 5588.2 c + S + n + 2811.2 5588.2 m + 2604.07 5588.2 l + S + n + 2604.07 5588.2 m + 2578.18 5588.2 2559.69 5566.01 2559.69 5543.82 c + S + n + 2559.69 5543.82 m + 2559.69 5484.64 l + S + n + 2559.69 5484.64 m + 2559.69 5462.45 2578.18 5440.26 2600.38 5440.26 c + S + q + 10 0 0 10 0 0 cm + 260.333 553.273 m + /N10 5.17805 Tf + (list: HMR) + [1.4395 1.4395 2.01422 1.4395 1.4395 1.29451 3.73848 4.60325 3.45372 ] pdfxs + Q + n + 2559.69 5514.23 m + 2855.58 5514.23 l + S + q + 10 0 0 10 0 0 cm + Q + n + 2707.64 5440.26 m + 2707.64 5514.23 l + S + q + 10 0 0 10 0 0 cm + Q + n + 2814.9 5440.26 m + 2848.18 5410.67 2892.57 5377.38 2922.16 5406.97 c + 2988.73 5473.55 2988.73 5551.22 2922.16 5621.49 c + 2888.87 5654.78 2848.18 5639.98 2807.5 5610.39 c + S + n + 2811.2 5603 m + 2777.91 5588.2 l + 2803.8 5617.79 l + f + n + 2807.5 5787.93 m + 2807.5 5824.7 2762.79 5854.5 2707.63 5854.5 c + 2652.48 5854.5 2607.77 5824.7 2607.77 5787.93 c + 2607.77 5751.16 2652.48 5721.36 2707.63 5721.36 c + 2762.79 5721.36 2807.5 5751.16 2807.5 5787.93 c + S + q + 10 0 0 10 0 0 cm + 268.895 576.944 m + /N10 5.17805 Tf + (A) show + Q + n + 2707.64 5702.86 m + 2707.64 5676.97 2707.64 5651.08 2707.64 5621.49 c + 0.630798 0.630798 0.630798 sc + S + n + 2718.73 5702.86 m + 2700.24 5702.86 l + S + n + 2718.73 5625.19 m + 2707.64 5588.2 l + 2700.24 5625.19 l + f + n + 3029.42 5440.26 m + 3329.01 5440.26 l + 0 0 0 sc + S + n + 3329.01 5440.26 m + 3351.2 5440.26 3377.09 5458.75 3377.09 5480.95 c + S + n + 3377.09 5480.95 m + 3377.09 5540.12 l + S + n + 3377.09 5540.12 m + 3377.09 5562.31 3354.9 5588.2 3332.7 5588.2 c + S + n + 3332.7 5588.2 m + 3033.12 5588.2 l + S + n + 3033.12 5588.2 m + 3010.93 5588.2 2988.73 5566.01 2988.73 5543.82 c + S + n + 2988.73 5543.82 m + 2988.73 5484.64 l + S + n + 2988.73 5484.64 m + 2988.73 5462.45 3007.23 5440.26 3029.42 5440.26 c + S + q + 10 0 0 10 0 0 cm + 304.515 553.273 m + /N10 5.17805 Tf + (byte: AHMR) + [2.58903 2.58903 1.4395 2.29898 1.4395 1.29451 3.73848 3.73848 4.60325 3.45372 ] pdfxs + Q + n + 2988.73 5514.23 m + 3377.09 5514.23 l + S + q + 10 0 0 10 0 0 cm + Q + n + 3229.14 5440.26 m + 3288.32 5399.57 3384.48 5351.49 3439.96 5406.97 c + 3506.54 5473.55 3506.54 5551.22 3439.96 5621.49 c + 3399.28 5662.18 3340.1 5643.68 3292.02 5610.39 c + S + n + 3295.72 5603 m + 3262.43 5588.2 l + 3288.32 5617.79 l + f + n + 3280.92 5787.93 m + 3280.92 5824.7 3236.21 5854.5 3181.06 5854.5 c + 3125.91 5854.5 3081.2 5824.7 3081.2 5787.93 c + 3081.2 5751.16 3125.91 5721.36 3181.06 5721.36 c + 3236.21 5721.36 3280.92 5751.16 3280.92 5787.93 c + S + q + 10 0 0 10 0 0 cm + 316.379 576.944 m + /N10 5.17805 Tf + (B) show + Q + n + 3181.06 5702.86 m + 3181.06 5676.97 3181.06 5651.08 3181.06 5621.49 c + 0.630798 0.630798 0.630798 sc + S + n + 3192.16 5702.86 m + 3173.66 5702.86 l + S + n + 3192.16 5625.19 m + 3181.06 5588.2 l + 3173.66 5625.19 l + f + Q + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 243.06 524.34 m + /N17 8.96638 Tf + (\(d\)BUDSgraphforTestlists) + [3.60273 5.10017 6.66288 6.54066 9.9629 7.0198 8.22002 4.62109 3.59993 4.62109 5.10017 + 8.22033 2.81963 4.62109 6.65993 5.87766 4.0785 3.65642 3.60273 2.57567 2.57567 3.65645 + 3.60271 3.65645 ] pdfxs + 384.54 733.38 m + /N39 6.97377 Tf + (structlist{intX;list*Next;};) + [3.71825 3.71825 3.71827 3.71825 3.71825 7.31813 3.71825 3.7182 3.71825 7.37802 7.37826 + 3.71825 3.7182 7.37811 3.71825 7.43832 3.71825 3.7182 3.71825 7.31825 3.71825 3.7182 + 3.71825 3.7182 3.71825 7.37826 3.71825 3.7182 ] pdfxs + 384.54 717.42 m + (list*MakeList\(Pool*PD,intN\){) + [3.71825 3.71825 3.71827 7.37804 3.71825 3.71825 3.71825 3.7182 3.71825 3.71825 3.7182 + 3.71825 3.7182 3.71825 3.7182 3.71825 3.71825 7.19833 3.71825 3.7182 3.71825 7.37802 + 3.71825 3.7182 7.37811 3.71825 7.37816 3.71825 ] pdfxs + 391.92 709.44 m + (list*Result=0;) + [3.71825 3.71825 3.71827 7.37804 3.71825 3.7182 3.71825 3.7182 3.71825 3.71825 7.31801 + 7.43803 3.71825 3.7182 ] pdfxs + 391.92 701.46 m + (for\(inti=0;i!=N;++i\){) + [3.71825 3.71825 7.37814 3.71825 3.7182 3.71825 7.37802 7.43803 7.37826 3.71825 7.37816 + 7.43803 3.71825 7.37816 3.71825 7.37816 3.71825 3.7182 3.71825 7.37802 3.71825 ] pdfxs + 399.36 693.48 m + (list*Node=) + [3.71825 3.71825 3.71825 7.37802 3.71825 3.7182 3.71825 3.7182 7.3182 3.71825 ] pdfxs + 410.46 685.56 m + (poolalloc\(PD,sizeof\(list\)\);) + [3.71825 3.7182 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 3.7182 3.71825 3.7182 + 3.71825 7.25819 3.71825 3.7182 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 3.7182 + 3.71825 3.7182 3.71825 3.71825 3.7182 ] pdfxs + 399.36 677.58 m + (Node->Next=Result;) + [3.71825 3.71825 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 3.7182 7.25805 7.43803 + 3.71825 3.7182 3.71825 3.7182 3.71825 3.71825 3.7182 ] pdfxs + 399.36 669.601 m + (Node->X=i+'A';) + [3.71825 3.71825 3.71825 3.7182 3.71825 3.71825 7.31801 7.37826 3.71825 3.7182 3.71825 + 3.7182 3.71825 3.71825 ] pdfxs + 399.36 661.621 m + (Result=Node;}) + [3.71825 3.71825 3.71825 3.7182 3.71825 7.31811 7.43803 3.71825 3.7182 3.71825 3.7182 + 14.7579 3.71825 ] pdfxs + 391.92 653.641 m + (returnResult;}) + [3.71825 3.71825 3.71827 3.71825 3.71825 7.37826 3.71825 3.7182 3.71825 3.7182 3.71825 + 3.71825 10.9781 3.71825 ] pdfxs + 384.54 637.741 m + (intLength\(list*L\){) + [3.71825 3.71825 7.37814 3.71825 3.71825 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 + 3.7182 3.71825 7.25834 3.71825 3.7182 7.37811 3.71825 ] pdfxs + 391.92 629.761 m + (if\(L==0\)return0;) + [3.71825 7.43837 3.71825 7.37821 3.71825 7.37816 3.71825 7.37816 3.71825 3.7182 3.71825 + 3.7182 3.71825 7.37826 3.71825 3.7182 ] pdfxs + 391.92 621.782 m + (returnLength\(L->Next\)+1;) + [3.71825 3.71825 3.71827 3.71825 3.71825 7.37826 3.71825 3.7182 3.71825 3.7182 3.71825 + 3.71825 3.7182 3.71825 3.7182 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 3.7182 + 3.71825 3.71825 ] pdfxs + 384.54 613.802 m + (}) show + 384.54 597.842 m + (intTestlists\(\){) + [3.71825 3.71825 7.37814 3.71825 3.71825 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 + 3.7182 3.71825 7.25834 3.71825 ] pdfxs + 391.92 589.922 m + (PoolP1,P2;) + [3.71825 3.71825 3.71827 7.37804 3.71825 3.7182 7.37811 3.71825 3.7182 3.71825 ] pdfxs + 391.92 581.942 m + (poolinit\(&P1,sizeof\(list\)\);) + [3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.7182 3.71825 3.7182 3.71825 3.7182 + 3.71825 7.25819 3.71825 3.7182 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 3.7182 + 3.71825 3.7182 3.71825 3.71825 3.7182 ] pdfxs + 391.92 573.962 m + (poolinit\(&P2,0/*nosizehintknown*/\);) + [3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.7182 3.71825 3.7182 3.71825 3.7182 + 3.71825 7.25819 7.37826 3.71825 3.7182 3.71825 7.37802 3.71825 3.7182 3.71825 7.37802 + 3.71825 3.7182 3.71825 7.37802 3.71825 3.7182 3.71825 3.7182 3.71825 3.71825 3.7182 + 3.71825 3.7182 ] pdfxs + 391.92 565.982 m + (list*A=MakeList\(&P1,100\);) + [3.71825 3.71825 3.71827 7.37804 3.71825 7.37816 7.43803 3.71825 3.7182 3.71825 3.7182 + 3.71825 3.71825 3.7182 3.71825 3.7182 3.71825 3.7182 3.71825 7.19804 3.71825 3.7182 + 3.71825 3.7182 3.71825 ] pdfxs + 391.92 558.002 m + (list*B=MakeList\(&P2,20\);) + [3.71825 3.71825 3.71827 7.37804 3.71825 7.37816 7.43803 3.71825 3.7182 3.71825 3.7182 + 3.71825 3.71825 3.7182 3.71825 3.7182 3.71825 3.7182 3.71825 7.19804 3.71825 3.7182 + 3.71825 3.7182 ] pdfxs + 391.92 550.022 m + (intSum=Length\(A\)+Length\(B\);) + [3.71825 3.71825 7.37814 3.71825 3.7182 7.37811 7.43803 3.71825 3.7182 3.71825 3.7182 + 3.71825 3.71825 3.7182 3.71825 7.2581 7.43803 3.71825 3.7182 3.71825 3.7182 3.71825 + 3.71825 3.7182 3.71825 3.7182 3.71825 ] pdfxs + 391.92 542.102 m + (\(\(char*\)B\)[5]='c';) + [3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.7182 3.71825 3.7182 3.71825 3.7182 + 3.71825 7.25819 7.37826 3.71825 3.7182 3.71825 3.7182 ] pdfxs + 391.92 534.122 m + (pooldestroy\(&P1\);pooldestroy\(&P2\);) + [3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.7182 3.71825 3.7182 3.71825 3.7182 + 3.71825 3.71825 3.7182 3.71825 3.7182 7.19814 3.71825 3.7182 3.71825 3.7182 3.71825 + 3.71825 3.7182 3.71825 3.7182 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 3.7182 + 3.71825 ] pdfxs + 391.92 526.142 m + (returnSum;}) + [3.71825 3.71825 3.71827 3.71825 3.71825 7.37826 3.71825 3.7182 3.71825 7.31825 3.71825 + ] pdfxs + 406.02 510.302 m + /N17 8.96638 Tf + (\(e\)AfterPoolAllocation) + [3.60276 4.07845 6.66261 6.90289 2.81965 3.60276 4.07845 6.71985 6.05681 4.86128 4.62114 + 5.57562 6.90289 2.57562 2.57567 4.86104 4.08192 4.62114 3.60276 2.57562 4.62114 5.10017 + ] pdfxs + 220.44 501.302 m + /N23 8.96638 Tf + (Figure4:Simplelinkedlistex) + [6.66309 2.94267 5.28303 5.87642 4.37907 8.46026 5.28303 7.68282 5.87644 2.94267 8.81908 + 5.87644 2.94267 8.46019 2.94267 2.94269 5.87644 5.28407 4.86027 9.53642 2.94267 2.94269 + 4.2022 7.61847 4.86027 5.58422 ] pdfxs + (a) show + (mple) + [8.81908 5.87644 2.94267 4.86027 ] pdfxs + 53.82 482.163 m + /N17 8.96638 Tf + (theobjectsinthelists) + [3.60274 5.10016 8.33833 4.62111 5.64031 2.81964 4.07849 4.08196 3.60274 7.85628 2.57565 + 9.35999 3.60275 5.10016 8.33833 2.57565 2.57564 3.65645 3.60275 3.65645 ] pdfxs + 152.76 482.163 m + /N31 8.96638 Tf + (A) show + 163.86 482.163 m + /N17 8.96638 Tf + (and) + [4.62111 5.10016 5.10016 ] pdfxs + 182.999 482.163 m + /N31 8.96638 Tf + (B) show + 194.639 482.163 m + /N17 8.96638 Tf + (\(andprovethelistsare) + [3.60275 4.62111 5.10017 9.36024 5.10017 3.59993 4.38118 4.61612 8.33833 3.60273 5.10017 + 8.33833 2.57567 2.57567 3.65642 3.60273 7.79636 4.62109 3.59993 4.0785 ] pdfxs + 53.8201 471.722 m + (disjoint\),eventhoughtheyarecreatedandmanipulatedby) + [5.10016 2.57565 3.65644 2.81964 4.62111 2.57565 4.86008 3.60274 3.60274 5.39564 4.07849 + 4.61621 4.0785 8.04007 3.60275 5.10016 4.62111 5.10016 4.62112 7.98007 3.60275 5.10016 + 4.07849 7.79629 4.62111 3.59993 6.95858 4.08197 3.59993 4.07849 4.62111 3.60275 4.0785 + 8.04016 4.62109 5.10017 8.04033 7.67579 4.62109 5.10017 2.57567 5.10017 5.10017 2.57564 + 4.62112 3.60273 4.07848 8.04018 4.86033 4.85621 ] pdfxs + 53.8201 461.222 m + (commonfunctions.Ifheapobjectswereinsteadnamedby) + [4.08196 4.62111 7.67578 7.67578 4.62111 8.52016 2.81964 5.10016 5.10016 4.08197 3.60275 + 2.57564 4.62112 5.10016 3.65645 7.73565 3.30019 6.29964 5.10016 4.0785 4.62111 8.58023 + 4.62111 5.64032 2.81964 4.0785 4.08197 3.60273 7.07661 6.4175 4.0785 3.59993 7.49857 + 2.57567 5.10017 3.65642 3.60273 4.0785 4.62109 8.5801 5.10017 4.62109 7.67579 4.0785 + 8.58031 4.86033 4.85621 ] pdfxs + 53.8201 450.783 m + (allocationsite,) + [4.62111 2.57565 2.57565 4.86096 4.08196 4.62111 3.60274 2.57565 4.62111 7.86031 3.65644 + 2.57565 3.60275 4.07849 2.57565 ] pdfxs + 115.2 450.783 m + /N31 8.96638 Tf + (A) show + 124.98 450.783 m + /N17 8.96638 Tf + (and) + [4.62111 5.10016 5.10016 ] pdfxs + 142.68 450.783 m + /N31 8.96638 Tf + (B) show + 152.94 450.783 m + /N17 8.96638 Tf + (wouldpointtoasinglenodeinthe) + [6.4175 4.62111 5.10016 2.57565 7.98023 5.34 4.62111 2.57565 4.86031 6.48282 3.60273 + 7.44094 7.50109 3.65645 2.57564 5.10017 4.62112 2.57564 6.89835 5.10017 4.86126 5.10017 + 7.01842 2.57567 7.92016 3.60273 5.10017 4.0785 ] pdfxs + 53.8201 440.283 m + (graphandobjectsofthetwolistswouldnotbedistinguish-) + [4.62111 3.59993 4.62111 5.10016 7.98007 4.62111 5.10016 8.04031 4.62111 5.64032 2.81964 + 4.0785 4.08197 3.60273 6.47661 4.62111 5.69957 3.60275 5.10016 7.01842 3.3629 6.4175 + 7.44095 2.57565 2.57564 3.65645 3.60275 6.4163 6.4175 4.62111 5.10017 2.57567 7.98025 + 5.10017 4.62109 6.48273 5.34001 7.0785 5.10017 2.57567 3.65642 3.60273 2.57567 5.10017 + 4.62109 5.10017 2.57567 3.65645 5.10017 3.06372 ] pdfxs + 53.8201 429.843 m + (able.) + [4.62111 5.10016 2.57565 4.07849 2.57565 ] pdfxs + 62.7603 419.403 m + (AsecondfeatureofDSAisthat,likemanyothercontext-) + [9.60289 3.65644 4.07849 4.08196 4.62111 5.10016 7.8 2.81964 4.0785 4.62111 3.60275 + 5.10016 3.59993 6.7785 4.62111 5.51948 7.01981 5.10016 9.60281 2.57565 6.29652 3.60275 + 5.10016 4.62111 3.60275 5.27565 2.57565 2.57564 4.61629 6.71842 7.67579 4.62109 4.86033 + 7.55635 4.62109 3.60273 5.10017 4.0785 6.29992 4.08197 4.62109 4.86033 3.60273 4.0785 + 4.85619 3.60273 3.06375 ] pdfxs + 53.8201 408.903 m + (sensitivepointeranalyses,e.g.,[5,4,11,13],itactuall) + [3.65644 4.07849 5.10016 3.65645 2.57565 3.60274 2.57565 4.61629 8.57856 5.34 4.62111 + 2.57565 4.86031 3.60275 4.0785 8.21991 4.62111 5.10016 4.62112 2.57564 4.85621 3.65646 + 4.07849 3.65645 7.49572 4.0785 2.57564 4.62112 2.57564 7.13564 2.57565 4.62111 7.49564 + 4.62109 7.49558 4.62109 4.62109 7.49551 4.62109 4.62109 2.57567 7.49558 2.57567 8.16257 + 4.62109 4.08197 3.60273 5.10017 4.62109 2.57567 2.55545 ] pdfxs + 288.06 408.903 m + (y) show + 53.8201 398.463 m + (computestwopoints-tographsforeachfunctioninapro-) + [4.08196 4.62111 7.67578 5.10016 5.10016 3.60274 4.07849 7.43644 3.3629 6.4175 8.28119 + 5.34 4.62111 2.57565 4.86031 3.60275 3.65645 3.06372 3.60275 8.34126 4.62111 3.59993 + 4.62112 5.10016 5.10016 7.43652 2.81964 4.62112 7.32007 4.0785 4.62109 3.84181 8.88024 + 2.81963 5.10017 5.10017 4.08197 3.60273 2.57567 4.62109 8.88024 2.57567 8.88032 8.34094 + 5.10017 3.59993 4.62109 3.06375 ] pdfxs + 53.8201 388.024 m + (gram-abottom-up\(BU\)graphrepresentingafunctionand) + [4.62111 3.59993 4.62111 10.1956 5.64356 7.14095 5.34 4.62111 3.60273 3.60275 4.62112 + 7.67576 3.06372 5.10016 7.68032 3.60275 6.54066 6.90289 6.18266 4.62111 3.59993 4.62112 + 5.10016 7.62031 3.59993 4.0785 5.10015 3.59993 4.0785 3.65645 4.0785 4.86033 3.60273 + 2.57567 5.10017 7.26093 7.14094 2.81963 5.10017 5.10017 4.08197 3.60273 2.57567 4.62109 + 7.68024 4.62109 5.10017 5.10017 ] pdfxs + 53.8201 377.524 m + (itscallees\(butnotanycallers\),anda\fnaltop-down\(TD\)) + [2.57565 3.60274 6.77659 4.08196 4.62111 2.57565 2.57565 4.07849 4.0785 6.8366 3.60274 + 5.10016 5.10016 6.78282 5.10016 4.62111 6.78275 4.62111 4.86024 8.03605 4.08197 4.62111 + 2.57565 2.57564 4.0785 3.59993 3.65645 3.60275 5.7558 4.62111 5.10016 8.28015 7.80109 + 5.10017 5.10017 4.62109 5.8155 3.60273 4.62109 5.10017 3.06375 5.10017 4.38125 6.65759 + 8.28 3.60273 6.65759 7.0198 3.60273 ] pdfxs + 53.8201 367.084 m + (graphrepresentingthee\013ectsofbothcalleesandcallers.) + [4.62111 3.59993 4.62111 5.10016 9.48008 3.59993 4.07849 5.10016 3.59993 4.07849 3.65645 + 4.0785 4.86031 3.60275 2.57565 5.10015 9.00119 3.60275 5.10016 8.51841 4.0785 5.40425 + 4.07849 4.08197 3.60275 8.03652 4.62111 7.1398 5.34 4.62111 3.60273 9.54032 4.08197 + 4.62109 2.57567 2.57567 4.07848 4.0785 7.97644 4.62109 5.10017 9.54032 4.08197 4.62109 + 2.57567 2.57567 4.07848 3.59993 3.65645 2.57567 ] pdfxs + 53.8201 356.644 m + (TheTDgraphisthe\fnalresultofthepointeranalysis.The) + [6.65758 5.10016 6.53849 6.65758 9.53981 4.62111 3.59993 4.62111 5.10017 7.56015 2.57565 + 6.05629 3.60275 5.10016 6.59849 5.10016 5.10016 4.62111 5.03581 3.59993 4.0785 3.65645 + 5.10016 2.57564 6.06283 4.62111 5.21949 3.60275 5.10016 6.59849 5.34001 4.62109 2.57567 + 4.86033 3.60273 4.0785 6.05977 4.62109 5.10017 4.62109 2.57567 4.85621 3.65642 2.57567 + 3.65645 6.3555 6.65759 5.10017 4.07848 ] pdfxs + 53.8201 346.144 m + (BUgraph,however,providesamoreprecisebasisforboth) + [6.54066 10.2629 4.62111 3.59993 4.62111 5.10016 5.10016 6.05565 5.10016 4.38119 6.4175 + 4.0785 4.61621 4.0785 3.59993 6.05548 5.10016 3.59993 4.38119 4.85621 2.57565 5.10016 + 4.07849 7.07645 7.98118 7.67578 4.62111 3.59993 7.4985 5.10017 3.59993 4.0785 4.08197 + 2.57564 3.65645 7.4985 5.10017 4.62109 3.65645 2.57567 7.0165 2.81963 4.62109 6.95993 + 5.34001 4.62109 3.60273 5.10017 ] pdfxs + 53.8201 335.704 m + (PoolAllocationandPointerCompressionbecausetwodis-) + [6.05683 4.86127 4.62111 5.9358 6.9029 2.57565 2.57565 4.86104 4.08196 4.62111 3.60275 + 2.57564 4.62112 8.52008 4.62111 5.10016 8.64031 6.05683 4.62111 2.57565 4.86031 3.60275 + 4.0785 7.01992 6.65758 4.62112 7.67576 5.10016 3.59993 4.0785 3.65645 3.65642 2.57567 + 4.62109 8.52025 5.34001 4.0785 4.08197 4.62109 5.10017 3.65642 7.61866 3.36289 6.4175 + 8.04093 5.10017 2.57567 3.65642 3.06375 ] pdfxs + 53.8201 325.264 m + (tinctpointerargumentsinafunctionmaybealiased\(point) + [3.60274 2.57565 5.10016 4.08196 6.48258 5.34 4.62111 2.57565 4.86031 3.60274 4.07849 + 6.53985 4.62111 3.59993 4.62112 5.10016 7.67576 4.0785 4.86031 3.60275 6.53629 2.57565 + 8.04007 7.5011 2.81964 5.10016 5.10016 4.08197 3.60275 2.57564 4.62112 8.04 7.67579 + 4.38125 7.73604 5.34001 7.01842 4.62109 2.57567 2.57567 4.62109 3.65645 4.07848 7.98009 + 3.60273 5.34001 4.62109 2.57567 4.86033 3.60273 ] pdfxs + 53.8201 314.764 m + (tothesameDSgraphnode\)inonecallingcontextbutnot) + [3.60274 7.80111 3.60274 5.10016 7.37857 3.65644 4.62111 7.67578 7.25841 7.01981 8.40008 + 4.62111 3.59993 4.62112 5.10016 8.34023 5.10016 4.86127 5.10016 4.0785 6.90282 2.57565 + 8.34007 4.62111 5.10016 7.31834 4.08197 4.62109 2.57567 2.57567 2.57564 5.10017 7.8611 + 4.08197 4.62109 4.86033 3.60273 4.0785 4.85619 6.78266 5.10017 5.10017 6.90273 5.10017 + 4.62109 3.60273 ] pdfxs + 53.8201 304.324 m + (inanother.UsingtheBUgraphallowsthetransformations) + [2.57565 8.10015 4.62111 5.10016 4.62111 3.60274 5.10016 4.07849 3.59993 6.7155 6.90289 + 3.65645 2.57565 5.10016 7.6211 3.60275 5.10016 7.13833 6.54066 9.96288 4.62111 3.59993 + 4.62112 5.10016 8.16015 4.62111 2.57565 2.57565 4.38126 6.65759 6.59658 3.60273 5.10017 + 7.1985 3.60273 3.59993 4.62109 5.10017 3.65645 2.81963 4.62109 3.59993 7.67579 4.62109 + 3.60273 2.57567 4.62109 5.10017 3.65645 ] pdfxs + 53.8201 293.884 m + (todistinguish\(andtherefore\)segregateobjectsinthelat) + [3.60274 7.26126 5.10016 2.57565 3.65644 3.60274 2.57565 5.10016 4.62111 5.10016 2.57565 + 3.65645 7.80024 3.60275 4.62111 5.10016 7.80008 3.60275 5.10016 4.07849 3.59993 4.0785 + 2.81964 4.62112 3.59993 4.07849 6.36259 3.65645 4.0785 4.62111 3.59993 4.0785 4.62111 + 4.62111 3.60276 6.77865 4.62109 5.64033 2.81963 4.0785 4.08197 3.60273 6.35628 2.57567 + 7.80024 3.60273 5.10017 6.77858 2.57567 4.62109 3.5865 ] pdfxs + 281.64 293.884 m + (ter) + [3.60273 4.0785 3.59993 ] pdfxs + 53.8201 283.384 m + (case.Therefore,pointercompressionoperateslargelyusi) + [4.08196 4.62111 3.65644 4.07849 6.77557 6.65758 5.10016 4.07849 3.59993 4.07849 2.81965 + 4.62111 3.59993 4.07849 5.75565 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 6.71992 + 4.08197 4.62111 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 2.57565 4.62111 8.22016 + 4.62109 5.34033 4.0785 3.59993 4.62109 3.60273 4.0785 6.77659 2.57567 4.62109 3.59993 + 4.62109 4.0785 2.57567 7.91619 5.10017 3.65645 2.55545 ] pdfxs + 283.2 283.384 m + (ng) + [5.10017 4.62112 ] pdfxs + 53.8201 272.944 m + (theBUgraph,exceptwherenoted,andpoolallocationonly) + [3.60274 5.10016 6.71841 6.54066 9.60274 4.62111 3.59993 4.62111 5.10017 5.10016 5.33572 + 4.0785 4.85621 4.08196 4.0785 5.10016 6.30274 6.65758 5.10016 4.0785 3.59993 6.77841 + 5.10016 4.62111 3.60275 4.0785 5.10016 5.33549 4.62111 5.10017 7.80009 5.34001 4.86126 + 4.62109 5.27567 4.62109 2.57567 2.57567 4.86094 4.08197 4.62109 3.60273 2.57567 4.62109 + 7.68024 4.62109 5.10017 2.57567 4.85621 ] pdfxs + 53.8201 262.504 m + (usestheBUgraph[10].) + [5.10016 3.65644 4.07849 6.7166 3.60274 5.10016 7.13833 6.54066 9.9629 4.62111 3.59993 + 4.62112 5.10016 8.2203 2.57565 4.62111 4.62111 2.57565 2.57564 ] pdfxs + 62.7603 252.004 m + (Theexamplegraphsalsoillustrateotherbasicbutrelevant) + [6.65758 5.10016 6.17834 4.07849 4.85621 4.62111 7.67578 5.10017 2.57564 6.1785 4.62111 + 3.59993 4.62112 5.10016 5.10016 5.75644 4.62111 2.57565 3.65645 6.60126 2.57565 2.57564 + 2.57565 5.10016 3.65645 3.60275 3.59993 4.62111 3.60275 6.05858 4.62111 3.60273 5.10017 + 4.0785 5.69993 5.10017 4.62109 3.65645 2.57567 6.12203 5.10017 5.10017 5.70273 3.59993 + 4.0785 2.57567 4.07848 4.31637 4.62109 4.86025 3.5865 ] pdfxs + 53.8201 241.564 m + (featuresofDSA.Thealgorithmdetectsthatthestructure) + [2.81964 4.07849 4.62111 3.60274 5.10015 3.59993 4.0785 7.31636 4.62111 6.47963 7.01981 + 5.10016 6.90289 6.2358 6.65758 5.10016 7.79865 4.62111 2.57565 4.62111 4.62112 3.59993 + 2.57564 3.60275 5.10016 11.2758 5.10016 4.0785 3.60273 4.0785 4.08195 3.60273 7.3166 + 3.60273 5.10017 4.62109 7.26282 3.60273 5.10017 7.73834 3.65645 3.60273 3.59993 5.10017 + 4.08195 3.60273 5.10017 3.59993 4.0785 ] pdfxs + 53.8201 231.124 m + (isrecursive\(thecycleinthegraph\),andthatthepoint-) + [2.57565 7.85628 3.59993 4.07849 4.08196 5.10016 3.59993 3.65644 2.57565 4.61613 8.39849 + 3.60275 3.60275 5.10016 8.33833 4.08197 4.85621 4.08196 2.57565 8.3985 2.57565 9.42015 + 3.60275 5.10016 8.33833 4.62111 3.59993 4.62112 5.10016 5.10016 3.60275 7.13572 4.62109 + 5.10017 9.42001 3.60273 5.10017 4.62109 7.86281 3.60273 5.10017 8.3985 5.34001 4.62109 + 2.57567 4.86033 3.60273 3.06375 ] pdfxs + 53.8201 220.624 m + (ersinthefunctionspointtothelistobjects.In) + [4.07849 3.59993 7.13636 2.57565 8.58031 3.60274 5.10016 7.55864 2.81964 5.10016 5.10016 + 4.08197 3.60275 2.57564 4.62112 5.10016 7.13629 5.34 4.62111 2.57565 4.86031 7.08282 + 3.60275 8.04095 3.60275 5.10016 7.55865 2.57565 2.57564 3.65645 7.02259 4.62109 5.64033 + 2.81963 4.0785 4.08197 3.60273 3.65642 7.85566 3.30018 5.10017 ] pdfxs + 252.66 220.624 m + /N15 8.96638 Tf + (MakeList) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.67993 ] pdfxs + 290.1 220.624 m + /N17 8.96638 Tf + (,) show + 53.8199 210.184 m + (DSAalsodetectsthatheapobjectsareallocated\() + [7.01981 5.10016 10.6227 4.62111 2.57565 3.65644 8.28095 5.10016 4.0785 3.60273 4.0785 + 4.08197 3.60275 7.37637 3.60275 5.10016 4.62111 7.26282 5.10016 4.0785 4.62111 8.88023 + 4.62111 5.64032 2.81964 4.0785 4.08197 3.60273 7.31645 4.62109 3.59993 7.79842 4.62109 + 2.57567 2.57567 4.86094 4.08197 4.62109 3.60273 4.0785 8.82016 3.60273 ] pdfxs + 262.5 210.184 m + /N23 8.96638 Tf + (H) show + 270.78 210.184 m + /N17 8.96638 Tf + (\)and) + [7.26289 4.62109 5.10017 5.10017 ] pdfxs + 53.82 199.684 m + (returned,whereasin) + [3.59993 4.07849 3.60274 5.10016 3.59993 5.10016 4.07849 5.10016 7.31572 6.65758 5.10016 + 4.0785 3.59993 4.07849 4.62112 8.03652 2.57565 5.10016 ] pdfxs + 143.64 199.684 m + /N15 8.96638 Tf + (Length) + [4.67994 4.67993 4.67994 4.67993 4.67994 4.67994 ] pdfxs + 171.72 199.684 m + /N17 8.96638 Tf + (,memoryisnotallocatedor) + [7.37572 7.67578 4.07849 7.67578 4.62111 3.59993 9.23619 2.57567 7.97658 5.10017 4.62109 + 7.98274 4.62109 2.57567 2.57567 4.86094 4.08197 4.62109 3.60273 4.0785 9.42016 4.62109 + 3.59993 ] pdfxs + 53.8204 189.244 m + (freed\(no) + [2.81964 3.59993 4.07849 4.07849 7.98031 3.60274 5.10016 4.62111 ] pdfxs + 92.5806 189.244 m + /N23 8.96638 Tf + (H) show + 103.681 189.244 m + /N17 8.96638 Tf + (\rag\).\(The) + [5.10016 4.62111 4.62112 3.60275 6.59548 3.60275 6.65758 5.10016 4.0785 ] pdfxs + 150.54 189.244 m + /N23 8.96638 Tf + (M) show + 163.44 189.244 m + /N17 8.96638 Tf + (and) + [4.62111 5.10016 5.10016 ] pdfxs + 181.14 189.244 m + /N23 8.96638 Tf + (R) show + 191.94 189.244 m + /N17 8.96638 Tf + (\ragsshowninthe\fgures) + [5.10016 4.62111 4.62109 6.47636 3.65645 5.10017 4.38093 6.65759 7.97999 2.57567 7.92016 + 3.60273 5.10017 6.95865 5.10017 4.62109 5.10017 3.59993 4.0785 3.65642 ] pdfxs + 53.8203 178.804 m + (canbeignoredforthiswork.\)) + [4.08196 4.62111 8.16031 5.34 7.19849 2.57565 4.62111 5.10016 4.62111 3.59992 4.0785 + 8.22008 2.81964 4.62112 6.65992 3.60275 5.10016 2.57564 6.65645 6.4175 4.62111 3.59993 + 4.85622 2.57564 3.60275 ] pdfxs + 53.8203 160.864 m + /N9 11.9552 Tf + (2.2AutomaticPoolAllocation) + [6 3 17.8801 8.03967 6.65999 3.95992 5.99999 9.95991 6 3.95991 3.30001 + 8.27983 7.07999 6 6 6.23985 8.63982 3.30001 3.30001 6 5.27981 6 + 3.95991 3.30001 6 6.65999 ] pdfxs + 62.7605 147.904 m + /N17 8.96638 Tf + (Givenaprogramwithcallsto) + [7.25574 2.57565 4.61637 4.07849 9.12015 8.7011 5.10016 3.59993 4.62111 4.62112 3.59993 + 4.62111 11.6959 6.65758 2.57565 3.60275 9.1203 4.08197 4.62111 2.57565 2.57564 7.67629 + 3.60275 4.62111 ] pdfxs + 192.72 147.904 m + /N15 8.96638 Tf + (malloc) + [4.67994 4.67993 4.67993 4.67995 4.67995 4.67995 ] pdfxs + 225.001 147.904 m + /N17 8.96638 Tf + (and) + [4.62109 5.10017 5.10017 ] pdfxs + 243.901 147.904 m + /N15 8.96638 Tf + (free) + [4.67995 4.67995 4.67993 4.67995 ] pdfxs + 262.62 147.904 m + /N17 8.96638 Tf + (,Auto-) + [6.95581 6.90289 5.10017 3.60273 4.62109 3.06375 ] pdfxs + 53.8204 137.464 m + (maticPoolAllocationmodi\festheprogramtoallocateand) + [7.67578 4.62111 3.60274 2.57565 6.9618 6.05683 4.86127 4.62111 5.39556 6.90289 2.57565 + 2.57564 4.86104 4.08197 4.62111 3.60275 2.57564 4.62112 7.98023 7.67578 4.86095 5.10016 + 2.57565 5.10015 4.0785 6.5966 3.60275 5.10016 7.01842 5.10016 3.59993 4.62109 4.62109 + 3.59993 4.62112 10.5557 3.60273 7.50109 4.62109 2.57567 2.57567 4.86094 4.08197 4.62109 + 3.60273 6.95865 4.62109 5.10017 5.10017 ] pdfxs + 53.8204 127.024 m + (freememoryfrompoolswithinthestandardsystemheap.A) + [2.81964 3.59993 4.07849 6.41841 7.67578 4.07849 7.67578 4.62111 3.59993 7.19637 2.81964 + 3.59993 4.62112 10.0159 5.34 4.86127 4.62111 2.57565 5.93629 6.65758 2.57565 3.60275 + 5.10016 2.57564 7.44032 3.60275 5.10016 6.41841 3.65645 3.60275 4.62112 5.10017 5.10017 + 4.62109 3.59993 7.44001 3.65645 4.85619 3.65645 3.60273 4.0785 9.95569 5.10017 4.0785 + 4.62109 5.10017 6.47574 6.90289 ] pdfxs + 53.8204 116.524 m + (poolisrepresentedintheprogrambya) + [5.34 4.86127 4.62111 5.15572 2.57565 6.23636 3.59993 4.07849 5.10016 3.59993 4.07849 + 3.65645 4.0785 4.86031 3.60275 4.0785 7.80023 2.57565 7.74007 3.60275 5.10016 6.71842 + 5.10016 3.59993 4.62111 4.62112 3.59993 4.62111 10.2557 4.86031 7.49621 4.62109 ] pdfxs + 212.88 116.524 m + /N19 8.96638 Tf + (pooldescr) + [4.20266 4.20266 4.68266 5.33685 4.68266 4.25801 3.7822 4.25804 3.90111 ] pdfxs + (i) show + (p) + [4.68266 ] pdfxs + (t) show + (or) + [4.68266 3.90111 ] pdfxs + 271.32 116.524 m + /N17 8.96638 Tf + (.Au-) + [6.47574 6.90289 5.10017 3.06375 ] pdfxs + 53.8202 106.084 m + (tomaticPoolAllocationcreatesonedistinctpooldescript) + [3.60274 4.62111 7.67578 4.62111 3.60273 2.57565 6.78204 6.05683 4.86127 4.62111 5.3358 + 6.90289 2.57565 2.57564 4.86104 4.08197 4.62111 3.60275 2.57564 4.62112 7.86031 4.08197 + 3.59993 4.07849 4.62111 3.60275 4.0785 6.47629 4.62111 5.10016 6.89842 5.10016 2.57567 + 3.65642 3.60273 2.57567 5.10017 4.08197 6.36289 5.34001 4.86126 4.62109 5.39558 5.10017 + 4.0785 3.65642 4.08197 3.59993 2.57567 5.10017 3.5865 ] pdfxs + 284.7 106.084 m + (or) + [4.62109 3.59993 ] pdfxs + 53.8202 95.644 m + (foreachnodemarked) + [2.81964 4.62111 5.94 4.07849 4.62111 3.8418 7.50015 5.10016 4.86127 5.10016 6.53834 + 7.67578 4.62111 3.59993 4.61614 4.0785 5.10016 ] pdfxs + 140.94 95.644 m + /N23 8.96638 Tf + (H) show + 151.62 95.644 m + /N17 8.96638 Tf + (inafunction'sDSgraph,e\013ectively) + [2.57565 7.50023 6.96126 2.81964 5.10016 5.10016 4.08197 3.60275 2.57564 4.62112 5.10016 + 2.57564 6.0563 7.0198 7.50009 4.62109 3.59993 4.62109 5.10017 5.10017 5.09551 4.0785 + 5.40425 4.0785 4.08195 3.60273 2.57567 4.61605 4.0785 2.57567 4.85619 ] pdfxs + 53.8202 85.144 m + (partitioningobjectsintheheapastheywerepartitionedi) + [5.10016 4.62111 3.59993 3.60274 2.57565 3.60274 2.57565 4.62111 5.10015 2.57565 5.10015 + 7.56095 4.62111 5.64032 2.81964 4.0785 4.08197 3.60273 6.65645 2.57565 8.10015 3.60275 + 5.10016 7.13833 5.10016 4.0785 4.62111 8.16031 4.62111 6.65645 3.60275 5.10016 4.0785 + 7.91619 6.4175 4.0785 3.59993 7.13841 5.10017 4.62109 3.59993 3.60273 2.57567 3.60273 + 2.57567 4.62109 5.10017 4.0785 8.10016 2.57567 ] pdfxs + (n) show + 53.8202 74.7042 m + (theDSgraphbypointeranalysis.Callsto) + [3.60274 5.10016 6.77857 7.01981 7.86023 4.62111 3.59993 4.62111 5.10016 7.86016 4.86031 + 7.55636 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 6.3 4.62111 5.10016 4.62112 + 2.57564 4.85621 3.65646 2.57564 3.65645 6.47581 6.65758 4.62112 2.57567 2.57564 6.29629 + 3.60273 4.62109 ] pdfxs + 225.541 74.7042 m + /N15 8.96638 Tf + (malloc) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 ] pdfxs + 256.501 74.7042 m + /N17 8.96638 Tf + (and) + [4.62109 5.10017 5.10017 ] pdfxs + 274.081 74.7042 m + /N15 8.96638 Tf + (free) + [4.67995 4.67995 4.67993 4.67995 ] pdfxs + 316.801 484.144 m + /N39 6.97377 Tf + (structlist_pc32{intX;intNext;};) + [3.71825 3.71825 3.71827 3.71825 3.71825 7.31813 3.71825 3.71825 3.71827 3.71825 3.71825 + 3.71825 3.71825 3.71825 7.3183 7.37829 3.71825 3.71825 7.37814 3.71825 7.43837 3.71825 + 3.7182 7.37811 3.71825 3.7182 3.71825 3.7182 7.3182 3.71825 3.7182 ] pdfxs + 316.801 468.184 m + (staticintMakeList_pc32\(Pool*PD,intN\){) + [3.71825 3.71825 3.71827 3.71825 3.71825 7.31813 3.71825 3.71825 7.37814 3.71825 3.71825 + 3.71827 3.71825 3.71825 3.71825 3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.71825 + 3.71825 3.71825 3.7182 3.71825 7.19804 3.71825 3.7182 3.71825 7.31825 3.71825 3.7182 + 7.37811 3.71825 7.43832 3.71825 ] pdfxs + 324.24 460.265 m + (intResult=0;) + [3.71825 3.71825 7.37814 3.71825 3.71825 3.71827 3.71825 3.71825 7.31813 7.37829 3.71825 + 3.71825 ] pdfxs + 324.24 452.285 m + (for\(inti=0;i!=N;++i\){) + [3.71825 3.71825 7.37814 3.71825 3.71825 3.71827 7.31827 7.43805 7.37829 3.71825 7.43837 + 7.37829 3.71825 7.37821 3.71825 7.43837 3.71825 3.7182 3.71825 7.31825 3.71825 ] pdfxs + 331.62 444.305 m + (intNode=poolalloc_pc\(PD,1\);) + [3.71825 3.71825 7.37814 3.71825 3.71825 3.71827 7.37804 7.37829 3.71825 3.71825 3.71827 + 3.71825 3.71825 3.71825 3.71825 3.71825 3.71827 3.71825 3.7182 3.71825 3.71825 3.7182 + 3.71825 7.19818 3.71825 3.7182 3.71825 ] pdfxs + 331.62 436.325 m + (int*tmp1=PD->poolbase+Node+offsetof\(list_pc32,Next\)) + [3.71825 3.71825 7.37814 3.71825 3.71825 3.71827 3.71825 7.37836 7.37829 3.71825 3.71825 + 3.71827 3.71825 3.71825 3.71825 3.71825 3.71825 3.71827 3.71825 3.7182 3.71825 3.71825 + 3.7182 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 3.7182 3.71825 3.71825 3.7182 + 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 3.7182 3.71825 3.7182 3.71825 3.71825 + 3.7182 6.89814 3.71825 3.7182 3.71825 3.7182 3.70311 ] pdfxs + 535.5 436.325 m + (;) show + 331.62 428.345 m + (*tmp1=Result;) + [3.71825 3.71825 3.71827 3.71825 7.37836 7.37829 3.71825 3.71825 3.71827 3.71825 3.71825 + 3.71825 3.71825 ] pdfxs + 331.62 420.365 m + (int*tmp2=PD->poolbase+Node+offsetof\(list_pc32,X\);) + [3.71825 3.71825 7.37814 3.71825 3.71825 3.71827 3.71825 7.37836 7.37829 3.71825 3.71825 + 3.71827 3.71825 3.71825 3.71825 3.71825 3.71825 3.71827 3.71825 3.7182 3.71825 3.71825 + 3.7182 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 3.7182 3.71825 3.71825 3.7182 + 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 3.7182 3.71825 3.7182 3.71825 3.71825 + 3.7182 6.89814 3.71825 3.7182 3.71825 ] pdfxs + 331.62 412.444 m + (*tmp2=i+'A';) + [3.71825 3.71825 3.71827 3.71825 7.37836 7.37829 3.71825 3.71825 3.71827 3.71825 3.71825 + 3.71825 ] pdfxs + 331.62 404.465 m + (Result=Node;}) + [3.71825 3.71825 3.71827 3.71825 3.71825 7.31813 7.43805 3.71825 3.71825 3.71827 3.71825 + 14.7579 3.71825 ] pdfxs + 324.24 396.485 m + (returnResult;}) + [3.71825 3.71825 3.71827 3.71825 3.71825 7.31813 3.71825 3.71825 3.71827 3.71825 3.71825 + 3.71825 11.0383 3.71825 ] pdfxs + 316.801 380.525 m + (staticintLength_pc32\(Pool*PD,intL\){) + [3.71825 3.71825 3.71827 3.71825 3.71825 7.31813 3.71825 3.71825 7.37814 3.71825 3.71825 + 3.71827 3.71825 3.71825 3.71825 3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.71825 + 3.71825 3.71825 7.19818 3.71825 3.7182 3.71825 7.37802 3.71825 3.7182 7.37811 3.71825 + 7.37816 3.71825 ] pdfxs + 324.24 372.545 m + (if\(L==0\)return0;) + [3.71825 7.37821 3.71825 7.37821 3.71825 7.37821 3.71825 7.43837 3.71825 3.71825 3.71827 + 3.71825 3.71825 7.31813 3.71825 3.71825 ] pdfxs + 324.24 364.625 m + (int*tmp=PD->poolbase+L+offsetof\(list_pc32,Next\);) + [3.71825 3.71825 7.37814 3.71825 3.71825 3.71827 7.31827 7.43805 3.71825 3.71825 3.71827 + 3.71825 3.71825 3.71825 3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.71825 3.7182 + 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 + 3.7182 3.71825 3.71825 3.7182 3.71825 3.7182 3.71825 3.7182 6.89838 3.71825 3.7182 + 3.71825 3.7182 3.71825 3.71825 ] pdfxs + 324.24 356.645 m + (returnLength_pc32\(PD,*tmp\)+1;) + [3.71825 3.71825 3.71827 3.71825 3.71825 7.31813 3.71825 3.71825 3.71827 3.71825 3.71825 + 3.71825 3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.71825 3.71827 7.19828 3.71825 + 3.7182 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 ] pdfxs + 316.801 348.665 m + (}) show + 316.801 332.705 m + (intTestlists\(\){) + [3.71825 3.71825 7.37814 3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.71825 3.71825 + 3.71827 3.71825 7.25836 3.71825 ] pdfxs + 324.24 324.725 m + (PoolP1,P2;) + [3.71825 3.71825 3.71827 7.31827 3.71825 3.71825 7.37814 3.71825 3.71825 3.71827 ] pdfxs + 324.24 316.805 m + (poolinit_pc\(&P1,sizeof\(list_pc32\)\);) + [3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.71825 3.71825 3.71827 3.71825 3.71825 + 3.71825 3.71825 3.71827 3.71825 7.13806 3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 + 3.71825 3.71825 3.7182 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 3.7182 3.71825 + 3.71825 3.7182 ] pdfxs + 324.24 308.825 m + (poolinit_pc\(&P2,1\);) + [3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.71825 3.71825 3.71827 3.71825 3.71825 + 3.71825 3.71825 3.71827 3.71825 7.13806 3.71825 3.71825 3.71827 ] pdfxs + 324.24 300.845 m + (intA=MakeList_pc32\(&P1,100\);) + [3.71825 3.71825 7.37814 7.37829 7.43805 3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 + 3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.71825 3.71827 3.71825 3.7182 3.71825 + 7.13827 3.71825 3.7182 3.71825 3.7182 3.71825 ] pdfxs + 324.24 292.865 m + (intB=MakeList_pc64\(&P2,20\);) + [3.71825 3.71825 7.37814 7.37829 7.43805 3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 + 3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.71825 3.71827 3.71825 3.7182 3.71825 + 7.13827 3.71825 3.7182 3.71825 3.7182 ] pdfxs + 324.24 284.885 m + (intSum=Length_pc32\(&P1,A\)+Length_pc64\(&P2,B\);) + [3.71825 3.71825 7.37814 3.71825 3.71825 7.37814 7.37829 3.71825 3.71825 3.71827 3.71825 + 3.71825 3.71825 3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.71825 3.7182 3.71825 + 7.19818 3.71825 7.37816 7.43803 3.71825 3.7182 3.71825 3.7182 3.71825 3.71825 3.7182 + 3.71825 3.7182 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 7.13803 3.71825 3.7182 + 3.71825 ] pdfxs + 324.24 276.905 m + (\(\(char*\)B\)[5]='c';) + [3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.71825 3.71825 3.71827 3.71825 3.71825 + 3.71825 7.19807 7.43805 3.71825 3.71825 3.71827 3.71825 ] pdfxs + 324.24 268.986 m + (pooldestroy_pc\(&P1\);pooldestroy_pc\(&P2\);) + [3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.71825 3.71825 3.71827 3.71825 3.71825 + 3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.71825 3.71825 7.07839 3.71825 3.71825 + 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 3.7182 3.71825 3.7182 3.71825 3.71825 + 3.7182 3.71825 3.7182 3.71825 3.71825 3.7182 3.71825 ] pdfxs + 324.24 261.006 m + (returnSum;}) + [3.71825 3.71825 3.71827 3.71825 3.71825 7.31813 3.71825 3.71825 3.71827 7.37804 3.71825 + ] pdfxs + 335.881 247.086 m + /N23 8.96638 Tf + (Figure5:) + [6.66309 2.94267 5.28303 5.87642 4.37907 8.46026 5.28303 7.68282 ] pdfxs + (E) show + (x) + [5.58422 ] pdfxs + (a) show + (mple) + [8.81908 5.87644 2.94267 8.46029 ] pdfxs + (a) show + (fterst) + [3.24387 4.13846 4.86029 7.91901 4.2022 4.13846 ] pdfxs + (a) show + (ticcompression) + [4.13846 2.94267 8.22077 4.74074 5.28306 8.81906 5.87644 4.37907 4.86029 4.2022 4.2022 + 2.94267 5.28301 5.87644 ] pdfxs + 316.8 231.606 m + /N17 8.96638 Tf + (aresimplyreplacedwithcallsto) + [4.62109 3.59993 7.3785 3.65645 2.57564 7.67579 5.10017 2.57567 8.03604 3.59993 4.0785 + 5.10017 2.57567 4.62109 4.08197 4.07848 8.46017 6.65759 2.57564 3.60276 8.34025 4.08192 + 4.62114 2.57562 2.57567 6.83644 3.60276 4.62114 ] pdfxs + 451.98 231.606 m + /N15 8.96638 Tf + (poolalloc) + [4.6799 4.67995 4.6799 4.67995 4.6799 4.6799 4.67995 4.6799 4.67995 ] pdfxs + 497.58 231.606 m + /N17 8.96638 Tf + (and) + [4.62114 5.10017 5.10017 ] pdfxs + 515.7 231.606 m + /N15 8.96638 Tf + (poolfree) + [4.6799 4.67995 4.6799 4.67995 4.6799 4.6799 4.67995 4.6799 ] pdfxs + 553.14 231.606 m + /N17 8.96638 Tf + (,) show + 316.8 221.166 m + (passinginthepooldescriptorcorrespondingtotheDSnode) + [5.10017 4.62109 3.65645 3.65642 2.57567 5.10017 7.20103 2.57567 7.68032 3.60273 5.10017 + 6.71842 5.34001 4.86126 4.62109 5.15574 5.10017 4.0785 3.65642 4.08197 3.59993 2.57562 + 5.10017 3.60276 4.62114 6.17991 4.08192 4.62114 3.59993 3.59993 4.07845 3.65647 5.34026 + 4.62114 5.10017 5.10017 2.57562 5.10017 7.32104 3.60276 7.20112 3.60276 5.10017 6.65862 + 7.01985 7.7403 5.10017 4.86128 5.10017 4.07845 ] pdfxs + 316.8 210.666 m + (pointedtobytherelevantpointer.Thisimpliesthatthe) + [5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 9.18032 3.60273 8.64094 4.86033 8.87627 + 3.60273 5.10017 8.15865 3.59993 4.0785 2.57567 4.07848 4.31639 4.62114 4.86023 7.62267 + 5.34001 4.62114 2.57562 4.86033 3.60276 4.07845 3.59993 9.59572 6.65759 5.10017 2.57562 + 7.67639 2.57562 7.67579 5.10017 2.57562 2.57567 4.07845 7.61638 3.60276 5.10017 4.62114 + 7.62257 3.60276 5.10017 4.07845 ] pdfxs + 316.8 200.226 m + (lifetimeofindividualobjectsallocatedfromthepoolstay) + [2.57567 2.57567 2.81963 4.0785 3.60273 2.57564 7.67579 7.9785 4.62109 6.77963 2.57567 + 5.10017 5.10017 2.57567 4.85619 2.57567 5.10017 5.10017 4.62109 6.53582 4.62114 5.6403 + 2.81965 4.07845 4.08192 3.60276 7.55632 4.62114 2.57562 2.57562 4.86099 4.08192 4.62114 + 3.60276 4.07845 9.00026 2.81965 3.59993 4.62109 11.6358 3.60276 5.10017 8.03831 5.34001 + 4.86128 4.62114 6.53577 3.65647 3.60276 4.38096 4.85985 ] pdfxs + 316.8 189.785 m + (exactlythesameastheoriginalprogram\(exceptforsome) + [4.0785 4.85619 4.62112 4.08195 3.60273 2.57567 8.39612 3.60273 5.10017 7.67857 3.65645 + 4.62109 7.67579 7.61856 4.62109 7.19636 3.60273 5.10017 7.61839 4.62114 3.59993 2.57562 + 4.62114 2.57562 5.10017 4.62114 6.05569 5.10017 3.59993 4.62114 4.62109 3.59993 4.62114 + 11.2153 3.60276 4.07845 4.85623 4.08197 4.07845 5.10017 7.20275 2.81965 4.62109 7.19978 + 3.65647 4.62109 7.67579 4.07845 ] pdfxs + 316.8 179.285 m + (leakedobjectsasexplainedbelow\).) + [2.57567 4.0785 4.62109 4.6162 4.0785 8.22016 4.62109 5.64033 2.81963 4.0785 4.08197 + 3.60273 6.65642 4.62109 6.71629 4.0785 4.85619 5.10017 2.57567 4.62109 2.57567 5.10017 + 4.07845 8.22009 5.34001 4.07845 2.57567 4.38096 6.65759 3.60276 2.57562 ] pdfxs + 325.8 168.845 m + (Thepoolruntimelibraryprovidesfunctions) + [6.65759 5.10017 9.23849 5.34001 4.86126 4.62109 7.67566 3.59993 5.10017 4.86033 3.60273 + 2.57567 7.67579 9.23849 2.57567 2.57567 5.10017 3.59993 4.62109 3.59993 9.95608 5.10017 + 3.59993 4.3812 4.85623 2.57562 5.10017 4.0785 8.75652 2.81965 5.10017 5.10017 4.08192 + 3.60276 2.57562 4.62114 5.10017 3.65647 ] pdfxs + 518.28 168.845 m + /N15 8.96638 Tf + (poolinit) + [4.6799 4.67995 4.6799 4.67995 4.6799 4.6799 4.67995 4.6799 ] pdfxs + 316.8 158.405 m + /N17 8.96638 Tf + (and) + [4.62109 5.10017 5.10017 ] pdfxs + 335.7 158.405 m + /N15 8.96638 Tf + (pooldestroy) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 + ] pdfxs + 391.56 158.405 m + /N17 8.96638 Tf + (toinitializeanddestroyapooldescrip-) + [3.60273 8.70109 2.57567 5.10012 2.57567 3.60276 2.57562 4.62114 2.57562 2.57567 4.08192 + 8.03831 4.62114 5.10017 9.18015 5.10017 4.07845 3.65647 3.60276 3.59993 4.38106 8.93606 + 8.70112 5.34001 4.86128 4.62114 6.65569 5.10017 4.07845 3.65647 4.08197 3.59993 2.57562 + 5.10017 3.06372 ] pdfxs + 316.8 147.905 m + (tor.) + [3.60273 4.62109 3.59993 2.57567 ] pdfxs + 335.4 147.905 m + /N15 8.96638 Tf + (pooldestroy) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 + ] pdfxs + 390.3 147.905 m + /N17 8.96638 Tf + (alsoreleasesanyremainingpoolmemory) + [4.62109 2.57567 3.65645 7.68092 3.59993 4.07845 2.57567 4.07845 4.62114 3.65647 4.07845 + 6.77653 4.62114 4.86023 7.97629 3.59993 4.07845 7.67579 4.62109 2.57567 5.10017 2.57562 + 5.10017 7.74121 5.34001 4.86128 4.62114 5.69553 7.67525 4.0785 7.67525 4.62114 3.59993 + 4.85623 ] pdfxs + 316.8 137.466 m + (tothesystemheap.\(Notethatthiscanreclaimmemoryfor) + [3.60273 7.26125 3.60273 5.10017 6.77858 3.65645 4.85619 3.65645 3.60273 4.0785 10.3159 + 5.10017 4.0785 4.62109 5.10017 6.5355 3.60273 6.90289 4.62114 3.60276 6.71829 3.60276 + 5.10017 4.62114 6.24289 3.60276 5.10017 2.57562 6.29655 4.08192 4.62114 7.80016 3.59993 + 4.07845 4.08197 2.57562 4.62114 2.57562 10.3159 7.67525 4.0785 7.67525 4.62114 3.59993 + 7.49637 2.81965 4.62109 3.59993 ] pdfxs + 316.8 127.025 m + (objectsthatwereneverfreedintheoriginalprogram,i.e.,) + [4.62109 5.64033 2.81963 4.0785 4.08197 3.60273 7.25627 3.60273 5.10017 4.62109 7.20265 + 6.4175 4.0785 3.59993 7.73841 5.10017 4.0785 4.6162 4.0785 7.31989 2.81965 3.59993 + 4.07845 4.07845 8.76002 2.57562 8.76002 3.60276 5.10017 7.73831 4.62114 3.59993 2.57562 + 4.62114 2.57562 5.10017 4.62114 6.11546 5.10017 3.59993 4.62114 4.62109 3.59993 4.62114 + 7.67525 6.29548 2.57562 2.57567 4.07845 2.57567 2.57562 ] pdfxs + 316.8 116.525 m + (werepreviouslyleaked.\)Eachpoolisafullygeneralheap,) + [6.4175 4.0785 3.59993 7.55833 5.10017 3.59993 4.0785 4.85619 2.57567 4.62109 5.10017 + 3.65645 2.57567 8.21619 2.57567 4.0785 4.62109 4.6162 4.0785 5.10017 2.57567 8.7029 + 6.29665 4.62114 3.84208 8.52008 5.34001 4.86128 4.62114 5.99553 2.57562 7.01648 8.04096 + 2.81965 5.10017 2.57562 2.57562 8.2764 4.62114 4.07845 5.10017 4.07845 3.59993 4.62114 + 5.99563 5.10017 4.07845 4.62114 5.10017 2.57562 ] pdfxs + 316.8 106.086 m + (providingequivalentsforallstandardheapfunctions,inc) + [5.10017 3.59993 4.38118 4.85621 2.57564 5.10017 2.57567 5.10017 6.72095 4.0785 4.85619 + 5.10017 2.57567 4.31605 4.62109 2.57567 4.0785 4.86001 3.60273 5.75659 2.81963 4.62109 + 5.69978 4.62114 2.57562 4.61556 3.65647 3.60276 4.62109 5.10017 5.10017 4.62114 3.59993 + 7.20017 5.10017 4.07845 4.62114 7.26032 2.81965 5.10017 5.10017 4.08192 3.60276 2.57562 + 4.62114 5.10017 3.65647 4.79578 2.57562 5.10017 4.09764 ] pdfxs + 540 106.086 m + (lud-) + [2.57562 5.10017 5.10017 3.06372 ] pdfxs + 316.8 95.6455 m + (ing) + [2.57567 5.10017 4.62109 ] pdfxs + 332.28 95.6455 m + /N15 8.96638 Tf + (poolalloc) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.67993 4.67995 ] pdfxs + 374.4 95.6455 m + /N17 8.96638 Tf + (,) show + 380.4 95.6455 m + /N15 8.96638 Tf + (poolfree) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.6799 ] pdfxs + 417.84 95.6455 m + /N17 8.96638 Tf + (,) show + 423.84 95.6455 m + /N15 8.96638 Tf + (poolrealloc) + [4.6799 4.67995 4.6799 4.67995 4.6799 4.6799 4.67995 4.6799 4.67995 4.6799 4.6799 + ] pdfxs + 478.86 95.6455 m + /N17 8.96638 Tf + (and) + [4.62114 5.10017 5.10017 ] pdfxs + 496.86 95.6455 m + /N15 8.96638 Tf + (poolmemalign) + [4.6799 4.67995 4.6799 4.67995 4.6799 4.6799 4.67995 4.6799 4.67995 4.6799 4.6799 + 4.67995 ] pdfxs + 553.02 95.6455 m + /N17 8.96638 Tf + (.) show + 316.8 85.1455 m + (Apoolinternallyobtainsandfreesmemoryo\013thesystem) + [10.383 5.34001 4.86126 4.62109 6.05574 2.57567 4.86001 3.60273 4.0785 3.59993 5.10017 + 4.62109 2.57567 2.57564 8.27605 4.62109 5.10017 3.60273 4.62109 2.57567 5.10017 7.07644 + 4.62114 5.10017 8.6403 2.81965 3.59993 4.07845 4.07845 7.1364 7.67525 4.0785 7.67525 + 4.62114 3.59993 8.33621 4.62114 8.82407 3.60276 5.10017 7.55862 3.65647 4.85623 3.65642 + 3.60276 4.0785 7.67525 ] pdfxs + 316.8 74.7057 m + (heapinlargeslabsusing) + [5.10017 4.0785 4.62109 8.22009 2.57567 8.16 2.57567 4.62109 3.59993 4.62109 7.13866 + 3.65645 2.57564 4.62112 5.10017 6.65642 5.10017 3.65645 2.57564 5.10017 4.62114 ] pdfxs + 418.86 74.7057 m + /N15 8.96638 Tf + (malloc) + [4.6799 4.67995 4.6799 4.67995 4.6799 4.6799 ] pdfxs + 450.18 74.7057 m + /N17 8.96638 Tf + (and) + [4.62114 5.10017 5.10017 ] pdfxs + 468.12 74.7057 m + /N15 8.96638 Tf + (free) + [4.6799 4.67995 4.6799 4.67995 ] pdfxs + 486.839 74.7057 m + /N17 8.96638 Tf + (.) show + Q + Q + PDFVars/TermAll get exec end end + userdict /pgsave get restore + showpage + %%PageTrailer + %%EndPage + %%Page: 4 4 + %%BeginPageSetup + userdict /pgsave save put + PDFVars begin PDF begin PDFVars/InitAll get exec + 0 0 612 792 true PDF begin PDFVars begin AS end end + %%EndPageSetup + 0 0 612 792 re + W + n + q + 0.0999908 0 0 0.0999908 0 0 cm + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 62.7602 728.22 m + /N17 8.96638 Tf + (Figure3showstheresultofpool-allocatingthelinked) + [6.00161 2.57565 4.62111 5.10016 3.59993 8.69848 9.24095 3.65645 5.10016 4.38096 6.65758 + 8.15637 3.60275 5.10016 8.69849 3.59993 4.0785 3.65645 5.10016 2.57564 8.22259 4.62111 + 7.37964 5.34 4.86127 4.62111 2.57565 3.06375 4.62109 2.57567 2.57564 4.86111 4.08197 + 4.62109 3.60273 2.57567 5.10017 9.18124 3.60273 5.10017 8.69849 2.57567 2.57567 5.10017 + 4.61627 4.0785 5.10017 ] pdfxs + 53.8201 717.78 m + (listinFigure1.Thelinkedlisthasbeenplacedintoone) + [2.57565 2.57565 3.65645 7.50266 2.57565 9.05999 6.00161 2.57565 4.62111 5.10016 3.59993 + 8.03833 4.62111 9.35572 6.65758 5.10016 8.09865 2.57565 2.57564 5.10016 4.61629 4.0785 + 9.05999 2.57565 2.57564 3.65645 7.50267 5.10016 4.62111 7.6163 5.34001 4.0785 4.0785 + 9.17999 5.10017 2.57567 4.62109 4.08197 4.0785 9.12023 2.57567 4.86001 3.60273 8.52101 + 4.62109 5.10017 4.0785 ] pdfxs + 53.8201 707.34 m + (memorypool,containingtwoslabsofmemory,eachholding) + [7.67578 4.07849 7.67578 4.62111 3.59993 7.55613 5.34 4.86127 4.62111 2.57565 5.33549 + 4.08197 4.62111 4.86031 3.60275 4.62111 2.57565 5.10016 2.57564 5.10016 7.32111 3.3629 + 6.4175 7.26126 3.65645 2.57565 4.62111 5.10016 6.35637 4.62111 5.51948 7.67579 4.0785 + 7.67576 4.62112 3.59993 4.07604 5.3355 4.0785 4.62109 3.84181 7.86032 5.10017 4.62109 + 2.57567 5.10017 2.57567 5.10017 4.62109 ] pdfxs + 53.8201 696.84 m + (twonodes\(inpractice,manymorenodeswould\ftineach) + [3.3629 6.4175 7.92103 5.10016 4.86127 5.10016 4.07849 7.01644 3.60274 2.57565 8.45999 + 5.10016 3.59993 4.62111 4.08197 3.60275 2.57564 4.08197 4.0785 5.99549 7.67578 4.62111 + 4.86031 8.21613 7.67578 4.62111 3.59993 7.43834 5.10016 4.86126 5.10017 4.0785 7.07658 + 6.4175 4.62109 5.10017 2.57567 8.40017 5.10017 6.96288 2.57567 8.46 4.0785 4.62109 + 3.84181 5.10017 ] pdfxs + 53.8201 686.4 m + (slab\).) + [3.65644 2.57565 4.62111 5.10016 3.60274 2.57565 ] pdfxs + 62.7602 675.96 m + (PoolallocationalsousestheDSgraphtoidentifywhich) + [6.05683 4.86127 4.62111 5.9358 4.62111 2.57565 2.57565 4.86096 4.08197 4.62111 3.60275 + 2.57564 4.62112 8.52008 4.62111 2.57565 3.65645 7.98095 5.10016 3.65645 4.0785 7.07637 + 3.60275 5.10016 7.55865 7.01981 8.58016 4.62111 3.59993 4.62109 5.10017 8.5801 3.60273 + 8.04093 2.57567 5.10017 4.0785 4.86008 3.60273 2.57567 2.81963 8.27627 6.65759 5.10017 + 2.57564 3.84205 5.10017 ] pdfxs + 53.8201 665.46 m + (memoryobjectsdonotescapefromafunction\(e.g.the) + [7.67578 4.07849 7.67578 4.62111 3.59993 9.17604 4.62111 5.64031 2.81964 4.0785 4.08197 + 3.60273 7.97661 5.10016 8.94095 5.10016 4.62111 7.98274 4.0785 3.65645 4.08196 4.62112 + 5.34023 8.45865 2.81964 3.59993 4.62112 11.9956 8.94093 2.81963 5.10017 5.10017 4.08197 + 3.60273 2.57567 4.62109 9.48024 3.60273 4.0785 2.57567 4.62109 10.3758 3.60273 5.10017 + 4.0785 ] pdfxs + 53.8201 655.021 m + (\\A"and\\B"listsin) + [4.62111 6.9029 8.28111 4.62111 5.10016 8.88015 4.62111 6.54066 8.28095 2.57565 2.57564 + 3.65645 3.60275 7.31629 2.57565 5.10016 ] pdfxs + 142.8 655.021 m + /N15 8.96638 Tf + (Testlists) + [4.67994 4.67993 4.67994 4.67993 4.67994 4.67994 4.67993 4.67994 4.67993 ] pdfxs + 184.92 655.021 m + /N17 8.96638 Tf + (\).ThepoolsfortheseDS) + [3.60275 8.81556 6.65758 5.10017 7.85841 5.34001 4.86126 4.62109 2.57567 7.37651 2.81963 + 4.62109 7.32009 3.60273 5.10017 4.0785 3.65642 7.79835 7.0198 5.10017 ] pdfxs + 53.8196 644.581 m + (nodesarecreatedanddestroyedattheentryandexitsofthe) + [5.10016 4.86127 5.10016 4.07849 5.99652 4.62111 3.59993 6.47849 4.08196 3.59993 4.07849 + 4.62111 3.60275 4.0785 7.50031 4.62111 5.10016 7.44032 5.10016 4.0785 3.65645 3.60275 + 3.59993 4.38103 4.61614 4.0785 7.50023 4.62111 5.88274 3.60275 5.10016 6.47857 4.0785 + 4.86001 3.60273 3.59993 7.1962 4.62109 5.10017 7.50009 4.0785 4.85619 2.57567 3.60273 + 5.9366 4.62109 5.15971 3.60273 5.10017 4.0785 ] pdfxs + 53.8196 634.081 m + (function.Fornodespointedtobyaglobalvariable,nosuch) + [2.81964 5.10016 5.10016 4.08196 3.60274 2.57565 4.62111 5.10015 6.5355 5.22153 4.62111 + 6.41978 5.10016 4.86127 5.10016 4.0785 6.41644 5.34 4.62111 2.57565 4.86031 3.60275 + 4.0785 7.92014 3.60275 7.32103 4.86031 7.61613 7.38119 4.62111 2.57567 4.62109 5.10017 + 4.62109 5.27559 4.31612 4.62109 3.59993 2.57567 4.62109 5.10017 2.57567 4.0785 5.39573 + 5.10017 7.38117 3.65645 5.10017 3.84196 5.10017 ] pdfxs + 53.8196 623.641 m + (functionwillbefoundandthepoolcreate/destroycallsar) + [2.81964 5.10016 5.10016 4.08196 3.60274 2.57565 4.62111 8.04 6.65758 2.57565 2.57565 + 5.5155 5.34 7.0785 2.81964 4.62112 5.10016 5.10016 8.10015 4.62111 5.10016 8.10015 + 3.60275 5.10016 7.07848 5.34 4.86127 4.62111 5.57565 4.08197 3.59993 4.0785 4.62109 + 3.60273 4.0785 4.62109 5.10017 4.07848 3.65645 3.60273 3.59993 4.3811 7.7962 4.08197 + 4.62109 2.57567 2.57567 6.59658 4.62109 3.59993 ] pdfxs + (e) show + 53.8196 613.2 m + (insertedinto) + [2.57565 5.10016 3.65644 4.0785 3.59992 3.60274 4.0785 8.33999 2.57565 4.86 3.60274 + 4.62111 ] pdfxs + 107.699 613.2 m + /N15 8.96638 Tf + (main) + [4.67994 4.67993 4.67994 4.67993 ] pdfxs + 126.419 613.2 m + /N17 8.96638 Tf + (.\(Notethatthisonlya\013ectsthelifetime) + [7.19565 3.60275 6.90289 4.62111 3.60275 7.31834 3.60275 5.10016 4.62111 6.78275 3.60275 + 5.10016 2.57564 6.83637 4.62111 5.10017 2.57567 8.09619 4.62109 5.40425 4.0785 4.08197 + 3.60273 6.83635 3.60273 5.10017 7.31841 2.57567 2.57567 2.81963 4.0785 3.60273 2.57564 + 7.67579 4.0785 ] pdfxs + 53.8196 602.7 m + (ofthepool,andnottheindividualobjectswithinthepool.\)) + [4.62111 5.51948 3.60274 5.10016 6.83834 5.34 4.86127 4.62111 2.57565 5.33549 4.62111 + 5.10016 7.86024 5.10016 4.62111 6.30267 3.60275 5.10016 6.83834 2.57565 5.10016 5.10015 + 2.57565 4.85621 2.57565 5.10016 5.10016 4.62111 5.27565 4.62111 5.64032 2.81963 4.0785 + 4.08197 3.60273 6.35628 6.65759 2.57564 3.60273 5.10017 2.57567 7.80009 3.60273 5.10017 + 6.83834 5.34001 4.86126 4.62109 2.57567 2.57567 3.5865 ] pdfxs + 62.7598 592.26 m + (Figure4\(e\)showstheexamplecodetransformedbypool) + [6.00161 2.57565 4.62111 5.10016 3.59993 7.25865 4.62111 3.60274 4.07849 6.72266 3.65645 + 5.10016 4.38096 6.65758 6.77629 3.60275 5.10016 7.25865 4.0785 4.85621 4.62111 7.67578 + 5.10016 2.57564 7.25857 4.08197 4.86095 5.10016 7.25865 3.60273 3.59993 4.62109 5.10017 + 3.65645 2.81963 4.62109 3.59993 7.67579 4.0785 8.28031 4.86033 8.03604 5.34001 4.86126 + 4.62109 2.57567 ] pdfxs + 53.8196 581.76 m + (allocation.Becausethe) + [4.62111 2.57565 2.57565 4.86096 4.08196 4.62111 3.60274 2.57565 4.62111 5.10016 9.83548 + 6.54066 4.07849 4.08197 4.62111 5.10016 3.65645 8.2185 3.60275 5.10016 4.07849 ] pdfxs + 156.18 581.76 m + /N15 8.96638 Tf + (MakeList) + [4.67994 4.67993 4.67994 4.67993 4.67994 4.67994 4.67993 4.67994 ] pdfxs + 198 581.76 m + /N17 8.96638 Tf + (functionallocatesheap) + [2.81964 5.10017 5.10017 4.08197 3.60273 2.57567 4.62109 9.30016 4.62109 2.57567 2.57567 + 4.86094 4.08197 4.62109 3.60273 4.0785 7.73635 5.10017 4.0785 4.62109 5.10017 ] pdfxs + 53.8195 571.32 m + (memoryandreturnsit\(thusescapingfromthefunction\),a) + [7.67578 4.07849 7.67578 4.62111 3.59993 7.8562 4.62111 5.10016 8.10015 3.59993 4.0785 + 3.60275 5.10015 3.59993 5.10016 6.65645 2.57565 6.54266 3.60275 3.60275 4.86031 5.10016 + 6.59644 4.0785 3.65645 4.08196 4.62112 5.10016 2.57564 5.10016 7.62109 2.81963 3.59993 + 4.62109 10.6758 3.60273 5.10017 7.0785 2.81963 5.10017 5.10017 4.08197 3.60273 2.57567 + 4.62109 5.10017 3.60273 5.57566 4.62109 ] pdfxs + 53.8195 560.88 m + (pooldescriptorargumentisaddedtothefunctionindicati) + [5.34 4.86127 4.62111 4.97564 5.10016 4.07849 3.65644 4.08196 3.59992 2.57565 5.10015 + 3.60275 4.62111 5.99985 4.62111 3.59993 4.62112 5.10016 7.67576 4.0785 4.86031 6.0629 + 2.57565 5.99652 4.62111 5.10016 5.10016 4.0785 7.56031 3.60275 7.02103 3.60273 5.10017 + 6.53834 2.81963 5.10017 5.10017 4.08197 3.60273 2.57567 4.62109 7.50017 2.57567 5.10017 + 5.10017 2.57567 4.08195 4.62109 3.60273 2.57567 ] pdfxs + (n) show + 288.299 560.88 m + (g) show + 53.8195 550.38 m + (thepoolofmemorytoallocatefrom.Ifafunctioncalls) + [3.60274 5.10016 8.45864 5.34 4.86127 4.62111 6.95572 4.62111 7.13978 7.67578 4.07849 + 7.67578 4.62111 3.59993 9.23621 3.60275 8.94095 4.62111 2.57565 2.57565 4.86095 4.08197 + 4.62111 3.60275 8.3985 2.81964 3.59993 4.62112 7.67576 10.5557 3.30018 7.19962 9.00109 + 2.81963 5.10017 5.10017 4.08197 3.60273 2.57567 4.62109 9.48024 4.08197 4.62109 2.57567 + 2.57567 3.65642 ] pdfxs + 53.8195 539.94 m + (anyotherfunctionsthatrequirepoolarguments\(e.g.as) + [4.62111 4.86023 9.05636 4.62111 3.60274 5.10016 4.07849 7.91984 2.81964 5.10016 5.10016 + 4.08197 3.60275 2.57564 4.62112 5.10016 7.8566 3.60275 5.10016 4.62111 7.86282 3.59993 + 4.0785 4.85621 5.10016 2.57564 3.59993 8.33865 5.34 4.86127 4.62109 6.83582 4.62109 + 3.59993 4.62109 5.10017 7.67579 4.0785 4.86033 3.60273 7.91636 3.60273 4.0785 2.57567 + 4.62109 10.1356 4.62109 3.65645 ] pdfxs + 53.8195 529.5 m + /N15 8.96638 Tf + (Testlists) + [4.67993 4.67993 4.67994 4.67993 4.67993 4.67993 4.67993 4.67993 4.67994 ] pdfxs + 99.0593 529.5 m + /N17 8.96638 Tf + (calls) + [4.08197 4.62111 2.57565 2.57564 3.65645 ] pdfxs + 119.399 529.5 m + /N15 8.96638 Tf + (MakeList) + [4.67994 4.67993 4.67994 4.67993 4.67994 4.67994 4.67993 4.67994 ] pdfxs + 156.839 529.5 m + /N17 8.96638 Tf + (\),pooldescriptorsarepassedinto) + [3.60275 5.69564 5.34 4.86127 4.62111 5.45573 5.10016 4.0785 3.65645 4.08196 3.59993 + 2.57567 5.10017 3.60273 4.62109 3.59993 6.53659 4.62109 3.59993 6.95858 5.10017 4.62109 + 3.65645 3.65642 4.0785 7.98017 2.57567 4.86001 3.60273 4.62109 ] pdfxs + 53.8189 519 m + (thefunctioncall.The) + [3.60274 5.10016 6.29849 2.81964 5.10016 5.10016 4.08196 3.60274 2.57565 4.62111 7.38023 + 4.08197 4.62111 2.57565 2.57564 6.29581 6.65758 5.10016 4.0785 ] pdfxs + 142.379 519 m + /N15 8.96638 Tf + (length) + [4.67994 4.67993 4.67994 4.67993 4.67994 4.67994 ] pdfxs + 172.859 519 m + /N17 8.96638 Tf + (functionisunmodi\fedbypool) + [2.81964 5.10016 5.10016 4.08197 3.60275 2.57564 4.62112 7.32009 2.57567 5.87658 5.10017 + 5.10017 7.67579 4.86094 5.10017 2.57567 5.10017 4.0785 7.38 4.86033 7.13604 5.34001 + 4.86126 4.62109 2.57567 ] pdfxs + 53.8192 508.56 m + (allocationbecauseitdoesnotallocateorfreeanymemory) + [4.62111 2.57565 2.57565 4.86096 4.08196 4.62111 3.60274 2.57565 4.62111 8.46031 5.34 + 4.0785 4.08196 4.62112 5.10015 3.65646 7.61865 2.57565 7.02274 5.10016 4.86127 4.0785 + 7.0766 5.10016 4.62111 7.08274 4.62111 2.57565 2.57565 4.86095 4.08197 4.62111 3.60273 + 7.43834 4.62109 7.07993 2.81963 3.59993 4.0785 7.55865 4.62109 4.86025 8.27627 7.67579 + 4.0785 7.67576 4.62112 3.59993 4.85619 ] pdfxs + 53.8192 498.12 m + (\(nordoanycallees\).Notethatpoolallocationdoesnot) + [3.60274 5.10016 4.62111 7.91976 5.10016 8.94095 4.62111 4.86023 9.23605 4.08197 4.62111 + 2.57565 2.57564 4.0785 4.07849 3.65645 3.60275 10.3758 6.90289 4.62111 3.60275 8.45857 + 3.60275 5.10016 4.62111 7.92259 5.34 4.86127 4.62109 6.89559 4.62109 2.57567 2.57567 + 4.86094 4.08197 4.62109 3.60273 2.57567 4.62109 9.36032 5.10017 4.86126 4.0785 8.03634 + 5.10017 4.62109 3.60273 ] pdfxs + 53.8192 487.62 m + (requiretype-safety,allowingittopoolallocatethe\\B"li) + [3.59993 4.07849 4.8562 5.10016 2.57565 3.59993 7.01834 3.3629 4.8562 5.34016 4.07849 + 3.06374 3.65645 4.62111 2.81965 4.07849 3.36283 4.07629 5.4558 4.62111 2.57565 2.57565 + 4.38126 6.65758 2.57565 5.10016 7.44118 2.57565 6.42274 3.60275 7.5011 5.34 4.86127 + 4.62111 5.51551 4.62109 2.57567 2.57567 4.86094 4.08197 4.62109 3.60273 6.89849 3.60273 + 5.10017 7.01842 4.62109 6.54068 7.44108 2.57567 2.55545 ] pdfxs + 283.139 487.62 m + (st.) + [3.65642 3.60273 2.57567 ] pdfxs + 62.7592 477.18 m + (AutomaticPoolAllocation,combinedwithDSA,provides) + [6.9029 5.10016 3.60274 4.62111 7.67578 4.62111 3.60274 2.57565 6.42188 6.05683 4.86127 + 4.62111 4.85573 6.90289 2.57565 2.57564 4.86104 4.08197 4.62111 3.60275 2.57564 4.62112 + 5.10016 4.97572 4.08197 4.62111 7.43562 5.10016 2.57565 5.10015 4.0785 7.50031 6.65759 + 2.57564 3.60273 7.44025 7.0198 5.10017 6.90289 4.97567 5.10017 3.59993 4.38118 4.85621 + 2.57564 5.10017 4.0785 3.65645 ] pdfxs + 53.819 466.74 m + (somekeypropertiesforthiswork:) + [3.65644 4.62111 7.67578 7.13849 4.61613 4.07849 7.9162 5.10016 3.59993 4.62111 5.34032 + 4.0785 3.59993 3.60275 2.57564 4.0785 6.77636 2.81964 4.62112 6.65992 3.60275 5.10016 + 2.57564 6.65645 6.4175 4.62111 3.59993 4.85622 2.57564 ] pdfxs + 67.1389 449.04 m + /N13 8.96638 Tf + (\017) show + 76.1991 449.04 m + /N17 8.96638 Tf + (Becauseofthecontext-sensitivityofDSA,Automatic) + [6.54066 4.0785 4.08196 4.62111 5.10015 3.65645 7.25835 4.62111 5.9398 3.60275 5.10016 + 7.25865 4.08197 4.62111 4.86031 3.60275 4.0785 4.85621 3.60275 3.06372 3.65645 4.0785 + 5.10016 3.65645 2.57564 3.60275 2.57565 4.85621 2.57565 3.36289 7.91612 4.62109 5.93978 + 7.0198 5.10017 6.90289 5.75574 6.90289 5.10017 3.60273 4.62109 7.67579 4.62109 3.60273 + 2.57567 4.08197 ] pdfxs + 76.1991 438.6 m + (PoolAllocationwillsegregateobjectsfromdistinct) + [6.05683 4.86127 4.62111 7.25572 6.90289 2.57565 2.57564 4.86104 4.08197 4.62111 3.60275 + 2.57564 4.62112 9.78023 6.65758 2.57565 2.57564 7.25573 3.65645 4.0785 4.62111 3.59993 + 4.0785 4.62111 4.62111 3.60275 8.8185 4.62109 5.64033 2.81963 4.0785 4.08197 3.60273 + 8.39651 2.81963 3.59993 4.62109 12.3558 5.10017 2.57567 3.65642 3.60273 2.57567 5.10017 + 4.08197 3.60273 ] pdfxs + 76.1991 428.1 m + (datastructures\(identi\fedbyDSA\)intodi\013erent) + [5.10016 4.62111 3.60274 10.7413 3.65645 3.60275 3.59993 5.10016 4.08197 3.60275 5.10016 + 3.59993 4.07849 9.77644 3.60275 2.57565 5.10015 4.0785 4.86008 3.60275 2.57565 5.10015 + 4.0785 11.2202 4.86031 10.9763 7.0198 5.10017 6.90289 9.72257 2.57567 4.86001 3.60273 + 10.7409 5.10017 2.57567 5.40425 4.0785 3.59993 4.07848 4.86018 3.60273 ] pdfxs + 76.1991 417.66 m + (pools.Forexample,lists) + [5.34 4.86127 4.62111 2.57565 3.65644 6.5958 5.22153 4.62111 6.47993 4.0785 4.85621 + 4.62111 7.67578 5.10016 2.57564 4.0785 5.4558 2.57565 2.57564 3.65645 3.60275 3.65645 + ] pdfxs + 177.479 417.66 m + /N31 8.96638 Tf + (A) show + 187.199 417.66 m + /N17 8.96638 Tf + (and) + [4.62111 5.10016 5.10016 ] pdfxs + 204.899 417.66 m + /N31 8.96638 Tf + (B) show + 215.219 417.66 m + /N17 8.96638 Tf + (areallocatedoutof) + [4.62109 3.59993 6.89842 4.62109 2.57567 2.57567 4.86094 4.08197 4.62109 3.60273 4.0785 + 7.98032 4.62109 5.10017 6.42258 4.62109 2.81963 ] pdfxs + 76.1988 407.22 m + (distinctpoolsinFigure4\(e\).) + [5.10016 2.57565 3.65644 3.60274 2.57565 5.10016 4.08197 6.6629 5.34 4.86127 4.62111 + 2.57565 6.71637 2.57565 8.15999 6.00161 2.57564 4.62112 5.10016 3.59993 7.13833 4.62111 + 3.60275 4.0785 3.60275 2.57564 ] pdfxs + 67.1387 389.46 m + /N13 8.96638 Tf + (\017) show + 76.1988 389.46 m + /N17 8.96638 Tf + (Becauseofthe\\single-target"propertyofDSgraphs,) + [6.54066 4.0785 4.08196 4.62111 5.10015 3.65645 7.25835 4.62111 5.9398 3.60275 5.10016 + 7.1985 4.62111 3.65646 2.57564 5.10016 4.62111 2.57565 4.0785 3.06372 3.60275 4.62111 + 3.59993 4.62111 4.0785 3.60275 7.68111 5.10017 3.59993 4.62109 5.34033 4.0785 3.59993 + 3.36257 8.03604 4.62109 5.87963 7.0198 8.28017 4.62109 3.59993 4.62109 5.10017 5.10017 + 3.65645 2.57567 ] pdfxs + 76.1988 379.02 m + (AutomaticPoolAllocationguaranteesthateveryvari-) + [6.9029 5.10016 3.60274 4.62111 7.67578 4.62111 3.60275 2.57565 6.60196 6.05683 4.86127 + 4.62111 5.03581 6.90289 2.57565 2.57564 4.86104 4.08197 4.62111 3.60275 2.57564 4.62112 + 7.62007 4.62111 5.10016 4.62112 3.59993 4.62112 4.86008 3.60273 4.0785 4.0785 6.17627 + 3.60273 5.10017 4.62109 6.12258 4.0785 4.6162 4.0785 3.59993 7.37634 4.31612 4.62109 + 3.59993 2.57567 3.06375 ] pdfxs + 76.1988 368.52 m + (ableor\feldpointingintotheheappointstoasingle) + [4.62111 5.10016 2.57565 7.55864 4.62111 7.01976 5.10016 4.0785 2.57564 8.64015 5.34 + 4.62111 2.57565 4.86031 3.60275 2.57565 5.10015 8.04103 2.57565 4.86 3.60275 8.04095 + 3.60275 5.10016 7.55865 5.10017 4.0785 4.62109 8.58024 5.34001 4.62109 2.57567 4.86033 + 3.60273 7.07651 3.60273 8.04093 8.04093 3.65645 2.57564 5.10017 4.62112 2.57564 4.0785 + ] pdfxs + 76.1988 358.081 m + (pool,knownatcompiletime.Thisensuresthatthe) + [5.34 4.86127 4.62111 2.57565 6.71557 4.85621 5.10016 4.38096 6.65758 9.00031 4.62111 + 7.50267 4.08197 4.62111 7.67576 5.10016 2.57565 2.57565 7.97841 3.60275 2.57565 7.67576 + 4.0785 9.17556 6.65759 5.10017 2.57564 7.55645 4.0785 5.10017 3.65642 5.10017 3.59993 + 4.0785 7.55652 3.60273 5.10017 4.62109 7.50266 3.60273 5.10017 4.0785 ] pdfxs + 76.1988 347.641 m + (mappingbetweenapointerandapooldescriptordoes) + [7.67578 4.62111 5.10016 5.10016 2.57565 5.10016 7.32111 5.34 4.0785 3.36259 6.4175 + 4.0785 4.07849 7.86008 7.26126 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 6.3 + 4.62111 5.10016 7.80008 7.32101 5.34001 4.86126 4.62109 5.27567 5.10017 4.0785 3.65642 + 4.08197 3.59993 2.57567 5.10017 3.60273 4.62109 6.24009 5.10017 4.86126 4.0785 3.65642 + ] pdfxs + 76.1988 337.141 m + (nothavetobetrackeddynamically,whichcanbecom-) + [5.10016 4.62111 6.00266 5.10016 4.38119 4.61614 6.47857 3.60275 6.96126 5.34 6.47857 + 3.60275 3.59993 4.62111 3.84213 4.61614 4.0785 7.50023 5.10016 4.85621 5.10016 4.62111 + 7.67578 2.57565 4.08196 4.62109 2.57567 2.57567 4.07628 5.09566 6.65759 5.10017 2.57564 + 3.84205 7.50017 4.08197 4.62109 7.50017 5.34001 6.47857 4.08197 4.62109 7.67579 3.06372 + ] pdfxs + 76.1988 326.701 m + (plexandine\016cientforpointersstoredinmemory.) + [5.10016 2.57565 4.07849 7.97605 4.62111 5.10016 8.16024 2.57565 5.10016 4.07849 7.67578 + 4.08196 2.57565 4.07849 4.86001 6.72266 2.81964 4.62112 6.65992 5.34 4.62111 2.57565 + 4.86031 3.60275 4.0785 3.59993 6.71644 3.65645 3.60273 4.62109 3.59993 4.0785 8.16008 + 2.57567 8.16 7.67579 4.0785 7.67576 4.62112 3.59993 4.07604 2.57567 ] pdfxs + 76.1988 312.601 m + (Below,weuse) + [6.54066 4.0785 2.57565 4.38119 6.65758 5.2755 6.4175 6.77858 5.10016 3.65645 4.0785 + ] pdfxs + 134.459 312.601 m + /N31 8.96638 Tf + (Node) + [8.34349 4.44427 4.80438 4.26165 ] pdfxs + 156.298 312.601 m + /N17 8.96638 Tf + (\() show + 159.898 312.601 m + /N31 8.96638 Tf + (p) show + 164.518 312.601 m + /N17 8.96638 Tf + (\)fortheDSnodecorresponding) + [6.30274 2.81964 4.62112 6.24 3.60275 5.10016 6.77858 7.0198 7.86025 5.10017 4.86126 + 5.10017 6.83834 4.08197 4.62109 3.59993 3.59993 4.0785 3.65642 5.34026 4.62109 5.10017 + 5.10017 2.57567 5.10017 4.62109 ] pdfxs + 76.1988 302.161 m + (topointerexpression) + [3.60274 7.98118 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 6.95976 4.0785 4.85621 + 5.10016 3.59993 4.07849 3.65645 3.65646 2.57564 4.62112 5.10015 ] pdfxs + 164.519 302.161 m + /N31 8.96638 Tf + (p) show + 169.139 302.161 m + /N17 8.96638 Tf + (,) show + 175.199 302.161 m + /N31 8.96638 Tf + (Pool) + [7.13807 4.44427 4.44427 2.76268 ] pdfxs + 194.099 302.161 m + /N17 8.96638 Tf + (\() show + 197.699 302.161 m + /N31 8.96638 Tf + (n) show + 203.279 302.161 m + /N17 8.96638 Tf + (\)forthepooldescrip-) + [6.96288 2.81963 4.62109 6.95993 3.60273 5.10017 7.4985 5.34001 4.86126 4.62109 5.93582 + 5.10017 4.0785 3.65642 4.08197 3.59993 2.57567 5.10017 3.06372 ] pdfxs + 76.1987 291.661 m + (torcorrespondingtoDSnode) + [3.60274 4.62111 7.74008 4.08196 4.62111 3.59993 3.59993 4.07849 3.65646 5.34023 4.62111 + 5.10016 5.10016 2.57565 5.10016 8.82103 3.60275 8.7011 7.01981 9.30008 5.10016 4.86127 + 5.10016 4.0785 ] pdfxs + 204.359 291.661 m + /N31 8.96638 Tf + (n) show + 209.939 291.661 m + /N17 8.96638 Tf + (,and) + [6.95581 4.62109 5.10017 5.10017 ] pdfxs + 235.859 291.661 m + /N31 8.96638 Tf + (Pool) + [7.13806 4.44427 4.4443 2.76268 ] pdfxs + 254.759 291.661 m + /N17 8.96638 Tf + (\() show + 258.359 291.661 m + /N31 8.96638 Tf + (p) show + 262.979 291.661 m + /N17 8.96638 Tf + (\)asan) + [7.80273 4.62109 7.79636 4.62109 5.10017 ] pdfxs + 76.1988 281.221 m + (abbreviationfor) + [4.62111 5.10016 5.10016 3.59992 4.0785 4.85621 2.57565 4.62111 3.60275 2.57564 4.62112 + 8.16008 2.81964 4.62112 3.59993 ] pdfxs + 143.819 281.221 m + /N31 8.96638 Tf + (Pool) + [7.13807 4.44427 4.44427 2.76268 ] pdfxs + 162.719 281.221 m + /N17 8.96638 Tf + (\() show + 166.319 281.221 m + /N31 8.96638 Tf + (Node) + [8.34349 4.44427 4.80438 4.26165 ] pdfxs + 188.158 281.221 m + /N17 8.96638 Tf + (\() show + 191.758 281.221 m + /N31 8.96638 Tf + (p) show + 196.378 281.221 m + /N17 8.96638 Tf + (\)\).) + [3.60275 3.60275 2.57567 ] pdfxs + 67.1384 263.461 m + /N13 8.96638 Tf + (\017) show + 76.1985 263.461 m + /N17 8.96638 Tf + (ATHnode\(with) + [9.90289 6.65758 9.84289 5.10016 4.86127 5.10016 7.13833 3.60275 6.65758 2.57565 3.60275 + 5.10016 ] pdfxs + 149.218 263.461 m + /N31 8.96638 Tf + (\034) show + 156.898 263.461 m + /N13 8.96638 Tf + (6) show + 156.898 263.461 m + /N17 8.96638 Tf + (=) show + 166.618 263.461 m + /N13 8.96638 Tf + (?) show + 173.758 263.461 m + /N17 8.96638 Tf + (\)intheDSgraphgeneratesa) + [6.54258 2.57565 8.10015 3.60275 5.10016 7.07848 7.0198 8.10016 4.62109 3.59993 4.62109 + 5.10017 8.04025 4.62109 4.0785 5.10017 4.0785 3.59993 4.62109 3.60273 4.0785 6.65642 + 4.62109 ] pdfxs + 76.1983 253.021 m + (poolwhereallobjectsareoftype) + [5.34 4.86127 4.62111 5.39556 6.65758 5.10016 4.0785 3.59993 6.9585 4.62111 2.57565 + 5.33549 4.62111 5.64032 2.81964 4.0785 4.08197 3.60273 6.41645 4.62111 3.59993 6.89842 + 4.62111 5.6398 3.3629 4.85621 5.34016 4.0785 ] pdfxs + 212.458 253.021 m + /N31 8.96638 Tf + (\034) show + 220.318 253.021 m + /N17 8.96638 Tf + (or\(ifthe) + [4.62109 6.41978 3.60273 2.57567 5.57978 3.60273 5.10017 4.0785 ] pdfxs + 258.718 253.021 m + /N23 8.96638 Tf + (A) show + 269.579 253.021 m + /N17 8.96638 Tf + (\ragis) + [5.10017 4.62109 7.3811 2.57567 3.65642 ] pdfxs + 76.1986 242.581 m + (set\)arraysof) + [3.65644 4.07849 3.60274 6.54281 4.62111 3.59993 3.59992 4.38112 4.85621 6.53645 4.62111 + 2.81965 ] pdfxs + 132.059 242.581 m + /N31 8.96638 Tf + (\034) show + 137.159 242.581 m + /N17 8.96638 Tf + (.Everyindividual) + [6.6558 6.29667 4.61614 4.0785 3.59993 7.79628 2.57565 5.10016 5.10015 2.57565 4.85621 + 2.57565 5.10016 5.10016 4.62109 2.57567 ] pdfxs + 213.359 242.581 m + /N31 8.96638 Tf + (\034) show + 221.399 242.581 m + /N17 8.96638 Tf + (itemisidentically) + [2.57567 3.60273 4.0785 10.6158 2.57567 6.53635 2.57567 5.10017 4.0785 4.86008 3.60273 + 2.57567 4.08197 4.62109 2.57567 2.57564 4.85621 ] pdfxs + 76.1986 232.081 m + (aligned,i.e.,thecompilerknowstheexactlayoutof) + [4.62111 2.57565 2.57565 4.62111 5.10016 4.07849 5.10016 6.89573 2.57565 2.57564 4.0785 + 2.57564 6.83581 3.60275 5.10016 8.15865 4.08197 4.62111 7.67576 5.10016 2.57565 2.57565 + 4.07849 7.67993 4.85621 5.10016 4.38096 6.65759 7.67626 3.60273 5.10017 8.15865 4.0785 + 4.85619 4.62112 4.08195 7.68266 2.57567 4.38125 4.61612 4.62109 5.10017 7.62257 4.62109 + 2.81963 ] pdfxs + 76.1986 221.641 m + (itemsrelativetothepoolbase.) + [2.57565 3.60274 4.07849 7.67578 6.7166 3.59993 4.0785 2.57564 4.62111 3.60275 2.57565 + 4.61629 7.0785 3.60275 7.68118 3.60275 5.10016 7.1985 5.34 4.86127 4.62111 5.63581 + 5.10016 4.62111 3.65645 4.0785 2.57565 ] pdfxs + 53.8185 197.641 m + /N9 11.9552 Tf + (3.STATICPOINTERCOMPRESSION) + [6 14.8801 6.65999 6.90007 7.49982 7.97991 4.67991 11.5797 7.31991 9.3 4.67992 + 8.63982 7.9799 7.97991 11.5799 8.63982 9.3 11.2798 7.31991 8.63984 7.9799 6.66002 + 6.66002 4.67989 9.30001 8.63984 ] pdfxs + 62.7586 184.681 m + /N17 8.96638 Tf + (Staticpointercompressionreducesthesizeofpointersin) + [5.10016 3.60274 4.62111 3.60274 2.57565 7.14179 5.34 4.62111 2.57565 4.86031 3.60275 + 4.0785 6.71992 4.08197 4.62111 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 2.57565 + 4.62111 8.16 3.59993 4.0785 5.10015 5.10016 4.08197 4.0785 6.83652 3.60273 5.10017 + 7.1985 3.65645 2.57564 4.08197 7.13866 4.62109 5.87963 5.34001 4.62109 2.57567 4.86033 + 3.60273 4.0785 3.59993 6.77659 2.57567 5.10017 ] pdfxs + 53.8185 174.181 m + (datastructuresintwosteps.First,itreplacespointersi) + [5.10016 4.62111 3.60274 8.34126 3.65644 3.60274 3.59993 5.10016 4.08196 3.60274 5.10017 + 3.59993 4.07849 7.43661 2.57565 8.8803 3.3629 6.4175 8.34095 3.65645 3.60275 4.0785 + 5.10016 3.65645 8.69564 6.00161 2.57564 3.59993 3.65646 3.60275 6.47556 2.57567 7.32272 + 3.59993 4.0785 5.10017 2.57567 4.62109 4.08197 4.07848 7.43652 5.34001 4.62109 2.57567 + 4.86033 3.60273 4.0785 3.59993 7.43635 2.57567 ] pdfxs + (n) show + 53.8185 163.741 m + (datastructureswithintegersrepresentingo\013setsfromap) + [5.10016 4.62111 3.60274 6.7811 3.65644 3.60274 3.59993 5.10016 4.08196 3.60274 5.10017 + 3.59993 4.07849 5.81629 6.65758 2.57565 3.60275 7.26015 2.57565 4.86 3.60275 4.0785 + 4.62111 4.07849 3.59993 5.81646 3.59993 4.0785 5.10015 3.59993 4.0785 3.65645 4.0785 + 4.86031 3.60273 2.57567 5.10017 6.84102 4.62109 5.40425 3.65645 4.0785 3.60273 5.75635 + 2.81963 3.59993 4.62109 9.83587 6.84094 5.34001 ] pdfxs + (o) show + 285.719 163.741 m + (ol) + [4.62109 2.57567 ] pdfxs + 53.8185 153.301 m + (base\(i.e.,indexesintothepool\).Second,inordertocom-) + [5.10016 4.62111 3.65644 7.37864 3.60274 2.57565 2.57565 4.07849 2.57565 5.9358 2.57565 + 5.10017 5.10015 4.0785 4.85621 4.0785 7.01636 2.57565 4.86 3.60275 7.92103 3.60275 + 5.10016 7.4985 5.34 4.86127 4.62111 2.57565 3.60275 7.43549 5.10016 4.0785 4.08197 + 4.62109 5.10017 5.10017 6.0555 2.57567 8.46 4.62109 3.59993 5.10017 4.0785 6.96008 + 3.60273 7.92102 4.08197 4.62109 7.67579 3.06372 ] pdfxs + 53.8185 142.801 m + (pressthisindex,itattemptstoselectanintegertypethati) + [5.10016 3.59993 4.07849 3.65644 6.29629 3.60274 5.10016 2.57565 6.29652 2.57565 5.10016 + 5.10016 4.0785 4.85621 5.39557 2.57565 6.24266 4.62111 3.60275 3.60275 4.0785 7.67576 + 5.10016 3.60275 6.29653 3.60275 7.26126 3.65645 4.0785 2.57564 4.0785 4.08196 6.24267 + 4.62109 7.80009 2.57567 4.86001 3.60273 4.0785 4.62109 4.0785 6.3 3.36289 4.85621 + 5.34016 6.77858 3.60273 5.10017 4.62109 6.24289 2.55545 ] pdfxs + 289.258 142.801 m + (s) show + 53.8185 132.362 m + (smallerthanthepointersize\(e.g.byusinga32-bitintege) + [3.65644 7.67578 4.62111 2.57565 2.57565 4.0785 6.66009 3.60274 5.10016 4.62111 8.22 + 3.60275 5.10016 7.1985 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 6.71992 3.65645 + 2.57565 4.08196 7.19842 3.60275 4.0785 2.57564 4.62111 6.7758 4.86031 7.97628 5.10017 + 3.65645 2.57564 5.10017 7.74118 7.68118 4.62109 4.62109 3.06375 5.10017 2.57567 6.72273 + 2.57567 4.86001 3.60273 4.0785 4.62109 4.0785 ] pdfxs + (r) show + 53.8185 121.921 m + (ona64-bithost\).Werefertotheseas\\indexconversion") + [4.62111 8.64031 8.16126 4.62111 4.62111 3.06372 5.10016 2.57565 7.0829 5.10016 4.62111 + 3.65645 3.60275 3.60275 8.03557 8.69858 7.61841 3.59993 4.0785 2.81964 4.07849 7.20001 + 3.60275 8.10111 3.60275 5.10016 4.07849 3.65646 7.61865 4.62109 7.19636 4.62109 2.57567 + 5.10017 5.10017 4.0785 8.39627 4.08197 4.62109 4.86033 4.61612 4.0785 3.59993 3.65642 + 2.57567 4.62109 5.10017 4.62109 ] pdfxs + 53.8185 111.421 m + (and\\indexcompression"respectively.Thelatterstepmay) + [4.62111 5.10016 8.40007 4.62111 2.57565 5.10016 5.10016 4.07849 8.15604 4.08197 4.62111 + 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 2.57565 4.62111 5.10016 7.86096 3.59993 + 4.0785 3.65645 5.34023 4.0785 4.08196 3.60275 2.57565 4.61637 4.0785 2.57564 4.07606 + 7.25581 6.65759 5.10017 7.37833 2.57567 4.62109 3.60273 3.60273 4.0785 6.83984 3.65645 + 3.60273 4.07848 8.34025 7.67579 4.38125 4.85621 ] pdfxs + 53.8185 100.982 m + (failbecauseitrequiressomewhatstrongersafetyguaran-) + [2.81964 4.62111 2.57565 6.89557 5.34 4.07849 4.08196 4.62111 5.10016 3.65644 8.57841 + 2.57565 7.98289 3.59993 4.0785 4.85621 5.10016 2.57564 3.59993 4.0785 8.09645 3.65645 + 4.62112 7.67576 4.0785 6.65758 5.10016 4.62111 7.98274 3.65645 3.60275 3.59993 4.62109 + 5.10017 4.62109 4.0785 7.98007 3.65645 4.62109 2.81963 4.0785 3.36257 9.17627 4.62109 + 5.10017 4.62109 3.59993 4.62112 5.10017 3.06372 ] pdfxs + 53.8185 90.5418 m + (tees) + [3.60274 4.07849 4.07849 3.65645 ] pdfxs + 69.2384 94.3218 m + /N21 5.97748 Tf + (2) show + 73.3786 90.5418 m + /N17 8.96638 Tf + (.) show + Q + n + 538 850 956.398 4.19922 re + [/DeviceGray] cs 0 sc + f + q + 10 0 0 10 0 0 cm + 54.3 78.4801 m + /N21 5.97748 Tf + (2) show + 58.3801 74.7001 m + /N33 6.97377 Tf + (Notethatindexconversionalonemayalsobeusefulforpurpo) + [5.87814 3.95687 3.11698 7.02039 3.11698 4.38027 3.95687 6.53694 2.27709 4.38027 4.38029 + 3.54036 7.61855 3.54036 3.95687 4.14013 3.95876 3.54036 3.11698 3.18293 2.27709 3.95687 + 7.86009 3.95687 2.2771 3.95687 4.38029 6.96015 6.53651 3.71703 7.67863 3.95687 2.2771 + 3.18292 7.31667 4.6202 6.96048 4.38029 3.18292 3.54035 2.45885 4.38026 5.75706 2.45885 + 3.95685 6.53711 4.38029 4.38029 3.11698 4.62027 3.96808 ] pdfxs + 283.02 74.7001 m + (ses) + [3.18289 3.54037 3.18292 ] pdfxs + 325.8 728.22 m + /N17 8.96638 Tf + (Staticpointercompressionwillcausearuntimeerrorif) + [5.10017 3.60273 4.62109 3.60273 2.57567 8.0418 5.34001 4.62109 2.57567 4.86033 3.60273 + 4.0785 7.68007 4.08197 4.62109 7.67579 5.10017 3.59988 4.0785 3.65647 3.65642 2.57567 + 4.62109 9.06002 6.65759 2.57562 2.57567 6.59553 4.08192 4.62114 5.10017 3.65647 8.09862 + 8.64096 3.59993 5.10017 4.86033 3.60276 2.57562 7.67579 8.09862 4.07845 3.59993 3.59993 + 4.62114 7.68 2.57562 2.81965 ] pdfxs + 316.8 717.78 m + (theprogramallocatesmorethan2) + [3.60273 5.10017 6.71842 5.10017 3.59993 4.62109 4.62109 3.59993 4.62112 10.2557 4.62109 + 2.57567 2.57567 4.86094 4.08197 4.62109 3.60273 4.0785 6.17658 7.67525 4.62114 3.59993 + 6.65862 3.60276 5.10017 4.62114 7.7403 4.62114 ] pdfxs + 454.08 721.56 m + /N29 5.97748 Tf + (k) show + 461.22 717.78 m + /N17 8.96638 Tf + (bytesfromasinglepool) + [4.86033 4.85623 3.60276 4.07845 6.23655 2.81965 3.59993 4.62109 10.2558 7.20112 3.65647 + 2.57562 5.10017 4.62114 2.57562 6.59832 5.34001 4.86128 4.62114 2.57562 ] pdfxs + 316.8 707.34 m + (using) + [5.10017 3.65645 2.57564 5.10017 4.62112 ] pdfxs + 340.139 707.34 m + /N31 8.96638 Tf + (k) show + 345.179 707.34 m + /N17 8.96638 Tf + (-bitindices.Techniquestodealwiththisinthestatic) + [3.06375 5.10017 2.57564 5.94282 2.57567 5.10017 5.10017 2.57567 4.08195 4.0785 3.65645 + 6.41565 5.87766 4.0785 3.84188 5.10017 5.10017 2.57562 4.85623 5.10017 4.0785 6.05651 + 3.60276 6.90112 5.10017 4.07845 4.62114 4.85579 6.65759 2.57562 3.60276 7.3801 3.60276 + 5.10017 2.57562 5.9364 2.57562 7.44011 3.60276 5.10017 6.35863 3.65647 3.60276 4.62109 + 3.60276 2.57567 4.08192 ] pdfxs + 316.8 696.84 m + (casearediscussedbrie\ryinSection3.5.Alternatively,t) + [4.08197 4.62109 3.65645 7.31856 4.62109 3.59993 7.31834 5.10017 2.57567 3.65642 4.08197 + 5.10017 3.65645 3.65642 4.0785 8.34033 5.10017 3.59993 2.57567 4.0785 5.10017 8.15613 + 2.57562 8.3401 5.10017 4.07845 4.08197 3.60276 2.57562 4.62114 8.34016 4.62114 2.57562 + 4.62114 7.13577 6.90289 2.57562 3.60276 4.0785 3.59993 5.10017 4.62109 3.60276 2.57567 + 4.61629 4.07845 2.57567 4.07606 5.81556 3.60276 ] pdfxs + (h) show + 549.72 696.84 m + (is) + [2.57562 3.65647 ] pdfxs + 316.8 686.4 m + (problemissolvedbythedynamicalgorithminSection4,) + [5.10017 3.59993 4.62109 5.10017 2.57567 4.0785 11.6958 2.57567 7.61643 3.65645 4.62109 + 2.57567 4.61627 4.0785 9.06 4.86033 8.87627 3.60276 5.10017 8.09847 5.10017 4.85623 + 5.10017 4.62109 7.67579 2.57562 8.10179 4.62114 2.57562 4.62114 4.62109 3.59993 2.57567 + 3.60276 5.10017 11.5752 2.57562 9.12019 5.10017 4.07845 4.08197 3.60276 2.57562 4.62114 + 9.12023 4.62114 2.57562 ] pdfxs + 316.8 675.96 m + (butthatalgorithmismorerestrictiveinitsapplicability.) + [5.10017 5.10017 6.72265 3.60273 5.10017 4.62109 6.66281 4.62109 2.57567 4.62109 4.62109 + 3.59993 2.57567 3.60273 5.10017 10.6758 2.57567 6.65642 7.67525 4.62114 3.59993 7.13832 + 3.59993 4.07845 3.65647 3.60276 3.59993 2.57567 4.08192 3.60276 2.57562 4.61624 7.13832 + 2.57562 8.16003 2.57562 3.60276 6.65647 4.62114 5.10017 5.10017 2.57562 2.57562 4.08197 + 4.62109 5.10017 2.57567 2.57562 2.57567 3.36282 4.0763 2.55545 ] pdfxs + 325.8 665.46 m + (ForourlistexampleofFigure4\(a\),thestaticpointercom-) + [5.22155 4.62109 5.81977 4.62109 5.10017 5.87993 2.57567 2.57567 3.65642 5.76281 4.0785 + 4.85619 4.62112 7.67576 5.10017 2.57567 6.35858 4.62114 5.03977 6.0016 2.57562 4.62114 + 5.10017 3.59993 6.35863 4.62114 3.60276 4.62109 3.60276 4.9158 3.60276 5.10017 6.29847 + 3.65647 3.60276 4.62109 3.60276 2.57567 6.24193 5.34001 4.62114 2.57562 4.86033 3.60276 + 4.07845 5.8801 4.08192 4.62114 7.67525 3.06372 ] pdfxs + 316.8 655.02 m + (pressiontransformationtransformsthecodetothatinFig-) + [5.10017 3.59993 4.0785 3.65642 3.65645 2.57567 4.62109 8.10016 3.60273 3.59993 4.62109 + 5.10017 3.65645 2.81963 4.62109 3.59993 7.67579 4.62109 3.60273 2.57567 4.62109 8.0403 + 3.60276 3.59993 4.62114 5.10017 3.65642 2.81965 4.62114 3.59993 7.67525 6.59646 3.60276 + 5.10017 7.13832 4.08192 4.86099 5.10017 7.13832 3.60276 7.56128 3.60276 5.10017 4.62114 + 6.60276 2.57562 8.10016 6.0016 2.57562 4.62114 3.06372 ] pdfxs + 316.8 644.58 m + (ure5.Boththe) + [5.10017 3.59993 7.73834 4.62109 8.15574 6.54066 4.62112 3.60273 8.64015 3.60273 5.10017 + 4.0785 ] pdfxs + 385.8 644.58 m + /N15 8.96638 Tf + (A) show + 394.08 644.58 m + /N17 8.96638 Tf + (and) + [4.62109 5.10017 5.10017 ] pdfxs + 412.5 644.58 m + /N15 8.96638 Tf + (B) show + 420.839 644.58 m + /N17 8.96638 Tf + (listsareindex-converted.Indices) + [2.57562 2.57567 3.65647 3.60276 7.07644 4.62114 3.59993 7.67845 2.57562 5.10017 5.10017 + 4.0785 4.85623 3.06367 4.08197 4.62109 4.86003 4.61615 4.07845 3.59993 3.60276 4.0785 + 5.10017 8.27546 3.30018 5.10017 5.10017 2.57562 4.08197 4.07845 3.65647 ] pdfxs + 316.799 634.08 m + (inthe) + [2.57567 9.00023 3.60273 5.10017 4.0785 ] pdfxs + 345.06 634.08 m + /N15 8.96638 Tf + (A) show + 353.64 634.08 m + /N17 8.96638 Tf + (listtoitselfarecompressedwhereasthoseinthe) + [2.57567 2.57567 3.65642 7.44289 3.60273 8.46125 2.57567 3.60273 3.65642 4.0785 2.57567 + 6.65979 4.62114 3.59993 7.97845 4.08192 4.62114 7.67525 5.10017 3.59993 4.0785 3.65647 + 3.65642 4.0785 9.00031 6.65759 5.10017 4.07845 3.59993 4.0785 4.62109 7.61662 3.60276 + 5.10017 4.62114 3.65642 7.91849 2.57562 9.00026 3.60276 5.10017 4.07845 ] pdfxs + 316.799 623.64 m + /N15 8.96638 Tf + (B) show + 325.619 623.64 m + /N17 8.96638 Tf + (listtoitselfarenot,forreasonsexplainedbelow.This) + [2.57567 2.57567 3.65642 7.62257 3.60273 8.70109 2.57567 3.60273 3.65642 4.0785 2.57567 + 6.83947 4.62109 3.59993 8.21834 5.10017 4.62109 3.60273 6.89559 2.81965 4.62109 7.67986 + 3.59993 4.07845 4.62114 3.65647 4.62109 5.10017 7.7364 4.07845 4.85623 5.10017 2.57567 + 4.62109 2.57567 5.10017 4.07845 9.24 5.34001 4.07845 2.57567 4.38096 6.65759 9.77546 + 6.65759 5.10017 2.57562 3.65647 ] pdfxs + 316.799 613.2 m + (alsorequiresthatdistinctfunctionbodiesbeusedforthe) + [4.62109 2.57567 3.65645 7.62109 3.59993 4.0785 4.85619 5.10017 2.57567 3.59993 4.0785 + 6.65642 3.60273 5.10017 4.62109 6.66281 5.10017 2.57567 3.65642 3.60273 2.57567 5.10017 + 4.08192 6.5426 2.81965 5.10017 5.10017 4.08192 3.60276 2.57562 4.62114 8.16032 5.34001 + 4.86128 5.10017 2.57562 4.0785 6.71653 5.34001 7.19847 5.10017 3.65647 4.07845 8.16017 + 2.81965 4.62109 6.59992 3.60276 5.10017 4.07845 ] pdfxs + 551.219 613.2 m + /N15 8.96638 Tf + (A) show + 316.799 602.7 m + /N17 8.96638 Tf + (and) + [4.62109 5.10017 5.10017 ] pdfxs + 335.16 602.7 m + /N15 8.96638 Tf + (B) show + 343.379 602.7 m + /N17 8.96638 Tf + (lists\(thosefortheformerareshown\).Byshrinking) + [2.57567 2.57567 3.65642 3.60273 7.01628 3.60273 3.60273 5.10017 4.62109 3.65645 7.55833 + 2.81963 4.62109 7.07986 3.60273 5.10017 7.55862 2.81965 4.62109 3.59993 7.67579 4.07845 + 7.13977 4.62114 3.59993 7.55853 3.65647 5.10017 4.38096 6.65759 5.10017 3.60276 7.85555 + 6.54063 8.3363 3.65647 5.10017 3.59993 2.57562 5.10017 4.85623 2.57562 5.10017 4.62114 + ] pdfxs + 316.799 592.261 m + (pointersfrom64-bitsto32-bits\(whichalsoreducesintra-) + [5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 3.59993 7.55627 2.81963 3.59993 4.62109 + 11.5757 4.62109 4.62109 3.06375 5.10017 2.57567 3.60273 7.49651 3.60276 8.46128 4.62114 + 4.62109 3.06372 5.10017 2.57562 3.60276 7.49655 3.60276 6.65759 5.10017 2.57562 3.84203 + 9.00016 4.62114 2.57562 3.65647 8.46103 3.59993 4.07845 5.10017 5.10017 4.08197 4.07845 + 7.61662 2.57562 4.86003 3.60276 3.59993 4.62114 3.07549 ] pdfxs + 316.799 581.761 m + (objectpaddingforalignmentconstraints\),eachobjectof) + [4.62109 5.64033 2.81963 4.0785 4.08197 8.04264 5.10017 4.62109 5.10017 5.10017 2.57567 + 5.10017 9.06125 2.81963 4.62109 8.04001 4.62109 2.57567 2.57567 4.62109 5.10017 7.67525 + 4.0785 4.86008 7.98283 4.08192 4.62114 5.10017 3.65647 3.60276 3.59993 4.62109 2.57567 + 4.86008 3.60276 3.65647 3.60276 7.25554 4.07845 4.62114 3.84179 9.54 4.62114 5.6403 + 2.81965 4.07845 4.08192 8.04269 4.62114 2.8196 ] pdfxs + 316.799 571.32 m + (the) + [3.60273 5.10017 4.0785 ] pdfxs + 332.219 571.32 m + /N15 8.96638 Tf + (A) show + 339.539 571.32 m + /N17 8.96638 Tf + (listisreducedfrom16to8bytes{e\013ectivelyreducing) + [2.57567 2.57567 3.65642 6.06282 2.57567 6.23635 3.59993 4.0785 5.10017 5.10017 4.08197 + 4.07848 7.80002 2.81963 3.59993 4.62109 10.2558 4.62114 7.20103 3.60276 7.20112 7.20112 + 4.86033 4.85623 3.60276 4.07845 6.23655 7.20112 4.07845 5.40425 4.0785 4.08192 3.60276 + 2.57567 4.61605 4.07845 2.57567 7.43621 3.59993 4.07845 5.10017 5.10017 4.08197 2.57562 + 5.10017 4.62114 ] pdfxs + 316.799 560.881 m + (thecachefootprintandbandwidthrequirementbyhalffor) + [3.60273 5.10017 7.4985 4.08197 4.62109 3.84181 5.10017 7.4985 2.81963 4.86118 4.62109 + 3.60273 5.10017 3.59993 2.57567 4.86033 6.96288 4.62109 5.10017 8.51999 5.10017 4.62114 + 5.10017 5.10017 6.65754 2.57567 5.10017 3.60276 8.52023 3.59993 4.07845 4.85623 5.10017 + 2.57567 3.59993 4.07845 7.67525 4.0785 4.86008 7.02268 4.86033 8.21614 5.10017 4.62114 + 2.57562 6.17971 2.81965 4.62109 3.59993 ] pdfxs + 316.799 550.381 m + (thesenodes.Thedynamicmemorylayoutofthe) + [3.60273 5.10017 4.0785 3.65642 8.09835 5.10017 4.86126 5.10017 4.0785 3.65642 9.35566 + 6.65759 5.10017 8.03849 5.10017 4.85621 5.10017 4.62109 7.67579 2.57562 8.10179 7.67525 + 4.0785 7.67525 4.62114 3.59993 8.81628 2.57562 4.3813 4.61615 4.62114 5.10017 7.50266 + 4.62114 6.71945 3.60276 5.10017 4.07845 ] pdfxs + 524.759 550.381 m + /N15 8.96638 Tf + (A) show + 533.399 550.381 m + /N17 8.96638 Tf + (listis) + [2.57562 2.57567 3.65647 7.50266 2.57562 3.65647 ] pdfxs + 316.799 539.94 m + (transformedfromthatofFigure3toFigure2.) + [3.60273 3.59993 4.62109 5.10017 3.65645 2.81963 4.62109 3.59993 7.67579 4.0785 8.16 + 2.81963 3.59993 4.62109 10.7359 3.60273 5.10017 4.62109 6.66281 4.62114 5.87961 6.0016 + 2.57562 4.62114 5.10017 3.59993 7.19847 7.68119 3.60276 7.62114 6.0016 2.57562 4.62114 + 5.10017 3.59993 7.19847 4.62114 2.57562 ] pdfxs + 325.799 529.501 m + (Below,we\frstdescribechangesrequiredtothepoolal-) + [6.54066 4.0785 2.57567 4.38118 6.65759 6.11573 6.4175 7.55865 5.10017 3.59993 3.65645 + 7.08256 5.10017 4.0785 3.65642 4.08197 3.59993 2.57562 5.34001 7.67855 3.84179 5.10017 + 4.62114 5.10017 4.62109 4.0785 7.13659 3.59993 4.07845 4.85623 5.10017 2.57567 3.59993 + 4.07845 8.70016 3.60276 8.04096 3.60276 5.10017 7.61839 5.34001 4.86128 4.62114 6.11546 + 4.62114 2.57562 3.06372 ] pdfxs + 316.799 519.001 m + (locationruntimetosupportpointercompression.Wethen) + [2.57567 4.86094 4.08197 4.62109 3.60273 2.57567 4.62109 8.46032 3.59993 5.10017 4.86033 + 3.60273 2.57567 7.67579 7.55841 3.60273 7.98117 3.65645 5.10017 5.10017 5.34016 4.62114 + 3.59993 7.02258 5.34001 4.62114 2.57562 4.86033 3.60276 4.07845 7.01994 4.08192 4.62114 + 7.67525 5.10017 3.59993 4.0785 3.65647 3.65642 2.57567 4.62109 5.10017 7.6758 8.69858 + 7.55862 3.60276 5.10017 4.07845 5.10017 ] pdfxs + 316.799 508.561 m + (describethetransformationinthreestages:thelegalityc) + [5.10017 4.0785 3.65642 4.08197 3.59993 2.57567 5.34001 6.95865 3.60273 5.10017 6.95865 + 3.60273 3.59993 4.62109 5.10017 3.65645 2.81963 4.62109 3.59993 7.67579 4.62114 3.60276 + 2.57562 4.62114 7.86022 2.57562 7.92019 3.60276 5.10017 3.59993 4.07845 6.89856 3.65647 + 3.60276 4.62109 4.62114 4.07845 3.65647 6.47556 3.60276 5.10017 6.95863 2.57562 4.0785 + 4.62109 4.62114 2.57562 2.57567 3.36267 7.55638 4.09764 ] pdfxs + 546.659 508.561 m + (ri-) + [3.59993 2.57567 3.06372 ] pdfxs + 316.799 498.121 m + (teria,thetransformationfordatastructuresthatarenev) + [3.60273 4.0785 3.59993 2.57567 4.62109 5.81565 3.60273 5.10017 7.31841 3.60273 3.59993 + 4.62109 5.10017 3.65645 2.81963 4.62109 3.59993 7.67579 4.62109 3.60273 2.57567 4.62114 + 8.21999 2.81965 4.62109 6.77986 5.10017 4.62114 3.60276 7.86118 3.65647 3.60276 3.59993 + 5.10017 4.08192 3.60276 5.10017 3.59993 4.0785 6.8366 3.60276 5.10017 4.62114 6.84289 + 4.62114 3.59993 7.25853 5.10017 4.07845 4.61624 ] pdfxs + (e) show + 552.239 498.121 m + (r) show + 316.799 487.621 m + (passedtoorreturnedfromfunctions,and\fnallytheap-) + [5.10017 4.62109 3.65645 3.65642 4.0785 9.42001 3.60273 8.88117 4.62109 7.86 3.59993 + 4.0785 3.60273 5.10017 3.59993 5.10017 4.07848 9.48002 2.81965 3.59993 4.62109 11.9358 + 2.81965 5.10017 5.10017 4.08192 3.60276 2.57562 4.62114 5.10017 3.65647 7.19578 4.62114 + 5.10017 9.41999 5.10017 5.10017 4.62114 2.57562 2.57562 9.11623 3.60276 5.10017 8.39847 + 4.62114 5.10017 3.06367 ] pdfxs + 316.799 477.181 m + (proachtohandlefunctioncalls.) + [5.10017 3.59993 4.62109 4.62109 3.84205 8.22009 3.60273 7.62109 5.10017 4.62109 5.10017 + 5.10017 2.57567 7.1985 2.81963 5.10017 5.10017 4.08197 3.60273 2.57562 4.62114 8.22009 + 4.08192 4.62114 2.57562 2.57567 3.65647 2.57562 ] pdfxs + 316.799 457.621 m + /N9 11.9552 Tf + (3.1PointerCompressionRuntimeLibrary) + [6 3 17.9398 7.07999 6 3.30001 6.66002 3.95989 5.27982 8.27983 8.63981 + 6 9.95992 6.66002 5.03981 5.2798 4.67992 4.67987 3.30001 6 9.59987 8.63981 + 6.66002 6.66002 3.95994 3.30001 9.9599 8.33976 7.97987 3.30001 6.66002 5.27985 6 + 5.2798 6 ] pdfxs + 325.799 444.661 m + /N17 8.96638 Tf + (Thepointercompressionruntimelibraryisalmostidenti-) + [6.65759 5.10017 6.89864 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 6.41992 4.08197 + 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65642 2.57567 4.62109 7.92019 3.59993 + 5.10017 4.86033 3.60276 2.57562 7.67579 6.83846 2.57562 2.57567 5.10017 3.59993 4.62109 + 3.59993 7.67639 2.57562 6.41648 4.62114 2.57562 7.67525 4.62114 3.65647 6.3029 2.57562 + 5.10017 4.0785 4.86008 3.60276 2.57562 3.06372 ] pdfxs + 316.799 434.221 m + (caltothestandardpoolallocatorruntimedescribedbrie\ry) + [4.08197 4.62109 5.6355 3.60273 7.62109 3.60273 5.10017 7.13833 3.65645 3.60273 4.62109 + 5.10017 5.10017 4.62109 3.59993 8.16032 5.34001 4.86126 4.62114 5.63577 4.62114 2.57562 + 2.57562 4.86099 4.08192 4.62114 3.60276 4.62114 6.54006 3.59993 5.10017 4.86033 3.60276 + 2.57562 7.67579 7.13846 5.10017 4.07845 3.65647 4.08197 3.59993 2.57562 5.34001 4.07845 + 8.22019 5.10017 3.59993 2.57562 4.0785 5.10017 4.85985 ] pdfxs + 316.799 423.781 m + (inSection2.2andinmoredetailin[10].Theonlytwofunc-) + [2.57567 7.80024 5.10017 4.0785 4.08197 3.60273 2.57564 4.62112 7.74015 4.62109 2.57567 + 7.26125 4.62109 5.10017 7.80009 2.57567 7.74008 7.67579 4.62109 3.59993 6.77855 5.10017 + 4.07845 3.60276 4.62114 2.57562 5.21565 2.57562 7.74011 2.57562 4.62114 4.62114 2.57562 + 6.47571 6.65759 5.10017 6.77831 4.62114 5.10017 2.57562 7.49622 3.36292 6.4175 7.20112 + 2.81965 5.10017 5.10017 4.08192 3.06372 ] pdfxs + 316.799 413.281 m + (tionalitydi\013erencesarethatitguaranteesthatthepoolis) + [3.60273 2.57567 4.62109 5.10017 4.62109 2.57567 2.57567 3.36257 8.33603 5.10017 2.57567 + 5.40425 4.0785 3.59993 4.07848 5.10017 4.08197 4.0785 7.25659 4.62109 3.59993 7.61834 + 3.60276 5.10017 4.62114 7.14289 2.57562 7.14269 4.62114 5.10017 4.62109 3.59993 4.62114 + 4.86008 3.60276 4.07845 4.0785 7.19661 3.60276 5.10017 4.62114 7.14289 3.60276 5.10017 + 7.67855 5.34001 4.86128 4.62114 6.11546 2.57562 3.63137 ] pdfxs + 316.799 402.841 m + (alwayscontiguous\(discussedinSection5.1\)andthatitre-) + [4.62109 2.57567 6.4175 4.38118 4.85621 6.7165 4.08197 4.62109 4.86033 3.60273 2.57567 + 4.62109 5.10017 4.62109 5.10017 6.77644 3.60273 5.10017 2.57567 3.65642 4.08197 5.10017 + 3.65642 3.65647 4.0785 8.21999 2.57562 8.28034 5.10017 4.07845 4.08197 3.60276 2.57562 + 4.62114 8.28 4.62114 2.57562 4.62114 6.66281 4.62114 5.10017 8.3403 3.60276 5.10017 + 4.62114 6.72258 2.57562 6.72277 3.59993 4.07845 3.07549 ] pdfxs + 316.799 392.401 m + (servesthe0) + [3.65645 4.07848 3.59993 4.61637 4.0785 5.93635 3.60273 5.10017 6.35865 4.62109 ] pdfxs + 362.459 396.181 m + /N29 5.97748 Tf + (th) + [2.8809 4.32174 ] pdfxs + 372.419 392.401 m + /N17 8.96638 Tf + (nodetorepresentthenullpointer.Thelibrary) + [5.10017 4.86126 5.10017 6.41841 3.60273 6.84094 3.59993 4.07845 5.10017 3.59993 4.0785 + 3.65647 4.07845 4.86033 5.9426 3.60276 5.10017 6.35863 4.86033 5.10017 2.57562 4.79573 + 5.34001 4.62114 2.57562 4.86033 3.60276 4.07845 3.59993 6.41565 6.65759 5.10017 6.41854 + 2.57562 2.57567 5.10017 3.59993 4.62109 3.59993 4.85623 ] pdfxs + 316.799 381.901 m + (interfaceisalsocosmeticallydi\013erentinthatthememoryal-) + [2.57567 4.86001 3.60273 4.0785 3.59993 2.81963 4.62109 4.08197 6.41841 2.57567 5.93635 + 4.62109 2.57567 3.65645 6.84109 4.08197 4.62109 3.65645 7.67576 4.0785 3.60273 2.57567 + 4.08192 4.62114 2.57562 2.57567 7.07605 5.10017 2.57562 5.40425 4.0785 3.59993 4.07845 + 4.86018 5.9426 2.57562 7.38034 3.60276 5.10017 4.62114 5.88274 3.60276 5.10017 6.4184 + 7.67525 4.0785 7.67525 4.62114 3.59993 7.19637 4.62114 2.57562 3.07549 ] pdfxs + 316.799 371.46 m + (location/freefunctionstakeindicesinsteadofpointers.) + [2.57567 4.86094 4.08197 4.62109 3.60273 2.57567 4.62109 5.10017 4.62109 2.81963 3.59993 + 4.0785 6.7785 2.81963 5.10017 5.10017 4.08197 3.60273 2.57567 4.62109 5.10017 6.35659 + 3.60276 4.62114 4.61605 6.77855 2.57562 5.10017 5.10017 2.57567 4.08192 4.0785 6.35652 + 2.57562 5.10017 3.65647 3.60276 4.0785 4.62109 7.80002 4.62114 5.51945 5.34001 4.62114 + 2.57562 4.86033 3.60276 4.07845 3.59993 3.65647 2.55545 ] pdfxs + 540.059 371.46 m + (The) + [6.65759 5.10017 4.07845 ] pdfxs + 316.799 361.02 m + (APIislistedFigure6,below.) + [6.90289 6.29667 6.42009 2.57567 6.65642 2.57567 2.57567 3.65642 3.60273 4.0785 8.10016 + 6.00162 2.57567 4.62109 5.10017 3.59993 7.1985 4.62109 5.63582 5.34001 4.07845 2.57567 + 4.38096 6.65759 2.57562 ] pdfxs + 316.799 341.64 m + /N39 7.97009 Tf + (voidpoolinit) + [4.25807 4.25805 4.25807 8.39813 4.25807 4.25805 4.25807 4.25805 4.25807 4.25807 4.25805 + 4.25807 ] pdfxs + Q + n + 3725 3416 25.8008 4.19922 re + f + q + 10 0 0 10 0 0 cm + 374.88 341.64 m + /N39 7.97009 Tf + (pc\(Pool*PP,unsignedNodeSize\);) + [4.25807 4.25805 4.25807 4.25805 4.25807 4.25807 4.25805 8.33821 4.25805 4.25805 8.39793 + 4.25805 4.25805 4.258 4.25805 4.25805 4.25805 4.25805 8.27802 4.25805 4.25805 4.258 + 4.25805 4.25805 4.25805 4.25805 4.258 4.25805 4.25805 ] pdfxs + 334.8 332.64 m + /N45 7.97009 Tf + (Initializethepooldesc) + [3.06284 4.67772 2.33888 3.29837 2.33886 4.25807 2.33886 2.33886 3.77827 6.59811 3.29837 + 4.67774 6.59833 4.91766 4.49806 4.25807 5.15878 4.67774 3.77824 3.35925 3.77824 ] pdfxs + (r) show + (ipto) + [2.33886 4.67777 3.29834 4.258 ] pdfxs + (r) show + (;) + [5.15873 ] pdfxs + (r) show + (eco) + [3.77824 3.77829 4.25805 ] pdfxs + (r) show + (dnodesize) + [7.43787 4.67772 4.49813 4.67772 6.59835 3.35925 2.33886 3.77824 3.77829 ] pdfxs + 316.8 323.7 m + /N39 7.97009 Tf + (voidpooldestroy) + [4.25807 4.25805 4.25807 8.39813 4.25807 4.25805 4.25807 4.25805 4.25807 4.25807 4.25805 + 4.25807 4.25805 4.25807 4.25807 ] pdfxs + Q + n + 3853 3237 25.8008 4.19922 re + f + q + 10 0 0 10 0 0 cm + 387.6 323.7 m + /N39 7.97009 Tf + (pc\(Pool*PP\)) + [4.25807 4.25805 4.25807 4.25805 4.25807 4.25805 4.25805 8.27802 4.25805 4.25805 4.258 + ] pdfxs + 334.8 314.76 m + /N45 7.97009 Tf + (Releasepoolmemo) + [6.24312 3.77827 2.33888 3.77824 4.25807 3.35922 6.53827 4.91766 4.49806 4.25807 5.09901 + 7.07656 3.77827 7.07653 4.25807 ] pdfxs + (r) show + (yanddest) + [7.20187 4.25805 4.67772 7.55775 4.67772 3.77829 3.35925 3.29834 ] pdfxs + (r) show + (oypooldesc) + [4.01786 7.26203 4.91766 4.49803 4.25805 5.09901 4.67772 3.77829 3.35925 3.77824 ] pdfxs + (r) show + (ipto) + [2.33886 4.67777 3.29834 4.258 ] pdfxs + (r) show + 316.8 305.76 m + /N39 7.97009 Tf + (intpoolalloc) + [4.25807 4.25805 8.39798 4.25807 4.25805 4.25807 4.25805 4.25807 4.25807 4.25805 4.25807 + 4.25805 ] pdfxs + Q + n + 3725 3058 25.8008 4.19922 re + f + q + 10 0 0 10 0 0 cm + 374.88 305.76 m + /N39 7.97009 Tf + (pc\(Pool*PP,uintNumBytes\)) + [4.25807 4.25805 4.25807 4.25805 4.25807 4.25807 4.25805 8.33821 4.25805 4.25805 8.39793 + 4.25805 4.25805 4.258 8.39813 4.25805 4.25805 4.258 4.25805 4.25805 4.25805 4.25805 + 4.258 4.25805 ] pdfxs + 334.8 296.82 m + /N45 7.97009 Tf + (Allocate) + [6.36133 2.33886 2.33886 4.49791 3.77827 4.25805 3.29837 3.77827 ] pdfxs + 368.22 296.82 m + /N39 7.97009 Tf + (NumBytes) + [4.25807 4.25805 4.25807 4.25805 4.25807 4.25807 4.25805 4.25807 ] pdfxs + 404.88 296.82 m + /N45 7.97009 Tf + (bytes.) + [4.43758 4.44186 3.29834 3.77829 3.3592 2.33891 ] pdfxs + 316.8 287.82 m + /N39 7.97009 Tf + (voidpoolfree) + [4.25807 4.25805 4.25807 8.39813 4.25807 4.25805 4.25807 4.25805 4.25807 4.25807 4.25805 + 4.25807 ] pdfxs + Q + n + 3725 2878 25.8008 4.19922 re + f + q + 10 0 0 10 0 0 cm + 374.88 287.82 m + /N39 7.97009 Tf + (pc\(Pool*PP,intNodeIdx\)) + [4.25807 4.25805 4.25807 4.25805 4.25807 4.25807 4.25805 8.33821 4.25805 4.25805 8.39793 + 4.25805 4.25805 8.39793 4.25805 4.25805 4.258 4.25805 4.25805 4.25805 4.25805 4.258 + ] pdfxs + 334.8 278.88 m + /N45 7.97009 Tf + (Ma) + [7.74063 4.25807 ] pdfxs + (r) show + (ktheobjectidenti\fedby) + [7.32179 3.29837 4.67774 6.59833 4.25807 5.15765 2.58276 3.77827 3.77824 6.05837 2.33886 + 4.67774 3.77827 4.43758 3.29834 2.33886 4.67777 3.77824 7.55789 4.43758 4.44186 ] pdfxs + 446.34 278.88 m + /N39 7.97009 Tf + (NodeIdx) + [4.25805 4.25805 4.258 4.25805 4.25805 4.25805 4.25805 ] pdfxs + 478.8 278.88 m + /N45 7.97009 Tf + (asf) + [4.25805 6.1193 2.58274 ] pdfxs + (r) show + (ee.) + [3.77829 3.77824 2.33886 ] pdfxs + 316.8 269.88 m + /N39 7.97009 Tf + (void*poolrealloc) + [4.25807 4.25805 4.25807 4.25805 8.39791 4.25807 4.25805 4.25807 4.25805 4.25807 4.25807 + 4.25805 4.25807 4.25805 4.25807 4.25807 ] pdfxs + Q + n + 3896 2699 25.8008 4.19922 re + f + q + 10 0 0 10 0 0 cm + 391.86 269.88 m + /N39 7.97009 Tf + (pc\(Pool*PP,intNodeIdxptr,uintNumNodes\)) + [4.25807 4.25805 4.25807 4.25805 4.25805 4.25805 4.25805 8.27802 4.25805 4.25805 8.39793 + 4.25805 4.25805 8.39793 4.25805 4.25805 4.258 4.25805 4.25805 4.25805 8.33802 4.25805 + 4.25805 4.258 8.39813 4.25805 4.25805 4.258 8.39813 4.25805 4.25805 4.258 4.25805 + 4.25805 4.25805 4.25805 4.258 4.25805 ] pdfxs + 334.8 260.94 m + /N45 7.97009 Tf + (Resizeanobjectto) + [6.24312 3.77827 3.35925 2.33886 3.77827 6.5381 4.25807 7.49788 4.25807 5.15765 2.58276 + 3.77827 3.77824 6.05837 3.29837 4.25807 ] pdfxs + 408.6 260.94 m + /N39 7.97009 Tf + (NumNodes) + [4.25805 4.25805 4.258 4.25805 4.25805 4.25805 4.25805 4.258 ] pdfxs + 445.32 260.94 m + /N45 7.97009 Tf + (nodes.) + [4.67772 4.49813 4.67772 3.77829 3.35925 2.33886 ] pdfxs + 330.12 245.22 m + /N23 8.96638 Tf + (Figure6:PoolCompressionRuntimeLibr) + [6.66309 2.94267 5.28303 5.87642 4.37907 8.40011 5.28303 7.74259 6.96004 5.58311 5.28303 + 6.48282 7.68343 5.28306 8.81906 5.87644 4.37907 4.86029 4.2022 4.2022 2.94267 5.28301 + 9.47643 7.98242 5.87644 5.57625 4.13846 2.94267 8.81911 8.46043 6.36185 2.94267 5.87639 + 4.37912 ] pdfxs + (a) show + (ry) + [4.37907 5.58422 ] pdfxs + 316.8 224.1 m + /N9 11.9552 Tf + (3.2SafetyConditionsforStaticPointerCom\255) + [6 3 17.9398 6.66002 6 3.95989 5.27982 3.95989 8.82009 8.63981 6 + 6.66002 6.65999 3.30001 3.95994 3.30001 6 6.65997 7.43983 3.66009 6 8.15998 + 6.66002 3.95994 6 3.95989 3.30001 8.15968 7.07997 6 3.30001 6.66002 3.95994 + 5.2798 8.15998 8.63981 6 9.95995 3.95994 ] pdfxs + 343.74 213.6 m + (pression) + [6.66002 5.03981 5.27982 4.67992 4.67989 3.30001 6 6.66002 ] pdfxs + 325.8 200.64 m + /N17 8.96638 Tf + (Thetwostepsofpointercompression\(indexconversion) + [6.65759 5.10017 8.03849 3.36289 6.4175 8.58117 3.65645 3.60273 4.07848 5.10017 7.55645 + 4.62109 6.77963 5.34001 4.62109 2.57567 4.86033 3.60276 4.07845 7.61995 4.08192 4.62114 + 7.67525 5.10017 3.59993 4.0785 3.65647 3.65642 2.57567 4.62109 9.06002 3.60276 2.57562 + 5.10017 5.10017 4.0785 8.87605 4.08192 4.62114 4.86033 4.61615 4.07845 3.59993 3.65647 + 2.57567 4.62109 5.10017 ] pdfxs + 316.8 190.2 m + (andindexcompression\)haveseparatelegalitycriteria.A) + [4.62109 5.10017 9.18017 2.57567 5.10017 5.10017 4.0785 8.93618 4.08197 4.62109 7.67579 + 5.10017 3.59993 4.07848 3.65645 3.65645 2.57564 4.62112 5.10012 7.62277 5.10017 4.3812 + 4.61615 8.09847 3.65647 4.07845 5.10017 4.62114 3.59993 4.62109 3.60276 8.09856 2.57562 + 4.0785 4.62109 4.62114 2.57562 2.57567 3.36267 8.81614 4.08192 3.59993 2.57567 3.60276 + 4.07845 3.59993 2.57567 4.62109 9.53571 6.90289 ] pdfxs + 316.8 179.76 m + (keypointtonoteisthatthesetwosetsofcriteriaapplyto) + [4.61612 4.0785 8.15603 5.34001 4.62109 2.57567 4.86033 6.90273 3.60273 7.86125 5.10017 + 4.62109 3.60273 7.3785 2.57567 6.8965 3.60273 5.10017 4.62114 6.84289 3.60276 5.10017 + 4.07845 3.65647 7.3784 3.36292 6.4175 7.86127 3.65647 4.07845 3.60276 6.89631 4.62114 + 6.05968 4.08192 3.59993 2.57567 3.60276 4.07845 3.59993 2.57567 7.92095 4.62114 5.10017 + 5.10017 2.57562 8.15637 3.60276 4.62114 ] pdfxs + 316.8 169.26 m + /N19 8.96638 Tf + (po) + [4.20266 4.68266 ] pdfxs + (t) show + (en) + [4.25804 5.1585 ] pdfxs + (ti) show + (allyd) + [4.68266 2.81671 2.33685 7.37578 4.68266 ] pdfxs + (i) show + (\013erentpools) + [5.64335 4.25804 3.42103 4.25804 5.15848 5.87956 4.20266 4.20266 4.68264 2.33688 3.78217 + ] pdfxs + 416.58 169.26 m + /N17 8.96638 Tf + (.Forexample,considerthepoints-) + [6.59563 5.22152 4.62114 6.17991 4.07845 4.85623 4.62114 7.67525 5.10017 2.57567 4.07845 + 5.21555 4.08192 4.62114 5.10017 3.65647 2.57562 5.10017 4.0785 6.24006 3.60276 5.10017 + 6.65862 5.34001 4.62114 2.57562 4.86033 3.60276 3.65647 3.06372 ] pdfxs + 316.8 158.82 m + (tographinFigure12\(a\).Compressingthepointersfrom) + [3.60273 8.64094 4.62109 3.59993 4.62109 5.10017 9.18009 2.57567 9.18032 6.00162 2.57567 + 4.62109 5.10017 3.59993 8.15865 4.62109 4.62109 3.60276 4.62114 3.60276 9.53562 6.65759 + 4.62109 7.67579 5.10017 3.59993 4.07845 3.65647 3.65647 2.57562 5.10017 8.64121 3.60276 + 5.10017 8.15863 5.34001 4.62114 2.57562 4.86033 3.60276 4.07845 3.59993 7.67663 2.81965 + 3.59993 4.62109 7.67579 ] pdfxs + 316.8 148.38 m + /N15 8.96638 Tf + (list2) + [4.67995 4.67995 4.67993 4.67995 4.67995 ] pdfxs + 344.04 148.38 m + /N17 8.96638 Tf + (tothe) + [3.60273 8.28117 3.60273 5.10017 4.0785 ] pdfxs + 372.42 148.38 m + /N15 8.96638 Tf + (int) + [4.67995 4.67995 4.67993 ] pdfxs + 390.24 148.38 m + /N17 8.96638 Tf + (objectsrequires\(i\)makingthe) + [4.62109 5.64033 2.81963 4.0785 4.08192 3.60276 7.31648 3.59993 4.07845 4.85623 5.10017 + 2.57567 3.59993 4.07845 7.37653 3.60276 2.57562 7.20285 7.67525 4.62114 4.85623 2.57562 + 5.10017 8.28105 3.60276 5.10017 4.07845 ] pdfxs + 520.68 148.38 m + /N15 8.96638 Tf + (int) + [4.6799 4.67995 4.6799 ] pdfxs + 538.5 148.38 m + /N17 8.96638 Tf + (pool) + [5.34001 4.86128 4.62114 2.57562 ] pdfxs + 316.8 137.88 m + (anindexedpool\(i.e.,usingindicesinsteadofpointersto) + [4.62109 9.30009 2.57567 5.10017 5.10017 4.0785 4.85619 4.0785 9.42009 5.34001 4.86126 + 4.62109 6.77566 3.60273 2.57567 2.57567 4.07848 2.57567 7.0155 5.10017 3.65647 2.57562 + 5.10017 8.82129 2.57562 5.10017 5.10017 2.57567 4.08192 4.0785 7.85651 2.57562 5.10017 + 3.65647 3.60276 4.0785 4.62109 9.30002 4.62114 7.01945 5.34001 4.62114 2.57562 4.86033 + 3.60276 4.07845 3.59993 7.85632 3.60276 4.62114 ] pdfxs + 316.8 127.441 m + (objectsinthispool\),but\(ii\)compressingtheindicesstor) + [4.62109 5.64033 2.81963 4.0785 4.08197 3.60273 6.41643 2.57567 7.86001 3.60273 5.10017 + 2.57567 6.35628 5.34001 4.86126 4.62109 2.57567 3.60273 5.39565 5.10017 5.10017 6.42267 + 3.60276 2.57562 2.57567 6.3029 4.08192 4.62114 7.67525 5.10017 3.59993 4.0785 3.65647 + 3.65642 2.57567 5.10017 7.38095 3.60276 5.10017 6.83831 2.57562 5.10017 5.10017 2.57567 + 4.08192 4.0785 6.41628 3.65647 3.60276 4.62109 3.59993 ] pdfxs + (e) show + 550.799 127.441 m + (d) show + 316.8 117.001 m + (inthe) + [2.57567 8.34008 3.60273 5.10017 4.0785 ] pdfxs + 343.74 117.001 m + /N15 8.96638 Tf + (list2) + [4.67995 4.67995 4.67993 4.67995 4.67995 ] pdfxs + 370.5 117.001 m + /N17 8.96638 Tf + (pool.Therefore,thelegalitycriteriaforindex) + [5.34001 4.86126 4.62109 2.57567 7.07573 6.65759 5.10017 4.07845 3.59993 4.0785 2.8196 + 4.62114 3.59993 4.07845 5.93572 3.60276 5.10017 7.31839 2.57562 4.0785 4.62109 4.62114 + 2.57562 2.57567 3.36267 7.97629 4.08192 3.59993 2.57567 3.60276 4.07845 3.59993 2.57567 + 7.80102 2.81965 4.62109 6.84001 2.57562 5.10017 5.10017 4.0785 4.85623 ] pdfxs + 316.8 106.501 m + (conversionapplytothe) + [4.08197 4.62109 4.86033 4.61612 4.0785 3.59993 3.65642 2.57567 4.62109 7.98009 4.62109 + 5.10017 5.10017 2.57567 7.7962 3.60273 7.50109 3.60273 5.10017 4.07845 ] pdfxs + 413.46 106.501 m + /N15 8.96638 Tf + (int) + [4.6799 4.67995 4.6799 ] pdfxs + 430.5 106.501 m + /N17 8.96638 Tf + (poolandforindexcompression) + [5.34001 4.86128 4.62114 5.51545 4.62114 5.10017 7.98015 2.81965 4.62109 6.47986 2.57562 + 5.10017 5.10017 4.0785 7.85623 4.08192 4.62114 7.67525 5.10017 3.59993 4.0785 3.65647 + 3.65642 2.57567 4.62109 5.10017 ] pdfxs + Q + n + 3168 988 956.398 4.19922 re + f + q + 10 0 0 10 0 0 cm + 316.8 90.6602 m + /N33 6.97377 Tf + (otherthanpointercompressionbecauseitprovides\\positi) + [3.95687 3.11698 4.38029 3.54035 6.6571 3.11698 4.38029 3.95687 7.98007 4.6202 3.95687 + 2.27707 4.14037 3.11698 3.54037 6.65686 3.54035 3.95687 6.53649 4.38029 3.11698 3.54035 + 3.18297 3.18292 2.27712 3.95685 7.92026 4.6202 3.54035 3.54035 3.9569 4.38031 3.18292 + 7.08039 2.27707 6.65679 4.38026 3.11698 3.71681 4.19861 2.27707 4.38031 3.54035 6.72281 + 3.9569 4.62035 3.9569 3.18292 2.27712 3.11694 2.25251 ] pdfxs + 526.8 90.6602 m + (oninde-) + [3.95685 7.8601 2.27707 4.38031 4.38026 3.54035 2.70049 ] pdfxs + 316.8 82.6802 m + (pendent"datastructuresthatcanberelocatedinmemory) + [4.6202 3.54035 4.38029 4.38029 3.54035 4.14037 3.11698 7.37682 4.38029 3.95685 3.11701 + 7.31689 3.18292 3.11698 3.11698 4.38029 3.54035 3.11701 4.38026 3.11698 3.54037 6.48295 + 3.11698 4.38026 3.9569 6.47676 3.54035 3.9569 7.74008 4.6202 6.90032 3.11698 3.54035 + 2.27707 4.19674 3.54035 3.9569 3.11698 3.54035 7.68007 2.27707 7.68041 6.53649 3.54035 + 6.53654 3.95685 3.11698 4.19861 ] pdfxs + 529.56 82.6802 m + /N47 6.97377 Tf + (without) + [5.45742 2.57814 2.76259 4.19867 4.19867 4.44308 2.76259 ] pdfxs + 316.8 74.7002 m + (rewritinganypointers) + [3.05735 3.77691 5.45737 3.47719 2.57819 2.76256 2.57819 4.62058 6.77687 4.19867 4.62058 + 7.02125 3.77875 4.19867 2.57819 4.62058 2.76259 3.77688 3.47719 3.36193 ] pdfxs + 399.6 74.7002 m + /N33 6.97377 Tf + (otherthanthepoolbase.) + [3.95687 3.11698 4.38026 3.54035 5.81685 3.11698 4.38026 3.9569 7.08008 3.11698 4.38026 + 6.24017 4.6202 4.19688 3.9569 4.91713 4.38026 3.9569 3.18297 3.54035 2.27707 ] pdfxs + Q + Q + PDFVars/TermAll get exec end end + userdict /pgsave get restore + showpage + %%PageTrailer + %%EndPage + %%Page: 5 5 + %%BeginPageSetup + userdict /pgsave save put + PDFVars begin PDF begin PDFVars/InitAll get exec + 0 0 612 792 true PDF begin PDFVars begin AS end end + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font UGFWJJ+CMBX7 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMBX7) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /UGFWJJ+CMBX7 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { 0 -194 1035 695 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3EC9EBBC6A5E + 2825687306A156DACC32FBF734087CDFC35B78DDA68032BCA38CA8E8A340AAA3 + 002A0E52D0B9162BC68AACFC0F14A1C933363A56EE460EB41CE8C2E9EDC509AB + 9E0462B9F619AD944F133AF072E5FD1625902963260181189070C40FB0D49A96 + 50D86FB0AA90098027455AC2354A299FC7BFC34B4F1162E5E9A3EFD80D6240B6 + 9378BB4F6F9F5E3566166B937251AC49680A4EF2E30CB2956B8A3359B5B0529B + 343CB9B89BE1ED7DB6AE8EC896833FBAC339964721CB69DA576FAFBB8C748C44 + 9B8672F55D236455C6C0AFC7306A0D564EBCB16FCE4847F8AD04E3BE7D02BD08 + 76E62BA23BF6DABF0DC215CAB5F2B74518D03628C24AFDB877E4744F9F7CD371 + D99FC45E849F631D6FDB5AC60EDE5C95FDDC8780CD099E8C774DA815C75F8C76 + 8D6E08B2C34DDCDD190BC8B9BB4B7FB8475577C5F684834AB20B4C96FC24B513 + 5F8E31D5AB3DD06FA0E5FBC37C93EEC305F108A54E017B0335F7734898BD61F5 + BA5297D6C32EDE54B581C3BAC218DBECD46852762A16FBA8A865C48E5A225679 + E349C7BCF9791A2706126B41492500E2BC1BDD362F1784DC388F587B74EFF4B0 + 9009CC0C84BD48256BC0C14AD2835850F933FE233ACF8E5FF4DE155FADB445AB + 11FEBFA0B49E87BD9E2CB30B6A266BDEF2EFAFA52C43F9B41017C5922E10C82D + 3A547072DF292E5F26D2DE7CD493F2B0FDBC2C0F74CACE9BF6F4EB88F78B0B78 + B0ABDD0192BAD6033D4CEA19479FB01E9C91EF911A939CEF9EA73CD59BB2B9BD + 04758250EAF3D76B826F0559EEED577F27779CB3E85163D7465848CA0BBA0FA4 + 7A6DEE1713AC5A393839BA1C3D6726C469137F71419A9E39A4118C24C417274C + 54006FB198083D8FF45D5B389130CA53180BD237CC4B380908CF4D2E82C9C210 + 9B7332F8913DBC71C0D5540FB2612BC7897B839698C2F724375A5DA62080CFBA + 689D93B42D1FE0B87DF40B41F2A4B8A4B6846DEB753C18ACBCA86A51898C7058 + E5265074741E8D76837A7996608428D4338AA35C83A0BE27B34327364B97DF6F + 56FBADACC987674637AA811BAA861428EB62BC22F348C3BE06B8B877E89CF222 + A1542480231D0D6371909FFDC30DE3C8393BD1BAD7919AFF44058B5F29DEBD6D + 5FEE0A8390B8CB4CE5C50EB5B8DD5637CD965B7C7733F46E88F3F16A14C5A293 + 89A4A230DB08826E2861E84E33FD9077506A57B72A77E33F52CC24FCDB6CC91A + A1C7678F994A35385AB1D9BC9C5445482F3CC0A079960EEA4E91894B548CEF66 + C3D262EFF19479DA091121DB465528A5D2C89CF872DDEF72077F84FB9E00178F + 5E2CD5AC15D30306DA87E4C4A3D49892266C94B49982BAFFAEFFC1DD131F71E6 + FB8C2FB260702CE17D9AAE20F32CA977A2D4AFAF0D909525A813CE8C4AAF856E + 53A42677E1A175788E94CE409365D6B50FCA97D679E1DD13A7645AEEE7DE7B10 + 9992ABDC0CC349E42E309EAFA6A724539792D1472930422A9BD4D3D53110645F + BDBD5C452FA4A3B9439DE92F005D90FBE704D47BFE8E149A660D1A6FAC077E61 + 47B35A1D3AA68BCA633E7EA887E475975BD3F02573489465F711DD60571A465B + 0E6AC81386D7D46893CFFADFC997300F490D44E38FA86E1DFB80F6E541976B35 + 24A9185F44F958F9BB113118EE377340FEADF079CD6808ACBA6FA62D86382142 + A4E0D853D872AECFEF9BD4A94FBBD239E8A94B60753F60E66F33B3B1947958D7 + 6771C761183D3FC16895174A68A68B9D5DEDB82FB18A98E060028BF465D2E389 + BFBB3B9E317D58436F2C0DFD8D94EEB7AB0D5B7CFB6E6223F38F3FC4221454C0 + 6FFAB5CFBF9151209013861A1F3A5500447CB428DBD38000596497E04DC7F5FD + F94DFEF6CE6249D505E547E8A53D36D05797BF31738D2AD863799C80E94FED1D + 1ABC195523948FBA0DFC588E32DDA6D271E0A02A8E6F152F858A62A1D8E29A03 + 15D1CBF8194465A3CB7737845ECB94AE149984A30DAD2A931D8FE15DA4FDD489 + 03B70C0D304E53A863B5C474481D047E341711F8A6805A7AA21C3AC9B47BFD75 + 42F09F22D8E6789AAE97811E8825A1A681E9A4721C39DEACFB8C13DC20AF060A + 8914F39CE2421C2FEE42801C7D1DC4EB46617DEB821A5CA53E3BDA1273925F7A + 6E262381B39E0503D12645E1E67756DF1357A91210BAF21EFAC99C5E0BBBFF9F + 38C8194F59D9BE7652CA0E85DC218AD220F7581A0DF30E8A8742C84C1691F0AE + C740DBB2A57D342E3734523ABA0610746E892D06057C4F3ED4DF9F32F36A30E0 + A015B78F1603774BFE0F01AE637043DE92E8977C06D70F50530DFA1460395ABE + 4C4D754BAB79A1D7B81A461202F80279F9DC936A7F49B7EA64C68A74F51486A9 + 2D32ACE44E9C6B1FAA460D25F6FC1A3808E805891037C05A05749A15FA4D1CCB + 119BBFAB2A723AB2D145CD9FC5F7685FD08E2367060F0A2D3A51AD6585CE795D + D99EC808B4BB780A7C922E40563395C222C0FB8B6D6E70C71A50CF6BBF9E9784 + 924582D10158E5789437B8BA1D772A183B4DB734021B867065A146941D976914 + 3BB4021D626CC38C339499941A0AD19FAA573A9A307CC51F0D6919418B911435 + B2A7BF501867DF228AB02AD37F23DE455B7DF6FD2B22B515FA85BFC2C894DBE0 + 0E0CEEBA04C8CB0FB01CB6FB3B7AE975C7F69D95FEDD854C85CB76F483BCF47E + 9BB850997474A96462E1B004F630FEB931C0A300C33782EF12DD19F001419BA5 + 379AC7B43F173FC11E82F73255386DAC41110C20D9148FEB9F3FE38366F69F62 + 80D62AF045624EA396040DC9DC88A2BD434DC1EEBA76D4538BB40FAC2B0F6999 + F28666A4C8567A672C9222136881A95FD8A13D605AFE3935AD3B182C02FC60A7 + EAB704DCA0971DA164B42718540E6F20138F2EA381CEB46901FBDDEC17A0A0A6 + 215A94C98B0D7411B1377B0E489454FC2D49D31B3780C1021BA0092655AF6C0B + C221B10AC659832E71E68F2726FE97B5DFA9C1D415F59EA270ECE2B9A92BFBA3 + 091B01B6869C2BBBE0417A569463A00FE3787250B966BBFDD85B1364CD68CCDC + B2493E214F1C2712382917A69368C9317B704688E0B111F17BC056D9681CDA96 + 94A4BC36001E6C733C5A5371C16AB27D604379EEE4416E0A59C7D36869FFE48F + 775AF03AAADC2F3ADEB311E9642029D01307EE0B275017926C57B163E866FF3A + 4E3FE30696F274834EB8BA071694CCC94C7F911F842DC0B2EFA503FEC9D1AC0A + EC9D06EAF28A262C97E3BB5C71DFFB76893BCAD179458FD892E4EDB6E2F1EC73 + 74C2970BFEDF339452FE4C750D8B4E584DA9AC829641DCDA033A6F811203FD77 + 9DD71EABF060BBA8DCFD7C40C45E26E17B24F87D6436829A2C090E157857EE81 + 13E0B0FF5EB95A0FDD678C4E47E9FB3F181AA3A8C50E21C17166224E21089055 + F0B9996074D4E1C50BC7AF003565A6396C6F162B24AB3CADCBCCCAC3F9DD470F + 7ED04BB44A1247A5D801CB3C85347515A01C412C1CA55CD7084D32F8A7ACF403 + 8F9A23FD25ABE51461A58F67C16CECC214BDD291995531966E5F932DE4DDB50F + E92DC40DFED3B467051E13FB55FFB79AEC4A9CAF4DBB904D57157D3C502BD55C + 1EA3497FD176DBDBA1389BD886CDDE2464F2A369657DACAFF7711BEB18AB61E5 + EA3A0A707E7B41991B358EDE8D4F88B73C81A87FF69E04D3357DA19262B8 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /UGFWJJ+CMBX7 findfont /Encoding get + dup 0 /.notdef put + pop + end + /UGFWJJ+CMBX7 findfont /Encoding get + dup 0 /.notdef put + dup 99 /.notdef put + dup 101 /.notdef put + dup 105 /.notdef put + dup 109 /.notdef put + dup 110 /.notdef put + dup 111 /.notdef put + dup 112 /.notdef put + dup 114 /.notdef put + dup 115 /.notdef put + dup 116 /.notdef put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [/N53/UGFWJJ+CMBX7 1 TZG + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font KTYNWY+CMSY6 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMSY6) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /KTYNWY+CMSY6 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { 0 0 323 559 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3ECB48FA43E4 + 4BE895991CB9C373C80EADF956F3CFF9953ED829311EA5C29ADABDA9B531D51E + 0E505FCDAE7E6EE841FB8BA6ABD575F8F932F2DBA26DD9F78D8861CC40A4D539 + 7F76C11ECF3859C3C67E4E5D79B4906B3752C9691C4D80E80213673F95E2F722 + FC51692F2F1F81A1F6E1A1D617FCE9082D4E318B4DA60F15B2E1B8DD32E0F349 + 9CEA3AFBC4E8E4BC5174CB0C0ECBBEF8C9FA5C2AD8A16C33F3101B14D2E91766 + E313429F41B8928D036373CBF518CB145968C1829C904D3A7BC9E8FDFABD6EA7 + CE2D02A41AE50CF6B12C2D20DA5112827D30584545E30CA96CEC69D59438AB8C + 67FC79FDC3D19A82B5FDE40516F59069CCBE944669D405E593AC41635CC80803 + 3273B884A4D38191E77CB648A7A42E7699ACFA02AFBF57AE1DAD7A28CAD5A9C6 + 5DEF06A3C9DBC333C338333A67AF2B28BB3DF2B914E2C1490E7F0DEA585DFA3E + C8DBD953CDAE47C171786491E231AE53F8AD4E1B24185F44B762BFBEBCCA6AA5 + D9D138B226A669F59CC036EC8185F5C4720CF6F27C65E66FF6A298AE73A9BC10 + 5C610A14249C81AEE0B542266DCF00B83448CA4AA36A3F296B699D17CCD106E8 + 06C98DC9FB63DBA0FFB2CABF48741F90CC601CF1A6149F9F2FAE77566BAE5E93 + 493813A4CA971E8F028FBA733364D0441711932721231CA854012F4EF2F1F8B3 + 2FA2E953ACCD1587A6F2AC4BC55BA19AC953B6BEA9B416369EA169E282F62801 + 20B6F9356CDF1AF4A7A9641BC662FBE646A7149ED01B2277AD6B41713B6B626D + BC1D02D10D7B94D91C417BE7E3F655EE5FD98D1D2EE8D14A01000577D27FB0D8 + 2703E7C56517A6C584762E816AC1ADDA4C1337172A0CCB902BAADBDAC72AACE8 + 168E092A4388028039430D8B03F34267286C8EAFCE71E2BCC1159BDBB7425E5D + 3076CA5ECE7430872309A67CF1B582B48074E9015D17E8F5DFF8AA737730178A + 065B9FD868B8C21CA59164B98E5E1E846EB7361B8C1F4A3004C3B6067F445688 + C6D234C328ECC353209074B1A16646DAC34716A90988D42A58920D6DFF2C0C94 + 636C51CEC823B7016D1CB039D2A6546D2E45367E128E6F1B448661708E45173F + 3AFE84A52DAF74803BEE1996E350BDFF3EA00F107E3B150E1BE41DCE0D54AE96 + 306E97A83C7770F6A0B678076B46BE4A70B66BFADC56388A88132E435BFC79E4 + BDA6A34B1A3BEBEEEFD3A0BF70338B298FCD322FD08D6A1938B9E0F0B7C3D0ED + E53C9929B57BCBCD40B5A85E352ED3182C23BFF487A5682D0A85C77B804B6199 + B0BE05674603939349F01362CA47717DBD7584E716AB06FC89BC0E3B734F340A + 15735C4DB6D197C1DE5990BB61DF22A68DA0F3591613CEBCBF980CD68E1A58C3 + 33B85AE3FD4B94499E0225A5686499F3BBD722EDF1A4D40193AE0131769565F0 + 4B335E8DB9A9B21638252CEB2A00D10A34A459D85490B9C3F4F26820C5EB4794 + 41F044E4D70D99F76CAA047DED30973DEEE293BB718D7EF77D3F77DBB714AA2F + 33BF857AD23F2C64EAD5DAB07E69A117A68D261290FE6609A5B3BC93FBAD0A3E + 2724786FB8A5523962E9C9E3F50AE911B577106F522D0141B80C0700B822 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /KTYNWY+CMSY6 findfont /Encoding get + dup 0 /.notdef put + pop + end + /KTYNWY+CMSY6 findfont /Encoding get + dup 0 /.notdef put + dup 48 /prime put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [ 1 /dotlessi/caron 32 /space/exclam/quotedbl/numbersign + /dollar/percent/ampersand/quotesingle/parenleft/parenright + /asterisk/plus/comma/hyphen/period/slash + /prime/one/two/three/four/five + /six/seven/eight/nine/colon/semicolon + /less/equal/greater/question/at/A + /B/C/D/E/F/G + /H/I/J/K/L/M + /N/O/P/Q/R/S + /T/U/V/W/X/Y + /Z/bracketleft/backslash/bracketright/asciicircum/underscore + /grave/a/b/c/d/e + /f/g/h/i/j/k + /l/m/n/o/p/q + /r/s/t/u/v/w + /x/y/z/braceleft/bar/braceright + /asciitilde/bullet/Euro/bullet/quotesinglbase/florin + /quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand + /Scaron/guilsinglleft/OE/bullet/Zcaron/bullet + /bullet/quoteleft/quoteright/quotedblleft/quotedblright/bullet + /endash/emdash/tilde/trademark/scaron/guilsinglright + /oe/bullet/zcaron/Ydieresis/space/exclamdown + /cent/sterling/currency/yen/brokenbar/section + /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen + /registered/macron/degree/plusminus/twosuperior/threesuperior + /acute/mu/paragraph/periodcentered/cedilla/onesuperior + /ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown + /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring + /AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis + /Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde + /Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply + /Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute + /Thorn/germandbls/agrave/aacute/acircumflex/atilde + /adieresis/aring/ae/ccedilla/egrave/eacute + /ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis + /eth/ntilde/ograve/oacute/ocircumflex/otilde + /odieresis/divide/oslash/ugrave/uacute/ucircumflex + /udieresis/yacute/thorn/ydieresis + /N63/KTYNWY+CMSY6 -1 TZG + %%EndPageSetup + 0 0 612 792 re + W + n + q + 0.0999908 0 0 0.0999908 0 0 cm + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 53.8199 728.22 m + /N17 8.96638 Tf + (applytothe) + [4.62111 5.10016 5.10016 2.57565 8.45635 3.60274 8.22102 3.60274 5.10016 4.07849 ] pdfxs + 107.88 728.22 m + /N15 8.96638 Tf + (list2) + [4.67994 4.67993 4.67994 4.67993 4.67994 ] pdfxs + 135.06 728.22 m + /N17 8.96638 Tf + (pool.Werefertotheseasthe) + [5.34 4.86127 4.62111 2.57565 8.27572 8.69858 7.73834 3.59993 4.0785 2.81964 4.07849 + 7.25978 3.60275 8.22101 3.60273 5.10017 4.0785 3.65642 7.67842 4.62109 7.25651 3.60273 + 5.10017 4.0785 ] pdfxs + 263.22 728.22 m + /N19 8.96638 Tf + (i) show + (ndexed) + [5.1585 4.68266 4.25801 4.26207 3.77818 4.68266 ] pdfxs + 53.8202 717.78 m + (pool) + [4.20267 4.20267 4.68267 2.33686 ] pdfxs + 73.44 717.78 m + /N17 8.96638 Tf + (andthe) + [4.62111 5.10016 8.34031 3.60274 5.10016 4.07849 ] pdfxs + 107.46 717.78 m + /N19 8.96638 Tf + (sourcepool) + [3.78219 4.68266 4.92058 3.42109 3.77811 7.6781 4.20267 4.20267 4.68268 2.33684 ] pdfxs + 151.14 717.78 m + /N17 8.96638 Tf + (,respectively.Ofcourse,forpoint-) + [5.87572 3.59993 4.0785 3.65645 5.34023 4.0785 4.08196 3.60275 2.57565 4.61637 4.0785 + 2.57564 4.07606 7.07573 7.13659 6.05964 4.08197 4.62109 5.10017 3.59993 3.65645 4.07848 + 5.81583 2.81963 4.62109 6.77986 5.34001 4.62109 2.57567 4.86033 3.60273 3.06375 ] pdfxs + 53.8201 707.34 m + (erswithinrecursivedatastructures\(e.g.,thepointerfr) + [4.07849 3.59993 7.19652 6.65758 2.57565 3.60274 5.10016 2.57565 8.64031 3.59993 4.0785 + 4.08196 5.10016 3.59993 3.65645 2.57565 4.61614 7.61841 5.10016 4.62111 3.60275 8.16119 + 3.65645 3.60275 3.59993 5.10016 4.08197 3.60275 5.10016 3.59993 4.07849 7.25653 3.60273 + 4.0785 2.57567 4.62109 2.57567 6.17549 3.60273 5.10017 7.61841 5.34001 4.62109 2.57567 + 4.86033 3.60273 4.0785 7.2 2.81963 3.59993 ] pdfxs + (o) show + 285.24 707.34 m + (m) show + 53.8201 696.84 m + /N15 8.96638 Tf + (list2) + [4.67993 4.67993 4.67994 4.67993 4.67993 ] pdfxs + 80.4002 696.84 m + /N17 8.96638 Tf + (toitself\),bothpoolsarethesame.) + [3.60274 7.68118 2.57565 3.60274 3.65644 4.07849 2.57565 3.53949 3.60275 5.51557 5.34 + 4.62111 3.60275 8.22 5.34 4.86127 4.62111 2.57565 6.71637 4.62111 3.59993 7.13866 + 3.60275 5.10016 7.1985 3.65645 4.62112 7.67579 4.07848 2.57567 ] pdfxs + 62.7605 686.4 m + (Acommoncriterionforbothindexconversionandindex) + [10.1427 4.08196 4.62111 7.67578 7.67578 4.62111 8.34008 4.08197 3.59993 2.57564 3.60275 + 4.0785 3.59993 2.57564 4.62112 8.28007 2.81964 4.62112 6.77984 5.34 4.62111 3.60275 + 8.34032 2.57565 5.10016 5.10015 4.0785 8.15613 4.08197 4.62109 4.86033 4.61612 4.0785 + 3.59993 3.65642 2.57567 4.62109 8.2801 4.62109 5.10017 8.34033 2.57567 5.10017 5.10017 + 4.0785 4.85619 ] pdfxs + 53.8203 675.96 m + (compressionisthatpointerstoapoolmustnotescapefrom) + [4.08196 4.62111 7.67578 5.10016 3.59993 4.07849 3.65644 3.65645 2.57565 4.62111 7.74008 + 2.57565 6.35629 3.60275 5.10016 4.62111 6.24291 5.34 4.62111 2.57565 4.86031 3.60275 + 4.0785 3.59993 6.35629 3.60275 7.32103 7.32103 5.34 4.86127 4.62111 5.27565 7.43563 + 5.10017 3.65645 6.24272 5.10017 4.62109 6.30266 4.0785 3.65642 4.08197 4.62109 5.34026 + 6.83834 2.81963 3.59993 4.62109 7.67579 ] pdfxs + 53.8203 665.46 m + (theavailableprogramtounavailablefunctionssuchasan) + [3.60274 5.10016 8.09849 4.38119 4.31613 4.62111 2.57565 2.57565 4.62111 5.10016 2.57565 + 8.03841 5.10016 3.59993 4.62111 4.62112 3.59993 4.62111 11.6959 3.60275 8.58119 5.10016 + 5.10016 4.38119 4.31613 4.62111 2.57565 2.57565 4.62111 5.10016 2.57564 8.09858 2.81963 + 5.10017 5.10017 4.08197 3.60273 2.57567 4.62109 5.10017 7.61635 3.65645 5.10017 3.84196 + 9.12009 4.62109 7.67643 4.62109 5.10017 ] pdfxs + 53.8203 655.02 m + (externallibrary.Thiscriterionisalreadyguaranteedby) + [4.07849 4.85621 3.60273 4.0785 3.59993 5.10015 4.62111 7.19549 2.57565 2.57565 5.10016 + 3.59993 4.62111 3.59993 4.07638 11.2156 6.65758 5.10016 2.57565 8.27637 4.08197 3.59993 + 2.57564 3.60275 4.0785 3.59993 2.57564 4.62112 9.66015 2.57565 8.21643 4.62111 2.57567 + 3.59993 4.0785 4.62109 5.10017 9.47627 4.62109 5.10017 4.62109 3.59993 4.62112 4.86008 + 3.60273 4.0785 4.0785 9.77999 4.86033 4.85621 ] pdfxs + 53.8203 644.58 m + (poolallocationbecausethecompilercannotpool-allocat) + [5.34 4.86127 4.62111 6.8358 4.62111 2.57565 2.57565 4.86096 4.08196 4.62111 3.60275 + 2.57564 4.62112 9.36031 5.34 4.0785 4.08196 4.62112 5.10015 3.65646 8.45849 3.60275 + 5.10016 8.3985 4.08197 4.62111 7.67576 5.10016 2.57565 2.57565 4.07849 7.86 4.08197 + 4.62109 5.10017 5.10017 4.62109 7.92258 5.34001 4.86126 4.62109 2.57567 3.06375 4.62109 + 2.57567 2.57564 4.86111 4.08197 4.62109 3.60273 ] pdfxs + (e) show + 53.8203 634.08 m + (objectsthatescape.) + [4.62111 5.64031 2.81964 4.07849 4.08196 3.60274 6.65644 3.60274 5.10016 4.62111 6.66281 + 4.0785 3.65645 4.08196 4.62112 5.34023 4.0785 2.57564 ] pdfxs + 53.8203 615.9 m + /N19 8.96638 Tf + (IndexConvers) + [3.54284 5.15848 4.68267 4.25803 8.10189 6.60381 4.68267 5.15848 4.25804 4.25803 3.9011 + 3.78219 ] pdfxs + (i) show + (on) + [4.68268 5.15848 ] pdfxs + 125.58 615.9 m + /N17 8.96638 Tf + (:Apoolissafetoaccessviaindexesin-) + [7.79564 10.563 5.34 4.86127 4.62111 6.2358 2.57565 7.25629 3.65645 4.62112 2.81964 + 7.67857 3.60275 8.28119 4.62109 4.08197 4.08197 4.0785 3.65642 7.31628 4.85621 2.57564 + 8.22126 2.57567 5.10017 5.10017 4.0785 4.85619 4.0785 7.37651 2.57567 5.10017 3.06372 + ] pdfxs + 53.8203 605.46 m + (steadofpointersiftheDSnodecorrespondingtothepool) + [3.65644 3.60274 4.07849 4.62111 8.46007 4.62111 6.23979 5.34 4.62111 2.57565 4.86031 + 3.60275 4.0785 3.59993 7.0766 2.57565 6.23956 3.60275 5.10016 7.4985 7.01981 8.58016 + 5.10016 4.86127 5.10016 7.55865 4.08197 4.62111 3.59993 3.59993 4.0785 3.65642 5.34026 + 4.62109 5.10017 5.10017 2.57567 5.10017 8.1011 3.60273 7.98117 3.60273 5.10017 7.55865 + 5.34001 4.86126 4.62109 2.57567 ] pdfxs + 53.8203 594.96 m + (representsonlyheapobjectsandnootherclassofmemory) + [3.59993 4.07849 5.10016 3.59993 4.07849 3.65644 4.0785 4.86031 3.60274 7.01636 4.62111 + 5.10016 2.57565 8.15637 5.10016 4.0785 4.62111 8.52008 4.62111 5.64032 2.81964 4.0785 + 4.08197 3.60273 6.9563 4.62111 5.10016 8.46023 5.10016 7.98118 4.62109 3.60273 5.10017 + 4.0785 6.96008 4.08197 2.57567 4.62109 3.65642 6.95644 4.62109 6.11947 7.67579 4.0785 + 7.67576 4.62112 3.59993 4.85619 ] pdfxs + 53.8203 584.52 m + (\(Global,StackorUnknown\).Thisconditioncanbedeter-) + [3.60274 7.25574 2.57565 4.62111 5.10016 4.62111 2.57565 5.9958 5.10016 3.60274 4.62111 + 3.84213 8.33605 4.62111 7.01977 6.90289 5.10016 4.85621 5.10016 4.38096 6.65758 5.10016 + 3.60275 7.85556 6.65758 5.10016 2.57565 7.07637 4.08197 4.62109 5.10017 5.10017 2.57567 + 3.60273 2.57564 4.62112 8.52016 4.08197 4.62109 8.58024 5.34001 7.61841 5.10017 4.0785 + 3.60273 4.0785 3.59993 3.06372 ] pdfxs + 53.8203 574.08 m + (mineddirectlyfromthememory\ragsintheDSnode.Itis) + [7.67578 2.57565 5.10016 4.07849 8.16016 5.10016 2.57565 3.59993 4.07849 4.08196 3.60275 + 2.57564 7.91606 2.81964 3.59993 4.62112 10.6758 3.60275 5.10016 7.13833 7.67578 4.07849 + 7.67578 4.62111 3.59993 7.91629 5.10016 4.62111 4.62112 6.7166 2.57567 8.10016 3.60273 + 5.10017 7.13833 7.0198 8.22002 5.10017 4.86126 5.10017 4.0785 6.71565 3.30018 6.60273 + 2.57567 3.65642 ] pdfxs + 53.8203 563.58 m + (requiredbecausestackandglobaldataarenotallocatedout) + [3.59993 4.07849 4.8562 5.10016 2.57565 3.59993 4.0785 7.68023 5.34 4.07849 4.08196 + 4.62112 5.10015 3.65646 6.65849 3.65645 3.60275 4.62112 3.84188 7.31613 4.62111 5.10016 + 7.62 4.62111 2.57565 4.62111 5.10016 4.62112 5.03572 5.10016 4.62111 3.60275 7.14126 + 4.62109 3.59993 6.59842 5.10017 4.62109 6.06282 4.62109 2.57567 2.57567 4.86094 4.08197 + 4.62109 3.60273 4.0785 7.62016 4.62109 5.10017 3.5865 ] pdfxs + 53.8203 553.14 m + (ofaheappool,andpointerstosuchobjectscannoteasily) + [4.62111 6.47963 8.28119 5.10016 4.07849 4.62111 8.88023 5.34 4.86127 4.62111 2.57565 + 6.41556 4.62111 5.10016 8.82 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 3.59993 + 7.3766 3.60275 8.28119 3.65645 5.10016 3.84197 8.82007 4.62109 5.64033 2.81963 4.0785 + 4.08197 3.60273 7.31642 4.08197 4.62109 5.10017 5.10017 4.62109 7.32258 4.0785 4.62109 + 3.65645 2.57564 2.57567 4.85621 ] pdfxs + 53.8203 542.699 m + (beconvertedintoo\013setsrelativetothebaseofsuchapool.) + [5.34 7.07848 4.08196 4.62111 4.86031 4.61613 4.07849 3.59993 3.60274 4.07849 8.10015 + 2.57565 4.86 3.60275 7.5011 4.62111 5.40425 3.65646 4.07849 3.60275 6.53645 3.59993 + 4.0785 2.57564 4.62111 3.60275 2.57565 4.61629 7.01842 3.60275 7.5011 3.60275 5.10017 + 7.0785 5.10017 4.62109 3.65645 7.01849 4.62109 5.75971 3.65645 5.10017 3.84196 8.10016 + 7.56125 5.34001 4.86126 4.62109 2.57567 2.57567 ] pdfxs + 62.7605 532.199 m + (Eachindexablepoolidenti\fedbythiscriterionwillbe) + [6.29667 4.62111 3.84212 9.48023 2.57565 5.10016 5.10016 4.07849 4.85621 4.62112 5.10016 + 2.57564 8.5785 5.34 4.86127 4.62111 7.01549 2.57565 5.10016 4.07849 4.86008 3.60275 + 2.57565 5.10015 4.0785 9.54015 4.86031 9.29621 3.60273 5.10017 2.57567 8.03634 4.08197 + 3.59993 2.57567 3.60273 4.07848 3.59993 2.57567 4.62109 9.4801 6.65759 2.57564 2.57567 + 6.95574 5.34001 4.0785 ] pdfxs + 53.8203 521.76 m + (usedtoholdatmost2) + [5.10016 3.65644 4.07849 7.8 3.60274 7.32103 5.10016 4.62111 2.57565 7.86031 4.62111 + 6.30267 7.67578 4.62111 3.65645 6.24275 4.62111 ] pdfxs + 143.281 525.599 m + /N29 5.97748 Tf + (k) show + 150.54 521.76 m + /N17 8.96638 Tf + (bytes,) + [4.86031 4.85621 3.60275 4.0785 3.65645 2.57564 ] pdfxs + 176.94 521.76 m + /N31 8.96638 Tf + (kP) + [6.24094 8.52109 5.09765 ] pdfxs + 371.82 486.54 m + /N61 4.98122 Tf + (2) show + 410.22 487.56 m + /N57 6.97377 Tf + (\)) show + 428.94 487.56 m + /N33 6.97377 Tf + (cc=) + [3.54035 6.18026 6.12004 ] pdfxs + 447.48 487.56 m + /N55 6.97377 Tf + (P) show + 453.66 490.62 m + /N59 4.98122 Tf + (0) show + 452.58 485.58 m + /N61 4.98122 Tf + (1) show + 458.7 487.56 m + /N55 6.97377 Tf + (<>P) + [6.24094 8.52109 5.09765 ] pdfxs + 479.64 490.62 m + /N59 4.98122 Tf + (0) show + 478.56 485.58 m + /N61 4.98122 Tf + (2) show + 482.4 487.56 m + /N33 6.97377 Tf + (,) show + 492.72 487.56 m + /N55 6.97377 Tf + (<>) + [6.24094 6.24094 ] pdfxs + 505.2 487.56 m + /N57 6.97377 Tf + (2f) + [7.62097 4.07775 ] pdfxs + 516.9 487.56 m + /N55 6.97377 Tf + (<;) + [6.24094 2.33802 ] pdfxs + 526.86 487.56 m + /N57 6.97377 Tf + (\024) show + 533.1 487.56 m + /N55 6.97377 Tf + (;>;) + [3.65816 6.24094 2.33802 ] pdfxs + 546.72 487.56 m + /N57 6.97377 Tf + (\025) show + 552.96 487.56 m + /N55 6.97377 Tf + (;) show + 556.68 487.56 m + /N33 6.97377 Tf + (==) + [6.12004 6.11999 ] pdfxs + 568.919 487.56 m + /N57 6.97377 Tf + (g) show + Q + n + 5782 4852 4.19922 82.1992 re + f + n + 3166 4771 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 322.2 479.4 m + /N55 6.97377 Tf + (P) show + 327.3 478.38 m + /N61 4.98122 Tf + (1) show + 333.84 479.4 m + /N33 6.97377 Tf + (=&) + [8.81991 6.12002 ] pdfxs + 348.78 479.4 m + /N55 6.97377 Tf + (P) show + 353.88 478.38 m + /N61 4.98122 Tf + (2) show + 357.72 479.4 m + /N33 6.97377 Tf + (-) show + 360.42 479.4 m + /N55 6.97377 Tf + (>f) + [6.24094 4.67959 ] pdfxs + (ie) show + (ld) + [2.57807 4.1421 ] pdfxs + 410.22 479.4 m + /N57 6.97377 Tf + (\)) show + 428.94 479.4 m + /N55 6.97377 Tf + (P) show + 435.12 482.46 m + /N59 4.98122 Tf + (0) show + 434.04 477.42 m + /N61 4.98122 Tf + (1) show + 440.58 479.4 m + /N33 6.97377 Tf + (=) show + 449.34 479.4 m + /N55 6.97377 Tf + (P) show + 455.519 482.46 m + /N59 4.98122 Tf + (0) show + 454.439 477.42 m + /N61 4.98122 Tf + (2) show + 461.039 479.4 m + /N33 6.97377 Tf + (+newo\013setof\() + [8.76014 4.38026 3.5404 5.45669 3.9569 4.74282 3.18292 3.5404 3.11694 3.9569 2.45888 + 3.11694 ] pdfxs + 511.26 479.4 m + /N55 6.97377 Tf + (f) + [4.67974 ] pdfxs + (ie) show + (ld) + [2.57807 4.14208 ] pdfxs + 529.26 479.4 m + /N33 6.97377 Tf + (\)) show + Q + n + 5782 4771 4.19922 82.1992 re + f + n + 3166 4688 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 322.2 471.24 m + /N55 6.97377 Tf + (P) show + 327.3 470.22 m + /N61 4.98122 Tf + (1) show + 333.84 471.24 m + /N33 6.97377 Tf + (=&) + [8.81991 6.12002 ] pdfxs + 348.78 471.24 m + /N55 6.97377 Tf + (P) show + 353.88 470.22 m + /N61 4.98122 Tf + (2) show + 357.72 471.24 m + /N33 6.97377 Tf + ([) show + 360 471.24 m + /N55 6.97377 Tf + (V) show + 366.36 471.24 m + /N33 6.97377 Tf + (]) show + 410.22 471.24 m + /N57 6.97377 Tf + (\)) show + 428.94 471.24 m + /N55 6.97377 Tf + (P) show + 435.12 474.24 m + /N59 4.98122 Tf + (0) show + 434.04 469.26 m + /N61 4.98122 Tf + (1) show + 440.58 471.24 m + /N33 6.97377 Tf + (=) show + 449.34 471.24 m + /N55 6.97377 Tf + (P) show + 455.519 474.24 m + /N59 4.98122 Tf + (0) show + 454.439 469.26 m + /N61 4.98122 Tf + (2) show + 461.039 471.24 m + /N33 6.97377 Tf + (+V*newsizeof\() + [8.76014 5.87812 3.9569 4.38031 3.54035 5.69663 3.18292 2.27712 3.54035 3.54035 3.9569 + 2.45888 3.11694 ] pdfxs + 515.339 471.24 m + /N55 6.97377 Tf + (P) show + 520.439 470.22 m + /N61 4.98122 Tf + (2) show + 524.279 471.24 m + /N33 6.97377 Tf + ([0]\)) + [2.27707 3.9569 2.27712 3.11694 ] pdfxs + Q + n + 5782 4688 4.19922 82.1992 re + f + n + 3168 4685 2616 4.19922 re + f + n + 3166 4605 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 357.54 462.9 m + /N47 6.97377 Tf + (Ifnode\() + [3.18162 5.51809 4.62058 3.77868 4.19867 3.77691 3.36191 ] pdfxs + 385.98 462.9 m + /N55 6.97377 Tf + (P) show + 392.16 462.9 m + /N47 6.97377 Tf + (\)isnon-THor) + [6.4218 2.57819 6.36187 4.62061 4.19867 4.62056 3.00008 5.8192 9.00085 4.19867 3.47717 + ] pdfxs + 449.46 462.9 m + /N55 6.97377 Tf + (\034) show + 456.9 462.9 m + /N47 6.97377 Tf + (notapointer\() + [4.62061 4.19867 5.7625 7.19863 3.77875 4.19867 2.57814 4.62061 2.76259 3.77688 6.47718 + 3.36195 ] pdfxs + 510.24 462.9 m + /N55 6.97377 Tf + (P) show + 518.7 462.9 m + /N33 6.97377 Tf + (:) show + 523.2 462.9 m + /N55 6.97377 Tf + (\034) show + 527.64 462.9 m + /N57 6.97377 Tf + (\003) show + 531.72 462.9 m + /N47 6.97377 Tf + (\)) show + 535.32 462.9 m + /N33 6.97377 Tf + (:) show + Q + n + 5782 4605 4.19922 79.8008 re + f + n + 3166 4525 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 322.2 454.92 m + /N33 6.97377 Tf + (V=*\() + [8.57819 8.76014 3.95687 3.11698 ] pdfxs + 346.62 454.92 m + /N55 6.97377 Tf + (\034) show + 351.06 454.92 m + /N33 6.97377 Tf + (*\)) + [3.95687 3.11698 ] pdfxs + 358.14 454.92 m + /N55 6.97377 Tf + (P) show + 410.22 454.92 m + /N57 6.97377 Tf + (\)) show + 428.94 454.92 m + /N33 6.97377 Tf + (Base=P) + [5.58256 3.9569 3.18297 6.18031 8.81991 5.34095 ] pdfxs + (D) show + (-) show + 470.7 454.92 m + /N55 6.97377 Tf + (>) show + 476.94 454.92 m + /N33 6.97377 Tf + (PoolBase) + [5.10096 4.19688 3.9569 2.27707 5.58261 3.95685 3.18297 3.54035 ] pdfxs + Q + n + 5782 4525 4.19922 79.8008 re + f + n + 3166 4444 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 428.94 446.76 m + /N33 6.97377 Tf + (V=*\() + [8.51803 8.81991 3.9569 3.11694 ] pdfxs + 453.36 446.76 m + /N55 6.97377 Tf + (\034) show + 457.8 446.76 m + /N33 6.97377 Tf + (*\)\(Base+) + [3.9569 3.11694 3.11698 5.58256 3.9569 3.18297 3.54035 6.11999 ] pdfxs + 490.38 446.76 m + /N55 6.97377 Tf + (P) show + 496.56 449.76 m + /N59 4.98122 Tf + (0) show + 499.26 446.76 m + /N33 6.97377 Tf + (\)) show + Q + n + 5782 4444 4.19922 82.1992 re + f + n + 3166 4364 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 322.2 438.78 m + /N33 6.97377 Tf + (*\(\() + [3.95687 3.11698 3.11698 ] pdfxs + 332.4 438.78 m + /N55 6.97377 Tf + (\034) show + 336.84 438.78 m + /N33 6.97377 Tf + (*\)) + [3.95687 3.11698 ] pdfxs + 343.92 438.78 m + /N55 6.97377 Tf + (P) show + 350.1 438.78 m + /N33 6.97377 Tf + (\)=V) + [5.81688 8.76014 5.87815 ] pdfxs + 410.22 438.78 m + /N57 6.97377 Tf + (\)) show + 428.94 438.78 m + /N33 6.97377 Tf + (Base=P) + [5.58256 3.9569 3.18297 6.18031 8.81991 5.34095 ] pdfxs + (D) show + (-) show + 470.7 438.78 m + /N55 6.97377 Tf + (>) show + 476.939 438.78 m + /N33 6.97377 Tf + (PoolBase) + [5.10096 4.19688 3.9569 2.27707 5.58261 3.95685 3.18297 3.54035 ] pdfxs + Q + n + 5782 4364 4.19922 79.8008 re + f + n + 3166 4282 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 428.94 430.62 m + /N33 6.97377 Tf + (*\() + [3.9569 3.11694 ] pdfxs + 436.02 430.62 m + /N55 6.97377 Tf + (\034) show + 440.46 430.62 m + /N33 6.97377 Tf + (*\)\(Base+) + [3.9569 3.11694 3.11698 5.58256 3.9569 3.18297 3.54035 6.11999 ] pdfxs + 473.04 430.62 m + /N55 6.97377 Tf + (P) show + 479.22 433.62 m + /N59 4.98122 Tf + (0) show + 481.86 430.62 m + /N33 6.97377 Tf + (\)=V) + [5.81685 8.81991 5.87812 ] pdfxs + Q + n + 5782 4282 4.19922 82.1992 re + f + n + 3168 4279 2616 4.19922 re + f + n + 3166 4199 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 365.88 422.28 m + /N47 6.97377 Tf + (Ifnode\() + [3.18162 5.5781 4.62058 3.77868 4.19867 3.77691 3.36191 ] pdfxs + 394.38 422.28 m + /N55 6.97377 Tf + (P) show + 400.56 422.28 m + /N47 6.97377 Tf + (\)isTHand) + [6.36189 2.57819 6.36187 5.8192 9.06067 4.19867 4.62061 4.19867 ] pdfxs + 446.76 422.28 m + /N55 6.97377 Tf + (\034) show + 454.2 422.28 m + /N47 6.97377 Tf + (isapointer\() + [2.57814 6.36192 7.19863 3.77875 4.19867 2.57814 4.62061 2.76259 3.77688 6.47718 3.36195 + ] pdfxs + 501.9 422.28 m + /N55 6.97377 Tf + (P) show + 510.36 422.28 m + /N33 6.97377 Tf + (:) show + 514.86 422.28 m + /N55 6.97377 Tf + (\034) show + 519.3 422.28 m + /N57 6.97377 Tf + (\003) show + 523.38 422.28 m + /N47 6.97377 Tf + (\)) show + 526.98 422.28 m + /N33 6.97377 Tf + (:) show + Q + n + 5782 4199 4.19922 79.8008 re + f + n + 3166 4119 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 322.2 414.3 m + /N55 6.97377 Tf + (P) show + 327.3 413.28 m + /N61 4.98122 Tf + (1) show + 333.84 414.3 m + /N33 6.97377 Tf + (=*) + [8.81991 3.95687 ] pdfxs + 346.62 414.3 m + /N55 6.97377 Tf + (P) show + 410.22 414.3 m + /N57 6.97377 Tf + (\)) show + 428.94 414.3 m + /N33 6.97377 Tf + (Base=P) + [5.58256 3.9569 3.18297 6.18031 8.81991 5.34095 ] pdfxs + (D) show + (-) show + 470.7 414.3 m + /N55 6.97377 Tf + (>) show + 476.939 414.3 m + /N33 6.97377 Tf + (PoolBase) + [5.10096 4.19688 3.9569 2.27707 5.58261 3.95685 3.18297 3.54035 ] pdfxs + Q + n + 5782 4119 4.19922 79.8008 re + f + n + 3166 4037 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 428.94 406.14 m + /N55 6.97377 Tf + (P) show + 435.12 409.14 m + /N59 4.98122 Tf + (0) show + 434.04 404.1 m + /N61 4.98122 Tf + (1) show + 440.58 406.14 m + /N33 6.97377 Tf + (=*\() + [8.76014 3.9569 3.11694 ] pdfxs + 456.42 406.14 m + /N55 6.97377 Tf + (IdxTyp) + [4.07792 4.14208 4.5012 5.76169 4.2575 4.08063 ] pdfxs + (e) show + 487.021 406.14 m + /N33 6.97377 Tf + (*\)\(Base+) + [3.9569 3.11694 3.11698 5.58256 3.9569 3.18297 3.54035 6.11999 ] pdfxs + 519.601 406.14 m + /N55 6.97377 Tf + (P) show + 525.78 409.14 m + /N59 4.98122 Tf + (0) show + 528.54 406.14 m + /N33 6.97377 Tf + (\)) show + Q + n + 5782 4037 4.19922 82.1992 re + f + n + 3166 3958 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 322.2 398.16 m + /N33 6.97377 Tf + (*) show + 326.16 398.16 m + /N55 6.97377 Tf + (P) show + 331.26 397.14 m + /N61 4.98122 Tf + (1) show + 337.8 398.16 m + /N33 6.97377 Tf + (=) show + 346.62 398.16 m + /N55 6.97377 Tf + (P) show + 410.22 398.16 m + /N57 6.97377 Tf + (\)) show + 428.94 398.16 m + /N33 6.97377 Tf + (Base=P) + [5.58256 3.9569 3.18297 6.18031 8.81991 5.34095 ] pdfxs + (D) show + (-) show + 470.699 398.16 m + /N55 6.97377 Tf + (>) show + 476.939 398.16 m + /N33 6.97377 Tf + (PoolBase) + [5.10096 4.19688 3.9569 2.27707 5.58261 3.95685 3.18297 3.54035 ] pdfxs + Q + n + 5782 3958 4.19922 79.8008 re + f + n + 3166 3876 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 428.94 390 m + /N33 6.97377 Tf + (*\() + [3.9569 3.11694 ] pdfxs + 436.02 390 m + /N55 6.97377 Tf + (IdxTyp) + [4.07792 4.14208 4.5012 5.76169 4.2575 4.08063 ] pdfxs + (e) show + 466.62 390 m + /N33 6.97377 Tf + (*\)\(Base+) + [3.9569 3.11694 3.11698 5.58256 3.9569 3.18297 3.54035 6.11999 ] pdfxs + 499.201 390 m + /N55 6.97377 Tf + (P) show + 505.38 393 m + /N59 4.98122 Tf + (0) show + 504.3 387.96 m + /N61 4.98122 Tf + (1) show + 508.2 390 m + /N33 6.97377 Tf + (\)=) + [5.81685 6.12004 ] pdfxs + 522.84 390 m + /N55 6.97377 Tf + (P) show + 529.02 393 m + /N59 4.98122 Tf + (0) show + Q + n + 5782 3876 4.19922 82.1992 re + f + n + 3168 3872 2616 4.19922 re + f + n + 3166 3792 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 322.2 381.6 m + /N55 6.97377 Tf + (P) show + 331.02 381.6 m + /N33 6.97377 Tf + (=poolalloc\(P) + [8.81991 4.6202 4.19686 3.95687 2.27707 3.95687 2.2771 2.2771 4.197 3.54035 3.11701 + 5.34098 ] pdfxs + (D) show + (,N\)) + [4.85722 5.87815 3.11698 ] pdfxs + 410.22 381.6 m + /N57 6.97377 Tf + (\)) show + 428.94 381.6 m + /N33 6.97377 Tf + (Tmp=\(N/OldSize\)*NewSize) + [5.69663 6.53649 7.08017 8.76014 3.11698 5.87812 3.9569 6.11999 2.27712 4.38026 4.38031 + 2.27707 3.54035 3.54035 3.11698 3.9569 5.87812 3.54035 5.69663 4.38031 2.27707 3.54035 + 3.54035 ] pdfxs + Q + n + 5782 3792 4.19922 79.8008 re + f + n + 3166 3710 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 428.94 373.44 m + /N55 6.97377 Tf + (P) show + 435.12 376.44 m + /N59 4.98122 Tf + (0) show + 440.46 373.44 m + /N33 6.97377 Tf + (=poolalloc) + [8.76014 4.6202 4.19688 3.9569 2.27707 3.9569 2.27707 2.27712 4.19703 3.54035 ] pdfxs + Q + n + 4810 3734 24 4.19922 re + f + q + 10 0 0 10 0 0 cm + 483.361 373.44 m + /N33 6.97377 Tf + (pc\(P) + [4.6202 3.54035 3.11698 5.34095 ] pdfxs + (D) show + (,Tmp\)) + [4.91698 5.69663 6.53649 4.38031 3.11694 ] pdfxs + Q + n + 5782 3710 4.19922 82.1992 re + f + n + 3166 3629 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 322.2 365.28 m + /N33 6.97377 Tf + (poolfree\(P) + [4.6202 4.19686 3.95687 2.27707 2.45885 3.11698 3.54037 3.54035 3.11698 5.34098 ] pdfxs + (D) show + (,) show + 369.3 365.28 m + /N55 6.97377 Tf + (P) show + 375.48 365.28 m + /N33 6.97377 Tf + (\)) show + 410.22 365.28 m + /N57 6.97377 Tf + (\)) show + 428.94 365.28 m + /N33 6.97377 Tf + (poolfree) + [4.6202 4.19688 3.9569 2.27707 2.45888 3.11698 3.54035 3.54035 ] pdfxs + Q + n + 4571 3653 24 4.19922 re + f + q + 10 0 0 10 0 0 cm + 459.48 365.28 m + /N33 6.97377 Tf + (pc\(P) + [4.6202 3.54035 3.11698 5.34095 ] pdfxs + (D) show + (,) show + 487.02 365.28 m + /N55 6.97377 Tf + (P) show + 493.2 368.28 m + /N59 4.98122 Tf + (0) show + 495.9 365.28 m + /N33 6.97377 Tf + (\)) show + Q + n + 5782 3629 4.19922 82.1992 re + f + n + 3166 3549 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 322.2 357.3 m + /N33 6.97377 Tf + (poolinit\(P) + [4.6202 4.19686 3.95687 2.27707 2.2771 4.38029 2.2771 3.11698 3.11698 5.34098 ] pdfxs + (D) show + (,Size\)) + [4.85699 4.38029 2.2771 3.54035 3.54035 3.11701 ] pdfxs + 410.22 357.3 m + /N57 6.97377 Tf + (\)) show + 428.94 357.3 m + /N33 6.97377 Tf + (Tmp=\(Size/OldSize\)*NewSize) + [5.69663 6.53649 7.08017 8.76014 3.11698 4.38026 2.27707 3.5404 3.54035 3.9569 6.11999 + 2.27712 4.38026 4.38026 2.27712 3.54035 3.54035 3.11698 3.95685 5.87817 3.54035 5.69663 + 4.38026 2.27712 3.54035 3.54035 ] pdfxs + Q + n + 5782 3549 4.19922 79.8008 re + f + n + 3166 3470 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 428.94 349.32 m + /N33 6.97377 Tf + (poolinit) + [4.6202 4.19688 3.9569 2.27707 2.27712 4.38026 2.27707 3.11698 ] pdfxs + Q + n + 4565 3493 24 4.19922 re + f + q + 10 0 0 10 0 0 cm + 458.82 349.32 m + /N33 6.97377 Tf + (pc\(P) + [4.6202 3.54035 3.11698 5.34095 ] pdfxs + (D) show + (,Tmp\)) + [4.97714 5.69663 6.53649 4.38031 3.11694 ] pdfxs + Q + n + 5782 3470 4.19922 79.8008 re + f + n + 3166 3390 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 322.2 341.4 m + /N33 6.97377 Tf + (pooldestroy\(P) + [4.6202 4.19686 3.95687 2.27707 4.38029 3.54037 3.18289 3.11701 3.11698 3.71686 4.19861 + 3.11698 5.341 ] pdfxs + (D) show + (\)) show + 410.22 341.4 m + /N57 6.97377 Tf + (\)) show + 428.94 341.4 m + /N33 6.97377 Tf + (pooldestroy) + [4.6202 4.19688 3.9569 2.27707 4.38031 3.54035 3.18292 3.11698 3.11694 3.71691 4.19861 + ] pdfxs + Q + n + 4697 3414 24 4.19922 re + f + q + 10 0 0 10 0 0 cm + 472.08 341.4 m + /N33 6.97377 Tf + (pc\(P) + [4.6202 3.54035 3.11698 5.34095 ] pdfxs + (D) show + (\)) show + Q + n + 5782 3390 4.19922 79.8008 re + f + n + 3168 3386 2616 4.19922 re + f + q + 10 0 0 10 0 0 cm + 325.02 317.16 m + /N23 8.96638 Tf + (Figure8:Rewriterulesforpointercompression) + [6.66309 2.94267 5.28303 5.87642 4.37907 8.46026 5.28303 7.68282 7.98245 4.86025 7.68343 + 4.37907 2.94267 4.13849 8.40033 4.37907 5.87644 2.94267 4.86029 7.74219 3.24387 5.28306 + 7.91891 6.17649 5.28301 2.94272 5.57639 4.13846 4.86029 7.97916 4.74074 5.28306 8.81906 + 5.87644 4.37907 4.86029 4.2022 4.2022 2.94267 5.28301 5.87644 ] pdfxs + 325.8 294.24 m + /N17 8.96638 Tf + (Intherewriterules,) + [3.30018 8.34 3.60273 5.10017 7.25865 3.59993 4.0785 6.65756 3.59993 2.57567 3.60273 + 7.31834 3.59993 5.10017 2.57567 4.0785 3.65642 2.57567 ] pdfxs + 409.62 294.24 m + /N31 8.96638 Tf + (P) show + 420 294.24 m + /N17 8.96638 Tf + (and) + [4.62114 5.10017 5.10017 ] pdfxs + 438 294.24 m + /N31 8.96638 Tf + (P) show + 445.14 298.08 m + /N63 5.97748 Tf + (0) show + 451.08 294.24 m + /N17 8.96638 Tf + (denoteanoriginalpointer) + [5.10017 4.07845 5.10017 4.62114 3.60276 7.31839 4.62114 8.28014 4.62114 3.59993 2.57562 + 4.62114 2.57562 5.10017 4.62114 5.69553 5.34001 4.62114 2.57562 4.86033 3.60276 4.07845 + 3.59993 ] pdfxs + 316.8 283.8 m + (andacompressedindex.) + [4.62109 5.10017 8.28017 7.80109 4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 + 3.65645 4.07848 8.28002 2.57567 5.10017 5.10017 4.0785 4.85623 2.57562 ] pdfxs + 420.12 283.8 m + /N31 8.96638 Tf + (V) show + 430.74 283.8 m + /N17 8.96638 Tf + (isanynon-compressedvaluein) + [2.57562 6.71648 4.62114 4.86023 8.03606 5.10017 4.62114 5.10017 3.06367 4.08197 4.62109 + 7.67579 5.10017 3.59993 4.07845 3.65647 3.65647 4.07845 8.34025 4.31615 4.62114 2.57562 + 5.10017 7.25863 2.57562 5.10017 ] pdfxs + 316.8 273.3 m + (theprogram\(anon-pointervalue,anon-convertedpointer,) + [3.60273 5.10017 7.25865 5.10017 3.59993 4.62109 4.62109 3.59993 4.62112 10.7959 3.60273 + 7.68118 5.10017 4.62109 5.10017 3.06375 5.34009 4.62109 2.57567 4.86033 3.60276 4.07845 + 6.7801 4.31615 4.62114 2.57562 5.10017 4.07845 5.75549 7.74096 5.10017 4.62114 5.10017 + 3.06367 4.08197 4.62109 4.86003 4.61615 4.07845 3.59993 3.60276 4.0785 8.28 5.34001 + 4.62114 2.57562 4.86033 3.60276 4.07845 3.59993 2.55545 ] pdfxs + 316.8 262.86 m + (oranuncompressedindex\).) + [4.62109 7.91977 4.62109 9.42001 5.10017 5.10017 4.08197 4.62109 7.67579 5.10017 3.59993 + 4.07848 3.65645 3.65645 4.07848 9.48002 2.57567 5.10012 5.10017 4.0785 4.85623 3.60276 + 2.57562 ] pdfxs + 439.38 262.86 m + /N31 8.96638 Tf + (Id) + [4.73752 4.80437 ] pdfxs + (x) show + (Type) + [6.66396 4.85864 4.62071 4.26159 ] pdfxs + 478.86 262.86 m + /N17 8.96638 Tf + (istheintegertype) + [2.57562 7.91647 3.60276 5.10017 8.45862 2.57562 4.86003 3.60276 4.07845 4.62114 4.07845 + 7.91994 3.36292 4.85623 5.34016 4.07845 ] pdfxs + 316.8 252.42 m + (usedforcompressedpointers\(e.g.int32) + [5.10017 3.65645 4.07848 7.92033 2.81963 4.62109 6.42009 4.08197 4.62109 7.67579 5.10017 + 3.59993 4.07848 3.65645 3.65645 4.07848 7.92026 5.34001 4.62114 2.57562 4.86033 3.60276 + 4.07845 3.59993 6.41648 3.60276 4.07845 2.57567 4.62109 6.53558 2.57562 4.86003 3.60276 + 4.62114 4.62109 ] pdfxs + Q + n + 4772 2524 28.1992 4.19922 re + f + q + 10 0 0 10 0 0 cm + 480 252.42 m + /N17 8.96638 Tf + (tif) + [6.36291 2.57562 2.81965 ] pdfxs + 494.52 252.42 m + /N31 8.96638 Tf + (k) show + 502.14 252.42 m + /N17 8.96638 Tf + (=32\).All) + [9.71649 4.62114 4.62109 3.60276 6.53572 6.90289 2.57562 2.57567 ] pdfxs + 546.06 252.42 m + /N31 8.96638 Tf + (P) show + 553.2 256.2 m + /N63 5.97748 Tf + (0) show + 316.8 241.92 m + /N17 8.96638 Tf + (valuesareoftype) + [4.31612 4.62109 2.57567 5.10017 4.0785 6.65642 4.62109 3.59993 7.13866 4.62109 5.75971 + 3.36289 4.85621 5.34016 4.0785 ] pdfxs + 390.6 241.92 m + /N31 8.96638 Tf + (Id) + [4.73752 4.80437 ] pdfxs + (x) show + (Type) + [6.66396 4.85864 4.62071 4.26159 ] pdfxs + 425.76 241.92 m + /N17 8.96638 Tf + (.Indexesloadedfrom\(orstored) + [6.59563 3.30018 5.10017 5.10017 4.07845 4.85623 4.0785 6.77644 2.57562 4.62114 4.62114 + 5.10017 4.07845 8.10016 2.81965 3.59993 4.62109 10.6758 3.60276 4.62114 6.54006 3.65647 + 3.60276 4.62109 3.59993 4.0785 5.10017 ] pdfxs + 316.8 231.48 m + (to\)non-THpoolsareleftintheiroriginalsizewhereasthos) + [3.60273 4.62109 6.12258 5.10017 4.62109 5.10017 3.06375 6.65756 9.48282 5.34001 4.86126 + 4.62109 2.57567 6.11635 4.62109 3.59993 6.65858 2.57567 4.0785 2.8196 6.12278 2.57562 + 7.62018 3.60276 5.10017 4.07845 2.57567 6.12 4.62114 3.59993 2.57562 4.62114 2.57562 + 5.10017 4.62114 5.03577 3.65647 2.57562 4.08197 6.59837 6.65759 5.10017 4.07845 3.59993 + 4.0785 4.62109 6.23655 3.60276 5.10017 4.62114 3.63137 ] pdfxs + 551.88 231.48 m + (e) show + 316.8 221.04 m + (fromTHpoolsarecastto) + [2.81963 3.59993 4.62109 10.7359 6.65759 9.9628 5.34001 4.86126 4.62109 2.57567 6.71636 + 4.62109 3.59993 7.19842 4.08197 4.62109 3.65645 6.60276 3.60276 4.62114 ] pdfxs + 424.98 221.04 m + /N31 8.96638 Tf + (Id) + [4.73752 4.80437 ] pdfxs + (x) show + (Type) + [6.66396 4.85864 4.62071 4.26159 ] pdfxs + 460.14 221.04 m + /N17 8.96638 Tf + (.) show + 325.8 210.54 m + (Therulestorewriteaddressingofstructuresandarrays) + [6.65759 5.10017 7.79864 3.59993 5.10017 2.57567 4.0785 7.37627 3.60273 8.28117 3.59993 + 4.0785 6.65756 3.59993 2.57567 3.60273 7.79842 4.62114 5.10017 5.10017 3.59993 4.07845 + 3.65647 3.65647 2.57562 5.10017 8.34096 4.62114 6.53976 3.65647 3.60276 3.59993 5.10017 + 4.08192 3.60276 5.10017 3.59993 4.0785 7.37644 4.62114 5.10017 8.81998 4.62114 3.59993 + 3.59993 4.3811 4.85623 3.65647 ] pdfxs + 316.8 200.1 m + (loweraddressingtoexplicitarithmetic,andusenewo\013sets) + [2.57567 4.38125 6.4175 4.0785 6.78007 4.62109 5.10017 5.10017 3.59993 4.0785 3.65642 + 3.65645 2.57567 5.10017 7.86125 3.60273 7.80109 4.0785 4.85619 5.10017 2.57567 2.57562 + 4.08192 2.57567 6.78259 4.62114 3.59993 2.57562 3.60276 5.10017 7.67525 4.0785 3.60276 + 2.57562 4.08197 5.75569 4.62114 5.10017 8.40007 5.10017 3.65647 7.25838 5.10017 4.07845 + 9.95743 4.62114 5.40425 3.65642 4.0785 3.60276 3.65647 ] pdfxs + 316.8 189.66 m + (andsizesforthecompressedobjects,nottheoriginal.Mem-) + [4.62109 5.10017 7.56025 3.65645 2.57564 4.08197 4.0785 6.05659 2.81963 4.62109 6.05994 + 3.60273 5.10017 6.47857 4.08197 4.62109 7.67579 5.10017 3.59993 4.0785 3.65647 3.65642 + 4.0785 7.62024 4.62114 5.6403 2.81965 4.07845 4.08192 3.60276 3.65647 5.03572 5.10017 + 4.62114 6.06282 3.60276 5.10017 6.53831 4.62114 3.59993 2.57562 4.62114 2.57562 5.10017 + 4.62114 2.57562 6.35579 8.46031 4.07845 7.67579 3.07549 ] pdfxs + 316.8 179.16 m + (oryallocationsscale\(atruntime\)theallocatedsizefrom) + [4.62109 3.59993 9.29612 4.62109 2.57567 2.57567 4.86094 4.08197 4.62109 3.60273 2.57567 + 4.62109 5.10017 7.97651 3.65645 4.08195 4.62112 2.57564 8.4585 3.60273 4.62114 7.98274 + 3.59993 5.10017 4.86033 3.60276 2.57562 7.67579 4.07845 8.04284 3.60276 5.10017 8.51839 + 4.62114 2.57562 2.57562 4.86099 4.08192 4.62114 3.60276 4.07845 9.48034 3.65647 2.57562 + 4.08197 8.45853 2.81965 3.59993 4.62109 7.67579 ] pdfxs + 316.8 168.72 m + (theoldtothenewsize.Themostcommonargumentto) + [3.60273 5.10017 8.27857 4.62109 2.57567 9.24 3.60273 8.70109 3.60273 5.10017 8.27857 + 5.10017 4.0785 10.8574 3.65645 2.57564 4.08197 4.07845 9.83547 6.65759 5.10017 8.2783 + 7.67525 4.62114 3.65647 7.68259 4.08192 4.62114 7.67525 7.67579 4.62109 9.2401 4.62114 + 3.59993 4.62109 5.10017 7.67579 4.07845 4.86033 7.80275 3.60276 4.62114 ] pdfxs + 316.8 158.28 m + (a) show + 325.74 158.28 m + /N15 8.96638 Tf + (poolalloc) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.67993 4.67995 ] pdfxs + 372.48 158.28 m + /N17 8.96638 Tf + (callisaconstantthatisexactly\\OldSize",) + [4.08197 4.62109 2.57567 6.89573 2.57567 7.97658 8.94093 4.08192 4.62114 5.10017 3.65647 + 3.60276 4.62109 4.86003 7.92267 3.60276 5.10017 4.62114 7.92258 2.57562 7.97663 4.07845 + 4.85623 4.62114 4.08192 3.60276 2.57567 9.1762 4.62114 7.13657 2.57562 5.10017 5.10017 + 2.57567 4.08192 4.07845 4.62114 2.57562 ] pdfxs + 316.8 147.78 m + (allowingthearithmetictoconstantfoldtoNewSize.The) + [4.62109 2.57567 2.57567 4.38125 6.65759 2.57564 5.10017 8.4611 3.60273 5.10017 8.03833 + 4.62109 3.59993 2.57567 3.60273 5.10017 7.67579 4.07848 3.60273 2.57567 7.98186 3.60276 + 8.52104 4.08192 4.62114 5.10017 3.65647 3.60276 4.62109 4.86003 7.50276 2.81965 4.62109 + 2.57567 9.06022 3.60276 8.52104 6.90289 4.07845 6.65759 5.10017 2.57567 4.08192 4.07845 + 9.29573 6.65759 5.10017 4.07845 ] pdfxs + 316.8 137.34 m + (dynamicinstructionsareonlyneededwhenallocatingan) + [5.10017 4.85621 5.10017 4.62109 7.67579 2.57564 8.52212 2.57567 5.10017 3.65642 3.60273 + 3.59993 5.10017 4.08197 3.60273 2.57567 4.62109 5.10017 7.97644 4.62114 3.59993 8.51829 + 4.62114 5.10017 2.57562 9.23606 5.10017 4.07845 4.0785 5.10017 4.07845 9.66017 6.65759 + 5.10017 4.07845 9.54025 4.62114 2.57562 2.57562 4.86099 4.08192 4.62114 3.60276 2.57562 + 5.10017 8.94106 4.62114 5.10017 ] pdfxs + 316.8 126.9 m + (arrayofelementsfromasingle) + [4.62109 3.59993 3.59993 4.3811 8.57627 4.62109 6.53979 4.0785 2.57567 4.07848 7.67579 + 4.0785 4.86033 3.60273 7.37651 2.81963 3.59993 4.62109 11.3956 8.34096 3.65647 2.57562 + 5.10017 4.62114 2.57562 4.0785 ] pdfxs + 448.2 126.9 m + /N15 8.96638 Tf + (poolalloc) + [4.6799 4.67995 4.6799 4.67995 4.6799 4.6799 4.67995 4.6799 4.67995 ] pdfxs + 494.28 126.9 m + /N17 8.96638 Tf + (site,orwhena) + [3.65647 2.57562 3.60276 4.0785 6.41545 4.62114 7.31975 6.65759 5.10017 4.07845 8.88009 + 4.62114 ] pdfxs + 316.8 116.4 m + (mallocwrapperisused\(intheinterproceduralcase\).) + [7.67579 4.62109 2.57567 2.57567 4.86101 7.1418 6.65759 3.59993 4.62109 5.10017 5.34009 + 4.0785 6.71992 2.57567 6.71643 5.10017 3.65645 4.07848 8.16017 3.60276 2.57562 8.16003 + 3.60276 5.10017 7.19847 2.57562 4.86003 3.60276 4.07845 3.59993 5.10017 3.59993 4.86099 + 4.08192 4.0785 5.10017 5.10017 3.59993 4.62109 5.69573 4.08192 4.62114 3.65647 4.07845 + 3.60276 2.57567 ] pdfxs + 316.8 98.0996 m + /N9 11.9552 Tf + (3.4InterproceduralPointerCompression) + [6 3 17.9398 4.67992 6.65999 3.95992 5.27982 5.15966 6.66002 5.03981 6 + 5.27982 5.27982 6.65999 6.65997 5.27985 6 6.35992 7.07997 6 3.30001 6.66002 + 3.95994 5.2798 8.33966 8.63981 6 9.95995 6.66002 5.03981 5.2798 4.67992 4.67987 + 3.30001 6 6.66002 ] pdfxs + 325.8 85.1395 m + /N17 8.96638 Tf + (Extendingpointercompressiontosupportfunctioncalls) + [6.29667 4.85621 3.60273 4.07848 5.10017 5.10017 2.57567 5.10017 8.22094 5.34001 4.62109 + 2.57567 4.86033 3.60273 4.0785 7.2 4.08197 4.62109 7.67525 5.10017 3.59993 4.0785 + 3.65647 3.65642 2.57567 4.62109 8.70026 3.60276 8.16127 3.65647 5.10017 5.10017 5.34016 + 4.62114 3.59993 7.26282 2.81965 5.10017 5.10017 4.08192 3.60276 2.57562 4.62114 8.70016 + 4.08192 4.62114 2.57562 2.57567 3.65647 ] pdfxs + 316.8 74.6997 m + (andreturnsrequiresthreechangestothealgorithmabove.) + [4.62109 5.10017 8.52001 3.59993 4.0785 3.60273 5.10017 3.59993 5.10017 7.01643 3.59993 + 4.0785 4.85619 5.10017 2.57567 3.59993 4.0785 7.01636 3.60273 5.10017 3.59993 4.07845 + 7.49857 3.84179 5.10017 4.62114 5.10017 4.62109 4.0785 7.01628 3.60276 7.92104 3.60276 + 5.10017 7.49847 4.62114 2.57562 4.62114 4.62109 3.59993 2.57567 3.60276 5.10017 10.9752 + 4.62114 5.34031 4.3812 4.61615 4.07845 2.57567 ] pdfxs + Q + Q + PDFVars/TermAll get exec end end + userdict /pgsave get restore + showpage + %%PageTrailer + %%EndPage + %%Page: 6 6 + %%BeginPageSetup + userdict /pgsave save put + PDFVars begin PDF begin PDFVars/InitAll get exec + 0 0 612 792 true PDF begin PDFVars begin AS end end + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font QQIUWC+CMMI5 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMMI5) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /QQIUWC+CMMI5 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { 0 -11 596 442 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3EC8DC423323 + 00A152553EC9C9C51591C81BB5A2F58753878D92B1C73E948BB360F467A7D593 + 2446E52E22935D5D0316634839C917AE2BE363D6AE3760363F748EAAEAD9AB74 + D863835F45718D23FB3980D0C645610BF765847F4BC5CB03391BDC9D40A6A460 + ABF0D95BB6A176DB5088A1068A0DFDC266C25ADCBEF3E5472E03E0D29BC6801F + A2AEAD77E33C80C0DC39DD6133A821B832A2E5715CD8DD3C7DDBB03FB0392FE0 + DFF893455E2C3785748902E5F51526A31E87B129BD404665F66962F76F87E20E + 5089B597E5C65CB57D318645572725F13AF00468783A615907208CF914F9918C + DA05AEA0202C7969BA5FAB974F8ACF870FBA0FFA9E8DF9EC482B359D6795929F + 218E2AA49BD1915E47A0FCE930A90A92F611D523ADAC3CA5DC13764823BD046D + DD10F18279AB5532FD07F81BCFD4645DA60D961B11A8F9BC7E3EE8E5EC432B31 + E5DFA48FA7EA2A95C4908F2A21C32F5C2B35801A1D8EE86DE3A5BC42C388130D + 852BE8507237223F4C617071D1DD3DB9BB5D9AD0620385D76A1D55442316C4C5 + 86F5095833706A567ABB31E19668EB2EDEDCF5369533474FCCBB6E9DFABA45EF + 9F043962241E6A64CA9CD0FF12F77F610F670D4D66E6042E9D10E4E0841B7813 + 73AF58AB9B16B8322E3B1047832EBA5B2DAF074DB29C211BBB03C33CAB5DFC8B + CE425D9A6622ED17193653C0EE0274909BF0279FD53CADC156197B77EC3CB035 + B172930A0273B2A29F466991B0AABF77E2F780A607148A0EE7CEB3DEABB54C4B + 942B30CDD325558F4484300B5E17B335FC57E7F00DB64D3269E9E3CA6468B5A1 + AA1902641901E622191E63CA464D7A7EE3273C82EA2CBC0873C77270F7CCA664 + A17C2E8641D76CABEC45ABB655ED236E50C4F7FD31342F495BEF4AD28FBFB568 + 5CDEED94B01BCDCFAEBE0A67ABEA6320313ECECD62EC5D3F613AE76C02612395 + B6C40CB6FCB37C23F7F94659D5F582924D0AE7CE855B071ED1D37E354696A70F + 659A025C18578A89E77EDDCC65634FB84B52F6969E32E11369FCB0C16EBFF723 + F05044BD106B5D338A478786A065A015E2722C9F4B57E4A1C2D418846E810921 + 01F0D9CB2468FC8C45DCE700825E16F546D86F895DBEEA9BCC0FA695EA1AB25A + D96C0DEA945FB78150ACFC7FF4BE47BB6F152DFD404EB3F46C7B4D7223B58631 + 4D87500C48F24EF107AB164FA75961C9675B8A967CE65FC9922418259AB8B70A + 14A1F9C638637E71EB29B23C893DB8F4AF9043D831AAD2E77F92FF5BF630E728 + FC3780C20E6B4F8D7D95886486B25B9D44B754CE9DA717898AA8C7A7309CB518 + 74405F6FD0094943A726380C3E709685CADEBCBE5CA584ECF7E8D6ACB63B1407 + D915713D65BC7F713A562F922A0B862D8E6622C68AC25D42646472469B95C9D3 + FCFB2CCB0BDB313FAC468CAA5EE7B52DBD3AE85DF6FA28F7315139D43F3C5522 + 32109D4127D40010049BA50F62EBBD41304228237DA061E9FAC34FC8C818682B + B4976B9D1DF6DD061367A877C2156AF11F718C2873ACA623AD5F602185527933 + B9C7380BA51A5632D7E896090CA74D4E9A8926BF46AF0DBA6D98461951D7ADEB + C6ED15DEB82ED260CEA59E7764EA1D2FCCB9BCC305A4381F209F1DD9484626B1 + 66B9CDEE4A1AC7C86F155AA2504DD07C437AF841DFD99B889380FE8F9CD51B67 + 5733356A02595135D3524D7BF71F42B25A3C7A86EA28DAA524A69D + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /QQIUWC+CMMI5 findfont /Encoding get + dup 0 /.notdef put + pop + end + /QQIUWC+CMMI5 findfont /Encoding get + dup 0 /.notdef put + dup 99 /.notdef put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [/N69/QQIUWC+CMMI5 1 TZG + %%EndPageSetup + 0 0 612 792 re + W + n + q + 0.0999908 0 0 0.0999908 0 0 cm + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 53.8199 728.22 m + /N17 8.96638 Tf + (First,aminorchangeisneededtothepoolallocationtrans-) + [6.00161 2.57565 3.59993 3.65644 3.60274 5.21581 7.26126 7.67578 2.57565 5.10016 4.62111 + 6.23986 3.84181 5.10016 4.62111 5.10016 4.62112 6.77841 2.57565 6.23636 5.10016 4.0785 + 4.07849 5.10016 4.0785 7.86015 3.60275 7.26126 3.60275 5.10016 6.71842 5.34001 4.86126 + 4.62109 5.21551 4.62109 2.57567 2.57567 4.86094 4.08197 4.62109 3.60273 2.57567 4.62109 + 7.68024 3.60273 3.59993 4.62109 5.10017 3.65645 3.07549 ] pdfxs + 53.8199 717.78 m + (formationtopasspooldescriptorsforallpoolsaccessedi) + [2.81964 4.62111 3.59992 7.67578 4.62111 3.60274 2.57565 4.62111 7.62032 3.60274 7.26126 + 5.10016 4.62111 3.65645 6.17661 5.34 4.86127 4.62111 5.21549 5.10016 4.0785 3.65645 + 4.08196 3.59993 2.57565 5.10016 3.60275 4.62111 3.59993 6.29637 2.81964 4.62112 6.17985 + 4.62109 2.57567 5.15581 5.34001 4.86126 4.62109 2.57567 6.23628 4.62109 4.08197 4.08197 + 4.0785 3.65642 3.65645 4.0785 7.74015 2.57567 ] pdfxs + (n) show + 288.3 717.78 m + (a) show + 53.8199 707.34 m + (callee\(orit'scallees\),notjustthosepoolsusedfor) + [4.08196 4.62111 2.57565 2.57565 4.07849 6.35849 3.60274 4.62111 5.81976 2.57565 3.60274 + 2.57565 5.81653 4.08197 4.62111 2.57565 2.57564 4.0785 4.07849 3.65645 3.60275 4.97581 + 5.10016 4.62111 5.88274 2.81964 5.10016 3.65645 5.82275 3.60275 5.10016 4.62111 3.65645 + 6.35835 5.34 4.86126 4.62109 2.57567 5.87651 5.10017 3.65645 4.07848 7.44025 2.81963 + 4.62109 3.59993 ] pdfxs + 254.16 707.34 m + /N15 8.96638 Tf + (malloc) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 ] pdfxs + 284.7 707.34 m + /N17 8.96638 Tf + (or) + [4.62109 3.59993 ] pdfxs + 53.8197 696.84 m + /N15 8.96638 Tf + (free) + [4.67993 4.67993 4.67994 4.67993 ] pdfxs + 75.6595 696.84 m + /N17 8.96638 Tf + (inthecallee[10].InFigure4forexample,the) + [2.57565 8.10015 3.60274 5.10016 7.07848 4.08197 4.62111 2.57565 2.57564 4.0785 7.07848 + 2.57565 4.62111 4.62111 2.57565 6.59564 3.30019 8.16031 6.00161 2.57564 4.62112 5.10016 + 3.59993 7.07848 7.6211 2.81964 4.62112 6.5999 4.0785 4.85619 4.62112 7.67576 5.10017 + 2.57567 4.0785 5.57566 3.60273 5.10017 4.0785 ] pdfxs + 264.659 696.84 m + /N15 8.96638 Tf + (Length) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 ] pdfxs + 53.8195 686.4 m + /N17 8.96638 Tf + (functionnowgetsapooldescriptorargumentfor\\) + [2.81964 5.10016 5.10016 4.08196 3.60274 2.57565 4.62111 8.40015 5.10016 4.38119 10.0175 + 4.62111 4.0785 3.60275 6.89645 7.98118 5.34 4.86127 4.62111 5.87565 5.10016 4.0785 + 3.65645 4.08196 3.59993 2.57565 5.10016 3.60275 4.62111 6.96001 4.62109 3.59993 4.62109 + 5.10017 7.67579 4.0785 4.86033 6.90273 2.81963 4.62109 6.89978 4.62109 ] pdfxs + 261.299 686.4 m + /N15 8.96638 Tf + (L) show + 265.979 686.4 m + /N17 8.96638 Tf + (."Sec-) + [2.57567 7.98124 5.10017 4.0785 4.08197 3.06372 ] pdfxs + 53.8194 675.96 m + (ond,therewriterulesinFigure9mustbeusedtorewrite) + [4.62111 5.10016 5.10016 6.29556 3.60274 5.10016 7.67857 3.59993 4.07849 6.65758 3.59993 + 2.57564 3.60275 7.73865 3.59993 5.10016 2.57564 4.0785 7.25637 2.57565 8.70023 6.00161 + 2.57564 4.62112 5.10016 3.59993 7.67857 8.22102 7.43562 5.10017 3.65645 7.14272 5.34001 + 7.73834 5.10017 3.65645 4.07848 8.76018 3.60273 8.22101 3.59993 4.0785 6.65756 3.59993 + 2.57567 3.60273 4.0785 ] pdfxs + 53.8194 665.46 m + (functioncallsandreturns.Theserulessimplypassorre-) + [2.81964 5.10016 5.10016 4.08196 3.60274 2.57565 4.62111 8.94 4.08196 4.62111 2.57565 + 2.57565 7.4966 4.62111 5.10016 9.00008 3.59993 4.0785 3.60275 5.10015 3.59993 5.10016 + 3.65646 9.05564 6.65758 5.10016 4.0785 3.65645 7.97857 3.59993 5.10016 2.57567 4.0785 + 7.49658 3.65645 2.57564 7.67579 5.10017 2.57567 8.6962 5.10017 4.62109 3.65645 7.49651 + 4.62109 7.44009 3.59993 4.0785 3.06372 ] pdfxs + 53.8194 655.02 m + (turnacompressed\(i.e.,) + [3.60274 5.10016 3.59993 8.10015 7.62111 4.08196 4.62111 7.67578 5.10016 3.59993 4.0785 + 3.65645 3.65645 4.0785 8.10015 3.60275 2.57565 2.57564 4.0785 2.57564 2.57565 ] pdfxs + 151.439 655.02 m + /N31 8.96638 Tf + (k) show + 156.479 655.02 m + /N17 8.96638 Tf + (-bit\)indexvalueforeverypointer) + [3.06372 5.10016 2.57565 3.60275 6.60275 2.57565 5.10016 5.10015 4.0785 7.91629 4.31612 + 4.62109 2.57567 5.10017 7.0785 2.81963 4.62109 6.59992 4.0785 4.6162 4.0785 3.59993 + 7.85618 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 3.59993 ] pdfxs + 53.8192 644.58 m + (argumentorreturnvaluepointingtoanindexablepool.) + [4.62111 3.59993 4.62111 5.10016 7.67578 4.0785 4.86031 6.66289 4.62111 6.66 3.59993 + 4.0785 3.60275 5.10015 3.59993 8.22016 4.31613 4.62111 2.57565 5.10016 7.1985 5.34 + 4.62111 2.57565 4.86031 3.60275 2.57565 5.10015 7.68127 3.60275 7.6211 4.62109 8.22002 + 2.57567 5.10017 5.10017 4.0785 4.85619 4.62109 5.10017 2.57567 7.19842 5.34001 4.86126 + 4.62109 2.57567 2.57567 ] pdfxs + Q + n + 718 6284 2004 4.19922 re + [/DeviceGray] cs 0 sc + f + n + 716 6204 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 77.2199 622.8 m + /N33 6.97377 Tf + (OriginalStatementTransformedStatement) + [6.12002 3.11698 2.2771 3.95687 2.27709 4.38027 3.95687 4.91698 4.38029 3.11698 3.95687 + 3.11698 3.54036 6.53651 3.54036 4.14013 44.2765 5.03647 3.11698 3.95688 4.38027 3.18293 + 2.45885 3.95687 3.11698 6.53649 3.54035 7.14026 4.38029 3.11698 3.95687 3.11698 3.54035 + 6.53649 3.54037 4.14013 3.11698 ] pdfxs + Q + n + 2720 6204 4.19922 79.8008 re + f + n + 718 6200 2004 4.19922 re + f + n + 716 6118 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 77.2199 614.22 m + /N55 6.97377 Tf + (P) show + 82.3199 613.2 m + /N61 4.98122 Tf + (1) show + 88.8601 614.22 m + /N33 6.97377 Tf + (=) show + 97.6799 614.22 m + /N55 6.97377 Tf + (F) show + 103.8 614.22 m + /N33 6.97377 Tf + (\() show + 106.92 614.22 m + /N55 6.97377 Tf + (P) show + 112.02 613.2 m + /N61 4.98122 Tf + (2) show + 115.86 614.22 m + /N33 6.97377 Tf + (,V,) + [4.91698 5.87815 2.27709 ] pdfxs + 131.64 614.22 m + /N55 6.97377 Tf + (P) show + 136.74 613.2 m + /N61 4.98122 Tf + (3) show + 140.58 614.22 m + /N33 6.97377 Tf + (,...\)) + [4.91698 2.2771 2.27709 2.2771 3.11698 ] pdfxs + 166.139 614.22 m + /N57 6.97377 Tf + (\)) show + 184.859 614.22 m + /N55 6.97377 Tf + (P) show + 191.039 617.22 m + /N59 4.98122 Tf + (0) show + 189.96 612.24 m + /N61 4.98122 Tf + (1) show + 196.5 614.22 m + /N33 6.97377 Tf + (=) show + 205.319 614.22 m + /N55 6.97377 Tf + (F) show + 210.36 613.2 m + /N69 4.98122 Tf + (c) show + 214.079 614.22 m + /N33 6.97377 Tf + (\() show + 217.199 614.22 m + /N55 6.97377 Tf + (P) show + 223.379 617.22 m + /N59 4.98122 Tf + (0) show + 222.299 612.24 m + /N61 4.98122 Tf + (2) show + 226.139 614.22 m + /N33 6.97377 Tf + (,V,) + [4.97714 5.87815 2.2771 ] pdfxs + 241.919 614.22 m + /N55 6.97377 Tf + (P) show + 248.099 617.22 m + /N59 4.98122 Tf + (0) show + 247.019 612.24 m + /N61 4.98122 Tf + (3) show + 250.859 614.22 m + /N33 6.97377 Tf + (,...\)) + [4.97714 2.2771 2.2771 2.27707 3.11701 ] pdfxs + Q + n + 2720 6118 4.19922 82.1992 re + f + n + 716 6037 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 77.2199 606.06 m + /N33 6.97377 Tf + (V) show + 83.0999 605.04 m + /N61 4.98122 Tf + (1) show + 89.6397 606.06 m + /N33 6.97377 Tf + (=) show + 98.4595 606.06 m + /N55 6.97377 Tf + (F) show + 104.579 606.06 m + /N33 6.97377 Tf + (\(V) + [3.11698 5.87815 ] pdfxs + 113.579 605.04 m + /N61 4.98122 Tf + (2) show + 117.479 606.06 m + /N33 6.97377 Tf + (,) show + 122.399 606.06 m + /N55 6.97377 Tf + (P) show + 127.499 605.04 m + /N61 4.98122 Tf + (2) show + 131.399 606.06 m + /N33 6.97377 Tf + (,...\)) + [4.91698 2.2771 2.27709 2.2771 3.11698 ] pdfxs + 166.139 606.06 m + /N57 6.97377 Tf + (\)) show + 184.859 606.06 m + /N33 6.97377 Tf + (V) show + 190.739 605.04 m + /N61 4.98122 Tf + (1) show + 197.339 606.06 m + /N33 6.97377 Tf + (=) show + 206.099 606.06 m + /N55 6.97377 Tf + (F) show + 211.139 605.04 m + /N69 4.98122 Tf + (c) show + 214.919 606.06 m + /N33 6.97377 Tf + (\(V) + [3.11698 5.87815 ] pdfxs + 223.919 605.04 m + /N61 4.98122 Tf + (2) show + 227.759 606.06 m + /N33 6.97377 Tf + (,) show + 232.739 606.06 m + /N55 6.97377 Tf + (P) show + 238.919 609.06 m + /N59 4.98122 Tf + (0) show + 237.839 604.08 m + /N61 4.98122 Tf + (2) show + 241.679 606.06 m + /N33 6.97377 Tf + (,...\)) + [4.91698 2.2771 2.2771 2.27707 3.11701 ] pdfxs + Q + n + 2720 6037 4.19922 82.1992 re + f + n + 716 5957 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 77.2199 598.08 m + /N55 6.97377 Tf + (F) show + 83.3398 598.08 m + /N33 6.97377 Tf + (\(V) + [3.11698 5.87814 ] pdfxs + 92.3398 597.06 m + /N61 4.98122 Tf + (1) show + 96.2398 598.08 m + /N33 6.97377 Tf + (,V) + [4.91698 5.87815 ] pdfxs + 107.04 597.06 m + /N61 4.98122 Tf + (2) show + 110.94 598.08 m + /N33 6.97377 Tf + (,...\)) + [4.91698 2.2771 2.27709 2.2771 3.11698 ] pdfxs + 166.14 598.08 m + /N57 6.97377 Tf + (\)) show + 184.86 598.08 m + /N55 6.97377 Tf + (F) show + 190.98 598.08 m + /N33 6.97377 Tf + (\(V) + [3.11698 5.87815 ] pdfxs + 199.98 597.06 m + /N61 4.98122 Tf + (1) show + 203.88 598.08 m + /N33 6.97377 Tf + (,V) + [4.91698 5.87815 ] pdfxs + 214.68 597.06 m + /N61 4.98122 Tf + (2) show + 218.58 598.08 m + /N33 6.97377 Tf + (,...\)) + [4.91698 2.2771 2.2771 2.27707 3.11701 ] pdfxs + Q + n + 2720 5957 4.19922 79.8008 re + f + n + 716 5875 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 77.2199 589.92 m + /N33 6.97377 Tf + (return) + [3.11698 3.54036 3.11698 4.38027 3.11698 4.38027 ] pdfxs + 101.58 589.92 m + /N55 6.97377 Tf + (P) show + 166.14 589.92 m + /N57 6.97377 Tf + (\)) show + 184.86 589.92 m + /N33 6.97377 Tf + (return) + [3.11698 3.54036 3.11698 4.38029 3.11698 4.38029 ] pdfxs + 209.22 589.92 m + /N55 6.97377 Tf + (P) show + 215.4 592.92 m + /N59 4.98122 Tf + (0) show + Q + n + 2720 5875 4.19922 82.1992 re + f + n + 718 5871 2004 4.19922 re + f + q + 10 0 0 10 0 0 cm + 80.9398 569.94 m + /N23 8.96638 Tf + (Figure9:Interprocedur) + [6.66306 2.94269 5.28303 5.87643 4.37907 8.46026 5.28303 7.68282 4.01738 5.57644 4.13848 + 4.86027 4.37907 5.87643 4.37907 5.58295 4.74074 4.86027 5.87643 5.87644 4.37907 ] pdfxs + (a) show + (lrewriterules.) + [6.54252 4.37907 4.86025 7.68343 4.37907 2.94267 4.13849 8.40033 4.37907 5.87644 2.94267 + 4.86027 4.2022 2.94267 ] pdfxs + 66.2398 559.5 m + /N19 8.96638 Tf + (Pooldescr) + [6.23728 4.20252 4.68267 5.69693 4.68267 4.25804 3.78218 4.25804 3.90108 ] pdfxs + (i) show + (p) + [4.68266 ] pdfxs + (t) show + (orargs.addedbypoolalloca) + [4.68266 7.20102 4.68268 3.42109 4.25803 3.78219 7.02185 4.68268 4.68266 4.68268 3.77795 + 8.04251 4.25803 7.73587 4.20267 4.20267 4.68268 5.7567 4.68266 2.81686 2.33685 4.20251 + 3.77811 4.68266 ] pdfxs + (ti) show + (onareno) + [4.68264 8.57842 4.68266 3.42111 7.49802 5.1585 4.68264 ] pdfxs + (t) show + 64.08 549 m + (shown.Theyare) + [3.78218 4.68267 4.68267 6.11911 5.15848 7.14185 6.60381 4.68268 4.25803 7.73595 4.68268 + 3.42109 7.49802 ] pdfxs + (i) show + (gnoreddur) + [4.25804 5.15848 4.68266 3.42095 3.77811 8.04251 4.68268 4.92057 3.9011 ] pdfxs + (i) show + (ngpo) + [5.15848 7.55787 4.20267 4.68268 ] pdfxs + (i) show + (n) + [5.1585 ] pdfxs + (t) show + (ercompress) + [4.25804 7.20118 3.77811 4.68266 7.50429 4.68266 3.42118 4.25804 3.78217 3.7822 ] pdfxs + (i) show + (on) + [4.68266 5.1585 ] pdfxs + (.) show + 62.7601 524.52 m + /N17 8.96638 Tf + (Third,andmostsigni\fcantly,interproceduralpointer) + [6.65758 5.10016 2.57565 3.59993 5.10016 8.99549 4.62111 5.10016 10.8602 7.67578 4.62111 + 3.65645 9.24274 3.65645 2.57565 4.62111 5.10016 2.57565 5.10016 4.08196 4.62112 4.86016 + 3.60275 2.57565 4.07636 8.93548 2.57565 4.86 3.60273 4.0785 3.59993 5.10017 3.59993 + 4.86094 4.08197 4.0785 5.10017 5.10017 3.59993 4.62109 8.33557 5.34001 4.62109 2.57567 + 4.86033 3.60273 4.0785 3.59993 ] pdfxs + 53.82 514.02 m + (compressionmusthandletheproblemthatareferencein) + [4.08196 4.62111 7.67578 5.10016 3.59993 4.07849 3.65644 3.65645 2.57565 4.62111 9.24008 + 7.43562 5.10016 3.65645 7.74274 5.10016 4.62111 5.10016 5.10016 2.57565 8.33833 3.60275 + 5.10016 8.27857 5.10016 3.59993 4.62111 5.10016 2.57565 4.07849 11.9357 3.60273 5.10017 + 4.62109 7.74288 8.82102 3.59993 4.0785 2.81963 4.0785 3.59993 4.0785 5.10015 4.08197 + 8.39834 2.57567 5.10017 ] pdfxs + 53.82 503.58 m + (afunctionmayuseeithercompressedornon-compressed) + [9.06126 2.81964 5.10016 5.10016 4.08196 3.60274 2.57565 4.62111 9.53999 7.67578 4.38126 + 9.29621 5.10016 3.65645 8.51857 4.0785 2.57564 3.60275 5.10016 4.0785 8.09976 4.08197 + 4.62111 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 4.07848 9.54018 4.62109 8.04008 + 5.10017 4.62109 5.10017 3.06375 4.08197 4.62109 7.67576 5.10017 3.59993 4.0785 3.65645 + 3.65642 4.0785 5.10017 ] pdfxs + 53.82 493.141 m + (indicesindi\013erentcallingcontexts.Thisproblemarises) + [2.57565 5.10016 5.10016 2.57565 4.08196 4.07849 6.41629 2.57565 7.92015 5.10016 2.57565 + 5.40424 4.0785 3.59993 4.0785 4.86016 6.3629 4.08197 4.62111 2.57565 2.57564 2.57565 + 5.10016 7.38103 4.08197 4.62111 4.86031 3.60275 4.0785 4.85621 3.60275 3.65645 6.47573 + 6.65759 5.10017 2.57564 6.4166 5.10017 3.59993 4.62109 5.10017 2.57567 4.0785 10.4959 + 4.62109 3.59993 2.57567 3.65645 4.07848 6.4166 ] pdfxs + (b) show + 285.72 493.141 m + (e-) + [4.0785 3.06372 ] pdfxs + 53.82 482.641 m + (causethesamepoints-tographnodeinacalleefunctioncan) + [4.08196 4.62111 5.10016 3.65644 6.59865 3.60274 5.10016 6.65864 3.65644 4.62111 7.67578 + 6.59866 5.34 4.62111 2.57565 4.86031 3.60275 3.65645 3.06372 3.60275 7.14126 4.62111 + 3.59993 4.62112 5.10016 7.62031 5.10016 4.86127 5.10016 6.71842 2.57565 7.62016 7.14094 + 4.08197 4.62109 2.57567 2.57567 4.07848 6.65851 2.81963 5.10017 5.10017 4.08197 3.60273 + 2.57567 4.62109 7.62008 4.08197 4.62109 5.10017 ] pdfxs + 53.82 472.201 m + (correspondtodi\013erentpoolsindi\013erentcallingcontexts.) + [4.08196 4.62111 3.59993 3.59993 4.07849 3.65644 5.34024 4.62111 5.10016 9.42 3.60275 + 8.82103 5.10016 2.57565 5.40424 4.0785 3.59993 4.0785 4.86016 7.8629 5.34 4.86127 + 4.62111 2.57565 7.8566 2.57565 9.35999 5.10016 2.57565 5.40424 4.0785 3.59993 4.07848 + 4.86018 7.86288 4.08197 4.62109 2.57567 2.57567 2.57564 5.10017 8.7611 4.08197 4.62109 + 4.86033 3.60273 4.0785 4.85619 3.60273 3.65645 2.55545 ] pdfxs + 53.82 461.761 m + (OnecontextmaypassaTHpoolandanotheranon-TH) + [7.13658 5.10016 8.33857 4.08196 4.62111 4.86031 3.60274 4.07849 4.8562 7.74281 7.67578 + 4.38126 9.05636 5.10016 4.62111 3.65645 7.79653 8.76126 6.65758 11.103 5.34 4.86127 + 4.62111 6.77565 4.62111 5.10017 9.30009 4.62109 5.10017 4.62109 3.60273 5.10017 4.0785 + 7.79985 8.82102 5.10017 4.62109 5.10017 3.06375 6.65756 6.90289 ] pdfxs + 53.82 451.261 m + (pool,requiringdi\013erentcodetoloadorstorepointersin) + [5.34 4.86127 4.62111 2.57565 7.07572 3.59993 4.07849 4.8562 5.10016 2.57565 3.59993 + 2.57565 5.10016 8.94095 5.10016 2.57565 5.40424 4.0785 3.59993 4.0785 4.86016 7.8629 + 4.08197 4.86095 5.10016 8.3985 3.60275 8.88118 2.57565 4.62111 4.62111 9.30009 4.62109 + 7.86 3.65645 3.60273 4.62109 3.59993 8.33841 5.34001 4.62109 2.57567 4.86033 3.60273 + 4.0785 3.59993 7.91643 2.57567 5.10017 ] pdfxs + 53.82 440.821 m + (thesetwopools.Weproposetwopossiblesolutionstothis) + [3.60274 5.10016 4.07849 3.65644 7.49833 3.3629 6.4175 7.92103 5.34 4.86127 4.62111 + 2.57565 3.65645 7.67549 8.69858 7.4985 5.10016 3.59993 4.62111 5.34032 4.62111 3.65646 + 7.49857 3.3629 6.4175 7.98118 5.34 4.62111 3.65645 3.65642 2.57567 5.10017 2.57567 + 7.43834 3.65645 4.62109 2.57567 5.10017 3.60273 2.57564 4.62109 5.10017 6.95637 3.60273 + 7.98117 3.60273 5.10017 2.57567 3.65642 ] pdfxs + 53.82 430.381 m + (problem.The\frstistogenerateconditionalcodeforloads) + [5.10016 3.59993 4.62111 5.10015 2.57565 4.07849 7.67578 6.8958 6.65758 5.10016 7.25842 + 5.10016 3.59993 3.65645 6.72282 2.57565 6.71644 3.60275 7.74095 4.62111 4.0785 5.10016 + 4.07849 3.59993 4.62112 3.60275 7.25865 4.08197 4.62111 5.10016 5.10017 2.57567 3.60273 + 2.57564 4.62112 5.10017 4.62109 5.69566 4.08197 4.86094 5.10017 7.25865 2.81963 4.62109 + 6.77986 2.57567 4.62109 4.62109 5.10017 3.65645 ] pdfxs + 53.82 419.881 m + (andstoresofsuchindexvalues\() + [4.62111 5.10016 9.00007 3.65644 3.60274 4.62111 3.59993 4.07849 7.49659 4.62111 6.71948 + 3.65645 5.10016 3.84197 9.00015 2.57565 5.10016 5.10015 4.0785 8.81628 4.31613 4.62111 + 2.57565 5.10016 4.07849 7.55629 3.60275 ] pdfxs + 190.08 419.881 m + /N19 8.96638 Tf + (uses) + [4.92057 3.78219 4.25803 3.78217 ] pdfxs + 211.44 419.881 m + /N17 8.96638 Tf + (oftheseindexesare) + [4.62109 6.71947 3.60273 5.10017 4.0785 3.65642 7.97842 2.57567 5.10017 5.10017 4.0785 + 4.85619 4.0785 7.61635 4.62109 3.59993 4.0785 ] pdfxs + 53.8202 409.44 m + (notaconcernbecausetheyarealwaysusedas) + [5.10016 4.62111 6.18273 7.26126 4.08196 4.62111 5.10016 4.08196 4.07849 3.59993 7.86008 + 5.34 4.0785 4.08196 4.62112 5.10015 3.65646 6.77841 3.60275 5.10016 4.07849 7.4963 + 4.62111 3.59993 6.71834 4.62111 2.57565 6.4175 4.38119 4.85621 6.23645 5.10017 3.65645 + 4.07848 7.74025 4.62109 3.65645 ] pdfxs + 239.88 409.44 m + /N31 8.96638 Tf + (n) show + 245.46 409.44 m + /N17 8.96638 Tf + (-bitvalues\).) + [3.06375 5.10017 2.57564 6.18266 4.31612 4.62109 2.57567 5.10017 4.0785 3.65642 3.60273 + 2.57567 ] pdfxs + 53.8202 399.001 m + (Thesecondistousefunctioncloningandgeneratee\016cient,) + [6.65758 5.10016 6.89864 3.65644 4.07849 4.08196 4.62111 5.10016 7.98007 2.57565 6.41644 + 3.60275 7.44095 5.10016 3.65645 6.89865 2.81964 5.10016 5.10016 4.08197 3.60275 2.57564 + 4.62112 7.98023 4.08197 2.57564 4.62112 5.10015 2.57565 5.10016 7.38095 4.62109 5.10017 + 7.98017 4.62109 4.0785 5.10017 4.0785 3.59993 4.62109 3.60273 6.95865 4.0785 7.67579 + 4.08195 2.57567 4.0785 4.86033 3.60273 2.57567 ] pdfxs + 53.8202 388.501 m + (unconditionalcodeineachfunctionbody.Asexplainedin) + [5.10016 5.10016 4.08196 4.62111 5.10016 5.10015 2.57565 3.60274 2.57565 4.62111 5.10016 + 4.62112 5.99565 4.08197 4.86095 5.10016 7.61841 2.57565 8.52015 4.0785 4.62111 3.84181 + 8.58023 2.81964 5.10016 5.10016 4.08197 3.60275 2.57564 4.62112 8.58023 5.34001 4.86126 + 5.10017 4.07628 7.85581 6.90289 7.07651 4.0785 4.85619 5.10017 2.57567 4.62109 2.57567 + 5.10017 4.0785 8.64001 2.57567 5.10017 ] pdfxs + 53.8202 378.061 m + (thenextsection,dynamicpointercompression) + [3.60274 5.10016 6.71841 5.10016 4.07849 4.8562 6.30259 3.65644 4.07849 4.08196 3.60273 + 2.57565 4.62111 5.10016 5.27565 5.10016 4.85621 5.10016 4.62111 7.67578 2.57565 6.78188 + 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 6.23984 4.08197 4.62111 7.67579 5.10017 + 3.59993 4.07848 3.65645 3.65645 2.57564 4.62112 5.10017 ] pdfxs + 242.04 378.061 m + /N19 8.96638 Tf + (requ) + [3.42103 3.77811 4.25804 4.92058 ] pdfxs + (i) show + (res) + [3.42103 4.25804 3.78217 ] pdfxs + 276 378.061 m + /N17 8.96638 Tf + (con-) + [4.08197 4.62109 5.10017 3.06375 ] pdfxs + 53.821 367.621 m + (ditionalcodesequencesinanycasetohandledynamicpool) + [5.10016 2.57565 3.60274 2.57565 4.62111 5.10016 4.62111 5.4558 4.08196 4.86096 5.10016 + 7.13833 3.65645 4.0785 4.85621 5.10016 4.07849 5.10016 4.08197 4.0785 6.65644 2.57565 + 8.10015 4.62111 4.86024 7.7962 4.08197 4.62111 3.65645 7.01858 3.60275 7.56125 5.10017 + 4.62109 5.10017 5.10017 2.57567 7.13833 5.10017 4.85621 5.10017 4.62109 7.67579 2.57564 + 7.08196 5.34001 4.86126 4.62109 2.57567 ] pdfxs + 53.821 357.121 m + (expansion,andwedescribetheformersolutionthere.Our) + [4.07849 4.85621 5.10015 4.62111 5.10016 3.65644 2.57565 4.62111 5.10016 5.99557 4.62111 + 5.10016 8.52 6.4175 7.4985 5.10016 4.0785 3.65645 4.08196 3.59993 2.57565 5.34 + 7.55865 3.60275 5.10016 7.4985 2.81964 4.62112 3.59993 7.67576 4.0785 6.96008 3.65645 + 4.62109 2.57567 5.10017 3.60273 2.57564 4.62109 8.4601 3.60273 5.10017 4.0785 3.59993 + 4.0785 7.67549 7.13659 5.10017 3.59993 ] pdfxs + 53.821 346.681 m + (goalwithstaticpointercompressionistopresentaverye\016-) + [4.62111 4.62111 4.62111 5.03565 6.65758 2.57565 3.60274 7.62032 3.65644 3.60274 4.62112 + 3.60273 2.57565 6.48181 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 6.18008 4.08197 + 4.62111 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 2.57565 4.62111 7.62016 2.57565 + 6.11643 3.60273 7.08117 5.10017 3.59993 4.0785 3.65642 4.0785 4.86025 6.18281 7.14094 + 4.61612 4.0785 3.59993 7.37634 4.0785 7.67579 3.07549 ] pdfxs + 53.821 336.181 m + (cientsolutionthatworksinmostcommoncases,andthere-) + [4.08196 2.57565 4.07849 4.86016 6.48281 3.65644 4.62111 2.57565 5.10016 3.60274 2.57565 + 4.62111 7.92023 3.60275 5.10016 4.62111 6.48275 6.4175 4.62111 3.59993 4.85622 6.4766 + 2.57565 7.98031 7.67578 4.62111 3.65645 6.48259 4.08197 4.62111 7.67579 7.67579 4.62109 + 7.98032 4.08197 4.62109 3.65645 4.07848 3.65645 5.45582 4.62109 5.10017 8.04033 3.60273 + 5.10017 4.0785 3.59993 4.0785 3.06372 ] pdfxs + 53.821 325.741 m + (forewefocusonthelattersolution\(functioncloning\)her) + [2.81964 4.62111 3.59992 7.19834 6.4175 7.19849 2.81964 4.86119 4.08196 5.10017 6.83636 + 4.62111 8.22 3.60275 5.10016 7.25865 2.57565 4.62111 3.60275 3.60275 4.07849 6.71994 + 3.65645 4.62112 2.57564 5.10016 3.60275 2.57565 4.62111 8.16008 3.60275 2.81964 5.10017 + 5.10017 4.08197 3.60273 2.57567 4.62109 8.22009 4.08197 2.57567 4.62109 5.10017 2.57567 + 5.10015 4.62112 6.72273 5.10017 4.0785 3.59993 ] pdfxs + (e) show + 290.281 325.741 m + (.) show + 53.821 315.301 m + (Inpractice,webelievethatrelativelylittlecloningwoul) + [3.30019 7.74 5.10016 3.59993 4.62111 4.08196 3.60274 2.57565 4.08196 4.07849 5.27558 + 6.4175 6.65865 5.34 4.0785 2.57564 2.57565 4.07849 4.61606 6.71842 3.60275 5.10016 + 4.62111 6.18275 3.59993 4.0785 2.57564 4.62111 3.60275 2.57565 4.61629 4.0785 2.57564 + 7.37606 2.57567 2.57567 3.60273 3.60273 2.57564 6.65851 4.08197 2.57567 4.62109 5.10017 + 2.57567 5.10015 7.20127 6.4175 4.62109 5.10017 2.55545 ] pdfxs + 275.76 315.301 m + (dbe) + [7.68024 5.34001 4.0785 ] pdfxs + 53.821 304.801 m + (neededformanyprograms.) + [5.10016 4.07849 4.07849 5.10016 4.07849 8.28008 2.81964 4.62111 6.65992 7.67578 4.62111 + 4.86031 7.91613 5.10016 3.59993 4.62111 4.62112 3.59993 4.62111 7.67578 3.65645 2.57564 + ] pdfxs + 62.7612 294.361 m + (Figure4showsacasewhencloningmustbeused.Inpar-) + [6.00161 2.57565 4.62111 5.10016 3.59993 6.77857 7.32103 3.65644 5.10016 4.38096 6.65758 + 6.23645 7.32103 4.08197 4.62111 3.65645 6.77834 6.65758 5.10016 4.0785 7.79999 4.08197 + 2.57564 4.62112 5.10015 2.57565 5.10016 7.32118 7.43563 5.10017 3.65645 6.24272 5.34001 + 6.77858 5.10017 3.65645 4.07848 5.10017 6.59551 3.30018 7.80016 5.10017 4.62109 3.59993 + 3.06375 ] pdfxs + 53.821 283.921 m + (ticular,) + [3.60274 2.57565 4.08196 5.10016 2.57565 4.62111 3.59993 2.57565 ] pdfxs + 86.6409 283.921 m + /N15 8.96638 Tf + (Testlists) + [4.67993 4.67993 4.67994 4.67993 4.67994 4.67994 4.67993 4.67994 4.67993 ] pdfxs + 132.901 283.921 m + /N17 8.96638 Tf + (inFigure4calls) + [2.57565 9.00023 6.00161 2.57564 4.62112 5.10016 3.59993 8.03833 8.52103 4.08197 4.62111 + 2.57565 2.57564 3.65645 ] pdfxs + 204.301 283.921 m + /N15 8.96638 Tf + (MakeList) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.67993 ] pdfxs + 245.881 283.921 m + /N17 8.96638 Tf + (and) + [4.62109 5.10017 5.10017 ] pdfxs + 264.661 283.921 m + /N15 8.96638 Tf + (Length) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 ] pdfxs + 53.8213 273.421 m + /N17 8.96638 Tf + (andpassesorgetsbackdatafromindexedpoolsintoeach) + [4.62111 5.10016 8.58015 5.10016 4.62111 3.65644 3.65644 4.07849 7.1366 4.62111 7.07993 + 4.62111 4.0785 3.60275 7.13629 5.10016 4.62111 3.84213 8.39621 5.10016 4.62111 3.60275 + 8.10104 2.81964 3.59993 4.62112 11.1558 2.57565 5.10016 5.10017 4.0785 4.85619 4.0785 + 8.70016 5.34001 4.86126 4.62109 2.57567 7.13627 2.57567 4.86001 3.60273 8.04093 4.0785 + 4.62109 3.84181 5.10017 ] pdfxs + 53.8213 262.981 m + (ofthem.Sincethe) + [4.62111 6.83979 3.60274 5.10016 4.07849 7.67578 9.71572 5.10016 2.57565 5.10015 4.08197 + 8.15841 3.60275 5.10016 4.07849 ] pdfxs + 137.401 262.981 m + /N31 8.96638 Tf + (A) show + 148.381 262.981 m + /N17 8.96638 Tf + (listindicesarecompressedbutthe) + [2.57565 2.57564 3.65645 7.56282 2.57565 5.10016 5.10015 2.57565 4.08197 4.07849 7.73661 + 4.62111 3.59993 8.21834 4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 + 4.07848 9.18002 5.10017 5.10017 7.68281 3.60273 5.10017 4.0785 ] pdfxs + 53.8212 252.541 m + /N31 8.96638 Tf + (B) show + 64.4411 252.541 m + /N17 8.96638 Tf + (listonesarenot,thetransformationneedstocreatetwo) + [2.57565 2.57565 3.65645 6.78274 4.62111 5.10016 4.07849 6.89644 4.62111 3.59993 7.31834 + 5.10016 4.62111 3.60275 5.87565 3.60275 5.10016 7.31841 3.60275 3.59993 4.62111 5.10016 + 3.65645 2.81965 4.62111 3.59993 7.67578 4.62111 3.60275 2.57565 4.62109 8.28017 5.10017 + 4.0785 4.0785 5.10017 6.95634 3.60273 7.80109 4.08197 3.59993 4.0785 4.62109 3.60273 + 7.37864 3.36289 6.4175 4.62109 ] pdfxs + 53.8212 242.041 m + (versionsof) + [4.61613 4.07849 3.59993 3.65644 2.57565 4.62111 5.10016 6.7166 4.62111 2.81964 ] pdfxs + 99.3013 242.041 m + /N15 8.96638 Tf + (MakeList) + [4.67994 4.67993 4.67994 4.67993 4.67994 4.67994 4.67993 4.67994 ] pdfxs + 140.101 242.041 m + /N17 8.96638 Tf + (and) + [4.62111 5.10016 5.10016 ] pdfxs + 158.041 242.041 m + /N15 8.96638 Tf + (Length) + [4.67994 4.67993 4.67994 4.67993 4.67994 4.67994 ] pdfxs + 186.121 242.041 m + /N17 8.96638 Tf + (,oneforeachcase.The) + [5.81557 4.62111 5.10016 7.25857 2.81963 4.62109 6.65993 4.0785 4.62109 3.84181 8.22009 + 4.08197 4.62109 3.65645 4.07848 6.77559 6.65759 5.10017 4.07848 ] pdfxs + 286.021 242.041 m + /N31 8.96638 Tf + (A) show + 53.8208 231.601 m + /N17 8.96638 Tf + (listversion\(denotedbysu\016x\\) + [2.57565 2.57565 3.65645 6.18273 4.61613 4.07849 3.59993 3.65644 2.57565 4.62111 7.74023 + 3.60275 5.10016 4.07849 5.10016 4.62112 3.60275 4.07849 7.86001 4.86031 7.55636 3.65645 + 5.10016 7.67578 7.49605 4.62111 ] pdfxs + Q + n + 1793 2316 28.1992 4.19922 re + f + q + 10 0 0 10 0 0 cm + 182.04 231.6 m + /N17 8.96638 Tf + (pc32"\)isshown;thesecond) + [5.34 4.08197 4.62111 4.62111 4.62109 6.30259 2.57567 6.29651 3.65645 5.10017 4.38093 + 6.65759 5.10017 5.33565 3.60273 5.10017 6.77858 3.65645 4.07848 4.08197 4.62109 5.10017 + 5.10017 ] pdfxs + 53.82 221.16 m + (versionisthesameexceptitusestheuncompressedrewrite) + [4.61613 4.07849 3.59993 3.65644 2.57565 4.62111 7.98007 2.57565 6.53637 3.60274 5.10016 + 7.07848 3.65645 4.62112 7.67576 6.95841 4.0785 4.85621 4.08196 4.0785 5.10016 6.60275 + 2.57565 6.48289 5.10016 3.65645 4.0785 6.59629 3.60275 5.10016 7.01842 5.10017 5.10017 + 4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 4.07848 8.1601 3.59993 + 4.0785 6.65756 3.59993 2.57567 3.60273 4.0785 ] pdfxs + 53.82 210.66 m + (rulesforloadsandstoresofpointersinFigure9.Onlytwo) + [3.59993 5.10016 2.57565 4.07849 6.77629 2.81964 4.62111 6.72008 2.57565 4.62111 4.62111 + 5.10016 6.77645 4.62111 5.10016 8.28015 3.65645 3.60275 4.62112 3.59992 4.0785 6.77629 + 4.62111 5.9398 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 3.59993 6.77659 2.57567 + 8.28031 6.00162 2.57567 4.62109 5.10017 3.59993 7.25865 4.62109 6.89559 7.13659 5.10017 + 2.57567 8.03636 3.36289 6.4175 4.62109 ] pdfxs + 53.82 200.22 m + (versionsareneededforeachfunctionbecauseonlyonepool) + [4.61613 4.07849 3.59993 3.65644 2.57565 4.62111 5.10016 6.47636 4.62111 3.59993 7.01833 + 5.10016 4.0785 4.07849 5.10016 4.0785 8.10015 2.81964 4.62112 6.47984 4.0785 4.62111 + 3.84181 8.04 2.81964 5.10016 5.10016 4.08197 3.60275 2.57564 4.62112 8.04 5.34001 + 4.0785 4.08197 4.62109 5.10017 3.65642 7.01866 4.62109 5.10017 2.57567 7.7962 4.62109 + 5.10017 7.01835 5.34001 4.86126 4.62109 2.57567 ] pdfxs + 53.82 189.78 m + (withineachfunction\(the) + [6.65758 2.57565 3.60274 5.10016 2.57565 7.80008 4.07849 4.62111 3.8418 7.86031 2.81964 + 5.10016 5.10016 4.08197 3.60275 2.57564 4.62112 7.80016 3.60275 3.60275 5.10016 4.07849 + ] pdfxs + 157.38 189.78 m + /N15 8.96638 Tf + (list) + [4.67994 4.67993 4.67994 4.67993 ] pdfxs + 178.92 189.78 m + /N17 8.96638 Tf + (node\)isaccessedinmultiple) + [5.10016 4.86127 5.10016 4.0785 6.36258 2.57567 6.35628 4.62109 4.08197 4.08197 4.0785 + 3.65642 3.65645 4.0785 7.86008 2.57567 7.80024 7.43563 5.10017 2.57567 3.60273 2.57567 + 5.10017 2.57564 4.0785 ] pdfxs + 53.8198 179.28 m + (ways.Intheworstcase,cloningcancreateanexponential) + [6.4175 4.38119 4.8562 3.65645 7.61549 3.30019 8.52008 3.60274 5.10016 7.55865 6.4175 + 4.62111 3.59993 3.65646 6.96258 4.08197 4.62111 3.65645 4.0785 6.05564 4.08197 2.57564 + 4.62112 5.10015 2.57565 5.10016 7.98095 4.08197 4.62111 8.58023 4.08197 3.59993 4.0785 + 4.62109 3.60273 7.49857 4.62109 8.52001 4.0785 4.85619 5.34026 4.62109 5.10017 4.0785 + 4.86033 3.60273 2.57567 4.62109 2.57567 ] pdfxs + 53.8198 168.84 m + (numberofclonesforafunction:onecloneforeachcom-) + [4.86031 5.10016 7.43562 5.34 4.07849 7.8 4.62111 6.89956 4.08197 2.57564 4.62112 + 5.10015 4.0785 7.7966 2.81964 4.62112 7.74 8.7011 2.81964 5.10016 5.10016 4.08197 + 3.60275 2.57564 4.62112 5.10016 8.81556 4.62111 5.10016 8.21834 4.08197 2.57567 4.62109 + 5.10017 8.21849 2.81963 4.62109 7.74001 4.0785 4.62109 3.84181 9.24 4.08197 4.62109 + 7.67579 3.06372 ] pdfxs + 53.8198 158.399 m + (binationofcompressedoruncompressedpoolspassedtoa) + [5.10016 2.57565 5.10016 4.62111 3.60274 2.57565 4.62111 8.63999 4.62111 6.35971 4.08197 + 4.62111 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 4.0785 8.70031 4.62111 7.14008 + 5.10016 5.10016 4.08196 4.62112 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 4.07848 + 8.7601 5.34001 4.86126 4.62109 2.57567 7.19644 5.10017 4.62109 3.65645 3.65642 4.0785 + 8.64032 3.60273 8.16125 4.62109 ] pdfxs + 53.8198 147.899 m + (function.Inpractice,however,we\fndthatwerarelyen-) + [2.81964 5.10016 5.10016 4.08196 3.60274 2.57565 4.62111 5.10015 8.81557 3.30019 8.94 + 5.10016 3.59993 4.62111 4.08197 3.60275 2.57564 4.08197 4.0785 6.59548 5.10016 4.38119 + 6.4175 4.0785 4.61621 4.0785 3.59993 6.53556 6.4175 7.85865 5.10016 5.10017 8.94001 + 3.60273 5.10017 4.62109 7.38273 6.4175 7.91842 3.59993 4.62109 3.59993 4.0785 2.57567 + 8.63611 4.0785 5.10017 3.06372 ] pdfxs + 53.8198 137.46 m + (countercaseswhereTHandnon-THpoolscontainingheap) + [4.08196 4.62111 5.10016 4.86031 3.60274 4.07849 6.59992 4.08196 4.62111 3.65644 4.0785 + 6.59629 6.65758 5.10016 4.0785 3.59993 7.13857 6.65758 9.90289 4.62111 5.10016 8.10015 + 5.10016 4.62111 5.10016 3.06372 6.65759 9.90287 5.34001 4.86126 4.62109 2.57567 6.65644 + 4.08197 4.62109 4.86033 3.60273 4.62109 2.57567 5.10017 2.57567 5.10017 7.56094 5.10017 + 4.0785 4.62109 5.10017 ] pdfxs + 53.8198 127.02 m + (objectspointtoacommonindexedpoolorarepassedto) + [4.62111 5.64031 2.81964 4.07849 4.08196 3.60274 7.55628 5.34 4.62111 2.57565 4.86031 + 7.56289 3.60275 8.58119 8.58119 4.08197 4.62111 7.67576 7.67578 4.62111 9.12016 2.57565 + 5.10016 5.10015 4.0785 4.85621 4.0785 9.12007 5.34001 4.86126 4.62109 6.53582 4.62109 + 7.61978 4.62109 3.59993 8.03866 5.10017 4.62109 3.65645 3.65642 4.0785 9.06025 3.60273 + 4.62109 ] pdfxs + 53.8198 116.52 m + (thesamefunction.) + [3.60274 5.10016 7.13833 3.65644 4.62111 7.67578 7.13849 2.81964 5.10016 5.10016 4.08197 + 3.60275 2.57564 4.62112 5.10016 2.57564 ] pdfxs + 62.7599 106.08 m + (Giventheextensionsdescribedabove,interprocedural) + [7.25574 2.57565 4.61637 4.07849 10.5002 3.60274 5.10016 9.47857 4.0785 4.85621 3.60275 + 4.07849 5.10016 3.65645 2.57565 4.62111 5.10016 9.05629 5.10016 4.0785 3.65645 4.08196 + 3.59993 2.57565 5.34 4.0785 10.56 4.62111 5.34033 4.38118 4.61612 4.0785 8.57565 + 2.57567 4.86001 3.60273 4.0785 3.59993 5.10017 3.59993 4.86094 4.08197 4.0785 5.10017 + 5.10017 3.59993 4.62109 2.57564 ] pdfxs + 53.8198 95.6399 m + (staticpointercompressionisatop-downtraversalofthe) + [3.65644 3.60274 4.62111 3.60274 2.57565 8.52204 5.34 4.62111 2.57565 4.86031 3.60274 + 4.0785 8.15976 4.08197 4.62111 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 2.57565 + 4.62111 9.60024 2.57565 8.15628 9.12102 3.60275 4.62111 5.10016 3.06372 5.10017 4.38125 + 6.65759 9.66007 3.60273 3.59993 4.38118 4.61612 4.0785 3.59993 3.65642 4.62112 7.01573 + 4.62109 7.31947 3.60273 5.10017 4.0785 ] pdfxs + 53.8198 85.1399 m + (programcallgraph,startinginmainandcloningorrewrit-) + [5.10016 3.59993 4.62111 4.62111 3.59993 4.62111 10.7358 4.08196 4.62111 2.57565 5.63558 + 4.62111 3.59993 4.62112 5.10016 5.10016 5.69549 3.65645 3.60275 4.62112 3.59992 3.60275 + 2.57565 5.10016 7.68095 2.57565 8.22015 7.67578 4.62111 2.57564 8.16 4.62109 5.10017 + 8.22002 4.08197 2.57567 4.62109 5.10017 2.57567 5.10015 7.74111 4.62109 6.71977 3.59993 + 4.0785 6.65756 3.59993 2.57567 3.60273 3.06375 ] pdfxs + 53.8198 74.7001 m + (ingexistingfunctionbodiesasneeded.Alltogether,appli) + [2.57565 5.10016 7.08126 4.07849 4.85621 2.57565 3.65644 3.60274 2.57565 5.10016 7.08096 + 2.81964 5.10016 5.10016 4.08197 3.60275 2.57564 4.62112 7.62007 5.34 4.86127 5.10016 + 2.57565 4.07849 6.23645 4.62111 6.11629 5.10016 4.0785 4.07849 5.10016 4.0785 5.10016 + 6.59548 6.90289 2.57567 5.03557 3.60273 4.62109 4.62109 4.0785 3.60273 5.10017 4.0785 + 3.59993 5.15581 4.62109 5.10017 5.10017 2.57567 2.55545 ] pdfxs + 283.68 74.7001 m + (ed) + [4.07848 5.10017 ] pdfxs + 316.8 728.22 m + (totheexampleinFigure4,staticpointercompressionpro-) + [3.60273 7.74094 3.60273 5.10017 7.25865 4.0785 4.85619 4.62112 7.67576 5.10017 2.57567 + 7.25857 2.57567 8.22016 6.00162 2.57567 4.62109 5.10017 3.59993 7.25863 4.62114 5.69553 + 3.65647 3.60276 4.62109 3.60276 2.57567 7.14193 5.34001 4.62114 2.57562 4.86033 3.60276 + 4.07845 6.7801 4.08192 4.62114 7.67525 5.10017 3.59993 4.0785 3.65647 3.65642 2.57567 + 4.62109 8.22019 5.10017 3.59993 4.62114 3.06367 ] pdfxs + 316.8 717.78 m + (ducesthecodeinFigure5.) + [5.10017 5.10017 4.08197 4.0785 6.77627 3.60273 5.10017 7.1985 4.08197 4.86094 5.10017 + 7.1985 2.57567 8.16 6.00162 2.57567 4.62109 5.10017 3.59993 7.19847 4.62114 2.57562 + ] pdfxs + 325.8 707.34 m + (Ourimplementationofstaticpointercompressiondoes) + [7.13659 5.10017 8.09977 2.57567 7.67579 5.10017 2.57564 4.0785 7.67579 4.0785 4.86001 + 3.60273 4.62109 3.60273 2.57567 4.62109 9.54032 4.62114 7.25968 3.65647 3.60276 4.62109 + 3.60276 2.57567 8.522 5.34001 4.62114 2.57562 4.86033 3.60276 4.07845 8.10002 4.08192 + 4.62114 7.67525 5.10017 3.59993 4.0785 3.65647 3.65642 2.57567 4.62109 9.5401 5.10017 + 4.86128 4.07845 3.65647 ] pdfxs + 316.8 696.84 m + (notsupportindirectfunctioncalls,soasinglecalleeocc) + [5.10017 4.62109 6.72258 3.65645 5.10017 5.10017 5.34016 4.62109 3.59993 6.78274 2.57567 + 5.10017 5.10017 2.57567 3.59993 4.07848 4.08197 6.72258 2.81963 5.10017 5.10017 4.08192 + 3.60276 2.57562 4.62114 8.22009 4.08192 4.62114 2.57562 2.57567 3.65647 5.63577 3.65647 + 7.68095 7.74096 3.65647 2.57562 5.10017 4.62114 2.57562 7.19832 4.08192 4.62114 2.57562 + 2.57567 4.07845 7.19832 4.86128 4.08192 4.08197 ] pdfxs + (u) show + 548.639 696.84 m + (rs) + [3.59993 3.65647 ] pdfxs + 316.8 686.4 m + (ateachcallsite.However,transformingindirectfunction) + [4.62109 7.56281 4.0785 4.62109 3.84181 9.12009 4.08197 4.62109 2.57567 6.53558 3.65645 + 2.57564 3.60273 4.0785 9.35574 6.90289 4.38118 6.4175 4.07845 4.61624 4.07845 3.59993 + 6.7758 3.60276 3.59993 4.62114 5.10017 3.65642 2.81965 4.62114 3.59993 7.67525 2.57562 + 5.10017 8.58129 2.57562 5.10017 5.10017 2.57567 3.59993 4.07845 4.08197 7.62257 2.81965 + 5.10017 5.10017 4.08192 3.60276 2.57562 4.62114 5.10017 ] pdfxs + 316.8 675.961 m + (callsandtheirpotentialcalleesshouldnotbetechnically) + [4.08197 4.62109 2.57567 2.57567 7.9165 4.62109 5.10017 9.42001 3.60273 5.10017 4.0785 + 2.57567 7.91999 5.34001 4.62109 3.60273 4.0785 4.86033 3.60273 2.57562 4.62114 6.83548 + 4.08192 4.62114 2.57562 2.57567 4.07845 4.0785 7.91628 3.65647 5.10017 4.62109 5.10017 + 2.57567 9.36007 5.10017 4.62114 7.92258 5.34001 8.39847 3.60276 4.07845 3.84188 5.10017 + 5.10017 2.57562 4.08197 4.62109 2.57567 2.57562 4.85985 ] pdfxs + 316.8 665.461 m + (di\016cult.ThisisbecauseAutomaticPoolAllocationalready) + [5.10017 2.57567 7.67579 4.08195 5.10017 2.57567 3.60273 6.47566 6.65759 5.10017 2.57564 + 6.1166 2.57567 6.11643 5.34001 4.0785 4.08197 4.62109 5.10017 3.65642 6.65848 6.90289 + 5.10017 3.60276 4.62114 7.67525 4.62114 3.60276 2.57562 6.54178 6.05681 4.86128 4.62114 + 4.97561 6.90289 2.57562 2.57567 4.86104 4.08192 4.62114 3.60276 2.57562 4.62114 7.56032 + 4.62114 2.57562 3.59993 4.07845 4.62114 5.10017 4.85623 ] pdfxs + 316.8 655.02 m + (mergestheDSgraphsofallfunctionsatanyindirectcallsit) + [7.67579 4.0785 3.59993 4.62109 4.0785 5.93643 3.60273 5.10017 6.35865 7.0198 7.44033 + 4.62109 3.59993 4.62109 5.10017 5.10017 5.87637 4.62114 5.09953 4.62114 2.57562 4.79563 + 2.81965 5.10017 5.10017 4.08192 3.60276 2.57562 4.62114 5.10017 5.9363 4.62114 5.82258 + 4.62114 4.86023 7.13606 2.57562 5.10017 5.10017 2.57567 3.59993 4.07845 4.08197 5.88274 + 4.08192 4.62114 2.57562 4.79573 3.65647 2.57562 3.5865 ] pdfxs + 551.88 655.02 m + (e) show + 316.8 644.581 m + (intoasinglegraphsoastopassidenticalpoolargumentsto) + [2.57567 4.86001 3.60273 7.32101 7.38117 3.65645 2.57564 5.10017 4.62112 2.57564 6.71866 + 4.62109 3.59993 4.62109 5.10017 7.86018 3.65645 7.32117 4.62109 6.35652 3.60276 7.3812 + 5.10017 4.62114 3.65642 6.35632 2.57562 5.10017 4.0785 4.86008 3.60276 2.57562 4.08197 + 4.62109 5.27581 5.34001 4.86128 4.62114 5.27561 4.62114 3.59993 4.62109 5.10017 7.67579 + 4.07845 4.86033 3.60276 6.41638 3.60276 4.62114 ] pdfxs + 316.8 634.081 m + (allsuchfunctionsviathecall.Byusingthismergedgraph,) + [4.62109 2.57567 5.57566 3.65645 5.10017 3.84196 8.22009 2.81963 5.10017 5.10017 4.08197 + 3.60273 2.57567 4.62109 5.10017 6.65642 4.85621 2.57564 7.68102 3.60273 5.10017 7.13832 + 4.08192 4.62114 2.57562 2.57567 6.65555 6.54063 7.85623 5.10017 3.65647 2.57562 5.10017 + 7.68105 3.60276 5.10017 2.57562 6.65647 7.67525 4.0785 3.59993 4.62109 4.0785 8.22023 + 4.62114 3.59993 4.62109 5.10017 5.10017 2.57567 ] pdfxs + 316.8 623.64 m + (allpotentialcalleesandthecallsitewillautomatically) + [4.62109 2.57567 6.29565 5.34001 4.62109 3.60273 4.0785 4.86033 3.60273 2.57567 4.62109 + 6.2355 4.08197 4.62109 2.57567 2.57567 4.07848 4.0785 7.37644 4.62109 5.10017 8.88015 + 3.60276 5.10017 7.85862 4.08192 4.62114 2.57562 6.29573 3.65647 2.57562 3.60276 7.73855 + 6.65759 2.57562 2.57567 6.29554 4.62114 5.10017 3.60276 4.62109 7.67579 4.62109 3.60276 + 2.57567 4.08192 4.62114 2.57562 2.57562 8.45609 ] pdfxs + (b) show + 551.76 623.64 m + (e) show + 316.8 613.201 m + (consistentlytransformed.) + [4.08197 4.62109 5.10017 3.65645 2.57564 3.65645 3.60273 4.0785 4.86001 3.60273 2.57567 + 7.85618 3.60273 3.59993 4.62109 5.10017 3.65645 2.81963 4.62109 3.59993 7.67579 4.07845 + 5.10017 2.57567 ] pdfxs + 316.8 593.52 m + /N9 11.9552 Tf + (3.5MinimizingPoolSizeViolationswithStatic) + [6 3 17.9398 11.2798 3.30001 6.65999 3.30001 9.95992 3.30001 5.27982 3.30001 + 6.65999 7.79986 7.07997 6 6 5.10001 6.66002 3.30001 5.2798 7.07975 8.21974 + 3.30001 6 3.30001 6 3.95994 3.30001 6 6.66002 6.47987 8.63981 3.30001 + 3.95994 8.46017 6.66002 3.95994 6 3.95989 3.30001 5.27985 ] pdfxs + 343.74 581.94 m + (Compression) + [8.63981 6 9.95992 6.65999 5.03983 5.27982 4.67992 4.67989 3.30001 6 6.66002 + ] pdfxs + 325.8 568.981 m + /N17 8.96638 Tf + (Staticcompressionisnotacompletelysafetransforma-) + [5.10017 3.60273 4.62109 3.60273 2.57567 8.10196 4.08197 4.62109 7.67579 5.10017 3.59993 + 4.07848 3.65645 3.65645 2.57564 4.62112 9.12016 2.57567 7.67659 5.10017 4.62114 7.62257 + 8.64096 4.08192 4.62114 7.67525 5.10017 2.57567 4.07845 3.60276 4.0785 2.57562 8.93606 + 3.65647 4.62109 2.81965 8.09847 3.60276 3.59993 4.62114 5.10017 3.65642 2.81965 4.62114 + 3.59993 7.67525 4.62114 3.06367 ] pdfxs + 316.8 558.54 m + (tionbecauseacorrectprogrammayfailifittriestoallocat) + [3.60273 2.57567 4.62109 7.68024 5.34001 4.0785 4.08197 4.62109 5.10017 3.65642 6.71866 + 7.2011 4.08197 4.62109 3.59993 3.59993 4.0785 4.08197 6.24272 5.10017 3.59993 4.62114 + 4.62109 3.59993 4.62114 10.2552 7.67525 4.3813 7.3763 2.81965 4.62109 2.57567 5.1557 + 2.57562 5.33957 2.57562 6.18293 3.60276 3.59993 2.57562 4.0785 6.17629 3.60276 7.20112 + 4.62114 2.57562 2.57562 4.86099 4.08192 4.62114 3.60276 ] pdfxs + (e) show + 316.8 548.101 m + (morethan2) + [7.67579 4.62109 3.59993 6.53834 3.60273 5.10017 4.62109 7.56025 4.62109 ] pdfxs + 364.74 551.881 m + /N29 5.97748 Tf + (k) show + 371.7 548.101 m + /N17 8.96638 Tf + (bytesfromapoolthatuses) + [4.86033 4.85621 3.60273 4.07848 6.1166 2.81963 3.59993 4.62109 10.0757 7.0812 5.34001 + 4.86128 4.62114 4.97561 3.60276 5.10017 4.62114 6.06282 5.10017 3.65647 4.07845 3.65647 + ] pdfxs + 481.5 548.101 m + /N31 8.96638 Tf + (k) show + 486.54 548.101 m + /N17 8.96638 Tf + (-bitindices.Nev-) + [3.06372 5.10017 2.57562 6.06276 2.57562 5.10017 5.10017 2.57567 4.08192 4.0785 3.65642 + 6.47581 6.90289 4.07845 4.85623 3.06372 ] pdfxs + 316.8 537.601 m + (ertheless,webelievethistransformationcanbeusedsafely) + [4.0785 3.59993 3.60273 5.10017 4.0785 2.57564 4.0785 3.65645 3.65642 5.81583 6.4175 + 7.25865 5.34001 4.0785 2.57567 2.57564 4.0785 4.61605 7.37857 3.60273 5.10017 2.57562 + 6.77663 3.60276 3.59993 4.62114 5.10017 3.65642 2.81965 4.62114 3.59993 7.67525 4.62114 + 3.60276 2.57562 4.62114 8.28014 4.08192 4.62114 8.28024 5.34001 7.37854 5.10017 3.65647 + 4.07845 8.34025 3.65647 4.62109 2.81965 4.07845 2.57567 4.85985 ] pdfxs + 316.8 527.161 m + (inpracticeonmanyprograms.First,eachpoolonlyholds) + [2.57567 8.52016 5.10017 3.59993 4.62109 4.08197 3.60273 2.57567 4.08195 7.55843 4.62109 + 8.52001 7.67579 4.62109 4.86033 8.27627 5.10017 3.59993 4.62114 4.62109 3.59993 4.62114 + 7.67525 3.65647 7.67571 6.0016 2.57562 3.59993 3.65647 3.60276 6.05564 4.07845 4.62114 + 3.84179 8.52008 5.34001 4.86128 4.62114 6.05569 4.62114 5.10017 2.57562 8.2763 5.10017 + 4.62114 2.57562 5.10017 3.65647 ] pdfxs + 316.8 516.721 m + (asingleinstanceofadatastructureorevenasubsetofan) + [7.92102 3.65645 2.57564 5.10017 4.62112 2.57564 7.31866 2.57567 5.10017 3.65642 3.60273 + 4.62112 5.10015 4.08197 7.37843 4.62109 6.11947 7.92102 5.10017 4.62114 3.60276 7.92095 + 3.65647 3.60276 3.59993 5.10017 4.08192 3.60276 5.10017 3.59993 7.3784 4.62114 6.89983 + 4.07845 4.61624 4.07845 8.46003 7.92104 3.65647 5.10017 5.10017 3.65647 4.07845 6.8426 + 4.62114 6.11945 4.62114 5.10017 ] pdfxs + 316.8 506.221 m + (instance\(ifthedatastructureconsistsofmultiplenodesi) + [2.57567 5.10017 3.65642 3.60273 4.62112 5.10015 4.08197 7.2585 3.60273 2.57567 5.87978 + 3.60273 5.10017 7.25865 5.10017 4.62109 3.60273 7.74126 3.65645 3.60273 3.59993 5.10017 + 4.08192 3.60276 5.10017 3.59993 7.25848 4.08192 4.62114 5.10017 3.65647 2.57562 3.65647 + 3.60276 6.71638 4.62114 5.93977 7.43511 5.10017 2.57562 3.60276 2.57567 5.10017 2.57562 + 7.19832 5.10017 4.86128 5.10017 4.07845 6.8364 2.55545 ] pdfxs + 550.8 506.221 m + (n) show + 316.8 495.781 m + (thepoints-tograph\).Thismeansthatpartorallofa) + [3.60273 5.10017 7.4985 5.34001 4.62109 2.57567 4.86033 3.60273 3.65645 3.06372 3.60273 + 8.04126 4.62109 3.59993 4.62109 5.10017 5.10017 3.60273 7.67559 6.65759 5.10017 2.57562 + 7.01662 7.67525 4.0785 4.62109 5.10017 7.07664 3.60276 5.10017 4.62114 6.96281 5.10017 + 4.62114 3.59993 7.02258 4.62114 7.01974 4.62114 2.57562 5.93547 4.62114 6.23976 4.62114 + ] pdfxs + 540.84 495.781 m + /N19 8.96638 Tf + (s) + [3.78217 ] pdfxs + (i) show + (n-) + [5.15848 3.29749 ] pdfxs + 316.8 485.341 m + (gle) + [4.25804 2.33685 4.25804 ] pdfxs + 331.5 485.341 m + /N17 8.96638 Tf + (DSinstancemustexceed2) + [7.0198 8.34033 2.57567 5.10017 3.65642 3.60273 4.62112 5.10015 4.08197 7.2585 7.43563 + 5.10017 3.65645 6.7228 4.07845 4.85623 4.08197 4.07845 4.07845 8.40026 4.62114 ] pdfxs + 439.98 489.121 m + /N29 5.97748 Tf + (k) show + 447.72 485.341 m + /N17 8.96638 Tf + (bytes\(e.g.,4GBfor) + [4.86033 4.85623 3.60276 4.07845 6.83654 3.60276 4.07845 2.57567 4.62109 2.57567 5.69578 + 4.62114 7.25571 9.66051 2.81965 4.62109 3.59993 ] pdfxs + 530.88 485.341 m + /N31 8.96638 Tf + (k) show + 535.92 485.341 m + /N17 8.96638 Tf + (=32\)) + [7.13657 4.62114 4.62109 3.60276 ] pdfxs + 316.8 474.841 m + (beforeanerroroccurs.) + [5.34001 4.0785 2.81963 4.62109 3.59993 7.19842 4.62109 8.22002 4.0785 3.59993 3.59993 + 4.62109 6.66009 4.86126 4.08197 4.08197 5.10017 3.59993 3.65642 2.57567 ] pdfxs + 325.8 464.401 m + (Second,manypoolscanbeindexedby) + [5.10017 4.0785 4.08197 4.62109 5.10017 5.10017 7.49572 7.67579 4.62109 4.86033 9.29619 + 5.34001 4.86126 4.62109 2.57567 8.15658 4.08192 4.62114 9.60017 5.34001 8.63831 2.57562 + 5.10017 5.10017 4.0785 4.85623 4.07845 9.66032 4.86033 4.85623 ] pdfxs + 495.361 464.401 m + /N19 8.96638 Tf + (ob) + [4.68264 4.25806 ] pdfxs + (j) show + (ec) + [3.77789 4.25806 ] pdfxs + (t) show + (s) show + 527.22 464.401 m + /N17 8.96638 Tf + (instead) + [2.57562 5.10017 3.65647 3.60276 4.0785 4.62109 5.10017 ] pdfxs + 316.8 453.901 m + (of) + [4.62109 2.81963 ] pdfxs + 328.44 453.901 m + /N19 8.96638 Tf + (by) + [4.25804 4.43585 ] pdfxs + (t) show + (es) + [4.25801 3.7822 ] pdfxs + 348.24 453.901 m + /N17 8.96638 Tf + (,thusexpandingthee\013ectivemaximumpoolsize) + [7.01557 3.60273 4.86033 5.10017 7.79643 4.0785 4.85619 5.10017 4.62112 5.10017 5.10015 + 2.57567 5.10017 8.88105 3.60276 5.10017 8.33831 4.07845 5.40425 4.0785 4.08192 3.60276 + 2.57567 4.61605 8.27854 7.67525 4.62114 4.85623 2.57562 7.43585 5.10017 11.8152 5.34001 + 4.86128 4.62114 6.77562 3.65647 2.57562 4.08197 4.07845 ] pdfxs + 316.8 443.461 m + (greatly) + [4.62109 3.59993 4.0785 4.62109 3.60273 2.57567 4.85621 ] pdfxs + 344.761 447.301 m + /N21 5.97748 Tf + (3) show + 348.9 443.461 m + /N17 8.96638 Tf + (.NodeindexingissafetouseforTHpoolsholding) + [6.65582 6.90289 4.86126 5.10017 7.1985 2.57567 5.10017 5.10017 4.0785 4.85619 2.57567 + 5.10017 7.68119 2.57562 6.71648 3.65647 4.62109 2.81965 7.07845 3.60276 7.68119 5.10017 + 3.65647 7.13846 2.81965 4.62109 6.65993 6.65759 10.023 5.34001 4.86128 4.62114 2.57562 + 6.65647 5.10017 4.62114 2.57562 5.10017 2.57562 5.10017 4.62114 ] pdfxs + 316.8 433.021 m + (objectsforwhichtheaddressofa\feldisnottaken\(i.e.,all) + [4.62109 5.64033 2.81963 4.0785 4.08197 3.60273 6.5965 2.81963 4.62109 6.54002 6.65759 + 5.10017 2.57564 3.84205 8.10016 3.60273 5.10017 7.0785 4.62109 5.10017 5.10017 3.59993 + 4.07845 3.65647 6.5966 4.62114 5.75969 7.56128 5.10017 4.07845 2.57567 8.10016 2.57562 + 6.59656 5.10017 4.62114 6.54289 3.60276 4.62114 4.61605 4.07845 8.10016 3.60276 2.57562 + 2.57567 4.07845 2.57567 5.45569 4.62114 2.57562 2.55545 ] pdfxs + 316.8 422.521 m + (pointerspointtothestartofpoolobjects\).Thiscriterio) + [5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 3.59993 7.25627 5.34001 4.62109 2.57567 + 4.86033 7.20273 3.60273 8.22101 3.60273 5.10017 7.67857 3.65645 3.60276 4.62109 3.59993 + 7.14269 4.62114 6.41945 5.34001 4.86128 4.62114 6.17561 4.62114 5.6403 2.81965 4.07845 + 4.08192 3.60276 3.65647 3.60276 8.2158 6.65759 5.10017 2.57562 7.19631 4.08192 3.59993 + 2.57567 3.60276 4.07845 3.59993 2.57567 4.62109 ] pdfxs + (n) show + 316.8 412.081 m + (ismetbymanyobjectsinCandC++programs,andall) + [2.57567 7.49651 7.67579 4.0785 7.44272 4.86033 8.6962 7.67579 4.62109 4.86033 8.6962 + 4.62109 5.64033 2.81963 4.0785 4.08197 3.60271 7.49655 2.57562 8.94011 10.4976 4.62114 + 5.10017 9.00006 6.65759 7.13657 11.0364 5.10017 3.59993 4.62114 4.62109 3.59993 4.62114 + 7.67525 3.65647 6.53548 4.62114 5.10017 9.00006 4.62114 2.57562 2.57562 ] pdfxs + 316.8 401.642 m + (thoseinJavaprograms.) + [3.60273 5.10017 4.62109 3.65645 7.13841 2.57567 8.16 4.73928 4.38103 4.31612 7.68118 + 5.10017 3.59993 4.62109 4.62109 3.59993 4.62112 7.67576 3.65647 2.57562 ] pdfxs + 325.8 391.142 m + (Third,acompilercouldusepro\flingruns\(andsimple) + [6.65759 5.10017 2.57564 3.59993 5.10017 7.43574 9.06125 4.08197 4.62109 7.67579 5.10017 + 2.57567 2.57564 4.0785 8.16001 4.08197 4.62109 5.10017 2.57562 9.60026 5.10017 3.65647 + 8.5783 5.10017 3.59993 4.62114 5.10017 2.57562 2.57562 5.10017 9.12113 3.59993 5.10017 + 5.10017 8.21638 3.60276 4.62114 5.10017 9.60007 3.65647 2.57562 7.67579 5.10017 2.57562 + 4.07845 ] pdfxs + 316.8 380.702 m + (runtimepoolstatistics\)toidentifypoolinstancesthatg) + [3.59993 5.10017 4.86033 3.60273 2.57567 7.67579 6.89864 5.34001 4.86126 4.62109 5.39558 + 3.65645 3.60273 4.62109 3.60273 2.57567 3.65642 3.60273 2.57567 4.08197 3.65642 6.24284 + 3.60276 7.3812 2.57562 5.10017 4.0785 4.86008 3.60276 2.57562 2.81965 7.6763 5.34001 + 4.86128 4.62114 5.39554 2.57562 5.10017 3.65647 3.60276 4.62114 5.10017 4.08192 4.0785 + 6.41628 3.60276 5.10017 4.62114 6.42258 4.62114 ] pdfxs + (r) show + 544.92 380.702 m + (ow) + [4.3811 6.65759 ] pdfxs + 316.8 370.262 m + (unusuallylargecomparedwithotherpoolsinaprogramand) + [5.10017 4.86033 5.10017 3.65645 5.10017 4.62109 2.57567 2.57564 7.19605 2.57567 4.62109 + 3.59993 4.62109 6.4785 4.08197 4.62109 7.67579 5.10017 4.62109 3.59993 4.07845 7.50027 + 6.65759 2.57562 3.60276 7.44025 4.62114 3.60276 5.10017 4.07845 5.99993 5.34001 4.86128 + 4.62114 2.57562 5.99646 2.57562 7.44011 7.02104 5.10017 3.59993 4.62114 4.62109 3.59993 + 4.62114 10.0153 4.62114 5.10017 5.10017 ] pdfxs + 316.8 359.762 m + (simplydisablepointercompressionforthosepools.Finally) + [3.65645 2.57564 7.67579 5.10017 2.57567 7.7962 5.10017 2.57567 3.65642 4.62112 5.10017 + 2.57564 7.01866 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 6.53985 4.08192 4.62114 + 7.67525 5.10017 3.59993 4.0785 3.65647 3.65642 2.57567 4.62109 8.0401 2.81965 4.62109 + 6.54002 3.60276 5.10017 4.62114 3.65642 7.01849 5.34001 4.86128 4.62114 2.57562 3.65647 + 6.59578 6.0016 2.57562 5.10017 4.62114 2.57562 2.57567 4.85985 ] pdfxs + 553.38 359.762 m + (,) show + 316.8 349.322 m + (programmerscoulduseoptionsor#pragmastospecifythat) + [5.10017 3.59993 4.62109 4.62109 3.59993 4.62112 7.67576 7.67579 4.0785 3.59993 6.17651 + 4.08197 4.62109 5.10017 2.57567 7.68032 5.10017 3.65645 6.65841 4.62114 5.10017 3.60276 + 2.57562 4.62114 5.10017 6.17644 4.62114 6.11975 7.67525 5.10017 3.59993 4.62114 4.62114 + 7.67525 4.62114 6.17644 3.60276 7.14096 3.65647 5.34016 4.07845 4.08197 2.57562 2.81965 + 7.43621 3.60276 5.10017 4.62114 3.60276 ] pdfxs + 316.8 338.882 m + (poolscreatedincertainfunctionsshouldnotundergoindex) + [5.34001 4.86126 4.62109 2.57567 6.59643 4.08197 3.59993 4.0785 4.62109 3.60273 4.0785 + 8.04016 2.57567 8.04008 4.08197 4.0785 3.59993 3.60273 4.62109 2.57567 7.97999 2.81965 + 5.10017 5.10017 4.08192 3.60276 2.57562 4.62114 5.10017 6.59646 3.65647 5.10017 4.62109 + 5.10017 2.57567 8.04016 5.10017 4.62114 6.48273 5.10017 5.10017 5.10017 4.07845 3.59993 + 4.62114 7.62114 2.57562 5.10017 5.10017 4.0785 4.85985 ] pdfxs + 316.8 328.382 m + (compression.) + [4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 2.57564 4.62112 5.10017 + 2.57564 ] pdfxs + 316.8 302.042 m + /N9 11.9552 Tf + (4.DYNAMICPOINTERCOMPRESSION) + [6 14.9399 8.15998 8.63981 8.39968 8.63981 11.2798 4.67992 11.5799 7.31991 9.30001 + 4.67987 8.63981 7.97992 7.97987 11.5197 8.63981 9.30001 11.2799 7.31986 8.63981 7.97992 + 6.65997 6.66002 4.67992 9.30001 8.63981 ] pdfxs + 325.8 289.142 m + /N17 8.96638 Tf + (Dynamicpointercompressionaimstoallowanindexed) + [7.0198 4.85621 5.10017 4.62109 7.67579 2.57564 8.16189 5.34001 4.62109 2.57567 4.86033 + 3.60273 4.0785 7.68007 4.08197 4.62109 7.67525 5.10017 3.59993 4.0785 3.65647 3.65642 + 2.57567 4.62109 9.18034 4.62114 2.57562 7.67525 7.67663 3.60276 8.70112 4.62114 2.57562 + 2.57562 4.3813 10.6776 4.62114 9.18015 2.57562 5.10017 5.10017 4.0785 4.85623 4.07845 + 5.10017 ] pdfxs + 316.8 278.642 m + (pooltogrowbeyondthelimitof2) + [5.34001 4.86126 4.62109 5.33582 3.60273 7.38117 4.62109 3.59993 4.3811 9.4175 5.34001 + 4.0785 4.6162 4.62109 5.10017 7.92001 3.60273 5.10017 6.83831 2.57562 2.57567 7.67525 + 2.57567 6.30266 4.62114 5.57961 4.62114 ] pdfxs + 453.72 282.482 m + /N29 5.97748 Tf + (k) show + 461.04 278.642 m + /N17 8.96638 Tf + (bytes\(or2) + [4.86033 4.85623 3.60276 4.07845 6.41662 3.60276 4.62114 6.35998 4.62114 ] pdfxs + 504.061 282.482 m + /N29 5.97748 Tf + (k) show + 511.38 278.642 m + /N17 8.96638 Tf + (objects\)by) + [4.62114 5.6403 2.81965 4.07845 4.08192 3.60276 3.65647 6.30261 4.86033 4.85623 ] pdfxs + 316.8 268.202 m + (expandingcompressedindicesinsourcepoolstransparentl) + [4.0785 4.85619 5.10017 4.62112 5.10017 5.10015 2.57567 5.10017 7.56111 4.08197 4.62109 + 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 4.07848 8.04018 2.57562 5.10017 5.10017 + 2.57567 4.08192 4.0785 6.53659 2.57562 7.98034 3.65647 4.62109 5.10017 3.59993 4.08197 + 6.95838 5.34001 4.86128 4.62114 2.57562 6.5363 3.60276 3.59993 4.62114 5.10017 3.65642 + 5.10017 4.62114 3.59993 4.07845 4.86003 3.60276 2.55545 ] pdfxs + 551.1 268.202 m + (y) show + 316.8 257.702 m + (atruntime.Comparedwithstaticcompression,thistech-) + [4.62109 7.02258 3.59993 5.10017 8.52008 3.60273 2.57567 7.67579 4.07848 7.73575 6.65759 + 4.62109 7.67579 5.10015 4.62112 3.59993 4.07848 8.52023 6.65759 2.57562 3.60276 8.52033 + 3.65647 3.60276 4.62109 3.60276 2.57567 7.44193 4.08192 4.62114 7.67525 5.10017 3.59993 + 4.0785 3.65647 3.65642 2.57567 4.62109 5.10017 5.99573 3.60276 5.10017 2.57562 7.07664 + 3.60276 4.07845 3.84188 5.10017 3.06372 ] pdfxs + 316.8 247.262 m + (niquehasahigherruntimeoverheadandmayrequiremore) + [5.10017 2.57567 4.85619 5.10017 7.19835 5.10017 4.62109 6.65644 7.68118 5.10017 2.57567 + 4.62109 5.10017 4.0785 6.65976 3.59993 5.10017 4.86033 3.60276 2.57562 7.67579 7.13846 + 4.3812 4.61615 4.07845 3.59993 5.10017 4.0785 4.62109 8.22019 4.62114 5.10017 8.16022 + 7.67525 4.3813 7.85623 3.59993 4.07845 4.85623 5.10017 2.57567 3.59993 7.19837 7.67525 + 4.62114 3.59993 4.07845 ] pdfxs + 316.8 236.823 m + (pointersnottobecompressedinCandC++programs\(this) + [5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 3.59993 6.05627 5.10017 4.62109 6.00266 + 3.60273 6.96126 5.34001 6.53834 4.08197 4.62109 7.67579 5.10012 3.59993 4.0785 3.65647 + 3.65642 4.0785 7.56008 2.57562 7.50027 9.05773 4.62114 5.10017 7.50007 6.65759 7.13657 + 9.59657 5.10017 3.59993 4.62114 4.62109 3.59993 4.62114 7.67525 5.99631 3.60276 3.60276 + 5.10017 2.57562 3.65647 ] pdfxs + 316.8 226.323 m + (isnotaprobleminJavaprograms\).) + [2.57567 6.71643 5.10017 4.62109 6.66281 7.68118 5.10017 3.59993 4.62109 5.10017 2.57567 + 4.0785 10.7357 2.57567 8.22016 4.73928 4.38103 4.31615 7.68119 5.10017 3.59993 4.62114 + 4.62109 3.59993 4.62114 7.67525 3.65647 3.60276 2.57562 ] pdfxs + 325.8 215.883 m + (Thereareseveralpossiblewaystoimplementdynamic) + [6.65759 5.10017 4.07848 3.59993 8.63858 4.62109 3.59993 8.63865 3.65645 4.07848 4.61637 + 4.0785 3.59993 4.62109 7.07573 5.34001 4.62114 3.65642 3.65647 2.57567 5.10017 2.57562 + 8.57854 6.4175 4.3812 4.85623 8.0966 3.60276 9.12104 2.57562 7.67579 5.10017 2.57562 + 4.0785 7.67525 4.07845 4.86003 8.16291 5.10017 4.85623 5.10017 4.62109 7.67579 2.57562 + 4.08197 ] pdfxs + 316.8 205.443 m + (pointercompression.Tomakeitassimpleaspossibleto) + [5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 7.68007 4.08197 4.62109 7.67579 5.10017 + 3.59993 4.07848 3.65645 3.65645 2.57564 4.62112 5.10017 9.59572 5.87766 8.70112 7.67525 + 4.62114 4.61615 8.09847 2.57562 7.62277 4.62114 7.67643 3.65647 2.57562 7.67579 5.10017 + 2.57562 8.15863 4.62114 7.67643 5.34001 4.62114 3.65642 3.65647 2.57567 5.10017 2.57562 + 8.09847 3.60276 4.62114 ] pdfxs + 316.8 194.943 m + (growpoolsatruntime,weimposethreerestrictionsonthe) + [4.62109 3.59993 4.3811 9.65758 5.34001 4.86126 4.62109 2.57567 6.65644 4.62109 6.54289 + 3.59993 5.10017 8.16032 3.60273 2.57567 7.67579 4.07848 5.57566 6.4175 7.07845 2.57562 + 7.67579 5.34016 4.62114 3.65642 7.13841 3.60276 5.10017 3.59993 4.07845 7.13841 3.59993 + 4.07845 3.65647 3.60276 3.59993 2.57567 4.08192 3.60276 2.57562 4.62114 5.10017 6.59646 + 4.62114 8.10016 3.60276 5.10017 4.07845 ] pdfxs + 316.8 184.503 m + (optimization.First,weallowonlytwopossibleindexsizes) + [4.62109 5.10017 3.60273 2.57567 7.67579 2.57564 4.08197 4.62109 3.60273 2.57567 4.62109 + 5.10017 7.79583 6.00162 2.57567 3.59993 3.65642 3.60273 6.11582 6.4175 7.55862 4.62114 + 2.57562 2.57562 4.3813 10.0777 4.62114 5.10017 2.57562 8.33606 3.36292 6.4175 8.04096 + 5.34001 4.62114 3.65642 3.65647 2.57567 5.10017 2.57562 7.49847 2.57562 5.10017 5.10017 + 4.0785 8.39637 3.65647 2.57562 4.08197 4.07845 3.63137 ] pdfxs + 316.8 174.063 m + (tobeusedforapool:theinitial) + [3.60273 8.4011 5.34001 7.91842 5.10017 3.65645 4.07848 8.88009 2.81963 4.62109 7.37985 + 8.4011 5.34001 4.86126 4.62109 2.57567 8.09566 3.60276 5.10017 7.91839 2.57562 5.10017 + 2.57567 3.60276 2.57562 4.62114 2.57562 ] pdfxs + 456.42 174.063 m + /N31 8.96638 Tf + (k) show + 465.3 174.063 m + /N17 8.96638 Tf + (bits\(e.g.,32\)andthe) + [5.10017 2.57562 3.60276 7.37663 3.60276 4.07845 2.57567 4.62109 2.57567 6.47547 4.62114 + 4.62109 7.32292 4.62114 5.10017 8.9403 3.60276 5.10017 4.07845 ] pdfxs + 316.8 163.563 m + (originalpointersize,) + [4.62109 3.59993 2.57567 4.62109 2.57567 5.10017 4.62109 5.57566 5.34001 4.62109 2.57567 + 4.86033 3.60273 4.0785 6.71992 3.65645 2.57564 4.08197 4.0785 2.57567 ] pdfxs + 401.881 163.563 m + /N31 8.96638 Tf + (n) show + 410.52 163.563 m + /N17 8.96638 Tf + (\(e.g,.64\).) + [3.60276 4.07845 2.57567 4.62109 2.57567 6.59578 4.62114 4.62109 3.60276 2.57567 ] pdfxs + 325.8 153.123 m + (Second,wecompressanddynamicallyexpandindices) + [5.10017 4.0785 4.08197 4.62109 5.10017 5.10017 8.57564 6.4175 9.41841 4.08197 4.62109 + 7.67579 5.10017 3.59993 4.07848 3.65647 9.05651 4.62114 5.10017 10.5001 5.10017 4.85623 + 5.10017 4.62109 7.67579 2.57562 4.08197 4.62109 2.57567 2.57562 10.1962 4.07845 4.85623 + 5.10017 4.62114 5.10017 10.5601 2.57562 5.10017 5.10017 2.57567 4.08192 4.0785 3.65642 + ] pdfxs + 316.8 142.683 m + (withinobjectsinasourcepoolonlyifit) + [6.65759 2.57564 3.60273 5.10017 2.57567 8.34033 4.62109 5.64033 2.81963 4.0785 4.08197 + 3.60273 6.8965 2.57567 8.40024 7.86125 3.65645 4.62109 5.10012 3.59993 4.08197 7.3783 + 5.34001 4.86128 4.62114 5.87562 4.62114 5.10017 2.57562 8.09622 2.57562 6.05949 2.57562 + 3.60276 ] pdfxs + 483.84 142.683 m + /N19 8.96638 Tf + (i) show + (salsoan) + [7.26224 4.68264 2.33688 3.78217 8.16281 4.68264 8.69856 ] pdfxs + (i) show + (ndexed) + [5.15843 4.68269 4.25806 4.26202 3.77823 4.68264 ] pdfxs + 316.8 132.183 m + (pool,and) + [4.20266 4.20266 4.68266 2.33685 6.00163 4.68266 5.15848 7.80251 ] pdfxs + (i) show + (tmee) + [6.05957 7.50429 3.77811 4.25804 ] pdfxs + (t) show + (s) + [6.78219 ] pdfxs + (t) show + (hecr) + [4.68264 7.25803 4.25804 3.90108 ] pdfxs + (it) show + (er) + [4.25806 3.90108 ] pdfxs + (i) show + (a) + [7.62247 ] pdfxs + (f) show + (orob) + [4.68264 6.96124 4.68264 4.25806 ] pdfxs + (j) show + (ec) + [3.77789 4.25806 ] pdfxs + (t) show + (-) + [3.29749 ] pdfxs + (i) show + (ndex) + [5.15848 4.68264 4.25806 4.26207 ] pdfxs + (i) show + (ngmen) + [5.15843 7.19814 7.50429 4.25806 5.15848 ] pdfxs + (ti) show + (o) + [4.68264 ] pdfxs + (n) show + 547.38 132.183 m + (ed) + [3.77798 4.68264 ] pdfxs + 316.8 121.743 m + (above) + [4.68266 3.77818 4.68266 4.25801 4.25804 ] pdfxs + 339.121 121.743 m + /N17 8.96638 Tf + (:itmustbeaTHpoolandtheaddressofa\feldis) + [8.0355 2.57567 7.32272 7.43563 5.10017 3.65645 7.38256 5.34001 7.85865 8.4011 6.65759 + 10.6827 5.34001 4.86128 4.62114 6.29554 4.62114 5.10017 8.9403 3.60276 5.10017 7.85862 + 4.62114 5.10017 5.10017 3.59993 4.07845 3.65647 7.43645 4.62114 6.53976 8.40111 5.10017 + 4.07845 2.57567 8.88 2.57562 3.65647 ] pdfxs + 316.8 111.303 m + (nottaken.Thisisimportantbecauseexpandingobjectsin) + [5.10017 4.62109 6.96281 3.60273 4.62109 4.61605 4.0785 5.10017 7.37581 6.65759 5.10017 + 2.57564 6.95644 2.57567 6.95627 2.57567 7.67579 5.34016 4.62114 3.59993 3.60276 4.62109 + 4.86018 6.90275 5.34001 4.07845 4.08197 4.62109 5.10017 3.65647 7.49832 4.07845 4.85623 + 5.10017 4.62114 5.10017 5.10017 2.57562 5.10017 7.98105 4.62114 5.6403 2.81965 4.07845 + 4.08192 3.60276 6.95632 2.57562 5.10017 ] pdfxs + 316.8 100.803 m + (apooldoesnotchangetheirobjectindex,althoughitdoes) + [7.74094 5.34001 4.86126 4.62109 5.75574 5.10017 4.86126 4.0785 6.77659 5.10017 4.62109 + 6.72258 3.84181 5.10017 4.62109 5.10017 4.62109 7.25848 3.60276 5.10017 4.07845 2.57567 + 6.71999 4.62114 5.6403 2.81965 4.07845 4.08192 6.72277 2.57562 5.10017 5.10017 4.0785 + 4.85623 5.75569 4.62114 2.57562 3.60276 5.10017 4.62114 5.10017 4.62109 8.22033 2.57562 + 6.72277 5.10017 4.86128 4.07845 3.65647 ] pdfxs + Q + n + 3168 929 956.398 4.19922 re + f + q + 10 0 0 10 0 0 cm + 317.28 86.4602 m + /N21 5.97748 Tf + (3) show + 321.42 82.6802 m + /N33 6.97377 Tf + (Object-indexingisactuallyrequiredfordynamiccompress) + [6.12002 4.8002 2.45885 3.54035 3.54035 3.11701 2.70049 2.27707 4.38029 4.38029 3.54035 + 4.19861 2.2771 4.38029 7.01674 2.2771 6.12287 3.95687 3.54035 3.11698 4.38029 3.95687 + 2.27707 2.27712 7.19857 3.11698 3.54035 4.19861 4.38026 2.27712 3.11694 3.54035 7.38027 + 2.45888 3.9569 6.17691 4.38026 4.19861 4.38031 3.9569 6.53649 2.27707 6.54031 3.54035 + 3.9569 6.53649 4.38031 3.11694 3.54035 3.18297 3.15914 ] pdfxs + 527.16 82.6802 m + (ion,and) + [2.27712 3.95685 4.38031 5.33705 3.9569 4.38026 4.38031 ] pdfxs + 316.8 74.7002 m + (isdescribedbelow.) + [2.2771 5.82287 4.38029 3.54035 3.18292 3.54035 3.11701 2.27707 4.62044 3.54035 7.08017 + 4.6202 3.54035 2.2771 3.71671 5.69663 2.2771 ] pdfxs + Q + Q + PDFVars/TermAll get exec end end + userdict /pgsave get restore + showpage + %%PageTrailer + %%EndPage + %%Page: 7 7 + %%BeginPageSetup + userdict /pgsave save put + PDFVars begin PDF begin PDFVars/InitAll get exec + 0 0 612 792 true PDF begin PDFVars begin AS end end + %%EndPageSetup + 0 0 612 792 re + W + n + q + 0.0999908 0 0 0.0999908 0 0 cm + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 53.8199 728.22 m + /N17 8.96638 Tf + (changetheirbyteo\013set\(thespeci\fcrun-timeoperationsa) + [3.8418 5.10016 4.62111 5.10016 4.62111 6.53857 3.60274 5.10016 4.07849 2.57565 6.05985 + 4.86031 4.85621 3.60275 6.59866 4.62111 5.40425 3.65646 4.07849 6.0029 3.60275 3.60275 + 5.10016 6.53834 3.65645 5.34016 4.0785 4.08196 2.57565 5.10016 6.6018 3.59993 5.10017 + 5.10017 3.06375 3.60271 2.57567 7.67579 6.59842 4.62109 5.34033 4.0785 3.59993 4.62109 + 3.60273 2.57567 4.62109 5.10017 6.11635 4.62109 ] pdfxs + (r) show + 288.84 728.22 m + (e) show + 53.8199 717.78 m + (describedbelow\).Therefore,whenobjectsinasourcepool) + [5.10016 4.07849 3.65644 4.08196 3.59992 2.57565 5.34 4.07849 8.34008 5.34 4.0785 + 2.57564 4.38096 6.65758 3.60275 6.95557 6.65758 5.10016 4.0785 3.59993 4.07849 2.81965 + 4.62111 3.59993 4.07849 5.81581 6.65758 5.10016 4.0785 8.28007 4.62111 5.64033 2.81963 + 4.0785 4.08197 3.60273 6.83635 2.57567 8.28031 7.74094 3.65645 4.62109 5.10017 3.59993 + 4.08197 7.31856 5.34001 4.86126 4.62109 2.57567 ] pdfxs + 53.8199 707.34 m + (areexpanded\(andthesourcepoolitselfisindexed\),the) + [4.62111 3.59993 8.39841 4.07849 4.85621 5.10015 4.62111 5.10016 5.10016 4.0785 9.59999 + 3.60275 4.62111 5.10016 9.42 3.60275 5.10016 8.45865 3.65645 4.62112 5.10015 3.59993 + 4.08197 8.45842 5.34 4.86127 4.62111 6.95572 2.57567 3.60273 3.65642 4.0785 2.57567 + 7.0797 2.57567 7.97658 2.57567 5.10017 5.10017 4.0785 4.85619 4.0785 5.10017 3.60273 + 7.25581 3.60273 5.10017 4.0785 ] pdfxs + 53.8199 696.84 m + (nodeindexvaluesinthesourcepooldonotneedtochange,) + [5.10016 4.86127 5.10016 6.95865 2.57565 5.10016 5.10016 4.07849 7.7362 4.31613 4.62111 + 2.57565 5.10016 4.07849 6.47661 2.57565 7.92014 3.60275 5.10016 6.95865 3.65645 4.62112 + 5.10015 3.59993 4.08197 6.89865 5.34 4.86127 4.62111 5.39557 5.10017 7.44094 5.10017 + 4.62109 6.42258 5.10017 4.0785 4.0785 8.04016 3.60273 7.38117 3.84181 5.10017 4.62109 + 5.10017 4.62109 4.0785 2.57567 ] pdfxs + 53.8199 686.4 m + (onlytheirsizesincrease.) + [4.62111 5.10016 2.57565 7.91612 3.60274 5.10016 4.07849 2.57565 6.65985 3.65644 2.57565 + 4.08196 4.0785 6.71637 2.57565 5.10016 4.08196 3.59993 4.0785 4.62111 3.65645 4.0785 + 2.57564 ] pdfxs + 62.76 675.96 m + (Third,foranyobjectcontainingcompressibleindices,we) + [6.65758 5.10016 2.57565 3.59993 5.10016 5.63573 2.81964 4.62111 6.65992 4.62111 4.86024 + 7.97628 4.62111 5.64032 2.81964 4.0785 4.08197 6.66258 4.08197 4.62111 4.86031 3.60275 + 4.62111 2.57565 5.10016 2.57564 5.10016 7.62112 4.08197 4.62111 7.67579 5.10017 3.59993 + 4.07848 3.65645 3.65645 2.57564 5.10017 2.57567 7.19835 2.57567 5.10017 5.10017 2.57567 + 4.08195 4.0785 3.65645 5.63558 6.4175 4.0785 ] pdfxs + 53.8199 665.46 m + (allowonlytwochoices:allindicesarecompressedorallar) + [4.62111 2.57565 2.57565 4.38127 9.53742 4.62111 5.10016 2.57565 7.91612 3.3629 6.4175 + 7.56126 3.84181 5.10016 4.62111 2.57565 4.08196 4.0785 3.65645 6.59557 4.62111 2.57565 + 5.51557 2.57565 5.10016 5.10015 2.57565 4.08197 4.07849 6.7163 4.62111 3.59993 7.0785 + 4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 4.07848 8.1601 4.62109 + 6.59992 4.62109 2.57567 5.57566 4.62109 3.59993 ] pdfxs + (e) show + 53.8199 655.021 m + (uncompressed.Forexample,inlist) + [5.10016 5.10016 4.08196 4.62111 7.67578 5.10016 3.59993 4.07849 3.65644 3.65644 4.0785 + 5.10016 6.53565 5.22153 4.62111 6.17993 4.0785 4.85621 4.62111 7.67578 5.10016 2.57564 + 4.0785 5.27573 2.57565 7.6803 2.57565 2.57564 3.65645 3.60275 ] pdfxs + 195.72 655.021 m + /N31 8.96638 Tf + (list) + [2.88276 3.18285 4.32201 3.29879 ] pdfxs + 209.4 655.021 m + /N17 8.96638 Tf + (1inFigure12,either) + [7.14094 2.57567 7.68032 6.00162 2.57567 4.62109 5.10017 3.59993 6.65865 4.62109 4.62109 + 5.21582 4.0785 2.57567 3.60273 5.10017 4.07848 3.59993 ] pdfxs + 53.82 644.581 m + (bothindex\felds\(theedgeto) + [5.34 4.62111 3.60274 9.18015 2.57565 5.10016 5.10016 4.07849 9.05612 5.10016 4.0785 + 2.57564 5.10016 7.73645 3.60275 3.60275 5.10016 8.21842 4.0785 5.10016 4.62111 8.21842 + 3.60275 4.62111 ] pdfxs + 181.92 644.581 m + /N31 8.96638 Tf + (list) + [2.88276 3.18285 4.32202 3.29879 ] pdfxs + 195.6 644.581 m + /N17 8.96638 Tf + (2andthebackedgeto) + [8.7011 4.62109 5.10017 9.24033 3.60273 5.10017 8.15865 5.10017 4.62109 3.84213 8.99619 + 4.0785 5.10017 4.62109 8.21842 3.60273 4.62109 ] pdfxs + 53.8201 634.081 m + (the) + [3.60274 5.10016 4.07849 ] pdfxs + 69.7803 634.081 m + /N31 8.96638 Tf + (list) + [2.88276 3.18284 4.32203 3.29879 ] pdfxs + 83.4604 634.081 m + /N17 8.96638 Tf + (1\)arestoredincompressedformorbotharestored) + [4.62111 6.72258 4.62111 3.59992 7.19842 3.65645 3.60275 4.62112 3.59992 4.0785 8.28 + 2.57565 8.22015 4.08197 4.62111 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 4.0785 + 8.28 2.81964 4.62109 3.59993 10.8558 4.62109 6.71977 5.34001 4.62109 3.60273 8.28017 + 4.62109 3.59993 7.25857 3.65645 3.60273 4.62109 3.59993 4.0785 5.10017 ] pdfxs + 53.8202 623.641 m + (inuncompressedform.Notethatbecauseourpoolsmirror) + [2.57565 8.2803 5.10016 5.10016 4.08196 4.62111 7.67578 5.10016 3.59993 4.07849 3.65645 + 3.65645 4.0785 8.40031 2.81964 4.62112 3.59993 7.67576 7.07565 6.90289 4.62111 3.60275 + 7.31834 3.60275 5.10016 4.62111 6.78275 5.34 4.0785 4.08197 4.62109 5.10017 3.65642 + 7.37843 4.62109 5.10017 6.84009 5.34001 4.86126 4.62109 2.57567 6.83627 7.67579 2.57567 + 3.59993 3.59993 4.62109 3.59993 ] pdfxs + 53.8202 613.201 m + (thestaticDSgraph,aparticularpointer\feldinallobjects) + [3.60274 5.10016 7.19849 3.65644 3.60274 4.62111 3.60274 2.57565 7.08195 7.01981 8.22 + 4.62111 3.59993 4.62112 5.10016 5.10016 5.69549 7.68118 5.10016 4.62111 3.59993 3.60275 + 2.57565 4.08196 5.10016 2.57565 4.62111 6.65978 5.34 4.62111 2.57565 4.86033 3.60273 + 4.0785 6.71992 5.10017 4.0785 2.57567 8.22023 2.57567 8.22016 4.62109 2.57567 5.57566 + 4.62109 5.64033 2.81963 4.0785 4.08197 3.60273 3.63137 ] pdfxs + 53.8202 602.701 m + (inapoolwillpointtoobjectsinsomecommonpool.This) + [2.57565 8.40023 7.92103 5.34 4.86127 4.62111 5.87564 6.65758 2.57565 2.57564 5.87565 + 5.34 4.62111 2.57565 4.86031 6.90274 3.60275 7.86127 4.62111 5.64032 2.81964 4.0785 + 4.08197 3.60273 6.9563 2.57565 8.45999 3.65645 4.62112 7.67579 7.31856 4.08197 4.62109 + 7.67579 7.67579 4.62109 8.46 5.34001 4.86126 4.62109 2.57567 7.37574 6.65759 5.10017 + 2.57564 3.65645 ] pdfxs + 53.8202 592.261 m + (propertyplusthethirdrestrictiontogetherimplythata) + [5.10016 3.59993 4.62111 5.34031 4.07849 3.59993 3.36259 9.47628 5.10016 2.57565 5.10016 + 8.21645 3.60275 5.10016 8.69849 3.60275 5.10016 2.57564 3.59993 9.66 3.59993 4.0785 + 3.65645 3.60275 3.59993 2.57564 4.08197 3.60275 2.57564 4.62112 9.6603 3.60273 4.62109 + 4.62109 4.0785 3.60273 5.10017 4.0785 8.16008 2.57567 7.67579 5.10017 2.57564 9.41636 + 3.60273 5.10017 4.62109 8.16281 4.62109 ] pdfxs + 53.8202 581.761 m + (singleboolean\rag) + [3.65644 2.57565 5.10016 4.62111 2.57565 8.39833 5.34 4.86127 4.62111 2.57565 4.07849 + 4.62111 9.48023 5.10016 4.62111 4.62112 ] pdfxs + 135 581.761 m + /N19 8.96638 Tf + (perpool) + [4.20267 4.25803 8.40125 4.20267 4.20267 4.68268 2.33684 ] pdfxs + 172.68 581.761 m + /N17 8.96638 Tf + (issu\016cienttotrackwhether) + [2.57565 7.97659 3.65645 5.10016 7.67578 4.08196 2.57567 4.0785 4.86001 7.92265 3.60273 + 8.94093 3.60273 3.59993 4.62109 3.84213 9.23603 6.65759 5.10017 4.07848 3.60273 5.10017 + 4.0785 3.59993 ] pdfxs + 53.8204 571.321 m + (indicesinobjectsinthepoolarecompressedornot.) + [2.57565 5.10016 5.10016 2.57565 4.08196 4.07849 6.71629 2.57565 8.15999 4.62111 5.64032 + 2.81964 4.0785 4.08197 3.60273 6.71646 2.57565 8.15999 3.60275 5.10016 7.1985 5.34 + 4.86127 4.62111 5.63581 4.62111 3.59993 7.13866 4.08197 4.62111 7.67579 5.10017 3.59993 + 4.07848 3.65645 3.65645 4.07848 8.22026 4.62109 6.66 5.10017 4.62109 3.60273 2.57567 + ] pdfxs + 62.7605 560.881 m + (Section4.1describesthemodi\fedrewriterulesfordy-) + [5.10016 4.07849 4.08196 3.60274 2.57565 4.62111 9.42023 4.62111 2.57565 8.88118 5.10016 + 4.0785 3.65645 4.08196 3.59993 2.57565 5.34 4.0785 7.97659 3.60275 5.10016 8.3985 + 7.67578 4.86095 5.10016 2.57565 5.10015 4.0785 9.42023 3.59993 4.0785 6.65756 3.59993 + 2.57567 3.60273 8.39842 3.59993 5.10017 2.57567 4.0785 7.9165 2.81963 4.62109 7.85993 + 5.10017 4.85621 3.06372 ] pdfxs + 53.8204 550.381 m + (namicpointercompression,Section4.2describeschangest) + [5.10016 4.62111 7.67578 2.57565 6.72195 5.34 4.62111 2.57565 4.86031 3.60274 4.0785 + 6.23984 4.08197 4.62111 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 2.57565 4.62111 + 5.10016 5.27581 5.10016 4.0785 4.08196 3.60275 2.57565 4.62111 7.80031 4.62111 2.57567 + 7.2011 5.10017 4.0785 3.65642 4.08197 3.59993 2.57567 5.34001 4.0785 6.35628 3.84181 + 5.10017 4.62109 5.10017 4.62109 4.0785 6.29636 3.5865 ] pdfxs + 288.3 550.381 m + (o) show + 53.8204 539.941 m + (theruntime,andSection4.3describestheneededchanges) + [3.60274 5.10016 7.67857 3.59993 5.10016 4.86031 3.60274 2.57565 7.67578 4.07849 6.23573 + 4.62111 5.10016 8.70008 5.10016 4.0785 4.08196 3.60275 2.57565 4.62111 8.70031 4.62111 + 2.57565 8.16126 5.10016 4.0785 3.65645 4.08196 3.59993 2.57565 5.34 4.0785 7.25627 + 3.60273 5.10017 7.67857 5.10017 4.0785 4.0785 5.10017 4.07848 8.82033 3.84181 5.10017 + 4.62109 5.10017 4.62109 4.0785 3.65645 ] pdfxs + 53.8204 529.501 m + (totheinterproceduraltransformation.) + [3.60274 7.62111 3.60274 5.10016 7.19849 2.57565 4.86 3.60274 4.07849 3.59993 5.10016 + 3.59993 4.86096 4.08197 4.07849 5.10016 5.10016 3.59993 4.62111 5.69573 3.60275 3.59993 + 4.62111 5.10016 3.65645 2.81965 4.62111 3.59993 7.67578 4.62111 3.60275 2.57565 4.62111 + 5.10017 2.57567 ] pdfxs + 53.8204 510.901 m + /N9 11.9552 Tf + (4.1IntraproceduralDynamicCompression) + [6 3 17.8801 4.67991 6.65999 3.95992 5.27982 5.99999 6.65999 5.03991 6 + 5.27981 5.27982 6.65999 6.65999 5.27982 6 6.35993 8.63982 6 6.65999 6 + 9.95991 3.29998 8.21991 8.63981 6 9.95992 6.65999 5.03983 5.27982 4.67992 4.67989 + 3.30001 6 6.66002 ] pdfxs + 62.7605 497.941 m + /N17 8.96638 Tf + (Intraproceduraldynamicpointercompressionislargely) + [3.30019 4.86031 3.60274 3.59993 4.62111 5.10016 3.59992 4.86119 4.08196 4.07849 5.10016 + 5.10016 3.59993 4.62111 7.19573 5.10016 4.85621 5.10016 4.62111 7.67578 2.57565 8.7018 + 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 8.15976 4.08197 4.62109 7.67579 5.10017 + 3.59993 4.07848 3.65645 3.65645 2.57564 4.62112 9.60024 2.57567 8.15627 2.57567 4.62109 + 3.59993 4.62109 4.0785 2.57567 4.85619 ] pdfxs + 53.8204 487.441 m + (thesameasstaticcompressionbutmorecomplexload/store) + [3.60274 5.10016 6.47857 3.65644 4.62111 7.67578 6.47834 4.62111 6.05651 3.65645 3.60275 + 4.62112 3.60273 2.57565 6.42205 4.08197 4.62111 7.67576 5.10016 3.59993 4.0785 3.65645 + 3.65645 2.57565 4.62111 7.50024 5.10016 5.10016 6.0629 7.67578 4.62109 3.59993 6.47857 + 4.08197 4.62109 7.67579 5.10017 2.57567 4.07848 7.31636 2.57567 4.62109 4.62109 5.10017 + 4.62109 3.65645 3.60273 4.62109 3.59993 4.0785 ] pdfxs + 53.8204 477.001 m + (codesequencesareneededforobjectscontainingcompress) + [4.08196 4.86096 5.10016 6.29849 3.65644 4.07849 4.85621 5.10016 4.07849 5.10016 4.08196 + 4.0785 5.87637 4.62111 3.59993 6.29843 5.10016 4.0785 4.07849 5.10016 4.0785 7.38007 + 2.81964 4.62112 5.75992 4.62111 5.64032 2.81964 4.0785 4.08197 3.60273 5.81646 4.08197 + 4.62109 4.86033 3.60273 4.62109 2.57567 5.10017 2.57567 5.10017 6.78125 4.08197 4.62109 + 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 ] pdfxs + (e) show + 287.76 477.001 m + (d) show + 53.8204 466.561 m + (indices,sincetheseindicesmaygrowatruntime.Ineach) + [2.57565 5.10016 5.10016 2.57565 4.08196 4.07849 3.65645 6.1758 3.65644 2.57565 5.10016 + 4.08196 7.61834 3.60275 5.10016 4.07849 3.65646 7.61865 2.57565 5.10016 5.10015 2.57565 + 4.08197 4.07849 7.19637 7.67578 4.38126 8.39621 4.62111 3.59993 4.38112 10.1374 4.62109 + 7.08274 3.59993 5.10017 8.70016 3.60273 2.57567 7.67579 4.07848 8.03574 3.30018 8.64001 + 4.0785 4.62109 3.84181 5.10017 ] pdfxs + 53.8204 456.061 m + (sourcepool,westoreabooleanvalue,\\) + [3.65644 4.62111 5.10016 3.59993 4.08196 7.73849 5.34 4.86127 4.62111 2.57565 6.3558 + 6.4175 7.73834 3.65645 3.60275 4.62112 3.59992 7.73842 8.28119 5.34 4.86127 4.62111 + 2.57565 4.0785 4.62111 8.82007 4.31613 4.62111 2.57565 5.10016 4.0785 6.3555 4.62109 + ] pdfxs + 218.64 456.061 m + /N19 8.96638 Tf + (i) show + (sComp) + [3.7822 6.60382 4.68266 7.50429 4.68264 ] pdfxs + 248.701 456.061 m + /N17 8.96638 Tf + (,"whichis) + [2.57567 8.46093 6.65759 5.10017 2.57564 3.84205 8.76032 2.57567 3.65642 ] pdfxs + 53.8206 445.621 m + (settotruewhenobjectsinthepoolholdcompressedin-) + [3.65644 4.07849 7.74281 3.60274 8.82103 3.60274 3.59993 5.10016 8.27856 6.65758 5.10016 + 4.0785 9.36014 4.62111 5.64032 2.81964 4.0785 4.08197 3.60273 7.79653 2.57565 9.30022 + 3.60275 5.10016 8.33833 5.34 4.86127 4.62111 6.77566 5.10017 4.62109 2.57567 9.30016 + 4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 4.07848 9.3601 2.57567 + 5.10017 3.06372 ] pdfxs + 53.8206 435.181 m + (dicesandfalseotherwise.Ifasourcepoolisalsoanindexe) + [5.10016 2.57565 4.08196 4.07849 6.35645 4.62111 5.10016 7.80007 2.81964 4.62111 2.57564 + 3.65646 6.71849 4.62111 3.60275 5.10016 4.0785 3.59993 6.65758 2.57565 3.65645 4.07849 + 6.53558 3.30019 5.51956 7.26126 3.65645 4.62112 5.10015 3.59993 4.08197 6.8385 5.34001 + 4.86126 4.62109 5.27567 2.57567 6.29651 4.62109 2.57567 3.65645 7.20124 4.62109 7.80009 + 2.57567 5.10017 5.10017 4.0785 4.85619 4.0785 ] pdfxs + (d) show + 53.8206 424.681 m + (pool,allindexvaluespointingtothepoolheldinregisters) + [5.34 4.86127 4.62111 2.57565 5.63549 4.62111 2.57565 5.63549 2.57565 5.10016 5.10016 + 4.0785 7.97605 4.31613 4.62111 2.57565 5.10016 4.07849 6.77661 5.34 4.62111 2.57565 + 4.86031 3.60275 2.57565 5.10015 7.74103 3.60275 7.68118 3.60275 5.10016 7.1985 5.34001 + 4.86126 4.62109 5.69559 5.10017 4.0785 2.57567 8.22023 2.57567 8.22016 3.59993 4.0785 + 4.62109 2.57567 3.65642 3.60273 4.0785 3.59993 3.63137 ] pdfxs + 290.401 424.681 m + (,) show + 53.8206 414.241 m + (globals,orstacklocationsarerepresentedusingthefull) + [4.62111 2.57565 4.62111 5.10016 4.62111 2.57565 3.65645 6.35549 4.62111 7.31977 3.65645 + 3.60275 4.62112 3.84188 8.51612 2.57565 4.86095 4.08197 4.62111 3.60275 2.57564 4.62112 + 5.10016 7.37653 4.62111 3.59993 7.79842 3.59993 4.0785 5.10015 3.59993 4.0785 3.65645 + 4.0785 4.86033 3.60273 4.0785 8.94008 5.10017 3.65645 2.57564 5.10017 8.34118 3.60273 + 5.10017 7.79849 2.81963 5.10017 2.57567 2.57567 ] pdfxs + 287.341 414.241 m + /N31 8.96638 Tf + (n) show + 53.8206 403.801 m + /N17 8.96638 Tf + (bits\(thehighbitsarezerowhen) + [5.10016 2.57565 3.60274 6.4766 3.60274 3.60274 5.10016 6.95865 5.10016 2.57565 4.62111 + 7.98023 5.10016 2.57565 3.60273 6.47661 4.62111 3.59993 6.95858 4.08197 4.07849 3.59993 + 7.50127 6.65758 5.10016 4.0785 5.10016 ] pdfxs + 187.202 403.801 m + /N31 8.96638 Tf + (isComp) + [3.18285 4.32202 7.26352 4.44427 8.09574 4.62071 ] pdfxs + 221.642 403.801 m + /N17 8.96638 Tf + (=) show + 231.362 403.801 m + /N31 8.96638 Tf + (true) + [3.29879 4.38254 5.27622 4.26164 ] pdfxs + 248.582 403.801 m + /N17 8.96638 Tf + (\).Without) + [3.60273 6.65582 9.47858 2.57567 3.60273 5.10017 4.62109 5.10017 3.60273 ] pdfxs + 53.8205 393.301 m + (thissimpli\fcation,pointercompressionwouldhavetoex-) + [3.60274 5.10016 2.57565 7.55628 3.65644 2.57565 7.67578 5.10015 2.57565 2.57565 5.10016 + 4.08196 4.62111 3.60275 2.57565 4.62111 5.10016 6.71565 5.34 4.62111 2.57565 4.86031 + 3.60275 4.0785 7.61992 4.08197 4.62111 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 + 2.57564 4.62112 9.06 6.4175 4.62109 5.10017 2.57567 9.12009 5.10017 4.38118 4.61612 + 8.03833 3.60273 8.58117 4.0785 4.85619 3.06375 ] pdfxs + 53.8205 382.861 m + (pandtheindicesinallsuchobjectswhenthepoolexceeded) + [5.10016 4.62111 5.10016 7.98015 3.60274 5.10016 7.01841 2.57565 5.10016 5.10016 2.57565 + 4.08197 4.07849 6.53661 2.57565 7.98031 4.62111 2.57565 5.39564 3.65645 5.10016 3.84197 + 7.98023 4.62111 5.64032 2.81964 4.0785 4.08197 3.60273 6.47661 6.65758 5.10017 4.07848 + 8.04025 3.60273 5.10017 6.95865 5.34001 4.86126 4.62109 5.45574 4.0785 4.85619 4.08197 + 4.0785 4.0785 5.10017 4.0785 5.10015 ] pdfxs + 53.8205 372.422 m + (2) show + 58.4404 376.202 m + /N29 5.97748 Tf + (k) show + 66.8404 372.422 m + /N17 8.96638 Tf + (nodes.Thisistechnicallyfeasibleforglobalandstack) + [5.10016 4.86127 5.10016 4.07849 3.65644 9.05564 6.65758 5.10016 2.57565 7.49628 2.57565 + 7.49651 3.60275 4.0785 3.84188 5.10016 5.10016 2.57564 4.08197 4.62111 2.57565 2.57565 + 8.69604 2.81964 4.0785 4.62111 3.65646 2.57564 5.10016 2.57565 7.91863 2.81963 4.62109 + 7.44001 4.62109 2.57567 4.62109 5.10017 4.62109 6.41582 4.62109 5.10017 9.00009 3.65645 + 3.60273 4.62109 3.84188 4.85621 ] pdfxs + 53.8205 361.922 m + (locations\(usinginformationfromthepoints-tograph\)but) + [2.57565 4.86096 4.08196 4.62111 3.60274 2.57565 4.62111 5.10016 7.01636 3.60274 5.10016 + 3.65645 2.57565 5.10016 8.04118 2.57565 5.10016 2.81964 4.62111 3.59993 7.67578 4.62111 + 3.60275 2.57565 4.62111 8.46023 2.81964 3.59993 4.62112 11.0956 3.60275 5.10016 7.55865 + 5.34001 4.62109 2.57567 4.86033 3.60273 3.65645 3.06372 3.60273 8.04126 4.62109 3.59993 + 4.62109 5.10017 5.10017 7.02289 5.10017 5.10017 3.5865 ] pdfxs + 53.8205 351.482 m + (probablyisn'tworththeaddedimplementationcomplexity.) + [5.10016 3.59993 4.62111 5.10015 4.62111 5.10016 2.57565 7.79613 2.57565 3.65644 5.10017 + 2.57564 6.48275 6.4175 4.62111 3.59993 3.60275 7.98015 3.60275 5.10016 7.01842 4.62111 + 5.10016 5.10016 4.0785 8.10015 2.57565 7.67576 5.10016 2.57565 4.07849 7.67579 4.0785 + 4.86001 3.60273 4.62109 3.60273 2.57567 4.62109 7.98017 4.08197 4.62109 7.67579 5.10017 + 2.57567 4.07848 4.85621 2.57567 3.36257 4.07628 2.55545 ] pdfxs + 62.7606 341.042 m + (Figure11showsthemain) + [6.00161 2.57565 4.62111 5.10016 3.59993 6.83834 4.62111 7.26118 3.65645 5.10016 4.38096 + 6.65758 6.29661 3.60275 5.10016 6.83834 7.67578 4.62111 2.57564 5.10016 ] pdfxs + 165.001 344.822 m + /N21 5.97748 Tf + (4) show + 171.84 341.042 m + /N17 8.96638 Tf + (rewriterulesusedfordynamic) + [3.59993 4.0785 6.65758 3.59993 2.57564 3.60275 6.7785 3.59993 5.10017 2.57567 4.0785 + 6.35635 5.10017 3.65645 4.07848 7.80002 2.81963 4.62109 6.29978 5.10017 4.85621 5.10017 + 4.62109 7.67579 2.57564 4.08197 ] pdfxs + 53.8204 330.542 m + (pointercompression.Thetransformedversionofthe) + [5.34 4.62111 2.57565 4.86031 3.60274 4.07849 5.93985 4.08196 4.62111 7.67578 5.10016 + 3.59993 4.0785 3.65645 3.65645 2.57565 4.62111 5.10016 6.41565 6.65758 5.10016 6.47835 + 3.60275 3.59993 4.62111 5.10016 3.65645 2.81965 4.62111 3.59993 7.67578 4.07849 7.44008 + 4.61612 4.0785 3.59993 3.65642 2.57567 4.62109 7.44025 4.62109 5.15971 3.60273 5.10017 + 4.0785 ] pdfxs + 264.66 330.542 m + /N15 8.96638 Tf + (Length) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 ] pdfxs + 53.8204 320.102 m + /N17 8.96638 Tf + (functionintheexampleisshowninFigure10.Becausewe) + [2.81964 5.10016 5.10016 4.08196 3.60274 2.57565 4.62111 8.28023 2.57565 8.34008 3.60275 + 5.10016 7.31841 4.0785 4.85621 4.62111 7.67578 5.10016 2.57564 7.31834 2.57565 6.77659 + 3.65645 5.10016 4.38096 6.65758 8.28 2.57565 8.34007 6.00162 2.57567 4.62109 5.10017 + 3.59993 7.31841 4.62109 4.62109 7.01583 6.54066 4.0785 4.08197 4.62109 5.10017 3.65645 + 7.31849 6.4175 4.0785 ] pdfxs + 53.8204 309.602 m + (donotcompresspoolindexesiftheaddressofa\feldistaken,) + [5.10016 6.66127 5.10016 4.62111 5.70266 4.08196 4.62111 7.67578 5.10016 3.59993 4.0785 + 3.65645 5.75653 5.34 4.86127 4.62111 4.6155 2.57565 5.10016 5.10015 4.0785 4.85621 + 4.0785 5.81637 2.57565 4.85948 3.60275 5.10016 6.17857 4.62111 5.10016 5.10017 3.59993 + 4.0785 3.65642 5.75637 4.62109 4.85971 6.72102 5.10017 4.0785 2.57567 7.20031 2.57567 + 5.69651 3.60273 4.62109 4.61605 4.0785 5.10017 2.55545 ] pdfxs + 53.8204 299.162 m + (thecodeforaddressingthe\feldandloadingitishandled) + [3.60274 5.10016 7.79848 4.08196 4.86096 5.10016 7.85864 2.81964 4.62111 7.32007 4.62111 + 5.10016 5.10016 3.59993 4.0785 3.65645 3.65645 2.57565 5.10016 8.28119 3.60275 5.10016 + 7.85865 5.10016 4.0785 2.57564 8.82023 4.62111 5.10016 8.88016 2.57567 4.62109 4.62109 + 5.10017 2.57567 5.10017 8.28117 2.57567 7.26256 2.57567 7.37658 5.10017 4.62109 5.10017 + 5.10017 2.57567 4.0785 5.10017 ] pdfxs + 53.8204 288.722 m + (byonerule.Thegeneratedcodedi\013ersfromthestaticcom-) + [4.86031 7.43604 4.62111 5.10016 6.65857 3.59993 5.10016 2.57565 4.07849 6.53565 6.65758 + 5.10016 6.71857 4.62111 4.0785 5.10016 4.07849 3.59993 4.62112 3.60275 4.07849 7.74008 + 4.08197 4.86095 5.10016 6.71842 5.10016 2.57565 5.40424 4.0785 3.59993 6.17627 2.81963 + 3.59993 4.62109 10.2558 3.60273 5.10017 6.71842 3.65645 3.60273 4.62109 3.60273 2.57567 + 6.54195 4.08197 4.62109 7.67579 3.06372 ] pdfxs + 53.8204 278.222 m + (pressioncaseintwoways:1\)bothcompressedandexpanded) + [5.10016 3.59993 4.07849 3.65644 3.65645 2.57565 4.62111 7.20015 4.08196 4.62111 3.65644 + 6.23849 2.57565 7.25999 3.3629 6.4175 6.72103 6.4175 4.38119 4.85621 3.65645 6.11549 + 4.62111 5.76283 5.34 4.62111 3.60275 7.26024 4.08197 4.62111 7.67579 5.10017 3.59993 + 4.07848 3.65645 3.65645 4.07848 7.2601 4.62109 5.10017 7.32001 4.0785 4.85619 5.10017 + 4.62112 5.10017 5.10015 4.0785 5.10017 ] pdfxs + 53.8204 267.782 m + (casesmustbehandled;and2\)object-indexingratherthan) + [4.08196 4.62111 3.65644 4.07849 7.0166 7.43562 5.10016 3.65644 6.96266 5.34 7.55865 + 5.10016 4.62111 5.10016 5.10016 2.57565 4.07849 5.10016 6.17581 4.62111 5.10016 8.58016 + 4.62111 6.96283 4.62111 5.64032 2.81964 4.0785 4.08197 3.60273 3.06372 2.57567 5.10017 + 5.10017 4.0785 4.85619 2.57567 5.10017 8.04118 3.59993 4.62109 3.60273 5.10017 4.0785 + 7.08 3.60273 5.10017 4.62109 5.10017 ] pdfxs + 53.8204 257.343 m + (byte-indexingisused,i.e.,thepoolindexisscaledbythe) + [4.86031 4.8562 3.60274 4.07849 3.06373 2.57565 5.10016 5.10016 4.07849 4.8562 2.57565 + 5.10017 8.46126 2.57565 7.43636 5.10016 3.65645 4.0785 5.10016 6.65564 2.57565 2.57564 + 4.0785 2.57564 6.5358 3.60275 5.10016 7.91842 5.34 4.86127 4.62111 6.41549 2.57567 + 5.10017 5.10017 4.0785 8.69634 2.57567 7.49651 3.65645 4.08195 4.62112 2.57564 4.0785 + 8.88017 4.86033 8.6962 3.60273 5.10017 4.0785 ] pdfxs + 53.8204 246.843 m + (nodesizebeforeaddingto) + [5.10016 4.86127 5.10016 7.79848 3.65644 2.57565 4.08196 7.73864 5.34 4.0785 2.81964 + 4.62111 3.59993 7.85858 4.62111 5.10016 5.10016 2.57565 5.10016 8.28119 3.60275 4.62111 + ] pdfxs + 165.72 246.843 m + /N15 8.96638 Tf + (PoolBase) + [4.67994 4.67993 4.67994 4.67993 4.67994 4.67994 4.67993 4.67994 ] pdfxs + 203.16 246.843 m + /N17 8.96638 Tf + (.Theobjectsizeand) + [8.75581 6.65759 5.10017 7.79864 4.62109 5.64033 2.81963 4.0785 4.08197 7.26256 3.65645 + 2.57564 4.08197 7.73865 4.62109 5.10017 5.10017 ] pdfxs + 53.8202 236.403 m + (\feldo\013setsare\fxedandknownatcompile-timeforeach) + [5.10016 4.07849 2.57565 9.12023 4.62111 5.40425 3.65644 4.07849 3.60274 7.61652 4.62111 + 3.59993 8.09842 5.10016 4.85621 4.0785 9.18007 4.62111 5.10016 9.18015 4.85621 5.10016 + 4.38096 6.65758 9.12023 4.62111 7.56282 4.08197 4.62109 7.67579 5.10017 2.57567 2.57564 + 4.0785 3.06375 3.60273 2.57564 7.67579 8.09835 2.81963 4.62109 7.62009 4.0785 4.62109 + 3.84181 5.10017 ] pdfxs + 53.8202 225.963 m + (case.) + [4.08196 4.62111 3.65644 4.07849 2.57565 ] pdfxs + 53.8202 209.943 m + /N39 6.97377 Tf + (/*Lengthwithdynamicpointercompression\(64->32bits\)*/) + [3.71825 7.3782 3.71825 3.71824 3.71825 3.71825 3.71825 7.31813 3.71825 3.71824 3.71825 + 7.37805 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 7.31806 3.71825 3.71826 3.71825 + 3.71825 3.71826 3.71825 7.31806 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 3.71826 + 3.71825 3.71825 3.71825 7.25836 3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 7.31806 + 3.71825 3.71825 3.71827 3.71825 7.3182 3.71825 3.70311 ] pdfxs + 53.8202 202.023 m + (staticintLength\(Pool*PD,longL\){) + [3.71825 3.71824 3.71825 3.71825 3.71825 7.31813 3.71825 3.71824 7.37813 3.71825 3.71824 + 3.71825 3.71825 3.71826 3.71825 3.71826 3.71825 3.71825 3.71826 7.25836 3.71825 3.71826 + 3.71825 7.37805 3.71825 3.71826 3.71825 7.31829 3.71825 7.43837 3.71825 ] pdfxs + 61.2002 194.043 m + (if\(L==0\)return0;) + [3.71825 7.3782 3.71825 7.43835 3.71825 7.3782 3.71825 7.3782 3.71825 3.71826 3.71825 + 3.71825 3.71826 7.31813 3.71825 3.71826 ] pdfxs + 61.2002 186.063 m + (longNext=\(PD->isComp\)?\(long\)*\(int*\)\(PD->PoolBase+L*) + [3.71825 3.71824 3.71825 7.37805 3.71825 3.71824 3.71825 3.71825 3.71825 3.71824 3.71826 + 3.71825 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 7.1383 + 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 3.71826 7.31836 3.71825 3.71826 3.71825 + 3.71825 3.71826 3.71825 3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.71825 3.71827 + 3.71825 3.71825 3.71825 7.1383 7.43805 3.71825 3.70311 ] pdfxs + 268.74 186.063 m + (8+4\)) + [11.0383 7.43805 3.71825 3.71825 ] pdfxs + 142.74 178.083 m + (:*\(long*\)\(PD->PoolBase+L*16+8\);) + [29.6378 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 3.71826 3.71825 3.71825 3.71825 + 3.71825 3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.71825 3.71825 3.71827 7.07829 + 7.43805 3.71825 3.71825 3.71827 7.31827 7.43805 3.71825 3.71825 3.71827 ] pdfxs + 61.2004 170.103 m + (returnLength\(PD,Next\)+1;) + [3.71825 3.71824 3.71825 3.71825 3.71825 7.31813 3.71825 3.71824 3.71825 3.71825 3.71825 + 3.71825 3.71826 3.71825 3.71825 7.31822 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 + 3.71826 3.71825 ] pdfxs + 53.8203 162.123 m + (}) show + 63.3004 143.043 m + /N23 8.96638 Tf + (Figure10:) + [6.66306 2.94269 5.28303 5.87643 4.37907 8.46026 5.28303 5.28303 7.74267 ] pdfxs + (E) show + (x) + [5.58424 ] pdfxs + (a) show + (mple) + [8.81907 5.87644 2.94267 8.46028 ] pdfxs + (a) show + (fterdyn) + [3.24389 4.13848 4.86027 7.85922 5.87644 5.58423 5.87644 ] pdfxs + (a) show + (miccompression) + [8.81908 2.94267 8.34074 4.74072 5.28303 8.81908 5.87644 4.37907 4.86025 4.2022 4.2022 + 2.94269 5.28303 5.87642 ] pdfxs + 62.7606 119.704 m + /N17 8.96638 Tf + (Therewriterulesuseabranchsequenceevenfor) + [6.65758 5.10016 8.51857 3.59993 4.07849 6.65758 3.59993 2.57565 3.60275 8.51834 3.59993 + 5.10016 2.57564 4.0785 8.03644 5.10016 3.65645 8.51857 9.06126 5.10016 3.59993 4.62111 + 5.10016 3.84213 9.53999 3.65645 4.07848 4.85621 5.10017 4.0785 5.10017 4.08195 8.57835 + 4.0785 4.6162 4.0785 9.60024 2.81963 4.62109 3.59993 ] pdfxs + 274.561 119.704 m + /N19 8.96638 Tf + (non-) + [5.1585 4.68264 5.1585 3.29746 ] pdfxs + 53.8206 109.204 m + (po) + [4.20267 4.68267 ] pdfxs + (i) show + (n) + [5.15848 ] pdfxs + (t) show + (ervalues) + [4.25803 6.78126 4.25803 4.68268 2.33685 4.92058 4.25803 3.78219 ] pdfxs + 112.321 109.204 m + /N17 8.96638 Tf + (\() show + 115.921 109.204 m + /N31 8.96638 Tf + (V) show + 123.36 109.204 m + /N17 8.96638 Tf + (\).Byrecordingtheobjectsizeinthepool,) + [3.60275 6.47573 6.54066 7.43628 3.59993 4.0785 4.08196 4.62111 3.59993 5.10016 2.57565 + 5.10016 7.26103 3.60275 5.10016 6.65865 4.62109 5.64033 2.81963 4.0785 4.08197 6.24265 + 3.65645 2.57564 4.08197 6.65858 2.57567 7.68032 3.60273 5.10017 6.71842 5.34001 4.86126 + 4.62109 2.57567 2.57567 ] pdfxs + 53.8205 98.7637 m + (however,wecanuseabranch-freesequenceforloadsand) + [5.10016 4.38119 6.4175 4.07849 4.61621 4.07849 3.59993 6.71565 6.4175 8.03833 4.08197 + 4.62111 9.06031 5.10016 3.65645 8.0385 8.58119 5.10016 3.59993 4.62111 5.10016 3.84213 + 5.10016 3.06372 2.81964 3.59993 4.0785 8.15841 3.65645 4.07848 4.85621 5.10017 4.0785 + 5.10017 4.08195 8.09866 2.81963 4.62109 7.55993 2.57567 4.62109 4.62109 5.10017 7.55652 + 4.62109 5.10017 5.10017 ] pdfxs + Q + n + 538 929 956.398 4.19922 re + [/DeviceGray] cs 0 sc + f + q + 10 0 0 10 0 0 cm + 54.3 86.4602 m + /N21 5.97748 Tf + (4) show + 58.3801 82.6802 m + /N33 6.97377 Tf + (Weonlyshowtherulesforloadsofstructure\felds.Storesar) + [7.38141 5.94017 3.95687 4.38027 2.2771 6.59849 3.18292 4.38027 3.71696 8.09659 3.11698 + 4.38029 5.94017 3.11698 4.38029 2.2771 3.54035 5.52274 2.45885 3.95687 5.51681 2.2771 + 3.95687 3.95687 4.38029 5.58305 3.95687 4.85875 3.18293 3.11698 3.11698 4.38029 3.54036 + 3.11698 4.38026 3.11698 5.88019 4.50119 3.54035 2.2771 4.38029 3.18292 5.69712 4.38029 + 3.11698 3.95687 3.11698 3.54035 5.58289 3.95687 3.1103 ] pdfxs + 269.699 82.6802 m + (eiden-) + [5.94025 2.2771 4.38029 3.54035 4.38029 2.70049 ] pdfxs + 53.819 74.7002 m + (ticalexceptforthe\fnalinstruction,andarrayaccessesar) + [3.11698 2.27709 3.54036 3.95688 4.91698 3.54036 4.19859 3.54036 3.54036 4.38027 5.81687 + 2.45885 3.95687 5.75704 3.11698 4.38029 6.30032 4.50119 4.38029 3.95687 4.97698 2.2771 + 4.38027 3.18293 3.11698 3.11698 4.38029 3.54036 3.11698 2.2771 3.95687 4.38029 4.91721 + 3.95687 4.38029 7.08017 3.95687 3.11698 3.11698 3.71679 6.89858 3.95687 3.54035 3.54035 + 3.54037 3.18292 3.18289 3.54037 5.82287 3.95687 3.1103 ] pdfxs + 256.739 74.7002 m + (esimilar.) + [6.24025 3.18292 2.2771 6.53649 2.2771 2.2771 3.95685 3.11698 2.2771 ] pdfxs + 316.799 728.22 m + /N17 8.96638 Tf + (storesofnon-pointervalues,andcantunethesequencefor) + [3.65645 3.60273 4.62109 3.59993 4.0785 6.89658 4.62109 6.05971 5.10017 4.62109 5.10017 + 3.06375 5.34009 4.62109 2.57567 4.86033 3.60273 4.0785 6.9 4.31612 4.62114 2.57562 + 5.10017 4.07845 3.65647 5.87556 4.62114 5.10017 8.40007 4.08192 4.62114 8.40017 3.60276 + 5.10017 5.10017 7.37854 3.60276 5.10017 7.37854 3.65647 4.07845 4.85623 5.10017 4.07845 + 5.10017 4.08197 7.3783 2.81965 4.62109 3.59993 ] pdfxs + 316.799 717.78 m + (thepossibleobjectsizessincetheseareknownatcompile) + [3.60273 5.10017 7.91842 5.34001 4.62109 3.65645 3.65642 2.57567 5.10017 2.57567 7.91842 + 4.62109 5.64033 2.81963 4.0785 4.08197 7.44265 3.65645 2.57564 4.08197 4.0785 7.4363 + 3.65647 2.57562 5.10017 4.08197 7.91829 3.60276 5.10017 4.07845 3.65647 7.91863 4.62114 + 3.59993 7.91829 4.85623 5.10017 4.38096 6.65759 8.94015 4.62114 7.38273 4.08192 4.62114 + 7.67525 5.10017 2.57567 2.57562 4.0785 ] pdfxs + 316.799 707.341 m + (time.Forexample,ifaloadof) + [3.60273 2.57567 7.67579 4.07848 6.41582 5.22155 4.62109 5.94008 4.0785 4.85619 4.62112 + 7.67576 5.10017 2.57567 4.0785 5.0355 2.57567 5.15947 6.9011 2.57562 4.62114 4.62114 + 7.4403 4.62114 2.8196 ] pdfxs + 438.599 707.341 m + /N15 8.96638 Tf + (L->X) + [4.6799 4.67995 4.6799 4.67995 ] pdfxs + 459.779 707.341 m + /N17 8.96638 Tf + (occuredinthe) + [4.86128 4.08192 4.08197 5.10017 3.59993 4.07845 7.56018 2.57562 7.38034 3.60276 5.10017 + 4.07845 ] pdfxs + 518.28 707.341 m + /N15 8.96638 Tf + (Length\(\)) + [4.6799 4.67995 4.6799 4.67995 4.6799 4.6799 4.67995 4.6799 ] pdfxs + 316.8 696.841 m + /N17 8.96638 Tf + (functionabove,itcouldbetranslatedto:) + [2.81963 5.10017 5.10017 4.08197 3.60273 2.57567 4.62109 8.22009 4.62109 5.34033 4.38118 + 4.61612 4.0785 5.63558 2.57567 6.60273 4.08197 4.62109 5.10017 2.57567 8.22013 5.34001 + 7.19847 3.60276 3.59993 4.62114 5.10017 3.65642 2.57567 4.62109 3.60276 4.0785 8.10016 + 3.60276 4.62114 2.57562 ] pdfxs + 345.06 677.941 m + /N15 8.96638 Tf + (intX=*\(int*\)\(PD->PoolBase+) + [4.67995 4.67995 9.47977 9.41986 9.41986 4.67995 4.67995 4.67993 4.67995 4.67995 4.6799 + 9.53986 4.6799 4.67995 4.6799 4.67995 4.6799 4.6799 4.67995 4.6799 4.67995 4.6799 + 4.6799 4.67995 9.77975 4.6799 ] pdfxs + 425.1 667.501 m + (L<LogObjSize+0\);) + [9.41984 4.6799 9.41994 4.6799 4.67995 4.6799 4.67995 4.6799 4.6799 4.67995 4.6799 + 4.67995 4.6799 4.6799 4.67995 4.6799 9.77985 9.41984 4.6799 4.67995 4.6799 ] pdfxs + 316.8 648.541 m + /N17 8.96638 Tf + (where) + [6.65759 5.10017 4.07848 3.59993 4.0785 ] pdfxs + 343.26 648.541 m + /N15 8.96638 Tf + (PD->LogObjSize) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 + 4.67995 4.67993 4.67995 ] pdfxs + 412.02 648.541 m + /N17 8.96638 Tf + (iseither3or4correspondingtothe) + [2.57562 6.47663 4.07845 2.57567 3.60276 5.10017 4.07845 6.47986 7.50112 4.62114 6.41975 + 7.50112 4.08192 4.62114 3.59993 3.59993 4.07845 3.65647 5.34026 4.62114 5.10017 5.10017 + 2.57562 5.10017 7.56128 3.60276 7.44097 3.60276 5.10017 4.07845 ] pdfxs + 316.8 638.101 m + (compressedanduncompressedcases.\(Ifthesizeisnotan) + [4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 4.07848 8.70034 4.62109 + 5.10017 8.64032 5.10017 5.10017 4.08197 4.62109 7.67525 5.10017 3.59993 4.0785 3.65647 + 3.65642 4.0785 8.76008 4.08192 4.62114 3.65647 4.07845 3.65647 8.03547 3.60276 3.30018 + 6.35978 3.60276 5.10017 7.61839 3.65647 2.57562 4.08197 7.6183 2.57562 7.1364 5.10017 + 4.62114 7.14289 4.62114 5.10017 ] pdfxs + 316.8 627.601 m + (exactpowerof2,asequenceofshiftsandaddswouldbe) + [4.0785 4.85619 4.62112 4.08195 7.6229 5.34001 4.38118 6.4175 4.0785 7.61992 4.62109 + 6.83979 4.62109 6.77566 8.58117 3.65645 4.07848 4.85623 5.10017 4.07845 5.10017 4.08197 + 8.21853 4.62114 6.7796 3.65647 5.10017 2.57562 2.81965 3.60276 7.61652 4.62114 5.10017 + 9.11999 4.62114 5.10017 5.10017 7.67643 6.4175 4.62114 5.10017 2.57562 9.06032 5.34001 + 4.07845 ] pdfxs + 316.8 617.161 m + (needed,butthecodesequencecanstillbegeneratedat) + [5.10017 4.0785 4.0785 5.10017 4.07848 5.10017 7.91582 5.10017 5.10017 8.40273 3.60273 + 5.10017 8.93834 4.08197 4.86094 5.10017 8.93834 3.65647 4.07845 4.85623 5.10017 4.07845 + 5.10017 4.08197 8.93846 4.08192 4.62114 9.96032 3.65647 3.60276 2.57562 2.57567 7.25569 + 5.34001 8.93831 4.62114 4.07845 5.10017 4.07845 3.59993 4.62114 3.60276 4.07845 9.96002 + 4.62114 3.60276 ] pdfxs + 316.8 606.721 m + (compile-time.\)Furthermore,sincethepoolisTH,wecan) + [4.08197 4.62109 7.67579 5.10017 2.57567 2.57564 4.0785 3.06375 3.60273 2.57564 7.67579 + 4.0785 2.57567 9.54257 5.22155 5.10017 3.59993 3.60273 5.10017 4.0785 3.59988 7.67579 + 4.62109 3.59993 4.0785 6.47547 3.65647 2.57562 5.10017 4.08197 7.79837 3.60276 5.10017 + 7.79847 5.34001 4.86128 4.62114 6.23577 2.57562 7.31648 6.65759 6.90289 6.23562 6.4175 + 7.79847 4.08192 4.62114 5.10017 ] pdfxs + 316.8 596.221 m + (safelyreorder\feldswithinthepooldatatype,) + [3.65645 4.62109 2.81963 4.0785 2.57567 8.93618 3.59993 4.0785 4.62109 3.59993 5.10017 + 4.0785 7.73984 5.10017 4.0785 2.57567 5.10017 7.79657 6.65759 2.57562 3.60276 5.10017 + 2.57567 9.18015 3.60276 5.10017 8.21839 5.34001 4.86128 4.62114 6.65569 5.10017 4.62114 + 3.60276 8.70102 3.36292 4.85623 5.34016 4.07845 2.57567 ] pdfxs + 515.7 596.221 m + /N31 8.96638 Tf + (\034) show + 520.8 596.221 m + /N17 8.96638 Tf + (,) show + 527.7 596.221 m + /N19 8.96638 Tf + (so) + [3.78217 8.9426 ] pdfxs + (t) show + (ha) + [4.68264 4.68269 ] pdfxs + (t) show + 316.8 585.781 m + (allnon-po) + [4.68266 2.81686 6.47693 5.1585 4.68264 5.1585 3.29746 4.20266 4.68266 ] pdfxs + (i) show + (n) + [5.1585 ] pdfxs + (t) show + (er\feldsoccurbe) + [4.25804 8.04102 5.1585 4.25801 2.33688 4.68264 7.86219 4.20266 3.77813 4.25806 4.92056 + 7.9211 3.77813 4.25806 ] pdfxs + (f) show + (oreanypo) + [4.68269 3.42115 8.27813 4.68264 5.15848 8.57581 4.20266 4.68264 ] pdfxs + (i) show + (n) + [5.15848 ] pdfxs + (t) show + (er\felds) + [4.25801 8.04102 5.15848 4.25806 2.33683 4.68264 3.78222 ] pdfxs + 528.78 585.781 m + /N17 8.96638 Tf + (.This) + [9.1757 6.65759 5.10017 2.57562 3.65647 ] pdfxs + 316.8 575.341 m + (wouldensurethatthe\feldo\013setforeverynon-pointer\feld) + [6.4175 4.62109 5.10017 2.57567 7.98025 4.0785 5.10017 3.65642 5.10017 3.59993 7.01866 + 3.60273 5.10017 4.62109 6.42258 3.60273 5.10017 7.01842 5.10017 4.07845 2.57567 7.97999 + 4.62114 5.40425 3.65642 4.0785 6.42283 2.81965 4.62109 6.47986 4.07845 4.61624 4.07845 + 3.59993 7.79632 5.10017 4.62114 5.10017 3.06367 5.34011 4.62114 2.57562 4.86033 3.60276 + 4.07845 6.53986 5.10017 4.07845 2.57567 5.10017 ] pdfxs + 316.8 564.841 m + (isa\fxedcompile-timeconstant\(e.g.,theo\013setwas0for) + [2.57567 7.49651 8.46125 5.10017 4.85621 4.07848 9.06017 4.08197 4.62109 7.67579 5.10017 + 2.57567 2.57564 4.0785 3.06375 3.60273 2.57564 7.67579 7.91863 4.08192 4.62114 5.10017 + 3.65647 3.60276 4.62109 4.86003 7.4426 3.60276 4.07845 2.57567 4.62109 2.57567 6.59578 + 3.60276 5.10017 7.97855 4.62114 5.40425 3.65642 4.0785 7.44274 6.4175 4.62114 7.43659 + 8.46128 2.81965 4.62109 3.59993 ] pdfxs + 316.8 554.401 m + /N15 8.96638 Tf + (L->X) + [4.67995 4.67995 4.67993 4.67995 ] pdfxs + 338.7 554.401 m + /N17 8.96638 Tf + (above\).) + [4.62109 5.34033 4.38118 4.61612 4.0785 3.60273 2.57567 ] pdfxs + Q + n + 3175 5395 2379 4.19922 re + f + n + 3173 5315 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 322.8 533.94 m + /N33 6.97377 Tf + (OriginalStatementTransformedStatement) + [6.12002 3.11698 2.2771 3.95687 2.2771 4.38026 3.95687 4.91698 4.38029 3.11698 3.95687 + 3.11698 3.54035 6.53649 3.54037 4.14013 43.3766 5.03648 3.11698 3.95685 4.38031 3.18292 + 2.45888 3.9569 3.11694 6.53654 3.54035 7.14023 4.38026 3.11698 3.9569 3.11694 3.5404 + 6.53649 3.54035 4.14013 3.11698 ] pdfxs + Q + n + 5551 5315 4.19922 79.8008 re + f + n + 3175 5311 2379 4.19922 re + f + n + 3173 5230 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 322.8 525.36 m + /N55 6.97377 Tf + (P) show + 331.62 525.36 m + /N33 6.97377 Tf + (=null) + [8.81991 4.14013 4.38029 2.2771 2.27707 ] pdfxs + 410.819 525.36 m + /N57 6.97377 Tf + (\)) show + 429.539 525.36 m + /N55 6.97377 Tf + (P) show + 435.72 528.36 m + /N59 4.98122 Tf + (0) show + 441.06 525.36 m + /N33 6.97377 Tf + (=0) + [8.81991 3.9569 ] pdfxs + Q + n + 5551 5230 4.19922 82.1992 re + f + n + 3173 5148 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 322.8 517.2 m + /N55 6.97377 Tf + (P) show + 327.9 516.18 m + /N61 4.98122 Tf + (1) show + 334.44 517.2 m + /N33 6.97377 Tf + (=) show + 343.26 517.2 m + /N55 6.97377 Tf + (P) show + 348.36 516.18 m + /N61 4.98122 Tf + (2) show + 410.82 517.2 m + /N57 6.97377 Tf + (\)) show + 429.54 517.2 m + /N55 6.97377 Tf + (P) show + 435.72 520.2 m + /N59 4.98122 Tf + (0) show + 434.64 515.22 m + /N61 4.98122 Tf + (1) show + 441.18 517.2 m + /N33 6.97377 Tf + (=) show + 450 517.2 m + /N55 6.97377 Tf + (P) show + 456.18 520.2 m + /N59 4.98122 Tf + (0) show + 455.1 515.22 m + /N61 4.98122 Tf + (2) show + Q + n + 5551 5148 4.19922 82.1992 re + f + n + 3173 5039 4.19922 109.199 re + f + q + 10 0 0 10 0 0 cm + 322.8 506.28 m + /N33 6.97377 Tf + (cc=) + [3.54035 6.24041 6.12002 ] pdfxs + 341.4 506.28 m + /N55 6.97377 Tf + (P) show + 346.5 505.26 m + /N61 4.98122 Tf + (1) show + 354.06 510.36 m + (?) show + 352.62 506.28 m + /N33 6.97377 Tf + (=) show + 361.02 506.28 m + /N55 6.97377 Tf + (P) show + 366.12 505.26 m + /N61 4.98122 Tf + (2) show + 410.82 506.28 m + /N57 6.97377 Tf + (\)) show + 429.54 506.28 m + /N33 6.97377 Tf + (cc=) + [3.54035 6.24041 6.12004 ] pdfxs + 448.14 506.28 m + /N55 6.97377 Tf + (P) show + 454.32 509.28 m + /N59 4.98122 Tf + (0) show + 453.24 504.3 m + /N61 4.98122 Tf + (1) show + 460.8 510.36 m + (?) show + 459.36 506.28 m + /N33 6.97377 Tf + (=) show + 467.7 506.28 m + /N55 6.97377 Tf + (P) show + 473.88 509.28 m + /N59 4.98122 Tf + (0) show + 472.8 504.3 m + /N61 4.98122 Tf + (2) show + Q + n + 5551 5039 4.19922 109.199 re + f + n + 3173 4959 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 322.8 498.3 m + /N55 6.97377 Tf + (P) show + 327.9 497.28 m + /N61 4.98122 Tf + (1) show + 334.44 498.3 m + /N33 6.97377 Tf + (=) show + 343.26 498.3 m + /N55 6.97377 Tf + (P) show + 348.36 497.28 m + /N61 4.98122 Tf + (2) show + 352.2 498.3 m + /N33 6.97377 Tf + (-) show + 354.9 498.3 m + /N55 6.97377 Tf + (>f) + [6.24094 4.67959 ] pdfxs + (ie) show + (ld) + [2.57807 4.1421 ] pdfxs + 410.82 498.3 m + /N57 6.97377 Tf + (\)) show + 429.539 498.3 m + /N33 6.97377 Tf + (char*Ptr=P) + [3.30036 4.38026 3.9569 5.87686 3.9569 5.34095 3.11698 5.81675 8.76014 5.34095 ] pdfxs + (D) show + (-) show + 488.099 498.3 m + /N55 6.97377 Tf + (>) show + 494.339 498.3 m + /N33 6.97377 Tf + (PoolBase) + [5.10096 4.19688 3.9569 2.27707 5.58261 3.95685 3.18297 3.54035 ] pdfxs + Q + n + 5551 4959 4.19922 79.8008 re + f + n + 3173 4879 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 429.54 490.32 m + /N33 6.97377 Tf + (if\(P) + [2.27707 5.1587 3.11698 5.34095 ] pdfxs + (D) show + (-) show + 454.14 490.32 m + /N55 6.97377 Tf + (>) show + 460.38 490.32 m + /N33 6.97377 Tf + (isComp\)) + [2.27707 3.18297 5.69663 3.9569 6.53649 4.38026 3.11698 ] pdfxs + 492.12 490.32 m + /N57 6.97377 Tf + (f) show + Q + n + 5551 4879 4.19922 79.8008 re + f + n + 3173 4798 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 437.88 482.16 m + /N33 6.97377 Tf + (Ptr+=) + [5.34095 3.11698 5.817 6.12004 6.11999 ] pdfxs + 467.1 482.16 m + /N55 6.97377 Tf + (P) show + 473.28 485.16 m + /N59 4.98122 Tf + (0) show + 472.2 480.18 m + /N61 4.98122 Tf + (2) show + 476.04 482.16 m + /N33 6.97377 Tf + (*newsizeof\() + [3.9569 4.38026 3.54035 5.69663 3.18297 2.27707 3.54035 3.5404 3.95685 2.45888 3.11698 + ] pdfxs + 515.7 482.16 m + /N55 6.97377 Tf + (pooltyp) + [4.08063 3.96071 3.96071 2.57807 3.00315 4.2575 4.08063 ] pdfxs + (e) show + 545.4 482.16 m + /N33 6.97377 Tf + (\)) show + Q + n + 5551 4798 4.19922 82.1992 re + f + n + 3173 4718 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 437.88 474.18 m + /N33 6.97377 Tf + (Ptr+=newo\013setof\() + [5.34095 3.11698 5.817 6.12004 8.81981 4.38026 3.5404 5.45669 3.9569 4.74282 3.18292 + 3.5404 3.11694 3.9569 2.45888 3.11694 ] pdfxs + 508.56 474.18 m + /N55 6.97377 Tf + (f) + [4.67974 ] pdfxs + (ie) show + (ld) + [2.57807 4.14208 ] pdfxs + 526.56 474.18 m + /N33 6.97377 Tf + (\)) show + Q + n + 5551 4718 4.19922 79.8008 re + f + n + 3173 4636 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 437.88 466.02 m + /N55 6.97377 Tf + (P) show + 444.06 469.02 m + /N59 4.98122 Tf + (0) show + 442.98 464.04 m + /N61 4.98122 Tf + (1) show + 449.52 466.02 m + /N33 6.97377 Tf + (=*\(int32) + [8.81991 3.9569 3.11694 2.27712 4.14027 3.11698 3.95685 3.9569 ] pdfxs + Q + n + 4834 4660 24 4.19922 re + f + q + 10 0 0 10 0 0 cm + 485.76 466.02 m + /N33 6.97377 Tf + (t*\)Ptr) + [3.11698 3.95685 3.11698 5.34095 3.11698 3.11694 ] pdfxs + Q + n + 5551 4636 4.19922 82.1992 re + f + n + 3173 4557 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 429.54 458.04 m + /N57 6.97377 Tf + (g) show + 436.32 458.04 m + /N33 6.97377 Tf + (else) + [3.54035 2.27712 3.18292 3.54035 ] pdfxs + 451.5 458.04 m + /N57 6.97377 Tf + (f) show + Q + n + 5551 4557 4.19922 79.8008 re + f + n + 3173 4475 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 437.88 449.88 m + /N33 6.97377 Tf + (Ptr+=) + [5.34095 3.11698 5.817 6.12004 6.11999 ] pdfxs + 467.1 449.88 m + /N55 6.97377 Tf + (P) show + 473.28 452.94 m + /N59 4.98122 Tf + (0) show + 472.2 447.9 m + /N61 4.98122 Tf + (2) show + 476.04 449.88 m + /N33 6.97377 Tf + (*oldsizeof\() + [3.9569 3.9569 2.27707 4.38026 3.18297 2.27707 3.54035 3.5404 3.95685 2.45888 3.11698 + ] pdfxs + 512.7 449.88 m + /N55 6.97377 Tf + (pooltyp) + [4.08063 3.96071 3.96071 2.57807 3.00315 4.2575 4.08063 ] pdfxs + (e) show + 542.4 449.88 m + /N33 6.97377 Tf + (\)) show + Q + n + 5551 4475 4.19922 82.1992 re + f + n + 3173 4396 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 437.88 441.96 m + /N33 6.97377 Tf + (Ptr+=oldo\013setof\() + [5.34095 3.11698 5.817 6.12004 8.81981 3.9569 2.27707 4.38031 3.95685 4.74287 3.18292 + 3.54035 3.11698 3.9569 2.45883 3.11698 ] pdfxs + 505.8 441.96 m + /N55 6.97377 Tf + (f) + [4.67974 ] pdfxs + (ie) show + (ld) + [2.57807 4.14208 ] pdfxs + 523.8 441.96 m + /N33 6.97377 Tf + (\)) show + Q + n + 5551 4396 4.19922 79.8008 re + f + n + 3173 4314 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 437.88 433.74 m + /N55 6.97377 Tf + (P) show + 444.06 436.8 m + /N59 4.98122 Tf + (0) show + 442.98 431.76 m + /N61 4.98122 Tf + (1) show + 449.52 433.74 m + /N33 6.97377 Tf + (=*\(int64) + [8.81991 3.9569 3.11694 2.27712 4.14027 3.11698 3.95685 3.9569 ] pdfxs + Q + n + 4834 4337 24 4.19922 re + f + q + 10 0 0 10 0 0 cm + 485.76 433.74 m + /N33 6.97377 Tf + (t*\)Ptr) + [3.11698 3.95685 3.11698 5.34095 3.11698 3.11694 ] pdfxs + Q + n + 5551 4314 4.19922 82.1992 re + f + n + 3173 4234 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 429.54 425.82 m + /N57 6.97377 Tf + (g) show + Q + n + 5551 4234 4.19922 79.8008 re + f + n + 3173 4154 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 322.8 417.84 m + /N55 6.97377 Tf + (\034V) + [4.44089 4.68271 ] pdfxs + 336.42 417.84 m + /N33 6.97377 Tf + (=) show + 345.18 417.84 m + /N55 6.97377 Tf + (P) show + 351.36 417.84 m + /N33 6.97377 Tf + (-) show + 354.06 417.84 m + /N55 6.97377 Tf + (>f) + [6.24094 4.67959 ] pdfxs + (ie) show + (ld) + [2.57807 4.1421 ] pdfxs + 410.82 417.84 m + /N57 6.97377 Tf + (\)) show + 429.54 417.84 m + /N33 6.97377 Tf + (char*Ptr=P) + [3.30036 4.38026 3.9569 5.87686 3.9569 5.34095 3.11698 5.81675 8.76014 5.34095 ] pdfxs + (D) show + (-) show + 488.1 417.84 m + /N55 6.97377 Tf + (>) show + 494.34 417.84 m + /N33 6.97377 Tf + (PoolBase) + [5.10096 4.19688 3.9569 2.27707 5.58261 3.95685 3.18297 3.54035 ] pdfxs + Q + n + 5551 4154 4.19922 79.8008 re + f + n + 3173 4075 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 429.54 409.86 m + /N33 6.97377 Tf + (if\(P) + [2.27707 5.1587 3.11698 5.34095 ] pdfxs + (D) show + (-) show + 454.14 409.86 m + /N55 6.97377 Tf + (>) show + 460.38 409.86 m + /N33 6.97377 Tf + (isComp\)) + [2.27707 3.18297 5.69663 3.9569 6.53649 4.38026 3.11698 ] pdfxs + 492.12 409.86 m + /N57 6.97377 Tf + (f) show + Q + n + 5551 4075 4.19922 79.8008 re + f + n + 3173 3993 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 437.88 401.7 m + /N33 6.97377 Tf + (Ptr+=) + [5.34095 3.11698 5.817 6.12004 6.11999 ] pdfxs + 467.1 401.7 m + /N55 6.97377 Tf + (P) show + 473.28 404.7 m + /N59 4.98122 Tf + (0) show + 475.92 401.7 m + /N33 6.97377 Tf + (*newsizeof\() + [3.9569 4.38026 3.54035 5.69663 3.18297 2.27707 3.54035 3.5404 3.95685 2.45888 3.11698 + ] pdfxs + 515.58 401.7 m + /N55 6.97377 Tf + (pooltyp) + [4.08063 3.96071 3.96071 2.57807 3.00315 4.2575 4.08063 ] pdfxs + (e) show + 545.28 401.7 m + /N33 6.97377 Tf + (\)) show + Q + n + 5551 3993 4.19922 82.1992 re + f + n + 3173 3913 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 437.88 393.72 m + /N33 6.97377 Tf + (Ptr+=newo\013setof\() + [5.34095 3.11698 5.817 6.12004 8.81981 4.38026 3.5404 5.45669 3.9569 4.74282 3.18292 + 3.5404 3.11694 3.9569 2.45888 3.11694 ] pdfxs + 508.56 393.72 m + /N55 6.97377 Tf + (f) + [4.67974 ] pdfxs + (ie) show + (ld) + [2.57807 4.14208 ] pdfxs + 526.56 393.72 m + /N33 6.97377 Tf + (\)) show + Q + n + 5551 3913 4.19922 79.8008 re + f + n + 3173 3833 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 429.54 385.74 m + /N57 6.97377 Tf + (g) show + 436.32 385.74 m + /N33 6.97377 Tf + (else) + [3.54035 2.27712 3.18292 3.54035 ] pdfxs + 451.5 385.74 m + /N57 6.97377 Tf + (f) show + Q + n + 5551 3833 4.19922 79.8008 re + f + n + 3173 3752 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 437.88 377.58 m + /N33 6.97377 Tf + (Ptr+=) + [5.34095 3.11698 5.817 6.12004 6.11999 ] pdfxs + 467.1 377.58 m + /N55 6.97377 Tf + (P) show + 473.28 380.58 m + /N59 4.98122 Tf + (0) show + 475.92 377.58 m + /N33 6.97377 Tf + (*oldsizeof\() + [3.9569 3.9569 2.27707 4.38026 3.18297 2.27707 3.54035 3.5404 3.95685 2.45888 3.11698 + ] pdfxs + 512.58 377.58 m + /N55 6.97377 Tf + (pooltyp) + [4.08063 3.96071 3.96071 2.57807 3.00315 4.2575 4.08063 ] pdfxs + (e) show + 542.28 377.58 m + /N33 6.97377 Tf + (\)) show + Q + n + 5551 3752 4.19922 82.1992 re + f + n + 3173 3672 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 437.88 369.6 m + /N33 6.97377 Tf + (Ptr+=oldo\013setof\() + [5.34095 3.11698 5.817 6.12004 8.81981 3.9569 2.27707 4.38031 3.95685 4.74287 3.18292 + 3.54035 3.11698 3.9569 2.45883 3.11698 ] pdfxs + 505.8 369.6 m + /N55 6.97377 Tf + (f) + [4.67974 ] pdfxs + (ie) show + (ld) + [2.57807 4.14208 ] pdfxs + 523.8 369.6 m + /N33 6.97377 Tf + (\)) show + Q + n + 5551 3672 4.19922 79.8008 re + f + n + 3173 3593 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 429.54 361.62 m + /N57 6.97377 Tf + (g) show + Q + n + 5551 3593 4.19922 79.8008 re + f + n + 3173 3513 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 429.54 353.7 m + /N55 6.97377 Tf + (V) show + 438.66 353.7 m + /N33 6.97377 Tf + (=*\() + [8.81991 3.9569 3.11694 ] pdfxs + 454.56 353.7 m + /N55 6.97377 Tf + (\034) show + 459 353.7 m + /N33 6.97377 Tf + (*\)Ptr) + [3.9569 3.11694 5.341 3.11694 3.11698 ] pdfxs + Q + n + 5551 3513 4.19922 79.8008 re + f + n + 3173 3433 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 322.8 345.72 m + /N55 6.97377 Tf + (P) show + 331.62 345.72 m + /N33 6.97377 Tf + (=poolalloc\(P) + [8.81991 4.6202 4.19686 3.95687 2.27707 3.95687 2.2771 2.2771 4.197 3.54035 3.11701 + 5.34098 ] pdfxs + (D) show + (,N\)) + [4.85722 5.87815 3.11698 ] pdfxs + 410.82 345.72 m + /N57 6.97377 Tf + (\)) show + 429.54 345.72 m + /N33 6.97377 Tf + (Tmp=N/OldSize) + [5.69663 6.53649 7.08017 8.81991 5.87812 3.9569 6.12004 2.27707 4.38031 4.38026 2.27707 + 3.5404 3.54035 ] pdfxs + Q + n + 5551 3433 4.19922 79.8008 re + f + n + 3173 3352 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 429.54 337.56 m + /N55 6.97377 Tf + (P) show + 435.72 340.56 m + /N59 4.98122 Tf + (0) show + 441.06 337.56 m + /N33 6.97377 Tf + (=poolalloc) + [8.81991 4.6202 4.19688 3.9569 2.27707 3.9569 2.27707 2.27712 4.19703 3.54035 ] pdfxs + Q + n + 4817 3376 24 4.19922 re + f + q + 10 0 0 10 0 0 cm + 483.96 337.56 m + /N33 6.97377 Tf + (pc\(P) + [4.6202 3.54035 3.11698 5.34095 ] pdfxs + (D) show + (,Tmp\)) + [4.97714 5.69663 6.53649 4.38031 3.11694 ] pdfxs + Q + n + 5551 3352 4.19922 82.1992 re + f + n + 3173 3270 4.19922 82.1992 re + f + q + 10 0 0 10 0 0 cm + 322.8 329.4 m + /N33 6.97377 Tf + (poolfree\(P) + [4.6202 4.19686 3.95687 2.27707 2.45885 3.11698 3.54037 3.54035 3.11698 5.34098 ] pdfxs + (D) show + (,) show + 369.9 329.4 m + /N55 6.97377 Tf + (P) show + 376.08 329.4 m + /N33 6.97377 Tf + (\)) show + 410.82 329.4 m + /N57 6.97377 Tf + (\)) show + 429.54 329.4 m + /N33 6.97377 Tf + (poolfree) + [4.6202 4.19688 3.9569 2.27707 2.45888 3.11698 3.54035 3.54035 ] pdfxs + Q + n + 4577 3294 24 4.19922 re + f + q + 10 0 0 10 0 0 cm + 460.08 329.4 m + /N33 6.97377 Tf + (pc\(P) + [4.6202 3.54035 3.11698 5.34095 ] pdfxs + (D) show + (,) show + 487.68 329.4 m + /N55 6.97377 Tf + (P) show + 493.86 332.4 m + /N59 4.98122 Tf + (0) show + 496.5 329.4 m + /N33 6.97377 Tf + (\)) show + Q + n + 5551 3270 4.19922 82.1992 re + f + n + 3173 3190 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 322.8 321.42 m + /N33 6.97377 Tf + (poolinit\(P) + [4.6202 4.19686 3.95687 2.27707 2.2771 4.38029 2.2771 3.11698 3.11698 5.34098 ] pdfxs + (D) show + (,Size\)) + [4.91715 4.38029 2.2771 3.54035 3.54035 3.11701 ] pdfxs + 410.82 321.42 m + /N57 6.97377 Tf + (\)) show + 429.54 321.42 m + /N33 6.97377 Tf + (poolinit) + [4.6202 4.19688 3.9569 2.27707 2.27712 4.38026 2.27707 3.11698 ] pdfxs + Q + n + 4571 3214 24 4.19922 re + f + q + 10 0 0 10 0 0 cm + 459.48 321.42 m + /N33 6.97377 Tf + (pc\(P) + [4.6202 3.54035 3.11698 5.34095 ] pdfxs + (D) show + (,&Type) + [4.91698 6.12004 5.45669 4.19861 4.6202 3.54035 ] pdfxs + (D) show + (esc,) + [3.54035 3.18297 3.54035 2.27707 ] pdfxs + Q + n + 5551 3190 4.19922 79.8008 re + f + n + 3173 3110 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 470.52 313.44 m + /N55 6.97377 Tf + (PD) + [6.17771 6.53947 ] pdfxs + 483.24 312.42 m + /N61 4.98122 Tf + (1) show + 487.02 313.44 m + /N33 6.97377 Tf + (,) show + 492 313.44 m + /N55 6.97377 Tf + (PD) + [6.17771 6.53947 ] pdfxs + 504.72 312.42 m + /N61 4.98122 Tf + (2) show + 508.56 313.44 m + /N33 6.97377 Tf + (,...,NULL\)) + [4.91698 2.27707 2.27712 2.27707 4.85707 5.87812 5.87817 4.91743 4.91748 3.11698 ] pdfxs + Q + n + 5551 3110 4.19922 79.8008 re + f + n + 3173 3031 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 322.8 305.46 m + /N33 6.97377 Tf + (pooldestroy\(P) + [4.6202 4.19686 3.95687 2.27707 4.38029 3.54037 3.18289 3.11701 3.11698 3.71686 4.19861 + 3.11698 5.341 ] pdfxs + (D) show + (\)) show + 410.82 305.46 m + /N57 6.97377 Tf + (\)) show + 429.54 305.46 m + /N33 6.97377 Tf + (pooldestroy) + [4.6202 4.19688 3.9569 2.27707 4.38031 3.54035 3.18292 3.11698 3.11694 3.71691 4.19861 + ] pdfxs + Q + n + 4703 3055 24 4.19922 re + f + q + 10 0 0 10 0 0 cm + 472.68 305.46 m + /N33 6.97377 Tf + (pc\(P) + [4.6202 3.54035 3.11698 5.34095 ] pdfxs + (D) show + (\)) show + Q + n + 5551 3031 4.19922 79.8008 re + f + n + 3175 3027 2379 4.19922 re + f + q + 10 0 0 10 0 0 cm + 328.38 291.72 m + /N23 8.96638 Tf + (Figure11:Dyn) + [6.66309 2.94267 5.28303 5.87642 4.37907 8.46026 5.28303 5.28303 7.6825 8.10334 5.58424 + 5.87644 ] pdfxs + (a) show + (micpointercompressionrules) + [8.81906 2.94267 8.40084 6.17649 5.28301 2.94272 5.57639 4.13846 4.86029 7.91901 4.74074 + 5.28306 8.81906 5.87644 4.37907 4.86029 4.2022 4.2022 2.94267 5.28301 9.47658 4.37907 + 5.87644 2.94267 4.86029 4.2022 ] pdfxs + 316.8 275.94 m + /N9 11.9552 Tf + (4.2DynamicCompressionRuntimeLibrary) + [6 3 17.9398 8.63981 6 6.66002 6 9.9599 3.30001 8.21991 8.63981 + 6 9.95995 6.66002 5.03981 5.2798 4.67992 4.67987 3.30001 6 9.59987 8.63981 + 6.66002 6.66002 3.95994 3.30001 9.9599 8.33976 7.97987 3.30001 6.66002 5.27985 6 + 5.2798 6 ] pdfxs + 325.8 262.98 m + /N17 8.96638 Tf + (Thedynamicpointercompressionruntimelibraryissig-) + [6.65759 5.10017 7.55841 5.10017 4.85621 5.10017 4.62109 7.67579 2.57564 7.56197 5.34001 + 4.62109 2.57567 4.86033 3.60273 4.0785 7.08005 4.08192 4.62114 7.67525 5.10017 3.59993 + 4.0785 3.65647 3.65642 2.57567 4.62109 8.58034 3.59993 5.10017 4.86033 3.60276 2.57562 + 7.67579 7.55838 2.57562 2.57567 5.10017 3.59993 4.62109 3.59993 8.2764 2.57562 7.07664 + 3.65647 2.57562 4.62114 3.06372 ] pdfxs + 316.8 252.54 m + (ni\fcantlydi\013erentfromthelibraryforthestaticcase.Wh) + [5.10017 2.57567 5.10017 4.08197 4.62109 4.86001 3.60273 2.57567 7.07635 5.10017 2.57567 + 5.40425 4.0785 3.59993 4.07848 4.86018 5.76288 2.81963 3.59993 4.62109 9.83584 3.60276 + 5.10017 6.29847 2.57562 2.57567 5.10017 3.59993 4.62109 3.59993 7.01624 2.81965 4.62109 + 5.75993 3.60276 5.10017 6.29847 3.65647 3.60276 4.62109 3.60276 2.57567 6.18177 4.08192 + 4.62114 3.65647 4.07845 6.35564 9.47856 5.10017 ] pdfxs + (e) show + 550.74 252.54 m + (n) show + 316.8 242.04 m + (apool) + [8.04093 5.34001 4.86126 4.62109 2.57567 ] pdfxs + 345.66 242.04 m + /N31 8.96638 Tf + (P) show + 356.28 242.04 m + /N17 8.96638 Tf + (growsbeyondthe2) + [4.62109 3.59993 4.3811 6.65759 7.0165 5.34001 4.0785 4.6162 4.62109 5.10017 8.58014 + 3.60276 5.10017 7.55862 4.62114 ] pdfxs + 435.78 245.88 m + /N29 5.97748 Tf + (k) show + 443.76 242.04 m + /N17 8.96638 Tf + (limit,therun-timemustbe) + [2.57562 2.57567 7.67525 2.57567 3.60276 5.99553 3.60276 5.10017 7.49847 3.59993 5.10017 + 5.10017 3.06372 3.60276 2.57562 7.67579 7.55853 7.43511 5.10017 3.65647 6.96267 5.34001 + 4.07845 ] pdfxs + 316.8 231.6 m + (ableto\fndandexpand\(0-extend\)allindicesinallsource) + [4.62109 5.10017 2.57567 7.4985 3.60273 8.04093 5.10017 5.10017 8.58024 4.62109 5.10017 + 8.52001 4.0785 4.85619 5.10017 4.62112 5.10017 8.58 3.60276 4.62114 3.06367 4.0785 + 4.85623 3.60276 4.07845 5.10017 5.10017 7.08283 4.62114 2.57562 5.93547 2.57562 5.10017 + 5.10017 2.57567 4.08192 4.0785 7.07644 2.57562 8.52018 4.62114 2.57562 5.93547 3.65647 + 4.62109 5.10017 3.59993 4.08197 4.07845 ] pdfxs + 316.8 221.16 m + (poolspointingtothispool.Thisrequiresknowingwhich) + [5.34001 4.86126 4.62109 2.57567 7.73628 5.34001 4.62109 2.57567 4.86033 3.60273 2.57567 + 5.10017 8.64101 3.60273 8.70109 3.60273 5.10017 2.57567 7.67659 5.34001 4.86128 4.62114 + 2.57562 9.65578 6.65759 5.10017 2.57562 7.67639 3.59993 4.07845 4.85623 5.10017 2.57567 + 3.59993 4.07845 7.79646 4.85623 5.10017 4.38096 6.65759 2.57562 5.10017 8.64121 6.65759 + 5.10017 2.57562 3.84203 5.10017 ] pdfxs + 316.8 210.66 m + (sourcepoolspointtopool) + [3.65645 4.62109 5.10017 3.59993 4.08197 8.4584 5.34001 4.86126 4.62109 2.57567 7.97651 + 5.34001 4.62109 2.57567 4.86033 7.98281 3.60273 8.94093 5.34001 4.86128 4.62114 2.57562 + ] pdfxs + 431.34 210.66 m + /N31 8.96638 Tf + (P) show + 438.48 210.66 m + /N17 8.96638 Tf + (,andwherethepointerslie) + [7.25578 4.62114 5.10017 9.48014 6.65759 5.10017 4.07845 3.59993 8.45848 3.60276 5.10017 + 8.45862 5.34001 4.62114 2.57562 4.86033 3.60276 4.07845 3.59993 8.0364 2.57562 2.57567 + 4.07845 ] pdfxs + 316.8 200.22 m + (withinobjectsinthesesourcepools.) + [6.65759 2.57564 3.60273 5.10017 2.57567 8.16024 4.62109 5.64033 2.81963 4.0785 4.08197 + 3.60273 6.71643 2.57567 8.16 3.60273 5.10017 4.0785 3.65642 7.13859 3.65647 4.62109 + 5.10017 3.59993 4.08197 7.19862 5.34001 4.86128 4.62114 2.57562 3.65647 2.57562 ] pdfxs + 325.8 189.78 m + (Tosupporttheseoperations,the) + [5.87766 7.38117 3.65645 5.10017 5.10017 5.34016 4.62109 3.59993 6.42258 3.60273 5.10017 + 4.0785 3.65642 6.89835 4.62109 5.34033 4.07845 3.59993 4.62114 3.60276 2.57562 4.62114 + 5.10017 3.65647 5.39578 3.60276 5.10017 4.07845 ] pdfxs + 459.12 189.78 m + /N15 8.96638 Tf + (poolinit) + [4.6799 4.67995 4.6799 4.67995 4.6799 4.6799 4.67995 4.6799 ] pdfxs + 499.56 189.78 m + /N17 8.96638 Tf + (functiontakes) + [2.81965 5.10017 5.10017 4.08192 3.60276 2.57562 4.62114 7.92009 3.60276 4.62114 4.61605 + 4.07845 3.65647 ] pdfxs + 316.8 179.28 m + (staticinformationabouttheprogramtypeforeachpool) + [3.65645 3.60273 4.62109 3.60273 2.57567 8.5818 2.57567 5.10017 2.81963 4.62109 3.59993 + 7.67579 4.62109 3.60273 2.57567 4.62109 9.60009 4.62109 5.34033 4.62109 5.10017 8.16281 + 3.60276 5.10017 8.69847 5.10017 3.59993 4.62114 4.62109 3.59993 4.62114 12.1751 3.36292 + 4.85623 5.34016 8.69847 2.81965 4.62109 8.15993 4.07845 4.62114 3.84179 9.66032 5.34001 + 4.86128 4.62114 2.57562 ] pdfxs + 316.8 168.84 m + (\(thistypeisuniquesinceweonlyoperateonTHpools\),) + [3.60273 3.60273 5.10017 2.57567 7.85627 3.36289 4.85621 5.34016 8.33833 2.57567 7.7965 + 5.10017 5.10017 2.57567 4.85619 5.10017 8.39834 3.65645 2.57564 5.10017 4.08197 8.27845 + 6.4175 8.33831 4.62114 5.10017 2.57562 9.05638 4.62114 5.34031 4.07845 3.59993 4.62114 + 3.60276 8.33831 4.62114 9.36022 6.65759 11.103 5.34001 4.86128 4.62114 2.57562 3.65647 + 3.60276 2.57562 ] pdfxs + 316.8 158.4 m + (andisenhancedtobuilda) + [4.62109 5.10017 8.34033 2.57567 6.83635 4.0785 5.10017 5.10017 4.62109 5.10017 4.08197 + 4.07848 8.4601 3.60273 7.80109 5.10017 5.10017 2.57567 2.57567 8.28 4.62114 ] pdfxs + 427.8 158.4 m + /N19 8.96638 Tf + (run) + [3.90108 4.92061 8.57844 ] pdfxs + (ti) show + (mepoolpo) + [7.50429 7.67822 4.20266 4.20266 4.68264 5.87701 4.20266 4.68264 ] pdfxs + (i) show + (n) + [5.15848 ] pdfxs + (t) show + (s-) + [3.78217 3.29749 ] pdfxs + (f) show + (romgraph) + [3.42091 4.68264 11.0442 4.25806 3.42115 4.68264 4.68269 4.68264 ] pdfxs + 316.8 147.9 m + /N17 8.96638 Tf + (fortheprogram.Thetypeinformationforapoolconsistsof) + [2.81963 4.62109 6.17985 3.60273 5.10017 6.65865 5.10017 3.59993 4.62109 4.62109 3.59993 + 4.62112 7.67576 6.47559 6.65759 5.10017 6.71856 3.36289 4.85623 5.34016 6.65862 2.57562 + 5.10017 2.81965 4.62114 3.59993 7.67525 4.62114 3.60276 2.57562 4.62114 7.61999 2.81965 + 4.62109 6.17985 7.20112 5.34001 4.86128 4.62114 5.1557 4.08192 4.62114 5.10017 3.65647 + 2.57562 3.65647 3.60276 6.17654 4.62114 2.8196 ] pdfxs + 316.8 137.46 m + (thetypesizeandtheo\013setofeachpointer\feldinthetype.) + [3.60273 5.10017 6.95865 3.36289 4.85621 5.34016 6.89849 3.65645 2.57564 4.08197 6.89842 + 4.62109 5.10017 7.98017 3.60273 5.10017 6.89849 4.62109 5.40425 3.65642 4.0785 6.36266 + 4.62114 5.63976 4.07845 4.62114 3.84179 7.98025 5.34001 4.62114 2.57562 4.86033 3.60276 + 4.07845 6.41995 5.10017 4.07845 2.57567 7.97999 2.57562 7.92019 3.60276 5.10017 6.89847 + 3.36292 4.85623 5.34016 4.07845 2.57567 ] pdfxs + 325.8 127.02 m + (Theruntimepoolpoints-fromgraphhasanodeforeach) + [6.65759 5.10017 7.07847 3.59993 5.10017 8.10016 3.60273 2.57567 7.67579 7.01856 5.34001 + 4.86126 4.62109 5.57566 5.34001 4.62114 2.57562 4.86033 3.60276 3.65647 3.06372 2.8196 + 3.59993 4.62114 10.6153 4.62114 3.59993 4.62109 5.10017 8.10016 5.10017 4.62114 6.59636 + 7.62114 5.10017 4.86128 5.10017 7.07845 2.81965 4.62109 6.59992 4.07845 4.62114 3.84179 + 5.10017 ] pdfxs + 316.8 116.52 m + (poolandanedge) + [5.34001 4.86126 4.62109 6.53582 4.62109 5.10017 9.06025 4.62109 9.00009 4.0785 5.10017 + 4.62109 4.0785 ] pdfxs + 392.4 116.52 m + /N31 8.96638 Tf + (P) show + 398.28 115.5 m + /N21 5.97748 Tf + (2) show + 406.439 116.52 m + /N13 8.96638 Tf + (!) show + 419.639 116.52 m + /N31 8.96638 Tf + (P) show + 425.519 115.5 m + /N21 5.97748 Tf + (1) show + 429.66 116.52 m + /N17 8.96638 Tf + (,ifthereisanedge) + [6.71555 2.57562 6.71965 3.60276 5.10017 4.07845 3.59993 8.03841 2.57562 7.49655 4.62114 + 9.06022 4.07845 5.10017 4.62114 4.07845 ] pdfxs + 515.699 116.52 m + /N31 8.96638 Tf + (N) show + 523.079 115.5 m + /N21 5.97748 Tf + (1) show + 531.179 116.52 m + /N13 8.96638 Tf + (!) show + 544.379 116.52 m + /N31 8.96638 Tf + (N) show + 551.759 115.5 m + /N21 5.97748 Tf + (2) show + 316.799 106.08 m + /N17 8.96638 Tf + (inthecompiler'spoints-tograph,where) + [2.57567 10.1401 3.60273 5.10017 9.11842 4.08197 4.62109 7.67579 5.10017 2.57567 2.57564 + 4.0785 3.59993 2.57567 8.69643 5.34001 4.62109 2.57567 4.86033 3.60276 3.65647 3.06372 + 3.60276 9.60102 4.62114 3.59993 4.62109 5.10017 5.10017 8.09549 6.65759 5.10017 4.07845 + 3.59993 4.0785 ] pdfxs + 493.559 106.08 m + /N31 8.96638 Tf + (P) show + 499.439 105.06 m + /N21 5.97748 Tf + (1) show + 508.68 106.08 m + /N17 8.96638 Tf + (and) + [4.62114 5.10017 5.10017 ] pdfxs + 528.54 106.08 m + /N31 8.96638 Tf + (P) show + 534.419 105.06 m + /N21 5.97748 Tf + (2) show + 543.599 106.08 m + /N17 8.96638 Tf + (are) + [4.62114 3.59993 4.07845 ] pdfxs + 316.799 95.6396 m + (thepoolsfornodes) + [3.60273 5.10017 9.11842 5.34001 4.86126 4.62109 2.57567 8.63628 2.81963 4.62109 8.64001 + 5.10017 4.86126 5.10017 4.0785 3.65642 ] pdfxs + 404.58 95.6396 m + /N31 8.96638 Tf + (N) show + 411.96 94.6197 m + /N21 5.97748 Tf + (1) show + 421.08 95.6396 m + /N17 8.96638 Tf + (and) + [4.62114 5.10017 5.10017 ] pdfxs + 440.94 95.6396 m + /N31 8.96638 Tf + (N) show + 448.319 94.6197 m + /N21 5.97748 Tf + (2) show + 452.46 95.6396 m + /N17 8.96638 Tf + (.Anexamplepoints-to) + [12.4757 6.90289 10.14 4.07845 4.85623 4.62114 7.67525 5.10017 2.57567 9.11829 5.34001 + 4.62114 2.57562 4.86033 3.60276 3.65647 3.06372 3.60276 4.62109 ] pdfxs + 316.8 85.1396 m + (graphandtherun-timepoints-fromgraphareshownin) + [4.62109 3.59993 4.62109 5.10017 10.0203 4.62109 5.10017 10.02 3.60273 5.10017 8.99849 + 3.59993 5.10017 5.10017 3.06375 3.60271 2.57567 7.67579 9.05852 5.34001 4.62114 2.57562 + 4.86033 3.60276 3.65647 3.06372 2.8196 3.59993 4.62114 12.5353 4.62114 3.59993 4.62109 + 5.10017 10.0203 4.62114 3.59993 8.99837 3.65647 5.10017 4.38096 6.65759 9.96008 2.57562 + 5.10017 ] pdfxs + 316.8 74.6995 m + (Figure12\(b\).When) + [6.00162 2.57567 4.62109 5.10017 3.59993 8.45865 4.62109 4.62109 3.60273 5.10017 3.60273 + 10.4955 9.47858 5.10017 4.0785 5.10017 ] pdfxs + 407.339 74.6995 m + /N15 8.96638 Tf + (poolinit) + [4.6799 4.67995 4.6799 4.67995 4.6799 4.6799 4.67995 4.6799 ] pdfxs + Q + n + 4453 747 28.8008 4.19922 re + f + q + 10 0 0 10 0 0 cm + 448.38 74.7 m + /N15 8.96638 Tf + (pc) + [4.6799 4.67995 ] pdfxs + 462.18 74.7 m + /N17 8.96638 Tf + (iscalledtoinitializea) + [2.57562 7.91647 4.08192 4.62114 2.57562 2.57567 4.07845 9.4801 3.60276 8.94096 2.57562 + 5.10017 2.57567 3.60276 2.57562 4.62114 2.57562 2.57567 4.08192 8.33831 4.62114 ] pdfxs + Q + Q + PDFVars/TermAll get exec end end + userdict /pgsave get restore + showpage + %%PageTrailer + %%EndPage + %%Page: 8 8 + %%BeginPageSetup + userdict /pgsave save put + PDFVars begin PDF begin PDFVars/InitAll get exec + 0 0 612 792 true PDF begin PDFVars begin AS end end + %%EndPageSetup + 0 0 612 792 re + W + n + q + 0.0999908 0 0 0.0999908 0 0 cm + q + n + 905.398 6301.8 m + 1538.63 6301.8 l + 1538.63 7381.8 l + 905.398 7381.8 l + h + W + n + 3.8848 w + 1 M + n + 1336.62 7276.9 m + 1336.62 7315.52 1289.65 7346.83 1231.73 7346.83 c + 1173.8 7346.83 1126.84 7315.52 1126.84 7276.9 c + 1126.84 7238.28 1173.8 7206.97 1231.73 7206.97 c + 1289.65 7206.97 1336.62 7238.28 1336.62 7276.9 c + [/DeviceRGB] cs 0 0 0 sc + + S + q + 10 0 0 10 0 0 cm + 117.884 725.748 m + /N10 5.43881 Tf + (Root) + [3.62765 2.71941 2.71941 1.51199 ] pdfxs + Q + n + 1111.3 6911.72 m + 1352.16 6911.72 l + S + n + 1352.16 6911.72 m + 1375.47 6911.72 1398.78 6931.15 1398.78 6954.46 c + S + n + 1398.78 6954.46 m + 1398.78 7016.61 l + S + n + 1398.78 7016.61 m + 1398.78 7039.93 1375.47 7067.12 1352.16 7067.12 c + S + n + 1352.16 7067.12 m + 1111.3 7067.12 l + S + n + 1111.3 7067.12 m + 1087.98 7067.12 1068.56 7043.81 1068.56 7020.5 c + S + n + 1068.56 7020.5 m + 1068.56 6958.34 l + S + n + 1068.56 6958.34 m + 1068.56 6935.03 1087.98 6911.72 1111.3 6911.72 c + S + q + 10 0 0 10 0 0 cm + 110.858 700.884 m + /N10 5.43881 Tf + (list1: HMR) + [1.51199 1.51199 2.11566 1.51199 2.71941 1.51199 1.3597 3.92674 4.83506 3.62765 ] pdfxs + Q + n + 1068.56 6989.42 m + 1398.78 6989.42 l + S + q + 10 0 0 10 0 0 cm + Q + n + 1231.73 6911.72 m + 1231.73 6989.42 l + S + q + 10 0 0 10 0 0 cm + Q + n + 1231.73 7187.55 m + 1231.73 7160.36 1231.73 7133.16 1231.73 7102.08 c + 0.630798 0.630798 0.630798 sc + S + n + 1243.38 7187.55 m + 1223.96 7187.55 l + S + n + 1243.38 7105.97 m + 1231.73 7067.12 l + 1223.96 7105.97 l + f + n + 1348.27 6911.72 m + 1383.24 6880.64 1429.86 6841.79 1464.82 6876.76 c + 1534.75 6946.69 1534.75 7028.27 1464.82 7102.08 c + 1429.86 7137.05 1383.24 7121.51 1340.5 7090.43 c + 0 0 0 sc + S + n + 1344.39 7082.66 m + 1309.43 7067.12 l + 1336.62 7098.2 l + f + n + 1021.94 6616.47 m + 1278.35 6616.47 l + S + n + 1278.35 6616.47 m + 1301.66 6616.47 1324.96 6635.89 1324.96 6659.2 c + S + n + 1324.96 6659.2 m + 1324.96 6721.36 l + S + n + 1324.96 6721.36 m + 1324.96 6744.67 1301.66 6771.87 1278.35 6771.87 c + S + n + 1278.35 6771.87 m + 1021.94 6771.87 l + S + n + 1021.94 6771.87 m + 998.633 6771.87 979.211 6748.56 979.211 6725.25 c + S + n + 979.211 6725.25 m + 979.211 6663.09 l + S + n + 979.211 6663.09 m + 979.211 6639.78 998.633 6616.47 1021.94 6616.47 c + S + q + 10 0 0 10 0 0 cm + 102.7 671.359 m + /N10 5.43881 Tf + (list2: HMR) + [1.51199 1.51199 2.11566 1.51199 2.71941 1.51199 1.3597 3.92674 4.83506 3.62765 ] pdfxs + Q + n + 979.211 6694.17 m + 1324.96 6694.17 l + S + q + 10 0 0 10 0 0 cm + Q + n + 1150.14 6616.47 m + 1150.14 6694.17 l + S + q + 10 0 0 10 0 0 cm + Q + n + 1150.14 6911.72 m + 1150.14 6888.41 1150.14 6849.57 1150.14 6814.6 c + S + n + 1161.8 6810.71 m + 1150.14 6771.87 l + 1142.38 6810.71 l + f + n + 1270.58 6616.47 m + 1305.54 6585.39 1356.04 6546.54 1391.01 6581.51 c + 1460.94 6651.43 1460.94 6733.02 1391.01 6806.83 c + 1352.16 6841.79 1301.66 6826.25 1258.92 6795.18 c + S + n + 1262.8 6787.41 m + 1227.84 6771.87 l + 1255.04 6802.95 l + f + n + 952.016 6336.76 m + 1169.57 6336.76 l + S + n + 1169.57 6336.76 m + 1196.76 6336.76 1220.07 6356.18 1220.07 6379.49 c + S + n + 1220.07 6379.49 m + 1220.07 6430 l + S + n + 1220.07 6430 m + 1220.07 6453.3 1196.76 6476.61 1173.45 6476.61 c + S + n + 1173.45 6476.61 m + 955.898 6476.61 l + S + n + 955.898 6476.61 m + 928.707 6476.61 909.281 6453.3 909.281 6430 c + S + n + 909.281 6430 m + 909.281 6379.49 l + S + n + 909.281 6379.49 m + 909.281 6356.18 928.707 6336.76 952.016 6336.76 c + S + q + 10 0 0 10 0 0 cm + 95.9664 638.726 m + /N10 5.43881 Tf + (int: HMR) + [1.51199 2.71941 1.51199 1.51199 1.3597 3.92674 4.83506 3.62765 ] pdfxs + Q + n + 1064.68 6616.47 m + 1064.68 6589.28 1064.68 6550.43 1064.68 6515.46 c + S + n + 1076.33 6515.46 m + 1064.68 6476.61 l + 1056.91 6515.46 l + f + Q + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 74.1602 619.74 m + /N17 8.96638 Tf + (\(a\)Compile-Time) + [3.60274 4.62111 30.5429 6.65758 4.62112 7.67576 5.10016 2.57565 2.57564 4.0785 3.06372 + 6.65758 2.57565 7.67576 4.0785 ] pdfxs + 74.1602 610.8 m + (PointsToGraph) + [6.05683 4.62111 2.57565 4.86031 3.60274 6.59644 5.87766 7.68118 7.25575 3.59993 4.62111 + 5.10016 5.10016 ] pdfxs + Q + q + n + 2009.39 6301.79 m + 2419.58 6301.79 l + 2419.58 7165.79 l + 2009.39 7165.79 l + h + W + n + 4.3636 w + 1 M + n + 2018.12 6341.07 314.184 157.09 re + [/DeviceRGB] cs 0 0 0 sc + + S + q + 10 0 0 10 0 0 cm + 206.065 639.779 m + /N10 6.10909 Tf + (list1 pool) + [1.69832 1.69832 2.37639 1.69832 3.05454 1.52727 3.05454 3.05454 3.05454 1.69832 ] pdfxs + Q + n + 2332.3 6362.88 m + 2375.94 6362.88 2410.85 6384.7 2410.85 6419.61 c + 2410.85 6441.43 2397.76 6458.88 2375.94 6467.61 c + S + n + 2371.57 6458.88 m + 2332.3 6476.34 l + 2375.94 6476.34 l + f + n + 2013.76 6655.25 327.273 157.094 re + S + q + 10 0 0 10 0 0 cm + 206.065 671.197 m + /N10 6.10909 Tf + (list2 pool) + [1.69832 1.69832 2.37639 1.69832 3.05454 1.52727 3.05454 3.05454 3.05454 1.69832 ] pdfxs + Q + n + 2175.21 6655.25 m + 2175.21 6620.34 2175.21 6581.07 2175.21 6541.79 c + S + n + 2188.3 6541.79 m + 2175.21 6498.16 l + 2166.48 6541.79 l + f + n + 2341.03 6677.07 m + 2384.67 6677.07 2415.21 6698.88 2415.21 6733.79 c + 2415.21 6755.61 2402.12 6773.07 2384.67 6781.79 c + S + n + 2380.3 6773.07 m + 2341.03 6790.52 l + 2384.67 6790.52 l + f + n + 2031.21 6969.43 288 157.09 re + S + q + 10 0 0 10 0 0 cm + 208.102 702.616 m + /N10 6.10909 Tf + (int pool) + [1.69832 3.05454 1.69832 1.52727 3.05454 3.05454 3.05454 1.69832 ] pdfxs + Q + n + 2175.21 6969.43 m + 2175.21 6934.52 2175.21 6895.25 2175.21 6855.97 c + S + n + 2188.3 6855.97 m + 2175.21 6812.34 l + 2166.48 6855.97 l + f + Q + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 173.34 619.74 m + /N17 8.96638 Tf + (\(b\)Run-TimePoolDe-) + [3.60275 5.10016 6.84259 6.77573 5.10015 5.10017 3.06372 6.65759 2.57567 7.67576 7.79866 + 6.05683 4.86126 4.62109 6.1155 7.0198 4.0785 3.06375 ] pdfxs + 173.34 610.8 m + (scriptorGraph) + [3.65645 4.08197 3.59993 2.57564 5.10016 3.60275 4.62112 6.65992 7.25576 3.59993 4.62109 + 5.10017 5.10017 ] pdfxs + 81.3002 597.3 m + /N23 8.96638 Tf + (Figure12:Dyn) + [6.66306 2.94269 5.28303 5.87643 4.37907 8.40011 5.28303 5.28302 7.74267 8.10333 5.58424 + 5.87643 ] pdfxs + (a) show + (micexp) + [8.81908 2.94267 8.34067 4.86027 5.58424 5.87643 ] pdfxs + (a) show + (nsionex) + [5.87642 4.2022 2.94269 5.28303 9.47658 4.86027 5.58422 ] pdfxs + (a) show + (mple) + [8.81908 5.87644 2.94267 4.86027 ] pdfxs + 53.8201 577.5 m + /N17 8.96638 Tf + (pooldescriptor\() + [5.34 4.86127 4.62111 6.17564 5.10016 4.07849 3.65644 4.08196 3.59992 2.57565 5.10016 + 3.60275 4.62111 7.26001 3.60275 ] pdfxs + 122.1 577.5 m + /N31 8.96638 Tf + (PD) + [7.13807 7.62453 ] pdfxs + 137.1 577.5 m + /N17 8.96638 Tf + (\),itispassedadditionalpooldescrip-) + [3.60275 6.29565 2.57565 7.20281 2.57565 7.25629 5.10016 4.62111 3.65645 3.65646 4.07849 + 8.76023 4.62111 5.10017 5.10017 2.57567 3.60273 2.57567 4.62109 5.10017 4.62109 6.1155 + 5.34001 4.86126 4.62109 6.23582 5.10017 4.0785 3.65642 4.08197 3.59993 2.57567 5.10017 + 3.06372 ] pdfxs + 53.8201 567 m + (torarguments\() + [3.60274 4.62111 7.26 4.62111 3.59993 4.62111 5.10016 7.67578 4.0785 4.86031 3.60275 + 7.37653 3.60275 ] pdfxs + 118.44 567 m + /N31 8.96638 Tf + (PD) + [7.13807 7.62453 ] pdfxs + 133.2 565.98 m + /N21 5.97748 Tf + (1) show + 138.9 567 m + /N31 8.96638 Tf + (:::PD) + [4.07573 4.07573 4.07573 7.13807 7.62453 ] pdfxs + 165.9 565.98 m + /N29 5.97748 Tf + (n) show + 171 567 m + /N17 8.96638 Tf + (\)forallthepoolstowhichit) + [7.32267 2.81964 4.62112 7.32007 4.62111 2.57565 6.23549 3.60273 5.10017 7.85865 5.34001 + 4.86126 4.62109 2.57567 7.31635 3.60273 8.34094 6.65759 5.10017 2.57564 3.84205 8.82008 + 2.57567 3.60273 ] pdfxs + 53.8202 556.56 m + (points.Itadds) + [5.34 4.62111 2.57565 4.86031 3.60274 3.65644 9.95556 3.30019 7.80274 4.62111 5.10016 + 5.10016 3.65645 ] pdfxs + 122.22 556.56 m + /N31 8.96638 Tf + (PD) + [7.13807 7.62453 ] pdfxs + 141.42 556.56 m + /N17 8.96638 Tf + (tothe\\points-from"listofeachde-) + [3.60275 8.76126 3.60275 5.10016 8.33833 4.62111 5.34032 4.62111 2.57565 4.86031 3.60275 + 3.65645 3.06372 2.81963 3.59993 4.62112 7.67576 8.70095 2.57567 2.57567 3.65642 7.74288 + 4.62109 7.01947 4.0785 4.62109 3.84181 9.30016 5.10017 4.0785 3.06372 ] pdfxs + 53.8202 546.12 m + (scriptor) + [3.65644 4.08196 3.59993 2.57565 5.10015 3.60274 4.62111 3.59993 ] pdfxs + 88.9202 546.12 m + /N31 8.96638 Tf + (PD) + [7.13807 7.62453 ] pdfxs + 103.68 545.1 m + /N21 5.97748 Tf + (1) show + 109.38 546.12 m + /N31 8.96638 Tf + (:::PD) + [4.07573 4.07573 4.13549 7.13807 7.62453 ] pdfxs + 136.44 545.1 m + /N29 5.97748 Tf + (n) show + 141.54 546.12 m + /N17 8.96638 Tf + (.Fortheexample,whenthe) + [10.3156 5.22153 4.62111 7.91977 3.60275 5.10016 8.45865 4.0785 4.85621 4.62111 7.67576 + 5.10017 2.57567 4.0785 7.19566 6.65759 5.10017 4.07848 9.42033 3.60273 5.10017 4.0785 + ] pdfxs + 269.34 546.12 m + /N15 8.96638 Tf + (list2) + [4.67995 4.67995 4.67993 4.67995 4.67995 ] pdfxs + 53.8202 535.62 m + /N17 8.96638 Tf + (pooldescriptorisinitialized,itispassedpointerstoth) + [5.34 4.86127 4.62111 7.1358 5.10016 4.07849 3.65644 4.08196 3.59992 2.57565 5.10016 + 3.60275 4.62111 8.21977 2.57565 8.15628 2.57565 5.10016 2.57564 3.60275 2.57565 4.62111 + 2.57565 2.57564 4.08197 4.07849 5.10016 7.49572 2.57565 8.10281 2.57565 8.21643 5.10016 + 4.62109 3.65645 3.65642 4.0785 9.66024 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 + 3.59993 8.21642 3.60273 9.18117 3.60273 5.10017 ] pdfxs + (e) show + 53.8202 525.18 m + /N15 8.96638 Tf + (int) + [4.67993 4.67993 4.67994 ] pdfxs + 71.5804 525.18 m + /N17 8.96638 Tf + (pooldescriptoranditself\(sincethe) + [5.34 4.86127 4.62111 6.29556 5.10016 4.07849 3.65645 4.08196 3.59993 2.57565 5.10016 + 3.60275 4.62111 7.26001 4.62111 5.10016 8.82 2.57565 3.60275 3.65645 4.07849 2.57565 + 6.47971 3.60275 3.65645 2.57565 5.10016 4.08196 7.73865 3.60273 5.10017 4.0785 ] pdfxs + 221.16 525.18 m + /N15 8.96638 Tf + (list2) + [4.67995 4.67995 4.67993 4.67995 4.67995 ] pdfxs + 248.34 525.18 m + /N17 8.96638 Tf + (nodehasa) + [5.10017 4.86126 5.10017 7.85865 5.10017 4.62109 7.31628 4.62109 ] pdfxs + 53.8204 514.74 m + (self-loop\),soitaddsitselftothepoints-fromlistsinbot) + [3.65644 4.07849 2.57565 2.81963 3.06373 2.57565 4.86096 4.62111 5.10016 3.60274 6.41549 + 3.65644 8.34111 2.57565 7.32274 4.62111 5.10016 5.10016 7.43661 2.57565 3.60275 3.65645 + 4.07849 2.57565 6.47971 3.60275 8.4011 3.60275 5.10016 7.85865 5.34 4.62111 2.57567 + 4.86033 3.60273 3.65645 3.06372 2.81963 3.59993 4.62112 11.3959 2.57567 2.57567 3.65642 + 3.60273 7.31628 2.57567 8.82016 5.34001 4.62109 3.5865 ] pdfxs + 287.76 514.74 m + (h) show + 53.8204 504.24 m + (pools.) + [5.34 4.86127 4.62111 2.57565 3.65644 2.57565 ] pdfxs + 85.1403 504.24 m + /N15 8.96638 Tf + (pooldestroy) + [4.67993 4.67993 4.67994 4.67993 4.67994 4.67994 4.67993 4.67994 4.67993 4.67994 4.67993 + ] pdfxs + Q + n + 1372 5042 28.8008 4.19922 re + [/DeviceGray] cs 0 sc + f + q + 10 0 0 10 0 0 cm + 140.28 504.24 m + /N15 8.96638 Tf + (pc) + [4.67994 4.67993 ] pdfxs + 149.64 504.24 m + /N17 8.96638 Tf + (\() show + 153.24 504.24 m + /N31 8.96638 Tf + (PD) + [7.13807 7.62453 ] pdfxs + 168.24 504.24 m + /N17 8.96638 Tf + (\)removesthe) + [7.92266 3.59993 4.0785 7.67576 4.38096 4.61614 4.0785 7.91643 3.60273 5.10017 4.0785 + ] pdfxs + 229.62 504.24 m + /N31 8.96638 Tf + (PD) + [7.13806 7.62453 ] pdfxs + 248.88 504.24 m + /N17 8.96638 Tf + (entryfrom) + [4.0785 4.86001 3.60273 3.59993 9.17627 2.81963 3.59993 4.62109 7.67579 ] pdfxs + 53.8206 493.8 m + /N31 8.96638 Tf + (PD) + [7.13807 7.62454 ] pdfxs + 68.5808 492.78 m + /N21 5.97748 Tf + (1) show + 74.2206 493.8 m + /N31 8.96638 Tf + (:::PD) + [4.13549 4.07573 4.07573 7.13807 7.62454 ] pdfxs + 101.281 492.78 m + /N29 5.97748 Tf + (n) show + 106.381 493.8 m + /N17 8.96638 Tf + (.Therun-timepoints-fromlistsarecreated) + [10.3757 6.65758 5.10016 8.39865 3.59993 5.10016 5.10016 3.06372 3.60275 2.57565 7.67576 + 8.45857 5.34 4.62111 2.57565 4.86031 3.60275 3.65645 3.06372 2.81963 3.59993 4.62112 + 11.9358 2.57567 2.57567 3.65642 3.60273 7.85651 4.62109 3.59993 8.39842 4.08197 3.59993 + 4.0785 4.62109 3.60273 4.0785 5.10015 ] pdfxs + 53.8206 483.36 m + (andemptiedinthismannerbecause,if) + [4.62111 5.10016 9.36023 4.07849 7.67578 5.10016 3.60274 2.57565 4.07849 9.36024 2.57565 + 9.35999 3.60275 5.10016 2.57564 7.85629 7.67578 4.62111 5.10016 5.10016 4.07849 7.85978 + 5.34 4.0785 4.08196 4.62112 5.10015 3.65646 4.07848 7.19558 2.57567 2.81963 ] pdfxs + 222.66 483.36 m + /N31 8.96638 Tf + (N) show + 230.04 482.34 m + /N21 5.97748 Tf + (1) show + 238.68 483.36 m + /N13 8.96638 Tf + (!) show + 252.42 483.36 m + /N31 8.96638 Tf + (N) show + 259.8 482.34 m + /N21 5.97748 Tf + (2) show + 268.2 483.36 m + /N17 8.96638 Tf + (inthe) + [2.57567 9.30023 3.60273 5.10017 4.0785 ] pdfxs + 53.82 472.86 m + (compiler'spoints-tograph,thenthelifetimeof) + [4.08196 4.62111 7.67578 5.10016 2.57565 2.57565 4.07849 3.59993 2.57565 6.83629 5.34 + 4.62111 2.57565 4.86031 3.60275 3.65645 3.06372 3.60275 7.80103 4.62111 3.59993 4.62112 + 5.10016 5.10016 5.87556 3.60275 5.10016 4.07849 8.40024 3.60275 5.10016 7.31841 2.57567 + 2.57567 2.81963 4.0785 3.60273 2.57564 7.67579 7.25857 4.62109 2.81963 ] pdfxs + 246.66 472.86 m + /N31 8.96638 Tf + (P) show + 252.54 471.84 m + /N21 5.97748 Tf + (1) show + 259.92 472.86 m + /N17 8.96638 Tf + (\(for) + [3.60273 2.81963 4.62109 3.59993 ] pdfxs + 277.8 472.86 m + /N31 8.96638 Tf + (N) show + 285.18 471.84 m + /N21 5.97748 Tf + (1) show + 289.32 472.86 m + /N17 8.96638 Tf + (\)) show + 53.82 462.42 m + (isproperlynestedwithinthelifetimeof) + [2.57565 6.65644 5.10016 3.59993 4.62111 5.34031 4.07849 3.59993 2.57565 7.97605 5.10016 + 4.0785 3.65645 3.60275 4.07849 8.22 6.65758 2.57565 3.60275 5.10016 2.57564 8.16024 + 3.60275 5.10016 7.13833 2.57565 2.57564 2.81965 4.07849 3.60275 2.57565 7.67576 7.13866 + 4.62109 2.81963 ] pdfxs + 216.78 462.42 m + /N31 8.96638 Tf + (P) show + 222.66 461.4 m + /N21 5.97748 Tf + (2) show + 229.86 462.42 m + /N17 8.96638 Tf + (\(for) + [3.60273 2.81963 4.62109 3.59993 ] pdfxs + 247.56 462.42 m + /N31 8.96638 Tf + (N) show + 254.94 461.4 m + /N21 5.97748 Tf + (2) show + 259.08 462.42 m + /N17 8.96638 Tf + (\).) + [3.60273 2.57567 ] pdfxs + 62.7602 451.92 m + (Atruntime,ifthe2) + [6.66305 6.48281 3.59993 5.10016 8.10015 3.60274 2.57565 7.67578 4.0785 5.45565 2.57565 + 5.69971 3.60275 5.10016 7.01842 4.62111 ] pdfxs + 144.72 455.76 m + /N29 5.97748 Tf + (k) show + 149.28 451.92 m + /N31 8.96638 Tf + (th) + [3.29879 5.27816 ] pdfxs + 160.86 451.92 m + /N17 8.96638 Tf + (nodeisallocatedfromapool,) + [5.10016 4.86127 5.10016 7.0785 2.57565 6.53637 4.62111 2.57565 2.57565 4.86094 4.08197 + 4.62109 3.60273 4.0785 7.98032 2.81963 3.59993 4.62109 10.5558 7.56125 5.34001 4.86126 + 4.62109 2.57567 2.57567 ] pdfxs + 283.2 451.92 m + /N31 8.96638 Tf + (P) show + 290.34 451.92 m + /N17 8.96638 Tf + (,) show + 53.82 441.48 m + (the\\points-from"listin) + [3.60274 5.10016 7.85864 4.62111 5.34031 4.62111 2.57565 4.86031 3.60274 3.65644 3.06372 + 2.81965 3.59993 4.62111 7.67578 8.34118 2.57565 2.57564 3.65645 7.26282 2.57565 5.10016 + ] pdfxs + 157.321 441.48 m + /N31 8.96638 Tf + (P) show + 168.241 441.48 m + /N17 8.96638 Tf + (istraversed,decompressingall) + [2.57565 7.3766 3.60275 3.59993 4.38119 4.61614 4.0785 3.59993 3.65642 4.0785 5.10017 + 6.47566 5.10017 4.0785 4.08197 4.62109 7.67579 5.10015 3.59993 4.0785 3.65645 3.65642 + 2.57567 5.10017 8.4611 4.62109 2.57567 2.57567 ] pdfxs + 53.8199 431.04 m + (thepointersineachpoolinthelist.Forexample,inFig-) + [3.60274 5.10016 7.73833 5.34 4.62111 2.57565 4.86031 3.60274 4.07849 3.59993 7.31644 + 2.57565 8.82014 4.0785 4.62111 3.84181 8.82007 5.34 4.86127 4.62111 6.2358 2.57565 + 8.75999 3.60275 5.10016 7.79849 2.57565 2.57564 3.65645 3.60275 8.39556 5.22155 4.62109 + 7.26001 4.0785 4.85619 4.62112 7.67576 5.10017 2.57567 4.0785 6.41558 2.57567 8.82016 + 6.00162 2.57567 4.62109 3.06375 ] pdfxs + 53.8199 420.54 m + (ure12,whenthe2) + [5.10016 3.59993 7.79848 4.62111 4.62111 6.35564 6.65758 5.10016 4.07849 8.88008 3.60275 + 5.10016 7.79849 4.62111 ] pdfxs + 131.76 424.38 m + /N29 5.97748 Tf + (k) show + 136.32 420.54 m + /N31 8.96638 Tf + (th) + [3.29879 5.27816 ] pdfxs + 148.68 420.54 m + /N17 8.96638 Tf + (nodeisallocatedfromthe\\) + [5.10016 4.86127 5.10016 7.79849 2.57565 7.31644 4.62111 2.57565 2.57565 4.86095 4.08197 + 4.62111 3.60273 4.0785 8.76 2.81963 3.59993 4.62109 11.3956 3.60273 5.10017 7.79849 + 4.62109 ] pdfxs + 264.78 420.54 m + /N15 8.96638 Tf + (list2) + [4.67995 4.67995 4.67993 4.67995 4.67995 ] pdfxs + 288.18 420.54 m + /N17 8.96638 Tf + (") show + 53.82 410.1 m + (pool,boththe) + [5.34 4.86127 4.62111 2.57565 6.11556 5.34 4.62111 3.60274 8.64031 3.60275 5.10016 + 4.07849 ] pdfxs + 115.8 410.1 m + /N15 8.96638 Tf + (list2) + [4.67994 4.67993 4.67994 4.67993 4.67994 ] pdfxs + 142.8 410.1 m + /N17 8.96638 Tf + (poolandthe) + [5.34 4.86127 4.62111 6.05573 4.62111 5.10016 8.64031 3.60275 5.10016 4.07849 ] pdfxs + 198.301 410.1 m + /N15 8.96638 Tf + (list1) + [4.67994 4.67995 4.67993 4.67995 4.67995 ] pdfxs + 225.301 410.1 m + /N17 8.96638 Tf + (poolsneedtobe) + [5.34001 4.86126 4.62109 2.57567 7.13627 5.10017 4.0785 4.0785 8.64015 3.60273 8.1011 + 5.34001 4.0785 ] pdfxs + 53.8205 399.661 m + (decompressedsothatallpointersintothe) + [5.10016 4.07849 4.08196 4.62111 7.67578 5.10016 3.59993 4.07849 3.65644 3.65645 4.07849 + 7.8 3.65645 7.26103 3.60275 5.10016 4.62111 6.24291 4.62111 2.57565 5.21556 5.34 + 4.62111 2.57565 4.86031 3.60275 4.0785 3.59993 6.29652 2.57565 4.86 3.60275 7.26125 + 3.60273 5.10017 4.0785 ] pdfxs + 223.021 399.661 m + /N15 8.96638 Tf + (list2) + [4.67995 4.67995 4.67993 4.67995 4.67995 ] pdfxs + 249.24 399.661 m + /N17 8.96638 Tf + (poolare) + [5.34001 4.86126 4.62109 5.21551 4.62109 3.59993 4.0785 ] pdfxs + 284.28 399.661 m + /N31 8.96638 Tf + (n) show + 289.86 399.661 m + /N17 8.96638 Tf + (-) show + 53.8202 389.161 m + (bitvalues.Thenormalmetadataforapoolidenti\feswhich) + [5.10016 2.57565 6.42274 4.31613 4.62111 2.57565 5.10016 4.07849 3.65644 6.59549 6.65758 + 5.10016 7.01858 5.10016 4.62111 3.59993 7.67578 4.62111 5.39557 7.67578 4.07849 3.60275 + 4.62111 5.10016 4.62112 3.60275 7.44095 2.81964 4.62112 6.47984 7.50109 5.34001 4.86126 + 4.62109 5.45574 2.57567 5.10017 4.0785 4.86008 3.60273 2.57567 5.10017 4.0785 6.47627 + 6.65759 5.10017 2.57564 3.84205 5.10017 ] pdfxs + 53.8202 378.72 m + (objectsinthepoolarelive.) + [4.62111 5.64031 2.81964 4.07849 4.08196 3.60274 6.71644 2.57565 8.15999 3.60274 5.10016 + 7.1985 5.34 4.86127 4.62111 5.63581 4.62111 3.59993 7.19842 2.57565 2.57564 4.61629 + 4.0785 2.57564 ] pdfxs + 168.42 378.72 m + /N19 8.96638 Tf + (All) + [6.60028 2.81677 2.33685 ] pdfxs + 184.2 378.72 m + /N17 8.96638 Tf + (pointersineachliveobject) + [5.34 4.62111 2.57565 4.86031 3.60273 4.0785 3.59993 6.77659 2.57567 8.16 4.0785 + 4.62109 3.84181 8.22009 2.57567 2.57567 4.61627 7.13833 4.62109 5.64033 2.81963 4.0785 + 4.08197 3.60273 ] pdfxs + 53.8203 368.281 m + (aredecompressed\(becauseofourthirdrestrictionabove\).) + [4.62111 3.59993 7.7984 5.10016 4.07849 4.08196 4.62111 7.67578 5.10016 3.59993 4.0785 + 3.65645 3.65645 4.07849 8.94024 3.60275 5.34 4.0785 4.08196 4.62112 5.10015 3.65646 + 7.91864 4.62111 6.5398 4.62111 5.10016 7.37992 3.60275 5.10016 2.57567 3.59993 8.82016 + 3.59993 4.0785 3.65642 3.60273 3.59993 2.57567 4.08197 3.60273 2.57567 4.62109 8.82008 + 4.62109 5.34033 4.38118 4.61612 4.0785 3.60273 2.55545 ] pdfxs + 53.8203 357.781 m + (Decompressingeachpointersimplymeanszero-extendingit) + [7.01981 4.07849 4.08196 4.62111 7.67578 5.10016 3.59993 4.07849 3.65644 3.65644 2.57565 + 5.10016 7.38095 4.0785 4.62111 3.84181 7.86031 5.34 4.62111 2.57565 4.86031 3.60275 + 4.0785 6.35977 3.65645 2.57565 7.67576 5.10016 2.57565 7.55636 7.67579 4.0785 4.62109 + 5.10017 6.41643 4.08197 4.0785 3.59993 4.62109 3.06372 4.0785 4.85621 3.60273 4.07848 + 5.10017 5.10017 2.57567 5.10017 7.44118 2.57567 3.5865 ] pdfxs + 53.8203 347.341 m + (from) + [2.81964 3.59993 4.62111 7.67578 ] pdfxs + 75.2402 347.341 m + /N31 8.96638 Tf + (k) show + 82.98 347.341 m + /N17 8.96638 Tf + (to) + [3.60274 4.62111 ] pdfxs + 93.8999 347.341 m + /N31 8.96638 Tf + (n) show + 102.18 347.341 m + /N17 8.96638 Tf + (bytes.Decompressionwillgrowthepool,which) + [4.86031 4.85621 3.60275 4.0785 3.65645 6.47573 7.01981 4.0785 4.08196 4.62112 7.67576 + 5.10016 3.59993 4.0785 3.65645 3.65645 2.57565 4.62111 7.86001 6.65758 2.57565 2.57564 + 5.21551 4.62109 3.59993 4.3811 9.35773 3.60273 5.10017 6.77858 5.34001 4.86126 4.62109 + 2.57567 5.3355 6.65759 5.10017 2.57564 3.84205 5.10017 ] pdfxs + 53.8201 336.901 m + (mayrequireadditionalpagestobeallocatedandthepool) + [7.67578 4.38127 8.45635 3.59993 4.07849 4.8562 5.10016 2.57565 3.59993 7.79841 4.62111 + 5.10016 5.10016 2.57565 3.60275 2.57564 4.62112 5.10016 4.62111 6.17565 5.10016 4.62111 + 4.62112 4.07849 7.31629 3.60275 8.22102 5.34 7.79849 4.62109 2.57567 2.57567 4.86094 + 4.08197 4.62109 3.60273 4.0785 8.76 4.62109 5.10017 8.76025 3.60273 5.10017 7.79849 + 5.34001 4.86126 4.62109 2.57567 ] pdfxs + 53.8201 326.401 m + (basemaychange.Asobjectsarecopiedtotheirnewloca-) + [5.10016 4.62111 3.65644 7.43841 7.67578 4.38127 8.21613 3.8418 5.10016 4.62111 5.10016 + 4.62112 4.07849 7.67564 6.90289 7.07652 4.62111 5.64032 2.81964 4.0785 4.08197 3.60273 + 7.01645 4.62111 3.59993 7.43865 4.08197 4.62111 5.10017 2.57567 4.0785 8.58 3.60273 + 7.98117 3.60273 5.10017 4.0785 2.57567 7.02 5.10017 4.0785 10.0777 2.57567 4.86094 + 4.08197 4.62109 3.06375 ] pdfxs + 53.8201 315.961 m + (tions,theirrelativepositioninthepoolispreservedsot) + [3.60274 2.57565 4.62111 5.10016 3.65644 5.39581 3.60274 5.10016 4.07849 2.57565 6.53993 + 3.59993 4.0785 2.57564 4.62111 3.60275 2.57565 4.61629 6.95865 5.34 4.62111 3.65646 + 2.57564 3.60275 2.57565 4.62111 7.92023 2.57565 8.04007 3.60275 5.10016 7.01842 5.34 + 4.86127 4.62109 5.45574 2.57567 6.53635 5.10017 3.59993 4.0785 3.65642 4.0785 3.59993 + 4.61605 4.0785 8.04008 3.65645 7.50124 3.60273 ] pdfxs + (h) show + 284.7 315.961 m + (at) + [4.62109 3.60273 ] pdfxs + 53.8201 305.521 m + (allindicesintothepoolremainvalid.Thisensuresthatno) + [4.62111 2.57565 5.69564 2.57565 5.10016 5.10016 2.57565 4.08196 4.07849 6.8366 2.57565 + 4.86001 3.60275 7.74095 3.60275 5.10016 7.25865 5.34 4.86127 4.62111 5.8155 3.59993 + 4.0785 7.67576 4.62111 2.57565 8.28 4.31613 4.62111 2.57565 2.57565 5.10015 6.95549 + 6.65759 5.10017 2.57564 6.77636 4.0785 5.10017 3.65642 5.10017 3.59993 4.0785 6.89636 + 3.60273 5.10017 4.62109 6.78274 5.10017 4.62109 ] pdfxs + 53.8201 295.021 m + (datainanyotherpooloringlobals,stacklocationsorregis) + [5.10016 4.62111 3.60274 7.20103 2.57565 7.68031 4.62111 4.86023 7.43604 4.62111 3.60275 + 5.10016 4.0785 6.18001 5.34 4.86127 4.62111 5.21549 4.62111 6.17993 2.57565 7.6803 + 4.62111 2.57565 4.62111 5.10016 4.62112 2.57564 3.65645 5.1555 3.65645 3.60276 4.62109 + 3.84188 7.43604 2.57567 4.86094 4.08197 4.62109 3.60273 2.57567 4.62109 5.10017 6.17651 + 4.62109 6.17993 3.59993 4.0785 4.62109 2.57567 3.63137 ] pdfxs + 289.86 295.021 m + (-) show + 53.8201 284.581 m + (tersmustbemodi\fedwhenapoolisdecompressed.\(Note,) + [3.60274 4.07849 3.59993 6.65644 7.43562 5.10016 3.65644 6.60274 5.34 7.13833 7.67578 + 4.86095 5.10016 2.57565 5.10015 4.0785 8.22023 6.65758 5.10016 4.0785 8.16015 7.68118 + 5.34 4.86127 4.62111 5.63581 2.57565 6.59652 5.10017 4.0785 4.08197 4.62109 7.67579 + 5.10015 3.59993 4.0785 3.65645 3.65642 4.0785 5.10017 6.71582 3.60273 6.90289 4.62109 + 3.60273 4.0785 2.57567 ] pdfxs + 53.8201 274.141 m + (however,thatinamultithreadedprogram,decompressinga) + [5.10016 4.38119 6.4175 4.07849 4.61621 4.07849 3.59993 5.33557 3.60274 5.10016 4.62111 + 6.36282 2.57565 7.85999 7.38119 7.43562 5.10016 2.57565 3.60273 2.57565 3.60275 5.10016 + 3.59993 4.0785 4.62111 5.10016 4.07849 7.92032 5.10016 3.59993 4.62111 4.62109 3.59993 + 4.62112 7.67576 5.33575 5.10017 4.0785 4.08197 4.62109 7.67579 5.10015 3.59993 4.0785 + 3.65645 3.65642 2.57567 5.10017 7.44118 4.62109 ] pdfxs + 53.8201 263.641 m + (poolmustbeperformedatomicallyrelativetoanyaccesses) + [5.34 4.86127 4.62111 5.75573 7.43562 5.10016 3.65644 6.78259 5.34 7.31841 5.34 + 4.0785 3.59993 2.81964 4.62111 3.59993 7.67578 4.07849 8.40024 4.62111 3.60275 4.62112 + 7.67576 2.57565 4.08196 4.62112 2.57564 2.57565 7.91629 3.59993 4.0785 2.57567 4.62109 + 3.60273 2.57567 4.61627 7.25865 3.60273 7.80109 4.62109 4.86025 8.03604 4.62109 4.08197 + 4.08197 4.0785 3.65642 3.65645 4.0785 3.65642 ] pdfxs + 53.8201 253.201 m + (tothepool.\)) + [3.60274 7.62111 3.60274 5.10016 7.19849 5.34 4.86127 4.62111 2.57565 2.57565 3.60273 + ] pdfxs + 53.8201 234.121 m + /N9 11.9552 Tf + (4.3InterproceduralDynamicCompression) + [6 3 17.8801 4.67991 6.65999 3.95992 5.27982 5.15967 6.65999 5.03982 6 + 5.27981 5.27982 6.65999 6.65999 5.27982 6 6.42009 8.63982 6 6.65999 6 + 9.95991 3.29998 8.21991 8.63981 6 9.95992 6.65999 5.03983 5.27982 4.67992 4.67989 + 3.30001 6 6.66002 ] pdfxs + 62.7603 221.161 m + /N17 8.96638 Tf + (Asnotedwithstaticpointercompression,theprimary) + [6.9029 8.21636 5.10016 4.62111 3.60274 4.07849 9.6603 6.65758 2.57565 3.60275 9.59999 + 3.65645 3.60275 4.62112 3.60273 2.57565 8.58181 5.34 4.62111 2.57565 4.86031 3.60275 + 4.0785 8.15976 4.08197 4.62111 7.67576 5.10017 3.59993 4.07848 3.65645 3.65645 2.57564 + 4.62112 5.10017 7.43557 3.60273 5.10017 8.69849 5.10017 3.59993 2.57567 7.67579 4.62109 + 3.59993 4.85619 ] pdfxs + 53.8201 210.661 m + (challengeintheinterproceduralcaseisthatthesamepoint) + [3.8418 5.10016 4.62111 2.57565 2.57565 4.07849 5.10016 4.62111 6.35833 2.57565 7.38031 + 3.60275 5.10016 6.35865 2.57565 4.86 3.60275 4.0785 3.59993 5.10015 3.59993 4.86096 + 4.08197 4.07849 5.10016 5.10016 3.59993 4.62111 4.91566 4.08197 4.62111 3.65645 6.35842 + 2.57565 5.87658 3.60273 5.10017 4.62109 5.82258 3.60273 5.10017 6.41841 3.65645 4.62109 + 7.67579 6.29864 5.34001 4.62109 2.57567 4.86033 3.5865 ] pdfxs + 286.2 210.661 m + (s-) + [3.65645 3.06372 ] pdfxs + 53.8201 200.221 m + (tographnodemayrepresentpoolscontainingcompressed) + [3.60274 8.34095 4.62111 3.59993 4.62111 5.10016 8.94023 5.10016 4.86127 5.10016 7.91842 + 7.67578 4.38126 8.63605 3.59993 4.0785 5.10015 3.59993 4.0785 3.65645 4.0785 4.86031 + 7.44258 5.34 4.86127 4.62111 2.57565 7.43629 4.08197 4.62109 4.86033 3.60273 4.62109 + 2.57567 5.10017 2.57567 5.10017 8.40117 4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 + 3.65645 3.65645 4.07848 5.10017 ] pdfxs + 53.8201 189.781 m + (indicesornon-compressedindices.Thisledtothepossibil) + [2.57565 5.10016 5.10016 2.57565 4.08196 4.07849 6.77644 4.62111 6.77992 5.10016 4.62111 + 5.10016 3.06372 4.08197 4.62111 7.67578 5.10016 3.59993 4.07849 3.65646 3.65645 4.07849 + 8.34024 2.57565 5.10016 5.10015 2.57565 4.08197 4.07849 3.65645 6.89573 6.65758 5.10017 + 2.57564 6.77636 2.57567 4.0785 8.28 3.60273 7.80109 3.60273 5.10017 7.25865 5.34001 + 4.62109 3.65645 3.65642 2.57567 5.10017 2.57567 2.55545 ] pdfxs + 289.92 189.781 m + (-) show + 53.8201 179.281 m + (itythatfunctionsmustbeclonedinthestaticcase.Becaus) + [2.57565 3.36259 7.25636 3.60274 5.10016 4.62111 6.06282 2.81964 5.10016 5.10016 4.08196 + 3.60275 2.57564 4.62112 5.10016 6.11637 7.43562 5.10016 3.65645 6.06266 5.34 6.59849 + 4.08197 2.57564 4.62112 5.10015 4.0785 7.62024 2.57565 7.62015 3.60275 5.10017 6.59849 + 3.65645 3.60273 4.62109 3.60273 2.57567 6.4818 4.08197 4.62109 3.65645 4.07848 6.41582 + 6.54066 4.0785 4.08197 4.62109 5.10017 3.65645 ] pdfxs + (e) show + 53.8201 168.841 m + (dynamicpointercompressionalreadyusesconditionalcod) + [5.10016 4.8562 5.10016 4.62111 7.67578 2.57565 7.26196 5.34 4.62111 2.57565 4.86031 + 3.60275 4.0785 6.71992 4.08197 4.62111 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 + 2.57565 4.62111 8.28031 4.62111 2.57565 3.59993 4.07849 4.62112 5.10016 7.97628 5.10017 + 3.65645 4.07848 6.83652 4.08197 4.62109 5.10017 5.10017 2.57567 3.60273 2.57564 4.62112 + 5.10017 4.62109 5.69566 4.08197 4.86094 5.10017 ] pdfxs + (e) show + 53.8201 158.402 m + (todistinguishcompressedindicesfromexpandedindices,t) + [3.60274 6.66127 5.10016 2.57565 3.65644 3.60274 2.57565 5.10016 4.62111 5.10016 2.57565 + 3.65645 7.20024 4.08197 4.62111 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 4.0785 + 7.26007 2.57565 5.10016 5.10015 2.57565 4.08197 4.07849 5.75653 2.81964 3.59993 4.62112 + 9.77569 4.0785 4.85619 5.10017 4.62112 5.10017 5.10015 4.0785 7.32033 2.57567 5.10017 + 5.10017 2.57567 4.08195 4.0785 3.65645 4.8555 3.5865 ] pdfxs + 283.68 158.402 m + (he) + [5.10017 4.0785 ] pdfxs + 53.8201 147.902 m + (needforcloningdoesnotarise.\(Thissolutionusingcondi-) + [5.10016 4.07849 4.07849 8.34016 2.81964 4.62111 6.77984 4.08196 2.57565 4.62111 5.10016 + 2.57565 5.10016 7.80126 5.10016 4.86127 4.0785 6.83636 5.10016 4.62111 6.78275 4.62111 + 3.59993 2.57565 3.65645 4.0785 6.95564 3.60275 6.65758 5.10016 2.57565 6.77636 3.65645 + 4.62109 2.57567 5.10017 3.60273 2.57564 4.62109 8.22026 5.10017 3.65645 2.57564 5.10017 + 7.80095 4.08197 4.62109 5.10017 5.10017 2.57567 3.07549 ] pdfxs + 53.8201 137.462 m + (tionalcodecanalsobeusedforthestaticcaseifcloningis) + [3.60274 2.57565 4.62111 5.10016 4.62111 5.69557 4.08196 4.86096 5.10016 7.37857 4.08197 + 4.62111 8.33999 4.62111 2.57565 3.65645 7.74111 5.34 7.37857 5.10016 3.65645 4.0785 + 8.34023 2.81964 4.62112 6.84 3.60275 5.10016 7.31841 3.65645 3.60273 4.62109 3.60273 + 2.57567 7.2021 4.08197 4.62109 3.65645 7.31856 2.57567 5.9997 4.08197 2.57567 4.62109 + 5.10017 2.57567 5.10015 7.80126 2.57567 3.65642 ] pdfxs + 53.8201 127.022 m + (undesirableorisexpensiveforaparticularfunction.\)) + [5.10016 5.10016 5.10016 4.07849 3.65644 2.57565 3.59993 4.62111 5.10016 2.57565 7.19842 + 4.62111 6.66 2.57565 6.65644 4.0785 4.85621 5.34023 4.0785 5.10016 3.65645 2.57564 + 4.61606 7.1985 2.81964 4.62112 6.65992 7.68118 5.10016 4.62111 3.59993 3.60275 2.57567 + 4.08197 5.10017 2.57564 4.62112 6.65976 2.81963 5.10017 5.10017 4.08197 3.60273 2.57567 + 4.62109 5.10017 2.57567 3.60273 ] pdfxs + 62.7603 116.522 m + (Forinterproceduraldynamiccompressiontocompressin-) + [5.22153 4.62111 6.41977 2.57565 4.86 3.60274 4.07849 3.59993 5.10016 3.59993 4.86096 + 4.08197 4.07849 5.10016 5.10016 3.59993 4.62111 5.51565 5.10016 4.85621 5.10016 4.62111 + 7.67578 2.57565 6.9018 4.08197 4.62111 7.67576 5.10016 3.59993 4.07848 3.65645 3.65645 + 2.57564 4.62112 7.92016 3.60273 7.44094 4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 + 3.65645 6.47644 2.57567 5.10017 3.06372 ] pdfxs + 53.8201 106.082 m + (dicesinapool,itmustcheckifthepoolmeetsthe\frst) + [5.10016 2.57565 4.08196 4.07849 7.97636 2.57565 9.42015 8.94095 5.34 4.86127 4.62111 + 2.57565 7.19565 2.57565 7.92273 7.43562 5.10016 3.65645 7.86267 3.84181 5.10016 4.0785 + 3.84188 9.23605 2.57565 7.13955 3.60275 5.10016 8.3985 5.34001 4.86126 4.62109 6.89559 + 7.67579 4.0785 4.07848 3.60273 7.97636 3.60273 5.10017 8.45865 5.10017 3.59993 3.65645 + 3.60273 ] pdfxs + 53.8201 95.6424 m + (criterion\(THpool,no\feldaddresstaken\)forallcalling) + [4.08196 3.59993 2.57565 3.60274 4.07849 3.59993 2.57565 4.62111 9.42031 3.60274 6.65758 + 11.223 5.34 4.86127 4.62111 2.57565 7.19565 5.10016 8.94095 5.10016 4.0785 2.57564 + 9.48 4.62111 5.10016 5.10016 3.59993 4.0785 3.65645 7.97629 3.60273 4.62109 4.61605 + 4.0785 5.10017 7.86257 2.81963 4.62109 7.92009 4.62109 2.57567 6.89566 4.08197 4.62109 + 2.57567 2.57567 2.57564 5.10017 4.62112 ] pdfxs + 53.8201 85.1424 m + (contexts.OurpointeranalysisalgorithmcomputestwoDS) + [4.08196 4.62111 4.86031 3.60274 4.07849 4.8562 3.60274 3.65645 6.9558 7.13658 5.10017 + 6.89977 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 6.78007 4.62111 5.10016 4.62112 + 2.57564 4.85621 3.65646 2.57564 6.77645 4.62111 2.57565 4.62111 4.62112 3.59993 2.57564 + 3.60273 5.10017 10.7957 4.08197 4.62109 7.67579 5.10017 5.10017 3.60273 4.07848 6.8966 + 3.36289 6.4175 7.74094 7.0198 5.10017 ] pdfxs + 53.8201 74.7026 m + (graphsforeachfunction-abottom-up\(BU\)graphrepre-) + [4.62111 3.59993 4.62111 5.10016 5.10016 7.3166 2.81964 4.62111 7.25992 4.0785 4.62111 + 3.84181 8.76031 2.81964 5.10016 5.10016 4.08197 3.60275 2.57564 4.62112 8.82007 6.72364 + 8.28119 5.34 4.62111 3.60275 3.60275 4.62112 7.67576 3.06372 5.10017 8.76 3.60273 + 6.54066 6.90289 7.26273 4.62109 3.59993 4.62109 5.10017 8.76018 3.59993 4.0785 5.10017 + 3.59993 4.0785 3.06372 ] pdfxs + 316.8 728.223 m + (sentingafunctionanditscallees\(butnotanycallers\),an) + [3.65645 4.07848 4.86018 3.60273 2.57567 5.10017 7.02109 7.08117 2.81963 5.10017 5.10017 + 4.08197 3.60273 2.57567 4.62109 7.56032 4.62109 5.10017 7.56025 2.57562 3.60276 5.99655 + 4.08192 4.62114 2.57562 2.57567 4.07845 4.0785 6.05651 3.60276 5.10017 5.10017 6.06291 + 5.10017 4.62114 6.00266 4.62114 4.86023 7.31614 4.08192 4.62114 2.57562 2.57567 4.07845 + 3.59993 3.65647 3.60276 5.03547 4.62114 5.10017 ] pdfxs + (d) show + 551.28 728.223 m + (a) show + 316.8 717.783 m + (\fnal,top-down\(TD\)graphrepresentingthee\013ectsofboth) + [5.10017 5.10017 4.62109 2.57567 5.69566 3.60273 4.62109 5.10017 3.06375 5.10017 4.38125 + 6.65759 8.22023 3.60273 6.65759 7.0198 6.66257 4.62109 3.59993 4.62109 5.10017 8.22033 + 3.59993 4.07845 5.10017 3.59993 4.0785 3.65647 4.07845 4.86033 3.60276 2.57562 5.10017 + 7.74106 3.60276 5.10017 7.19847 4.07845 5.40425 4.0785 4.08192 3.60276 6.71663 4.62114 + 5.93977 5.34001 4.62114 3.60276 5.10017 ] pdfxs + 316.8 707.343 m + (calleesandcallers.Therefore,wecancheckthecriterion) + [4.08197 4.62109 2.57567 2.57567 4.07848 4.0785 6.35652 4.62109 5.10017 7.86025 4.08197 + 4.62109 2.57567 2.57567 4.07848 3.59993 3.65645 6.5355 6.65759 5.10017 4.07845 3.59993 + 4.0785 2.8196 4.62114 3.59993 4.07845 5.39548 6.4175 6.77855 4.08192 4.62114 7.86032 + 3.84179 5.10017 4.07845 3.84188 7.61614 3.60276 5.10017 6.83831 4.08192 3.59993 2.57567 + 3.60276 4.07845 3.59993 2.57567 4.62109 7.80002 ] pdfxs + (f) show + 547.679 707.343 m + (or) + [4.62109 3.59993 ] pdfxs + 316.8 696.843 m + (allcontextstriviallysimplybycheckingitintheTDgraph.) + [4.62109 2.57567 5.3355 4.08197 4.62109 4.86033 3.60273 4.0785 4.85619 3.60273 6.47636 + 3.60273 3.59993 2.57567 4.85619 2.57567 4.62109 2.57567 2.57567 7.55635 3.65645 2.57564 + 7.67579 5.10017 2.57562 7.61614 4.86033 7.6763 3.84179 5.10017 4.07845 3.84188 4.85623 + 2.57562 5.10017 7.50097 2.57562 6.36262 2.57562 7.92019 3.60276 5.10017 6.89847 6.65759 + 9.83982 4.62114 3.59993 4.62109 5.10017 5.10017 2.55545 ] pdfxs + Q + n + 3406 6835 1890 4.19922 re + f + n + 3404 6755 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 345.9 677.88 m + /N33 6.97377 Tf + (OriginalStatementTransformedStatement) + [6.12002 3.11698 2.2771 3.95687 2.2771 4.38026 3.95687 4.91698 4.38029 3.11698 3.95687 + 3.11698 3.54035 6.53649 3.54037 4.14013 32.6364 5.03648 3.11698 3.95685 4.38031 3.18292 + 2.45888 3.9569 3.11694 6.53654 3.54035 7.14023 4.38026 3.11698 3.9569 3.11694 3.5404 + 6.53649 3.54035 4.14013 3.11698 ] pdfxs + Q + n + 5293 6755 4.19922 79.8008 re + f + n + 3406 6751 1890 4.19922 re + f + n + 3404 6671 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 345.9 669.48 m + /N33 6.97377 Tf + (poolinit\(P) + [4.6202 4.19686 3.95687 2.27707 2.2771 4.38029 2.2771 3.11698 3.11698 5.34098 ] pdfxs + (D) show + (,Size\)) + [4.91715 4.38029 2.2771 3.54035 3.54035 3.11701 ] pdfxs + 423.24 669.48 m + /N57 6.97377 Tf + (\)) show + 441.9 669.48 m + /N33 6.97377 Tf + (poolinit) + [4.6202 4.19688 3.9569 2.27707 2.27712 4.38026 2.27707 3.11698 ] pdfxs + Q + n + 4695 6695 24 4.19922 re + f + q + 10 0 0 10 0 0 cm + 471.84 669.48 m + /N33 6.97377 Tf + (pc\(P) + [4.6202 3.54035 3.11698 5.34095 ] pdfxs + (D) show + (,NULL\)) + [4.91698 5.87812 5.87817 4.91743 4.91748 3.11698 ] pdfxs + Q + n + 5293 6671 4.19922 79.8008 re + f + n + 3404 6592 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 345.9 661.5 m + /N33 6.97377 Tf + (pooldestroy\(P) + [4.6202 4.19686 3.95687 2.27707 4.38029 3.54037 3.18289 3.11701 3.11698 3.71686 4.19861 + 3.11698 5.341 ] pdfxs + (D) show + (\)) show + 423.24 661.5 m + /N57 6.97377 Tf + (\)) show + 441.9 661.5 m + /N33 6.97377 Tf + (pooldestroy) + [4.6202 4.19688 3.9569 2.27707 4.38031 3.54035 3.18292 3.11698 3.11694 3.71691 4.19861 + ] pdfxs + Q + n + 4827 6615 24 4.19922 re + f + q + 10 0 0 10 0 0 cm + 485.1 661.5 m + /N33 6.97377 Tf + (pc\(P) + [4.6202 3.54035 3.11698 5.34095 ] pdfxs + (D) show + (\)) show + Q + n + 5293 6592 4.19922 79.8008 re + f + n + 3406 6587 1890 4.19922 re + f + q + 10 0 0 10 0 0 cm + 318.36 641.58 m + /N23 8.96638 Tf + (Figure13:Rewriterulesfornon) + [6.66309 2.94267 5.28303 5.87642 4.37907 8.46026 5.28303 5.28303 7.74266 7.98245 4.86025 + 7.68343 4.37907 2.94267 4.13849 8.34017 4.37907 5.87644 2.94267 4.86029 7.74219 3.24387 + 5.28306 7.91891 5.87639 5.28306 5.87639 ] pdfxs + (-) show + (compressedpools) + [4.74079 5.28301 8.81911 5.87639 4.37907 4.86029 4.2022 4.2022 4.86029 9.53625 6.17649 + 5.58311 5.28301 2.94272 4.2022 ] pdfxs + 325.8 625.08 m + /N17 8.96638 Tf + (Interproceduraldynamicpointercompressionisverystrai) + [3.30018 4.86033 3.60273 4.0785 3.59993 5.10017 3.59993 4.86094 4.08197 4.0785 5.10017 + 5.10017 3.59993 4.62109 4.73558 5.10017 4.85621 5.10017 4.62109 7.67579 2.57562 6.1221 + 5.34001 4.62114 2.57562 4.86033 3.60276 4.07845 5.70003 4.08192 4.62114 7.67525 5.10017 + 3.59993 4.0785 3.65647 3.65642 2.57567 4.62109 7.08034 2.57562 5.69656 4.61615 4.07845 + 3.59993 6.89632 3.65647 3.60276 3.59993 4.62109 2.57567 ] pdfxs + (g) show + 557.88 625.08 m + (ht-) + [4.86003 3.60276 3.06372 ] pdfxs + 316.8 614.58 m + (forward:asinglelinearpassovertheprogramisusedto) + [2.81963 4.62109 3.59993 6.41775 4.62109 3.59993 5.10017 8.75573 8.76125 3.65645 2.57564 + 5.10017 4.62112 2.57564 8.1585 2.57567 2.57567 5.10017 4.07848 4.62114 7.73992 5.10017 + 4.62114 3.65642 7.7364 4.3812 4.61615 4.07845 7.6801 3.60276 5.10017 8.27854 5.10017 + 3.59993 4.62114 4.62109 3.59993 4.62114 11.7552 2.57562 7.7364 5.10017 3.65647 4.07845 + 9.30002 3.60276 4.62114 ] pdfxs + 316.8 604.14 m + (rewritealloftheinstructionsinthewholeprogram,accord-) + [3.59993 4.0785 6.65756 3.59993 2.57567 3.60273 6.83866 4.62109 2.57567 5.21558 4.62109 + 5.51948 3.60273 5.10017 6.83834 2.57567 5.10017 3.65642 3.60273 3.59993 5.10017 4.08197 + 3.60276 2.57562 4.62114 5.10017 6.35652 2.57562 7.80026 3.60276 5.10017 6.83831 6.65759 + 5.10017 4.62109 2.57567 6.77831 5.10017 3.59993 4.62114 4.62109 3.59993 4.62114 7.67525 + 5.39548 4.62114 4.08192 4.08192 4.62114 3.59993 5.10017 3.07549 ] pdfxs + 316.8 593.7 m + (ingtotherewriterulesinFigure11andFigure13.The) + [2.57567 5.10017 8.64101 3.60273 8.64094 3.60273 5.10017 8.09849 3.59993 4.0785 6.65756 + 3.59993 2.57567 3.60273 8.09842 3.59993 5.10017 2.57567 4.0785 7.67629 2.57562 9.12019 + 6.0016 2.57562 4.62114 5.10017 3.59993 8.15863 4.62114 8.64125 4.62114 5.10017 9.11999 + 6.0016 2.57562 4.62114 5.10017 3.59993 8.15863 4.62114 4.62109 9.47555 6.65759 5.10017 + 4.07845 ] pdfxs + 316.8 583.2 m + (onlydi\013erencebetweencompressedandnon-compressed) + [4.62109 5.10017 2.57567 10.2563 5.10017 2.57567 5.40425 4.0785 3.59993 4.07848 5.10017 + 4.08197 9.59841 5.34001 4.0785 3.36257 6.4175 4.0785 4.0785 10.5601 4.08192 4.62114 + 7.67525 5.10017 3.59993 4.0785 3.65647 3.65642 4.0785 10.5601 4.62114 5.10017 10.5602 + 5.10017 4.62114 5.10017 3.06367 4.08197 4.62109 7.67579 5.10017 3.59993 4.07845 3.65647 + 3.65647 4.07845 5.10017 ] pdfxs + 316.8 572.76 m + (pools\(i.e.,thosethatpassorfailtheabovecriterion\)is) + [5.34001 4.86126 4.62109 2.57567 8.09643 3.60273 2.57567 2.57567 4.07848 2.57567 7.3155 + 3.60273 5.10017 4.62109 3.65645 8.51848 3.60273 5.10017 4.62109 8.04289 5.10017 4.62114 + 3.65642 8.09655 4.62114 8.04006 2.81965 4.62109 2.57567 7.01546 3.60276 5.10017 8.57854 + 4.62114 5.34031 4.3812 4.61615 8.51839 4.08192 3.59993 2.57567 3.60276 4.07845 3.59993 + 2.57567 4.62109 5.10017 8.04284 2.57562 3.65647 ] pdfxs + 316.8 562.32 m + (thatthe) + [3.60273 5.10017 4.62109 7.32258 3.60273 5.10017 4.0785 ] pdfxs + 354 562.32 m + /N15 8.96638 Tf + (poolinit) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.67993 ] pdfxs + Q + n + 3920 5623 28.8008 4.19922 re + f + q + 10 0 0 10 0 0 cm + 395.04 562.32 m + /N15 8.96638 Tf + (pc) + [4.67995 4.67995 ] pdfxs + 408.18 562.32 m + /N17 8.96638 Tf + (callforthelatterpoolpassesanull) + [4.08192 4.62114 2.57562 6.29573 2.81965 4.62109 7.32009 3.60276 5.10017 7.85862 2.57562 + 4.62114 3.60276 3.60276 4.07845 7.25978 5.34001 4.86128 4.62114 6.35569 5.10017 4.62114 + 3.65642 3.65647 4.0785 7.31628 8.40111 4.86033 5.10017 2.57562 2.57567 ] pdfxs + 316.8 551.82 m + (typedescriptor\(andanemptypoints-tolist\).Inthis) + [3.36289 4.85621 5.34016 9.65865 5.10017 4.0785 3.65642 4.08197 3.59993 2.57567 5.10017 + 3.60273 4.62109 9.17993 3.60273 4.62109 5.10017 10.6802 4.62114 10.6801 4.07845 7.67579 + 5.10017 3.36267 10.3763 5.34001 4.62114 2.57562 4.86033 3.60276 3.65647 3.06372 3.60276 + 10.1413 2.57562 2.57567 3.65647 3.60276 3.60276 14.0357 3.30018 10.6802 3.60276 5.10017 + 2.57562 3.65647 ] pdfxs + 316.8 541.38 m + (case,) + [4.08197 4.62109 3.65645 4.07848 2.57567 ] pdfxs + 339.78 541.38 m + /N15 8.96638 Tf + (poolinit) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.67993 ] pdfxs + Q + n + 3778 5414 28.8008 4.19922 re + f + q + 10 0 0 10 0 0 cm + 380.88 541.38 m + /N15 8.96638 Tf + (pc) + [4.67995 4.67995 ] pdfxs + 394.08 541.38 m + /N17 8.96638 Tf + (initializesthepooldescriptorsuchthat) + [2.57567 5.10017 2.57567 3.60273 2.57562 4.62114 2.57562 2.57567 4.08192 4.07845 7.37663 + 3.60276 5.10017 7.91839 5.34001 4.86128 4.62114 6.35569 5.10017 4.07845 3.65647 4.08197 + 3.59993 2.57562 5.10017 3.60276 4.62114 7.44006 3.65647 5.10017 3.84193 8.94001 3.60276 + 5.10017 4.62114 3.60276 ] pdfxs + 316.8 530.88 m + /N15 8.96638 Tf + (PoolBase) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.67993 ] pdfxs + 358.02 530.88 m + /N17 8.96638 Tf + (isnulland) + [2.57567 7.19651 4.86033 5.10017 2.57567 6.11565 4.62109 5.10017 5.10017 ] pdfxs + 404.88 530.88 m + /N15 8.96638 Tf + (isComp) + [4.67995 4.67995 4.6799 4.67995 4.6799 4.6799 ] pdfxs + 436.68 530.88 m + /N17 8.96638 Tf + (isfalse,andtherun-timeen-) + [2.57562 7.19655 2.81965 4.62109 2.57567 3.65642 4.0785 6.23562 4.62114 5.10017 8.6403 + 3.60276 5.10017 7.67855 3.59993 5.10017 5.10017 3.06372 3.60276 2.57562 7.67579 7.67845 + 4.07845 5.10017 3.06372 ] pdfxs + 316.8 520.44 m + (suresthatthe) + [3.65645 5.10017 3.59993 4.07848 6.53652 3.60273 5.10017 4.62109 6.42258 3.60273 5.10017 + 4.0785 ] pdfxs + 375.18 520.44 m + /N15 8.96638 Tf + (poolalloc) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.6799 4.67995 ] pdfxs + Q + n + 4178 5204 28.8008 4.19922 re + f + q + 10 0 0 10 0 0 cm + 420.9 520.44 m + /N15 8.96638 Tf + (pc) + [4.6799 4.67995 ] pdfxs + 430.26 520.44 m + /N17 8.96638 Tf + (/) show + 434.88 520.44 m + /N15 8.96638 Tf + (free) + [4.6799 4.67995 4.6799 4.67995 ] pdfxs + Q + n + 4541 5204 28.8008 4.19922 re + f + q + 10 0 0 10 0 0 cm + 457.14 520.44 m + /N15 8.96638 Tf + (pc) + [4.6799 4.67995 ] pdfxs + 469.44 520.44 m + /N17 8.96638 Tf + (callsbehavethesame) + [4.08192 4.62114 2.57562 2.57567 6.41652 5.34001 4.07845 5.10017 4.3813 4.61615 7.01839 + 3.60276 5.10017 6.95863 3.65647 4.62109 7.67579 4.07845 ] pdfxs + 316.8 510 m + (as) + [4.62109 3.65645 ] pdfxs + 328.14 510 m + /N15 8.96638 Tf + (poolalloc) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.67993 4.67995 ] pdfxs + 370.26 510 m + /N17 8.96638 Tf + (/) show + 374.88 510 m + /N15 8.96638 Tf + (poolfree) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.6799 ] pdfxs + 412.319 510 m + /N17 8.96638 Tf + (.) show + 325.8 499.5 m + (Thisapproachtakesadvantageofthefact\(notedinSec-) + [6.65759 5.10017 2.57564 6.83652 4.62109 5.10017 5.10017 3.59993 4.62109 4.62112 3.84196 + 8.34 3.60273 4.62109 4.61605 4.0785 6.83635 4.62114 5.10017 4.31605 4.62114 4.86023 + 3.60276 4.62114 4.62109 7.31864 4.62114 6.05968 3.60276 5.10017 7.31839 2.81965 4.62109 + 4.08197 6.78274 3.60276 5.10017 4.62114 3.60276 4.07845 8.34 2.57562 8.3401 5.10017 + 4.07845 4.08197 3.06372 ] pdfxs + 316.8 489.06 m + (tion3.2\)thatpointersintopoolscreatedbythepoolalloc) + [3.60273 2.57567 4.62109 7.74001 4.62109 2.57567 4.62109 6.18273 3.60273 5.10017 4.62109 + 6.24289 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 3.59993 6.29651 2.57562 4.86003 + 3.60276 7.20112 5.34001 4.86128 4.62114 2.57562 6.29646 4.08192 3.59993 4.0785 4.62109 + 3.60276 4.0785 7.80031 4.86033 7.49622 3.60276 5.10017 6.77855 5.34001 4.86128 4.62114 + 5.21546 4.62114 2.57562 2.57562 4.86099 4.08192 ] pdfxs + (a) show + 552.9 489.06 m + (-) show + 316.8 478.62 m + (tordonotescapefromtheprogram.Because) + [3.60273 4.62109 5.76001 5.10017 6.84094 5.10017 4.62109 5.82258 4.0785 3.65642 4.08197 + 4.62109 5.34026 6.2985 2.81963 3.59993 4.62109 9.83587 3.60276 5.10017 6.29847 5.10017 + 3.59993 4.62114 4.62109 3.59993 4.62114 7.67525 6.35564 6.54063 4.0785 4.08192 4.62114 + 5.10017 3.65642 4.0785 ] pdfxs + 496.8 478.62 m + /N15 8.96638 Tf + (isComp) + [4.6799 4.67995 4.6799 4.67995 4.6799 4.6799 ] pdfxs + 527.22 478.62 m + /N17 8.96638 Tf + (isfalse,) + [2.57562 5.81648 2.81965 4.62109 2.57567 3.65642 4.0785 2.57562 ] pdfxs + 316.8 468.12 m + (non-compressedpoolswillalwaysusethe\\expanded"code) + [5.10017 4.62109 5.10017 3.06375 4.08197 4.62109 7.67576 5.10017 3.59993 4.0785 3.65645 + 3.65642 4.0785 8.40001 5.34001 4.86126 4.62109 2.57567 6.83627 6.65759 2.57562 2.57567 + 5.75569 4.62114 2.57562 6.4175 4.3812 4.85623 6.77629 5.10017 3.65647 7.25838 3.60276 + 5.10017 7.31839 4.62114 4.07845 4.85623 5.10017 4.62109 5.10017 5.10017 4.0785 5.10017 + 7.92119 4.08192 4.86099 5.10017 4.07845 ] pdfxs + 316.8 457.68 m + (paths,whichusetheuncompressedsizesand\feldo\013setsfor) + [5.10017 4.62109 3.60273 5.10017 3.65645 5.27581 6.65759 5.10017 2.57564 3.84205 7.74001 + 5.10017 3.65645 6.77832 3.60273 5.10017 6.71842 5.10017 5.10017 4.08192 4.62114 7.67525 + 5.10017 3.59993 4.0785 3.65647 3.65642 4.0785 7.80031 3.65647 2.57562 4.08197 4.07845 + 6.29646 4.62114 5.10017 7.7403 5.10017 4.07845 2.57567 7.80031 4.62114 5.40425 3.65642 + 4.0785 3.60276 6.17629 2.81965 4.62109 3.59993 ] pdfxs + 316.8 447.241 m + (memoryaccesses.) + [7.67579 4.0785 7.67576 4.62112 3.59993 7.97603 4.62109 4.08197 4.08197 4.0785 3.65642 + 3.65645 4.0785 3.65642 2.57567 ] pdfxs + 316.8 422.701 m + /N9 11.9552 Tf + (5.OPTIMIZINGPTRCOMPRESSEDCODE) + [6 14.9399 9.30001 7.31991 7.97992 4.67992 11.2798 4.67992 7.97992 4.67992 8.63981 + 11.0999 7.31991 7.97987 10.4397 8.63981 9.30001 11.2799 7.31986 8.63981 7.97992 6.65997 + 6.66002 7.97992 10.4398 8.63981 9.30001 8.63981 7.97992 ] pdfxs + 325.8 409.741 m + /N17 8.96638 Tf + (Thestraight-forwardpointercompressionimplementa-) + [6.65759 5.10017 9.59864 3.65645 3.60273 3.59993 4.62109 2.57567 4.62109 4.86001 3.60273 + 3.06375 2.81963 4.62109 3.59993 6.4175 4.62109 3.59993 10.5001 5.34001 4.62114 2.57562 + 4.86033 3.60276 4.07845 9.11994 4.08192 4.62114 7.67525 5.10017 3.59993 4.0785 3.65647 + 3.65642 2.57567 4.62109 10.56 2.57562 7.67579 5.10017 2.57562 4.0785 7.67525 4.07845 + 4.86003 3.60276 4.62114 3.06367 ] pdfxs + 316.8 399.301 m + (tionsdescribedinSections3and4generatesfunctional,) + [3.60273 2.57567 4.62109 5.10017 8.27651 5.10017 4.0785 3.65642 4.08197 3.59993 2.57567 + 5.34001 4.0785 9.78031 2.57567 9.78031 5.10017 4.0785 4.08197 3.60276 2.57562 4.62114 + 5.10017 8.27629 9.24096 4.62114 5.10017 9.78014 9.24096 4.62114 4.07845 5.10017 4.07845 + 3.59993 4.62114 3.60276 4.07845 8.3364 2.81965 5.10017 5.10017 4.08192 3.60276 2.57562 + 4.62114 5.10017 4.62114 2.57562 2.57562 ] pdfxs + 316.8 388.801 m + (butslow,code.Wedescribeseveralstraightforwardim-) + [5.10017 5.10017 8.2828 3.65645 2.57564 4.38103 6.65759 7.4958 4.08197 4.86094 5.10017 + 4.0785 11.4555 8.69858 8.69849 5.10017 4.07845 3.65647 4.08197 3.59993 2.57562 5.34001 + 8.81839 3.65647 4.07845 4.61639 4.07845 3.59993 4.62114 7.19563 3.65647 3.60276 3.59993 + 4.62109 2.57567 4.62109 4.86003 3.60276 2.81965 4.62109 3.59993 6.41775 4.62114 3.59993 + 9.60007 2.57562 7.67579 3.06372 ] pdfxs + 316.8 378.361 m + (provementsbelowthatcansigni\fcantlyreduceredundant) + [5.10017 3.59993 4.38118 4.61612 4.0785 7.67579 4.07848 4.86018 3.60273 7.67651 5.34001 + 4.0785 2.57567 4.38093 10.6776 3.60273 5.10017 4.62109 7.62257 4.08192 4.62114 9.12009 + 3.65647 2.57562 4.62114 5.10017 2.57562 5.10017 4.08197 4.62109 4.86018 3.60276 2.57562 + 8.81624 3.59993 4.07845 5.10017 5.10017 4.08197 8.21853 3.59993 4.07845 5.10017 5.10017 + 5.10017 5.10017 4.62114 4.86033 3.60276 ] pdfxs + 316.8 367.921 m + (orine\016centoperationsinthegeneratedcode.The\frsttwo) + [4.62109 6.41978 2.57567 5.10017 4.0785 7.67576 4.08197 4.0785 4.86033 6.48281 4.62109 + 5.34033 4.0785 3.59993 4.62109 3.60273 2.57567 4.62109 5.10017 6.47651 2.57562 7.92019 + 3.60276 5.10017 6.95863 4.62114 4.07845 5.10017 4.07845 3.59993 4.62114 3.60276 4.07845 + 7.98034 4.08192 4.86099 5.10017 4.07845 6.65549 6.65759 5.10017 6.89862 5.10017 3.59993 + 3.65647 6.42283 3.36292 6.4175 4.62114 ] pdfxs + 316.8 357.421 m + (applytobothstaticanddynamiccompression,whilethe) + [4.62109 5.10017 5.10017 2.57567 9.05635 3.60273 8.82102 5.34001 4.62109 3.60273 9.30009 + 3.65645 3.60273 4.62109 3.60273 2.57567 8.22203 4.62109 5.10017 9.36022 5.10017 4.85623 + 5.10017 4.62109 7.67579 2.57562 8.28186 4.08192 4.62114 7.67525 5.10017 3.59993 4.0785 + 3.65647 3.65642 2.57567 4.62109 5.10017 7.01565 6.65759 5.10017 2.57562 2.57567 8.27845 + 3.60276 5.10017 4.07845 ] pdfxs + 316.8 346.982 m + (thirdapplieswheneverconditionalbrancheson) + [3.60273 5.10017 2.57567 3.59993 8.58031 4.62109 5.10017 5.10017 2.57567 2.57567 4.07848 + 7.01653 6.65759 5.10017 4.07848 5.10017 4.0785 4.61605 4.0785 7.13984 4.08192 4.62114 + 5.10017 5.10017 2.57562 3.60276 2.57567 4.62109 5.10017 4.62114 5.99563 5.10017 3.59993 + 4.62114 5.10017 3.84208 5.10017 4.07845 7.1364 4.62114 5.10017 ] pdfxs + 511.92 346.982 m + /N15 8.96638 Tf + (isComp) + [4.6799 4.67995 4.6799 4.67995 4.6799 4.6799 ] pdfxs + 543.6 346.982 m + /N17 8.96638 Tf + (are) + [4.62114 3.59993 4.07845 ] pdfxs + 316.8 336.541 m + (used.) + [5.10017 3.65645 4.07848 5.10017 2.57567 ] pdfxs + 316.8 317.762 m + /N9 11.9552 Tf + (5.1AddressSpaceReservation) + [6 3 17.9398 8.63981 6.66002 6.66002 5.03981 5.27982 4.67992 7.61999 6.66002 + 6.65999 6 5.27985 8.2798 8.63981 5.27985 4.67987 5.2798 5.15968 5.88008 6 + 3.95994 3.30001 6 6.66002 ] pdfxs + 325.8 304.801 m + /N17 8.96638 Tf + (Oneofthebiggestpotentialoverheadsofpointercom-) + [7.13659 5.10017 8.4585 4.62109 7.13978 3.60273 5.10017 8.3985 5.10017 2.57567 4.62109 + 4.62109 4.0785 3.65645 7.9228 5.34001 4.62114 3.60276 4.07845 4.86033 3.60276 2.57562 + 4.62114 6.83548 4.3812 4.61615 4.07845 3.59993 5.10017 4.0785 4.62109 5.10017 8.0364 + 4.62114 7.13976 5.34001 4.62114 2.57562 4.86033 3.60276 4.07845 7.91994 4.08192 4.62114 + 7.67525 3.06372 ] pdfxs + 316.8 294.362 m + (pressionistheneedtokeepthememorypoolscontiguous) + [5.10017 3.59993 4.0785 3.65642 3.65645 2.57567 4.62109 8.88024 2.57567 7.37658 3.60273 + 5.10017 7.85865 5.10017 4.0785 4.0785 9.00031 3.60273 8.34096 4.61615 4.07845 4.0785 + 8.94015 3.60276 5.10017 7.85862 7.67525 4.0785 7.67525 4.62114 3.59993 8.63621 5.34001 + 4.86128 4.62114 2.57562 7.4363 4.08192 4.62114 4.86033 3.60276 2.57562 4.62114 5.10017 + 4.62114 5.10017 3.65642 ] pdfxs + 316.8 283.921 m + (forindexedpools.Inparticular,anypoolmustbeableto) + [2.81963 4.62109 7.14001 2.57567 5.10017 5.10017 4.0785 4.85619 4.0785 8.70016 5.34001 + 4.86126 4.62109 2.57567 3.65645 8.03564 3.30018 8.70016 5.10017 4.62114 3.59993 3.60276 + 2.57562 4.08192 5.10017 2.57567 4.62109 3.59993 6.17581 4.62114 4.86023 8.39622 5.34001 + 4.86128 4.62114 6.11546 7.43511 5.10017 3.65647 7.14275 5.34001 7.67855 4.62114 5.10017 + 2.57562 7.61839 3.60276 4.62114 ] pdfxs + 316.8 273.421 m + (growinsizeasmemoryisallocatedfromit.\(Notethatthis) + [4.62109 3.59993 4.3811 9.47765 2.57567 7.98032 3.65645 2.57564 4.08197 6.95858 4.62109 + 6.47644 7.67579 4.0785 7.67576 4.62112 3.59993 7.73621 2.57562 6.47663 4.62114 2.57562 + 2.57562 4.86099 4.08192 4.62114 3.60276 4.07845 7.98034 2.81965 3.59993 4.62109 10.5558 + 2.57562 3.60276 6.53558 3.60276 6.90289 4.62114 3.60276 6.89838 3.60276 5.10017 4.62114 + 6.48273 3.60276 5.10017 2.57562 3.65647 ] pdfxs + 316.8 262.982 m + (isunrelatedtodecompression,andappliestoallversions) + [2.57567 7.85627 5.10017 5.10017 3.59993 4.0785 2.57567 4.62109 3.60273 4.07848 9.3601 + 3.60273 8.76125 5.10017 4.0785 4.08197 4.62109 7.67579 5.10017 3.59993 4.07845 3.65647 + 3.65647 2.57562 4.62114 5.10017 7.07546 4.62114 5.10017 9.36022 4.62114 5.10017 5.10017 + 2.57562 2.57562 4.0785 7.7966 3.60276 8.82104 4.62114 2.57562 6.71555 4.61615 4.07845 + 3.59993 3.65647 2.57567 4.62109 5.10017 3.65647 ] pdfxs + 316.8 252.542 m + ({basicpoolallocation,staticcompressionaswelldynamic) + [7.92102 5.10017 4.62109 3.65645 2.57567 7.3818 5.34001 4.86126 4.62109 5.93582 4.62109 + 2.57567 2.57567 4.86094 4.08197 4.62109 3.60273 2.57567 4.62109 5.10017 5.81556 3.65647 + 3.60276 4.62109 3.60276 2.57567 7.322 4.08192 4.62114 7.67525 5.10017 3.59993 4.0785 + 3.65647 3.65642 2.57567 4.62109 8.46003 4.62114 6.89636 6.4175 4.07845 2.57567 5.87546 + 5.10017 4.85623 5.10017 4.62109 7.67579 2.57562 4.08197 ] pdfxs + 316.8 242.042 m + (compression.\)Ifthepoolallocatorisbuiltontopofagen-) + [4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 2.57564 4.62112 5.10017 + 2.57564 7.86267 3.30018 5.93947 3.60273 5.10017 7.25865 5.34001 4.86128 4.62114 5.69553 + 4.62114 2.57562 2.57562 4.86099 4.08192 4.62114 3.60276 4.62114 6.71975 2.57562 6.71648 + 5.10017 5.10017 2.57562 2.57567 6.72282 4.62114 8.21999 3.60276 4.62114 8.28014 4.62114 + 5.93977 7.74096 4.62114 4.07845 5.10017 3.06372 ] pdfxs + 316.8 231.602 m + (eralmemoryallocatorlike) + [4.0785 3.59993 4.62109 4.67573 7.67579 4.0785 7.67576 4.62112 3.59993 6.95611 4.62109 + 2.57567 2.57567 4.86094 4.08197 4.62109 3.60273 4.62109 5.64009 2.57567 2.57567 4.61629 + 4.07845 ] pdfxs + 421.5 231.602 m + /N15 8.96638 Tf + (malloc) + [4.6799 4.67995 4.6799 4.67995 4.6799 4.6799 ] pdfxs + 449.58 231.602 m + /N17 8.96638 Tf + (,keepingapoolcontiguous) + [5.03547 4.61615 4.07845 4.0785 5.10017 2.57562 5.10017 6.72129 6.72105 5.34001 4.86128 + 4.62114 4.67562 4.08192 4.62114 4.86033 3.60276 2.57562 4.62114 5.10017 4.62114 5.10017 + 3.65642 ] pdfxs + 316.8 221.162 m + (whengrowingitmayrequirecopyingallitsdatatoanew) + [6.65759 5.10017 4.07848 8.70001 4.62109 3.59993 4.3811 6.65759 2.57564 5.10017 8.10095 + 2.57567 7.08288 7.67579 4.38125 8.33603 3.59993 4.07845 4.85623 5.10017 2.57567 3.59993 + 7.67845 4.08192 4.62114 4.86033 4.85623 2.57562 5.10017 8.16113 4.62114 2.57562 6.05579 + 2.57562 3.60276 7.07664 5.10017 4.62114 3.60276 8.16117 3.60276 8.10112 8.16127 5.10017 + 4.07845 6.65759 ] pdfxs + 316.8 210.662 m + (locationwithenoughmemory.Althoughindicesintothe) + [2.57567 4.86094 4.08197 4.62109 3.60273 2.57567 4.62109 9.30016 6.65759 2.57564 3.60273 + 9.30002 4.0785 5.10017 4.62109 5.10017 4.62109 9.42001 7.67525 4.0785 7.67525 4.62114 + 3.59993 4.07606 10.1355 6.90289 2.57562 3.60276 5.10017 4.62114 5.10017 4.62114 9.30006 + 2.57562 5.10017 5.10017 2.57567 4.08192 4.0785 7.91628 2.57562 4.86003 3.60276 8.82104 + 3.60276 5.10017 4.07845 ] pdfxs + 316.8 200.222 m + (pooldonothavetoberewrittenbecausebyteo\013setsdonot) + [5.34001 4.86126 4.62109 5.27567 5.10017 7.32101 5.10017 4.62109 6.24289 5.10017 4.38118 + 4.61612 6.77858 3.60273 7.26125 5.34001 6.83834 3.59993 4.07845 6.65759 3.59993 2.57567 + 3.60276 3.60276 4.07845 7.80016 5.34001 4.07845 4.08197 4.62109 5.10017 3.65647 6.77841 + 4.86033 4.85623 3.60276 6.77831 4.62114 5.40425 3.65642 4.0785 3.60276 6.29661 5.10017 + 7.26128 5.10017 4.62114 3.60276 ] pdfxs + 316.8 189.782 m + (change,thedatacopycanbequiteexpensive.) + [3.84181 5.10017 4.62109 5.10017 4.62109 4.0785 5.69559 3.60273 5.10017 7.13833 5.10017 + 4.62109 3.60273 7.6811 4.08197 4.62109 4.86033 7.91612 4.08192 4.62114 8.22009 5.34001 + 7.19847 4.85623 5.10017 2.57562 3.60276 7.13856 4.07845 4.85623 5.34026 4.07845 5.10017 + 3.65647 2.57567 4.61605 4.07845 2.57567 ] pdfxs + 325.8 179.282 m + (Giventhatthisworktargets64-bitaddressspacema-) + [7.25576 2.57564 4.61637 4.0785 9.72015 3.60273 5.10017 4.62109 8.22258 3.60273 5.10017 + 2.57567 8.27658 6.4175 4.62109 3.59993 9.4762 3.60276 4.62114 3.59993 4.62109 4.0785 + 3.60276 8.27644 4.62114 4.62109 3.06372 5.10017 2.57562 8.22277 4.62114 5.10017 5.10017 + 3.59993 4.07845 3.65647 8.27629 3.65647 5.10017 4.62109 4.08197 8.75838 7.67525 4.62114 + 3.06372 ] pdfxs + 316.8 168.842 m + (chines,however,areasonableimplementationapproachis) + [3.84181 5.10017 2.57567 5.10017 4.0785 3.65642 6.95574 5.10017 4.38118 6.4175 4.0785 + 4.6162 4.0785 3.59993 6.89573 8.70109 3.59993 4.0785 4.62109 3.65647 4.62109 5.10017 + 4.62114 5.10017 2.57562 8.21849 2.57562 7.67579 5.10017 2.57562 4.0785 7.67525 4.07845 + 4.86003 3.60276 4.62114 3.60276 2.57562 4.62114 9.11999 4.62114 5.10017 5.10017 3.59993 + 4.62109 4.62114 3.84193 9.24 2.57562 3.65647 ] pdfxs + 316.8 158.402 m + (tochoosealargestaticlimitforindividualdatastruc-) + [3.60273 9.90109 3.84181 5.10017 4.86126 4.62109 3.65645 9.29856 9.90109 2.57567 4.62109 + 3.59993 4.62109 9.29842 3.65645 3.60273 4.62109 3.60271 2.57567 9.30208 2.57562 2.57567 + 7.67525 2.57567 8.76281 2.81965 4.62109 8.87986 2.57562 5.10017 5.10017 2.57567 4.85623 + 2.57562 5.10017 5.10017 4.62114 7.85569 5.10017 4.62114 3.60276 9.84125 3.65647 3.60276 + 3.59993 5.10017 4.08192 3.06372 ] pdfxs + 316.8 147.902 m + (turesintheprogramthatisunlikelytobeexceeded\(e.g.,) + [3.60273 5.10017 3.59993 4.0785 7.37658 2.57567 8.76 3.60273 5.10017 7.79849 5.10017 + 3.59993 4.62109 4.62109 3.59993 4.62112 11.3959 3.60273 5.10017 4.62114 7.26282 2.57562 + 7.31648 5.10017 5.10017 2.57562 2.57567 4.61629 4.07845 2.57567 8.51628 3.60276 8.2812 + 5.34001 7.85862 4.07845 4.85623 4.08197 4.07845 4.07845 5.10017 4.0785 8.88 3.60276 + 4.07845 2.57567 4.62109 2.57567 2.57562 ] pdfxs + 316.8 137.462 m + (2) show + 321.42 141.241 m + /N21 5.97748 Tf + (40) + [3.65925 3.65922 ] pdfxs + 329.22 137.462 m + /N17 8.96638 Tf + (B\),andreservethatmuchaddressspaceforeachpool) + [6.54066 3.60273 6.47559 4.62109 5.10017 9.06025 3.59993 4.0785 3.65642 4.0785 3.59993 + 4.61605 8.09849 3.60273 5.10017 4.62114 7.50266 7.43511 5.10017 3.84179 9.06032 4.62114 + 5.10017 5.10017 3.59993 4.07845 3.65647 7.61652 3.65647 5.10017 4.62109 4.08197 8.03846 + 2.81965 4.62109 7.55993 4.07845 4.62114 3.84179 9.06032 5.34001 4.86128 4.62114 2.57562 + ] pdfxs + 316.8 127.022 m + (whenitiscreatedbytheprogram\(usingfacilitieslike) + [6.65759 5.10017 4.07848 10.5602 2.57567 9.0028 2.57567 8.9965 4.08197 3.59993 4.0785 + 4.62109 3.60273 4.0785 10.5601 4.86033 10.2564 3.60276 5.10017 9.53831 5.10017 3.59993 + 4.62114 4.62109 3.59993 4.62114 13.0751 3.60276 5.10017 3.65647 2.57562 5.10017 9.96112 + 2.81965 4.62109 4.08197 2.57562 2.57562 2.57567 3.60276 2.57562 4.0785 8.99636 2.57562 + 2.57567 4.61629 4.07845 ] pdfxs + 316.8 116.522 m + /N15 8.96638 Tf + (mmap\(MAP) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.67993 ] pdfxs + Q + n + 3548 1165 28.8008 4.19922 re + f + q + 10 0 0 10 0 0 cm + 357.84 116.52 m + /N15 8.96638 Tf + (NORESERVE\)) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.67993 4.67995 4.67995 ] pdfxs + 404.64 116.52 m + /N17 8.96638 Tf + (\).Thisallowstheprogramtogrowa) + [3.60273 6.23547 6.65759 5.10017 2.57562 7.01662 4.62114 2.57562 2.57562 4.3813 6.65759 + 6.95637 3.60276 5.10017 7.49847 5.10017 3.59993 4.62114 4.62109 3.59993 4.62114 11.0954 + 3.60276 7.9812 4.62114 3.59993 4.3811 10.0175 4.62114 ] pdfxs + 316.8 106.08 m + (datastructureuptothat\(large\)sizewithouteverneeding) + [5.10017 4.62109 3.60273 7.92095 3.65645 3.60273 3.59993 5.10017 4.08195 3.60273 5.10017 + 3.59993 7.43858 5.10017 8.52008 3.60273 7.92102 3.60273 5.10017 4.62114 6.90265 3.60276 + 2.57562 4.62114 3.59993 4.62114 4.07845 6.90275 3.65647 2.57562 4.08197 7.37845 6.65759 + 2.57562 3.60276 5.10017 4.62114 5.10017 6.9029 4.07845 4.61624 4.07845 6.95979 5.10017 + 4.07845 4.0785 5.10017 2.57562 5.10017 4.62114 ] pdfxs + 316.8 95.64 m + (tocopythepoolormoveliveobjectswithinthepool.The) + [3.60273 7.80109 4.08197 4.62109 4.86033 8.09619 3.60273 5.10017 7.31841 5.34001 4.86126 + 4.62109 5.8155 4.62109 6.84009 7.67579 4.38125 4.61615 7.25863 2.57562 2.57567 4.61629 + 7.25863 4.62114 5.6403 2.81965 4.07845 4.08192 3.60276 6.89656 6.65759 2.57562 3.60276 + 5.10017 2.57567 8.28014 3.60276 5.10017 7.31839 5.34001 4.86128 4.62114 2.57562 7.13547 + 6.65759 5.10017 4.07845 ] pdfxs + 316.8 85.14 m + (operatingsystemkernelallocatesmemorypagestothedata) + [4.62109 5.34033 4.0785 3.59993 4.62109 3.60273 2.57567 5.10017 7.32109 3.65645 4.85619 + 3.65645 3.60273 4.0785 10.2557 4.61612 4.0785 3.59993 5.10017 4.0785 5.27547 4.62114 + 2.57562 2.57562 4.86099 4.08192 4.62114 3.60276 4.07845 6.2364 7.67525 4.0785 7.67525 + 4.62114 3.59993 7.49637 5.10017 4.62114 4.62109 4.0785 6.29636 3.60276 7.26128 3.60276 + 5.10017 6.77855 5.10017 4.62114 3.60276 4.62109 ] pdfxs + 316.8 74.7002 m + (structureondemand,astheyarereferenced.) + [3.65645 3.60273 3.59993 5.10017 4.08195 3.60273 5.10017 3.59993 7.19835 4.62109 8.16024 + 5.10017 4.0785 7.67579 4.62109 5.10017 5.10017 5.69573 4.62114 6.71629 3.60276 5.10017 + 4.07845 7.91624 4.62114 3.59993 7.19837 3.59993 4.07845 2.81965 4.07845 3.59993 4.0785 + 5.10017 4.08192 4.0785 5.10017 2.57562 ] pdfxs + Q + Q + PDFVars/TermAll get exec end end + userdict /pgsave get restore + showpage + %%PageTrailer + %%EndPage + %%Page: 9 9 + %%BeginPageSetup + userdict /pgsave save put + PDFVars begin PDF begin PDFVars/InitAll get exec + 0 0 612 792 true PDF begin PDFVars begin AS end end + %%EndPageSetup + 0 0 612 792 re + W + n + q + 0.0999908 0 0 0.0999908 0 0 cm + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 62.7602 728.22 m + /N17 8.96638 Tf + (ThisstrategyalsoensuresthatthePoolBaseneverchanges,) + [6.65758 5.10016 2.57565 5.69629 3.65644 3.60274 3.59993 4.62111 3.60274 4.07849 4.62111 + 6.83614 4.62111 2.57565 3.65645 6.60126 4.0785 5.10016 3.65645 5.10016 3.59993 4.07849 + 5.75653 3.60275 5.10016 4.62111 5.58275 3.60275 5.10016 6.17857 6.05683 4.86126 4.62109 + 2.57567 6.54066 4.62112 3.65642 5.99842 5.10017 4.0785 4.6162 4.0785 5.7 3.84181 + 5.10017 4.62109 5.10017 4.62109 4.0785 3.65645 2.55545 ] pdfxs + 53.8201 717.78 m + (whichcanmakethenextoptimizationmoree\013ective.) + [6.65758 5.10016 2.57565 3.84204 8.16031 4.08196 4.62111 8.22008 7.67578 4.62111 4.61614 + 7.13833 3.60275 5.10016 7.13833 5.10016 4.0785 4.85621 6.7229 4.62111 5.10016 3.60275 + 2.57565 7.67576 2.57565 4.08197 4.62111 3.60275 2.57564 4.62112 8.10014 7.67579 4.62109 + 3.59993 7.13833 4.0785 5.40425 4.0785 4.08195 3.60273 2.57567 4.61605 4.0785 2.57567 + ] pdfxs + 53.8201 697.56 m + /N9 11.9552 Tf + (5.2ReducingRedundantPoolBaseLoads) + [6 3 17.8801 8.63982 5.27982 6.65999 6.66001 5.27981 3.30001 6.65999 9.00001 + 8.63982 5.27981 6.65999 6.66001 6.65999 6.65999 6 6.65999 6.89983 7.07999 6 + 6 3.30001 7.97992 6 4.67989 8.21991 7.97992 6 6 6.65999 4.67992 + ] pdfxs + 62.7602 684.6 m + /N17 8.96638 Tf + (Pointercompressionrequiresloadingthe) + [6.05683 4.62111 2.57565 4.86031 3.60274 4.07849 7.85977 4.08196 4.62111 7.67576 5.10016 + 3.59993 4.0785 3.65645 3.65645 2.57565 4.62111 9.42016 3.59993 4.0785 4.85621 5.10016 + 2.57564 3.59993 4.0785 7.97652 2.57565 4.62111 4.62111 5.10016 2.57567 5.10017 8.94093 + 3.60273 5.10017 4.0785 ] pdfxs + 236.04 684.6 m + /N15 8.96638 Tf + (PoolBase) + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 4.67993 ] pdfxs + 278.04 684.6 m + /N17 8.96638 Tf + (and) + [4.62109 5.10017 5.10017 ] pdfxs + 53.8202 674.1 m + /N15 8.96638 Tf + (isComp) + [4.67993 4.67993 4.67994 4.67993 4.67993 4.67993 ] pdfxs + 86.5804 674.1 m + /N17 8.96638 Tf + (\feldsfromthepooldescriptorforeachloadand) + [5.10016 4.07849 2.57565 5.10016 8.21652 2.81964 3.59993 4.62112 12.2358 3.60275 5.10016 + 8.63834 5.34 4.86127 4.62111 7.1358 5.10016 4.0785 3.65645 4.08196 3.59993 2.57565 + 5.10016 3.60273 4.62109 8.16001 2.81963 4.62109 8.15993 4.0785 4.62109 3.84181 9.66032 + 2.57567 4.62109 4.62109 9.60009 4.62109 5.10017 5.10017 ] pdfxs + 53.8202 663.66 m + (storefromapool.Althoughtheseloadsarelikelytohitin) + [3.65644 3.60274 4.62111 3.59993 7.25833 2.81964 3.59993 4.62111 10.9159 7.80111 5.34 + 4.86127 4.62111 2.57565 7.13549 6.90289 2.57565 3.60273 5.10016 4.62112 5.10016 4.62111 + 8.34032 3.60275 5.10016 4.07849 3.65646 7.37841 2.57565 4.62111 4.62109 5.10017 6.8366 + 4.62109 3.59993 7.31834 2.57567 2.57567 4.61627 4.0785 2.57567 8.03619 3.60273 7.80109 + 5.10017 2.57567 6.84265 2.57567 5.10017 ] pdfxs + 53.8202 653.22 m + (the) + [3.60274 5.10016 7.79848 ] pdfxs + (L) show + (1cache,thisoverheadcandramaticallyimpacttight) + [8.34111 4.08196 4.62111 3.8418 5.10016 4.0785 6.4758 3.60275 5.10016 2.57564 7.37661 + 4.38119 4.61614 4.0785 3.59993 5.10015 4.0785 4.62111 8.82016 4.08197 4.62111 8.88023 + 5.10016 3.59993 4.62111 7.67579 4.62109 3.60273 2.57567 4.08197 4.62109 2.57567 2.57564 + 8.51628 2.57567 7.67579 5.10017 4.62109 4.08197 7.3228 3.60273 2.57567 4.62109 4.86033 + 3.60273 ] pdfxs + 53.8202 642.72 m + (pointer-chasingloops.Fortunately,almostallofthesel) + [5.34 4.62111 2.57565 4.86031 3.60274 4.07849 3.59993 3.06372 3.84204 5.10016 4.62111 + 3.65644 2.57565 5.10016 7.38095 2.57565 4.86095 4.62111 5.10016 3.65645 6.53558 5.22153 + 4.62111 3.59993 3.60275 5.10016 5.10016 4.62112 3.60275 4.07849 2.57565 4.07629 5.4558 + 4.62111 2.57565 7.67579 4.62109 3.65645 6.30287 4.62109 2.57567 5.27574 4.62109 5.63979 + 3.60273 5.10017 4.0785 3.65642 6.89835 2.57567 ] pdfxs + (o) show + 279.6 642.72 m + (ads) + [4.62109 5.10017 3.65645 ] pdfxs + 53.8202 632.28 m + (areredundantandcanberemovedwithPartialRedundancy) + [4.62111 3.59993 6.35856 3.59993 4.07849 5.10016 5.10016 5.10016 5.10016 4.62111 4.86033 + 6.00274 4.62111 5.10016 7.38016 4.08197 4.62111 7.43999 5.34 6.41841 3.59993 4.0785 + 7.67576 4.38096 4.61614 4.0785 7.44007 6.65758 2.57565 3.60273 7.32033 6.05683 4.62109 + 3.59993 3.60273 2.57567 4.62109 4.79559 6.77573 4.0785 5.10017 5.10015 5.10017 5.10017 + 4.62112 5.10017 4.08195 4.85621 ] pdfxs + 53.8202 621.84 m + (Elimination\(oracombinationof) + [6.29667 2.57565 2.57565 7.67578 2.57565 5.10016 4.62111 3.60274 2.57565 4.62111 9 + 3.60275 4.62111 7.61978 8.64095 4.08197 4.62111 7.43562 5.10016 2.57565 5.10015 4.62112 + 3.60275 2.57564 4.62112 9.12007 4.62111 6.83979 ] pdfxs + (L) show + (ICMandGCSE\).The) + [3.30019 6.65756 12.4803 4.62109 5.10017 9.18017 7.25576 6.65756 5.10017 6.29667 3.60273 + 6.53582 6.65759 5.10017 4.07848 ] pdfxs + 53.8202 611.34 m + (onlyoperationthatinvalidatesthese\feldsisanallocati) + [4.62111 5.10016 2.57565 8.03605 4.62111 5.34031 4.07849 3.59993 4.62111 3.60274 2.57564 + 4.62112 8.28023 3.60275 5.10016 4.62111 6.78275 2.57565 4.86 4.31613 4.62111 2.57565 + 2.57565 5.10015 4.62112 3.60275 4.07849 6.83637 3.60275 5.10016 4.07849 3.65646 7.31865 + 5.10017 4.0785 2.57567 5.10017 6.83643 2.57567 6.83635 4.62109 8.28017 4.62109 2.57567 + 2.57567 4.86094 4.08197 4.62109 3.60273 2.57567 ] pdfxs + (o) show + 285.3 611.34 m + (n,) + [5.10017 2.57567 ] pdfxs + 53.8202 600.9 m + (eitherfromthepool\(movingthepoolbase\)or,inthedy-) + [4.07849 2.57565 3.60274 5.10016 4.07849 7.14 2.81964 3.59993 4.62111 11.1558 3.60275 + 5.10016 7.61841 5.34 4.86127 4.62111 6.11549 3.60275 7.67578 4.38126 4.85621 2.57565 + 5.10016 8.04118 3.60275 5.10016 7.61841 5.34 4.86127 4.62109 6.1155 5.10017 4.62109 + 3.65645 4.0785 7.14272 4.62109 3.59993 6.17566 2.57567 8.58031 3.60273 5.10017 7.61841 + 5.10017 4.85621 3.06372 ] pdfxs + 53.8202 590.46 m + (namiccase,fromoneofthepoolsitpointsto\(decompressin) + [5.10016 4.62111 7.67578 2.57565 6.24188 4.08196 4.62111 3.65644 4.07849 4.85565 2.81964 + 3.59993 4.62112 9.83584 4.62111 5.10016 6.23866 4.62111 4.97965 3.60275 5.10016 6.23834 + 5.34 4.86127 4.62111 2.57565 5.81637 2.57565 5.70282 5.34 4.62111 2.57567 4.86033 + 3.60273 5.75659 3.60273 6.78117 3.60273 5.10017 4.0785 4.08197 4.62109 7.67576 5.10017 + 3.59993 4.0785 3.65645 3.65642 2.57567 5.10017 ] pdfxs + (g) show + 53.8202 579.96 m + (pointersinthepool\).TheDSgraphsdirectlyidentifywhic) + [5.34 4.62111 2.57565 4.86031 3.60274 4.07849 3.59993 6.11644 2.57565 7.56 3.60274 + 5.10016 6.59849 5.34 4.86127 4.62111 2.57565 3.60275 6.47573 6.65758 5.10016 6.5385 + 7.01981 7.68016 4.62111 3.59993 4.62112 5.10016 5.10016 6.1166 5.10017 2.57567 3.59993 + 4.0785 4.08195 3.60273 2.57567 7.31605 2.57567 5.10017 4.0785 4.86008 3.60273 2.57567 + 2.81963 7.31612 6.65759 5.10017 2.57564 3.84205 ] pdfxs + (h) show + 53.8202 569.52 m + (functioncallsmaycausesuchoperations.) + [2.81964 5.10016 5.10016 4.08196 3.60274 2.57565 4.62111 8.16031 4.08196 4.62111 2.57565 + 2.57565 6.65644 7.67578 4.38126 7.91613 4.08197 4.62111 5.10016 3.65645 7.19865 3.65645 + 5.10016 3.84197 8.16031 4.62111 5.34032 4.0785 3.59993 4.62111 3.60275 2.57564 4.62112 + 5.10017 3.65642 2.57567 ] pdfxs + 62.7604 559.08 m + (NotethatifAddressSpaceReservationisused,the) + [6.9029 4.62111 3.60274 9.83864 3.60274 5.10016 4.62111 9.36281 2.57565 8.57978 6.90289 + 5.10016 5.10016 3.59993 4.07849 3.65646 9.47636 5.10016 5.10016 4.62111 4.08197 9.89849 + 6.77573 4.07849 3.65645 4.0785 3.59993 4.31612 4.62109 3.60273 2.57567 4.62109 10.92 + 2.57567 9.35627 5.10017 3.65645 4.07848 5.10017 9.05566 3.60273 5.10017 4.0785 ] pdfxs + 53.8202 548.58 m + /N15 8.96638 Tf + (PoolBase) + [4.67993 4.67993 4.67994 4.67993 4.67993 4.67993 4.67993 4.67993 ] pdfxs + 94.5003 548.58 m + /N17 8.96638 Tf + (isneverinvalidated,makingitreasonabletoload) + [2.57565 6.65644 5.10016 4.0785 4.61621 4.0785 6.71992 2.57565 4.86 4.31613 4.62111 + 2.57565 2.57565 5.10015 4.62112 3.60275 4.07849 5.10016 5.57565 7.67578 4.62111 4.85621 + 2.57565 5.10016 7.68102 2.57567 6.60273 3.59993 4.0785 4.62109 3.65645 4.62109 5.10017 + 4.62109 5.10017 2.57567 7.13841 3.60273 7.62109 2.57567 4.62109 4.62109 5.10017 ] pdfxs + 53.8202 538.14 m + (itonceintoaregisterwhenthepoolisinitializedorinthe) + [2.57565 6.84266 4.62111 5.10016 4.08196 7.37857 2.57565 4.86 3.60274 7.92103 7.86127 + 3.59993 4.0785 4.62111 2.57564 3.65646 3.60275 4.07849 6.89986 6.65758 5.10016 4.0785 + 8.39999 3.60275 5.10016 7.43834 5.34 4.86127 4.62111 5.87565 2.57567 6.8965 2.57567 + 5.10017 2.57567 3.60273 2.57564 4.62112 2.57564 2.57567 4.08197 4.0785 8.34008 4.62109 + 6.84009 2.57567 8.40024 3.60273 5.10017 4.0785 ] pdfxs + 53.8202 527.64 m + (prologueofafunctionifthepooldescriptorispassedinas) + [5.10016 3.59993 4.62111 2.57565 4.62111 4.62111 5.10016 7.31865 4.62111 6.05971 7.86127 + 2.81964 5.10016 5.10016 4.08197 3.60275 2.57564 4.62112 8.33999 2.57565 6.05948 3.60275 + 5.10016 7.37857 5.34 4.86127 4.62111 5.8155 5.10016 4.0785 3.65645 4.08195 3.59993 + 2.57567 5.10017 3.60273 4.62109 6.89986 2.57567 6.83635 5.10017 4.62109 3.65645 3.65642 + 4.0785 8.34033 2.57567 8.34008 4.62109 3.65645 ] pdfxs + 53.8202 517.2 m + (anargument.Figure14shows) + [4.62111 8.51999 4.62111 3.59993 4.62111 5.10016 7.67578 4.0785 4.86031 3.60275 7.73549 + 6.00161 2.57564 4.62112 5.10016 3.59993 7.55865 4.62111 8.04126 3.65645 5.10016 4.38096 + 6.65758 3.65645 ] pdfxs + 181.8 517.2 m + /N15 8.96638 Tf + (MakeList) + [4.67994 4.67993 4.67994 4.67993 4.67995 4.67995 4.67995 4.67993 ] pdfxs + Q + n + 2198 5172 28.8008 4.19922 re + [/DeviceGray] cs 0 sc + f + q + 10 0 0 10 0 0 cm + 222.84 517.2 m + /N15 8.96638 Tf + (pc32) + [4.67995 4.67995 4.67993 4.67995 ] pdfxs + 245.1 517.2 m + /N17 8.96638 Tf + (aftersimple) + [4.62109 2.81963 3.60273 4.0785 7.01977 3.65645 2.57564 7.67579 5.10017 2.57567 4.0785 + ] pdfxs + 53.8202 506.76 m + (optimizationsona64-bitmachine\(assumingaddressspace) + [4.62111 5.10016 3.60274 2.57565 7.67578 2.57565 4.08196 4.62111 3.60274 2.57565 4.62111 + 5.10016 6.65644 4.62111 8.28015 7.74095 4.62111 4.62112 3.06372 5.10016 2.57564 6.6626 + 7.67578 4.62111 3.84181 5.10016 2.57565 5.10015 7.25835 3.60275 4.62111 3.65645 3.65642 + 5.10017 7.67579 2.57567 5.10017 7.68118 4.62109 5.10017 5.10017 3.59993 4.0785 3.65642 + 6.77629 3.65645 5.10017 4.62109 4.08197 4.07848 ] pdfxs + 53.8202 496.26 m + (reservationisused\).) + [3.59993 4.07849 3.65644 4.0785 3.59993 4.31605 4.62111 3.60274 2.57565 4.62111 8.16023 + 2.57565 6.65644 5.10016 3.65645 4.0785 5.10016 3.60275 2.57564 ] pdfxs + 53.8202 476.4 m + /N39 6.97377 Tf + (staticintMakeList_pc32\(Pool*PD,intN\){) + [3.71825 3.71824 3.71825 3.71825 3.71825 7.31813 3.71825 3.71824 7.37813 3.71825 3.71824 + 3.71825 3.71825 3.71826 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 3.71825 3.71826 + 3.71825 3.71825 3.71826 3.71825 7.1383 3.71825 3.71826 3.71825 7.37805 3.71825 3.71826 + 7.37813 3.71825 7.37821 3.71825 ] pdfxs + 61.2002 468.48 m + (char*PoolBase=PD->poolbase;) + [3.71825 3.71824 3.71825 7.37805 3.71825 3.71824 3.71825 3.71825 3.71825 3.71824 3.71826 + 3.71825 7.25813 7.43805 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 3.71826 3.71825 + 3.71825 3.71826 3.71825 3.71825 3.71826 ] pdfxs + 61.2002 460.5 m + (intResult=0;) + [3.71825 3.71824 7.37813 3.71825 3.71824 3.71825 3.71825 3.71825 7.31813 7.43805 3.71825 + 3.71826 ] pdfxs + 61.2002 452.52 m + (for\(inti=0;i!=N;++i\){) + [3.71825 3.71824 7.37813 3.71825 3.71824 3.71825 7.37805 7.37828 7.43805 3.71825 7.37821 + 7.43805 3.71825 7.37821 3.71825 7.37821 3.71825 3.71826 3.71825 7.37805 3.71825 ] pdfxs + 68.64 444.54 m + (intNode=poolalloc_pc\(PD,sizeof\(list_pc32\)\);) + [3.71825 3.71824 7.37813 3.71825 3.71824 3.71825 7.31828 7.43805 3.71825 3.71826 3.71825 + 3.71825 3.71826 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 + 3.71825 7.19822 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 3.71826 3.71825 3.71825 + 3.71825 3.71825 3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.71825 3.71825 ] pdfxs + 68.64 436.56 m + (char*NodePtr=Poolbase+Node;) + [3.71825 3.71824 3.71825 7.31828 3.71825 3.71824 3.71825 3.71825 3.71825 3.71825 3.71826 + 7.31836 7.43805 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 3.71826 3.71825 3.71825 + 3.71826 3.71825 3.71825 3.71826 3.71825 ] pdfxs + 68.64 428.58 m + (*\(int*\)\(NodePtr+4\)=Result;) + [3.71825 3.71824 3.71825 3.71825 3.71825 3.71824 3.71825 3.71825 3.71824 3.71826 3.71825 + 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 7.1383 7.37829 3.71825 3.71826 3.71825 + 3.71825 3.71826 3.71825 3.71826 ] pdfxs + 68.64 420.66 m + (*\(int*\)NodePtr=i+'A';) + [3.71825 3.71824 3.71825 3.71825 3.71825 3.71824 3.71825 3.71825 3.71824 3.71826 3.71825 + 3.71825 3.71826 7.19837 7.37829 3.71825 3.71826 3.71825 3.71825 3.71826 3.71825 ] pdfxs + 68.64 412.68 m + (Result=Node;}) + [3.71825 3.71824 3.71825 3.71825 3.71825 7.31813 7.37828 3.71825 3.71826 3.71825 3.71825 + 14.7579 3.71825 ] pdfxs + 61.2002 404.701 m + (returnResult;}) + [3.71825 3.71824 3.71825 3.71825 3.71825 7.31813 3.71825 3.71824 3.71825 3.71825 3.71825 + 3.71825 11.0383 3.71825 ] pdfxs + 73.9803 385.561 m + /N23 8.96638 Tf + (Figure14:) + [6.66306 2.94269 5.28303 5.87643 4.37907 8.40011 5.28303 5.28302 2.94268 ] pdfxs + 125.82 385.561 m + /N15 8.96638 Tf + (MakeList) + [4.67994 4.67993 4.67994 4.67993 4.67994 4.67994 4.67993 4.67994 ] pdfxs + Q + n + 1638 3856 28.8008 4.19922 re + f + q + 10 0 0 10 0 0 cm + 166.86 385.56 m + /N15 8.96638 Tf + (pc32) + [4.67994 4.67993 4.67994 4.67993 ] pdfxs + 189.24 385.56 m + /N23 8.96638 Tf + (a) show + (fteroptimiz) + [3.24389 4.13848 4.86027 7.91898 5.28303 5.87644 4.13846 2.94267 8.81908 2.94269 4.74072 + ] pdfxs + (a) show + (tion) + [4.13846 2.94269 5.28301 5.87644 ] pdfxs + 53.8201 352.8 m + /N9 11.9552 Tf + (5.3ReducingDynamic) + [6 3 17.8801 8.63982 5.27982 6.65999 6.66001 5.27981 3.30001 6.65999 9.00001 + 8.63982 6 6.65999 6 9.95991 3.30001 5.27981 ] pdfxs + 180.96 352.8 m + /N15 8.96638 Tf + (isComp) + [4.67994 4.67993 4.67994 4.67993 4.67994 4.67995 ] pdfxs + 212.22 352.8 m + /N9 11.9552 Tf + (Comparisons) + [8.63981 6 9.95992 6.65999 6 5.27982 3.30001 4.67992 6 6.66002 4.67989 + ] pdfxs + 62.7603 339.84 m + /N17 8.96638 Tf + (Thegeneratedcodefordynamicpointercompression) + [6.65758 5.10016 9.89864 4.62111 4.07849 5.10016 4.07849 3.59992 4.62112 3.60275 4.07849 + 10.9202 4.08197 4.86095 5.10016 9.89849 2.81964 4.62112 9.35992 5.10016 4.85621 5.10016 + 4.62111 7.67578 2.57565 9.9018 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 9.35976 + 4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 2.57564 4.62112 5.10017 + ] pdfxs + 53.8201 329.4 m + (makesheavyuseofconditionalbranchestotestwhetheror) + [7.67578 4.62111 4.61613 4.07849 6.65644 5.10016 4.07849 4.38127 4.8562 7.97605 5.10016 + 3.65645 7.13849 4.62111 5.87965 4.08197 4.62111 5.10016 5.10016 2.57564 3.60275 2.57565 + 4.62111 5.10016 4.62112 5.63549 5.10016 3.59993 4.62111 5.10016 3.84213 5.10017 4.0785 + 6.71643 3.60273 7.68118 3.60273 4.0785 3.65642 6.66274 6.65759 5.10017 4.07848 3.60273 + 5.10017 4.0785 6.71977 4.62109 3.59993 ] pdfxs + 53.8201 318.9 m + (notthepooliscompressed.Togetreasonableperformance) + [5.10016 4.62111 6.72258 3.60274 5.10016 7.31841 5.34 4.86127 4.62111 5.69557 2.57565 + 6.83636 4.08197 4.62111 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 4.0785 5.10016 + 6.95557 5.87766 7.80111 4.62111 4.0785 6.72266 3.59993 4.0785 4.62109 3.65645 4.62109 + 5.10017 4.62109 5.10017 2.57567 7.25833 5.34001 4.0785 3.59993 2.81963 4.62109 3.59993 + 7.67579 4.62109 5.10017 4.08197 4.0785 ] pdfxs + 53.8201 308.46 m + (fromthecode,severalstandardtechniquescanbeused.The) + [2.81964 3.59993 4.62111 9.95578 3.60274 5.10016 6.41841 4.08196 4.86096 5.10016 4.0785 + 5.09572 3.65645 4.0785 4.61637 4.0785 3.59993 4.62111 4.8558 3.65645 3.60275 4.62112 + 5.10015 5.10016 4.62112 3.59993 7.38023 3.60275 4.0785 3.84188 5.10016 5.10016 2.57564 + 4.85621 5.10017 4.0785 5.99636 4.08197 4.62109 7.44001 5.34001 6.47857 5.10017 3.65645 + 4.07848 5.10017 6.41582 6.65759 5.10017 4.07848 ] pdfxs + 53.8201 298.02 m + (mostimportantoftheseistouseloopunswitchingonsmall) + [7.67578 4.62111 3.65644 6.36266 2.57565 7.67578 5.34016 4.62111 3.59993 3.60273 4.62112 + 4.86016 6.3629 4.62111 5.57964 3.60275 5.10016 4.07849 3.65646 6.89834 2.57565 6.4766 + 3.60275 7.38119 5.10016 3.65645 6.89865 2.57565 4.86095 4.62111 7.92001 5.10017 5.10017 + 3.65645 6.65756 2.57567 3.60273 3.84181 5.10017 2.57567 5.10017 7.38125 4.62109 7.92001 + 3.65645 7.67576 4.62112 2.57564 2.57567 ] pdfxs + 53.8201 287.52 m + (pointerchasingloops.This,combinedwithjumpthreading) + [5.34 4.62111 2.57565 4.86031 3.60274 4.07849 6.53985 3.8418 5.10016 4.62111 3.65644 + 2.57565 5.10016 7.56103 2.57565 4.86095 4.62111 5.10016 3.65645 6.59573 6.65758 5.10016 + 2.57565 3.65645 5.4558 4.08197 4.62111 7.43562 5.10016 2.57565 5.10015 4.0785 8.16008 + 6.65759 2.57564 3.60273 7.98009 2.81963 5.10017 7.67579 8.10016 3.60273 5.10017 3.59993 + 4.0785 4.62109 5.10017 2.57567 5.10017 4.62109 ] pdfxs + 53.8201 277.08 m + (\(mergingofidenticalconsecutiveconditions\)forstraig) + [3.60274 7.67578 4.07849 3.59993 4.62111 2.57565 5.10016 9.00126 4.62111 7.19955 2.57565 + 5.10016 4.07849 4.86008 3.60275 2.57565 4.08196 4.62111 6.95549 4.08197 4.62111 5.10016 + 3.65645 4.0785 4.08196 5.10016 3.60275 2.57565 4.61614 8.45865 4.08197 4.62111 5.10017 + 5.10017 2.57567 3.60273 2.57564 4.62112 5.10017 3.65642 7.98266 2.81963 4.62109 7.97986 + 3.65645 3.60273 3.59993 4.62109 2.57567 4.62109 ] pdfxs + (h) show + 286.32 277.08 m + (t-) + [3.60273 3.06375 ] pdfxs + 53.8201 266.64 m + (linecode,caneliminatemuchofthegrossine\016ciencyofthe) + [2.57565 2.57565 5.10016 6.71857 4.08196 4.86096 5.10016 4.07849 5.39573 4.08196 4.62111 + 7.86031 4.0785 2.57564 2.57565 7.67576 2.57565 5.10016 4.62111 3.60275 6.71834 7.43562 + 5.10016 3.84181 7.80016 4.62111 5.51948 3.60275 5.10016 6.77858 4.62109 3.59993 4.62109 + 3.65645 6.29644 2.57567 5.10017 4.0785 7.67576 4.08197 2.57567 4.0785 5.10017 4.08195 + 7.61628 4.62109 5.45971 3.60273 5.10017 4.0785 ] pdfxs + 53.8201 256.14 m + (code,atacostofincreasedcodesize.Otherreasonableop-) + [4.08196 4.86096 5.10016 4.07849 5.63557 4.62111 6.66281 7.68118 4.08196 4.62111 3.65645 + 6.66267 4.62111 5.81964 2.57565 5.10016 4.08196 3.59993 4.0785 4.62111 3.65645 4.0785 + 8.22008 4.08197 4.86095 5.10016 7.1985 3.65645 2.57565 4.08196 4.0785 6.6558 7.13659 + 3.60273 5.10017 4.0785 6.71977 3.59993 4.0785 4.62109 3.65645 4.62109 5.10017 4.62109 + 5.10017 2.57567 7.13841 4.62109 5.10017 3.06375 ] pdfxs + 53.8201 245.7 m + (tionsaretomovethe\\expanded"codetoacoldsectionvs) + [3.60274 2.57565 4.62111 5.10016 6.71636 4.62111 3.59993 7.25856 3.60274 7.74095 7.67578 + 4.38126 4.61614 7.1985 3.60275 5.10016 7.25865 4.62111 4.0785 4.85621 5.10016 4.62111 + 5.10016 5.10016 4.0785 5.10016 7.86103 4.08197 4.86095 5.10017 7.25865 3.60273 7.74094 + 7.74094 4.08197 4.62109 2.57567 8.28031 3.65645 4.07848 4.08197 3.60273 2.57567 4.62109 + 8.22002 4.85621 3.65642 ] pdfxs + 53.8201 235.261 m + (hotsection,orusepredication\(e.g.,onIA64\).) + [5.10016 4.62111 6.66281 3.65644 4.07849 4.08196 3.60274 2.57565 4.62111 5.10016 5.57565 + 4.62111 6.66 5.10016 3.65645 7.19865 5.10016 3.59993 4.07849 5.10016 2.57565 4.08197 + 4.62111 3.60275 2.57565 4.62111 8.16008 3.60275 4.0785 2.57564 4.62111 2.57565 5.57565 + 4.62109 8.22002 3.30018 6.90289 4.62109 4.62109 3.60273 2.57567 ] pdfxs + 53.8201 207.72 m + /N9 11.9552 Tf + (6.EXPERIMENTALRESULTS) + [6 14.8801 7.97991 8.63982 7.31991 7.97991 8.63982 4.67992 11.2798 7.97991 8.63981 + 6.89976 8.63982 10.9201 8.63982 7.9799 6.65999 8.63984 6.89984 7.97992 6.65999 ] pdfxs + 62.7603 194.761 m + /N17 8.96638 Tf + (Weimplementedthestaticapproachtopointercompres-) + [8.69858 7.19849 2.57565 7.67578 5.10016 2.57565 4.07849 7.67578 4.07849 4.86001 3.60275 + 4.0785 8.22015 3.60275 5.10016 7.1985 3.65645 3.60275 4.62112 3.60273 2.57565 7.08196 + 4.62111 5.10016 5.10016 3.59993 4.62112 4.62111 3.84196 8.22009 3.60273 7.68118 5.34001 + 4.62109 2.57567 4.86033 3.60273 4.0785 6.65976 4.08197 4.62109 7.67579 5.10017 3.59993 + 4.07848 3.65645 3.06375 ] pdfxs + 53.8201 184.261 m + (sioninthe) + [3.65644 2.57565 4.62111 8.70031 2.57565 8.70023 3.60274 5.10016 7.73833 ] pdfxs + (L) show + (LVMCompilerInfrastructure[9],buildingon) + [4.73754 6.90289 12.1202 6.65758 4.62112 7.67576 5.10016 2.57565 2.57564 4.0785 7.19992 + 3.30019 5.10016 2.81964 3.59993 4.62112 3.65645 3.60275 3.59993 5.10017 4.08197 3.60273 + 5.10017 3.59993 7.79856 2.57567 4.62109 2.57567 6.29573 5.10017 5.10017 2.57567 2.57567 + 5.10015 2.57567 5.10017 8.28103 4.62109 5.10017 ] pdfxs + 53.8201 173.821 m + (ourpreviousimplementationofDataStructureAnalysis[7]) + [4.62111 5.10016 6.54008 5.10016 3.59993 4.07849 4.8562 2.57565 4.62111 5.10016 6.59629 + 2.57565 7.67576 5.10016 2.57565 4.07849 7.67578 4.07849 4.86001 3.60275 4.62111 3.60275 + 2.57565 4.62111 8.04031 4.62111 5.75972 7.01981 4.62112 3.60275 7.50095 5.10017 3.60273 + 3.59993 5.10017 4.08197 3.60273 5.10017 3.59993 7.13841 6.90289 5.10017 4.62109 2.57567 + 4.85621 3.65642 2.57567 6.53628 2.57567 4.62109 2.55545 ] pdfxs + 53.8201 163.38 m + (andAutomaticPoolAllocation[10].Wereserve256MBof) + [4.62111 5.10016 8.46023 6.9029 5.10016 3.60274 4.62111 7.67578 4.62111 3.60275 2.57565 + 7.38204 6.05683 4.86127 4.62111 5.87565 6.90289 2.57565 2.57564 4.86104 4.08197 4.62111 + 3.60275 2.57564 4.62112 8.33999 2.57565 4.62111 4.62111 2.57565 7.43549 8.69858 7.43834 + 3.59993 4.0785 3.65642 4.0785 3.59993 4.61605 7.43834 4.62109 4.62109 4.62112 8.46029 + 9.84082 4.62109 2.81963 ] pdfxs + 53.8201 152.88 m + (memoryforeachindexedpoolusing) + [7.67578 4.07849 7.67578 4.62111 3.59993 7.37605 2.81964 4.62111 6.05992 4.0785 4.62111 + 3.84181 7.62007 2.57565 5.10016 5.10015 4.0785 4.85621 4.0785 7.68023 5.34 4.86127 + 4.62111 5.09558 5.10016 3.65645 2.57565 5.10016 4.62111 ] pdfxs + 199.5 152.88 m + /N15 8.96638 Tf + (mmap) + [4.67994 4.67995 4.67993 4.67995 ] pdfxs + 220.8 152.88 m + /N17 8.96638 Tf + (toavoidreallocat-) + [3.60273 7.08117 4.38118 4.61612 4.62109 2.57567 7.56032 3.59993 4.0785 4.62109 2.57567 + 2.57567 4.86101 4.08197 4.62109 3.60273 3.06375 ] pdfxs + 53.8201 142.44 m + (ingpoolsandtomakeredundancyeliminationofPoolBase) + [2.57565 5.10016 7.80118 5.34 4.86127 4.62111 2.57565 6.77651 4.62111 5.10016 8.34032 + 3.60275 7.74095 7.67578 4.62111 4.61614 7.25865 3.59993 4.0785 5.10015 5.10016 5.10016 + 5.10016 4.62112 5.10016 4.08196 8.21622 4.0785 2.57564 2.57564 7.67579 2.57567 5.10017 + 4.62109 3.60273 2.57567 4.62109 8.22002 4.62109 5.93978 6.05683 4.86126 4.62109 2.57567 + 6.54066 4.62112 3.65642 4.0785 ] pdfxs + 53.8201 132 m + (pointerseasier\(asdescribedinSection5\).Toevaluateth) + [5.34 4.62111 2.57565 4.86031 3.60274 4.07849 3.59993 6.89652 4.07849 4.62111 3.65644 + 2.57565 4.07849 6.84009 3.60275 4.62111 6.83661 5.10016 4.0785 3.65645 4.08196 3.59993 + 2.57565 5.34 4.0785 8.45999 2.57565 8.34007 5.10016 4.0785 4.08196 3.60275 2.57565 + 4.62112 8.40031 4.62109 3.60273 7.13581 5.87766 7.92102 4.0785 4.3162 4.62109 2.57567 + 5.10017 4.62109 3.60273 7.31834 3.60273 5.10017 ] pdfxs + (e) show + 53.8201 121.5 m + (performancee\013ectofPointerCompression,we\frstlookat) + [5.34 4.07849 3.59993 2.81964 4.62111 3.59993 7.67578 4.62111 5.10016 4.08196 7.37857 + 4.0785 5.40425 4.07849 4.08197 6.84282 4.62111 6.05972 6.05683 4.62111 2.57565 4.86031 + 3.60275 4.0785 6.78007 6.65758 4.62112 7.67576 5.10016 3.59993 4.07848 3.65645 3.65642 + 2.57567 4.62109 5.10017 5.81575 6.4175 7.31841 5.10017 3.59993 3.65645 6.84272 2.57567 + 4.86094 4.62109 8.03636 4.62109 3.60273 ] pdfxs + 53.8201 111.061 m + (howita\013ectsasetofpointer-intensivebenchmarks,then) + [5.10016 4.38119 10.6776 2.57565 7.62274 4.62111 5.40425 4.07849 4.08196 3.60273 7.6766 + 8.7011 3.65645 4.0785 7.6229 4.62111 6.89956 5.34 4.62111 2.57565 4.86031 3.60275 + 4.0785 3.59993 3.06372 2.57564 4.86024 3.60275 4.0785 5.10015 3.65645 2.57567 4.61605 + 8.09849 5.34001 4.0785 5.10017 3.84188 5.10017 7.67579 4.62109 3.59993 4.85621 3.65642 + 6.95574 3.60273 5.10017 4.0785 5.10017 ] pdfxs + 53.8201 100.621 m + (investigatehowthee\013ectofthepointercompressiontrans-) + [2.57565 4.86 4.61613 4.07849 3.65644 3.60274 2.57565 4.62111 4.62111 3.60274 7.07848 + 5.10016 4.38119 9.71749 3.60275 5.10016 7.1985 4.0785 5.40425 4.07849 4.08197 6.7229 + 4.62111 5.9398 3.60275 5.10016 7.1985 5.34 4.62111 2.57565 4.86031 3.60273 4.0785 + 6.71992 4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 2.57564 4.62112 + 8.16 3.60273 3.59993 4.62109 5.10017 3.65645 3.07549 ] pdfxs + 53.8201 90.1208 m + (formationvariesacrossfourdi\013erent64-bitarchitectur) + [2.81964 4.62111 3.59992 7.67578 4.62111 3.60274 2.57565 4.62111 8.10015 4.31613 4.62111 + 3.59993 2.57565 4.07849 6.71646 4.62111 4.08197 3.59993 4.62111 3.65645 6.65645 2.81964 + 4.62112 5.10016 6.72008 5.10016 2.57565 5.40424 4.0785 3.59993 4.0785 4.86016 6.6629 + 4.62109 4.62109 3.06375 5.10017 2.57567 6.66257 4.62109 3.59993 3.84213 5.10017 2.57567 + 3.60273 4.0785 4.08195 3.60273 5.10017 3.59993 ] pdfxs + (e) show + 279.36 90.1208 m + (s.) + [3.65645 2.57564 ] pdfxs + 316.8 728.221 m + /N9 11.9552 Tf + (6.1PerformanceResults) + [6 3 17.9398 7.07999 5.27982 5.27982 3.65982 6 5.27982 9.9599 6 + 6.66002 5.27982 8.33973 8.63981 5.27985 4.67987 6.66002 3.30001 3.95994 4.67987 ] pdfxs + 325.8 715.261 m + /N17 8.96638 Tf + (Figure15showstheresultsofusingpointercompression) + [6.00162 2.57567 4.62109 5.10017 3.59993 7.37857 4.62109 7.92095 3.65645 5.10017 4.38093 + 6.65759 6.95634 3.60273 5.10017 7.37857 3.59993 4.07845 3.65647 5.10017 2.57567 3.60276 + 6.95651 4.62114 6.11945 5.10017 3.65647 2.57562 5.10017 7.92129 5.34001 4.62114 2.57562 + 4.86033 3.60276 4.07845 6.95979 4.08192 4.62114 7.67525 5.10017 3.59993 4.0785 3.65647 + 3.65642 2.57567 4.62109 5.10017 ] pdfxs + 316.8 704.821 m + (onacollectionofbenchmarksdrawnfromtheOlden[14]and) + [4.62109 7.32001 6.78117 4.08197 4.62109 2.57567 2.57567 4.07848 4.08197 3.60273 2.57567 + 4.62109 7.26024 4.62109 4.97964 5.34001 4.0785 5.10017 3.84188 5.10017 7.67525 4.62114 + 3.59993 4.85623 5.93645 5.10017 3.59993 4.3812 6.65759 7.32023 2.81965 3.59993 4.62109 + 9.83584 3.60276 5.10017 6.29847 7.13657 2.57567 5.10017 4.07845 7.32009 2.57562 4.62114 + 4.62114 4.73577 4.62114 5.10017 5.10017 ] pdfxs + 316.8 694.381 m + (Ptrdist[3]benchmarksuites,plusthe) + [6.29667 3.60273 3.59993 5.10017 2.57567 3.65642 7.56274 2.57567 4.62109 6.59565 5.34001 + 4.0785 5.10017 3.84188 5.10017 7.67579 4.62109 3.59993 8.99619 3.65647 5.10017 2.57562 + 3.60276 4.0785 3.65642 6.7758 5.10017 2.57562 5.10017 7.7364 3.60276 5.10017 8.15863 + ] pdfxs + (LL) show + (Ubench[20]mi-) + [6.90289 5.34031 4.07845 5.10017 3.84188 9.24 2.57562 4.62114 4.62114 6.53577 7.67525 + 2.57567 3.06372 ] pdfxs + 316.8 683.881 m + (crobenchmark.TheseresultswereobtainedonanUltraSPARC) + [4.08197 3.59993 4.62109 5.34001 4.0785 5.10017 3.84188 5.10017 7.67579 4.62109 3.59993 + 4.85621 6.41572 6.65759 5.10017 4.07848 3.65645 6.17857 3.59993 4.07845 3.65647 5.10017 + 2.57567 3.60276 5.6366 6.4175 4.07845 3.59993 6.17864 4.62114 5.10017 3.60276 4.62109 + 2.57567 5.10017 4.07845 7.14001 4.62114 7.1403 4.62114 7.20007 6.90289 2.57562 3.60276 + 3.59993 4.62114 5.10017 5.51657 6.90289 6.53559 6.6531 ] pdfxs + 566.4 683.881 m + (-) show + 316.8 673.441 m + (IIIiprocessorwitha64kB) + [3.54002 3.54002 3.30018 4.91558 5.10017 3.59993 4.86126 4.08197 4.0785 3.65642 3.65645 + 4.62109 5.88 6.65759 2.57564 3.60273 7.3801 6.84094 4.62109 6.90102 4.85623 8.76055 + ] pdfxs + (L) show + (1datacacheanda1MBuni\fed) + [6.90127 5.10017 4.62114 3.60276 6.84126 4.08192 4.62114 3.84179 5.10017 6.35863 4.62114 + 5.10017 7.4403 6.84096 6.90112 8.46031 8.76055 5.10017 5.10017 2.57562 5.10017 4.0785 + 5.10017 ] pdfxs + 316.8 663.001 m + (I+D) + [3.30018 7.13659 10.1997 ] pdfxs + (L) show + (2cache.) + [7.68092 4.08197 4.62109 3.84181 5.10017 4.0785 2.57567 ] pdfxs + 325.8 652.501 m + (Toevaluatetheperformanceimpactofpointercompres-) + [5.87766 8.1011 4.0785 4.3162 4.62109 2.57567 5.10017 4.62109 3.60273 7.55858 3.60273 + 5.10017 7.61841 5.34001 4.0785 3.59993 2.81963 4.62114 3.59993 7.67525 4.62114 5.10017 + 4.08192 7.67855 2.57562 7.67579 5.10017 4.62109 4.08197 7.02282 4.62114 6.29953 5.34001 + 4.62114 2.57562 4.86033 3.60276 4.07845 7.13987 4.08192 4.62114 7.67525 5.10017 3.59993 + 4.0785 3.65647 3.06367 ] pdfxs + 316.8 642.061 m + (sion,wecompiledeachprogramwiththe) + [3.65645 2.57564 4.62112 5.10017 6.71572 6.4175 8.03833 4.08197 4.62109 7.67579 5.10017 + 2.57567 2.57564 4.0785 9.06025 4.0785 4.62109 3.84181 9.12009 5.10017 3.59993 4.62114 + 4.62109 3.59993 4.62114 11.5751 6.65759 2.57562 3.60276 9.06017 3.60276 5.10017 8.03831 + ] pdfxs + (L) show + (LVMcompiler) + [4.73751 6.90289 12.4202 4.08192 4.62114 7.67525 5.10017 2.57567 2.57562 4.0785 3.59993 + ] pdfxs + 316.8 631.621 m + (\(includingthepoolallocationorpointercompression\),emi) + [3.60273 2.57567 5.10017 4.08197 2.57564 5.10017 5.10017 2.57567 5.10017 6.96117 3.60273 + 5.10017 6.41841 5.34001 4.86126 4.62109 4.9155 4.62109 2.57567 2.57567 4.86094 4.08192 + 4.62114 3.60276 2.57562 4.62114 7.38024 4.62114 5.94007 5.34001 4.62114 2.57562 4.86033 + 3.60276 4.07845 5.93987 4.08192 4.62114 7.67525 5.10017 3.59993 4.0785 3.65647 3.65642 + 2.57567 4.62109 5.10017 3.60276 4.97581 4.07845 7.67579 2.55545 ] pdfxs + 549.24 631.621 m + (t-) + [3.60276 3.06372 ] pdfxs + 316.8 621.121 m + (tedCcode,andcompileditwiththesystemGCCcom-) + [3.60273 4.0785 9.48031 11.0374 4.08197 4.86094 5.10017 4.0785 7.2555 4.62109 5.10017 + 9.48017 4.08197 4.62109 7.67579 5.10012 2.57567 2.57562 4.0785 9.48014 2.57562 7.92277 + 6.65759 2.57562 3.60276 9.42033 3.60276 5.10017 8.45862 3.65647 4.85623 3.65642 3.60276 + 4.0785 11.9954 7.25576 6.65759 10.9776 4.08192 4.62114 7.67525 3.06372 ] pdfxs + 316.8 610.682 m + (piler.ThePAandPCcolumnsshowtheexecutiontime) + [5.10017 2.57567 2.57567 4.07848 3.59993 10.0756 6.65759 5.10017 8.27833 5.5166 11.1029 + 4.62109 5.10017 9.36024 6.29667 10.7976 4.08192 4.62114 2.57562 5.10017 7.67579 5.10017 + 7.85637 3.65647 5.10017 4.38096 10.7976 3.60276 5.10017 8.33831 4.07845 4.85623 4.0785 + 4.08192 5.10017 3.60276 2.57562 4.62114 9.36032 3.60276 2.57562 7.67579 4.07845 ] pdfxs + 316.8 600.242 m + (foreachbenchmarkwithPoolAllocationorPointerCom-) + [2.81963 4.62109 7.25994 4.0785 4.62109 3.84181 8.76032 5.34001 4.0785 5.10017 3.84188 + 5.10017 7.67579 4.62109 3.59993 8.57627 6.65759 2.57562 3.60276 8.70001 6.05681 4.86128 + 4.62114 6.17561 6.90289 2.57562 2.57567 4.86104 4.08192 4.62114 3.60276 2.57562 4.62114 + 8.64001 4.62114 7.25998 6.05681 4.62114 2.57562 4.86033 3.60276 4.07845 7.13987 6.65759 + 4.62109 7.67579 3.06372 ] pdfxs + 316.8 589.742 m + (pressionturnedon,andthePC/PAcolumnistheirruntime) + [5.10017 3.59993 4.0785 3.65642 3.65645 2.57567 4.62109 7.80016 3.60273 5.10017 3.59993 + 5.10017 4.0785 7.86001 4.62109 5.10017 5.33582 4.62109 5.10017 7.80007 3.60276 5.10017 + 6.83831 6.29665 6.65759 4.62109 5.51667 9.54273 4.08192 4.62114 2.57562 5.10017 7.67579 + 7.80031 2.57562 6.29655 3.60276 5.10017 4.07845 2.57567 6.30008 3.59993 5.10017 4.86033 + 3.60276 2.57562 7.67579 4.07845 ] pdfxs + 316.8 579.302 m + (ratio.The'NoPA'columnshowstheruntimeforthepro-) + [3.59993 4.62109 3.60273 2.57567 4.62109 8.45574 6.65759 5.10017 7.85841 2.57567 6.90289 + 4.62109 5.5166 6.90289 6.17574 4.08197 4.62109 2.57567 5.10012 7.67579 8.82023 3.65647 + 5.10017 4.38096 6.65759 7.31652 3.60276 5.10017 7.79847 3.59993 5.10017 4.86033 3.60276 + 2.57562 7.67579 7.79862 2.81965 4.62109 7.25994 3.60276 5.10017 7.79847 5.10017 3.59993 + 4.62114 3.06367 ] pdfxs + 316.8 568.862 m + (gramcompiledwith) + [4.62109 3.59993 4.62109 11.0956 4.08197 4.62109 7.67579 5.10017 2.57567 2.57564 4.0785 + 8.52001 6.65759 2.57564 3.60273 8.52033 ] pdfxs + (L) show + (LVMandusingexactlythesamese-) + [4.73751 6.90289 11.8804 4.62114 5.10017 8.51999 5.10017 3.65647 2.57562 5.10017 8.0412 + 4.07845 4.85623 4.62114 4.08192 3.60276 2.57567 8.2762 3.60276 5.10017 7.49847 3.65647 + 4.62109 7.67579 7.49861 3.65647 4.07845 3.06372 ] pdfxs + 316.8 558.362 m + (quenceofpassesasPA,butomittingpoolallocationitself.) + [4.85621 5.10017 4.07848 5.10017 4.08197 7.49842 4.62109 6.11947 5.10017 4.62109 3.65645 + 3.65642 4.0785 6.89636 4.62109 6.95651 5.5166 6.90289 5.87571 5.10017 5.10017 6.90275 + 4.62114 7.67525 2.57562 3.60276 3.60276 2.57567 5.10017 7.86103 5.34001 4.86128 4.62114 + 5.93577 4.62114 2.57562 2.57562 4.86099 4.08192 4.62114 3.60276 2.57562 4.62114 8.34 + 2.57562 3.60276 3.65647 4.0785 2.57562 2.81965 2.57562 ] pdfxs + 316.8 547.922 m + (Thisisincludedtoshowthatthepoolallocatedexecution) + [6.65759 5.10017 2.57564 7.19628 2.57567 7.13635 2.57567 5.10017 4.08197 2.57564 5.10017 + 5.10017 4.0785 8.70009 3.60273 8.16125 3.65645 5.10017 4.38096 10.1374 3.60276 5.10017 + 4.62114 7.08274 3.60276 5.10017 7.67855 5.34001 4.86128 4.62114 6.11546 4.62114 2.57562 + 2.57562 4.86099 4.08192 4.62114 3.60276 4.07845 8.58034 4.07845 4.85623 4.0785 4.08192 + 5.10017 3.60276 2.57562 4.62114 5.10017 ] pdfxs + 316.8 537.482 m + (timefortheprogramisaveryaggressivebaselinetocom-) + [3.60273 2.57567 7.67579 7.67833 2.81963 4.62109 7.19978 3.60273 5.10017 7.67857 5.10017 + 3.59993 4.62109 4.62109 3.59993 4.62112 11.2756 2.57567 7.19651 8.22104 4.61615 4.07845 + 3.59993 8.51624 4.62114 4.62109 4.62114 3.59993 4.07845 3.65647 3.65647 2.57562 4.61639 + 7.55862 5.10017 4.62114 3.65642 4.0785 2.57562 2.57567 5.10017 7.67845 3.60276 8.22104 + 4.08192 4.62114 7.67525 3.06372 ] pdfxs + 316.8 526.982 m + (pareagainst.\(WealsoshowthePC/NoPAcolumnbecause) + [5.10017 4.62109 3.59993 7.01835 4.62109 4.62109 4.62112 2.57564 5.10017 3.65645 3.60273 + 6.5355 3.60273 8.69858 6.95865 4.62109 2.57567 3.65645 7.44108 3.65647 5.10017 4.38096 + 9.53742 3.60276 5.10017 7.01839 6.29665 6.65759 4.62109 6.90289 4.62114 5.51657 9.72281 + 4.08192 4.62114 2.57562 5.10017 7.67579 8.04016 5.34001 4.07845 4.08197 4.62109 5.10017 + 3.65647 4.0785 ] pdfxs + 316.8 516.542 m + (weviewpointercompressionasa\\macroscopic"optimiza-) + [6.4175 7.55865 4.85621 2.57564 4.0785 10.1377 5.34001 4.62109 2.57567 4.86033 3.60273 + 4.0785 7.08008 4.08197 4.62109 7.67579 5.10017 3.59988 4.0785 3.65647 3.65642 2.57567 + 4.62109 8.58034 4.62114 7.07644 8.10112 4.62114 7.67525 4.62114 4.08192 3.59993 4.62114 + 3.65642 4.08197 4.62109 5.10017 2.57567 4.08192 8.0412 4.62114 5.10017 3.60276 2.57562 + 7.67525 2.57567 4.08192 4.62114 3.06372 ] pdfxs + 316.8 506.101 m + (tionenabledbypoolallocation,andthiscolumnshowsthe) + [3.60273 2.57567 4.62109 8.22009 4.0785 5.10017 4.62109 5.10017 2.57567 4.07848 8.34018 + 4.86033 8.03604 5.34001 4.86126 4.62109 5.75574 4.62109 2.57567 2.57562 4.86099 4.08192 + 4.62114 3.60276 2.57562 4.62114 5.10017 5.69563 4.62114 5.10017 8.28014 3.60276 5.10017 + 2.57562 6.77663 4.08192 4.62114 2.57562 5.10017 7.67579 8.28 3.65647 5.10017 4.38096 + 6.65759 6.77629 3.60276 5.10017 4.07845 ] pdfxs + 316.8 495.601 m + (aggregatebene\ftoftheapproach.\)Eachnumberisthemin-) + [4.62109 4.62109 4.62112 3.59993 4.07848 4.62112 4.62109 3.60273 6.41849 5.34001 4.0785 + 5.10017 4.0785 5.10017 6.00288 4.62109 5.15971 3.60273 5.10017 6.4184 4.62114 5.10017 + 5.10017 3.59993 4.62109 4.62114 3.84193 5.10017 2.57562 7.44269 6.29665 4.62114 3.84208 + 7.44001 4.86033 5.10017 7.43511 5.34001 4.07845 6.00003 2.57562 5.9364 3.60276 5.10017 + 6.4184 7.67525 2.57567 5.10017 3.06372 ] pdfxs + 316.8 485.162 m + (imumofthreerunsoftheprogram,reportedinseconds.To) + [2.57567 7.4357 5.10017 10.4356 4.62109 5.63979 3.60273 5.10017 3.59993 4.0785 6.89856 + 3.59993 5.10017 5.10017 6.47651 4.62109 5.57963 3.60276 5.10017 6.89847 5.10017 3.59993 + 4.62114 4.62109 3.59993 4.62114 7.67525 5.39548 3.59993 4.07845 5.34011 4.62114 3.59993 + 3.60276 4.07845 7.92009 2.57562 7.92019 3.65647 4.07845 4.08197 4.62109 5.10017 5.10017 + 3.65647 6.53548 5.87766 4.62114 ] pdfxs + 316.8 474.662 m + (measurethee\013ectonmemoryconsumption,wemeasured) + [7.67579 4.0785 4.62109 3.65642 5.10017 3.59993 8.03858 3.60273 5.10017 8.03833 4.0785 + 5.40425 4.0785 4.08195 7.50259 4.62109 9.06025 7.67525 4.0785 7.67525 4.62114 3.59993 + 8.75613 4.08192 4.62114 5.10017 3.65647 5.10017 7.67525 5.10017 3.60276 2.57567 4.62109 + 5.10017 6.7158 6.4175 8.03831 7.67525 4.0785 4.62109 3.65647 5.10017 3.59993 4.0785 + 5.10017 ] pdfxs + 316.8 464.221 m + (thepeaksizeoftheheapforboththepoolallocatedand) + [3.60273 5.10017 8.03833 5.34001 4.0785 4.62109 8.75635 3.65645 2.57564 4.08197 7.9785 + 4.62109 6.71947 3.60273 5.10017 7.97857 5.10017 4.07845 4.62114 9.06032 2.81965 4.62109 + 7.49978 5.34001 4.62114 3.60276 9.06022 3.60276 5.10017 7.97855 5.34001 4.86128 4.62114 + 6.47561 4.62114 2.57562 2.57562 4.86099 4.08192 4.62114 3.60276 4.07845 9.00026 4.62114 + 5.10017 5.10017 ] pdfxs + 316.8 453.781 m + (pointercompressedformsandtheratioofthetwo,shown) + [5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 7.38008 4.08197 4.62109 7.67579 5.10017 + 3.59993 4.07848 3.65645 3.65645 4.07848 8.82025 2.81963 4.62109 3.59993 7.67579 7.37644 + 4.62114 5.10017 8.88015 3.60276 5.10017 7.79847 3.59993 4.62114 3.60276 2.57562 8.34096 + 4.62114 6.47961 3.60276 5.10017 7.85862 3.36292 6.4175 4.62114 6.41545 3.65647 5.10017 + 4.38096 6.65759 5.10017 ] pdfxs + 316.8 443.281 m + (inthelastthreecolumnsofthetable.) + [2.57567 8.16 3.60273 5.10017 7.1985 2.57567 4.62109 3.65645 6.60273 3.60273 5.10017 + 3.59993 4.0785 7.19857 4.08197 4.62109 2.57567 5.10017 7.67579 5.10017 6.71653 4.62114 + 5.87961 3.60276 5.10017 7.19847 3.60276 4.62114 5.10017 2.57562 4.07845 2.57567 ] pdfxs + 325.8 432.841 m + (Consideringllubench\frst,thetableshowsthatpointer) + [6.65759 4.62109 5.10017 3.65642 2.57567 5.10017 4.0785 3.59993 2.57567 5.10017 8.58125 + 2.57567 2.57567 5.10017 5.34016 4.0785 5.10017 3.84188 9.24 5.10017 3.59993 3.65647 + 3.60276 6.77546 3.60276 5.10017 8.15863 3.60276 4.62114 5.10017 2.57562 8.03831 3.65647 + 5.10017 4.38096 6.65759 7.61652 3.60276 5.10017 4.62114 7.62257 5.34001 4.62114 2.57562 + 4.86033 3.60276 4.07845 3.59993 ] pdfxs + 316.8 422.401 m + (compressionspeedsupthismicrobenchmarkbyover2xcom-) + [4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 2.57564 4.62112 7.20024 + 3.65645 5.34016 4.0785 4.0785 5.10017 5.87627 5.10017 7.26032 3.60276 5.10017 2.57562 + 5.75632 7.67525 2.57567 4.08192 3.59993 4.62114 5.34016 4.07845 5.10017 3.84188 5.10017 + 7.67525 4.62114 3.59993 7.0763 4.86033 6.95638 4.3812 4.61615 4.07845 5.75979 4.62114 + 6.95628 4.08192 4.62114 7.67525 3.06372 ] pdfxs + 316.8 411.901 m + (paredwithpoolallocation\(andabout3xcomparedwiththe) + [5.10017 4.62109 3.59993 4.0785 7.50017 6.65759 2.57564 3.60273 7.44025 5.34001 4.86126 + 4.62109 4.97567 4.62109 2.57567 2.57567 4.86094 4.08197 4.62109 3.60273 2.57562 4.62114 + 7.38024 3.60276 4.62114 5.10017 7.4403 4.62114 5.34031 4.62114 5.10017 6.00266 4.62114 + 7.19612 4.08192 4.62114 7.67525 5.10017 4.62114 3.59993 4.07845 7.50027 6.65759 2.57562 + 3.60276 7.44025 3.60276 5.10017 4.07845 ] pdfxs + 316.8 401.461 m + (originalcode\).Thisimprovementisachievedbydramati-) + [4.62109 3.59993 2.57567 4.62109 2.57567 5.10017 4.62109 6.35574 4.08197 4.86094 5.10017 + 4.0785 3.60273 9.05549 6.65759 5.10017 2.57564 7.43652 2.57567 7.67579 5.10017 3.59993 + 4.38096 4.61615 4.07845 7.67579 4.07845 4.86018 7.4426 2.57562 7.49655 4.62114 3.84208 + 5.10017 2.57562 4.0785 4.61629 4.07845 8.94011 4.86033 8.75638 5.10017 3.59993 4.62114 + 7.67525 4.62114 3.60276 2.57562 3.06372 ] pdfxs + 316.8 391.022 m + (callyreducingthememoryfootprintoftheprogram\(and) + [4.08197 4.62109 2.57567 2.57567 8.93618 3.59993 4.0785 5.10017 5.10017 4.08197 2.57564 + 5.10017 8.7611 3.60273 5.10017 8.15865 7.67579 4.0785 7.67525 4.62114 3.59993 8.99636 + 2.81965 4.86118 4.62114 3.60276 5.10017 3.59993 2.57562 4.86033 7.62267 4.62114 6.89953 + 3.60276 5.10017 8.15863 5.10017 3.59993 4.62114 4.62109 3.59993 4.62114 11.7552 3.60276 + 4.62114 5.10017 5.10017 ] pdfxs + 316.8 380.522 m + (thecachefootprint,aswillbeseeninthenextsection\).) + [3.60273 5.10017 8.63834 4.08197 4.62109 3.84181 5.10017 8.57857 2.81963 4.86118 4.62109 + 3.60273 5.10017 3.59993 2.57567 4.86033 3.60273 7.37574 4.62109 8.15651 6.65759 2.57562 + 2.57567 7.01546 5.34001 8.63831 3.65647 4.07845 4.0785 9.60007 2.57562 9.60026 3.60276 + 5.10017 8.63831 5.10017 4.07845 4.85623 8.10261 3.65647 4.07845 4.08197 3.60276 2.57562 + 4.62114 5.10017 3.60276 2.57562 ] pdfxs + 316.8 370.082 m + (Memoryconsumptionisreducedalmostexactlybyafactor) + [8.46031 4.07848 7.67579 4.62109 3.59993 7.85621 4.08197 4.62109 5.10017 3.65645 5.10017 + 7.67576 5.10017 3.60273 2.57567 4.62109 8.16017 2.57562 6.59656 3.59993 4.07845 5.10017 + 5.10017 4.08197 4.07845 8.22033 4.62114 2.57562 7.67525 4.62114 3.65647 6.54274 4.07845 + 4.85623 4.62114 4.08192 3.60276 2.57567 7.85618 4.86033 7.91614 7.62114 2.81965 4.62109 + 4.08197 3.60276 4.62109 3.59993 ] pdfxs + 316.8 359.642 m + (of2,whichisthebestpossibleforpointercompressionwhen) + [4.62109 5.21948 4.62109 5.15574 6.65759 5.10017 2.57564 3.84205 7.50017 2.57567 6.05627 + 3.60273 5.10017 6.53834 5.34001 4.0785 3.65642 6.06274 5.34001 4.62114 3.65642 3.65647 + 2.57567 5.10017 2.57562 6.47855 2.81965 4.62109 5.99978 5.34001 4.62114 2.57562 4.86033 + 3.60276 4.07845 6.05979 4.08192 4.62114 7.67525 5.10017 3.59993 4.0785 3.65647 3.65642 + 2.57567 4.62109 7.50027 6.65759 5.10017 4.07845 5.10017 ] pdfxs + 316.8 349.142 m + (compressingfrom64to32-bits.Weusellubenchtoanalyze) + [4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 2.57564 5.10017 7.50127 + 2.81963 3.59993 4.62109 10.4956 4.62109 7.44125 3.60273 7.44097 4.62114 4.62109 3.06372 + 5.10017 2.57562 3.60276 3.65647 6.53572 8.69858 6.95863 5.10017 3.65647 6.95838 2.57562 + 2.57567 5.10017 5.34016 4.07845 5.10017 3.84188 8.04001 3.60276 7.44097 4.62114 5.10017 + 4.62109 2.57567 4.85619 4.08197 4.07845 ] pdfxs + 316.8 338.702 m + (thebehaviorofpointercompressioninmoredetailacross) + [3.60273 5.10017 8.15865 5.34001 4.0785 5.10017 4.38125 4.85621 2.57564 4.62112 7.67976 + 4.62109 6.83979 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 7.68005 4.08192 4.62114 + 7.67525 5.10017 3.59993 4.0785 3.65647 3.65642 2.57567 4.62109 9.18034 2.57562 9.12019 + 7.67525 4.62114 3.59993 8.15863 5.10017 4.07845 3.60276 4.62114 2.57562 6.59573 4.62114 + 4.08192 3.59993 4.62114 3.65642 3.65647 ] pdfxs + 316.8 328.262 m + (severalarchitecturesinthenextsection.) + [3.65645 4.07848 4.61637 4.0785 3.59993 4.62109 5.6355 4.62109 3.59993 3.84213 5.10017 + 2.57567 3.60273 4.0785 4.08195 3.60273 5.10017 3.59993 4.0785 6.71629 2.57567 8.22016 + 3.60276 5.10017 7.13832 5.10017 4.07845 4.85623 6.72292 3.65647 4.07845 4.08197 3.60276 + 2.57562 4.62114 5.10017 2.57562 ] pdfxs + 325.8 317.762 m + (Fouroftheotherbenchmarks\(perimeter,treeadd,tsp,) + [5.22155 4.62109 5.10017 7.79985 4.62109 6.95971 3.60273 5.10017 8.33833 4.62109 3.60273 + 5.10017 4.0785 7.73976 5.34001 4.07845 5.10017 3.84188 5.10017 7.67525 4.62114 3.59993 + 4.85623 7.91653 3.60276 5.34001 4.07845 3.59993 2.57567 7.67525 4.0785 3.60276 4.07845 + 3.59993 7.07571 3.60276 3.59993 4.07845 4.0785 4.62109 5.10017 5.10017 7.07581 3.60276 + 3.65647 5.10017 2.57562 ] pdfxs + 316.8 307.322 m + (andft\)speedupby6-32%overpoolallocation.) + [4.62109 5.10017 8.82001 2.81963 3.60273 7.26282 3.65645 5.34016 4.0785 4.0785 8.88 + 5.10017 8.88024 4.86033 8.51612 4.62109 3.06372 4.62114 4.62114 11.3952 4.3812 4.61615 + 4.07845 7.25978 5.34001 4.86128 4.62114 6.29554 4.62114 2.57562 2.57562 4.86099 4.08192 + 4.62114 3.60276 2.57562 4.62114 5.10017 2.57562 ] pdfxs + 514.02 311.102 m + /N21 5.97748 Tf + (5) show + 524.04 307.322 m + /N17 8.96638 Tf + (Allfour) + [6.90289 2.57562 6.23557 2.81965 4.62109 5.10017 3.59993 ] pdfxs + 316.8 296.882 m + (oftheseprogramsshowsubstantialreductionsinmemory) + [4.62109 6.83979 3.60273 5.10017 4.0785 3.65642 8.1585 5.10017 3.59993 4.62109 4.62109 + 3.59993 4.62112 7.67576 7.67636 3.65645 5.10017 4.38093 10.6175 3.65647 5.10017 5.10017 + 3.65647 3.60276 4.62109 4.86018 3.60276 2.57562 4.62114 6.53548 3.59993 4.07845 5.10017 + 5.10017 4.08197 3.60276 2.57562 4.62114 5.10017 7.73645 2.57562 9.12019 7.67525 4.0785 + 7.67525 4.62114 3.59993 4.85623 ] pdfxs + 316.8 286.382 m + (footprint,rangingfrom1.33xfortspto2xfortreeadd.) + [2.81963 4.86118 4.62109 3.60273 5.10017 3.59993 2.57567 4.86033 3.60273 5.57566 3.59993 + 4.62109 5.10017 4.62109 2.57567 5.10017 7.6811 2.81963 3.59993 4.62109 10.7358 4.62114 + 2.57562 4.62114 4.62109 7.91639 2.81965 4.62109 6.65993 3.60276 3.65647 8.16008 3.60276 + 7.62114 4.62114 7.91604 2.81965 4.62109 6.65993 3.60276 3.59993 4.07845 4.0785 4.62109 + 5.10017 5.10017 2.57567 ] pdfxs + 325.8 275.942 m + (Oftheremainingprograms,three\(bh,bisort,andpower\)) + [7.13659 5.63972 3.60273 5.10017 6.89849 3.59993 4.0785 7.67579 4.62109 2.57567 5.10015 + 2.57567 5.10017 7.38103 5.10017 3.59993 4.62114 4.62109 3.59993 4.62114 7.67525 3.65647 + 5.39564 3.60276 5.10017 3.59993 4.07845 6.89856 3.60276 5.10017 5.10017 5.45579 5.10017 + 2.57562 3.65647 4.62114 3.59993 3.60276 5.33562 4.62114 5.10017 7.91999 5.34001 4.3812 + 6.4175 4.07845 3.59993 3.60276 ] pdfxs + 316.8 265.503 m + (seenobene\ftfrompointercompression,whiletwoothers) + [3.65645 4.07848 7.97842 5.10017 8.58117 5.34001 4.0785 5.10017 4.0785 5.10017 7.56264 + 2.81963 3.59993 4.62109 11.5757 5.34001 4.62114 2.57562 4.86033 3.60276 4.07845 7.55979 + 4.08192 4.62114 7.67525 5.10017 3.59993 4.0785 3.65647 3.65642 2.57567 4.62109 5.10017 + 6.59573 6.65759 5.10017 2.57562 2.57567 7.97845 3.36292 6.4175 8.46128 4.62114 3.60276 + 5.10017 4.07845 3.59993 3.65647 ] pdfxs + 316.8 255.003 m + (\(em3dandks\)exhibitslowdowns.Foralloftheseexcept) + [3.60273 4.0785 7.67579 4.62109 9.00023 4.62109 5.10017 9.00009 4.85621 3.65642 7.44289 + 4.0785 4.85619 5.10017 2.57567 5.10017 2.57567 7.50273 3.65647 2.57562 4.38106 6.65759 + 5.10017 4.38096 6.65759 5.10017 3.65647 8.93576 5.22152 4.62114 7.49982 4.62114 2.57562 + 6.41555 4.62114 6.65969 3.60276 5.10017 4.07845 3.65647 7.9784 4.07845 4.85623 4.08197 + 4.07845 5.10017 3.60276 ] pdfxs + 316.8 244.563 m + (bisort,weseethatthereislittleornoreductioninmemory) + [5.10017 2.57567 3.65642 4.62112 3.59993 3.60273 5.51572 6.4175 7.01842 3.65645 4.07848 + 7.01866 3.60273 5.10017 4.62109 6.54289 3.60273 5.10017 4.0785 3.59988 7.0785 2.57562 + 6.5364 2.57562 2.57567 3.60276 3.60276 2.57562 6.95848 4.62114 6.54006 5.10017 7.62114 + 3.59993 4.07845 5.10017 5.10017 4.08197 3.60276 2.57562 4.62114 8.10016 2.57562 8.0401 + 7.67525 4.0785 7.67525 4.62114 3.59993 4.85623 ] pdfxs + 316.8 234.123 m + (consumption.BH,forexample,isnottype-homogenous,) + [4.08197 4.62109 5.10017 3.65645 5.10017 7.67576 5.10017 3.60273 2.57567 4.62109 5.10017 + 10.7357 6.54066 6.90289 7.01583 2.81963 4.62109 7.97986 4.07845 4.85623 4.62114 7.67525 + 5.10017 2.57567 4.07845 7.37571 2.57562 8.0364 5.10017 4.62114 8.04289 3.36292 4.85623 + 5.34016 4.07845 3.06372 5.10017 4.62114 7.67525 4.62114 4.62109 4.0785 5.10017 4.62109 + 5.10017 3.65647 2.57562 ] pdfxs + 316.8 223.623 m + (sopointercompressiondoesnotcompressanything.Power) + [3.65645 7.80124 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 6.78007 4.08197 4.62109 + 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 2.57564 4.62112 8.28031 5.10017 4.86128 + 4.07845 6.8364 5.10017 4.62114 6.78274 4.08192 4.62114 7.67525 5.10017 3.59993 4.0785 + 3.65647 6.8366 4.62114 4.86023 4.85623 3.60276 5.10017 2.57562 5.10017 4.62114 6.95554 + 6.05681 4.3812 6.4175 4.07845 3.59993 ] pdfxs + 316.8 213.183 m + (seesasmallreductionbuthassuchasmallfootprintthatits) + [3.65645 4.07848 4.0785 6.11628 7.08117 3.65645 7.67576 4.62112 2.57564 4.97559 3.59993 + 4.0785 5.10017 5.10017 4.08197 3.60271 2.57567 4.62109 7.62025 5.10017 5.10017 6.12268 + 5.10017 4.62114 6.11628 3.65647 5.10017 3.84193 7.62008 7.0812 3.65647 7.67525 4.62114 + 2.57562 4.97557 2.81965 4.86118 4.62114 3.60276 5.10017 3.59993 2.57562 4.86033 6.00275 + 3.60276 5.10017 4.62114 6.06282 2.57562 3.60276 3.65647 ] pdfxs + 316.8 202.683 m + (maintraversalsareabletoliveinthecache,evenwith64-bi) + [7.67579 4.62109 2.57567 7.44008 3.60273 3.59993 4.38118 4.61612 4.0785 3.59993 3.65642 + 4.62112 2.57564 5.87637 4.62109 3.59993 6.4785 4.62109 5.10017 2.57567 6.4184 3.60276 + 6.90112 2.57562 2.57567 4.61629 6.4184 2.57562 7.44011 3.60276 5.10017 6.4184 4.08192 + 4.62114 3.84179 5.10017 4.07845 5.09573 4.07845 4.61624 4.07845 7.50027 6.65759 2.57562 + 3.60276 7.44025 4.62114 4.62109 3.06372 5.10017 2.55545 ] pdfxs + 552.36 202.683 m + (t) show + 316.8 192.243 m + (pointers.Inks,pointercompressionshrunkapointerbut) + [5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 3.59993 3.65642 8.69551 3.30018 8.94001 + 4.85621 3.65642 6.47566 5.34001 4.62109 2.57567 4.86033 3.60273 4.07845 7.3801 4.08192 + 4.62114 7.67525 5.10017 3.59993 4.0785 3.65647 3.65642 2.57567 4.62109 8.82018 3.65647 + 5.10017 3.59993 5.10017 5.10017 8.63621 8.40111 5.34001 4.62114 2.57562 4.86033 3.60276 + 4.07845 7.3801 5.10017 5.10017 3.60276 ] pdfxs + 316.8 181.803 m + (thespacesavedisreplacedbystructurepadding.Bisort) + [3.60273 5.10017 8.3985 3.65645 5.10017 4.62109 4.08197 8.39864 3.65645 4.38093 4.61612 + 4.0785 9.42016 2.57567 7.91643 3.59993 4.0785 5.10017 2.57567 4.62109 4.08197 4.07845 + 9.42033 4.86033 9.17629 3.65647 3.60276 3.59993 5.10017 4.08192 3.60276 5.10017 3.59993 + 8.45848 5.10017 4.62114 5.10017 5.10017 2.57562 5.10017 4.62114 10.3756 6.54063 2.57567 + 3.65642 4.62114 3.59993 3.60276 ] pdfxs + 316.8 171.303 m + (showsa2xreductioninmemoryfootprint,butdoesnot) + [3.65645 5.10017 4.38093 6.65759 8.03642 9.12101 4.62109 9.29612 3.59993 4.0785 5.10017 + 5.10017 4.08197 3.60271 2.57567 4.62109 9.60034 2.57562 9.5401 7.67525 4.0785 7.67525 + 4.62114 3.59993 9.35613 2.81965 4.86118 4.62114 3.60276 5.10017 3.59993 2.57562 4.86033 + 3.60276 7.31555 5.10017 5.10017 8.10275 5.10017 4.86128 4.07845 8.09655 5.10017 4.62114 + 3.60276 ] pdfxs + 316.8 160.863 m + (experienceanyperformancebene\ft.) + [4.0785 4.85619 5.34026 4.0785 3.59993 2.57567 4.07848 5.10017 4.08197 7.31834 4.62109 + 4.86025 7.91612 5.34001 4.0785 3.59993 2.81963 4.62109 3.59993 7.67579 4.62114 5.10017 + 4.08192 7.19847 5.34001 4.07845 5.10017 4.0785 5.10017 3.60276 2.57562 ] pdfxs + Q + n + 3168 1487 956.398 4.19922 re + f + q + 10 0 0 10 0 0 cm + 317.28 142.26 m + /N21 5.97748 Tf + (5) show + 321.42 138.48 m + /N33 6.97377 Tf + (Comparingthesenumbersforthe) + [5.69663 3.95687 6.53649 4.38029 3.95685 3.11698 2.2771 4.38029 7.01667 3.11698 4.38029 + 3.54035 3.18292 6.48032 4.14013 4.38029 6.29658 4.6202 3.54035 3.11701 6.30305 2.45888 + 3.9569 6.1169 3.11698 4.38026 3.54035 ] pdfxs + 442.44 138.48 m + /N39 6.97377 Tf + (ft) + [3.71825 3.7182 ] pdfxs + 452.88 138.48 m + /N33 6.97377 Tf + (benchmarkwithourprevious) + [4.6202 3.54035 4.38031 3.30027 4.38026 6.53654 3.95685 3.11698 7.25873 5.69663 2.27707 + 3.11698 7.32016 3.9569 4.38026 6.17686 4.38026 3.11698 3.54035 4.19861 2.27712 3.95685 + 4.38031 3.18292 ] pdfxs + 316.801 130.5 m + (experimentsonanAMDAthlonsystem[10]showssomesurprisi) + [3.54035 4.19861 4.62044 3.54035 3.11701 2.27707 6.53651 3.54035 4.14044 3.11698 6.48287 + 3.95687 7.74023 3.95687 7.74023 5.87815 7.14145 9.35912 5.63799 3.11698 4.38026 2.27707 + 3.9569 7.80009 3.18292 4.19861 3.18297 3.11694 3.5404 9.77644 2.27707 3.9569 3.9569 + 5.57713 3.18292 4.38031 3.71696 5.69663 6.48297 3.18292 3.9569 6.53649 6.90042 3.18292 + 4.38031 3.11694 4.38031 3.11694 2.27712 3.18292 2.25251 ] pdfxs + 547.621 130.5 m + (ng) + [4.38026 3.9569 ] pdfxs + 316.801 122.52 m + (di\013erences.Wehaveveri\fedthatthesedi\013erencesarevali) + [4.38029 2.2771 4.7428 3.54035 3.11701 3.54035 4.38029 3.54035 3.54035 3.18292 5.93713 + 7.38141 6.24017 4.38029 3.71686 3.95877 6.36048 3.95877 3.54035 3.11701 2.27707 4.50119 + 3.54035 7.08042 3.11698 4.38026 3.9569 5.87676 3.11698 4.38026 3.54035 3.18297 6.30023 + 4.38026 2.27712 4.74282 3.54035 3.11698 3.54035 4.38026 3.5404 3.54035 5.88274 3.9569 + 3.11694 6.24027 3.77869 3.9569 2.27707 2.27712 ] pdfxs + (d) show + 525.841 122.52 m + (.Inpar-) + [5.87712 2.88203 7.14018 4.38026 3.9569 3.11698 2.70049 ] pdfxs + 316.801 114.54 m + (ticular,ftcompiledwithGCC\(orwithLLVM\)onx86isfarslow) + [3.11698 2.2771 3.54035 4.38029 2.2771 3.95687 3.11698 5.39713 2.45885 6.23694 3.54035 + 3.95687 6.53649 4.38029 2.2771 2.2771 3.54035 7.50017 5.69663 2.2771 3.11698 7.44008 + 6.18041 5.69663 8.69659 3.11698 3.95685 6.23687 5.69663 2.27707 3.11698 7.44008 4.91748 + 4.07745 5.87812 7.1415 6.17691 3.9569 7.50039 4.19861 3.9569 7.07668 2.27707 6.24284 + 2.45888 3.9569 6.17691 3.18292 2.27712 3.71696 5.68364 ] pdfxs + 549.241 114.54 m + (er) + [3.54035 3.11698 ] pdfxs + 316.801 106.56 m + (thanonSparc,e.g.,64s.vs.9.8s.forGCC.Poolallocations) + [3.11698 4.38029 3.95687 7.50039 3.95687 7.50039 4.38029 4.38029 3.95685 3.11698 3.54037 + 5.51705 3.54035 2.2771 3.95687 2.2771 5.3972 3.95687 3.95685 3.18292 6.95719 4.19861 + 3.18292 6.95689 3.9569 2.27707 3.9569 3.18292 6.95689 2.45888 3.9569 6.23706 6.18041 + 5.69663 5.69663 5.27709 5.10096 4.19688 3.9569 5.3972 3.9569 2.27707 2.27712 4.19678 + 3.54035 3.9569 3.11698 2.27707 3.9569 7.44023 3.15914 ] pdfxs + 536.702 106.56 m + (peeds) + [4.6203 3.54035 3.54035 4.38031 3.18292 ] pdfxs + 316.801 98.5805 m + (upftbyafactorofmorethan11xonx86\(comparedwithGCCor) + [4.38029 7.56008 2.45885 6.17679 4.14013 7.31849 7.0769 2.45885 3.95685 3.54037 3.11698 + 3.95685 6.23704 3.95687 5.57864 6.53649 3.95687 3.11698 6.6604 3.11698 4.38026 3.9569 + 7.56015 3.9569 3.9569 7.25863 3.9569 7.56015 4.19861 3.9569 7.01691 3.11698 3.54035 + 3.9569 6.53649 4.38026 3.9569 3.11698 3.54035 7.56015 5.69663 2.27707 3.11698 7.44008 + 6.18041 5.69663 8.75645 3.9569 3.11694 ] pdfxs + 316.801 90.6606 m + (LLVM\),indicatingthattheoriginalcodeforfthasextremel) + [4.91746 4.07748 5.87815 7.14145 3.11698 5.57698 2.2771 4.38029 4.38026 2.2771 3.54037 + 3.95685 3.11698 2.2771 4.38029 7.25698 3.11698 4.38029 3.95687 6.47678 3.11698 4.38026 + 6.84016 3.9569 3.11694 2.27712 3.9569 2.27707 4.38026 3.9569 5.57698 3.54035 4.19674 + 4.38026 6.84026 2.45888 3.9569 6.41675 2.45888 6.41699 4.38026 3.9569 6.48282 3.54035 + 4.19861 3.11698 3.11694 3.5404 6.53649 3.54035 2.25251 ] pdfxs + 532.56 90.6606 m + (ypoor) + [7.49867 4.6202 4.19688 3.9569 3.11694 ] pdfxs + 316.801 82.6807 m + (cachebehavioronx86.Thispoorbehaviorisnotobservedont) + [3.54035 3.95687 3.30036 4.38029 7.02031 4.6202 3.54035 4.38029 3.71671 4.19861 2.2771 + 3.95685 6.5968 3.95687 7.86015 4.19861 3.95687 3.95685 8.03718 5.69663 4.38026 2.27712 + 6.54288 4.6202 4.19688 3.9569 6.53691 4.6202 3.54035 4.38031 3.71671 4.19861 2.27707 + 3.9569 6.59678 2.27707 6.54283 4.38026 3.9569 6.59678 3.9569 4.38026 3.18297 3.54035 + 3.11694 3.95848 3.54035 7.80009 3.9569 7.86015 3.1103 ] pdfxs + 547.98 82.6807 m + (he) + [4.38026 3.54035 ] pdfxs + 316.801 74.7007 m + (Sparc.) + [4.38029 4.38029 3.95685 3.11698 3.54037 2.2771 ] pdfxs + Q + Q + PDFVars/TermAll get exec end end + userdict /pgsave get restore + showpage + %%PageTrailer + %%EndPage + %%Page: 10 10 + %%BeginPageSetup + userdict /pgsave save put + PDFVars begin PDF begin PDFVars/InitAll get exec + 0 0 612 792 true PDF begin PDFVars begin AS end end + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font CNVXBJ+CMBX5 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMBX5) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /CNVXBJ+CMBX5 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { 0 -250 1061 750 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3EC9EBBC6A5E + 2825687306A156DACC32FBF734087CDFC35B78DDA68032BCA38CA8E8A340AAA3 + 002A0E52D0B9162BC68AACFC0F14A1C933363A56EE460EB41CE8C2E9EDC509AB + 9E0462B9F619AD944F133AF072E5FD1625902963260181189070C40FB0D49A96 + 50D86FB0AA90098027455AC2354A299FC7BFC34B4F1162E5E9A3EFD80D6240B6 + 9378BB4F6F9F5B8A2073FB27FA61BEBC0D0C914E964395C4164536A80B4709BB + 924AF31EF30E5BCB083CF9DA2934ABA2ADF94C8131A7E7EAFEC9FA838B6BA12A + B3730188A8A681EE28BAFF5166448791098CDE9F84503FF66C475D3A4E5E4775 + 6DEEA526BF360BF9364636A9EA4FF5CD7FEF6120D4C23D3E0C3DBC2A08861FCC + C51DB2A12874D1005F3256EA3261395806C44AD0693BB99AB5C2907775CB3625 + 661E640CB042E2AD74456749A40040136C3B5B84CECC699220C9AFED88078024 + EF6CE057CB580426D1D27BB282674FE12AACA614ED519031C69551EEDBE326F4 + E475BB180453B3CEFB7E381481CDAFA0A8B93FDF050A7FF94EEAE9049D7CF132 + 41443FCD44F7C39C177843BEB556F3C6257751E46086503CD66A1A72A65C14D4 + A21A5D51363D443F66B737691F61BA02DFF6A9E93EE2CF4771FFEF015CA68057 + 16013EAF234FEA832C2B4A800BE7DD64DC4F75479575D5D2EEF37BE18680A9EA + A98C3092F378BC4FDD03A2D8B05461193811FCDF9BBD1A46AA7FE5D2CA282AD6 + 0F2EBDC02C3B7CCB2C5C93580E1E80DD4F93F05B664A4D49D92E624FFF6AB4DA + 3F1CF5835320889CE7D99025316E69FD8D656424BCF5111FDFE6E6E77DEABEB5 + 883E49AD273B31F2C663118D9DB7E04B44EA4CC359B381B387F4E9D46AB9BBE8 + 231820EFB5FBBED8A25FE9BCA7674228390FDC29248A6236F26D181D83E3DA67 + CD0B39C08435DCD441AFBCDB9C00674FD186EC73CEDC3E334C62A17480E5F755 + A1A1F51C602F9D266088C0F981D3DFB5478313B8F4CD1C2ACC0A473E65697D1A + 8AE85D79BAF3A35CAFDF123239CEA6BA8A4B6200B3101EFA8221558C4A527901 + 2F7B0EC557318D2989FC1BD69E2196FF205BF852A70C93DA358B0655A45B02D4 + 5728CDF0F4BF6CB14A42DB692B76551557A49909C72F48832D5C3A757279909C + 47F32A98835B1B7947CCCB411234F14263A3EC232080394DE1A768BB28B6141D + 651FA844B622BBF8D89B1F0BFA1AA5876F1C393E0EF9FDE0402A121B83293DB0 + C353BC330B6D812946C3DD5F5124008459FBC45BE445710E4C2571E800550922 + B75E7EF41A4BEE9655EBFF42E92620DD7D4D3A7F560F297B6AFC626683D5F723 + 8E0026117ED7795C1C15326FF55A21635E17E1A7E21CE904FDB3FE7786D7A077 + 19FF4F71E202B43B3E6AEFCDD2E1E9B5DDF3DD756949364697B33EB7DDBBEA3C + 621DC02658C80CA6675EDD76C242A94907CBC4D4EF6BE9B4AAF5526F4A64A662 + 37C443840CE17644CFF4B38D77782FCA65A81EBA2A90A200ED6FA5736ACDA30D + D31FDCC0CE5EFA862B67EC6568BB32B8371471DAA4A200A8141BFAB65529C3FB + 3917BBB063D2161EC8AFF07302F2638C129BD000C8133901F6EBBAB8B8FE14C0 + 3F9679E08F3D193A505B3619491AEC06187820A43FC89B4AD5FBE3EE6D102576 + 9240E45F0481989995DA039D0988F2F5FE76ED5ADD43B0F8454DD0A97AC4BD49 + 6CE30B6819F1722481A01015B02E2909A03BFFABE89E8A7C08F46E556A5C1928 + 0B896136EF27BB9536EA30CE1879569C43F68CF32590F47C293C9AA92817030F + D4CE4C3C4FAFC36424DD35F1F31EA76967C13D4BB77DC96563B5CB8F68C5A646 + D9B4D3753570DFBD161B57FF24B48BEC976027792A0F04E2D5F5E39CB61F6E57 + 1502F1B798B697C9B84FF628833E2FA0CFD5A4D4DFD270799B9892F8EF89B243 + 33E3CDA75F0AC44595164956B826D485BA5384E4913260648204AE52C56B218B + A18A7163A76A904CDC82D574BFFA8291C8FEDED922EA2EF56E2F47B9CBB2017C + 415A6D6F5711AA7295F479406D6A024108E7DFA9228E20611A8F337A615D087F + 45D321E30013C2DA168FB333EB5B011551BA2EFE854250416AB2E93BDD8087D2 + DB8FEB60074AC054C9E94B3719D9294B87801344A20C3C5D4042C7875134DFD9 + 47F0D2F94B39F249E8A223617CDAB7B397124A9092D55A552BC7A605AEA6BD62 + 857C12D421CA4A2F59C45A4B50AC300F0FBF5A8A1AD56E17D0BCA79AE61BF13A + C5E77EE76EAC330BCDF84AC2709DD00808D77A613CFE44793DA46143A7BE4262 + EF09E1B9836FE3E7B50159C608C6BD328074A0581AFD3BA94627BAB23091B6F9 + C104C4FF8D4E0751543D694C532751954FC675418218E56B5BC07A5EEA373EFB + 5AD94CC92D234C61CCD9A020096EC79EE1C782F090D0A761EA944027EE90CCED + 01F607C7B543FDFFDA87DBC41255B0D4FEB5655A5A517E85B8AB91360DD0949E + 237F772F734A587FE9740D0092F40B7A254B2D8EC57955BB6D40F5A01A9CC32B + 97E8E8F264FB104F36542A54F209C6DEB8F35E978F73B36DE6D1735C2136B025 + 0B74846A275A4C22053E94F08950F34B54244D7C893B9EBC897D720B98C22FDA + A3ECD8ACB8F1E9B5930A3782BC1C4C88DB900A1CAA577721B03EDC801D449995 + F4444427532E9668D80236DD98C110A23229D55DDC495D3C256E + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /CNVXBJ+CMBX5 findfont /Encoding get + dup 0 /.notdef put + pop + end + /CNVXBJ+CMBX5 findfont /Encoding get + dup 0 /.notdef put + dup 47 /.notdef put + dup 65 /.notdef put + dup 67 /.notdef put + dup 78 /.notdef put + dup 80 /.notdef put + dup 111 /.notdef put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [/N87/CNVXBJ+CMBX5 1 TZG + %%EndPageSetup + 0 0 612 792 re + W + n + q + 0.0999908 0 0 0.0999908 0 0 cm + n + 1121 7378 3829.2 4.19922 re + [/DeviceGray] cs 0 sc + f + n + 1119 7298 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 117.48 732.24 m + /N33 6.97377 Tf + (Program) + [5.34098 3.11698 3.95687 3.95687 3.117 3.95687 6.53651 ] pdfxs + Q + n + 1560 7298 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 161.58 732.24 m + /N33 6.97377 Tf + (NoPA\(s\)PA\(s\)PC\(s\)) + [5.87815 3.95687 4.6809 8.63795 3.11698 3.18293 13.7968 4.68107 8.63795 3.11698 3.18292 + 13.7968 5.34098 8.39644 3.11698 3.18292 3.11698 ] pdfxs + Q + n + 2666 7298 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 272.16 732.24 m + /N87 4.98122 Tf + (PC) + [5.04162 5.40222 ] pdfxs + (/) show + (PAPC) + [4.44181 16.3202 5.04162 5.40222 ] pdfxs + (/) show + (N) + [5.76114 ] pdfxs + (o) show + (PA) + [4.44163 5.52053 ] pdfxs + Q + n + 3461 7298 4.19922 79.8008 re + f + n + 3479 7298 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 353.46 732.24 m + /N33 6.97377 Tf + (PeakPAPeakPC) + [5.10099 3.54035 3.95687 4.19861 4.68107 16.6781 5.10099 3.54035 3.95687 4.19861 5.34095 + 5.69663 ] pdfxs + Q + n + 4247 7298 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 430.32 732.24 m + /N33 6.97377 Tf + (PeakPC/PeakPA) + [5.10096 3.54035 3.9569 4.19861 5.34095 5.69663 3.9569 5.10096 3.54035 3.9569 4.19861 + 4.68105 5.87812 ] pdfxs + Q + n + 4948 7298 4.19922 79.8008 re + f + n + 1121 7294 3829.2 4.19922 re + f + n + 1119 7214 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 117.48 723.84 m + /N33 6.97377 Tf + (bh) + [4.38029 4.38027 ] pdfxs + Q + n + 1560 7214 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 175.98 723.84 m + /N33 6.97377 Tf + (15.3216.1916.17) + [3.95687 3.95687 2.2771 3.95687 19.2566 3.95687 3.95685 2.2771 3.95687 19.6765 3.95687 + 3.95685 2.2771 3.95687 3.95685 ] pdfxs + Q + n + 2666 7214 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 282.24 723.84 m + /N33 6.97377 Tf + (.9991.05) + [2.2771 3.95685 3.95687 34.3164 3.95687 2.27707 3.95687 3.95687 ] pdfxs + Q + n + 3461 7214 4.19922 79.8008 re + f + n + 3479 7214 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 364.2 723.84 m + /N33 6.97377 Tf + (8MB8MB) + [3.95687 7.14145 27.5422 3.95687 7.14145 5.58256 ] pdfxs + Q + n + 4247 7214 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 479.4 723.84 m + /N33 6.97377 Tf + (1.0) + [3.9569 2.27707 3.9569 ] pdfxs + Q + n + 4948 7214 4.19922 79.8008 re + f + n + 1119 7135 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 117.48 715.86 m + /N33 6.97377 Tf + (bisort) + [4.38029 2.27709 3.18293 3.95687 3.11698 3.117 ] pdfxs + Q + n + 1560 7135 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 175.98 715.86 m + /N33 6.97377 Tf + (27.3324.3124.29) + [3.95687 3.95687 2.2771 3.95687 19.2566 3.95687 3.95685 2.2771 3.95687 19.6765 3.95687 + 3.95685 2.2771 3.95687 3.95685 ] pdfxs + Q + n + 2666 7135 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 282.24 715.86 m + /N33 6.97377 Tf + (.999.889) + [2.2771 3.95685 3.95687 34.3164 2.2771 3.95685 3.95687 3.95687 ] pdfxs + Q + n + 3461 7135 4.19922 79.8008 re + f + n + 3479 7135 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 360.18 715.86 m + /N33 6.97377 Tf + (64MB32MB) + [3.95687 3.95685 7.14147 23.6424 3.95687 3.95685 7.1415 5.58256 ] pdfxs + Q + n + 4247 7135 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 479.4 715.86 m + /N33 6.97377 Tf + (0.5) + [3.9569 2.27707 3.9569 ] pdfxs + Q + n + 4948 7135 4.19922 79.8008 re + f + n + 1119 7055 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 117.48 707.94 m + /N33 6.97377 Tf + (em3d) + [3.54036 6.5365 3.95688 4.38027 ] pdfxs + Q + n + 1560 7055 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 175.98 707.94 m + /N33 6.97377 Tf + (27.1927.1630.25) + [3.95687 3.95687 2.2771 3.95687 19.2566 3.95687 3.95685 2.2771 3.95687 19.6765 3.95687 + 3.95685 2.2771 3.95687 3.95685 ] pdfxs + Q + n + 2666 7055 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 282.24 707.94 m + /N33 6.97377 Tf + (1.111.11) + [3.95687 2.27707 3.95687 34.3164 3.95687 2.27707 3.95687 3.95687 ] pdfxs + Q + n + 3461 7055 4.19922 79.8008 re + f + n + 3479 7055 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 354 707.94 m + /N33 6.97377 Tf + (47.1MB47MB) + [3.95687 3.95685 2.2771 3.95687 7.14145 23.5824 3.95687 3.95685 7.1415 5.58256 ] pdfxs + Q + n + 4247 7055 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 479.4 707.94 m + /N33 6.97377 Tf + (1.0) + [3.9569 2.27707 3.9569 ] pdfxs + Q + n + 4948 7055 4.19922 79.8008 re + f + n + 1119 6976 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 117.48 699.96 m + /N33 6.97377 Tf + (perimeter) + [4.6202 3.54036 3.11698 2.2771 6.5365 3.54036 3.117 3.54035 3.117 ] pdfxs + Q + n + 1560 6976 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 175.98 699.96 m + /N33 6.97377 Tf + (10.136.635.38) + [3.95687 3.95687 2.2771 3.95687 23.2167 3.95687 2.27707 3.95687 23.6365 3.95687 2.27707 + 3.95687 3.95687 ] pdfxs + Q + n + 2666 6976 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 282.24 699.96 m + /N33 6.97377 Tf + (.811.531) + [2.2771 3.95685 3.95687 34.3164 2.2771 3.95685 3.95687 3.95687 ] pdfxs + Q + n + 3461 6976 4.19922 79.8008 re + f + n + 3479 6976 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 356.22 699.96 m + /N33 6.97377 Tf + (299MB171MB) + [3.95687 3.95685 3.95687 7.14145 19.6223 3.95687 3.95685 3.95687 7.1415 5.58256 ] pdfxs + Q + n + 4247 6976 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 475.38 699.96 m + /N33 6.97377 Tf + (0.57) + [3.9569 2.27707 3.9569 3.9569 ] pdfxs + Q + n + 4948 6976 4.19922 79.8008 re + f + n + 1119 6896 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 117.48 691.98 m + /N33 6.97377 Tf + (power) + [4.6202 3.7168 5.45677 3.54036 3.11698 ] pdfxs + Q + n + 1560 6896 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 179.94 691.98 m + /N33 6.97377 Tf + (6.536.526.51) + [3.95687 2.2771 3.95687 23.2165 3.95687 2.27707 3.95687 23.6365 3.95687 2.27707 3.95687 + 3.95687 ] pdfxs + Q + n + 2666 6896 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 282.24 691.98 m + /N33 6.97377 Tf + (.998.997) + [2.2771 3.95685 3.95687 34.3164 2.2771 3.95685 3.95687 3.95687 ] pdfxs + Q + n + 3461 6896 4.19922 79.8008 re + f + n + 3479 6896 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 357.3 691.98 m + /N33 6.97377 Tf + (882KB816KB) + [3.95687 3.95685 3.95687 6.11978 20.6423 3.95687 3.95685 3.95687 6.11978 5.58256 ] pdfxs + Q + n + 4247 6896 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 475.379 691.98 m + /N33 6.97377 Tf + (0.92) + [3.9569 2.27707 3.9569 3.9569 ] pdfxs + Q + n + 4948 6896 4.19922 79.8008 re + f + n + 1119 6816 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 117.48 684 m + /N33 6.97377 Tf + (treeadd) + [3.11698 3.117 3.54035 3.54036 3.95687 4.38029 4.38029 ] pdfxs + Q + n + 1560 6816 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 175.98 684 m + /N33 6.97377 Tf + (72.8352.7835.76) + [3.95687 3.95687 2.2771 3.95687 19.2566 3.95687 3.95685 2.2771 3.95687 19.6765 3.95687 + 3.95685 2.2771 3.95687 3.95685 ] pdfxs + Q + n + 2666 6816 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 282.24 684 m + /N33 6.97377 Tf + (.678.491) + [2.2771 3.95685 3.95687 34.3164 2.2771 3.95685 3.95687 3.95687 ] pdfxs + Q + n + 3461 6816 4.19922 79.8008 re + f + n + 3479 6816 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 356.22 684 m + /N33 6.97377 Tf + (128MB64MB) + [3.95687 3.95685 3.95687 7.14145 23.6425 3.95687 3.95685 7.1415 5.58256 ] pdfxs + Q + n + 4247 6816 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 479.4 684 m + /N33 6.97377 Tf + (0.5) + [3.9569 2.27707 3.9569 ] pdfxs + Q + n + 4948 6816 4.19922 79.8008 re + f + n + 1119 6736 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 117.48 676.02 m + /N33 6.97377 Tf + (tsp) + [3.11698 3.18293 4.38029 ] pdfxs + Q + n + 1560 6736 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 175.98 676.02 m + /N33 6.97377 Tf + (18.3316.2815.28) + [3.95687 3.95687 2.2771 3.95687 19.2566 3.95687 3.95685 2.2771 3.95687 19.6765 3.95687 + 3.95685 2.2771 3.95687 3.95685 ] pdfxs + Q + n + 2666 6736 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 282.24 676.02 m + /N33 6.97377 Tf + (.939.834) + [2.2771 3.95685 3.95687 34.3164 2.2771 3.95685 3.95687 3.95687 ] pdfxs + Q + n + 3461 6736 4.19922 79.8008 re + f + n + 3479 6736 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 356.22 676.02 m + /N33 6.97377 Tf + (128MB96MB) + [3.95687 3.95685 3.95687 7.14145 23.6425 3.95687 3.95685 7.1415 5.58256 ] pdfxs + Q + n + 4247 6736 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 475.38 676.02 m + /N33 6.97377 Tf + (0.75) + [3.9569 2.27707 3.9569 3.9569 ] pdfxs + Q + n + 4948 6736 4.19922 79.8008 re + f + n + 1121 6733 3829.2 4.19922 re + f + n + 1119 6653 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 117.48 667.68 m + /N33 6.97377 Tf + (ft) + [2.45885 3.117 ] pdfxs + Q + n + 1560 6653 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 175.98 667.68 m + /N33 6.97377 Tf + (14.5911.6010.04) + [3.95687 3.95687 2.2771 3.95687 19.2566 3.95687 3.95685 2.2771 3.95687 19.6765 3.95687 + 3.95685 2.2771 3.95687 3.95685 ] pdfxs + Q + n + 2666 6653 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 282.24 667.68 m + /N33 6.97377 Tf + (.866.688) + [2.2771 3.95685 3.95687 34.3164 2.2771 3.95685 3.95687 3.95687 ] pdfxs + Q + n + 3461 6653 4.19922 79.8008 re + f + n + 3479 6653 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 354 667.68 m + /N33 6.97377 Tf + (8.75MB4.44MB) + [3.95687 2.27707 3.95687 3.95687 7.14145 17.3423 3.95687 2.27707 3.95687 3.95687 7.14145 + 5.58256 ] pdfxs + Q + n + 4247 6653 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 475.379 667.68 m + /N33 6.97377 Tf + (0.51) + [3.9569 2.27707 3.9569 3.9569 ] pdfxs + Q + n + 4948 6653 4.19922 79.8008 re + f + n + 1119 6573 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 117.48 659.7 m + /N33 6.97377 Tf + (ks) + [4.1986 3.18293 ] pdfxs + Q + n + 1560 6573 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 179.94 659.7 m + /N33 6.97377 Tf + (8.017.938.27) + [3.95687 2.2771 3.95687 23.2165 3.95687 2.27707 3.95687 23.6365 3.95687 2.27707 3.95687 + 3.95687 ] pdfxs + Q + n + 2666 6573 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 282.24 659.7 m + /N33 6.97377 Tf + (1.041.03) + [3.95687 2.27707 3.95687 34.3164 3.95687 2.27707 3.95687 3.95687 ] pdfxs + Q + n + 3461 6573 4.19922 79.8008 re + f + n + 3479 6573 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 355.08 659.7 m + /N33 6.97377 Tf + (47.1KB47.1KB) + [3.95687 3.95685 2.2771 3.95687 6.11978 18.3623 3.95687 3.95685 2.2771 3.95687 6.11978 + 5.58261 ] pdfxs + Q + n + 4247 6573 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 479.4 659.7 m + /N33 6.97377 Tf + (1.0) + [3.9569 2.27707 3.9569 ] pdfxs + Q + n + 4948 6573 4.19922 79.8008 re + f + n + 1121 6569 3829.2 4.19922 re + f + n + 1119 6490 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 117.48 651.3 m + /N33 6.97377 Tf + (llubench) + [2.2771 2.27709 4.38029 4.62043 3.54036 4.38027 3.30029 4.38029 ] pdfxs + Q + n + 1560 6490 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 175.98 651.3 m + /N33 6.97377 Tf + (37.4227.8911.87) + [3.95687 3.95687 2.2771 3.95687 19.2566 3.95687 3.95685 2.2771 3.95687 19.6765 3.95687 + 3.95685 2.2771 3.95687 3.95685 ] pdfxs + Q + n + 2666 6490 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 282.24 651.3 m + /N33 6.97377 Tf + (.426.317) + [2.2771 3.95685 3.95687 34.3164 2.2771 3.95685 3.95687 3.95687 ] pdfxs + Q + n + 3461 6490 4.19922 79.8008 re + f + n + 3479 6490 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 354 651.3 m + /N33 6.97377 Tf + (4.49MB2.24MB) + [3.95687 2.27707 3.95687 3.95687 7.14145 17.3423 3.95687 2.27707 3.95687 3.95687 7.14145 + 5.58256 ] pdfxs + Q + n + 4247 6490 4.19922 79.8008 re + f + q + 10 0 0 10 0 0 cm + 479.4 651.3 m + /N33 6.97377 Tf + (0.5) + [3.9569 2.27707 3.9569 ] pdfxs + Q + n + 4948 6490 4.19922 79.8008 re + f + n + 1121 6485 3829.2 4.19922 re + f + q + 10 0 0 10 0 0 cm + 132.24 630.84 m + /N23 8.96638 Tf + (Figure15:PointerCompressionBenchm) + [6.66306 2.94268 5.28302 5.87644 4.37907 8.46026 5.28303 5.28302 7.74267 6.96002 5.28303 + 2.94267 5.57644 4.13846 4.86027 7.91898 7.68343 5.28303 8.81908 5.87642 4.37907 4.86027 + 4.2022 4.2022 2.94267 5.28303 9.47643 7.56107 4.86025 5.87644 4.44057 5.87644 8.81908 + ] pdfxs + (a) show + (rkResults\() + [4.37905 9.18416 7.98245 4.86025 4.2022 5.87644 2.94267 4.13849 7.68228 4.13846 ] pdfxs + (a) show + (lltim) + [2.94267 6.4826 4.13846 2.94269 8.81906 ] pdfxs + (e) show + 418.14 630.84 m + (sinseconds\)) + [7.74219 2.94267 9.47634 4.2022 4.86029 4.74074 5.28301 5.87644 5.87639 4.2022 4.13846 + ] pdfxs + 62.76 600.72 m + /N17 8.96638 Tf + (Aninterestingproblemexhibitedinitiallybykswasthat) + [6.9029 8.28023 2.57565 4.86 3.60274 4.07849 3.59993 4.07849 3.65645 3.60275 2.57565 + 5.10016 7.74095 5.10016 3.59993 4.62111 5.10016 2.57565 4.07849 10.7958 4.0785 4.85621 + 5.10016 2.57564 5.10016 2.57565 3.60275 4.07849 8.34008 2.57565 5.10017 2.57567 3.60273 + 2.57564 4.62112 2.57564 2.57567 7.85621 4.86033 8.03604 4.85621 6.77627 6.4175 4.62109 + 6.71629 3.60273 5.10017 4.62109 3.60273 ] pdfxs + 53.8198 590.28 m + (usingapre-reservedpooladdressspaceof4MBoranylarger) + [5.10016 3.65644 2.57565 5.10016 6.90096 6.96126 5.10016 3.59993 4.07849 3.06372 3.59993 + 4.07849 3.65645 4.0785 3.59993 4.61629 4.0785 7.50023 5.34 4.86127 4.62111 4.91549 + 4.62111 5.10016 5.10016 3.59993 4.0785 3.65645 5.99661 3.65645 5.10016 4.62111 4.08197 + 6.41857 4.62109 5.09955 4.62109 8.46031 8.88082 4.62109 5.87993 4.62109 4.86025 7.1962 + 2.57567 4.62109 3.59993 4.62109 4.0785 3.59993 ] pdfxs + 53.8198 579.78 m + (sizesloweddownthePCversionbyover60%relativeto) + [3.65644 2.57565 4.08196 8.27848 3.65644 2.57565 4.38104 6.4175 4.07849 9.24008 5.10016 + 4.38119 6.65758 9.30031 3.60275 5.10016 8.33833 6.29667 10.8577 4.61614 4.0785 3.59993 + 3.65645 2.57564 4.62112 9.24023 4.86031 9.11613 4.38118 4.61612 4.0785 7.8 4.62109 + 4.62109 11.8757 3.59993 4.0785 2.57567 4.62109 3.60273 2.57567 4.61627 8.21842 3.60273 + 4.62109 ] pdfxs + 53.8198 569.34 m + (PA,butsmallerpoolsizesdidnot.4MBisthelargestpage) + [5.5166 6.9029 5.51557 5.10016 5.10016 6.60274 3.65644 7.67578 4.62111 2.57565 2.57564 + 4.0785 6.48 5.34 4.86127 4.62111 5.57565 3.65645 2.57565 4.08196 4.0785 6.59644 + 5.10016 2.57565 8.04007 5.10016 4.62111 3.60275 6.65573 4.62111 8.46031 9.42066 2.57567 + 6.5965 3.60273 5.10017 7.0785 2.57567 4.62109 3.59993 4.62109 4.0785 3.65645 6.48256 + 5.10017 4.62109 4.62109 4.0785 ] pdfxs + 53.8198 558.9 m + (sizeonSparc,andwespeculatedthatthisisbecauseof) + [3.65644 2.57565 4.08196 8.57849 4.62111 9.66022 5.10016 5.10016 4.62111 3.59992 4.08197 + 7.49564 4.62111 5.10016 9.66023 6.4175 8.63834 3.65645 5.34016 4.0785 4.08196 5.10016 + 2.57565 4.62111 3.60275 4.0785 9.72031 3.60275 5.10017 4.62109 8.10265 3.60273 5.10017 + 2.57567 8.15627 2.57567 8.15627 5.34001 4.0785 4.08197 4.62109 5.10017 3.65642 8.69834 + 4.62109 2.81963 ] pdfxs + 53.8198 548.4 m + (cachecon\rictsbetweendistinctpools,whentwopoolsof) + [4.08196 4.62111 3.8418 5.10016 8.33833 4.08196 4.62111 5.10016 5.10016 2.57565 4.08196 + 3.60275 7.91653 5.34 4.0785 3.36259 6.4175 4.0785 4.07849 9.42023 5.10016 2.57565 + 3.65645 3.60275 2.57564 5.10016 4.08197 7.80274 5.34 4.86127 4.62111 2.57567 3.65645 + 7.13564 6.65759 5.10017 4.07848 9.36017 3.36289 6.4175 8.82102 5.34001 4.86126 4.62109 + 2.57567 7.91636 4.62109 2.81963 ] pdfxs + 53.8198 537.96 m + (thelargersizebothstartat4MBboundaries.Weimproved) + [3.60274 5.10016 6.95865 2.57565 4.62111 3.59993 4.62111 4.07849 6.41985 3.65644 2.57565 + 4.08196 6.95858 5.34 4.62111 3.60275 7.98015 3.65645 3.60275 4.62112 3.59992 6.42275 + 4.62111 6.48275 4.62111 8.46032 9.36049 5.34 4.62111 5.10016 5.10017 5.10017 4.62109 + 3.59993 2.57567 4.0785 3.65642 6.59583 8.69858 7.01842 2.57567 7.67579 5.10017 3.59993 + 4.38093 4.61612 4.0785 5.10017 ] pdfxs + 53.8198 527.52 m + (theruntimelibrarytostaggerthestartlocationsofdisti) + [3.60274 5.10016 6.95865 3.59993 5.10016 4.86031 3.60274 2.57565 7.67578 6.95841 2.57565 + 2.57564 5.10016 3.59993 4.62111 3.59993 7.67637 3.60275 7.5011 3.65645 3.60275 4.62112 + 4.62111 4.62111 4.0785 6.36008 3.60275 5.10016 7.01842 3.65645 3.60275 4.62112 3.59993 + 6.36257 2.57567 4.86094 4.08197 4.62109 3.60273 2.57567 4.62109 5.10017 6.47651 4.62109 + 5.63979 5.10017 2.57567 3.65642 3.60273 2.57567 ] pdfxs + (n) show + 285.24 527.52 m + (ct) + [4.08197 3.60273 ] pdfxs + 53.8198 517.02 m + (poolsdi\013erently\(relativetoa4MBpageboundary\).This) + [5.34 4.86127 4.62111 2.57565 7.19644 5.10016 2.57565 5.40425 4.07849 3.59993 4.0785 + 4.86016 3.60275 2.57565 8.39628 3.60275 3.59993 4.0785 2.57564 4.62111 3.60275 2.57565 + 4.61629 7.61841 3.60275 8.16126 8.22102 4.62111 8.46032 10.0808 5.10017 4.62109 4.62109 + 7.67842 5.34001 4.62109 5.10017 5.10017 5.10017 4.62109 3.59993 4.85621 3.60273 8.21557 + 6.65759 5.10017 2.57564 3.65645 ] pdfxs + 53.8198 506.58 m + (eliminatedtheproblemin) + [4.07849 2.57565 2.57565 7.67578 2.57565 5.10016 4.62111 3.60274 4.07849 8.64 3.60275 + 5.10016 7.61841 5.10016 3.59993 4.62111 5.10016 2.57565 4.07849 11.2759 2.57565 5.10016 + ] pdfxs + 163.26 506.58 m + /N15 8.96638 Tf + (ks) + [4.67994 4.67993 ] pdfxs + 172.62 506.58 m + /N17 8.96638 Tf + (,producingtheresultsinthe) + [6.29565 5.10016 3.59993 4.86127 5.10016 5.10016 4.08197 2.57567 5.10015 8.28095 3.60273 + 5.10017 7.61841 3.59993 4.0785 3.65642 5.10017 2.57567 3.60273 7.19636 2.57567 8.64008 + 3.60273 5.10017 4.0785 ] pdfxs + 53.82 496.08 m + (table,i.e.,onlya4%slowdown.Ithadanegligiblea\013ect) + [3.60274 4.62111 5.10016 2.57565 4.07849 6.53557 2.57565 2.57565 4.07849 2.57565 6.5358 + 4.62111 5.10016 2.57565 8.69621 8.4011 4.62111 11.5156 3.65645 2.57565 4.38103 6.65758 + 5.10016 4.38096 6.65758 5.10016 8.81572 3.30019 7.44258 5.10017 4.62109 8.94032 8.46125 + 5.10017 4.0785 4.62109 2.57567 2.57567 4.62109 2.57567 5.10015 2.57567 7.85851 4.62109 + 5.40425 4.0785 4.08197 3.60273 ] pdfxs + 53.82 485.641 m + (ontheotherprogramsinthetable.Fornow,wesimply) + [4.62111 9.30007 3.60274 5.10016 8.33833 4.62111 3.60274 5.10016 4.07849 7.86008 5.10016 + 3.59993 4.62111 4.62112 3.59993 4.62111 7.67578 7.85644 2.57565 9.35999 3.60275 5.10016 + 8.33833 3.60275 4.62111 5.10016 2.57565 4.07849 10.1356 5.22155 4.62109 7.86 5.10017 + 4.38118 6.65759 7.07549 6.4175 8.27857 3.65645 2.57564 7.67579 5.10017 2.57567 4.85619 + ] pdfxs + 53.82 475.201 m + (startthe) + [3.65644 3.60274 4.62111 3.59993 6.90282 3.60274 5.10016 4.07849 ] pdfxs + 92.3399 475.201 m + /N31 8.96638 Tf + (i) show + 95.5199 478.981 m + /N29 5.97748 Tf + (th) + [2.88089 4.32175 ] pdfxs + 106.56 475.201 m + /N17 8.96638 Tf + (poolatano\013setequalto) + [5.34 4.86127 4.62111 5.93581 4.62111 6.96283 4.62111 8.46023 4.62111 5.40425 3.65646 + 4.07849 6.96267 4.0785 4.85621 5.10016 4.62111 5.93564 3.60273 4.62109 ] pdfxs + 212.88 475.201 m + /N31 8.96638 Tf + (i) show + 216.06 475.201 m + /N13 8.96638 Tf + (\002) show + 223.2 475.201 m + /N15 8.96638 Tf + (sizeof\() + [4.67995 4.67995 4.67993 4.67995 4.67995 4.67995 4.67995 ] pdfxs + 255.96 475.201 m + /N31 8.96638 Tf + (\034) show + 261.06 475.201 m + /N15 8.96638 Tf + (\)) show + 269.28 475.201 m + /N17 8.96638 Tf + (bytes,) + [4.86033 4.85621 3.60273 4.07848 3.65645 2.57567 ] pdfxs + 53.8191 464.701 m + (althoughabettersolutionlong-termmaytostaggerthesta) + [4.62111 2.57565 3.60274 5.10016 4.62111 5.10015 4.62111 7.14024 6.66127 5.34 4.0785 + 3.60275 3.60275 4.07849 5.63993 3.65645 4.62112 2.57564 5.10016 3.60275 2.57565 4.62111 + 7.08 2.57565 4.62111 5.10016 4.62111 3.06372 3.60275 4.0785 3.59993 9.77562 7.67579 + 4.38125 6.83604 3.60273 6.66125 3.65645 3.60273 4.62109 4.62109 4.62109 4.0785 5.58 + 3.60273 5.10017 6.17857 3.65645 3.60273 4.62109 ] pdfxs + (r) show + 289.379 464.701 m + (t) show + 53.8191 454.261 m + (locationofpoolsinamorerandommanner.) + [2.57565 4.86096 4.08196 4.62111 3.60274 2.57565 4.62111 8.10015 4.62111 5.87963 5.34 + 4.86127 4.62111 2.57565 6.71637 2.57565 8.15999 7.68118 7.67578 4.62111 3.59993 7.1985 + 3.59993 4.62111 5.10016 5.10016 4.62112 10.7358 7.67579 4.62109 5.10017 5.10017 4.0785 + 3.59993 2.57564 ] pdfxs + 53.8191 435.301 m + /N9 11.9552 Tf + (6.2ArchitectureSpeci\002cImpactofPointer) + [6 3 17.8801 8.63982 5.0399 5.27982 6.66001 3.30001 3.95991 5.27981 5.27982 + 3.95991 6.65999 5.03975 11.5799 6.65999 6.65999 5.27982 5.27981 3.30001 6.65999 11.4598 + 4.67992 9.9599 6.66002 6 5.27982 10.0199 6 10.0198 7.07999 6 3.30001 + 6.66002 3.95989 5.27982 5.27982 ] pdfxs + 80.6992 423.721 m + (Compression) + [8.63982 6 9.95992 6.65999 5.03982 5.27982 4.67991 4.67992 3.30001 6 6.65999 + ] pdfxs + 62.7594 410.761 m + /N17 8.96638 Tf + (Inordertoevaluatethee\013ectofpointercompressionon) + [3.30019 8.58023 4.62111 3.59993 5.10016 4.07849 7.01984 3.60275 8.04095 4.0785 4.31621 + 4.62111 2.57565 5.10016 4.62111 3.60275 7.49842 3.60275 5.10016 7.55865 4.0785 5.40425 + 4.07849 4.08197 7.02289 4.62111 6.2398 5.34 4.62109 2.57567 4.86033 3.60273 4.0785 + 7.01992 4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 2.57564 4.62112 + 8.52016 4.62109 5.10017 ] pdfxs + 53.8193 400.321 m + (di\013erentarchitectures,wechosetouseasinglebenchmark,) + [5.10016 2.57565 5.40425 4.07849 3.59993 4.07849 4.86016 6.66289 4.62111 3.59993 3.84212 + 5.10016 2.57565 3.60273 4.0785 4.08197 3.60275 5.10016 3.59993 4.07849 3.65645 5.69573 + 6.4175 7.1985 3.84181 5.10016 4.62111 3.65645 7.13842 3.60275 7.68118 5.10016 3.65645 + 7.19864 7.74094 3.65645 2.57564 5.10017 4.62112 2.57564 7.13859 5.34001 4.0785 5.10017 + 3.84188 5.10017 7.67579 4.62109 3.59993 4.85621 2.55545 ] pdfxs + 53.8193 389.881 m + (LL) show + (Ubench,andarangeofinputsizes.Wechose) + [6.90289 5.34032 4.07849 5.10016 3.84188 5.10016 5.33549 4.62111 5.10016 7.74031 7.20111 + 3.59993 4.62111 5.10016 4.62112 6.71864 4.62111 5.39957 2.57565 5.10016 5.10015 5.10016 + 6.24267 3.65645 2.57565 4.08196 4.0785 3.65645 6.47549 8.69858 6.71842 3.84181 5.10017 + 4.62109 3.65645 6.65834 ] pdfxs + (LL) show + (Ubench,) + [6.90289 5.34033 4.0785 5.10017 3.84188 5.10017 2.57567 ] pdfxs + 53.8193 379.381 m + (alinked-listmicrobenchmark,becauseitsinputsizecanb) + [7.80111 2.57565 2.57565 5.10016 4.61629 4.07849 5.10016 3.06372 2.57565 2.57565 3.65644 + 6.72282 7.67578 2.57564 4.08197 3.59993 4.62111 5.34016 4.0785 5.10016 3.84188 5.10016 + 7.67576 4.62112 3.59993 4.85621 5.87549 5.34 4.0785 4.08196 4.62112 5.10015 3.65646 + 7.31864 2.57567 3.60273 6.77659 2.57567 5.10017 5.10017 5.10017 6.84265 3.65645 2.57564 + 4.08197 7.25857 4.08197 4.62109 8.34 5.34001 ] pdfxs + (e) show + 53.8193 368.941 m + (scaledoverawiderangeanditissmallenoughtogetwork-) + [3.65644 4.08196 4.62111 2.57565 4.0785 7.86023 4.38119 4.61613 4.07849 6.35977 7.38119 + 6.65758 2.57565 5.10016 6.83857 3.59993 4.62111 5.10016 4.62112 6.89834 4.62111 5.10016 + 7.92 2.57565 6.30281 2.57565 6.41644 3.65645 7.67578 4.62112 2.57564 5.27559 4.0785 + 5.10017 4.62109 5.10017 4.62109 7.92001 3.60273 7.38117 4.62109 4.0785 6.36289 6.4175 + 4.62109 3.59993 4.85621 3.06372 ] pdfxs + 53.8193 358.501 m + (ingonseveralplatformswithouthavingtoportourentire) + [2.57565 5.10016 8.16095 4.62111 8.70008 3.65644 4.07849 4.61637 4.07849 3.59993 4.62111 + 6.17572 5.10016 2.57565 4.62111 3.60275 2.81964 4.62112 3.59993 7.67576 7.1366 6.65758 + 2.57565 3.60275 5.10016 4.62111 5.10016 7.2029 5.10016 4.38119 4.85621 2.57564 5.10017 + 8.1611 3.60273 8.16125 5.34001 4.62109 3.59993 7.26282 4.62109 5.10017 7.19985 4.0785 + 4.86001 3.60273 2.57567 3.59993 4.0785 ] pdfxs + 53.8193 348.001 m + (compilertoeachsystem.) + [4.08196 4.62111 7.67578 5.10016 2.57565 2.57565 4.07849 6.66 3.60274 7.68118 4.0785 + 4.62111 3.84181 8.16031 3.65645 4.85621 3.65646 3.60273 4.0785 7.67578 2.57564 ] pdfxs + 62.7594 337.561 m + (Figure6.1showsthescalingbehaviorofllubenchonfour) + [6.00161 2.57565 4.62111 5.10016 3.59993 7.13833 4.62111 2.57565 7.6211 3.65645 5.10016 + 4.38096 6.65758 6.5966 3.60275 5.10016 7.13833 3.65645 4.08197 4.62111 2.57565 2.57564 + 5.10016 7.62112 5.34 4.0785 5.10016 4.38126 4.85621 2.57564 4.62112 6.65983 4.62109 + 5.81963 2.57567 2.57567 5.10017 5.34016 4.0785 5.10017 3.84188 8.22009 4.62109 8.16024 + 2.81963 4.62109 5.10017 3.59993 ] pdfxs + 53.8193 327.121 m + (di\013erentsystems,compiledinseveralcon\fgurations.For) + [5.10016 2.57565 5.40425 4.07849 3.59993 4.07849 4.86016 7.80274 3.65644 4.85621 3.65645 + 3.60273 4.0785 7.67578 3.65645 7.01557 4.08197 4.62111 7.67576 5.10016 2.57565 2.57565 + 4.07849 9.36024 2.57565 9.30022 3.65645 4.0785 4.61637 4.0785 3.59993 4.62109 6.77573 + 4.08197 4.62109 5.10017 5.10017 4.62109 5.10017 3.59993 4.62109 3.60273 2.57567 4.62109 + 5.10017 3.65645 10.0757 5.22155 4.62109 3.59993 ] pdfxs + 53.8193 316.621 m + (eachcon\fguration,wecompiledandoptimizedtheprogram) + [4.07849 4.62111 3.8418 7.80016 4.08196 4.62111 5.10016 5.10016 4.62111 5.10016 3.59993 + 4.62112 3.60273 2.57565 4.62111 5.10016 5.33573 6.4175 6.77858 4.08197 4.62111 7.67576 + 5.10016 2.57565 2.57565 4.07849 7.80008 4.62111 5.10016 7.80008 4.62109 5.10017 3.60273 + 2.57567 7.67579 2.57564 4.08197 4.0785 7.80009 3.60273 5.10017 6.77858 5.10017 3.59993 + 4.62109 4.62109 3.59993 4.62112 7.67576 ] pdfxs + 53.8193 306.181 m + (using) + [5.10016 3.65644 2.57565 5.10016 8.22126 ] pdfxs + (L) show + (LVM,emittedCcode,thencompiledtheresultant) + [4.73753 6.9029 8.46031 6.17549 4.0785 7.67576 2.57565 3.60275 3.60275 4.07849 8.76023 + 10.3175 4.08197 4.86095 5.10016 4.0785 6.41564 3.60275 5.10016 4.07849 8.76 4.08197 + 4.62109 7.67579 5.10017 2.57567 2.57564 4.0785 8.76025 3.60273 5.10017 7.73834 3.59993 + 4.0785 3.65642 5.10017 2.57567 3.60273 4.62109 4.86018 3.60273 ] pdfxs + 53.8193 295.741 m + (codewithastandardCcompiler\(IBMX) + [4.08196 4.86096 5.10016 6.23833 6.65758 2.57565 3.60274 7.2 6.72103 3.65645 3.60275 + 4.62112 5.10015 5.10016 4.62112 3.59993 7.20015 8.75773 4.08197 4.62111 7.67576 5.10016 + 2.57565 2.57565 4.07849 5.69986 3.60275 3.30019 6.54066 10.5603 6.90289 ] pdfxs + (L) show + (CfortheSP,GCC) + [8.81765 2.81963 4.62109 5.69978 3.60273 5.10017 6.17857 5.10017 5.5166 4.67573 7.25576 + 6.65756 6.65759 ] pdfxs + 53.8193 285.241 m + (forallothers\).Weused6con\fgurationsforeachplatform:) + [2.81964 4.62111 6.77984 4.62111 2.57565 5.69564 4.62111 3.60274 5.10016 4.07849 3.59993 + 3.65645 3.60275 6.95557 8.69858 7.31841 5.10016 3.65645 4.0785 8.28007 7.80111 4.08197 + 4.62111 5.10016 5.10016 4.62111 5.10016 3.59993 4.62112 3.60273 2.57565 4.62109 5.10017 + 6.83652 2.81963 4.62109 6.77986 4.0785 4.62109 3.84181 8.34 5.10017 2.57567 4.62109 + 3.60273 2.81963 4.62109 3.59993 7.67579 2.57567 ] pdfxs + 53.8193 274.801 m + (theoriginalcode\(Normal\),poolallocationonly\(PoolAll) + [3.60274 5.10016 6.29849 4.62111 3.59993 2.57565 4.62111 2.57565 5.10016 4.62111 4.73581 + 4.08197 4.86095 5.10016 6.35865 3.60275 6.90289 4.62111 3.59993 7.67578 4.62111 2.57565 + 3.60275 4.8558 5.34 4.86127 4.62111 4.79557 4.62111 2.57565 2.57565 4.86095 4.08197 + 4.62109 3.60273 2.57567 4.62109 7.26032 4.62109 5.10017 2.57567 7.07627 3.60273 6.05683 + 4.86126 4.62109 2.57567 6.90289 2.57567 2.57567 ] pdfxs + (o) show + 282.78 274.801 m + (c\),) + [4.08197 3.60273 2.57567 ] pdfxs + 53.8193 264.362 m + (andpointercompression\(PtrComp\),eachcompiledin32-bit) + [4.62111 5.10016 7.20007 5.34 4.62111 2.57565 4.86031 3.60274 4.07849 5.70001 4.08197 + 4.62111 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 2.57565 4.62111 7.14009 3.60275 + 6.29667 3.60275 3.59993 6.65758 4.62111 7.67578 5.10016 3.60275 4.7958 4.0785 4.62109 + 3.84181 7.20017 4.08197 4.62109 7.67579 5.10017 2.57567 2.57564 4.0785 7.20009 2.57567 + 7.20024 4.62109 4.62109 3.06375 5.10017 2.57567 3.5865 ] pdfxs + 53.8193 253.862 m + (modeandin64-bitmode\(exceptthe) + [7.67578 4.86096 5.10016 6.53833 4.62111 5.10016 7.56023 2.57565 7.56 4.62111 4.62112 + 3.06372 5.10016 2.57564 6.06259 7.67578 4.86095 5.10016 6.53834 3.60275 4.0785 4.85621 + 4.08196 4.0785 5.10016 6.12267 3.60275 5.10016 6.53834 ] pdfxs + (L) show + (inuxItaniumsystem,) + [2.57564 4.86018 5.10017 7.31612 3.30018 3.60273 4.62109 5.10017 2.57567 5.10017 10.1356 + 3.65645 4.85619 3.65645 3.60273 4.0785 7.67576 2.57567 ] pdfxs + 53.8193 243.421 m + (whichlacks32-bitsupport\).) + [6.65758 5.10016 2.57565 3.84204 8.16031 2.57565 4.62111 3.8418 4.8562 6.65644 4.62111 + 4.62112 3.06372 5.10016 2.57564 6.6626 3.65645 5.10016 5.10016 5.34016 4.62111 3.59993 + 3.60275 3.60275 2.57565 ] pdfxs + 62.7594 232.982 m + (Theheapsizeusedbyllubenchisalinearfunctionofthe) + [6.65758 5.10016 7.07848 5.10016 4.07849 4.62111 8.16031 3.65645 2.57565 4.08196 7.01835 + 5.10016 3.65645 4.0785 8.16015 4.86031 7.85621 2.57565 2.57564 5.10016 5.34016 4.0785 + 5.10016 3.84188 8.16031 2.57565 6.59652 7.56125 2.57567 2.57567 5.10017 4.07848 4.62112 + 6.59992 2.81963 5.10017 5.10017 4.08197 3.60273 2.57567 4.62109 8.10016 4.62109 5.75971 + 3.60273 5.10017 4.0785 ] pdfxs + 53.8193 222.482 m + (numberofiterations,buttheexecutiontimeofthebench-) + [4.86031 5.10016 7.43562 5.34 4.07849 7.08008 4.62111 6.23979 2.57565 3.60275 4.07849 + 3.59993 4.62111 3.60275 2.57565 4.62111 5.10016 3.65646 6.05564 5.10016 5.10016 7.08282 + 3.60275 5.10016 7.4985 4.0785 4.85621 4.07849 4.08197 5.10016 3.60275 2.57564 4.62112 + 8.64001 3.60273 2.57567 7.67579 7.49864 4.62109 6.23979 3.60273 5.10017 7.55865 5.34001 + 4.0785 5.10017 3.84188 5.10017 3.06375 ] pdfxs + 53.8193 212.041 m + (markgrowsquadratically.Tocompareperformanceofdif-) + [7.67578 4.62111 3.59993 8.27628 4.62111 3.59993 4.38111 6.65758 7.07629 4.85621 5.10016 + 4.62112 5.10015 3.59993 4.62112 3.60275 2.57564 4.08197 4.62111 2.57565 2.57564 4.07615 + 7.73549 5.87766 8.04095 4.08197 4.62111 7.67576 5.10016 4.62112 3.59993 7.55865 5.34001 + 4.0785 3.59993 2.81963 4.62109 3.59993 7.67579 4.62109 5.10017 4.08197 7.61841 4.62109 + 6.29955 5.10017 2.57567 2.81963 3.06375 ] pdfxs + 53.8193 201.601 m + (ferentcon\fgurationsandsystemsasafunctionoftheheap) + [2.81964 4.07849 3.59993 4.07849 4.86 6.78282 4.08196 4.62111 5.10016 5.10016 4.62111 + 5.10016 3.59993 4.62112 3.60273 2.57565 4.62111 5.10016 6.83653 4.62111 5.10016 8.28015 + 3.65645 4.85621 3.65646 3.60273 4.0785 7.67578 6.77636 4.62111 6.83661 7.74094 2.81963 + 5.10017 5.10017 4.08197 3.60273 2.57567 4.62109 8.34 4.62109 5.99955 3.60273 5.10017 + 7.25865 5.10017 4.0785 4.62109 5.10017 ] pdfxs + 53.8193 191.101 m + (size,therefore,weshowtheratiooftotalrunningtimeto) + [3.65644 2.57565 4.08196 4.07849 6.47573 3.60274 5.10016 4.07849 3.59993 4.07849 2.81964 + 4.62111 3.59993 4.07849 6.59573 6.4175 7.85865 3.65645 5.10016 4.38096 10.3777 3.60275 + 5.10016 7.91842 3.59993 4.62111 3.60275 2.57565 8.34095 4.62111 6.59957 3.60273 4.62109 + 3.60273 4.62109 6.23574 3.59993 5.10017 5.10017 5.10017 2.57567 5.10017 8.46093 3.60273 + 2.57567 7.67579 7.85841 3.60273 4.62109 ] pdfxs + 53.8193 180.661 m + (numberoflistnodesonthe) + [4.86031 5.10016 7.43562 5.34 4.07849 7.85977 4.62111 7.01947 2.57565 2.57564 3.65645 + 7.68275 5.10016 4.86127 5.10016 4.0785 7.91644 4.62111 9.30008 3.60275 5.10016 4.07849 + ] pdfxs + 174.658 180.661 m + /N31 8.96638 Tf + (Y) show + 186.238 180.661 m + /N17 8.96638 Tf + (axis.Ideallythisnumber) + [4.62111 4.85622 2.57564 3.65645 10.0155 3.30018 5.10017 4.0785 4.62109 2.57567 2.57567 + 9.05611 3.60273 5.10017 2.57567 7.85627 4.86033 5.10017 7.43563 5.34001 4.0785 3.59993 + ] pdfxs + 53.8184 170.161 m + (shouldstayconstantbutinpractice,itincreaseswithhea) + [3.65644 5.10016 4.62111 5.10016 2.57565 8.22023 3.65644 3.60274 4.38096 7.91612 4.08197 + 4.62111 5.10016 3.65645 3.60275 4.62111 4.86001 6.6629 5.10016 5.10016 6.72266 2.57565 + 8.22015 5.10016 3.59993 4.62111 4.08197 3.60275 2.57564 4.08197 4.0785 5.75564 2.57567 + 6.66257 2.57567 5.10017 4.08197 3.59993 4.07848 4.62112 3.65642 4.0785 6.77651 6.65759 + 2.57564 3.60273 8.22033 5.10017 4.0785 4.62109 ] pdfxs + (p) show + 53.8184 159.722 m + (sizebecausetheprocessorspendsmoretimestalledforcac) + [3.65644 2.57565 4.08196 6.23865 5.34 4.07849 4.08196 4.62111 5.10016 3.65644 6.35849 + 3.60275 5.10016 6.2985 5.10016 3.59993 4.86127 4.08197 4.07849 3.65645 3.65645 4.62112 + 5.81985 3.65645 5.34016 4.0785 5.10016 5.10015 5.87661 7.67578 4.62111 3.59993 6.2985 + 3.60273 2.57567 7.67579 6.23849 3.65645 3.60273 4.62109 2.57567 2.57564 4.0785 7.26024 + 2.81963 4.62109 5.75993 4.08197 4.62109 3.84181 ] pdfxs + (h) show + 288.778 159.722 m + (e) show + 53.8184 149.282 m + (misses) + [7.67578 2.57565 3.65645 3.65644 4.07849 3.65644 ] pdfxs + 79.1382 153.062 m + /N21 5.97748 Tf + (6) show + 83.2183 149.282 m + /N17 8.96638 Tf + (.) show + 62.7585 138.782 m + (Overall,64-bitpointershaveamajorperformanceover-) + [7.13658 4.61637 4.07849 3.59993 4.62111 2.57565 2.57565 6.47549 4.62111 4.62112 3.06372 + 5.10016 2.57564 7.32275 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 3.59993 7.3766 + 5.10016 4.38119 4.61614 7.85865 8.34095 7.67578 5.16095 2.81963 4.62109 7.32009 5.34001 + 4.0785 3.59993 2.81963 4.62109 3.59993 7.67579 4.62109 5.10017 4.08197 7.91842 4.38118 + 4.61612 4.0785 3.59993 3.06372 ] pdfxs + 53.8184 128.342 m + (headcomparedto32-bitpointersforallsystems,whenusin) + [5.10016 4.07849 4.62111 7.38023 4.08196 4.62111 7.67578 5.10016 4.62111 3.59993 4.07849 + 7.44008 3.60275 6.90111 4.62111 4.62112 3.06372 5.10016 2.57564 5.82275 5.34 4.62111 + 2.57565 4.86031 3.60275 4.0785 3.59993 5.93636 2.81964 4.62112 5.87985 4.62109 2.57567 + 4.79566 3.65645 4.85619 3.65645 3.60273 4.0785 7.67576 3.65645 4.91558 6.65759 5.10017 + 4.07848 7.44025 5.10017 3.65645 2.57564 5.10017 ] pdfxs + (g) show + 53.8184 117.902 m + (eitherthenative\(Normal\)orpoolallocator.Withapartic-) + [4.07849 2.57565 3.60274 5.10016 4.07849 6.35993 3.60274 5.10016 6.89849 5.10016 4.62111 + 3.60275 2.57565 4.61614 6.83834 3.60275 6.90289 4.62111 3.59993 7.67578 4.62111 2.57565 + 6.3629 4.62111 6.36001 5.34 4.86127 4.62111 5.3358 4.62111 2.57565 2.57565 4.86094 + 4.08197 4.62109 3.60273 4.62109 3.59993 6.53582 9.47858 2.57567 3.60273 7.80031 7.44094 + 5.10017 4.62109 3.59993 3.60273 2.57567 4.08197 3.07549 ] pdfxs + 53.8184 107.402 m + (ularpointersize,theAutomaticPoolAllocationtransform) + [5.10016 2.57565 4.62111 5.76008 5.34 4.62111 2.57565 4.86031 3.60274 4.07849 5.81993 + 3.65645 2.57565 4.08196 4.0785 4.91557 3.60275 5.10016 6.2985 6.90289 5.10016 3.60275 + 4.62111 7.67578 4.62111 3.60275 2.57565 6.2418 6.05683 4.86127 4.62111 4.73581 6.90289 + 2.57567 2.57567 4.86101 4.08197 4.62109 3.60273 2.57567 4.62109 7.20017 3.60273 3.59993 + 4.62109 5.10017 3.65645 2.81963 4.62109 3.59993 7.67525 ] pdfxs + 285.238 107.402 m + (a-) + [4.62109 3.06375 ] pdfxs + Q + n + 538 1009 956.398 4.19922 re + f + q + 10 0 0 10 0 0 cm + 54.3 94.4398 m + /N21 5.97748 Tf + (6) show + 58.3801 90.6602 m + /N33 6.97377 Tf + (NotethattheIBMSPsystemdoesnotsupport) + [5.87814 3.95687 3.11698 5.58018 3.11698 4.38027 3.95687 5.15688 3.11698 4.38027 5.64017 + 2.88206 5.58259 9.18127 4.38029 7.3811 3.18293 4.1986 3.18292 3.11698 3.54036 8.51634 + 4.38029 4.19694 3.54036 5.1629 4.38029 3.95687 5.15696 3.18293 4.38027 4.38029 4.62042 + 3.95687 3.11698 3.11698 ] pdfxs + 221.4 90.6602 m + /N39 6.97377 Tf + (MAP) + [3.71825 3.71825 3.71827 ] pdfxs + Q + n + 2330 907 22.8008 4.19922 re + f + q + 10 0 0 10 0 0 cm + 235.2 90.6602 m + /N39 6.97377 Tf + (NORESERVE) + [3.71825 3.71825 3.71827 3.71825 3.71825 3.71825 3.71825 3.71825 3.71827 ] pdfxs + 268.68 90.6602 m + /N33 6.97377 Tf + (,which) + [4.13691 5.69663 4.38029 2.2771 3.30051 4.38029 ] pdfxs + 53.8201 82.6802 m + (signi\fcantlyincreasesthetimetocreateapool\(thusimpa) + [3.18292 2.27709 3.95688 4.38027 2.27709 4.50119 3.54036 3.95688 4.1402 3.11698 2.27709 + 6.71849 2.27709 4.38027 3.54036 3.11698 3.54036 3.95687 3.18293 3.54036 5.70273 3.11698 + 4.38029 6.12025 3.11698 2.2771 6.53651 6.12048 3.11698 6.537 3.54036 3.11698 3.54036 + 3.95687 3.11698 6.12033 6.53668 4.6202 4.19686 3.95687 4.79721 3.11698 3.11698 4.14037 + 4.38029 5.76272 2.2771 6.53649 4.38029 3.95687 ] pdfxs + (c) show + 261.48 82.6802 m + (tingruns) + [3.11698 2.2771 4.38029 6.5969 3.11698 4.38029 4.38029 3.18292 ] pdfxs + 53.8201 74.7002 m + (withasmallnumberofiterations\).) + [5.69662 2.27709 3.11698 7.02016 6.657 3.18292 6.53651 3.95687 2.27709 4.91714 4.14013 + 4.38029 6.29659 4.6202 3.54036 5.87687 3.95687 5.15875 2.2771 3.11698 3.54036 3.11698 + 3.95687 3.117 2.27709 3.95687 4.38029 3.18293 3.11698 2.27709 ] pdfxs + 316.8 600.72 m + /N17 8.96638 Tf + (tionconsistentlyincreaseslocalityoverusingthestand) + [3.60273 2.57567 4.62109 8.70016 4.08197 4.62109 5.10017 3.65645 2.57564 3.65645 3.60273 + 4.0785 4.86001 3.60273 2.57567 8.39627 2.57567 5.10017 4.08197 3.59993 4.07848 4.62114 + 3.65647 4.07845 7.25661 2.57562 4.86099 4.08192 4.62114 2.57562 2.57567 3.36267 8.33606 + 4.3812 4.61615 4.07845 7.20002 5.10017 3.65647 2.57562 5.10017 8.22128 3.60276 5.10017 + 7.67855 3.65647 3.60276 4.62109 5.10017 5.10017 ] pdfxs + (a) show + 547.2 600.72 m + (rd) + [3.59993 5.10017 ] pdfxs + 316.8 590.28 m + (systemallocator,andthee\013ectisparticularlypronounce) + [3.65645 4.85619 3.65645 3.60273 4.0785 11.2756 4.62109 2.57567 2.57567 4.86094 4.08197 + 4.62109 3.60273 4.62109 3.59993 6.17566 4.62109 5.10017 8.76025 3.60276 5.10017 7.67855 + 4.07845 5.40425 4.0785 4.08192 7.26276 2.57562 7.19655 5.10017 4.62114 3.59993 3.60276 + 2.57562 4.08192 5.10017 2.57567 4.62109 3.59993 2.57567 8.39637 5.10017 3.59993 4.62114 + 5.10017 4.62109 5.10017 5.10017 4.08197 4.07845 ] pdfxs + (d) show + 316.8 579.78 m + (withthedefaultSolarismallocimplementation.\(Automatic) + [6.65759 2.57564 3.60273 7.50001 3.60273 5.10017 6.47857 5.10017 4.0785 2.81963 4.62109 + 5.10017 2.57567 6.00273 5.10017 4.62109 2.57567 4.62109 3.59993 2.57567 5.93628 7.67525 + 4.62114 2.57562 2.57567 4.86104 6.48201 2.57562 7.67579 5.10017 2.57562 4.0785 7.67525 + 4.07845 4.86003 3.60276 4.62114 3.60276 2.57562 4.62114 5.10017 6.35569 3.60276 6.90289 + 5.10017 3.60276 4.62114 7.67525 4.62114 3.60276 2.57562 4.08192 ] pdfxs + 316.8 569.34 m + (PoolAllocationimproveslocalitybecauseitreducesworki) + [6.05683 4.86126 4.62109 4.79559 6.90289 2.57567 2.57567 4.86101 4.08197 4.62109 3.60273 + 2.57567 4.62109 7.26032 2.57567 7.67579 5.10017 3.59993 4.38093 4.61612 4.07845 5.87664 + 2.57562 4.86099 4.08192 4.62114 2.57562 2.57567 3.36267 7.01615 5.34001 4.07845 4.08197 + 4.62109 5.10017 3.65647 6.41864 2.57562 5.82278 3.59993 4.07845 5.10017 5.10017 4.08197 + 4.07845 5.99631 6.4175 4.62114 3.59993 4.85619 2.55545 ] pdfxs + 546.24 569.34 m + (ng) + [5.10017 4.62109 ] pdfxs + 316.8 558.9 m + (setsizesbypackingindividualdatastructuresmoreclosely) + [3.65645 4.07848 6.66274 3.65645 2.57564 4.08197 4.0785 6.71636 4.86033 7.97628 5.10017 + 4.62109 3.84213 4.85621 2.57564 5.10017 7.68102 2.57567 5.10017 5.10012 2.57567 4.85623 + 2.57562 5.10017 5.10017 4.62114 5.69553 5.10017 4.62114 3.60276 7.6811 3.65647 3.60276 + 3.59993 5.10017 4.08192 3.60276 5.10017 3.59993 4.0785 6.71629 7.67525 4.62114 3.59993 + 7.19847 4.08192 2.57567 4.62109 3.65647 4.0785 2.57562 4.85985 ] pdfxs + 316.8 548.4 m + (inmemory,andbecauseitimprovesspatiallocalityforsom) + [2.57567 7.56 7.67579 4.0785 7.67576 4.62112 3.59993 4.07604 5.15581 4.62109 5.10017 + 7.62001 5.34001 4.0785 4.08197 4.62109 5.10017 3.65642 6.59832 2.57562 6.00285 2.57562 + 7.67579 5.10017 3.59993 4.38096 4.61615 4.07845 6.11648 3.65647 5.10017 4.62109 3.60276 + 2.57567 4.62109 4.91566 2.57562 4.86099 4.08192 4.62114 2.57562 2.57567 3.36267 7.25637 + 2.81965 4.62109 6.05994 3.65647 4.62109 7.67579 ] pdfxs + (e) show + 316.8 537.961 m + (datastructuretraversalpatterns[10].\)) + [5.10017 4.62109 3.60273 7.6811 3.65645 3.60273 3.59993 5.10017 4.08195 3.60273 5.10017 + 3.59993 7.19835 3.60273 3.59993 4.38118 4.61612 4.0785 3.59993 3.65642 4.62112 5.5157 + 5.10017 4.62114 3.60276 3.60276 4.07845 3.59993 5.10017 6.77653 2.57562 4.62114 4.62114 + 2.57562 2.57562 3.60276 ] pdfxs + 325.8 527.52 m + (Toevaluatetheoverheadofpointercompression,the\\Ptr-) + [5.87766 6.66125 4.0785 4.3162 4.62109 2.57567 5.10017 4.62109 3.60273 6.1785 3.60273 + 5.10017 6.17857 4.38118 4.61612 4.0785 3.59993 5.10012 4.0785 4.62109 7.20026 4.62114 + 4.91946 5.34001 4.62114 2.57562 4.86033 3.60276 4.07845 5.70003 4.08192 4.62114 7.67525 + 5.10017 3.59993 4.0785 3.65647 3.65642 2.57567 4.62109 5.10017 4.79573 3.60276 5.10017 + 6.17854 4.62114 6.29665 3.60276 3.59993 3.06367 ] pdfxs + 316.8 517.02 m + (Comp32"valuesshowthee\013ectoftransforming32-bit) + [6.65759 4.62109 7.67579 10.2003 4.62109 4.62109 9.60094 4.31612 4.62109 2.57567 5.10017 + 4.0785 8.75627 3.65645 5.10017 4.38093 11.6976 3.60276 5.10017 9.17854 4.07845 5.40425 + 4.0785 4.08192 8.64284 4.62114 7.85969 3.60276 3.59993 4.62114 5.10017 3.65642 2.81965 + 4.62114 3.59993 7.67525 2.57562 5.10017 9.66098 4.62114 4.62109 3.06372 5.10017 2.57562 + 3.60276 ] pdfxs + 316.8 506.581 m + (pointersinto32-bitindexes\(i.e.thereisnocompression,) + [5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 3.59993 7.67659 2.57567 4.86001 3.60273 + 8.58117 4.62109 4.62109 3.06375 5.10017 2.57567 7.56257 2.57567 5.10017 5.10012 4.0785 + 4.85623 4.07845 7.7363 3.60276 2.57562 2.57567 4.07845 9.4158 3.60276 5.10017 4.07845 + 3.59993 8.15833 2.57562 7.61648 5.10017 8.64096 4.08192 4.62114 7.67525 5.10017 3.59993 + 4.0785 3.65647 3.65642 2.57567 4.62109 5.10017 2.57567 ] pdfxs + 316.8 496.081 m + (justoverheadadded\).OnSPARC,theaddedA) + [2.81963 5.10017 3.65645 5.94265 4.38118 4.61612 4.0785 3.59993 5.10017 4.0785 4.62109 + 7.56 4.62109 5.10017 5.10017 4.0785 5.10017 3.60273 6.41558 7.13657 7.56018 5.10017 + 5.51657 6.90289 6.53559 6.65759 4.9157 3.60276 5.10017 6.47855 4.62114 5.10017 5.10017 + 4.07845 7.56032 6.90289 ] pdfxs + (L) show + (Uoverhead) + [9.30304 4.3812 4.61615 4.07845 3.59993 5.10017 4.0785 4.62109 5.10017 ] pdfxs + 316.8 485.64 m + (ofpointercompressionisnegligible,butonAMD-64there) + [4.62109 6.41948 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 7.2 4.08197 4.62109 + 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 2.57564 4.62112 8.64008 2.57562 7.19655 + 5.10017 4.07845 4.62114 2.57562 2.57567 4.62109 2.57567 5.10017 2.57562 4.0785 6.29554 + 5.10017 5.10017 7.20275 4.62114 8.70007 6.90289 8.46031 7.0198 3.06372 4.62114 8.16103 + 3.60276 5.10017 4.07845 3.59993 4.0785 ] pdfxs + 316.8 475.2 m + (isafairamountofoverheadbecauseoftheextraregister) + [2.57567 7.55627 8.58117 2.81963 4.62109 2.57567 7.49985 4.62109 7.67579 4.62109 5.10017 + 4.86025 7.50273 4.62109 6.77963 4.38118 4.61612 4.07845 3.59993 5.10017 4.0785 4.62109 + 9.06002 5.34001 4.07845 4.08197 4.62109 5.10017 3.65647 8.09832 4.62114 6.71945 3.60276 + 5.10017 8.03831 4.07845 4.85623 3.60276 3.59993 8.58105 3.59993 4.07845 4.62114 2.57562 + 3.65647 3.60276 4.0785 3.59993 ] pdfxs + 316.8 464.7 m + (pressure\(IA-32hasaverysmallintegerregister\fle\).On) + [5.10017 3.59993 4.0785 3.65642 3.65645 5.10017 3.59993 7.91842 3.60273 3.30018 6.90289 + 3.06375 4.62109 8.40117 5.10017 4.62109 7.43659 8.4011 4.61615 4.07845 3.59993 8.63616 + 3.65647 7.67525 4.62114 2.57562 6.23572 2.57562 4.86003 3.60276 4.07845 4.62114 4.07845 + 7.3801 3.59993 4.07845 4.62114 2.57562 3.65647 3.60276 4.0785 7.37991 5.10017 2.57562 + 4.0785 3.60276 8.75554 7.13657 5.10017 ] pdfxs + 316.8 454.26 m + (theIBM-SP,pointercompressionaddsasubstantialover-) + [3.60273 5.10017 8.03833 3.30018 6.54066 8.46031 3.06372 5.10017 5.51677 6.5355 5.34001 + 4.62109 2.57567 4.86033 3.60273 4.0785 7.55976 4.08197 4.62109 7.67525 5.10017 3.59993 + 4.0785 3.65647 3.65642 2.57567 4.62109 9.00026 4.62114 5.10017 5.10017 7.61628 8.52104 + 3.65647 5.10017 5.10017 3.65647 3.60276 4.62109 4.86018 3.60276 2.57562 4.62114 6.41555 + 4.3812 4.61615 4.07845 3.59993 3.06372 ] pdfxs + 316.8 443.821 m + (headtotheprogram:thenative64-bitprogramisfaster) + [5.10017 4.0785 4.62109 9.30016 3.60273 8.76125 3.60273 5.10017 8.21842 5.10017 3.59993 + 4.62109 4.62109 3.59993 4.62112 7.67576 8.81582 3.60276 5.10017 8.27854 5.10017 4.62114 + 3.60276 2.57562 4.61615 8.21839 4.62114 4.62109 3.06372 5.10017 2.57562 7.68293 5.10017 + 3.59993 4.62114 4.62109 3.59993 4.62114 11.8153 2.57562 7.79656 2.81965 4.62109 3.65647 + 3.60276 4.07845 3.59993 ] pdfxs + 316.8 433.321 m + (thanthepointercompressedcodeuntilabout700iterations) + [3.60273 5.10017 4.62109 7.80009 3.60273 5.10017 6.77858 5.34001 4.62109 2.57567 4.86033 + 3.60273 4.0785 6.35977 4.08197 4.62109 7.67579 5.10017 3.59988 4.0785 3.65647 3.65642 + 4.0785 7.80031 4.08192 4.86099 5.10017 6.83831 5.10017 4.86033 3.60276 2.57562 5.21565 + 4.62114 5.34031 4.62114 5.10017 6.30266 4.62114 4.62109 7.32128 2.57562 3.60276 4.0785 + 3.59993 4.62109 3.60276 2.57567 4.62109 5.10017 3.63137 ] pdfxs + 316.8 422.881 m + (intheprogram.Onthis\(old\)system,thememoryhierarchy) + [2.57567 7.50024 3.60273 5.10017 6.47857 5.10017 3.59993 4.62109 4.62109 3.59993 4.62112 + 7.67576 6.41582 7.13659 7.50001 3.60273 5.10017 2.57567 5.99651 3.60276 4.62114 2.57562 + 5.10017 5.9426 3.65647 4.85623 3.65642 3.60276 4.0785 7.67525 5.03572 3.60276 5.10017 + 6.47855 7.67525 4.0785 7.67525 4.62114 3.59993 7.25613 5.10017 2.57562 4.0785 3.59993 + 4.62109 3.59993 3.84188 4.86033 4.85623 ] pdfxs + 316.8 412.441 m + (isfastenough,andtheA) + [2.57567 6.83635 2.81963 4.62109 3.65645 6.78281 4.0785 5.10017 4.62109 5.10017 4.62109 + 5.10017 5.87566 4.62109 5.10017 8.40009 3.60273 5.10017 7.31841 6.90289 ] pdfxs + (L) show + (Usareslowenoughthatpointer) + [6.90289 6.8966 4.62114 3.59993 7.31829 3.65647 2.57562 4.38106 9.83742 4.07845 5.10017 + 4.62114 5.10017 4.62114 8.40007 3.60276 5.10017 4.62114 6.78274 5.34001 4.62114 2.57562 + 4.86033 3.60276 4.07845 3.59993 ] pdfxs + 316.8 401.941 m + (compressionmaynotmakesense.) + [4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 2.57564 4.62112 8.16 + 7.67579 4.38125 7.91612 5.10017 4.62109 6.66281 7.67525 4.62114 4.61615 7.13832 3.65647 + 4.07845 5.10017 3.65647 4.07845 2.57567 ] pdfxs + 325.8 391.501 m + (OntheSPARCsystem,pointercompressionprovidesa) + [7.13659 9.24025 3.60273 5.10017 8.15865 5.10017 5.5166 6.90289 6.53556 10.7374 3.65645 + 4.85619 3.65645 3.60271 4.0785 7.67525 6.83572 5.34001 4.62114 2.57562 4.86033 3.60276 + 4.07845 7.73986 4.08192 4.62114 7.67525 5.10017 3.59993 4.0785 3.65647 3.65642 2.57567 + 4.62109 9.12019 5.10017 3.59993 4.3812 4.85623 2.57562 5.10017 4.0785 7.73659 4.62114 + ] pdfxs + 316.8 381.061 m + (substantialspeedupoverPoolAlloc,andPtrComp-64isabl) + [3.65645 5.10017 5.10017 3.65642 3.60273 4.62109 4.86018 3.60273 2.57567 4.62109 4.91558 + 3.65645 5.34016 4.0785 4.0785 5.10017 5.10017 7.62024 4.38118 4.61612 4.07845 6.05979 + 6.05681 4.86128 4.62114 2.57562 6.90289 2.57562 2.57567 4.86104 4.08192 5.03557 4.62114 + 5.10017 7.56022 6.29665 3.60276 3.59993 6.65759 4.62109 7.67579 5.10017 3.06372 4.62109 + 6.96113 2.57562 6.05632 4.62114 5.10017 2.57562 ] pdfxs + (e) show + 316.8 370.561 m + (to) + [3.60273 4.62109 ] pdfxs + 328.44 370.561 m + /N19 8.96638 Tf + (ma) + [7.50429 4.68266 ] pdfxs + (t) show + (ch) + [4.25804 4.68266 ] pdfxs + 356.1 370.561 m + /N17 8.96638 Tf + (theperformanceofthe32-bitnativeversion.On) + [3.60273 5.10017 7.55865 5.34001 4.0785 3.59993 2.81963 4.62109 3.59993 7.67579 4.62109 + 5.10017 4.08192 7.61839 4.62114 6.23976 3.60276 5.10017 7.55862 4.62114 4.62109 3.06372 + 5.10017 2.57562 7.02278 5.10017 4.62114 3.60276 2.57562 4.61615 7.49847 4.61615 4.07845 + 3.59993 3.65647 2.57567 4.62109 5.10017 7.67556 7.13657 5.10017 ] pdfxs + 316.8 360.121 m + (theItaniumPtrCompmakesthecodesubstantiallyfaster) + [3.60273 5.10017 8.03833 3.30018 3.60273 4.62109 5.10017 2.57567 5.10017 11.6356 6.29667 + 3.60273 3.59993 6.65756 4.62112 7.67576 9.00033 7.67525 4.62114 4.61615 4.07845 7.55632 + 3.60276 5.10017 8.03831 4.08192 4.86099 5.10017 8.03831 3.65647 5.10017 5.10017 3.65647 + 3.60276 4.62109 4.86018 3.60276 2.57562 4.62114 2.57562 2.57567 8.69637 2.81965 4.62109 + 3.65647 3.60276 4.07845 3.59993 ] pdfxs + 316.8 349.682 m + (acrosstherangeofiterations\(butwecannotcompareto) + [4.62109 4.08197 3.59993 4.62109 3.65645 7.7965 3.60273 5.10017 8.27857 3.59993 4.62109 + 5.10017 4.62109 8.27843 4.62109 7.01947 2.57567 3.60273 4.0785 3.59993 4.62109 3.60276 + 2.57567 4.62109 5.10017 7.7364 3.60276 5.10017 5.10017 7.80275 6.4175 8.21839 4.08192 + 4.62114 5.10017 5.10017 4.62114 7.80265 4.08192 4.62114 7.67525 5.10017 4.62114 3.59993 + 8.33831 3.60276 4.62114 ] pdfxs + 316.8 339.182 m + (a32-bitbaseline\).InthecaseoftheOpteron,PtrComp-) + [8.58117 4.62109 4.62109 3.06375 5.10017 2.57567 7.5028 5.10017 4.62109 3.65645 4.0785 + 2.57564 2.57567 5.10017 4.0785 3.60273 9.29565 3.30018 9.12009 3.60276 5.10017 8.03831 + 4.08192 4.62114 3.65647 8.03846 4.62114 6.7796 3.60276 5.10017 8.03831 7.13657 5.10017 + 3.60276 4.0785 3.59993 4.62109 5.10017 6.83572 6.29665 3.60276 3.59993 6.65759 4.62109 + 7.67579 5.10017 3.06372 ] pdfxs + 316.8 328.741 m + (64isactuallythefastestcon\fguration\(evenfasterthan) + [4.62109 9.36117 2.57567 8.33635 4.62109 4.08197 3.60273 5.10017 4.62109 2.57567 2.57567 + 9.53611 3.60273 5.10017 8.81841 2.81963 4.62109 3.65645 3.60276 4.07845 3.65647 8.28268 + 4.08192 4.62114 5.10017 5.10017 4.62114 5.10017 3.59993 4.62109 3.60276 2.57567 4.62109 + 9.84025 3.60276 4.07845 4.61624 4.07845 9.90026 2.81965 4.62109 3.65647 3.60276 4.07845 + 8.2801 3.60276 5.10017 4.62114 5.10017 ] pdfxs + 316.8 318.301 m + (poolalloc-32\):in64-bitmodetheOpteroncanusetwiceas) + [5.34001 4.86126 4.62109 2.57567 4.62109 2.57567 2.57567 4.86094 4.08197 3.06372 4.62112 + 4.62109 3.60273 6.83557 2.57567 8.28031 4.62109 4.62109 3.06375 5.10017 2.57567 6.78288 + 7.67525 4.86099 5.10017 7.31839 3.60276 5.10017 7.25863 7.13657 5.10017 3.60276 4.0785 + 3.59993 4.62109 8.34025 4.08192 4.62114 8.34 5.10017 3.65647 7.25838 3.36292 6.65759 + 2.57562 4.08197 7.25853 4.62114 3.65642 ] pdfxs + 316.8 307.801 m + (manyintegerregistersasinits32-bitmode,soitdoesnot) + [7.67579 4.62109 4.86033 8.21612 2.57567 4.86001 3.60273 4.0785 4.62109 4.0785 7.01992 + 3.59993 4.0785 4.62109 2.57567 3.65642 3.60273 4.0785 3.59993 6.95651 4.62114 7.01628 + 2.57562 8.46003 2.57562 3.60276 7.01648 4.62114 4.62109 3.06372 5.10017 2.57562 6.90285 + 7.67525 4.86099 5.10017 4.07845 6.0555 3.65647 7.98095 2.57562 6.96262 5.10017 4.86128 + 4.07845 7.01648 5.10017 4.62114 3.60276 ] pdfxs + 316.8 297.361 m + (needtospillasoften.OntheIBMSP,performanceissub-) + [5.10017 4.0785 4.0785 8.34016 3.60273 7.68118 3.65645 5.10017 2.57564 2.57567 5.63582 + 4.62109 6.77644 4.62109 2.81963 3.60273 4.0785 5.10017 6.83582 7.13657 8.2801 3.60276 + 5.10017 7.25863 3.30018 6.54063 11.5802 5.10017 5.51657 5.69563 5.34001 4.07845 3.59993 + 2.81965 4.62114 3.59993 7.67525 4.62114 5.10017 4.08192 7.25863 2.57562 6.77663 3.65647 + 5.10017 5.10017 3.06372 ] pdfxs + 316.8 286.922 m + (stantiallyimprovedwithpointercompression,butcannot) + [3.65645 3.60273 4.62109 4.86001 3.60273 2.57567 4.62109 2.57567 2.57567 8.39634 2.57567 + 7.67579 5.10017 3.59993 4.38093 4.61612 4.0785 8.70024 6.65759 2.57564 3.60276 8.76018 + 5.34001 4.62114 2.57562 4.86033 3.60276 4.07845 7.25978 4.08192 4.62114 7.67525 5.10017 + 3.59993 4.0785 3.65647 3.65642 2.57567 4.62109 5.10017 6.29573 5.10017 5.10017 7.26291 + 4.08192 4.62114 8.76032 5.10017 4.62114 3.60276 ] pdfxs + 316.8 276.422 m + (matchthe32-bitversionwithpoolallocationbecauseofth) + [7.67579 4.62109 3.60273 3.84181 7.74001 3.60273 5.10017 6.77858 4.62109 4.62109 3.06375 + 5.10017 2.57567 6.24265 4.61612 4.0785 3.59993 3.65642 2.57567 4.62109 7.74025 6.65759 + 2.57562 3.60276 7.74025 5.34001 4.86128 4.62114 5.21546 4.62114 2.57562 2.57562 4.86099 + 4.08192 4.62114 3.60276 2.57562 4.62114 7.68024 5.34001 4.07845 4.08197 4.62109 5.10017 + 3.65647 6.83856 4.62114 5.45969 3.60276 5.10017 ] pdfxs + (e) show + 316.8 265.982 m + (slowA) + [3.65645 2.57564 4.38103 9.71749 6.90289 ] pdfxs + (L) show + (U.Onallsystemsthough,pointercompressionim-) + [6.90289 5.75557 7.13659 8.2801 4.62109 2.57567 5.6355 3.65645 4.85619 3.65645 3.60273 + 4.0785 7.67525 6.71663 3.60276 5.10017 4.62114 5.10017 4.62109 5.10017 5.75564 5.34001 + 4.62114 2.57562 4.86033 3.60276 4.07845 6.71994 4.08192 4.62114 7.67525 5.10017 3.59993 + 4.0785 3.65647 3.65642 2.57567 4.62109 8.22019 2.57562 7.67579 3.06372 ] pdfxs + 316.8 255.542 m + (provestheperformanceof64-bitapplicationsdramatically) + [5.10017 3.59993 4.38118 4.61612 4.0785 7.25627 3.60273 5.10017 7.67857 5.34001 4.0785 + 3.59993 2.81963 4.62109 3.59993 7.67579 4.62109 5.10017 4.08197 7.73831 4.62114 6.41945 + 4.62114 4.62109 3.06372 5.10017 2.57562 7.20285 4.62114 5.10017 5.10017 2.57562 2.57562 + 4.08197 4.62109 3.60276 2.57567 4.62109 5.10017 7.1364 5.10017 3.59993 4.62114 7.67525 + 4.62114 3.60276 2.57562 4.08192 4.62114 2.57562 2.57567 4.85985 ] pdfxs + 316.8 245.042 m + (astheproblemsizeincreases.The\fguresalsoshowthat) + [4.62109 7.61628 3.60273 5.10017 8.09849 5.10017 3.59993 4.62109 5.10017 2.57567 4.0785 + 11.6958 3.65645 2.57564 4.08197 8.03866 2.57567 5.10017 4.08197 3.59993 4.07845 4.62114 + 3.65647 4.07845 3.65647 9.4157 6.65759 5.10017 8.09862 5.10017 4.62114 5.10017 3.59993 + 4.07845 7.67653 4.62114 2.57562 3.65647 8.52118 3.65647 5.10017 4.38096 10.6175 3.60276 + 5.10017 4.62114 3.60276 ] pdfxs + 316.8 234.602 m + (onallthearchitectures,theproblemsizeatwhichperfor-) + [4.62109 8.88017 4.62109 2.57567 6.29565 3.60273 5.10017 7.85865 4.62109 3.59993 3.84213 + 5.10017 2.57567 3.60273 4.0785 4.08195 3.60273 5.10017 3.59993 4.0785 3.65642 6.53558 + 3.60276 5.10017 7.85862 5.10017 3.59993 4.62114 5.10017 2.57562 4.07845 11.4556 3.65647 + 2.57562 4.08197 7.85852 4.62114 7.32258 6.65759 5.10017 2.57562 3.84203 8.88024 5.34001 + 4.07845 3.59993 2.81965 4.62114 3.59993 3.06367 ] pdfxs + 316.8 224.102 m + (mancebeginstodegraderapidlyismuchlargerforPtrComp) + [7.67579 4.62109 5.10017 4.08197 6.47865 5.34001 4.0785 4.62109 2.57567 5.10017 5.99651 + 3.60273 6.9011 5.10017 4.0785 4.62109 3.59993 4.62109 5.10017 6.4183 3.59993 4.62114 + 5.10017 2.57562 5.10017 2.57562 7.19632 2.57562 5.9364 7.43511 5.10017 3.84179 7.44001 + 2.57562 4.62114 3.59993 4.62114 4.07845 5.88 2.81965 4.62109 5.94001 6.29665 3.60276 + 3.59993 6.65759 4.62109 7.67579 5.10017 ] pdfxs + 316.8 213.662 m + (thanforPoolAlloc,showingthatpointercompressionsigni) + [3.60273 5.10017 4.62109 7.56025 2.81963 4.62109 6.05994 6.05683 4.86126 4.62109 2.57567 + 6.90289 2.57567 2.57567 4.86101 4.08197 5.03557 3.65645 5.10017 4.38093 6.65759 2.57562 + 5.10017 7.02129 3.60276 5.10017 4.62114 6.00266 5.34001 4.62114 2.57562 4.86033 3.60276 + 4.07845 6.11994 4.08192 4.62114 7.67525 5.10017 3.59993 4.0785 3.65647 3.65642 2.57567 + 4.62109 7.50027 3.65647 2.57562 4.62114 5.10017 2.57562 ] pdfxs + (f) show + 552.9 213.662 m + (-) show + 316.8 203.222 m + (icantlyreducesthee\013ectiveworkingsetsizeofthebench-) + [2.57567 4.08197 4.62109 4.86001 3.60273 2.57567 8.45603 3.59993 4.0785 5.10017 5.10017 + 4.08197 4.07848 7.3166 3.60273 5.10017 7.73834 4.0785 5.40425 4.0785 4.08192 3.60276 + 2.57567 4.61605 7.67855 6.4175 4.62114 3.59993 4.85619 2.57567 5.10017 8.22118 3.65647 + 4.07845 7.20261 3.65647 2.57562 4.08197 7.67845 4.62114 6.41945 3.60276 5.10017 7.67855 + 5.34001 4.07845 5.10017 3.84188 5.10017 3.06372 ] pdfxs + 316.8 192.722 m + (markoneachofthearchitectures.) + [7.67579 4.62109 3.59993 7.91612 4.62109 8.22002 4.0785 4.62109 3.84181 8.16032 4.62109 + 5.87963 3.60273 5.10017 7.1985 4.62109 3.59993 3.84213 5.10017 2.57562 3.60276 4.0785 + 4.08192 3.60276 5.10017 3.59993 4.0785 3.65642 2.57567 ] pdfxs + 316.8 160.862 m + /N9 11.9552 Tf + (7.RELATEDWORK) + [6 14.9399 8.63981 7.97992 7.97992 7.49982 7.97992 7.97992 11.5797 11.8199 9.30001 + 8.63981 9.30001 ] pdfxs + 325.8 147.902 m + /N17 8.96638 Tf + (Ifanarchitecturesupportsboth64-bitand32-bitpoint-) + [3.30018 6.17971 4.62109 8.52001 4.62109 3.59993 3.84213 5.10017 2.57567 3.60273 4.0785 + 4.08195 3.60273 5.10017 3.59993 7.43858 3.65645 5.10017 5.10017 5.34016 4.62114 3.59993 + 3.60276 7.07644 5.34001 4.62114 3.60276 8.46023 4.62114 4.62109 3.06372 5.10017 2.57562 + 6.96262 4.62114 5.10017 8.51999 4.62114 4.62109 3.06372 5.10017 2.57562 6.90285 5.34001 + 4.62114 2.57562 4.86033 3.60276 3.06372 ] pdfxs + 316.8 137.462 m + (ers,andiftheapplicationdoesnotrequiretheuseofa64-) + [4.0785 3.59993 3.65642 5.81583 4.62109 5.10017 8.34033 2.57567 6.05947 3.60273 5.10017 + 7.31841 4.62109 5.10017 5.10017 2.57567 2.57567 4.08195 4.62112 3.60273 2.57567 4.62109 + 8.28034 5.10017 4.86128 4.07845 6.89656 5.10017 4.62114 6.78274 3.59993 4.07845 4.85623 + 5.10017 2.57567 3.59993 7.37845 3.60276 5.10017 7.31839 5.10017 3.65647 7.31854 4.62114 + 5.99953 7.80112 4.62114 4.62109 3.06372 ] pdfxs + 316.8 127.022 m + (bitaddressspace,thesimplestsolutionissimplytocompil) + [5.10017 2.57567 6.36257 4.62109 5.10017 5.10017 3.59993 4.0785 3.65642 6.41652 3.65645 + 5.10017 4.62109 4.08197 4.07848 5.39551 3.60273 5.10017 6.83834 3.65645 2.57562 7.67579 + 5.10017 2.57562 4.07845 3.65647 6.30261 3.65647 4.62109 2.57567 5.10017 3.60276 2.57562 + 4.62114 7.80031 2.57562 6.35632 3.65647 2.57562 7.67579 5.10017 2.57562 7.61614 3.60276 + 7.32104 4.08192 4.62114 7.67525 5.10017 2.57567 2.57562 ] pdfxs + (e) show + 316.8 116.522 m + (theprogramin32-bitmode,whichcanprovideasubstantial) + [3.60273 5.10017 6.47857 5.10017 3.59993 4.62109 4.62109 3.59993 4.62112 10.0756 2.57567 + 7.50024 4.62109 4.62109 3.06375 5.10017 2.57567 5.94265 7.67525 4.86099 5.10017 4.07845 + 5.09573 6.65759 5.10017 2.57562 3.84203 7.50017 4.08192 4.62114 7.50017 5.10017 3.59993 + 4.3812 4.85623 2.57562 5.10017 6.4784 7.02104 3.65647 5.10017 5.10017 3.65647 3.60276 + 4.62109 4.86018 3.60276 2.57562 4.62114 2.57562 ] pdfxs + 316.8 106.082 m + (performanceincrease[12].Unfortunately,thisapproachw) + [5.34001 4.0785 3.59993 2.81963 4.62109 3.59993 7.67579 4.62109 5.10017 4.08197 6.65865 + 2.57567 5.10017 4.08197 3.59993 4.07848 4.62112 3.65642 6.59842 2.57567 4.62109 4.62114 + 2.57562 6.35579 6.90289 5.10017 2.81965 4.62109 3.59993 3.60276 5.10017 5.10017 4.62114 + 3.60276 4.07845 2.57562 4.07626 5.21555 3.60276 5.10017 2.57562 6.11648 4.62114 5.10017 + 5.10017 3.59993 4.62109 4.62114 3.84193 7.56032 6.6531 ] pdfxs + 548.22 106.082 m + (ill) + [2.57562 2.57567 2.57562 ] pdfxs + 316.8 95.6423 m + (notworkformanyapplicationsthatrequire64-bitaddress) + [5.10017 4.62109 6.96281 6.4175 4.62109 3.59993 8.21605 2.81963 4.62109 6.89978 7.67579 + 4.62109 4.86033 8.21612 4.62109 5.10017 5.10017 2.57562 2.57562 4.08197 4.62109 3.60276 + 2.57567 4.62109 5.10017 6.95632 3.60276 5.10017 4.62114 6.96281 3.59993 4.07845 4.85623 + 5.10017 2.57567 3.59993 7.49837 4.62114 4.62109 3.06372 5.10017 2.57562 6.90285 4.62114 + 5.10017 5.10017 3.59993 4.07845 3.65647 3.65647 ] pdfxs + 316.8 85.1423 m + (spaces,e.g.,duetogenuineuseofmorethan4GBofmem-) + [3.65645 5.10017 4.62109 4.08197 4.07848 3.65645 5.75582 4.0785 2.57567 4.62109 2.57567 + 5.6958 5.10017 5.10017 7.31841 3.60273 7.80109 4.62109 4.0785 4.86033 5.10017 2.57562 + 5.10017 7.25833 5.10017 3.65647 7.25838 4.62114 5.99953 7.67525 4.62114 3.59993 7.25863 + 3.60276 5.10017 4.62114 8.28014 4.62114 7.25571 9.66051 4.62114 5.99953 7.67525 4.0785 + 7.67525 3.06372 ] pdfxs + 316.8 74.7025 m + (ory,duetospecialrequirementsformoreaddressspacethan) + [4.62109 3.59993 4.07621 5.15581 5.10017 5.10017 6.59849 3.60273 7.02102 3.65645 5.34016 + 4.0785 4.08197 2.57564 4.62112 4.97549 3.59993 4.0785 4.85619 5.10017 2.57567 3.59993 + 4.07845 7.67525 4.0785 4.86008 3.60276 6.17654 2.81965 4.62109 5.99978 7.67525 4.62114 + 3.59993 6.53831 4.62114 5.10017 5.10017 3.59993 4.07845 3.65647 6.11653 3.65647 5.10017 + 4.62109 4.08197 6.53847 3.60276 5.10017 4.62114 5.10017 ] pdfxs + Q + Q + PDFVars/TermAll get exec end end + userdict /pgsave get restore + showpage + %%PageTrailer + %%EndPage + %%Page: 11 11 + %%BeginPageSetup + userdict /pgsave save put + PDFVars begin PDF begin PDFVars/InitAll get exec + 0 0 612 792 true PDF begin PDFVars begin AS end end + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font MYQNCD+ArialMT + ct_CffDict begin + %!FontType1 + 15 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (c) 1991, 1993, 1996, 1997, 1998, 1999 Adobe Systems Incorporated. All Rights Reserved.Arial is a trademark of The Monotype Corporation, registered in the US Patent and Trademark Office and elsewhere.) def + /FullName (Arial MT) def + /FamilyName (Arial MT) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /MYQNCD+ArialMT def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { 0 -199 769 728 } def + /XUID [5 44339 ] def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3EC67F973A7D + D910BBCA8FA950CADA53428ADA87055C66C84903F07F66481254896782FDF2A4 + DCDEAB2999969F5A6734747823B5041212A1A6A3CD412CCD0EE61173E1EB05DD + F2B7DCA21E965DF4EB09D153FA00AC23728D25C5DC9BB0A1944C5671068B302A + D0309F99CF5211A3284B39D335A60C7DFD0BC14ACFF2B3C123318746D7569FA7 + D46BDEA41DC5EEBD186198243D471AADC9090E947912A30DE8DA0CC5A98A17FC + A64E4C7E80688C575DD3BD6CAED6EF19B1B2D9C065BA99BDB7F17E14B01FD285 + 3FF78C2539A5AC222AF8C461EC3F01F27F018A164C0CCF3040AB55D3D055F7A1 + CC577C144EACEC16CD9296CA5E29042F07DD6705F9A13E7D05CA42F17A6CE741 + A5A6B93824FD2C0A0BD06A849E25D1AB6BD5C412C2931A92437DE6D2E37B6C4D + 919FC8E8BCA41CE5A0E0F129C84C180F986478B6C9A1DA97C3BC7DD22C1CD49C + FC40708A197C4063B128E3E678486BDB26EC509A180810DB56C6A277785237F8 + 26CBF8B06D058987FCB6A2F7FABBF8E534232CB803A66ED127F2D3D5B9379036 + 49484D871A64657E8F677C10D2BB0D1565FEB17ED94B012309DC3DA546D6E585 + A399E049A02E20FD63AFB18108F13FCC9E3618F96D4ED7570CD0D8933FB2FDCE + 16F409C9F44534AB0802751F449F0F92834472401E70D62A4594B1917FBB33F2 + 73D8BFAC0924B8A256A633E4A974570C66B6A54D9DCFF34EB553D042C58EA2E5 + 2A17B56E4C12A97D250688CF5B4DCC7B44297559FBA58E79BA6E2FC77CC4F2CC + 1DE54936A1EFEC42C8F22FB73FA2D6E8E989A619BAF5F617698563CAD90DEAF6 + 46251E6E971722E194171704E5831F77479E49747EFEB9698C1553525C7667C3 + 61435841F66D000D113457EA0BE974B123F9874CDF9ABFF505D9ECA512A5342F + 6E603A409A9599275B374CD6BB16E329E5AC3CD9D5A44D24E0A37D3E1FBED92F + 82E10AB5BE1B91E2D6AC2D00C732FDB35E8382D52E32E469B8DAE528760E7B7C + 96F9765416433D4425CC604BB700E18523750C2035F24A981026A54A9BA3969C + 6C132C58D42BD0E19ED9338ECB969EBC2D39AF93B6AEB37444C2B5414D2F6262 + 86CF37B305BE302E13DF2F44DAD48EDA5E8C406AA768381ADD04FAE6996EA419 + 987625F42C5256D7D12B6A9FEAD2EA6038B47FA2E4E07B1AA2CA3C86ECE94AD2 + B0DA96CAFB8B575592BAF1BE871DCF4CA3FF24FF33B3F8DFB3F4D743010130F1 + 8B921955A9C144616F0076FE9E06C4B2B5492DB53A5F1FB81AF885FF747C022A + 6879C6F55DD9343643E9D94AC63981AB575B043FD6A0FF6F313B233818B6A969 + 6D4C6F1FA401D34F8873E1469C7E5E44B4209435B786CF4611FDCE6293BB0DAB + 5C3979E3D4031A49C5F7333487DAAB5D9C2B24DC1FD44403831C61A0AD18E0EB + 09FFF005226644B45B3D9F1D94E1016138C996E6A49D8553F5809997739595E9 + 4209806DAD52198D69BA2EEAADACFC9EE43E4F22DDAF0F793F093AECD0C97694 + 15B3A5F030C055943744330F62B88CDAA5D28741306E238C3A8489BC95F7B514 + 438F8BA25E02277BA54C9B50CD032F54BFDFA0B7D8E3C678983F1D82304F5414 + 8F3767DA763B505CA63843CAF4599195E432AA5B29B873840046ECE9593C0CBE + 8BF867D6C0800CB889344F125A4B72A608472FB9FE7267CB2445EFA4377D802A + B6DF21FC5D85EA86B7591D6C784289C6A780403A733B8560C180F824BB9DB217 + 50CDDA4730FC68F42C4139F161B1C904DE286D23C2FEBDF87A7477421C7B42A6 + AE6FC18154A808FBB4CB4D7BC5EBBBCE34045D05E57F2B91952B72F1DD692719 + 9E62EBD27748B269178FFEA0B8356794F5ABC7261A2C6530F9A1C31D26EC6B95 + 24E4F97F0E0466B00EDB747936FF496F6C11552AC5D9518B024128F415F830ED + 2646889702517BFD1ACA2749617AADC345747D458E2FA2D141480F6259879EFA + 48458AB6B494139BF0EAF8A0954C079D4CCB0542A70D52A35EBD4E020EA5C24A + 19AB87B3B3C31E2AD6CD41701BF0B27915EE19E3B4E7F3B2CB2C686150A47CEA + 29EEF9E2C576F511BDD8F2001511ADA0359CED91775065863745A4D11227B64A + FAE0C04EA13994A6336EE82B5EEA6D72E825E0B74FB558B933633D6364AE6327 + D0C4445A7903F12B80674A44EE9A4AF80EE7D3248B830EEDB7E202E6104BFF01 + E656169A76CCFC3341EDAD8D848EE9D08C7E347A9E0995349582AE19244371BF + EB1D1E64385CBD618D96BF4C4019CC0465ED46D4F2CE7899DFFE8D3B21C812C4 + 28B4542131AE10CA1CF024A14D78C6316E1791FD780AE6319DE964979DBE19E2 + 3EC5739E0B60F442816422AC0E41E316D1E30B9358DE9E1E675477E97FB97FBD + 8A467AE39EEC063BBC85591B33839D4C38811398AC8CB3C19725BA4381CC2915 + 25EC59E92B0E9DBE5444909F00DC1FC24AB51ED9861E2E12B405353C39209618 + 8A5442ED02761D025D8CD9832FF2076EC3743CA66E59C9D75D4199CCB7CAA921 + CE1C05D0FDCA3329963796DA9E8B7CC865470B38929AE9A8B7F907AC243F89DD + 1635B2ED19C876318FAE173C3A0FE6B56FFC39630C3EB2CE7B11F0332F5EB4BD + C884875AA55FFA71DCF540B299DD02A2DEA77E597DBB55A4596C7B974EF8F6DE + D0C2FB81B2A7AF6E3A42F322585C96028FBF3A1E8A00E04F9C5A7E1B26BBB355 + 17C7DC688C351E56D4972D5E8888C716FC43C6CCF1F3FFFF0FCEB35B7D472601 + 954471B5D0DC33D7BCED09E3300132376BBC09937C33A2AA0531E2748D5701B1 + F3999963DCF976110F51F38CED23F2E17129C55C865E59DC40B3C9B145A99F10 + E2F0610F25CBE99BEF05CEA5B5F3A00CA82E5B88369D488652D92AC42460987D + DCE101E9A234DBC6C57A9485E762CB607C5319AD3DE6BB2ECBD9B7D03AB7E059 + BC6F06E15073948C28DB2AEBFE228F165DF1652ECE2000374F35752A74F33209 + DF711D0D80241F44AC910CF4A9F76DB32C9FC9806C6D426E959170CE63501870 + 1F1150890DC68CC3F9698C0D3499CAB76329A50B15CA13B04E814454F3860C98 + 17D3D75528027AAD6BB092092CF57EBAAB1B3EC7B4A4D2320EC740EFF4B22139 + ACC9401C0DAA4F4D612EE26307A964B89443A2E0697C308C37DE05AE5C3F450F + F2F30B41BDE4F2962B9E690C0D8A553B039CFDCD6E7E392CB338D8390B57DCEA + 604EC4AD6CD21FDA4FD51F587D8748FAB78A845EEFAFD18FDF45D1B11B84F0D0 + B66986D4DE135163680C0A85DEE1A25CF80A74062EAF0D775464B1D0325C0CD6 + 9C98782ACC42DCCFCB795C1D00EDFA76617F451EE5B6D65C8E1CB44410074419 + D5B103FA31162D07CF07DB9FA7E83B2393B90748D52B6564C294A0F54A8FF150 + 52DCF9A554646938F50377E52BB795E95FA7F1C13CA7B7C475CB6F86AD06B2E7 + 083CFA45DFDE076B0DDD24A4F6EB1F09C5A62AC5A6742B5939B972767F077EF0 + 4E800C0C2720C418CA5D7C5806332EEE86AF21E4FD4466258D4A76CB0649EAA6 + E879D2BF95BF26F654F85E3961903F9D8AF5ADD45C0A3B979E3BC076DD8C1371 + 897C54B9DBE8302B4CF4828FA552388C0F4FBEFBBF4E1DC8CA29DD3353E9D8BD + 6DD1FC19FFAD5AE51B227B5837A266C0FC1CBDC3463C00BB792CE41A5D0CBBD5 + 63F9AD7164C5388C1559AF1888F895EFDEF7720EA13F0BA54B8BE9615719F54C + B141FA76194823562558301B90236983E77EEDF0476C3C1F409726BFBB3B82B2 + 74304C43376307969726CE8D22F38E93FAECE32255ED1304950C64A431F2A56E + B0CE146512865959BDC479714E47D3A46BE707DB2E2D34E4A89F60265807A1D1 + 2564DB19D2147D35A7510AA4AE9C9A9033AC69090E73A5CBD359B803DC8968A7 + BFCF4FF50400C15D0AA0044651F46B1422D8402B1C5A4A6306F24A5993849864 + A8E2339DB584177E13DFF1CDAB09CFCF1ACAD77C2617799B57B9F35DE5EA72DE + 0573D60F3B0E94AE6E6CC1885A832C0E0B2308F7536240AE17E57C56D9A283E5 + EEF189D459AB0A33E1541F84E7F2659999B027E33B0F7AA69D10C59D66EBA80D + 649F4544BD753F400A6EDC5F2CE1852033618D638BA11460691626FE84A99777 + D125C73983D280A75EF11C684B64B86BF106C6BA879EA2124473B66A51EF4A8F + FA87F23AFA98A27D2DF85A9F0EE4A1481B1798DAE3E717D4B880F49299F2DC71 + 6AE1550361E5A5D6348D15928541ACD1ED2AECD409E34E449B9FBC675666023E + 888EF36BF8A23BE67FE99F180B4677FD2041A443FF7AFDCDF434C58DB0361E5A + F03AB9A7E582576E8F801B80626047751823DE01FC585697628FBF44B73225FE + E825F022F9B9B15A32FBFFFE0B6D84BF88A23CC92BDC30BD6EBA6DEFF0C85D25 + 5FFB64EF80D3C8F67E77BD9E9C598235D06D32AFFDE5C38DA947280FBE9F9B79 + 82DAFF8587CD1B9DDD684DF8DFE9934618698C02AD3C31C716879C0E17D8492C + 9E00E2F6E869439A66924C22C2982CDE263327811937715DA128B0AF662A928C + A9844DCE7DD46AB94DE7157BF02D69249268CA7B7BAD03CFB8FACE920DCD6A74 + CF75E3732BA44AA05FE792802719CA9A34CFACD75F03BC9DA5051074244A2963 + AE5D4ADDE88E7EC1381E2D804F1D289DD879C059CDFF7A404D749DA5E910A576 + 971147328ABB286E923AD0EB4220518065C84B21A44280612DB2D193CC4C1606 + F81A145A0F82530C3FB2EAA8937B2CE0BD3DED74D2A0F95B30EF62E5623EB2AD + 4FC03C3C18438EEA99C9132FB6F06D0767211B47D9864BE3858BEA437E330BDF + 52A8602A94624046533286E4FD3FD0D196C238634C596C10DE465EC50A069F1B + CC6666C4D546CA356CE84DE8A4AC6482B362AB00D3C356BC504744DB2D105E93 + 5F77303C16C042432AEE857633F98A3AF4514CB7F60DA979419C9FF9689529FC + BADDDF748AA5D88B070224E421F70791FEBCE571B7951D0F0C95EDA39BCD7CD4 + AF0F01CA63ACC39056A5159F4FD0DF13D6C540D7155CA4DB36B56B838486003D + 48492880B0EACFEB6C744EBBB7DA001D8F1E93BE5688118EEFBD4AB55091F76F + 83783876BB7C6F9C49C0CB71D46A455AD5C44E01573F84984F3BCDD57671A668 + E0F57B18441209F0456D44DFC72ADC1C497B9994F9E50B471C02EDA363248D0B + F07BF8EAC28D3B711823E208FFC62624B7215AB1000DA5A1C8068B92A6B2426F + 071BB8E1BDAB8C2063F777176FED69AF41B377E88BB5E6DD1522933EBE00EAE6 + 9DAA90652FB1D2D0DE0EABE7E11114DF3C130426C3E8FE901C56986E2EAA2FF9 + B1BAFE3D55D0DD1F5FFF5745AB9A536ECA95D9147C32B14A5602C88ED24999BF + B665FEF4D453EFF1E46A83B26BB4E232FCC6A3E4E689C540CE5E81B506B04406 + C2B61046CF7F7238E3E2EC32542A080C460739F2A20C25E05076CC68E3CDC477 + 5C960B35F1A277F78D4B1F7158DEB3BBD30C80107659FAA00EBCEF07FBAA773B + 7A33F3439DEFD51BBC747A6693F442D36CB4320321B54F91A72D48448B8C9DE7 + 2EC788DE2CD5F77E7BD9A1D5086C5A8B5447EF5D3AF9BA112533A79816B527CC + 52D124BD82FFA120429DCAF56EB4C0DF44285486BF91B62FF160E3F63E848F4E + F9690B1B5A382BE09AF1136347569C9B63E2CDE97EFD6FC3A5706519505BB07C + 5238DDA53F2701E58AC7F5752340C664B9272387D31A8A5EDD1238B16DCC62D6 + 043F884741ADB547A999130356EFF621F8B7F0AAA21B12F3E45C1E99C11AD79B + B4E23C14F44956BD423871FFC4417305AA8E132EA45CFB9FDCF0043E37BC82FF + C59DD6B76A69D305987C107E7D2D0E1E34A709578992CB301354A49D87A3D433 + F50276A25DBC4E1F9CC5BDBBE2595B0C000A976A1F706233C4D3F8C7580FAD59 + 4EA07FA408DAF3DCFC5249385ADDC72931E4FB607EB5B85F3B48F44BA3E094BC + 28270744FD52A337D3A913EB1607EABD7EC1DD077DB9346EE18F82A641418CED + 8C46F2EAF8711D50D2659CCDF833A1A545935B1A66161CDEEB680DF28061AB44 + D48CCC57CF2B0B20C0A274F7DA71 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /MYQNCD+ArialMT findfont /Encoding get + dup 0 /.notdef put + pop + end + /MYQNCD+ArialMT findfont /Encoding get + dup 0 /.notdef put + dup 32 /.notdef put + dup 43 /.notdef put + dup 45 /.notdef put + dup 46 /.notdef put + dup 48 /.notdef put + dup 49 /.notdef put + dup 50 /.notdef put + dup 51 /.notdef put + dup 52 /.notdef put + dup 53 /.notdef put + dup 54 /.notdef put + dup 55 /.notdef put + dup 56 /.notdef put + dup 57 /.notdef put + dup 65 /.notdef put + dup 67 /.notdef put + dup 69 /.notdef put + dup 78 /.notdef put + dup 80 /.notdef put + dup 97 /.notdef put + dup 99 /.notdef put + dup 108 /.notdef put + dup 109 /.notdef put + dup 111 /.notdef put + dup 112 /.notdef put + dup 114 /.notdef put + dup 116 /.notdef put + dup 160 /space put + dup 173 /hyphen put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [/N96/MYQNCD+ArialMT 1 TZG + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font ATKSOD+Arial-BoldMT + ct_CffDict begin + %!FontType1 + 15 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (c) 1991, 1993, 1996, 1997, 1998, 1999 Adobe Systems Incorporated. All Rights Reserved.Arial is a trademark of The Monotype Corporation. registered in the US Patent and Trademark Office and elsewhere.) def + /FullName (Arial MT Bold) def + /FamilyName (Arial MT) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /ATKSOD+Arial-BoldMT def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { 0 -197 826 728 } def + /XUID [5 44341 ] def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3EC70E14AF46 + F38884AB0522111E1FD6B5E292C7A7C85F79C8CF269C29C6F79E84099DF3FE97 + 919C760621BE9B4756D5ECC123E0FEBC7A1BC9CFDCE3B7AB1B118837C4B97C17 + A4A2D65552C37CAAD683D3DABCC09A36FF0DBDB89E43724FD10F7C1BE056E775 + 101008AD51C29014E0B4AFF4CDE74E1CA5A64E39C83FCEE568A997B7D0D888FB + 5AE51C74D8CBBBF61463B3A1C80032F9E9B615124B88BD716363A24D9B750718 + 4290A3206B935F4107372023D4CF18300B61A6F017E700015589C6D8B15C3357 + B49E9BAB4CBA922B380D41FBEBC35087DC5CB90A8B459DB893BD68CC85B6EE4D + D980CDBEF68C0919835F3314FA9D243C977E7BC86F888173A3527DD370C5FCD3 + 8DB2C3E47544D93B667488BF1381A65F19D05406D5DDEDB1850C862DDD6673D6 + D313A0B06F7C77CA4475A4350FC1BD293C12304AA84715768432212EC62C088E + 46226D997025958C8A1D1BD5D0B1354A4D57EE82AEE0A01FE8403728C3A64D24 + E57FB100BA0A691DEA1AEC3EEB556514C311C2510A7A18B9C961F8D265948D41 + 02707941404F76DF99E16C46528AC4DE7F75CFCE999A6264D6C6B4B535CADDEF + 833C5A8738D268D27F0274BDEB2B41FE74F5A04E8DAECEB97BEAD4D1775C07E8 + C48C5901A81B4CB23B7C358D896971399151F2D57627EA632F0B0587CAC9CD7E + 0128D98752E93842F346A1A5EA8AB26BA1E9CF9D2D410B7064A622D5194B44C3 + 26B1AB7C7185B3A72BD2B66FBDFF9503758F44A18751CB04F13CF87673840EB4 + 788D66610BA61BC023D50DF413E482665CE4D761D049FAFEB7FFB5609AA67B08 + B311A744983083C816A80DAB54288A8D21A6976F13CECA2D03328AFFFFC6F61B + 7CF9206CD109556E22E08A16D0D9D3E40789D103E0010AA0137D1F795FEC369D + F3E7C1A5C0AD8A3A4D721D51A357C741A1902DEF98A6E8FEA74855D271A530E7 + 1483863CF78CC09E2E8FE10FA11E2CB400F012E213C5B0C654C7AE9F463AED2C + 600714BC54EECEBD7BDA3CDD3CB8FF87480F842B63C0E8E96A3016B244AB1956 + 4B8F5770A67C4B8CF0585A2BC3430A216A0B876C4588EB55647D24A687A78869 + AB28B3CB6EA6FCD732A1E377118F5896BD45F5E8C60017773452E3A35A5E4AFD + 0D134979EB770AEFDE5DCC9FFCEF448988C7156082A736BEC986A732F9AFC34D + 5BD6D727FAE1C31A5196760E23F431419E76DC0024AAF42C4D8E83DEC799D7F2 + D21F189523D0BCADD080D077A6A672A37684EECA2848F2967C9AA7366FC81C66 + 2BE307946E4F007827F841033AADD06F0618C8F461EB10E089E5405D576D68DA + 285A6C8A79C63E90D3FDB1BB20B54877CA116845121122B7D370D96BBCDBC423 + 7103678EFB863534E236C00467BA3D1DE139435D7ACC2B56CA512580CABB4D73 + B880CB43483C7A81E72687F67ABEE3A6F783422FEC1F70281C90D6E007605A7E + 3CF176DEB618A0D276F8A9602A9FF911D508F1E7C23DE9594F59696026DD4044 + C24BEC34E9B8173DCA634C754794DA35CAF55F5D5EE0B8C9DEBFD27EA2F8C787 + B67F6E081FC6ACB261912C5A405680474B4372796D5057388F7057F732FCF713 + C3B0710E9A5CF866E5F6AE2429C7DE5E6A4D3B883AB3C5AD5FA24C409FB61D24 + EA96A1FCF64D9B11E3259B2771933D85AFCDAF826642AE5B6DE1ADA155442C28 + E799DEAE6E91F29229586F4109AFB48B9918F74A86AD4B6919FC01E48D846CAF + 0C8414AA99F3AB8A0A669F075FF77075B97197B2719130EF1C58470D5D54B47A + 28998985A5F15D8B49D4592017D66ABE9764C9A60ED359D8EFD9DFB1B09E2C9E + CFAC548AD757B43CE92BD9A1433ED7360DD92F8C7B606537B120495803DD9D80 + 78C488BB51CC8D71CE69C6FE52A400B28169FF3EF8C25E370328C5607DCFA4BC + 0A0DC280962B0A67D656A76F4752D21DF6AD716166A4FBC8D53F2F255F36A7C8 + 56258EBE4BEE6A4F82CAF31318168DFF042AE8932158C35EA4574DD5F322715A + 8EF6BE2152F62154E7406C1D3725553E6261C267682AE54672ED09180DF6AC2F + 5D405D3CF1CD0544FDF37FA33E543612998D330670E842F458AEE6FBE820900B + 282BB584DB542995E8C946BC632E7E1F9D2EFE3941790FA38CD6AEE3C11C1915 + 6426D8914D9D4B1014580C5BDB42018B05E981407F7736AC62A3C551BE2BE8DC + 09479999FDCA81AD676F6BBA3D2027F0DAC9B886F51944782F80F708BFD8E954 + D087F7A2D566DD1CE073A1C0196E00ECCF16F1BE7D721E2768882BA38FAF001E + F054C01495582ECE94B9E67493C6F54611DE1E774846AF1ECE4922EACB0BF575 + AE42752E3C5788A9B0CA43D6D4B2DAD93DDC5A6E44BB51191F633FCFF14E452A + 949EE125A64C8BB0673F6CF0F57F47FDE69760F61DA9381158FAFC4DFC528C2A + BDC788B94EC95AEECB6297F2D2DF05DBF8D9632E148B75F47688B871F886BBC7 + 278B64F273D465DCD3176F4E1351EB40F22EC71873C144EDF56B35710FDB83BC + 1C4BFE62134F28E88AB3B5062C001C9DBD820CB76055EAF556A3C3B274C4975F + 7C8C60E66371BDC1B9255A5B1E30C66BB111EF11040EB51DFBF929FA37CA6BC7 + 74AB09B800346BD518FB507CBB0F9496385054D0CFCAAAEA775E7A4CDB4A7B9F + 9AD08FC5BD4E7BB16AB3692C0222DE874F100017C74A4EBF020252FBBBC4FCB4 + 8C2EFCFF3A001B189CC8FACE63406A5805FAD007CF24B4D7DCB70AAA2E6202E1 + C850DF516EC75A906303D32E6B8FC2FDA2F77794ADD8D6CBFAB6BA52258BECE1 + ABD0835396EBD99B0DE23ECA731899BBFCB29E48A5ECF29F74E7A0D7C49A9FD6 + 583372D36440445C797C32E62DD3A4D1F5BDF93C56428C66F5E6AD6E92F37DC3 + 42C7644122DAA376B527178C777B33E069CC97527AB38B74E7E1715CDE117F76 + 2ED41C3056F15CE3705FE71CE8B200FF131D9C990FDC719469196B1D845203FF + 79F78DBE49D245C8DC696A96BFADA52E79FA3F342B9DDE25F3F58558CD758532 + B00D05A94D16BB94840151E8F0777921B97B44A251672B8A96C818521D459D69 + 0EAD15672D60125BC625076C8B9B63BBF29C8E102EADA42B7DFFB1DCEBE7291B + 3F247817E4A101AACD17CD5E4964183D4FA46911CD7D19F2D6724617AFD62DF9 + F7DD874B48F7A87E57DB9B5952747CF2635FAC62BA8E3103A02C79A78BCA4B3C + 4668B6597BEC4E97BB8F3B7241EF76AC3903F85CFA2A83B0EBA0ABDDE9875CB0 + 5C6074FCD15B73AF3F615CDDFB4BEBFF310D43BA5A6C33979461C911B3020C8D + B385EC16AE64CBC1805A18BF1EDD57F5AC53C80650DF171B3F2CA926F54B11CA + 212CF29DAA4C0F1D952F5090F39E0116EFDB484A7311B41AD5F70DD85085C3E8 + 9F3DBF8AB57064AD917A041B192580882C08F5EAD530F081AAC1D372B07321B3 + 7008F2D2DA9BFA6E9AFF1ED5E817E10DC43B829479B76C888889FEDA384FF60F + A9793237C1CEB96FEB1DB73F3F625C1BF769FDB34F13280E7CB9A63A079FACD2 + 7753A88952BC4792D0EAA779D419654779AA182DB3681C6B71F0EC1FF5A1276B + 419C180D6702CE96661FEE03289E0B819B794DCDDD5BB1E3BA874A4219C492F0 + 8FF0EC430DEF8D59AA6E42347BEDB8019DC2DEC885B496A57169E495A1785142 + 7EE0F34A17778C841B08276E81A6DD5DEF151C96D8061699EA94E0BC3824CEFC + FF69137C9406D09E25FF9FEE632AD73EF85CA27570049D246F4266D33D764F80 + 46ED9579F75DC392ED311D093A2D327ED18F79B84AEC9DC6DF6434DC8225CFC5 + B2753B724C73BD1FF50139B8C4E0133A064B0DF92C9F9FDD420D1F61D2F73838 + BF7D47FD758E230059EC9D5D8B39B9A26BD41ECE85960ED4001D82F8B2FACE1F + 726C8FA0FF97704AAF1EA2EB288C73C40A2B3D7AD6FAC90D4019A6907592164E + DE6C6F2682EACD3BC7C677DBCED8443BA1D37119EF944E53B66A7E10A0398F76 + BB8B9375F6AF2A250F2B570D0013DE55CA89C1C1EB8FD8F2463D2A4A5BA0DDC4 + 5BD1B778B35C7FBD2B76BC55D25550C38605325B5FE5CF54DF6E108CDE172925 + 06221827E3DA9185EE5200C20CE114B1B9287CC77FDCE258ADCE027F71A2EC18 + 803ABFCBA1C5792EE161E282B64BB6FBF08087D8B7EAA1423A0EFCBF87EA1FB6 + F607AEC1190B116F32150B9EE85EA93875CD0899ACB13473EF2EE312B3EB46FD + FEB032DC2C946F1D7C957E2D67D63C652114D731292B4295A2C44FA4FF327E6A + B69DB982893859860FD04A446C51F3104067CC8E89EF8887750C465B515402E6 + FDCC9CB4C370647F47A583EABE3EC86C0E8BF80B6F59882AE0300EA2368F3D1F + B36DD5C56F14F3F0FC583F973F6A77636A0EB6F15F49EBB47658EED098011CBD + E1773713231022AC9D4648B75E8DBB36E2882662ACC5720A79D33BA86CC1A295 + E6F240EAD66CA841F19E9196A0670197692CC58D2EB00FC54785C42BAE92705E + B21304C7B584541AA225D8A44F06EEA820A0C2B0C94CBB7A3F127B61D8E1607C + 687D8609DF55E8A1C5ACF02DE41C0A7D17A7086FA386DD2966BFFB3B28E64569 + 8A9BDB6EFD75ED1A6A6F356021A20B1C62699E0FA745F753BE7632C576D9A023 + 6BC996F9EE43A6B071A887126F522123C302EA0B47BA4523B339896F874E62D0 + DCEC497E529BE626640761FF1B40A88589F1E0C5542F9F6C8562C059ACA24EF5 + 13CBEAAED211A202BF54DBB389BD72DFB5AAAF025B1846FB0CDE6ADAD8ED0FFA + 26BF8DC54F6D722BFD3E51408BD1EC8184CB237231C99AE589BF3AB8C5A5346D + 154D67B3C6422FC772A85C10A38C8299C456E0B2393B320A4AB6D993923B25E6 + 051568EC17AFFF1EBCAA3DEA8F1790F40A57587B1EC5B85CAA1651EF08E08C1E + AF24ACC6917CAF54E3F01B5000E2FAB61461906BD8F539D9A2EBA43C88607BC0 + 1A8FA53FF74F5EB6F462161A58C922710254FBB5956AE71A931D829D51F9E87E + 84A4DD2CADCBF0E434AF4CB4A61DE6D62FC1ABA0CFEB56CCD5F4B8673B767203 + B94801758490A6698A4EDB7E5E01708485E98504FD43F6ECE83224BA02E7FFDF + E311A43BF5583EB3C4761AC3E9E8FB9E3FEF0B4CBA15EC318B2CF941597B2DB8 + 7C2B3F101C16AE684EFC21E65071FB587E4D2A16CEEA6CC860A3FDF8A67170D3 + AE6F14EE67203C9ED34995667D342D57FCD7DD5D68AB24D07E8A79C034760B3A + 14D195C2E04A16B21A0E8529E2CA861DCB90AED4E06C63225E57992115097165 + AC4AC3BDA3AF10B09235859A2105F14D4F2ACC4FA7932B103D195099FF195504 + D94F05C24DAD9047E4ACCA85994A292A5D1FDA8FE5FB559FF0B81427A94C8864 + 487BAB6A2A1C70A1CEC6B9BE3489DEDF0E382FD41B2DFA6C9703C1FFE4C74144 + 7676D50E7899E7C482B0E2120DD718EFCB14787BED4A89E24F020CEBED03C779 + 9F82BAAC835F6486E4ECEE99B81887E19E6E76D6BA0856B7265EE1CE8ADCBBFE + 7543793FD2AB078AE996E8357A6C6441EA31188532C7EB8F32521B56209C8A39 + 3775E7E04345260AE80A92676A234E2071D6FC1FA1E7958CBDC5C96C18731961 + 2E9720262F87B33AD5E6548F036DE6B05BE129BBFAFDAED838E34E173684576D + 7954D5F96FD774E231421C7EE02875230FF3811AF7EE45D1F57AD8472C3E5EFD + FB752F4E9CE2F4B83AD30D4A23F2D1E51FB251F043F1B2F8A2827AD8470943FD + 266AFA75B060A04E037DBBFF730F + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /ATKSOD+Arial-BoldMT findfont /Encoding get + dup 0 /.notdef put + pop + end + /ATKSOD+Arial-BoldMT findfont /Encoding get + dup 0 /.notdef put + dup 32 /.notdef put + dup 66 /.notdef put + dup 73 /.notdef put + dup 76 /.notdef put + dup 78 /.notdef put + dup 84 /.notdef put + dup 85 /.notdef put + dup 97 /.notdef put + dup 98 /.notdef put + dup 99 /.notdef put + dup 100 /.notdef put + dup 101 /.notdef put + dup 102 /.notdef put + dup 104 /.notdef put + dup 105 /.notdef put + dup 109 /.notdef put + dup 110 /.notdef put + dup 111 /.notdef put + dup 112 /.notdef put + dup 114 /.notdef put + dup 115 /.notdef put + dup 116 /.notdef put + dup 117 /.notdef put + dup 160 /space put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [/N98/ATKSOD+Arial-BoldMT 1 TZG + /N93 <~It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt~> 15 dict begin + /Sample exch def + currentdict end + [exch {begin + /_x0 exch def + /_tmp0 _x0 + dup 1 ge {pop 255} + {dup 0 le {pop 0} + {255 mul + } ifelse + } ifelse + def + /min0 _tmp0 cvi def + /max0 _tmp0 ceiling cvi def + /f0 + min0 max0 eq + {{min0 f1}} + {{ + [min0 f1 max0 f1 + 0 1 0 {dup 3 index exch get exch 2 index exch get + _tmp0 min0 max0 5 3 roll int + 3 1 roll} for pop pop] + }} ifelse + def + /f1 + {/prm0 exch def [ + 0 255 prm0 limit 8 mul -3 bitshift Sample exch get ]} def + /rnd {256 mul 0.5 add floor 256 div} def + f0 aload pop + dup 255 ge {pop 1.00787} + {dup 0 le {pop -1} + {2.00787 255 div mul 1 sub + } ifelse + } ifelse + -1 1 3 2 roll limit rnd + end + } bind aload pop] cvx readonly + /Function defineRes pop + + /N92 <~zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz~> 15 dict begin + /Sample exch def + currentdict end + [exch {begin + /_x0 exch def + /_tmp0 _x0 + dup 1 ge {pop 255} + {dup 0 le {pop 0} + {255 mul + } ifelse + } ifelse + def + /min0 _tmp0 cvi def + /max0 _tmp0 ceiling cvi def + /f0 + min0 max0 eq + {{min0 f1}} + {{ + [min0 f1 max0 f1 + 0 1 0 {dup 3 index exch get exch 2 index exch get + _tmp0 min0 max0 5 3 roll int + 3 1 roll} for pop pop] + }} ifelse + def + /f1 + {/prm0 exch def [ + 0 255 prm0 limit 8 mul -3 bitshift Sample exch get ]} def + /rnd {256 mul 0.5 add floor 256 div} def + f0 aload pop + dup 255 ge {pop 1} + {dup 0 le {pop 0} + {255 div + } ifelse + } ifelse + 0 1 3 2 roll limit rnd + end + } bind aload pop] cvx readonly + /Function defineRes pop + + /N100 <~It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt~> 15 dict begin + /Sample exch def + currentdict end + [exch {begin + /_x0 exch def + /_tmp0 _x0 + dup 1 ge {pop 255} + {dup 0 le {pop 0} + {255 mul + } ifelse + } ifelse + def + /min0 _tmp0 cvi def + /max0 _tmp0 ceiling cvi def + /f0 + min0 max0 eq + {{min0 f1}} + {{ + [min0 f1 max0 f1 + 0 1 0 {dup 3 index exch get exch 2 index exch get + _tmp0 min0 max0 5 3 roll int + 3 1 roll} for pop pop] + }} ifelse + def + /f1 + {/prm0 exch def [ + 0 255 prm0 limit 8 mul -3 bitshift Sample exch get ]} def + /rnd {256 mul 0.5 add floor 256 div} def + f0 aload pop + dup 255 ge {pop 1.00787} + {dup 0 le {pop -1} + {2.00787 255 div mul 1 sub + } ifelse + } ifelse + -1 1 3 2 roll limit rnd + end + } bind aload pop] cvx readonly + /Function defineRes pop + + /N99 <~zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz~> 15 dict begin + /Sample exch def + currentdict end + [exch {begin + /_x0 exch def + /_tmp0 _x0 + dup 1 ge {pop 255} + {dup 0 le {pop 0} + {255 mul + } ifelse + } ifelse + def + /min0 _tmp0 cvi def + /max0 _tmp0 ceiling cvi def + /f0 + min0 max0 eq + {{min0 f1}} + {{ + [min0 f1 max0 f1 + 0 1 0 {dup 3 index exch get exch 2 index exch get + _tmp0 min0 max0 5 3 roll int + 3 1 roll} for pop pop] + }} ifelse + def + /f1 + {/prm0 exch def [ + 0 255 prm0 limit 8 mul -3 bitshift Sample exch get ]} def + /rnd {256 mul 0.5 add floor 256 div} def + f0 aload pop + dup 255 ge {pop 1} + {dup 0 le {pop 0} + {255 div + } ifelse + } ifelse + 0 1 3 2 roll limit rnd + end + } bind aload pop] cvx readonly + /Function defineRes pop + + /N103 <~It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt~> 15 dict begin + /Sample exch def + currentdict end + [exch {begin + /_x0 exch def + /_tmp0 _x0 + dup 1 ge {pop 255} + {dup 0 le {pop 0} + {255 mul + } ifelse + } ifelse + def + /min0 _tmp0 cvi def + /max0 _tmp0 ceiling cvi def + /f0 + min0 max0 eq + {{min0 f1}} + {{ + [min0 f1 max0 f1 + 0 1 0 {dup 3 index exch get exch 2 index exch get + _tmp0 min0 max0 5 3 roll int + 3 1 roll} for pop pop] + }} ifelse + def + /f1 + {/prm0 exch def [ + 0 255 prm0 limit 8 mul -3 bitshift Sample exch get ]} def + /rnd {256 mul 0.5 add floor 256 div} def + f0 aload pop + dup 255 ge {pop 1.00787} + {dup 0 le {pop -1} + {2.00787 255 div mul 1 sub + } ifelse + } ifelse + -1 1 3 2 roll limit rnd + end + } bind aload pop] cvx readonly + /Function defineRes pop + + /N102 <~zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz~> 15 dict begin + /Sample exch def + currentdict end + [exch {begin + /_x0 exch def + /_tmp0 _x0 + dup 1 ge {pop 255} + {dup 0 le {pop 0} + {255 mul + } ifelse + } ifelse + def + /min0 _tmp0 cvi def + /max0 _tmp0 ceiling cvi def + /f0 + min0 max0 eq + {{min0 f1}} + {{ + [min0 f1 max0 f1 + 0 1 0 {dup 3 index exch get exch 2 index exch get + _tmp0 min0 max0 5 3 roll int + 3 1 roll} for pop pop] + }} ifelse + def + /f1 + {/prm0 exch def [ + 0 255 prm0 limit 8 mul -3 bitshift Sample exch get ]} def + /rnd {256 mul 0.5 add floor 256 div} def + f0 aload pop + dup 255 ge {pop 1} + {dup 0 le {pop 0} + {255 div + } ifelse + } ifelse + 0 1 3 2 roll limit rnd + end + } bind aload pop] cvx readonly + /Function defineRes pop + + /N106 <~It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt~> 15 dict begin + /Sample exch def + currentdict end + [exch {begin + /_x0 exch def + /_tmp0 _x0 + dup 1 ge {pop 255} + {dup 0 le {pop 0} + {255 mul + } ifelse + } ifelse + def + /min0 _tmp0 cvi def + /max0 _tmp0 ceiling cvi def + /f0 + min0 max0 eq + {{min0 f1}} + {{ + [min0 f1 max0 f1 + 0 1 0 {dup 3 index exch get exch 2 index exch get + _tmp0 min0 max0 5 3 roll int + 3 1 roll} for pop pop] + }} ifelse + def + /f1 + {/prm0 exch def [ + 0 255 prm0 limit 8 mul -3 bitshift Sample exch get ]} def + /rnd {256 mul 0.5 add floor 256 div} def + f0 aload pop + dup 255 ge {pop 1.00787} + {dup 0 le {pop -1} + {2.00787 255 div mul 1 sub + } ifelse + } ifelse + -1 1 3 2 roll limit rnd + end + } bind aload pop] cvx readonly + /Function defineRes pop + + /N105 <~zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz~> 15 dict begin + /Sample exch def + currentdict end + [exch {begin + /_x0 exch def + /_tmp0 _x0 + dup 1 ge {pop 255} + {dup 0 le {pop 0} + {255 mul + } ifelse + } ifelse + def + /min0 _tmp0 cvi def + /max0 _tmp0 ceiling cvi def + /f0 + min0 max0 eq + {{min0 f1}} + {{ + [min0 f1 max0 f1 + 0 1 0 {dup 3 index exch get exch 2 index exch get + _tmp0 min0 max0 5 3 roll int + 3 1 roll} for pop pop] + }} ifelse + def + /f1 + {/prm0 exch def [ + 0 255 prm0 limit 8 mul -3 bitshift Sample exch get ]} def + /rnd {256 mul 0.5 add floor 256 div} def + f0 aload pop + dup 255 ge {pop 1} + {dup 0 le {pop 0} + {255 div + } ifelse + } ifelse + 0 1 3 2 roll limit rnd + end + } bind aload pop] cvx readonly + /Function defineRes pop + + /N109 <~It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt~> 15 dict begin + /Sample exch def + currentdict end + [exch {begin + /_x0 exch def + /_tmp0 _x0 + dup 1 ge {pop 255} + {dup 0 le {pop 0} + {255 mul + } ifelse + } ifelse + def + /min0 _tmp0 cvi def + /max0 _tmp0 ceiling cvi def + /f0 + min0 max0 eq + {{min0 f1}} + {{ + [min0 f1 max0 f1 + 0 1 0 {dup 3 index exch get exch 2 index exch get + _tmp0 min0 max0 5 3 roll int + 3 1 roll} for pop pop] + }} ifelse + def + /f1 + {/prm0 exch def [ + 0 255 prm0 limit 8 mul -3 bitshift Sample exch get ]} def + /rnd {256 mul 0.5 add floor 256 div} def + f0 aload pop + dup 255 ge {pop 1.00787} + {dup 0 le {pop -1} + {2.00787 255 div mul 1 sub + } ifelse + } ifelse + -1 1 3 2 roll limit rnd + end + } bind aload pop] cvx readonly + /Function defineRes pop + + /N108 <~zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz~> 15 dict begin + /Sample exch def + currentdict end + [exch {begin + /_x0 exch def + /_tmp0 _x0 + dup 1 ge {pop 255} + {dup 0 le {pop 0} + {255 mul + } ifelse + } ifelse + def + /min0 _tmp0 cvi def + /max0 _tmp0 ceiling cvi def + /f0 + min0 max0 eq + {{min0 f1}} + {{ + [min0 f1 max0 f1 + 0 1 0 {dup 3 index exch get exch 2 index exch get + _tmp0 min0 max0 5 3 roll int + 3 1 roll} for pop pop] + }} ifelse + def + /f1 + {/prm0 exch def [ + 0 255 prm0 limit 8 mul -3 bitshift Sample exch get ]} def + /rnd {256 mul 0.5 add floor 256 div} def + f0 aload pop + dup 255 ge {pop 1} + {dup 0 le {pop 0} + {255 div + } ifelse + } ifelse + 0 1 3 2 roll limit rnd + end + } bind aload pop] cvx readonly + /Function defineRes pop + + /N112 <~It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt~> 15 dict begin + /Sample exch def + currentdict end + [exch {begin + /_x0 exch def + /_tmp0 _x0 + dup 1 ge {pop 255} + {dup 0 le {pop 0} + {255 mul + } ifelse + } ifelse + def + /min0 _tmp0 cvi def + /max0 _tmp0 ceiling cvi def + /f0 + min0 max0 eq + {{min0 f1}} + {{ + [min0 f1 max0 f1 + 0 1 0 {dup 3 index exch get exch 2 index exch get + _tmp0 min0 max0 5 3 roll int + 3 1 roll} for pop pop] + }} ifelse + def + /f1 + {/prm0 exch def [ + 0 255 prm0 limit 8 mul -3 bitshift Sample exch get ]} def + /rnd {256 mul 0.5 add floor 256 div} def + f0 aload pop + dup 255 ge {pop 1.00787} + {dup 0 le {pop -1} + {2.00787 255 div mul 1 sub + } ifelse + } ifelse + -1 1 3 2 roll limit rnd + end + } bind aload pop] cvx readonly + /Function defineRes pop + + /N111 <~zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz~> 15 dict begin + /Sample exch def + currentdict end + [exch {begin + /_x0 exch def + /_tmp0 _x0 + dup 1 ge {pop 255} + {dup 0 le {pop 0} + {255 mul + } ifelse + } ifelse + def + /min0 _tmp0 cvi def + /max0 _tmp0 ceiling cvi def + /f0 + min0 max0 eq + {{min0 f1}} + {{ + [min0 f1 max0 f1 + 0 1 0 {dup 3 index exch get exch 2 index exch get + _tmp0 min0 max0 5 3 roll int + 3 1 roll} for pop pop] + }} ifelse + def + /f1 + {/prm0 exch def [ + 0 255 prm0 limit 8 mul -3 bitshift Sample exch get ]} def + /rnd {256 mul 0.5 add floor 256 div} def + f0 aload pop + dup 255 ge {pop 1} + {dup 0 le {pop 0} + {255 div + } ifelse + } ifelse + 0 1 3 2 roll limit rnd + end + } bind aload pop] cvx readonly + /Function defineRes pop + + /N115 <~It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt~> 15 dict begin + /Sample exch def + currentdict end + [exch {begin + /_x0 exch def + /_tmp0 _x0 + dup 1 ge {pop 255} + {dup 0 le {pop 0} + {255 mul + } ifelse + } ifelse + def + /min0 _tmp0 cvi def + /max0 _tmp0 ceiling cvi def + /f0 + min0 max0 eq + {{min0 f1}} + {{ + [min0 f1 max0 f1 + 0 1 0 {dup 3 index exch get exch 2 index exch get + _tmp0 min0 max0 5 3 roll int + 3 1 roll} for pop pop] + }} ifelse + def + /f1 + {/prm0 exch def [ + 0 255 prm0 limit 8 mul -3 bitshift Sample exch get ]} def + /rnd {256 mul 0.5 add floor 256 div} def + f0 aload pop + dup 255 ge {pop 1.00787} + {dup 0 le {pop -1} + {2.00787 255 div mul 1 sub + } ifelse + } ifelse + -1 1 3 2 roll limit rnd + end + } bind aload pop] cvx readonly + /Function defineRes pop + + /N114 <~zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz~> 15 dict begin + /Sample exch def + currentdict end + [exch {begin + /_x0 exch def + /_tmp0 _x0 + dup 1 ge {pop 255} + {dup 0 le {pop 0} + {255 mul + } ifelse + } ifelse + def + /min0 _tmp0 cvi def + /max0 _tmp0 ceiling cvi def + /f0 + min0 max0 eq + {{min0 f1}} + {{ + [min0 f1 max0 f1 + 0 1 0 {dup 3 index exch get exch 2 index exch get + _tmp0 min0 max0 5 3 roll int + 3 1 roll} for pop pop] + }} ifelse + def + /f1 + {/prm0 exch def [ + 0 255 prm0 limit 8 mul -3 bitshift Sample exch get ]} def + /rnd {256 mul 0.5 add floor 256 div} def + f0 aload pop + dup 255 ge {pop 1} + {dup 0 le {pop 0} + {255 div + } ifelse + } ifelse + 0 1 3 2 roll limit rnd + end + } bind aload pop] cvx readonly + /Function defineRes pop + + /N118 <~It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt + It)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rtIt)rt~> 15 dict begin + /Sample exch def + currentdict end + [exch {begin + /_x0 exch def + /_tmp0 _x0 + dup 1 ge {pop 255} + {dup 0 le {pop 0} + {255 mul + } ifelse + } ifelse + def + /min0 _tmp0 cvi def + /max0 _tmp0 ceiling cvi def + /f0 + min0 max0 eq + {{min0 f1}} + {{ + [min0 f1 max0 f1 + 0 1 0 {dup 3 index exch get exch 2 index exch get + _tmp0 min0 max0 5 3 roll int + 3 1 roll} for pop pop] + }} ifelse + def + /f1 + {/prm0 exch def [ + 0 255 prm0 limit 8 mul -3 bitshift Sample exch get ]} def + /rnd {256 mul 0.5 add floor 256 div} def + f0 aload pop + dup 255 ge {pop 1.00787} + {dup 0 le {pop -1} + {2.00787 255 div mul 1 sub + } ifelse + } ifelse + -1 1 3 2 roll limit rnd + end + } bind aload pop] cvx readonly + /Function defineRes pop + + /N117 <~zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz~> 15 dict begin + /Sample exch def + currentdict end + [exch {begin + /_x0 exch def + /_tmp0 _x0 + dup 1 ge {pop 255} + {dup 0 le {pop 0} + {255 mul + } ifelse + } ifelse + def + /min0 _tmp0 cvi def + /max0 _tmp0 ceiling cvi def + /f0 + min0 max0 eq + {{min0 f1}} + {{ + [min0 f1 max0 f1 + 0 1 0 {dup 3 index exch get exch 2 index exch get + _tmp0 min0 max0 5 3 roll int + 3 1 roll} for pop pop] + }} ifelse + def + /f1 + {/prm0 exch def [ + 0 255 prm0 limit 8 mul -3 bitshift Sample exch get ]} def + /rnd {256 mul 0.5 add floor 256 div} def + f0 aload pop + dup 255 ge {pop 1} + {dup 0 le {pop 0} + {255 div + } ifelse + } ifelse + 0 1 3 2 roll limit rnd + end + } bind aload pop] cvx readonly + /Function defineRes pop + + %%EndPageSetup + 0 0 612 792 re + W + n + q + 0.0999908 0 0 0.0999908 0 0 cm + {} settransfer + q + n + 932.273 6180.88 m + 2659.62 6180.88 l + 2659.62 6181.51 l + 932.273 6181.51 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 932.273 6181.51 m + 2659.62 6181.51 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 932.273 6373.22 m + 2659.62 6373.22 l + 2659.62 6373.86 l + 932.273 6373.86 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 932.273 6373.86 m + 2659.62 6373.86 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 932.273 6564.94 m + 2659.62 6564.94 l + 2659.62 6565.57 l + 932.273 6565.57 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 932.273 6565.57 m + 2659.62 6565.57 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 932.273 7336.23 m + 932.273 5987.26 l + 2659.62 5987.26 l + 2659.62 7336.23 l + 2231.26 6983.8 m + 2231.26 6581.39 l + 2609 6581.39 l + 2609 6983.8 l + h + eoclip + n + 0.632645 w + 1 J + 1 j + n + 932.273 6757.92 m + 2659.62 6757.92 l + [/DeviceRGB] cs 0 0 0 sc + + S + n + 932.273 6949.64 m + 2659.62 6949.64 l + S + Q + q + n + 932.273 7141.36 m + 2659.62 7141.36 l + 2659.62 7141.99 l + 932.273 7141.99 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 932.273 7141.99 m + 2659.62 7141.99 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 932.273 7333.07 m + 2659.62 7333.07 l + 2659.62 7333.7 l + 932.273 7333.7 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 932.273 7333.7 m + 2659.62 7333.7 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 670.359 7381.79 m + 670.359 5770.87 l + 2746.34 5770.87 l + 2746.34 7381.79 l + 2231.3 6983.8 m + 2231.3 6581.39 l + 2609.04 6581.39 l + 2609.04 6983.8 l + h + eoclip + n + 2.53084 w + 1 j + n + 932.309 5989.79 1727.34 1343.91 re + [/DeviceRGB] cs 0.501907 0.501907 0.501907 sc + + S + Q + q + n + 667.793 5768.34 m + 2755.79 5768.34 l + 2755.79 7381.79 l + 667.793 7381.79 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 932.273 7333.7 m + 932.273 5989.79 l + [/DeviceRGB] cs 0 0 0 sc + + S + n + 918.984 5989.79 m + 932.273 5989.79 l + S + n + 918.984 6181.51 m + 932.273 6181.51 l + S + n + 918.984 6373.86 m + 932.273 6373.86 l + S + n + 918.984 6565.57 m + 932.273 6565.57 l + S + n + 918.984 6757.92 m + 932.273 6757.92 l + S + n + 918.984 6949.64 m + 932.273 6949.64 l + S + n + 918.984 7141.99 m + 932.273 7141.99 l + S + n + 918.984 7333.7 m + 932.273 7333.7 l + S + n + 932.273 5989.79 m + 2659.62 5989.79 l + S + n + 932.273 5971.44 m + 932.273 5989.79 l + S + n + 1277.74 5971.44 m + 1277.74 5989.79 l + S + n + 1623.21 5971.44 m + 1623.21 5989.79 l + S + n + 1968.68 5971.44 m + 1968.68 5989.79 l + S + n + 2314.15 5971.44 m + 2314.15 5989.79 l + S + n + 2659.62 5971.44 m + 2659.62 5989.79 l + S + 2.53084 w + n + 1001.27 6547.86 m + 1015.2 6513.05 l + 0 0 0.501907 sc + S + n + 1015.2 6513.05 m + 1029.12 6513.05 l + S + n + 1029.12 6513.05 m + 1043.04 6514.95 l + S + n + 1043.04 6514.95 m + 1056.96 6511.16 l + S + n + 1056.96 6511.16 m + 1070.24 6507.36 l + S + n + 1070.24 6507.36 m + 1084.16 6507.36 l + S + n + 1084.16 6507.36 m + 1098.08 6506.1 l + S + n + 1098.08 6506.1 m + 1112 6510.52 l + S + n + 1112 6510.52 m + 1125.92 6505.46 l + S + n + 1125.92 6505.46 m + 1139.84 6507.99 l + S + n + 1139.84 6507.99 m + 1153.13 6504.2 l + S + n + 1153.13 6504.2 m + 1167.05 6506.1 l + S + n + 1167.05 6506.1 m + 1180.97 6503.57 l + S + n + 1180.97 6503.57 m + 1194.89 6510.52 l + S + n + 1194.89 6510.52 m + 1208.81 6505.46 l + S + n + 1208.81 6505.46 m + 1222.73 6505.46 l + S + n + 1222.73 6505.46 m + 1236.02 6507.99 l + S + n + 1236.02 6507.99 m + 1249.94 6505.46 l + S + n + 1249.94 6505.46 m + 1263.86 6507.36 l + S + n + 1263.86 6507.36 m + 1277.78 6506.1 l + S + n + 1277.78 6506.1 m + 1291.7 6532.04 l + S + n + 1291.7 6532.04 m + 1305.62 6621.25 l + S + n + 1305.62 6621.25 m + 1319.54 6709.2 l + S + n + 1319.54 6709.2 m + 1332.82 6793.99 l + S + n + 1332.82 6793.99 m + 1346.75 6867.38 l + S + n + 1346.75 6867.38 m + 1360.66 6952.8 l + S + n + 1360.66 6952.8 m + 1374.59 7014.81 l + S + n + 1374.59 7014.81 m + 1388.5 7073.65 l + S + n + 1388.5 7073.65 m + 1402.43 7158.44 l + S + n + 1402.43 7158.44 m + 1415.71 7255.25 l + S + n + 1001.27 6330.83 m + 1015.2 6339.05 l + 1 0 1 sc + S + n + 1015.2 6339.05 m + 1029.12 6327.04 l + S + n + 1029.12 6327.04 m + 1043.04 6335.89 l + S + n + 1043.04 6335.89 m + 1056.96 6347.28 l + S + n + 1056.96 6347.28 m + 1070.24 6363.73 l + S + n + 1070.24 6363.73 m + 1084.16 6359.94 l + S + n + 1084.16 6359.94 m + 1098.08 6363.73 l + S + n + 1098.08 6363.73 m + 1112 6368.16 l + S + n + 1112 6368.16 m + 1125.92 6367.53 l + S + n + 1125.92 6367.53 m + 1139.84 6370.06 l + S + n + 1139.84 6370.06 m + 1153.13 6378.92 l + S + n + 1153.13 6378.92 m + 1167.05 6382.08 l + S + n + 1167.05 6382.08 m + 1180.97 6388.41 l + S + n + 1180.97 6388.41 m + 1194.89 6383.35 l + S + n + 1194.89 6383.35 m + 1208.81 6385.25 l + S + n + 1208.81 6385.25 m + 1222.73 6383.98 l + S + n + 1222.73 6383.98 m + 1236.02 6390.31 l + S + n + 1236.02 6390.31 m + 1249.94 6392.84 l + S + n + 1249.94 6392.84 m + 1263.86 6390.94 l + S + n + 1263.86 6390.94 m + 1277.78 6390.94 l + S + n + 1277.78 6390.94 m + 1291.7 6389.04 l + S + n + 1291.7 6389.04 m + 1305.62 6392.2 l + S + n + 1305.62 6392.2 m + 1319.54 6398.53 l + S + n + 1319.54 6398.53 m + 1332.82 6394.1 l + S + n + 1332.82 6394.1 m + 1346.75 6394.73 l + S + n + 1346.75 6394.73 m + 1360.66 6392.84 l + S + n + 1360.66 6392.84 m + 1374.59 6399.16 l + S + n + 1374.59 6399.16 m + 1388.5 6398.53 l + S + n + 1388.5 6398.53 m + 1402.43 6402.33 l + S + n + 1402.43 6402.33 m + 1415.71 6413.72 l + S + n + 1415.71 6413.72 m + 1429.63 6416.88 l + S + n + 1429.63 6416.88 m + 1443.55 6430.17 l + S + n + 1443.55 6430.17 m + 1457.47 6437.76 l + S + n + 1457.47 6437.76 m + 1471.39 6457.38 l + S + n + 1471.39 6457.38 m + 1485.31 6476.36 l + S + n + 1485.31 6476.36 m + 1498.6 6482.05 l + S + n + 1498.6 6482.05 m + 1512.52 6502.3 l + S + n + 1512.52 6502.3 m + 1526.44 6519.38 l + S + n + 1526.44 6519.38 m + 1540.36 6540.89 l + S + n + 1540.36 6540.89 m + 1554.28 6553.55 l + S + n + 1554.28 6553.55 m + 1568.2 6570.63 l + S + n + 1568.2 6570.63 m + 1581.48 6588.98 l + S + n + 1581.48 6588.98 m + 1595.41 6605.43 l + S + n + 1595.41 6605.43 m + 1609.32 6622.52 l + S + n + 1609.32 6622.52 m + 1623.25 6666.18 l + S + n + 1623.25 6666.18 m + 1658.05 6697.18 l + S + n + 1658.05 6697.18 m + 1692.21 6711.1 l + S + n + 1692.21 6711.1 m + 1727.01 6786.39 l + S + n + 1727.01 6786.39 m + 1761.18 6787.66 l + S + n + 1761.18 6787.66 m + 1795.98 6848.4 l + S + n + 1795.98 6848.4 m + 1830.78 6871.81 l + S + n + 1830.78 6871.81 m + 1864.95 6902.82 l + S + n + 1864.95 6902.82 m + 1899.75 6923.06 l + S + n + 1899.75 6923.06 m + 1933.91 6952.17 l + S + n + 1933.91 6952.17 m + 1968.71 6967.99 l + S + n + 1968.71 6967.99 m + 2003.52 7002.15 l + S + n + 2003.52 7002.15 m + 2037.68 7036.32 l + S + n + 2037.68 7036.32 m + 2072.48 7040.12 l + S + n + 2072.48 7040.12 m + 2106.65 7055.94 l + S + n + 2106.65 7055.94 m + 2141.45 7128.7 l + S + n + 2141.45 7128.7 m + 2176.25 7097.7 l + S + n + 2176.25 7097.7 m + 2210.42 7123 l + S + n + 2210.42 7123 m + 2245.22 7129.33 l + S + n + 2245.22 7129.33 m + 2279.38 7155.91 l + S + n + 2279.38 7155.91 m + 2314.18 7161.6 l + S + n + 2314.18 7161.6 m + 2348.98 7184.38 l + S + n + 2348.98 7184.38 m + 2383.15 7187.54 l + S + n + 2383.15 7187.54 m + 2417.95 7208.42 l + S + n + 2417.95 7208.42 m + 2452.12 7206.52 l + S + n + 2452.12 7206.52 m + 2486.92 7257.14 l + S + n + 1001.27 6198.59 m + 1015.2 6189.73 l + 0 0 0 sc + S + n + 1015.2 6189.73 m + 1029.12 6197.32 l + S + n + 1029.12 6197.32 m + 1043.04 6206.18 l + S + n + 1043.04 6206.18 m + 1056.96 6215.04 l + S + n + 1056.96 6215.04 m + 1070.24 6222.63 l + S + n + 1070.24 6222.63 m + 1084.16 6230.23 l + S + n + 1084.16 6230.23 m + 1098.08 6234.66 l + S + n + 1098.08 6234.66 m + 1112 6239.09 l + S + n + 1112 6239.09 m + 1125.92 6243.52 l + S + n + 1125.92 6243.52 m + 1139.84 6247.31 l + S + n + 1139.84 6247.31 m + 1153.13 6250.47 l + S + n + 1153.13 6250.47 m + 1167.05 6253 l + S + n + 1167.05 6253 m + 1180.97 6254.9 l + S + n + 1180.97 6254.9 m + 1194.89 6256.8 l + S + n + 1194.89 6256.8 m + 1208.81 6258.7 l + S + n + 1208.81 6258.7 m + 1222.73 6259.96 l + S + n + 1222.73 6259.96 m + 1236.02 6261.86 l + S + n + 1236.02 6261.86 m + 1249.94 6262.5 l + S + n + 1249.94 6262.5 m + 1263.86 6263.76 l + S + n + 1263.86 6263.76 m + 1277.78 6265.03 l + S + n + 1277.78 6265.03 m + 1291.7 6265.66 l + S + n + 1291.7 6265.66 m + 1305.62 6266.29 l + S + n + 1305.62 6266.29 m + 1319.54 6266.93 l + S + n + 1319.54 6266.93 m + 1332.82 6267.56 l + S + n + 1332.82 6267.56 m + 1346.75 6268.82 l + S + n + 1346.75 6268.82 m + 1360.66 6268.82 l + S + n + 1360.66 6268.82 m + 1374.59 6268.82 l + S + n + 1374.59 6268.82 m + 1388.5 6269.46 l + S + n + 1388.5 6269.46 m + 1402.43 6270.09 l + S + n + 1402.43 6270.09 m + 1415.71 6270.09 l + S + n + 1415.71 6270.09 m + 1429.63 6270.72 l + S + n + 1429.63 6270.72 m + 1443.55 6270.72 l + S + n + 1443.55 6270.72 m + 1457.47 6270.72 l + S + n + 1457.47 6270.72 m + 1471.39 6271.36 l + S + n + 1471.39 6271.36 m + 1485.31 6271.99 l + S + n + 1485.31 6271.99 m + 1498.6 6271.36 l + S + n + 1498.6 6271.36 m + 1512.52 6271.36 l + S + n + 1512.52 6271.36 m + 1526.44 6271.36 l + S + n + 1526.44 6271.36 m + 1540.36 6273.89 l + S + n + 1540.36 6273.89 m + 1554.28 6271.99 l + S + n + 1554.28 6271.99 m + 1568.2 6273.25 l + S + n + 1568.2 6273.25 m + 1581.48 6280.21 l + S + n + 1581.48 6280.21 m + 1595.41 6273.25 l + S + n + 1595.41 6273.25 m + 1609.32 6273.89 l + S + n + 1609.32 6273.89 m + 1623.25 6273.89 l + S + n + 1623.25 6273.89 m + 1658.05 6273.89 l + S + n + 1658.05 6273.89 m + 1692.21 6273.89 l + S + n + 1692.21 6273.89 m + 1727.01 6273.25 l + S + n + 1727.01 6273.25 m + 1761.18 6274.52 l + S + n + 1761.18 6274.52 m + 1795.98 6273.89 l + S + n + 1795.98 6273.89 m + 1830.78 6273.89 l + S + n + 1830.78 6273.89 m + 1864.95 6275.15 l + S + n + 1864.95 6275.15 m + 1899.75 6277.68 l + S + n + 1899.75 6277.68 m + 1933.91 6280.21 l + S + n + 1933.91 6280.21 m + 1968.71 6287.8 l + S + n + 1968.71 6287.8 m + 2003.52 6295.4 l + S + n + 2003.52 6295.4 m + 2037.68 6307.42 l + S + n + 2037.68 6307.42 m + 2072.48 6314.38 l + S + n + 2072.48 6314.38 m + 2106.65 6322.61 l + S + n + 2106.65 6322.61 m + 2141.45 6342.85 l + S + n + 2141.45 6342.85 m + 2176.25 6345.38 l + S + n + 2176.25 6345.38 m + 2210.42 6356.77 l + S + n + 2210.42 6356.77 m + 2245.22 6367.53 l + S + n + 2245.22 6367.53 m + 2279.38 6378.92 l + S + n + 2279.38 6378.92 m + 2314.18 6392.2 l + S + n + 2314.18 6392.2 m + 2348.98 6403.59 l + S + n + 2348.98 6403.59 m + 2383.15 6414.35 l + S + n + 2383.15 6414.35 m + 2417.95 6425.11 l + S + n + 2417.95 6425.11 m + 2452.12 6434.6 l + S + n + 2452.12 6434.6 m + 2486.92 6444.72 l + S + n + 2486.92 6444.72 m + 2521.72 6454.84 l + S + n + 2521.72 6454.84 m + 2555.89 6460.54 l + S + n + 2555.89 6460.54 m + 2590.69 6475.09 l + S + n + 2590.69 6475.09 m + 2624.85 6479.52 l + S + n + 1001.27 6322.61 m + 1015.2 6378.29 l + 1 0.399857 0 sc + S + n + 1015.2 6378.29 m + 1029.12 6377.65 l + S + n + 1029.12 6377.65 m + 1043.04 6397.27 l + S + n + 1043.04 6397.27 m + 1056.96 6425.11 l + S + n + 1056.96 6425.11 m + 1070.24 6445.99 l + S + n + 1070.24 6445.99 m + 1084.16 6459.27 l + S + n + 1084.16 6459.27 m + 1098.08 6442.82 l + S + n + 1098.08 6442.82 m + 1112 6447.89 l + S + n + 1112 6447.89 m + 1125.92 6445.99 l + S + n + 1125.92 6445.99 m + 1139.84 6456.11 l + S + n + 1139.84 6456.11 m + 1153.13 6454.21 l + S + n + 1153.13 6454.21 m + 1167.05 6456.74 l + S + n + 1167.05 6456.74 m + 1180.97 6453.58 l + S + n + 1180.97 6453.58 m + 1194.89 6456.11 l + S + n + 1194.89 6456.11 m + 1208.81 6459.27 l + S + n + 1208.81 6459.27 m + 1222.73 6468.13 l + S + n + 1222.73 6468.13 m + 1236.02 6465.6 l + S + n + 1236.02 6465.6 m + 1249.94 6459.27 l + S + n + 1249.94 6459.27 m + 1263.86 6465.6 l + S + n + 1263.86 6465.6 m + 1277.78 6466.23 l + S + n + 1277.78 6466.23 m + 1291.7 6464.97 l + S + n + 1291.7 6464.97 m + 1305.62 6468.13 l + S + n + 1305.62 6468.13 m + 1319.54 6467.5 l + S + n + 1319.54 6467.5 m + 1332.82 6463.7 l + S + n + 1332.82 6463.7 m + 1346.75 6461.8 l + S + n + 1346.75 6461.8 m + 1360.66 6464.97 l + S + n + 1360.66 6464.97 m + 1374.59 6468.77 l + S + n + 1374.59 6468.77 m + 1388.5 6466.87 l + S + n + 1388.5 6466.87 m + 1402.43 6472.56 l + S + n + 1402.43 6472.56 m + 1415.71 6475.73 l + S + n + 1415.71 6475.73 m + 1429.63 6472.56 l + S + n + 1429.63 6472.56 m + 1443.55 6485.85 l + S + n + 1443.55 6485.85 m + 1457.47 6470.03 l + S + n + 1457.47 6470.03 m + 1471.39 6471.3 l + S + n + 1471.39 6471.3 m + 1485.31 6475.09 l + S + n + 1485.31 6475.09 m + 1498.6 6473.83 l + S + n + 1498.6 6473.83 m + 1512.52 6479.52 l + S + n + 1512.52 6479.52 m + 1526.44 6477.62 l + S + n + 1526.44 6477.62 m + 1540.36 6475.09 l + S + n + 1540.36 6475.09 m + 1554.28 6482.05 l + S + n + 1554.28 6482.05 m + 1568.2 6478.26 l + S + n + 1568.2 6478.26 m + 1581.48 6480.15 l + S + n + 1581.48 6480.15 m + 1595.41 6479.52 l + S + n + 1595.41 6479.52 m + 1609.32 6488.38 l + S + n + 1623.25 6489.01 m + 1637.17 6530.14 l + S + n + 1637.17 6530.14 m + 1651.09 6525.71 l + S + n + 1651.09 6525.71 m + 1665.01 6666.81 l + S + n + 1665.01 6666.81 m + 1678.29 6694.02 l + S + n + 1678.29 6694.02 m + 1692.21 6758.55 l + S + n + 1692.21 6758.55 m + 1706.13 6727.55 l + S + n + 1706.13 6727.55 m + 1720.05 6742.73 l + S + n + 1720.05 6742.73 m + 1733.97 6863.59 l + S + n + 1733.97 6863.59 m + 1747.89 6929.39 l + S + n + 1747.89 6929.39 m + 1761.18 6988.87 l + S + n + 1761.18 6988.87 m + 1775.1 7005.32 l + S + n + 1775.1 7005.32 m + 1789.02 7026.2 l + S + n + 1789.02 7026.2 m + 1802.94 7105.92 l + S + n + 1802.94 7105.92 m + 1816.86 7156.54 l + S + n + 1816.86 7156.54 m + 1830.78 7167.93 l + S + n + 1830.78 7167.93 m + 1844.07 7203.99 l + S + n + 1844.07 7203.99 m + 1857.99 7239.43 l + S + n + 1001.27 6201.75 m + 1015.2 6192.89 l + 0.501907 0 0.501907 sc + S + n + 1015.2 6192.89 m + 1029.12 6185.94 l + S + n + 1029.12 6185.94 m + 1043.04 6207.45 l + S + n + 1043.04 6207.45 m + 1056.96 6213.78 l + S + n + 1056.96 6213.78 m + 1070.24 6218.2 l + S + n + 1070.24 6218.2 m + 1084.16 6225.8 l + S + n + 1084.16 6225.8 m + 1098.08 6233.39 l + S + n + 1098.08 6233.39 m + 1112 6239.09 l + S + n + 1112 6239.09 m + 1125.92 6244.78 l + S + n + 1125.92 6244.78 m + 1139.84 6246.05 l + S + n + 1139.84 6246.05 m + 1153.13 6253.64 l + S + n + 1153.13 6253.64 m + 1167.05 6253.64 l + S + n + 1167.05 6253.64 m + 1180.97 6259.33 l + S + n + 1180.97 6259.33 m + 1194.89 6257.43 l + S + n + 1194.89 6257.43 m + 1208.81 6259.33 l + S + n + 1208.81 6259.33 m + 1222.73 6261.23 l + S + n + 1222.73 6261.23 m + 1236.02 6263.13 l + S + n + 1236.02 6263.13 m + 1249.94 6264.39 l + S + n + 1249.94 6264.39 m + 1263.86 6266.29 l + S + n + 1263.86 6266.29 m + 1277.78 6266.29 l + S + n + 1277.78 6266.29 m + 1291.7 6268.82 l + S + n + 1291.7 6268.82 m + 1305.62 6269.46 l + S + n + 1305.62 6269.46 m + 1319.54 6268.82 l + S + n + 1319.54 6268.82 m + 1332.82 6269.46 l + S + n + 1332.82 6269.46 m + 1346.75 6272.62 l + S + n + 1346.75 6272.62 m + 1360.66 6271.99 l + S + n + 1360.66 6271.99 m + 1374.59 6272.62 l + S + n + 1374.59 6272.62 m + 1388.5 6273.89 l + S + n + 1388.5 6273.89 m + 1402.43 6273.25 l + S + n + 1402.43 6273.25 m + 1415.71 6274.52 l + S + n + 1415.71 6274.52 m + 1429.63 6274.52 l + S + n + 1429.63 6274.52 m + 1443.55 6274.52 l + S + n + 1443.55 6274.52 m + 1457.47 6274.52 l + S + n + 1457.47 6274.52 m + 1471.39 6280.21 l + S + n + 1471.39 6280.21 m + 1485.31 6277.68 l + S + n + 1485.31 6277.68 m + 1498.6 6277.68 l + S + n + 1498.6 6277.68 m + 1512.52 6275.78 l + S + n + 1512.52 6275.78 m + 1526.44 6278.95 l + S + n + 1526.44 6278.95 m + 1540.36 6274.52 l + S + n + 1540.36 6274.52 m + 1554.28 6278.31 l + S + n + 1554.28 6278.31 m + 1568.2 6275.78 l + S + n + 1568.2 6275.78 m + 1581.48 6278.31 l + S + n + 1581.48 6278.31 m + 1595.41 6275.15 l + S + n + 1595.41 6275.15 m + 1609.32 6280.84 l + S + n + 1609.32 6280.84 m + 1623.25 6280.21 l + S + n + 1623.25 6280.21 m + 1658.05 6280.84 l + S + n + 1658.05 6280.84 m + 1692.21 6277.68 l + S + n + 1692.21 6277.68 m + 1727.01 6284.64 l + S + n + 1727.01 6284.64 m + 1761.18 6286.54 l + S + n + 1761.18 6286.54 m + 1795.98 6287.17 l + S + n + 1795.98 6287.17 m + 1830.78 6287.17 l + S + n + 1830.78 6287.17 m + 1864.95 6286.54 l + S + n + 1864.95 6286.54 m + 1899.75 6283.38 l + S + n + 1899.75 6283.38 m + 1933.91 6294.77 l + S + n + 1933.91 6294.77 m + 1968.71 6296.66 l + S + n + 1968.71 6296.66 m + 2003.52 6308.05 l + S + n + 2003.52 6308.05 m + 2037.68 6310.58 l + S + n + 2037.68 6310.58 m + 2072.48 6323.87 l + S + n + 2072.48 6323.87 m + 2106.65 6332.1 l + S + n + 2106.65 6332.1 m + 2141.45 6342.22 l + S + n + 2141.45 6342.22 m + 2176.25 6352.98 l + S + n + 2176.25 6352.98 m + 2210.42 6363.73 l + S + n + 2210.42 6363.73 m + 2245.22 6374.49 l + S + n + 2245.22 6374.49 m + 2279.38 6390.31 l + S + n + 2279.38 6390.31 m + 2314.18 6409.29 l + S + n + 2314.18 6409.29 m + 2348.98 6407.39 l + S + n + 2348.98 6407.39 m + 2383.15 6428.27 l + S + n + 2383.15 6428.27 m + 2417.95 6428.9 l + S + n + 2417.95 6428.9 m + 2452.12 6452.31 l + S + n + 2452.12 6452.31 m + 2486.92 6456.74 l + S + n + 2486.92 6456.74 m + 2521.72 6470.03 l + S + n + 2521.72 6470.03 m + 2555.89 6469.4 l + S + n + 2555.89 6469.4 m + 2590.69 6482.05 l + S + n + 2590.69 6482.05 m + 2624.85 6499.14 l + S + n + 1001.27 6204.92 m + 1015.2 6198.59 l + 0.501907 0 0 sc + S + n + 1015.2 6198.59 m + 1029.12 6205.55 l + S + n + 1029.12 6205.55 m + 1043.04 6215.04 l + S + n + 1043.04 6215.04 m + 1056.96 6222.63 l + S + n + 1056.96 6222.63 m + 1070.24 6230.23 l + S + n + 1070.24 6230.23 m + 1084.16 6237.19 l + S + n + 1084.16 6237.19 m + 1098.08 6241.62 l + S + n + 1098.08 6241.62 m + 1112 6246.05 l + S + n + 1112 6246.05 m + 1125.92 6249.84 l + S + n + 1125.92 6249.84 m + 1139.84 6253 l + S + n + 1139.84 6253 m + 1153.13 6256.17 l + S + n + 1153.13 6256.17 m + 1167.05 6258.07 l + S + n + 1167.05 6258.07 m + 1180.97 6260.6 l + S + n + 1180.97 6260.6 m + 1194.89 6262.5 l + S + n + 1194.89 6262.5 m + 1208.81 6263.76 l + S + n + 1208.81 6263.76 m + 1222.73 6265.66 l + S + n + 1222.73 6265.66 m + 1236.02 6273.89 l + S + n + 1236.02 6273.89 m + 1249.94 6268.19 l + S + n + 1249.94 6268.19 m + 1263.86 6268.82 l + S + n + 1263.86 6268.82 m + 1277.78 6269.46 l + S + n + 1277.78 6269.46 m + 1291.7 6270.72 l + S + n + 1291.7 6270.72 m + 1305.62 6271.36 l + S + n + 1305.62 6271.36 m + 1319.54 6273.89 l + S + n + 1319.54 6273.89 m + 1332.82 6272.62 l + S + n + 1332.82 6272.62 m + 1346.75 6272.62 l + S + n + 1346.75 6272.62 m + 1360.66 6273.25 l + S + n + 1360.66 6273.25 m + 1374.59 6273.89 l + S + n + 1374.59 6273.89 m + 1388.5 6274.52 l + S + n + 1388.5 6274.52 m + 1402.43 6274.52 l + S + n + 1402.43 6274.52 m + 1415.71 6274.52 l + S + n + 1415.71 6274.52 m + 1429.63 6275.15 l + S + n + 1429.63 6275.15 m + 1443.55 6275.15 l + S + n + 1443.55 6275.15 m + 1457.47 6287.17 l + S + n + 1457.47 6287.17 m + 1471.39 6276.41 l + S + n + 1471.39 6276.41 m + 1485.31 6277.05 l + S + n + 1485.31 6277.05 m + 1498.6 6278.95 l + S + n + 1498.6 6278.95 m + 1512.52 6277.05 l + S + n + 1512.52 6277.05 m + 1526.44 6276.41 l + S + n + 1526.44 6276.41 m + 1540.36 6278.31 l + S + n + 1540.36 6278.31 m + 1554.28 6279.58 l + S + n + 1554.28 6279.58 m + 1568.2 6278.31 l + S + n + 1568.2 6278.31 m + 1581.48 6278.31 l + S + n + 1581.48 6278.31 m + 1595.41 6277.05 l + S + n + 1595.41 6277.05 m + 1609.32 6277.68 l + S + n + 1609.32 6277.68 m + 1623.25 6278.31 l + S + n + 1623.25 6278.31 m + 1658.05 6278.95 l + S + n + 1658.05 6278.95 m + 1692.21 6279.58 l + S + n + 1692.21 6279.58 m + 1727.01 6278.95 l + S + n + 1727.01 6278.95 m + 1761.18 6278.31 l + S + n + 1761.18 6278.31 m + 1795.98 6278.95 l + S + n + 1795.98 6278.95 m + 1830.78 6279.58 l + S + n + 1830.78 6279.58 m + 1864.95 6278.95 l + S + n + 1864.95 6278.95 m + 1899.75 6282.11 l + S + n + 1899.75 6282.11 m + 1933.91 6285.91 l + S + n + 1933.91 6285.91 m + 1968.71 6292.87 l + S + n + 1968.71 6292.87 m + 2003.52 6304.26 l + S + n + 2003.52 6304.26 m + 2037.68 6309.95 l + S + n + 2037.68 6309.95 m + 2072.48 6320.71 l + S + n + 2072.48 6320.71 m + 2106.65 6328.93 l + S + n + 2106.65 6328.93 m + 2141.45 6339.69 l + S + n + 2141.45 6339.69 m + 2176.25 6352.34 l + S + n + 2176.25 6352.34 m + 2210.42 6361.84 l + S + n + 2210.42 6361.84 m + 2245.22 6376.39 l + S + n + 2245.22 6376.39 m + 2279.38 6383.98 l + S + n + 2279.38 6383.98 m + 2314.18 6399.16 l + S + n + 2314.18 6399.16 m + 2348.98 6406.76 l + S + n + 2348.98 6406.76 m + 2383.15 6416.88 l + S + n + 2383.15 6416.88 m + 2417.95 6427.64 l + S + n + 2417.95 6427.64 m + 2452.12 6437.76 l + S + n + 2452.12 6437.76 m + 2486.92 6450.41 l + S + n + 2486.92 6450.41 m + 2521.72 6458.01 l + S + n + 2521.72 6458.01 m + 2555.89 6470.03 l + S + n + 2555.89 6470.03 m + 2590.69 6475.73 l + S + n + 2590.69 6475.73 m + 2624.85 6486.48 l + S + n + 1001.27 6558.61 m + 1012.03 6547.86 l + 1001.27 6537.1 l + 990.52 6547.86 l + 1001.27 6558.61 l + 0 0 0.501907 sc + eofill + n + 1001.27 6558.61 m + 1012.03 6547.86 l + 1001.27 6537.1 l + 990.52 6547.86 l + 1001.27 6558.61 l + h + S + n + 1015.2 6523.81 m + 1025.95 6513.05 l + 1015.2 6502.3 l + 1004.44 6513.05 l + 1015.2 6523.81 l + eofill + n + 1015.2 6523.81 m + 1025.95 6513.05 l + 1015.2 6502.3 l + 1004.44 6513.05 l + 1015.2 6523.81 l + h + S + n + 1029.12 6523.81 m + 1039.87 6513.05 l + 1029.12 6502.3 l + 1018.36 6513.05 l + 1029.12 6523.81 l + eofill + n + 1029.12 6523.81 m + 1039.87 6513.05 l + 1029.12 6502.3 l + 1018.36 6513.05 l + 1029.12 6523.81 l + h + S + n + 1043.04 6525.71 m + 1053.79 6514.95 l + 1043.04 6504.2 l + 1032.28 6514.95 l + 1043.04 6525.71 l + eofill + n + 1043.04 6525.71 m + 1053.79 6514.95 l + 1043.04 6504.2 l + 1032.28 6514.95 l + 1043.04 6525.71 l + h + S + n + 1056.96 6521.91 m + 1067.71 6511.16 l + 1056.96 6500.4 l + 1046.2 6511.16 l + 1056.96 6521.91 l + eofill + n + 1056.96 6521.91 m + 1067.71 6511.16 l + 1056.96 6500.4 l + 1046.2 6511.16 l + 1056.96 6521.91 l + h + S + n + 1070.24 6518.12 m + 1081 6507.36 l + 1070.24 6496.61 l + 1059.48 6507.36 l + 1070.24 6518.12 l + eofill + n + 1070.24 6518.12 m + 1081 6507.36 l + 1070.24 6496.61 l + 1059.48 6507.36 l + 1070.24 6518.12 l + h + S + n + 1084.16 6518.12 m + 1094.92 6507.36 l + 1084.16 6496.61 l + 1073.41 6507.36 l + 1084.16 6518.12 l + eofill + n + 1084.16 6518.12 m + 1094.92 6507.36 l + 1084.16 6496.61 l + 1073.41 6507.36 l + 1084.16 6518.12 l + h + S + n + 1098.08 6516.85 m + 1108.84 6506.1 l + 1098.08 6495.34 l + 1087.32 6506.1 l + 1098.08 6516.85 l + eofill + n + 1098.08 6516.85 m + 1108.84 6506.1 l + 1098.08 6495.34 l + 1087.32 6506.1 l + 1098.08 6516.85 l + h + S + n + 1112 6521.28 m + 1122.76 6510.52 l + 1112 6499.77 l + 1101.25 6510.52 l + 1112 6521.28 l + eofill + n + 1112 6521.28 m + 1122.76 6510.52 l + 1112 6499.77 l + 1101.25 6510.52 l + 1112 6521.28 l + h + S + n + 1125.92 6516.22 m + 1136.68 6505.46 l + 1125.92 6494.71 l + 1115.17 6505.46 l + 1125.92 6516.22 l + eofill + n + 1125.92 6516.22 m + 1136.68 6505.46 l + 1125.92 6494.71 l + 1115.17 6505.46 l + 1125.92 6516.22 l + h + S + n + 1139.84 6518.75 m + 1150.6 6507.99 l + 1139.84 6497.24 l + 1129.09 6507.99 l + 1139.84 6518.75 l + eofill + n + 1139.84 6518.75 m + 1150.6 6507.99 l + 1139.84 6497.24 l + 1129.09 6507.99 l + 1139.84 6518.75 l + h + S + n + 1153.13 6514.95 m + 1163.89 6504.2 l + 1153.13 6493.44 l + 1142.38 6504.2 l + 1153.13 6514.95 l + eofill + n + 1153.13 6514.95 m + 1163.89 6504.2 l + 1153.13 6493.44 l + 1142.38 6504.2 l + 1153.13 6514.95 l + h + S + n + 1167.05 6516.85 m + 1177.8 6506.1 l + 1167.05 6495.34 l + 1156.29 6506.1 l + 1167.05 6516.85 l + eofill + n + 1167.05 6516.85 m + 1177.8 6506.1 l + 1167.05 6495.34 l + 1156.29 6506.1 l + 1167.05 6516.85 l + h + S + n + 1180.97 6514.32 m + 1191.73 6503.57 l + 1180.97 6492.81 l + 1170.21 6503.57 l + 1180.97 6514.32 l + eofill + n + 1180.97 6514.32 m + 1191.73 6503.57 l + 1180.97 6492.81 l + 1170.21 6503.57 l + 1180.97 6514.32 l + h + S + n + 1194.89 6521.28 m + 1205.64 6510.52 l + 1194.89 6499.77 l + 1184.13 6510.52 l + 1194.89 6521.28 l + eofill + n + 1194.89 6521.28 m + 1205.64 6510.52 l + 1194.89 6499.77 l + 1184.13 6510.52 l + 1194.89 6521.28 l + h + S + n + 1208.81 6516.22 m + 1219.57 6505.46 l + 1208.81 6494.71 l + 1198.05 6505.46 l + 1208.81 6516.22 l + eofill + n + 1208.81 6516.22 m + 1219.57 6505.46 l + 1208.81 6494.71 l + 1198.05 6505.46 l + 1208.81 6516.22 l + h + S + n + 1222.73 6516.22 m + 1233.48 6505.46 l + 1222.73 6494.71 l + 1211.97 6505.46 l + 1222.73 6516.22 l + eofill + n + 1222.73 6516.22 m + 1233.48 6505.46 l + 1222.73 6494.71 l + 1211.97 6505.46 l + 1222.73 6516.22 l + h + S + n + 1236.02 6518.75 m + 1246.77 6507.99 l + 1236.02 6497.24 l + 1225.26 6507.99 l + 1236.02 6518.75 l + eofill + n + 1236.02 6518.75 m + 1246.77 6507.99 l + 1236.02 6497.24 l + 1225.26 6507.99 l + 1236.02 6518.75 l + h + S + n + 1249.94 6516.22 m + 1260.7 6505.46 l + 1249.94 6494.71 l + 1239.18 6505.46 l + 1249.94 6516.22 l + eofill + n + 1249.94 6516.22 m + 1260.7 6505.46 l + 1249.94 6494.71 l + 1239.18 6505.46 l + 1249.94 6516.22 l + h + S + n + 1263.86 6518.12 m + 1274.61 6507.36 l + 1263.86 6496.61 l + 1253.1 6507.36 l + 1263.86 6518.12 l + eofill + n + 1263.86 6518.12 m + 1274.61 6507.36 l + 1263.86 6496.61 l + 1253.1 6507.36 l + 1263.86 6518.12 l + h + S + n + 1277.78 6516.85 m + 1288.54 6506.1 l + 1277.78 6495.34 l + 1267.02 6506.1 l + 1277.78 6516.85 l + eofill + n + 1277.78 6516.85 m + 1288.54 6506.1 l + 1277.78 6495.34 l + 1267.02 6506.1 l + 1277.78 6516.85 l + h + S + n + 1291.7 6542.79 m + 1302.45 6532.04 l + 1291.7 6521.28 l + 1280.94 6532.04 l + 1291.7 6542.79 l + eofill + n + 1291.7 6542.79 m + 1302.45 6532.04 l + 1291.7 6521.28 l + 1280.94 6532.04 l + 1291.7 6542.79 l + h + S + n + 1305.62 6632.01 m + 1316.38 6621.25 l + 1305.62 6610.5 l + 1294.86 6621.25 l + 1305.62 6632.01 l + eofill + n + 1305.62 6632.01 m + 1316.38 6621.25 l + 1305.62 6610.5 l + 1294.86 6621.25 l + 1305.62 6632.01 l + h + S + n + 1319.54 6719.96 m + 1330.29 6709.2 l + 1319.54 6698.45 l + 1308.78 6709.2 l + 1319.54 6719.96 l + eofill + n + 1319.54 6719.96 m + 1330.29 6709.2 l + 1319.54 6698.45 l + 1308.78 6709.2 l + 1319.54 6719.96 l + h + S + n + 1332.82 6804.74 m + 1343.58 6793.99 l + 1332.82 6783.23 l + 1322.07 6793.99 l + 1332.82 6804.74 l + eofill + n + 1332.82 6804.74 m + 1343.58 6793.99 l + 1332.82 6783.23 l + 1322.07 6793.99 l + 1332.82 6804.74 l + h + S + n + 1346.75 6878.14 m + 1357.5 6867.38 l + 1346.75 6856.62 l + 1335.99 6867.38 l + 1346.75 6878.14 l + eofill + n + 1346.75 6878.14 m + 1357.5 6867.38 l + 1346.75 6856.62 l + 1335.99 6867.38 l + 1346.75 6878.14 l + h + S + n + 1360.66 6963.56 m + 1371.42 6952.8 l + 1360.66 6942.05 l + 1349.91 6952.8 l + 1360.66 6963.56 l + eofill + n + 1360.66 6963.56 m + 1371.42 6952.8 l + 1360.66 6942.05 l + 1349.91 6952.8 l + 1360.66 6963.56 l + h + S + n + 1374.59 7025.57 m + 1385.34 7014.81 l + 1374.59 7004.05 l + 1363.83 7014.81 l + 1374.59 7025.57 l + eofill + n + 1374.59 7025.57 m + 1385.34 7014.81 l + 1374.59 7004.05 l + 1363.83 7014.81 l + 1374.59 7025.57 l + h + S + n + 1388.5 7084.41 m + 1399.26 7073.65 l + 1388.5 7062.89 l + 1377.75 7073.65 l + 1388.5 7084.41 l + eofill + n + 1388.5 7084.41 m + 1399.26 7073.65 l + 1388.5 7062.89 l + 1377.75 7073.65 l + 1388.5 7084.41 l + h + S + n + 1402.43 7169.2 m + 1413.18 7158.44 l + 1402.43 7147.68 l + 1391.67 7158.44 l + 1402.43 7169.2 l + eofill + n + 1402.43 7169.2 m + 1413.18 7158.44 l + 1402.43 7147.68 l + 1391.67 7158.44 l + 1402.43 7169.2 l + h + S + n + 1415.71 7266 m + 1426.47 7255.25 l + 1415.71 7244.49 l + 1404.96 7255.25 l + 1415.71 7266 l + eofill + n + 1415.71 7266 m + 1426.47 7255.25 l + 1415.71 7244.49 l + 1404.96 7255.25 l + 1415.71 7266 l + h + S + n + 990.52 6320.71 20.8789 20.8789 re + 1 0 1 sc + eofill + 0 J + n + 990.52 6320.71 20.8789 20.8789 re + S + n + 1004.44 6328.93 20.8828 20.8789 re + eofill + n + 1004.44 6328.93 20.8828 20.8789 re + S + n + 1018.36 6316.91 20.8789 20.8789 re + eofill + n + 1018.36 6316.91 20.8789 20.8789 re + S + n + 1032.28 6325.77 20.8828 20.8789 re + eofill + n + 1032.28 6325.77 20.8828 20.8789 re + S + n + 1046.2 6337.16 20.8789 20.8828 re + eofill + n + 1046.2 6337.16 20.8789 20.8828 re + S + n + 1059.48 6353.61 20.8828 20.8789 re + eofill + n + 1059.48 6353.61 20.8828 20.8789 re + S + n + 1073.41 6349.81 20.8789 20.8789 re + eofill + n + 1073.41 6349.81 20.8789 20.8789 re + S + n + 1087.32 6353.61 20.8828 20.8789 re + eofill + n + 1087.32 6353.61 20.8828 20.8789 re + S + n + 1101.25 6358.04 20.8789 20.8789 re + eofill + n + 1101.25 6358.04 20.8789 20.8789 re + S + n + 1115.17 6357.41 20.8789 20.8789 re + eofill + n + 1115.17 6357.41 20.8789 20.8789 re + S + n + 1129.09 6359.94 20.8789 20.8789 re + eofill + n + 1129.09 6359.94 20.8789 20.8789 re + S + n + 1142.38 6368.79 20.8789 20.8828 re + eofill + n + 1142.38 6368.79 20.8789 20.8828 re + S + n + 1156.29 6371.96 20.8789 20.8789 re + eofill + n + 1156.29 6371.96 20.8789 20.8789 re + S + n + 1170.21 6378.29 20.8789 20.8789 re + eofill + n + 1170.21 6378.29 20.8789 20.8789 re + S + n + 1184.13 6373.22 20.8789 20.8789 re + eofill + n + 1184.13 6373.22 20.8789 20.8789 re + S + n + 1198.05 6375.12 20.8789 20.8789 re + eofill + n + 1198.05 6375.12 20.8789 20.8789 re + S + n + 1211.97 6373.86 20.8789 20.8789 re + eofill + n + 1211.97 6373.86 20.8789 20.8789 re + S + n + 1225.26 6380.18 20.8789 20.8789 re + eofill + n + 1225.26 6380.18 20.8789 20.8789 re + S + n + 1239.18 6382.71 20.8828 20.8789 re + eofill + n + 1239.18 6382.71 20.8828 20.8789 re + S + n + 1253.1 6380.82 20.8789 20.8789 re + eofill + n + 1253.1 6380.82 20.8789 20.8789 re + S + n + 1267.02 6380.82 20.8828 20.8789 re + eofill + n + 1267.02 6380.82 20.8828 20.8789 re + S + n + 1280.94 6378.92 20.8789 20.8789 re + eofill + n + 1280.94 6378.92 20.8789 20.8789 re + S + n + 1294.86 6382.08 20.8828 20.8789 re + eofill + n + 1294.86 6382.08 20.8828 20.8789 re + S + n + 1308.78 6388.41 20.8789 20.8789 re + eofill + n + 1308.78 6388.41 20.8789 20.8789 re + S + n + 1322.07 6383.98 20.8828 20.8789 re + eofill + n + 1322.07 6383.98 20.8828 20.8789 re + S + n + 1335.99 6384.61 20.8789 20.8789 re + eofill + n + 1335.99 6384.61 20.8789 20.8789 re + S + n + 1349.91 6382.71 20.8828 20.8789 re + eofill + n + 1349.91 6382.71 20.8828 20.8789 re + S + n + 1363.83 6389.04 20.8789 20.8789 re + eofill + n + 1363.83 6389.04 20.8789 20.8789 re + S + n + 1377.75 6388.41 20.8828 20.8789 re + eofill + n + 1377.75 6388.41 20.8828 20.8789 re + S + n + 1391.67 6392.2 20.8789 20.8828 re + eofill + n + 1391.67 6392.2 20.8789 20.8828 re + S + n + 1404.96 6403.59 20.8789 20.8789 re + eofill + n + 1404.96 6403.59 20.8789 20.8789 re + S + n + 1418.88 6406.76 20.8789 20.8789 re + eofill + n + 1418.88 6406.76 20.8789 20.8789 re + S + n + 1432.8 6420.05 20.8789 20.8789 re + eofill + n + 1432.8 6420.05 20.8789 20.8789 re + S + n + 1446.71 6427.64 20.8789 20.8828 re + eofill + n + 1446.71 6427.64 20.8789 20.8828 re + S + n + 1460.64 6447.25 20.8789 20.8789 re + eofill + n + 1460.64 6447.25 20.8789 20.8789 re + S + n + 1474.55 6466.23 20.8789 20.8789 re + eofill + n + 1474.55 6466.23 20.8789 20.8789 re + S + n + 1487.84 6471.93 20.8789 20.8789 re + eofill + n + 1487.84 6471.93 20.8789 20.8789 re + S + n + 1501.76 6492.18 20.8789 20.8789 re + eofill + n + 1501.76 6492.18 20.8789 20.8789 re + S + n + 1515.68 6509.26 20.8789 20.8828 re + eofill + n + 1515.68 6509.26 20.8789 20.8828 re + S + n + 1529.6 6530.77 20.8828 20.8789 re + eofill + n + 1529.6 6530.77 20.8828 20.8789 re + S + n + 1543.52 6543.43 20.8789 20.8828 re + eofill + n + 1543.52 6543.43 20.8789 20.8828 re + S + n + 1557.44 6560.51 20.8828 20.8789 re + eofill + n + 1557.44 6560.51 20.8828 20.8789 re + S + n + 1570.73 6578.86 20.8789 20.8789 re + eofill + n + 1570.73 6578.86 20.8789 20.8789 re + S + n + 1584.65 6595.31 20.8828 20.8828 re + eofill + n + 1584.65 6595.31 20.8828 20.8828 re + S + n + 1598.57 6612.39 20.8789 20.8789 re + eofill + n + 1598.57 6612.39 20.8789 20.8789 re + S + n + 1612.49 6656.05 20.8828 20.8828 re + eofill + n + 1612.49 6656.05 20.8828 20.8828 re + S + n + 1647.29 6687.05 20.8789 20.8828 re + eofill + n + 1647.29 6687.05 20.8789 20.8828 re + S + n + 1681.46 6700.98 20.8789 20.8789 re + eofill + n + 1681.46 6700.98 20.8789 20.8789 re + S + n + 1716.26 6776.27 20.8789 20.8828 re + eofill + n + 1716.26 6776.27 20.8789 20.8828 re + S + n + 1750.43 6777.54 20.8789 20.8789 re + eofill + n + 1750.43 6777.54 20.8789 20.8789 re + S + n + 1785.22 6838.28 20.8828 20.8789 re + eofill + n + 1785.22 6838.28 20.8828 20.8789 re + S + n + 1820.02 6861.69 20.8789 20.8828 re + eofill + n + 1820.02 6861.69 20.8789 20.8828 re + S + n + 1854.19 6892.69 20.8789 20.8789 re + eofill + n + 1854.19 6892.69 20.8789 20.8789 re + S + n + 1888.99 6912.94 20.8789 20.8789 re + eofill + n + 1888.99 6912.94 20.8789 20.8789 re + S + n + 1923.16 6942.05 20.8789 20.8789 re + eofill + n + 1923.16 6942.05 20.8789 20.8789 re + S + n + 1957.96 6957.86 20.8828 20.8789 re + eofill + n + 1957.96 6957.86 20.8828 20.8789 re + S + n + 1992.76 6992.03 20.8828 20.8789 re + eofill + n + 1992.76 6992.03 20.8828 20.8789 re + S + n + 2026.93 7026.2 20.8789 20.8789 re + eofill + n + 2026.93 7026.2 20.8789 20.8789 re + S + n + 2061.73 7029.99 20.8789 20.8828 re + eofill + n + 2061.73 7029.99 20.8789 20.8828 re + S + n + 2095.89 7045.81 20.8789 20.8789 re + eofill + n + 2095.89 7045.81 20.8789 20.8789 re + S + n + 2130.7 7118.57 20.8789 20.8828 re + eofill + n + 2130.7 7118.57 20.8789 20.8828 re + S + n + 2165.49 7087.57 20.8828 20.8828 re + eofill + n + 2165.49 7087.57 20.8828 20.8828 re + S + n + 2199.66 7112.88 20.8789 20.8789 re + eofill + n + 2199.66 7112.88 20.8789 20.8789 re + S + n + 2234.46 7119.21 20.8789 20.8828 re + eofill + n + 2234.46 7119.21 20.8789 20.8828 re + S + n + 2268.63 7145.78 20.8789 20.8828 re + eofill + n + 2268.63 7145.78 20.8789 20.8828 re + S + n + 2303.43 7151.48 20.8789 20.8828 re + eofill + n + 2303.43 7151.48 20.8789 20.8828 re + S + n + 2338.23 7174.26 20.8828 20.8789 re + eofill + n + 2338.23 7174.26 20.8828 20.8789 re + S + n + 2372.39 7177.42 20.8789 20.8828 re + eofill + n + 2372.39 7177.42 20.8789 20.8828 re + S + n + 2407.2 7198.3 20.8789 20.8789 re + eofill + n + 2407.2 7198.3 20.8789 20.8789 re + S + n + 2441.36 7196.4 20.8789 20.8789 re + eofill + n + 2441.36 7196.4 20.8789 20.8789 re + S + n + 2476.16 7247.02 20.8789 20.8789 re + eofill + n + 2476.16 7247.02 20.8789 20.8789 re + S + n + 1001.27 6209.35 m + 1012.03 6187.84 l + 990.52 6187.84 l + 1001.27 6209.35 l + 0 0 0 sc + eofill + 1 J + n + 1001.27 6209.35 m + 1012.03 6187.84 l + 990.52 6187.84 l + 1001.27 6209.35 l + h + S + n + 1015.2 6200.49 m + 1025.95 6178.98 l + 1004.44 6178.98 l + 1015.2 6200.49 l + eofill + n + 1015.2 6200.49 m + 1025.95 6178.98 l + 1004.44 6178.98 l + 1015.2 6200.49 l + h + S + n + 1029.12 6208.08 m + 1039.87 6186.57 l + 1018.36 6186.57 l + 1029.12 6208.08 l + eofill + n + 1029.12 6208.08 m + 1039.87 6186.57 l + 1018.36 6186.57 l + 1029.12 6208.08 l + h + S + n + 1043.04 6216.94 m + 1053.79 6195.43 l + 1032.28 6195.43 l + 1043.04 6216.94 l + eofill + n + 1043.04 6216.94 m + 1053.79 6195.43 l + 1032.28 6195.43 l + 1043.04 6216.94 l + h + S + n + 1056.96 6225.8 m + 1067.71 6204.29 l + 1046.2 6204.29 l + 1056.96 6225.8 l + eofill + n + 1056.96 6225.8 m + 1067.71 6204.29 l + 1046.2 6204.29 l + 1056.96 6225.8 l + h + S + n + 1070.24 6233.39 m + 1081 6211.88 l + 1059.48 6211.88 l + 1070.24 6233.39 l + eofill + n + 1070.24 6233.39 m + 1081 6211.88 l + 1059.48 6211.88 l + 1070.24 6233.39 l + h + S + n + 1084.16 6240.98 m + 1094.92 6219.47 l + 1073.41 6219.47 l + 1084.16 6240.98 l + eofill + n + 1084.16 6240.98 m + 1094.92 6219.47 l + 1073.41 6219.47 l + 1084.16 6240.98 l + h + S + n + 1098.08 6245.41 m + 1108.84 6223.9 l + 1087.32 6223.9 l + 1098.08 6245.41 l + eofill + n + 1098.08 6245.41 m + 1108.84 6223.9 l + 1087.32 6223.9 l + 1098.08 6245.41 l + h + S + n + 1112 6249.84 m + 1122.76 6228.33 l + 1101.25 6228.33 l + 1112 6249.84 l + eofill + n + 1112 6249.84 m + 1122.76 6228.33 l + 1101.25 6228.33 l + 1112 6249.84 l + h + S + n + 1125.92 6254.27 m + 1136.68 6232.76 l + 1115.17 6232.76 l + 1125.92 6254.27 l + eofill + n + 1125.92 6254.27 m + 1136.68 6232.76 l + 1115.17 6232.76 l + 1125.92 6254.27 l + h + S + n + 1139.84 6258.07 m + 1150.6 6236.55 l + 1129.09 6236.55 l + 1139.84 6258.07 l + eofill + n + 1139.84 6258.07 m + 1150.6 6236.55 l + 1129.09 6236.55 l + 1139.84 6258.07 l + h + S + n + 1153.13 6261.23 m + 1163.89 6239.72 l + 1142.38 6239.72 l + 1153.13 6261.23 l + eofill + n + 1153.13 6261.23 m + 1163.89 6239.72 l + 1142.38 6239.72 l + 1153.13 6261.23 l + h + S + n + 1167.05 6263.76 m + 1177.8 6242.25 l + 1156.29 6242.25 l + 1167.05 6263.76 l + eofill + n + 1167.05 6263.76 m + 1177.8 6242.25 l + 1156.29 6242.25 l + 1167.05 6263.76 l + h + S + n + 1180.97 6265.66 m + 1191.73 6244.15 l + 1170.21 6244.15 l + 1180.97 6265.66 l + eofill + n + 1180.97 6265.66 m + 1191.73 6244.15 l + 1170.21 6244.15 l + 1180.97 6265.66 l + h + S + n + 1194.89 6267.56 m + 1205.64 6246.05 l + 1184.13 6246.05 l + 1194.89 6267.56 l + eofill + n + 1194.89 6267.56 m + 1205.64 6246.05 l + 1184.13 6246.05 l + 1194.89 6267.56 l + h + S + n + 1208.81 6269.46 m + 1219.57 6247.94 l + 1198.05 6247.94 l + 1208.81 6269.46 l + eofill + n + 1208.81 6269.46 m + 1219.57 6247.94 l + 1198.05 6247.94 l + 1208.81 6269.46 l + h + S + n + 1222.73 6270.72 m + 1233.48 6249.21 l + 1211.97 6249.21 l + 1222.73 6270.72 l + eofill + n + 1222.73 6270.72 m + 1233.48 6249.21 l + 1211.97 6249.21 l + 1222.73 6270.72 l + h + S + n + 1236.02 6272.62 m + 1246.77 6251.11 l + 1225.26 6251.11 l + 1236.02 6272.62 l + eofill + n + 1236.02 6272.62 m + 1246.77 6251.11 l + 1225.26 6251.11 l + 1236.02 6272.62 l + h + S + n + 1249.94 6273.25 m + 1260.7 6251.74 l + 1239.18 6251.74 l + 1249.94 6273.25 l + eofill + n + 1249.94 6273.25 m + 1260.7 6251.74 l + 1239.18 6251.74 l + 1249.94 6273.25 l + h + S + n + 1263.86 6274.52 m + 1274.61 6253 l + 1253.1 6253 l + 1263.86 6274.52 l + eofill + n + 1263.86 6274.52 m + 1274.61 6253 l + 1253.1 6253 l + 1263.86 6274.52 l + h + S + n + 1277.78 6275.78 m + 1288.54 6254.27 l + 1267.02 6254.27 l + 1277.78 6275.78 l + eofill + n + 1277.78 6275.78 m + 1288.54 6254.27 l + 1267.02 6254.27 l + 1277.78 6275.78 l + h + S + n + 1291.7 6276.41 m + 1302.45 6254.9 l + 1280.94 6254.9 l + 1291.7 6276.41 l + eofill + n + 1291.7 6276.41 m + 1302.45 6254.9 l + 1280.94 6254.9 l + 1291.7 6276.41 l + h + S + n + 1305.62 6277.05 m + 1316.38 6255.54 l + 1294.86 6255.54 l + 1305.62 6277.05 l + eofill + n + 1305.62 6277.05 m + 1316.38 6255.54 l + 1294.86 6255.54 l + 1305.62 6277.05 l + h + S + n + 1319.54 6277.68 m + 1330.29 6256.17 l + 1308.78 6256.17 l + 1319.54 6277.68 l + eofill + n + 1319.54 6277.68 m + 1330.29 6256.17 l + 1308.78 6256.17 l + 1319.54 6277.68 l + h + S + n + 1332.82 6278.31 m + 1343.58 6256.8 l + 1322.07 6256.8 l + 1332.82 6278.31 l + eofill + n + 1332.82 6278.31 m + 1343.58 6256.8 l + 1322.07 6256.8 l + 1332.82 6278.31 l + h + S + n + 1346.75 6279.58 m + 1357.5 6258.07 l + 1335.99 6258.07 l + 1346.75 6279.58 l + eofill + n + 1346.75 6279.58 m + 1357.5 6258.07 l + 1335.99 6258.07 l + 1346.75 6279.58 l + h + S + n + 1360.66 6279.58 m + 1371.42 6258.07 l + 1349.91 6258.07 l + 1360.66 6279.58 l + eofill + n + 1360.66 6279.58 m + 1371.42 6258.07 l + 1349.91 6258.07 l + 1360.66 6279.58 l + h + S + n + 1374.59 6279.58 m + 1385.34 6258.07 l + 1363.83 6258.07 l + 1374.59 6279.58 l + eofill + n + 1374.59 6279.58 m + 1385.34 6258.07 l + 1363.83 6258.07 l + 1374.59 6279.58 l + h + S + n + 1388.5 6280.21 m + 1399.26 6258.7 l + 1377.75 6258.7 l + 1388.5 6280.21 l + eofill + n + 1388.5 6280.21 m + 1399.26 6258.7 l + 1377.75 6258.7 l + 1388.5 6280.21 l + h + S + n + 1402.43 6280.84 m + 1413.18 6259.33 l + 1391.67 6259.33 l + 1402.43 6280.84 l + eofill + n + 1402.43 6280.84 m + 1413.18 6259.33 l + 1391.67 6259.33 l + 1402.43 6280.84 l + h + S + n + 1415.71 6280.84 m + 1426.47 6259.33 l + 1404.96 6259.33 l + 1415.71 6280.84 l + eofill + n + 1415.71 6280.84 m + 1426.47 6259.33 l + 1404.96 6259.33 l + 1415.71 6280.84 l + h + S + n + 1429.63 6281.48 m + 1440.39 6259.96 l + 1418.88 6259.96 l + 1429.63 6281.48 l + eofill + n + 1429.63 6281.48 m + 1440.39 6259.96 l + 1418.88 6259.96 l + 1429.63 6281.48 l + h + S + n + 1443.55 6281.48 m + 1454.31 6259.96 l + 1432.8 6259.96 l + 1443.55 6281.48 l + eofill + n + 1443.55 6281.48 m + 1454.31 6259.96 l + 1432.8 6259.96 l + 1443.55 6281.48 l + h + S + n + 1457.47 6281.48 m + 1468.23 6259.96 l + 1446.71 6259.96 l + 1457.47 6281.48 l + eofill + n + 1457.47 6281.48 m + 1468.23 6259.96 l + 1446.71 6259.96 l + 1457.47 6281.48 l + h + S + n + 1471.39 6282.11 m + 1482.15 6260.6 l + 1460.64 6260.6 l + 1471.39 6282.11 l + eofill + n + 1471.39 6282.11 m + 1482.15 6260.6 l + 1460.64 6260.6 l + 1471.39 6282.11 l + h + S + n + 1485.31 6282.74 m + 1496.07 6261.23 l + 1474.55 6261.23 l + 1485.31 6282.74 l + eofill + n + 1485.31 6282.74 m + 1496.07 6261.23 l + 1474.55 6261.23 l + 1485.31 6282.74 l + h + S + n + 1498.6 6282.11 m + 1509.36 6260.6 l + 1487.84 6260.6 l + 1498.6 6282.11 l + eofill + n + 1498.6 6282.11 m + 1509.36 6260.6 l + 1487.84 6260.6 l + 1498.6 6282.11 l + h + S + n + 1512.52 6282.11 m + 1523.27 6260.6 l + 1501.76 6260.6 l + 1512.52 6282.11 l + eofill + n + 1512.52 6282.11 m + 1523.27 6260.6 l + 1501.76 6260.6 l + 1512.52 6282.11 l + h + S + n + 1526.44 6282.11 m + 1537.2 6260.6 l + 1515.68 6260.6 l + 1526.44 6282.11 l + eofill + n + 1526.44 6282.11 m + 1537.2 6260.6 l + 1515.68 6260.6 l + 1526.44 6282.11 l + h + S + n + 1540.36 6284.64 m + 1551.12 6263.13 l + 1529.6 6263.13 l + 1540.36 6284.64 l + eofill + n + 1540.36 6284.64 m + 1551.12 6263.13 l + 1529.6 6263.13 l + 1540.36 6284.64 l + h + S + n + 1554.28 6282.74 m + 1565.04 6261.23 l + 1543.52 6261.23 l + 1554.28 6282.74 l + eofill + n + 1554.28 6282.74 m + 1565.04 6261.23 l + 1543.52 6261.23 l + 1554.28 6282.74 l + h + S + n + 1568.2 6284.01 m + 1578.96 6262.5 l + 1557.44 6262.5 l + 1568.2 6284.01 l + eofill + n + 1568.2 6284.01 m + 1578.96 6262.5 l + 1557.44 6262.5 l + 1568.2 6284.01 l + h + S + n + 1581.48 6290.97 m + 1592.24 6269.46 l + 1570.73 6269.46 l + 1581.48 6290.97 l + eofill + n + 1581.48 6290.97 m + 1592.24 6269.46 l + 1570.73 6269.46 l + 1581.48 6290.97 l + h + S + n + 1595.41 6284.01 m + 1606.16 6262.5 l + 1584.65 6262.5 l + 1595.41 6284.01 l + eofill + n + 1595.41 6284.01 m + 1606.16 6262.5 l + 1584.65 6262.5 l + 1595.41 6284.01 l + h + S + n + 1609.32 6284.64 m + 1620.08 6263.13 l + 1598.57 6263.13 l + 1609.32 6284.64 l + eofill + n + 1609.32 6284.64 m + 1620.08 6263.13 l + 1598.57 6263.13 l + 1609.32 6284.64 l + h + S + n + 1623.25 6284.64 m + 1634 6263.13 l + 1612.49 6263.13 l + 1623.25 6284.64 l + eofill + n + 1623.25 6284.64 m + 1634 6263.13 l + 1612.49 6263.13 l + 1623.25 6284.64 l + h + S + n + 1658.05 6284.64 m + 1668.8 6263.13 l + 1647.29 6263.13 l + 1658.05 6284.64 l + eofill + n + 1658.05 6284.64 m + 1668.8 6263.13 l + 1647.29 6263.13 l + 1658.05 6284.64 l + h + S + n + 1692.21 6284.64 m + 1702.97 6263.13 l + 1681.46 6263.13 l + 1692.21 6284.64 l + eofill + n + 1692.21 6284.64 m + 1702.97 6263.13 l + 1681.46 6263.13 l + 1692.21 6284.64 l + h + S + n + 1727.01 6284.01 m + 1737.77 6262.5 l + 1716.26 6262.5 l + 1727.01 6284.01 l + eofill + n + 1727.01 6284.01 m + 1737.77 6262.5 l + 1716.26 6262.5 l + 1727.01 6284.01 l + h + S + n + 1761.18 6285.27 m + 1771.94 6263.76 l + 1750.43 6263.76 l + 1761.18 6285.27 l + eofill + n + 1761.18 6285.27 m + 1771.94 6263.76 l + 1750.43 6263.76 l + 1761.18 6285.27 l + h + S + n + 1795.98 6284.64 m + 1806.74 6263.13 l + 1785.22 6263.13 l + 1795.98 6284.64 l + eofill + n + 1795.98 6284.64 m + 1806.74 6263.13 l + 1785.22 6263.13 l + 1795.98 6284.64 l + h + S + n + 1830.78 6284.64 m + 1841.54 6263.13 l + 1820.02 6263.13 l + 1830.78 6284.64 l + eofill + n + 1830.78 6284.64 m + 1841.54 6263.13 l + 1820.02 6263.13 l + 1830.78 6284.64 l + h + S + n + 1864.95 6285.91 m + 1875.7 6264.39 l + 1854.19 6264.39 l + 1864.95 6285.91 l + eofill + n + 1864.95 6285.91 m + 1875.7 6264.39 l + 1854.19 6264.39 l + 1864.95 6285.91 l + h + S + n + 1899.75 6288.44 m + 1910.5 6266.93 l + 1888.99 6266.93 l + 1899.75 6288.44 l + eofill + n + 1899.75 6288.44 m + 1910.5 6266.93 l + 1888.99 6266.93 l + 1899.75 6288.44 l + h + S + n + 1933.91 6290.97 m + 1944.67 6269.46 l + 1923.16 6269.46 l + 1933.91 6290.97 l + eofill + n + 1933.91 6290.97 m + 1944.67 6269.46 l + 1923.16 6269.46 l + 1933.91 6290.97 l + h + S + n + 1968.71 6298.56 m + 1979.47 6277.05 l + 1957.96 6277.05 l + 1968.71 6298.56 l + eofill + n + 1968.71 6298.56 m + 1979.47 6277.05 l + 1957.96 6277.05 l + 1968.71 6298.56 l + h + S + n + 2003.52 6306.15 m + 2014.27 6284.64 l + 1992.76 6284.64 l + 2003.52 6306.15 l + eofill + n + 2003.52 6306.15 m + 2014.27 6284.64 l + 1992.76 6284.64 l + 2003.52 6306.15 l + h + S + n + 2037.68 6318.18 m + 2048.44 6296.66 l + 2026.93 6296.66 l + 2037.68 6318.18 l + eofill + n + 2037.68 6318.18 m + 2048.44 6296.66 l + 2026.93 6296.66 l + 2037.68 6318.18 l + h + S + n + 2072.48 6325.14 m + 2083.24 6303.62 l + 2061.73 6303.62 l + 2072.48 6325.14 l + eofill + n + 2072.48 6325.14 m + 2083.24 6303.62 l + 2061.73 6303.62 l + 2072.48 6325.14 l + h + S + n + 2106.65 6333.36 m + 2117.41 6311.85 l + 2095.89 6311.85 l + 2106.65 6333.36 l + eofill + n + 2106.65 6333.36 m + 2117.41 6311.85 l + 2095.89 6311.85 l + 2106.65 6333.36 l + h + S + n + 2141.45 6353.61 m + 2152.21 6332.1 l + 2130.7 6332.1 l + 2141.45 6353.61 l + eofill + n + 2141.45 6353.61 m + 2152.21 6332.1 l + 2130.7 6332.1 l + 2141.45 6353.61 l + h + S + n + 2176.25 6356.14 m + 2187.01 6334.62 l + 2165.49 6334.62 l + 2176.25 6356.14 l + eofill + n + 2176.25 6356.14 m + 2187.01 6334.62 l + 2165.49 6334.62 l + 2176.25 6356.14 l + h + S + n + 2210.42 6367.53 m + 2221.17 6346.02 l + 2199.66 6346.02 l + 2210.42 6367.53 l + eofill + n + 2210.42 6367.53 m + 2221.17 6346.02 l + 2199.66 6346.02 l + 2210.42 6367.53 l + h + S + n + 2245.22 6378.29 m + 2255.97 6356.77 l + 2234.46 6356.77 l + 2245.22 6378.29 l + eofill + n + 2245.22 6378.29 m + 2255.97 6356.77 l + 2234.46 6356.77 l + 2245.22 6378.29 l + h + S + n + 2279.38 6389.68 m + 2290.14 6368.16 l + 2268.63 6368.16 l + 2279.38 6389.68 l + eofill + n + 2279.38 6389.68 m + 2290.14 6368.16 l + 2268.63 6368.16 l + 2279.38 6389.68 l + h + S + n + 2314.18 6402.96 m + 2324.94 6381.45 l + 2303.43 6381.45 l + 2314.18 6402.96 l + eofill + n + 2314.18 6402.96 m + 2324.94 6381.45 l + 2303.43 6381.45 l + 2314.18 6402.96 l + h + S + n + 2348.98 6414.35 m + 2359.74 6392.84 l + 2338.23 6392.84 l + 2348.98 6414.35 l + eofill + n + 2348.98 6414.35 m + 2359.74 6392.84 l + 2338.23 6392.84 l + 2348.98 6414.35 l + h + S + n + 2383.15 6425.11 m + 2393.91 6403.59 l + 2372.39 6403.59 l + 2383.15 6425.11 l + eofill + n + 2383.15 6425.11 m + 2393.91 6403.59 l + 2372.39 6403.59 l + 2383.15 6425.11 l + h + S + n + 2417.95 6435.86 m + 2428.71 6414.35 l + 2407.2 6414.35 l + 2417.95 6435.86 l + eofill + n + 2417.95 6435.86 m + 2428.71 6414.35 l + 2407.2 6414.35 l + 2417.95 6435.86 l + h + S + n + 2452.12 6445.36 m + 2462.88 6423.84 l + 2441.36 6423.84 l + 2452.12 6445.36 l + eofill + n + 2452.12 6445.36 m + 2462.88 6423.84 l + 2441.36 6423.84 l + 2452.12 6445.36 l + h + S + n + 2486.92 6455.48 m + 2497.68 6433.96 l + 2476.16 6433.96 l + 2486.92 6455.48 l + eofill + n + 2486.92 6455.48 m + 2497.68 6433.96 l + 2476.16 6433.96 l + 2486.92 6455.48 l + h + S + n + 2521.72 6465.6 m + 2532.48 6444.09 l + 2510.96 6444.09 l + 2521.72 6465.6 l + eofill + n + 2521.72 6465.6 m + 2532.48 6444.09 l + 2510.96 6444.09 l + 2521.72 6465.6 l + h + S + n + 2555.89 6471.3 m + 2566.64 6449.79 l + 2545.13 6449.79 l + 2555.89 6471.3 l + eofill + n + 2555.89 6471.3 m + 2566.64 6449.79 l + 2545.13 6449.79 l + 2555.89 6471.3 l + h + S + n + 2590.69 6485.85 m + 2601.44 6464.34 l + 2579.93 6464.34 l + 2590.69 6485.85 l + eofill + n + 2590.69 6485.85 m + 2601.44 6464.34 l + 2579.93 6464.34 l + 2590.69 6485.85 l + h + S + n + 2624.85 6490.28 m + 2635.61 6468.77 l + 2614.1 6468.77 l + 2624.85 6490.28 l + eofill + n + 2624.85 6490.28 m + 2635.61 6468.77 l + 2614.1 6468.77 l + 2624.85 6490.28 l + h + S + n + 1001.27 6322.61 m + 990.52 6333.36 l + 1 0.399857 0 sc + S + n + 1001.27 6322.61 m + 1012.03 6311.85 l + S + n + 1001.27 6322.61 m + 990.52 6311.85 l + S + n + 1001.27 6322.61 m + 1012.03 6333.36 l + S + n + 1015.2 6378.29 m + 1004.44 6389.04 l + S + n + 1015.2 6378.29 m + 1025.95 6367.53 l + S + n + 1015.2 6378.29 m + 1004.44 6367.53 l + S + n + 1015.2 6378.29 m + 1025.95 6389.04 l + S + n + 1029.12 6377.65 m + 1018.36 6388.41 l + S + n + 1029.12 6377.65 m + 1039.87 6366.89 l + S + n + 1029.12 6377.65 m + 1018.36 6366.89 l + S + n + 1029.12 6377.65 m + 1039.87 6388.41 l + S + n + 1043.04 6397.27 m + 1032.28 6408.02 l + S + n + 1043.04 6397.27 m + 1053.79 6386.51 l + S + n + 1043.04 6397.27 m + 1032.28 6386.51 l + S + n + 1043.04 6397.27 m + 1053.79 6408.02 l + S + n + 1056.96 6425.11 m + 1046.2 6435.86 l + S + n + 1056.96 6425.11 m + 1067.71 6414.35 l + S + n + 1056.96 6425.11 m + 1046.2 6414.35 l + S + n + 1056.96 6425.11 m + 1067.71 6435.86 l + S + n + 1070.24 6445.99 m + 1059.48 6456.74 l + S + n + 1070.24 6445.99 m + 1081 6435.23 l + S + n + 1070.24 6445.99 m + 1059.48 6435.23 l + S + n + 1070.24 6445.99 m + 1081 6456.74 l + S + n + 1084.16 6459.27 m + 1073.41 6470.03 l + S + n + 1084.16 6459.27 m + 1094.92 6448.52 l + S + n + 1084.16 6459.27 m + 1073.41 6448.52 l + S + n + 1084.16 6459.27 m + 1094.92 6470.03 l + S + n + 1098.08 6442.82 m + 1087.32 6453.58 l + S + n + 1098.08 6442.82 m + 1108.84 6432.07 l + S + n + 1098.08 6442.82 m + 1087.32 6432.07 l + S + n + 1098.08 6442.82 m + 1108.84 6453.58 l + S + n + 1112 6447.89 m + 1101.25 6458.64 l + S + n + 1112 6447.89 m + 1122.76 6437.13 l + S + n + 1112 6447.89 m + 1101.25 6437.13 l + S + n + 1112 6447.89 m + 1122.76 6458.64 l + S + n + 1125.92 6445.99 m + 1115.17 6456.74 l + S + n + 1125.92 6445.99 m + 1136.68 6435.23 l + S + n + 1125.92 6445.99 m + 1115.17 6435.23 l + S + n + 1125.92 6445.99 m + 1136.68 6456.74 l + S + n + 1139.84 6456.11 m + 1129.09 6466.87 l + S + n + 1139.84 6456.11 m + 1150.6 6445.36 l + S + n + 1139.84 6456.11 m + 1129.09 6445.36 l + S + n + 1139.84 6456.11 m + 1150.6 6466.87 l + S + n + 1153.13 6454.21 m + 1142.38 6464.97 l + S + n + 1153.13 6454.21 m + 1163.89 6443.46 l + S + n + 1153.13 6454.21 m + 1142.38 6443.46 l + S + n + 1153.13 6454.21 m + 1163.89 6464.97 l + S + n + 1167.05 6456.74 m + 1156.29 6467.5 l + S + n + 1167.05 6456.74 m + 1177.8 6445.99 l + S + n + 1167.05 6456.74 m + 1156.29 6445.99 l + S + n + 1167.05 6456.74 m + 1177.8 6467.5 l + S + n + 1180.97 6453.58 m + 1170.21 6464.34 l + S + n + 1180.97 6453.58 m + 1191.73 6442.82 l + S + n + 1180.97 6453.58 m + 1170.21 6442.82 l + S + n + 1180.97 6453.58 m + 1191.73 6464.34 l + S + n + 1194.89 6456.11 m + 1184.13 6466.87 l + S + n + 1194.89 6456.11 m + 1205.64 6445.36 l + S + n + 1194.89 6456.11 m + 1184.13 6445.36 l + S + n + 1194.89 6456.11 m + 1205.64 6466.87 l + S + n + 1208.81 6459.27 m + 1198.05 6470.03 l + S + n + 1208.81 6459.27 m + 1219.57 6448.52 l + S + n + 1208.81 6459.27 m + 1198.05 6448.52 l + S + n + 1208.81 6459.27 m + 1219.57 6470.03 l + S + n + 1222.73 6468.13 m + 1211.97 6478.89 l + S + n + 1222.73 6468.13 m + 1233.48 6457.38 l + S + n + 1222.73 6468.13 m + 1211.97 6457.38 l + S + n + 1222.73 6468.13 m + 1233.48 6478.89 l + S + n + 1236.02 6465.6 m + 1225.26 6476.36 l + S + n + 1236.02 6465.6 m + 1246.77 6454.84 l + S + n + 1236.02 6465.6 m + 1225.26 6454.84 l + S + n + 1236.02 6465.6 m + 1246.77 6476.36 l + S + n + 1249.94 6459.27 m + 1239.18 6470.03 l + S + n + 1249.94 6459.27 m + 1260.7 6448.52 l + S + n + 1249.94 6459.27 m + 1239.18 6448.52 l + S + n + 1249.94 6459.27 m + 1260.7 6470.03 l + S + n + 1263.86 6465.6 m + 1253.1 6476.36 l + S + n + 1263.86 6465.6 m + 1274.61 6454.84 l + S + n + 1263.86 6465.6 m + 1253.1 6454.84 l + S + n + 1263.86 6465.6 m + 1274.61 6476.36 l + S + n + 1277.78 6466.23 m + 1267.02 6476.99 l + S + n + 1277.78 6466.23 m + 1288.54 6455.48 l + S + n + 1277.78 6466.23 m + 1267.02 6455.48 l + S + n + 1277.78 6466.23 m + 1288.54 6476.99 l + S + n + 1291.7 6464.97 m + 1280.94 6475.73 l + S + n + 1291.7 6464.97 m + 1302.45 6454.21 l + S + n + 1291.7 6464.97 m + 1280.94 6454.21 l + S + n + 1291.7 6464.97 m + 1302.45 6475.73 l + S + n + 1305.62 6468.13 m + 1294.86 6478.89 l + S + n + 1305.62 6468.13 m + 1316.38 6457.38 l + S + n + 1305.62 6468.13 m + 1294.86 6457.38 l + S + n + 1305.62 6468.13 m + 1316.38 6478.89 l + S + n + 1319.54 6467.5 m + 1308.78 6478.26 l + S + n + 1319.54 6467.5 m + 1330.29 6456.74 l + S + n + 1319.54 6467.5 m + 1308.78 6456.74 l + S + n + 1319.54 6467.5 m + 1330.29 6478.26 l + S + n + 1332.82 6463.7 m + 1322.07 6474.46 l + S + n + 1332.82 6463.7 m + 1343.58 6452.95 l + S + n + 1332.82 6463.7 m + 1322.07 6452.95 l + S + n + 1332.82 6463.7 m + 1343.58 6474.46 l + S + n + 1346.75 6461.8 m + 1335.99 6472.56 l + S + n + 1346.75 6461.8 m + 1357.5 6451.05 l + S + n + 1346.75 6461.8 m + 1335.99 6451.05 l + S + n + 1346.75 6461.8 m + 1357.5 6472.56 l + S + n + 1360.66 6464.97 m + 1349.91 6475.73 l + S + n + 1360.66 6464.97 m + 1371.42 6454.21 l + S + n + 1360.66 6464.97 m + 1349.91 6454.21 l + S + n + 1360.66 6464.97 m + 1371.42 6475.73 l + S + n + 1374.59 6468.77 m + 1363.83 6479.52 l + S + n + 1374.59 6468.77 m + 1385.34 6458.01 l + S + n + 1374.59 6468.77 m + 1363.83 6458.01 l + S + n + 1374.59 6468.77 m + 1385.34 6479.52 l + S + n + 1388.5 6466.87 m + 1377.75 6477.62 l + S + n + 1388.5 6466.87 m + 1399.26 6456.11 l + S + n + 1388.5 6466.87 m + 1377.75 6456.11 l + S + n + 1388.5 6466.87 m + 1399.26 6477.62 l + S + n + 1402.43 6472.56 m + 1391.67 6483.32 l + S + n + 1402.43 6472.56 m + 1413.18 6461.8 l + S + n + 1402.43 6472.56 m + 1391.67 6461.8 l + S + n + 1402.43 6472.56 m + 1413.18 6483.32 l + S + n + 1415.71 6475.73 m + 1404.96 6486.48 l + S + n + 1415.71 6475.73 m + 1426.47 6464.97 l + S + n + 1415.71 6475.73 m + 1404.96 6464.97 l + S + n + 1415.71 6475.73 m + 1426.47 6486.48 l + S + n + 1429.63 6472.56 m + 1418.88 6483.32 l + S + n + 1429.63 6472.56 m + 1440.39 6461.8 l + S + n + 1429.63 6472.56 m + 1418.88 6461.8 l + S + n + 1429.63 6472.56 m + 1440.39 6483.32 l + S + n + 1443.55 6485.85 m + 1432.8 6496.61 l + S + n + 1443.55 6485.85 m + 1454.31 6475.09 l + S + n + 1443.55 6485.85 m + 1432.8 6475.09 l + S + n + 1443.55 6485.85 m + 1454.31 6496.61 l + S + n + 1457.47 6470.03 m + 1446.71 6480.79 l + S + n + 1457.47 6470.03 m + 1468.23 6459.27 l + S + n + 1457.47 6470.03 m + 1446.71 6459.27 l + S + n + 1457.47 6470.03 m + 1468.23 6480.79 l + S + n + 1471.39 6471.3 m + 1460.64 6482.05 l + S + n + 1471.39 6471.3 m + 1482.15 6460.54 l + S + n + 1471.39 6471.3 m + 1460.64 6460.54 l + S + n + 1471.39 6471.3 m + 1482.15 6482.05 l + S + n + 1485.31 6475.09 m + 1474.55 6485.85 l + S + n + 1485.31 6475.09 m + 1496.07 6464.34 l + S + n + 1485.31 6475.09 m + 1474.55 6464.34 l + S + n + 1485.31 6475.09 m + 1496.07 6485.85 l + S + n + 1498.6 6473.83 m + 1487.84 6484.58 l + S + n + 1498.6 6473.83 m + 1509.36 6463.07 l + S + n + 1498.6 6473.83 m + 1487.84 6463.07 l + S + n + 1498.6 6473.83 m + 1509.36 6484.58 l + S + n + 1512.52 6479.52 m + 1501.76 6490.28 l + S + n + 1512.52 6479.52 m + 1523.27 6468.77 l + S + n + 1512.52 6479.52 m + 1501.76 6468.77 l + S + n + 1512.52 6479.52 m + 1523.27 6490.28 l + S + n + 1526.44 6477.62 m + 1515.68 6488.38 l + S + n + 1526.44 6477.62 m + 1537.2 6466.87 l + S + n + 1526.44 6477.62 m + 1515.68 6466.87 l + S + n + 1526.44 6477.62 m + 1537.2 6488.38 l + S + n + 1540.36 6475.09 m + 1529.6 6485.85 l + S + n + 1540.36 6475.09 m + 1551.12 6464.34 l + S + n + 1540.36 6475.09 m + 1529.6 6464.34 l + S + n + 1540.36 6475.09 m + 1551.12 6485.85 l + S + n + 1554.28 6482.05 m + 1543.52 6492.81 l + S + n + 1554.28 6482.05 m + 1565.04 6471.3 l + S + n + 1554.28 6482.05 m + 1543.52 6471.3 l + S + n + 1554.28 6482.05 m + 1565.04 6492.81 l + S + n + 1568.2 6478.26 m + 1557.44 6489.01 l + S + n + 1568.2 6478.26 m + 1578.96 6467.5 l + S + n + 1568.2 6478.26 m + 1557.44 6467.5 l + S + n + 1568.2 6478.26 m + 1578.96 6489.01 l + S + n + 1581.48 6480.15 m + 1570.73 6490.91 l + S + n + 1581.48 6480.15 m + 1592.24 6469.4 l + S + n + 1581.48 6480.15 m + 1570.73 6469.4 l + S + n + 1581.48 6480.15 m + 1592.24 6490.91 l + S + n + 1595.41 6479.52 m + 1584.65 6490.28 l + S + n + 1595.41 6479.52 m + 1606.16 6468.77 l + S + n + 1595.41 6479.52 m + 1584.65 6468.77 l + S + n + 1595.41 6479.52 m + 1606.16 6490.28 l + S + n + 1609.32 6488.38 m + 1598.57 6499.14 l + S + n + 1609.32 6488.38 m + 1620.08 6477.62 l + S + n + 1609.32 6488.38 m + 1598.57 6477.62 l + S + n + 1609.32 6488.38 m + 1620.08 6499.14 l + S + n + 1623.25 6489.01 m + 1612.49 6499.77 l + S + n + 1623.25 6489.01 m + 1634 6478.26 l + S + n + 1623.25 6489.01 m + 1612.49 6478.26 l + S + n + 1623.25 6489.01 m + 1634 6499.77 l + S + n + 1637.17 6530.14 m + 1626.41 6540.89 l + S + n + 1637.17 6530.14 m + 1647.92 6519.38 l + S + n + 1637.17 6530.14 m + 1626.41 6519.38 l + S + n + 1637.17 6530.14 m + 1647.92 6540.89 l + S + n + 1651.09 6525.71 m + 1640.33 6536.46 l + S + n + 1651.09 6525.71 m + 1661.84 6514.95 l + S + n + 1651.09 6525.71 m + 1640.33 6514.95 l + S + n + 1651.09 6525.71 m + 1661.84 6536.46 l + S + n + 1665.01 6666.81 m + 1654.25 6677.57 l + S + n + 1665.01 6666.81 m + 1675.76 6656.05 l + S + n + 1665.01 6666.81 m + 1654.25 6656.05 l + S + n + 1665.01 6666.81 m + 1675.76 6677.57 l + S + n + 1678.29 6694.02 m + 1667.54 6704.77 l + S + n + 1678.29 6694.02 m + 1689.05 6683.26 l + S + n + 1678.29 6694.02 m + 1667.54 6683.26 l + S + n + 1678.29 6694.02 m + 1689.05 6704.77 l + S + n + 1692.21 6758.55 m + 1681.46 6769.31 l + S + n + 1692.21 6758.55 m + 1702.97 6747.8 l + S + n + 1692.21 6758.55 m + 1681.46 6747.8 l + S + n + 1692.21 6758.55 m + 1702.97 6769.31 l + S + n + 1706.13 6727.55 m + 1695.38 6738.31 l + S + n + 1706.13 6727.55 m + 1716.89 6716.79 l + S + n + 1706.13 6727.55 m + 1695.38 6716.79 l + S + n + 1706.13 6727.55 m + 1716.89 6738.31 l + S + n + 1720.05 6742.73 m + 1709.3 6753.49 l + S + n + 1720.05 6742.73 m + 1730.81 6731.98 l + S + n + 1720.05 6742.73 m + 1709.3 6731.98 l + S + n + 1720.05 6742.73 m + 1730.81 6753.49 l + S + n + 1733.97 6863.59 m + 1723.22 6874.34 l + S + n + 1733.97 6863.59 m + 1744.73 6852.83 l + S + n + 1733.97 6863.59 m + 1723.22 6852.83 l + S + n + 1733.97 6863.59 m + 1744.73 6874.34 l + S + n + 1747.89 6929.39 m + 1737.14 6940.15 l + S + n + 1747.89 6929.39 m + 1758.65 6918.63 l + S + n + 1747.89 6929.39 m + 1737.14 6918.63 l + S + n + 1747.89 6929.39 m + 1758.65 6940.15 l + S + n + 1761.18 6988.87 m + 1750.43 6999.62 l + S + n + 1761.18 6988.87 m + 1771.94 6978.11 l + S + n + 1761.18 6988.87 m + 1750.43 6978.11 l + S + n + 1761.18 6988.87 m + 1771.94 6999.62 l + S + n + 1775.1 7005.32 m + 1764.34 7016.07 l + S + n + 1775.1 7005.32 m + 1785.86 6994.56 l + S + n + 1775.1 7005.32 m + 1764.34 6994.56 l + S + n + 1775.1 7005.32 m + 1785.86 7016.07 l + S + n + 1789.02 7026.2 m + 1778.27 7036.95 l + S + n + 1789.02 7026.2 m + 1799.78 7015.44 l + S + n + 1789.02 7026.2 m + 1778.27 7015.44 l + S + n + 1789.02 7026.2 m + 1799.78 7036.95 l + S + n + 1802.94 7105.92 m + 1792.18 7116.68 l + S + n + 1802.94 7105.92 m + 1813.7 7095.16 l + S + n + 1802.94 7105.92 m + 1792.18 7095.16 l + S + n + 1802.94 7105.92 m + 1813.7 7116.68 l + S + n + 1816.86 7156.54 m + 1806.11 7167.3 l + S + n + 1816.86 7156.54 m + 1827.62 7145.78 l + S + n + 1816.86 7156.54 m + 1806.11 7145.78 l + S + n + 1816.86 7156.54 m + 1827.62 7167.3 l + S + n + 1830.78 7167.93 m + 1820.02 7178.68 l + S + n + 1830.78 7167.93 m + 1841.54 7157.17 l + S + n + 1830.78 7167.93 m + 1820.02 7157.17 l + S + n + 1830.78 7167.93 m + 1841.54 7178.68 l + S + n + 1844.07 7203.99 m + 1833.31 7214.75 l + S + n + 1844.07 7203.99 m + 1854.82 7193.24 l + S + n + 1844.07 7203.99 m + 1833.31 7193.24 l + S + n + 1844.07 7203.99 m + 1854.82 7214.75 l + S + n + 1857.99 7239.43 m + 1847.23 7250.18 l + S + n + 1857.99 7239.43 m + 1868.75 7228.67 l + S + n + 1857.99 7239.43 m + 1847.23 7228.67 l + S + n + 1857.99 7239.43 m + 1868.75 7250.18 l + S + n + 1001.27 6201.75 m + 990.52 6212.51 l + 0.501907 0 0.501907 sc + S + n + 1001.27 6201.75 m + 1012.03 6191 l + S + n + 1001.27 6201.75 m + 990.52 6191 l + S + n + 1001.27 6201.75 m + 1012.03 6212.51 l + S + n + 1001.27 6201.75 m + 1001.27 6212.51 l + S + n + 1001.27 6201.75 m + 1001.27 6191 l + S + n + 1015.2 6192.89 m + 1004.44 6203.65 l + S + n + 1015.2 6192.89 m + 1025.95 6182.14 l + S + n + 1015.2 6192.89 m + 1004.44 6182.14 l + S + n + 1015.2 6192.89 m + 1025.95 6203.65 l + S + n + 1015.2 6192.89 m + 1015.2 6203.65 l + S + n + 1015.2 6192.89 m + 1015.2 6182.14 l + S + n + 1029.12 6185.94 m + 1018.36 6196.69 l + S + n + 1029.12 6185.94 m + 1039.87 6175.18 l + S + n + 1029.12 6185.94 m + 1018.36 6175.18 l + S + n + 1029.12 6185.94 m + 1039.87 6196.69 l + S + n + 1029.12 6185.94 m + 1029.12 6196.69 l + S + n + 1029.12 6185.94 m + 1029.12 6175.18 l + S + n + 1043.04 6207.45 m + 1032.28 6218.2 l + S + n + 1043.04 6207.45 m + 1053.79 6196.69 l + S + n + 1043.04 6207.45 m + 1032.28 6196.69 l + S + n + 1043.04 6207.45 m + 1053.79 6218.2 l + S + n + 1043.04 6207.45 m + 1043.04 6218.2 l + S + n + 1043.04 6207.45 m + 1043.04 6196.69 l + S + n + 1056.96 6213.78 m + 1046.2 6224.53 l + S + n + 1056.96 6213.78 m + 1067.71 6203.02 l + S + n + 1056.96 6213.78 m + 1046.2 6203.02 l + S + n + 1056.96 6213.78 m + 1067.71 6224.53 l + S + n + 1056.96 6213.78 m + 1056.96 6224.53 l + S + n + 1056.96 6213.78 m + 1056.96 6203.02 l + S + n + 1070.24 6218.2 m + 1059.48 6228.96 l + S + n + 1070.24 6218.2 m + 1081 6207.45 l + S + n + 1070.24 6218.2 m + 1059.48 6207.45 l + S + n + 1070.24 6218.2 m + 1081 6228.96 l + S + n + 1070.24 6218.2 m + 1070.24 6228.96 l + S + n + 1070.24 6218.2 m + 1070.24 6207.45 l + S + n + 1084.16 6225.8 m + 1073.41 6236.55 l + S + n + 1084.16 6225.8 m + 1094.92 6215.04 l + S + n + 1084.16 6225.8 m + 1073.41 6215.04 l + S + n + 1084.16 6225.8 m + 1094.92 6236.55 l + S + n + 1084.16 6225.8 m + 1084.16 6236.55 l + S + n + 1084.16 6225.8 m + 1084.16 6215.04 l + S + n + 1098.08 6233.39 m + 1087.32 6244.15 l + S + n + 1098.08 6233.39 m + 1108.84 6222.63 l + S + n + 1098.08 6233.39 m + 1087.32 6222.63 l + S + n + 1098.08 6233.39 m + 1108.84 6244.15 l + S + n + 1098.08 6233.39 m + 1098.08 6244.15 l + S + n + 1098.08 6233.39 m + 1098.08 6222.63 l + S + n + 1112 6239.09 m + 1101.25 6249.84 l + S + n + 1112 6239.09 m + 1122.76 6228.33 l + S + n + 1112 6239.09 m + 1101.25 6228.33 l + S + n + 1112 6239.09 m + 1122.76 6249.84 l + S + n + 1112 6239.09 m + 1112 6249.84 l + S + n + 1112 6239.09 m + 1112 6228.33 l + S + n + 1125.92 6244.78 m + 1115.17 6255.54 l + S + n + 1125.92 6244.78 m + 1136.68 6234.02 l + S + n + 1125.92 6244.78 m + 1115.17 6234.02 l + S + n + 1125.92 6244.78 m + 1136.68 6255.54 l + S + n + 1125.92 6244.78 m + 1125.92 6255.54 l + S + n + 1125.92 6244.78 m + 1125.92 6234.02 l + S + n + 1139.84 6246.05 m + 1129.09 6256.8 l + S + n + 1139.84 6246.05 m + 1150.6 6235.29 l + S + n + 1139.84 6246.05 m + 1129.09 6235.29 l + S + n + 1139.84 6246.05 m + 1150.6 6256.8 l + S + n + 1139.84 6246.05 m + 1139.84 6256.8 l + S + n + 1139.84 6246.05 m + 1139.84 6235.29 l + S + n + 1153.13 6253.64 m + 1142.38 6264.39 l + S + n + 1153.13 6253.64 m + 1163.89 6242.88 l + S + n + 1153.13 6253.64 m + 1142.38 6242.88 l + S + n + 1153.13 6253.64 m + 1163.89 6264.39 l + S + n + 1153.13 6253.64 m + 1153.13 6264.39 l + S + n + 1153.13 6253.64 m + 1153.13 6242.88 l + S + n + 1167.05 6253.64 m + 1156.29 6264.39 l + S + n + 1167.05 6253.64 m + 1177.8 6242.88 l + S + n + 1167.05 6253.64 m + 1156.29 6242.88 l + S + n + 1167.05 6253.64 m + 1177.8 6264.39 l + S + n + 1167.05 6253.64 m + 1167.05 6264.39 l + S + n + 1167.05 6253.64 m + 1167.05 6242.88 l + S + n + 1180.97 6259.33 m + 1170.21 6270.09 l + S + n + 1180.97 6259.33 m + 1191.73 6248.57 l + S + n + 1180.97 6259.33 m + 1170.21 6248.57 l + S + n + 1180.97 6259.33 m + 1191.73 6270.09 l + S + n + 1180.97 6259.33 m + 1180.97 6270.09 l + S + n + 1180.97 6259.33 m + 1180.97 6248.57 l + S + n + 1194.89 6257.43 m + 1184.13 6268.19 l + S + n + 1194.89 6257.43 m + 1205.64 6246.68 l + S + n + 1194.89 6257.43 m + 1184.13 6246.68 l + S + n + 1194.89 6257.43 m + 1205.64 6268.19 l + S + n + 1194.89 6257.43 m + 1194.89 6268.19 l + S + n + 1194.89 6257.43 m + 1194.89 6246.68 l + S + n + 1208.81 6259.33 m + 1198.05 6270.09 l + S + n + 1208.81 6259.33 m + 1219.57 6248.57 l + S + n + 1208.81 6259.33 m + 1198.05 6248.57 l + S + n + 1208.81 6259.33 m + 1219.57 6270.09 l + S + n + 1208.81 6259.33 m + 1208.81 6270.09 l + S + n + 1208.81 6259.33 m + 1208.81 6248.57 l + S + n + 1222.73 6261.23 m + 1211.97 6271.99 l + S + n + 1222.73 6261.23 m + 1233.48 6250.47 l + S + n + 1222.73 6261.23 m + 1211.97 6250.47 l + S + n + 1222.73 6261.23 m + 1233.48 6271.99 l + S + n + 1222.73 6261.23 m + 1222.73 6271.99 l + S + n + 1222.73 6261.23 m + 1222.73 6250.47 l + S + n + 1236.02 6263.13 m + 1225.26 6273.89 l + S + n + 1236.02 6263.13 m + 1246.77 6252.37 l + S + n + 1236.02 6263.13 m + 1225.26 6252.37 l + S + n + 1236.02 6263.13 m + 1246.77 6273.89 l + S + n + 1236.02 6263.13 m + 1236.02 6273.89 l + S + n + 1236.02 6263.13 m + 1236.02 6252.37 l + S + n + 1249.94 6264.39 m + 1239.18 6275.15 l + S + n + 1249.94 6264.39 m + 1260.7 6253.64 l + S + n + 1249.94 6264.39 m + 1239.18 6253.64 l + S + n + 1249.94 6264.39 m + 1260.7 6275.15 l + S + n + 1249.94 6264.39 m + 1249.94 6275.15 l + S + n + 1249.94 6264.39 m + 1249.94 6253.64 l + S + n + 1263.86 6266.29 m + 1253.1 6277.05 l + S + n + 1263.86 6266.29 m + 1274.61 6255.54 l + S + n + 1263.86 6266.29 m + 1253.1 6255.54 l + S + n + 1263.86 6266.29 m + 1274.61 6277.05 l + S + n + 1263.86 6266.29 m + 1263.86 6277.05 l + S + n + 1263.86 6266.29 m + 1263.86 6255.54 l + S + n + 1277.78 6266.29 m + 1267.02 6277.05 l + S + n + 1277.78 6266.29 m + 1288.54 6255.54 l + S + n + 1277.78 6266.29 m + 1267.02 6255.54 l + S + n + 1277.78 6266.29 m + 1288.54 6277.05 l + S + n + 1277.78 6266.29 m + 1277.78 6277.05 l + S + n + 1277.78 6266.29 m + 1277.78 6255.54 l + S + n + 1291.7 6268.82 m + 1280.94 6279.58 l + S + n + 1291.7 6268.82 m + 1302.45 6258.07 l + S + n + 1291.7 6268.82 m + 1280.94 6258.07 l + S + n + 1291.7 6268.82 m + 1302.45 6279.58 l + S + n + 1291.7 6268.82 m + 1291.7 6279.58 l + S + n + 1291.7 6268.82 m + 1291.7 6258.07 l + S + n + 1305.62 6269.46 m + 1294.86 6280.21 l + S + n + 1305.62 6269.46 m + 1316.38 6258.7 l + S + n + 1305.62 6269.46 m + 1294.86 6258.7 l + S + n + 1305.62 6269.46 m + 1316.38 6280.21 l + S + n + 1305.62 6269.46 m + 1305.62 6280.21 l + S + n + 1305.62 6269.46 m + 1305.62 6258.7 l + S + n + 1319.54 6268.82 m + 1308.78 6279.58 l + S + n + 1319.54 6268.82 m + 1330.29 6258.07 l + S + n + 1319.54 6268.82 m + 1308.78 6258.07 l + S + n + 1319.54 6268.82 m + 1330.29 6279.58 l + S + n + 1319.54 6268.82 m + 1319.54 6279.58 l + S + n + 1319.54 6268.82 m + 1319.54 6258.07 l + S + n + 1332.82 6269.46 m + 1322.07 6280.21 l + S + n + 1332.82 6269.46 m + 1343.58 6258.7 l + S + n + 1332.82 6269.46 m + 1322.07 6258.7 l + S + n + 1332.82 6269.46 m + 1343.58 6280.21 l + S + n + 1332.82 6269.46 m + 1332.82 6280.21 l + S + n + 1332.82 6269.46 m + 1332.82 6258.7 l + S + n + 1346.75 6272.62 m + 1335.99 6283.38 l + S + n + 1346.75 6272.62 m + 1357.5 6261.86 l + S + n + 1346.75 6272.62 m + 1335.99 6261.86 l + S + n + 1346.75 6272.62 m + 1357.5 6283.38 l + S + n + 1346.75 6272.62 m + 1346.75 6283.38 l + S + n + 1346.75 6272.62 m + 1346.75 6261.86 l + S + n + 1360.66 6271.99 m + 1349.91 6282.74 l + S + n + 1360.66 6271.99 m + 1371.42 6261.23 l + S + n + 1360.66 6271.99 m + 1349.91 6261.23 l + S + n + 1360.66 6271.99 m + 1371.42 6282.74 l + S + n + 1360.66 6271.99 m + 1360.66 6282.74 l + S + n + 1360.66 6271.99 m + 1360.66 6261.23 l + S + n + 1374.59 6272.62 m + 1363.83 6283.38 l + S + n + 1374.59 6272.62 m + 1385.34 6261.86 l + S + n + 1374.59 6272.62 m + 1363.83 6261.86 l + S + n + 1374.59 6272.62 m + 1385.34 6283.38 l + S + n + 1374.59 6272.62 m + 1374.59 6283.38 l + S + n + 1374.59 6272.62 m + 1374.59 6261.86 l + S + n + 1388.5 6273.89 m + 1377.75 6284.64 l + S + n + 1388.5 6273.89 m + 1399.26 6263.13 l + S + n + 1388.5 6273.89 m + 1377.75 6263.13 l + S + n + 1388.5 6273.89 m + 1399.26 6284.64 l + S + n + 1388.5 6273.89 m + 1388.5 6284.64 l + S + n + 1388.5 6273.89 m + 1388.5 6263.13 l + S + n + 1402.43 6273.25 m + 1391.67 6284.01 l + S + n + 1402.43 6273.25 m + 1413.18 6262.5 l + S + n + 1402.43 6273.25 m + 1391.67 6262.5 l + S + n + 1402.43 6273.25 m + 1413.18 6284.01 l + S + n + 1402.43 6273.25 m + 1402.43 6284.01 l + S + n + 1402.43 6273.25 m + 1402.43 6262.5 l + S + n + 1415.71 6274.52 m + 1404.96 6285.27 l + S + n + 1415.71 6274.52 m + 1426.47 6263.76 l + S + n + 1415.71 6274.52 m + 1404.96 6263.76 l + S + n + 1415.71 6274.52 m + 1426.47 6285.27 l + S + n + 1415.71 6274.52 m + 1415.71 6285.27 l + S + n + 1415.71 6274.52 m + 1415.71 6263.76 l + S + n + 1429.63 6274.52 m + 1418.88 6285.27 l + S + n + 1429.63 6274.52 m + 1440.39 6263.76 l + S + n + 1429.63 6274.52 m + 1418.88 6263.76 l + S + n + 1429.63 6274.52 m + 1440.39 6285.27 l + S + n + 1429.63 6274.52 m + 1429.63 6285.27 l + S + n + 1429.63 6274.52 m + 1429.63 6263.76 l + S + n + 1443.55 6274.52 m + 1432.8 6285.27 l + S + n + 1443.55 6274.52 m + 1454.31 6263.76 l + S + n + 1443.55 6274.52 m + 1432.8 6263.76 l + S + n + 1443.55 6274.52 m + 1454.31 6285.27 l + S + n + 1443.55 6274.52 m + 1443.55 6285.27 l + S + n + 1443.55 6274.52 m + 1443.55 6263.76 l + S + n + 1457.47 6274.52 m + 1446.71 6285.27 l + S + n + 1457.47 6274.52 m + 1468.23 6263.76 l + S + n + 1457.47 6274.52 m + 1446.71 6263.76 l + S + n + 1457.47 6274.52 m + 1468.23 6285.27 l + S + n + 1457.47 6274.52 m + 1457.47 6285.27 l + S + n + 1457.47 6274.52 m + 1457.47 6263.76 l + S + n + 1471.39 6280.21 m + 1460.64 6290.97 l + S + n + 1471.39 6280.21 m + 1482.15 6269.46 l + S + n + 1471.39 6280.21 m + 1460.64 6269.46 l + S + n + 1471.39 6280.21 m + 1482.15 6290.97 l + S + n + 1471.39 6280.21 m + 1471.39 6290.97 l + S + n + 1471.39 6280.21 m + 1471.39 6269.46 l + S + n + 1485.31 6277.68 m + 1474.55 6288.44 l + S + n + 1485.31 6277.68 m + 1496.07 6266.93 l + S + n + 1485.31 6277.68 m + 1474.55 6266.93 l + S + n + 1485.31 6277.68 m + 1496.07 6288.44 l + S + n + 1485.31 6277.68 m + 1485.31 6288.44 l + S + n + 1485.31 6277.68 m + 1485.31 6266.93 l + S + n + 1498.6 6277.68 m + 1487.84 6288.44 l + S + n + 1498.6 6277.68 m + 1509.36 6266.93 l + S + n + 1498.6 6277.68 m + 1487.84 6266.93 l + S + n + 1498.6 6277.68 m + 1509.36 6288.44 l + S + n + 1498.6 6277.68 m + 1498.6 6288.44 l + S + n + 1498.6 6277.68 m + 1498.6 6266.93 l + S + n + 1512.52 6275.78 m + 1501.76 6286.54 l + S + n + 1512.52 6275.78 m + 1523.27 6265.03 l + S + n + 1512.52 6275.78 m + 1501.76 6265.03 l + S + n + 1512.52 6275.78 m + 1523.27 6286.54 l + S + n + 1512.52 6275.78 m + 1512.52 6286.54 l + S + n + 1512.52 6275.78 m + 1512.52 6265.03 l + S + n + 1526.44 6278.95 m + 1515.68 6289.7 l + S + n + 1526.44 6278.95 m + 1537.2 6268.19 l + S + n + 1526.44 6278.95 m + 1515.68 6268.19 l + S + n + 1526.44 6278.95 m + 1537.2 6289.7 l + S + n + 1526.44 6278.95 m + 1526.44 6289.7 l + S + n + 1526.44 6278.95 m + 1526.44 6268.19 l + S + n + 1540.36 6274.52 m + 1529.6 6285.27 l + S + n + 1540.36 6274.52 m + 1551.12 6263.76 l + S + n + 1540.36 6274.52 m + 1529.6 6263.76 l + S + n + 1540.36 6274.52 m + 1551.12 6285.27 l + S + n + 1540.36 6274.52 m + 1540.36 6285.27 l + S + n + 1540.36 6274.52 m + 1540.36 6263.76 l + S + n + 1554.28 6278.31 m + 1543.52 6289.07 l + S + n + 1554.28 6278.31 m + 1565.04 6267.56 l + S + n + 1554.28 6278.31 m + 1543.52 6267.56 l + S + n + 1554.28 6278.31 m + 1565.04 6289.07 l + S + n + 1554.28 6278.31 m + 1554.28 6289.07 l + S + n + 1554.28 6278.31 m + 1554.28 6267.56 l + S + n + 1568.2 6275.78 m + 1557.44 6286.54 l + S + n + 1568.2 6275.78 m + 1578.96 6265.03 l + S + n + 1568.2 6275.78 m + 1557.44 6265.03 l + S + n + 1568.2 6275.78 m + 1578.96 6286.54 l + S + n + 1568.2 6275.78 m + 1568.2 6286.54 l + S + n + 1568.2 6275.78 m + 1568.2 6265.03 l + S + n + 1581.48 6278.31 m + 1570.73 6289.07 l + S + n + 1581.48 6278.31 m + 1592.24 6267.56 l + S + n + 1581.48 6278.31 m + 1570.73 6267.56 l + S + n + 1581.48 6278.31 m + 1592.24 6289.07 l + S + n + 1581.48 6278.31 m + 1581.48 6289.07 l + S + n + 1581.48 6278.31 m + 1581.48 6267.56 l + S + n + 1595.41 6275.15 m + 1584.65 6285.91 l + S + n + 1595.41 6275.15 m + 1606.16 6264.39 l + S + n + 1595.41 6275.15 m + 1584.65 6264.39 l + S + n + 1595.41 6275.15 m + 1606.16 6285.91 l + S + n + 1595.41 6275.15 m + 1595.41 6285.91 l + S + n + 1595.41 6275.15 m + 1595.41 6264.39 l + S + n + 1609.32 6280.84 m + 1598.57 6291.6 l + S + n + 1609.32 6280.84 m + 1620.08 6270.09 l + S + n + 1609.32 6280.84 m + 1598.57 6270.09 l + S + n + 1609.32 6280.84 m + 1620.08 6291.6 l + S + n + 1609.32 6280.84 m + 1609.32 6291.6 l + S + n + 1609.32 6280.84 m + 1609.32 6270.09 l + S + n + 1623.25 6280.21 m + 1612.49 6290.97 l + S + n + 1623.25 6280.21 m + 1634 6269.46 l + S + n + 1623.25 6280.21 m + 1612.49 6269.46 l + S + n + 1623.25 6280.21 m + 1634 6290.97 l + S + n + 1623.25 6280.21 m + 1623.25 6290.97 l + S + n + 1623.25 6280.21 m + 1623.25 6269.46 l + S + n + 1658.05 6280.84 m + 1647.29 6291.6 l + S + n + 1658.05 6280.84 m + 1668.8 6270.09 l + S + n + 1658.05 6280.84 m + 1647.29 6270.09 l + S + n + 1658.05 6280.84 m + 1668.8 6291.6 l + S + n + 1658.05 6280.84 m + 1658.05 6291.6 l + S + n + 1658.05 6280.84 m + 1658.05 6270.09 l + S + n + 1692.21 6277.68 m + 1681.46 6288.44 l + S + n + 1692.21 6277.68 m + 1702.97 6266.93 l + S + n + 1692.21 6277.68 m + 1681.46 6266.93 l + S + n + 1692.21 6277.68 m + 1702.97 6288.44 l + S + n + 1692.21 6277.68 m + 1692.21 6288.44 l + S + n + 1692.21 6277.68 m + 1692.21 6266.93 l + S + n + 1727.01 6284.64 m + 1716.26 6295.4 l + S + n + 1727.01 6284.64 m + 1737.77 6273.89 l + S + n + 1727.01 6284.64 m + 1716.26 6273.89 l + S + n + 1727.01 6284.64 m + 1737.77 6295.4 l + S + n + 1727.01 6284.64 m + 1727.01 6295.4 l + S + n + 1727.01 6284.64 m + 1727.01 6273.89 l + S + n + 1761.18 6286.54 m + 1750.43 6297.3 l + S + n + 1761.18 6286.54 m + 1771.94 6275.78 l + S + n + 1761.18 6286.54 m + 1750.43 6275.78 l + S + n + 1761.18 6286.54 m + 1771.94 6297.3 l + S + n + 1761.18 6286.54 m + 1761.18 6297.3 l + S + n + 1761.18 6286.54 m + 1761.18 6275.78 l + S + n + 1795.98 6287.17 m + 1785.22 6297.93 l + S + n + 1795.98 6287.17 m + 1806.74 6276.41 l + S + n + 1795.98 6287.17 m + 1785.22 6276.41 l + S + n + 1795.98 6287.17 m + 1806.74 6297.93 l + S + n + 1795.98 6287.17 m + 1795.98 6297.93 l + S + n + 1795.98 6287.17 m + 1795.98 6276.41 l + S + n + 1830.78 6287.17 m + 1820.02 6297.93 l + S + n + 1830.78 6287.17 m + 1841.54 6276.41 l + S + n + 1830.78 6287.17 m + 1820.02 6276.41 l + S + n + 1830.78 6287.17 m + 1841.54 6297.93 l + S + n + 1830.78 6287.17 m + 1830.78 6297.93 l + S + n + 1830.78 6287.17 m + 1830.78 6276.41 l + S + n + 1864.95 6286.54 m + 1854.19 6297.3 l + S + n + 1864.95 6286.54 m + 1875.7 6275.78 l + S + n + 1864.95 6286.54 m + 1854.19 6275.78 l + S + n + 1864.95 6286.54 m + 1875.7 6297.3 l + S + n + 1864.95 6286.54 m + 1864.95 6297.3 l + S + n + 1864.95 6286.54 m + 1864.95 6275.78 l + S + n + 1899.75 6283.38 m + 1888.99 6294.13 l + S + n + 1899.75 6283.38 m + 1910.5 6272.62 l + S + n + 1899.75 6283.38 m + 1888.99 6272.62 l + S + n + 1899.75 6283.38 m + 1910.5 6294.13 l + S + n + 1899.75 6283.38 m + 1899.75 6294.13 l + S + n + 1899.75 6283.38 m + 1899.75 6272.62 l + S + n + 1933.91 6294.77 m + 1923.16 6305.52 l + S + n + 1933.91 6294.77 m + 1944.67 6284.01 l + S + n + 1933.91 6294.77 m + 1923.16 6284.01 l + S + n + 1933.91 6294.77 m + 1944.67 6305.52 l + S + n + 1933.91 6294.77 m + 1933.91 6305.52 l + S + n + 1933.91 6294.77 m + 1933.91 6284.01 l + S + n + 1968.71 6296.66 m + 1957.96 6307.42 l + S + n + 1968.71 6296.66 m + 1979.47 6285.91 l + S + n + 1968.71 6296.66 m + 1957.96 6285.91 l + S + n + 1968.71 6296.66 m + 1979.47 6307.42 l + S + n + 1968.71 6296.66 m + 1968.71 6307.42 l + S + n + 1968.71 6296.66 m + 1968.71 6285.91 l + S + n + 2003.52 6308.05 m + 1992.76 6318.81 l + S + n + 2003.52 6308.05 m + 2014.27 6297.3 l + S + n + 2003.52 6308.05 m + 1992.76 6297.3 l + S + n + 2003.52 6308.05 m + 2014.27 6318.81 l + S + n + 2003.52 6308.05 m + 2003.52 6318.81 l + S + n + 2003.52 6308.05 m + 2003.52 6297.3 l + S + n + 2037.68 6310.58 m + 2026.93 6321.34 l + S + n + 2037.68 6310.58 m + 2048.44 6299.83 l + S + n + 2037.68 6310.58 m + 2026.93 6299.83 l + S + n + 2037.68 6310.58 m + 2048.44 6321.34 l + S + n + 2037.68 6310.58 m + 2037.68 6321.34 l + S + n + 2037.68 6310.58 m + 2037.68 6299.83 l + S + n + 2072.48 6323.87 m + 2061.73 6334.62 l + S + n + 2072.48 6323.87 m + 2083.24 6313.11 l + S + n + 2072.48 6323.87 m + 2061.73 6313.11 l + S + n + 2072.48 6323.87 m + 2083.24 6334.62 l + S + n + 2072.48 6323.87 m + 2072.48 6334.62 l + S + n + 2072.48 6323.87 m + 2072.48 6313.11 l + S + n + 2106.65 6332.1 m + 2095.89 6342.85 l + S + n + 2106.65 6332.1 m + 2117.41 6321.34 l + S + n + 2106.65 6332.1 m + 2095.89 6321.34 l + S + n + 2106.65 6332.1 m + 2117.41 6342.85 l + S + n + 2106.65 6332.1 m + 2106.65 6342.85 l + S + n + 2106.65 6332.1 m + 2106.65 6321.34 l + S + n + 2141.45 6342.22 m + 2130.7 6352.98 l + S + n + 2141.45 6342.22 m + 2152.21 6331.46 l + S + n + 2141.45 6342.22 m + 2130.7 6331.46 l + S + n + 2141.45 6342.22 m + 2152.21 6352.98 l + S + n + 2141.45 6342.22 m + 2141.45 6352.98 l + S + n + 2141.45 6342.22 m + 2141.45 6331.46 l + S + n + 2176.25 6352.98 m + 2165.49 6363.73 l + S + n + 2176.25 6352.98 m + 2187.01 6342.22 l + S + n + 2176.25 6352.98 m + 2165.49 6342.22 l + S + n + 2176.25 6352.98 m + 2187.01 6363.73 l + S + n + 2176.25 6352.98 m + 2176.25 6363.73 l + S + n + 2176.25 6352.98 m + 2176.25 6342.22 l + S + n + 2210.42 6363.73 m + 2199.66 6374.49 l + S + n + 2210.42 6363.73 m + 2221.17 6352.98 l + S + n + 2210.42 6363.73 m + 2199.66 6352.98 l + S + n + 2210.42 6363.73 m + 2221.17 6374.49 l + S + n + 2210.42 6363.73 m + 2210.42 6374.49 l + S + n + 2210.42 6363.73 m + 2210.42 6352.98 l + S + n + 2245.22 6374.49 m + 2234.46 6385.25 l + S + n + 2245.22 6374.49 m + 2255.97 6363.73 l + S + n + 2245.22 6374.49 m + 2234.46 6363.73 l + S + n + 2245.22 6374.49 m + 2255.97 6385.25 l + S + n + 2245.22 6374.49 m + 2245.22 6385.25 l + S + n + 2245.22 6374.49 m + 2245.22 6363.73 l + S + n + 2279.38 6390.31 m + 2268.63 6401.06 l + S + n + 2279.38 6390.31 m + 2290.14 6379.55 l + S + n + 2279.38 6390.31 m + 2268.63 6379.55 l + S + n + 2279.38 6390.31 m + 2290.14 6401.06 l + S + n + 2279.38 6390.31 m + 2279.38 6401.06 l + S + n + 2279.38 6390.31 m + 2279.38 6379.55 l + S + n + 2314.18 6409.29 m + 2303.43 6420.05 l + S + n + 2314.18 6409.29 m + 2324.94 6398.53 l + S + n + 2314.18 6409.29 m + 2303.43 6398.53 l + S + n + 2314.18 6409.29 m + 2324.94 6420.05 l + S + n + 2314.18 6409.29 m + 2314.18 6420.05 l + S + n + 2314.18 6409.29 m + 2314.18 6398.53 l + S + n + 2348.98 6407.39 m + 2338.23 6418.15 l + S + n + 2348.98 6407.39 m + 2359.74 6396.63 l + S + n + 2348.98 6407.39 m + 2338.23 6396.63 l + S + n + 2348.98 6407.39 m + 2359.74 6418.15 l + S + n + 2348.98 6407.39 m + 2348.98 6418.15 l + S + n + 2348.98 6407.39 m + 2348.98 6396.63 l + S + n + 2383.15 6428.27 m + 2372.39 6439.03 l + S + n + 2383.15 6428.27 m + 2393.91 6417.52 l + S + n + 2383.15 6428.27 m + 2372.39 6417.52 l + S + n + 2383.15 6428.27 m + 2393.91 6439.03 l + S + n + 2383.15 6428.27 m + 2383.15 6439.03 l + S + n + 2383.15 6428.27 m + 2383.15 6417.52 l + S + n + 2417.95 6428.9 m + 2407.2 6439.66 l + S + n + 2417.95 6428.9 m + 2428.71 6418.15 l + S + n + 2417.95 6428.9 m + 2407.2 6418.15 l + S + n + 2417.95 6428.9 m + 2428.71 6439.66 l + S + n + 2417.95 6428.9 m + 2417.95 6439.66 l + S + n + 2417.95 6428.9 m + 2417.95 6418.15 l + S + n + 2452.12 6452.31 m + 2441.36 6463.07 l + S + n + 2452.12 6452.31 m + 2462.88 6441.56 l + S + n + 2452.12 6452.31 m + 2441.36 6441.56 l + S + n + 2452.12 6452.31 m + 2462.88 6463.07 l + S + n + 2452.12 6452.31 m + 2452.12 6463.07 l + S + n + 2452.12 6452.31 m + 2452.12 6441.56 l + S + n + 2486.92 6456.74 m + 2476.16 6467.5 l + S + n + 2486.92 6456.74 m + 2497.68 6445.99 l + S + n + 2486.92 6456.74 m + 2476.16 6445.99 l + S + n + 2486.92 6456.74 m + 2497.68 6467.5 l + S + n + 2486.92 6456.74 m + 2486.92 6467.5 l + S + n + 2486.92 6456.74 m + 2486.92 6445.99 l + S + n + 2521.72 6470.03 m + 2510.96 6480.79 l + S + n + 2521.72 6470.03 m + 2532.48 6459.27 l + S + n + 2521.72 6470.03 m + 2510.96 6459.27 l + S + n + 2521.72 6470.03 m + 2532.48 6480.79 l + S + n + 2521.72 6470.03 m + 2521.72 6480.79 l + S + n + 2521.72 6470.03 m + 2521.72 6459.27 l + S + n + 2555.89 6469.4 m + 2545.13 6480.15 l + S + n + 2555.89 6469.4 m + 2566.64 6458.64 l + S + n + 2555.89 6469.4 m + 2545.13 6458.64 l + S + n + 2555.89 6469.4 m + 2566.64 6480.15 l + S + n + 2555.89 6469.4 m + 2555.89 6480.15 l + S + n + 2555.89 6469.4 m + 2555.89 6458.64 l + S + n + 2590.69 6482.05 m + 2579.93 6492.81 l + S + n + 2590.69 6482.05 m + 2601.44 6471.3 l + S + n + 2590.69 6482.05 m + 2579.93 6471.3 l + S + n + 2590.69 6482.05 m + 2601.44 6492.81 l + S + n + 2590.69 6482.05 m + 2590.69 6492.81 l + S + n + 2590.69 6482.05 m + 2590.69 6471.3 l + S + n + 2624.85 6499.14 m + 2614.1 6509.89 l + S + n + 2624.85 6499.14 m + 2635.61 6488.38 l + S + n + 2624.85 6499.14 m + 2614.1 6488.38 l + S + n + 2624.85 6499.14 m + 2635.61 6509.89 l + S + n + 2624.85 6499.14 m + 2624.85 6509.89 l + S + n + 2624.85 6499.14 m + 2624.85 6488.38 l + S + n + 1011.4 6204.92 m + 1011.4 6211.25 1006.97 6215.68 1001.27 6215.68 c + 994.949 6215.68 990.52 6211.25 990.52 6204.92 c + 990.52 6199.22 994.949 6194.79 1001.27 6194.79 c + 1006.97 6194.79 1011.4 6199.22 1011.4 6204.92 c + 0.501907 0 0 sc + eofill + n + 1011.4 6204.92 m + 1011.4 6211.25 1006.97 6215.68 1001.27 6215.68 c + 994.949 6215.68 990.52 6211.25 990.52 6204.92 c + 990.52 6199.22 994.949 6194.79 1001.27 6194.79 c + 1006.97 6194.79 1011.4 6199.22 1011.4 6204.92 c + h + S + n + 1025.32 6198.59 m + 1025.32 6204.92 1020.89 6209.35 1015.2 6209.35 c + 1008.87 6209.35 1004.44 6204.92 1004.44 6198.59 c + 1004.44 6192.89 1008.87 6188.47 1015.2 6188.47 c + 1020.89 6188.47 1025.32 6192.89 1025.32 6198.59 c + eofill + n + 1025.32 6198.59 m + 1025.32 6204.92 1020.89 6209.35 1015.2 6209.35 c + 1008.87 6209.35 1004.44 6204.92 1004.44 6198.59 c + 1004.44 6192.89 1008.87 6188.47 1015.2 6188.47 c + 1020.89 6188.47 1025.32 6192.89 1025.32 6198.59 c + h + S + n + 1039.24 6205.55 m + 1039.24 6211.88 1034.81 6216.31 1029.12 6216.31 c + 1022.79 6216.31 1018.36 6211.88 1018.36 6205.55 c + 1018.36 6199.86 1022.79 6195.43 1029.12 6195.43 c + 1034.81 6195.43 1039.24 6199.86 1039.24 6205.55 c + eofill + n + 1039.24 6205.55 m + 1039.24 6211.88 1034.81 6216.31 1029.12 6216.31 c + 1022.79 6216.31 1018.36 6211.88 1018.36 6205.55 c + 1018.36 6199.86 1022.79 6195.43 1029.12 6195.43 c + 1034.81 6195.43 1039.24 6199.86 1039.24 6205.55 c + h + S + n + 1053.16 6215.04 m + 1053.16 6221.37 1048.73 6225.8 1043.04 6225.8 c + 1036.71 6225.8 1032.28 6221.37 1032.28 6215.04 c + 1032.28 6209.35 1036.71 6204.92 1043.04 6204.92 c + 1048.73 6204.92 1053.16 6209.35 1053.16 6215.04 c + eofill + n + 1053.16 6215.04 m + 1053.16 6221.37 1048.73 6225.8 1043.04 6225.8 c + 1036.71 6225.8 1032.28 6221.37 1032.28 6215.04 c + 1032.28 6209.35 1036.71 6204.92 1043.04 6204.92 c + 1048.73 6204.92 1053.16 6209.35 1053.16 6215.04 c + h + S + n + 1067.08 6222.63 m + 1067.08 6228.96 1062.65 6233.39 1056.96 6233.39 c + 1050.63 6233.39 1046.2 6228.96 1046.2 6222.63 c + 1046.2 6216.94 1050.63 6212.51 1056.96 6212.51 c + 1062.65 6212.51 1067.08 6216.94 1067.08 6222.63 c + eofill + n + 1067.08 6222.63 m + 1067.08 6228.96 1062.65 6233.39 1056.96 6233.39 c + 1050.63 6233.39 1046.2 6228.96 1046.2 6222.63 c + 1046.2 6216.94 1050.63 6212.51 1056.96 6212.51 c + 1062.65 6212.51 1067.08 6216.94 1067.08 6222.63 c + h + S + n + 1080.37 6230.23 m + 1080.37 6236.55 1075.94 6240.98 1070.24 6240.98 c + 1063.91 6240.98 1059.48 6236.55 1059.48 6230.23 c + 1059.48 6224.53 1063.91 6220.1 1070.24 6220.1 c + 1075.94 6220.1 1080.37 6224.53 1080.37 6230.23 c + eofill + n + 1080.37 6230.23 m + 1080.37 6236.55 1075.94 6240.98 1070.24 6240.98 c + 1063.91 6240.98 1059.48 6236.55 1059.48 6230.23 c + 1059.48 6224.53 1063.91 6220.1 1070.24 6220.1 c + 1075.94 6220.1 1080.37 6224.53 1080.37 6230.23 c + h + S + n + 1094.29 6237.19 m + 1094.29 6243.52 1089.86 6247.94 1084.16 6247.94 c + 1077.84 6247.94 1073.41 6243.52 1073.41 6237.19 c + 1073.41 6231.49 1077.84 6227.06 1084.16 6227.06 c + 1089.86 6227.06 1094.29 6231.49 1094.29 6237.19 c + eofill + n + 1094.29 6237.19 m + 1094.29 6243.52 1089.86 6247.94 1084.16 6247.94 c + 1077.84 6247.94 1073.41 6243.52 1073.41 6237.19 c + 1073.41 6231.49 1077.84 6227.06 1084.16 6227.06 c + 1089.86 6227.06 1094.29 6231.49 1094.29 6237.19 c + h + S + n + 1108.21 6241.62 m + 1108.21 6247.94 1103.78 6252.37 1098.08 6252.37 c + 1091.75 6252.37 1087.32 6247.94 1087.32 6241.62 c + 1087.32 6235.92 1091.75 6231.49 1098.08 6231.49 c + 1103.78 6231.49 1108.21 6235.92 1108.21 6241.62 c + eofill + n + 1108.21 6241.62 m + 1108.21 6247.94 1103.78 6252.37 1098.08 6252.37 c + 1091.75 6252.37 1087.32 6247.94 1087.32 6241.62 c + 1087.32 6235.92 1091.75 6231.49 1098.08 6231.49 c + 1103.78 6231.49 1108.21 6235.92 1108.21 6241.62 c + h + S + n + 1122.12 6246.05 m + 1122.12 6252.37 1117.7 6256.8 1112 6256.8 c + 1105.68 6256.8 1101.25 6252.37 1101.25 6246.05 c + 1101.25 6240.35 1105.68 6235.92 1112 6235.92 c + 1117.7 6235.92 1122.12 6240.35 1122.12 6246.05 c + eofill + n + 1122.12 6246.05 m + 1122.12 6252.37 1117.7 6256.8 1112 6256.8 c + 1105.68 6256.8 1101.25 6252.37 1101.25 6246.05 c + 1101.25 6240.35 1105.68 6235.92 1112 6235.92 c + 1117.7 6235.92 1122.12 6240.35 1122.12 6246.05 c + h + S + n + 1136.05 6249.84 m + 1136.05 6256.17 1131.62 6260.6 1125.92 6260.6 c + 1119.59 6260.6 1115.17 6256.17 1115.17 6249.84 c + 1115.17 6244.15 1119.59 6239.72 1125.92 6239.72 c + 1131.62 6239.72 1136.05 6244.15 1136.05 6249.84 c + eofill + n + 1136.05 6249.84 m + 1136.05 6256.17 1131.62 6260.6 1125.92 6260.6 c + 1119.59 6260.6 1115.17 6256.17 1115.17 6249.84 c + 1115.17 6244.15 1119.59 6239.72 1125.92 6239.72 c + 1131.62 6239.72 1136.05 6244.15 1136.05 6249.84 c + h + S + n + 1149.96 6253 m + 1149.96 6259.33 1145.54 6263.76 1139.84 6263.76 c + 1133.52 6263.76 1129.09 6259.33 1129.09 6253 c + 1129.09 6247.31 1133.52 6242.88 1139.84 6242.88 c + 1145.54 6242.88 1149.96 6247.31 1149.96 6253 c + eofill + n + 1149.96 6253 m + 1149.96 6259.33 1145.54 6263.76 1139.84 6263.76 c + 1133.52 6263.76 1129.09 6259.33 1129.09 6253 c + 1129.09 6247.31 1133.52 6242.88 1139.84 6242.88 c + 1145.54 6242.88 1149.96 6247.31 1149.96 6253 c + h + S + n + 1163.25 6256.17 m + 1163.25 6262.5 1158.82 6266.93 1153.13 6266.93 c + 1146.8 6266.93 1142.38 6262.5 1142.38 6256.17 c + 1142.38 6250.47 1146.8 6246.05 1153.13 6246.05 c + 1158.82 6246.05 1163.25 6250.47 1163.25 6256.17 c + eofill + n + 1163.25 6256.17 m + 1163.25 6262.5 1158.82 6266.93 1153.13 6266.93 c + 1146.8 6266.93 1142.38 6262.5 1142.38 6256.17 c + 1142.38 6250.47 1146.8 6246.05 1153.13 6246.05 c + 1158.82 6246.05 1163.25 6250.47 1163.25 6256.17 c + h + S + n + 1177.17 6258.07 m + 1177.17 6264.39 1172.75 6268.82 1167.05 6268.82 c + 1160.72 6268.82 1156.29 6264.39 1156.29 6258.07 c + 1156.29 6252.37 1160.72 6247.94 1167.05 6247.94 c + 1172.75 6247.94 1177.17 6252.37 1177.17 6258.07 c + eofill + n + 1177.17 6258.07 m + 1177.17 6264.39 1172.75 6268.82 1167.05 6268.82 c + 1160.72 6268.82 1156.29 6264.39 1156.29 6258.07 c + 1156.29 6252.37 1160.72 6247.94 1167.05 6247.94 c + 1172.75 6247.94 1177.17 6252.37 1177.17 6258.07 c + h + S + n + 1191.09 6260.6 m + 1191.09 6266.93 1186.66 6271.36 1180.97 6271.36 c + 1174.64 6271.36 1170.21 6266.93 1170.21 6260.6 c + 1170.21 6254.9 1174.64 6250.47 1180.97 6250.47 c + 1186.66 6250.47 1191.09 6254.9 1191.09 6260.6 c + eofill + n + 1191.09 6260.6 m + 1191.09 6266.93 1186.66 6271.36 1180.97 6271.36 c + 1174.64 6271.36 1170.21 6266.93 1170.21 6260.6 c + 1170.21 6254.9 1174.64 6250.47 1180.97 6250.47 c + 1186.66 6250.47 1191.09 6254.9 1191.09 6260.6 c + h + S + n + 1205.01 6262.5 m + 1205.01 6268.82 1200.59 6273.25 1194.89 6273.25 c + 1188.56 6273.25 1184.13 6268.82 1184.13 6262.5 c + 1184.13 6256.8 1188.56 6252.37 1194.89 6252.37 c + 1200.59 6252.37 1205.01 6256.8 1205.01 6262.5 c + eofill + n + 1205.01 6262.5 m + 1205.01 6268.82 1200.59 6273.25 1194.89 6273.25 c + 1188.56 6273.25 1184.13 6268.82 1184.13 6262.5 c + 1184.13 6256.8 1188.56 6252.37 1194.89 6252.37 c + 1200.59 6252.37 1205.01 6256.8 1205.01 6262.5 c + h + S + n + 1218.93 6263.76 m + 1218.93 6270.09 1214.5 6274.52 1208.81 6274.52 c + 1202.48 6274.52 1198.05 6270.09 1198.05 6263.76 c + 1198.05 6258.07 1202.48 6253.64 1208.81 6253.64 c + 1214.5 6253.64 1218.93 6258.07 1218.93 6263.76 c + eofill + n + 1218.93 6263.76 m + 1218.93 6270.09 1214.5 6274.52 1208.81 6274.52 c + 1202.48 6274.52 1198.05 6270.09 1198.05 6263.76 c + 1198.05 6258.07 1202.48 6253.64 1208.81 6253.64 c + 1214.5 6253.64 1218.93 6258.07 1218.93 6263.76 c + h + S + n + 1232.85 6265.66 m + 1232.85 6271.99 1228.43 6276.41 1222.73 6276.41 c + 1216.4 6276.41 1211.97 6271.99 1211.97 6265.66 c + 1211.97 6259.96 1216.4 6255.54 1222.73 6255.54 c + 1228.43 6255.54 1232.85 6259.96 1232.85 6265.66 c + eofill + n + 1232.85 6265.66 m + 1232.85 6271.99 1228.43 6276.41 1222.73 6276.41 c + 1216.4 6276.41 1211.97 6271.99 1211.97 6265.66 c + 1211.97 6259.96 1216.4 6255.54 1222.73 6255.54 c + 1228.43 6255.54 1232.85 6259.96 1232.85 6265.66 c + h + S + n + 1246.14 6273.89 m + 1246.14 6280.21 1241.71 6284.64 1236.02 6284.64 c + 1229.69 6284.64 1225.26 6280.21 1225.26 6273.89 c + 1225.26 6268.19 1229.69 6263.76 1236.02 6263.76 c + 1241.71 6263.76 1246.14 6268.19 1246.14 6273.89 c + eofill + n + 1246.14 6273.89 m + 1246.14 6280.21 1241.71 6284.64 1236.02 6284.64 c + 1229.69 6284.64 1225.26 6280.21 1225.26 6273.89 c + 1225.26 6268.19 1229.69 6263.76 1236.02 6263.76 c + 1241.71 6263.76 1246.14 6268.19 1246.14 6273.89 c + h + S + n + 1260.06 6268.19 m + 1260.06 6274.52 1255.63 6278.95 1249.94 6278.95 c + 1243.61 6278.95 1239.18 6274.52 1239.18 6268.19 c + 1239.18 6262.5 1243.61 6258.07 1249.94 6258.07 c + 1255.63 6258.07 1260.06 6262.5 1260.06 6268.19 c + eofill + n + 1260.06 6268.19 m + 1260.06 6274.52 1255.63 6278.95 1249.94 6278.95 c + 1243.61 6278.95 1239.18 6274.52 1239.18 6268.19 c + 1239.18 6262.5 1243.61 6258.07 1249.94 6258.07 c + 1255.63 6258.07 1260.06 6262.5 1260.06 6268.19 c + h + S + n + 1273.98 6268.82 m + 1273.98 6275.15 1269.55 6279.58 1263.86 6279.58 c + 1257.53 6279.58 1253.1 6275.15 1253.1 6268.82 c + 1253.1 6263.13 1257.53 6258.7 1263.86 6258.7 c + 1269.55 6258.7 1273.98 6263.13 1273.98 6268.82 c + eofill + n + 1273.98 6268.82 m + 1273.98 6275.15 1269.55 6279.58 1263.86 6279.58 c + 1257.53 6279.58 1253.1 6275.15 1253.1 6268.82 c + 1253.1 6263.13 1257.53 6258.7 1263.86 6258.7 c + 1269.55 6258.7 1273.98 6263.13 1273.98 6268.82 c + h + S + n + 1287.9 6269.46 m + 1287.9 6275.78 1283.47 6280.21 1277.78 6280.21 c + 1271.45 6280.21 1267.02 6275.78 1267.02 6269.46 c + 1267.02 6263.76 1271.45 6259.33 1277.78 6259.33 c + 1283.47 6259.33 1287.9 6263.76 1287.9 6269.46 c + eofill + n + 1287.9 6269.46 m + 1287.9 6275.78 1283.47 6280.21 1277.78 6280.21 c + 1271.45 6280.21 1267.02 6275.78 1267.02 6269.46 c + 1267.02 6263.76 1271.45 6259.33 1277.78 6259.33 c + 1283.47 6259.33 1287.9 6263.76 1287.9 6269.46 c + h + S + n + 1301.82 6270.72 m + 1301.82 6277.05 1297.39 6281.48 1291.7 6281.48 c + 1285.37 6281.48 1280.94 6277.05 1280.94 6270.72 c + 1280.94 6265.03 1285.37 6260.6 1291.7 6260.6 c + 1297.39 6260.6 1301.82 6265.03 1301.82 6270.72 c + eofill + n + 1301.82 6270.72 m + 1301.82 6277.05 1297.39 6281.48 1291.7 6281.48 c + 1285.37 6281.48 1280.94 6277.05 1280.94 6270.72 c + 1280.94 6265.03 1285.37 6260.6 1291.7 6260.6 c + 1297.39 6260.6 1301.82 6265.03 1301.82 6270.72 c + h + S + n + 1315.74 6271.36 m + 1315.74 6277.68 1311.31 6282.11 1305.62 6282.11 c + 1299.29 6282.11 1294.86 6277.68 1294.86 6271.36 c + 1294.86 6265.66 1299.29 6261.23 1305.62 6261.23 c + 1311.31 6261.23 1315.74 6265.66 1315.74 6271.36 c + eofill + n + 1315.74 6271.36 m + 1315.74 6277.68 1311.31 6282.11 1305.62 6282.11 c + 1299.29 6282.11 1294.86 6277.68 1294.86 6271.36 c + 1294.86 6265.66 1299.29 6261.23 1305.62 6261.23 c + 1311.31 6261.23 1315.74 6265.66 1315.74 6271.36 c + h + S + n + 1329.66 6273.89 m + 1329.66 6280.21 1325.23 6284.64 1319.54 6284.64 c + 1313.21 6284.64 1308.78 6280.21 1308.78 6273.89 c + 1308.78 6268.19 1313.21 6263.76 1319.54 6263.76 c + 1325.23 6263.76 1329.66 6268.19 1329.66 6273.89 c + eofill + n + 1329.66 6273.89 m + 1329.66 6280.21 1325.23 6284.64 1319.54 6284.64 c + 1313.21 6284.64 1308.78 6280.21 1308.78 6273.89 c + 1308.78 6268.19 1313.21 6263.76 1319.54 6263.76 c + 1325.23 6263.76 1329.66 6268.19 1329.66 6273.89 c + h + S + n + 1342.95 6272.62 m + 1342.95 6278.95 1338.52 6283.38 1332.82 6283.38 c + 1326.5 6283.38 1322.07 6278.95 1322.07 6272.62 c + 1322.07 6266.93 1326.5 6262.5 1332.82 6262.5 c + 1338.52 6262.5 1342.95 6266.93 1342.95 6272.62 c + eofill + n + 1342.95 6272.62 m + 1342.95 6278.95 1338.52 6283.38 1332.82 6283.38 c + 1326.5 6283.38 1322.07 6278.95 1322.07 6272.62 c + 1322.07 6266.93 1326.5 6262.5 1332.82 6262.5 c + 1338.52 6262.5 1342.95 6266.93 1342.95 6272.62 c + h + S + n + 1356.87 6272.62 m + 1356.87 6278.95 1352.44 6283.38 1346.75 6283.38 c + 1340.42 6283.38 1335.99 6278.95 1335.99 6272.62 c + 1335.99 6266.93 1340.42 6262.5 1346.75 6262.5 c + 1352.44 6262.5 1356.87 6266.93 1356.87 6272.62 c + eofill + n + 1356.87 6272.62 m + 1356.87 6278.95 1352.44 6283.38 1346.75 6283.38 c + 1340.42 6283.38 1335.99 6278.95 1335.99 6272.62 c + 1335.99 6266.93 1340.42 6262.5 1346.75 6262.5 c + 1352.44 6262.5 1356.87 6266.93 1356.87 6272.62 c + h + S + n + 1370.79 6273.25 m + 1370.79 6279.58 1366.36 6284.01 1360.66 6284.01 c + 1354.34 6284.01 1349.91 6279.58 1349.91 6273.25 c + 1349.91 6267.56 1354.34 6263.13 1360.66 6263.13 c + 1366.36 6263.13 1370.79 6267.56 1370.79 6273.25 c + eofill + n + 1370.79 6273.25 m + 1370.79 6279.58 1366.36 6284.01 1360.66 6284.01 c + 1354.34 6284.01 1349.91 6279.58 1349.91 6273.25 c + 1349.91 6267.56 1354.34 6263.13 1360.66 6263.13 c + 1366.36 6263.13 1370.79 6267.56 1370.79 6273.25 c + h + S + n + 1384.71 6273.89 m + 1384.71 6280.21 1380.28 6284.64 1374.59 6284.64 c + 1368.26 6284.64 1363.83 6280.21 1363.83 6273.89 c + 1363.83 6268.19 1368.26 6263.76 1374.59 6263.76 c + 1380.28 6263.76 1384.71 6268.19 1384.71 6273.89 c + eofill + n + 1384.71 6273.89 m + 1384.71 6280.21 1380.28 6284.64 1374.59 6284.64 c + 1368.26 6284.64 1363.83 6280.21 1363.83 6273.89 c + 1363.83 6268.19 1368.26 6263.76 1374.59 6263.76 c + 1380.28 6263.76 1384.71 6268.19 1384.71 6273.89 c + h + S + n + 1398.63 6274.52 m + 1398.63 6280.84 1394.2 6285.27 1388.5 6285.27 c + 1382.18 6285.27 1377.75 6280.84 1377.75 6274.52 c + 1377.75 6268.82 1382.18 6264.39 1388.5 6264.39 c + 1394.2 6264.39 1398.63 6268.82 1398.63 6274.52 c + eofill + n + 1398.63 6274.52 m + 1398.63 6280.84 1394.2 6285.27 1388.5 6285.27 c + 1382.18 6285.27 1377.75 6280.84 1377.75 6274.52 c + 1377.75 6268.82 1382.18 6264.39 1388.5 6264.39 c + 1394.2 6264.39 1398.63 6268.82 1398.63 6274.52 c + h + S + n + 1412.55 6274.52 m + 1412.55 6280.84 1408.12 6285.27 1402.43 6285.27 c + 1396.1 6285.27 1391.67 6280.84 1391.67 6274.52 c + 1391.67 6268.82 1396.1 6264.39 1402.43 6264.39 c + 1408.12 6264.39 1412.55 6268.82 1412.55 6274.52 c + eofill + n + 1412.55 6274.52 m + 1412.55 6280.84 1408.12 6285.27 1402.43 6285.27 c + 1396.1 6285.27 1391.67 6280.84 1391.67 6274.52 c + 1391.67 6268.82 1396.1 6264.39 1402.43 6264.39 c + 1408.12 6264.39 1412.55 6268.82 1412.55 6274.52 c + h + S + n + 1425.84 6274.52 m + 1425.84 6280.84 1421.41 6285.27 1415.71 6285.27 c + 1409.38 6285.27 1404.96 6280.84 1404.96 6274.52 c + 1404.96 6268.82 1409.38 6264.39 1415.71 6264.39 c + 1421.41 6264.39 1425.84 6268.82 1425.84 6274.52 c + eofill + n + 1425.84 6274.52 m + 1425.84 6280.84 1421.41 6285.27 1415.71 6285.27 c + 1409.38 6285.27 1404.96 6280.84 1404.96 6274.52 c + 1404.96 6268.82 1409.38 6264.39 1415.71 6264.39 c + 1421.41 6264.39 1425.84 6268.82 1425.84 6274.52 c + h + S + n + 1439.75 6275.15 m + 1439.75 6281.48 1435.32 6285.91 1429.63 6285.91 c + 1423.3 6285.91 1418.88 6281.48 1418.88 6275.15 c + 1418.88 6269.46 1423.3 6265.03 1429.63 6265.03 c + 1435.32 6265.03 1439.75 6269.46 1439.75 6275.15 c + eofill + n + 1439.75 6275.15 m + 1439.75 6281.48 1435.32 6285.91 1429.63 6285.91 c + 1423.3 6285.91 1418.88 6281.48 1418.88 6275.15 c + 1418.88 6269.46 1423.3 6265.03 1429.63 6265.03 c + 1435.32 6265.03 1439.75 6269.46 1439.75 6275.15 c + h + S + n + 1453.68 6275.15 m + 1453.68 6281.48 1449.25 6285.91 1443.55 6285.91 c + 1437.22 6285.91 1432.8 6281.48 1432.8 6275.15 c + 1432.8 6269.46 1437.22 6265.03 1443.55 6265.03 c + 1449.25 6265.03 1453.68 6269.46 1453.68 6275.15 c + eofill + n + 1453.68 6275.15 m + 1453.68 6281.48 1449.25 6285.91 1443.55 6285.91 c + 1437.22 6285.91 1432.8 6281.48 1432.8 6275.15 c + 1432.8 6269.46 1437.22 6265.03 1443.55 6265.03 c + 1449.25 6265.03 1453.68 6269.46 1453.68 6275.15 c + h + S + n + 1467.59 6287.17 m + 1467.59 6293.5 1463.17 6297.93 1457.47 6297.93 c + 1451.14 6297.93 1446.71 6293.5 1446.71 6287.17 c + 1446.71 6281.48 1451.14 6277.05 1457.47 6277.05 c + 1463.17 6277.05 1467.59 6281.48 1467.59 6287.17 c + eofill + n + 1467.59 6287.17 m + 1467.59 6293.5 1463.17 6297.93 1457.47 6297.93 c + 1451.14 6297.93 1446.71 6293.5 1446.71 6287.17 c + 1446.71 6281.48 1451.14 6277.05 1457.47 6277.05 c + 1463.17 6277.05 1467.59 6281.48 1467.59 6287.17 c + h + S + n + 1481.52 6276.41 m + 1481.52 6282.74 1477.09 6287.17 1471.39 6287.17 c + 1465.06 6287.17 1460.64 6282.74 1460.64 6276.41 c + 1460.64 6270.72 1465.06 6266.29 1471.39 6266.29 c + 1477.09 6266.29 1481.52 6270.72 1481.52 6276.41 c + eofill + n + 1481.52 6276.41 m + 1481.52 6282.74 1477.09 6287.17 1471.39 6287.17 c + 1465.06 6287.17 1460.64 6282.74 1460.64 6276.41 c + 1460.64 6270.72 1465.06 6266.29 1471.39 6266.29 c + 1477.09 6266.29 1481.52 6270.72 1481.52 6276.41 c + h + S + n + 1495.43 6277.05 m + 1495.43 6283.38 1491.01 6287.8 1485.31 6287.8 c + 1478.98 6287.8 1474.55 6283.38 1474.55 6277.05 c + 1474.55 6271.36 1478.98 6266.93 1485.31 6266.93 c + 1491.01 6266.93 1495.43 6271.36 1495.43 6277.05 c + eofill + n + 1495.43 6277.05 m + 1495.43 6283.38 1491.01 6287.8 1485.31 6287.8 c + 1478.98 6287.8 1474.55 6283.38 1474.55 6277.05 c + 1474.55 6271.36 1478.98 6266.93 1485.31 6266.93 c + 1491.01 6266.93 1495.43 6271.36 1495.43 6277.05 c + h + S + n + 1508.72 6278.95 m + 1508.72 6285.27 1504.29 6289.7 1498.6 6289.7 c + 1492.27 6289.7 1487.84 6285.27 1487.84 6278.95 c + 1487.84 6273.25 1492.27 6268.82 1498.6 6268.82 c + 1504.29 6268.82 1508.72 6273.25 1508.72 6278.95 c + eofill + n + 1508.72 6278.95 m + 1508.72 6285.27 1504.29 6289.7 1498.6 6289.7 c + 1492.27 6289.7 1487.84 6285.27 1487.84 6278.95 c + 1487.84 6273.25 1492.27 6268.82 1498.6 6268.82 c + 1504.29 6268.82 1508.72 6273.25 1508.72 6278.95 c + h + S + n + 1522.64 6277.05 m + 1522.64 6283.38 1518.21 6287.8 1512.52 6287.8 c + 1506.19 6287.8 1501.76 6283.38 1501.76 6277.05 c + 1501.76 6271.36 1506.19 6266.93 1512.52 6266.93 c + 1518.21 6266.93 1522.64 6271.36 1522.64 6277.05 c + eofill + n + 1522.64 6277.05 m + 1522.64 6283.38 1518.21 6287.8 1512.52 6287.8 c + 1506.19 6287.8 1501.76 6283.38 1501.76 6277.05 c + 1501.76 6271.36 1506.19 6266.93 1512.52 6266.93 c + 1518.21 6266.93 1522.64 6271.36 1522.64 6277.05 c + h + S + n + 1536.56 6276.41 m + 1536.56 6282.74 1532.13 6287.17 1526.44 6287.17 c + 1520.11 6287.17 1515.68 6282.74 1515.68 6276.41 c + 1515.68 6270.72 1520.11 6266.29 1526.44 6266.29 c + 1532.13 6266.29 1536.56 6270.72 1536.56 6276.41 c + eofill + n + 1536.56 6276.41 m + 1536.56 6282.74 1532.13 6287.17 1526.44 6287.17 c + 1520.11 6287.17 1515.68 6282.74 1515.68 6276.41 c + 1515.68 6270.72 1520.11 6266.29 1526.44 6266.29 c + 1532.13 6266.29 1536.56 6270.72 1536.56 6276.41 c + h + S + n + 1550.48 6278.31 m + 1550.48 6284.64 1546.05 6289.07 1540.36 6289.07 c + 1534.03 6289.07 1529.6 6284.64 1529.6 6278.31 c + 1529.6 6272.62 1534.03 6268.19 1540.36 6268.19 c + 1546.05 6268.19 1550.48 6272.62 1550.48 6278.31 c + eofill + n + 1550.48 6278.31 m + 1550.48 6284.64 1546.05 6289.07 1540.36 6289.07 c + 1534.03 6289.07 1529.6 6284.64 1529.6 6278.31 c + 1529.6 6272.62 1534.03 6268.19 1540.36 6268.19 c + 1546.05 6268.19 1550.48 6272.62 1550.48 6278.31 c + h + S + n + 1564.4 6279.58 m + 1564.4 6285.91 1559.97 6290.34 1554.28 6290.34 c + 1547.95 6290.34 1543.52 6285.91 1543.52 6279.58 c + 1543.52 6273.89 1547.95 6269.46 1554.28 6269.46 c + 1559.97 6269.46 1564.4 6273.89 1564.4 6279.58 c + eofill + n + 1564.4 6279.58 m + 1564.4 6285.91 1559.97 6290.34 1554.28 6290.34 c + 1547.95 6290.34 1543.52 6285.91 1543.52 6279.58 c + 1543.52 6273.89 1547.95 6269.46 1554.28 6269.46 c + 1559.97 6269.46 1564.4 6273.89 1564.4 6279.58 c + h + S + n + 1578.32 6278.31 m + 1578.32 6284.64 1573.89 6289.07 1568.2 6289.07 c + 1561.87 6289.07 1557.44 6284.64 1557.44 6278.31 c + 1557.44 6272.62 1561.87 6268.19 1568.2 6268.19 c + 1573.89 6268.19 1578.32 6272.62 1578.32 6278.31 c + eofill + n + 1578.32 6278.31 m + 1578.32 6284.64 1573.89 6289.07 1568.2 6289.07 c + 1561.87 6289.07 1557.44 6284.64 1557.44 6278.31 c + 1557.44 6272.62 1561.87 6268.19 1568.2 6268.19 c + 1573.89 6268.19 1578.32 6272.62 1578.32 6278.31 c + h + S + n + 1591.61 6278.31 m + 1591.61 6284.64 1587.18 6289.07 1581.48 6289.07 c + 1575.16 6289.07 1570.73 6284.64 1570.73 6278.31 c + 1570.73 6272.62 1575.16 6268.19 1581.48 6268.19 c + 1587.18 6268.19 1591.61 6272.62 1591.61 6278.31 c + eofill + n + 1591.61 6278.31 m + 1591.61 6284.64 1587.18 6289.07 1581.48 6289.07 c + 1575.16 6289.07 1570.73 6284.64 1570.73 6278.31 c + 1570.73 6272.62 1575.16 6268.19 1581.48 6268.19 c + 1587.18 6268.19 1591.61 6272.62 1591.61 6278.31 c + h + S + n + 1605.53 6277.05 m + 1605.53 6283.38 1601.1 6287.8 1595.41 6287.8 c + 1589.08 6287.8 1584.65 6283.38 1584.65 6277.05 c + 1584.65 6271.36 1589.08 6266.93 1595.41 6266.93 c + 1601.1 6266.93 1605.53 6271.36 1605.53 6277.05 c + eofill + n + 1605.53 6277.05 m + 1605.53 6283.38 1601.1 6287.8 1595.41 6287.8 c + 1589.08 6287.8 1584.65 6283.38 1584.65 6277.05 c + 1584.65 6271.36 1589.08 6266.93 1595.41 6266.93 c + 1601.1 6266.93 1605.53 6271.36 1605.53 6277.05 c + h + S + n + 1619.45 6277.68 m + 1619.45 6284.01 1615.02 6288.44 1609.32 6288.44 c + 1603 6288.44 1598.57 6284.01 1598.57 6277.68 c + 1598.57 6271.99 1603 6267.56 1609.32 6267.56 c + 1615.02 6267.56 1619.45 6271.99 1619.45 6277.68 c + eofill + n + 1619.45 6277.68 m + 1619.45 6284.01 1615.02 6288.44 1609.32 6288.44 c + 1603 6288.44 1598.57 6284.01 1598.57 6277.68 c + 1598.57 6271.99 1603 6267.56 1609.32 6267.56 c + 1615.02 6267.56 1619.45 6271.99 1619.45 6277.68 c + h + S + n + 1633.37 6278.31 m + 1633.37 6284.64 1628.94 6289.07 1623.25 6289.07 c + 1616.92 6289.07 1612.49 6284.64 1612.49 6278.31 c + 1612.49 6272.62 1616.92 6268.19 1623.25 6268.19 c + 1628.94 6268.19 1633.37 6272.62 1633.37 6278.31 c + eofill + n + 1633.37 6278.31 m + 1633.37 6284.64 1628.94 6289.07 1623.25 6289.07 c + 1616.92 6289.07 1612.49 6284.64 1612.49 6278.31 c + 1612.49 6272.62 1616.92 6268.19 1623.25 6268.19 c + 1628.94 6268.19 1633.37 6272.62 1633.37 6278.31 c + h + S + n + 1668.17 6278.95 m + 1668.17 6285.27 1663.74 6289.7 1658.05 6289.7 c + 1651.72 6289.7 1647.29 6285.27 1647.29 6278.95 c + 1647.29 6273.25 1651.72 6268.82 1658.05 6268.82 c + 1663.74 6268.82 1668.17 6273.25 1668.17 6278.95 c + eofill + n + 1668.17 6278.95 m + 1668.17 6285.27 1663.74 6289.7 1658.05 6289.7 c + 1651.72 6289.7 1647.29 6285.27 1647.29 6278.95 c + 1647.29 6273.25 1651.72 6268.82 1658.05 6268.82 c + 1663.74 6268.82 1668.17 6273.25 1668.17 6278.95 c + h + S + n + 1702.34 6279.58 m + 1702.34 6285.91 1697.91 6290.34 1692.21 6290.34 c + 1685.89 6290.34 1681.46 6285.91 1681.46 6279.58 c + 1681.46 6273.89 1685.89 6269.46 1692.21 6269.46 c + 1697.91 6269.46 1702.34 6273.89 1702.34 6279.58 c + eofill + n + 1702.34 6279.58 m + 1702.34 6285.91 1697.91 6290.34 1692.21 6290.34 c + 1685.89 6290.34 1681.46 6285.91 1681.46 6279.58 c + 1681.46 6273.89 1685.89 6269.46 1692.21 6269.46 c + 1697.91 6269.46 1702.34 6273.89 1702.34 6279.58 c + h + S + n + 1737.14 6278.95 m + 1737.14 6285.27 1732.71 6289.7 1727.01 6289.7 c + 1720.69 6289.7 1716.26 6285.27 1716.26 6278.95 c + 1716.26 6273.25 1720.69 6268.82 1727.01 6268.82 c + 1732.71 6268.82 1737.14 6273.25 1737.14 6278.95 c + eofill + n + 1737.14 6278.95 m + 1737.14 6285.27 1732.71 6289.7 1727.01 6289.7 c + 1720.69 6289.7 1716.26 6285.27 1716.26 6278.95 c + 1716.26 6273.25 1720.69 6268.82 1727.01 6268.82 c + 1732.71 6268.82 1737.14 6273.25 1737.14 6278.95 c + h + S + n + 1771.3 6278.31 m + 1771.3 6284.64 1766.88 6289.07 1761.18 6289.07 c + 1754.85 6289.07 1750.43 6284.64 1750.43 6278.31 c + 1750.43 6272.62 1754.85 6268.19 1761.18 6268.19 c + 1766.88 6268.19 1771.3 6272.62 1771.3 6278.31 c + eofill + n + 1771.3 6278.31 m + 1771.3 6284.64 1766.88 6289.07 1761.18 6289.07 c + 1754.85 6289.07 1750.43 6284.64 1750.43 6278.31 c + 1750.43 6272.62 1754.85 6268.19 1761.18 6268.19 c + 1766.88 6268.19 1771.3 6272.62 1771.3 6278.31 c + h + S + n + 1806.11 6278.95 m + 1806.11 6285.27 1801.68 6289.7 1795.98 6289.7 c + 1789.65 6289.7 1785.22 6285.27 1785.22 6278.95 c + 1785.22 6273.25 1789.65 6268.82 1795.98 6268.82 c + 1801.68 6268.82 1806.11 6273.25 1806.11 6278.95 c + eofill + n + 1806.11 6278.95 m + 1806.11 6285.27 1801.68 6289.7 1795.98 6289.7 c + 1789.65 6289.7 1785.22 6285.27 1785.22 6278.95 c + 1785.22 6273.25 1789.65 6268.82 1795.98 6268.82 c + 1801.68 6268.82 1806.11 6273.25 1806.11 6278.95 c + h + S + n + 1840.9 6279.58 m + 1840.9 6285.91 1836.48 6290.34 1830.78 6290.34 c + 1824.45 6290.34 1820.02 6285.91 1820.02 6279.58 c + 1820.02 6273.89 1824.45 6269.46 1830.78 6269.46 c + 1836.48 6269.46 1840.9 6273.89 1840.9 6279.58 c + eofill + n + 1840.9 6279.58 m + 1840.9 6285.91 1836.48 6290.34 1830.78 6290.34 c + 1824.45 6290.34 1820.02 6285.91 1820.02 6279.58 c + 1820.02 6273.89 1824.45 6269.46 1830.78 6269.46 c + 1836.48 6269.46 1840.9 6273.89 1840.9 6279.58 c + h + S + n + 1875.07 6278.95 m + 1875.07 6285.27 1870.64 6289.7 1864.95 6289.7 c + 1858.62 6289.7 1854.19 6285.27 1854.19 6278.95 c + 1854.19 6273.25 1858.62 6268.82 1864.95 6268.82 c + 1870.64 6268.82 1875.07 6273.25 1875.07 6278.95 c + eofill + n + 1875.07 6278.95 m + 1875.07 6285.27 1870.64 6289.7 1864.95 6289.7 c + 1858.62 6289.7 1854.19 6285.27 1854.19 6278.95 c + 1854.19 6273.25 1858.62 6268.82 1864.95 6268.82 c + 1870.64 6268.82 1875.07 6273.25 1875.07 6278.95 c + h + S + n + 1909.87 6282.11 m + 1909.87 6288.44 1905.44 6292.87 1899.75 6292.87 c + 1893.42 6292.87 1888.99 6288.44 1888.99 6282.11 c + 1888.99 6276.41 1893.42 6271.99 1899.75 6271.99 c + 1905.44 6271.99 1909.87 6276.41 1909.87 6282.11 c + eofill + n + 1909.87 6282.11 m + 1909.87 6288.44 1905.44 6292.87 1899.75 6292.87 c + 1893.42 6292.87 1888.99 6288.44 1888.99 6282.11 c + 1888.99 6276.41 1893.42 6271.99 1899.75 6271.99 c + 1905.44 6271.99 1909.87 6276.41 1909.87 6282.11 c + h + S + n + 1944.04 6285.91 m + 1944.04 6292.23 1939.61 6296.66 1933.91 6296.66 c + 1927.59 6296.66 1923.16 6292.23 1923.16 6285.91 c + 1923.16 6280.21 1927.59 6275.78 1933.91 6275.78 c + 1939.61 6275.78 1944.04 6280.21 1944.04 6285.91 c + eofill + n + 1944.04 6285.91 m + 1944.04 6292.23 1939.61 6296.66 1933.91 6296.66 c + 1927.59 6296.66 1923.16 6292.23 1923.16 6285.91 c + 1923.16 6280.21 1927.59 6275.78 1933.91 6275.78 c + 1939.61 6275.78 1944.04 6280.21 1944.04 6285.91 c + h + S + n + 1978.84 6292.87 m + 1978.84 6299.2 1974.41 6303.62 1968.71 6303.62 c + 1962.39 6303.62 1957.96 6299.2 1957.96 6292.87 c + 1957.96 6287.17 1962.39 6282.74 1968.71 6282.74 c + 1974.41 6282.74 1978.84 6287.17 1978.84 6292.87 c + eofill + n + 1978.84 6292.87 m + 1978.84 6299.2 1974.41 6303.62 1968.71 6303.62 c + 1962.39 6303.62 1957.96 6299.2 1957.96 6292.87 c + 1957.96 6287.17 1962.39 6282.74 1968.71 6282.74 c + 1974.41 6282.74 1978.84 6287.17 1978.84 6292.87 c + h + S + n + 2013.64 6304.26 m + 2013.64 6310.58 2009.21 6315.01 2003.52 6315.01 c + 1997.19 6315.01 1992.76 6310.58 1992.76 6304.26 c + 1992.76 6298.56 1997.19 6294.13 2003.52 6294.13 c + 2009.21 6294.13 2013.64 6298.56 2013.64 6304.26 c + eofill + n + 2013.64 6304.26 m + 2013.64 6310.58 2009.21 6315.01 2003.52 6315.01 c + 1997.19 6315.01 1992.76 6310.58 1992.76 6304.26 c + 1992.76 6298.56 1997.19 6294.13 2003.52 6294.13 c + 2009.21 6294.13 2013.64 6298.56 2013.64 6304.26 c + h + S + n + 2047.8 6309.95 m + 2047.8 6316.28 2043.38 6320.71 2037.68 6320.71 c + 2031.36 6320.71 2026.93 6316.28 2026.93 6309.95 c + 2026.93 6304.26 2031.36 6299.83 2037.68 6299.83 c + 2043.38 6299.83 2047.8 6304.26 2047.8 6309.95 c + eofill + n + 2047.8 6309.95 m + 2047.8 6316.28 2043.38 6320.71 2037.68 6320.71 c + 2031.36 6320.71 2026.93 6316.28 2026.93 6309.95 c + 2026.93 6304.26 2031.36 6299.83 2037.68 6299.83 c + 2043.38 6299.83 2047.8 6304.26 2047.8 6309.95 c + h + S + n + 2082.61 6320.71 m + 2082.61 6327.04 2078.18 6331.46 2072.48 6331.46 c + 2066.16 6331.46 2061.73 6327.04 2061.73 6320.71 c + 2061.73 6315.01 2066.16 6310.58 2072.48 6310.58 c + 2078.18 6310.58 2082.61 6315.01 2082.61 6320.71 c + eofill + n + 2082.61 6320.71 m + 2082.61 6327.04 2078.18 6331.46 2072.48 6331.46 c + 2066.16 6331.46 2061.73 6327.04 2061.73 6320.71 c + 2061.73 6315.01 2066.16 6310.58 2072.48 6310.58 c + 2078.18 6310.58 2082.61 6315.01 2082.61 6320.71 c + h + S + n + 2116.77 6328.93 m + 2116.77 6335.26 2112.34 6339.69 2106.65 6339.69 c + 2100.32 6339.69 2095.89 6335.26 2095.89 6328.93 c + 2095.89 6323.24 2100.32 6318.81 2106.65 6318.81 c + 2112.34 6318.81 2116.77 6323.24 2116.77 6328.93 c + eofill + n + 2116.77 6328.93 m + 2116.77 6335.26 2112.34 6339.69 2106.65 6339.69 c + 2100.32 6339.69 2095.89 6335.26 2095.89 6328.93 c + 2095.89 6323.24 2100.32 6318.81 2106.65 6318.81 c + 2112.34 6318.81 2116.77 6323.24 2116.77 6328.93 c + h + S + n + 2151.57 6339.69 m + 2151.57 6346.02 2147.14 6350.45 2141.45 6350.45 c + 2135.12 6350.45 2130.7 6346.02 2130.7 6339.69 c + 2130.7 6333.99 2135.12 6329.57 2141.45 6329.57 c + 2147.14 6329.57 2151.57 6333.99 2151.57 6339.69 c + eofill + n + 2151.57 6339.69 m + 2151.57 6346.02 2147.14 6350.45 2141.45 6350.45 c + 2135.12 6350.45 2130.7 6346.02 2130.7 6339.69 c + 2130.7 6333.99 2135.12 6329.57 2141.45 6329.57 c + 2147.14 6329.57 2151.57 6333.99 2151.57 6339.69 c + h + S + n + 2186.38 6352.34 m + 2186.38 6358.67 2181.95 6363.1 2176.25 6363.1 c + 2169.92 6363.1 2165.49 6358.67 2165.49 6352.34 c + 2165.49 6346.65 2169.92 6342.22 2176.25 6342.22 c + 2181.95 6342.22 2186.38 6346.65 2186.38 6352.34 c + eofill + n + 2186.38 6352.34 m + 2186.38 6358.67 2181.95 6363.1 2176.25 6363.1 c + 2169.92 6363.1 2165.49 6358.67 2165.49 6352.34 c + 2165.49 6346.65 2169.92 6342.22 2176.25 6342.22 c + 2181.95 6342.22 2186.38 6346.65 2186.38 6352.34 c + h + S + n + 2220.54 6361.84 m + 2220.54 6368.16 2216.11 6372.59 2210.42 6372.59 c + 2204.09 6372.59 2199.66 6368.16 2199.66 6361.84 c + 2199.66 6356.14 2204.09 6351.71 2210.42 6351.71 c + 2216.11 6351.71 2220.54 6356.14 2220.54 6361.84 c + eofill + n + 2220.54 6361.84 m + 2220.54 6368.16 2216.11 6372.59 2210.42 6372.59 c + 2204.09 6372.59 2199.66 6368.16 2199.66 6361.84 c + 2199.66 6356.14 2204.09 6351.71 2210.42 6351.71 c + 2216.11 6351.71 2220.54 6356.14 2220.54 6361.84 c + h + S + n + 2255.34 6376.39 m + 2255.34 6382.71 2250.91 6387.14 2245.22 6387.14 c + 2238.89 6387.14 2234.46 6382.71 2234.46 6376.39 c + 2234.46 6370.69 2238.89 6366.26 2245.22 6366.26 c + 2250.91 6366.26 2255.34 6370.69 2255.34 6376.39 c + eofill + n + 2255.34 6376.39 m + 2255.34 6382.71 2250.91 6387.14 2245.22 6387.14 c + 2238.89 6387.14 2234.46 6382.71 2234.46 6376.39 c + 2234.46 6370.69 2238.89 6366.26 2245.22 6366.26 c + 2250.91 6366.26 2255.34 6370.69 2255.34 6376.39 c + h + S + n + 2289.51 6383.98 m + 2289.51 6390.31 2285.08 6394.73 2279.38 6394.73 c + 2273.06 6394.73 2268.63 6390.31 2268.63 6383.98 c + 2268.63 6378.29 2273.06 6373.86 2279.38 6373.86 c + 2285.08 6373.86 2289.51 6378.29 2289.51 6383.98 c + eofill + n + 2289.51 6383.98 m + 2289.51 6390.31 2285.08 6394.73 2279.38 6394.73 c + 2273.06 6394.73 2268.63 6390.31 2268.63 6383.98 c + 2268.63 6378.29 2273.06 6373.86 2279.38 6373.86 c + 2285.08 6373.86 2289.51 6378.29 2289.51 6383.98 c + h + S + n + 2324.31 6399.16 m + 2324.31 6405.49 2319.88 6409.92 2314.18 6409.92 c + 2307.86 6409.92 2303.43 6405.49 2303.43 6399.16 c + 2303.43 6393.47 2307.86 6389.04 2314.18 6389.04 c + 2319.88 6389.04 2324.31 6393.47 2324.31 6399.16 c + eofill + n + 2324.31 6399.16 m + 2324.31 6405.49 2319.88 6409.92 2314.18 6409.92 c + 2307.86 6409.92 2303.43 6405.49 2303.43 6399.16 c + 2303.43 6393.47 2307.86 6389.04 2314.18 6389.04 c + 2319.88 6389.04 2324.31 6393.47 2324.31 6399.16 c + h + S + n + 2359.11 6406.76 m + 2359.11 6413.09 2354.68 6417.52 2348.98 6417.52 c + 2342.66 6417.52 2338.23 6413.09 2338.23 6406.76 c + 2338.23 6401.06 2342.66 6396.63 2348.98 6396.63 c + 2354.68 6396.63 2359.11 6401.06 2359.11 6406.76 c + eofill + n + 2359.11 6406.76 m + 2359.11 6413.09 2354.68 6417.52 2348.98 6417.52 c + 2342.66 6417.52 2338.23 6413.09 2338.23 6406.76 c + 2338.23 6401.06 2342.66 6396.63 2348.98 6396.63 c + 2354.68 6396.63 2359.11 6401.06 2359.11 6406.76 c + h + S + n + 2393.27 6416.88 m + 2393.27 6423.21 2388.85 6427.64 2383.15 6427.64 c + 2376.82 6427.64 2372.39 6423.21 2372.39 6416.88 c + 2372.39 6411.19 2376.82 6406.76 2383.15 6406.76 c + 2388.85 6406.76 2393.27 6411.19 2393.27 6416.88 c + eofill + n + 2393.27 6416.88 m + 2393.27 6423.21 2388.85 6427.64 2383.15 6427.64 c + 2376.82 6427.64 2372.39 6423.21 2372.39 6416.88 c + 2372.39 6411.19 2376.82 6406.76 2383.15 6406.76 c + 2388.85 6406.76 2393.27 6411.19 2393.27 6416.88 c + h + S + n + 2428.07 6427.64 m + 2428.07 6433.96 2423.64 6438.39 2417.95 6438.39 c + 2411.62 6438.39 2407.2 6433.96 2407.2 6427.64 c + 2407.2 6421.94 2411.62 6417.52 2417.95 6417.52 c + 2423.64 6417.52 2428.07 6421.94 2428.07 6427.64 c + eofill + n + 2428.07 6427.64 m + 2428.07 6433.96 2423.64 6438.39 2417.95 6438.39 c + 2411.62 6438.39 2407.2 6433.96 2407.2 6427.64 c + 2407.2 6421.94 2411.62 6417.52 2417.95 6417.52 c + 2423.64 6417.52 2428.07 6421.94 2428.07 6427.64 c + h + S + n + 2462.24 6437.76 m + 2462.24 6444.09 2457.81 6448.52 2452.12 6448.52 c + 2445.79 6448.52 2441.36 6444.09 2441.36 6437.76 c + 2441.36 6432.07 2445.79 6427.64 2452.12 6427.64 c + 2457.81 6427.64 2462.24 6432.07 2462.24 6437.76 c + eofill + n + 2462.24 6437.76 m + 2462.24 6444.09 2457.81 6448.52 2452.12 6448.52 c + 2445.79 6448.52 2441.36 6444.09 2441.36 6437.76 c + 2441.36 6432.07 2445.79 6427.64 2452.12 6427.64 c + 2457.81 6427.64 2462.24 6432.07 2462.24 6437.76 c + h + S + n + 2497.04 6450.41 m + 2497.04 6456.74 2492.61 6461.17 2486.92 6461.17 c + 2480.59 6461.17 2476.16 6456.74 2476.16 6450.41 c + 2476.16 6444.72 2480.59 6440.29 2486.92 6440.29 c + 2492.61 6440.29 2497.04 6444.72 2497.04 6450.41 c + eofill + n + 2497.04 6450.41 m + 2497.04 6456.74 2492.61 6461.17 2486.92 6461.17 c + 2480.59 6461.17 2476.16 6456.74 2476.16 6450.41 c + 2476.16 6444.72 2480.59 6440.29 2486.92 6440.29 c + 2492.61 6440.29 2497.04 6444.72 2497.04 6450.41 c + h + S + n + 2531.84 6458.01 m + 2531.84 6464.34 2527.41 6468.77 2521.72 6468.77 c + 2515.39 6468.77 2510.96 6464.34 2510.96 6458.01 c + 2510.96 6452.31 2515.39 6447.89 2521.72 6447.89 c + 2527.41 6447.89 2531.84 6452.31 2531.84 6458.01 c + eofill + n + 2531.84 6458.01 m + 2531.84 6464.34 2527.41 6468.77 2521.72 6468.77 c + 2515.39 6468.77 2510.96 6464.34 2510.96 6458.01 c + 2510.96 6452.31 2515.39 6447.89 2521.72 6447.89 c + 2527.41 6447.89 2531.84 6452.31 2531.84 6458.01 c + h + S + n + 2566.01 6470.03 m + 2566.01 6476.36 2561.58 6480.79 2555.89 6480.79 c + 2549.56 6480.79 2545.13 6476.36 2545.13 6470.03 c + 2545.13 6464.34 2549.56 6459.91 2555.89 6459.91 c + 2561.58 6459.91 2566.01 6464.34 2566.01 6470.03 c + eofill + n + 2566.01 6470.03 m + 2566.01 6476.36 2561.58 6480.79 2555.89 6480.79 c + 2549.56 6480.79 2545.13 6476.36 2545.13 6470.03 c + 2545.13 6464.34 2549.56 6459.91 2555.89 6459.91 c + 2561.58 6459.91 2566.01 6464.34 2566.01 6470.03 c + h + S + n + 2600.81 6475.73 m + 2600.81 6482.05 2596.38 6486.48 2590.69 6486.48 c + 2584.36 6486.48 2579.93 6482.05 2579.93 6475.73 c + 2579.93 6470.03 2584.36 6465.6 2590.69 6465.6 c + 2596.38 6465.6 2600.81 6470.03 2600.81 6475.73 c + eofill + n + 2600.81 6475.73 m + 2600.81 6482.05 2596.38 6486.48 2590.69 6486.48 c + 2584.36 6486.48 2579.93 6482.05 2579.93 6475.73 c + 2579.93 6470.03 2584.36 6465.6 2590.69 6465.6 c + 2596.38 6465.6 2600.81 6470.03 2600.81 6475.73 c + h + S + n + 2634.98 6486.48 m + 2634.98 6492.81 2630.55 6497.24 2624.85 6497.24 c + 2618.53 6497.24 2614.1 6492.81 2614.1 6486.48 c + 2614.1 6480.79 2618.53 6476.36 2624.85 6476.36 c + 2630.55 6476.36 2634.98 6480.79 2634.98 6486.48 c + eofill + n + 2634.98 6486.48 m + 2634.98 6492.81 2630.55 6497.24 2624.85 6497.24 c + 2618.53 6497.24 2614.1 6492.81 2614.1 6486.48 c + 2614.1 6480.79 2618.53 6476.36 2624.85 6476.36 c + 2630.55 6476.36 2634.98 6480.79 2634.98 6486.48 c + h + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 76.0805 597.524 m + /N96 4.36578 Tf + (0.E+00) + [2.41058 1.1969 2.89527 2.53282 2.41058 2.41058 ] pdfxs + 77.1559 616.695 m + (1.E-08) + [2.41393 1.20025 2.89858 1.4403 2.41393 2.41393 ] pdfxs + 77.1559 635.931 m + (2.E-08) + [2.41393 1.20025 2.89858 1.4403 2.41393 2.41393 ] pdfxs + 77.1559 655.102 m + (3.E-08) + [2.41393 1.20025 2.89858 1.4403 2.41393 2.41393 ] pdfxs + 77.1559 674.337 m + (4.E-08) + [2.41393 1.20025 2.89858 1.4403 2.41393 2.41393 ] pdfxs + 77.1559 693.509 m + (5.E-08) + [2.41393 1.20025 2.89858 1.4403 2.41393 2.41393 ] pdfxs + 77.1559 712.744 m + (6.E-08) + [2.41393 1.20025 2.89858 1.4403 2.41393 2.41393 ] pdfxs + 77.1559 731.915 m + (7.E-08) + [2.41393 1.20025 2.89858 1.4403 2.41393 2.41393 ] pdfxs + 91.5821 588.413 m + /N96 6.01091 Tf + (05001000150020002500) + [31.1937 3.35345 3.35345 26.1313 3.35345 3.35345 3.35345 24.4865 3.35345 3.35345 3.35345 + 24.4869 3.35344 3.35347 3.35344 24.4865 3.35344 3.35347 3.35344 3.35347 ] pdfxs + 133.532 581.073 m + /N98 6.01091 Tf + (Number of LLU Bench iterations) + [4.3443 3.677 5.34822 3.67699 3.3465 2.34276 1.64509 3.67699 2.00597 1.64509 3.67699 + 3.67699 4.34431 1.64509 4.3443 3.3465 3.67699 3.3465 3.67699 1.64509 1.67546 2.00597 + 3.34651 2.34276 3.34651 2.00596 1.67548 3.67701 3.67699 3.34651 ] pdfxs + 75.0047 627.895 m + /N98 [0 6.01091 -6.01091 0 0 0] Tf + (Time per node dereference) + [3.67819 1.6766 5.34936 3.34768 1.6451 3.67814 3.34768 2.34395 1.64506 3.67819 3.67814 + 3.67819 3.34768 1.64506 3.67819 3.34768 2.3439 3.34768 2.00715 3.34768 2.34395 3.34768 + 3.67814 3.34768 3.34768 ] pdfys + Q + n + 2231.89 6581.39 376.473 401.781 re + 1 1 1 sc + f + 0.632645 w + n + 2231.26 6581.39 377.105 402.414 re + 0 0 0 sc + S + 2.53084 w + n + 2245.22 6947.11 m + 2305.96 6947.11 l + 0 0 0.501907 sc + S + n + 2275.59 6957.86 m + 2286.34 6947.11 l + 2275.59 6936.35 l + 2264.83 6947.11 l + 2275.59 6957.86 l + eofill + n + 2275.59 6957.86 m + 2286.34 6947.11 l + 2275.59 6936.35 l + 2264.83 6947.11 l + 2275.59 6957.86 l + h + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 231.795 693.066 m + /N96 5.06181 Tf + (Normal 64) + [3.64894 2.80865 1.67981 4.21072 2.80865 1.11803 1.392 2.80868 2.80865 ] pdfxs + Q + n + 2245.22 6880.04 m + 2305.96 6880.04 l + 1 0 1 sc + S + n + 2264.83 6869.91 20.8789 20.8789 re + eofill + 0 J + n + 2264.83 6869.91 20.8789 20.8789 re + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 231.795 686.359 m + /N96 5.06181 Tf + (PoolAlloc 64) + [3.3625 2.80055 2.80052 1.10991 3.3625 1.10991 1.10991 2.80052 2.51711 1.392 2.80055 + 2.80055 ] pdfxs + Q + 1 J + n + 2245.22 6812.97 m + 2305.96 6812.97 l + 0 0 0 sc + S + n + 2275.59 6823.73 m + 2286.34 6802.21 l + 2264.83 6802.21 l + 2275.59 6823.73 l + eofill + n + 2275.59 6823.73 m + 2286.34 6802.21 l + 2264.83 6802.21 l + 2275.59 6823.73 l + h + S + q + 10 0 0 10 0 0 cm + 231.795 679.652 m + /N96 5.06181 Tf + (PtrComp 64) + [3.36533 1.39622 1.67454 3.64367 2.80338 4.20547 2.80338 1.392 2.80341 2.80338 ] pdfxs + Q + n + 2245.22 6745.9 m + 2305.96 6745.9 l + 1 0.399857 0 sc + S + n + 2275.59 6745.9 m + 2264.83 6756.66 l + S + n + 2275.59 6745.9 m + 2286.34 6735.14 l + S + n + 2275.59 6745.9 m + 2264.83 6735.14 l + S + n + 2275.59 6745.9 m + 2286.34 6756.66 l + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 231.795 672.945 m + /N96 5.06181 Tf + (Normal 32) + [3.64894 2.80865 1.67981 4.21072 2.80865 1.11803 1.392 2.80868 2.80865 ] pdfxs + Q + n + 2245.22 6678.83 m + 2305.96 6678.83 l + 0.501907 0 0.501907 sc + S + n + 2275.59 6678.83 m + 2264.83 6689.59 l + S + n + 2275.59 6678.83 m + 2286.34 6668.07 l + S + n + 2275.59 6678.83 m + 2264.83 6668.07 l + S + n + 2275.59 6678.83 m + 2286.34 6689.59 l + S + n + 2275.59 6678.83 m + 2275.59 6689.59 l + S + n + 2275.59 6678.83 m + 2275.59 6668.07 l + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 231.795 666.238 m + /N96 5.06181 Tf + (PoolAlloc 32) + [3.3625 2.80055 2.80052 1.10991 3.3625 1.10991 1.10991 2.80052 2.51711 1.392 2.80055 + 2.80055 ] pdfxs + Q + n + 2245.22 6611.76 m + 2305.96 6611.76 l + 0.501907 0 0 sc + S + n + 2285.71 6611.76 m + 2285.71 6618.09 2281.28 6622.52 2275.59 6622.52 c + 2269.26 6622.52 2264.83 6618.09 2264.83 6611.76 c + 2264.83 6606.07 2269.26 6601.64 2275.59 6601.64 c + 2281.28 6601.64 2285.71 6606.07 2285.71 6611.76 c + eofill + n + 2285.71 6611.76 m + 2285.71 6618.09 2281.28 6622.52 2275.59 6622.52 c + 2269.26 6622.52 2264.83 6618.09 2264.83 6611.76 c + 2264.83 6606.07 2269.26 6601.64 2275.59 6601.64 c + 2281.28 6601.64 2285.71 6606.07 2285.71 6611.76 c + h + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 231.795 659.531 m + /N96 5.06181 Tf + (PtrComp 32) + [3.36533 1.39622 1.67454 3.64367 2.80338 4.20547 2.80338 1.392 2.80341 2.80338 ] pdfxs + Q + Q + {} settransfer + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 89.5199 569.16 m + /N17 8.96638 Tf + (\(a\)1GhzUltraSPARC-IIIi-1MBCache) + [3.60274 4.62111 6.60274 4.62111 7.25576 5.10015 7.14189 6.90289 2.57565 3.60273 3.59993 + 4.62112 5.10016 5.5166 6.90289 6.53556 6.65758 3.06372 3.54035 3.54004 3.30019 5.7558 + 6.12364 4.62109 8.46031 9.54065 6.65759 4.62109 3.84188 5.10017 4.0785 ] pdfxs + Q + {} settransfer + q + n + 3310.79 5768.34 m + 5398.79 5768.34 l + 5398.79 7381.79 l + 3310.79 7381.79 l + h + W + n + n + 3324.08 5780.99 2054.46 1590.04 re + [/DeviceRGB] cs 1 1 1 sc + + f + n + 3581.6 5968.28 1721.02 1364.79 re + eofill + Q + q + n + 3581.6 6194.79 m + 5302.62 6194.79 l + 5302.62 6195.43 l + 3581.6 6195.43 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 3581.6 6195.43 m + 5302.62 6195.43 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 3581.6 6422.57 m + 5302.62 6422.57 l + 5302.62 6423.21 l + 3581.6 6423.21 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 3581.6 6423.21 m + 5302.62 6423.21 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 3581.6 6649.73 m + 5302.62 6649.73 l + 5302.62 6650.36 l + 3581.6 6650.36 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 3581.6 6650.36 m + 5302.62 6650.36 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 3581.6 7335.6 m + 3581.6 5965.75 l + 5302.62 5965.75 l + 5302.62 7335.6 l + 3664.49 7178.05 m + 3664.49 6775.64 l + 4042.23 6775.64 l + 4042.23 7178.05 l + h + eoclip + n + 0.632645 w + 1 J + 1 j + n + 3581.6 6878.14 m + 5302.62 6878.14 l + [/DeviceRGB] cs 0 0 0 sc + + S + n + 3581.6 7105.29 m + 5302.62 7105.29 l + S + Q + q + n + 3581.6 7332.44 m + 5302.62 7332.44 l + 5302.62 7333.07 l + 3581.6 7333.07 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 3581.6 7333.07 m + 5302.62 7333.07 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 3313.36 7381.79 m + 3313.36 5770.87 l + 5389.34 5770.87 l + 5389.34 7381.79 l + 3664.52 7178.05 m + 3664.52 6775.64 l + 4042.26 6775.64 l + 4042.26 7178.05 l + h + eoclip + n + 2.53084 w + 1 j + n + 3581.64 5968.28 1721.02 1364.79 re + [/DeviceRGB] cs 0.501907 0.501907 0.501907 sc + + S + Q + q + n + 3310.79 5768.34 m + 5398.79 5768.34 l + 5398.79 7381.79 l + 3310.79 7381.79 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 3581.6 7333.07 m + 3581.6 5968.28 l + [/DeviceRGB] cs 0 0 0 sc + + S + n + 3567.68 5968.28 m + 3581.6 5968.28 l + S + n + 3567.68 6195.43 m + 3581.6 6195.43 l + S + n + 3567.68 6423.21 m + 3581.6 6423.21 l + S + n + 3567.68 6650.36 m + 3581.6 6650.36 l + S + n + 3567.68 6878.14 m + 3581.6 6878.14 l + S + n + 3567.68 7105.29 m + 3581.6 7105.29 l + S + n + 3567.68 7333.07 m + 3581.6 7333.07 l + S + n + 3581.6 5968.28 m + 5302.62 5968.28 l + S + n + 3581.6 5949.93 m + 3581.6 5968.28 l + S + n + 4011.86 5949.93 m + 4011.86 5968.28 l + S + n + 4442.11 5949.93 m + 4442.11 5968.28 l + S + n + 4872.36 5949.93 m + 4872.36 5968.28 l + S + n + 5302.62 5949.93 m + 5302.62 5968.28 l + S + 2.53084 w + n + 3770.82 6182.77 m + 3787.91 6199.86 l + 0 0 0.501907 sc + S + n + 3787.91 6199.86 m + 3805.62 6199.86 l + S + n + 3805.62 6199.86 m + 3822.7 6200.49 l + S + n + 3822.7 6200.49 m + 3839.79 6200.49 l + S + n + 3839.79 6200.49 m + 3856.87 6172.02 l + S + n + 3856.87 6172.02 m + 3873.96 6193.53 l + S + n + 3873.96 6193.53 m + 3891.67 6198.59 l + S + n + 3891.67 6198.59 m + 3908.75 6221.37 l + S + n + 3908.75 6221.37 m + 3925.84 6218.84 l + S + n + 3925.84 6218.84 m + 3942.92 6234.66 l + S + n + 3942.92 6234.66 m + 3960.01 6237.82 l + S + n + 3960.01 6237.82 m + 3977.72 6239.09 l + S + n + 3977.72 6239.09 m + 3994.8 6263.13 l + S + n + 3994.8 6263.13 m + 4011.89 6302.36 l + S + n + 4011.89 6302.36 m + 4028.97 6296.03 l + S + n + 4028.97 6296.03 m + 4046.06 6326.4 l + S + n + 4046.06 6326.4 m + 4063.77 6367.53 l + S + n + 4063.77 6367.53 m + 4080.86 6417.52 l + S + n + 4080.86 6417.52 m + 4097.94 6447.25 l + S + n + 4097.94 6447.25 m + 4115.02 6470.66 l + S + n + 4115.02 6470.66 m + 4132.11 6502.93 l + S + n + 4132.11 6502.93 m + 4149.82 6543.43 l + S + n + 4149.82 6543.43 m + 4166.91 6566.2 l + S + n + 4166.91 6566.2 m + 4183.99 6595.94 l + S + n + 4183.99 6595.94 m + 4201.07 6623.15 l + S + n + 4201.07 6623.15 m + 4218.16 6644.66 l + S + n + 4218.16 6644.66 m + 4235.88 6672.5 l + S + n + 4235.88 6672.5 m + 4252.96 6706.67 l + S + n + 4252.96 6706.67 m + 4270.04 6742.73 l + S + n + 4270.04 6742.73 m + 4287.12 6759.82 l + S + n + 4287.12 6759.82 m + 4304.21 6760.45 l + S + n + 4304.21 6760.45 m + 4321.93 6765.52 l + S + n + 4321.93 6765.52 m + 4339.01 6796.52 l + S + n + 4339.01 6796.52 m + 4356.09 6799.68 l + S + n + 4356.09 6799.68 m + 4373.18 6862.32 l + S + n + 4373.18 6862.32 m + 4390.26 6847.77 l + S + n + 4390.26 6847.77 m + 4407.98 6835.11 l + S + n + 4407.98 6835.11 m + 4425.06 6843.34 l + S + n + 4425.06 6843.34 m + 4442.14 6918 l + S + n + 4442.14 6918 m + 4459.23 7042.65 l + S + n + 4459.23 7042.65 m + 4476.31 7083.14 l + S + n + 4476.31 7083.14 m + 4494.03 7028.73 l + S + n + 4494.03 7028.73 m + 4511.11 7047.71 l + S + n + 4511.11 7047.71 m + 4528.2 7033.79 l + S + n + 4528.2 7033.79 m + 4545.28 7109.72 l + S + n + 4545.28 7109.72 m + 4562.36 7101.49 l + S + n + 4562.36 7101.49 m + 4580.08 7109.09 l + S + n + 4580.08 7109.09 m + 4597.16 7131.86 l + S + n + 4597.16 7131.86 m + 4614.25 6885.73 l + S + n + 4614.25 6885.73 m + 4657.27 7007.85 l + S + n + 4657.27 7007.85 m + 4700.3 6899.02 l + S + n + 4700.3 6899.02 m + 4743.32 6911.04 l + S + n + 4743.32 6911.04 m + 4786.35 6932.55 l + S + n + 4786.35 6932.55 m + 4829.38 6932.55 l + S + n + 4829.38 6932.55 m + 4872.4 7101.49 l + S + n + 4872.4 7101.49 m + 4915.43 7179.32 l + S + n + 4915.43 7179.32 m + 4958.45 7191.34 l + S + n + 4958.45 7191.34 m + 5001.48 7190.71 l + S + n + 5001.48 7190.71 m + 5044.5 7195.14 l + S + n + 5044.5 7195.14 m + 5087.53 7214.12 l + S + n + 5087.53 7214.12 m + 5130.55 7247.02 l + S + n + 5130.55 7247.02 m + 5173.58 7221.08 l + S + n + 5173.58 7221.08 m + 5216.6 7257.78 l + S + n + 5216.6 7257.78 m + 5259.63 7264.1 l + S + n + 3770.82 6182.77 m + 3787.91 6172.02 l + 1 0 1 sc + S + n + 3787.91 6172.02 m + 3805.62 6168.22 l + S + n + 3805.62 6168.22 m + 3822.7 6167.59 l + S + n + 3822.7 6167.59 m + 3839.79 6165.05 l + S + n + 3839.79 6165.05 m + 3856.87 6143.54 l + S + n + 3856.87 6143.54 m + 3873.96 6148.61 l + S + n + 3873.96 6148.61 m + 3891.67 6169.48 l + S + n + 3891.67 6169.48 m + 3908.75 6158.1 l + S + n + 3908.75 6158.1 m + 3925.84 6163.79 l + S + n + 3925.84 6163.79 m + 3942.92 6159.36 l + S + n + 3942.92 6159.36 m + 3960.01 6152.4 l + S + n + 3960.01 6152.4 m + 3977.72 6165.05 l + S + n + 3977.72 6165.05 m + 3994.8 6149.87 l + S + n + 3994.8 6149.87 m + 4011.89 6158.1 l + S + n + 4011.89 6158.1 m + 4028.97 6161.26 l + S + n + 4028.97 6161.26 m + 4046.06 6165.05 l + S + n + 4046.06 6165.05 m + 4063.77 6151.14 l + S + n + 4063.77 6151.14 m + 4080.86 6169.48 l + S + n + 4080.86 6169.48 m + 4097.94 6171.38 l + S + n + 4097.94 6171.38 m + 4115.02 6172.02 l + S + n + 4115.02 6172.02 m + 4132.11 6184.67 l + S + n + 4132.11 6184.67 m + 4149.82 6172.02 l + S + n + 4149.82 6172.02 m + 4166.91 6194.16 l + S + n + 4166.91 6194.16 m + 4183.99 6191.63 l + S + n + 4183.99 6191.63 m + 4201.07 6209.98 l + S + n + 4201.07 6209.98 m + 4218.16 6216.31 l + S + n + 4218.16 6216.31 m + 4235.88 6257.43 l + S + n + 4235.88 6257.43 m + 4252.96 6242.88 l + S + n + 4252.96 6242.88 m + 4270.04 6270.09 l + S + n + 4270.04 6270.09 m + 4287.12 6278.31 l + S + n + 4287.12 6278.31 m + 4304.21 6316.28 l + S + n + 4304.21 6316.28 m + 4321.93 6306.79 l + S + n + 4321.93 6306.79 m + 4339.01 6332.1 l + S + n + 4339.01 6332.1 m + 4356.09 6335.89 l + S + n + 4356.09 6335.89 m + 4373.18 6356.77 l + S + n + 4373.18 6356.77 m + 4390.26 6381.45 l + S + n + 4390.26 6381.45 m + 4407.98 6387.78 l + S + n + 4407.98 6387.78 m + 4425.06 6386.51 l + S + n + 4425.06 6386.51 m + 4442.14 6411.82 l + S + n + 4442.14 6411.82 m + 4459.23 6414.98 l + S + n + 4459.23 6414.98 m + 4476.31 6421.94 l + S + n + 4476.31 6421.94 m + 4494.03 6437.76 l + S + n + 4494.03 6437.76 m + 4511.11 6447.25 l + S + n + 4511.11 6447.25 m + 4528.2 6520.65 l + S + n + 4528.2 6520.65 m + 4545.28 6468.13 l + S + n + 4545.28 6468.13 m + 4562.36 6466.87 l + S + n + 4562.36 6466.87 m + 4580.08 6476.36 l + S + n + 4580.08 6476.36 m + 4597.16 6482.68 l + S + n + 4597.16 6482.68 m + 4614.25 6537.73 l + S + n + 4614.25 6537.73 m + 4657.27 6533.3 l + S + n + 4657.27 6533.3 m + 4700.3 6558.61 l + S + n + 4700.3 6558.61 m + 4743.32 6564.31 l + S + n + 4743.32 6564.31 m + 4786.35 6639.6 l + S + n + 4786.35 6639.6 m + 4829.38 6694.02 l + S + n + 4829.38 6694.02 m + 4872.4 6688.32 l + S + n + 4872.4 6688.32 m + 4915.43 6702.88 l + S + n + 4915.43 6702.88 m + 4958.45 6639.6 l + S + n + 4958.45 6639.6 m + 5001.48 6707.3 l + S + n + 5001.48 6707.3 m + 5044.5 6664.28 l + S + n + 5044.5 6664.28 m + 5087.53 6731.35 l + S + n + 5087.53 6731.35 m + 5130.55 6683.89 l + S + n + 5130.55 6683.89 m + 5173.58 6742.1 l + S + n + 5173.58 6742.1 m + 5216.6 6707.94 l + S + n + 5216.6 6707.94 m + 5259.63 6755.39 l + S + n + 3770.82 6075.84 m + 3787.91 6058.76 l + 0 0 0 sc + S + n + 3787.91 6058.76 m + 3805.62 6077.11 l + S + n + 3805.62 6077.11 m + 3822.7 6080.27 l + S + n + 3822.7 6080.27 m + 3839.79 6070.78 l + S + n + 3839.79 6070.78 m + 3856.87 6070.15 l + S + n + 3856.87 6070.15 m + 3873.96 6103.68 l + S + n + 3873.96 6103.68 m + 3891.67 6089.13 l + S + n + 3891.67 6089.13 m + 3908.75 6076.47 l + S + n + 3908.75 6076.47 m + 3925.84 6065.72 l + S + n + 3925.84 6065.72 m + 3942.92 6086.6 l + S + n + 3942.92 6086.6 m + 3960.01 6075.84 l + S + n + 3960.01 6075.84 m + 3977.72 6091.66 l + S + n + 3977.72 6091.66 m + 3994.8 6058.76 l + S + n + 3994.8 6058.76 m + 4011.89 6093.56 l + S + n + 4011.89 6093.56 m + 4028.97 6084.07 l + S + n + 4028.97 6084.07 m + 4046.06 6075.84 l + S + n + 4046.06 6075.84 m + 4063.77 6084.7 l + S + n + 4063.77 6084.7 m + 4080.86 6076.47 l + S + n + 4080.86 6076.47 m + 4097.94 6084.07 l + S + n + 4097.94 6084.07 m + 4115.02 6077.11 l + S + n + 4115.02 6077.11 m + 4132.11 6082.8 l + S + n + 4132.11 6082.8 m + 4149.82 6076.47 l + S + n + 4149.82 6076.47 m + 4166.91 6080.9 l + S + n + 4166.91 6080.9 m + 4183.99 6085.33 l + S + n + 4183.99 6085.33 m + 4201.07 6079 l + S + n + 4201.07 6079 m + 4218.16 6082.8 l + S + n + 4218.16 6082.8 m + 4235.88 6076.47 l + S + n + 4235.88 6076.47 m + 4252.96 6079.64 l + S + n + 4252.96 6079.64 m + 4270.04 6082.17 l + S + n + 4270.04 6082.17 m + 4287.12 6084.7 l + S + n + 4287.12 6084.7 m + 4304.21 6079 l + S + n + 4304.21 6079 m + 4321.93 6080.9 l + S + n + 4321.93 6080.9 m + 4339.01 6075.84 l + S + n + 4339.01 6075.84 m + 4356.09 6084.07 l + S + n + 4356.09 6084.07 m + 4373.18 6079 l + S + n + 4373.18 6079 m + 4390.26 6080.27 l + S + n + 4390.26 6080.27 m + 4407.98 6081.54 l + S + n + 4407.98 6081.54 m + 4425.06 6082.17 l + S + n + 4425.06 6082.17 m + 4442.14 6077.74 l + S + n + 4442.14 6077.74 m + 4459.23 6079 l + S + n + 4459.23 6079 m + 4476.31 6084.07 l + S + n + 4476.31 6084.07 m + 4494.03 6079.64 l + S + n + 4494.03 6079.64 m + 4511.11 6080.27 l + S + n + 4511.11 6080.27 m + 4528.2 6080.27 l + S + n + 4528.2 6080.27 m + 4545.28 6080.9 l + S + n + 4545.28 6080.9 m + 4562.36 6080.9 l + S + n + 4562.36 6080.9 m + 4580.08 6084.7 l + S + n + 4580.08 6084.7 m + 4597.16 6084.7 l + S + n + 4597.16 6084.7 m + 4614.25 6087.86 l + S + n + 4614.25 6087.86 m + 4657.27 6098.62 l + S + n + 4657.27 6098.62 m + 4700.3 6097.99 l + S + n + 4700.3 6097.99 m + 4743.32 6111.91 l + S + n + 4743.32 6111.91 m + 4786.35 6111.91 l + S + n + 4786.35 6111.91 m + 4829.38 6129.62 l + S + n + 4829.38 6129.62 m + 4872.4 6135.32 l + S + n + 4872.4 6135.32 m + 4915.43 6139.75 l + S + n + 4915.43 6139.75 m + 4958.45 6151.77 l + S + n + 4958.45 6151.77 m + 5001.48 6161.89 l + S + n + 5001.48 6161.89 m + 5044.5 6170.75 l + S + n + 5044.5 6170.75 m + 5087.53 6176.45 l + S + n + 5087.53 6176.45 m + 5130.55 6194.16 l + S + n + 5130.55 6194.16 m + 5173.58 6224.53 l + S + n + 5173.58 6224.53 m + 5216.6 6225.8 l + S + n + 5216.6 6225.8 m + 5259.63 6255.54 l + S + n + 3770.82 6075.84 m + 3787.91 6149.87 l + 1 0.399857 0 sc + S + n + 3787.91 6149.87 m + 3805.62 6122.66 l + S + n + 3805.62 6122.66 m + 3822.7 6101.15 l + S + n + 3822.7 6101.15 m + 3839.79 6142.28 l + S + n + 3839.79 6142.28 m + 3856.87 6120.77 l + S + n + 3856.87 6120.77 m + 3873.96 6103.68 l + S + n + 3873.96 6103.68 m + 3891.67 6129.62 l + S + n + 3891.67 6129.62 m + 3908.75 6112.54 l + S + n + 3908.75 6112.54 m + 3925.84 6130.89 l + S + n + 3925.84 6130.89 m + 3942.92 6116.34 l + S + n + 3942.92 6116.34 m + 3960.01 6129.62 l + S + n + 3960.01 6129.62 m + 3977.72 6116.34 l + S + n + 3977.72 6116.34 m + 3994.8 6127.09 l + S + n + 3994.8 6127.09 m + 4011.89 6114.44 l + S + n + 4011.89 6114.44 m + 4028.97 6122.66 l + S + n + 4028.97 6122.66 m + 4046.06 6111.27 l + S + n + 4046.06 6111.27 m + 4063.77 6134.68 l + S + n + 4063.77 6134.68 m + 4080.86 6107.48 l + S + n + 4080.86 6107.48 m + 4097.94 6127.73 l + S + n + 4097.94 6127.73 m + 4115.02 6117.6 l + S + n + 4115.02 6117.6 m + 4132.11 6120.77 l + S + n + 4132.11 6120.77 m + 4149.82 6123.93 l + S + n + 4149.82 6123.93 m + 4166.91 6115.07 l + S + n + 4166.91 6115.07 m + 4183.99 6127.73 l + S + n + 4183.99 6127.73 m + 4201.07 6119.5 l + S + n + 4201.07 6119.5 m + 4218.16 6111.27 l + S + n + 4218.16 6111.27 m + 4235.88 6122.03 l + S + n + 4235.88 6122.03 m + 4252.96 6122.66 l + S + n + 4252.96 6122.66 m + 4270.04 6123.3 l + S + n + 4270.04 6123.3 m + 4287.12 6115.7 l + S + n + 4287.12 6115.7 m + 4304.21 6123.93 l + S + n + 4304.21 6123.93 m + 4321.93 6123.3 l + S + n + 4321.93 6123.3 m + 4339.01 6130.26 l + S + n + 4339.01 6130.26 m + 4356.09 6129.62 l + S + n + 4356.09 6129.62 m + 4373.18 6134.68 l + S + n + 4373.18 6134.68 m + 4390.26 6133.42 l + S + n + 4390.26 6133.42 m + 4407.98 6138.48 l + S + n + 4407.98 6138.48 m + 4425.06 6153.04 l + S + n + 4425.06 6153.04 m + 4442.14 6151.14 l + S + n + 4442.14 6151.14 m + 4459.23 6158.73 l + S + n + 4459.23 6158.73 m + 4476.31 6170.75 l + S + n + 4476.31 6170.75 m + 4494.03 6172.65 l + S + n + 4494.03 6172.65 m + 4511.11 6196.69 l + S + n + 4511.11 6196.69 m + 4528.2 6196.69 l + S + n + 4528.2 6196.69 m + 4545.28 6193.53 l + S + n + 4545.28 6193.53 m + 4562.36 6201.12 l + S + n + 4562.36 6201.12 m + 4580.08 6212.51 l + S + n + 4580.08 6212.51 m + 4597.16 6215.68 l + S + n + 4597.16 6215.68 m + 4614.25 6233.39 l + S + n + 4614.25 6233.39 m + 4657.27 6272.62 l + S + n + 4657.27 6272.62 m + 4700.3 6261.86 l + S + n + 4700.3 6261.86 m + 4743.32 6323.87 l + S + n + 4743.32 6323.87 m + 4786.35 6330.83 l + S + n + 4786.35 6330.83 m + 4829.38 6402.96 l + S + n + 4829.38 6402.96 m + 4872.4 6423.21 l + S + n + 4872.4 6423.21 m + 4915.43 6440.29 l + S + n + 4915.43 6440.29 m + 4958.45 6439.66 l + S + n + 4958.45 6439.66 m + 5001.48 6461.17 l + S + n + 5001.48 6461.17 m + 5044.5 6479.52 l + S + n + 5044.5 6479.52 m + 5087.53 6458.01 l + S + n + 5087.53 6458.01 m + 5130.55 6437.76 l + S + n + 5130.55 6437.76 m + 5173.58 6499.14 l + S + n + 5173.58 6499.14 m + 5216.6 6509.89 l + S + n + 5216.6 6509.89 m + 5259.63 6489.01 l + S + n + 3770.82 6075.84 m + 3787.91 6058.76 l + 0.501907 0 0.501907 sc + S + n + 3787.91 6058.76 m + 3805.62 6122.66 l + S + n + 3805.62 6122.66 m + 3822.7 6034.71 l + S + n + 3822.7 6034.71 m + 3839.79 6084.07 l + S + n + 3839.79 6084.07 m + 3856.87 6120.77 l + S + n + 3856.87 6120.77 m + 3873.96 6058.12 l + S + n + 3873.96 6058.12 m + 3891.67 6089.13 l + S + n + 3891.67 6089.13 m + 3908.75 6076.47 l + S + n + 3908.75 6076.47 m + 3925.84 6065.72 l + S + n + 3925.84 6065.72 m + 3942.92 6086.6 l + S + n + 3942.92 6086.6 m + 3960.01 6075.84 l + S + n + 3960.01 6075.84 m + 3977.72 6091.66 l + S + n + 3977.72 6091.66 m + 3994.8 6081.54 l + S + n + 3994.8 6081.54 m + 4011.89 6093.56 l + S + n + 4011.89 6093.56 m + 4028.97 6084.07 l + S + n + 4028.97 6084.07 m + 4046.06 6075.84 l + S + n + 4046.06 6075.84 m + 4063.77 6084.7 l + S + n + 4063.77 6084.7 m + 4080.86 6076.47 l + S + n + 4080.86 6076.47 m + 4097.94 6084.07 l + S + n + 4097.94 6084.07 m + 4115.02 6077.11 l + S + n + 4115.02 6077.11 m + 4132.11 6095.46 l + S + n + 4132.11 6095.46 m + 4149.82 6087.86 l + S + n + 4149.82 6087.86 m + 4166.91 6080.9 l + S + n + 4166.91 6080.9 m + 4183.99 6085.33 l + S + n + 4183.99 6085.33 m + 4201.07 6079 l + S + n + 4201.07 6079 m + 4218.16 6092.29 l + S + n + 4218.16 6092.29 m + 4235.88 6076.47 l + S + n + 4235.88 6076.47 m + 4252.96 6088.5 l + S + n + 4252.96 6088.5 m + 4270.04 6082.17 l + S + n + 4270.04 6082.17 m + 4287.12 6084.7 l + S + n + 4287.12 6084.7 m + 4304.21 6079 l + S + n + 4304.21 6079 m + 4321.93 6080.9 l + S + n + 4321.93 6080.9 m + 4339.01 6082.8 l + S + n + 4339.01 6082.8 m + 4356.09 6084.07 l + S + n + 4356.09 6084.07 m + 4373.18 6079 l + S + n + 4373.18 6079 m + 4390.26 6086.6 l + S + n + 4390.26 6086.6 m + 4407.98 6081.54 l + S + n + 4407.98 6081.54 m + 4425.06 6082.17 l + S + n + 4425.06 6082.17 m + 4442.14 6082.8 l + S + n + 4442.14 6082.8 m + 4459.23 6079 l + S + n + 4459.23 6079 m + 4476.31 6084.07 l + S + n + 4476.31 6084.07 m + 4494.03 6084.7 l + S + n + 4494.03 6084.7 m + 4511.11 6080.27 l + S + n + 4511.11 6080.27 m + 4528.2 6084.7 l + S + n + 4528.2 6084.7 m + 4545.28 6089.13 l + S + n + 4545.28 6089.13 m + 4562.36 6089.13 l + S + n + 4562.36 6089.13 m + 4580.08 6092.29 l + S + n + 4580.08 6092.29 m + 4597.16 6092.29 l + S + n + 4597.16 6092.29 m + 4614.25 6106.21 l + S + n + 4614.25 6106.21 m + 4657.27 6118.87 l + S + n + 4657.27 6118.87 m + 4700.3 6116.97 l + S + n + 4700.3 6116.97 m + 4743.32 6120.13 l + S + n + 4743.32 6120.13 m + 4786.35 6133.42 l + S + n + 4786.35 6133.42 m + 4829.38 6174.55 l + S + n + 4829.38 6174.55 m + 4872.4 6156.2 l + S + n + 4872.4 6156.2 m + 4915.43 6174.55 l + S + n + 4915.43 6174.55 m + 4958.45 6158.1 l + S + n + 4958.45 6158.1 m + 5001.48 6187.2 l + S + n + 5001.48 6187.2 m + 5044.5 6185.3 l + S + n + 5044.5 6185.3 m + 5087.53 6193.53 l + S + n + 5087.53 6193.53 m + 5130.55 6203.65 l + S + n + 5130.55 6203.65 m + 5173.58 6213.78 l + S + n + 5173.58 6213.78 m + 5216.6 6243.52 l + S + n + 5216.6 6243.52 m + 5259.63 6234.66 l + S + n + 3770.82 6075.84 m + 3787.91 6081.54 l + 0.501907 0 0 sc + S + n + 3787.91 6081.54 m + 3805.62 6045.47 l + S + n + 3805.62 6045.47 m + 3822.7 6101.15 l + S + n + 3822.7 6101.15 m + 3839.79 6096.72 l + S + n + 3839.79 6096.72 m + 3856.87 6097.99 l + S + n + 3856.87 6097.99 m + 3873.96 6103.68 l + S + n + 3873.96 6103.68 m + 3891.67 6089.13 l + S + n + 3891.67 6089.13 m + 3908.75 6112.54 l + S + n + 3908.75 6112.54 m + 3925.84 6098.62 l + S + n + 3925.84 6098.62 m + 3942.92 6116.34 l + S + n + 3942.92 6116.34 m + 3960.01 6103.05 l + S + n + 3960.01 6103.05 m + 3977.72 6116.34 l + S + n + 3977.72 6116.34 m + 3994.8 6104.31 l + S + n + 3994.8 6104.31 m + 4011.89 6114.44 l + S + n + 4011.89 6114.44 m + 4028.97 6103.05 l + S + n + 4028.97 6103.05 m + 4046.06 6111.27 l + S + n + 4046.06 6111.27 m + 4063.77 6101.15 l + S + n + 4063.77 6101.15 m + 4080.86 6107.48 l + S + n + 4080.86 6107.48 m + 4097.94 6113.17 l + S + n + 4097.94 6113.17 m + 4115.02 6104.31 l + S + n + 4115.02 6104.31 m + 4132.11 6108.11 l + S + n + 4132.11 6108.11 m + 4149.82 6111.91 l + S + n + 4149.82 6111.91 m + 4166.91 6103.68 l + S + n + 4166.91 6103.68 m + 4183.99 6106.84 l + S + n + 4183.99 6106.84 m + 4201.07 6109.38 l + S + n + 4201.07 6109.38 m + 4218.16 6101.78 l + S + n + 4218.16 6101.78 m + 4235.88 6112.54 l + S + n + 4235.88 6112.54 m + 4252.96 6105.58 l + S + n + 4252.96 6105.58 m + 4270.04 6106.84 l + S + n + 4270.04 6106.84 m + 4287.12 6108.11 l + S + n + 4287.12 6108.11 m + 4304.21 6108.74 l + S + n + 4304.21 6108.74 m + 4321.93 6102.41 l + S + n + 4321.93 6102.41 m + 4339.01 6110.01 l + S + n + 4339.01 6110.01 m + 4356.09 6110.01 l + S + n + 4356.09 6110.01 m + 4373.18 6103.68 l + S + n + 4373.18 6103.68 m + 4390.26 6110.01 l + S + n + 4390.26 6110.01 m + 4407.98 6104.31 l + S + n + 4407.98 6104.31 m + 4425.06 6109.38 l + S + n + 4425.06 6109.38 m + 4442.14 6109.38 l + S + n + 4442.14 6109.38 m + 4459.23 6108.74 l + S + n + 4459.23 6108.74 m + 4476.31 6108.11 l + S + n + 4476.31 6108.11 m + 4494.03 6112.54 l + S + n + 4494.03 6112.54 m + 4511.11 6106.84 l + S + n + 4511.11 6106.84 m + 4528.2 6115.07 l + S + n + 4528.2 6115.07 m + 4545.28 6110.01 l + S + n + 4545.28 6110.01 m + 4562.36 6116.97 l + S + n + 4562.36 6116.97 m + 4580.08 6115.7 l + S + n + 4580.08 6115.7 m + 4597.16 6118.23 l + S + n + 4597.16 6118.23 m + 4614.25 6131.52 l + S + n + 4614.25 6131.52 m + 4657.27 6138.48 l + S + n + 4657.27 6138.48 m + 4700.3 6141.64 l + S + n + 4700.3 6141.64 m + 4743.32 6151.77 l + S + n + 4743.32 6151.77 m + 4786.35 6157.46 l + S + n + 4786.35 6157.46 m + 4829.38 6164.42 l + S + n + 4829.38 6164.42 m + 4872.4 6172.65 l + S + n + 4872.4 6172.65 m + 4915.43 6183.41 l + S + n + 4915.43 6183.41 m + 4958.45 6196.69 l + S + n + 4958.45 6196.69 m + 5001.48 6208.08 l + S + n + 5001.48 6208.08 m + 5044.5 6219.47 l + S + n + 5044.5 6219.47 m + 5087.53 6222.63 l + S + n + 5087.53 6222.63 m + 5130.55 6234.02 l + S + n + 5130.55 6234.02 m + 5173.58 6241.62 l + S + n + 5173.58 6241.62 m + 5216.6 6244.78 l + S + n + 5216.6 6244.78 m + 5259.63 6251.11 l + S + n + 3770.82 6193.53 m + 3781.58 6182.77 l + 3770.82 6172.02 l + 3760.06 6182.77 l + 3770.82 6193.53 l + 0 0 0.501907 sc + eofill + n + 3770.82 6193.53 m + 3781.58 6182.77 l + 3770.82 6172.02 l + 3760.06 6182.77 l + 3770.82 6193.53 l + h + S + n + 3787.91 6210.61 m + 3798.66 6199.86 l + 3787.91 6189.1 l + 3777.15 6199.86 l + 3787.91 6210.61 l + eofill + n + 3787.91 6210.61 m + 3798.66 6199.86 l + 3787.91 6189.1 l + 3777.15 6199.86 l + 3787.91 6210.61 l + h + S + n + 3805.62 6210.61 m + 3816.38 6199.86 l + 3805.62 6189.1 l + 3794.86 6199.86 l + 3805.62 6210.61 l + eofill + n + 3805.62 6210.61 m + 3816.38 6199.86 l + 3805.62 6189.1 l + 3794.86 6199.86 l + 3805.62 6210.61 l + h + S + n + 3822.7 6211.25 m + 3833.46 6200.49 l + 3822.7 6189.73 l + 3811.95 6200.49 l + 3822.7 6211.25 l + eofill + n + 3822.7 6211.25 m + 3833.46 6200.49 l + 3822.7 6189.73 l + 3811.95 6200.49 l + 3822.7 6211.25 l + h + S + n + 3839.79 6211.25 m + 3850.54 6200.49 l + 3839.79 6189.73 l + 3829.03 6200.49 l + 3839.79 6211.25 l + eofill + n + 3839.79 6211.25 m + 3850.54 6200.49 l + 3839.79 6189.73 l + 3829.03 6200.49 l + 3839.79 6211.25 l + h + S + n + 3856.87 6182.77 m + 3867.63 6172.02 l + 3856.87 6161.26 l + 3846.12 6172.02 l + 3856.87 6182.77 l + eofill + n + 3856.87 6182.77 m + 3867.63 6172.02 l + 3856.87 6161.26 l + 3846.12 6172.02 l + 3856.87 6182.77 l + h + S + n + 3873.96 6204.29 m + 3884.71 6193.53 l + 3873.96 6182.77 l + 3863.2 6193.53 l + 3873.96 6204.29 l + eofill + n + 3873.96 6204.29 m + 3884.71 6193.53 l + 3873.96 6182.77 l + 3863.2 6193.53 l + 3873.96 6204.29 l + h + S + n + 3891.67 6209.35 m + 3902.43 6198.59 l + 3891.67 6187.84 l + 3880.91 6198.59 l + 3891.67 6209.35 l + eofill + n + 3891.67 6209.35 m + 3902.43 6198.59 l + 3891.67 6187.84 l + 3880.91 6198.59 l + 3891.67 6209.35 l + h + S + n + 3908.75 6232.12 m + 3919.51 6221.37 l + 3908.75 6210.61 l + 3898 6221.37 l + 3908.75 6232.12 l + eofill + n + 3908.75 6232.12 m + 3919.51 6221.37 l + 3908.75 6210.61 l + 3898 6221.37 l + 3908.75 6232.12 l + h + S + n + 3925.84 6229.59 m + 3936.59 6218.84 l + 3925.84 6208.08 l + 3915.08 6218.84 l + 3925.84 6229.59 l + eofill + n + 3925.84 6229.59 m + 3936.59 6218.84 l + 3925.84 6208.08 l + 3915.08 6218.84 l + 3925.84 6229.59 l + h + S + n + 3942.92 6245.41 m + 3953.68 6234.66 l + 3942.92 6223.9 l + 3932.17 6234.66 l + 3942.92 6245.41 l + eofill + n + 3942.92 6245.41 m + 3953.68 6234.66 l + 3942.92 6223.9 l + 3932.17 6234.66 l + 3942.92 6245.41 l + h + S + n + 3960.01 6248.57 m + 3970.76 6237.82 l + 3960.01 6227.06 l + 3949.25 6237.82 l + 3960.01 6248.57 l + eofill + n + 3960.01 6248.57 m + 3970.76 6237.82 l + 3960.01 6227.06 l + 3949.25 6237.82 l + 3960.01 6248.57 l + h + S + n + 3977.72 6249.84 m + 3988.48 6239.09 l + 3977.72 6228.33 l + 3966.96 6239.09 l + 3977.72 6249.84 l + eofill + n + 3977.72 6249.84 m + 3988.48 6239.09 l + 3977.72 6228.33 l + 3966.96 6239.09 l + 3977.72 6249.84 l + h + S + n + 3994.8 6273.89 m + 4005.56 6263.13 l + 3994.8 6252.37 l + 3984.05 6263.13 l + 3994.8 6273.89 l + eofill + n + 3994.8 6273.89 m + 4005.56 6263.13 l + 3994.8 6252.37 l + 3984.05 6263.13 l + 3994.8 6273.89 l + h + S + n + 4011.89 6313.11 m + 4022.64 6302.36 l + 4011.89 6291.6 l + 4001.13 6302.36 l + 4011.89 6313.11 l + eofill + n + 4011.89 6313.11 m + 4022.64 6302.36 l + 4011.89 6291.6 l + 4001.13 6302.36 l + 4011.89 6313.11 l + h + S + n + 4028.97 6306.79 m + 4039.73 6296.03 l + 4028.97 6285.27 l + 4018.22 6296.03 l + 4028.97 6306.79 l + eofill + n + 4028.97 6306.79 m + 4039.73 6296.03 l + 4028.97 6285.27 l + 4018.22 6296.03 l + 4028.97 6306.79 l + h + S + n + 4046.06 6337.16 m + 4056.81 6326.4 l + 4046.06 6315.64 l + 4035.3 6326.4 l + 4046.06 6337.16 l + eofill + n + 4046.06 6337.16 m + 4056.81 6326.4 l + 4046.06 6315.64 l + 4035.3 6326.4 l + 4046.06 6337.16 l + h + S + n + 4063.77 6378.29 m + 4074.53 6367.53 l + 4063.77 6356.77 l + 4053.02 6367.53 l + 4063.77 6378.29 l + eofill + n + 4063.77 6378.29 m + 4074.53 6367.53 l + 4063.77 6356.77 l + 4053.02 6367.53 l + 4063.77 6378.29 l + h + S + n + 4080.86 6428.27 m + 4091.61 6417.52 l + 4080.86 6406.76 l + 4070.1 6417.52 l + 4080.86 6428.27 l + eofill + n + 4080.86 6428.27 m + 4091.61 6417.52 l + 4080.86 6406.76 l + 4070.1 6417.52 l + 4080.86 6428.27 l + h + S + n + 4097.94 6458.01 m + 4108.7 6447.25 l + 4097.94 6436.5 l + 4087.18 6447.25 l + 4097.94 6458.01 l + eofill + n + 4097.94 6458.01 m + 4108.7 6447.25 l + 4097.94 6436.5 l + 4087.18 6447.25 l + 4097.94 6458.01 l + h + S + n + 4115.02 6481.42 m + 4125.78 6470.66 l + 4115.02 6459.91 l + 4104.27 6470.66 l + 4115.02 6481.42 l + eofill + n + 4115.02 6481.42 m + 4125.78 6470.66 l + 4115.02 6459.91 l + 4104.27 6470.66 l + 4115.02 6481.42 l + h + S + n + 4132.11 6513.69 m + 4142.86 6502.93 l + 4132.11 6492.18 l + 4121.35 6502.93 l + 4132.11 6513.69 l + eofill + n + 4132.11 6513.69 m + 4142.86 6502.93 l + 4132.11 6492.18 l + 4121.35 6502.93 l + 4132.11 6513.69 l + h + S + n + 4149.82 6554.18 m + 4160.58 6543.43 l + 4149.82 6532.67 l + 4139.07 6543.43 l + 4149.82 6554.18 l + eofill + n + 4149.82 6554.18 m + 4160.58 6543.43 l + 4149.82 6532.67 l + 4139.07 6543.43 l + 4149.82 6554.18 l + h + S + n + 4166.91 6576.96 m + 4177.66 6566.2 l + 4166.91 6555.45 l + 4156.15 6566.2 l + 4166.91 6576.96 l + eofill + n + 4166.91 6576.96 m + 4177.66 6566.2 l + 4166.91 6555.45 l + 4156.15 6566.2 l + 4166.91 6576.96 l + h + S + n + 4183.99 6606.7 m + 4194.75 6595.94 l + 4183.99 6585.19 l + 4173.23 6595.94 l + 4183.99 6606.7 l + eofill + n + 4183.99 6606.7 m + 4194.75 6595.94 l + 4183.99 6585.19 l + 4173.23 6595.94 l + 4183.99 6606.7 l + h + S + n + 4201.07 6633.91 m + 4211.83 6623.15 l + 4201.07 6612.39 l + 4190.32 6623.15 l + 4201.07 6633.91 l + eofill + n + 4201.07 6633.91 m + 4211.83 6623.15 l + 4201.07 6612.39 l + 4190.32 6623.15 l + 4201.07 6633.91 l + h + S + n + 4218.16 6655.42 m + 4228.91 6644.66 l + 4218.16 6633.91 l + 4207.4 6644.66 l + 4218.16 6655.42 l + eofill + n + 4218.16 6655.42 m + 4228.91 6644.66 l + 4218.16 6633.91 l + 4207.4 6644.66 l + 4218.16 6655.42 l + h + S + n + 4235.88 6683.26 m + 4246.63 6672.5 l + 4235.88 6661.75 l + 4225.12 6672.5 l + 4235.88 6683.26 l + eofill + n + 4235.88 6683.26 m + 4246.63 6672.5 l + 4235.88 6661.75 l + 4225.12 6672.5 l + 4235.88 6683.26 l + h + S + n + 4252.96 6717.43 m + 4263.71 6706.67 l + 4252.96 6695.91 l + 4242.2 6706.67 l + 4252.96 6717.43 l + eofill + n + 4252.96 6717.43 m + 4263.71 6706.67 l + 4252.96 6695.91 l + 4242.2 6706.67 l + 4252.96 6717.43 l + h + S + n + 4270.04 6753.49 m + 4280.8 6742.73 l + 4270.04 6731.98 l + 4259.29 6742.73 l + 4270.04 6753.49 l + eofill + n + 4270.04 6753.49 m + 4280.8 6742.73 l + 4270.04 6731.98 l + 4259.29 6742.73 l + 4270.04 6753.49 l + h + S + n + 4287.12 6770.57 m + 4297.88 6759.82 l + 4287.12 6749.06 l + 4276.37 6759.82 l + 4287.12 6770.57 l + eofill + n + 4287.12 6770.57 m + 4297.88 6759.82 l + 4287.12 6749.06 l + 4276.37 6759.82 l + 4287.12 6770.57 l + h + S + n + 4304.21 6771.21 m + 4314.96 6760.45 l + 4304.21 6749.7 l + 4293.45 6760.45 l + 4304.21 6771.21 l + eofill + n + 4304.21 6771.21 m + 4314.96 6760.45 l + 4304.21 6749.7 l + 4293.45 6760.45 l + 4304.21 6771.21 l + h + S + n + 4321.93 6776.27 m + 4332.68 6765.52 l + 4321.93 6754.76 l + 4311.17 6765.52 l + 4321.93 6776.27 l + eofill + n + 4321.93 6776.27 m + 4332.68 6765.52 l + 4321.93 6754.76 l + 4311.17 6765.52 l + 4321.93 6776.27 l + h + S + n + 4339.01 6807.27 m + 4349.77 6796.52 l + 4339.01 6785.76 l + 4328.25 6796.52 l + 4339.01 6807.27 l + eofill + n + 4339.01 6807.27 m + 4349.77 6796.52 l + 4339.01 6785.76 l + 4328.25 6796.52 l + 4339.01 6807.27 l + h + S + n + 4356.09 6810.44 m + 4366.85 6799.68 l + 4356.09 6788.93 l + 4345.34 6799.68 l + 4356.09 6810.44 l + eofill + n + 4356.09 6810.44 m + 4366.85 6799.68 l + 4356.09 6788.93 l + 4345.34 6799.68 l + 4356.09 6810.44 l + h + S + n + 4373.18 6873.08 m + 4383.93 6862.32 l + 4373.18 6851.57 l + 4362.42 6862.32 l + 4373.18 6873.08 l + eofill + n + 4373.18 6873.08 m + 4383.93 6862.32 l + 4373.18 6851.57 l + 4362.42 6862.32 l + 4373.18 6873.08 l + h + S + n + 4390.26 6858.52 m + 4401.02 6847.77 l + 4390.26 6837.01 l + 4379.5 6847.77 l + 4390.26 6858.52 l + eofill + n + 4390.26 6858.52 m + 4401.02 6847.77 l + 4390.26 6837.01 l + 4379.5 6847.77 l + 4390.26 6858.52 l + h + S + n + 4407.98 6845.87 m + 4418.73 6835.11 l + 4407.98 6824.36 l + 4397.22 6835.11 l + 4407.98 6845.87 l + eofill + n + 4407.98 6845.87 m + 4418.73 6835.11 l + 4407.98 6824.36 l + 4397.22 6835.11 l + 4407.98 6845.87 l + h + S + n + 4425.06 6854.1 m + 4435.82 6843.34 l + 4425.06 6832.58 l + 4414.3 6843.34 l + 4425.06 6854.1 l + eofill + n + 4425.06 6854.1 m + 4435.82 6843.34 l + 4425.06 6832.58 l + 4414.3 6843.34 l + 4425.06 6854.1 l + h + S + n + 4442.14 6928.76 m + 4452.9 6918 l + 4442.14 6907.25 l + 4431.39 6918 l + 4442.14 6928.76 l + eofill + n + 4442.14 6928.76 m + 4452.9 6918 l + 4442.14 6907.25 l + 4431.39 6918 l + 4442.14 6928.76 l + h + S + n + 4459.23 7053.41 m + 4469.98 7042.65 l + 4459.23 7031.89 l + 4448.47 7042.65 l + 4459.23 7053.41 l + eofill + n + 4459.23 7053.41 m + 4469.98 7042.65 l + 4459.23 7031.89 l + 4448.47 7042.65 l + 4459.23 7053.41 l + h + S + n + 4476.31 7093.9 m + 4487.07 7083.14 l + 4476.31 7072.39 l + 4465.55 7083.14 l + 4476.31 7093.9 l + eofill + n + 4476.31 7093.9 m + 4487.07 7083.14 l + 4476.31 7072.39 l + 4465.55 7083.14 l + 4476.31 7093.9 l + h + S + n + 4494.03 7039.48 m + 4504.79 7028.73 l + 4494.03 7017.97 l + 4483.27 7028.73 l + 4494.03 7039.48 l + eofill + n + 4494.03 7039.48 m + 4504.79 7028.73 l + 4494.03 7017.97 l + 4483.27 7028.73 l + 4494.03 7039.48 l + h + S + n + 4511.11 7058.46 m + 4521.87 7047.71 l + 4511.11 7036.95 l + 4500.36 7047.71 l + 4511.11 7058.46 l + eofill + n + 4511.11 7058.46 m + 4521.87 7047.71 l + 4511.11 7036.95 l + 4500.36 7047.71 l + 4511.11 7058.46 l + h + S + n + 4528.2 7044.55 m + 4538.95 7033.79 l + 4528.2 7023.04 l + 4517.44 7033.79 l + 4528.2 7044.55 l + eofill + n + 4528.2 7044.55 m + 4538.95 7033.79 l + 4528.2 7023.04 l + 4517.44 7033.79 l + 4528.2 7044.55 l + h + S + n + 4545.28 7120.47 m + 4556.04 7109.72 l + 4545.28 7098.96 l + 4534.52 7109.72 l + 4545.28 7120.47 l + eofill + n + 4545.28 7120.47 m + 4556.04 7109.72 l + 4545.28 7098.96 l + 4534.52 7109.72 l + 4545.28 7120.47 l + h + S + n + 4562.36 7112.25 m + 4573.12 7101.49 l + 4562.36 7090.73 l + 4551.61 7101.49 l + 4562.36 7112.25 l + eofill + n + 4562.36 7112.25 m + 4573.12 7101.49 l + 4562.36 7090.73 l + 4551.61 7101.49 l + 4562.36 7112.25 l + h + S + n + 4580.08 7119.84 m + 4590.84 7109.09 l + 4580.08 7098.33 l + 4569.32 7109.09 l + 4580.08 7119.84 l + eofill + n + 4580.08 7119.84 m + 4590.84 7109.09 l + 4580.08 7098.33 l + 4569.32 7109.09 l + 4580.08 7119.84 l + h + S + n + 4597.16 7142.62 m + 4607.92 7131.86 l + 4597.16 7121.11 l + 4586.41 7131.86 l + 4597.16 7142.62 l + eofill + n + 4597.16 7142.62 m + 4607.92 7131.86 l + 4597.16 7121.11 l + 4586.41 7131.86 l + 4597.16 7142.62 l + h + S + n + 4614.25 6896.49 m + 4625 6885.73 l + 4614.25 6874.98 l + 4603.49 6885.73 l + 4614.25 6896.49 l + eofill + n + 4614.25 6896.49 m + 4625 6885.73 l + 4614.25 6874.98 l + 4603.49 6885.73 l + 4614.25 6896.49 l + h + S + n + 4657.27 7018.61 m + 4668.03 7007.85 l + 4657.27 6997.09 l + 4646.52 7007.85 l + 4657.27 7018.61 l + eofill + n + 4657.27 7018.61 m + 4668.03 7007.85 l + 4657.27 6997.09 l + 4646.52 7007.85 l + 4657.27 7018.61 l + h + S + n + 4700.3 6909.78 m + 4711.05 6899.02 l + 4700.3 6888.26 l + 4689.54 6899.02 l + 4700.3 6909.78 l + eofill + n + 4700.3 6909.78 m + 4711.05 6899.02 l + 4700.3 6888.26 l + 4689.54 6899.02 l + 4700.3 6909.78 l + h + S + n + 4743.32 6921.8 m + 4754.08 6911.04 l + 4743.32 6900.29 l + 4732.57 6911.04 l + 4743.32 6921.8 l + eofill + n + 4743.32 6921.8 m + 4754.08 6911.04 l + 4743.32 6900.29 l + 4732.57 6911.04 l + 4743.32 6921.8 l + h + S + n + 4786.35 6943.31 m + 4797.11 6932.55 l + 4786.35 6921.8 l + 4775.59 6932.55 l + 4786.35 6943.31 l + eofill + n + 4786.35 6943.31 m + 4797.11 6932.55 l + 4786.35 6921.8 l + 4775.59 6932.55 l + 4786.35 6943.31 l + h + S + n + 4829.38 6943.31 m + 4840.13 6932.55 l + 4829.38 6921.8 l + 4818.62 6932.55 l + 4829.38 6943.31 l + eofill + n + 4829.38 6943.31 m + 4840.13 6932.55 l + 4829.38 6921.8 l + 4818.62 6932.55 l + 4829.38 6943.31 l + h + S + n + 4872.4 7112.25 m + 4883.16 7101.49 l + 4872.4 7090.73 l + 4861.64 7101.49 l + 4872.4 7112.25 l + eofill + n + 4872.4 7112.25 m + 4883.16 7101.49 l + 4872.4 7090.73 l + 4861.64 7101.49 l + 4872.4 7112.25 l + h + S + n + 4915.43 7190.07 m + 4926.18 7179.32 l + 4915.43 7168.56 l + 4904.67 7179.32 l + 4915.43 7190.07 l + eofill + n + 4915.43 7190.07 m + 4926.18 7179.32 l + 4915.43 7168.56 l + 4904.67 7179.32 l + 4915.43 7190.07 l + h + S + n + 4958.45 7202.1 m + 4969.21 7191.34 l + 4958.45 7180.58 l + 4947.7 7191.34 l + 4958.45 7202.1 l + eofill + n + 4958.45 7202.1 m + 4969.21 7191.34 l + 4958.45 7180.58 l + 4947.7 7191.34 l + 4958.45 7202.1 l + h + S + n + 5001.48 7201.46 m + 5012.23 7190.71 l + 5001.48 7179.95 l + 4990.72 7190.71 l + 5001.48 7201.46 l + eofill + n + 5001.48 7201.46 m + 5012.23 7190.71 l + 5001.48 7179.95 l + 4990.72 7190.71 l + 5001.48 7201.46 l + h + S + n + 5044.5 7205.89 m + 5055.26 7195.14 l + 5044.5 7184.38 l + 5033.75 7195.14 l + 5044.5 7205.89 l + eofill + n + 5044.5 7205.89 m + 5055.26 7195.14 l + 5044.5 7184.38 l + 5033.75 7195.14 l + 5044.5 7205.89 l + h + S + n + 5087.53 7224.88 m + 5098.28 7214.12 l + 5087.53 7203.36 l + 5076.77 7214.12 l + 5087.53 7224.88 l + eofill + n + 5087.53 7224.88 m + 5098.28 7214.12 l + 5087.53 7203.36 l + 5076.77 7214.12 l + 5087.53 7224.88 l + h + S + n + 5130.55 7257.78 m + 5141.31 7247.02 l + 5130.55 7236.26 l + 5119.8 7247.02 l + 5130.55 7257.78 l + eofill + n + 5130.55 7257.78 m + 5141.31 7247.02 l + 5130.55 7236.26 l + 5119.8 7247.02 l + 5130.55 7257.78 l + h + S + n + 5173.58 7231.84 m + 5184.33 7221.08 l + 5173.58 7210.32 l + 5162.82 7221.08 l + 5173.58 7231.84 l + eofill + n + 5173.58 7231.84 m + 5184.33 7221.08 l + 5173.58 7210.32 l + 5162.82 7221.08 l + 5173.58 7231.84 l + h + S + n + 5216.6 7268.53 m + 5227.36 7257.78 l + 5216.6 7247.02 l + 5205.85 7257.78 l + 5216.6 7268.53 l + eofill + n + 5216.6 7268.53 m + 5227.36 7257.78 l + 5216.6 7247.02 l + 5205.85 7257.78 l + 5216.6 7268.53 l + h + S + n + 5259.63 7274.86 m + 5270.38 7264.1 l + 5259.63 7253.35 l + 5248.87 7264.1 l + 5259.63 7274.86 l + eofill + n + 5259.63 7274.86 m + 5270.38 7264.1 l + 5259.63 7253.35 l + 5248.87 7264.1 l + 5259.63 7274.86 l + h + S + n + 3760.06 6172.65 20.8828 20.8789 re + 1 0 1 sc + eofill + 0 J + n + 3760.06 6172.65 20.8828 20.8789 re + S + n + 3777.15 6161.89 20.8789 20.8828 re + eofill + n + 3777.15 6161.89 20.8789 20.8828 re + S + n + 3794.86 6158.1 20.8828 20.8789 re + eofill + n + 3794.86 6158.1 20.8828 20.8789 re + S + n + 3811.95 6157.46 20.8789 20.8789 re + eofill + n + 3811.95 6157.46 20.8789 20.8789 re + S + n + 3829.03 6154.93 20.8789 20.8789 re + eofill + n + 3829.03 6154.93 20.8789 20.8789 re + S + n + 3846.12 6133.42 20.8789 20.8828 re + eofill + n + 3846.12 6133.42 20.8789 20.8828 re + S + n + 3863.2 6138.48 20.8789 20.8828 re + eofill + n + 3863.2 6138.48 20.8789 20.8828 re + S + n + 3880.91 6159.36 20.8828 20.8789 re + eofill + n + 3880.91 6159.36 20.8828 20.8789 re + S + n + 3898 6147.97 20.8789 20.8789 re + eofill + n + 3898 6147.97 20.8789 20.8789 re + S + n + 3915.08 6153.67 20.8789 20.8789 re + eofill + n + 3915.08 6153.67 20.8789 20.8789 re + S + n + 3932.17 6149.24 20.8789 20.8789 re + eofill + n + 3932.17 6149.24 20.8789 20.8789 re + S + n + 3949.25 6142.28 20.8789 20.8789 re + eofill + n + 3949.25 6142.28 20.8789 20.8789 re + S + n + 3966.96 6154.93 20.8828 20.8789 re + eofill + n + 3966.96 6154.93 20.8828 20.8789 re + S + n + 3984.05 6139.75 20.8789 20.8789 re + eofill + n + 3984.05 6139.75 20.8789 20.8789 re + S + n + 4001.13 6147.97 20.8789 20.8789 re + eofill + n + 4001.13 6147.97 20.8789 20.8789 re + S + n + 4018.22 6151.14 20.8789 20.8789 re + eofill + n + 4018.22 6151.14 20.8789 20.8789 re + S + n + 4035.3 6154.93 20.8789 20.8789 re + eofill + n + 4035.3 6154.93 20.8789 20.8789 re + S + n + 4053.02 6141.01 20.8828 20.8789 re + eofill + n + 4053.02 6141.01 20.8828 20.8789 re + S + n + 4070.1 6159.36 20.8789 20.8789 re + eofill + n + 4070.1 6159.36 20.8789 20.8789 re + S + n + 4087.18 6161.26 20.8787 20.8828 re + eofill + n + 4087.18 6161.26 20.8787 20.8828 re + S + n + 4104.27 6161.89 20.8789 20.8828 re + eofill + n + 4104.27 6161.89 20.8789 20.8828 re + S + n + 4121.35 6174.55 20.8789 20.8789 re + eofill + n + 4121.35 6174.55 20.8789 20.8789 re + S + n + 4139.07 6161.89 20.8828 20.8828 re + eofill + n + 4139.07 6161.89 20.8828 20.8828 re + S + n + 4156.15 6184.04 20.8789 20.8789 re + eofill + n + 4156.15 6184.04 20.8789 20.8789 re + S + n + 4173.23 6181.51 20.8828 20.8789 re + eofill + n + 4173.23 6181.51 20.8828 20.8789 re + S + n + 4190.32 6199.86 20.8789 20.8789 re + eofill + n + 4190.32 6199.86 20.8789 20.8789 re + S + n + 4207.4 6206.18 20.8789 20.8789 re + eofill + n + 4207.4 6206.18 20.8789 20.8789 re + S + n + 4225.12 6247.31 20.8828 20.8828 re + eofill + n + 4225.12 6247.31 20.8828 20.8828 re + S + n + 4242.2 6232.76 20.8789 20.8789 re + eofill + n + 4242.2 6232.76 20.8789 20.8789 re + S + n + 4259.29 6259.96 20.8828 20.8789 re + eofill + n + 4259.29 6259.96 20.8828 20.8789 re + S + n + 4276.37 6268.19 20.8789 20.8789 re + eofill + n + 4276.37 6268.19 20.8789 20.8789 re + S + n + 4293.45 6306.15 20.8789 20.8828 re + eofill + n + 4293.45 6306.15 20.8789 20.8828 re + S + n + 4311.17 6296.66 20.8828 20.8789 re + eofill + n + 4311.17 6296.66 20.8828 20.8789 re + S + n + 4328.25 6321.97 20.8789 20.8789 re + eofill + n + 4328.25 6321.97 20.8789 20.8789 re + S + n + 4345.34 6325.77 20.8828 20.8789 re + eofill + n + 4345.34 6325.77 20.8828 20.8789 re + S + n + 4362.42 6346.65 20.8789 20.8789 re + eofill + n + 4362.42 6346.65 20.8789 20.8789 re + S + n + 4379.5 6371.32 20.8789 20.8789 re + eofill + n + 4379.5 6371.32 20.8789 20.8789 re + S + n + 4397.22 6377.65 20.8789 20.8789 re + eofill + n + 4397.22 6377.65 20.8789 20.8789 re + S + n + 4414.3 6376.39 20.8789 20.8789 re + eofill + n + 4414.3 6376.39 20.8789 20.8789 re + S + n + 4431.39 6401.7 20.8828 20.8789 re + eofill + n + 4431.39 6401.7 20.8828 20.8789 re + S + n + 4448.47 6404.86 20.8789 20.8789 re + eofill + n + 4448.47 6404.86 20.8789 20.8789 re + S + n + 4465.55 6411.82 20.8789 20.8789 re + eofill + n + 4465.55 6411.82 20.8789 20.8789 re + S + n + 4483.27 6427.64 20.8789 20.8828 re + eofill + n + 4483.27 6427.64 20.8789 20.8828 re + S + n + 4500.36 6437.13 20.8789 20.8789 re + eofill + n + 4500.36 6437.13 20.8789 20.8789 re + S + n + 4517.44 6510.52 20.8828 20.8828 re + eofill + n + 4517.44 6510.52 20.8828 20.8828 re + S + n + 4534.52 6458.01 20.8789 20.8789 re + eofill + n + 4534.52 6458.01 20.8789 20.8789 re + S + n + 4551.61 6456.74 20.8789 20.8828 re + eofill + n + 4551.61 6456.74 20.8789 20.8828 re + S + n + 4569.32 6466.23 20.8789 20.8789 re + eofill + n + 4569.32 6466.23 20.8789 20.8789 re + S + n + 4586.41 6472.56 20.8789 20.8789 re + eofill + n + 4586.41 6472.56 20.8789 20.8789 re + S + n + 4603.49 6527.61 20.8828 20.8789 re + eofill + n + 4603.49 6527.61 20.8828 20.8789 re + S + n + 4646.52 6523.18 20.8789 20.8789 re + eofill + n + 4646.52 6523.18 20.8789 20.8789 re + S + n + 4689.54 6548.49 20.8828 20.8789 re + eofill + n + 4689.54 6548.49 20.8828 20.8789 re + S + n + 4732.57 6554.18 20.8789 20.8789 re + eofill + n + 4732.57 6554.18 20.8789 20.8789 re + S + n + 4775.59 6629.48 20.8828 20.8828 re + eofill + n + 4775.59 6629.48 20.8828 20.8828 re + S + n + 4818.62 6683.89 20.8789 20.8828 re + eofill + n + 4818.62 6683.89 20.8789 20.8828 re + S + n + 4861.64 6678.2 20.8828 20.8789 re + eofill + n + 4861.64 6678.2 20.8828 20.8789 re + S + n + 4904.67 6692.75 20.8789 20.8789 re + eofill + n + 4904.67 6692.75 20.8789 20.8789 re + S + n + 4947.7 6629.48 20.8789 20.8828 re + eofill + n + 4947.7 6629.48 20.8789 20.8828 re + S + n + 4990.72 6697.18 20.8789 20.8789 re + eofill + n + 4990.72 6697.18 20.8789 20.8789 re + S + n + 5033.75 6654.15 20.8789 20.8828 re + eofill + n + 5033.75 6654.15 20.8789 20.8828 re + S + n + 5076.77 6721.22 20.8789 20.8789 re + eofill + n + 5076.77 6721.22 20.8789 20.8789 re + S + n + 5119.8 6673.77 20.8789 20.8789 re + eofill + n + 5119.8 6673.77 20.8789 20.8789 re + S + n + 5162.82 6731.98 20.8789 20.8789 re + eofill + n + 5162.82 6731.98 20.8789 20.8789 re + S + n + 5205.85 6697.81 20.8789 20.8789 re + eofill + n + 5205.85 6697.81 20.8789 20.8789 re + S + n + 5248.87 6745.27 20.8789 20.8828 re + eofill + n + 5248.87 6745.27 20.8789 20.8828 re + S + n + 3770.82 6086.6 m + 3781.58 6065.09 l + 3760.06 6065.09 l + 3770.82 6086.6 l + 0 0 0 sc + eofill + 1 J + n + 3770.82 6086.6 m + 3781.58 6065.09 l + 3760.06 6065.09 l + 3770.82 6086.6 l + h + S + n + 3787.91 6069.52 m + 3798.66 6048 l + 3777.15 6048 l + 3787.91 6069.52 l + eofill + n + 3787.91 6069.52 m + 3798.66 6048 l + 3777.15 6048 l + 3787.91 6069.52 l + h + S + n + 3805.62 6087.86 m + 3816.38 6066.35 l + 3794.86 6066.35 l + 3805.62 6087.86 l + eofill + n + 3805.62 6087.86 m + 3816.38 6066.35 l + 3794.86 6066.35 l + 3805.62 6087.86 l + h + S + n + 3822.7 6091.03 m + 3833.46 6069.52 l + 3811.95 6069.52 l + 3822.7 6091.03 l + eofill + n + 3822.7 6091.03 m + 3833.46 6069.52 l + 3811.95 6069.52 l + 3822.7 6091.03 l + h + S + n + 3839.79 6081.54 m + 3850.54 6060.02 l + 3829.03 6060.02 l + 3839.79 6081.54 l + eofill + n + 3839.79 6081.54 m + 3850.54 6060.02 l + 3829.03 6060.02 l + 3839.79 6081.54 l + h + S + n + 3856.87 6080.9 m + 3867.63 6059.39 l + 3846.12 6059.39 l + 3856.87 6080.9 l + eofill + n + 3856.87 6080.9 m + 3867.63 6059.39 l + 3846.12 6059.39 l + 3856.87 6080.9 l + h + S + n + 3873.96 6114.44 m + 3884.71 6092.93 l + 3863.2 6092.93 l + 3873.96 6114.44 l + eofill + n + 3873.96 6114.44 m + 3884.71 6092.93 l + 3863.2 6092.93 l + 3873.96 6114.44 l + h + S + n + 3891.67 6099.89 m + 3902.43 6078.37 l + 3880.91 6078.37 l + 3891.67 6099.89 l + eofill + n + 3891.67 6099.89 m + 3902.43 6078.37 l + 3880.91 6078.37 l + 3891.67 6099.89 l + h + S + n + 3908.75 6087.23 m + 3919.51 6065.72 l + 3898 6065.72 l + 3908.75 6087.23 l + eofill + n + 3908.75 6087.23 m + 3919.51 6065.72 l + 3898 6065.72 l + 3908.75 6087.23 l + h + S + n + 3925.84 6076.47 m + 3936.59 6054.96 l + 3915.08 6054.96 l + 3925.84 6076.47 l + eofill + n + 3925.84 6076.47 m + 3936.59 6054.96 l + 3915.08 6054.96 l + 3925.84 6076.47 l + h + S + n + 3942.92 6097.36 m + 3953.68 6075.84 l + 3932.17 6075.84 l + 3942.92 6097.36 l + eofill + n + 3942.92 6097.36 m + 3953.68 6075.84 l + 3932.17 6075.84 l + 3942.92 6097.36 l + h + S + n + 3960.01 6086.6 m + 3970.76 6065.09 l + 3949.25 6065.09 l + 3960.01 6086.6 l + eofill + n + 3960.01 6086.6 m + 3970.76 6065.09 l + 3949.25 6065.09 l + 3960.01 6086.6 l + h + S + n + 3977.72 6102.41 m + 3988.48 6080.9 l + 3966.96 6080.9 l + 3977.72 6102.41 l + eofill + n + 3977.72 6102.41 m + 3988.48 6080.9 l + 3966.96 6080.9 l + 3977.72 6102.41 l + h + S + n + 3994.8 6069.52 m + 4005.56 6048 l + 3984.05 6048 l + 3994.8 6069.52 l + eofill + n + 3994.8 6069.52 m + 4005.56 6048 l + 3984.05 6048 l + 3994.8 6069.52 l + h + S + n + 4011.89 6104.31 m + 4022.64 6082.8 l + 4001.13 6082.8 l + 4011.89 6104.31 l + eofill + n + 4011.89 6104.31 m + 4022.64 6082.8 l + 4001.13 6082.8 l + 4011.89 6104.31 l + h + S + n + 4028.97 6094.82 m + 4039.73 6073.31 l + 4018.22 6073.31 l + 4028.97 6094.82 l + eofill + n + 4028.97 6094.82 m + 4039.73 6073.31 l + 4018.22 6073.31 l + 4028.97 6094.82 l + h + S + n + 4046.06 6086.6 m + 4056.81 6065.09 l + 4035.3 6065.09 l + 4046.06 6086.6 l + eofill + n + 4046.06 6086.6 m + 4056.81 6065.09 l + 4035.3 6065.09 l + 4046.06 6086.6 l + h + S + n + 4063.77 6095.46 m + 4074.53 6073.94 l + 4053.02 6073.94 l + 4063.77 6095.46 l + eofill + n + 4063.77 6095.46 m + 4074.53 6073.94 l + 4053.02 6073.94 l + 4063.77 6095.46 l + h + S + n + 4080.86 6087.23 m + 4091.61 6065.72 l + 4070.1 6065.72 l + 4080.86 6087.23 l + eofill + n + 4080.86 6087.23 m + 4091.61 6065.72 l + 4070.1 6065.72 l + 4080.86 6087.23 l + h + S + n + 4097.94 6094.82 m + 4108.7 6073.31 l + 4087.18 6073.31 l + 4097.94 6094.82 l + eofill + n + 4097.94 6094.82 m + 4108.7 6073.31 l + 4087.18 6073.31 l + 4097.94 6094.82 l + h + S + n + 4115.02 6087.86 m + 4125.78 6066.35 l + 4104.27 6066.35 l + 4115.02 6087.86 l + eofill + n + 4115.02 6087.86 m + 4125.78 6066.35 l + 4104.27 6066.35 l + 4115.02 6087.86 l + h + S + n + 4132.11 6093.56 m + 4142.86 6072.05 l + 4121.35 6072.05 l + 4132.11 6093.56 l + eofill + n + 4132.11 6093.56 m + 4142.86 6072.05 l + 4121.35 6072.05 l + 4132.11 6093.56 l + h + S + n + 4149.82 6087.23 m + 4160.58 6065.72 l + 4139.07 6065.72 l + 4149.82 6087.23 l + eofill + n + 4149.82 6087.23 m + 4160.58 6065.72 l + 4139.07 6065.72 l + 4149.82 6087.23 l + h + S + n + 4166.91 6091.66 m + 4177.66 6070.15 l + 4156.15 6070.15 l + 4166.91 6091.66 l + eofill + n + 4166.91 6091.66 m + 4177.66 6070.15 l + 4156.15 6070.15 l + 4166.91 6091.66 l + h + S + n + 4183.99 6096.09 m + 4194.75 6074.57 l + 4173.23 6074.57 l + 4183.99 6096.09 l + eofill + n + 4183.99 6096.09 m + 4194.75 6074.57 l + 4173.23 6074.57 l + 4183.99 6096.09 l + h + S + n + 4201.07 6089.76 m + 4211.83 6068.25 l + 4190.32 6068.25 l + 4201.07 6089.76 l + eofill + n + 4201.07 6089.76 m + 4211.83 6068.25 l + 4190.32 6068.25 l + 4201.07 6089.76 l + h + S + n + 4218.16 6093.56 m + 4228.91 6072.05 l + 4207.4 6072.05 l + 4218.16 6093.56 l + eofill + n + 4218.16 6093.56 m + 4228.91 6072.05 l + 4207.4 6072.05 l + 4218.16 6093.56 l + h + S + n + 4235.88 6087.23 m + 4246.63 6065.72 l + 4225.12 6065.72 l + 4235.88 6087.23 l + eofill + n + 4235.88 6087.23 m + 4246.63 6065.72 l + 4225.12 6065.72 l + 4235.88 6087.23 l + h + S + n + 4252.96 6090.39 m + 4263.71 6068.88 l + 4242.2 6068.88 l + 4252.96 6090.39 l + eofill + n + 4252.96 6090.39 m + 4263.71 6068.88 l + 4242.2 6068.88 l + 4252.96 6090.39 l + h + S + n + 4270.04 6092.93 m + 4280.8 6071.41 l + 4259.29 6071.41 l + 4270.04 6092.93 l + eofill + n + 4270.04 6092.93 m + 4280.8 6071.41 l + 4259.29 6071.41 l + 4270.04 6092.93 l + h + S + n + 4287.12 6095.46 m + 4297.88 6073.94 l + 4276.37 6073.94 l + 4287.12 6095.46 l + eofill + n + 4287.12 6095.46 m + 4297.88 6073.94 l + 4276.37 6073.94 l + 4287.12 6095.46 l + h + S + n + 4304.21 6089.76 m + 4314.96 6068.25 l + 4293.45 6068.25 l + 4304.21 6089.76 l + eofill + n + 4304.21 6089.76 m + 4314.96 6068.25 l + 4293.45 6068.25 l + 4304.21 6089.76 l + h + S + n + 4321.93 6091.66 m + 4332.68 6070.15 l + 4311.17 6070.15 l + 4321.93 6091.66 l + eofill + n + 4321.93 6091.66 m + 4332.68 6070.15 l + 4311.17 6070.15 l + 4321.93 6091.66 l + h + S + n + 4339.01 6086.6 m + 4349.77 6065.09 l + 4328.25 6065.09 l + 4339.01 6086.6 l + eofill + n + 4339.01 6086.6 m + 4349.77 6065.09 l + 4328.25 6065.09 l + 4339.01 6086.6 l + h + S + n + 4356.09 6094.82 m + 4366.85 6073.31 l + 4345.34 6073.31 l + 4356.09 6094.82 l + eofill + n + 4356.09 6094.82 m + 4366.85 6073.31 l + 4345.34 6073.31 l + 4356.09 6094.82 l + h + S + n + 4373.18 6089.76 m + 4383.93 6068.25 l + 4362.42 6068.25 l + 4373.18 6089.76 l + eofill + n + 4373.18 6089.76 m + 4383.93 6068.25 l + 4362.42 6068.25 l + 4373.18 6089.76 l + h + S + n + 4390.26 6091.03 m + 4401.02 6069.52 l + 4379.5 6069.52 l + 4390.26 6091.03 l + eofill + n + 4390.26 6091.03 m + 4401.02 6069.52 l + 4379.5 6069.52 l + 4390.26 6091.03 l + h + S + n + 4407.98 6092.29 m + 4418.73 6070.78 l + 4397.22 6070.78 l + 4407.98 6092.29 l + eofill + n + 4407.98 6092.29 m + 4418.73 6070.78 l + 4397.22 6070.78 l + 4407.98 6092.29 l + h + S + n + 4425.06 6092.93 m + 4435.82 6071.41 l + 4414.3 6071.41 l + 4425.06 6092.93 l + eofill + n + 4425.06 6092.93 m + 4435.82 6071.41 l + 4414.3 6071.41 l + 4425.06 6092.93 l + h + S + n + 4442.14 6088.5 m + 4452.9 6066.98 l + 4431.39 6066.98 l + 4442.14 6088.5 l + eofill + n + 4442.14 6088.5 m + 4452.9 6066.98 l + 4431.39 6066.98 l + 4442.14 6088.5 l + h + S + n + 4459.23 6089.76 m + 4469.98 6068.25 l + 4448.47 6068.25 l + 4459.23 6089.76 l + eofill + n + 4459.23 6089.76 m + 4469.98 6068.25 l + 4448.47 6068.25 l + 4459.23 6089.76 l + h + S + n + 4476.31 6094.82 m + 4487.07 6073.31 l + 4465.55 6073.31 l + 4476.31 6094.82 l + eofill + n + 4476.31 6094.82 m + 4487.07 6073.31 l + 4465.55 6073.31 l + 4476.31 6094.82 l + h + S + n + 4494.03 6090.39 m + 4504.79 6068.88 l + 4483.27 6068.88 l + 4494.03 6090.39 l + eofill + n + 4494.03 6090.39 m + 4504.79 6068.88 l + 4483.27 6068.88 l + 4494.03 6090.39 l + h + S + n + 4511.11 6091.03 m + 4521.87 6069.52 l + 4500.36 6069.52 l + 4511.11 6091.03 l + eofill + n + 4511.11 6091.03 m + 4521.87 6069.52 l + 4500.36 6069.52 l + 4511.11 6091.03 l + h + S + n + 4528.2 6091.03 m + 4538.95 6069.52 l + 4517.44 6069.52 l + 4528.2 6091.03 l + eofill + n + 4528.2 6091.03 m + 4538.95 6069.52 l + 4517.44 6069.52 l + 4528.2 6091.03 l + h + S + n + 4545.28 6091.66 m + 4556.04 6070.15 l + 4534.52 6070.15 l + 4545.28 6091.66 l + eofill + n + 4545.28 6091.66 m + 4556.04 6070.15 l + 4534.52 6070.15 l + 4545.28 6091.66 l + h + S + n + 4562.36 6091.66 m + 4573.12 6070.15 l + 4551.61 6070.15 l + 4562.36 6091.66 l + eofill + n + 4562.36 6091.66 m + 4573.12 6070.15 l + 4551.61 6070.15 l + 4562.36 6091.66 l + h + S + n + 4580.08 6095.46 m + 4590.84 6073.94 l + 4569.32 6073.94 l + 4580.08 6095.46 l + eofill + n + 4580.08 6095.46 m + 4590.84 6073.94 l + 4569.32 6073.94 l + 4580.08 6095.46 l + h + S + n + 4597.16 6095.46 m + 4607.92 6073.94 l + 4586.41 6073.94 l + 4597.16 6095.46 l + eofill + n + 4597.16 6095.46 m + 4607.92 6073.94 l + 4586.41 6073.94 l + 4597.16 6095.46 l + h + S + n + 4614.25 6098.62 m + 4625 6077.11 l + 4603.49 6077.11 l + 4614.25 6098.62 l + eofill + n + 4614.25 6098.62 m + 4625 6077.11 l + 4603.49 6077.11 l + 4614.25 6098.62 l + h + S + n + 4657.27 6109.38 m + 4668.03 6087.86 l + 4646.52 6087.86 l + 4657.27 6109.38 l + eofill + n + 4657.27 6109.38 m + 4668.03 6087.86 l + 4646.52 6087.86 l + 4657.27 6109.38 l + h + S + n + 4700.3 6108.74 m + 4711.05 6087.23 l + 4689.54 6087.23 l + 4700.3 6108.74 l + eofill + n + 4700.3 6108.74 m + 4711.05 6087.23 l + 4689.54 6087.23 l + 4700.3 6108.74 l + h + S + n + 4743.32 6122.66 m + 4754.08 6101.15 l + 4732.57 6101.15 l + 4743.32 6122.66 l + eofill + n + 4743.32 6122.66 m + 4754.08 6101.15 l + 4732.57 6101.15 l + 4743.32 6122.66 l + h + S + n + 4786.35 6122.66 m + 4797.11 6101.15 l + 4775.59 6101.15 l + 4786.35 6122.66 l + eofill + n + 4786.35 6122.66 m + 4797.11 6101.15 l + 4775.59 6101.15 l + 4786.35 6122.66 l + h + S + n + 4829.38 6140.38 m + 4840.13 6118.87 l + 4818.62 6118.87 l + 4829.38 6140.38 l + eofill + n + 4829.38 6140.38 m + 4840.13 6118.87 l + 4818.62 6118.87 l + 4829.38 6140.38 l + h + S + n + 4872.4 6146.07 m + 4883.16 6124.56 l + 4861.64 6124.56 l + 4872.4 6146.07 l + eofill + n + 4872.4 6146.07 m + 4883.16 6124.56 l + 4861.64 6124.56 l + 4872.4 6146.07 l + h + S + n + 4915.43 6150.5 m + 4926.18 6128.99 l + 4904.67 6128.99 l + 4915.43 6150.5 l + eofill + n + 4915.43 6150.5 m + 4926.18 6128.99 l + 4904.67 6128.99 l + 4915.43 6150.5 l + h + S + n + 4958.45 6162.52 m + 4969.21 6141.01 l + 4947.7 6141.01 l + 4958.45 6162.52 l + eofill + n + 4958.45 6162.52 m + 4969.21 6141.01 l + 4947.7 6141.01 l + 4958.45 6162.52 l + h + S + n + 5001.48 6172.65 m + 5012.23 6151.14 l + 4990.72 6151.14 l + 5001.48 6172.65 l + eofill + n + 5001.48 6172.65 m + 5012.23 6151.14 l + 4990.72 6151.14 l + 5001.48 6172.65 l + h + S + n + 5044.5 6181.51 m + 5055.26 6159.99 l + 5033.75 6159.99 l + 5044.5 6181.51 l + eofill + n + 5044.5 6181.51 m + 5055.26 6159.99 l + 5033.75 6159.99 l + 5044.5 6181.51 l + h + S + n + 5087.53 6187.2 m + 5098.28 6165.69 l + 5076.77 6165.69 l + 5087.53 6187.2 l + eofill + n + 5087.53 6187.2 m + 5098.28 6165.69 l + 5076.77 6165.69 l + 5087.53 6187.2 l + h + S + n + 5130.55 6204.92 m + 5141.31 6183.41 l + 5119.8 6183.41 l + 5130.55 6204.92 l + eofill + n + 5130.55 6204.92 m + 5141.31 6183.41 l + 5119.8 6183.41 l + 5130.55 6204.92 l + h + S + n + 5173.58 6235.29 m + 5184.33 6213.78 l + 5162.82 6213.78 l + 5173.58 6235.29 l + eofill + n + 5173.58 6235.29 m + 5184.33 6213.78 l + 5162.82 6213.78 l + 5173.58 6235.29 l + h + S + n + 5216.6 6236.55 m + 5227.36 6215.04 l + 5205.85 6215.04 l + 5216.6 6236.55 l + eofill + n + 5216.6 6236.55 m + 5227.36 6215.04 l + 5205.85 6215.04 l + 5216.6 6236.55 l + h + S + n + 5259.63 6266.29 m + 5270.38 6244.78 l + 5248.87 6244.78 l + 5259.63 6266.29 l + eofill + n + 5259.63 6266.29 m + 5270.38 6244.78 l + 5248.87 6244.78 l + 5259.63 6266.29 l + h + S + n + 3770.82 6075.84 m + 3760.06 6086.6 l + 1 0.399857 0 sc + S + n + 3770.82 6075.84 m + 3781.58 6065.09 l + S + n + 3770.82 6075.84 m + 3760.06 6065.09 l + S + n + 3770.82 6075.84 m + 3781.58 6086.6 l + S + n + 3787.91 6149.87 m + 3777.15 6160.62 l + S + n + 3787.91 6149.87 m + 3798.66 6139.11 l + S + n + 3787.91 6149.87 m + 3777.15 6139.11 l + S + n + 3787.91 6149.87 m + 3798.66 6160.62 l + S + n + 3805.62 6122.66 m + 3794.86 6133.42 l + S + n + 3805.62 6122.66 m + 3816.38 6111.91 l + S + n + 3805.62 6122.66 m + 3794.86 6111.91 l + S + n + 3805.62 6122.66 m + 3816.38 6133.42 l + S + n + 3822.7 6101.15 m + 3811.95 6111.91 l + S + n + 3822.7 6101.15 m + 3833.46 6090.39 l + S + n + 3822.7 6101.15 m + 3811.95 6090.39 l + S + n + 3822.7 6101.15 m + 3833.46 6111.91 l + S + n + 3839.79 6142.28 m + 3829.03 6153.04 l + S + n + 3839.79 6142.28 m + 3850.54 6131.52 l + S + n + 3839.79 6142.28 m + 3829.03 6131.52 l + S + n + 3839.79 6142.28 m + 3850.54 6153.04 l + S + n + 3856.87 6120.77 m + 3846.12 6131.52 l + S + n + 3856.87 6120.77 m + 3867.63 6110.01 l + S + n + 3856.87 6120.77 m + 3846.12 6110.01 l + S + n + 3856.87 6120.77 m + 3867.63 6131.52 l + S + n + 3873.96 6103.68 m + 3863.2 6114.44 l + S + n + 3873.96 6103.68 m + 3884.71 6092.93 l + S + n + 3873.96 6103.68 m + 3863.2 6092.93 l + S + n + 3873.96 6103.68 m + 3884.71 6114.44 l + S + n + 3891.67 6129.62 m + 3880.91 6140.38 l + S + n + 3891.67 6129.62 m + 3902.43 6118.87 l + S + n + 3891.67 6129.62 m + 3880.91 6118.87 l + S + n + 3891.67 6129.62 m + 3902.43 6140.38 l + S + n + 3908.75 6112.54 m + 3898 6123.3 l + S + n + 3908.75 6112.54 m + 3919.51 6101.78 l + S + n + 3908.75 6112.54 m + 3898 6101.78 l + S + n + 3908.75 6112.54 m + 3919.51 6123.3 l + S + n + 3925.84 6130.89 m + 3915.08 6141.64 l + S + n + 3925.84 6130.89 m + 3936.59 6120.13 l + S + n + 3925.84 6130.89 m + 3915.08 6120.13 l + S + n + 3925.84 6130.89 m + 3936.59 6141.64 l + S + n + 3942.92 6116.34 m + 3932.17 6127.09 l + S + n + 3942.92 6116.34 m + 3953.68 6105.58 l + S + n + 3942.92 6116.34 m + 3932.17 6105.58 l + S + n + 3942.92 6116.34 m + 3953.68 6127.09 l + S + n + 3960.01 6129.62 m + 3949.25 6140.38 l + S + n + 3960.01 6129.62 m + 3970.76 6118.87 l + S + n + 3960.01 6129.62 m + 3949.25 6118.87 l + S + n + 3960.01 6129.62 m + 3970.76 6140.38 l + S + n + 3977.72 6116.34 m + 3966.96 6127.09 l + S + n + 3977.72 6116.34 m + 3988.48 6105.58 l + S + n + 3977.72 6116.34 m + 3966.96 6105.58 l + S + n + 3977.72 6116.34 m + 3988.48 6127.09 l + S + n + 3994.8 6127.09 m + 3984.05 6137.85 l + S + n + 3994.8 6127.09 m + 4005.56 6116.34 l + S + n + 3994.8 6127.09 m + 3984.05 6116.34 l + S + n + 3994.8 6127.09 m + 4005.56 6137.85 l + S + n + 4011.89 6114.44 m + 4001.13 6125.2 l + S + n + 4011.89 6114.44 m + 4022.64 6103.68 l + S + n + 4011.89 6114.44 m + 4001.13 6103.68 l + S + n + 4011.89 6114.44 m + 4022.64 6125.2 l + S + n + 4028.97 6122.66 m + 4018.22 6133.42 l + S + n + 4028.97 6122.66 m + 4039.73 6111.91 l + S + n + 4028.97 6122.66 m + 4018.22 6111.91 l + S + n + 4028.97 6122.66 m + 4039.73 6133.42 l + S + n + 4046.06 6111.27 m + 4035.3 6122.03 l + S + n + 4046.06 6111.27 m + 4056.81 6100.52 l + S + n + 4046.06 6111.27 m + 4035.3 6100.52 l + S + n + 4046.06 6111.27 m + 4056.81 6122.03 l + S + n + 4063.77 6134.68 m + 4053.02 6145.44 l + S + n + 4063.77 6134.68 m + 4074.53 6123.93 l + S + n + 4063.77 6134.68 m + 4053.02 6123.93 l + S + n + 4063.77 6134.68 m + 4074.53 6145.44 l + S + n + 4080.86 6107.48 m + 4070.1 6118.23 l + S + n + 4080.86 6107.48 m + 4091.61 6096.72 l + S + n + 4080.86 6107.48 m + 4070.1 6096.72 l + S + n + 4080.86 6107.48 m + 4091.61 6118.23 l + S + n + 4097.94 6127.73 m + 4087.18 6138.48 l + S + n + 4097.94 6127.73 m + 4108.7 6116.97 l + S + n + 4097.94 6127.73 m + 4087.18 6116.97 l + S + n + 4097.94 6127.73 m + 4108.7 6138.48 l + S + n + 4115.02 6117.6 m + 4104.27 6128.36 l + S + n + 4115.02 6117.6 m + 4125.78 6106.84 l + S + n + 4115.02 6117.6 m + 4104.27 6106.84 l + S + n + 4115.02 6117.6 m + 4125.78 6128.36 l + S + n + 4132.11 6120.77 m + 4121.35 6131.52 l + S + n + 4132.11 6120.77 m + 4142.86 6110.01 l + S + n + 4132.11 6120.77 m + 4121.35 6110.01 l + S + n + 4132.11 6120.77 m + 4142.86 6131.52 l + S + n + 4149.82 6123.93 m + 4139.07 6134.68 l + S + n + 4149.82 6123.93 m + 4160.58 6113.17 l + S + n + 4149.82 6123.93 m + 4139.07 6113.17 l + S + n + 4149.82 6123.93 m + 4160.58 6134.68 l + S + n + 4166.91 6115.07 m + 4156.15 6125.83 l + S + n + 4166.91 6115.07 m + 4177.66 6104.31 l + S + n + 4166.91 6115.07 m + 4156.15 6104.31 l + S + n + 4166.91 6115.07 m + 4177.66 6125.83 l + S + n + 4183.99 6127.73 m + 4173.23 6138.48 l + S + n + 4183.99 6127.73 m + 4194.75 6116.97 l + S + n + 4183.99 6127.73 m + 4173.23 6116.97 l + S + n + 4183.99 6127.73 m + 4194.75 6138.48 l + S + n + 4201.07 6119.5 m + 4190.32 6130.26 l + S + n + 4201.07 6119.5 m + 4211.83 6108.74 l + S + n + 4201.07 6119.5 m + 4190.32 6108.74 l + S + n + 4201.07 6119.5 m + 4211.83 6130.26 l + S + n + 4218.16 6111.27 m + 4207.4 6122.03 l + S + n + 4218.16 6111.27 m + 4228.91 6100.52 l + S + n + 4218.16 6111.27 m + 4207.4 6100.52 l + S + n + 4218.16 6111.27 m + 4228.91 6122.03 l + S + n + 4235.88 6122.03 m + 4225.12 6132.79 l + S + n + 4235.88 6122.03 m + 4246.63 6111.27 l + S + n + 4235.88 6122.03 m + 4225.12 6111.27 l + S + n + 4235.88 6122.03 m + 4246.63 6132.79 l + S + n + 4252.96 6122.66 m + 4242.2 6133.42 l + S + n + 4252.96 6122.66 m + 4263.71 6111.91 l + S + n + 4252.96 6122.66 m + 4242.2 6111.91 l + S + n + 4252.96 6122.66 m + 4263.71 6133.42 l + S + n + 4270.04 6123.3 m + 4259.29 6134.05 l + S + n + 4270.04 6123.3 m + 4280.8 6112.54 l + S + n + 4270.04 6123.3 m + 4259.29 6112.54 l + S + n + 4270.04 6123.3 m + 4280.8 6134.05 l + S + n + 4287.12 6115.7 m + 4276.37 6126.46 l + S + n + 4287.12 6115.7 m + 4297.88 6104.95 l + S + n + 4287.12 6115.7 m + 4276.37 6104.95 l + S + n + 4287.12 6115.7 m + 4297.88 6126.46 l + S + n + 4304.21 6123.93 m + 4293.45 6134.68 l + S + n + 4304.21 6123.93 m + 4314.96 6113.17 l + S + n + 4304.21 6123.93 m + 4293.45 6113.17 l + S + n + 4304.21 6123.93 m + 4314.96 6134.68 l + S + n + 4321.93 6123.3 m + 4311.17 6134.05 l + S + n + 4321.93 6123.3 m + 4332.68 6112.54 l + S + n + 4321.93 6123.3 m + 4311.17 6112.54 l + S + n + 4321.93 6123.3 m + 4332.68 6134.05 l + S + n + 4339.01 6130.26 m + 4328.25 6141.01 l + S + n + 4339.01 6130.26 m + 4349.77 6119.5 l + S + n + 4339.01 6130.26 m + 4328.25 6119.5 l + S + n + 4339.01 6130.26 m + 4349.77 6141.01 l + S + n + 4356.09 6129.62 m + 4345.34 6140.38 l + S + n + 4356.09 6129.62 m + 4366.85 6118.87 l + S + n + 4356.09 6129.62 m + 4345.34 6118.87 l + S + n + 4356.09 6129.62 m + 4366.85 6140.38 l + S + n + 4373.18 6134.68 m + 4362.42 6145.44 l + S + n + 4373.18 6134.68 m + 4383.93 6123.93 l + S + n + 4373.18 6134.68 m + 4362.42 6123.93 l + S + n + 4373.18 6134.68 m + 4383.93 6145.44 l + S + n + 4390.26 6133.42 m + 4379.5 6144.18 l + S + n + 4390.26 6133.42 m + 4401.02 6122.66 l + S + n + 4390.26 6133.42 m + 4379.5 6122.66 l + S + n + 4390.26 6133.42 m + 4401.02 6144.18 l + S + n + 4407.98 6138.48 m + 4397.22 6149.24 l + S + n + 4407.98 6138.48 m + 4418.73 6127.73 l + S + n + 4407.98 6138.48 m + 4397.22 6127.73 l + S + n + 4407.98 6138.48 m + 4418.73 6149.24 l + S + n + 4425.06 6153.04 m + 4414.3 6163.79 l + S + n + 4425.06 6153.04 m + 4435.82 6142.28 l + S + n + 4425.06 6153.04 m + 4414.3 6142.28 l + S + n + 4425.06 6153.04 m + 4435.82 6163.79 l + S + n + 4442.14 6151.14 m + 4431.39 6161.89 l + S + n + 4442.14 6151.14 m + 4452.9 6140.38 l + S + n + 4442.14 6151.14 m + 4431.39 6140.38 l + S + n + 4442.14 6151.14 m + 4452.9 6161.89 l + S + n + 4459.23 6158.73 m + 4448.47 6169.48 l + S + n + 4459.23 6158.73 m + 4469.98 6147.97 l + S + n + 4459.23 6158.73 m + 4448.47 6147.97 l + S + n + 4459.23 6158.73 m + 4469.98 6169.48 l + S + n + 4476.31 6170.75 m + 4465.55 6181.51 l + S + n + 4476.31 6170.75 m + 4487.07 6159.99 l + S + n + 4476.31 6170.75 m + 4465.55 6159.99 l + S + n + 4476.31 6170.75 m + 4487.07 6181.51 l + S + n + 4494.03 6172.65 m + 4483.27 6183.41 l + S + n + 4494.03 6172.65 m + 4504.79 6161.89 l + S + n + 4494.03 6172.65 m + 4483.27 6161.89 l + S + n + 4494.03 6172.65 m + 4504.79 6183.41 l + S + n + 4511.11 6196.69 m + 4500.36 6207.45 l + S + n + 4511.11 6196.69 m + 4521.87 6185.94 l + S + n + 4511.11 6196.69 m + 4500.36 6185.94 l + S + n + 4511.11 6196.69 m + 4521.87 6207.45 l + S + n + 4528.2 6196.69 m + 4517.44 6207.45 l + S + n + 4528.2 6196.69 m + 4538.95 6185.94 l + S + n + 4528.2 6196.69 m + 4517.44 6185.94 l + S + n + 4528.2 6196.69 m + 4538.95 6207.45 l + S + n + 4545.28 6193.53 m + 4534.52 6204.29 l + S + n + 4545.28 6193.53 m + 4556.04 6182.77 l + S + n + 4545.28 6193.53 m + 4534.52 6182.77 l + S + n + 4545.28 6193.53 m + 4556.04 6204.29 l + S + n + 4562.36 6201.12 m + 4551.61 6211.88 l + S + n + 4562.36 6201.12 m + 4573.12 6190.36 l + S + n + 4562.36 6201.12 m + 4551.61 6190.36 l + S + n + 4562.36 6201.12 m + 4573.12 6211.88 l + S + n + 4580.08 6212.51 m + 4569.32 6223.27 l + S + n + 4580.08 6212.51 m + 4590.84 6201.75 l + S + n + 4580.08 6212.51 m + 4569.32 6201.75 l + S + n + 4580.08 6212.51 m + 4590.84 6223.27 l + S + n + 4597.16 6215.68 m + 4586.41 6226.43 l + S + n + 4597.16 6215.68 m + 4607.92 6204.92 l + S + n + 4597.16 6215.68 m + 4586.41 6204.92 l + S + n + 4597.16 6215.68 m + 4607.92 6226.43 l + S + n + 4614.25 6233.39 m + 4603.49 6244.15 l + S + n + 4614.25 6233.39 m + 4625 6222.63 l + S + n + 4614.25 6233.39 m + 4603.49 6222.63 l + S + n + 4614.25 6233.39 m + 4625 6244.15 l + S + n + 4657.27 6272.62 m + 4646.52 6283.38 l + S + n + 4657.27 6272.62 m + 4668.03 6261.86 l + S + n + 4657.27 6272.62 m + 4646.52 6261.86 l + S + n + 4657.27 6272.62 m + 4668.03 6283.38 l + S + n + 4700.3 6261.86 m + 4689.54 6272.62 l + S + n + 4700.3 6261.86 m + 4711.05 6251.11 l + S + n + 4700.3 6261.86 m + 4689.54 6251.11 l + S + n + 4700.3 6261.86 m + 4711.05 6272.62 l + S + n + 4743.32 6323.87 m + 4732.57 6334.62 l + S + n + 4743.32 6323.87 m + 4754.08 6313.11 l + S + n + 4743.32 6323.87 m + 4732.57 6313.11 l + S + n + 4743.32 6323.87 m + 4754.08 6334.62 l + S + n + 4786.35 6330.83 m + 4775.59 6341.59 l + S + n + 4786.35 6330.83 m + 4797.11 6320.07 l + S + n + 4786.35 6330.83 m + 4775.59 6320.07 l + S + n + 4786.35 6330.83 m + 4797.11 6341.59 l + S + n + 4829.38 6402.96 m + 4818.62 6413.72 l + S + n + 4829.38 6402.96 m + 4840.13 6392.2 l + S + n + 4829.38 6402.96 m + 4818.62 6392.2 l + S + n + 4829.38 6402.96 m + 4840.13 6413.72 l + S + n + 4872.4 6423.21 m + 4861.64 6433.96 l + S + n + 4872.4 6423.21 m + 4883.16 6412.45 l + S + n + 4872.4 6423.21 m + 4861.64 6412.45 l + S + n + 4872.4 6423.21 m + 4883.16 6433.96 l + S + n + 4915.43 6440.29 m + 4904.67 6451.05 l + S + n + 4915.43 6440.29 m + 4926.18 6429.54 l + S + n + 4915.43 6440.29 m + 4904.67 6429.54 l + S + n + 4915.43 6440.29 m + 4926.18 6451.05 l + S + n + 4958.45 6439.66 m + 4947.7 6450.41 l + S + n + 4958.45 6439.66 m + 4969.21 6428.9 l + S + n + 4958.45 6439.66 m + 4947.7 6428.9 l + S + n + 4958.45 6439.66 m + 4969.21 6450.41 l + S + n + 5001.48 6461.17 m + 4990.72 6471.93 l + S + n + 5001.48 6461.17 m + 5012.23 6450.41 l + S + n + 5001.48 6461.17 m + 4990.72 6450.41 l + S + n + 5001.48 6461.17 m + 5012.23 6471.93 l + S + n + 5044.5 6479.52 m + 5033.75 6490.28 l + S + n + 5044.5 6479.52 m + 5055.26 6468.77 l + S + n + 5044.5 6479.52 m + 5033.75 6468.77 l + S + n + 5044.5 6479.52 m + 5055.26 6490.28 l + S + n + 5087.53 6458.01 m + 5076.77 6468.77 l + S + n + 5087.53 6458.01 m + 5098.28 6447.25 l + S + n + 5087.53 6458.01 m + 5076.77 6447.25 l + S + n + 5087.53 6458.01 m + 5098.28 6468.77 l + S + n + 5130.55 6437.76 m + 5119.8 6448.52 l + S + n + 5130.55 6437.76 m + 5141.31 6427 l + S + n + 5130.55 6437.76 m + 5119.8 6427 l + S + n + 5130.55 6437.76 m + 5141.31 6448.52 l + S + n + 5173.58 6499.14 m + 5162.82 6509.89 l + S + n + 5173.58 6499.14 m + 5184.33 6488.38 l + S + n + 5173.58 6499.14 m + 5162.82 6488.38 l + S + n + 5173.58 6499.14 m + 5184.33 6509.89 l + S + n + 5216.6 6509.89 m + 5205.85 6520.65 l + S + n + 5216.6 6509.89 m + 5227.36 6499.14 l + S + n + 5216.6 6509.89 m + 5205.85 6499.14 l + S + n + 5216.6 6509.89 m + 5227.36 6520.65 l + S + n + 5259.63 6489.01 m + 5248.87 6499.77 l + S + n + 5259.63 6489.01 m + 5270.38 6478.26 l + S + n + 5259.63 6489.01 m + 5248.87 6478.26 l + S + n + 5259.63 6489.01 m + 5270.38 6499.77 l + S + n + 3770.82 6075.84 m + 3760.06 6086.6 l + 0.501907 0 0.501907 sc + S + n + 3770.82 6075.84 m + 3781.58 6065.09 l + S + n + 3770.82 6075.84 m + 3760.06 6065.09 l + S + n + 3770.82 6075.84 m + 3781.58 6086.6 l + S + n + 3770.82 6075.84 m + 3770.82 6086.6 l + S + n + 3770.82 6075.84 m + 3770.82 6065.09 l + S + n + 3787.91 6058.76 m + 3777.15 6069.52 l + S + n + 3787.91 6058.76 m + 3798.66 6048 l + S + n + 3787.91 6058.76 m + 3777.15 6048 l + S + n + 3787.91 6058.76 m + 3798.66 6069.52 l + S + n + 3787.91 6058.76 m + 3787.91 6069.52 l + S + n + 3787.91 6058.76 m + 3787.91 6048 l + S + n + 3805.62 6122.66 m + 3794.86 6133.42 l + S + n + 3805.62 6122.66 m + 3816.38 6111.91 l + S + n + 3805.62 6122.66 m + 3794.86 6111.91 l + S + n + 3805.62 6122.66 m + 3816.38 6133.42 l + S + n + 3805.62 6122.66 m + 3805.62 6133.42 l + S + n + 3805.62 6122.66 m + 3805.62 6111.91 l + S + n + 3822.7 6034.71 m + 3811.95 6045.47 l + S + n + 3822.7 6034.71 m + 3833.46 6023.96 l + S + n + 3822.7 6034.71 m + 3811.95 6023.96 l + S + n + 3822.7 6034.71 m + 3833.46 6045.47 l + S + n + 3822.7 6034.71 m + 3822.7 6045.47 l + S + n + 3822.7 6034.71 m + 3822.7 6023.96 l + S + n + 3839.79 6084.07 m + 3829.03 6094.82 l + S + n + 3839.79 6084.07 m + 3850.54 6073.31 l + S + n + 3839.79 6084.07 m + 3829.03 6073.31 l + S + n + 3839.79 6084.07 m + 3850.54 6094.82 l + S + n + 3839.79 6084.07 m + 3839.79 6094.82 l + S + n + 3839.79 6084.07 m + 3839.79 6073.31 l + S + n + 3856.87 6120.77 m + 3846.12 6131.52 l + S + n + 3856.87 6120.77 m + 3867.63 6110.01 l + S + n + 3856.87 6120.77 m + 3846.12 6110.01 l + S + n + 3856.87 6120.77 m + 3867.63 6131.52 l + S + n + 3856.87 6120.77 m + 3856.87 6131.52 l + S + n + 3856.87 6120.77 m + 3856.87 6110.01 l + S + n + 3873.96 6058.12 m + 3863.2 6068.88 l + S + n + 3873.96 6058.12 m + 3884.71 6047.37 l + S + n + 3873.96 6058.12 m + 3863.2 6047.37 l + S + n + 3873.96 6058.12 m + 3884.71 6068.88 l + S + n + 3873.96 6058.12 m + 3873.96 6068.88 l + S + n + 3873.96 6058.12 m + 3873.96 6047.37 l + S + n + 3891.67 6089.13 m + 3880.91 6099.89 l + S + n + 3891.67 6089.13 m + 3902.43 6078.37 l + S + n + 3891.67 6089.13 m + 3880.91 6078.37 l + S + n + 3891.67 6089.13 m + 3902.43 6099.89 l + S + n + 3891.67 6089.13 m + 3891.67 6099.89 l + S + n + 3891.67 6089.13 m + 3891.67 6078.37 l + S + n + 3908.75 6076.47 m + 3898 6087.23 l + S + n + 3908.75 6076.47 m + 3919.51 6065.72 l + S + n + 3908.75 6076.47 m + 3898 6065.72 l + S + n + 3908.75 6076.47 m + 3919.51 6087.23 l + S + n + 3908.75 6076.47 m + 3908.75 6087.23 l + S + n + 3908.75 6076.47 m + 3908.75 6065.72 l + S + n + 3925.84 6065.72 m + 3915.08 6076.47 l + S + n + 3925.84 6065.72 m + 3936.59 6054.96 l + S + n + 3925.84 6065.72 m + 3915.08 6054.96 l + S + n + 3925.84 6065.72 m + 3936.59 6076.47 l + S + n + 3925.84 6065.72 m + 3925.84 6076.47 l + S + n + 3925.84 6065.72 m + 3925.84 6054.96 l + S + n + 3942.92 6086.6 m + 3932.17 6097.36 l + S + n + 3942.92 6086.6 m + 3953.68 6075.84 l + S + n + 3942.92 6086.6 m + 3932.17 6075.84 l + S + n + 3942.92 6086.6 m + 3953.68 6097.36 l + S + n + 3942.92 6086.6 m + 3942.92 6097.36 l + S + n + 3942.92 6086.6 m + 3942.92 6075.84 l + S + n + 3960.01 6075.84 m + 3949.25 6086.6 l + S + n + 3960.01 6075.84 m + 3970.76 6065.09 l + S + n + 3960.01 6075.84 m + 3949.25 6065.09 l + S + n + 3960.01 6075.84 m + 3970.76 6086.6 l + S + n + 3960.01 6075.84 m + 3960.01 6086.6 l + S + n + 3960.01 6075.84 m + 3960.01 6065.09 l + S + n + 3977.72 6091.66 m + 3966.96 6102.41 l + S + n + 3977.72 6091.66 m + 3988.48 6080.9 l + S + n + 3977.72 6091.66 m + 3966.96 6080.9 l + S + n + 3977.72 6091.66 m + 3988.48 6102.41 l + S + n + 3977.72 6091.66 m + 3977.72 6102.41 l + S + n + 3977.72 6091.66 m + 3977.72 6080.9 l + S + n + 3994.8 6081.54 m + 3984.05 6092.29 l + S + n + 3994.8 6081.54 m + 4005.56 6070.78 l + S + n + 3994.8 6081.54 m + 3984.05 6070.78 l + S + n + 3994.8 6081.54 m + 4005.56 6092.29 l + S + n + 3994.8 6081.54 m + 3994.8 6092.29 l + S + n + 3994.8 6081.54 m + 3994.8 6070.78 l + S + n + 4011.89 6093.56 m + 4001.13 6104.31 l + S + n + 4011.89 6093.56 m + 4022.64 6082.8 l + S + n + 4011.89 6093.56 m + 4001.13 6082.8 l + S + n + 4011.89 6093.56 m + 4022.64 6104.31 l + S + n + 4011.89 6093.56 m + 4011.89 6104.31 l + S + n + 4011.89 6093.56 m + 4011.89 6082.8 l + S + n + 4028.97 6084.07 m + 4018.22 6094.82 l + S + n + 4028.97 6084.07 m + 4039.73 6073.31 l + S + n + 4028.97 6084.07 m + 4018.22 6073.31 l + S + n + 4028.97 6084.07 m + 4039.73 6094.82 l + S + n + 4028.97 6084.07 m + 4028.97 6094.82 l + S + n + 4028.97 6084.07 m + 4028.97 6073.31 l + S + n + 4046.06 6075.84 m + 4035.3 6086.6 l + S + n + 4046.06 6075.84 m + 4056.81 6065.09 l + S + n + 4046.06 6075.84 m + 4035.3 6065.09 l + S + n + 4046.06 6075.84 m + 4056.81 6086.6 l + S + n + 4046.06 6075.84 m + 4046.06 6086.6 l + S + n + 4046.06 6075.84 m + 4046.06 6065.09 l + S + n + 4063.77 6084.7 m + 4053.02 6095.46 l + S + n + 4063.77 6084.7 m + 4074.53 6073.94 l + S + n + 4063.77 6084.7 m + 4053.02 6073.94 l + S + n + 4063.77 6084.7 m + 4074.53 6095.46 l + S + n + 4063.77 6084.7 m + 4063.77 6095.46 l + S + n + 4063.77 6084.7 m + 4063.77 6073.94 l + S + n + 4080.86 6076.47 m + 4070.1 6087.23 l + S + n + 4080.86 6076.47 m + 4091.61 6065.72 l + S + n + 4080.86 6076.47 m + 4070.1 6065.72 l + S + n + 4080.86 6076.47 m + 4091.61 6087.23 l + S + n + 4080.86 6076.47 m + 4080.86 6087.23 l + S + n + 4080.86 6076.47 m + 4080.86 6065.72 l + S + n + 4097.94 6084.07 m + 4087.18 6094.82 l + S + n + 4097.94 6084.07 m + 4108.7 6073.31 l + S + n + 4097.94 6084.07 m + 4087.18 6073.31 l + S + n + 4097.94 6084.07 m + 4108.7 6094.82 l + S + n + 4097.94 6084.07 m + 4097.94 6094.82 l + S + n + 4097.94 6084.07 m + 4097.94 6073.31 l + S + n + 4115.02 6077.11 m + 4104.27 6087.86 l + S + n + 4115.02 6077.11 m + 4125.78 6066.35 l + S + n + 4115.02 6077.11 m + 4104.27 6066.35 l + S + n + 4115.02 6077.11 m + 4125.78 6087.86 l + S + n + 4115.02 6077.11 m + 4115.02 6087.86 l + S + n + 4115.02 6077.11 m + 4115.02 6066.35 l + S + n + 4132.11 6095.46 m + 4121.35 6106.21 l + S + n + 4132.11 6095.46 m + 4142.86 6084.7 l + S + n + 4132.11 6095.46 m + 4121.35 6084.7 l + S + n + 4132.11 6095.46 m + 4142.86 6106.21 l + S + n + 4132.11 6095.46 m + 4132.11 6106.21 l + S + n + 4132.11 6095.46 m + 4132.11 6084.7 l + S + n + 4149.82 6087.86 m + 4139.07 6098.62 l + S + n + 4149.82 6087.86 m + 4160.58 6077.11 l + S + n + 4149.82 6087.86 m + 4139.07 6077.11 l + S + n + 4149.82 6087.86 m + 4160.58 6098.62 l + S + n + 4149.82 6087.86 m + 4149.82 6098.62 l + S + n + 4149.82 6087.86 m + 4149.82 6077.11 l + S + n + 4166.91 6080.9 m + 4156.15 6091.66 l + S + n + 4166.91 6080.9 m + 4177.66 6070.15 l + S + n + 4166.91 6080.9 m + 4156.15 6070.15 l + S + n + 4166.91 6080.9 m + 4177.66 6091.66 l + S + n + 4166.91 6080.9 m + 4166.91 6091.66 l + S + n + 4166.91 6080.9 m + 4166.91 6070.15 l + S + n + 4183.99 6085.33 m + 4173.23 6096.09 l + S + n + 4183.99 6085.33 m + 4194.75 6074.57 l + S + n + 4183.99 6085.33 m + 4173.23 6074.57 l + S + n + 4183.99 6085.33 m + 4194.75 6096.09 l + S + n + 4183.99 6085.33 m + 4183.99 6096.09 l + S + n + 4183.99 6085.33 m + 4183.99 6074.57 l + S + n + 4201.07 6079 m + 4190.32 6089.76 l + S + n + 4201.07 6079 m + 4211.83 6068.25 l + S + n + 4201.07 6079 m + 4190.32 6068.25 l + S + n + 4201.07 6079 m + 4211.83 6089.76 l + S + n + 4201.07 6079 m + 4201.07 6089.76 l + S + n + 4201.07 6079 m + 4201.07 6068.25 l + S + n + 4218.16 6092.29 m + 4207.4 6103.05 l + S + n + 4218.16 6092.29 m + 4228.91 6081.54 l + S + n + 4218.16 6092.29 m + 4207.4 6081.54 l + S + n + 4218.16 6092.29 m + 4228.91 6103.05 l + S + n + 4218.16 6092.29 m + 4218.16 6103.05 l + S + n + 4218.16 6092.29 m + 4218.16 6081.54 l + S + n + 4235.88 6076.47 m + 4225.12 6087.23 l + S + n + 4235.88 6076.47 m + 4246.63 6065.72 l + S + n + 4235.88 6076.47 m + 4225.12 6065.72 l + S + n + 4235.88 6076.47 m + 4246.63 6087.23 l + S + n + 4235.88 6076.47 m + 4235.88 6087.23 l + S + n + 4235.88 6076.47 m + 4235.88 6065.72 l + S + n + 4252.96 6088.5 m + 4242.2 6099.25 l + S + n + 4252.96 6088.5 m + 4263.71 6077.74 l + S + n + 4252.96 6088.5 m + 4242.2 6077.74 l + S + n + 4252.96 6088.5 m + 4263.71 6099.25 l + S + n + 4252.96 6088.5 m + 4252.96 6099.25 l + S + n + 4252.96 6088.5 m + 4252.96 6077.74 l + S + n + 4270.04 6082.17 m + 4259.29 6092.93 l + S + n + 4270.04 6082.17 m + 4280.8 6071.41 l + S + n + 4270.04 6082.17 m + 4259.29 6071.41 l + S + n + 4270.04 6082.17 m + 4280.8 6092.93 l + S + n + 4270.04 6082.17 m + 4270.04 6092.93 l + S + n + 4270.04 6082.17 m + 4270.04 6071.41 l + S + n + 4287.12 6084.7 m + 4276.37 6095.46 l + S + n + 4287.12 6084.7 m + 4297.88 6073.94 l + S + n + 4287.12 6084.7 m + 4276.37 6073.94 l + S + n + 4287.12 6084.7 m + 4297.88 6095.46 l + S + n + 4287.12 6084.7 m + 4287.12 6095.46 l + S + n + 4287.12 6084.7 m + 4287.12 6073.94 l + S + n + 4304.21 6079 m + 4293.45 6089.76 l + S + n + 4304.21 6079 m + 4314.96 6068.25 l + S + n + 4304.21 6079 m + 4293.45 6068.25 l + S + n + 4304.21 6079 m + 4314.96 6089.76 l + S + n + 4304.21 6079 m + 4304.21 6089.76 l + S + n + 4304.21 6079 m + 4304.21 6068.25 l + S + n + 4321.93 6080.9 m + 4311.17 6091.66 l + S + n + 4321.93 6080.9 m + 4332.68 6070.15 l + S + n + 4321.93 6080.9 m + 4311.17 6070.15 l + S + n + 4321.93 6080.9 m + 4332.68 6091.66 l + S + n + 4321.93 6080.9 m + 4321.93 6091.66 l + S + n + 4321.93 6080.9 m + 4321.93 6070.15 l + S + n + 4339.01 6082.8 m + 4328.25 6093.56 l + S + n + 4339.01 6082.8 m + 4349.77 6072.05 l + S + n + 4339.01 6082.8 m + 4328.25 6072.05 l + S + n + 4339.01 6082.8 m + 4349.77 6093.56 l + S + n + 4339.01 6082.8 m + 4339.01 6093.56 l + S + n + 4339.01 6082.8 m + 4339.01 6072.05 l + S + n + 4356.09 6084.07 m + 4345.34 6094.82 l + S + n + 4356.09 6084.07 m + 4366.85 6073.31 l + S + n + 4356.09 6084.07 m + 4345.34 6073.31 l + S + n + 4356.09 6084.07 m + 4366.85 6094.82 l + S + n + 4356.09 6084.07 m + 4356.09 6094.82 l + S + n + 4356.09 6084.07 m + 4356.09 6073.31 l + S + n + 4373.18 6079 m + 4362.42 6089.76 l + S + n + 4373.18 6079 m + 4383.93 6068.25 l + S + n + 4373.18 6079 m + 4362.42 6068.25 l + S + n + 4373.18 6079 m + 4383.93 6089.76 l + S + n + 4373.18 6079 m + 4373.18 6089.76 l + S + n + 4373.18 6079 m + 4373.18 6068.25 l + S + n + 4390.26 6086.6 m + 4379.5 6097.36 l + S + n + 4390.26 6086.6 m + 4401.02 6075.84 l + S + n + 4390.26 6086.6 m + 4379.5 6075.84 l + S + n + 4390.26 6086.6 m + 4401.02 6097.36 l + S + n + 4390.26 6086.6 m + 4390.26 6097.36 l + S + n + 4390.26 6086.6 m + 4390.26 6075.84 l + S + n + 4407.98 6081.54 m + 4397.22 6092.29 l + S + n + 4407.98 6081.54 m + 4418.73 6070.78 l + S + n + 4407.98 6081.54 m + 4397.22 6070.78 l + S + n + 4407.98 6081.54 m + 4418.73 6092.29 l + S + n + 4407.98 6081.54 m + 4407.98 6092.29 l + S + n + 4407.98 6081.54 m + 4407.98 6070.78 l + S + n + 4425.06 6082.17 m + 4414.3 6092.93 l + S + n + 4425.06 6082.17 m + 4435.82 6071.41 l + S + n + 4425.06 6082.17 m + 4414.3 6071.41 l + S + n + 4425.06 6082.17 m + 4435.82 6092.93 l + S + n + 4425.06 6082.17 m + 4425.06 6092.93 l + S + n + 4425.06 6082.17 m + 4425.06 6071.41 l + S + n + 4442.14 6082.8 m + 4431.39 6093.56 l + S + n + 4442.14 6082.8 m + 4452.9 6072.05 l + S + n + 4442.14 6082.8 m + 4431.39 6072.05 l + S + n + 4442.14 6082.8 m + 4452.9 6093.56 l + S + n + 4442.14 6082.8 m + 4442.14 6093.56 l + S + n + 4442.14 6082.8 m + 4442.14 6072.05 l + S + n + 4459.23 6079 m + 4448.47 6089.76 l + S + n + 4459.23 6079 m + 4469.98 6068.25 l + S + n + 4459.23 6079 m + 4448.47 6068.25 l + S + n + 4459.23 6079 m + 4469.98 6089.76 l + S + n + 4459.23 6079 m + 4459.23 6089.76 l + S + n + 4459.23 6079 m + 4459.23 6068.25 l + S + n + 4476.31 6084.07 m + 4465.55 6094.82 l + S + n + 4476.31 6084.07 m + 4487.07 6073.31 l + S + n + 4476.31 6084.07 m + 4465.55 6073.31 l + S + n + 4476.31 6084.07 m + 4487.07 6094.82 l + S + n + 4476.31 6084.07 m + 4476.31 6094.82 l + S + n + 4476.31 6084.07 m + 4476.31 6073.31 l + S + n + 4494.03 6084.7 m + 4483.27 6095.46 l + S + n + 4494.03 6084.7 m + 4504.79 6073.94 l + S + n + 4494.03 6084.7 m + 4483.27 6073.94 l + S + n + 4494.03 6084.7 m + 4504.79 6095.46 l + S + n + 4494.03 6084.7 m + 4494.03 6095.46 l + S + n + 4494.03 6084.7 m + 4494.03 6073.94 l + S + n + 4511.11 6080.27 m + 4500.36 6091.03 l + S + n + 4511.11 6080.27 m + 4521.87 6069.52 l + S + n + 4511.11 6080.27 m + 4500.36 6069.52 l + S + n + 4511.11 6080.27 m + 4521.87 6091.03 l + S + n + 4511.11 6080.27 m + 4511.11 6091.03 l + S + n + 4511.11 6080.27 m + 4511.11 6069.52 l + S + n + 4528.2 6084.7 m + 4517.44 6095.46 l + S + n + 4528.2 6084.7 m + 4538.95 6073.94 l + S + n + 4528.2 6084.7 m + 4517.44 6073.94 l + S + n + 4528.2 6084.7 m + 4538.95 6095.46 l + S + n + 4528.2 6084.7 m + 4528.2 6095.46 l + S + n + 4528.2 6084.7 m + 4528.2 6073.94 l + S + n + 4545.28 6089.13 m + 4534.52 6099.89 l + S + n + 4545.28 6089.13 m + 4556.04 6078.37 l + S + n + 4545.28 6089.13 m + 4534.52 6078.37 l + S + n + 4545.28 6089.13 m + 4556.04 6099.89 l + S + n + 4545.28 6089.13 m + 4545.28 6099.89 l + S + n + 4545.28 6089.13 m + 4545.28 6078.37 l + S + n + 4562.36 6089.13 m + 4551.61 6099.89 l + S + n + 4562.36 6089.13 m + 4573.12 6078.37 l + S + n + 4562.36 6089.13 m + 4551.61 6078.37 l + S + n + 4562.36 6089.13 m + 4573.12 6099.89 l + S + n + 4562.36 6089.13 m + 4562.36 6099.89 l + S + n + 4562.36 6089.13 m + 4562.36 6078.37 l + S + n + 4580.08 6092.29 m + 4569.32 6103.05 l + S + n + 4580.08 6092.29 m + 4590.84 6081.54 l + S + n + 4580.08 6092.29 m + 4569.32 6081.54 l + S + n + 4580.08 6092.29 m + 4590.84 6103.05 l + S + n + 4580.08 6092.29 m + 4580.08 6103.05 l + S + n + 4580.08 6092.29 m + 4580.08 6081.54 l + S + n + 4597.16 6092.29 m + 4586.41 6103.05 l + S + n + 4597.16 6092.29 m + 4607.92 6081.54 l + S + n + 4597.16 6092.29 m + 4586.41 6081.54 l + S + n + 4597.16 6092.29 m + 4607.92 6103.05 l + S + n + 4597.16 6092.29 m + 4597.16 6103.05 l + S + n + 4597.16 6092.29 m + 4597.16 6081.54 l + S + n + 4614.25 6106.21 m + 4603.49 6116.97 l + S + n + 4614.25 6106.21 m + 4625 6095.46 l + S + n + 4614.25 6106.21 m + 4603.49 6095.46 l + S + n + 4614.25 6106.21 m + 4625 6116.97 l + S + n + 4614.25 6106.21 m + 4614.25 6116.97 l + S + n + 4614.25 6106.21 m + 4614.25 6095.46 l + S + n + 4657.27 6118.87 m + 4646.52 6129.62 l + S + n + 4657.27 6118.87 m + 4668.03 6108.11 l + S + n + 4657.27 6118.87 m + 4646.52 6108.11 l + S + n + 4657.27 6118.87 m + 4668.03 6129.62 l + S + n + 4657.27 6118.87 m + 4657.27 6129.62 l + S + n + 4657.27 6118.87 m + 4657.27 6108.11 l + S + n + 4700.3 6116.97 m + 4689.54 6127.73 l + S + n + 4700.3 6116.97 m + 4711.05 6106.21 l + S + n + 4700.3 6116.97 m + 4689.54 6106.21 l + S + n + 4700.3 6116.97 m + 4711.05 6127.73 l + S + n + 4700.3 6116.97 m + 4700.3 6127.73 l + S + n + 4700.3 6116.97 m + 4700.3 6106.21 l + S + n + 4743.32 6120.13 m + 4732.57 6130.89 l + S + n + 4743.32 6120.13 m + 4754.08 6109.38 l + S + n + 4743.32 6120.13 m + 4732.57 6109.38 l + S + n + 4743.32 6120.13 m + 4754.08 6130.89 l + S + n + 4743.32 6120.13 m + 4743.32 6130.89 l + S + n + 4743.32 6120.13 m + 4743.32 6109.38 l + S + n + 4786.35 6133.42 m + 4775.59 6144.18 l + S + n + 4786.35 6133.42 m + 4797.11 6122.66 l + S + n + 4786.35 6133.42 m + 4775.59 6122.66 l + S + n + 4786.35 6133.42 m + 4797.11 6144.18 l + S + n + 4786.35 6133.42 m + 4786.35 6144.18 l + S + n + 4786.35 6133.42 m + 4786.35 6122.66 l + S + n + 4829.38 6174.55 m + 4818.62 6185.3 l + S + n + 4829.38 6174.55 m + 4840.13 6163.79 l + S + n + 4829.38 6174.55 m + 4818.62 6163.79 l + S + n + 4829.38 6174.55 m + 4840.13 6185.3 l + S + n + 4829.38 6174.55 m + 4829.38 6185.3 l + S + n + 4829.38 6174.55 m + 4829.38 6163.79 l + S + n + 4872.4 6156.2 m + 4861.64 6166.95 l + S + n + 4872.4 6156.2 m + 4883.16 6145.44 l + S + n + 4872.4 6156.2 m + 4861.64 6145.44 l + S + n + 4872.4 6156.2 m + 4883.16 6166.95 l + S + n + 4872.4 6156.2 m + 4872.4 6166.95 l + S + n + 4872.4 6156.2 m + 4872.4 6145.44 l + S + n + 4915.43 6174.55 m + 4904.67 6185.3 l + S + n + 4915.43 6174.55 m + 4926.18 6163.79 l + S + n + 4915.43 6174.55 m + 4904.67 6163.79 l + S + n + 4915.43 6174.55 m + 4926.18 6185.3 l + S + n + 4915.43 6174.55 m + 4915.43 6185.3 l + S + n + 4915.43 6174.55 m + 4915.43 6163.79 l + S + n + 4958.45 6158.1 m + 4947.7 6168.85 l + S + n + 4958.45 6158.1 m + 4969.21 6147.34 l + S + n + 4958.45 6158.1 m + 4947.7 6147.34 l + S + n + 4958.45 6158.1 m + 4969.21 6168.85 l + S + n + 4958.45 6158.1 m + 4958.45 6168.85 l + S + n + 4958.45 6158.1 m + 4958.45 6147.34 l + S + n + 5001.48 6187.2 m + 4990.72 6197.96 l + S + n + 5001.48 6187.2 m + 5012.23 6176.45 l + S + n + 5001.48 6187.2 m + 4990.72 6176.45 l + S + n + 5001.48 6187.2 m + 5012.23 6197.96 l + S + n + 5001.48 6187.2 m + 5001.48 6197.96 l + S + n + 5001.48 6187.2 m + 5001.48 6176.45 l + S + n + 5044.5 6185.3 m + 5033.75 6196.06 l + S + n + 5044.5 6185.3 m + 5055.26 6174.55 l + S + n + 5044.5 6185.3 m + 5033.75 6174.55 l + S + n + 5044.5 6185.3 m + 5055.26 6196.06 l + S + n + 5044.5 6185.3 m + 5044.5 6196.06 l + S + n + 5044.5 6185.3 m + 5044.5 6174.55 l + S + n + 5087.53 6193.53 m + 5076.77 6204.29 l + S + n + 5087.53 6193.53 m + 5098.28 6182.77 l + S + n + 5087.53 6193.53 m + 5076.77 6182.77 l + S + n + 5087.53 6193.53 m + 5098.28 6204.29 l + S + n + 5087.53 6193.53 m + 5087.53 6204.29 l + S + n + 5087.53 6193.53 m + 5087.53 6182.77 l + S + n + 5130.55 6203.65 m + 5119.8 6214.41 l + S + n + 5130.55 6203.65 m + 5141.31 6192.89 l + S + n + 5130.55 6203.65 m + 5119.8 6192.89 l + S + n + 5130.55 6203.65 m + 5141.31 6214.41 l + S + n + 5130.55 6203.65 m + 5130.55 6214.41 l + S + n + 5130.55 6203.65 m + 5130.55 6192.89 l + S + n + 5173.58 6213.78 m + 5162.82 6224.53 l + S + n + 5173.58 6213.78 m + 5184.33 6203.02 l + S + n + 5173.58 6213.78 m + 5162.82 6203.02 l + S + n + 5173.58 6213.78 m + 5184.33 6224.53 l + S + n + 5173.58 6213.78 m + 5173.58 6224.53 l + S + n + 5173.58 6213.78 m + 5173.58 6203.02 l + S + n + 5216.6 6243.52 m + 5205.85 6254.27 l + S + n + 5216.6 6243.52 m + 5227.36 6232.76 l + S + n + 5216.6 6243.52 m + 5205.85 6232.76 l + S + n + 5216.6 6243.52 m + 5227.36 6254.27 l + S + n + 5216.6 6243.52 m + 5216.6 6254.27 l + S + n + 5216.6 6243.52 m + 5216.6 6232.76 l + S + n + 5259.63 6234.66 m + 5248.87 6245.41 l + S + n + 5259.63 6234.66 m + 5270.38 6223.9 l + S + n + 5259.63 6234.66 m + 5248.87 6223.9 l + S + n + 5259.63 6234.66 m + 5270.38 6245.41 l + S + n + 5259.63 6234.66 m + 5259.63 6245.41 l + S + n + 5259.63 6234.66 m + 5259.63 6223.9 l + S + n + 3780.95 6075.84 m + 3780.95 6082.17 3776.52 6086.6 3770.82 6086.6 c + 3764.49 6086.6 3760.06 6082.17 3760.06 6075.84 c + 3760.06 6070.15 3764.49 6065.72 3770.82 6065.72 c + 3776.52 6065.72 3780.95 6070.15 3780.95 6075.84 c + 0.501907 0 0 sc + eofill + n + 3780.95 6075.84 m + 3780.95 6082.17 3776.52 6086.6 3770.82 6086.6 c + 3764.49 6086.6 3760.06 6082.17 3760.06 6075.84 c + 3760.06 6070.15 3764.49 6065.72 3770.82 6065.72 c + 3776.52 6065.72 3780.95 6070.15 3780.95 6075.84 c + h + S + n + 3798.03 6081.54 m + 3798.03 6087.86 3793.6 6092.29 3787.91 6092.29 c + 3781.58 6092.29 3777.15 6087.86 3777.15 6081.54 c + 3777.15 6075.84 3781.58 6071.41 3787.91 6071.41 c + 3793.6 6071.41 3798.03 6075.84 3798.03 6081.54 c + eofill + n + 3798.03 6081.54 m + 3798.03 6087.86 3793.6 6092.29 3787.91 6092.29 c + 3781.58 6092.29 3777.15 6087.86 3777.15 6081.54 c + 3777.15 6075.84 3781.58 6071.41 3787.91 6071.41 c + 3793.6 6071.41 3798.03 6075.84 3798.03 6081.54 c + h + S + n + 3815.75 6045.47 m + 3815.75 6051.8 3811.32 6056.23 3805.62 6056.23 c + 3799.29 6056.23 3794.86 6051.8 3794.86 6045.47 c + 3794.86 6039.78 3799.29 6035.35 3805.62 6035.35 c + 3811.32 6035.35 3815.75 6039.78 3815.75 6045.47 c + eofill + n + 3815.75 6045.47 m + 3815.75 6051.8 3811.32 6056.23 3805.62 6056.23 c + 3799.29 6056.23 3794.86 6051.8 3794.86 6045.47 c + 3794.86 6039.78 3799.29 6035.35 3805.62 6035.35 c + 3811.32 6035.35 3815.75 6039.78 3815.75 6045.47 c + h + S + n + 3832.83 6101.15 m + 3832.83 6107.48 3828.4 6111.91 3822.7 6111.91 c + 3816.38 6111.91 3811.95 6107.48 3811.95 6101.15 c + 3811.95 6095.46 3816.38 6091.03 3822.7 6091.03 c + 3828.4 6091.03 3832.83 6095.46 3832.83 6101.15 c + eofill + n + 3832.83 6101.15 m + 3832.83 6107.48 3828.4 6111.91 3822.7 6111.91 c + 3816.38 6111.91 3811.95 6107.48 3811.95 6101.15 c + 3811.95 6095.46 3816.38 6091.03 3822.7 6091.03 c + 3828.4 6091.03 3832.83 6095.46 3832.83 6101.15 c + h + S + n + 3849.91 6096.72 m + 3849.91 6103.05 3845.48 6107.48 3839.79 6107.48 c + 3833.46 6107.48 3829.03 6103.05 3829.03 6096.72 c + 3829.03 6091.03 3833.46 6086.6 3839.79 6086.6 c + 3845.48 6086.6 3849.91 6091.03 3849.91 6096.72 c + eofill + n + 3849.91 6096.72 m + 3849.91 6103.05 3845.48 6107.48 3839.79 6107.48 c + 3833.46 6107.48 3829.03 6103.05 3829.03 6096.72 c + 3829.03 6091.03 3833.46 6086.6 3839.79 6086.6 c + 3845.48 6086.6 3849.91 6091.03 3849.91 6096.72 c + h + S + n + 3867 6097.99 m + 3867 6104.31 3862.57 6108.74 3856.87 6108.74 c + 3850.54 6108.74 3846.12 6104.31 3846.12 6097.99 c + 3846.12 6092.29 3850.54 6087.86 3856.87 6087.86 c + 3862.57 6087.86 3867 6092.29 3867 6097.99 c + eofill + n + 3867 6097.99 m + 3867 6104.31 3862.57 6108.74 3856.87 6108.74 c + 3850.54 6108.74 3846.12 6104.31 3846.12 6097.99 c + 3846.12 6092.29 3850.54 6087.86 3856.87 6087.86 c + 3862.57 6087.86 3867 6092.29 3867 6097.99 c + h + S + n + 3884.08 6103.68 m + 3884.08 6110.01 3879.65 6114.44 3873.96 6114.44 c + 3867.63 6114.44 3863.2 6110.01 3863.2 6103.68 c + 3863.2 6097.99 3867.63 6093.56 3873.96 6093.56 c + 3879.65 6093.56 3884.08 6097.99 3884.08 6103.68 c + eofill + n + 3884.08 6103.68 m + 3884.08 6110.01 3879.65 6114.44 3873.96 6114.44 c + 3867.63 6114.44 3863.2 6110.01 3863.2 6103.68 c + 3863.2 6097.99 3867.63 6093.56 3873.96 6093.56 c + 3879.65 6093.56 3884.08 6097.99 3884.08 6103.68 c + h + S + n + 3901.8 6089.13 m + 3901.8 6095.46 3897.37 6099.89 3891.67 6099.89 c + 3885.34 6099.89 3880.91 6095.46 3880.91 6089.13 c + 3880.91 6083.43 3885.34 6079 3891.67 6079 c + 3897.37 6079 3901.8 6083.43 3901.8 6089.13 c + eofill + n + 3901.8 6089.13 m + 3901.8 6095.46 3897.37 6099.89 3891.67 6099.89 c + 3885.34 6099.89 3880.91 6095.46 3880.91 6089.13 c + 3880.91 6083.43 3885.34 6079 3891.67 6079 c + 3897.37 6079 3901.8 6083.43 3901.8 6089.13 c + h + S + n + 3918.88 6112.54 m + 3918.88 6118.87 3914.45 6123.3 3908.75 6123.3 c + 3902.43 6123.3 3898 6118.87 3898 6112.54 c + 3898 6106.84 3902.43 6102.41 3908.75 6102.41 c + 3914.45 6102.41 3918.88 6106.84 3918.88 6112.54 c + eofill + n + 3918.88 6112.54 m + 3918.88 6118.87 3914.45 6123.3 3908.75 6123.3 c + 3902.43 6123.3 3898 6118.87 3898 6112.54 c + 3898 6106.84 3902.43 6102.41 3908.75 6102.41 c + 3914.45 6102.41 3918.88 6106.84 3918.88 6112.54 c + h + S + n + 3935.96 6098.62 m + 3935.96 6104.95 3931.54 6109.38 3925.84 6109.38 c + 3919.51 6109.38 3915.08 6104.95 3915.08 6098.62 c + 3915.08 6092.93 3919.51 6088.5 3925.84 6088.5 c + 3931.54 6088.5 3935.96 6092.93 3935.96 6098.62 c + eofill + n + 3935.96 6098.62 m + 3935.96 6104.95 3931.54 6109.38 3925.84 6109.38 c + 3919.51 6109.38 3915.08 6104.95 3915.08 6098.62 c + 3915.08 6092.93 3919.51 6088.5 3925.84 6088.5 c + 3931.54 6088.5 3935.96 6092.93 3935.96 6098.62 c + h + S + n + 3953.05 6116.34 m + 3953.05 6122.66 3948.62 6127.09 3942.92 6127.09 c + 3936.59 6127.09 3932.17 6122.66 3932.17 6116.34 c + 3932.17 6110.64 3936.59 6106.21 3942.92 6106.21 c + 3948.62 6106.21 3953.05 6110.64 3953.05 6116.34 c + eofill + n + 3953.05 6116.34 m + 3953.05 6122.66 3948.62 6127.09 3942.92 6127.09 c + 3936.59 6127.09 3932.17 6122.66 3932.17 6116.34 c + 3932.17 6110.64 3936.59 6106.21 3942.92 6106.21 c + 3948.62 6106.21 3953.05 6110.64 3953.05 6116.34 c + h + S + n + 3970.13 6103.05 m + 3970.13 6109.38 3965.7 6113.8 3960.01 6113.8 c + 3953.68 6113.8 3949.25 6109.38 3949.25 6103.05 c + 3949.25 6097.36 3953.68 6092.93 3960.01 6092.93 c + 3965.7 6092.93 3970.13 6097.36 3970.13 6103.05 c + eofill + n + 3970.13 6103.05 m + 3970.13 6109.38 3965.7 6113.8 3960.01 6113.8 c + 3953.68 6113.8 3949.25 6109.38 3949.25 6103.05 c + 3949.25 6097.36 3953.68 6092.93 3960.01 6092.93 c + 3965.7 6092.93 3970.13 6097.36 3970.13 6103.05 c + h + S + n + 3987.85 6116.34 m + 3987.85 6122.66 3983.42 6127.09 3977.72 6127.09 c + 3971.39 6127.09 3966.96 6122.66 3966.96 6116.34 c + 3966.96 6110.64 3971.39 6106.21 3977.72 6106.21 c + 3983.42 6106.21 3987.85 6110.64 3987.85 6116.34 c + eofill + n + 3987.85 6116.34 m + 3987.85 6122.66 3983.42 6127.09 3977.72 6127.09 c + 3971.39 6127.09 3966.96 6122.66 3966.96 6116.34 c + 3966.96 6110.64 3971.39 6106.21 3977.72 6106.21 c + 3983.42 6106.21 3987.85 6110.64 3987.85 6116.34 c + h + S + n + 4004.93 6104.31 m + 4004.93 6110.64 4000.5 6115.07 3994.8 6115.07 c + 3988.48 6115.07 3984.05 6110.64 3984.05 6104.31 c + 3984.05 6098.62 3988.48 6094.19 3994.8 6094.19 c + 4000.5 6094.19 4004.93 6098.62 4004.93 6104.31 c + eofill + n + 4004.93 6104.31 m + 4004.93 6110.64 4000.5 6115.07 3994.8 6115.07 c + 3988.48 6115.07 3984.05 6110.64 3984.05 6104.31 c + 3984.05 6098.62 3988.48 6094.19 3994.8 6094.19 c + 4000.5 6094.19 4004.93 6098.62 4004.93 6104.31 c + h + S + n + 4022.01 6114.44 m + 4022.01 6120.77 4017.59 6125.2 4011.89 6125.2 c + 4005.56 6125.2 4001.13 6120.77 4001.13 6114.44 c + 4001.13 6108.74 4005.56 6104.31 4011.89 6104.31 c + 4017.59 6104.31 4022.01 6108.74 4022.01 6114.44 c + eofill + n + 4022.01 6114.44 m + 4022.01 6120.77 4017.59 6125.2 4011.89 6125.2 c + 4005.56 6125.2 4001.13 6120.77 4001.13 6114.44 c + 4001.13 6108.74 4005.56 6104.31 4011.89 6104.31 c + 4017.59 6104.31 4022.01 6108.74 4022.01 6114.44 c + h + S + n + 4039.1 6103.05 m + 4039.1 6109.38 4034.67 6113.8 4028.97 6113.8 c + 4022.64 6113.8 4018.22 6109.38 4018.22 6103.05 c + 4018.22 6097.36 4022.64 6092.93 4028.97 6092.93 c + 4034.67 6092.93 4039.1 6097.36 4039.1 6103.05 c + eofill + n + 4039.1 6103.05 m + 4039.1 6109.38 4034.67 6113.8 4028.97 6113.8 c + 4022.64 6113.8 4018.22 6109.38 4018.22 6103.05 c + 4018.22 6097.36 4022.64 6092.93 4028.97 6092.93 c + 4034.67 6092.93 4039.1 6097.36 4039.1 6103.05 c + h + S + n + 4056.18 6111.27 m + 4056.18 6117.6 4051.75 6122.03 4046.06 6122.03 c + 4039.73 6122.03 4035.3 6117.6 4035.3 6111.27 c + 4035.3 6105.58 4039.73 6101.15 4046.06 6101.15 c + 4051.75 6101.15 4056.18 6105.58 4056.18 6111.27 c + eofill + n + 4056.18 6111.27 m + 4056.18 6117.6 4051.75 6122.03 4046.06 6122.03 c + 4039.73 6122.03 4035.3 6117.6 4035.3 6111.27 c + 4035.3 6105.58 4039.73 6101.15 4046.06 6101.15 c + 4051.75 6101.15 4056.18 6105.58 4056.18 6111.27 c + h + S + n + 4073.9 6101.15 m + 4073.9 6107.48 4069.47 6111.91 4063.77 6111.91 c + 4057.45 6111.91 4053.02 6107.48 4053.02 6101.15 c + 4053.02 6095.46 4057.45 6091.03 4063.77 6091.03 c + 4069.47 6091.03 4073.9 6095.46 4073.9 6101.15 c + eofill + n + 4073.9 6101.15 m + 4073.9 6107.48 4069.47 6111.91 4063.77 6111.91 c + 4057.45 6111.91 4053.02 6107.48 4053.02 6101.15 c + 4053.02 6095.46 4057.45 6091.03 4063.77 6091.03 c + 4069.47 6091.03 4073.9 6095.46 4073.9 6101.15 c + h + S + n + 4090.98 6107.48 m + 4090.98 6113.8 4086.55 6118.23 4080.86 6118.23 c + 4074.53 6118.23 4070.1 6113.8 4070.1 6107.48 c + 4070.1 6101.78 4074.53 6097.36 4080.86 6097.36 c + 4086.55 6097.36 4090.98 6101.78 4090.98 6107.48 c + eofill + n + 4090.98 6107.48 m + 4090.98 6113.8 4086.55 6118.23 4080.86 6118.23 c + 4074.53 6118.23 4070.1 6113.8 4070.1 6107.48 c + 4070.1 6101.78 4074.53 6097.36 4080.86 6097.36 c + 4086.55 6097.36 4090.98 6101.78 4090.98 6107.48 c + h + S + n + 4108.06 6113.17 m + 4108.06 6119.5 4103.64 6123.93 4097.94 6123.93 c + 4091.61 6123.93 4087.18 6119.5 4087.18 6113.17 c + 4087.18 6107.48 4091.61 6103.05 4097.94 6103.05 c + 4103.64 6103.05 4108.06 6107.48 4108.06 6113.17 c + eofill + n + 4108.06 6113.17 m + 4108.06 6119.5 4103.64 6123.93 4097.94 6123.93 c + 4091.61 6123.93 4087.18 6119.5 4087.18 6113.17 c + 4087.18 6107.48 4091.61 6103.05 4097.94 6103.05 c + 4103.64 6103.05 4108.06 6107.48 4108.06 6113.17 c + h + S + n + 4125.15 6104.31 m + 4125.15 6110.64 4120.72 6115.07 4115.02 6115.07 c + 4108.7 6115.07 4104.27 6110.64 4104.27 6104.31 c + 4104.27 6098.62 4108.7 6094.19 4115.02 6094.19 c + 4120.72 6094.19 4125.15 6098.62 4125.15 6104.31 c + eofill + n + 4125.15 6104.31 m + 4125.15 6110.64 4120.72 6115.07 4115.02 6115.07 c + 4108.7 6115.07 4104.27 6110.64 4104.27 6104.31 c + 4104.27 6098.62 4108.7 6094.19 4115.02 6094.19 c + 4120.72 6094.19 4125.15 6098.62 4125.15 6104.31 c + h + S + n + 4142.23 6108.11 m + 4142.23 6114.44 4137.8 6118.87 4132.11 6118.87 c + 4125.78 6118.87 4121.35 6114.44 4121.35 6108.11 c + 4121.35 6102.41 4125.78 6097.99 4132.11 6097.99 c + 4137.8 6097.99 4142.23 6102.41 4142.23 6108.11 c + eofill + n + 4142.23 6108.11 m + 4142.23 6114.44 4137.8 6118.87 4132.11 6118.87 c + 4125.78 6118.87 4121.35 6114.44 4121.35 6108.11 c + 4121.35 6102.41 4125.78 6097.99 4132.11 6097.99 c + 4137.8 6097.99 4142.23 6102.41 4142.23 6108.11 c + h + S + n + 4159.95 6111.91 m + 4159.95 6118.23 4155.52 6122.66 4149.82 6122.66 c + 4143.5 6122.66 4139.07 6118.23 4139.07 6111.91 c + 4139.07 6106.21 4143.5 6101.78 4149.82 6101.78 c + 4155.52 6101.78 4159.95 6106.21 4159.95 6111.91 c + eofill + n + 4159.95 6111.91 m + 4159.95 6118.23 4155.52 6122.66 4149.82 6122.66 c + 4143.5 6122.66 4139.07 6118.23 4139.07 6111.91 c + 4139.07 6106.21 4143.5 6101.78 4149.82 6101.78 c + 4155.52 6101.78 4159.95 6106.21 4159.95 6111.91 c + h + S + n + 4177.03 6103.68 m + 4177.03 6110.01 4172.6 6114.44 4166.91 6114.44 c + 4160.58 6114.44 4156.15 6110.01 4156.15 6103.68 c + 4156.15 6097.99 4160.58 6093.56 4166.91 6093.56 c + 4172.6 6093.56 4177.03 6097.99 4177.03 6103.68 c + eofill + n + 4177.03 6103.68 m + 4177.03 6110.01 4172.6 6114.44 4166.91 6114.44 c + 4160.58 6114.44 4156.15 6110.01 4156.15 6103.68 c + 4156.15 6097.99 4160.58 6093.56 4166.91 6093.56 c + 4172.6 6093.56 4177.03 6097.99 4177.03 6103.68 c + h + S + n + 4194.12 6106.84 m + 4194.12 6113.17 4189.69 6117.6 4183.99 6117.6 c + 4177.66 6117.6 4173.23 6113.17 4173.23 6106.84 c + 4173.23 6101.15 4177.66 6096.72 4183.99 6096.72 c + 4189.69 6096.72 4194.12 6101.15 4194.12 6106.84 c + eofill + n + 4194.12 6106.84 m + 4194.12 6113.17 4189.69 6117.6 4183.99 6117.6 c + 4177.66 6117.6 4173.23 6113.17 4173.23 6106.84 c + 4173.23 6101.15 4177.66 6096.72 4183.99 6096.72 c + 4189.69 6096.72 4194.12 6101.15 4194.12 6106.84 c + h + S + n + 4211.2 6109.38 m + 4211.2 6115.7 4206.77 6120.13 4201.07 6120.13 c + 4194.75 6120.13 4190.32 6115.7 4190.32 6109.38 c + 4190.32 6103.68 4194.75 6099.25 4201.07 6099.25 c + 4206.77 6099.25 4211.2 6103.68 4211.2 6109.38 c + eofill + n + 4211.2 6109.38 m + 4211.2 6115.7 4206.77 6120.13 4201.07 6120.13 c + 4194.75 6120.13 4190.32 6115.7 4190.32 6109.38 c + 4190.32 6103.68 4194.75 6099.25 4201.07 6099.25 c + 4206.77 6099.25 4211.2 6103.68 4211.2 6109.38 c + h + S + n + 4228.28 6101.78 m + 4228.28 6108.11 4223.86 6112.54 4218.16 6112.54 c + 4211.83 6112.54 4207.4 6108.11 4207.4 6101.78 c + 4207.4 6096.09 4211.83 6091.66 4218.16 6091.66 c + 4223.86 6091.66 4228.28 6096.09 4228.28 6101.78 c + eofill + n + 4228.28 6101.78 m + 4228.28 6108.11 4223.86 6112.54 4218.16 6112.54 c + 4211.83 6112.54 4207.4 6108.11 4207.4 6101.78 c + 4207.4 6096.09 4211.83 6091.66 4218.16 6091.66 c + 4223.86 6091.66 4228.28 6096.09 4228.28 6101.78 c + h + S + n + 4246 6112.54 m + 4246 6118.87 4241.57 6123.3 4235.88 6123.3 c + 4229.55 6123.3 4225.12 6118.87 4225.12 6112.54 c + 4225.12 6106.84 4229.55 6102.41 4235.88 6102.41 c + 4241.57 6102.41 4246 6106.84 4246 6112.54 c + eofill + n + 4246 6112.54 m + 4246 6118.87 4241.57 6123.3 4235.88 6123.3 c + 4229.55 6123.3 4225.12 6118.87 4225.12 6112.54 c + 4225.12 6106.84 4229.55 6102.41 4235.88 6102.41 c + 4241.57 6102.41 4246 6106.84 4246 6112.54 c + h + S + n + 4263.08 6105.58 m + 4263.08 6111.91 4258.65 6116.34 4252.96 6116.34 c + 4246.63 6116.34 4242.2 6111.91 4242.2 6105.58 c + 4242.2 6099.89 4246.63 6095.46 4252.96 6095.46 c + 4258.65 6095.46 4263.08 6099.89 4263.08 6105.58 c + eofill + n + 4263.08 6105.58 m + 4263.08 6111.91 4258.65 6116.34 4252.96 6116.34 c + 4246.63 6116.34 4242.2 6111.91 4242.2 6105.58 c + 4242.2 6099.89 4246.63 6095.46 4252.96 6095.46 c + 4258.65 6095.46 4263.08 6099.89 4263.08 6105.58 c + h + S + n + 4280.17 6106.84 m + 4280.17 6113.17 4275.74 6117.6 4270.04 6117.6 c + 4263.71 6117.6 4259.29 6113.17 4259.29 6106.84 c + 4259.29 6101.15 4263.71 6096.72 4270.04 6096.72 c + 4275.74 6096.72 4280.17 6101.15 4280.17 6106.84 c + eofill + n + 4280.17 6106.84 m + 4280.17 6113.17 4275.74 6117.6 4270.04 6117.6 c + 4263.71 6117.6 4259.29 6113.17 4259.29 6106.84 c + 4259.29 6101.15 4263.71 6096.72 4270.04 6096.72 c + 4275.74 6096.72 4280.17 6101.15 4280.17 6106.84 c + h + S + n + 4297.25 6108.11 m + 4297.25 6114.44 4292.82 6118.87 4287.12 6118.87 c + 4280.8 6118.87 4276.37 6114.44 4276.37 6108.11 c + 4276.37 6102.41 4280.8 6097.99 4287.12 6097.99 c + 4292.82 6097.99 4297.25 6102.41 4297.25 6108.11 c + eofill + n + 4297.25 6108.11 m + 4297.25 6114.44 4292.82 6118.87 4287.12 6118.87 c + 4280.8 6118.87 4276.37 6114.44 4276.37 6108.11 c + 4276.37 6102.41 4280.8 6097.99 4287.12 6097.99 c + 4292.82 6097.99 4297.25 6102.41 4297.25 6108.11 c + h + S + n + 4314.33 6108.74 m + 4314.33 6115.07 4309.91 6119.5 4304.21 6119.5 c + 4297.88 6119.5 4293.45 6115.07 4293.45 6108.74 c + 4293.45 6103.05 4297.88 6098.62 4304.21 6098.62 c + 4309.91 6098.62 4314.33 6103.05 4314.33 6108.74 c + eofill + n + 4314.33 6108.74 m + 4314.33 6115.07 4309.91 6119.5 4304.21 6119.5 c + 4297.88 6119.5 4293.45 6115.07 4293.45 6108.74 c + 4293.45 6103.05 4297.88 6098.62 4304.21 6098.62 c + 4309.91 6098.62 4314.33 6103.05 4314.33 6108.74 c + h + S + n + 4332.05 6102.41 m + 4332.05 6108.74 4327.62 6113.17 4321.93 6113.17 c + 4315.6 6113.17 4311.17 6108.74 4311.17 6102.41 c + 4311.17 6096.72 4315.6 6092.29 4321.93 6092.29 c + 4327.62 6092.29 4332.05 6096.72 4332.05 6102.41 c + eofill + n + 4332.05 6102.41 m + 4332.05 6108.74 4327.62 6113.17 4321.93 6113.17 c + 4315.6 6113.17 4311.17 6108.74 4311.17 6102.41 c + 4311.17 6096.72 4315.6 6092.29 4321.93 6092.29 c + 4327.62 6092.29 4332.05 6096.72 4332.05 6102.41 c + h + S + n + 4349.13 6110.01 m + 4349.13 6116.34 4344.7 6120.77 4339.01 6120.77 c + 4332.68 6120.77 4328.25 6116.34 4328.25 6110.01 c + 4328.25 6104.31 4332.68 6099.89 4339.01 6099.89 c + 4344.7 6099.89 4349.13 6104.31 4349.13 6110.01 c + eofill + n + 4349.13 6110.01 m + 4349.13 6116.34 4344.7 6120.77 4339.01 6120.77 c + 4332.68 6120.77 4328.25 6116.34 4328.25 6110.01 c + 4328.25 6104.31 4332.68 6099.89 4339.01 6099.89 c + 4344.7 6099.89 4349.13 6104.31 4349.13 6110.01 c + h + S + n + 4366.22 6110.01 m + 4366.22 6116.34 4361.79 6120.77 4356.09 6120.77 c + 4349.77 6120.77 4345.34 6116.34 4345.34 6110.01 c + 4345.34 6104.31 4349.77 6099.89 4356.09 6099.89 c + 4361.79 6099.89 4366.22 6104.31 4366.22 6110.01 c + eofill + n + 4366.22 6110.01 m + 4366.22 6116.34 4361.79 6120.77 4356.09 6120.77 c + 4349.77 6120.77 4345.34 6116.34 4345.34 6110.01 c + 4345.34 6104.31 4349.77 6099.89 4356.09 6099.89 c + 4361.79 6099.89 4366.22 6104.31 4366.22 6110.01 c + h + S + n + 4383.3 6103.68 m + 4383.3 6110.01 4378.87 6114.44 4373.18 6114.44 c + 4366.85 6114.44 4362.42 6110.01 4362.42 6103.68 c + 4362.42 6097.99 4366.85 6093.56 4373.18 6093.56 c + 4378.87 6093.56 4383.3 6097.99 4383.3 6103.68 c + eofill + n + 4383.3 6103.68 m + 4383.3 6110.01 4378.87 6114.44 4373.18 6114.44 c + 4366.85 6114.44 4362.42 6110.01 4362.42 6103.68 c + 4362.42 6097.99 4366.85 6093.56 4373.18 6093.56 c + 4378.87 6093.56 4383.3 6097.99 4383.3 6103.68 c + h + S + n + 4400.38 6110.01 m + 4400.38 6116.34 4395.96 6120.77 4390.26 6120.77 c + 4383.93 6120.77 4379.5 6116.34 4379.5 6110.01 c + 4379.5 6104.31 4383.93 6099.89 4390.26 6099.89 c + 4395.96 6099.89 4400.38 6104.31 4400.38 6110.01 c + eofill + n + 4400.38 6110.01 m + 4400.38 6116.34 4395.96 6120.77 4390.26 6120.77 c + 4383.93 6120.77 4379.5 6116.34 4379.5 6110.01 c + 4379.5 6104.31 4383.93 6099.89 4390.26 6099.89 c + 4395.96 6099.89 4400.38 6104.31 4400.38 6110.01 c + h + S + n + 4418.1 6104.31 m + 4418.1 6110.64 4413.67 6115.07 4407.98 6115.07 c + 4401.65 6115.07 4397.22 6110.64 4397.22 6104.31 c + 4397.22 6098.62 4401.65 6094.19 4407.98 6094.19 c + 4413.67 6094.19 4418.1 6098.62 4418.1 6104.31 c + eofill + n + 4418.1 6104.31 m + 4418.1 6110.64 4413.67 6115.07 4407.98 6115.07 c + 4401.65 6115.07 4397.22 6110.64 4397.22 6104.31 c + 4397.22 6098.62 4401.65 6094.19 4407.98 6094.19 c + 4413.67 6094.19 4418.1 6098.62 4418.1 6104.31 c + h + S + n + 4435.18 6109.38 m + 4435.18 6115.7 4430.75 6120.13 4425.06 6120.13 c + 4418.73 6120.13 4414.3 6115.7 4414.3 6109.38 c + 4414.3 6103.68 4418.73 6099.25 4425.06 6099.25 c + 4430.75 6099.25 4435.18 6103.68 4435.18 6109.38 c + eofill + n + 4435.18 6109.38 m + 4435.18 6115.7 4430.75 6120.13 4425.06 6120.13 c + 4418.73 6120.13 4414.3 6115.7 4414.3 6109.38 c + 4414.3 6103.68 4418.73 6099.25 4425.06 6099.25 c + 4430.75 6099.25 4435.18 6103.68 4435.18 6109.38 c + h + S + n + 4452.27 6109.38 m + 4452.27 6115.7 4447.84 6120.13 4442.14 6120.13 c + 4435.82 6120.13 4431.39 6115.7 4431.39 6109.38 c + 4431.39 6103.68 4435.82 6099.25 4442.14 6099.25 c + 4447.84 6099.25 4452.27 6103.68 4452.27 6109.38 c + eofill + n + 4452.27 6109.38 m + 4452.27 6115.7 4447.84 6120.13 4442.14 6120.13 c + 4435.82 6120.13 4431.39 6115.7 4431.39 6109.38 c + 4431.39 6103.68 4435.82 6099.25 4442.14 6099.25 c + 4447.84 6099.25 4452.27 6103.68 4452.27 6109.38 c + h + S + n + 4469.35 6108.74 m + 4469.35 6115.07 4464.92 6119.5 4459.23 6119.5 c + 4452.9 6119.5 4448.47 6115.07 4448.47 6108.74 c + 4448.47 6103.05 4452.9 6098.62 4459.23 6098.62 c + 4464.92 6098.62 4469.35 6103.05 4469.35 6108.74 c + eofill + n + 4469.35 6108.74 m + 4469.35 6115.07 4464.92 6119.5 4459.23 6119.5 c + 4452.9 6119.5 4448.47 6115.07 4448.47 6108.74 c + 4448.47 6103.05 4452.9 6098.62 4459.23 6098.62 c + 4464.92 6098.62 4469.35 6103.05 4469.35 6108.74 c + h + S + n + 4486.43 6108.11 m + 4486.43 6114.44 4482.01 6118.87 4476.31 6118.87 c + 4469.98 6118.87 4465.55 6114.44 4465.55 6108.11 c + 4465.55 6102.41 4469.98 6097.99 4476.31 6097.99 c + 4482.01 6097.99 4486.43 6102.41 4486.43 6108.11 c + eofill + n + 4486.43 6108.11 m + 4486.43 6114.44 4482.01 6118.87 4476.31 6118.87 c + 4469.98 6118.87 4465.55 6114.44 4465.55 6108.11 c + 4465.55 6102.41 4469.98 6097.99 4476.31 6097.99 c + 4482.01 6097.99 4486.43 6102.41 4486.43 6108.11 c + h + S + n + 4504.15 6112.54 m + 4504.15 6118.87 4499.72 6123.3 4494.03 6123.3 c + 4487.7 6123.3 4483.27 6118.87 4483.27 6112.54 c + 4483.27 6106.84 4487.7 6102.41 4494.03 6102.41 c + 4499.72 6102.41 4504.15 6106.84 4504.15 6112.54 c + eofill + n + 4504.15 6112.54 m + 4504.15 6118.87 4499.72 6123.3 4494.03 6123.3 c + 4487.7 6123.3 4483.27 6118.87 4483.27 6112.54 c + 4483.27 6106.84 4487.7 6102.41 4494.03 6102.41 c + 4499.72 6102.41 4504.15 6106.84 4504.15 6112.54 c + h + S + n + 4521.23 6106.84 m + 4521.23 6113.17 4516.8 6117.6 4511.11 6117.6 c + 4504.79 6117.6 4500.36 6113.17 4500.36 6106.84 c + 4500.36 6101.15 4504.79 6096.72 4511.11 6096.72 c + 4516.8 6096.72 4521.23 6101.15 4521.23 6106.84 c + eofill + n + 4521.23 6106.84 m + 4521.23 6113.17 4516.8 6117.6 4511.11 6117.6 c + 4504.79 6117.6 4500.36 6113.17 4500.36 6106.84 c + 4500.36 6101.15 4504.79 6096.72 4511.11 6096.72 c + 4516.8 6096.72 4521.23 6101.15 4521.23 6106.84 c + h + S + n + 4538.32 6115.07 m + 4538.32 6121.4 4533.89 6125.83 4528.2 6125.83 c + 4521.87 6125.83 4517.44 6121.4 4517.44 6115.07 c + 4517.44 6109.38 4521.87 6104.95 4528.2 6104.95 c + 4533.89 6104.95 4538.32 6109.38 4538.32 6115.07 c + eofill + n + 4538.32 6115.07 m + 4538.32 6121.4 4533.89 6125.83 4528.2 6125.83 c + 4521.87 6125.83 4517.44 6121.4 4517.44 6115.07 c + 4517.44 6109.38 4521.87 6104.95 4528.2 6104.95 c + 4533.89 6104.95 4538.32 6109.38 4538.32 6115.07 c + h + S + n + 4555.4 6110.01 m + 4555.4 6116.34 4550.97 6120.77 4545.28 6120.77 c + 4538.95 6120.77 4534.52 6116.34 4534.52 6110.01 c + 4534.52 6104.31 4538.95 6099.89 4545.28 6099.89 c + 4550.97 6099.89 4555.4 6104.31 4555.4 6110.01 c + eofill + n + 4555.4 6110.01 m + 4555.4 6116.34 4550.97 6120.77 4545.28 6120.77 c + 4538.95 6120.77 4534.52 6116.34 4534.52 6110.01 c + 4534.52 6104.31 4538.95 6099.89 4545.28 6099.89 c + 4550.97 6099.89 4555.4 6104.31 4555.4 6110.01 c + h + S + n + 4572.48 6116.97 m + 4572.48 6123.3 4568.06 6127.73 4562.36 6127.73 c + 4556.04 6127.73 4551.61 6123.3 4551.61 6116.97 c + 4551.61 6111.27 4556.04 6106.84 4562.36 6106.84 c + 4568.06 6106.84 4572.48 6111.27 4572.48 6116.97 c + eofill + n + 4572.48 6116.97 m + 4572.48 6123.3 4568.06 6127.73 4562.36 6127.73 c + 4556.04 6127.73 4551.61 6123.3 4551.61 6116.97 c + 4551.61 6111.27 4556.04 6106.84 4562.36 6106.84 c + 4568.06 6106.84 4572.48 6111.27 4572.48 6116.97 c + h + S + n + 4590.2 6115.7 m + 4590.2 6122.03 4585.77 6126.46 4580.08 6126.46 c + 4573.75 6126.46 4569.32 6122.03 4569.32 6115.7 c + 4569.32 6110.01 4573.75 6105.58 4580.08 6105.58 c + 4585.77 6105.58 4590.2 6110.01 4590.2 6115.7 c + eofill + n + 4590.2 6115.7 m + 4590.2 6122.03 4585.77 6126.46 4580.08 6126.46 c + 4573.75 6126.46 4569.32 6122.03 4569.32 6115.7 c + 4569.32 6110.01 4573.75 6105.58 4580.08 6105.58 c + 4585.77 6105.58 4590.2 6110.01 4590.2 6115.7 c + h + S + n + 4607.29 6118.23 m + 4607.29 6124.56 4602.86 6128.99 4597.16 6128.99 c + 4590.84 6128.99 4586.41 6124.56 4586.41 6118.23 c + 4586.41 6112.54 4590.84 6108.11 4597.16 6108.11 c + 4602.86 6108.11 4607.29 6112.54 4607.29 6118.23 c + eofill + n + 4607.29 6118.23 m + 4607.29 6124.56 4602.86 6128.99 4597.16 6128.99 c + 4590.84 6128.99 4586.41 6124.56 4586.41 6118.23 c + 4586.41 6112.54 4590.84 6108.11 4597.16 6108.11 c + 4602.86 6108.11 4607.29 6112.54 4607.29 6118.23 c + h + S + n + 4624.37 6131.52 m + 4624.37 6137.85 4619.94 6142.28 4614.25 6142.28 c + 4607.92 6142.28 4603.49 6137.85 4603.49 6131.52 c + 4603.49 6125.83 4607.92 6121.4 4614.25 6121.4 c + 4619.94 6121.4 4624.37 6125.83 4624.37 6131.52 c + eofill + n + 4624.37 6131.52 m + 4624.37 6137.85 4619.94 6142.28 4614.25 6142.28 c + 4607.92 6142.28 4603.49 6137.85 4603.49 6131.52 c + 4603.49 6125.83 4607.92 6121.4 4614.25 6121.4 c + 4619.94 6121.4 4624.37 6125.83 4624.37 6131.52 c + h + S + n + 4667.39 6138.48 m + 4667.39 6144.81 4662.96 6149.24 4657.27 6149.24 c + 4650.95 6149.24 4646.52 6144.81 4646.52 6138.48 c + 4646.52 6132.79 4650.95 6128.36 4657.27 6128.36 c + 4662.96 6128.36 4667.39 6132.79 4667.39 6138.48 c + eofill + n + 4667.39 6138.48 m + 4667.39 6144.81 4662.96 6149.24 4657.27 6149.24 c + 4650.95 6149.24 4646.52 6144.81 4646.52 6138.48 c + 4646.52 6132.79 4650.95 6128.36 4657.27 6128.36 c + 4662.96 6128.36 4667.39 6132.79 4667.39 6138.48 c + h + S + n + 4710.42 6141.64 m + 4710.42 6147.97 4705.99 6152.4 4700.3 6152.4 c + 4693.97 6152.4 4689.54 6147.97 4689.54 6141.64 c + 4689.54 6135.95 4693.97 6131.52 4700.3 6131.52 c + 4705.99 6131.52 4710.42 6135.95 4710.42 6141.64 c + eofill + n + 4710.42 6141.64 m + 4710.42 6147.97 4705.99 6152.4 4700.3 6152.4 c + 4693.97 6152.4 4689.54 6147.97 4689.54 6141.64 c + 4689.54 6135.95 4693.97 6131.52 4700.3 6131.52 c + 4705.99 6131.52 4710.42 6135.95 4710.42 6141.64 c + h + S + n + 4753.45 6151.77 m + 4753.45 6158.1 4749.02 6162.52 4743.32 6162.52 c + 4737 6162.52 4732.57 6158.1 4732.57 6151.77 c + 4732.57 6146.07 4737 6141.64 4743.32 6141.64 c + 4749.02 6141.64 4753.45 6146.07 4753.45 6151.77 c + eofill + n + 4753.45 6151.77 m + 4753.45 6158.1 4749.02 6162.52 4743.32 6162.52 c + 4737 6162.52 4732.57 6158.1 4732.57 6151.77 c + 4732.57 6146.07 4737 6141.64 4743.32 6141.64 c + 4749.02 6141.64 4753.45 6146.07 4753.45 6151.77 c + h + S + n + 4796.47 6157.46 m + 4796.47 6163.79 4792.04 6168.22 4786.35 6168.22 c + 4780.02 6168.22 4775.59 6163.79 4775.59 6157.46 c + 4775.59 6151.77 4780.02 6147.34 4786.35 6147.34 c + 4792.04 6147.34 4796.47 6151.77 4796.47 6157.46 c + eofill + n + 4796.47 6157.46 m + 4796.47 6163.79 4792.04 6168.22 4786.35 6168.22 c + 4780.02 6168.22 4775.59 6163.79 4775.59 6157.46 c + 4775.59 6151.77 4780.02 6147.34 4786.35 6147.34 c + 4792.04 6147.34 4796.47 6151.77 4796.47 6157.46 c + h + S + n + 4839.5 6164.42 m + 4839.5 6170.75 4835.07 6175.18 4829.38 6175.18 c + 4823.05 6175.18 4818.62 6170.75 4818.62 6164.42 c + 4818.62 6158.73 4823.05 6154.3 4829.38 6154.3 c + 4835.07 6154.3 4839.5 6158.73 4839.5 6164.42 c + eofill + n + 4839.5 6164.42 m + 4839.5 6170.75 4835.07 6175.18 4829.38 6175.18 c + 4823.05 6175.18 4818.62 6170.75 4818.62 6164.42 c + 4818.62 6158.73 4823.05 6154.3 4829.38 6154.3 c + 4835.07 6154.3 4839.5 6158.73 4839.5 6164.42 c + h + S + n + 4882.52 6172.65 m + 4882.52 6178.98 4878.09 6183.41 4872.4 6183.41 c + 4866.07 6183.41 4861.64 6178.98 4861.64 6172.65 c + 4861.64 6166.95 4866.07 6162.52 4872.4 6162.52 c + 4878.09 6162.52 4882.52 6166.95 4882.52 6172.65 c + eofill + n + 4882.52 6172.65 m + 4882.52 6178.98 4878.09 6183.41 4872.4 6183.41 c + 4866.07 6183.41 4861.64 6178.98 4861.64 6172.65 c + 4861.64 6166.95 4866.07 6162.52 4872.4 6162.52 c + 4878.09 6162.52 4882.52 6166.95 4882.52 6172.65 c + h + S + n + 4925.55 6183.41 m + 4925.55 6189.73 4921.12 6194.16 4915.43 6194.16 c + 4909.1 6194.16 4904.67 6189.73 4904.67 6183.41 c + 4904.67 6177.71 4909.1 6173.28 4915.43 6173.28 c + 4921.12 6173.28 4925.55 6177.71 4925.55 6183.41 c + eofill + n + 4925.55 6183.41 m + 4925.55 6189.73 4921.12 6194.16 4915.43 6194.16 c + 4909.1 6194.16 4904.67 6189.73 4904.67 6183.41 c + 4904.67 6177.71 4909.1 6173.28 4915.43 6173.28 c + 4921.12 6173.28 4925.55 6177.71 4925.55 6183.41 c + h + S + n + 4968.57 6196.69 m + 4968.57 6203.02 4964.14 6207.45 4958.45 6207.45 c + 4952.12 6207.45 4947.7 6203.02 4947.7 6196.69 c + 4947.7 6191 4952.12 6186.57 4958.45 6186.57 c + 4964.14 6186.57 4968.57 6191 4968.57 6196.69 c + eofill + n + 4968.57 6196.69 m + 4968.57 6203.02 4964.14 6207.45 4958.45 6207.45 c + 4952.12 6207.45 4947.7 6203.02 4947.7 6196.69 c + 4947.7 6191 4952.12 6186.57 4958.45 6186.57 c + 4964.14 6186.57 4968.57 6191 4968.57 6196.69 c + h + S + n + 5011.6 6208.08 m + 5011.6 6214.41 5007.17 6218.84 5001.48 6218.84 c + 4995.15 6218.84 4990.72 6214.41 4990.72 6208.08 c + 4990.72 6202.39 4995.15 6197.96 5001.48 6197.96 c + 5007.17 6197.96 5011.6 6202.39 5011.6 6208.08 c + eofill + n + 5011.6 6208.08 m + 5011.6 6214.41 5007.17 6218.84 5001.48 6218.84 c + 4995.15 6218.84 4990.72 6214.41 4990.72 6208.08 c + 4990.72 6202.39 4995.15 6197.96 5001.48 6197.96 c + 5007.17 6197.96 5011.6 6202.39 5011.6 6208.08 c + h + S + n + 5054.62 6219.47 m + 5054.62 6225.8 5050.2 6230.23 5044.5 6230.23 c + 5038.17 6230.23 5033.75 6225.8 5033.75 6219.47 c + 5033.75 6213.78 5038.17 6209.35 5044.5 6209.35 c + 5050.2 6209.35 5054.62 6213.78 5054.62 6219.47 c + eofill + n + 5054.62 6219.47 m + 5054.62 6225.8 5050.2 6230.23 5044.5 6230.23 c + 5038.17 6230.23 5033.75 6225.8 5033.75 6219.47 c + 5033.75 6213.78 5038.17 6209.35 5044.5 6209.35 c + 5050.2 6209.35 5054.62 6213.78 5054.62 6219.47 c + h + S + n + 5097.65 6222.63 m + 5097.65 6228.96 5093.22 6233.39 5087.53 6233.39 c + 5081.2 6233.39 5076.77 6228.96 5076.77 6222.63 c + 5076.77 6216.94 5081.2 6212.51 5087.53 6212.51 c + 5093.22 6212.51 5097.65 6216.94 5097.65 6222.63 c + eofill + n + 5097.65 6222.63 m + 5097.65 6228.96 5093.22 6233.39 5087.53 6233.39 c + 5081.2 6233.39 5076.77 6228.96 5076.77 6222.63 c + 5076.77 6216.94 5081.2 6212.51 5087.53 6212.51 c + 5093.22 6212.51 5097.65 6216.94 5097.65 6222.63 c + h + S + n + 5140.68 6234.02 m + 5140.68 6240.35 5136.25 6244.78 5130.55 6244.78 c + 5124.22 6244.78 5119.8 6240.35 5119.8 6234.02 c + 5119.8 6228.33 5124.22 6223.9 5130.55 6223.9 c + 5136.25 6223.9 5140.68 6228.33 5140.68 6234.02 c + eofill + n + 5140.68 6234.02 m + 5140.68 6240.35 5136.25 6244.78 5130.55 6244.78 c + 5124.22 6244.78 5119.8 6240.35 5119.8 6234.02 c + 5119.8 6228.33 5124.22 6223.9 5130.55 6223.9 c + 5136.25 6223.9 5140.68 6228.33 5140.68 6234.02 c + h + S + n + 5183.7 6241.62 m + 5183.7 6247.94 5179.27 6252.37 5173.58 6252.37 c + 5167.25 6252.37 5162.82 6247.94 5162.82 6241.62 c + 5162.82 6235.92 5167.25 6231.49 5173.58 6231.49 c + 5179.27 6231.49 5183.7 6235.92 5183.7 6241.62 c + eofill + n + 5183.7 6241.62 m + 5183.7 6247.94 5179.27 6252.37 5173.58 6252.37 c + 5167.25 6252.37 5162.82 6247.94 5162.82 6241.62 c + 5162.82 6235.92 5167.25 6231.49 5173.58 6231.49 c + 5179.27 6231.49 5183.7 6235.92 5183.7 6241.62 c + h + S + n + 5226.73 6244.78 m + 5226.73 6251.11 5222.3 6255.54 5216.6 6255.54 c + 5210.27 6255.54 5205.85 6251.11 5205.85 6244.78 c + 5205.85 6239.09 5210.27 6234.66 5216.6 6234.66 c + 5222.3 6234.66 5226.73 6239.09 5226.73 6244.78 c + eofill + n + 5226.73 6244.78 m + 5226.73 6251.11 5222.3 6255.54 5216.6 6255.54 c + 5210.27 6255.54 5205.85 6251.11 5205.85 6244.78 c + 5205.85 6239.09 5210.27 6234.66 5216.6 6234.66 c + 5222.3 6234.66 5226.73 6239.09 5226.73 6244.78 c + h + S + n + 5269.75 6251.11 m + 5269.75 6257.43 5265.32 6261.86 5259.63 6261.86 c + 5253.3 6261.86 5248.87 6257.43 5248.87 6251.11 c + 5248.87 6245.41 5253.3 6240.98 5259.63 6240.98 c + 5265.32 6240.98 5269.75 6245.41 5269.75 6251.11 c + eofill + n + 5269.75 6251.11 m + 5269.75 6257.43 5265.32 6261.86 5259.63 6261.86 c + 5253.3 6261.86 5248.87 6257.43 5248.87 6251.11 c + 5248.87 6245.41 5253.3 6240.98 5259.63 6240.98 c + 5265.32 6240.98 5269.75 6245.41 5269.75 6251.11 c + h + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 339.748 595.309 m + /N96 4.68211 Tf + (0.E+00) + [2.59718 1.29555 3.11695 2.72825 2.59715 2.59718 ] pdfxs + 340.887 618.024 m + (1.E-08) show + 340.887 640.802 m + (2.E-08) show + 340.887 663.517 m + (3.E-08) show + 340.887 686.295 m + (4.E-08) show + 340.887 709.009 m + (5.E-08) show + 340.887 731.788 m + (6.E-08) show + 356.515 586.197 m + /N96 6.07417 Tf + (0500100015002000) + [39.6722 3.35344 3.35346 34.6098 3.35346 3.35341 3.35346 32.965 3.35346 3.35341 3.35346 + 32.9654 3.35346 3.35341 3.35346 3.35346 ] pdfxs + 397.642 581.198 m + /N98 6.07417 Tf + (Number of LLU Bench iterations) + [4.38699 3.71269 5.40145 3.71269 3.3787 2.36436 1.70839 3.71269 2.02402 1.70839 3.71269 + 3.71264 4.38707 1.70835 4.38702 3.37865 3.71269 3.3787 3.71269 1.70835 1.69008 2.02402 + 3.3787 2.36441 3.37865 2.02407 1.69004 3.71269 3.71269 3.37865 ] pdfxs + 339.431 626.503 m + /N98 [0 6.07417 -6.07417 0 0 0] Tf + (Time per node dereference) + [3.70546 1.68286 5.39422 3.37148 1.70835 3.70546 3.37143 2.35719 1.70839 3.70546 3.70546 + 3.70546 3.37143 1.70835 3.70546 3.37148 2.35719 3.37143 2.01684 3.37148 2.35719 3.37143 + 3.70546 3.37148 3.37143 ] pdfys + Q + n + 3665.12 6775.64 376.473 401.781 re + 1 1 1 sc + f + 0.632645 w + n + 3664.49 6775.64 377.105 402.414 re + 0 0 0 sc + S + 2.53084 w + n + 3678.44 7141.36 m + 3739.18 7141.36 l + 0 0 0.501907 sc + S + n + 3708.81 7152.11 m + 3719.57 7141.36 l + 3708.81 7130.6 l + 3698.06 7141.36 l + 3708.81 7152.11 l + eofill + n + 3708.81 7152.11 m + 3719.57 7141.36 l + 3708.81 7130.6 l + 3698.06 7141.36 l + 3708.81 7152.11 l + h + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 375.117 712.49 m + /N96 5.06181 Tf + (Normal 64) + [3.64894 2.80865 1.67981 4.21072 2.80865 1.11803 1.392 2.80868 2.80865 ] pdfxs + Q + n + 3678.44 7074.29 m + 3739.18 7074.29 l + 1 0 1 sc + S + n + 3698.06 7064.16 20.8789 20.8828 re + eofill + 0 J + n + 3698.06 7064.16 20.8789 20.8828 re + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 375.117 705.784 m + /N96 5.06181 Tf + (PoolAlloc 64) + [3.3625 2.80055 2.80052 1.10991 3.3625 1.10991 1.10991 2.80052 2.51711 1.392 2.80055 + 2.80055 ] pdfxs + Q + 1 J + n + 3678.44 7007.21 m + 3739.18 7007.21 l + 0 0 0 sc + S + n + 3708.81 7017.97 m + 3719.57 6996.46 l + 3698.06 6996.46 l + 3708.81 7017.97 l + eofill + n + 3708.81 7017.97 m + 3719.57 6996.46 l + 3698.06 6996.46 l + 3708.81 7017.97 l + h + S + q + 10 0 0 10 0 0 cm + 375.117 699.077 m + /N96 5.06181 Tf + (PtrComp 64) + [3.36533 1.39622 1.67454 3.64367 2.80338 4.20547 2.80338 1.392 2.80341 2.80338 ] pdfxs + Q + n + 3678.44 6940.15 m + 3739.18 6940.15 l + 1 0.399857 0 sc + S + n + 3708.81 6940.15 m + 3698.06 6950.9 l + S + n + 3708.81 6940.15 m + 3719.57 6929.39 l + S + n + 3708.81 6940.15 m + 3698.06 6929.39 l + S + n + 3708.81 6940.15 m + 3719.57 6950.9 l + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 375.117 692.37 m + /N96 5.06181 Tf + (Normal 32) + [3.64894 2.80865 1.67981 4.21072 2.80865 1.11803 1.392 2.80868 2.80865 ] pdfxs + Q + n + 3678.44 6873.08 m + 3739.18 6873.08 l + 0.501907 0 0.501907 sc + S + n + 3708.81 6873.08 m + 3698.06 6883.84 l + S + n + 3708.81 6873.08 m + 3719.57 6862.32 l + S + n + 3708.81 6873.08 m + 3698.06 6862.32 l + S + n + 3708.81 6873.08 m + 3719.57 6883.84 l + S + n + 3708.81 6873.08 m + 3708.81 6883.84 l + S + n + 3708.81 6873.08 m + 3708.81 6862.32 l + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 375.117 685.663 m + /N96 5.06181 Tf + (PoolAlloc 32) + [3.3625 2.80055 2.80052 1.10991 3.3625 1.10991 1.10991 2.80052 2.51711 1.392 2.80055 + 2.80055 ] pdfxs + Q + n + 3678.44 6806.01 m + 3739.18 6806.01 l + 0.501907 0 0 sc + S + n + 3718.94 6806.01 m + 3718.94 6812.34 3714.51 6816.77 3708.81 6816.77 c + 3702.48 6816.77 3698.06 6812.34 3698.06 6806.01 c + 3698.06 6800.31 3702.48 6795.89 3708.81 6795.89 c + 3714.51 6795.89 3718.94 6800.31 3718.94 6806.01 c + eofill + n + 3718.94 6806.01 m + 3718.94 6812.34 3714.51 6816.77 3708.81 6816.77 c + 3702.48 6816.77 3698.06 6812.34 3698.06 6806.01 c + 3698.06 6800.31 3702.48 6795.89 3708.81 6795.89 c + 3714.51 6795.89 3718.94 6800.31 3718.94 6806.01 c + h + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 375.117 678.956 m + /N96 5.06181 Tf + (PtrComp 32) + [3.36533 1.39622 1.67454 3.64367 2.80338 4.20547 2.80338 1.392 2.80341 2.80338 ] pdfxs + Q + Q + {} settransfer + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 346.26 569.16 m + /N17 8.96638 Tf + (\(b\)1.8GhzAMDOpteron244-1MBCache) + [3.60273 5.10017 6.60273 4.62109 2.57567 4.62109 7.25576 5.10017 7.14188 6.90289 8.46031 + 10.0797 7.13657 5.10017 3.60276 4.0785 3.59993 4.62109 8.2801 4.62114 4.62109 7.62114 + 6.18379 4.62114 8.46026 9.54068 6.65759 4.62109 3.84188 5.10017 4.07845 ] pdfxs + Q + {} settransfer + q + n + 682.793 4050.54 m + 2770.79 4050.54 l + 2770.79 5663.99 l + 682.793 5663.99 l + h + W + n + n + 696.082 4063.2 2054.46 1590.04 re + [/DeviceRGB] cs 1 1 1 sc + + f + 0.632645 w + 1 M + 1 J + 2 j + n + 989.031 4266.3 1685.59 1346.44 re + 0 0 0 sc + S + Q + q + n + 989.031 4433.97 m + 2674.62 4433.97 l + 2674.62 4434.61 l + 989.031 4434.61 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 989.031 4434.61 m + 2674.62 4434.61 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 989.031 4602.28 m + 2674.62 4602.28 l + 2674.62 4602.91 l + 989.031 4602.91 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 989.031 4602.91 m + 2674.62 4602.91 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 989.031 4770.58 m + 2674.62 4770.58 l + 2674.62 4771.21 l + 989.031 4771.21 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 989.031 4771.21 m + 2674.62 4771.21 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 989.031 4938.89 m + 2674.62 4938.89 l + 2674.62 4939.52 l + 989.031 4939.52 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 989.031 4939.52 m + 2674.62 4939.52 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 989.031 5107.2 m + 2674.62 5107.2 l + 2674.62 5107.83 l + 989.031 5107.83 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 989.031 5107.83 m + 2674.62 5107.83 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 989.031 5615.27 m + 989.031 4263.77 l + 2674.62 4263.77 l + 2674.62 5615.27 l + 1594.55 5615.27 l + 1594.55 5219.19 l + 1216.82 5219.19 l + 1216.82 5615.27 l + h + eoclip + n + 0.632645 w + 1 J + 1 j + n + 989.031 5276.13 m + 2674.62 5276.13 l + [/DeviceRGB] cs 0 0 0 sc + + S + n + 989.031 5444.44 m + 2674.62 5444.44 l + S + n + 989.031 5612.74 m + 2674.62 5612.74 l + S + Q + q + n + 685.359 5663.99 m + 685.359 4053.07 l + 2761.34 4053.07 l + 2761.34 5663.99 l + 1216.85 5621.6 m + 1216.85 5219.19 l + 1594.59 5219.19 l + 1594.59 5621.6 l + h + eoclip + n + 2.53084 w + 1 j + n + 989.066 4266.3 1685.59 1346.44 re + [/DeviceRGB] cs 0.501907 0.501907 0.501907 sc + + S + Q + q + n + 682.793 4050.54 m + 2770.79 4050.54 l + 2770.79 5663.99 l + 682.793 5663.99 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 989.031 5612.74 m + 989.031 4266.3 l + [/DeviceRGB] cs 0 0 0 sc + + S + n + 973.848 4266.3 m + 989.031 4266.3 l + S + n + 973.848 4434.61 m + 989.031 4434.61 l + S + n + 973.848 4602.91 m + 989.031 4602.91 l + S + n + 973.848 4771.21 m + 989.031 4771.21 l + S + n + 973.848 4939.52 m + 989.031 4939.52 l + S + n + 973.848 5107.83 m + 989.031 5107.83 l + S + n + 973.848 5276.13 m + 989.031 5276.13 l + S + n + 973.848 5444.44 m + 989.031 5444.44 l + S + n + 973.848 5612.74 m + 989.031 5612.74 l + S + n + 989.031 4266.3 m + 2674.62 4266.3 l + S + n + 989.031 4247.95 m + 989.031 4266.3 l + S + n + 1410.43 4247.95 m + 1410.43 4266.3 l + S + n + 1831.82 4247.95 m + 1831.82 4266.3 l + S + n + 2253.22 4247.95 m + 2253.22 4266.3 l + S + n + 2674.62 4247.95 m + 2674.62 4266.3 l + S + 2.53084 w + n + 1106.75 5403.31 m + 1123.84 5332.45 l + 0 0 0.501907 sc + S + n + 1123.84 5332.45 m + 1140.92 5271.7 l + S + n + 1140.92 5271.7 m + 1157.38 5228.68 l + S + n + 1157.38 5228.68 m + 1174.46 5190.08 l + S + n + 1174.46 5190.08 m + 1191.54 5155.28 l + S + n + 1191.54 5155.28 m + 1207.99 5131.87 l + S + n + 1207.99 5131.87 m + 1225.07 5112.25 l + S + n + 1225.07 5112.25 m + 1242.16 5091.38 l + S + n + 1242.16 5091.38 m + 1258.61 5077.46 l + S + n + 1258.61 5077.46 m + 1275.7 5059.11 l + S + n + 1275.7 5059.11 m + 1292.78 5062.9 l + S + n + 1292.78 5062.9 m + 1309.23 5036.96 l + S + n + 1309.23 5036.96 m + 1326.31 5027.47 l + S + n + 1326.31 5027.47 m + 1342.76 5017.98 l + S + n + 1342.76 5017.98 m + 1359.85 5021.14 l + S + n + 1359.85 5021.14 m + 1376.93 5005.96 l + S + n + 1376.93 5005.96 m + 1393.38 5017.98 l + S + n + 1393.38 5017.98 m + 1410.46 4984.45 l + S + n + 1410.46 4984.45 m + 1427.55 4991.41 l + S + n + 1427.55 4991.41 m + 1444 4993.3 l + S + n + 1444 4993.3 m + 1461.08 4998.36 l + S + n + 1461.08 4998.36 m + 1478.17 5006.59 l + S + n + 1478.17 5006.59 m + 1494.62 5015.45 l + S + n + 1494.62 5015.45 m + 1511.7 5028.73 l + S + n + 1511.7 5028.73 m + 1528.15 5038.86 l + S + n + 1528.15 5038.86 m + 1545.23 5052.14 l + S + n + 1545.23 5052.14 m + 1562.32 5068.6 l + S + n + 1562.32 5068.6 m + 1578.77 5085.68 l + S + n + 1578.77 5085.68 m + 1595.85 5097.07 l + S + n + 1595.85 5097.07 m + 1612.94 5119.85 l + S + n + 1612.94 5119.85 m + 1629.39 5134.4 l + S + n + 1629.39 5134.4 m + 1646.47 5159.71 l + S + n + 1646.47 5159.71 m + 1663.55 5188.82 l + S + n + 1663.55 5188.82 m + 1680.01 5223.62 l + S + n + 1680.01 5223.62 m + 1697.09 5256.52 l + S + n + 1697.09 5256.52 m + 1714.17 5301.44 l + S + n + 1714.17 5301.44 m + 1730.62 5345.73 l + S + n + 1730.62 5345.73 m + 1747.71 5389.39 l + S + n + 1747.71 5389.39 m + 1764.16 5434.95 l + S + n + 1764.16 5434.95 m + 1781.24 5481.77 l + S + n + 1781.24 5481.77 m + 1798.32 5527.32 l + S + n + 1798.32 5527.32 m + 1814.78 5576.68 l + S + n + 1106.75 4800.32 m + 1123.84 4795.26 l + 1 0 1 sc + S + n + 1123.84 4795.26 m + 1140.92 4780.07 l + S + n + 1140.92 4780.07 m + 1157.38 4785.14 l + S + n + 1157.38 4785.14 m + 1174.46 4755.4 l + S + n + 1174.46 4755.4 m + 1191.54 4742.74 l + S + n + 1191.54 4742.74 m + 1207.99 4731.99 l + S + n + 1207.99 4731.99 m + 1225.07 4729.46 l + S + n + 1225.07 4729.46 m + 1242.16 4718.7 l + S + n + 1242.16 4718.7 m + 1258.61 4720.6 l + S + n + 1258.61 4720.6 m + 1275.7 4714.27 l + S + n + 1275.7 4714.27 m + 1292.78 4738.31 l + S + n + 1292.78 4738.31 m + 1309.23 4713 l + S + n + 1309.23 4713 m + 1326.31 4711.11 l + S + n + 1326.31 4711.11 m + 1342.76 4705.41 l + S + n + 1342.76 4705.41 m + 1359.85 4702.25 l + S + n + 1359.85 4702.25 m + 1376.93 4697.19 l + S + n + 1376.93 4697.19 m + 1393.38 4692.76 l + S + n + 1393.38 4692.76 m + 1410.46 4683.27 l + S + n + 1410.46 4683.27 m + 1427.55 4691.49 l + S + n + 1427.55 4691.49 m + 1444 4676.3 l + S + n + 1444 4676.3 m + 1461.08 4673.77 l + S + n + 1461.08 4673.77 m + 1478.17 4673.77 l + S + n + 1478.17 4673.77 m + 1494.62 4678.84 l + S + n + 1494.62 4678.84 m + 1511.7 4677.57 l + S + n + 1511.7 4677.57 m + 1528.15 4677.57 l + S + n + 1528.15 4677.57 m + 1545.23 4679.47 l + S + n + 1545.23 4679.47 m + 1562.32 4675.04 l + S + n + 1562.32 4675.04 m + 1578.77 4730.72 l + S + n + 1578.77 4730.72 m + 1595.85 4728.82 l + S + n + 1595.85 4728.82 m + 1612.94 4761.72 l + S + n + 1612.94 4761.72 m + 1629.39 4790.2 l + S + n + 1629.39 4790.2 m + 1646.47 4817.41 l + S + n + 1646.47 4817.41 m + 1663.55 4850.3 l + S + n + 1663.55 4850.3 m + 1680.01 4901.56 l + S + n + 1680.01 4901.56 m + 1697.09 4943.32 l + S + n + 1697.09 4943.32 m + 1714.17 5002.16 l + S + n + 1714.17 5002.16 m + 1730.62 5047.72 l + S + n + 1730.62 5047.72 m + 1747.71 5104.66 l + S + n + 1747.71 5104.66 m + 1764.16 5157.81 l + S + n + 1764.16 5157.81 m + 1781.24 5217.29 l + S + n + 1781.24 5217.29 m + 1798.32 5269.8 l + S + n + 1798.32 5269.8 m + 1814.78 5329.28 l + S + n + 1814.78 5329.28 m + 1831.86 5424.82 l + S + n + 1831.86 5424.82 m + 1848.95 5477.34 l + S + n + 1848.95 5477.34 m + 1865.39 5555.8 l + S + n + 1865.39 5555.8 m + 1882.48 5605.78 l + S + n + 1106.75 4854.73 m + 1123.84 4839.55 l + 0 0 0 sc + S + n + 1123.84 4839.55 m + 1140.92 4819.3 l + S + n + 1140.92 4819.3 m + 1157.38 4811.08 l + S + n + 1157.38 4811.08 m + 1174.46 4800.32 l + S + n + 1174.46 4800.32 m + 1191.54 4793.99 l + S + n + 1191.54 4793.99 m + 1207.99 4786.4 l + S + n + 1207.99 4786.4 m + 1225.07 4780.71 l + S + n + 1225.07 4780.71 m + 1242.16 4774.38 l + S + n + 1242.16 4774.38 m + 1258.61 4771.21 l + S + n + 1258.61 4771.21 m + 1275.7 4764.89 l + S + n + 1275.7 4764.89 m + 1292.78 4762.99 l + S + n + 1292.78 4762.99 m + 1309.23 4757.93 l + S + n + 1309.23 4757.93 m + 1326.31 4755.4 l + S + n + 1326.31 4755.4 m + 1342.76 4752.23 l + S + n + 1342.76 4752.23 m + 1359.85 4750.34 l + S + n + 1359.85 4750.34 m + 1376.93 4747.17 l + S + n + 1376.93 4747.17 m + 1393.38 4745.27 l + S + n + 1393.38 4745.27 m + 1410.46 4742.74 l + S + n + 1410.46 4742.74 m + 1427.55 4741.48 l + S + n + 1427.55 4741.48 m + 1444 4738.95 l + S + n + 1444 4738.95 m + 1461.08 4738.31 l + S + n + 1461.08 4738.31 m + 1478.17 4735.78 l + S + n + 1478.17 4735.78 m + 1494.62 4735.15 l + S + n + 1494.62 4735.15 m + 1511.7 4732.62 l + S + n + 1511.7 4732.62 m + 1528.15 4732.62 l + S + n + 1528.15 4732.62 m + 1545.23 4730.72 l + S + n + 1545.23 4730.72 m + 1562.32 4730.72 l + S + n + 1562.32 4730.72 m + 1578.77 4730.09 l + S + n + 1578.77 4730.09 m + 1595.85 4731.36 l + S + n + 1595.85 4731.36 m + 1612.94 4730.72 l + S + n + 1612.94 4730.72 m + 1629.39 4731.36 l + S + n + 1629.39 4731.36 m + 1646.47 4730.72 l + S + n + 1646.47 4730.72 m + 1663.55 4731.36 l + S + n + 1663.55 4731.36 m + 1680.01 4730.09 l + S + n + 1680.01 4730.09 m + 1697.09 4730.72 l + S + n + 1697.09 4730.72 m + 1714.17 4730.09 l + S + n + 1714.17 4730.09 m + 1730.62 4731.36 l + S + n + 1730.62 4731.36 m + 1747.71 4729.46 l + S + n + 1747.71 4729.46 m + 1764.16 4731.36 l + S + n + 1764.16 4731.36 m + 1781.24 4731.36 l + S + n + 1781.24 4731.36 m + 1798.32 4732.62 l + S + n + 1798.32 4732.62 m + 1814.78 4732.62 l + S + n + 1831.86 4728.82 m + 1874.25 4729.46 l + S + n + 1874.25 4729.46 m + 1916.01 4728.82 l + S + n + 1916.01 4728.82 m + 1958.41 4727.56 l + S + n + 1958.41 4727.56 m + 2000.17 4727.56 l + S + n + 2000.17 4727.56 m + 2042.56 4726.93 l + S + n + 2042.56 4726.93 m + 2084.95 4732.62 l + S + n + 2084.95 4732.62 m + 2126.71 4735.15 l + S + n + 2126.71 4735.15 m + 2169.11 4754.13 l + S + n + 2169.11 4754.13 m + 2210.86 4785.14 l + S + n + 2210.86 4785.14 m + 2253.26 4826.89 l + S + n + 2253.26 4826.89 m + 2295.65 4877.51 l + S + n + 2295.65 4877.51 m + 2337.41 4959.14 l + S + n + 2337.41 4959.14 m + 2379.8 5016.08 l + S + n + 2379.8 5016.08 m + 2421.56 5092.64 l + S + n + 2421.56 5092.64 m + 2463.96 5147.69 l + S + n + 2463.96 5147.69 m + 2506.35 5264.74 l + S + n + 2506.35 5264.74 m + 2548.11 5362.18 l + S + n + 2548.11 5362.18 m + 2590.5 5438.74 l + S + n + 2590.5 5438.74 m + 2632.26 5560.23 l + S + n + 1106.75 5095.17 m + 1123.84 5047.09 l + 1 0.399857 0 sc + S + n + 1123.84 5047.09 m + 1140.92 5010.39 l + S + n + 1140.92 5010.39 m + 1157.38 4965.46 l + S + n + 1157.38 4965.46 m + 1174.46 4935.72 l + S + n + 1174.46 4935.72 m + 1191.54 4912.31 l + S + n + 1191.54 4912.31 m + 1207.99 4888.9 l + S + n + 1207.99 4888.9 m + 1225.07 4873.72 l + S + n + 1225.07 4873.72 m + 1242.16 4853.47 l + S + n + 1242.16 4853.47 m + 1258.61 4838.29 l + S + n + 1258.61 4838.29 m + 1275.7 4828.79 l + S + n + 1275.7 4828.79 m + 1292.78 4817.41 l + S + n + 1292.78 4817.41 m + 1309.23 4807.91 l + S + n + 1309.23 4807.91 m + 1326.31 4799.05 l + S + n + 1326.31 4799.05 m + 1342.76 4788.93 l + S + n + 1342.76 4788.93 m + 1359.85 4780.71 l + S + n + 1359.85 4780.71 m + 1376.93 4774.38 l + S + n + 1376.93 4774.38 m + 1393.38 4769.32 l + S + n + 1393.38 4769.32 m + 1410.46 4763.62 l + S + n + 1410.46 4763.62 m + 1427.55 4761.72 l + S + n + 1427.55 4761.72 m + 1444 4757.93 l + S + n + 1444 4757.93 m + 1461.08 4754.13 l + S + n + 1461.08 4754.13 m + 1478.17 4753.5 l + S + n + 1478.17 4753.5 m + 1494.62 4752.23 l + S + n + 1494.62 4752.23 m + 1511.7 4749.7 l + S + n + 1511.7 4749.7 m + 1528.15 4746.54 l + S + n + 1528.15 4746.54 m + 1545.23 4745.27 l + S + n + 1545.23 4745.27 m + 1562.32 4742.74 l + S + n + 1562.32 4742.74 m + 1578.77 4741.48 l + S + n + 1578.77 4741.48 m + 1595.85 4738.95 l + S + n + 1595.85 4738.95 m + 1612.94 4738.31 l + S + n + 1612.94 4738.31 m + 1629.39 4737.05 l + S + n + 1629.39 4737.05 m + 1646.47 4736.41 l + S + n + 1646.47 4736.41 m + 1663.55 4737.68 l + S + n + 1663.55 4737.68 m + 1680.01 4735.78 l + S + n + 1680.01 4735.78 m + 1697.09 4735.78 l + S + n + 1697.09 4735.78 m + 1714.17 4733.88 l + S + n + 1714.17 4733.88 m + 1730.62 4732.62 l + S + n + 1730.62 4732.62 m + 1747.71 4731.36 l + S + n + 1747.71 4731.36 m + 1764.16 4731.36 l + S + n + 1764.16 4731.36 m + 1781.24 4729.46 l + S + n + 1781.24 4729.46 m + 1798.32 4728.19 l + S + n + 1798.32 4728.19 m + 1814.78 4726.93 l + S + n + 1831.86 4726.93 m + 1874.25 4738.31 l + S + n + 1874.25 4738.31 m + 1916.01 4775.64 l + S + n + 1916.01 4775.64 m + 1958.41 4830.06 l + S + n + 1958.41 4830.06 m + 2000.17 4899.66 l + S + n + 2000.17 4899.66 m + 2042.56 4981.28 l + S + n + 2042.56 4981.28 m + 2084.95 5064.8 l + S + n + 2084.95 5064.8 m + 2126.71 5166.04 l + S + n + 2126.71 5166.04 m + 2169.11 5276.13 l + S + n + 2169.11 5276.13 m + 2210.86 5365.35 l + S + n + 2210.86 5365.35 m + 2253.26 5472.28 l + S + n + 2253.26 5472.28 m + 2295.65 5585.54 l + S + n + 1106.75 4706.68 m + 1123.84 4690.23 l + 0.501907 0 0.501907 sc + S + n + 1123.84 4690.23 m + 1140.92 4707.94 l + S + n + 1140.92 4707.94 m + 1157.38 4670.61 l + S + n + 1157.38 4670.61 m + 1174.46 4661.12 l + S + n + 1174.46 4661.12 m + 1191.54 4657.32 l + S + n + 1191.54 4657.32 m + 1207.99 4649.73 l + S + n + 1207.99 4649.73 m + 1225.07 4647.2 l + S + n + 1225.07 4647.2 m + 1242.16 4641.51 l + S + n + 1242.16 4641.51 m + 1258.61 4638.98 l + S + n + 1258.61 4638.98 m + 1275.7 4635.18 l + S + n + 1275.7 4635.18 m + 1292.78 4642.14 l + S + n + 1292.78 4642.14 m + 1309.23 4626.32 l + S + n + 1309.23 4626.32 m + 1326.31 4623.16 l + S + n + 1326.31 4623.16 m + 1342.76 4620.62 l + S + n + 1342.76 4620.62 m + 1359.85 4619.36 l + S + n + 1359.85 4619.36 m + 1376.93 4615.57 l + S + n + 1376.93 4615.57 m + 1393.38 4614.93 l + S + n + 1393.38 4614.93 m + 1410.46 4612.4 l + S + n + 1410.46 4612.4 m + 1427.55 4611.77 l + S + n + 1427.55 4611.77 m + 1444 4610.5 l + S + n + 1444 4610.5 m + 1461.08 4608.61 l + S + n + 1461.08 4608.61 m + 1478.17 4607.34 l + S + n + 1478.17 4607.34 m + 1494.62 4606.07 l + S + n + 1494.62 4606.07 m + 1511.7 4656.06 l + S + n + 1511.7 4656.06 m + 1528.15 4602.91 l + S + n + 1528.15 4602.91 m + 1545.23 4602.28 l + S + n + 1545.23 4602.28 m + 1562.32 4604.18 l + S + n + 1562.32 4604.18 m + 1578.77 4655.43 l + S + n + 1578.77 4655.43 m + 1595.85 4640.24 l + S + n + 1595.85 4640.24 m + 1612.94 4643.41 l + S + n + 1612.94 4643.41 m + 1629.39 4637.71 l + S + n + 1629.39 4637.71 m + 1646.47 4620.62 l + S + n + 1646.47 4620.62 m + 1663.55 4637.08 l + S + n + 1663.55 4637.08 m + 1680.01 4618.73 l + S + n + 1680.01 4618.73 m + 1697.09 4633.91 l + S + n + 1697.09 4633.91 m + 1714.17 4617.46 l + S + n + 1714.17 4617.46 m + 1730.62 4630.75 l + S + n + 1730.62 4630.75 m + 1747.71 4615.57 l + S + n + 1747.71 4615.57 m + 1764.16 4627.59 l + S + n + 1764.16 4627.59 m + 1781.24 4613.67 l + S + n + 1781.24 4613.67 m + 1798.32 4625.05 l + S + n + 1798.32 4625.05 m + 1814.78 4612.4 l + S + n + 1831.86 4634.55 m + 1874.25 4611.14 l + S + n + 1874.25 4611.14 m + 1916.01 4619.36 l + S + n + 1916.01 4619.36 m + 1958.41 4617.46 l + S + n + 1958.41 4617.46 m + 2000.17 4607.34 l + S + n + 2000.17 4607.34 m + 2042.56 4618.73 l + S + n + 2042.56 4618.73 m + 2084.95 4592.15 l + S + n + 2084.95 4592.15 m + 2126.71 4615.57 l + S + n + 2126.71 4615.57 m + 2169.11 4697.82 l + S + n + 2169.11 4697.82 m + 2210.86 4761.72 l + S + n + 2210.86 4761.72 m + 2253.26 4728.82 l + S + n + 2253.26 4728.82 m + 2295.65 4829.43 l + S + n + 2295.65 4829.43 m + 2337.41 4825.63 l + S + n + 2337.41 4825.63 m + 2379.8 4917.38 l + S + n + 2379.8 4917.38 m + 2421.56 4976.85 l + S + n + 2421.56 4976.85 m + 2463.96 5096.44 l + S + n + 2463.96 5096.44 m + 2506.35 5162.88 l + S + n + 2506.35 5162.88 m + 2548.11 5292.58 l + S + n + 2548.11 5292.58 m + 2590.5 5355.22 l + S + n + 2590.5 5355.22 m + 2632.26 5451.4 l + S + n + 1106.75 4871.19 m + 1123.84 4847.77 l + 0.501907 0 0 sc + S + n + 1123.84 4847.77 m + 1140.92 4837.02 l + S + n + 1140.92 4837.02 m + 1157.38 4819.93 l + S + n + 1157.38 4819.93 m + 1174.46 4811.08 l + S + n + 1174.46 4811.08 m + 1191.54 4800.32 l + S + n + 1191.54 4800.32 m + 1207.99 4796.52 l + S + n + 1207.99 4796.52 m + 1225.07 4786.4 l + S + n + 1225.07 4786.4 m + 1242.16 4782.61 l + S + n + 1242.16 4782.61 m + 1258.61 4775.01 l + S + n + 1258.61 4775.01 m + 1275.7 4771.85 l + S + n + 1275.7 4771.85 m + 1292.78 4767.42 l + S + n + 1292.78 4767.42 m + 1309.23 4764.25 l + S + n + 1309.23 4764.25 m + 1326.31 4759.2 l + S + n + 1326.31 4759.2 m + 1342.76 4759.2 l + S + n + 1342.76 4759.2 m + 1359.85 4754.13 l + S + n + 1359.85 4754.13 m + 1376.93 4752.23 l + S + n + 1376.93 4752.23 m + 1393.38 4748.44 l + S + n + 1393.38 4748.44 m + 1410.46 4747.8 l + S + n + 1410.46 4747.8 m + 1427.55 4744.64 l + S + n + 1427.55 4744.64 m + 1444 4744.01 l + S + n + 1444 4744.01 m + 1461.08 4740.84 l + S + n + 1461.08 4740.84 m + 1478.17 4740.21 l + S + n + 1478.17 4740.21 m + 1494.62 4737.68 l + S + n + 1494.62 4737.68 m + 1511.7 4737.05 l + S + n + 1511.7 4737.05 m + 1528.15 4734.52 l + S + n + 1528.15 4734.52 m + 1545.23 4734.52 l + S + n + 1545.23 4734.52 m + 1562.32 4733.25 l + S + n + 1562.32 4733.25 m + 1578.77 4734.52 l + S + n + 1578.77 4734.52 m + 1595.85 4733.88 l + S + n + 1595.85 4733.88 m + 1612.94 4733.88 l + S + n + 1612.94 4733.88 m + 1629.39 4733.25 l + S + n + 1629.39 4733.25 m + 1646.47 4733.88 l + S + n + 1646.47 4733.88 m + 1663.55 4733.25 l + S + n + 1663.55 4733.25 m + 1680.01 4733.25 l + S + n + 1680.01 4733.25 m + 1697.09 4732.62 l + S + n + 1697.09 4732.62 m + 1714.17 4735.15 l + S + n + 1714.17 4735.15 m + 1730.62 4736.41 l + S + n + 1730.62 4736.41 m + 1747.71 4737.05 l + S + n + 1747.71 4737.05 m + 1764.16 4737.68 l + S + n + 1764.16 4737.68 m + 1781.24 4738.95 l + S + n + 1781.24 4738.95 m + 1798.32 4738.95 l + S + n + 1798.32 4738.95 m + 1814.78 4740.21 l + S + n + 1831.86 4731.36 m + 1874.25 4732.62 l + S + n + 1874.25 4732.62 m + 1916.01 4731.99 l + S + n + 1916.01 4731.99 m + 1958.41 4731.99 l + S + n + 1958.41 4731.99 m + 2000.17 4730.72 l + S + n + 2000.17 4730.72 m + 2042.56 4730.72 l + S + n + 2042.56 4730.72 m + 2084.95 4735.15 l + S + n + 2084.95 4735.15 m + 2126.71 4739.58 l + S + n + 2126.71 4739.58 m + 2169.11 4757.3 l + S + n + 2169.11 4757.3 m + 2210.86 4790.83 l + S + n + 2210.86 4790.83 m + 2253.26 4835.12 l + S + n + 2253.26 4835.12 m + 2295.65 4886.37 l + S + n + 2295.65 4886.37 m + 2337.41 4969.89 l + S + n + 2337.41 4969.89 m + 2379.8 5042.02 l + S + n + 2379.8 5042.02 m + 2421.56 5116.05 l + S + n + 2421.56 5116.05 m + 2463.96 5191.35 l + S + n + 2463.96 5191.35 m + 2506.35 5279.93 l + S + n + 2506.35 5279.93 m + 2548.11 5397.62 l + S + n + 2548.11 5397.62 m + 2590.5 5472.28 l + S + n + 2590.5 5472.28 m + 2632.26 5589.33 l + S + n + 1106.75 5414.07 m + 1117.51 5403.31 l + 1106.75 5392.55 l + 1096 5403.31 l + 1106.75 5414.07 l + 0 0 0.501907 sc + eofill + n + 1106.75 5414.07 m + 1117.51 5403.31 l + 1106.75 5392.55 l + 1096 5403.31 l + 1106.75 5414.07 l + h + S + n + 1123.84 5343.2 m + 1134.59 5332.45 l + 1123.84 5321.69 l + 1113.08 5332.45 l + 1123.84 5343.2 l + eofill + n + 1123.84 5343.2 m + 1134.59 5332.45 l + 1123.84 5321.69 l + 1113.08 5332.45 l + 1123.84 5343.2 l + h + S + n + 1140.92 5282.46 m + 1151.68 5271.7 l + 1140.92 5260.95 l + 1130.17 5271.7 l + 1140.92 5282.46 l + eofill + n + 1140.92 5282.46 m + 1151.68 5271.7 l + 1140.92 5260.95 l + 1130.17 5271.7 l + 1140.92 5282.46 l + h + S + n + 1157.38 5239.43 m + 1168.13 5228.68 l + 1157.38 5217.92 l + 1146.62 5228.68 l + 1157.38 5239.43 l + eofill + n + 1157.38 5239.43 m + 1168.13 5228.68 l + 1157.38 5217.92 l + 1146.62 5228.68 l + 1157.38 5239.43 l + h + S + n + 1174.46 5200.84 m + 1185.21 5190.08 l + 1174.46 5179.32 l + 1163.7 5190.08 l + 1174.46 5200.84 l + eofill + n + 1174.46 5200.84 m + 1185.21 5190.08 l + 1174.46 5179.32 l + 1163.7 5190.08 l + 1174.46 5200.84 l + h + S + n + 1191.54 5166.04 m + 1202.3 5155.28 l + 1191.54 5144.52 l + 1180.79 5155.28 l + 1191.54 5166.04 l + eofill + n + 1191.54 5166.04 m + 1202.3 5155.28 l + 1191.54 5144.52 l + 1180.79 5155.28 l + 1191.54 5166.04 l + h + S + n + 1207.99 5142.62 m + 1218.75 5131.87 l + 1207.99 5121.11 l + 1197.23 5131.87 l + 1207.99 5142.62 l + eofill + n + 1207.99 5142.62 m + 1218.75 5131.87 l + 1207.99 5121.11 l + 1197.23 5131.87 l + 1207.99 5142.62 l + h + S + n + 1225.07 5123.01 m + 1235.83 5112.25 l + 1225.07 5101.5 l + 1214.32 5112.25 l + 1225.07 5123.01 l + eofill + n + 1225.07 5123.01 m + 1235.83 5112.25 l + 1225.07 5101.5 l + 1214.32 5112.25 l + 1225.07 5123.01 l + h + S + n + 1242.16 5102.13 m + 1252.91 5091.38 l + 1242.16 5080.62 l + 1231.4 5091.38 l + 1242.16 5102.13 l + eofill + n + 1242.16 5102.13 m + 1252.91 5091.38 l + 1242.16 5080.62 l + 1231.4 5091.38 l + 1242.16 5102.13 l + h + S + n + 1258.61 5088.21 m + 1269.37 5077.46 l + 1258.61 5066.7 l + 1247.85 5077.46 l + 1258.61 5088.21 l + eofill + n + 1258.61 5088.21 m + 1269.37 5077.46 l + 1258.61 5066.7 l + 1247.85 5077.46 l + 1258.61 5088.21 l + h + S + n + 1275.7 5069.86 m + 1286.45 5059.11 l + 1275.7 5048.35 l + 1264.94 5059.11 l + 1275.7 5069.86 l + eofill + n + 1275.7 5069.86 m + 1286.45 5059.11 l + 1275.7 5048.35 l + 1264.94 5059.11 l + 1275.7 5069.86 l + h + S + n + 1292.78 5073.66 m + 1303.54 5062.9 l + 1292.78 5052.14 l + 1282.02 5062.9 l + 1292.78 5073.66 l + eofill + n + 1292.78 5073.66 m + 1303.54 5062.9 l + 1292.78 5052.14 l + 1282.02 5062.9 l + 1292.78 5073.66 l + h + S + n + 1309.23 5047.72 m + 1319.98 5036.96 l + 1309.23 5026.2 l + 1298.47 5036.96 l + 1309.23 5047.72 l + eofill + n + 1309.23 5047.72 m + 1319.98 5036.96 l + 1309.23 5026.2 l + 1298.47 5036.96 l + 1309.23 5047.72 l + h + S + n + 1326.31 5038.23 m + 1337.07 5027.47 l + 1326.31 5016.71 l + 1315.55 5027.47 l + 1326.31 5038.23 l + eofill + n + 1326.31 5038.23 m + 1337.07 5027.47 l + 1326.31 5016.71 l + 1315.55 5027.47 l + 1326.31 5038.23 l + h + S + n + 1342.76 5028.73 m + 1353.52 5017.98 l + 1342.76 5007.22 l + 1332.01 5017.98 l + 1342.76 5028.73 l + eofill + n + 1342.76 5028.73 m + 1353.52 5017.98 l + 1342.76 5007.22 l + 1332.01 5017.98 l + 1342.76 5028.73 l + h + S + n + 1359.85 5031.9 m + 1370.6 5021.14 l + 1359.85 5010.39 l + 1349.09 5021.14 l + 1359.85 5031.9 l + eofill + n + 1359.85 5031.9 m + 1370.6 5021.14 l + 1359.85 5010.39 l + 1349.09 5021.14 l + 1359.85 5031.9 l + h + S + n + 1376.93 5016.71 m + 1387.69 5005.96 l + 1376.93 4995.2 l + 1366.17 5005.96 l + 1376.93 5016.71 l + eofill + n + 1376.93 5016.71 m + 1387.69 5005.96 l + 1376.93 4995.2 l + 1366.17 5005.96 l + 1376.93 5016.71 l + h + S + n + 1393.38 5028.73 m + 1404.14 5017.98 l + 1393.38 5007.22 l + 1382.62 5017.98 l + 1393.38 5028.73 l + eofill + n + 1393.38 5028.73 m + 1404.14 5017.98 l + 1393.38 5007.22 l + 1382.62 5017.98 l + 1393.38 5028.73 l + h + S + n + 1410.46 4995.2 m + 1421.22 4984.45 l + 1410.46 4973.69 l + 1399.71 4984.45 l + 1410.46 4995.2 l + eofill + n + 1410.46 4995.2 m + 1421.22 4984.45 l + 1410.46 4973.69 l + 1399.71 4984.45 l + 1410.46 4995.2 l + h + S + n + 1427.55 5002.16 m + 1438.3 4991.41 l + 1427.55 4980.65 l + 1416.79 4991.41 l + 1427.55 5002.16 l + eofill + n + 1427.55 5002.16 m + 1438.3 4991.41 l + 1427.55 4980.65 l + 1416.79 4991.41 l + 1427.55 5002.16 l + h + S + n + 1444 5004.06 m + 1454.75 4993.3 l + 1444 4982.55 l + 1433.24 4993.3 l + 1444 5004.06 l + eofill + n + 1444 5004.06 m + 1454.75 4993.3 l + 1444 4982.55 l + 1433.24 4993.3 l + 1444 5004.06 l + h + S + n + 1461.08 5009.12 m + 1471.84 4998.36 l + 1461.08 4987.61 l + 1450.32 4998.36 l + 1461.08 5009.12 l + eofill + n + 1461.08 5009.12 m + 1471.84 4998.36 l + 1461.08 4987.61 l + 1450.32 4998.36 l + 1461.08 5009.12 l + h + S + n + 1478.17 5017.35 m + 1488.92 5006.59 l + 1478.17 4995.83 l + 1467.41 5006.59 l + 1478.17 5017.35 l + eofill + n + 1478.17 5017.35 m + 1488.92 5006.59 l + 1478.17 4995.83 l + 1467.41 5006.59 l + 1478.17 5017.35 l + h + S + n + 1494.62 5026.2 m + 1505.38 5015.45 l + 1494.62 5004.69 l + 1483.86 5015.45 l + 1494.62 5026.2 l + eofill + n + 1494.62 5026.2 m + 1505.38 5015.45 l + 1494.62 5004.69 l + 1483.86 5015.45 l + 1494.62 5026.2 l + h + S + n + 1511.7 5039.49 m + 1522.46 5028.73 l + 1511.7 5017.98 l + 1500.95 5028.73 l + 1511.7 5039.49 l + eofill + n + 1511.7 5039.49 m + 1522.46 5028.73 l + 1511.7 5017.98 l + 1500.95 5028.73 l + 1511.7 5039.49 l + h + S + n + 1528.15 5049.62 m + 1538.91 5038.86 l + 1528.15 5028.1 l + 1517.39 5038.86 l + 1528.15 5049.62 l + eofill + n + 1528.15 5049.62 m + 1538.91 5038.86 l + 1528.15 5028.1 l + 1517.39 5038.86 l + 1528.15 5049.62 l + h + S + n + 1545.23 5062.9 m + 1555.99 5052.14 l + 1545.23 5041.39 l + 1534.48 5052.14 l + 1545.23 5062.9 l + eofill + n + 1545.23 5062.9 m + 1555.99 5052.14 l + 1545.23 5041.39 l + 1534.48 5052.14 l + 1545.23 5062.9 l + h + S + n + 1562.32 5079.36 m + 1573.07 5068.6 l + 1562.32 5057.84 l + 1551.56 5068.6 l + 1562.32 5079.36 l + eofill + n + 1562.32 5079.36 m + 1573.07 5068.6 l + 1562.32 5057.84 l + 1551.56 5068.6 l + 1562.32 5079.36 l + h + S + n + 1578.77 5096.44 m + 1589.53 5085.68 l + 1578.77 5074.93 l + 1568.01 5085.68 l + 1578.77 5096.44 l + eofill + n + 1578.77 5096.44 m + 1589.53 5085.68 l + 1578.77 5074.93 l + 1568.01 5085.68 l + 1578.77 5096.44 l + h + S + n + 1595.85 5107.83 m + 1606.61 5097.07 l + 1595.85 5086.31 l + 1585.1 5097.07 l + 1595.85 5107.83 l + eofill + n + 1595.85 5107.83 m + 1606.61 5097.07 l + 1595.85 5086.31 l + 1585.1 5097.07 l + 1595.85 5107.83 l + h + S + n + 1612.94 5130.61 m + 1623.7 5119.85 l + 1612.94 5109.09 l + 1602.18 5119.85 l + 1612.94 5130.61 l + eofill + n + 1612.94 5130.61 m + 1623.7 5119.85 l + 1612.94 5109.09 l + 1602.18 5119.85 l + 1612.94 5130.61 l + h + S + n + 1629.39 5145.16 m + 1640.14 5134.4 l + 1629.39 5123.64 l + 1618.63 5134.4 l + 1629.39 5145.16 l + eofill + n + 1629.39 5145.16 m + 1640.14 5134.4 l + 1629.39 5123.64 l + 1618.63 5134.4 l + 1629.39 5145.16 l + h + S + n + 1646.47 5170.46 m + 1657.23 5159.71 l + 1646.47 5148.95 l + 1635.71 5159.71 l + 1646.47 5170.46 l + eofill + n + 1646.47 5170.46 m + 1657.23 5159.71 l + 1646.47 5148.95 l + 1635.71 5159.71 l + 1646.47 5170.46 l + h + S + n + 1663.55 5199.57 m + 1674.31 5188.82 l + 1663.55 5178.06 l + 1652.8 5188.82 l + 1663.55 5199.57 l + eofill + n + 1663.55 5199.57 m + 1674.31 5188.82 l + 1663.55 5178.06 l + 1652.8 5188.82 l + 1663.55 5199.57 l + h + S + n + 1680.01 5234.37 m + 1690.76 5223.62 l + 1680.01 5212.86 l + 1669.25 5223.62 l + 1680.01 5234.37 l + eofill + n + 1680.01 5234.37 m + 1690.76 5223.62 l + 1680.01 5212.86 l + 1669.25 5223.62 l + 1680.01 5234.37 l + h + S + n + 1697.09 5267.27 m + 1707.85 5256.52 l + 1697.09 5245.76 l + 1686.33 5256.52 l + 1697.09 5267.27 l + eofill + n + 1697.09 5267.27 m + 1707.85 5256.52 l + 1697.09 5245.76 l + 1686.33 5256.52 l + 1697.09 5267.27 l + h + S + n + 1714.17 5312.2 m + 1724.93 5301.44 l + 1714.17 5290.68 l + 1703.42 5301.44 l + 1714.17 5312.2 l + eofill + n + 1714.17 5312.2 m + 1724.93 5301.44 l + 1714.17 5290.68 l + 1703.42 5301.44 l + 1714.17 5312.2 l + h + S + n + 1730.62 5356.49 m + 1741.38 5345.73 l + 1730.62 5334.98 l + 1719.87 5345.73 l + 1730.62 5356.49 l + eofill + n + 1730.62 5356.49 m + 1741.38 5345.73 l + 1730.62 5334.98 l + 1719.87 5345.73 l + 1730.62 5356.49 l + h + S + n + 1747.71 5400.14 m + 1758.46 5389.39 l + 1747.71 5378.63 l + 1736.95 5389.39 l + 1747.71 5400.14 l + eofill + n + 1747.71 5400.14 m + 1758.46 5389.39 l + 1747.71 5378.63 l + 1736.95 5389.39 l + 1747.71 5400.14 l + h + S + n + 1764.16 5445.7 m + 1774.91 5434.95 l + 1764.16 5424.19 l + 1753.4 5434.95 l + 1764.16 5445.7 l + eofill + n + 1764.16 5445.7 m + 1774.91 5434.95 l + 1764.16 5424.19 l + 1753.4 5434.95 l + 1764.16 5445.7 l + h + S + n + 1781.24 5492.52 m + 1792 5481.77 l + 1781.24 5471.01 l + 1770.48 5481.77 l + 1781.24 5492.52 l + eofill + n + 1781.24 5492.52 m + 1792 5481.77 l + 1781.24 5471.01 l + 1770.48 5481.77 l + 1781.24 5492.52 l + h + S + n + 1798.32 5538.08 m + 1809.08 5527.32 l + 1798.32 5516.57 l + 1787.57 5527.32 l + 1798.32 5538.08 l + eofill + n + 1798.32 5538.08 m + 1809.08 5527.32 l + 1798.32 5516.57 l + 1787.57 5527.32 l + 1798.32 5538.08 l + h + S + n + 1814.78 5587.43 m + 1825.54 5576.68 l + 1814.78 5565.92 l + 1804.02 5576.68 l + 1814.78 5587.43 l + eofill + n + 1814.78 5587.43 m + 1825.54 5576.68 l + 1814.78 5565.92 l + 1804.02 5576.68 l + 1814.78 5587.43 l + h + S + n + 1096 4790.2 20.8789 20.8828 re + 1 0 1 sc + eofill + 0 J + n + 1096 4790.2 20.8789 20.8828 re + S + n + 1113.08 4785.14 20.8789 20.8789 re + eofill + n + 1113.08 4785.14 20.8789 20.8789 re + S + n + 1130.17 4769.95 20.8789 20.8789 re + eofill + n + 1130.17 4769.95 20.8789 20.8789 re + S + n + 1146.62 4775.01 20.8789 20.8789 re + eofill + n + 1146.62 4775.01 20.8789 20.8789 re + S + n + 1163.7 4745.27 20.8828 20.8789 re + eofill + n + 1163.7 4745.27 20.8828 20.8789 re + S + n + 1180.79 4732.62 20.8789 20.8828 re + eofill + n + 1180.79 4732.62 20.8789 20.8828 re + S + n + 1197.23 4721.86 20.8828 20.8789 re + eofill + n + 1197.23 4721.86 20.8828 20.8789 re + S + n + 1214.32 4719.33 20.8789 20.8789 re + eofill + n + 1214.32 4719.33 20.8789 20.8789 re + S + n + 1231.4 4708.57 20.8789 20.8828 re + eofill + n + 1231.4 4708.57 20.8789 20.8828 re + S + n + 1247.85 4710.47 20.8828 20.8828 re + eofill + n + 1247.85 4710.47 20.8828 20.8828 re + S + n + 1264.94 4704.14 20.8789 20.8828 re + eofill + n + 1264.94 4704.14 20.8789 20.8828 re + S + n + 1282.02 4728.19 20.8828 20.8789 re + eofill + n + 1282.02 4728.19 20.8828 20.8789 re + S + n + 1298.47 4702.88 20.8789 20.8828 re + eofill + n + 1298.47 4702.88 20.8789 20.8828 re + S + n + 1315.55 4700.98 20.8789 20.8789 re + eofill + n + 1315.55 4700.98 20.8789 20.8789 re + S + n + 1332.01 4695.29 20.8789 20.8789 re + eofill + n + 1332.01 4695.29 20.8789 20.8789 re + S + n + 1349.09 4692.12 20.8789 20.8789 re + eofill + n + 1349.09 4692.12 20.8789 20.8789 re + S + n + 1366.17 4687.06 20.8828 20.8789 re + eofill + n + 1366.17 4687.06 20.8828 20.8789 re + S + n + 1382.62 4682.63 20.8789 20.8789 re + eofill + n + 1382.62 4682.63 20.8789 20.8789 re + S + n + 1399.71 4673.14 20.8828 20.8789 re + eofill + n + 1399.71 4673.14 20.8828 20.8789 re + S + n + 1416.79 4681.37 20.8789 20.8828 re + eofill + n + 1416.79 4681.37 20.8789 20.8828 re + S + n + 1433.24 4666.18 20.8789 20.8789 re + eofill + n + 1433.24 4666.18 20.8789 20.8789 re + S + n + 1450.32 4663.65 20.8828 20.8789 re + eofill + n + 1450.32 4663.65 20.8828 20.8789 re + S + n + 1467.41 4663.65 20.8789 20.8789 re + eofill + n + 1467.41 4663.65 20.8789 20.8789 re + S + n + 1483.86 4668.71 20.8828 20.8789 re + eofill + n + 1483.86 4668.71 20.8828 20.8789 re + S + n + 1500.95 4667.45 20.8789 20.8789 re + eofill + n + 1500.95 4667.45 20.8789 20.8789 re + S + n + 1517.39 4667.45 20.8789 20.8789 re + eofill + n + 1517.39 4667.45 20.8789 20.8789 re + S + n + 1534.48 4669.35 20.8789 20.8789 re + eofill + n + 1534.48 4669.35 20.8789 20.8789 re + S + n + 1551.56 4664.92 20.8789 20.8789 re + eofill + n + 1551.56 4664.92 20.8789 20.8789 re + S + n + 1568.01 4720.6 20.8828 20.8789 re + eofill + n + 1568.01 4720.6 20.8828 20.8789 re + S + n + 1585.1 4718.7 20.8789 20.8789 re + eofill + n + 1585.1 4718.7 20.8789 20.8789 re + S + n + 1602.18 4751.6 20.8828 20.8789 re + eofill + n + 1602.18 4751.6 20.8828 20.8789 re + S + n + 1618.63 4780.07 20.8789 20.8789 re + eofill + n + 1618.63 4780.07 20.8789 20.8789 re + S + n + 1635.71 4807.28 20.8789 20.8789 re + eofill + n + 1635.71 4807.28 20.8789 20.8789 re + S + n + 1652.8 4840.18 20.8789 20.8789 re + eofill + n + 1652.8 4840.18 20.8789 20.8789 re + S + n + 1669.25 4891.43 20.8789 20.8789 re + eofill + n + 1669.25 4891.43 20.8789 20.8789 re + S + n + 1686.33 4933.2 20.8828 20.8789 re + eofill + n + 1686.33 4933.2 20.8828 20.8789 re + S + n + 1703.42 4992.04 20.8789 20.8789 re + eofill + n + 1703.42 4992.04 20.8789 20.8789 re + S + n + 1719.87 5037.59 20.8789 20.8789 re + eofill + n + 1719.87 5037.59 20.8789 20.8789 re + S + n + 1736.95 5094.54 20.8789 20.8789 re + eofill + n + 1736.95 5094.54 20.8789 20.8789 re + S + n + 1753.4 5147.69 20.8789 20.8789 re + eofill + n + 1753.4 5147.69 20.8789 20.8789 re + S + n + 1770.48 5207.16 20.8828 20.8789 re + eofill + n + 1770.48 5207.16 20.8828 20.8789 re + S + n + 1787.57 5259.68 20.8789 20.8828 re + eofill + n + 1787.57 5259.68 20.8789 20.8828 re + S + n + 1804.02 5319.16 20.8828 20.8828 re + eofill + n + 1804.02 5319.16 20.8828 20.8828 re + S + n + 1821.11 5414.7 20.8789 20.8789 re + eofill + n + 1821.11 5414.7 20.8789 20.8789 re + S + n + 1838.19 5467.21 20.8789 20.8789 re + eofill + n + 1838.19 5467.21 20.8789 20.8789 re + S + n + 1854.64 5545.67 20.8789 20.8828 re + eofill + n + 1854.64 5545.67 20.8789 20.8828 re + S + Q + q + n + 1852.74 5576.04 m + 1912.22 5576.04 l + 1912.22 5623.5 l + 1852.74 5623.5 l + h + W + n + n + 1871.72 5595.66 20.8789 20.8789 re + [/DeviceRGB] cs 1 0 1 sc + + eofill + 2.53084 w + 1 j + n + 1871.72 5595.66 20.8789 20.8789 re + S + Q + q + n + 682.793 4050.54 m + 2770.79 4050.54 l + 2770.79 5663.99 l + 682.793 5663.99 l + h + W + n + n + 1106.75 4865.49 m + 1117.51 4843.98 l + 1096 4843.98 l + 1106.75 4865.49 l + [/DeviceRGB] cs 0 0 0 sc + + eofill + 2.53084 w + 1 J + 1 j + n + 1106.75 4865.49 m + 1117.51 4843.98 l + 1096 4843.98 l + 1106.75 4865.49 l + h + S + n + 1123.84 4850.3 m + 1134.59 4828.79 l + 1113.08 4828.79 l + 1123.84 4850.3 l + eofill + n + 1123.84 4850.3 m + 1134.59 4828.79 l + 1113.08 4828.79 l + 1123.84 4850.3 l + h + S + n + 1140.92 4830.06 m + 1151.68 4808.55 l + 1130.17 4808.55 l + 1140.92 4830.06 l + eofill + n + 1140.92 4830.06 m + 1151.68 4808.55 l + 1130.17 4808.55 l + 1140.92 4830.06 l + h + S + n + 1157.38 4821.83 m + 1168.13 4800.32 l + 1146.62 4800.32 l + 1157.38 4821.83 l + eofill + n + 1157.38 4821.83 m + 1168.13 4800.32 l + 1146.62 4800.32 l + 1157.38 4821.83 l + h + S + n + 1174.46 4811.08 m + 1185.21 4789.57 l + 1163.7 4789.57 l + 1174.46 4811.08 l + eofill + n + 1174.46 4811.08 m + 1185.21 4789.57 l + 1163.7 4789.57 l + 1174.46 4811.08 l + h + S + n + 1191.54 4804.75 m + 1202.3 4783.24 l + 1180.79 4783.24 l + 1191.54 4804.75 l + eofill + n + 1191.54 4804.75 m + 1202.3 4783.24 l + 1180.79 4783.24 l + 1191.54 4804.75 l + h + S + n + 1207.99 4797.16 m + 1218.75 4775.64 l + 1197.23 4775.64 l + 1207.99 4797.16 l + eofill + n + 1207.99 4797.16 m + 1218.75 4775.64 l + 1197.23 4775.64 l + 1207.99 4797.16 l + h + S + n + 1225.07 4791.46 m + 1235.83 4769.95 l + 1214.32 4769.95 l + 1225.07 4791.46 l + eofill + n + 1225.07 4791.46 m + 1235.83 4769.95 l + 1214.32 4769.95 l + 1225.07 4791.46 l + h + S + n + 1242.16 4785.14 m + 1252.91 4763.62 l + 1231.4 4763.62 l + 1242.16 4785.14 l + eofill + n + 1242.16 4785.14 m + 1252.91 4763.62 l + 1231.4 4763.62 l + 1242.16 4785.14 l + h + S + n + 1258.61 4781.97 m + 1269.37 4760.46 l + 1247.85 4760.46 l + 1258.61 4781.97 l + eofill + n + 1258.61 4781.97 m + 1269.37 4760.46 l + 1247.85 4760.46 l + 1258.61 4781.97 l + h + S + n + 1275.7 4775.64 m + 1286.45 4754.13 l + 1264.94 4754.13 l + 1275.7 4775.64 l + eofill + n + 1275.7 4775.64 m + 1286.45 4754.13 l + 1264.94 4754.13 l + 1275.7 4775.64 l + h + S + n + 1292.78 4773.75 m + 1303.54 4752.23 l + 1282.02 4752.23 l + 1292.78 4773.75 l + eofill + n + 1292.78 4773.75 m + 1303.54 4752.23 l + 1282.02 4752.23 l + 1292.78 4773.75 l + h + S + n + 1309.23 4768.68 m + 1319.98 4747.17 l + 1298.47 4747.17 l + 1309.23 4768.68 l + eofill + n + 1309.23 4768.68 m + 1319.98 4747.17 l + 1298.47 4747.17 l + 1309.23 4768.68 l + h + S + n + 1326.31 4766.15 m + 1337.07 4744.64 l + 1315.55 4744.64 l + 1326.31 4766.15 l + eofill + n + 1326.31 4766.15 m + 1337.07 4744.64 l + 1315.55 4744.64 l + 1326.31 4766.15 l + h + S + n + 1342.76 4762.99 m + 1353.52 4741.48 l + 1332.01 4741.48 l + 1342.76 4762.99 l + eofill + n + 1342.76 4762.99 m + 1353.52 4741.48 l + 1332.01 4741.48 l + 1342.76 4762.99 l + h + S + n + 1359.85 4761.09 m + 1370.6 4739.58 l + 1349.09 4739.58 l + 1359.85 4761.09 l + eofill + n + 1359.85 4761.09 m + 1370.6 4739.58 l + 1349.09 4739.58 l + 1359.85 4761.09 l + h + S + n + 1376.93 4757.93 m + 1387.69 4736.41 l + 1366.17 4736.41 l + 1376.93 4757.93 l + eofill + n + 1376.93 4757.93 m + 1387.69 4736.41 l + 1366.17 4736.41 l + 1376.93 4757.93 l + h + S + n + 1393.38 4756.03 m + 1404.14 4734.52 l + 1382.62 4734.52 l + 1393.38 4756.03 l + eofill + n + 1393.38 4756.03 m + 1404.14 4734.52 l + 1382.62 4734.52 l + 1393.38 4756.03 l + h + S + n + 1410.46 4753.5 m + 1421.22 4731.99 l + 1399.71 4731.99 l + 1410.46 4753.5 l + eofill + n + 1410.46 4753.5 m + 1421.22 4731.99 l + 1399.71 4731.99 l + 1410.46 4753.5 l + h + S + n + 1427.55 4752.23 m + 1438.3 4730.72 l + 1416.79 4730.72 l + 1427.55 4752.23 l + eofill + n + 1427.55 4752.23 m + 1438.3 4730.72 l + 1416.79 4730.72 l + 1427.55 4752.23 l + h + S + n + 1444 4749.7 m + 1454.75 4728.19 l + 1433.24 4728.19 l + 1444 4749.7 l + eofill + n + 1444 4749.7 m + 1454.75 4728.19 l + 1433.24 4728.19 l + 1444 4749.7 l + h + S + n + 1461.08 4749.07 m + 1471.84 4727.56 l + 1450.32 4727.56 l + 1461.08 4749.07 l + eofill + n + 1461.08 4749.07 m + 1471.84 4727.56 l + 1450.32 4727.56 l + 1461.08 4749.07 l + h + S + n + 1478.17 4746.54 m + 1488.92 4725.03 l + 1467.41 4725.03 l + 1478.17 4746.54 l + eofill + n + 1478.17 4746.54 m + 1488.92 4725.03 l + 1467.41 4725.03 l + 1478.17 4746.54 l + h + S + n + 1494.62 4745.91 m + 1505.38 4724.39 l + 1483.86 4724.39 l + 1494.62 4745.91 l + eofill + n + 1494.62 4745.91 m + 1505.38 4724.39 l + 1483.86 4724.39 l + 1494.62 4745.91 l + h + S + n + 1511.7 4743.38 m + 1522.46 4721.86 l + 1500.95 4721.86 l + 1511.7 4743.38 l + eofill + n + 1511.7 4743.38 m + 1522.46 4721.86 l + 1500.95 4721.86 l + 1511.7 4743.38 l + h + S + n + 1528.15 4743.38 m + 1538.91 4721.86 l + 1517.39 4721.86 l + 1528.15 4743.38 l + eofill + n + 1528.15 4743.38 m + 1538.91 4721.86 l + 1517.39 4721.86 l + 1528.15 4743.38 l + h + S + n + 1545.23 4741.48 m + 1555.99 4719.96 l + 1534.48 4719.96 l + 1545.23 4741.48 l + eofill + n + 1545.23 4741.48 m + 1555.99 4719.96 l + 1534.48 4719.96 l + 1545.23 4741.48 l + h + S + n + 1562.32 4741.48 m + 1573.07 4719.96 l + 1551.56 4719.96 l + 1562.32 4741.48 l + eofill + n + 1562.32 4741.48 m + 1573.07 4719.96 l + 1551.56 4719.96 l + 1562.32 4741.48 l + h + S + n + 1578.77 4740.84 m + 1589.53 4719.33 l + 1568.01 4719.33 l + 1578.77 4740.84 l + eofill + n + 1578.77 4740.84 m + 1589.53 4719.33 l + 1568.01 4719.33 l + 1578.77 4740.84 l + h + S + n + 1595.85 4742.11 m + 1606.61 4720.6 l + 1585.1 4720.6 l + 1595.85 4742.11 l + eofill + n + 1595.85 4742.11 m + 1606.61 4720.6 l + 1585.1 4720.6 l + 1595.85 4742.11 l + h + S + n + 1612.94 4741.48 m + 1623.7 4719.96 l + 1602.18 4719.96 l + 1612.94 4741.48 l + eofill + n + 1612.94 4741.48 m + 1623.7 4719.96 l + 1602.18 4719.96 l + 1612.94 4741.48 l + h + S + n + 1629.39 4742.11 m + 1640.14 4720.6 l + 1618.63 4720.6 l + 1629.39 4742.11 l + eofill + n + 1629.39 4742.11 m + 1640.14 4720.6 l + 1618.63 4720.6 l + 1629.39 4742.11 l + h + S + n + 1646.47 4741.48 m + 1657.23 4719.96 l + 1635.71 4719.96 l + 1646.47 4741.48 l + eofill + n + 1646.47 4741.48 m + 1657.23 4719.96 l + 1635.71 4719.96 l + 1646.47 4741.48 l + h + S + n + 1663.55 4742.11 m + 1674.31 4720.6 l + 1652.8 4720.6 l + 1663.55 4742.11 l + eofill + n + 1663.55 4742.11 m + 1674.31 4720.6 l + 1652.8 4720.6 l + 1663.55 4742.11 l + h + S + n + 1680.01 4740.84 m + 1690.76 4719.33 l + 1669.25 4719.33 l + 1680.01 4740.84 l + eofill + n + 1680.01 4740.84 m + 1690.76 4719.33 l + 1669.25 4719.33 l + 1680.01 4740.84 l + h + S + n + 1697.09 4741.48 m + 1707.85 4719.96 l + 1686.33 4719.96 l + 1697.09 4741.48 l + eofill + n + 1697.09 4741.48 m + 1707.85 4719.96 l + 1686.33 4719.96 l + 1697.09 4741.48 l + h + S + n + 1714.17 4740.84 m + 1724.93 4719.33 l + 1703.42 4719.33 l + 1714.17 4740.84 l + eofill + n + 1714.17 4740.84 m + 1724.93 4719.33 l + 1703.42 4719.33 l + 1714.17 4740.84 l + h + S + n + 1730.62 4742.11 m + 1741.38 4720.6 l + 1719.87 4720.6 l + 1730.62 4742.11 l + eofill + n + 1730.62 4742.11 m + 1741.38 4720.6 l + 1719.87 4720.6 l + 1730.62 4742.11 l + h + S + n + 1747.71 4740.21 m + 1758.46 4718.7 l + 1736.95 4718.7 l + 1747.71 4740.21 l + eofill + n + 1747.71 4740.21 m + 1758.46 4718.7 l + 1736.95 4718.7 l + 1747.71 4740.21 l + h + S + n + 1764.16 4742.11 m + 1774.91 4720.6 l + 1753.4 4720.6 l + 1764.16 4742.11 l + eofill + n + 1764.16 4742.11 m + 1774.91 4720.6 l + 1753.4 4720.6 l + 1764.16 4742.11 l + h + S + n + 1781.24 4742.11 m + 1792 4720.6 l + 1770.48 4720.6 l + 1781.24 4742.11 l + eofill + n + 1781.24 4742.11 m + 1792 4720.6 l + 1770.48 4720.6 l + 1781.24 4742.11 l + h + S + n + 1798.32 4743.38 m + 1809.08 4721.86 l + 1787.57 4721.86 l + 1798.32 4743.38 l + eofill + n + 1798.32 4743.38 m + 1809.08 4721.86 l + 1787.57 4721.86 l + 1798.32 4743.38 l + h + S + n + 1814.78 4743.38 m + 1825.54 4721.86 l + 1804.02 4721.86 l + 1814.78 4743.38 l + eofill + n + 1814.78 4743.38 m + 1825.54 4721.86 l + 1804.02 4721.86 l + 1814.78 4743.38 l + h + S + n + 1831.86 4739.58 m + 1842.62 4718.07 l + 1821.11 4718.07 l + 1831.86 4739.58 l + eofill + n + 1831.86 4739.58 m + 1842.62 4718.07 l + 1821.11 4718.07 l + 1831.86 4739.58 l + h + S + n + 1874.25 4740.21 m + 1885.01 4718.7 l + 1863.5 4718.7 l + 1874.25 4740.21 l + eofill + n + 1874.25 4740.21 m + 1885.01 4718.7 l + 1863.5 4718.7 l + 1874.25 4740.21 l + h + S + n + 1916.01 4739.58 m + 1926.77 4718.07 l + 1905.26 4718.07 l + 1916.01 4739.58 l + eofill + n + 1916.01 4739.58 m + 1926.77 4718.07 l + 1905.26 4718.07 l + 1916.01 4739.58 l + h + S + n + 1958.41 4738.31 m + 1969.16 4716.8 l + 1947.65 4716.8 l + 1958.41 4738.31 l + eofill + n + 1958.41 4738.31 m + 1969.16 4716.8 l + 1947.65 4716.8 l + 1958.41 4738.31 l + h + S + n + 2000.17 4738.31 m + 2010.92 4716.8 l + 1989.41 4716.8 l + 2000.17 4738.31 l + eofill + n + 2000.17 4738.31 m + 2010.92 4716.8 l + 1989.41 4716.8 l + 2000.17 4738.31 l + h + S + n + 2042.56 4737.68 m + 2053.32 4716.17 l + 2031.8 4716.17 l + 2042.56 4737.68 l + eofill + n + 2042.56 4737.68 m + 2053.32 4716.17 l + 2031.8 4716.17 l + 2042.56 4737.68 l + h + S + n + 2084.95 4743.38 m + 2095.71 4721.86 l + 2074.2 4721.86 l + 2084.95 4743.38 l + eofill + n + 2084.95 4743.38 m + 2095.71 4721.86 l + 2074.2 4721.86 l + 2084.95 4743.38 l + h + S + n + 2126.71 4745.91 m + 2137.47 4724.39 l + 2115.96 4724.39 l + 2126.71 4745.91 l + eofill + n + 2126.71 4745.91 m + 2137.47 4724.39 l + 2115.96 4724.39 l + 2126.71 4745.91 l + h + S + n + 2169.11 4764.89 m + 2179.86 4743.38 l + 2158.35 4743.38 l + 2169.11 4764.89 l + eofill + n + 2169.11 4764.89 m + 2179.86 4743.38 l + 2158.35 4743.38 l + 2169.11 4764.89 l + h + S + n + 2210.86 4795.89 m + 2221.62 4774.38 l + 2200.11 4774.38 l + 2210.86 4795.89 l + eofill + n + 2210.86 4795.89 m + 2221.62 4774.38 l + 2200.11 4774.38 l + 2210.86 4795.89 l + h + S + n + 2253.26 4837.65 m + 2264.01 4816.14 l + 2242.5 4816.14 l + 2253.26 4837.65 l + eofill + n + 2253.26 4837.65 m + 2264.01 4816.14 l + 2242.5 4816.14 l + 2253.26 4837.65 l + h + S + n + 2295.65 4888.27 m + 2306.41 4866.76 l + 2284.89 4866.76 l + 2295.65 4888.27 l + eofill + n + 2295.65 4888.27 m + 2306.41 4866.76 l + 2284.89 4866.76 l + 2295.65 4888.27 l + h + S + n + 2337.41 4969.89 m + 2348.17 4948.38 l + 2326.65 4948.38 l + 2337.41 4969.89 l + eofill + n + 2337.41 4969.89 m + 2348.17 4948.38 l + 2326.65 4948.38 l + 2337.41 4969.89 l + h + S + n + 2379.8 5026.84 m + 2390.56 5005.32 l + 2369.05 5005.32 l + 2379.8 5026.84 l + eofill + n + 2379.8 5026.84 m + 2390.56 5005.32 l + 2369.05 5005.32 l + 2379.8 5026.84 l + h + S + n + 2421.56 5103.4 m + 2432.32 5081.88 l + 2410.8 5081.88 l + 2421.56 5103.4 l + eofill + n + 2421.56 5103.4 m + 2432.32 5081.88 l + 2410.8 5081.88 l + 2421.56 5103.4 l + h + S + n + 2463.96 5158.45 m + 2474.71 5136.93 l + 2453.2 5136.93 l + 2463.96 5158.45 l + eofill + n + 2463.96 5158.45 m + 2474.71 5136.93 l + 2453.2 5136.93 l + 2463.96 5158.45 l + h + S + n + 2506.35 5275.5 m + 2517.11 5253.98 l + 2495.59 5253.98 l + 2506.35 5275.5 l + eofill + n + 2506.35 5275.5 m + 2517.11 5253.98 l + 2495.59 5253.98 l + 2506.35 5275.5 l + h + S + n + 2548.11 5372.94 m + 2558.86 5351.43 l + 2537.35 5351.43 l + 2548.11 5372.94 l + eofill + n + 2548.11 5372.94 m + 2558.86 5351.43 l + 2537.35 5351.43 l + 2548.11 5372.94 l + h + S + n + 2590.5 5449.5 m + 2601.26 5427.98 l + 2579.75 5427.98 l + 2590.5 5449.5 l + eofill + n + 2590.5 5449.5 m + 2601.26 5427.98 l + 2579.75 5427.98 l + 2590.5 5449.5 l + h + S + n + 2632.26 5570.98 m + 2643.02 5549.47 l + 2621.5 5549.47 l + 2632.26 5570.98 l + eofill + n + 2632.26 5570.98 m + 2643.02 5549.47 l + 2621.5 5549.47 l + 2632.26 5570.98 l + h + S + n + 1106.75 5095.17 m + 1096 5105.93 l + 1 0.399857 0 sc + S + n + 1106.75 5095.17 m + 1117.51 5084.41 l + S + n + 1106.75 5095.17 m + 1096 5084.41 l + S + n + 1106.75 5095.17 m + 1117.51 5105.93 l + S + n + 1123.84 5047.09 m + 1113.08 5057.84 l + S + n + 1123.84 5047.09 m + 1134.59 5036.33 l + S + n + 1123.84 5047.09 m + 1113.08 5036.33 l + S + n + 1123.84 5047.09 m + 1134.59 5057.84 l + S + n + 1140.92 5010.39 m + 1130.17 5021.14 l + S + n + 1140.92 5010.39 m + 1151.68 4999.63 l + S + n + 1140.92 5010.39 m + 1130.17 4999.63 l + S + n + 1140.92 5010.39 m + 1151.68 5021.14 l + S + n + 1157.38 4965.46 m + 1146.62 4976.22 l + S + n + 1157.38 4965.46 m + 1168.13 4954.71 l + S + n + 1157.38 4965.46 m + 1146.62 4954.71 l + S + n + 1157.38 4965.46 m + 1168.13 4976.22 l + S + n + 1174.46 4935.72 m + 1163.7 4946.48 l + S + n + 1174.46 4935.72 m + 1185.21 4924.97 l + S + n + 1174.46 4935.72 m + 1163.7 4924.97 l + S + n + 1174.46 4935.72 m + 1185.21 4946.48 l + S + n + 1191.54 4912.31 m + 1180.79 4923.07 l + S + n + 1191.54 4912.31 m + 1202.3 4901.56 l + S + n + 1191.54 4912.31 m + 1180.79 4901.56 l + S + n + 1191.54 4912.31 m + 1202.3 4923.07 l + S + n + 1207.99 4888.9 m + 1197.23 4899.66 l + S + n + 1207.99 4888.9 m + 1218.75 4878.14 l + S + n + 1207.99 4888.9 m + 1197.23 4878.14 l + S + n + 1207.99 4888.9 m + 1218.75 4899.66 l + S + n + 1225.07 4873.72 m + 1214.32 4884.47 l + S + n + 1225.07 4873.72 m + 1235.83 4862.96 l + S + n + 1225.07 4873.72 m + 1214.32 4862.96 l + S + n + 1225.07 4873.72 m + 1235.83 4884.47 l + S + n + 1242.16 4853.47 m + 1231.4 4864.23 l + S + n + 1242.16 4853.47 m + 1252.91 4842.71 l + S + n + 1242.16 4853.47 m + 1231.4 4842.71 l + S + n + 1242.16 4853.47 m + 1252.91 4864.23 l + S + n + 1258.61 4838.29 m + 1247.85 4849.04 l + S + n + 1258.61 4838.29 m + 1269.37 4827.53 l + S + n + 1258.61 4838.29 m + 1247.85 4827.53 l + S + n + 1258.61 4838.29 m + 1269.37 4849.04 l + S + n + 1275.7 4828.79 m + 1264.94 4839.55 l + S + n + 1275.7 4828.79 m + 1286.45 4818.04 l + S + n + 1275.7 4828.79 m + 1264.94 4818.04 l + S + n + 1275.7 4828.79 m + 1286.45 4839.55 l + S + n + 1292.78 4817.41 m + 1282.02 4828.16 l + S + n + 1292.78 4817.41 m + 1303.54 4806.65 l + S + n + 1292.78 4817.41 m + 1282.02 4806.65 l + S + n + 1292.78 4817.41 m + 1303.54 4828.16 l + S + n + 1309.23 4807.91 m + 1298.47 4818.67 l + S + n + 1309.23 4807.91 m + 1319.98 4797.16 l + S + n + 1309.23 4807.91 m + 1298.47 4797.16 l + S + n + 1309.23 4807.91 m + 1319.98 4818.67 l + S + n + 1326.31 4799.05 m + 1315.55 4809.81 l + S + n + 1326.31 4799.05 m + 1337.07 4788.3 l + S + n + 1326.31 4799.05 m + 1315.55 4788.3 l + S + n + 1326.31 4799.05 m + 1337.07 4809.81 l + S + n + 1342.76 4788.93 m + 1332.01 4799.69 l + S + n + 1342.76 4788.93 m + 1353.52 4778.18 l + S + n + 1342.76 4788.93 m + 1332.01 4778.18 l + S + n + 1342.76 4788.93 m + 1353.52 4799.69 l + S + n + 1359.85 4780.71 m + 1349.09 4791.46 l + S + n + 1359.85 4780.71 m + 1370.6 4769.95 l + S + n + 1359.85 4780.71 m + 1349.09 4769.95 l + S + n + 1359.85 4780.71 m + 1370.6 4791.46 l + S + n + 1376.93 4774.38 m + 1366.17 4785.14 l + S + n + 1376.93 4774.38 m + 1387.69 4763.62 l + S + n + 1376.93 4774.38 m + 1366.17 4763.62 l + S + n + 1376.93 4774.38 m + 1387.69 4785.14 l + S + n + 1393.38 4769.32 m + 1382.62 4780.07 l + S + n + 1393.38 4769.32 m + 1404.14 4758.56 l + S + n + 1393.38 4769.32 m + 1382.62 4758.56 l + S + n + 1393.38 4769.32 m + 1404.14 4780.07 l + S + n + 1410.46 4763.62 m + 1399.71 4774.38 l + S + n + 1410.46 4763.62 m + 1421.22 4752.87 l + S + n + 1410.46 4763.62 m + 1399.71 4752.87 l + S + n + 1410.46 4763.62 m + 1421.22 4774.38 l + S + n + 1427.55 4761.72 m + 1416.79 4772.48 l + S + n + 1427.55 4761.72 m + 1438.3 4750.97 l + S + n + 1427.55 4761.72 m + 1416.79 4750.97 l + S + n + 1427.55 4761.72 m + 1438.3 4772.48 l + S + n + 1444 4757.93 m + 1433.24 4768.68 l + S + n + 1444 4757.93 m + 1454.75 4747.17 l + S + n + 1444 4757.93 m + 1433.24 4747.17 l + S + n + 1444 4757.93 m + 1454.75 4768.68 l + S + n + 1461.08 4754.13 m + 1450.32 4764.89 l + S + n + 1461.08 4754.13 m + 1471.84 4743.38 l + S + n + 1461.08 4754.13 m + 1450.32 4743.38 l + S + n + 1461.08 4754.13 m + 1471.84 4764.89 l + S + n + 1478.17 4753.5 m + 1467.41 4764.25 l + S + n + 1478.17 4753.5 m + 1488.92 4742.74 l + S + n + 1478.17 4753.5 m + 1467.41 4742.74 l + S + n + 1478.17 4753.5 m + 1488.92 4764.25 l + S + n + 1494.62 4752.23 m + 1483.86 4762.99 l + S + n + 1494.62 4752.23 m + 1505.38 4741.48 l + S + n + 1494.62 4752.23 m + 1483.86 4741.48 l + S + n + 1494.62 4752.23 m + 1505.38 4762.99 l + S + n + 1511.7 4749.7 m + 1500.95 4760.46 l + S + n + 1511.7 4749.7 m + 1522.46 4738.95 l + S + n + 1511.7 4749.7 m + 1500.95 4738.95 l + S + n + 1511.7 4749.7 m + 1522.46 4760.46 l + S + n + 1528.15 4746.54 m + 1517.39 4757.3 l + S + n + 1528.15 4746.54 m + 1538.91 4735.78 l + S + n + 1528.15 4746.54 m + 1517.39 4735.78 l + S + n + 1528.15 4746.54 m + 1538.91 4757.3 l + S + n + 1545.23 4745.27 m + 1534.48 4756.03 l + S + n + 1545.23 4745.27 m + 1555.99 4734.52 l + S + n + 1545.23 4745.27 m + 1534.48 4734.52 l + S + n + 1545.23 4745.27 m + 1555.99 4756.03 l + S + n + 1562.32 4742.74 m + 1551.56 4753.5 l + S + n + 1562.32 4742.74 m + 1573.07 4731.99 l + S + n + 1562.32 4742.74 m + 1551.56 4731.99 l + S + n + 1562.32 4742.74 m + 1573.07 4753.5 l + S + n + 1578.77 4741.48 m + 1568.01 4752.23 l + S + n + 1578.77 4741.48 m + 1589.53 4730.72 l + S + n + 1578.77 4741.48 m + 1568.01 4730.72 l + S + n + 1578.77 4741.48 m + 1589.53 4752.23 l + S + n + 1595.85 4738.95 m + 1585.1 4749.7 l + S + n + 1595.85 4738.95 m + 1606.61 4728.19 l + S + n + 1595.85 4738.95 m + 1585.1 4728.19 l + S + n + 1595.85 4738.95 m + 1606.61 4749.7 l + S + n + 1612.94 4738.31 m + 1602.18 4749.07 l + S + n + 1612.94 4738.31 m + 1623.7 4727.56 l + S + n + 1612.94 4738.31 m + 1602.18 4727.56 l + S + n + 1612.94 4738.31 m + 1623.7 4749.07 l + S + n + 1629.39 4737.05 m + 1618.63 4747.8 l + S + n + 1629.39 4737.05 m + 1640.14 4726.29 l + S + n + 1629.39 4737.05 m + 1618.63 4726.29 l + S + n + 1629.39 4737.05 m + 1640.14 4747.8 l + S + n + 1646.47 4736.41 m + 1635.71 4747.17 l + S + n + 1646.47 4736.41 m + 1657.23 4725.66 l + S + n + 1646.47 4736.41 m + 1635.71 4725.66 l + S + n + 1646.47 4736.41 m + 1657.23 4747.17 l + S + n + 1663.55 4737.68 m + 1652.8 4748.44 l + S + n + 1663.55 4737.68 m + 1674.31 4726.93 l + S + n + 1663.55 4737.68 m + 1652.8 4726.93 l + S + n + 1663.55 4737.68 m + 1674.31 4748.44 l + S + n + 1680.01 4735.78 m + 1669.25 4746.54 l + S + n + 1680.01 4735.78 m + 1690.76 4725.03 l + S + n + 1680.01 4735.78 m + 1669.25 4725.03 l + S + n + 1680.01 4735.78 m + 1690.76 4746.54 l + S + n + 1697.09 4735.78 m + 1686.33 4746.54 l + S + n + 1697.09 4735.78 m + 1707.85 4725.03 l + S + n + 1697.09 4735.78 m + 1686.33 4725.03 l + S + n + 1697.09 4735.78 m + 1707.85 4746.54 l + S + n + 1714.17 4733.88 m + 1703.42 4744.64 l + S + n + 1714.17 4733.88 m + 1724.93 4723.13 l + S + n + 1714.17 4733.88 m + 1703.42 4723.13 l + S + n + 1714.17 4733.88 m + 1724.93 4744.64 l + S + n + 1730.62 4732.62 m + 1719.87 4743.38 l + S + n + 1730.62 4732.62 m + 1741.38 4721.86 l + S + n + 1730.62 4732.62 m + 1719.87 4721.86 l + S + n + 1730.62 4732.62 m + 1741.38 4743.38 l + S + n + 1747.71 4731.36 m + 1736.95 4742.11 l + S + n + 1747.71 4731.36 m + 1758.46 4720.6 l + S + n + 1747.71 4731.36 m + 1736.95 4720.6 l + S + n + 1747.71 4731.36 m + 1758.46 4742.11 l + S + n + 1764.16 4731.36 m + 1753.4 4742.11 l + S + n + 1764.16 4731.36 m + 1774.91 4720.6 l + S + n + 1764.16 4731.36 m + 1753.4 4720.6 l + S + n + 1764.16 4731.36 m + 1774.91 4742.11 l + S + n + 1781.24 4729.46 m + 1770.48 4740.21 l + S + n + 1781.24 4729.46 m + 1792 4718.7 l + S + n + 1781.24 4729.46 m + 1770.48 4718.7 l + S + n + 1781.24 4729.46 m + 1792 4740.21 l + S + n + 1798.32 4728.19 m + 1787.57 4738.95 l + S + n + 1798.32 4728.19 m + 1809.08 4717.43 l + S + n + 1798.32 4728.19 m + 1787.57 4717.43 l + S + n + 1798.32 4728.19 m + 1809.08 4738.95 l + S + n + 1814.78 4726.93 m + 1804.02 4737.68 l + S + n + 1814.78 4726.93 m + 1825.54 4716.17 l + S + n + 1814.78 4726.93 m + 1804.02 4716.17 l + S + n + 1814.78 4726.93 m + 1825.54 4737.68 l + S + n + 1831.86 4726.93 m + 1821.11 4737.68 l + S + n + 1831.86 4726.93 m + 1842.62 4716.17 l + S + n + 1831.86 4726.93 m + 1821.11 4716.17 l + S + n + 1831.86 4726.93 m + 1842.62 4737.68 l + S + n + 1874.25 4738.31 m + 1863.5 4749.07 l + S + n + 1874.25 4738.31 m + 1885.01 4727.56 l + S + n + 1874.25 4738.31 m + 1863.5 4727.56 l + S + n + 1874.25 4738.31 m + 1885.01 4749.07 l + S + n + 1916.01 4775.64 m + 1905.26 4786.4 l + S + n + 1916.01 4775.64 m + 1926.77 4764.89 l + S + n + 1916.01 4775.64 m + 1905.26 4764.89 l + S + n + 1916.01 4775.64 m + 1926.77 4786.4 l + S + n + 1958.41 4830.06 m + 1947.65 4840.82 l + S + n + 1958.41 4830.06 m + 1969.16 4819.3 l + S + n + 1958.41 4830.06 m + 1947.65 4819.3 l + S + n + 1958.41 4830.06 m + 1969.16 4840.82 l + S + n + 2000.17 4899.66 m + 1989.41 4910.41 l + S + n + 2000.17 4899.66 m + 2010.92 4888.9 l + S + n + 2000.17 4899.66 m + 1989.41 4888.9 l + S + n + 2000.17 4899.66 m + 2010.92 4910.41 l + S + n + 2042.56 4981.28 m + 2031.8 4992.04 l + S + n + 2042.56 4981.28 m + 2053.32 4970.52 l + S + n + 2042.56 4981.28 m + 2031.8 4970.52 l + S + n + 2042.56 4981.28 m + 2053.32 4992.04 l + S + n + 2084.95 5064.8 m + 2074.2 5075.56 l + S + n + 2084.95 5064.8 m + 2095.71 5054.04 l + S + n + 2084.95 5064.8 m + 2074.2 5054.04 l + S + n + 2084.95 5064.8 m + 2095.71 5075.56 l + S + n + 2126.71 5166.04 m + 2115.96 5176.79 l + S + n + 2126.71 5166.04 m + 2137.47 5155.28 l + S + n + 2126.71 5166.04 m + 2115.96 5155.28 l + S + n + 2126.71 5166.04 m + 2137.47 5176.79 l + S + n + 2169.11 5276.13 m + 2158.35 5286.89 l + S + n + 2169.11 5276.13 m + 2179.86 5265.38 l + S + n + 2169.11 5276.13 m + 2158.35 5265.38 l + S + n + 2169.11 5276.13 m + 2179.86 5286.89 l + S + n + 2210.86 5365.35 m + 2200.11 5376.1 l + S + n + 2210.86 5365.35 m + 2221.62 5354.59 l + S + n + 2210.86 5365.35 m + 2200.11 5354.59 l + S + n + 2210.86 5365.35 m + 2221.62 5376.1 l + S + n + 2253.26 5472.28 m + 2242.5 5483.04 l + S + n + 2253.26 5472.28 m + 2264.01 5461.52 l + S + n + 2253.26 5472.28 m + 2242.5 5461.52 l + S + n + 2253.26 5472.28 m + 2264.01 5483.04 l + S + n + 2295.65 5585.54 m + 2284.89 5596.29 l + S + n + 2295.65 5585.54 m + 2306.41 5574.78 l + S + n + 2295.65 5585.54 m + 2284.89 5574.78 l + S + n + 2295.65 5585.54 m + 2306.41 5596.29 l + S + n + 1106.75 4706.68 m + 1096 4717.43 l + 0.501907 0 0.501907 sc + S + n + 1106.75 4706.68 m + 1117.51 4695.92 l + S + n + 1106.75 4706.68 m + 1096 4695.92 l + S + n + 1106.75 4706.68 m + 1117.51 4717.43 l + S + n + 1106.75 4706.68 m + 1106.75 4717.43 l + S + n + 1106.75 4706.68 m + 1106.75 4695.92 l + S + n + 1123.84 4690.23 m + 1113.08 4700.98 l + S + n + 1123.84 4690.23 m + 1134.59 4679.47 l + S + n + 1123.84 4690.23 m + 1113.08 4679.47 l + S + n + 1123.84 4690.23 m + 1134.59 4700.98 l + S + n + 1123.84 4690.23 m + 1123.84 4700.98 l + S + n + 1123.84 4690.23 m + 1123.84 4679.47 l + S + n + 1140.92 4707.94 m + 1130.17 4718.7 l + S + n + 1140.92 4707.94 m + 1151.68 4697.19 l + S + n + 1140.92 4707.94 m + 1130.17 4697.19 l + S + n + 1140.92 4707.94 m + 1151.68 4718.7 l + S + n + 1140.92 4707.94 m + 1140.92 4718.7 l + S + n + 1140.92 4707.94 m + 1140.92 4697.19 l + S + n + 1157.38 4670.61 m + 1146.62 4681.37 l + S + n + 1157.38 4670.61 m + 1168.13 4659.86 l + S + n + 1157.38 4670.61 m + 1146.62 4659.86 l + S + n + 1157.38 4670.61 m + 1168.13 4681.37 l + S + n + 1157.38 4670.61 m + 1157.38 4681.37 l + S + n + 1157.38 4670.61 m + 1157.38 4659.86 l + S + n + 1174.46 4661.12 m + 1163.7 4671.88 l + S + n + 1174.46 4661.12 m + 1185.21 4650.36 l + S + n + 1174.46 4661.12 m + 1163.7 4650.36 l + S + n + 1174.46 4661.12 m + 1185.21 4671.88 l + S + n + 1174.46 4661.12 m + 1174.46 4671.88 l + S + n + 1174.46 4661.12 m + 1174.46 4650.36 l + S + n + 1191.54 4657.32 m + 1180.79 4668.08 l + S + n + 1191.54 4657.32 m + 1202.3 4646.57 l + S + n + 1191.54 4657.32 m + 1180.79 4646.57 l + S + n + 1191.54 4657.32 m + 1202.3 4668.08 l + S + n + 1191.54 4657.32 m + 1191.54 4668.08 l + S + n + 1191.54 4657.32 m + 1191.54 4646.57 l + S + n + 1207.99 4649.73 m + 1197.23 4660.49 l + S + n + 1207.99 4649.73 m + 1218.75 4638.98 l + S + n + 1207.99 4649.73 m + 1197.23 4638.98 l + S + n + 1207.99 4649.73 m + 1218.75 4660.49 l + S + n + 1207.99 4649.73 m + 1207.99 4660.49 l + S + n + 1207.99 4649.73 m + 1207.99 4638.98 l + S + n + 1225.07 4647.2 m + 1214.32 4657.96 l + S + n + 1225.07 4647.2 m + 1235.83 4636.45 l + S + n + 1225.07 4647.2 m + 1214.32 4636.45 l + S + n + 1225.07 4647.2 m + 1235.83 4657.96 l + S + n + 1225.07 4647.2 m + 1225.07 4657.96 l + S + n + 1225.07 4647.2 m + 1225.07 4636.45 l + S + n + 1242.16 4641.51 m + 1231.4 4652.26 l + S + n + 1242.16 4641.51 m + 1252.91 4630.75 l + S + n + 1242.16 4641.51 m + 1231.4 4630.75 l + S + n + 1242.16 4641.51 m + 1252.91 4652.26 l + S + n + 1242.16 4641.51 m + 1242.16 4652.26 l + S + n + 1242.16 4641.51 m + 1242.16 4630.75 l + S + n + 1258.61 4638.98 m + 1247.85 4649.73 l + S + n + 1258.61 4638.98 m + 1269.37 4628.22 l + S + n + 1258.61 4638.98 m + 1247.85 4628.22 l + S + n + 1258.61 4638.98 m + 1269.37 4649.73 l + S + n + 1258.61 4638.98 m + 1258.61 4649.73 l + S + n + 1258.61 4638.98 m + 1258.61 4628.22 l + S + n + 1275.7 4635.18 m + 1264.94 4645.93 l + S + n + 1275.7 4635.18 m + 1286.45 4624.42 l + S + n + 1275.7 4635.18 m + 1264.94 4624.42 l + S + n + 1275.7 4635.18 m + 1286.45 4645.93 l + S + n + 1275.7 4635.18 m + 1275.7 4645.93 l + S + n + 1275.7 4635.18 m + 1275.7 4624.42 l + S + n + 1292.78 4642.14 m + 1282.02 4652.89 l + S + n + 1292.78 4642.14 m + 1303.54 4631.38 l + S + n + 1292.78 4642.14 m + 1282.02 4631.38 l + S + n + 1292.78 4642.14 m + 1303.54 4652.89 l + S + n + 1292.78 4642.14 m + 1292.78 4652.89 l + S + n + 1292.78 4642.14 m + 1292.78 4631.38 l + S + n + 1309.23 4626.32 m + 1298.47 4637.08 l + S + n + 1309.23 4626.32 m + 1319.98 4615.57 l + S + n + 1309.23 4626.32 m + 1298.47 4615.57 l + S + n + 1309.23 4626.32 m + 1319.98 4637.08 l + S + n + 1309.23 4626.32 m + 1309.23 4637.08 l + S + n + 1309.23 4626.32 m + 1309.23 4615.57 l + S + n + 1326.31 4623.16 m + 1315.55 4633.91 l + S + n + 1326.31 4623.16 m + 1337.07 4612.4 l + S + n + 1326.31 4623.16 m + 1315.55 4612.4 l + S + n + 1326.31 4623.16 m + 1337.07 4633.91 l + S + n + 1326.31 4623.16 m + 1326.31 4633.91 l + S + n + 1326.31 4623.16 m + 1326.31 4612.4 l + S + n + 1342.76 4620.62 m + 1332.01 4631.38 l + S + n + 1342.76 4620.62 m + 1353.52 4609.87 l + S + n + 1342.76 4620.62 m + 1332.01 4609.87 l + S + n + 1342.76 4620.62 m + 1353.52 4631.38 l + S + n + 1342.76 4620.62 m + 1342.76 4631.38 l + S + n + 1342.76 4620.62 m + 1342.76 4609.87 l + S + n + 1359.85 4619.36 m + 1349.09 4630.12 l + S + n + 1359.85 4619.36 m + 1370.6 4608.61 l + S + n + 1359.85 4619.36 m + 1349.09 4608.61 l + S + n + 1359.85 4619.36 m + 1370.6 4630.12 l + S + n + 1359.85 4619.36 m + 1359.85 4630.12 l + S + n + 1359.85 4619.36 m + 1359.85 4608.61 l + S + n + 1376.93 4615.57 m + 1366.17 4626.32 l + S + n + 1376.93 4615.57 m + 1387.69 4604.81 l + S + n + 1376.93 4615.57 m + 1366.17 4604.81 l + S + n + 1376.93 4615.57 m + 1387.69 4626.32 l + S + n + 1376.93 4615.57 m + 1376.93 4626.32 l + S + n + 1376.93 4615.57 m + 1376.93 4604.81 l + S + n + 1393.38 4614.93 m + 1382.62 4625.69 l + S + n + 1393.38 4614.93 m + 1404.14 4604.18 l + S + n + 1393.38 4614.93 m + 1382.62 4604.18 l + S + n + 1393.38 4614.93 m + 1404.14 4625.69 l + S + n + 1393.38 4614.93 m + 1393.38 4625.69 l + S + n + 1393.38 4614.93 m + 1393.38 4604.18 l + S + n + 1410.46 4612.4 m + 1399.71 4623.16 l + S + n + 1410.46 4612.4 m + 1421.22 4601.64 l + S + n + 1410.46 4612.4 m + 1399.71 4601.64 l + S + n + 1410.46 4612.4 m + 1421.22 4623.16 l + S + n + 1410.46 4612.4 m + 1410.46 4623.16 l + S + n + 1410.46 4612.4 m + 1410.46 4601.64 l + S + n + 1427.55 4611.77 m + 1416.79 4622.52 l + S + n + 1427.55 4611.77 m + 1438.3 4601.01 l + S + n + 1427.55 4611.77 m + 1416.79 4601.01 l + S + n + 1427.55 4611.77 m + 1438.3 4622.52 l + S + n + 1427.55 4611.77 m + 1427.55 4622.52 l + S + n + 1427.55 4611.77 m + 1427.55 4601.01 l + S + n + 1444 4610.5 m + 1433.24 4621.26 l + S + n + 1444 4610.5 m + 1454.75 4599.75 l + S + n + 1444 4610.5 m + 1433.24 4599.75 l + S + n + 1444 4610.5 m + 1454.75 4621.26 l + S + n + 1444 4610.5 m + 1444 4621.26 l + S + n + 1444 4610.5 m + 1444 4599.75 l + S + n + 1461.08 4608.61 m + 1450.32 4619.36 l + S + n + 1461.08 4608.61 m + 1471.84 4597.85 l + S + n + 1461.08 4608.61 m + 1450.32 4597.85 l + S + n + 1461.08 4608.61 m + 1471.84 4619.36 l + S + n + 1461.08 4608.61 m + 1461.08 4619.36 l + S + n + 1461.08 4608.61 m + 1461.08 4597.85 l + S + n + 1478.17 4607.34 m + 1467.41 4618.09 l + S + n + 1478.17 4607.34 m + 1488.92 4596.58 l + S + n + 1478.17 4607.34 m + 1467.41 4596.58 l + S + n + 1478.17 4607.34 m + 1488.92 4618.09 l + S + n + 1478.17 4607.34 m + 1478.17 4618.09 l + S + n + 1478.17 4607.34 m + 1478.17 4596.58 l + S + n + 1494.62 4606.07 m + 1483.86 4616.83 l + S + n + 1494.62 4606.07 m + 1505.38 4595.32 l + S + n + 1494.62 4606.07 m + 1483.86 4595.32 l + S + n + 1494.62 4606.07 m + 1505.38 4616.83 l + S + n + 1494.62 4606.07 m + 1494.62 4616.83 l + S + n + 1494.62 4606.07 m + 1494.62 4595.32 l + S + n + 1511.7 4656.06 m + 1500.95 4666.82 l + S + n + 1511.7 4656.06 m + 1522.46 4645.3 l + S + n + 1511.7 4656.06 m + 1500.95 4645.3 l + S + n + 1511.7 4656.06 m + 1522.46 4666.82 l + S + n + 1511.7 4656.06 m + 1511.7 4666.82 l + S + n + 1511.7 4656.06 m + 1511.7 4645.3 l + S + n + 1528.15 4602.91 m + 1517.39 4613.67 l + S + n + 1528.15 4602.91 m + 1538.91 4592.15 l + S + n + 1528.15 4602.91 m + 1517.39 4592.15 l + S + n + 1528.15 4602.91 m + 1538.91 4613.67 l + S + n + 1528.15 4602.91 m + 1528.15 4613.67 l + S + n + 1528.15 4602.91 m + 1528.15 4592.15 l + S + n + 1545.23 4602.28 m + 1534.48 4613.04 l + S + n + 1545.23 4602.28 m + 1555.99 4591.52 l + S + n + 1545.23 4602.28 m + 1534.48 4591.52 l + S + n + 1545.23 4602.28 m + 1555.99 4613.04 l + S + n + 1545.23 4602.28 m + 1545.23 4613.04 l + S + n + 1545.23 4602.28 m + 1545.23 4591.52 l + S + n + 1562.32 4604.18 m + 1551.56 4614.93 l + S + n + 1562.32 4604.18 m + 1573.07 4593.42 l + S + n + 1562.32 4604.18 m + 1551.56 4593.42 l + S + n + 1562.32 4604.18 m + 1573.07 4614.93 l + S + n + 1562.32 4604.18 m + 1562.32 4614.93 l + S + n + 1562.32 4604.18 m + 1562.32 4593.42 l + S + n + 1578.77 4655.43 m + 1568.01 4666.18 l + S + n + 1578.77 4655.43 m + 1589.53 4644.67 l + S + n + 1578.77 4655.43 m + 1568.01 4644.67 l + S + n + 1578.77 4655.43 m + 1589.53 4666.18 l + S + n + 1578.77 4655.43 m + 1578.77 4666.18 l + S + n + 1578.77 4655.43 m + 1578.77 4644.67 l + S + n + 1595.85 4640.24 m + 1585.1 4651 l + S + n + 1595.85 4640.24 m + 1606.61 4629.48 l + S + n + 1595.85 4640.24 m + 1585.1 4629.48 l + S + n + 1595.85 4640.24 m + 1606.61 4651 l + S + n + 1595.85 4640.24 m + 1595.85 4651 l + S + n + 1595.85 4640.24 m + 1595.85 4629.48 l + S + n + 1612.94 4643.41 m + 1602.18 4654.16 l + S + n + 1612.94 4643.41 m + 1623.7 4632.65 l + S + n + 1612.94 4643.41 m + 1602.18 4632.65 l + S + n + 1612.94 4643.41 m + 1623.7 4654.16 l + S + n + 1612.94 4643.41 m + 1612.94 4654.16 l + S + n + 1612.94 4643.41 m + 1612.94 4632.65 l + S + n + 1629.39 4637.71 m + 1618.63 4648.46 l + S + n + 1629.39 4637.71 m + 1640.14 4626.95 l + S + n + 1629.39 4637.71 m + 1618.63 4626.95 l + S + n + 1629.39 4637.71 m + 1640.14 4648.46 l + S + n + 1629.39 4637.71 m + 1629.39 4648.46 l + S + n + 1629.39 4637.71 m + 1629.39 4626.95 l + S + n + 1646.47 4620.62 m + 1635.71 4631.38 l + S + n + 1646.47 4620.62 m + 1657.23 4609.87 l + S + n + 1646.47 4620.62 m + 1635.71 4609.87 l + S + n + 1646.47 4620.62 m + 1657.23 4631.38 l + S + n + 1646.47 4620.62 m + 1646.47 4631.38 l + S + n + 1646.47 4620.62 m + 1646.47 4609.87 l + S + n + 1663.55 4637.08 m + 1652.8 4647.83 l + S + n + 1663.55 4637.08 m + 1674.31 4626.32 l + S + n + 1663.55 4637.08 m + 1652.8 4626.32 l + S + n + 1663.55 4637.08 m + 1674.31 4647.83 l + S + n + 1663.55 4637.08 m + 1663.55 4647.83 l + S + n + 1663.55 4637.08 m + 1663.55 4626.32 l + S + n + 1680.01 4618.73 m + 1669.25 4629.48 l + S + n + 1680.01 4618.73 m + 1690.76 4607.97 l + S + n + 1680.01 4618.73 m + 1669.25 4607.97 l + S + n + 1680.01 4618.73 m + 1690.76 4629.48 l + S + n + 1680.01 4618.73 m + 1680.01 4629.48 l + S + n + 1680.01 4618.73 m + 1680.01 4607.97 l + S + n + 1697.09 4633.91 m + 1686.33 4644.67 l + S + n + 1697.09 4633.91 m + 1707.85 4623.16 l + S + n + 1697.09 4633.91 m + 1686.33 4623.16 l + S + n + 1697.09 4633.91 m + 1707.85 4644.67 l + S + n + 1697.09 4633.91 m + 1697.09 4644.67 l + S + n + 1697.09 4633.91 m + 1697.09 4623.16 l + S + n + 1714.17 4617.46 m + 1703.42 4628.22 l + S + n + 1714.17 4617.46 m + 1724.93 4606.71 l + S + n + 1714.17 4617.46 m + 1703.42 4606.71 l + S + n + 1714.17 4617.46 m + 1724.93 4628.22 l + S + n + 1714.17 4617.46 m + 1714.17 4628.22 l + S + n + 1714.17 4617.46 m + 1714.17 4606.71 l + S + n + 1730.62 4630.75 m + 1719.87 4641.51 l + S + n + 1730.62 4630.75 m + 1741.38 4619.99 l + S + n + 1730.62 4630.75 m + 1719.87 4619.99 l + S + n + 1730.62 4630.75 m + 1741.38 4641.51 l + S + n + 1730.62 4630.75 m + 1730.62 4641.51 l + S + n + 1730.62 4630.75 m + 1730.62 4619.99 l + S + n + 1747.71 4615.57 m + 1736.95 4626.32 l + S + n + 1747.71 4615.57 m + 1758.46 4604.81 l + S + n + 1747.71 4615.57 m + 1736.95 4604.81 l + S + n + 1747.71 4615.57 m + 1758.46 4626.32 l + S + n + 1747.71 4615.57 m + 1747.71 4626.32 l + S + n + 1747.71 4615.57 m + 1747.71 4604.81 l + S + n + 1764.16 4627.59 m + 1753.4 4638.34 l + S + n + 1764.16 4627.59 m + 1774.91 4616.83 l + S + n + 1764.16 4627.59 m + 1753.4 4616.83 l + S + n + 1764.16 4627.59 m + 1774.91 4638.34 l + S + n + 1764.16 4627.59 m + 1764.16 4638.34 l + S + n + 1764.16 4627.59 m + 1764.16 4616.83 l + S + n + 1781.24 4613.67 m + 1770.48 4624.42 l + S + n + 1781.24 4613.67 m + 1792 4602.91 l + S + n + 1781.24 4613.67 m + 1770.48 4602.91 l + S + n + 1781.24 4613.67 m + 1792 4624.42 l + S + n + 1781.24 4613.67 m + 1781.24 4624.42 l + S + n + 1781.24 4613.67 m + 1781.24 4602.91 l + S + n + 1798.32 4625.05 m + 1787.57 4635.81 l + S + n + 1798.32 4625.05 m + 1809.08 4614.3 l + S + n + 1798.32 4625.05 m + 1787.57 4614.3 l + S + n + 1798.32 4625.05 m + 1809.08 4635.81 l + S + n + 1798.32 4625.05 m + 1798.32 4635.81 l + S + n + 1798.32 4625.05 m + 1798.32 4614.3 l + S + n + 1814.78 4612.4 m + 1804.02 4623.16 l + S + n + 1814.78 4612.4 m + 1825.54 4601.64 l + S + n + 1814.78 4612.4 m + 1804.02 4601.64 l + S + n + 1814.78 4612.4 m + 1825.54 4623.16 l + S + n + 1814.78 4612.4 m + 1814.78 4623.16 l + S + n + 1814.78 4612.4 m + 1814.78 4601.64 l + S + n + 1831.86 4634.55 m + 1821.11 4645.3 l + S + n + 1831.86 4634.55 m + 1842.62 4623.79 l + S + n + 1831.86 4634.55 m + 1821.11 4623.79 l + S + n + 1831.86 4634.55 m + 1842.62 4645.3 l + S + n + 1831.86 4634.55 m + 1831.86 4645.3 l + S + n + 1831.86 4634.55 m + 1831.86 4623.79 l + S + n + 1874.25 4611.14 m + 1863.5 4621.89 l + S + n + 1874.25 4611.14 m + 1885.01 4600.38 l + S + n + 1874.25 4611.14 m + 1863.5 4600.38 l + S + n + 1874.25 4611.14 m + 1885.01 4621.89 l + S + n + 1874.25 4611.14 m + 1874.25 4621.89 l + S + n + 1874.25 4611.14 m + 1874.25 4600.38 l + S + n + 1916.01 4619.36 m + 1905.26 4630.12 l + S + n + 1916.01 4619.36 m + 1926.77 4608.61 l + S + n + 1916.01 4619.36 m + 1905.26 4608.61 l + S + n + 1916.01 4619.36 m + 1926.77 4630.12 l + S + n + 1916.01 4619.36 m + 1916.01 4630.12 l + S + n + 1916.01 4619.36 m + 1916.01 4608.61 l + S + n + 1958.41 4617.46 m + 1947.65 4628.22 l + S + n + 1958.41 4617.46 m + 1969.16 4606.71 l + S + n + 1958.41 4617.46 m + 1947.65 4606.71 l + S + n + 1958.41 4617.46 m + 1969.16 4628.22 l + S + n + 1958.41 4617.46 m + 1958.41 4628.22 l + S + n + 1958.41 4617.46 m + 1958.41 4606.71 l + S + n + 2000.17 4607.34 m + 1989.41 4618.09 l + S + n + 2000.17 4607.34 m + 2010.92 4596.58 l + S + n + 2000.17 4607.34 m + 1989.41 4596.58 l + S + n + 2000.17 4607.34 m + 2010.92 4618.09 l + S + n + 2000.17 4607.34 m + 2000.17 4618.09 l + S + n + 2000.17 4607.34 m + 2000.17 4596.58 l + S + n + 2042.56 4618.73 m + 2031.8 4629.48 l + S + n + 2042.56 4618.73 m + 2053.32 4607.97 l + S + n + 2042.56 4618.73 m + 2031.8 4607.97 l + S + n + 2042.56 4618.73 m + 2053.32 4629.48 l + S + n + 2042.56 4618.73 m + 2042.56 4629.48 l + S + n + 2042.56 4618.73 m + 2042.56 4607.97 l + S + n + 2084.95 4592.15 m + 2074.2 4602.91 l + S + n + 2084.95 4592.15 m + 2095.71 4581.4 l + S + n + 2084.95 4592.15 m + 2074.2 4581.4 l + S + n + 2084.95 4592.15 m + 2095.71 4602.91 l + S + n + 2084.95 4592.15 m + 2084.95 4602.91 l + S + n + 2084.95 4592.15 m + 2084.95 4581.4 l + S + n + 2126.71 4615.57 m + 2115.96 4626.32 l + S + n + 2126.71 4615.57 m + 2137.47 4604.81 l + S + n + 2126.71 4615.57 m + 2115.96 4604.81 l + S + n + 2126.71 4615.57 m + 2137.47 4626.32 l + S + n + 2126.71 4615.57 m + 2126.71 4626.32 l + S + n + 2126.71 4615.57 m + 2126.71 4604.81 l + S + n + 2169.11 4697.82 m + 2158.35 4708.57 l + S + n + 2169.11 4697.82 m + 2179.86 4687.06 l + S + n + 2169.11 4697.82 m + 2158.35 4687.06 l + S + n + 2169.11 4697.82 m + 2179.86 4708.57 l + S + n + 2169.11 4697.82 m + 2169.11 4708.57 l + S + n + 2169.11 4697.82 m + 2169.11 4687.06 l + S + n + 2210.86 4761.72 m + 2200.11 4772.48 l + S + n + 2210.86 4761.72 m + 2221.62 4750.97 l + S + n + 2210.86 4761.72 m + 2200.11 4750.97 l + S + n + 2210.86 4761.72 m + 2221.62 4772.48 l + S + n + 2210.86 4761.72 m + 2210.86 4772.48 l + S + n + 2210.86 4761.72 m + 2210.86 4750.97 l + S + n + 2253.26 4728.82 m + 2242.5 4739.58 l + S + n + 2253.26 4728.82 m + 2264.01 4718.07 l + S + n + 2253.26 4728.82 m + 2242.5 4718.07 l + S + n + 2253.26 4728.82 m + 2264.01 4739.58 l + S + n + 2253.26 4728.82 m + 2253.26 4739.58 l + S + n + 2253.26 4728.82 m + 2253.26 4718.07 l + S + n + 2295.65 4829.43 m + 2284.89 4840.18 l + S + n + 2295.65 4829.43 m + 2306.41 4818.67 l + S + n + 2295.65 4829.43 m + 2284.89 4818.67 l + S + n + 2295.65 4829.43 m + 2306.41 4840.18 l + S + n + 2295.65 4829.43 m + 2295.65 4840.18 l + S + n + 2295.65 4829.43 m + 2295.65 4818.67 l + S + n + 2337.41 4825.63 m + 2326.65 4836.39 l + S + n + 2337.41 4825.63 m + 2348.17 4814.88 l + S + n + 2337.41 4825.63 m + 2326.65 4814.88 l + S + n + 2337.41 4825.63 m + 2348.17 4836.39 l + S + n + 2337.41 4825.63 m + 2337.41 4836.39 l + S + n + 2337.41 4825.63 m + 2337.41 4814.88 l + S + n + 2379.8 4917.38 m + 2369.05 4928.13 l + S + n + 2379.8 4917.38 m + 2390.56 4906.62 l + S + n + 2379.8 4917.38 m + 2369.05 4906.62 l + S + n + 2379.8 4917.38 m + 2390.56 4928.13 l + S + n + 2379.8 4917.38 m + 2379.8 4928.13 l + S + n + 2379.8 4917.38 m + 2379.8 4906.62 l + S + n + 2421.56 4976.85 m + 2410.8 4987.61 l + S + n + 2421.56 4976.85 m + 2432.32 4966.09 l + S + n + 2421.56 4976.85 m + 2410.8 4966.09 l + S + n + 2421.56 4976.85 m + 2432.32 4987.61 l + S + n + 2421.56 4976.85 m + 2421.56 4987.61 l + S + n + 2421.56 4976.85 m + 2421.56 4966.09 l + S + n + 2463.96 5096.44 m + 2453.2 5107.2 l + S + n + 2463.96 5096.44 m + 2474.71 5085.68 l + S + n + 2463.96 5096.44 m + 2453.2 5085.68 l + S + n + 2463.96 5096.44 m + 2474.71 5107.2 l + S + n + 2463.96 5096.44 m + 2463.96 5107.2 l + S + n + 2463.96 5096.44 m + 2463.96 5085.68 l + S + n + 2506.35 5162.88 m + 2495.59 5173.63 l + S + n + 2506.35 5162.88 m + 2517.11 5152.12 l + S + n + 2506.35 5162.88 m + 2495.59 5152.12 l + S + n + 2506.35 5162.88 m + 2517.11 5173.63 l + S + n + 2506.35 5162.88 m + 2506.35 5173.63 l + S + n + 2506.35 5162.88 m + 2506.35 5152.12 l + S + n + 2548.11 5292.58 m + 2537.35 5303.34 l + S + n + 2548.11 5292.58 m + 2558.86 5281.83 l + S + n + 2548.11 5292.58 m + 2537.35 5281.83 l + S + n + 2548.11 5292.58 m + 2558.86 5303.34 l + S + n + 2548.11 5292.58 m + 2548.11 5303.34 l + S + n + 2548.11 5292.58 m + 2548.11 5281.83 l + S + n + 2590.5 5355.22 m + 2579.75 5365.98 l + S + n + 2590.5 5355.22 m + 2601.26 5344.46 l + S + n + 2590.5 5355.22 m + 2579.75 5344.46 l + S + n + 2590.5 5355.22 m + 2601.26 5365.98 l + S + n + 2590.5 5355.22 m + 2590.5 5365.98 l + S + n + 2590.5 5355.22 m + 2590.5 5344.46 l + S + n + 2632.26 5451.4 m + 2621.5 5462.15 l + S + n + 2632.26 5451.4 m + 2643.02 5440.64 l + S + n + 2632.26 5451.4 m + 2621.5 5440.64 l + S + n + 2632.26 5451.4 m + 2643.02 5462.15 l + S + n + 2632.26 5451.4 m + 2632.26 5462.15 l + S + n + 2632.26 5451.4 m + 2632.26 5440.64 l + S + n + 1116.88 4871.19 m + 1116.88 4877.51 1112.45 4881.94 1106.75 4881.94 c + 1100.43 4881.94 1096 4877.51 1096 4871.19 c + 1096 4865.49 1100.43 4861.06 1106.75 4861.06 c + 1112.45 4861.06 1116.88 4865.49 1116.88 4871.19 c + 0.501907 0 0 sc + eofill + n + 1116.88 4871.19 m + 1116.88 4877.51 1112.45 4881.94 1106.75 4881.94 c + 1100.43 4881.94 1096 4877.51 1096 4871.19 c + 1096 4865.49 1100.43 4861.06 1106.75 4861.06 c + 1112.45 4861.06 1116.88 4865.49 1116.88 4871.19 c + h + S + n + 1133.96 4847.77 m + 1133.96 4854.1 1129.54 4858.53 1123.84 4858.53 c + 1117.51 4858.53 1113.08 4854.1 1113.08 4847.77 c + 1113.08 4842.08 1117.51 4837.65 1123.84 4837.65 c + 1129.54 4837.65 1133.96 4842.08 1133.96 4847.77 c + eofill + n + 1133.96 4847.77 m + 1133.96 4854.1 1129.54 4858.53 1123.84 4858.53 c + 1117.51 4858.53 1113.08 4854.1 1113.08 4847.77 c + 1113.08 4842.08 1117.51 4837.65 1123.84 4837.65 c + 1129.54 4837.65 1133.96 4842.08 1133.96 4847.77 c + h + S + n + 1151.05 4837.02 m + 1151.05 4843.35 1146.62 4847.77 1140.92 4847.77 c + 1134.59 4847.77 1130.17 4843.35 1130.17 4837.02 c + 1130.17 4831.32 1134.59 4826.89 1140.92 4826.89 c + 1146.62 4826.89 1151.05 4831.32 1151.05 4837.02 c + eofill + n + 1151.05 4837.02 m + 1151.05 4843.35 1146.62 4847.77 1140.92 4847.77 c + 1134.59 4847.77 1130.17 4843.35 1130.17 4837.02 c + 1130.17 4831.32 1134.59 4826.89 1140.92 4826.89 c + 1146.62 4826.89 1151.05 4831.32 1151.05 4837.02 c + h + S + n + 1167.5 4819.93 m + 1167.5 4826.26 1163.07 4830.69 1157.38 4830.69 c + 1151.05 4830.69 1146.62 4826.26 1146.62 4819.93 c + 1146.62 4814.24 1151.05 4809.81 1157.38 4809.81 c + 1163.07 4809.81 1167.5 4814.24 1167.5 4819.93 c + eofill + n + 1167.5 4819.93 m + 1167.5 4826.26 1163.07 4830.69 1157.38 4830.69 c + 1151.05 4830.69 1146.62 4826.26 1146.62 4819.93 c + 1146.62 4814.24 1151.05 4809.81 1157.38 4809.81 c + 1163.07 4809.81 1167.5 4814.24 1167.5 4819.93 c + h + S + n + 1184.58 4811.08 m + 1184.58 4817.41 1180.15 4821.83 1174.46 4821.83 c + 1168.13 4821.83 1163.7 4817.41 1163.7 4811.08 c + 1163.7 4805.38 1168.13 4800.95 1174.46 4800.95 c + 1180.15 4800.95 1184.58 4805.38 1184.58 4811.08 c + eofill + n + 1184.58 4811.08 m + 1184.58 4817.41 1180.15 4821.83 1174.46 4821.83 c + 1168.13 4821.83 1163.7 4817.41 1163.7 4811.08 c + 1163.7 4805.38 1168.13 4800.95 1174.46 4800.95 c + 1180.15 4800.95 1184.58 4805.38 1184.58 4811.08 c + h + S + n + 1201.66 4800.32 m + 1201.66 4806.65 1197.23 4811.08 1191.54 4811.08 c + 1185.21 4811.08 1180.79 4806.65 1180.79 4800.32 c + 1180.79 4794.62 1185.21 4790.2 1191.54 4790.2 c + 1197.23 4790.2 1201.66 4794.62 1201.66 4800.32 c + eofill + n + 1201.66 4800.32 m + 1201.66 4806.65 1197.23 4811.08 1191.54 4811.08 c + 1185.21 4811.08 1180.79 4806.65 1180.79 4800.32 c + 1180.79 4794.62 1185.21 4790.2 1191.54 4790.2 c + 1197.23 4790.2 1201.66 4794.62 1201.66 4800.32 c + h + S + n + 1218.11 4796.52 m + 1218.11 4802.85 1213.69 4807.28 1207.99 4807.28 c + 1201.66 4807.28 1197.23 4802.85 1197.23 4796.52 c + 1197.23 4790.83 1201.66 4786.4 1207.99 4786.4 c + 1213.69 4786.4 1218.11 4790.83 1218.11 4796.52 c + eofill + n + 1218.11 4796.52 m + 1218.11 4802.85 1213.69 4807.28 1207.99 4807.28 c + 1201.66 4807.28 1197.23 4802.85 1197.23 4796.52 c + 1197.23 4790.83 1201.66 4786.4 1207.99 4786.4 c + 1213.69 4786.4 1218.11 4790.83 1218.11 4796.52 c + h + S + n + 1235.2 4786.4 m + 1235.2 4792.73 1230.77 4797.16 1225.07 4797.16 c + 1218.75 4797.16 1214.32 4792.73 1214.32 4786.4 c + 1214.32 4780.71 1218.75 4776.28 1225.07 4776.28 c + 1230.77 4776.28 1235.2 4780.71 1235.2 4786.4 c + eofill + n + 1235.2 4786.4 m + 1235.2 4792.73 1230.77 4797.16 1225.07 4797.16 c + 1218.75 4797.16 1214.32 4792.73 1214.32 4786.4 c + 1214.32 4780.71 1218.75 4776.28 1225.07 4776.28 c + 1230.77 4776.28 1235.2 4780.71 1235.2 4786.4 c + h + S + n + 1252.28 4782.61 m + 1252.28 4788.93 1247.85 4793.36 1242.16 4793.36 c + 1235.83 4793.36 1231.4 4788.93 1231.4 4782.61 c + 1231.4 4776.91 1235.83 4772.48 1242.16 4772.48 c + 1247.85 4772.48 1252.28 4776.91 1252.28 4782.61 c + eofill + n + 1252.28 4782.61 m + 1252.28 4788.93 1247.85 4793.36 1242.16 4793.36 c + 1235.83 4793.36 1231.4 4788.93 1231.4 4782.61 c + 1231.4 4776.91 1235.83 4772.48 1242.16 4772.48 c + 1247.85 4772.48 1252.28 4776.91 1252.28 4782.61 c + h + S + n + 1268.73 4775.01 m + 1268.73 4781.34 1264.3 4785.77 1258.61 4785.77 c + 1252.28 4785.77 1247.85 4781.34 1247.85 4775.01 c + 1247.85 4769.32 1252.28 4764.89 1258.61 4764.89 c + 1264.3 4764.89 1268.73 4769.32 1268.73 4775.01 c + eofill + n + 1268.73 4775.01 m + 1268.73 4781.34 1264.3 4785.77 1258.61 4785.77 c + 1252.28 4785.77 1247.85 4781.34 1247.85 4775.01 c + 1247.85 4769.32 1252.28 4764.89 1258.61 4764.89 c + 1264.3 4764.89 1268.73 4769.32 1268.73 4775.01 c + h + S + n + 1285.82 4771.85 m + 1285.82 4778.18 1281.39 4782.61 1275.7 4782.61 c + 1269.37 4782.61 1264.94 4778.18 1264.94 4771.85 c + 1264.94 4766.15 1269.37 4761.72 1275.7 4761.72 c + 1281.39 4761.72 1285.82 4766.15 1285.82 4771.85 c + eofill + n + 1285.82 4771.85 m + 1285.82 4778.18 1281.39 4782.61 1275.7 4782.61 c + 1269.37 4782.61 1264.94 4778.18 1264.94 4771.85 c + 1264.94 4766.15 1269.37 4761.72 1275.7 4761.72 c + 1281.39 4761.72 1285.82 4766.15 1285.82 4771.85 c + h + S + n + 1302.9 4767.42 m + 1302.9 4773.75 1298.47 4778.18 1292.78 4778.18 c + 1286.45 4778.18 1282.02 4773.75 1282.02 4767.42 c + 1282.02 4761.72 1286.45 4757.3 1292.78 4757.3 c + 1298.47 4757.3 1302.9 4761.72 1302.9 4767.42 c + eofill + n + 1302.9 4767.42 m + 1302.9 4773.75 1298.47 4778.18 1292.78 4778.18 c + 1286.45 4778.18 1282.02 4773.75 1282.02 4767.42 c + 1282.02 4761.72 1286.45 4757.3 1292.78 4757.3 c + 1298.47 4757.3 1302.9 4761.72 1302.9 4767.42 c + h + S + n + 1319.35 4764.25 m + 1319.35 4770.58 1314.92 4775.01 1309.23 4775.01 c + 1302.9 4775.01 1298.47 4770.58 1298.47 4764.25 c + 1298.47 4758.56 1302.9 4754.13 1309.23 4754.13 c + 1314.92 4754.13 1319.35 4758.56 1319.35 4764.25 c + eofill + n + 1319.35 4764.25 m + 1319.35 4770.58 1314.92 4775.01 1309.23 4775.01 c + 1302.9 4775.01 1298.47 4770.58 1298.47 4764.25 c + 1298.47 4758.56 1302.9 4754.13 1309.23 4754.13 c + 1314.92 4754.13 1319.35 4758.56 1319.35 4764.25 c + h + S + n + 1336.43 4759.2 m + 1336.43 4765.52 1332.01 4769.95 1326.31 4769.95 c + 1319.98 4769.95 1315.55 4765.52 1315.55 4759.2 c + 1315.55 4753.5 1319.98 4749.07 1326.31 4749.07 c + 1332.01 4749.07 1336.43 4753.5 1336.43 4759.2 c + eofill + n + 1336.43 4759.2 m + 1336.43 4765.52 1332.01 4769.95 1326.31 4769.95 c + 1319.98 4769.95 1315.55 4765.52 1315.55 4759.2 c + 1315.55 4753.5 1319.98 4749.07 1326.31 4749.07 c + 1332.01 4749.07 1336.43 4753.5 1336.43 4759.2 c + h + S + n + 1352.89 4759.2 m + 1352.89 4765.52 1348.46 4769.95 1342.76 4769.95 c + 1336.43 4769.95 1332.01 4765.52 1332.01 4759.2 c + 1332.01 4753.5 1336.43 4749.07 1342.76 4749.07 c + 1348.46 4749.07 1352.89 4753.5 1352.89 4759.2 c + eofill + n + 1352.89 4759.2 m + 1352.89 4765.52 1348.46 4769.95 1342.76 4769.95 c + 1336.43 4769.95 1332.01 4765.52 1332.01 4759.2 c + 1332.01 4753.5 1336.43 4749.07 1342.76 4749.07 c + 1348.46 4749.07 1352.89 4753.5 1352.89 4759.2 c + h + S + n + 1369.97 4754.13 m + 1369.97 4760.46 1365.54 4764.89 1359.85 4764.89 c + 1353.52 4764.89 1349.09 4760.46 1349.09 4754.13 c + 1349.09 4748.44 1353.52 4744.01 1359.85 4744.01 c + 1365.54 4744.01 1369.97 4748.44 1369.97 4754.13 c + eofill + n + 1369.97 4754.13 m + 1369.97 4760.46 1365.54 4764.89 1359.85 4764.89 c + 1353.52 4764.89 1349.09 4760.46 1349.09 4754.13 c + 1349.09 4748.44 1353.52 4744.01 1359.85 4744.01 c + 1365.54 4744.01 1369.97 4748.44 1369.97 4754.13 c + h + S + n + 1387.05 4752.23 m + 1387.05 4758.56 1382.62 4762.99 1376.93 4762.99 c + 1370.6 4762.99 1366.17 4758.56 1366.17 4752.23 c + 1366.17 4746.54 1370.6 4742.11 1376.93 4742.11 c + 1382.62 4742.11 1387.05 4746.54 1387.05 4752.23 c + eofill + n + 1387.05 4752.23 m + 1387.05 4758.56 1382.62 4762.99 1376.93 4762.99 c + 1370.6 4762.99 1366.17 4758.56 1366.17 4752.23 c + 1366.17 4746.54 1370.6 4742.11 1376.93 4742.11 c + 1382.62 4742.11 1387.05 4746.54 1387.05 4752.23 c + h + S + n + 1403.5 4748.44 m + 1403.5 4754.77 1399.07 4759.2 1393.38 4759.2 c + 1387.05 4759.2 1382.62 4754.77 1382.62 4748.44 c + 1382.62 4742.74 1387.05 4738.31 1393.38 4738.31 c + 1399.07 4738.31 1403.5 4742.74 1403.5 4748.44 c + eofill + n + 1403.5 4748.44 m + 1403.5 4754.77 1399.07 4759.2 1393.38 4759.2 c + 1387.05 4759.2 1382.62 4754.77 1382.62 4748.44 c + 1382.62 4742.74 1387.05 4738.31 1393.38 4738.31 c + 1399.07 4738.31 1403.5 4742.74 1403.5 4748.44 c + h + S + n + 1420.59 4747.8 m + 1420.59 4754.13 1416.16 4758.56 1410.46 4758.56 c + 1404.14 4758.56 1399.71 4754.13 1399.71 4747.8 c + 1399.71 4742.11 1404.14 4737.68 1410.46 4737.68 c + 1416.16 4737.68 1420.59 4742.11 1420.59 4747.8 c + eofill + n + 1420.59 4747.8 m + 1420.59 4754.13 1416.16 4758.56 1410.46 4758.56 c + 1404.14 4758.56 1399.71 4754.13 1399.71 4747.8 c + 1399.71 4742.11 1404.14 4737.68 1410.46 4737.68 c + 1416.16 4737.68 1420.59 4742.11 1420.59 4747.8 c + h + S + n + 1437.67 4744.64 m + 1437.67 4750.97 1433.24 4755.4 1427.55 4755.4 c + 1421.22 4755.4 1416.79 4750.97 1416.79 4744.64 c + 1416.79 4738.95 1421.22 4734.52 1427.55 4734.52 c + 1433.24 4734.52 1437.67 4738.95 1437.67 4744.64 c + eofill + n + 1437.67 4744.64 m + 1437.67 4750.97 1433.24 4755.4 1427.55 4755.4 c + 1421.22 4755.4 1416.79 4750.97 1416.79 4744.64 c + 1416.79 4738.95 1421.22 4734.52 1427.55 4734.52 c + 1433.24 4734.52 1437.67 4738.95 1437.67 4744.64 c + h + S + n + 1454.12 4744.01 m + 1454.12 4750.34 1449.7 4754.77 1444 4754.77 c + 1437.67 4754.77 1433.24 4750.34 1433.24 4744.01 c + 1433.24 4738.31 1437.67 4733.88 1444 4733.88 c + 1449.7 4733.88 1454.12 4738.31 1454.12 4744.01 c + eofill + n + 1454.12 4744.01 m + 1454.12 4750.34 1449.7 4754.77 1444 4754.77 c + 1437.67 4754.77 1433.24 4750.34 1433.24 4744.01 c + 1433.24 4738.31 1437.67 4733.88 1444 4733.88 c + 1449.7 4733.88 1454.12 4738.31 1454.12 4744.01 c + h + S + n + 1471.21 4740.84 m + 1471.21 4747.17 1466.78 4751.6 1461.08 4751.6 c + 1454.75 4751.6 1450.32 4747.17 1450.32 4740.84 c + 1450.32 4735.15 1454.75 4730.72 1461.08 4730.72 c + 1466.78 4730.72 1471.21 4735.15 1471.21 4740.84 c + eofill + n + 1471.21 4740.84 m + 1471.21 4747.17 1466.78 4751.6 1461.08 4751.6 c + 1454.75 4751.6 1450.32 4747.17 1450.32 4740.84 c + 1450.32 4735.15 1454.75 4730.72 1461.08 4730.72 c + 1466.78 4730.72 1471.21 4735.15 1471.21 4740.84 c + h + S + n + 1488.29 4740.21 m + 1488.29 4746.54 1483.86 4750.97 1478.17 4750.97 c + 1471.84 4750.97 1467.41 4746.54 1467.41 4740.21 c + 1467.41 4734.52 1471.84 4730.09 1478.17 4730.09 c + 1483.86 4730.09 1488.29 4734.52 1488.29 4740.21 c + eofill + n + 1488.29 4740.21 m + 1488.29 4746.54 1483.86 4750.97 1478.17 4750.97 c + 1471.84 4750.97 1467.41 4746.54 1467.41 4740.21 c + 1467.41 4734.52 1471.84 4730.09 1478.17 4730.09 c + 1483.86 4730.09 1488.29 4734.52 1488.29 4740.21 c + h + S + n + 1504.74 4737.68 m + 1504.74 4744.01 1500.31 4748.44 1494.62 4748.44 c + 1488.29 4748.44 1483.86 4744.01 1483.86 4737.68 c + 1483.86 4731.99 1488.29 4727.56 1494.62 4727.56 c + 1500.31 4727.56 1504.74 4731.99 1504.74 4737.68 c + eofill + n + 1504.74 4737.68 m + 1504.74 4744.01 1500.31 4748.44 1494.62 4748.44 c + 1488.29 4748.44 1483.86 4744.01 1483.86 4737.68 c + 1483.86 4731.99 1488.29 4727.56 1494.62 4727.56 c + 1500.31 4727.56 1504.74 4731.99 1504.74 4737.68 c + h + S + n + 1521.82 4737.05 m + 1521.82 4743.38 1517.39 4747.8 1511.7 4747.8 c + 1505.38 4747.8 1500.95 4743.38 1500.95 4737.05 c + 1500.95 4731.36 1505.38 4726.93 1511.7 4726.93 c + 1517.39 4726.93 1521.82 4731.36 1521.82 4737.05 c + eofill + n + 1521.82 4737.05 m + 1521.82 4743.38 1517.39 4747.8 1511.7 4747.8 c + 1505.38 4747.8 1500.95 4743.38 1500.95 4737.05 c + 1500.95 4731.36 1505.38 4726.93 1511.7 4726.93 c + 1517.39 4726.93 1521.82 4731.36 1521.82 4737.05 c + h + S + n + 1538.27 4734.52 m + 1538.27 4740.84 1533.85 4745.27 1528.15 4745.27 c + 1521.82 4745.27 1517.39 4740.84 1517.39 4734.52 c + 1517.39 4728.82 1521.82 4724.39 1528.15 4724.39 c + 1533.85 4724.39 1538.27 4728.82 1538.27 4734.52 c + eofill + n + 1538.27 4734.52 m + 1538.27 4740.84 1533.85 4745.27 1528.15 4745.27 c + 1521.82 4745.27 1517.39 4740.84 1517.39 4734.52 c + 1517.39 4728.82 1521.82 4724.39 1528.15 4724.39 c + 1533.85 4724.39 1538.27 4728.82 1538.27 4734.52 c + h + S + n + 1555.36 4734.52 m + 1555.36 4740.84 1550.93 4745.27 1545.23 4745.27 c + 1538.91 4745.27 1534.48 4740.84 1534.48 4734.52 c + 1534.48 4728.82 1538.91 4724.39 1545.23 4724.39 c + 1550.93 4724.39 1555.36 4728.82 1555.36 4734.52 c + eofill + n + 1555.36 4734.52 m + 1555.36 4740.84 1550.93 4745.27 1545.23 4745.27 c + 1538.91 4745.27 1534.48 4740.84 1534.48 4734.52 c + 1534.48 4728.82 1538.91 4724.39 1545.23 4724.39 c + 1550.93 4724.39 1555.36 4728.82 1555.36 4734.52 c + h + S + n + 1572.44 4733.25 m + 1572.44 4739.58 1568.01 4744.01 1562.32 4744.01 c + 1555.99 4744.01 1551.56 4739.58 1551.56 4733.25 c + 1551.56 4727.56 1555.99 4723.13 1562.32 4723.13 c + 1568.01 4723.13 1572.44 4727.56 1572.44 4733.25 c + eofill + n + 1572.44 4733.25 m + 1572.44 4739.58 1568.01 4744.01 1562.32 4744.01 c + 1555.99 4744.01 1551.56 4739.58 1551.56 4733.25 c + 1551.56 4727.56 1555.99 4723.13 1562.32 4723.13 c + 1568.01 4723.13 1572.44 4727.56 1572.44 4733.25 c + h + S + n + 1588.89 4734.52 m + 1588.89 4740.84 1584.46 4745.27 1578.77 4745.27 c + 1572.44 4745.27 1568.01 4740.84 1568.01 4734.52 c + 1568.01 4728.82 1572.44 4724.39 1578.77 4724.39 c + 1584.46 4724.39 1588.89 4728.82 1588.89 4734.52 c + eofill + n + 1588.89 4734.52 m + 1588.89 4740.84 1584.46 4745.27 1578.77 4745.27 c + 1572.44 4745.27 1568.01 4740.84 1568.01 4734.52 c + 1568.01 4728.82 1572.44 4724.39 1578.77 4724.39 c + 1584.46 4724.39 1588.89 4728.82 1588.89 4734.52 c + h + S + n + 1605.98 4733.88 m + 1605.98 4740.21 1601.55 4744.64 1595.85 4744.64 c + 1589.53 4744.64 1585.1 4740.21 1585.1 4733.88 c + 1585.1 4728.19 1589.53 4723.76 1595.85 4723.76 c + 1601.55 4723.76 1605.98 4728.19 1605.98 4733.88 c + eofill + n + 1605.98 4733.88 m + 1605.98 4740.21 1601.55 4744.64 1595.85 4744.64 c + 1589.53 4744.64 1585.1 4740.21 1585.1 4733.88 c + 1585.1 4728.19 1589.53 4723.76 1595.85 4723.76 c + 1601.55 4723.76 1605.98 4728.19 1605.98 4733.88 c + h + S + n + 1623.06 4733.88 m + 1623.06 4740.21 1618.63 4744.64 1612.94 4744.64 c + 1606.61 4744.64 1602.18 4740.21 1602.18 4733.88 c + 1602.18 4728.19 1606.61 4723.76 1612.94 4723.76 c + 1618.63 4723.76 1623.06 4728.19 1623.06 4733.88 c + eofill + n + 1623.06 4733.88 m + 1623.06 4740.21 1618.63 4744.64 1612.94 4744.64 c + 1606.61 4744.64 1602.18 4740.21 1602.18 4733.88 c + 1602.18 4728.19 1606.61 4723.76 1612.94 4723.76 c + 1618.63 4723.76 1623.06 4728.19 1623.06 4733.88 c + h + S + n + 1639.51 4733.25 m + 1639.51 4739.58 1635.08 4744.01 1629.39 4744.01 c + 1623.06 4744.01 1618.63 4739.58 1618.63 4733.25 c + 1618.63 4727.56 1623.06 4723.13 1629.39 4723.13 c + 1635.08 4723.13 1639.51 4727.56 1639.51 4733.25 c + eofill + n + 1639.51 4733.25 m + 1639.51 4739.58 1635.08 4744.01 1629.39 4744.01 c + 1623.06 4744.01 1618.63 4739.58 1618.63 4733.25 c + 1618.63 4727.56 1623.06 4723.13 1629.39 4723.13 c + 1635.08 4723.13 1639.51 4727.56 1639.51 4733.25 c + h + S + n + 1656.59 4733.88 m + 1656.59 4740.21 1652.17 4744.64 1646.47 4744.64 c + 1640.14 4744.64 1635.71 4740.21 1635.71 4733.88 c + 1635.71 4728.19 1640.14 4723.76 1646.47 4723.76 c + 1652.17 4723.76 1656.59 4728.19 1656.59 4733.88 c + eofill + n + 1656.59 4733.88 m + 1656.59 4740.21 1652.17 4744.64 1646.47 4744.64 c + 1640.14 4744.64 1635.71 4740.21 1635.71 4733.88 c + 1635.71 4728.19 1640.14 4723.76 1646.47 4723.76 c + 1652.17 4723.76 1656.59 4728.19 1656.59 4733.88 c + h + S + n + 1673.68 4733.25 m + 1673.68 4739.58 1669.25 4744.01 1663.55 4744.01 c + 1657.23 4744.01 1652.8 4739.58 1652.8 4733.25 c + 1652.8 4727.56 1657.23 4723.13 1663.55 4723.13 c + 1669.25 4723.13 1673.68 4727.56 1673.68 4733.25 c + eofill + n + 1673.68 4733.25 m + 1673.68 4739.58 1669.25 4744.01 1663.55 4744.01 c + 1657.23 4744.01 1652.8 4739.58 1652.8 4733.25 c + 1652.8 4727.56 1657.23 4723.13 1663.55 4723.13 c + 1669.25 4723.13 1673.68 4727.56 1673.68 4733.25 c + h + S + n + 1690.13 4733.25 m + 1690.13 4739.58 1685.7 4744.01 1680.01 4744.01 c + 1673.68 4744.01 1669.25 4739.58 1669.25 4733.25 c + 1669.25 4727.56 1673.68 4723.13 1680.01 4723.13 c + 1685.7 4723.13 1690.13 4727.56 1690.13 4733.25 c + eofill + n + 1690.13 4733.25 m + 1690.13 4739.58 1685.7 4744.01 1680.01 4744.01 c + 1673.68 4744.01 1669.25 4739.58 1669.25 4733.25 c + 1669.25 4727.56 1673.68 4723.13 1680.01 4723.13 c + 1685.7 4723.13 1690.13 4727.56 1690.13 4733.25 c + h + S + n + 1707.21 4732.62 m + 1707.21 4738.95 1702.79 4743.38 1697.09 4743.38 c + 1690.76 4743.38 1686.33 4738.95 1686.33 4732.62 c + 1686.33 4726.93 1690.76 4722.5 1697.09 4722.5 c + 1702.79 4722.5 1707.21 4726.93 1707.21 4732.62 c + eofill + n + 1707.21 4732.62 m + 1707.21 4738.95 1702.79 4743.38 1697.09 4743.38 c + 1690.76 4743.38 1686.33 4738.95 1686.33 4732.62 c + 1686.33 4726.93 1690.76 4722.5 1697.09 4722.5 c + 1702.79 4722.5 1707.21 4726.93 1707.21 4732.62 c + h + S + n + 1724.3 4735.15 m + 1724.3 4741.48 1719.87 4745.91 1714.17 4745.91 c + 1707.85 4745.91 1703.42 4741.48 1703.42 4735.15 c + 1703.42 4729.46 1707.85 4725.03 1714.17 4725.03 c + 1719.87 4725.03 1724.3 4729.46 1724.3 4735.15 c + eofill + n + 1724.3 4735.15 m + 1724.3 4741.48 1719.87 4745.91 1714.17 4745.91 c + 1707.85 4745.91 1703.42 4741.48 1703.42 4735.15 c + 1703.42 4729.46 1707.85 4725.03 1714.17 4725.03 c + 1719.87 4725.03 1724.3 4729.46 1724.3 4735.15 c + h + S + n + 1740.75 4736.41 m + 1740.75 4742.74 1736.32 4747.17 1730.62 4747.17 c + 1724.3 4747.17 1719.87 4742.74 1719.87 4736.41 c + 1719.87 4730.72 1724.3 4726.29 1730.62 4726.29 c + 1736.32 4726.29 1740.75 4730.72 1740.75 4736.41 c + eofill + n + 1740.75 4736.41 m + 1740.75 4742.74 1736.32 4747.17 1730.62 4747.17 c + 1724.3 4747.17 1719.87 4742.74 1719.87 4736.41 c + 1719.87 4730.72 1724.3 4726.29 1730.62 4726.29 c + 1736.32 4726.29 1740.75 4730.72 1740.75 4736.41 c + h + S + n + 1757.83 4737.05 m + 1757.83 4743.38 1753.4 4747.8 1747.71 4747.8 c + 1741.38 4747.8 1736.95 4743.38 1736.95 4737.05 c + 1736.95 4731.36 1741.38 4726.93 1747.71 4726.93 c + 1753.4 4726.93 1757.83 4731.36 1757.83 4737.05 c + eofill + n + 1757.83 4737.05 m + 1757.83 4743.38 1753.4 4747.8 1747.71 4747.8 c + 1741.38 4747.8 1736.95 4743.38 1736.95 4737.05 c + 1736.95 4731.36 1741.38 4726.93 1747.71 4726.93 c + 1753.4 4726.93 1757.83 4731.36 1757.83 4737.05 c + h + S + n + 1774.28 4737.68 m + 1774.28 4744.01 1769.85 4748.44 1764.16 4748.44 c + 1757.83 4748.44 1753.4 4744.01 1753.4 4737.68 c + 1753.4 4731.99 1757.83 4727.56 1764.16 4727.56 c + 1769.85 4727.56 1774.28 4731.99 1774.28 4737.68 c + eofill + n + 1774.28 4737.68 m + 1774.28 4744.01 1769.85 4748.44 1764.16 4748.44 c + 1757.83 4748.44 1753.4 4744.01 1753.4 4737.68 c + 1753.4 4731.99 1757.83 4727.56 1764.16 4727.56 c + 1769.85 4727.56 1774.28 4731.99 1774.28 4737.68 c + h + S + n + 1791.37 4738.95 m + 1791.37 4745.27 1786.94 4749.7 1781.24 4749.7 c + 1774.91 4749.7 1770.48 4745.27 1770.48 4738.95 c + 1770.48 4733.25 1774.91 4728.82 1781.24 4728.82 c + 1786.94 4728.82 1791.37 4733.25 1791.37 4738.95 c + eofill + n + 1791.37 4738.95 m + 1791.37 4745.27 1786.94 4749.7 1781.24 4749.7 c + 1774.91 4749.7 1770.48 4745.27 1770.48 4738.95 c + 1770.48 4733.25 1774.91 4728.82 1781.24 4728.82 c + 1786.94 4728.82 1791.37 4733.25 1791.37 4738.95 c + h + S + n + 1808.45 4738.95 m + 1808.45 4745.27 1804.02 4749.7 1798.32 4749.7 c + 1792 4749.7 1787.57 4745.27 1787.57 4738.95 c + 1787.57 4733.25 1792 4728.82 1798.32 4728.82 c + 1804.02 4728.82 1808.45 4733.25 1808.45 4738.95 c + eofill + n + 1808.45 4738.95 m + 1808.45 4745.27 1804.02 4749.7 1798.32 4749.7 c + 1792 4749.7 1787.57 4745.27 1787.57 4738.95 c + 1787.57 4733.25 1792 4728.82 1798.32 4728.82 c + 1804.02 4728.82 1808.45 4733.25 1808.45 4738.95 c + h + S + n + 1824.9 4740.21 m + 1824.9 4746.54 1820.47 4750.97 1814.78 4750.97 c + 1808.45 4750.97 1804.02 4746.54 1804.02 4740.21 c + 1804.02 4734.52 1808.45 4730.09 1814.78 4730.09 c + 1820.47 4730.09 1824.9 4734.52 1824.9 4740.21 c + eofill + n + 1824.9 4740.21 m + 1824.9 4746.54 1820.47 4750.97 1814.78 4750.97 c + 1808.45 4750.97 1804.02 4746.54 1804.02 4740.21 c + 1804.02 4734.52 1808.45 4730.09 1814.78 4730.09 c + 1820.47 4730.09 1824.9 4734.52 1824.9 4740.21 c + h + S + n + 1841.98 4731.36 m + 1841.98 4737.68 1837.55 4742.11 1831.86 4742.11 c + 1825.54 4742.11 1821.11 4737.68 1821.11 4731.36 c + 1821.11 4725.66 1825.54 4721.23 1831.86 4721.23 c + 1837.55 4721.23 1841.98 4725.66 1841.98 4731.36 c + eofill + n + 1841.98 4731.36 m + 1841.98 4737.68 1837.55 4742.11 1831.86 4742.11 c + 1825.54 4742.11 1821.11 4737.68 1821.11 4731.36 c + 1821.11 4725.66 1825.54 4721.23 1831.86 4721.23 c + 1837.55 4721.23 1841.98 4725.66 1841.98 4731.36 c + h + S + n + 1884.38 4732.62 m + 1884.38 4738.95 1879.95 4743.38 1874.25 4743.38 c + 1867.93 4743.38 1863.5 4738.95 1863.5 4732.62 c + 1863.5 4726.93 1867.93 4722.5 1874.25 4722.5 c + 1879.95 4722.5 1884.38 4726.93 1884.38 4732.62 c + eofill + n + 1884.38 4732.62 m + 1884.38 4738.95 1879.95 4743.38 1874.25 4743.38 c + 1867.93 4743.38 1863.5 4738.95 1863.5 4732.62 c + 1863.5 4726.93 1867.93 4722.5 1874.25 4722.5 c + 1879.95 4722.5 1884.38 4726.93 1884.38 4732.62 c + h + S + n + 1926.14 4731.99 m + 1926.14 4738.31 1921.71 4742.74 1916.01 4742.74 c + 1909.69 4742.74 1905.26 4738.31 1905.26 4731.99 c + 1905.26 4726.29 1909.69 4721.86 1916.01 4721.86 c + 1921.71 4721.86 1926.14 4726.29 1926.14 4731.99 c + eofill + n + 1926.14 4731.99 m + 1926.14 4738.31 1921.71 4742.74 1916.01 4742.74 c + 1909.69 4742.74 1905.26 4738.31 1905.26 4731.99 c + 1905.26 4726.29 1909.69 4721.86 1916.01 4721.86 c + 1921.71 4721.86 1926.14 4726.29 1926.14 4731.99 c + h + S + n + 1968.53 4731.99 m + 1968.53 4738.31 1964.1 4742.74 1958.41 4742.74 c + 1952.08 4742.74 1947.65 4738.31 1947.65 4731.99 c + 1947.65 4726.29 1952.08 4721.86 1958.41 4721.86 c + 1964.1 4721.86 1968.53 4726.29 1968.53 4731.99 c + eofill + n + 1968.53 4731.99 m + 1968.53 4738.31 1964.1 4742.74 1958.41 4742.74 c + 1952.08 4742.74 1947.65 4738.31 1947.65 4731.99 c + 1947.65 4726.29 1952.08 4721.86 1958.41 4721.86 c + 1964.1 4721.86 1968.53 4726.29 1968.53 4731.99 c + h + S + n + 2010.29 4730.72 m + 2010.29 4737.05 2005.86 4741.48 2000.17 4741.48 c + 1993.84 4741.48 1989.41 4737.05 1989.41 4730.72 c + 1989.41 4725.03 1993.84 4720.6 2000.17 4720.6 c + 2005.86 4720.6 2010.29 4725.03 2010.29 4730.72 c + eofill + n + 2010.29 4730.72 m + 2010.29 4737.05 2005.86 4741.48 2000.17 4741.48 c + 1993.84 4741.48 1989.41 4737.05 1989.41 4730.72 c + 1989.41 4725.03 1993.84 4720.6 2000.17 4720.6 c + 2005.86 4720.6 2010.29 4725.03 2010.29 4730.72 c + h + S + n + 2052.68 4730.72 m + 2052.68 4737.05 2048.25 4741.48 2042.56 4741.48 c + 2036.23 4741.48 2031.8 4737.05 2031.8 4730.72 c + 2031.8 4725.03 2036.23 4720.6 2042.56 4720.6 c + 2048.25 4720.6 2052.68 4725.03 2052.68 4730.72 c + eofill + n + 2052.68 4730.72 m + 2052.68 4737.05 2048.25 4741.48 2042.56 4741.48 c + 2036.23 4741.48 2031.8 4737.05 2031.8 4730.72 c + 2031.8 4725.03 2036.23 4720.6 2042.56 4720.6 c + 2048.25 4720.6 2052.68 4725.03 2052.68 4730.72 c + h + S + n + 2095.07 4735.15 m + 2095.07 4741.48 2090.64 4745.91 2084.95 4745.91 c + 2078.62 4745.91 2074.2 4741.48 2074.2 4735.15 c + 2074.2 4729.46 2078.62 4725.03 2084.95 4725.03 c + 2090.64 4725.03 2095.07 4729.46 2095.07 4735.15 c + eofill + n + 2095.07 4735.15 m + 2095.07 4741.48 2090.64 4745.91 2084.95 4745.91 c + 2078.62 4745.91 2074.2 4741.48 2074.2 4735.15 c + 2074.2 4729.46 2078.62 4725.03 2084.95 4725.03 c + 2090.64 4725.03 2095.07 4729.46 2095.07 4735.15 c + h + S + n + 2136.84 4739.58 m + 2136.84 4745.91 2132.41 4750.34 2126.71 4750.34 c + 2120.38 4750.34 2115.96 4745.91 2115.96 4739.58 c + 2115.96 4733.88 2120.38 4729.46 2126.71 4729.46 c + 2132.41 4729.46 2136.84 4733.88 2136.84 4739.58 c + eofill + n + 2136.84 4739.58 m + 2136.84 4745.91 2132.41 4750.34 2126.71 4750.34 c + 2120.38 4750.34 2115.96 4745.91 2115.96 4739.58 c + 2115.96 4733.88 2120.38 4729.46 2126.71 4729.46 c + 2132.41 4729.46 2136.84 4733.88 2136.84 4739.58 c + h + S + n + 2179.23 4757.3 m + 2179.23 4763.62 2174.8 4768.05 2169.11 4768.05 c + 2162.78 4768.05 2158.35 4763.62 2158.35 4757.3 c + 2158.35 4751.6 2162.78 4747.17 2169.11 4747.17 c + 2174.8 4747.17 2179.23 4751.6 2179.23 4757.3 c + eofill + n + 2179.23 4757.3 m + 2179.23 4763.62 2174.8 4768.05 2169.11 4768.05 c + 2162.78 4768.05 2158.35 4763.62 2158.35 4757.3 c + 2158.35 4751.6 2162.78 4747.17 2169.11 4747.17 c + 2174.8 4747.17 2179.23 4751.6 2179.23 4757.3 c + h + S + n + 2220.99 4790.83 m + 2220.99 4797.16 2216.56 4801.59 2210.86 4801.59 c + 2204.54 4801.59 2200.11 4797.16 2200.11 4790.83 c + 2200.11 4785.14 2204.54 4780.71 2210.86 4780.71 c + 2216.56 4780.71 2220.99 4785.14 2220.99 4790.83 c + eofill + n + 2220.99 4790.83 m + 2220.99 4797.16 2216.56 4801.59 2210.86 4801.59 c + 2204.54 4801.59 2200.11 4797.16 2200.11 4790.83 c + 2200.11 4785.14 2204.54 4780.71 2210.86 4780.71 c + 2216.56 4780.71 2220.99 4785.14 2220.99 4790.83 c + h + S + n + 2263.38 4835.12 m + 2263.38 4841.45 2258.95 4845.88 2253.26 4845.88 c + 2246.93 4845.88 2242.5 4841.45 2242.5 4835.12 c + 2242.5 4829.43 2246.93 4825 2253.26 4825 c + 2258.95 4825 2263.38 4829.43 2263.38 4835.12 c + eofill + n + 2263.38 4835.12 m + 2263.38 4841.45 2258.95 4845.88 2253.26 4845.88 c + 2246.93 4845.88 2242.5 4841.45 2242.5 4835.12 c + 2242.5 4829.43 2246.93 4825 2253.26 4825 c + 2258.95 4825 2263.38 4829.43 2263.38 4835.12 c + h + S + n + 2305.77 4886.37 m + 2305.77 4892.7 2301.34 4897.13 2295.65 4897.13 c + 2289.32 4897.13 2284.89 4892.7 2284.89 4886.37 c + 2284.89 4880.68 2289.32 4876.25 2295.65 4876.25 c + 2301.34 4876.25 2305.77 4880.68 2305.77 4886.37 c + eofill + n + 2305.77 4886.37 m + 2305.77 4892.7 2301.34 4897.13 2295.65 4897.13 c + 2289.32 4897.13 2284.89 4892.7 2284.89 4886.37 c + 2284.89 4880.68 2289.32 4876.25 2295.65 4876.25 c + 2301.34 4876.25 2305.77 4880.68 2305.77 4886.37 c + h + S + n + 2347.54 4969.89 m + 2347.54 4976.22 2343.11 4980.65 2337.41 4980.65 c + 2331.08 4980.65 2326.65 4976.22 2326.65 4969.89 c + 2326.65 4964.2 2331.08 4959.77 2337.41 4959.77 c + 2343.11 4959.77 2347.54 4964.2 2347.54 4969.89 c + eofill + n + 2347.54 4969.89 m + 2347.54 4976.22 2343.11 4980.65 2337.41 4980.65 c + 2331.08 4980.65 2326.65 4976.22 2326.65 4969.89 c + 2326.65 4964.2 2331.08 4959.77 2337.41 4959.77 c + 2343.11 4959.77 2347.54 4964.2 2347.54 4969.89 c + h + S + n + 2389.93 5042.02 m + 2389.93 5048.35 2385.5 5052.78 2379.8 5052.78 c + 2373.48 5052.78 2369.05 5048.35 2369.05 5042.02 c + 2369.05 5036.33 2373.48 5031.9 2379.8 5031.9 c + 2385.5 5031.9 2389.93 5036.33 2389.93 5042.02 c + eofill + n + 2389.93 5042.02 m + 2389.93 5048.35 2385.5 5052.78 2379.8 5052.78 c + 2373.48 5052.78 2369.05 5048.35 2369.05 5042.02 c + 2369.05 5036.33 2373.48 5031.9 2379.8 5031.9 c + 2385.5 5031.9 2389.93 5036.33 2389.93 5042.02 c + h + S + n + 2431.69 5116.05 m + 2431.69 5122.38 2427.26 5126.81 2421.56 5126.81 c + 2415.23 5126.81 2410.8 5122.38 2410.8 5116.05 c + 2410.8 5110.36 2415.23 5105.93 2421.56 5105.93 c + 2427.26 5105.93 2431.69 5110.36 2431.69 5116.05 c + eofill + n + 2431.69 5116.05 m + 2431.69 5122.38 2427.26 5126.81 2421.56 5126.81 c + 2415.23 5126.81 2410.8 5122.38 2410.8 5116.05 c + 2410.8 5110.36 2415.23 5105.93 2421.56 5105.93 c + 2427.26 5105.93 2431.69 5110.36 2431.69 5116.05 c + h + S + n + 2474.08 5191.35 m + 2474.08 5197.67 2469.65 5202.1 2463.96 5202.1 c + 2457.63 5202.1 2453.2 5197.67 2453.2 5191.35 c + 2453.2 5185.65 2457.63 5181.22 2463.96 5181.22 c + 2469.65 5181.22 2474.08 5185.65 2474.08 5191.35 c + eofill + n + 2474.08 5191.35 m + 2474.08 5197.67 2469.65 5202.1 2463.96 5202.1 c + 2457.63 5202.1 2453.2 5197.67 2453.2 5191.35 c + 2453.2 5185.65 2457.63 5181.22 2463.96 5181.22 c + 2469.65 5181.22 2474.08 5185.65 2474.08 5191.35 c + h + S + n + 2516.47 5279.93 m + 2516.47 5286.25 2512.04 5290.68 2506.35 5290.68 c + 2500.02 5290.68 2495.59 5286.25 2495.59 5279.93 c + 2495.59 5274.23 2500.02 5269.8 2506.35 5269.8 c + 2512.04 5269.8 2516.47 5274.23 2516.47 5279.93 c + eofill + n + 2516.47 5279.93 m + 2516.47 5286.25 2512.04 5290.68 2506.35 5290.68 c + 2500.02 5290.68 2495.59 5286.25 2495.59 5279.93 c + 2495.59 5274.23 2500.02 5269.8 2506.35 5269.8 c + 2512.04 5269.8 2516.47 5274.23 2516.47 5279.93 c + h + S + n + 2558.23 5397.62 m + 2558.23 5403.94 2553.8 5408.37 2548.11 5408.37 c + 2541.78 5408.37 2537.35 5403.94 2537.35 5397.62 c + 2537.35 5391.92 2541.78 5387.49 2548.11 5387.49 c + 2553.8 5387.49 2558.23 5391.92 2558.23 5397.62 c + eofill + n + 2558.23 5397.62 m + 2558.23 5403.94 2553.8 5408.37 2548.11 5408.37 c + 2541.78 5408.37 2537.35 5403.94 2537.35 5397.62 c + 2537.35 5391.92 2541.78 5387.49 2548.11 5387.49 c + 2553.8 5387.49 2558.23 5391.92 2558.23 5397.62 c + h + S + n + 2600.62 5472.28 m + 2600.62 5478.61 2596.2 5483.04 2590.5 5483.04 c + 2584.17 5483.04 2579.75 5478.61 2579.75 5472.28 c + 2579.75 5466.58 2584.17 5462.15 2590.5 5462.15 c + 2596.2 5462.15 2600.62 5466.58 2600.62 5472.28 c + eofill + n + 2600.62 5472.28 m + 2600.62 5478.61 2596.2 5483.04 2590.5 5483.04 c + 2584.17 5483.04 2579.75 5478.61 2579.75 5472.28 c + 2579.75 5466.58 2584.17 5462.15 2590.5 5462.15 c + 2596.2 5462.15 2600.62 5466.58 2600.62 5472.28 c + h + S + n + 2642.38 5589.33 m + 2642.38 5595.66 2637.96 5600.09 2632.26 5600.09 c + 2625.93 5600.09 2621.5 5595.66 2621.5 5589.33 c + 2621.5 5583.64 2625.93 5579.21 2632.26 5579.21 c + 2637.96 5579.21 2642.38 5583.64 2642.38 5589.33 c + eofill + n + 2642.38 5589.33 m + 2642.38 5595.66 2637.96 5600.09 2632.26 5600.09 c + 2625.93 5600.09 2621.5 5595.66 2621.5 5589.33 c + 2621.5 5583.64 2625.93 5579.21 2632.26 5579.21 c + 2637.96 5579.21 2642.38 5583.64 2642.38 5589.33 c + h + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 76.6945 424.985 m + /N96 4.93518 Tf + (0.0E+00) + [2.73731 1.36534 2.73731 3.2852 2.8755 2.73731 2.73731 ] pdfxs + 77.9601 441.815 m + (5.0E-09) + [2.73351 1.36154 2.73352 3.2814 1.63291 2.73351 2.73352 ] pdfxs + 77.9601 458.646 m + (1.0E-08) + [2.73351 1.36154 2.73352 3.2814 1.63291 2.73351 2.73352 ] pdfxs + 77.9601 475.477 m + (1.5E-08) + [2.73351 1.36154 2.73352 3.2814 1.63291 2.73351 2.73352 ] pdfxs + 77.9601 492.307 m + (2.0E-08) + [2.73351 1.36154 2.73352 3.2814 1.63291 2.73351 2.73352 ] pdfxs + 77.9601 509.138 m + (2.5E-08) + [2.73351 1.36154 2.73352 3.2814 1.63291 2.73351 2.73352 ] pdfxs + 77.9601 525.968 m + (3.0E-08) + [2.73351 1.36154 2.73352 3.2814 1.63291 2.73351 2.73352 ] pdfxs + 77.9601 542.799 m + (3.5E-08) + [2.73351 1.36154 2.73352 3.2814 1.63291 2.73351 2.73352 ] pdfxs + 77.9601 559.63 m + (4.0E-08) + [2.73351 1.36154 2.73352 3.2814 1.63291 2.73351 2.73352 ] pdfxs + 97.2581 416.064 m + /N96 6.01091 Tf + (0500100015002000) + [38.7864 3.35345 3.35345 33.7243 3.35345 3.35345 3.35345 32.0791 3.35344 3.35347 3.35344 + 32.0795 3.35344 3.35347 3.35344 3.35347 ] pdfxs + 136.108 409.294 m + /N98 6.01091 Tf + (Number of LLU Bench iterations) + [4.3443 3.677 5.34822 3.67699 3.3465 2.34276 1.64509 3.67699 2.00597 1.64509 3.67699 + 3.67699 4.34431 1.64509 4.3443 3.3465 3.67699 3.3465 3.67699 1.64509 1.67546 2.00596 + 3.34651 2.34276 3.34651 2.00596 1.67548 3.67701 3.67699 3.34651 ] pdfxs + 76.5047 455.925 m + /N98 [0 6.01091 -6.01091 0 0 0] Tf + (Time per node dereference) + [3.67819 1.6766 5.34936 3.34768 1.6451 3.67814 3.34768 2.34395 1.64506 3.67819 3.67814 + 3.67819 3.34768 1.64506 3.67819 3.34768 2.3439 3.34768 2.00715 3.34768 2.34395 3.34768 + 3.67814 3.34768 3.34768 ] pdfys + Q + n + 1217.45 5219.19 376.473 401.781 re + 1 1 1 sc + f + 0.632645 w + n + 1216.82 5219.19 377.105 402.414 re + 0 0 0 sc + S + 2.53084 w + n + 1230.77 5584.9 m + 1291.51 5584.9 l + 0 0 0.501907 sc + S + n + 1261.14 5595.66 m + 1271.9 5584.9 l + 1261.14 5574.14 l + 1250.38 5584.9 l + 1261.14 5595.66 l + eofill + n + 1261.14 5595.66 m + 1271.9 5584.9 l + 1261.14 5574.14 l + 1250.38 5584.9 l + 1261.14 5595.66 l + h + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 130.35 556.845 m + /N96 5.06181 Tf + (Normal 64) + [3.64894 2.80868 1.67981 4.21074 2.80868 1.11803 1.392 2.80867 2.80868 ] pdfxs + Q + n + 1230.77 5517.83 m + 1291.51 5517.83 l + 1 0 1 sc + S + n + 1250.38 5507.71 20.8828 20.8789 re + eofill + 0 J + n + 1250.38 5507.71 20.8828 20.8789 re + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 130.35 550.138 m + /N96 5.06181 Tf + (PoolAlloc 64) + [3.36247 2.80056 2.80056 1.10991 3.36249 1.10992 1.10991 2.80056 2.51709 1.392 2.80056 + 2.80055 ] pdfxs + Q + 1 J + n + 1230.77 5450.77 m + 1291.51 5450.77 l + 0 0 0 sc + S + n + 1261.14 5461.52 m + 1271.9 5440.01 l + 1250.38 5440.01 l + 1261.14 5461.52 l + eofill + n + 1261.14 5461.52 m + 1271.9 5440.01 l + 1250.38 5440.01 l + 1261.14 5461.52 l + h + S + q + 10 0 0 10 0 0 cm + 130.35 543.431 m + /N96 5.06181 Tf + (PtrComp 64) + [3.36533 1.39621 1.67455 3.64367 2.80339 4.20547 2.80341 1.392 2.80341 2.80339 ] pdfxs + Q + n + 1230.77 5383.7 m + 1291.51 5383.7 l + 1 0.399857 0 sc + S + n + 1261.14 5383.7 m + 1250.38 5394.45 l + S + n + 1261.14 5383.7 m + 1271.9 5372.94 l + S + n + 1261.14 5383.7 m + 1250.38 5372.94 l + S + n + 1261.14 5383.7 m + 1271.9 5394.45 l + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 130.35 536.725 m + /N96 5.06181 Tf + (Normal 32) + [3.64894 2.80868 1.67981 4.21074 2.80868 1.11803 1.392 2.80867 2.80868 ] pdfxs + Q + n + 1230.77 5316.62 m + 1291.51 5316.62 l + 0.501907 0 0.501907 sc + S + n + 1261.14 5316.62 m + 1250.38 5327.38 l + S + n + 1261.14 5316.62 m + 1271.9 5305.87 l + S + n + 1261.14 5316.62 m + 1250.38 5305.87 l + S + n + 1261.14 5316.62 m + 1271.9 5327.38 l + S + n + 1261.14 5316.62 m + 1261.14 5327.38 l + S + n + 1261.14 5316.62 m + 1261.14 5305.87 l + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 130.35 530.018 m + /N96 5.06181 Tf + (PoolAlloc 32) + [3.36247 2.80056 2.80056 1.10991 3.36249 1.10992 1.10991 2.80056 2.51709 1.392 2.80056 + 2.80055 ] pdfxs + Q + n + 1230.77 5249.56 m + 1291.51 5249.56 l + 0.501907 0 0 sc + S + n + 1271.27 5249.56 m + 1271.27 5255.88 1266.84 5260.31 1261.14 5260.31 c + 1254.81 5260.31 1250.38 5255.88 1250.38 5249.56 c + 1250.38 5243.86 1254.81 5239.43 1261.14 5239.43 c + 1266.84 5239.43 1271.27 5243.86 1271.27 5249.56 c + eofill + n + 1271.27 5249.56 m + 1271.27 5255.88 1266.84 5260.31 1261.14 5260.31 c + 1254.81 5260.31 1250.38 5255.88 1250.38 5249.56 c + 1250.38 5243.86 1254.81 5239.43 1261.14 5239.43 c + 1266.84 5239.43 1271.27 5243.86 1271.27 5249.56 c + h + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 130.35 523.311 m + /N96 5.06181 Tf + (PtrComp 32) + [3.36533 1.39621 1.67455 3.64367 2.80339 4.20547 2.80341 1.392 2.80341 2.80339 ] pdfxs + Q + Q + {} settransfer + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 84.6 397.32 m + /N17 8.96638 Tf + (\(c\)375MhzIBMSP9076-550-8MBCache) + [3.60274 4.08196 6.60274 4.62111 4.62112 4.62111 8.46031 5.10016 7.14212 3.30019 6.54066 + 11.5205 5.10016 9.35683 4.62111 4.62112 4.62111 4.62112 3.06372 4.62111 4.62111 7.62112 + 6.18381 4.62109 8.46031 9.54065 6.65759 4.62109 3.84188 5.10017 4.0785 ] pdfxs + Q + {} settransfer + q + n + 3326.39 4050.54 m + 5414.39 4050.54 l + 5414.39 5663.99 l + 3326.39 5663.99 l + h + W + n + n + 3339.68 4063.2 2054.46 1590.04 re + [/DeviceRGB] cs 1 1 1 sc + + f + 0.632645 w + 1 M + 1 J + 2 j + n + 3601.63 4246.05 1703.93 1369.22 re + 0 0 0 sc + S + Q + q + n + 3601.63 4473.83 m + 5305.57 4473.83 l + 5305.57 4474.46 l + 3601.63 4474.46 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 3601.63 4474.46 m + 5305.57 4474.46 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 3601.63 4701.62 m + 5305.57 4701.62 l + 5305.57 4702.25 l + 3601.63 4702.25 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 3601.63 4702.25 m + 5305.57 4702.25 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 3601.63 4930.03 m + 5305.57 4930.03 l + 5305.57 4930.66 l + 3601.63 4930.66 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 3601.63 4930.66 m + 5305.57 4930.66 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 3601.63 5158.45 m + 5305.57 5158.45 l + 5305.57 5159.08 l + 3601.63 5159.08 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 3601.63 5159.08 m + 5305.57 5159.08 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 3601.63 5617.8 m + 3601.63 4243.52 l + 5305.57 4243.52 l + 5305.57 5617.8 l + 3706.66 5500.12 m + 3706.66 5298.91 l + 4084.4 5298.91 l + 4084.4 5500.12 l + h + eoclip + n + 0.632645 w + 1 J + 1 j + n + 3601.63 5386.86 m + 5305.57 5386.86 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 3601.63 5614.64 m + 5305.57 5614.64 l + 5305.57 5615.27 l + 3601.63 5615.27 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 3601.63 5615.27 m + 5305.57 5615.27 l + [/DeviceRGB] cs 0 0 0 sc + + S + Q + q + n + 3328.96 5663.99 m + 3328.96 4053.07 l + 5404.94 4053.07 l + 5404.94 5663.99 l + 3706.7 5500.12 m + 3706.7 5298.91 l + 4084.44 5298.91 l + 4084.44 5500.12 l + h + eoclip + n + 2.53084 w + 1 j + n + 3601.67 4246.05 1703.93 1369.22 re + [/DeviceRGB] cs 0.501907 0.501907 0.501907 sc + + S + Q + q + n + 3326.39 4050.54 m + 5414.39 4050.54 l + 5414.39 5663.99 l + 3326.39 5663.99 l + h + W + n + 0.632645 w + 1 J + 1 j + n + 3601.63 5615.27 m + 3601.63 4246.05 l + [/DeviceRGB] cs 0 0 0 sc + + S + n + 3587.71 4246.05 m + 3601.63 4246.05 l + S + n + 3587.71 4474.46 m + 3601.63 4474.46 l + S + n + 3587.71 4702.25 m + 3601.63 4702.25 l + S + n + 3587.71 4930.66 m + 3601.63 4930.66 l + S + n + 3587.71 5159.08 m + 3601.63 5159.08 l + S + n + 3587.71 5386.86 m + 3601.63 5386.86 l + S + n + 3587.71 5615.27 m + 3601.63 5615.27 l + S + n + 3601.63 4246.05 m + 5305.57 4246.05 l + S + n + 3601.63 4228.34 m + 3601.63 4246.05 l + S + n + 3942.67 4228.34 m + 3942.67 4246.05 l + S + n + 4283.08 4228.34 m + 4283.08 4246.05 l + S + n + 4624.12 4228.34 m + 4624.12 4246.05 l + S + n + 4964.52 4228.34 m + 4964.52 4246.05 l + S + n + 5305.57 4228.34 m + 5305.57 4246.05 l + S + 2.53084 w + n + 3618.75 4651 m + 3620.65 4661.75 l + 3623.18 4672.51 l + 3626.98 4695.29 l + 3629.51 4706.04 l + 3631.4 4716.17 l + 3632.67 4720.6 l + 3633.93 4724.39 l + 3634.57 4727.56 l + 3635.83 4730.72 l + 0 0 0.501907 sc + S + n + 3635.83 4730.72 m + 3637.1 4733.25 l + 3639.63 4734.52 l + 3641.53 4735.78 l + 3644.06 4735.78 l + 3649.12 4735.15 l + 3652.92 4735.15 l + S + n + 3652.92 4735.15 m + 3661.14 4736.41 l + 3670 4737.05 l + S + n + 3670 4737.05 m + 3678.23 4738.95 l + 3682.66 4740.21 l + 3687.09 4740.84 l + S + n + 3687.09 4740.84 m + 3695.31 4741.48 l + 3704.17 4740.84 l + S + n + 3704.17 4740.84 m + 3713.03 4739.58 l + 3721.25 4738.31 l + S + n + 3721.25 4738.31 m + 3737.7 4736.41 l + S + n + 3737.7 4736.41 m + 3745.93 4735.78 l + 3754.79 4735.15 l + S + n + 3754.79 4735.15 m + 3763.01 4735.15 l + 3767.44 4735.78 l + 3771.87 4737.68 l + S + n + 3771.87 4737.68 m + 3776.3 4740.84 l + 3780.09 4745.27 l + 3784.52 4749.7 l + 3788.95 4754.77 l + S + n + 3788.95 4754.77 m + 3793.38 4759.83 l + 3797.18 4764.89 l + 3801.61 4769.95 l + 3806.04 4774.38 l + S + n + 3806.04 4774.38 m + 3814.26 4782.61 l + 3823.12 4789.57 l + S + n + 3823.12 4789.57 m + 3831.35 4796.52 l + 3840.2 4802.85 l + S + n + 3840.2 4802.85 m + 3848.43 4809.18 l + 3857.29 4815.51 l + S + n + 3857.29 4815.51 m + 3865.51 4819.93 l + 3874.37 4824.36 l + S + n + 3874.37 4824.36 m + 3891.46 4831.96 l + S + n + 3891.46 4831.96 m + 3908.54 4838.92 l + S + n + 3908.54 4838.92 m + 3925.62 4845.25 l + S + n + 3925.62 4845.25 m + 3942.71 4850.94 l + S + n + 3942.71 4850.94 m + 3959.79 4856 l + S + n + 3959.79 4856 m + 3976.24 4860.43 l + S + n + 3976.24 4860.43 m + 3993.32 4864.23 l + S + n + 3993.32 4864.23 m + 4010.41 4867.39 l + S + n + 4010.41 4867.39 m + 4027.49 4869.92 l + S + n + 4027.49 4869.92 m + 4044.57 4873.09 l + S + n + 4044.57 4873.09 m + 4061.66 4875.62 l + S + n + 4061.66 4875.62 m + 4078.74 4877.51 l + S + n + 4078.74 4877.51 m + 4095.82 4879.41 l + S + n + 4095.82 4879.41 m + 4104.05 4880.68 l + 4112.91 4881.94 l + S + n + 4112.91 4881.94 m + 4121.14 4884.47 l + 4125.56 4886.37 l + 4129.99 4888.27 l + S + n + 4129.99 4888.27 m + 4134.42 4890.8 l + 4138.22 4894.6 l + 4142.65 4898.39 l + 4147.08 4901.56 l + S + n + 4147.08 4901.56 m + 4164.16 4914.21 l + S + n + 4164.16 4914.21 m + 4168.59 4917.38 l + 4172.39 4919.91 l + 4176.82 4923.07 l + 4181.25 4926.87 l + S + n + 4181.25 4926.87 m + 4185.67 4931.3 l + 4190.1 4936.99 l + 4198.33 4948.38 l + S + n + 4198.33 4948.38 m + 4206.55 4959.77 l + 4214.78 4971.79 l + S + n + 4214.78 4971.79 m + 4223 4983.18 l + 4231.86 4993.93 l + S + n + 4231.86 4993.93 m + 4236.29 4999 l + 4240.09 5004.69 l + 4244.52 5009.75 l + 4248.95 5016.08 l + S + n + 4248.95 5016.08 m + 4253.38 5023.04 l + 4257.17 5030.63 l + 4266.03 5046.45 l + S + n + 4266.03 5046.45 m + 4270.46 5054.68 l + 4274.25 5063.54 l + 4278.68 5072.39 l + 4283.11 5080.62 l + S + n + 4283.11 5080.62 m + 4291.34 5096.44 l + 4300.2 5112.25 l + S + n + 4300.2 5112.25 m + 4308.42 5128.07 l + 4312.85 5136.3 l + 4317.28 5144.52 l + S + n + 4317.28 5144.52 m + 4325.51 5162.88 l + 4334.36 5181.86 l + S + n + 4334.36 5181.86 m + 4342.59 5201.47 l + 4351.45 5222.35 l + S + n + 4351.45 5222.35 m + 4355.88 5233.11 l + 4359.67 5243.86 l + 4368.53 5266.01 l + S + n + 4368.53 5266.01 m + 4376.76 5286.89 l + 4385.61 5307.77 l + S + n + 4385.61 5307.77 m + 4393.84 5329.28 l + 4402.7 5351.43 l + S + n + 4402.7 5351.43 m + 4419.78 5394.45 l + S + n + 4419.78 5394.45 m + 4428.01 5415.33 l + 4432.44 5426.09 l + 4436.87 5436.84 l + S + n + 4436.87 5436.84 m + 4441.3 5448.23 l + 4445.09 5460.25 l + 4453.95 5483.67 l + S + n + 3618.75 4549.76 m + 3620.65 4566.84 l + 3623.18 4584.56 l + 3626.98 4621.26 l + 3629.51 4638.98 l + 3630.77 4647.2 l + 3631.4 4654.79 l + 3633.93 4668.71 l + 3634.57 4674.41 l + 3635.83 4679.47 l + 1 0 1 sc + S + n + 3635.83 4679.47 m + 3637.1 4683.9 l + 3639.63 4688.33 l + 3641.53 4691.49 l + 3644.06 4694.02 l + 3647.22 4696.55 l + 3649.12 4698.45 l + 3651.65 4699.72 l + 3652.92 4700.98 l + S + n + 3652.92 4700.98 m + 3657.35 4704.78 l + 3661.14 4707.94 l + 3665.57 4709.84 l + 3670 4711.74 l + S + n + 3670 4711.74 m + 3674.43 4712.37 l + 3687.09 4712.37 l + S + n + 3687.09 4712.37 m + 3691.51 4713.64 l + 3695.31 4715.54 l + 3699.74 4716.8 l + 3704.17 4718.07 l + S + n + 3704.17 4718.07 m + 3708.6 4718.07 l + 3713.03 4716.8 l + 3716.82 4716.17 l + 3721.25 4715.54 l + S + n + 3721.25 4715.54 m + 3725.68 4715.54 l + 3729.48 4716.17 l + 3733.27 4716.8 l + 3737.7 4717.43 l + S + n + 3737.7 4717.43 m + 3745.93 4716.8 l + 3754.79 4716.17 l + S + n + 3754.79 4716.17 m + 3771.87 4715.54 l + S + n + 3771.87 4715.54 m + 3780.09 4716.17 l + 3788.95 4716.17 l + S + n + 3788.95 4716.17 m + 3797.18 4715.54 l + 3806.04 4714.9 l + S + n + 3806.04 4714.9 m + 3818.69 4714.9 l + 3823.12 4715.54 l + S + n + 3823.12 4715.54 m + 3827.55 4716.8 l + 3831.35 4719.33 l + 3840.2 4724.39 l + S + n + 3840.2 4724.39 m + 3844.63 4727.56 l + 3848.43 4731.36 l + 3852.86 4735.15 l + 3857.29 4738.31 l + S + n + 3857.29 4738.31 m + 3861.72 4740.84 l + 3865.51 4742.11 l + 3869.94 4744.01 l + 3874.37 4745.91 l + S + n + 3874.37 4745.91 m + 3878.8 4748.44 l + 3882.6 4751.6 l + 3887.03 4754.77 l + 3891.46 4757.3 l + S + n + 3891.46 4757.3 m + 3895.88 4759.2 l + 3899.68 4761.09 l + 3908.54 4764.89 l + S + n + 3908.54 4764.89 m + 3916.77 4769.32 l + 3925.62 4773.75 l + S + n + 3925.62 4773.75 m + 3933.85 4776.91 l + 3942.71 4780.07 l + S + n + 3942.71 4780.07 m + 3951.56 4782.61 l + 3959.79 4785.14 l + S + n + 3959.79 4785.14 m + 3976.24 4790.2 l + S + n + 3976.24 4790.2 m + 3984.46 4793.36 l + 3993.32 4795.89 l + S + n + 3993.32 4795.89 m + 4010.41 4799.69 l + S + n + 4010.41 4799.69 m + 4014.84 4800.32 l + 4018.63 4800.32 l + 4023.06 4800.95 l + 4027.49 4801.59 l + S + n + 4027.49 4801.59 m + 4031.92 4802.85 l + 4035.72 4804.75 l + 4040.14 4806.65 l + 4044.57 4807.91 l + S + n + 4044.57 4807.91 m + 4052.8 4809.81 l + 4061.66 4811.08 l + S + n + 4061.66 4811.08 m + 4069.88 4813.61 l + 4078.74 4815.51 l + S + n + 4078.74 4815.51 m + 4086.97 4816.14 l + 4095.82 4816.77 l + S + n + 4095.82 4816.77 m + 4108.48 4816.77 l + 4112.91 4817.41 l + S + n + 4112.91 4817.41 m + 4117.34 4818.67 l + 4121.14 4820.57 l + 4125.56 4822.46 l + 4129.99 4823.73 l + S + n + 4129.99 4823.73 m + 4138.22 4823.73 l + 4142.65 4823.1 l + 4147.08 4823.1 l + S + n + 4147.08 4823.1 m + 4155.3 4824.36 l + 4164.16 4825.63 l + S + n + 4164.16 4825.63 m + 4172.39 4828.16 l + 4176.82 4829.43 l + 4181.25 4830.06 l + S + n + 4181.25 4830.06 m + 4193.9 4830.06 l + 4198.33 4831.32 l + S + n + 4198.33 4831.32 m + 4200.23 4832.59 l + 4202.76 4833.86 l + 4210.35 4841.45 l + 4212.88 4842.71 l + 4214.78 4843.98 l + S + n + 4214.78 4843.98 m + 4216.68 4844.61 l + 4219.21 4844.61 l + 4223 4843.98 l + 4227.43 4843.35 l + 4229.96 4843.35 l + 4231.86 4843.98 l + S + n + 4231.86 4843.98 m + 4233.76 4844.61 l + 4236.29 4845.88 l + 4240.09 4849.04 l + 4244.52 4852.2 l + 4247.05 4853.47 l + 4248.95 4854.1 l + S + n + 4248.95 4854.1 m + 4250.84 4854.73 l + 4253.38 4854.73 l + 4257.17 4854.1 l + 4261.6 4853.47 l + 4264.13 4852.84 l + 4266.03 4853.47 l + S + n + 4266.03 4853.47 m + 4267.93 4854.1 l + 4270.46 4855.37 l + 4274.25 4858.53 l + 4278.68 4861.06 l + 4281.21 4862.33 l + 4283.11 4862.96 l + S + n + 4283.11 4862.96 m + 4287.54 4863.59 l + 4291.34 4862.96 l + 4295.77 4862.33 l + 4300.2 4862.33 l + S + n + 4300.2 4862.33 m + 4308.42 4862.96 l + 4317.28 4864.86 l + S + n + 4317.28 4864.86 m + 4325.51 4867.39 l + 4329.93 4868.66 l + 4334.36 4870.55 l + S + n + 4334.36 4870.55 m + 4336.26 4871.82 l + 4338.79 4873.72 l + 4342.59 4877.51 l + 4347.02 4880.68 l + 4349.55 4881.94 l + 4351.45 4882.57 l + S + n + 4351.45 4882.57 m + 4353.35 4881.94 l + 4355.88 4881.31 l + 4359.67 4877.51 l + 4362.2 4875.62 l + 4364.1 4874.35 l + 4366.63 4873.72 l + 4368.53 4874.35 l + S + n + 4368.53 4874.35 m + 4369.8 4875.62 l + 4370.43 4876.88 l + 4372.96 4880.68 l + 4374.86 4886.37 l + 4376.76 4891.43 l + 4379.29 4897.13 l + 4381.19 4901.56 l + 4383.72 4905.36 l + 4384.35 4905.98 l + 4385.61 4906.62 l + S + n + 4385.61 4906.62 m + 4386.88 4906.62 l + 4387.51 4905.36 l + 4390.04 4902.82 l + 4391.94 4898.39 l + 4393.84 4893.33 l + 4396.37 4888.27 l + 4398.27 4883.84 l + 4399.54 4881.94 l + 4400.8 4880.68 l + 4401.43 4879.41 l + 4402.7 4879.41 l + S + n + 4402.7 4879.41 m + 4403.96 4880.04 l + 4404.6 4880.68 l + 4407.13 4883.84 l + 4409.03 4888.27 l + 4410.93 4893.33 l + 4413.46 4898.39 l + 4415.35 4903.46 l + 4417.88 4907.25 l + 4418.52 4908.52 l + 4419.78 4909.78 l + S + n + 4419.78 4909.78 m + 4421.68 4911.05 l + 4424.21 4910.41 l + 4426.11 4909.78 l + 4428.01 4907.88 l + 4430.54 4906.62 l + 4432.44 4905.36 l + 4434.97 4905.36 l + 4436.87 4905.98 l + S + n + 4436.87 4905.98 m + 4438.77 4907.88 l + 4440.66 4911.05 l + 4444.46 4918.64 l + 4446.36 4923.07 l + 4448.25 4926.87 l + 4450.79 4930.66 l + 4453.95 4933.2 l + S + n + 4453.95 4933.2 m + 4457.11 4935.09 l + 4460.91 4935.72 l + 4465.34 4936.36 l + 4469.77 4936.36 l + 4478.62 4937.62 l + 4483.05 4938.89 l + 4487.48 4941.42 l + S + n + 4487.48 4941.42 m + 4491.91 4945.21 l + 4495.71 4949.64 l + 4509 4966.73 l + 4512.79 4972.42 l + 4517.22 4976.85 l + 4521.65 4980.65 l + S + n + 4521.65 4980.65 m + 4526.08 4983.18 l + 4529.88 4983.81 l + 4534.3 4984.45 l + 4543.16 4984.45 l + 4546.96 4985.08 l + 4551.39 4985.71 l + 4555.82 4987.61 l + S + n + 4555.82 4987.61 m + 4560.25 4990.14 l + 4564.04 4993.3 l + 4572.9 5000.89 l + 4581.13 5009.75 l + 4589.98 5018.61 l + S + n + 4589.98 5018.61 m + 4598.21 5028.1 l + 4607.07 5038.23 l + 4624.15 5059.11 l + S + n + 4624.15 5059.11 m + 4632.38 5069.23 l + 4641.24 5079.36 l + 4649.46 5090.11 l + 4658.32 5102.13 l + S + n + 4658.32 5102.13 m + 4667.18 5116.05 l + 4675.4 5131.87 l + 4684.26 5147.05 l + 4688.06 5154.02 l + 4692.49 5160.34 l + S + n + 4692.49 5160.34 m + 4696.92 5165.41 l + 4700.71 5169.83 l + 4705.14 5173 l + 4708.94 5176.79 l + 4717.8 5183.12 l + 4721.59 5187.55 l + 4726.02 5192.61 l + S + n + 4726.02 5192.61 m + 4730.45 5198.3 l + 4734.25 5205.27 l + 4738.68 5212.23 l + 4743.11 5219.82 l + 4751.33 5235 l + 4760.19 5250.19 l + S + n + 4760.19 5250.19 m + 4764.62 5257.78 l + 4768.41 5266.01 l + 4777.27 5283.09 l + 4781.7 5291.32 l + 4785.5 5298.91 l + 4789.93 5305.87 l + 4794.36 5311.57 l + S + n + 4794.36 5311.57 m + 4796.25 5314.09 l + 4798.79 5315.36 l + 4802.58 5317.89 l + 4811.44 5320.42 l + 4815.87 5321.05 l + 4819.67 5322.95 l + 4824.09 5326.12 l + 4826.62 5328.02 l + 4828.52 5330.55 l + S + n + 4828.52 5330.55 m + 4830.42 5333.71 l + 4832.95 5337.51 l + 4836.75 5346.36 l + 4841.18 5356.49 l + 4845.61 5367.25 l + 4850.04 5378.63 l + 4853.83 5388.76 l + 4858.26 5397.62 l + 4860.79 5402.04 l + 4862.69 5405.21 l + S + n + 4862.69 5405.21 m + 4867.12 5410.9 l + 4870.92 5414.7 l + 4875.35 5417.86 l + 4879.77 5420.39 l + 4888 5424.82 l + 4892.43 5426.72 l + 4896.86 5429.25 l + S + n + 4896.86 5429.25 m + 4913.94 5440.64 l + 4931.03 5452.03 l + S + n + 3635.83 4526.98 m + 3640.26 4542.8 l + 3644.06 4558.62 l + 3646.59 4566.21 l + 3648.49 4573.8 l + 3651.02 4580.77 l + 3652.92 4587.09 l + 0 0 0 sc + S + n + 3652.92 4587.09 m + 3657.35 4597.85 l + 3661.14 4607.34 l + 3665.57 4615.57 l + 3670 4622.52 l + S + n + 3670 4622.52 m + 3674.43 4628.22 l + 3678.23 4632.02 l + 3682.66 4635.81 l + 3687.09 4638.34 l + S + n + 3687.09 4638.34 m + 3691.51 4640.24 l + 3695.31 4641.51 l + 3699.74 4642.77 l + 3704.17 4644.04 l + S + n + 3704.17 4644.04 m + 3708.6 4645.93 l + 3713.03 4648.46 l + 3716.82 4651 l + 3721.25 4652.89 l + S + n + 3721.25 4652.89 m + 3725.68 4653.53 l + 3737.7 4653.53 l + S + n + 3737.7 4653.53 m + 3742.13 4654.79 l + 3745.93 4656.06 l + 3750.36 4657.32 l + 3754.79 4657.96 l + S + n + 3754.79 4657.96 m + 3763.01 4657.96 l + 3767.44 4657.32 l + 3771.87 4657.32 l + S + n + 3771.87 4657.32 m + 3780.09 4657.96 l + 3788.95 4659.22 l + S + n + 3788.95 4659.22 m + 3806.04 4659.22 l + S + n + 3806.04 4659.22 m + 3823.12 4659.86 l + S + n + 3823.12 4659.86 m + 3831.35 4660.49 l + 3840.2 4660.49 l + S + n + 3840.2 4660.49 m + 3848.43 4659.86 l + 3857.29 4659.86 l + S + n + 3857.29 4659.86 m + 3865.51 4660.49 l + 3874.37 4661.12 l + S + n + 3874.37 4661.12 m + 3882.6 4661.12 l + 3891.46 4660.49 l + S + n + 3891.46 4660.49 m + 3899.68 4661.12 l + 3908.54 4661.12 l + S + n + 3908.54 4661.12 m + 3916.77 4661.12 l + 3925.62 4660.49 l + S + n + 3925.62 4660.49 m + 3942.71 4660.49 l + S + n + 3942.71 4660.49 m + 3959.79 4660.49 l + S + n + 3959.79 4660.49 m + 3976.24 4660.49 l + S + n + 3976.24 4660.49 m + 3993.32 4660.49 l + S + n + 3993.32 4660.49 m + 4010.41 4660.49 l + S + n + 4010.41 4660.49 m + 4027.49 4660.49 l + S + n + 4027.49 4660.49 m + 4044.57 4661.12 l + S + n + 4044.57 4661.12 m + 4061.66 4662.39 l + S + n + 4061.66 4662.39 m + 4078.74 4664.92 l + S + n + 4078.74 4664.92 m + 4095.82 4668.08 l + S + n + 4095.82 4668.08 m + 4112.91 4671.25 l + S + n + 4112.91 4671.25 m + 4129.99 4673.77 l + S + n + 4129.99 4673.77 m + 4147.08 4676.3 l + S + n + 4147.08 4676.3 m + 4164.16 4678.84 l + S + n + 4164.16 4678.84 m + 4181.25 4681.37 l + S + n + 4181.25 4681.37 m + 4198.33 4683.9 l + S + n + 4198.33 4683.9 m + 4214.78 4685.8 l + S + n + 4214.78 4685.8 m + 4223 4687.06 l + 4231.86 4688.33 l + S + n + 4231.86 4688.33 m + 4248.95 4690.23 l + S + n + 4248.95 4690.23 m + 4266.03 4692.12 l + S + n + 4266.03 4692.12 m + 4283.11 4694.66 l + S + n + 4283.11 4694.66 m + 4300.2 4697.19 l + S + n + 4300.2 4697.19 m + 4317.28 4699.09 l + S + n + 4317.28 4699.09 m + 4334.36 4701.62 l + S + n + 4334.36 4701.62 m + 4351.45 4704.14 l + S + n + 4351.45 4704.14 m + 4368.53 4706.68 l + S + n + 4368.53 4706.68 m + 4385.61 4709.21 l + S + n + 4385.61 4709.21 m + 4402.7 4711.74 l + S + n + 4402.7 4711.74 m + 4419.78 4714.27 l + S + n + 4419.78 4714.27 m + 4436.87 4716.8 l + S + n + 4436.87 4716.8 m + 4444.46 4718.07 l + 4448.25 4719.33 l + 4450.79 4719.33 l + 4453.95 4719.96 l + S + n + 4453.95 4719.96 m + 4457.11 4720.6 l + 4460.91 4721.23 l + 4469.77 4721.86 l + 4487.48 4724.39 l + S + n + 4487.48 4724.39 m + 4504.57 4726.93 l + 4521.65 4730.09 l + S + n + 4521.65 4730.09 m + 4538.73 4733.25 l + 4555.82 4736.41 l + S + n + 4555.82 4736.41 m + 4589.98 4742.11 l + S + n + 4589.98 4742.11 m + 4624.15 4748.44 l + S + n + 4624.15 4748.44 m + 4658.32 4755.4 l + S + n + 4658.32 4755.4 m + 4692.49 4761.72 l + S + n + 4692.49 4761.72 m + 4726.02 4768.68 l + S + n + 4726.02 4768.68 m + 4760.19 4775.64 l + S + n + 4760.19 4775.64 m + 4777.27 4779.44 l + 4794.36 4783.24 l + S + n + 4794.36 4783.24 m + 4828.52 4790.2 l + S + n + 4828.52 4790.2 m + 4862.69 4797.16 l + S + n + 4862.69 4797.16 m + 4896.86 4803.48 l + S + n + 4896.86 4803.48 m + 4913.94 4807.28 l + 4922.8 4809.18 l + 4931.03 4810.45 l + S + n + 4931.03 4810.45 m + 4939.25 4811.08 l + 4947.48 4811.71 l + 4956.34 4812.34 l + 4964.56 4812.98 l + S + n + 4964.56 4812.98 m + 4972.79 4814.24 l + 4981.64 4816.14 l + 4998.73 4819.93 l + S + n + 4998.73 4819.93 m + 5032.89 4826.26 l + S + n + 5032.89 4826.26 m + 5067.06 4833.22 l + S + n + 5067.06 4833.22 m + 5084.14 4837.02 l + 5101.23 4841.45 l + S + n + 5101.23 4841.45 m + 5135.4 4849.67 l + S + n + 5135.4 4849.67 m + 5169.56 4857.9 l + S + n + 5169.56 4857.9 m + 5203.1 4866.12 l + S + n + 5203.1 4866.12 m + 5237.27 4874.98 l + S + n + 5237.27 4874.98 m + 5271.43 4883.21 l + S + n + 3618.75 4661.75 m + 3629.51 4651 l + 3618.75 4640.24 l + 3607.99 4651 l + 3618.75 4661.75 l + 0 0 0.501907 sc + eofill + n + 3618.75 4661.75 m + 3629.51 4651 l + 3618.75 4640.24 l + 3607.99 4651 l + 3618.75 4661.75 l + h + S + n + 3635.83 4741.48 m + 3646.59 4730.72 l + 3635.83 4719.96 l + 3625.08 4730.72 l + 3635.83 4741.48 l + eofill + n + 3635.83 4741.48 m + 3646.59 4730.72 l + 3635.83 4719.96 l + 3625.08 4730.72 l + 3635.83 4741.48 l + h + S + n + 3652.92 4745.91 m + 3663.67 4735.15 l + 3652.92 4724.39 l + 3642.16 4735.15 l + 3652.92 4745.91 l + eofill + n + 3652.92 4745.91 m + 3663.67 4735.15 l + 3652.92 4724.39 l + 3642.16 4735.15 l + 3652.92 4745.91 l + h + S + n + 3670 4747.8 m + 3680.76 4737.05 l + 3670 4726.29 l + 3659.25 4737.05 l + 3670 4747.8 l + eofill + n + 3670 4747.8 m + 3680.76 4737.05 l + 3670 4726.29 l + 3659.25 4737.05 l + 3670 4747.8 l + h + S + n + 3687.09 4751.6 m + 3697.84 4740.84 l + 3687.09 4730.09 l + 3676.33 4740.84 l + 3687.09 4751.6 l + eofill + n + 3687.09 4751.6 m + 3697.84 4740.84 l + 3687.09 4730.09 l + 3676.33 4740.84 l + 3687.09 4751.6 l + h + S + n + 3704.17 4751.6 m + 3714.93 4740.84 l + 3704.17 4730.09 l + 3693.41 4740.84 l + 3704.17 4751.6 l + eofill + n + 3704.17 4751.6 m + 3714.93 4740.84 l + 3704.17 4730.09 l + 3693.41 4740.84 l + 3704.17 4751.6 l + h + S + n + 3721.25 4749.07 m + 3732.01 4738.31 l + 3721.25 4727.56 l + 3710.5 4738.31 l + 3721.25 4749.07 l + eofill + n + 3721.25 4749.07 m + 3732.01 4738.31 l + 3721.25 4727.56 l + 3710.5 4738.31 l + 3721.25 4749.07 l + h + S + n + 3737.7 4747.17 m + 3748.46 4736.41 l + 3737.7 4725.66 l + 3726.95 4736.41 l + 3737.7 4747.17 l + eofill + n + 3737.7 4747.17 m + 3748.46 4736.41 l + 3737.7 4725.66 l + 3726.95 4736.41 l + 3737.7 4747.17 l + h + S + n + 3754.79 4745.91 m + 3765.54 4735.15 l + 3754.79 4724.39 l + 3744.03 4735.15 l + 3754.79 4745.91 l + eofill + n + 3754.79 4745.91 m + 3765.54 4735.15 l + 3754.79 4724.39 l + 3744.03 4735.15 l + 3754.79 4745.91 l + h + S + n + 3771.87 4748.44 m + 3782.62 4737.68 l + 3771.87 4726.93 l + 3761.11 4737.68 l + 3771.87 4748.44 l + eofill + n + 3771.87 4748.44 m + 3782.62 4737.68 l + 3771.87 4726.93 l + 3761.11 4737.68 l + 3771.87 4748.44 l + h + S + n + 3788.95 4765.52 m + 3799.71 4754.77 l + 3788.95 4744.01 l + 3778.2 4754.77 l + 3788.95 4765.52 l + eofill + n + 3788.95 4765.52 m + 3799.71 4754.77 l + 3788.95 4744.01 l + 3778.2 4754.77 l + 3788.95 4765.52 l + h + S + n + 3806.04 4785.14 m + 3816.79 4774.38 l + 3806.04 4763.62 l + 3795.28 4774.38 l + 3806.04 4785.14 l + eofill + n + 3806.04 4785.14 m + 3816.79 4774.38 l + 3806.04 4763.62 l + 3795.28 4774.38 l + 3806.04 4785.14 l + h + S + n + 3823.12 4800.32 m + 3833.88 4789.57 l + 3823.12 4778.81 l + 3812.36 4789.57 l + 3823.12 4800.32 l + eofill + n + 3823.12 4800.32 m + 3833.88 4789.57 l + 3823.12 4778.81 l + 3812.36 4789.57 l + 3823.12 4800.32 l + h + S + n + 3840.2 4813.61 m + 3850.96 4802.85 l + 3840.2 4792.09 l + 3829.45 4802.85 l + 3840.2 4813.61 l + eofill + n + 3840.2 4813.61 m + 3850.96 4802.85 l + 3840.2 4792.09 l + 3829.45 4802.85 l + 3840.2 4813.61 l + h + S + n + 3857.29 4826.26 m + 3868.04 4815.51 l + 3857.29 4804.75 l + 3846.53 4815.51 l + 3857.29 4826.26 l + eofill + n + 3857.29 4826.26 m + 3868.04 4815.51 l + 3857.29 4804.75 l + 3846.53 4815.51 l + 3857.29 4826.26 l + h + S + n + 3874.37 4835.12 m + 3885.13 4824.36 l + 3874.37 4813.61 l + 3863.61 4824.36 l + 3874.37 4835.12 l + eofill + n + 3874.37 4835.12 m + 3885.13 4824.36 l + 3874.37 4813.61 l + 3863.61 4824.36 l + 3874.37 4835.12 l + h + S + n + 3891.46 4842.71 m + 3902.21 4831.96 l + 3891.46 4821.2 l + 3880.7 4831.96 l + 3891.46 4842.71 l + eofill + n + 3891.46 4842.71 m + 3902.21 4831.96 l + 3891.46 4821.2 l + 3880.7 4831.96 l + 3891.46 4842.71 l + h + S + n + 3908.54 4849.67 m + 3919.3 4838.92 l + 3908.54 4828.16 l + 3897.78 4838.92 l + 3908.54 4849.67 l + eofill + n + 3908.54 4849.67 m + 3919.3 4838.92 l + 3908.54 4828.16 l + 3897.78 4838.92 l + 3908.54 4849.67 l + h + S + n + 3925.62 4856 m + 3936.38 4845.25 l + 3925.62 4834.49 l + 3914.87 4845.25 l + 3925.62 4856 l + eofill + n + 3925.62 4856 m + 3936.38 4845.25 l + 3925.62 4834.49 l + 3914.87 4845.25 l + 3925.62 4856 l + h + S + n + 3942.71 4861.7 m + 3953.46 4850.94 l + 3942.71 4840.18 l + 3931.95 4850.94 l + 3942.71 4861.7 l + eofill + n + 3942.71 4861.7 m + 3953.46 4850.94 l + 3942.71 4840.18 l + 3931.95 4850.94 l + 3942.71 4861.7 l + h + S + n + 3959.79 4866.76 m + 3970.55 4856 l + 3959.79 4845.25 l + 3949.04 4856 l + 3959.79 4866.76 l + eofill + n + 3959.79 4866.76 m + 3970.55 4856 l + 3959.79 4845.25 l + 3949.04 4856 l + 3959.79 4866.76 l + h + S + n + 3976.24 4871.19 m + 3987 4860.43 l + 3976.24 4849.67 l + 3965.48 4860.43 l + 3976.24 4871.19 l + eofill + n + 3976.24 4871.19 m + 3987 4860.43 l + 3976.24 4849.67 l + 3965.48 4860.43 l + 3976.24 4871.19 l + h + S + n + 3993.32 4874.98 m + 4004.08 4864.23 l + 3993.32 4853.47 l + 3982.57 4864.23 l + 3993.32 4874.98 l + eofill + n + 3993.32 4874.98 m + 4004.08 4864.23 l + 3993.32 4853.47 l + 3982.57 4864.23 l + 3993.32 4874.98 l + h + S + n + 4010.41 4878.14 m + 4021.16 4867.39 l + 4010.41 4856.63 l + 3999.65 4867.39 l + 4010.41 4878.14 l + eofill + n + 4010.41 4878.14 m + 4021.16 4867.39 l + 4010.41 4856.63 l + 3999.65 4867.39 l + 4010.41 4878.14 l + h + S + n + 4027.49 4880.68 m + 4038.25 4869.92 l + 4027.49 4859.16 l + 4016.73 4869.92 l + 4027.49 4880.68 l + eofill + n + 4027.49 4880.68 m + 4038.25 4869.92 l + 4027.49 4859.16 l + 4016.73 4869.92 l + 4027.49 4880.68 l + h + S + n + 4044.57 4883.84 m + 4055.33 4873.09 l + 4044.57 4862.33 l + 4033.82 4873.09 l + 4044.57 4883.84 l + eofill + n + 4044.57 4883.84 m + 4055.33 4873.09 l + 4044.57 4862.33 l + 4033.82 4873.09 l + 4044.57 4883.84 l + h + S + n + 4061.66 4886.37 m + 4072.41 4875.62 l + 4061.66 4864.86 l + 4050.9 4875.62 l + 4061.66 4886.37 l + eofill + n + 4061.66 4886.37 m + 4072.41 4875.62 l + 4061.66 4864.86 l + 4050.9 4875.62 l + 4061.66 4886.37 l + h + S + n + 4078.74 4888.27 m + 4089.5 4877.51 l + 4078.74 4866.76 l + 4067.98 4877.51 l + 4078.74 4888.27 l + eofill + n + 4078.74 4888.27 m + 4089.5 4877.51 l + 4078.74 4866.76 l + 4067.98 4877.51 l + 4078.74 4888.27 l + h + S + n + 4095.82 4890.17 m + 4106.58 4879.41 l + 4095.82 4868.66 l + 4085.07 4879.41 l + 4095.82 4890.17 l + eofill + n + 4095.82 4890.17 m + 4106.58 4879.41 l + 4095.82 4868.66 l + 4085.07 4879.41 l + 4095.82 4890.17 l + h + S + n + 4112.91 4892.7 m + 4123.66 4881.94 l + 4112.91 4871.19 l + 4102.15 4881.94 l + 4112.91 4892.7 l + eofill + n + 4112.91 4892.7 m + 4123.66 4881.94 l + 4112.91 4871.19 l + 4102.15 4881.94 l + 4112.91 4892.7 l + h + S + n + 4129.99 4899.03 m + 4140.75 4888.27 l + 4129.99 4877.51 l + 4119.24 4888.27 l + 4129.99 4899.03 l + eofill + n + 4129.99 4899.03 m + 4140.75 4888.27 l + 4129.99 4877.51 l + 4119.24 4888.27 l + 4129.99 4899.03 l + h + S + n + 4147.08 4912.31 m + 4157.83 4901.56 l + 4147.08 4890.8 l + 4136.32 4901.56 l + 4147.08 4912.31 l + eofill + n + 4147.08 4912.31 m + 4157.83 4901.56 l + 4147.08 4890.8 l + 4136.32 4901.56 l + 4147.08 4912.31 l + h + S + n + 4164.16 4924.97 m + 4174.92 4914.21 l + 4164.16 4903.46 l + 4153.4 4914.21 l + 4164.16 4924.97 l + eofill + n + 4164.16 4924.97 m + 4174.92 4914.21 l + 4164.16 4903.46 l + 4153.4 4914.21 l + 4164.16 4924.97 l + h + S + n + 4181.25 4937.62 m + 4192 4926.87 l + 4181.25 4916.11 l + 4170.49 4926.87 l + 4181.25 4937.62 l + eofill + n + 4181.25 4937.62 m + 4192 4926.87 l + 4181.25 4916.11 l + 4170.49 4926.87 l + 4181.25 4937.62 l + h + S + n + 4198.33 4959.14 m + 4209.09 4948.38 l + 4198.33 4937.62 l + 4187.57 4948.38 l + 4198.33 4959.14 l + eofill + n + 4198.33 4959.14 m + 4209.09 4948.38 l + 4198.33 4937.62 l + 4187.57 4948.38 l + 4198.33 4959.14 l + h + S + n + 4214.78 4982.55 m + 4225.54 4971.79 l + 4214.78 4961.04 l + 4204.02 4971.79 l + 4214.78 4982.55 l + eofill + n + 4214.78 4982.55 m + 4225.54 4971.79 l + 4214.78 4961.04 l + 4204.02 4971.79 l + 4214.78 4982.55 l + h + S + n + 4231.86 5004.69 m + 4242.62 4993.93 l + 4231.86 4983.18 l + 4221.11 4993.93 l + 4231.86 5004.69 l + eofill + n + 4231.86 5004.69 m + 4242.62 4993.93 l + 4231.86 4983.18 l + 4221.11 4993.93 l + 4231.86 5004.69 l + h + S + n + 4248.95 5026.84 m + 4259.7 5016.08 l + 4248.95 5005.32 l + 4238.19 5016.08 l + 4248.95 5026.84 l + eofill + n + 4248.95 5026.84 m + 4259.7 5016.08 l + 4248.95 5005.32 l + 4238.19 5016.08 l + 4248.95 5026.84 l + h + S + n + 4266.03 5057.21 m + 4276.79 5046.45 l + 4266.03 5035.7 l + 4255.27 5046.45 l + 4266.03 5057.21 l + eofill + n + 4266.03 5057.21 m + 4276.79 5046.45 l + 4266.03 5035.7 l + 4255.27 5046.45 l + 4266.03 5057.21 l + h + S + n + 4283.11 5091.38 m + 4293.87 5080.62 l + 4283.11 5069.86 l + 4272.36 5080.62 l + 4283.11 5091.38 l + eofill + n + 4283.11 5091.38 m + 4293.87 5080.62 l + 4283.11 5069.86 l + 4272.36 5080.62 l + 4283.11 5091.38 l + h + S + n + 4300.2 5123.01 m + 4310.95 5112.25 l + 4300.2 5101.5 l + 4289.44 5112.25 l + 4300.2 5123.01 l + eofill + n + 4300.2 5123.01 m + 4310.95 5112.25 l + 4300.2 5101.5 l + 4289.44 5112.25 l + 4300.2 5123.01 l + h + S + n + 4317.28 5155.28 m + 4328.04 5144.52 l + 4317.28 5133.77 l + 4306.52 5144.52 l + 4317.28 5155.28 l + eofill + n + 4317.28 5155.28 m + 4328.04 5144.52 l + 4317.28 5133.77 l + 4306.52 5144.52 l + 4317.28 5155.28 l + h + S + n + 4334.36 5192.61 m + 4345.12 5181.86 l + 4334.36 5171.1 l + 4323.61 5181.86 l + 4334.36 5192.61 l + eofill + n + 4334.36 5192.61 m + 4345.12 5181.86 l + 4334.36 5171.1 l + 4323.61 5181.86 l + 4334.36 5192.61 l + h + S + n + 4351.45 5233.11 m + 4362.2 5222.35 l + 4351.45 5211.59 l + 4340.69 5222.35 l + 4351.45 5233.11 l + eofill + n + 4351.45 5233.11 m + 4362.2 5222.35 l + 4351.45 5211.59 l + 4340.69 5222.35 l + 4351.45 5233.11 l + h + S + n + 4368.53 5276.77 m + 4379.29 5266.01 l + 4368.53 5255.25 l + 4357.77 5266.01 l + 4368.53 5276.77 l + eofill + n + 4368.53 5276.77 m + 4379.29 5266.01 l + 4368.53 5255.25 l + 4357.77 5266.01 l + 4368.53 5276.77 l + h + S + n + 4385.61 5318.52 m + 4396.37 5307.77 l + 4385.61 5297.01 l + 4374.86 5307.77 l + 4385.61 5318.52 l + eofill + n + 4385.61 5318.52 m + 4396.37 5307.77 l + 4385.61 5297.01 l + 4374.86 5307.77 l + 4385.61 5318.52 l + h + S + n + 4402.7 5362.18 m + 4413.46 5351.43 l + 4402.7 5340.67 l + 4391.94 5351.43 l + 4402.7 5362.18 l + eofill + n + 4402.7 5362.18 m + 4413.46 5351.43 l + 4402.7 5340.67 l + 4391.94 5351.43 l + 4402.7 5362.18 l + h + S + n + 4419.78 5405.21 m + 4430.54 5394.45 l + 4419.78 5383.7 l + 4409.03 5394.45 l + 4419.78 5405.21 l + eofill + n + 4419.78 5405.21 m + 4430.54 5394.45 l + 4419.78 5383.7 l + 4409.03 5394.45 l + 4419.78 5405.21 l + h + S + n + 4436.87 5447.6 m + 4447.62 5436.84 l + 4436.87 5426.09 l + 4426.11 5436.84 l + 4436.87 5447.6 l + eofill + n + 4436.87 5447.6 m + 4447.62 5436.84 l + 4436.87 5426.09 l + 4426.11 5436.84 l + 4436.87 5447.6 l + h + S + n + 4453.95 5494.42 m + 4464.71 5483.67 l + 4453.95 5472.91 l + 4443.19 5483.67 l + 4453.95 5494.42 l + eofill + n + 4453.95 5494.42 m + 4464.71 5483.67 l + 4453.95 5472.91 l + 4443.19 5483.67 l + 4453.95 5494.42 l + h + S + Q + q + n + 3590.91 4520.02 m + 3648.49 4520.02 l + 3648.49 4579.5 l + 3590.91 4579.5 l + h + W + n + n + 3607.99 4539.64 20.8828 20.8789 re + [/DeviceRGB] cs 1 0 1 sc + + eofill + 2.53084 w + 1 j + n + 3607.99 4539.64 20.8828 20.8789 re + S + Q + q + n + 3326.39 4050.54 m + 5414.39 4050.54 l + 5414.39 5663.99 l + 3326.39 5663.99 l + h + W + n + n + 3625.08 4669.35 20.8789 20.8789 re + [/DeviceRGB] cs 1 0 1 sc + + eofill + 2.53084 w + 1 j + n + 3625.08 4669.35 20.8789 20.8789 re + S + n + 3642.16 4690.86 20.8789 20.8789 re + eofill + n + 3642.16 4690.86 20.8789 20.8789 re + S + n + 3659.25 4701.62 20.8789 20.8789 re + eofill + n + 3659.25 4701.62 20.8789 20.8789 re + S + n + 3676.33 4702.25 20.8789 20.8789 re + eofill + n + 3676.33 4702.25 20.8789 20.8789 re + S + n + 3693.41 4707.94 20.8828 20.8828 re + eofill + n + 3693.41 4707.94 20.8828 20.8828 re + S + n + 3710.5 4705.41 20.8789 20.8828 re + eofill + n + 3710.5 4705.41 20.8789 20.8828 re + S + n + 3726.95 4707.31 20.8789 20.8828 re + eofill + n + 3726.95 4707.31 20.8789 20.8828 re + S + n + 3744.03 4706.04 20.8789 20.8828 re + eofill + n + 3744.03 4706.04 20.8789 20.8828 re + S + n + 3761.11 4705.41 20.8789 20.8828 re + eofill + n + 3761.11 4705.41 20.8789 20.8828 re + S + n + 3778.2 4706.04 20.8828 20.8828 re + eofill + n + 3778.2 4706.04 20.8828 20.8828 re + S + n + 3795.28 4704.78 20.8789 20.8828 re + eofill + n + 3795.28 4704.78 20.8789 20.8828 re + S + n + 3812.36 4705.41 20.8828 20.8828 re + eofill + n + 3812.36 4705.41 20.8828 20.8828 re + S + n + 3829.45 4714.27 20.8789 20.8789 re + eofill + n + 3829.45 4714.27 20.8789 20.8789 re + S + n + 3846.53 4728.19 20.8789 20.8789 re + eofill + n + 3846.53 4728.19 20.8789 20.8789 re + S + n + 3863.61 4735.78 20.8828 20.8828 re + eofill + n + 3863.61 4735.78 20.8828 20.8828 re + S + n + 3880.7 4747.17 20.8789 20.8789 re + eofill + n + 3880.7 4747.17 20.8789 20.8789 re + S + n + 3897.78 4754.77 20.8828 20.8789 re + eofill + n + 3897.78 4754.77 20.8828 20.8789 re + S + n + 3914.87 4763.62 20.8789 20.8828 re + eofill + n + 3914.87 4763.62 20.8789 20.8828 re + S + n + 3931.95 4769.95 20.8789 20.8789 re + eofill + n + 3931.95 4769.95 20.8789 20.8789 re + S + n + 3949.04 4775.01 20.8789 20.8789 re + eofill + n + 3949.04 4775.01 20.8789 20.8789 re + S + n + 3965.48 4780.07 20.8789 20.8789 re + eofill + n + 3965.48 4780.07 20.8789 20.8789 re + S + n + 3982.57 4785.77 20.8828 20.8789 re + eofill + n + 3982.57 4785.77 20.8828 20.8789 re + S + n + 3999.65 4789.57 20.8789 20.8789 re + eofill + n + 3999.65 4789.57 20.8789 20.8789 re + S + n + 4016.73 4791.46 20.8789 20.8828 re + eofill + n + 4016.73 4791.46 20.8789 20.8828 re + S + n + 4033.82 4797.79 20.8789 20.8789 re + eofill + n + 4033.82 4797.79 20.8789 20.8789 re + S + n + 4050.9 4800.95 20.8789 20.8789 re + eofill + n + 4050.9 4800.95 20.8789 20.8789 re + S + n + 4067.98 4805.38 20.8828 20.8789 re + eofill + n + 4067.98 4805.38 20.8828 20.8789 re + S + n + 4085.07 4806.65 20.8787 20.8789 re + eofill + n + 4085.07 4806.65 20.8787 20.8789 re + S + n + 4102.15 4807.28 20.8828 20.8789 re + eofill + n + 4102.15 4807.28 20.8828 20.8789 re + S + n + 4119.24 4813.61 20.8789 20.8789 re + eofill + n + 4119.24 4813.61 20.8789 20.8789 re + S + n + 4136.32 4812.98 20.8789 20.8789 re + eofill + n + 4136.32 4812.98 20.8789 20.8789 re + S + n + 4153.4 4815.51 20.8828 20.8789 re + eofill + n + 4153.4 4815.51 20.8828 20.8789 re + S + n + 4170.49 4819.93 20.8789 20.8828 re + eofill + n + 4170.49 4819.93 20.8789 20.8828 re + S + n + 4187.57 4821.2 20.8828 20.8828 re + eofill + n + 4187.57 4821.2 20.8828 20.8828 re + S + n + 4204.02 4833.86 20.8789 20.8789 re + eofill + n + 4204.02 4833.86 20.8789 20.8789 re + S + n + 4221.11 4833.86 20.8789 20.8789 re + eofill + n + 4221.11 4833.86 20.8789 20.8789 re + S + n + 4238.19 4843.98 20.8789 20.8789 re + eofill + n + 4238.19 4843.98 20.8789 20.8789 re + S + n + 4255.27 4843.35 20.8789 20.8789 re + eofill + n + 4255.27 4843.35 20.8789 20.8789 re + S + n + 4272.36 4852.84 20.8828 20.8828 re + eofill + n + 4272.36 4852.84 20.8828 20.8828 re + S + n + 4289.44 4852.2 20.8789 20.8828 re + eofill + n + 4289.44 4852.2 20.8789 20.8828 re + S + n + 4306.52 4854.73 20.8789 20.8828 re + eofill + n + 4306.52 4854.73 20.8789 20.8828 re + S + n + 4323.61 4860.43 20.8789 20.8789 re + eofill + n + 4323.61 4860.43 20.8789 20.8789 re + S + n + 4340.69 4872.45 20.8789 20.8789 re + eofill + n + 4340.69 4872.45 20.8789 20.8789 re + S + n + 4357.77 4864.23 20.8828 20.8789 re + eofill + n + 4357.77 4864.23 20.8828 20.8789 re + S + n + 4374.86 4896.5 20.8789 20.8789 re + eofill + n + 4374.86 4896.5 20.8789 20.8789 re + S + n + 4391.94 4869.29 20.8828 20.8789 re + eofill + n + 4391.94 4869.29 20.8828 20.8789 re + S + n + 4409.03 4899.66 20.8789 20.8789 re + eofill + n + 4409.03 4899.66 20.8789 20.8789 re + S + n + 4426.11 4895.86 20.8789 20.8789 re + eofill + n + 4426.11 4895.86 20.8789 20.8789 re + S + n + 4443.19 4923.07 20.8828 20.8789 re + eofill + n + 4443.19 4923.07 20.8828 20.8789 re + S + n + 4476.73 4931.3 20.8828 20.8789 re + eofill + n + 4476.73 4931.3 20.8828 20.8789 re + S + n + 4510.89 4970.52 20.8789 20.8828 re + eofill + n + 4510.89 4970.52 20.8789 20.8828 re + S + n + 4545.06 4977.48 20.8789 20.8789 re + eofill + n + 4545.06 4977.48 20.8789 20.8789 re + S + n + 4579.23 5008.49 20.8789 20.8789 re + eofill + n + 4579.23 5008.49 20.8789 20.8789 re + S + n + 4613.4 5048.98 20.8789 20.8789 re + eofill + n + 4613.4 5048.98 20.8789 20.8789 re + S + n + 4647.56 5092.01 20.8828 20.8789 re + eofill + n + 4647.56 5092.01 20.8828 20.8789 re + S + n + 4681.73 5150.22 20.8828 20.8789 re + eofill + n + 4681.73 5150.22 20.8828 20.8789 re + S + n + 4715.27 5182.49 20.8789 20.8789 re + eofill + n + 4715.27 5182.49 20.8789 20.8789 re + S + n + 4749.43 5240.07 20.8789 20.8789 re + eofill + n + 4749.43 5240.07 20.8789 20.8789 re + S + n + 4783.6 5301.44 20.8789 20.8789 re + eofill + n + 4783.6 5301.44 20.8789 20.8789 re + S + n + 4817.77 5320.42 20.8789 20.8789 re + eofill + n + 4817.77 5320.42 20.8789 20.8789 re + S + n + 4851.93 5395.09 20.8828 20.8789 re + eofill + n + 4851.93 5395.09 20.8828 20.8789 re + S + n + 4886.1 5419.13 20.8789 20.8789 re + eofill + n + 4886.1 5419.13 20.8789 20.8789 re + S + n + 4920.27 5441.91 20.8789 20.8789 re + eofill + n + 4920.27 5441.91 20.8789 20.8789 re + S + n + 3635.83 4537.74 m + 3646.59 4516.23 l + 3625.08 4516.23 l + 3635.83 4537.74 l + 0 0 0 sc + eofill + 1 J + n + 3635.83 4537.74 m + 3646.59 4516.23 l + 3625.08 4516.23 l + 3635.83 4537.74 l + h + S + n + 3652.92 4597.85 m + 3663.67 4576.34 l + 3642.16 4576.34 l + 3652.92 4597.85 l + eofill + n + 3652.92 4597.85 m + 3663.67 4576.34 l + 3642.16 4576.34 l + 3652.92 4597.85 l + h + S + n + 3670 4633.28 m + 3680.76 4611.77 l + 3659.25 4611.77 l + 3670 4633.28 l + eofill + n + 3670 4633.28 m + 3680.76 4611.77 l + 3659.25 4611.77 l + 3670 4633.28 l + h + S + n + 3687.09 4649.1 m + 3697.84 4627.59 l + 3676.33 4627.59 l + 3687.09 4649.1 l + eofill + n + 3687.09 4649.1 m + 3697.84 4627.59 l + 3676.33 4627.59 l + 3687.09 4649.1 l + h + S + n + 3704.17 4654.79 m + 3714.93 4633.28 l + 3693.41 4633.28 l + 3704.17 4654.79 l + eofill + n + 3704.17 4654.79 m + 3714.93 4633.28 l + 3693.41 4633.28 l + 3704.17 4654.79 l + h + S + n + 3721.25 4663.65 m + 3732.01 4642.14 l + 3710.5 4642.14 l + 3721.25 4663.65 l + eofill + n + 3721.25 4663.65 m + 3732.01 4642.14 l + 3710.5 4642.14 l + 3721.25 4663.65 l + h + S + n + 3737.7 4664.29 m + 3748.46 4642.77 l + 3726.95 4642.77 l + 3737.7 4664.29 l + eofill + n + 3737.7 4664.29 m + 3748.46 4642.77 l + 3726.95 4642.77 l + 3737.7 4664.29 l + h + S + n + 3754.79 4668.71 m + 3765.54 4647.2 l + 3744.03 4647.2 l + 3754.79 4668.71 l + eofill + n + 3754.79 4668.71 m + 3765.54 4647.2 l + 3744.03 4647.2 l + 3754.79 4668.71 l + h + S + n + 3771.87 4668.08 m + 3782.62 4646.57 l + 3761.11 4646.57 l + 3771.87 4668.08 l + eofill + n + 3771.87 4668.08 m + 3782.62 4646.57 l + 3761.11 4646.57 l + 3771.87 4668.08 l + h + S + n + 3788.95 4669.98 m + 3799.71 4648.46 l + 3778.2 4648.46 l + 3788.95 4669.98 l + eofill + n + 3788.95 4669.98 m + 3799.71 4648.46 l + 3778.2 4648.46 l + 3788.95 4669.98 l + h + S + n + 3806.04 4669.98 m + 3816.79 4648.46 l + 3795.28 4648.46 l + 3806.04 4669.98 l + eofill + n + 3806.04 4669.98 m + 3816.79 4648.46 l + 3795.28 4648.46 l + 3806.04 4669.98 l + h + S + n + 3823.12 4670.61 m + 3833.88 4649.1 l + 3812.36 4649.1 l + 3823.12 4670.61 l + eofill + n + 3823.12 4670.61 m + 3833.88 4649.1 l + 3812.36 4649.1 l + 3823.12 4670.61 l + h + S + n + 3840.2 4671.25 m + 3850.96 4649.73 l + 3829.45 4649.73 l + 3840.2 4671.25 l + eofill + n + 3840.2 4671.25 m + 3850.96 4649.73 l + 3829.45 4649.73 l + 3840.2 4671.25 l + h + S + n + 3857.29 4670.61 m + 3868.04 4649.1 l + 3846.53 4649.1 l + 3857.29 4670.61 l + eofill + n + 3857.29 4670.61 m + 3868.04 4649.1 l + 3846.53 4649.1 l + 3857.29 4670.61 l + h + S + n + 3874.37 4671.88 m + 3885.13 4650.36 l + 3863.61 4650.36 l + 3874.37 4671.88 l + eofill + n + 3874.37 4671.88 m + 3885.13 4650.36 l + 3863.61 4650.36 l + 3874.37 4671.88 l + h + S + n + 3891.46 4671.25 m + 3902.21 4649.73 l + 3880.7 4649.73 l + 3891.46 4671.25 l + eofill + n + 3891.46 4671.25 m + 3902.21 4649.73 l + 3880.7 4649.73 l + 3891.46 4671.25 l + h + S + n + 3908.54 4671.88 m + 3919.3 4650.36 l + 3897.78 4650.36 l + 3908.54 4671.88 l + eofill + n + 3908.54 4671.88 m + 3919.3 4650.36 l + 3897.78 4650.36 l + 3908.54 4671.88 l + h + S + n + 3925.62 4671.25 m + 3936.38 4649.73 l + 3914.87 4649.73 l + 3925.62 4671.25 l + eofill + n + 3925.62 4671.25 m + 3936.38 4649.73 l + 3914.87 4649.73 l + 3925.62 4671.25 l + h + S + n + 3942.71 4671.25 m + 3953.46 4649.73 l + 3931.95 4649.73 l + 3942.71 4671.25 l + eofill + n + 3942.71 4671.25 m + 3953.46 4649.73 l + 3931.95 4649.73 l + 3942.71 4671.25 l + h + S + n + 3959.79 4671.25 m + 3970.55 4649.73 l + 3949.04 4649.73 l + 3959.79 4671.25 l + eofill + n + 3959.79 4671.25 m + 3970.55 4649.73 l + 3949.04 4649.73 l + 3959.79 4671.25 l + h + S + n + 3976.24 4671.25 m + 3987 4649.73 l + 3965.48 4649.73 l + 3976.24 4671.25 l + eofill + n + 3976.24 4671.25 m + 3987 4649.73 l + 3965.48 4649.73 l + 3976.24 4671.25 l + h + S + n + 3993.32 4671.25 m + 4004.08 4649.73 l + 3982.57 4649.73 l + 3993.32 4671.25 l + eofill + n + 3993.32 4671.25 m + 4004.08 4649.73 l + 3982.57 4649.73 l + 3993.32 4671.25 l + h + S + n + 4010.41 4671.25 m + 4021.16 4649.73 l + 3999.65 4649.73 l + 4010.41 4671.25 l + eofill + n + 4010.41 4671.25 m + 4021.16 4649.73 l + 3999.65 4649.73 l + 4010.41 4671.25 l + h + S + n + 4027.49 4671.25 m + 4038.25 4649.73 l + 4016.73 4649.73 l + 4027.49 4671.25 l + eofill + n + 4027.49 4671.25 m + 4038.25 4649.73 l + 4016.73 4649.73 l + 4027.49 4671.25 l + h + S + n + 4044.57 4671.88 m + 4055.33 4650.36 l + 4033.82 4650.36 l + 4044.57 4671.88 l + eofill + n + 4044.57 4671.88 m + 4055.33 4650.36 l + 4033.82 4650.36 l + 4044.57 4671.88 l + h + S + n + 4061.66 4673.14 m + 4072.41 4651.63 l + 4050.9 4651.63 l + 4061.66 4673.14 l + eofill + n + 4061.66 4673.14 m + 4072.41 4651.63 l + 4050.9 4651.63 l + 4061.66 4673.14 l + h + S + n + 4078.74 4675.67 m + 4089.5 4654.16 l + 4067.98 4654.16 l + 4078.74 4675.67 l + eofill + n + 4078.74 4675.67 m + 4089.5 4654.16 l + 4067.98 4654.16 l + 4078.74 4675.67 l + h + S + n + 4095.82 4678.84 m + 4106.58 4657.32 l + 4085.07 4657.32 l + 4095.82 4678.84 l + eofill + n + 4095.82 4678.84 m + 4106.58 4657.32 l + 4085.07 4657.32 l + 4095.82 4678.84 l + h + S + n + 4112.91 4682 m + 4123.66 4660.49 l + 4102.15 4660.49 l + 4112.91 4682 l + eofill + n + 4112.91 4682 m + 4123.66 4660.49 l + 4102.15 4660.49 l + 4112.91 4682 l + h + S + n + 4129.99 4684.53 m + 4140.75 4663.02 l + 4119.24 4663.02 l + 4129.99 4684.53 l + eofill + n + 4129.99 4684.53 m + 4140.75 4663.02 l + 4119.24 4663.02 l + 4129.99 4684.53 l + h + S + n + 4147.08 4687.06 m + 4157.83 4665.55 l + 4136.32 4665.55 l + 4147.08 4687.06 l + eofill + n + 4147.08 4687.06 m + 4157.83 4665.55 l + 4136.32 4665.55 l + 4147.08 4687.06 l + h + S + n + 4164.16 4689.59 m + 4174.92 4668.08 l + 4153.4 4668.08 l + 4164.16 4689.59 l + eofill + n + 4164.16 4689.59 m + 4174.92 4668.08 l + 4153.4 4668.08 l + 4164.16 4689.59 l + h + S + n + 4181.25 4692.12 m + 4192 4670.61 l + 4170.49 4670.61 l + 4181.25 4692.12 l + eofill + n + 4181.25 4692.12 m + 4192 4670.61 l + 4170.49 4670.61 l + 4181.25 4692.12 l + h + S + n + 4198.33 4694.66 m + 4209.09 4673.14 l + 4187.57 4673.14 l + 4198.33 4694.66 l + eofill + n + 4198.33 4694.66 m + 4209.09 4673.14 l + 4187.57 4673.14 l + 4198.33 4694.66 l + h + S + n + 4214.78 4696.55 m + 4225.54 4675.04 l + 4204.02 4675.04 l + 4214.78 4696.55 l + eofill + n + 4214.78 4696.55 m + 4225.54 4675.04 l + 4204.02 4675.04 l + 4214.78 4696.55 l + h + S + n + 4231.86 4699.09 m + 4242.62 4677.57 l + 4221.11 4677.57 l + 4231.86 4699.09 l + eofill + n + 4231.86 4699.09 m + 4242.62 4677.57 l + 4221.11 4677.57 l + 4231.86 4699.09 l + h + S + n + 4248.95 4700.98 m + 4259.7 4679.47 l + 4238.19 4679.47 l + 4248.95 4700.98 l + eofill + n + 4248.95 4700.98 m + 4259.7 4679.47 l + 4238.19 4679.47 l + 4248.95 4700.98 l + h + S + n + 4266.03 4702.88 m + 4276.79 4681.37 l + 4255.27 4681.37 l + 4266.03 4702.88 l + eofill + n + 4266.03 4702.88 m + 4276.79 4681.37 l + 4255.27 4681.37 l + 4266.03 4702.88 l + h + S + n + 4283.11 4705.41 m + 4293.87 4683.9 l + 4272.36 4683.9 l + 4283.11 4705.41 l + eofill + n + 4283.11 4705.41 m + 4293.87 4683.9 l + 4272.36 4683.9 l + 4283.11 4705.41 l + h + S + n + 4300.2 4707.94 m + 4310.95 4686.43 l + 4289.44 4686.43 l + 4300.2 4707.94 l + eofill + n + 4300.2 4707.94 m + 4310.95 4686.43 l + 4289.44 4686.43 l + 4300.2 4707.94 l + h + S + n + 4317.28 4709.84 m + 4328.04 4688.33 l + 4306.52 4688.33 l + 4317.28 4709.84 l + eofill + n + 4317.28 4709.84 m + 4328.04 4688.33 l + 4306.52 4688.33 l + 4317.28 4709.84 l + h + S + n + 4334.36 4712.37 m + 4345.12 4690.86 l + 4323.61 4690.86 l + 4334.36 4712.37 l + eofill + n + 4334.36 4712.37 m + 4345.12 4690.86 l + 4323.61 4690.86 l + 4334.36 4712.37 l + h + S + n + 4351.45 4714.9 m + 4362.2 4693.39 l + 4340.69 4693.39 l + 4351.45 4714.9 l + eofill + n + 4351.45 4714.9 m + 4362.2 4693.39 l + 4340.69 4693.39 l + 4351.45 4714.9 l + h + S + n + 4368.53 4717.43 m + 4379.29 4695.92 l + 4357.77 4695.92 l + 4368.53 4717.43 l + eofill + n + 4368.53 4717.43 m + 4379.29 4695.92 l + 4357.77 4695.92 l + 4368.53 4717.43 l + h + S + n + 4385.61 4719.96 m + 4396.37 4698.45 l + 4374.86 4698.45 l + 4385.61 4719.96 l + eofill + n + 4385.61 4719.96 m + 4396.37 4698.45 l + 4374.86 4698.45 l + 4385.61 4719.96 l + h + S + n + 4402.7 4722.5 m + 4413.46 4700.98 l + 4391.94 4700.98 l + 4402.7 4722.5 l + eofill + n + 4402.7 4722.5 m + 4413.46 4700.98 l + 4391.94 4700.98 l + 4402.7 4722.5 l + h + S + n + 4419.78 4725.03 m + 4430.54 4703.51 l + 4409.03 4703.51 l + 4419.78 4725.03 l + eofill + n + 4419.78 4725.03 m + 4430.54 4703.51 l + 4409.03 4703.51 l + 4419.78 4725.03 l + h + S + n + 4436.87 4727.56 m + 4447.62 4706.04 l + 4426.11 4706.04 l + 4436.87 4727.56 l + eofill + n + 4436.87 4727.56 m + 4447.62 4706.04 l + 4426.11 4706.04 l + 4436.87 4727.56 l + h + S + n + 4453.95 4730.72 m + 4464.71 4709.21 l + 4443.19 4709.21 l + 4453.95 4730.72 l + eofill + n + 4453.95 4730.72 m + 4464.71 4709.21 l + 4443.19 4709.21 l + 4453.95 4730.72 l + h + S + n + 4487.48 4735.15 m + 4498.24 4713.64 l + 4476.73 4713.64 l + 4487.48 4735.15 l + eofill + n + 4487.48 4735.15 m + 4498.24 4713.64 l + 4476.73 4713.64 l + 4487.48 4735.15 l + h + S + n + 4521.65 4740.84 m + 4532.41 4719.33 l + 4510.89 4719.33 l + 4521.65 4740.84 l + eofill + n + 4521.65 4740.84 m + 4532.41 4719.33 l + 4510.89 4719.33 l + 4521.65 4740.84 l + h + S + n + 4555.82 4747.17 m + 4566.57 4725.66 l + 4545.06 4725.66 l + 4555.82 4747.17 l + eofill + n + 4555.82 4747.17 m + 4566.57 4725.66 l + 4545.06 4725.66 l + 4555.82 4747.17 l + h + S + n + 4589.98 4752.87 m + 4600.74 4731.36 l + 4579.23 4731.36 l + 4589.98 4752.87 l + eofill + n + 4589.98 4752.87 m + 4600.74 4731.36 l + 4579.23 4731.36 l + 4589.98 4752.87 l + h + S + n + 4624.15 4759.2 m + 4634.91 4737.68 l + 4613.4 4737.68 l + 4624.15 4759.2 l + eofill + n + 4624.15 4759.2 m + 4634.91 4737.68 l + 4613.4 4737.68 l + 4624.15 4759.2 l + h + S + n + 4658.32 4766.15 m + 4669.08 4744.64 l + 4647.56 4744.64 l + 4658.32 4766.15 l + eofill + n + 4658.32 4766.15 m + 4669.08 4744.64 l + 4647.56 4744.64 l + 4658.32 4766.15 l + h + S + n + 4692.49 4772.48 m + 4703.24 4750.97 l + 4681.73 4750.97 l + 4692.49 4772.48 l + eofill + n + 4692.49 4772.48 m + 4703.24 4750.97 l + 4681.73 4750.97 l + 4692.49 4772.48 l + h + S + n + 4726.02 4779.44 m + 4736.78 4757.93 l + 4715.27 4757.93 l + 4726.02 4779.44 l + eofill + n + 4726.02 4779.44 m + 4736.78 4757.93 l + 4715.27 4757.93 l + 4726.02 4779.44 l + h + S + n + 4760.19 4786.4 m + 4770.95 4764.89 l + 4749.43 4764.89 l + 4760.19 4786.4 l + eofill + n + 4760.19 4786.4 m + 4770.95 4764.89 l + 4749.43 4764.89 l + 4760.19 4786.4 l + h + S + n + 4794.36 4793.99 m + 4805.11 4772.48 l + 4783.6 4772.48 l + 4794.36 4793.99 l + eofill + n + 4794.36 4793.99 m + 4805.11 4772.48 l + 4783.6 4772.48 l + 4794.36 4793.99 l + h + S + n + 4828.52 4800.95 m + 4839.28 4779.44 l + 4817.77 4779.44 l + 4828.52 4800.95 l + eofill + n + 4828.52 4800.95 m + 4839.28 4779.44 l + 4817.77 4779.44 l + 4828.52 4800.95 l + h + S + n + 4862.69 4807.91 m + 4873.45 4786.4 l + 4851.93 4786.4 l + 4862.69 4807.91 l + eofill + n + 4862.69 4807.91 m + 4873.45 4786.4 l + 4851.93 4786.4 l + 4862.69 4807.91 l + h + S + n + 4896.86 4814.24 m + 4907.61 4792.73 l + 4886.1 4792.73 l + 4896.86 4814.24 l + eofill + n + 4896.86 4814.24 m + 4907.61 4792.73 l + 4886.1 4792.73 l + 4896.86 4814.24 l + h + S + n + 4931.03 4821.2 m + 4941.78 4799.69 l + 4920.27 4799.69 l + 4931.03 4821.2 l + eofill + n + 4931.03 4821.2 m + 4941.78 4799.69 l + 4920.27 4799.69 l + 4931.03 4821.2 l + h + S + n + 4964.56 4823.73 m + 4975.32 4802.22 l + 4953.8 4802.22 l + 4964.56 4823.73 l + eofill + n + 4964.56 4823.73 m + 4975.32 4802.22 l + 4953.8 4802.22 l + 4964.56 4823.73 l + h + S + n + 4998.73 4830.69 m + 5009.48 4809.18 l + 4987.97 4809.18 l + 4998.73 4830.69 l + eofill + n + 4998.73 4830.69 m + 5009.48 4809.18 l + 4987.97 4809.18 l + 4998.73 4830.69 l + h + S + n + 5032.89 4837.02 m + 5043.65 4815.51 l + 5022.14 4815.51 l + 5032.89 4837.02 l + eofill + n + 5032.89 4837.02 m + 5043.65 4815.51 l + 5022.14 4815.51 l + 5032.89 4837.02 l + h + S + n + 5067.06 4843.98 m + 5077.82 4822.46 l + 5056.3 4822.46 l + 5067.06 4843.98 l + eofill + n + 5067.06 4843.98 m + 5077.82 4822.46 l + 5056.3 4822.46 l + 5067.06 4843.98 l + h + S + n + 5101.23 4852.2 m + 5111.98 4830.69 l + 5090.47 4830.69 l + 5101.23 4852.2 l + eofill + n + 5101.23 4852.2 m + 5111.98 4830.69 l + 5090.47 4830.69 l + 5101.23 4852.2 l + h + S + n + 5135.4 4860.43 m + 5146.15 4838.92 l + 5124.64 4838.92 l + 5135.4 4860.43 l + eofill + n + 5135.4 4860.43 m + 5146.15 4838.92 l + 5124.64 4838.92 l + 5135.4 4860.43 l + h + S + n + 5169.56 4868.66 m + 5180.32 4847.14 l + 5158.81 4847.14 l + 5169.56 4868.66 l + eofill + n + 5169.56 4868.66 m + 5180.32 4847.14 l + 5158.81 4847.14 l + 5169.56 4868.66 l + h + S + n + 5203.1 4876.88 m + 5213.86 4855.37 l + 5192.34 4855.37 l + 5203.1 4876.88 l + eofill + n + 5203.1 4876.88 m + 5213.86 4855.37 l + 5192.34 4855.37 l + 5203.1 4876.88 l + h + S + n + 5237.27 4885.74 m + 5248.02 4864.23 l + 5226.51 4864.23 l + 5237.27 4885.74 l + eofill + n + 5237.27 4885.74 m + 5248.02 4864.23 l + 5226.51 4864.23 l + 5237.27 4885.74 l + h + S + n + 5271.43 4893.96 m + 5282.19 4872.45 l + 5260.68 4872.45 l + 5271.43 4893.96 l + eofill + n + 5271.43 4893.96 m + 5282.19 4872.45 l + 5260.68 4872.45 l + 5271.43 4893.96 l + h + S + q + 10 0 0 10 0 0 cm + 339.157 423.087 m + /N96 4.68211 Tf + (0.0E+00) + [2.59671 1.29511 2.59671 3.11651 2.72779 2.59671 2.59671 ] pdfxs + 340.296 445.928 m + (5.0E-09) + [2.60191 1.30028 2.60191 3.12171 1.55774 2.60189 2.60191 ] pdfxs + 340.296 468.706 m + (1.0E-08) + [2.60191 1.30028 2.60191 3.12171 1.55774 2.60189 2.60191 ] pdfxs + 340.296 491.548 m + (1.5E-08) + [2.60191 1.30028 2.60191 3.12171 1.55774 2.60189 2.60191 ] pdfxs + 340.296 514.389 m + (2.0E-08) + [2.60191 1.30028 2.60191 3.12171 1.55774 2.60189 2.60191 ] pdfxs + 340.296 537.167 m + (2.5E-08) + [2.60191 1.30028 2.60191 3.12171 1.55774 2.60189 2.60191 ] pdfxs + 340.296 560.009 m + (3.0E-08) + [2.60191 1.30028 2.60191 3.12171 1.55774 2.60189 2.60191 ] pdfxs + 358.582 414.355 m + /N96 5.82101 Tf + (0200040006000800010000) + [29.2317 3.22686 3.22686 3.22689 24.3595 3.22686 3.22686 3.22686 24.4229 3.22686 3.22686 + 3.22686 24.36 3.22686 3.22686 3.22686 22.8408 3.22686 3.22686 3.22686 3.22686 3.22686 + ] pdfxs + 408.124 408.914 m + /N98 4.74538 Tf + (Number of LLU Bench Iterations) + [3.43412 2.90735 4.22663 2.90735 2.64639 1.85399 1.32869 2.90735 1.58808 1.32869 2.90735 + 2.90735 3.43412 1.32869 3.43412 2.64639 2.90735 2.64639 2.90735 1.32869 1.32717 1.58808 + 2.64639 1.85399 2.64639 1.58808 1.32717 2.90735 2.90735 2.64639 ] pdfxs + 339.536 462.316 m + /N98 [0 4.74538 -4.74538 0 0 0] Tf + (Time per node dereference) + [2.91057 1.33044 4.22991 2.64961 1.32869 2.91062 2.64961 1.85722 1.32869 2.91057 2.91057 + 2.91062 2.64961 1.32869 2.91057 2.64966 1.85722 2.64961 1.59136 2.64961 1.85722 2.64966 + 2.91057 2.64961 2.64966 ] pdfys + Q + n + 3707.3 5298.91 376.473 200.574 re + 1 1 1 sc + f + 0.632645 w + n + 3706.66 5298.91 377.105 201.207 re + 0 0 0 sc + S + 2.53084 w + n + 3720.62 5463.42 m + 3781.36 5463.42 l + 0 0 0.501907 sc + S + n + 3750.99 5474.18 m + 3761.75 5463.42 l + 3750.99 5452.66 l + 3740.23 5463.42 l + 3750.99 5474.18 l + eofill + n + 3750.99 5474.18 m + 3761.75 5463.42 l + 3750.99 5452.66 l + 3740.23 5463.42 l + 3750.99 5474.18 l + h + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 379.335 544.697 m + /N96 5.06181 Tf + (Normal 64) + [3.64894 2.80865 1.67981 4.21072 2.80865 1.11803 1.392 2.80868 2.80865 ] pdfxs + Q + n + 3720.62 5396.35 m + 3781.36 5396.35 l + 1 0 1 sc + S + n + 3740.23 5386.23 20.8789 20.8789 re + eofill + 0 J + n + 3740.23 5386.23 20.8789 20.8789 re + S + q + 10 0 0 10 0 0 cm + 0 0 0 sc + 379.335 537.99 m + /N96 5.06181 Tf + (PoolAlloc 64) + [3.3625 2.80055 2.80052 1.10991 3.3625 1.10991 1.10991 2.80052 2.51711 1.392 2.80055 + 2.80055 ] pdfxs + Q + 1 J + n + 3720.62 5329.28 m + 3781.36 5329.28 l + 0 0 0 sc + S + n + 3750.99 5340.04 m + 3761.75 5318.52 l + 3740.23 5318.52 l + 3750.99 5340.04 l + eofill + n + 3750.99 5340.04 m + 3761.75 5318.52 l + 3740.23 5318.52 l + 3750.99 5340.04 l + h + S + q + 10 0 0 10 0 0 cm + 379.335 531.283 m + /N96 5.06181 Tf + (PtrComp 64) + [3.36533 1.39622 1.67454 3.64367 2.80338 4.20547 2.80338 1.392 2.80341 2.80338 ] pdfxs + Q + Q + {} settransfer + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 347.22 397.32 m + /N17 8.96638 Tf + (\(d\)1.6GhzItanium2Madison-9MBCache) + [3.60273 5.10017 6.60273 4.62109 2.57567 4.62109 7.25576 5.10017 7.14188 3.30018 3.60273 + 4.62109 5.10017 2.57562 5.10017 10.7351 7.68119 8.46031 4.62109 5.10017 2.57567 3.65647 + 4.62109 8.16017 6.12363 4.62114 8.46026 9.60074 6.65759 4.62109 3.84188 5.10017 4.07845 + ] pdfxs + 145.62 383.4 m + /N23 8.96638 Tf + (Figure16:llubenchm) + [6.66306 2.94268 5.28302 5.87644 4.37907 8.46026 5.28303 5.28302 7.68251 2.94268 2.94268 + 5.87644 6.17627 4.86027 5.87642 4.44082 5.87644 8.81908 ] pdfxs + (a) show + (rk:timetoprocessonenodevsproble) + [4.37905 5.58424 7.8026 4.13846 2.94269 8.81908 8.40025 4.13846 8.82318 5.87644 4.37907 + 5.58286 4.74072 4.86027 4.2022 7.74204 5.28303 5.87644 8.4004 5.87644 5.58318 5.87644 + 8.46009 5.58424 7.74211 5.87644 4.37907 5.28301 5.87644 2.94267 4.86029 ] pdfxs + (m) show + 443.22 383.4 m + (sizes) + [4.2022 2.94267 4.74074 4.86029 4.2022 ] pdfxs + 53.82 364.2 m + /N17 8.96638 Tf + (physicalmemory\(e.g.,[15,18,6]\),orbecausethesystem) + [5.10016 4.86031 4.8562 3.65645 2.57565 4.08196 4.62111 5.99565 7.67578 4.07849 7.67578 + 4.62111 3.59993 8.39637 3.60275 4.0785 2.57564 4.62111 2.57565 9.59579 2.57565 4.62111 + 4.62111 6.05573 4.62111 4.62112 6.17557 4.62111 2.57565 3.60275 6.0558 4.62109 7.07993 + 5.34001 4.0785 4.08197 4.62109 5.10017 3.65642 7.67842 3.60273 5.10017 7.55865 3.65645 + 4.85619 3.65645 3.60273 4.0785 7.67576 ] pdfxs + 53.82 353.76 m + (doesnotprovide32-bitruntimelibraries\(e.g.) + [5.10016 4.86127 4.07849 6.1766 5.10016 4.62111 6.12258 5.10016 3.59993 4.38119 4.85621 + 2.57565 5.10016 6.65849 4.62111 4.62112 3.06372 5.10016 2.57564 6.12275 3.59993 5.10016 + 4.86031 3.60275 2.57565 7.67576 6.59866 2.57565 2.57564 5.10016 3.59993 4.62111 3.59993 + 2.57564 4.0785 6.17637 3.60273 4.0785 2.57567 4.62109 6.41565 ] pdfxs + (L) show + (inuxIA-6) + [2.57564 4.86018 5.10017 7.43604 3.30018 6.90289 3.06375 4.62109 ] pdfxs + (4) show + 286.74 353.76 m + (\).) + [3.60273 2.57567 ] pdfxs + 53.82 343.32 m + (Ourapproachallowsanaggregate64-bitaddressspaceand) + [7.13658 5.10016 6.65993 4.62111 5.10016 5.10016 3.59992 4.62111 4.62111 3.84197 8.16031 + 4.62111 2.57565 2.57565 4.38126 6.65758 6.5966 4.62111 8.16024 4.62111 4.62112 4.62111 + 3.59993 4.0785 4.62111 4.62111 3.60275 7.0785 4.62111 4.62112 3.06372 5.10017 2.57567 + 6.60273 4.62109 5.10017 5.10017 3.59993 4.0785 3.65642 6.65644 3.65645 5.10017 4.62109 + 4.08197 7.13849 4.62109 5.10017 5.10017 ] pdfxs + 53.82 332.82 m + (selectivecompressionofindividualdatastructures,whe) + [3.65644 4.07849 2.57565 4.07849 4.08196 3.60274 2.57565 4.61629 8.21841 4.08196 4.62111 + 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 2.57565 4.62111 9.24008 4.62111 6.95972 + 2.57565 5.10016 5.10015 2.57565 4.85621 2.57565 5.10016 5.10016 4.62111 6.7155 5.10017 + 4.62109 3.60273 8.76118 3.65645 3.60273 3.59993 5.10017 4.08195 3.60273 5.10017 3.59993 + 4.0785 3.65645 7.01565 6.65759 5.10017 4.07848 ] pdfxs + (r) show + 288.78 332.82 m + (e) show + 53.82 322.38 m + (eachdatastructureislimitedto4GBofmemoryinthe) + [4.07849 4.62111 3.8418 9.6603 5.10016 4.62111 3.60274 9.1811 3.65644 3.60275 3.59993 + 5.10016 4.08197 3.60275 5.10016 3.59993 8.69833 2.57565 8.15628 2.57565 2.57564 7.67578 + 2.57564 3.60275 4.0785 9.6603 3.60275 9.12102 4.62111 7.25576 11.1007 4.62109 7.37963 + 7.67579 4.0785 7.67576 4.62112 3.59993 9.41626 2.57567 9.66 3.60273 5.10017 4.0785 + ] pdfxs + 53.82 311.94 m + (staticcase.Inthedynamiccase,thereisnosuchinherent) + [3.65644 3.60274 4.62111 3.60274 2.57565 7.44195 4.08196 4.62111 3.65644 4.07849 7.85564 + 3.30019 8.58023 3.60275 5.10016 7.55865 5.10016 4.85621 5.10016 4.62111 7.67578 2.57565 + 7.56196 4.08197 4.62111 3.65645 4.0785 6.17557 3.60275 5.10016 4.07849 3.59993 7.55833 + 2.57567 7.07658 5.10017 8.1011 3.65645 5.10017 3.84196 8.58024 2.57567 5.10017 5.10017 + 4.0785 3.59993 4.07848 4.86018 3.60273 ] pdfxs + 53.82 301.44 m + (limitperdatastructure.) + [2.57565 2.57565 7.67578 2.57565 6.60273 5.34 4.07849 6.71993 5.10016 4.62111 3.60273 + 7.68111 3.65645 3.60275 3.59993 5.10016 4.08197 3.60275 5.10016 3.59993 4.07849 2.57565 + ] pdfxs + 62.7601 291 m + (Mostrecently,Adl-Tabatabaiet.al.describeatrivial) + [8.46031 4.62111 3.65644 7.74281 3.59993 4.07849 4.08196 4.0785 4.86016 3.60275 2.57565 + 4.07636 7.13549 6.90289 5.10016 2.57564 3.06374 5.8775 4.62111 5.10016 4.62112 3.60275 + 4.62111 5.10016 4.62111 6.7758 4.0785 3.60275 10.0758 4.62109 2.57567 10.0757 5.10017 + 4.0785 3.65642 4.08197 3.59993 2.57567 5.34001 8.33833 8.82102 3.60273 3.59993 2.57567 + 4.85619 2.57567 4.62109 2.57567 ] pdfxs + 53.82 280.5 m + (formofpointercompressiontocompile64-bitpointersin) + [2.81964 4.62111 3.59992 11.7558 4.62111 6.95971 5.34 4.62111 2.57565 4.86031 3.60275 + 4.0785 7.73984 4.08197 4.62111 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 2.57565 + 4.62111 9.18032 3.60275 8.76126 4.08197 4.62111 7.67576 5.10017 2.57567 2.57564 8.21866 + 4.62109 4.62109 3.06375 5.10017 2.57567 7.68288 5.34001 4.62109 2.57567 4.86033 3.60273 + 4.0785 3.59993 7.7965 2.57567 5.10017 ] pdfxs + 53.82 270.061 m + (Javaprogramstoa32-bitpointermodel[1].Theirapproach) + [4.73929 4.38103 4.31613 7.02103 5.10016 3.59993 4.62111 4.62111 3.59993 4.62111 7.67578 + 6.05644 3.60275 7.02103 7.02103 4.62111 4.62112 3.06372 5.10016 2.57564 6.00283 5.34 + 4.62111 2.57565 4.86031 3.60275 4.0785 6 7.67578 4.86095 5.10017 4.0785 5.03557 + 2.57567 4.62109 2.57567 6.41565 6.65759 5.10017 4.07848 2.57567 5.99985 4.62109 5.10017 + 5.10017 3.59993 4.62109 4.62112 3.84196 5.10017 ] pdfxs + 53.82 259.621 m + (isverysimple\(requiringnoprogramanalysisatall\),unil) + [2.57565 6.29652 4.61613 4.07849 3.59993 7.6162 3.65644 2.57565 7.67578 5.10015 2.57565 + 6.77858 3.60275 3.59993 4.0785 4.85621 5.10016 2.57564 3.59993 2.57565 5.10016 7.32103 + 5.10016 7.32103 5.10016 3.59993 4.62111 4.62112 3.59993 4.62111 10.3756 4.62109 5.10017 + 4.62109 2.57567 4.85621 3.65642 2.57567 6.29636 4.62109 6.30266 4.62109 2.57567 2.57567 + 3.60273 5.27581 5.10017 5.10017 2.57567 2.57567 ] pdfxs + (a) show + 286.26 259.621 m + (t-) + [3.60273 3.06372 ] pdfxs + 53.82 249.121 m + (erallycompressingpointerstobeo\013setsfromthebaseof) + [4.07849 3.59993 4.62111 2.57565 2.57565 8.87604 4.08196 4.62111 7.67578 5.10016 3.59992 + 4.0785 3.65645 3.65645 2.57565 5.10016 8.70126 5.34 4.62111 2.57565 4.86031 3.60275 + 4.0785 3.59993 7.73637 3.60275 8.64095 5.34 8.21842 4.62111 5.40425 3.65645 4.0785 + 3.60273 7.67626 2.81963 3.59993 4.62109 11.7558 3.60273 5.10017 8.15865 5.10017 4.62109 + 3.65645 8.15833 4.62109 2.81963 ] pdfxs + 53.82 238.681 m + (theJavamemoryimagelocatedina64-bitaddressspace.) + [3.60274 5.10016 7.79848 4.73929 4.38103 4.31613 8.34095 7.67578 4.07849 7.67578 4.62111 + 3.59993 8.57606 2.57565 7.67576 4.62111 4.62112 7.73834 2.57565 4.86095 4.08197 4.62111 + 3.60275 4.07849 8.88032 2.57565 8.82014 8.28119 4.62109 4.62109 3.06375 5.10017 2.57567 + 7.32272 4.62109 5.10017 5.10017 3.59993 4.0785 3.65642 7.37629 3.65645 5.10017 4.62109 + 4.08197 4.07848 2.57567 ] pdfxs + 53.82 228.241 m + (Todecompressthesepointers,theyaddthebaseoftheJava) + [5.87766 7.20111 5.10016 4.07849 4.08196 4.62111 7.67578 5.10016 3.59993 4.0785 3.65645 + 6.3566 3.60275 5.10016 4.07849 3.65646 6.71864 5.34 4.62111 2.57565 4.86031 3.60275 + 4.0785 3.59993 3.65645 5.27557 3.60275 5.10016 4.07849 7.4963 4.62111 5.10017 7.80009 + 3.60273 5.10017 6.71842 5.10017 4.62109 3.65645 6.71849 4.62109 5.45971 3.60273 5.10017 + 6.71842 4.73928 4.38103 4.31612 4.62109 ] pdfxs + 53.82 217.741 m + (memoryimagetocompressedvalue,allowingaJavaheap) + [7.67578 4.07849 7.67578 4.62111 3.59993 8.69636 2.57565 7.67578 4.62111 4.62112 7.97857 + 3.60275 8.46126 4.08197 4.62111 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 4.0785 + 9.00031 4.31613 4.62111 2.57565 5.10016 4.07849 6.65549 4.62109 2.57567 2.57567 4.38125 + 6.65759 2.57564 5.10017 8.40094 8.52101 4.73928 4.38103 4.31612 8.46125 5.10017 4.0785 + 4.62109 5.10017 ] pdfxs + 53.82 207.301 m + (sizeof2) + [3.65644 2.57565 4.08196 6.65857 4.62111 5.39955 4.62111 ] pdfxs + 85.4398 211.141 m + /N21 5.97748 Tf + (32) + [3.65923 3.65924 ] pdfxs + 95.88 207.301 m + /N17 8.96638 Tf + (bytes.Thisapproachprovidessubstantialperfor-) + [4.86031 4.85621 3.60275 4.0785 3.65645 6.47573 6.65758 5.10016 2.57565 6.23652 4.62111 + 5.10016 5.10016 3.59993 4.62112 4.62111 3.84197 7.74 5.10016 3.59993 4.38119 4.85621 + 2.57565 5.10015 4.0785 6.29636 3.65645 5.10017 5.10017 3.65642 3.60273 4.62109 4.86018 + 3.60273 2.57567 4.62109 5.09566 5.34001 4.0785 3.59993 2.81963 4.62109 3.59993 3.06375 + ] pdfxs + 53.8198 196.862 m + (manceimprovements,butprovideslittlebene\ftoverhavin) + [7.67578 4.62111 5.10016 4.08196 6.71849 2.57565 7.67578 5.10016 3.59993 4.38096 4.61614 + 4.0785 7.67576 4.0785 4.86016 3.60275 3.65645 5.15557 5.10016 5.10016 6.24258 5.10016 + 3.59993 4.38119 4.85621 2.57565 5.10016 4.07849 6.23661 2.57565 2.57564 3.60275 3.60276 + 2.57564 6.59835 5.34001 4.0785 5.10017 4.0785 5.10017 6.30287 4.38118 4.61612 4.0785 + 6.18008 5.10017 4.38118 4.85621 2.57564 5.10017 ] pdfxs + (g) show + 53.8198 186.362 m + (theJVMproduce32-bitcodedirectly.) + [3.60274 5.10016 7.13833 4.73929 6.90289 11.5205 5.10016 3.59993 4.86127 5.10016 5.10016 + 4.08196 7.25835 4.62111 4.62112 3.06372 5.10016 2.57564 6.6626 4.08197 4.86095 5.10016 + 7.1985 5.10016 2.57565 3.59992 4.0785 4.08197 3.60275 2.57564 4.07621 2.57567 ] pdfxs + 62.76 175.921 m + (AnanianandRinard[2]describeacollectionofdata) + [6.9029 5.10016 4.62111 5.10015 2.57565 4.62111 10.5602 4.62111 5.10016 10.5001 6.77573 + 2.57564 5.10016 4.62111 3.59993 10.56 2.57565 4.62111 7.91557 5.10016 4.0785 3.65645 + 4.08196 3.59993 2.57565 5.34 9.53833 10.021 4.08197 4.62109 2.57567 2.57567 4.07848 + 4.08197 3.60273 2.57567 4.62109 10.5001 4.62109 8.21947 5.10017 4.62109 3.60273 4.62109 + ] pdfxs + 53.8198 165.482 m + (sizereductiontechniquesforJavaprograms,includingtec) + [3.65644 2.57565 4.08196 6.77849 3.59993 4.07849 5.10016 5.10016 4.08196 3.60274 2.57565 + 4.62111 7.86008 3.60275 4.0785 3.84188 5.10016 5.10016 2.57564 4.85622 5.10016 4.07849 + 6.4163 2.81964 4.62112 6.29977 4.73929 4.38103 4.31613 7.32103 5.10016 3.59993 4.62111 + 4.62109 3.59993 4.62112 7.67576 3.65645 5.27574 2.57567 5.10017 4.08197 2.57564 5.10017 + 5.10017 2.57567 5.10017 7.3811 3.60273 4.0785 4.09764 ] pdfxs + 284.699 165.482 m + (h-) + [5.10017 3.06375 ] pdfxs + 53.8199 154.982 m + (niquesforarithmetic\feldswithalimitedvaluerange\(ide) + [5.10016 2.57565 4.8562 5.10016 4.07849 6.29636 2.81964 4.62111 6.17985 4.62111 3.59992 + 2.57565 3.60275 5.10016 7.67576 4.0785 3.60275 2.57564 6.72212 5.10016 4.0785 2.57564 + 5.10016 6.29661 6.65758 2.57565 3.60275 7.68007 7.26126 2.57565 2.57564 7.67578 2.57564 + 3.60273 4.0785 7.68024 4.31612 4.62109 2.57567 5.10017 6.71842 3.59993 4.62109 5.10017 + 4.62109 6.71866 3.60273 2.57567 5.10017 4.0785 ] pdfxs + (n) show + 289.8 154.982 m + (-) show + 53.8199 144.542 m + (ti\fedviaabitwidthanalysis\),unusedandconstant\felds,) + [3.60274 2.57565 5.10016 4.07849 8.88 4.8562 2.57565 8.34118 8.34095 5.10016 2.57565 + 3.36259 6.65758 2.57565 5.10016 3.60275 8.82031 4.62111 5.10016 4.62112 2.57564 4.85621 + 3.65646 2.57564 3.65645 3.60275 6.3555 5.10016 4.86031 5.10016 3.65645 4.0785 8.94022 + 4.62109 5.10017 8.88017 4.08197 4.62109 5.10017 3.65645 3.60273 4.62109 4.86001 7.32265 + 5.10017 4.0785 2.57567 5.10017 3.65642 2.57567 ] pdfxs + 53.8199 134.102 m + (\feldsmodi\fedonlyonceduringinitialization,\feldsthat) + [5.10016 4.07849 2.57565 5.10016 6.11653 7.67578 4.86096 5.10016 2.57565 5.10016 4.07849 + 7.62024 4.62111 5.10016 2.57565 7.31613 4.62111 5.10016 4.08197 6.59849 5.10016 5.10016 + 3.59993 2.57564 5.10016 7.08127 2.57565 5.10016 2.57564 3.60275 2.57565 4.62111 2.57564 + 2.57567 4.08197 4.62109 3.60273 2.57567 4.62109 5.10017 5.03582 5.10017 4.0785 2.57567 + 5.10017 6.11651 3.60273 5.10017 4.62109 6.06282 ] pdfxs + (a) show + 285.24 134.102 m + (re) + [3.59993 4.0785 ] pdfxs + 53.8199 123.602 m + (almostalwaysasingledefaultvalue,classpointersizere) + [4.62111 2.57565 7.67578 4.62111 3.65644 5.82281 4.62111 2.57565 6.4175 4.38119 4.85621 + 5.81653 6.90111 3.65645 2.57565 5.10016 4.62111 2.57565 6.35849 5.10016 4.0785 2.81964 + 4.62111 5.10016 2.57565 5.94259 4.31613 4.62111 2.57565 5.10016 4.07849 5.03557 4.08197 + 2.57567 4.62109 3.65642 5.87637 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 5.93984 + 3.65645 2.57564 4.08197 6.35858 3.59993 4.0785 ] pdfxs + (d) show + 280.56 123.602 m + (uc-) + [5.10017 4.08197 3.06372 ] pdfxs + 53.8199 113.162 m + (tion,andbytepackingforobject\felds.Noneofthesetech-) + [3.60274 2.57565 4.62111 5.10016 5.4558 4.62111 5.10016 8.04031 4.86031 4.85621 3.60275 + 7.01858 5.10016 4.62111 3.84213 4.85621 2.57565 5.10016 7.50095 2.81964 4.62112 6.54 + 4.62111 5.64032 2.81964 4.0785 4.08197 6.48289 5.10016 4.0785 2.57564 5.10017 3.65642 + 6.65574 6.90289 4.62109 5.10017 7.01835 4.62109 5.69956 3.60273 5.10017 4.0785 3.65642 + 7.01866 3.60273 4.0785 3.84188 5.10017 3.06375 ] pdfxs + 53.8199 102.722 m + (niquesaddressesthesizeofheappointers\(exceptthespeci) + [5.10016 2.57565 4.8562 5.10016 4.07849 5.99637 4.62111 5.10016 5.10016 3.59992 4.0785 + 3.65645 3.65645 4.0785 5.99645 3.60275 5.10016 6.41841 3.65645 2.57565 4.08196 6.41834 + 4.62111 5.15973 5.10016 4.0785 4.62111 7.50015 5.34 4.62111 2.57565 4.86031 3.60273 + 4.0785 3.59993 5.99651 3.60273 4.0785 4.85619 4.08197 4.0785 5.10017 5.94258 3.60273 + 5.10017 6.47857 3.65645 5.34016 4.0785 4.08197 2.55545 ] pdfxs + 285.72 102.722 m + (al) + [4.62112 2.57564 ] pdfxs + 53.8199 92.2221 m + (caseofclasspointers\),andallthetechniquesareorthogo) + [4.08196 4.62111 3.65644 6.65842 4.62111 5.39955 4.08196 2.57565 4.62111 3.65644 6.17637 + 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 3.59993 3.65645 3.60275 5.2158 4.62111 + 5.10016 7.74031 4.62111 2.57565 5.09565 3.60275 5.10016 6.71842 3.60275 4.0785 3.84188 + 5.10017 5.10017 2.57567 4.85619 5.10017 4.0785 6.29636 4.62109 3.59993 6.71834 4.62109 + 3.59993 3.60273 5.10017 4.62109 4.62112 4.62109 ] pdfxs + (n) show + 285.78 92.2221 m + (al) + [4.62109 2.57567 ] pdfxs + 53.8199 81.7823 m + (to,andcouldbecombinedwith,ourpointercompression) + [3.60274 4.62111 6.8358 4.62111 5.10016 9.18015 4.08196 4.62111 5.10016 2.57564 9.24008 + 5.34 8.21842 4.08197 4.62111 7.43562 5.10016 2.57565 5.10015 4.0785 9.17999 6.65758 + 2.57565 3.60275 5.10016 6.89549 4.62111 5.10016 7.67993 5.34001 4.62109 2.57567 4.86033 + 3.60273 4.0785 7.68007 4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 + 2.57564 4.62112 5.10017 ] pdfxs + 316.8 364.202 m + (approach.) + [4.62109 5.10017 5.10017 3.59993 4.62109 4.62112 3.84196 5.10017 2.57567 ] pdfxs + 325.8 353.763 m + (ZhangandGuptacompresspairsconsistingofa32-bit) + [5.63934 5.10017 4.62112 5.10017 8.76101 4.62109 5.10017 9.36024 7.25576 5.10017 5.10017 + 3.60271 8.76103 4.08197 4.62109 7.67525 5.10017 3.59993 4.0785 3.65647 7.79636 5.10017 + 4.62114 2.57562 3.59993 7.85661 4.08192 4.62114 5.10017 3.65647 2.57562 3.65647 3.60276 + 2.57562 5.10017 8.70122 4.62114 6.95968 8.82104 4.62114 4.62109 3.06372 5.10017 2.57562 + 3.60276 ] pdfxs + 316.8 343.322 m + (integerand32-bitpointerintotwo15-bitvalueswhichare) + [2.57567 4.86001 3.60273 4.0785 4.62109 4.0785 7.08008 4.62109 5.10017 8.58017 4.62109 + 4.62109 3.06375 5.10017 2.57567 7.02272 5.34001 4.62109 2.57567 4.86033 3.60276 4.07845 + 7.0801 2.57562 4.86003 3.60276 8.04096 3.36292 6.4175 7.9812 4.62114 4.62109 3.06372 + 5.10017 2.57562 7.02278 4.31615 4.62114 2.57562 5.10017 4.07845 7.1364 6.65759 5.10017 + 2.57562 3.84203 8.58024 4.62114 3.59993 4.07845 ] pdfxs + 316.8 332.822 m + (packedintoasingle32-bit\feld[19].Theycompressa) + [5.10017 4.62109 3.84213 4.61612 4.0785 10.1401 2.57567 4.86001 3.60273 9.54094 9.60109 + 3.65645 2.57564 5.10017 4.62112 2.57564 9.0585 4.62114 4.62109 3.06372 5.10017 2.57562 + 8.52277 5.10017 4.07845 2.57567 10.1401 2.57562 4.62114 4.62114 2.57562 12.3558 6.65759 + 5.10017 4.07845 9.83631 4.08192 4.62114 7.67525 5.10017 3.59993 4.0785 3.65647 8.63659 + 4.62114 ] pdfxs + 316.8 322.383 m + (pointerbyreplacingitwithavaluerelativetoitsownad-) + [5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 7.08008 4.86033 8.3962 3.59993 4.0785 + 5.10017 2.57567 4.62109 4.08197 2.57564 5.10017 8.10095 2.57567 7.02272 6.65759 2.57562 + 3.60276 8.5801 8.10112 4.31615 4.62114 2.57562 5.10017 7.55862 3.59993 4.07845 2.57567 + 4.62109 3.60276 2.57567 4.61629 7.55862 3.60276 8.04096 2.57562 3.60276 7.07664 4.3812 + 6.65759 8.58 4.62114 5.10017 3.06367 ] pdfxs + 316.8 311.943 m + (dress,whichise\013ectiveforrecursivedatastructurespack) + [5.10017 3.59993 4.0785 3.65642 3.65645 5.45582 6.65759 5.10017 2.57564 3.84205 7.92009 + 2.57567 6.41643 4.0785 5.40425 4.0785 4.08195 3.60273 2.57567 4.61605 6.89847 2.81965 + 4.62109 6.42009 3.59993 4.07845 4.08197 5.10017 3.59993 3.65647 2.57562 4.61615 6.89847 + 5.10017 4.62114 3.60276 7.44125 3.65647 3.60276 3.59993 5.10017 4.08192 3.60276 5.10017 + 3.59993 4.0785 6.47644 5.10017 4.62114 3.84208 4.85985 ] pdfxs + 546.72 311.943 m + (ed) + [4.07845 5.10017 ] pdfxs + 316.8 301.443 m + (closelyinmemory.Iftheo\013setexceeds15-bits,thepair) + [4.08197 2.57567 4.62109 3.65642 4.0785 2.57567 9.05635 2.57567 9.36 7.67579 4.0785 + 7.67576 4.62112 3.59993 4.07604 10.2558 3.30018 7.0797 3.60276 5.10017 8.33831 4.62114 + 5.40425 3.65642 4.0785 7.8029 4.07845 4.85623 4.08197 4.07845 4.07845 5.10017 8.0364 + 4.62114 4.62109 3.06372 5.10017 2.57562 3.60276 3.65647 7.0158 3.60276 5.10017 8.33831 + 5.10017 4.62114 2.57562 3.59993 ] pdfxs + 316.8 291.003 m + (isreplacedwithapointertoanuncompressedpaironthe) + [2.57567 7.25627 3.59993 4.0785 5.10017 2.57567 4.62109 4.08197 4.07848 8.76018 6.65759 + 2.57564 3.60273 8.70001 8.22101 5.34001 4.62109 2.57567 4.86033 3.60276 4.07845 7.20002 + 3.60276 8.22104 4.62114 8.70007 5.10017 5.10017 4.08192 4.62114 7.67525 5.10017 3.59993 + 4.0785 3.65647 3.65642 4.0785 8.82023 5.10017 4.62114 2.57562 7.19992 4.62114 8.70007 + 3.60276 5.10017 4.07845 ] pdfxs + 316.8 280.503 m + (side.Theyshowasubstantialreductioninmemorycon-) + [3.65645 2.57564 5.10017 4.0785 10.1358 6.65759 5.10017 4.07848 9.11636 3.65645 5.10017 + 4.38093 10.7976 8.88117 3.65645 5.10017 5.10017 3.65647 3.60276 4.62109 4.86018 3.60276 + 2.57562 4.62114 6.65579 3.59993 4.07845 5.10017 5.10017 4.08197 3.60276 2.57562 4.62114 + 9.42023 2.57562 9.30026 7.67525 4.0785 7.67525 4.62114 3.59993 9.11629 4.08192 4.62114 + 5.10017 3.06372 ] pdfxs + 316.8 270.063 m + (sumption,cachemisses,and\(withcustomhardwaresup-) + [3.65645 5.10017 7.67576 5.10017 3.60273 2.57567 4.62109 5.10017 7.07559 4.08197 4.62109 + 3.84181 5.10017 8.3985 7.67579 2.57567 3.65642 3.65645 4.0785 3.65647 7.01546 4.62114 + 5.10017 9.41999 3.60276 6.65759 2.57562 3.60276 9.30002 4.08192 5.10017 3.65647 3.60276 + 4.62114 11.9353 5.10017 4.62114 3.59993 5.10017 6.4174 4.62114 3.59993 8.3386 3.65647 + 5.10017 5.10017 3.06372 ] pdfxs + 316.8 259.623 m + (port\)areasonableperformanceincreaseonasubsetofthe) + [5.34001 4.62109 3.59993 3.60273 6.96281 7.98117 3.59993 4.0785 4.62109 3.65645 4.62109 + 5.10017 4.62109 5.10017 2.57567 7.49857 5.34001 4.0785 3.59993 2.81965 4.62114 3.59993 + 7.67525 4.62114 5.10017 4.08192 7.55862 2.57562 5.10017 4.08197 3.59993 4.07845 4.62114 + 3.65647 7.43861 4.62114 8.51999 7.9812 3.65647 5.10017 5.10017 3.65647 4.07845 6.96291 + 4.62114 6.17961 3.60276 5.10017 4.07845 ] pdfxs + 316.8 249.123 m + (Oldenbenchmarks.Unlikeourwork,theirtransformation) + [7.13659 2.57567 5.10017 4.0785 8.88024 5.34001 4.0785 5.10017 3.84188 5.10017 7.67579 + 4.62109 3.59993 4.85621 3.65642 8.57565 6.90289 5.10017 2.57562 2.57567 4.61629 7.79847 + 4.62114 5.10017 7.25998 6.4175 4.62114 3.59993 4.85619 6.41565 3.60276 5.10017 4.07845 + 2.57567 7.31999 3.60276 3.59993 4.62114 5.10017 3.65642 2.81965 4.62114 3.59993 7.67525 + 4.62114 3.60276 2.57562 4.62114 5.10012 ] pdfxs + 316.8 238.684 m + (iscompletelymanualandonlyoperatesonpairsofvalues) + [2.57567 7.37658 4.08197 4.62109 7.67579 5.10017 2.57567 4.07848 3.60273 4.0785 2.57567 + 8.57627 7.67579 4.62109 4.86033 5.10017 4.62109 6.29558 4.62114 5.10017 8.81998 4.62114 + 5.10017 2.57562 8.5763 4.62114 5.34031 4.07845 3.59993 4.62114 3.60276 4.07845 7.37663 + 4.62114 8.88015 5.10017 4.62114 2.57562 3.59993 7.31638 4.62114 6.53976 4.31615 4.62114 + 2.57562 5.10017 4.07845 3.65647 ] pdfxs + 316.8 228.244 m + (\(butitcancompressintegersaswellaspointers,andcan) + [3.60273 5.10017 5.10017 7.44257 2.57567 7.44265 4.08197 4.62109 8.94001 4.08197 4.62109 + 7.67579 5.10017 3.59993 4.07848 3.65645 7.49636 2.57567 4.85998 3.60276 4.07845 4.62114 + 4.07845 3.59993 7.43639 4.62114 7.43659 6.4175 4.07845 2.57567 6.4157 4.62114 7.43659 + 5.34001 4.62114 2.57562 4.86033 3.60276 4.07845 3.59993 3.65647 6.59548 4.62114 5.10017 + 8.9403 4.08192 4.62114 5.10017 ] pdfxs + 316.8 217.744 m + (selectivelycompresssome\feldsandnotothers\).Also,it) + [3.65645 4.07848 2.57567 4.0785 4.08197 3.60273 2.57567 4.61627 4.0785 2.57567 8.93618 + 4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 7.73659 3.65645 4.62109 7.67579 + 8.09862 5.10017 4.07845 2.57567 5.10017 7.73645 4.62114 5.10017 9.2403 5.10017 4.62114 + 7.68273 4.62114 3.60276 5.10017 4.07845 3.59993 3.65647 3.60276 9.65554 6.90289 2.57562 + 3.65647 4.62114 6.83562 2.57562 3.60276 ] pdfxs + 316.8 207.304 m + (requiresspecializedhardwaretoimproveperformance.) + [3.59993 4.0785 4.85619 5.10017 2.57567 3.59993 4.0785 6.77651 3.65645 5.34016 4.0785 + 4.08197 2.57564 4.62112 2.57564 2.57567 4.08197 4.0785 8.16 5.10017 4.62109 3.59993 + 5.10017 6.4174 4.62114 3.59993 7.19837 3.60276 7.68119 2.57562 7.67579 5.10017 3.59993 + 4.38096 4.61615 7.13832 5.34001 4.07845 3.59993 2.81965 4.62114 3.59993 7.67525 4.62114 + 5.10017 4.08192 4.07845 2.57567 ] pdfxs + 325.8 196.864 m + (TakagiandHirakidescribeacombinedhardware/software) + [5.87766 4.62109 4.31605 4.62109 4.62109 4.73575 4.62109 5.10017 7.38017 6.90289 2.57567 + 3.59993 4.62109 4.85621 4.73565 5.10017 4.0785 3.65642 4.08197 3.59993 2.57562 5.34001 + 6.4184 6.84096 4.08192 4.62114 7.43511 5.10017 2.57562 5.10017 4.0785 7.32023 5.10017 + 4.62114 3.59993 5.10017 6.4174 4.62114 3.59993 4.07845 4.62114 3.65642 4.62114 2.81965 + 3.36282 6.4175 4.62114 3.59993 4.07845 ] pdfxs + 316.8 186.364 m + (techniquetheydub\\FieldArrayCompressionTechnique") + [3.60273 4.0785 3.84188 5.10017 5.10017 2.57567 4.85619 5.10017 7.91866 3.60273 5.10017 + 4.0785 8.69627 5.10017 5.10017 8.94001 4.62109 6.00165 2.57562 4.07845 2.57567 8.88 + 6.90289 3.59993 3.59993 4.3812 8.63606 6.65759 4.62109 7.67579 5.10017 3.59993 4.07845 + 3.65647 3.65647 2.57562 4.62114 8.88 5.87766 4.07845 3.84188 5.10017 5.10017 2.57562 + 4.85623 5.10017 4.0785 4.62109 ] pdfxs + 316.8 175.924 m + (\(FACT\)[16].FACTusesmanual\\InstanceInterleav-) + [3.60273 4.9817 6.66305 6.65759 6.65756 9.54289 2.57567 4.62109 4.62109 2.57567 15.2354 + 4.9817 6.66305 6.65759 12.6576 5.10017 3.65647 4.07845 9.59631 7.67525 4.62114 4.86033 + 5.10017 4.62114 8.51545 4.62114 3.30018 5.10017 3.65642 3.60276 4.62114 5.10017 4.08192 + 10.0785 3.30018 4.86033 3.60276 4.07845 3.59993 2.57567 4.07845 4.38106 4.85623 3.06372 + ] pdfxs + 316.8 165.485 m + (ing"[17]tospliteachstructurede\fnition,packingthecom-) + [2.57567 5.10017 4.62109 7.32101 2.57567 4.62109 4.62109 5.27567 3.60273 7.32101 3.65645 + 5.10017 2.57564 2.57567 6.30266 4.0785 4.62109 3.84181 7.86032 3.65645 3.60276 3.59993 + 5.10017 4.08192 3.60276 5.10017 3.59993 6.83856 5.10017 4.07845 5.10017 5.10017 2.57567 + 3.60276 2.57562 4.62114 5.10017 5.33562 5.10017 4.62114 3.84208 4.85623 2.57562 5.10017 + 7.38105 3.60276 5.10017 6.83831 4.08192 4.62114 7.67525 3.07549 ] pdfxs + 316.8 154.985 m + (pressed\feldsofmultipleinstancesofastructuretogethe) + [5.10017 3.59993 4.0785 3.65642 3.65645 4.0785 7.68032 5.10017 4.0785 2.57567 5.10017 + 6.23642 4.62109 5.33979 7.43563 5.10017 2.57567 3.60273 2.57567 5.10017 2.57562 6.59832 + 2.57562 5.10017 3.65647 3.60276 4.62114 5.10017 4.08192 4.0785 6.17644 4.62114 5.33976 + 7.14096 3.65647 3.60276 3.59993 5.10017 4.08192 3.60276 5.10017 3.59993 6.65848 3.60276 + 4.62114 4.62109 4.0785 3.60276 5.10017 4.07845 ] pdfxs + (r) show + 548.22 154.985 m + (in) + [2.57562 5.10017 ] pdfxs + 316.8 144.544 m + (memory.Tohandledatathatcannotbecompressed,they) + [7.67579 4.0785 7.67576 4.62112 3.59993 4.07604 8.09566 5.87766 8.1011 5.10017 4.62109 + 5.10017 5.10017 2.57567 7.67857 5.10017 4.62114 3.60276 8.10102 3.60276 5.10017 4.62114 + 7.14289 4.08192 4.62114 5.10017 5.10017 4.62114 7.14289 5.34001 7.67855 4.08192 4.62114 + 7.67525 5.10017 3.59993 4.0785 3.65647 3.65642 4.0785 5.10017 6.23562 3.60276 5.10017 + 4.07845 4.85623 ] pdfxs + 316.8 134.105 m + (alwaysallocateenoughspaceforboththecompressedand) + [4.62109 2.57567 6.4175 4.38118 4.85621 7.13642 4.62109 2.57567 2.57567 4.86094 4.08197 + 4.62109 3.60273 7.55865 4.0785 5.10017 4.62109 5.10017 4.62109 8.70007 3.65647 5.10017 + 4.62109 4.08197 7.6783 2.81965 4.62109 7.14001 5.34001 4.62114 3.60276 8.6403 3.60276 + 5.10017 7.67855 4.08192 4.62114 7.67525 5.10017 3.59993 4.0785 3.65647 3.65642 4.0785 + 8.70031 4.62114 5.10017 5.10017 ] pdfxs + 316.8 123.605 m + (uncompresseddata.Thisusuallyimproveslocalitythough) + [5.10017 5.10017 4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 4.07848 + 8.70034 5.10017 4.62109 3.60273 4.62109 7.97559 6.65759 5.10017 2.57562 7.13654 5.10017 + 3.65647 5.10017 4.62109 2.57567 2.57562 8.3363 2.57562 7.67579 5.10017 3.59993 4.38096 + 4.61615 4.07845 7.1364 2.57562 4.86099 4.08192 4.62114 2.57562 2.57567 3.36267 8.2763 + 3.60276 5.10017 4.62114 5.10017 4.62109 5.10017 ] pdfxs + 316.8 113.165 m + (itdoesnotreducememoryconsumption.Comparedwith) + [2.57567 7.5028 5.10017 4.86126 4.0785 7.55627 5.10017 4.62109 7.50266 3.59993 4.0785 + 5.10017 5.10017 4.08197 8.09864 7.67579 4.0785 7.67525 4.62114 3.59993 8.75613 4.08192 + 4.62114 5.10017 3.65647 5.10017 7.67525 5.10017 3.60276 2.57567 4.62109 5.10017 9.17556 + 6.65759 4.62109 7.67579 5.10017 4.62109 3.59993 4.0785 9.06008 6.65759 2.57562 3.60276 + 5.10017 ] pdfxs + 316.8 102.725 m + (ourwork,FACThashighermemoryconsumption,requires) + [4.62109 5.10017 6.84009 6.4175 4.62109 3.59993 4.85621 5.69573 4.9817 6.66305 6.65759 + 9.89772 5.10017 4.62109 6.77644 5.10017 2.57562 4.62114 5.10017 4.07845 6.83987 7.67525 + 4.0785 7.67525 4.62114 3.59993 8.03621 4.08192 4.62114 5.10017 3.65647 5.10017 7.67525 + 5.10017 3.60276 2.57567 4.62109 5.10017 5.8158 3.59993 4.07845 4.85623 5.10017 2.57567 + 3.59993 4.07845 3.65647 ] pdfxs + 316.8 92.2251 m + (manualtransformationoftheprogram,andrequiresexotic) + [7.67579 4.62109 4.86033 5.10017 4.62109 5.87566 3.60273 3.59993 4.62109 5.10017 3.65645 + 2.81963 4.62109 3.59993 7.67579 4.62109 3.60273 2.57567 4.62109 8.28017 4.62114 6.11945 + 3.60276 5.10017 7.37854 5.10017 3.59993 4.62114 4.62109 3.59993 4.62114 7.67525 5.87556 + 4.62114 5.10017 8.40007 3.59993 4.07845 4.85623 5.10017 2.57567 3.59993 4.07845 6.95661 + 4.07845 4.85623 4.62114 3.60276 2.57562 4.08197 ] pdfxs + 316.8 81.7853 m + (single-purposehardwaresupport.) + [3.65645 2.57564 5.10017 4.62112 2.57564 4.0785 3.06375 5.10017 5.10017 3.59993 5.34009 + 4.62109 3.65645 7.19857 5.10017 4.62109 3.59993 5.10017 6.41743 4.62109 3.59993 7.19837 + 3.65647 5.10017 5.10017 5.34016 4.62114 3.59993 3.60276 2.57562 ] pdfxs + Q + Q + PDFVars/TermAll get exec end end + userdict /pgsave get restore + showpage + %%PageTrailer + %%EndPage + %%Page: 12 12 + %%BeginPageSetup + userdict /pgsave save put + PDFVars begin PDF begin PDFVars/InitAll get exec + 0 0 612 792 true PDF begin PDFVars begin AS end end + userdict /pdf_svglb currentglobal put true setglobal + %%BeginResource: font XXAING+CMTI8 + ct_CffDict begin + %!FontType1 + 14 dict begin + /FontInfo 13 dict dup begin + /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) def + /FullName (CMTI8) def + /FamilyName (Computer Modern) def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -100 def + /UnderlineThickness 50 def + end def + /FontName /XXAING+CMTI8 def + /Encoding 256 array + 0 1 255 {1 index exch /.notdef put} for + dup 0 /.notdef put + def + /PaintType 0 def + /FontType 1 def + /FontMatrix [0.001 0 0 0.001 0 0 ] def + /FontBBox { -25 -250 1190 750 } def + /StrokeWidth 0 def + currentdict end + currentfile eexec A0B00ED5187D9C0F1ECDF51878C3AA5CAA3ECB48FA43E4 + 4BE895991CB9C373C80EADF956F3CFF9953ED829311EA5C29ADABDA9B531D51E + 0E505FCDAE7E6EE841FB8BA6ABD575F8F932F2DBA26DD9F78D8861CC40A4D539 + 7F76C11ECF3859C3C67E4E5D79B4906B3752C9691C4D80E80213673F95E2F722 + FC51692F2F1F81A1F6E1A1D617FCE9082D4E318B4DA60F15B2E1B8DD32E0F349 + 9CEA3AFBC4E8E1119F7FEBD3B8F92334894117D4707B96983316A1DB4848F3C9 + CA81A2F694BAE5CA09BA1CAB333D6B093973982429192ECCE63D32B8EC402336 + A7AAFABA09DBF69774A4E36370BA61A70ABF8FCF12B284DD730C29B26995BBC7 + 5FF1352E759C7EAC1EB3A9B2AF1C7CED95BFEDC662B1D464DB54F963B5702B88 + 697F1869AA09E7C4654B2327BB0B2991F7A292A29B050E43902F232435DA3317 + 23CAEA29163C6F067492C578A866B26E67C84EC12094A3AF28ABE4350FFDF4D3 + 946B221C1DE36056472DC895C120B6E3F8A027033A8B6F0235E728B4E447BE4D + 282C2CA9ECECDAF52A43A93ECCE49C6662321D70151B65029FB91ED669EB0879 + B874EB93C072A864D1581683991C8416A1598B458217AD308C1C2C838EC3F489 + 54DD69A5B1D40A6BA0480D6D82000802DA7548FC6EABA8CF1797686839CA3B10 + A8B0E067254DA0B074EC9EB2F5E5D8AF511BE4AF7BBE60114FE4C8624884103F + 597AE1555D6628FD717950CDAA2CE646664E3393A6D16BF3055D16934CDBCC1D + 9CA6FD58ABCC5E0D774CC20D5183DF9F90536334A55C043515F9FE9CA4FB092A + 589B9FA0A9FA0A3091EDE8B1FA3F51498BADD5B881B4655C217B7DEFE352B4C7 + 2C468565170CD10F54FF92BEA980D139060979DDB50F686E108CCAFD5882DF53 + F3CA6A230DC7FF20236539678B0D252C661C185F7C85D8C28E7DFDFB549DA09A + 6C13950EA238E09369BDCD2785A8500526D2F54E6C12C3B0A16898398A1C1432 + 543FD31FBEB28A1ACD33F8B2A0C5B966D44A38E445F5F2B573724269A78F0B16 + 39D71B7E7D1626A6FE14E55C7E1388FDB45FF79AD3C4F5A0D6B6B2209B77166A + C40649E98009C4FA5E284044961EF22D281360F56B8D27C500DEF55BA8123FB6 + C153C2DEA7E428A452812D68610229156C1EB8C97FBF42F62B296325A1B6E93C + DF5A979BA362DE75C0E67D2632CDD45A90CE0BA15ED31D6498E484B3EB89EFE6 + C2C6E2A1BBC5728078394703BDDC598699A43094DABD1934E8F6ACA0C3AF9813 + 2570951103F241E18B4D740BBC85EE972C1BBB471A5B791E16304FCC69DD609B + 31FF5ABE09E836D682E6B43EA6A574A38CBFD89FA07348E1310FB2686C787A65 + B796F463A2C44C9A5072F9F97CE52C262B76FC60334B3BD401F7AE3979CA0EF9 + B6B0DB709405041B10A058885516D630D5240CC49C6DE133A7A330026EB55CFD + 8D686103C4A7FBC32D90B2747EEBE4F6DDFBBC8A29D2C093C1D4F1992485F2B7 + 4AD51185D4249CA0C4F78A840579FCCAFD01B3C0CCF30A82AD283CFFA9D9F6F4 + 9C44632EBF4CE35980CC2AF000CAFA69A232CF2D3934291634977F94A33F41F8 + 484B0EAAEE3AD73FC42ACB04BDC9A2618FD42D92FFD2354DAE6D363AC59A3D38 + 9CD60E3EDD4DF69977CFAF46BC207A0E8B91368631104FBF531153E56985FE00 + 86EC0744DB13ECC3C6C72AD7EAAE1699A1DE5532A57DA93654A0A83628FFFC2D + 2485DA4BF7FF6529217775180958059A49387969D3DB5C2E77B03E43A392D77B + 369DB60F99E1D37D83B7586D345A90BF97F5D1B4DAA3CA8335C4744AF9816C2C + 2626D3DA9374DC22EE9C38F328C27597DF5D6CCF54A1838F56D5AAD0BDDE0051 + DA516DD4085A58D4059A741A51CCC173D03DC1FE17419F67242963A8867F6D7A + C97EB32A9450FD7FD3D86F5686C85DEFD13E59DC364B1E934ECE9444A00224A2 + 6153AD736FD9DC8DA599C687BEED5FE2D456F271FA77A26AA79B248EA87129CC + DAC75BD9A090E17D53B8BD2266B9F130C75BFAB5591858E613A43549646AE724 + 0D72D40BC2DB91F783102D08BCCDD088694DB756E015898491CDF8F177F330F2 + 8BEDDB4C4B38CA004CAC79C481D571F6F3DA67ABF197DC50C2C7CA037CD2F682 + 66EE506E62B763A4EA48C50E80828C73270C0A43EED223C3CE66D1E6604B9A05 + 54AAE11BC819E0CBEE9A9C975164343F03F75A1686C14B89F39EC87E8DA64A8A + 0CE5F811818B10FD728CC114998B6B56CB1227D127AA10E46CD3DBEE6D22E690 + 328F06F2051E3230B0ABD7F8F1EDD1E27D605556A8B8BD518467E85DE845AEC3 + CD890CB1DC1B70818C4CF76D86FB65506BD6401BCF7923FAEEC3691F3FCB3D2F + B0A2FAD38741AD532F02C18EEC5716007693373454DADBC314C1849E449BAE3F + 40A71F3E624FD3C818E486CFDBF22C7BD4CB3ED1413035E17E5E2940798EE85C + 61640C1E2BC6CBE963C90C53E719D18A870C1F02ECC51C7A77AF06FA74BBE3DD + 09330C03A8E1999238A37B5795B519AF5965128E61EEAD10B9649864A9FC93B9 + 9A32525D18970DFDEA844965AAFC7354D840AD19B245D8AD546C1B04F1495A07 + 00D14332CE3AC1A2468F146AC58C371DF03BBB9FD2CC39F2FC691BD2BD318A3D + 856949DF58EC67620C1D6287481EC48C3D1674857F45C8AF342D2A19E6B0B38F + C2BC80529F85DA93CC26CE37F7668DF9C453FA9A6A06D63BFC0A07DC1179CCFD + 4EC41AE358226BBC89DB75A7D045B9BF022E4B295CFCB1B48A642B1AF5720357 + C1E67C1FC76886F766CBE280121D6074BAFA9EAF5530F3E9B93882EA730A4697 + 3A95531A14CB68CDCBB81422C3ED0A50C443CBF65D488F4EABF589147E25D973 + 2E09FA2FD5C05D4E6B08447B9DFBF02E98535A98C031AE8C8433B15D5B407FB3 + 4296BCE6740FBB7CE5197F424FAFA0945C60D3B69DCC4057E2E94D73142258F7 + D8B49818E39E149ABE105279319133EFF452CCCA682F1C343DEE83680097A962 + 7057BCB9E34A397CD84F8F47E91DAE3D0FE0B3F45321E80F2F69F5462EA7195F + 6BB9A206A02CB9CB3A851E41B666C38878BD13CC06F1EBB590111A38E8C4DCFF + 004C40D71F40228558236AFAA6A905BE979B3DF4C6065FC01196E06D42F21723 + 68D15FC016DE1A5A12B61E948F76EE209E1402443D233863C70D5FEF59D74F5D + 3CC6B8C24CBDE0ED084DBA0949289993F51AC247534808D72B79B7312644C195 + EB87C97F6196F412CF7E5A7F69B42906AD33A8F06FDD9BB1B484955483A1ADB6 + 7DB705EC4063EB061B1E8C53BA8B260F810EB9101CBCCB6FE1546D1BEBB28989 + 716AADDC8D9AC6709DB004B202A0CB6F2B56D350ACBF6DC516BA9152CCD8270F + 63E6F82737EFAE37469420CC71C84CBE9DA51EB5B5B17DE39FB66D26977CEA30 + F5C6C2C1A4D6274630AB3124D57A79F211B26E6F48E46CFAF03236E719201C78 + 9CEAD069E39ACCCC0BEE75E804D60737C09F3464B6ABF2D166D6EBD0799062C0 + 7F09BD7D7D805AB4357BF4BE5E96C8401564025F25221891CBFB13C4E81AC551 + 13BF8C618FBE9FBF13B9344CA249B29682A35F54FF0FEF55CBC4AF99DB51C7DD + 4AB9FC37DC9FE5D36DF8EBC2D72630BCCB488730D97257504660330803885888 + 9867ABC618497F53E6E9AB04A896C4EB7B25C822EEA3038487706CAC52C1555B + 454B7AF8777319D4D3E16264D4EF55FC3A55738B41187185A760F00011BE1842 + E021042BC0EA5FADE2240D5E16D17CB9897A0E59653E328E1441FFCEF03C8B37 + 7E5A52689266BE0CE3DA8C1752394A2CBD29CD904697CA70D83B5C4C780C1D17 + 5DF9AD918433D4E8AD5B89F4F7C1F294E0467D6122488BDE60DD84CA7041F040 + 70CA62A7B6B63AA41EC2454DF5FBC08A5EA4FFB60432B0AF13964D809116BA02 + 78D0EA94ED2CA75BDB1E4AD50070A768BE00E5CBD59649D558E6AEBEF010A214 + 2AA8E55058E4AF82220700C3DC1682652A982650E9DEE578CB1339C62696D3F4 + C219307B9F13B9CFDD279735F7CA80A85381890740E863825210D6CB9D7F31DE + 7ED8BA1BD2E4347BE47A91CC4581B0984EACEFD1C59FC2534F1728BC144CEC6C + AA86D309FC5DA09425157781BA8ABDFC9D4F649397E667DE28C6664B2890C4EC + 2F756E9CAAF05CEA24CF4E07F045C2C77D474304410C6ECFC3C23A7D4DC08620 + 07E831C056A53DD24355FE2CD1530E0AF8943627D3AFDB8A7696670231AAB9A8 + E3EE23ED8C4476712DE0F9D855201073AEDD7508B8EE192F42D9CA3AC9E36E53 + 034673164F20202381FC09161D8C53BCBD62BCD25B7AD1F3D4C8824BA7BEB0FC + 89B4D6ACBD70C5A2100CF1AEAE234230CC146A27109B37E8C39081A80F37F996 + D2BA9AAD0A3C1DE5555C14EBA0FF08C11667120EFDD7D5491EBF56D09AEFD823 + E2B41427CB09ED433861619F5A841E01AEAF71B184300D25AF9796BFA233BE56 + A699AAA8F907B534849168518CB122C77F97DAB3FB77E1E2A8B834DE4A845FC9 + 53145ACCB22E23D4A478169D13BDF210ED3AA7A94A152BDC1AB6371B4D39FDC8 + D449EE4D6D4E772F550FA87F03BF5198EB3ACE309836E5E6848D9FA33D3EAF23 + A803945191951CACC6386191F4F4B69CB803D0995078F368C8D1B147B659BF4C + 687A5EE7B848221C5E56B403D7C3B1980B66BEE42877F9514B228D8A253FB988 + 0F2FC1D77E44557D18A4F0CECC8B250C2F86FDF212352EEEEF2F8739A84125D6 + BC9B273C14B82CCF6551648CA6E777324E375BED8E7A39FCDA517FE43AD2C511 + 77345BDD3A1B96BF71EEBE3045EFFB2E304FEAEBDC21DE8090F1B33877CB5F08 + 604549898692F068DF66814B574EB890D52983DAF40C7E077D30FAF56ADBAFB4 + FE63A46805AB4AE7EB38682674D224FABD2332B4614D84A10FBF5A83EB17B03B + 57A985383A82F930CD0ABCEFC04E5C95F0E528D9729A1F9F3C623EDB7FC6A781 + 7AFBA93CA1241B00DD5DFEB0E48B89113CC0D7DDA2888BE5D5D93BBC301E8845 + 74BFF1452107D1650AF7F90D3C53A01C884A4BD826E06C3AC25FE6449BB84890 + E2AA3D305DDC62B25F28F578E64DA602FD511DA030921C109596191CB34E5859 + E340AC267652362D4A0941DDB92933EBD9F50C47E53976F3D33C00E2739E0737 + F69DC93B5434C1D4264A69FFF8B29546F7D00CE588D3DB8F166DB055F61395AA + 9B63B383D4B5E41B729B11690304062A6C4FFAB92530D964CB81AE2EA81EDC61 + 64F997BAE31C9A79D327415C59ED9D93EC13197CE70881770BCFB4E28D23F0DD + AE1FD7005FA99AADF470DF2BFC55759AC93FE540A9513BD0C4D93EC093C5F32C + 130D46B8559427F0DD50A09349DFEE6CF14B241E307FE3ADDDD07C5D1008BC2C + 6BE7BF7F5DA340FE0FEF6425C406EA4A6FDCDF8645E02AA892CA1B5433F7C97C + 88B690F92A5579E69AB2D7529E7F01F52CF440C624D4FE10E67004015975855B + 16F40E442C3D940B4DEF1968C68CDBB3D2F92799A32F364525D83EF5D696C192 + FBB22D8B7EE92197F880C82BFC54CF7D38174A07C49BC010BDC3A8B53AE691F7 + E7A771F897925CFA90E26BC8FBB705191F621885CDD4D0429A9FD656801B456C + A440A79EB2229F57A8BEFFD5B08B723F4DE1B37456E9F2CA2A6CBCD850356400 + 8E50B905C1028C5D25A0EE8381AA0BE0F435F16F89C0091C3583112CAD1DCA01 + 8A3D92768DE2A6A79D65DBB1D0BF16462BE635AC845351231D0E74B88BA38383 + 324578378E38C2DDE31C03F729CA333E36DB7F9D670D2CA5B9FF5E7AD321B043 + 9082E753D64C513A572932773C7B0CB9E33B5240589A3FCA3F58A64D54362CBB + F990A7C8908C824B78E1C1BAA20F6CAA257DDCE4969C5540D3FF0110A4010E89 + 290100AEEAAA4CFE2F5B92782D519C9EF5E5C4F7BD8F51EB86D82FABF7D87CB0 + 5B55BB3CCAAF97206CE4F590D6FCAD3AC932B47364FD2352B644BCB0FE430AC2 + D139419304127E9A31B6D7C5FA92B26EBB7BE0E5962B536A2478804CF2657EF9 + 75A9F61C842E62D6A0771EED1F45081F46AC9A8F00C2416BA607D8535835C526 + 5A226F00AA88FC4A4ED9DEE49E51C8CC3C82BB69F03F30E80958E5AD28260DE5 + 40EB11BF6F873CCB6A4FC586ADD9DC7EC62DE1208141191E382FE80116767CE7 + 537CCDD10FD2629BE0C167F83323E17A659B22E53E57909564785335381CB6D5 + A3553609BDB73AEDC5BA951DEC94C88C347ADB256BE74C9DFE58501B4DF8C38E + FAC123605F52F72A928375CC435C13487E6FE1D646FABE93DE8CC6DBD4A3EA3B + 491EEC27B5997B5D7B10D2923F048E7F54BEA76FA9EB739E9DEFC9D787CE30A8 + 6488AB3860B7169861E7830A2C1B2F8D21827E1D2ED4E7C0CB9486E257EFB972 + A65226612B3B740CE3A1D10286C4A3B4369BC5ABCAF7A7A895F443B4DE0D36CB + 288FA5C3ECD17C7CFF6FCABCCAA229E5B95A289AA80E01B40E6A37B89E4C3DBE + 7877252EDDF5A98F755C4D1837ED54B113778871474F90624141A6C4675224F9 + 02F453BF2F37E1BDD39F692EDA05F15EF518AF7EAD95DB9FD382509E4A750B5E + 52EB7043E129A5240A89EB2EBC770CAE54439834D162ACD3AE088B5C66CD2A2A + C7654A65AD6CD85BFD6B595609ADD2E099F134B3EBE935CFB1BCCB87764264F1 + 860E54BB02B94E14D0490A248DC87BECD9E0D2A5C0B335664A847E73CAEB712C + 8C1CCF1610A20640054385A269B5531D3C6FD6C97E128D404DA171C09B5B1038 + 8DE901E2FF3E75424F972F2CC15F2EBABB0F900ED099C56E27D14BAD9CE75215 + EFD6AF46CB6EE95E5843CBE0345FE2F87453601A7FDEF63DBEC276F39AD4A1AF + 732834855DA05BE7F6743E26943FC35579B7AFBC70B166C6E338BB68798FFE1C + F72801C350428404B260B047631C8547C03C640BA149D9AFE13A2266E92C782A + 0EB7B6B5A96BAD60470E8712C1BE46419498B2AFB22DA366C414345D1D8DDE00 + 41F6678C7AB4DB6F1BF26DD2816CF9BA209042574BF718C72D1ED4D0DC4D3155 + D25F99161471C11D595B9A3026F6534F71AE7520548F75A27AEE158A7F78639A + 637A6B8A4DDF9862527212D075F38CDD01202117EE182567D70C7E4E8329D13F + E6B05C32EE6BBD7D181B49F9B5276A17F563FC246C57A0CA220922198ECB7FFB + C52400739D4D9173219A4DCABFDE08DE4F5BF9942AE6F8E8E2622D8741C52F5D + 14879A14816432B2D36A523B46AD7BDD5317E977D6FD2DBE5367FD7B67240F60 + C82A342F9601FD5785D12D9FEC1940055F6DD9ACB570B8105AA59B9D4D116B99 + 47EC08EA860C1F189C494DD93E1D5B7C3AD9243E62476C95D972B96B22F85516 + 4E3362867BBDEA1E5CD1597E91B5043C2EB8E91B2D1BD8F37C70A83636CBF79B + 240CD3538D5490D92AEA8D2E12B5111E84F1FF7D7B134C688C12925B40D9A42C + F8362F4199405681902885C09B92BC862784ED8832351D91A983C828986B7F4D + D16444CEE6E8AB651AD91C2AC549A4B8E40CD2064BBE6F954F458E4F30F7F4AB + F322E46BE7C2A16A9143185434ACEE9BB6BD3AE88EC4AD116FB3ACAABF0CFD54 + 55BDBF59FD61286BF59D2B3B3E777FF27481905B67B5C58B4D0A2BBC268FB6BF + 5D2A59BA33A18EB65B136AABB2364D291E912CFB47BBCE28F07F64EC6B29EE17 + 382F720AE1BE0F987B0A6543E71A7484B03D8A1833E86EEA64EDD6F37B3C60A0 + A3A9147301C85DCA970B22CBE767F3BF9C9C4861032A413816E89D0C0CBD9FD1 + CBA7039E41D34A6F4CE84EC565D7CCB0E7487612067477C25F34C6B59EDBE7F5 + 77413F8C745A9B2C293F0D2BFA87D0B474BA72AC6968ADAF0E1F51DB0C9B2C89 + D095AFD7E5DB8D6A5AA7B6B6E4632F04ED7E0C4512230DA8D84EDDE5AE795D19 + B931663C7BD095717AD228359AD40BF7310AE4B313B54F5E56A544C6FA56AC54 + F36753F1CA7C0AE45B6601EF21102DE05A873DE22C0AD7996CCD09493C5B2D55 + 34985EDE396CFDE688C3285A66734F85146B3771B5C05034370C1830FDE40727 + DC05048ED45EED8E1EAF80A14D0CE606D669979326228E4997CAA8A6AE91A774 + 4478747508D5B9F9B3173E49EF8DC582F2AA10F90EC344A324E6DF261576F079 + C67E1527BDA922DC07CF5887ACD80DAAF34DBAEDDA273F9DF50CFDCCC537ED57 + EFE477885478071135D52ECDF7999B2673A7E24F426135C7E541F54A3F0A36EA + 31A85B8EA562C64F41A8E6D248059EE162E0C50A7A2183DBD2EA6513B6D56249 + 8717F28E7DBF35465A7A492B60D513AFC871AE71D3077A5FD95DA178135A0C42 + 09E9D8F291CA0A55A04C929A5AB8FED2017B0E2B738292DC930C828EE6418B38 + 9401F54697628632990C769AC102EB76FC43F7BCB13DD07784D6190DE827BF82 + 88097932CF1FA02435245AB0B0CD6BC25EF16C3A33B902142CE4D65FD76A01D1 + 97B0F6637AAB5B3CB6AF767B8D08FA2D5CBCD9341C47249E4913A53D7A50FA2C + 0136AB8A003B78D202D314ABBC21093286A84609499283E14BFF1C6C2D7AC3A4 + 38C5034F67C8CF6A46EC9833766B554AFB5EA3AFF5BA3D097B1777C5F818DA8D + 90FA23B8F0FF3A3BCB2EC12AD727B5EA61FE6AC104A03CB394610807AE4DC09E + B096C92D3E37A12B95ED961783955647AEA49E35B19F95BB98C89543ECF1215D + 83875244A2289F41AD485F76F9E3C694F51ACAF428652903DF32B450CA67EF9C + 10D94E4F75C9ED89888C86D79B29A8A641D6B6F02BA50417ABEA878A500BDBED + 3AB38D108ACC554C882D6A042CCAC7A44B69384ECAB16900B0BBA4EF2F9D95E5 + DD0389AD1B1D3EE0A757CCBD58BB422B72A5A21DB2BAD7C4358366BCB9A86335 + 2CFACDE9179F6B3C01EA239DD5F26BE18000AB2225C9FBBA94319CA4B9873AC8 + 64D8ED9A0B2365A335CC71F65349A3D0FA0DD7CAED20A27FFA365373D5F4CF6F + D67373164C30269FB1CF4C9791BE2D8F35924B1E439014AD50912B1CE0908154 + 3C19666F4C6E9728EBCDDF25F7782457159C7E04FE20647EAB1F280F450665D7 + 0CA4E1BA7E9A65CBC557AA43F8B553DA2788740C3A74380CD6E74FE3C7B002B5 + 1CF20FC5B76E80AD6854DB54AA1427C7B8CEBEEC0FDACEBD63714C2BA6A8E39B + C096F9A680A9F0017B5ED841A508A946CF36711B6FA478374269576FF8B32B6B + 602F8D680635D2E078514CFBC10B648FFD517A933434B82D263FC373E76DD653 + 8030F05537DEC1A9F8DA5EC7FCF325D47D7AF19BC3D8C1161B3CCCE6A8992096 + EE3EFFBF16B22066EF2447C5FF6FFA97959FC4B91546734A4CF97216FB42F857 + 5303BEFFB93E2ADB1760B911B616F146F69EFE7FC0371E3BCA901B89EC7A32B6 + 1F1D5E820BF685B13372BA84E43F8DE566A9C1975EB425C773B5DD79E5B48877 + BAE3F15F3BCC2E2B74D2D0365F8EADA56F6FD90388BDA2B96F3F5F4314AA3494 + B169204B5B583B6A62710D3DC5443AFDA234419FBC8A98931D8A638F7CB27BBA + F3D0766E3593BD6898AAA6D583103FFFC5B42E3FB0E29560B0D364B42C8725F5 + 174C2367BF72A832406650CDF41F639860E0E9926A05673ED17AAF6C24068FA3 + 3C4BE6D294381083B63663B76C6406B48C40FE1D36A9D70939592843CFF31172 + AD018086239315190605AA629BBDCAA98080B620BC2D7F4501C067DB09624B0A + 58F767984A43C0EC594AC4F2EB43E8FD3C66E6D0E3AB4BFBDA7BD42EB81EDA2E + D5F72BC5D2A2BACCB5C0D8D9FFF5741AB58F2901E1D621B98CCC9BBF6591508C + 455F4312D57932CEE465EDC077D3AE2E1AE40B96F50D6FBD199171048FF40F7C + A18A77308AC6A9E8EF9F78C0BA891DF9BB7AD2D1C0FC60D0D252005CA0A1D05D + 7E5F739980908AC47D1B213332961B44F2981D628AD956BAFE1F4570B9AF0F10 + DE27903255AC90B8B71D7738C1C9D017790249FEC626C9AC98CCDEEE8057A258 + DF82530EAE4FE769E52F3CC13DE6A7644B6996FCB5FE9305966363FB4328DFD3 + D384C561715444BBB512FA73CB1B2CA272D5A113D9D0422ED9A3C28E5D1A1AD8 + 7604E12AD0588869A30A3359A0FB7649B1D67F47986F16D0ED1980D565DE448E + 92101A863127905283A43A131E51234DBA0EC50E0BA664831E481F38F69FBEF6 + 5AD7BC6146F01C607C00631D6443264A397D833EADD6FF1253892343450EF3FA + 0609C587FAC2610C52C8737E461E5AF81E39DDA40B46948558D15967EE6A0102 + FE4ED6362CBCA75B083DAD32FACC52BB90B20D5F8A33C54B12721FF85F3506F3 + 4B3E0EC8B5C9437F8F4087A1AD6C88A06C72B46DB9C9AB0AEEA4561B0C808E08 + 26C6637D0252B3AD60D77A4E786F1BC4D8450AB20BFA5A03D159D09D1DE5AB87 + 8577AE538B3ADF6FC23A0AD1B3526F505A2694128B520A7257372D776CB00305 + 4E38C221DD7B9B4DB0231DE7B648F95B41421E26739DE1629602E7C86AA5D7C6 + 79026F582C694770C57C310985DBC2D0486D027B757410C48335DBBD3751F552 + 7D541871F57C3DA31A22037D8144A34E410785E247115BAEF6598A5E557CDB71 + 69CF0304107FE7B1FEA630A52A6D3496F879D36439BC98A792F3306708F80670 + 31A2FDA8378B8175D1DF2A1C7549008E110FD68856A84306FD3DA40D936D78B0 + 5076A32C1EED2CF76B32036D8414CDFD29F52DF2A1CF75BAEE88303B8EC71E5A + C5C34CE9BEBF25E8179882B8D0FDDFC8321D7206D2D72E58DD705265D5B0D1D4 + 5332B04888E2F38DBD987539F24D723C06E04F38545B39375D93F62561598DAC + FF0C5FF88CC235A43AF84E308294FF90D53C5879EC9DD52DD81195F31F38C3C9 + 32CD524F11D1DA1AAEEF696E903E5CF6E63250C47129851084AECDD250C9AD11 + F4DC3E2F80E9840935CAA865F0961F53191F95842048E4023D35366C0A0E3559 + 929252084187252E3411296526402F955966A47781E3E52AA04C56DCEFBCB00D + B7BEC854A3CC35184F71FB5B8F2C794F07263BB735A86137FC2EA7DE70349CBC + 18B0A75874B0E65F7FC69899D8D552DB97274DCFE1C968E99474E0B017F67793 + CDBF0A4110EF36F4DA91506F6D4C0324436D182DA5F035090837C9972AB6E204 + C9480EA53E13EAC9390D5BF723DC898C71387381D7B62C90D0EA7F2FFFB8F111 + A736805FB4D23157D0DE3AA6C375E1618CABF6E269AAB6E39D3328C1C5739450 + 27895A4D6D0578AA5EF46C3632217B06D5461F1F79EF183B7D4C064B1B72ED4A + 1CC9D60EF2D1A4E28269C0AAA51747DEE609422A5A6AC9E84E47A38A8E5D204B + 7DAFDF822B1AD1E15E5C24B1A9B037CF667BAEA33CC9108B40BF090AE134F960 + 5B7F5BD6A9D10CB717F19A85871DC4D882A79AF61ADD60913FBCB9CC1F81EEA7 + 423A640003B9DF855DE0615E66F135910B178A7685C6BD0A2A681FE22C397BD3 + CCC7AAD21A32D0925B2FB5E518691EE090BC631C6765154D5D45611B19F9EBC5 + 5B9E391480B76B93F9257E68DC9E797ADEBE75EA5A8C2CE1BDE9DBB0D25AC244 + 5649834D0B580753A5E67CAB36C58DA42F5BDC2FD42A8F94C91253E6697344CA + F61F90E5EFC952D0347C9B44266E872C1086C9A34E10F1DBB7C66FEA154AAB96 + 084F83344B3391C11993386F24E921AD6F7384833EA80A9A95B81FA0D63E3CC9 + D367FDB03881133C6AC613DA25995C0DFD2741F594A1443F058A4360A3E6C11A + A6EE4FAE5DF2FC5607CF3EB9BF7D80A47A5F150FBB2B08113BCB87A349F8B5B4 + FA055F4EF1F324BF1B5F870A365CC68E885092DF5C1D02A7A94ED88849DCDB71 + A0A2E86C993829D6849415A4599FB26EAA30B8472110CF766089D1EF2EDBD300 + E9182CC52BED35F37626B28D54BB81FB63CE6423508C9436919EF9D1F30F987B + 1E0A763EE6396CC1BFF58D01287D026359753D1AFA07476B6C53ADE0EAA21114 + D1DE44BA28CE3F5F769D61D80EBE24D75CBEB070A6C01E5BA7956234C537627A + 27AA44D17A33DBB22F72D5F3787EE4470F3D04C499B75E8FA6F3EA6230A5F0BC + 14EAAA75F9555BCF5F9817504751FA549FDC2CC36D01EE1F5A7E7D516D219CE4 + 1C5A27EEA3DC48E220898FB4EA198990EC4FBFBFAA84D38F0AB3D4DB37E43AC6 + 24FC86118157FB415076C1A23AB57649429BB73A0486BA44C2CD8096D9916D44 + 8B3AE05AC776EAE27438E9B32AF6042144CADAD694290A617109BC3FA83544D2 + DA2D0ED516B1E1E5170847604BEDA3FA4EAB868E579A65947B8E7D055A72F550 + DCA1C6EF69411A8E107BF1847B1603F88DF2331332A0E7D2C7517B607DCFA7E6 + 04895B0121A6F6EA7D599E7A71807B2ECCC37DBE7B156D30AE6005ECD5AA2E32 + 1FB1841297919166BB0B9A63EAC1EDBE62DA1D2E170FCC8A9561BBC4A3FBE1BF + 42ACE189F985CC4C26611DC01C057BADE5891A7CCA0601D9BBF100ED373E3C66 + B888C450726C15F820E1A3720B3D4B43618A2FA01AA50CC931672E5FB391D30B + 3F063B2EDB45019E9F4BEBAAC87F08D5D6F7EA43F34A9D9744736426240D85B3 + 4D5BA4EC8552311AB292FDF2F18A07BB82A59715C3D1C0497968F0137225EED1 + 2037C31B08C9BF08E5CFD264D70986C7D3CAF8D325A1760DDB06F68E700EB398 + D45471F1449E45FF6EB727C12D507BC44C6AB9B7691800B731EFF1DEAD3EFAF9 + D4BD6E2B96397B99010F4CEC4456EDBB9F99494B1A0D34B33A157B54BFF2911D + 24CCC3B6C3523F00E586526C48D180A4C44C23284D5760F71FE7E8B5BCB891A4 + CC6CC1B0889A9F8AFAF64BF944A45304BCF4B7D3644170CEE90329584351C7C2 + A18B5BAC505EC5A8B6C9E2410B0E7F4498E202AAECEB5276C4F3BB50FA54CBE3 + 5B98769203393E88E1F6DBDD7E72E4B93EFC6907DDFAD3B07B2F3DE9AE5744FA + AA85F077F9201B78378849480C03ECF57C514C9C9193CCFFBECA1D2CDE1333E6 + F94809A84E53B725BF475EDC1DA7EAD9B62C8D9AFB558132EB611345008AC859 + 09C19AA4F1C16DD1840E65E82FF993AC9A0E108A0F0D6A3E484E1BCEA6BDA125 + 3D0A07D9506A71A3DD02FCCDD7F0D86C4F609F5E63E447FD79A0B6B7417FE4A2 + 450AF25671726D86FC0124D61C8E8B604E17824EDBB69B184ACB06780C32A34C + 69326B639F776B4332C524DE770AEB45618CD297AC9BEE9C04B7FC2658DA81E5 + 374D68B7CF199D7700C9EEC4A69DAC2B7ABFB905C59DB34B6FD0E7C8832831B6 + B0D836561A2789A244336A0D86919CEB925B973F4BD8B0C7EBAD20DDE3E5A014 + 0148CF267C75454F35DF268E5A6443A1895EEFC4BD10C979610D3FFD8D3F18B3 + 8C20A6C14ECFFE6D3ECDEB5094B9E02C3B89A4CA56BE43BC970AC11FCA02211D + 123C1DB4C61B45AA5387060CB2EFB3E3C8E4E6290D8DCE445253996B7AA085C5 + 9077EC0ED6CAB6B44F1018F2EFCF1A4F3D5CF0F5FCFA3934C4A62D9480FA6428 + 653279787E13E4C6BAE55C32C0C2543A47F986EEC34B74BCCA2700859AB1D1F8 + 63B11DF970161306B37173E1A0474748921065B576F37F429AF174B0CC3B2303 + 773AA223721C9FA72A4CC3F18C3E52D7CD11A3E8C916D46A9AD2BF3DF3340AC3 + CA4207531E797B7E393D18439CDB5C90064A972E98799E1A1E5F48877FABADD5 + 39E2247A9154DE822C31B225723BCCB5114201B7B2867307B35D9EC0F8534832 + 28EE5602DCAA66534B178E1F3DB1EF5CC3364C3EECB793BF6E4AFC06E6E1F513 + 7DEBF70E323E17B7FEDAE697FE0D0C7AABA13546EE22BE7425E4C50E8325041C + F5E4C0C220D5CBD1FD03B6896253567D78C222F6A887DB131DCE8566DB51DCB8 + 643B9270F347998A4DF21AC059AB4136DB9C75AD12ECC02EB2A1827EB831EAE6 + B80CE22FA962C0A8A04AD989A2538CFC493CC687220FEB5197B5B7B26F8FA1C0 + 512F12E2A67E21712EDCF66522B223A265F53F9D12F9648DBDCD379324BDD709 + DF38A12D714D49AE5164A9227E1336B1DEC574FA9060064EBD781DC657A67303 + 4069CB5F1E56D8297C2C36840A684AA880D0CE882E8682DA659DA6832166DD8C + 2086D3D5A8097F4C3E8AE138F10B440B107BA076493D4A319997037E6E77F883 + BBB493C4250A81956B5ECB02160EC668BD7E7CA7330B8E48747736E8E316723A + B754C6023E7CDD9C2F598954E46BFB58DFB67DD95448371625229CC3836A221C + A287EB462D32EFFDEEE55EA335DCB5707771009F27DBB95166E2A2C48E3EA81A + 7E4E057B53F276D0139EBF8CADCEE6288B50EDD2752B77962813CB6036CFCF45 + 4AA8F3DFA67039304F62EE6393118F35F3FB60F9720280AB3BE1A2B768741E62 + 2B66CD5444DB0A907694D4A56354FEA54E1EF127DFA51952EDE2FE25E671FD84 + 6B191C629FCED16990EE3CD4B9558C644237842B596509988AE27DBAEC732F4E + 6041F8B290E0A75A3E9F907A3CCCC2832958F41710E62DB613C838AD39A1227F + 76F0B3BA072A8632A9212E93307B594E4CC9E39222D560D327019A6AEA7B4F4B + E1B57FC76B3BC81BD0E0AD5DCD2695097F804AE62C91AD578386577A6E2C26FB + 1DB6AB03551736EE6FCE743B81523314C9D148C09E75B8AFD204445AFEA3FCF1 + F85BF00C5656056DCACC51230819F5604CA09A473B8617ED0383911444C9E1AA + CACAF4086598806AA5C5F161F3513A02984687478FAC4F69309B7AE5A82D0D76 + 44A2C18471AC6C98EF79B193E9A74F756A86542624097C0B721C6A5D9823FE44 + 19D3CE3C99B333ECA20601897413C527CF2CE0F209C1022B64C767646EB3F0B8 + AB7205DDFB3DEEDD45DF21A95FDA5FFB2785372A7C7B926B431175E5F5A44954 + D7969C416D02F4EC2CA46966C0CD6A7CFA1D808A1E6DB76A43909A79483D6F3E + 22CF71E777843BACE908686CA8E61C2F26B8A4C3B571973D3117968542BD1A82 + 8F554B55FBEB2718B8A47373A563FEAA97013D7005816B276268AC6C12C0B2C0 + 8CC2B3B4826395865CF1E8C39619FDEC69C7CC2C20036BABE9DD5B89C017E007 + BD21EFAAEAD83DB9785F198752FE7A14F7A5F909EB82B8E46BA0D965516E0719 + 7B74DEA50263523F0574D7E66489567DA32EC79C45AA7164CB2401B18645C644 + 81AB50694A3C50595158E997028A41F8479A5263DC41C5F7968995364FB7FF03 + 6DB8E120314311B8CAA5123DB7111909CA55FDBD0B17DCDF0DB24A5C7222ABFA + 7BD8409BFE077A7A8F12887A9571F11CDE180FFA59B528830B377D25E4B01CCE + 0EF0E20298ADD6C7EBB1F1B60DBE16BAE1E61F2E0FCC7D38245CA77530A8D304 + BB5BC34C24525AEC4C70D821AE3D13D5D14069BDB1D66491832AE28D4DB458F4 + F97DFDDCABF2263F4B0F658FB2A53E12AF4C1688FCA7A301469D393DAA7168FC + EC60651083494780C088B68F73048B875EA662A30ECCB2C3D9A5F64580C071F1 + 8C85D4ACF94ED8FC9ECC7EA6A4C08AE0E74BC12E276AF332081A76D62130184E + DD9053B545FCB572FE9997E9924FC8319979DFB5545BA9BB04026096E632018D + C072D7EA21E61E8043522E3D0F54941A3A85ABF819E6596F1EE711E7B10CE464 + ACCA3806E9A36C2DED5498732E63D4BDFA70F29919509B721AE88C4D52A91194 + F34D52D9F0A731477EA02C6C1D063888300E4EE95E9200AAAF4E949AA31541DD + 2B6B7E1160DCC1FE6BE00AA616381BC156D4FC7A5BDD609699323EA44AE5B836 + 5B3F83E48F6D5C815971437DDD3AC4FDE88739521C62B9557F79CABCB932229A + 9DFCF7C7B2A69EEDCC07A103A916ABCC983F45AD38EA17E84AB8A945BD5B48D5 + EB826EED98BB5C44FF07976F78ADF6B50923C99689CBC133E33726F8ABD87E09 + AD3080158A3D7A65E0BA793A65312FCEDFD7F2D42810724BC1A3AB34CCD4B472 + 9EBA679213F272B7FA8598A3A0366F203595DCE94E271FA79C14104943963648 + 960CFD721E7F37A3DCDD8D7A4AC07EA1DF2F69C12686FCA3D1779333E1DDF491 + 1440FF98C5E26C910466DA7B1DFBEFD580736AF3AFD99F61A0B7B61682474105 + 02B2F1AD902F53900BACADB0CC58953048AF61258C3B46124B421D14BBFAEA28 + FABFFC5318B627969947F3DAC7273538B95CB0A35628A456A5A7F3C65FED96A0 + 44172B07B50D609CACC66A0EEAD0971EF3D5FA68BD99C1AAEF47C20B2C63EC86 + 91CFEE2C9A5E5F0A93754B073F772FF85CC40425BAF728C2BE67E52E404336DE + 2681F9D80EF7F9BD6A789B70600CFBCBAB20AD2083C1F63E66DC5DB701EFBFA5 + 0F416CECD4C37DC035BE0148EFFEAA17DABC61ADE277E852BA114DFDEBE1CFED + 713E2EEC26A153E627622B1E3F67B51EDC58EC97F0EBE2963F366A2D34FE1727 + C056E67DD0B876038572D1533E96382B48CA7E4641A27BB64674B8BE1202AD89 + 412DD5C4E8F28FDDF34D17A0206290A891469EE5B2920186B65AE81C51550DF1 + 85E3C3EA722B11A892AA8395F6CDD21D38601AEAAA4E0E5B630242D09F099B59 + 3372268721B950AFB4DD0178C40693CDC47D2406652DCBCFF361D249D3313E5A + 3C13F7585859CD42733950F6D4E703200169B1100C23D38762EE676077965E87 + 17A64E445A3B09B517C2BAD6C258B3A42698984ECD019873EA7EE78C71F59B9F + D87AF423E38E688E9EFBD87CCBF7428678F991CBC81F0F04A3D1AC1FCA177EA8 + CEE36DFE0622C519CCC8ED31B947741513E66A945859D0517989AC851315AEE1 + AD86AC2214AEE6176078111CA04B75040D33A192D8096CD593D41B16C1755F41 + A7E97AC330F194405524601A9C77A1416F9B45895E8435D96C7FF38190AB6A08 + CA40684F743B4B1D16833111A2D6F446E81496C76BC5E7F6E49FD9878273B2F8 + 826C60A387D60735CF3620DD57B6B56C826A3A1A60CF02FCD70F2635F34B6C3A + F283D65E5443941B8B2F02B3D743C914CE792DA51558E0D549F2C58231E0C654 + 472BA4ABA87F4576ADCB03DAFC8BCA02F4CBA34EB2861B8DC4A451CA8AB4B73A + A9AAAEC05DEB51A55AAADEC901A6E24E62E1509E0C1289EAB22AD77C7AA08AEA + 2CC4ED2087BB4C72481717D4977D0B62467518249CA09BBA85A45055454E60D1 + 9AE914BD3853580C14FB06AFAB96D01EE022BBE8C5A8813FA6585754E2B63FA8 + 398F417D7FA025B588641A4AD689D802AF92E1F3FEA78C58D60667CBAC1D84B9 + 00C51005CA6524F4ACAF88FD916C73EE53D4A94EB5E2A77DEF6FB697CAE78026 + 5E01768BC126C1167836CCFB35A46733BDE1479E4D295C39280E279945B18BF0 + 731962FC2DCA13E0B3DC4421FA46C8A8736396B7B794AD1AB9ABAB2F39FC0886 + 3543FA2F9894BAFEAB4B9D0D64F570341CD9D6158BACABCEF557EF0FA2D8D6CA + 7273607057FE2945DCC7FACEB45CBFF787C37C1386D267F085B1146476A3005E + 97A61B0A1AF9A186007380FDBCDB217D81E310C12A46511298BC1DA753338487 + 8D57AF997746B7B1215DD5C7BCDE475E5FEE3FFD5272FA8507EF1651F656C5D4 + 6105AEFC2077392644D3A6C4637F79D8CA936D78ACD2FD58E5572EE2C679D816 + 21CA4014D5D2080A101F62F32F91C93DC251C81D0EEDBA7C0C8A5472D1A2788A + 7ED25D5F492E2AE4E1A409321662CCADA741A5FCCAD28464B2982FAB6C718BBE + 8F70BAEECDC9C847A832620028A76CC4588A45CFD321383D99A02E2A40FC6329 + 08988AD76DD6485168C3EF91635BE25E9A46F3CE09CBFE98BAAB6BEAD4063016 + 3190EA118EA186B371D13FD402756E7F7AE1B30197F454617DB5FA63639237EF + 93709B6A48996C73F547838FF7C41BBE3F8B2627B2388849CC054965BCE89595 + 44116675C45FD81CC07D0EE5EDC03DE050FC7D88740939C98B45EA7E9B5E64D8 + 67C8DC410467A5BA78C3B5097112E0771FA1AA977E90733E6ECA49936993FC66 + 01289AE75444BEF9AC6B78A8552D0840346A3F768230BCB4D276CA6D098A4EBB + A7B4260821F37CAE43B7D2B2028CCFAAA1DE7A464C467822FDB6867E0DDBE997 + 4E9B669B28BBAED62B4656E56532 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + cleartomark + /XXAING+CMTI8 findfont /Encoding get + dup 0 /.notdef put + pop + end + /XXAING+CMTI8 findfont /Encoding get + dup 0 /.notdef put + dup 39 /quoteright put + dup 40 /.notdef put + dup 41 /.notdef put + dup 44 /.notdef put + dup 45 /.notdef put + dup 46 /.notdef put + dup 48 /.notdef put + dup 50 /.notdef put + dup 51 /.notdef put + dup 52 /.notdef put + dup 53 /.notdef put + dup 55 /.notdef put + dup 56 /.notdef put + dup 57 /.notdef put + dup 58 /.notdef put + dup 65 /.notdef put + dup 67 /.notdef put + dup 68 /.notdef put + dup 69 /.notdef put + dup 71 /.notdef put + dup 72 /.notdef put + dup 73 /.notdef put + dup 74 /.notdef put + dup 76 /.notdef put + dup 77 /.notdef put + dup 78 /.notdef put + dup 79 /.notdef put + dup 80 /.notdef put + dup 82 /.notdef put + dup 83 /.notdef put + dup 84 /.notdef put + dup 85 /.notdef put + dup 87 /.notdef put + dup 88 /.notdef put + dup 97 /.notdef put + dup 98 /.notdef put + dup 99 /.notdef put + dup 100 /.notdef put + dup 101 /.notdef put + dup 102 /.notdef put + dup 103 /.notdef put + dup 104 /.notdef put + dup 105 /.notdef put + dup 107 /.notdef put + dup 108 /.notdef put + dup 109 /.notdef put + dup 110 /.notdef put + dup 111 /.notdef put + dup 112 /.notdef put + dup 113 /.notdef put + dup 114 /.notdef put + dup 115 /.notdef put + dup 116 /.notdef put + dup 117 /.notdef put + dup 119 /.notdef put + dup 120 /.notdef put + dup 121 /.notdef put + dup 122 /.notdef put + dup 123 /endash put + dup 146 /quoteright put + dup 150 /endash put + dup 173 /hyphen put + pop + %%EndResource + + userdict /pdf_svglb get setglobal + [ 1 /dotlessi/caron 32 /space/exclam/quotedbl/numbersign + /dollar/percent/ampersand/quoteright/parenleft/parenright + /asterisk/plus/comma/hyphen/period/slash + /zero/one/two/three/four/five + /six/seven/eight/nine/colon/semicolon + /less/equal/greater/question/at/A + /B/C/D/E/F/G + /H/I/J/K/L/M + /N/O/P/Q/R/S + /T/U/V/W/X/Y + /Z/bracketleft/backslash/bracketright/asciicircum/underscore + /grave/a/b/c/d/e + /f/g/h/i/j/k + /l/m/n/o/p/q + /r/s/t/u/v/w + /x/y/z/endash/bar/braceright + /asciitilde/bullet/Euro/bullet/quotesinglbase/florin + /quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand + /Scaron/guilsinglleft/OE/bullet/Zcaron/bullet + /bullet/quoteleft/quoteright/quotedblleft/quotedblright/bullet + /endash/emdash/tilde/trademark/scaron/guilsinglright + /oe/bullet/zcaron/Ydieresis/space/exclamdown + /cent/sterling/currency/yen/brokenbar/section + /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen + /registered/macron/degree/plusminus/twosuperior/threesuperior + /acute/mu/paragraph/periodcentered/cedilla/onesuperior + /ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown + /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring + /AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis + /Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde + /Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply + /Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute + /Thorn/germandbls/agrave/aacute/acircumflex/atilde + /adieresis/aring/ae/ccedilla/egrave/eacute + /ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis + /eth/ntilde/ograve/oacute/ocircumflex/otilde + /odieresis/divide/oslash/ugrave/uacute/ucircumflex + /udieresis/yacute/thorn/ydieresis + /N126/XXAING+CMTI8 -1 TZG + %%EndPageSetup + 0 0 612 792 re + W + n + q + 0.0999908 0 0 0.0999908 0 0 cm + q + 10 0 0 10 0 0 cm + [/DeviceGray] cs 0 sc + 62.7602 728.22 m + /N17 8.96638 Tf + (Anadditionaladvantageofthemacroscopicapproachto) + [6.9029 8.46031 4.62111 5.10016 5.10016 2.57565 3.60274 2.57565 4.62111 5.10016 4.62111 + 5.87565 4.62111 5.10016 4.31606 4.62111 4.86024 3.60275 4.62111 4.62112 7.43857 4.62111 + 6.17964 3.60275 5.10016 7.43834 7.67578 4.62109 4.08197 3.59993 4.62109 3.65645 4.08195 + 4.62109 5.10017 2.57567 7.44205 4.62109 5.10017 5.10017 3.59993 4.62109 4.62112 3.84196 + 8.46032 3.60273 4.62109 ] pdfxs + 53.8201 717.78 m + (pointercompressionisthatitallowsstandardcompilerop-) + [5.34 4.62111 2.57565 4.86031 3.60274 4.07849 6.78008 4.08196 4.62111 7.67578 5.10016 + 3.59993 4.0785 3.65645 3.65645 2.57565 4.62111 8.28031 2.57565 6.77659 3.60275 5.10016 + 4.62111 6.78275 2.57565 6.78289 4.62111 2.57565 2.57565 4.38126 6.65758 6.71653 3.65645 + 3.60273 4.62109 5.10017 5.10017 4.62109 3.59993 8.28024 4.08197 4.62109 7.67579 5.10017 + 2.57567 2.57564 4.0785 6.77993 4.62109 5.10017 3.07549 ] pdfxs + 53.8201 707.34 m + (timizations\(e.g.loopunswitching\)tostaticallyoptimiz) + [3.60274 2.57565 7.67578 2.57565 4.08196 4.62111 3.60274 2.57565 4.62111 5.10016 7.85644 + 3.60275 4.0785 2.57564 4.62111 10.2555 2.57565 4.86095 4.62111 9.42 5.10016 5.10016 + 3.65645 6.65758 2.57565 3.60275 3.84181 5.10016 2.57565 5.10015 4.62112 7.8629 3.60273 + 8.88117 3.65645 3.60273 4.62109 3.60273 2.57567 4.08195 4.62112 2.57564 2.57567 9.05628 + 4.62109 5.10017 3.60273 2.57567 7.67579 2.57564 4.09764 ] pdfxs + 288.84 707.34 m + (e) show + 53.82 696.84 m + (thecompressedcodeforspeci\fcstaticpools.Inthecaseof) + [3.60274 5.10016 7.13833 4.08196 4.62111 7.67578 5.10016 3.59993 4.07849 3.65645 3.65645 + 4.0785 8.22023 4.08197 4.86095 5.10016 7.1985 2.81964 4.62112 6.59992 3.65645 5.34016 + 4.0785 4.08196 2.57565 5.10016 7.2018 3.65645 3.60275 4.62112 3.60273 2.57565 7.08194 + 5.34001 4.86126 4.62109 2.57567 3.65645 6.65557 3.30018 8.22009 3.60273 5.10017 7.13833 + 4.08197 4.62109 3.65645 7.13849 4.62109 2.81963 ] pdfxs + 53.82 686.4 m + (boththeZhang/GuptaandTakagi/Hirakiapproaches,the) + [5.34 4.62111 3.60274 8.64031 3.60274 5.10016 7.61841 5.63935 5.10016 4.62111 5.10016 + 4.62111 4.62112 7.25575 5.10016 5.10016 3.60275 8.16103 4.62111 5.10016 8.64031 5.87766 + 4.62111 4.31606 4.62111 4.62112 2.57564 4.62112 6.90289 2.57567 3.59993 4.62109 4.85621 + 6.05581 4.62109 5.10017 5.10017 3.59993 4.62109 4.62112 3.84196 5.10017 4.0785 3.65642 + 6.23574 3.60273 5.10017 4.0785 ] pdfxs + 53.82 675.96 m + (compilercannotusecoarsegrainoptimizationsbecausein-) + [4.08196 4.62111 7.67578 5.10016 2.57565 2.57565 4.07849 6.96001 4.08196 4.62111 5.10016 + 5.10016 4.62111 6.96283 5.10016 3.65645 7.43849 4.08197 4.62111 4.62111 3.59993 3.65645 + 7.43842 4.62111 3.59993 4.62112 2.57564 8.46023 4.62111 5.10016 3.60275 2.57567 7.67579 + 2.57564 4.08197 4.62109 3.60273 2.57567 4.62109 5.10017 6.8966 5.34001 4.0785 4.08197 + 4.62109 5.10017 3.65642 7.55851 2.57567 5.10017 3.07549 ] pdfxs + 53.82 665.46 m + (dividual\feldsintheheaparecompressedoruncompressed) + [5.10016 2.57565 4.8562 2.57565 5.10015 5.10016 4.62111 5.57564 5.10016 4.07849 2.57565 + 5.10016 6.77629 2.57565 8.15999 3.60275 5.10016 7.13833 5.10016 4.0785 4.62111 8.22008 + 4.62111 3.59993 7.13866 4.08197 4.62111 7.67576 5.10016 3.59993 4.07848 3.65645 3.65645 + 4.07848 8.22026 4.62109 6.59992 5.10017 5.10017 4.08197 4.62109 7.67579 5.10017 3.59993 + 4.07848 3.65645 3.65645 4.07848 5.10017 ] pdfxs + 53.82 655.019 m + (unrelatedtoeachother.Usingourapproach,acompilercan) + [5.10016 5.10016 3.59993 4.07849 2.57565 4.62111 3.60274 4.07849 7.56008 3.60274 7.08119 + 4.0785 4.62111 3.84181 7.56031 4.62111 3.60275 5.10016 4.0785 3.59993 6.47573 6.90289 + 3.65645 2.57565 5.10016 7.02126 4.62111 5.10016 6.11977 4.62111 5.10016 5.10017 3.59993 + 4.62109 4.62112 3.84196 5.10017 5.15581 7.02102 4.08197 4.62109 7.67579 5.10017 2.57567 + 2.57564 4.0785 6.06001 4.08197 4.62109 5.10017 ] pdfxs + 53.82 644.579 m + (triviallyunswitchadynamicpointercompressedloopthat) + [3.60274 3.59993 2.57565 4.8562 2.57565 4.62111 2.57565 2.57565 8.27628 5.10016 5.10016 + 3.65645 6.65758 2.57565 3.60275 3.84181 8.58023 8.16126 5.10016 4.85621 5.10016 4.62111 + 7.67578 2.57565 7.62212 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 7.08008 4.08197 + 4.62109 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 4.07848 8.70034 2.57567 4.86094 + 4.62109 8.58017 3.60273 5.10017 4.62109 3.60273 ] pdfxs + 53.82 634.079 m + (traversesapooliftheloopdoesnotallocatefromthepool.) + [3.60274 3.59993 4.38119 4.61613 4.07849 3.59993 3.65644 4.0785 6.59636 7.62111 5.34 + 4.86127 4.62111 5.57565 2.57565 5.75948 3.60275 5.10016 7.13833 2.57565 4.86095 4.62111 + 8.10015 5.10016 4.86127 4.0785 6.65644 5.10016 4.62111 6.60275 4.62109 2.57567 2.57567 + 4.86094 4.08197 4.62109 3.60273 7.0785 2.81963 3.59993 4.62109 10.6159 3.60273 5.10017 + 7.13833 5.34001 4.86126 4.62109 2.57567 2.57567 ] pdfxs + 62.7602 623.639 m + (Finally,inanearlierpaper[8],webrie\rydescribedthe) + [6.00161 2.57565 5.10016 4.62111 2.57565 2.57565 4.07605 6.71557 2.57565 9.06 4.62111 + 9.06024 4.0785 4.62111 3.59993 2.57564 2.57565 4.0785 7.55993 5.10016 4.62111 5.34032 + 4.0785 7.61992 2.57565 4.62111 2.57565 6.65548 6.4175 8.03833 5.10017 3.59993 2.57567 + 4.0785 5.10017 8.87603 5.10017 4.0785 3.65642 4.08197 3.59993 2.57567 5.34001 4.0785 + 9.12016 3.60273 5.10017 4.0785 ] pdfxs + 53.82 613.199 m + (ideaofusingautomaticpoolallocationforpointercompres) + [2.57565 5.10016 4.07849 7.32118 4.62111 5.45971 5.10016 3.65644 2.57565 5.10016 7.32126 + 4.62111 5.10016 3.60275 4.62112 7.67576 4.62112 3.60275 2.57564 6.72181 5.34 4.86127 + 4.62111 5.27565 4.62111 2.57565 2.57565 4.86095 4.08197 4.62111 3.60275 2.57564 4.62112 + 7.74001 2.81963 4.62109 6.29978 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 6.3 + 4.08197 4.62109 7.67579 5.10017 3.59993 4.07848 3.63137 ] pdfxs + 289.8 613.199 m + (-) show + 53.8201 602.699 m + (sion,butdidnotincludeaspeci\fcalgorithmnoranyimple-) + [3.65644 2.57565 4.62111 5.10016 5.21572 5.10016 5.10016 6.30274 5.10016 2.57565 7.80024 + 5.10016 4.62111 6.24291 2.57565 5.10016 4.08196 2.57565 5.10016 5.10016 6.83857 7.26126 + 3.65645 5.34016 4.0785 4.08196 2.57565 5.10016 6.78188 4.62111 2.57565 4.62109 4.62109 + 3.59993 2.57567 3.60273 5.10017 10.3156 5.10017 4.62109 6.24009 4.62109 4.86025 7.55635 + 2.57567 7.67579 5.10017 2.57564 4.0785 3.06375 ] pdfxs + 53.8201 592.259 m + (mentationorevaluation.) + [7.67578 4.07849 4.86008 3.60274 4.62111 3.60274 2.57565 4.62111 8.10014 4.62111 6.66 + 4.0785 4.31621 4.62111 2.57565 5.10016 4.62111 3.60275 2.57565 4.62111 5.10016 2.57565 + ] pdfxs + 53.8201 568.379 m + /N9 11.9552 Tf + (8.CONCLUSION) + [6 14.8801 8.63982 9.3 8.63982 8.63982 7.97991 8.63982 6.65999 4.67991 9.3 + 8.63982 ] pdfxs + 62.7602 555.419 m + /N17 8.96638 Tf + (Thispaperdescribedasophisticatedtechniqueforim-) + [6.65758 5.10016 2.57565 8.2166 5.10016 4.62111 5.34031 4.0785 8.21991 5.10016 4.0785 + 3.65645 4.08196 3.59993 2.57565 5.34 4.0785 9.7803 9.12102 3.65645 4.62112 5.10015 + 5.10016 2.57565 3.65645 3.60275 2.57565 4.08196 4.62112 3.60273 4.0785 9.66 3.60273 + 4.0785 3.84188 5.10017 5.10017 2.57567 4.85619 5.10017 8.69834 2.81963 4.62109 8.15993 + 2.57567 7.67579 3.06372 ] pdfxs + 53.8201 544.979 m + (provingmemoryconsumptionandpotentiallymemorysys-) + [5.10016 3.59993 4.38119 4.8562 2.57565 5.10015 7.80096 7.67578 4.07849 7.67578 4.62111 + 3.59993 8.09636 4.08197 4.62111 5.10016 3.65645 5.10016 7.67578 5.10016 3.60273 2.57565 + 4.62111 8.28008 4.62111 5.10016 8.34032 5.34 4.62109 3.60273 4.0785 4.86033 3.60273 + 2.57567 4.62109 2.57567 2.57567 8.03619 7.67579 4.0785 7.67576 4.62112 3.59993 8.03619 + 3.65645 4.85619 3.65645 3.06372 ] pdfxs + 53.8201 534.539 m + (temperformanceon64-bittargetsbyshrinking64-bitpoint) + [3.60274 4.07849 9.95562 5.34 4.07849 3.59993 2.81964 4.62111 3.59993 7.67578 4.62111 + 5.10016 4.08197 6.47857 4.62111 7.44032 4.62111 4.62112 3.06372 5.10016 2.57564 5.88291 + 3.60275 4.62111 3.59993 4.62112 4.07849 3.60275 5.93661 4.86031 7.13605 3.65645 5.10017 + 3.59993 2.57564 5.10017 4.85621 2.57567 5.10017 6.96093 4.62109 4.62109 3.06375 5.10017 + 2.57567 5.88288 5.34001 4.62109 2.57567 4.86033 3.5865 ] pdfxs + 289.86 534.539 m + (-) show + 53.8201 524.039 m + (ersto32-bitvalues.Thetransformationbuildsdirectlyo) + [4.07849 3.59993 7.0766 3.60274 7.98118 4.62111 4.62111 3.06372 5.10016 2.57565 7.02274 + 4.31613 4.62111 2.57565 5.10016 4.07849 3.65646 7.73572 6.65758 5.10016 7.55842 3.60275 + 3.59993 4.62111 5.10016 3.65645 2.81965 4.62111 3.59993 7.67578 4.62111 3.60273 2.57567 + 4.62109 8.40009 5.10017 5.10017 2.57567 2.57567 5.10015 7.07629 5.10017 2.57567 3.59993 + 4.0785 4.08195 3.60273 2.57567 8.33636 4.62109 ] pdfxs + (n) show + 53.8201 513.599 m + (AutomaticPoolAllocationbyreplacingpointerswithpool-) + [6.9029 5.10016 3.60274 4.62111 7.67578 4.62111 3.60274 2.57565 6.90196 6.05683 4.86127 + 4.62111 5.3358 6.90289 2.57565 2.57564 4.86104 4.08197 4.62111 3.60275 2.57564 4.62112 + 7.92007 4.86031 7.73605 3.59993 4.0785 5.10015 2.57565 4.62111 4.08197 2.57565 5.10015 + 7.50095 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 3.59993 6.47659 6.65759 2.57564 + 3.60273 7.92033 5.34001 4.86126 4.62109 2.57567 3.07549 ] pdfxs + 53.8201 503.159 m + (relativeindices,andthencompressingthoseindiceswhen) + [3.59993 4.07849 2.57565 4.62111 3.60274 2.57565 4.61629 8.09849 2.57565 5.10016 5.10016 + 2.57565 4.08197 4.07849 3.65645 6.89573 4.62111 5.10016 9.24031 3.60275 5.10016 4.07849 + 9.24008 4.08197 4.62111 7.67576 5.10016 3.59993 4.0785 3.65645 3.65645 2.57565 5.10015 + 8.70126 3.60273 5.10017 4.62109 3.65645 8.15833 2.57567 5.10017 5.10017 2.57567 4.08195 + 4.0785 7.73659 6.65759 5.10017 4.07848 5.10017 ] pdfxs + 53.8201 492.659 m + (theyarecontainedwithinobjectsusedinatype-safeman-) + [3.60274 5.10016 4.07849 8.15604 4.62111 3.59993 7.43865 4.08196 4.62111 4.86031 3.60275 + 4.62111 2.57565 5.10016 4.07849 8.40024 6.65758 2.57565 3.60275 5.10016 2.57564 8.40008 + 4.62111 5.64032 2.81964 4.0785 4.08197 3.60273 6.89653 5.10016 3.65645 4.07848 8.46017 + 2.57567 8.40024 7.92102 3.36289 4.85621 5.34016 4.0785 3.06372 3.65645 4.62109 2.81963 + 7.37843 7.67579 4.62109 5.10017 3.06375 ] pdfxs + 53.8201 482.219 m + (ner\(asinferredbyanunderlyingpointeranalysis\).) + [5.10016 4.07849 6.71993 3.60274 4.62111 6.65644 2.57565 5.10016 2.81964 4.07849 3.59992 + 3.59993 4.0785 8.22023 4.86031 7.91613 4.62111 8.22 5.10016 5.10016 5.10016 4.07849 + 3.59993 2.57565 4.85621 2.57565 5.10016 7.74095 5.34 4.62111 2.57565 4.86033 3.60273 + 4.0785 6.65976 4.62109 5.10017 4.62109 2.57567 4.85621 3.65642 2.57567 3.65645 3.60273 + 2.57564 ] pdfxs + 62.7602 471.779 m + (AutomaticPoolAllocationprovidesthreekeybene\ftsfor) + [6.9029 5.10016 3.60274 4.62111 7.67578 4.62111 3.60274 2.57565 6.66212 6.05683 4.86127 + 4.62111 5.15573 6.90289 2.57565 2.57564 4.86104 4.08197 4.62111 3.60275 2.57564 4.62112 + 7.68023 5.10016 3.59993 4.38119 4.85621 2.57565 5.10016 4.07849 6.23659 3.60273 5.10017 + 3.59993 4.0785 6.77865 4.61612 4.0785 7.49627 5.34001 4.0785 5.10017 4.0785 5.10017 + 3.60273 6.35635 2.81963 4.62109 3.59993 ] pdfxs + 53.8201 461.279 m + (pointercompression.First,itprovidesaknowncompile-) + [5.34 4.62111 2.57565 4.86031 3.60274 4.07849 7.8 4.08196 4.62111 7.67576 5.10016 + 3.59993 4.0785 3.65645 3.65645 2.57565 4.62111 5.10016 10.0758 6.00161 2.57564 3.59993 + 3.65646 3.60275 7.0158 2.57565 7.80282 5.10016 3.59993 4.38119 4.85621 2.57565 5.10015 + 4.0785 7.85651 8.82102 4.85621 5.10017 4.38093 6.65759 9.30031 4.08197 4.62109 7.67579 + 5.10017 2.57567 2.57564 4.0785 3.06375 ] pdfxs + 53.8201 450.839 m + (timemappingbetweenpointersandpools,sothatapool-) + [3.60274 2.57565 7.67578 7.67833 7.67578 4.62111 5.10016 5.10016 2.57565 5.10016 8.28127 + 5.34 4.0785 3.36259 6.4175 4.0785 4.07849 8.76008 5.34 4.62111 2.57565 4.86031 + 3.60275 4.0785 3.59993 7.31644 4.62111 5.10016 8.76023 5.34001 4.86126 4.62109 2.57567 + 3.65645 6.29581 3.65645 8.22116 3.60273 5.10017 4.62109 7.20265 8.22101 5.34001 4.86126 + 4.62109 2.57567 3.06375 ] pdfxs + 53.8201 440.398 m + (relativeindexissu\016cienttocomputethepointervalue.Sec) + [3.59993 4.07849 2.57565 4.62111 3.60274 2.57565 4.61629 6.29849 2.57565 5.10016 5.10016 + 4.07849 7.19637 2.57565 5.8766 3.65645 5.10016 7.67578 4.08196 2.57565 4.07849 4.86001 + 5.88282 3.60275 6.90111 4.08197 4.62111 7.67576 5.10016 5.10016 3.60275 6.4185 3.60273 + 5.10017 6.35865 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 5.88008 4.31612 4.62109 + 2.57567 5.10017 4.0785 6.47581 5.10017 4.0785 4.09764 ] pdfxs + 289.801 440.398 m + (-) show + 53.82 429.898 m + (ond,bysegregatingdatastructuresintodistinctpools,it) + [4.62111 5.10016 5.10016 5.21549 4.86031 7.37628 3.65644 4.07849 4.62111 3.59993 4.0785 + 4.62111 4.62111 3.60275 2.57565 5.10016 7.08096 5.10016 4.62111 3.60275 7.14126 3.65645 + 3.60275 3.59993 5.10016 4.08197 3.60275 5.10016 3.59993 4.07849 6.17645 2.57565 4.86 + 3.60273 7.14094 5.10017 2.57567 3.65642 3.60273 2.57567 5.10017 4.08197 6.06289 5.34001 + 4.86126 4.62109 2.57567 3.65645 5.15557 2.57567 3.5865 ] pdfxs + 282.66 429.898 m + (al-) + [4.62109 2.57567 3.06375 ] pdfxs + 53.82 419.459 m + (lows2) + [2.57565 4.38127 6.65758 5.81652 4.62111 ] pdfxs + 77.8802 423.238 m + /N21 5.97748 Tf + (32) + [3.65923 3.65924 ] pdfxs + 87.9603 419.459 m + /N17 8.96638 Tf + (bytesofaddressspacetobeusedforeachindividual) + [4.86031 4.8562 3.60274 4.0785 5.93652 4.62111 5.09956 4.62111 5.10016 5.10016 3.59993 + 4.0785 3.65645 5.93645 3.65645 5.10016 4.62111 4.08197 6.35842 3.60275 6.90111 5.34 + 6.41841 5.10016 3.65645 4.07848 7.44025 2.81963 4.62109 5.8201 4.0785 4.62109 3.84181 + 7.44001 2.57567 5.10017 5.10017 2.57567 4.85619 2.57567 5.10017 5.10017 4.62109 2.57567 + ] pdfxs + 53.8201 409.018 m + (datastructure.Third,itprovidestype-homogeneouspools) + [5.10016 4.62111 3.60274 7.9811 3.65644 3.60274 3.59993 5.10016 4.08196 3.60274 5.10017 + 3.59993 4.07849 7.55573 6.65758 5.10016 2.57565 3.59993 5.10016 6.05564 2.57565 6.96258 + 5.10016 3.59993 4.38119 4.85621 2.57565 5.10016 4.07849 7.01629 3.3629 4.85621 5.34016 + 4.0785 3.06372 5.10017 4.62112 7.67576 4.62109 4.62112 4.07848 5.10017 4.0785 4.62109 + 5.10017 7.07629 5.34001 4.86126 4.62109 2.57567 3.63137 ] pdfxs + 53.8201 398.518 m + (which,inthedynamiccase,allowsobjectstoberewritten) + [6.65758 5.10016 2.57565 3.84204 5.10016 6.23549 2.57565 8.64007 3.60274 5.10016 7.67857 + 5.10016 4.85621 5.10016 4.62111 7.67578 2.57565 7.68188 4.08197 4.62111 3.65645 4.0785 + 6.23572 4.62111 2.57565 2.57565 4.38126 6.65758 7.07629 4.62111 5.64033 2.81963 4.0785 + 4.08197 3.60273 7.19651 3.60273 8.16125 5.34001 7.73834 3.59993 4.0785 6.65756 3.59993 + 2.57567 3.60273 3.60273 4.0785 5.10017 ] pdfxs + 53.8201 388.079 m + (safelywhenapointermustbeexpandedinsize.Together,) + [3.65644 4.62111 2.81964 4.07849 2.57565 8.15612 6.65758 5.10016 4.07849 8.58008 7.98118 + 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 6.95976 7.43562 5.10016 3.65645 6.96267 + 5.34 7.4985 4.0785 4.85621 5.10016 4.62111 5.10016 5.10015 4.0785 8.5801 2.57567 + 8.46 3.65645 2.57564 4.08197 4.0785 7.61558 5.87766 4.62109 4.62109 4.0785 3.60273 + 5.10017 4.0785 3.59993 2.57567 ] pdfxs + 53.8201 377.579 m + (thesecapabilitiesallowafairlysimplebutpowerfulappr) + [3.60274 5.10016 4.07849 3.65644 6.17841 4.08196 4.62111 5.10016 4.62111 5.10015 2.57565 + 2.57564 2.57565 3.60275 2.57564 4.0785 5.63661 4.62111 2.57565 2.57565 4.38126 8.69758 + 6.66127 2.81964 4.62112 2.57564 3.59993 2.57565 6.89621 3.65645 2.57565 7.67576 5.10016 + 2.57565 6.11842 5.10017 5.10017 5.70273 5.34001 4.38118 6.4175 4.0785 3.59993 2.81963 + 5.10017 4.67573 4.62109 5.10017 5.10017 3.59993 ] pdfxs + (o) show + 279.3 377.579 m + (ach) + [4.62112 3.84196 5.10017 ] pdfxs + 53.8201 367.138 m + (toautomaticpointercompression.) + [3.60274 7.62111 4.62111 5.10016 3.60274 4.62111 7.67578 4.62111 3.60274 2.57565 7.14212 + 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 6.65976 4.08197 4.62111 7.67576 5.10016 + 3.59993 4.0785 3.65645 3.65645 2.57565 4.62111 5.10016 2.57565 ] pdfxs + 62.7603 356.699 m + (Thedynamicversionofpointercompressionisinteresting) + [6.65758 5.10016 6.77833 5.10016 4.8562 5.10016 4.62111 7.67578 2.57565 6.78188 4.61614 + 4.0785 3.59993 3.65645 2.57564 4.62112 7.68007 4.62111 5.45972 5.34 4.62111 2.57565 + 4.86031 3.60275 4.0785 6.3 4.08197 4.62111 7.67579 5.10017 3.59993 4.07848 3.65645 + 3.65645 2.57564 4.62112 7.74008 2.57567 6.23635 2.57567 4.86001 3.60273 4.0785 3.59993 + 4.0785 3.65642 3.60273 2.57567 5.10017 4.62109 ] pdfxs + 53.8201 346.199 m + (becauseitcouldallowindicestostartoutevensmallertha) + [5.34 4.07849 4.08196 4.62111 5.10016 3.65644 6.83857 2.57565 6.24266 4.08196 4.62111 + 5.10016 2.57564 7.80024 4.62111 2.57565 2.57565 4.38126 9.23742 2.57565 5.10016 5.10015 + 2.57565 4.08197 4.07849 6.35653 3.60275 7.32103 3.65645 3.60275 4.62112 3.59992 6.1829 + 4.62109 5.10017 6.30266 4.0785 4.6162 4.0785 7.86001 3.65645 7.67576 4.62112 2.57564 + 2.57567 4.0785 6.23977 3.60273 5.10017 4.62109 ] pdfxs + (n) show + 53.8201 335.759 m + (32bits\(e.g.,16bits\)andgrowasneeded.Webelievethat) + [4.62111 7.86118 5.10016 2.57565 3.60274 6.89652 3.60274 4.07849 2.57565 4.62111 2.57565 + 5.87549 4.62111 7.86119 5.10016 2.57565 3.60273 3.65646 6.84282 4.62111 5.10016 8.40008 + 4.62111 3.59993 4.38112 9.89758 4.62111 6.95653 5.10016 4.0785 4.0785 5.10017 4.07848 + 5.10017 7.37558 8.69858 7.43834 5.34001 4.0785 2.57567 2.57564 4.0785 4.61605 7.37857 + 3.60273 5.10017 4.62109 3.60273 ] pdfxs + 53.8201 325.319 m + (thekeychallengeindynamicpointercompressionismak-) + [3.60274 5.10016 7.91841 4.61613 4.07849 8.63612 3.8418 5.10016 4.62111 2.57565 2.57564 + 4.0785 5.10016 4.62111 7.9185 2.57565 8.94007 5.10016 4.85621 5.10016 4.62111 7.67578 + 2.57565 7.92211 5.34 4.62111 2.57565 4.86031 3.60275 4.0785 7.43984 4.08197 4.62109 + 7.67579 5.10017 3.59993 4.07848 3.65645 3.65645 2.57564 4.62112 8.88032 2.57567 7.43635 + 7.67579 4.62109 4.85621 3.06372 ] pdfxs + 53.8201 314.819 m + (ingaccessestopoolobjectse\016cient\(andnotthedynamic) + [2.57565 5.10016 8.04103 4.62111 4.08196 4.08196 4.07849 3.65645 3.65644 4.07849 7.13644 + 3.60275 8.04095 5.34 4.86127 4.62111 6.05573 4.62111 5.64032 2.81964 4.0785 4.08197 + 3.60273 7.13637 4.0785 7.67576 4.08197 2.57564 4.0785 4.86031 7.08282 3.60273 4.62109 + 5.10017 8.58017 5.10017 4.62109 7.08274 3.60273 5.10017 7.55865 5.10017 4.85621 5.10017 + 4.62109 7.67579 2.57564 4.08197 ] pdfxs + 53.8201 304.379 m + (indexexpansionitself\).Infact,theindexexpansionand) + [2.57565 5.10016 5.10016 4.07849 8.99635 4.07849 4.85621 5.10015 4.62111 5.10016 3.65645 + 2.57565 4.62111 9.24031 2.57565 3.60275 3.65645 4.07849 2.57565 3.53949 3.60275 9.6558 + 3.30019 9.24 2.81964 4.62112 4.08196 3.60275 6.89557 3.60275 5.10016 8.21842 2.57567 + 5.10017 5.10017 4.0785 9.05611 4.0785 4.85619 5.10017 4.62112 5.10017 3.65642 2.57567 + 4.62109 9.18017 4.62109 5.10017 5.10017 ] pdfxs + 53.8201 293.939 m + (datacopyingarequitesimplecomparedwithwidelyused) + [5.10016 4.62111 3.60274 8.52095 4.08196 4.62111 4.86031 4.8562 2.57565 5.10015 8.58102 + 4.62111 3.59993 8.03866 4.85621 5.10016 2.57565 3.60275 8.03857 3.65645 2.57565 7.67576 + 5.10016 2.57565 7.97857 4.08197 4.62111 7.67576 5.10016 4.62112 3.59993 4.0785 9.12016 + 6.65759 2.57564 3.60273 9.00002 6.65759 2.57564 5.10017 4.0785 2.57567 8.81611 5.10017 + 3.65645 4.07848 5.10017 ] pdfxs + 53.8201 283.439 m + (algorithmsforgarbagecollectiontoday\(nopointertrave) + [4.62111 2.57565 4.62111 4.62111 3.59993 2.57565 3.60273 5.10016 7.67578 7.07652 2.81964 + 4.62112 7.07985 4.62111 4.62112 3.59993 5.10016 4.62111 4.62111 7.6185 4.08197 4.62111 + 2.57565 2.57564 4.0785 4.08196 3.60275 2.57565 4.62111 8.58016 3.60275 4.86127 5.10016 + 4.38118 8.33603 3.60273 5.10017 8.16125 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 + 7.13984 3.60273 3.59993 4.38118 4.61612 4.0785 ] pdfxs + (r) show + 289.86 283.439 m + (-) show + 53.8201 273 m + (salsareneeded,onlysourcepoolspointingdirectlytothe) + [3.65644 4.62111 2.57565 7.31652 4.62111 3.59993 7.85857 5.10016 4.07849 4.07849 5.10016 + 4.0785 5.10016 6.59548 4.62111 5.10016 2.57565 8.63605 3.65645 4.62112 5.10015 3.59993 + 4.08197 7.85842 5.34 4.86127 4.62111 2.57565 7.37653 5.34 4.62109 2.57567 4.86033 + 3.60273 2.57567 5.10017 8.34101 5.10017 2.57567 3.59993 4.0785 4.08195 3.60273 2.57567 + 8.63635 3.60273 8.34094 3.60273 5.10017 4.0785 ] pdfxs + 53.8201 262.56 m + (indexedpoolneedtoberewritten,andsimplemetadatais) + [2.57565 5.10016 5.10016 4.07849 4.8562 4.0785 8.52008 5.34 4.86127 4.62111 5.99557 + 5.10016 4.0785 4.07849 8.58 3.60275 7.98118 5.34 7.4985 3.59993 4.0785 6.65758 + 3.59993 2.57564 3.60275 3.60275 4.0785 5.10016 6.0558 4.62111 5.10017 8.52001 3.65645 + 2.57564 7.67579 5.10017 2.57567 7.43834 7.67579 4.0785 3.60273 4.62109 5.10017 4.62109 + 3.60273 7.92102 2.57567 3.65642 ] pdfxs + 53.8201 252.06 m + (su\016cienttoknowwhat\feldstoexpandineachsourcepool\).) + [3.65644 5.10016 7.67578 4.08196 2.57565 4.07849 4.86 5.82266 3.60274 6.84095 4.85621 + 5.10016 4.38096 8.93742 6.65758 5.10016 4.62111 5.82275 5.10016 4.0785 2.57564 5.10016 + 5.93645 3.60275 6.90111 4.0785 4.85621 5.10016 4.62111 5.10016 7.38 2.57567 7.38031 + 4.0785 4.62109 3.84181 7.38024 3.65645 4.62109 5.10017 3.59993 4.08197 6.35841 5.34001 + 4.86126 4.62109 2.57567 3.60273 2.57567 ] pdfxs + 53.8201 241.62 m + (Thekeychallengewillbemakingaddresscomputationsef-) + [6.65758 5.10016 7.31857 4.61613 4.07849 8.03613 3.8418 5.10016 4.62111 2.57565 2.57564 + 4.0785 5.10016 4.62111 7.3185 6.65758 2.57565 2.57564 5.69557 5.34 7.37857 7.67578 + 4.62111 4.85621 2.57565 5.10016 7.80095 4.62111 5.10016 5.10017 3.59993 4.0785 3.65642 + 6.83644 4.08197 4.62109 7.67579 5.10017 5.10017 3.60273 4.62109 3.60273 2.57567 4.62109 + 5.10017 6.83627 4.0785 2.81963 3.06375 ] pdfxs + 53.8201 231.18 m + (\fcientandavoidingconditionalcodeforloadingandstori) + [5.10016 4.08196 2.57565 4.07849 4.86016 6.24258 4.62111 5.10016 7.7403 4.38119 4.61614 + 4.62111 2.57565 5.10016 2.57564 5.10016 7.14104 4.08197 4.62111 5.10016 5.10016 2.57564 + 3.60275 2.57565 4.62111 5.10016 4.62112 5.1558 4.08197 4.86095 5.10016 6.71842 2.81963 + 4.62109 6.24001 2.57567 4.62109 4.62109 5.10017 2.57567 5.10017 7.2011 4.62109 5.10017 + 7.74032 3.65645 3.60273 4.62109 3.59993 2.57567 ] pdfxs + (n) show + 288.36 231.18 m + (g) show + 53.8201 220.68 m + (compressibleindexvalues.) + [4.08196 4.62111 7.67578 5.10016 3.59993 4.07849 3.65644 3.65645 2.57565 5.10016 2.57565 + 7.13857 2.57565 5.10016 5.10015 4.0785 7.97605 4.31613 4.62111 2.57565 5.10016 4.07849 + 3.65646 2.57564 ] pdfxs + 53.8201 196.86 m + /N9 11.9552 Tf + (Acknowledgements) + [8.63982 5.27982 6.65999 6.65999 5.87993 8.63982 3.29999 5.27982 6.65999 6 5.27982 + 9.95991 5.27982 6.65999 3.95991 4.67991 ] pdfxs + 53.8201 182.399 m + /N17 8.96638 Tf + (ThisworkwassupportedinpartbyanNSFCAREER) + [6.65758 5.10016 2.57565 8.57636 6.4175 4.62111 3.59993 9.83635 6.4175 4.62111 8.6366 + 3.65645 5.10016 5.10016 5.34016 4.62111 3.59993 3.60275 4.0785 10.14 2.57565 10.0803 + 5.10016 4.62111 3.59993 8.6429 4.86033 9.83604 4.62109 10.0802 6.90289 5.10017 11.0415 + 6.65759 6.90289 6.7757 6.29667 6.29667 6.77573 ] pdfxs + 53.8201 171.96 m + (Award\(EIA-00-93426\),theNSFNextGenerationSoftware) + [6.9029 6.4175 4.62111 3.59993 8.16023 3.60274 6.29667 3.30019 6.90289 3.06372 4.62111 + 4.62112 3.06372 4.62111 4.62112 4.62111 4.62111 4.62112 3.60275 5.51572 3.60275 5.10016 + 7.13833 6.90289 5.10016 9.06176 6.90289 4.0785 4.85621 6.7229 7.25576 4.07848 5.10017 + 4.0785 3.59993 4.62109 3.60273 2.57567 4.62109 8.10016 5.10017 4.62109 2.81963 3.36274 + 6.4175 4.62109 3.59993 4.0785 ] pdfxs + 53.8201 161.46 m + (Program\(EIA-01-03756\),theMARCOFocusResearchCen-) + [6.29667 3.59993 4.62111 4.62111 3.59993 4.62111 9.77562 3.60274 6.29667 3.30019 6.90289 + 3.06372 4.62111 4.62112 3.06372 4.62111 4.62112 4.62111 4.62111 4.62112 3.60275 4.85557 + 3.60275 5.10016 6.23834 8.46031 6.90289 6.53572 6.65758 9.35651 5.22155 4.86126 4.08197 + 5.10017 5.87658 6.77573 4.0785 3.65642 4.0785 4.62109 3.59993 3.84213 7.32009 6.65759 + 4.07848 5.10017 3.06375 ] pdfxs + 53.8201 151.019 m + (terProgramthroughGSRC,andanIntelGraduateFellow-) + [3.60274 4.07849 6.53985 6.29667 3.59993 4.62111 4.62111 3.59993 4.62111 10.5557 3.60275 + 5.10016 3.59993 4.62111 5.10016 4.62112 8.04023 7.25575 5.10016 6.53572 6.65758 5.45557 + 4.62111 5.10016 8.04031 4.62111 8.04031 3.30018 4.86033 3.60273 4.0785 5.51565 7.25576 + 3.59993 4.62109 5.10017 5.10017 4.62109 3.60273 7.01842 5.22155 4.0785 2.57567 2.57564 + 4.38103 6.65759 3.06372 ] pdfxs + 53.8201 140.579 m + (ship.WearegratefultoJohnCriswellforhisextensiveassi) + [3.65644 5.10016 2.57565 5.10016 6.35565 8.69858 6.35864 4.62111 3.59993 6.29841 4.62111 + 3.59993 4.62112 3.60275 4.07849 2.81965 5.10016 4.79549 3.60275 6.84095 4.73929 4.62111 + 5.10016 7.38 6.65758 3.59993 2.57565 3.65645 6.4175 4.0785 2.57564 4.73565 2.81963 + 4.62109 5.8201 5.10017 2.57567 5.87658 4.0785 4.85619 3.60273 4.0785 5.10017 3.65645 + 2.57564 4.61629 6.2985 4.62109 3.65645 3.65642 2.55545 ] pdfxs + 286.26 140.579 m + (s-) + [3.65645 3.06372 ] pdfxs + 53.8201 130.079 m + (tance,bothwiththeimplementationofpointercompressio) + [3.60274 4.62111 5.10016 4.08196 4.07849 5.21564 5.34 4.62111 3.60274 7.68015 6.65758 + 2.57565 3.60275 7.68007 3.60275 5.10016 6.65865 2.57565 7.67576 5.10016 2.57565 4.07849 + 7.67578 4.07849 4.86001 3.60275 4.62111 3.60275 2.57565 4.62111 7.62 4.62109 5.33979 + 5.34001 4.62109 2.57567 4.86033 3.60273 4.0785 6.18008 4.08197 4.62109 7.67579 5.10017 + 3.59993 4.07848 3.65645 3.65645 2.57564 4.62112 ] pdfxs + (n) show + 53.8201 119.639 m + (andwiththeexperiments.Finally,wethanktheanonymous) + [4.62111 5.10016 7.50008 6.65758 2.57565 3.60274 7.44024 3.60274 5.10016 6.53834 4.0785 + 4.85621 5.34023 4.0785 3.59993 2.57564 7.67578 4.07849 4.86024 3.60275 3.65645 6.41572 + 6.00161 2.57564 5.10016 4.62112 2.57564 2.57565 4.07606 5.09565 6.4175 6.47857 3.60273 + 5.10017 4.62109 5.10017 7.25628 3.60273 5.10017 6.47857 4.62109 5.10017 4.62109 4.86018 + 4.85621 7.67576 4.62112 5.10017 3.65642 ] pdfxs + 53.8201 109.199 m + (reviewersfortheirvaluablefeedbackonthiswork.) + [3.59993 4.07849 4.8562 2.57565 4.07849 6.4175 4.07849 3.59993 6.71644 2.81964 4.62111 + 6.65992 3.60275 5.10016 4.07849 2.57565 6.65985 4.31613 4.62111 2.57565 5.10016 4.62111 + 5.10016 2.57565 7.1985 2.81964 4.0785 4.0785 5.10015 5.10016 4.62112 3.84181 7.97628 + 4.62109 8.16024 3.60273 5.10017 2.57567 6.71643 6.4175 4.62109 3.59993 4.85621 2.57567 + ] pdfxs + 53.8201 90.5387 m + /N9 11.9552 Tf + (9.REFERENCES) + [6 14.8801 8.63982 7.97991 7.31991 7.97991 8.63982 7.97991 8.63981 8.63982 7.97991 + 6.65999 ] pdfxs + 58.0201 83.6387 m + /N45 7.97009 Tf + ([1]A.Adl-Tabatabai,J.Bha) + [2.33886 4.25805 6.8387 6.36131 5.15879 6.36131 4.67772 2.33886 2.81872 5.39706 4.25805 + 4.67773 4.25805 3.29837 4.25805 4.67773 4.25805 2.33887 5.15887 4.31609 5.21871 5.99927 + 4.67772 4.25806 ] pdfxs + (r) show + (adwaj,M.) + [4.25805 4.67772 5.87722 4.73789 2.58275 5.09894 7.74064 5.21901 ] pdfxs + (C) show + (ie) + [2.33888 3.77824 ] pdfxs + (r) show + (niak,M.Eng,) + [4.67774 2.33886 4.25807 4.44186 5.21896 7.74063 5.15887 5.76344 4.67772 4.25807 2.33886 + ] pdfxs + 71.4603 74.699 m + (J.Fang,B.Le) + [4.31609 5.2187 4.79944 4.25805 4.67772 4.25806 5.15902 5.99927 5.15902 5.2836 3.77824 + ] pdfxs + (w) show + (is,B.Mu) + [2.33887 3.35923 5.15872 5.99927 5.15902 7.74064 4.67772 ] pdfxs + (r) show + (phy,andJ.Stichnoth.Imp) + [4.67773 4.43757 3.7218 5.33887 4.25805 4.67773 7.49756 4.31607 5.21871 4.67774 3.29837 + 2.33886 3.53842 4.67774 4.67774 4.25805 3.29837 4.67774 5.21879 3.06284 7.07653 4.67774 + ] pdfxs + (r) show + (oving) + [4.01791 4.44186 2.33888 4.67774 4.25805 ] pdfxs + 334.44 728.219 m + (64-bitJavaIPFpe) + [4.25807 4.25805 2.81871 4.67774 2.33888 6.11844 4.31607 4.01791 3.96203 7.1379 3.06284 + 5.76341 8.3396 4.91766 3.77827 ] pdfxs + (r) show + (fo) + [2.58274 4.25805 ] pdfxs + (r) show + (mancebycomp) + [7.07653 4.25805 4.67772 3.77829 6.47824 4.43758 7.32179 3.77824 4.25805 7.07658 4.67772 + ] pdfxs + (r) show + (essingheap) + [3.77824 3.35925 3.35925 2.33886 4.67777 7.01786 4.67772 3.77829 4.25805 4.67772 ] pdfxs + 334.44 719.279 m + (r) show + (efe) + [3.77827 2.58276 3.77824 ] pdfxs + (r) show + (ences.In) + [3.77827 4.67774 3.77827 3.77824 3.35925 5.15895 3.06284 4.67772 ] pdfxs + 386.28 719.279 m + /N126 7.97009 Tf + (Proc.2004Int'lSymposiumonCode) + [5.81661 3.18321 3.96324 3.96203 5.57849 4.38307 4.38312 4.38307 7.44317 3.30396 4.79622 + 2.82316 2.63862 5.21765 4.79622 4.13852 7.02181 3.963 4.38307 3.48091 2.63862 4.61976 + 10.0218 4.38307 7.85609 6.11961 3.96315 4.38307 3.96201 ] pdfxs + 334.44 710.279 m + (GenerationandOptimization) + [6.59976 3.96203 4.79622 3.96201 3.18321 4.38309 2.82316 2.63865 4.38309 7.8563 4.38309 + 4.79622 7.443 6.54065 4.38309 2.82316 2.63862 7.02181 2.63862 3.48091 4.38307 2.82316 + 2.63862 4.38307 4.79622 ] pdfxs + 444.18 710.279 m + /N45 7.97009 Tf + (,pages100{110,Ma) + [5.15902 4.67772 4.25805 4.25805 3.77824 6.11926 4.25805 4.25805 4.258 4.25805 4.25805 + 4.25805 4.25805 4.97885 7.74065 4.25805 ] pdfxs + (r) show + (.2004.) + [5.15902 4.25805 4.25805 4.258 4.25805 2.33886 ] pdfxs + 321.06 700.319 m + ([2]) + [2.33886 4.25807 6.77894 ] pdfxs + (C) show + (.S.AnanianandM.Rina) + [5.21871 4.67774 5.15871 6.36133 4.67772 4.25807 4.67774 2.33886 4.25807 7.55757 4.25807 + 4.67772 7.49759 7.74065 5.21903 6.24309 2.33886 4.67777 4.25805 ] pdfxs + (r) show + (d.DataSizeOptimizationsfo) + [4.67772 5.15902 6.47906 4.25805 3.29834 7.0182 4.67772 2.33891 3.77824 6.59826 6.59685 + 4.67772 3.29834 2.33891 7.07653 2.33886 3.77829 4.258 3.29834 2.33891 4.258 4.67777 + 6.1193 2.58274 4.25805 ] pdfxs + (r) show + 334.44 691.379 m + (JavaP) + [4.31607 4.01791 3.96203 7.1379 5.76344 ] pdfxs + (r) show + (og) + [4.25805 4.25807 ] pdfxs + (r) show + (ams.In) + [4.25805 7.07656 3.35925 5.03878 3.06284 4.67772 ] pdfxs + 405.06 691.379 m + /N126 7.97009 Tf + (LCTES) + [5.3435 6.11961 6.11956 5.81661 4.79622 ] pdfxs + 433.26 691.379 m + /N45 7.97009 Tf + (,SanDiego,) + [5.21879 4.67772 4.25805 7.49759 6.47906 2.33891 3.77824 4.25805 4.25805 5.09876 ] pdfxs + (C) show + (A,Jun2003.) + [6.36128 5.15873 4.3161 4.67772 7.61766 4.25805 4.25805 4.258 4.25805 2.33886 ] pdfxs + 321.06 681.419 m + ([3]) + [2.33886 4.25807 6.77894 ] pdfxs + (T) show + (.Austin,etal.) + [5.21871 6.36133 4.67772 3.35925 3.29837 2.33886 4.67774 5.15895 3.77827 6.11836 4.25807 + 2.33886 5.15902 ] pdfxs + (T) show + (hePointe) + [4.67774 6.59826 5.52332 4.25805 2.33886 4.43758 3.29834 3.77824 ] pdfxs + (r) show + (-intensiveBenchma) + [2.81876 2.33886 4.43782 3.29834 3.77824 4.67777 3.35925 2.33886 4.20202 6.65842 5.99926 + 3.77824 4.67777 3.53825 4.67772 7.07658 4.25805 ] pdfxs + (r) show + (kSuite.) + [7.26193 4.67772 4.67777 2.33886 3.29834 3.77824 2.33891 ] pdfxs + 334.44 672.419 m + /N39 7.97009 Tf + (www.cs.wisc.edu/~austin/ptr-dist.html) + [4.25807 4.25805 4.25807 4.25805 4.25807 4.25807 4.25805 4.25807 4.25805 4.25807 4.25807 + 4.25805 4.25807 4.25805 4.25807 4.25807 4.25805 4.25805 4.25805 4.25805 4.25805 4.25805 + 4.258 4.19813 4.25805 4.19818 4.25805 4.19818 4.25805 4.25805 4.19794 4.25805 4.19818 + 4.25805 4.19818 4.25805 4.25805 ] pdfxs + 491.701 672.419 m + /N45 7.97009 Tf + (,Sept1995.) + [4.61879 4.67772 3.77829 4.67772 6.11851 4.25805 4.25805 4.258 4.25805 2.33886 ] pdfxs + 321.06 662.46 m + ([4]B.-) + [2.33886 4.25807 6.77894 5.99926 2.33886 2.81873 ] pdfxs + (C) show + (.) + [5.21886 ] pdfxs + (C) show + (hengandW.meiH) + [4.67774 3.77827 4.67772 7.07791 4.25807 4.67772 7.49759 8.70011 5.21879 7.07653 3.77829 + 5.09901 6.36133 ] pdfxs + (w) show + (u.Modularinte) + [4.67777 5.15878 7.74065 4.49789 4.67772 4.67777 2.33886 4.25805 6.17946 2.33886 4.43782 + 3.29834 3.77824 ] pdfxs + (r) show + (p) + [4.67777 ] pdfxs + (r) show + (ocedu) + [4.49818 3.77824 3.77829 4.67772 4.67777 ] pdfxs + (r) show + (al) + [4.258 2.33891 ] pdfxs + 334.44 653.52 m + (pointeranalysisusingaccesspaths:Design,) + [4.91766 4.25807 2.33886 4.43758 3.29837 3.77827 6.17978 4.25807 4.67772 4.25807 2.33886 + 4.44189 3.35922 2.33888 6.17938 4.67774 3.35922 2.33888 4.67772 7.07786 4.25805 3.77824 + 3.77829 3.77824 3.35925 6.05915 4.67772 4.25805 3.29834 4.67777 3.3592 6.11888 6.47906 + 3.77829 3.35925 2.33886 4.25805 4.67772 2.33886 ] pdfxs + 334.44 644.58 m + (implementation,andevaluation.In) + [2.33886 7.07656 4.67774 2.33886 3.77827 7.07656 3.77827 4.43765 3.29837 4.25807 3.29837 + 2.33886 4.25807 4.67772 5.15887 4.25807 4.67772 7.55775 3.77824 3.96174 4.25805 2.33886 + 4.67772 4.25805 3.29834 2.33886 4.25805 4.67777 5.15892 3.06281 4.67772 ] pdfxs + 467.34 644.58 m + /N126 7.97009 Tf + (PLDI) + [5.81661 5.3435 6.48217 3.30396 ] pdfxs + 488.28 644.58 m + /N45 7.97009 Tf + (,pages57{69,) + [5.15902 4.67772 4.25805 4.25805 3.77824 6.11926 4.25805 4.25805 4.258 4.25805 4.25805 + 2.33886 ] pdfxs + 334.44 635.58 m + (Vancouve) + [5.64116 4.25807 4.67772 3.77827 4.25807 4.67774 4.20202 3.77827 ] pdfxs + (r) show + (,B) + [5.21886 5.99926 ] pdfxs + (r) show + (itish) + [2.33886 3.29837 2.33888 3.35922 7.49759 ] pdfxs + (C) show + (olumbia,) + [4.258 2.33891 4.67772 6.8364 4.67772 2.33891 4.258 5.15873 ] pdfxs + (C) show + (anada,June2000.) + [4.258 4.67777 4.25805 4.67772 4.25805 5.15878 4.3161 4.67772 4.67772 6.65812 4.25805 + 4.25805 4.258 4.25805 2.33886 ] pdfxs + 321.06 625.62 m + ([5]J.S.Foste) + [2.33886 4.25807 6.77894 4.31607 5.21871 4.67774 5.21886 4.79944 4.25807 3.35922 3.29837 + 3.77827 ] pdfxs + (r) show + (,M.Fahnd) + [5.09887 7.74063 5.21903 5.51944 -0.00200948 4.25807 4.67772 4.67777 4.67772 ] pdfxs + (r) show + (ich,andA.Aiken.Polymo) + [2.33886 3.53835 4.67772 5.21888 4.25805 4.67772 7.55775 6.36133 5.15878 6.36133 2.33886 + 4.20187 3.77824 4.67777 5.21894 5.52332 4.25805 2.33886 4.44186 7.07658 4.258 ] pdfxs + (r) show + (phic) + [4.67777 4.67772 2.33886 3.77829 ] pdfxs + 334.44 616.68 m + (ve) + [4.20187 3.77827 ] pdfxs + (r) show + (susmonomo) + [3.35922 4.67774 6.2394 7.07656 4.25805 4.67774 4.25807 7.07653 4.25807 ] pdfxs + (r) show + (phic\ro) + [4.67774 4.67774 2.33886 6.53839 4.67772 4.01805 ] pdfxs + (w) show + (-insensitivepoints-toanalysisfo) + [2.81871 2.33886 4.67777 3.35925 3.77824 4.67772 3.35925 2.33886 3.29834 2.33886 4.20183 + 6.65842 4.91766 4.25805 2.33886 4.43758 3.29834 3.35925 2.81871 3.29834 7.01806 4.25805 + 4.67772 4.25805 2.33886 4.44186 3.35925 2.33886 6.17941 2.58274 4.25805 ] pdfxs + (r) show + 334.44 607.68 m + (c.In) + [3.77827 5.15871 3.06284 4.67772 ] pdfxs + 354 607.68 m + /N126 7.97009 Tf + (SAS'00:Proc.7thInt'lSymp.onStaticAnalysis) + [4.79622 6.36374 4.79622 2.63865 4.38309 4.38307 6.53867 5.81661 3.18321 3.96324 3.96203 + 5.57849 4.38307 2.82316 7.44293 3.30396 4.79622 2.82316 2.63862 5.27742 4.79622 4.13852 + 7.02181 4.38307 5.63862 4.38307 7.85609 4.79622 2.82316 4.38307 2.82316 2.63862 7.02206 + 6.12367 4.79622 4.38307 2.1576 4.13852 3.48091 2.63862 3.48087 ] pdfxs + 537.78 607.68 m + /N45 7.97009 Tf + (,) show + 334.441 598.74 m + (pages175{198,London,UK,2000.) + [4.67774 4.25805 4.25807 3.77827 6.11923 4.25807 4.25805 4.25807 4.25805 4.25807 4.25807 + 4.25805 5.03903 5.28358 4.25805 4.67774 4.67772 4.25805 4.67772 5.15887 6.36133 6.59713 + 5.15878 4.25805 4.25805 4.258 4.25805 2.33886 ] pdfxs + 321.061 588.78 m + ([6]G.Heise) + [2.33886 4.25807 6.77894 6.66385 5.15878 6.36133 3.77824 2.33888 3.35922 3.77827 ] pdfxs + (r) show + (,K.Elphinstone,J.Vochteloo,S.Russell,and) + [5.15895 6.59713 5.15902 5.76344 2.33886 4.67774 4.67774 2.33886 4.67772 3.35925 3.29834 + 4.25805 4.67772 3.77829 5.21894 4.3161 5.15892 5.64116 4.49803 3.53811 4.43758 3.29834 + 3.77824 2.33891 4.49794 4.25805 5.09901 4.67772 5.21888 6.24309 4.67777 3.3592 3.35925 + 3.77829 2.33886 2.33886 5.15902 4.25805 4.67772 4.67777 ] pdfxs + 334.441 579.78 m + (J.Liedtke.) + [4.31607 5.21871 5.28358 2.33886 3.77827 4.67774 3.29837 4.20195 3.77827 5.21886 ] pdfxs + (T) show + (heMungisingle-add) + [4.67774 6.59826 7.74063 4.67774 4.67772 4.25805 5.21894 3.35925 2.33886 4.67772 4.25805 + 2.33886 3.77829 2.81871 4.25805 4.67777 4.67772 ] pdfxs + (r) show + (ess-spaceope) + [3.77824 3.35925 3.35925 2.81871 3.35925 4.67777 4.258 3.77829 6.5381 4.25805 4.9178 + 3.77824 ] pdfxs + (r) show + (ating) + [4.25805 3.29834 2.33886 4.67777 4.25805 ] pdfxs + 334.441 570.84 m + (system.) + [3.35925 4.44186 3.35925 3.29837 3.77824 7.07656 2.33886 ] pdfxs + 364.921 570.84 m + /N126 7.97009 Tf + (Software{PracticeandExperience) + [4.79622 4.38309 2.63865 2.82316 5.69845 4.38309 3.18321 6.96203 7.44293 5.81661 3.18318 + 4.38307 3.96201 2.82316 2.63862 3.54184 6.902 4.38307 4.79622 7.44303 5.81661 3.96161 + 3.96295 3.96201 3.6032 2.63862 3.96201 4.79622 3.54199 3.96201 ] pdfxs + 497.281 570.84 m + /N45 7.97009 Tf + (,28\(9\):901{928,) + [4.97894 4.25805 4.25805 3.29834 4.258 3.29834 2.33891 4.258 4.25805 4.25805 4.25805 + 4.25805 4.258 4.25805 2.33886 ] pdfxs + 334.441 561.84 m + (1998.) + [4.25807 4.25805 4.25807 4.25805 2.33888 ] pdfxs + 321.061 551.88 m + ([7]) + [2.33886 4.25807 6.77894 ] pdfxs + (C) show + (.Lattne) + [5.21871 5.28358 4.25805 3.29837 3.29837 4.67774 3.77827 ] pdfxs + (r) show + (.) show + 378.841 551.88 m + /N126 7.97009 Tf + (MacroscopicDataStructureAnalysisand) + [7.67912 4.38309 3.96201 3.18321 4.38309 3.48087 3.54199 4.38307 4.38312 2.63862 6.84184 + 6.48217 4.38312 2.82311 7.44303 4.79622 2.82316 3.6032 4.61971 3.96201 2.82316 4.61971 + 3.18313 6.96201 6.12367 4.79622 4.38307 2.1576 4.13852 3.48091 2.63862 6.60088 4.38307 + 4.79622 4.38312 ] pdfxs + 334.441 542.94 m + (Optimization) + [6.54065 4.38309 2.82316 2.63867 7.02181 2.63865 3.48087 4.38309 2.82316 2.63865 4.38309 + 4.79622 ] pdfxs + 382.981 542.94 m + /N45 7.97009 Tf + (.PhDthesis,) + [5.21879 5.76344 4.67772 9.29891 3.29834 4.67772 3.77829 3.35925 2.33886 3.35925 5.15892 + ] pdfxs + (C) show + (omputerScienceDept.,) + [4.258 7.07658 4.67772 4.67777 3.29834 3.77824 6.05978 4.67772 3.77829 2.33886 3.77824 + 4.67777 3.77824 6.59811 6.47906 3.77829 4.67772 3.29834 2.33886 2.33891 ] pdfxs + 334.441 533.94 m + (Unive) + [6.36133 4.67772 2.33888 4.20195 3.77827 ] pdfxs + (r) show + (sityofIllinoisatU) + [3.35922 2.33888 3.0582 7.32179 4.25807 5.4029 3.06284 2.33886 2.33886 2.33888 4.67774 + 4.25805 2.33888 6.23922 4.25805 6.05825 6.36133 ] pdfxs + (r) show + (bana-) + [4.67772 4.25805 4.67772 4.25805 2.81876 ] pdfxs + (C) show + (hampaign,U) + [4.67777 4.258 7.07658 4.67772 4.25805 2.33886 4.25805 4.67772 5.15897 6.36133 ] pdfxs + (r) show + (bana,IL,) + [4.67772 4.25805 4.67772 4.25805 5.15887 3.06281 5.28356 2.33886 ] pdfxs + 334.441 525 m + (May2005.) + [7.74063 4.01823 7.32179 4.25807 4.25805 4.25807 4.25805 2.33888 ] pdfxs + 375.601 525 m + /N126 7.97009 Tf + (See) + [4.79622 3.54187 3.96203 ] pdfxs + 390.901 525 m + /N39 7.97009 Tf + (http://llvm.cs.uiuc.edu) + [4.25807 4.25805 4.25807 4.25805 4.25805 4.25805 4.25805 4.258 4.25805 4.25805 4.25805 + 4.25805 4.258 4.25805 4.25805 4.25805 4.25805 4.258 4.25805 4.25805 4.25805 4.25805 + 4.258 ] pdfxs + 488.881 525 m + /N126 7.97009 Tf + (.) show + 321.061 515.04 m + /N45 7.97009 Tf + ([8]) + [2.33886 4.25807 6.77894 ] pdfxs + (C) show + (.LattnerandV.Adve.AutomaticPoolAllocationfo) + [5.21871 5.28358 4.25805 3.29837 3.29837 4.67774 3.77827 6.05978 4.25807 4.67772 7.55775 + 6.36133 5.15878 6.36133 4.67772 4.20173 3.77824 5.15873 6.36133 4.67772 3.29834 4.25805 + 7.07653 4.25805 3.29834 2.33886 6.5382 5.76341 4.49818 4.25805 5.09901 6.36133 2.33886 + 2.33886 4.49789 3.77824 4.25805 3.29834 2.33886 4.25805 7.43782 2.58274 4.25805 ] pdfxs + (r) show + 334.441 506.1 m + (DisjointDataSt) + [6.47906 2.33886 3.35925 2.58276 4.25805 2.33886 4.43775 6.11828 6.47906 4.25805 3.29837 + 7.01822 4.67774 3.29837 ] pdfxs + (r) show + (uctu) + [4.67774 3.77824 3.29834 4.67777 ] pdfxs + (r) show + (es.In) + [3.77824 3.35925 5.21894 3.06281 4.67772 ] pdfxs + 441.361 506.1 m + /N126 7.97009 Tf + (Proc.ACMSIGPLAN) + [5.81661 3.18318 3.96324 3.96201 5.57846 6.12367 6.11961 10.7392 4.79622 3.30396 6.59976 + 5.81661 5.3435 6.36376 6.36371 ] pdfxs + 334.441 497.1 m + (WorkshoponMemorySystemPerformance) + [8.52134 4.38309 3.6032 3.96203 3.48084 4.38309 4.38309 7.44293 4.38309 7.85606 7.67912 + 3.96201 7.02184 4.38307 3.6032 7.13852 4.79622 4.13852 3.48091 2.82311 3.96201 10.1416 + 5.81661 3.96196 3.6032 2.63867 4.38307 3.6032 7.02181 4.38307 4.79622 3.54184 3.96201 + ] pdfxs + 497.641 497.1 m + /N45 7.97009 Tf + (,Be) + [4.97894 5.99926 3.77824 ] pdfxs + (r) show + (lin,) + [2.33891 2.33886 4.67772 2.33886 ] pdfxs + 334.441 488.161 m + (Ge) + [6.66385 3.77824 ] pdfxs + (r) show + (many,Jun2002.) + [7.07656 4.25807 4.43765 3.7218 5.21879 4.31607 4.67774 7.55789 4.25807 4.25805 4.25807 + 4.25805 2.33888 ] pdfxs + 321.061 478.2 m + ([9]) + [2.33886 4.25807 6.77894 ] pdfxs + (C) show + (.LattnerandV.Adve.LLVM:A) + [5.03903 5.28358 4.25805 3.29837 3.29837 4.67774 3.77827 5.99963 4.25807 4.67772 7.37766 + 6.36133 5.03885 6.36133 4.67772 4.20173 3.77824 5.09896 5.28356 4.3236 6.36133 7.74065 + 5.03871 9.06147 ] pdfxs + (C) show + (ompilationF) + [4.258 7.07658 4.67772 2.33886 2.33891 4.258 3.29834 2.33891 4.258 7.31775 5.51946 + ] pdfxs + (r) show + (amewo) + [4.258 7.07658 3.77824 5.87696 4.25805 ] pdfxs + (r) show + (k) show + 334.441 469.2 m + (forLifelongP) + [2.58276 4.25805 6.11979 5.28358 2.33886 2.58276 3.77827 2.33886 4.25807 4.67772 7.07791 + 5.76344 ] pdfxs + (r) show + (og) + [4.25805 4.25807 ] pdfxs + (r) show + (amAnalysisand) + [4.25805 9.83664 6.36133 4.67772 4.25805 2.33886 4.44186 3.35925 2.33886 6.17941 4.25805 + 4.67772 7.49759 ] pdfxs + (Tr) show + (ansfo) + [4.258 4.67777 3.35925 2.58274 4.25805 ] pdfxs + (r) show + (mation.In) + [7.07653 4.25805 3.29834 2.33886 4.25805 4.67772 5.09896 3.06281 4.67772 ] pdfxs + 334.441 460.26 m + /N126 7.97009 Tf + (Proc.2004Int'lSymp.onCodeGenerationand) + [5.81661 3.18321 3.96324 3.96203 5.63865 4.38309 4.38309 4.38307 7.38309 3.30393 4.79622 + 2.82316 2.63867 5.27742 4.79622 4.13852 7.02181 4.38307 5.63862 4.38307 7.91624 6.11961 + 3.96315 4.38307 6.96201 6.59976 3.96201 4.79622 3.96201 3.18318 4.38307 2.82316 2.63862 + 4.38312 7.79622 4.38307 4.79622 4.38312 ] pdfxs + 334.441 451.26 m + (Optimization\(CGO'04\)) + [6.54065 4.38309 2.82316 2.63867 7.02181 2.63865 3.48087 4.38309 2.82316 2.63865 4.38309 + 7.85623 3.48087 6.11958 6.59976 6.54065 2.63862 4.38312 4.38307 3.48091 ] pdfxs + 423.661 451.26 m + /N45 7.97009 Tf + (,SanJose,USA,Mar2004.) + [5.21879 4.67772 4.25805 7.55775 4.3161 4.258 3.35925 3.77829 5.09876 6.36133 4.67772 + 6.36133 5.21879 7.74065 4.25805 6.05978 4.25805 4.25805 4.258 4.25805 2.33886 ] pdfxs + 316.801 441.3 m + ([10]) + [2.33886 4.25807 4.25807 6.7787 ] pdfxs + (C) show + (.LattnerandV.Adve.Automaticpoolallocation:) + [5.21871 5.28358 4.25805 3.29837 3.29837 4.67774 3.77827 6.05978 4.25807 4.67772 7.55775 + 6.36133 5.15878 6.36133 4.67772 4.20173 3.77824 5.15873 6.36133 4.67772 3.29834 4.25805 + 7.07653 4.25805 3.29834 2.33886 6.5382 4.91766 4.49803 4.25805 5.15878 4.25805 2.33886 + 2.33886 4.49789 3.77824 4.25805 3.29834 2.33886 4.25805 4.67777 2.33886 ] pdfxs + 334.441 432.36 m + (Imp) + [3.06284 7.07653 4.67774 ] pdfxs + (r) show + (ovingpe) + [4.01791 4.44186 2.33888 4.67774 7.13805 4.91766 3.77827 ] pdfxs + (r) show + (fo) + [2.58276 4.25805 ] pdfxs + (r) show + (mancebycont) + [7.07656 4.25805 4.67772 3.77829 6.53839 4.43758 7.32179 3.77824 4.25805 4.43782 3.29834 + ] pdfxs + (r) show + (ollingdatast) + [4.25805 2.33886 2.33886 2.33886 4.67777 7.0181 4.67772 4.25805 3.29834 7.07797 3.35925 + 3.29834 ] pdfxs + (r) show + (uctu) + [4.67772 3.77829 3.29834 4.67772 ] pdfxs + (r) show + (elayout) + [6.59826 2.33886 4.0182 4.20187 4.25805 4.67772 3.29834 ] pdfxs + 334.441 423.36 m + (intheheap.In) + [2.33886 7.55775 3.29837 4.67774 6.59833 4.67774 3.77827 4.25805 4.67774 5.21879 3.06284 + 4.67772 ] pdfxs + 392.101 423.36 m + /N126 7.97009 Tf + (Proc.2005ACMSIGPLANConf.on) + [5.81661 3.18321 3.96324 3.96203 5.57846 4.38307 4.38312 4.38307 7.44317 6.12367 6.11961 + 10.7392 4.79622 3.30396 6.59976 5.81661 5.3435 6.36376 9.36371 6.11961 4.38307 4.79622 + 2.63862 5.69849 4.38307 4.79622 ] pdfxs + 334.441 414.42 m + (ProgrammingLanguageDesignandImplementation) + [5.81661 3.18321 3.96324 3.96203 3.18303 4.38309 7.02181 7.02181 2.63867 4.7962 6.90219 + 4.9234 4.38309 4.79622 3.96201 4.61976 4.38307 3.96201 6.902 6.48217 3.96201 3.48091 + 2.63862 3.96201 7.79622 4.38307 4.79622 7.44303 3.30396 7.02181 4.38307 2.1576 3.96201 + 7.02176 3.96201 4.79622 2.82316 4.38307 2.82316 2.63862 4.38307 4.79622 ] pdfxs + 334.441 405.42 m + (\(PLDI'05\)) + [3.48087 5.81661 5.34347 6.4822 3.30393 2.63865 4.38309 4.38309 3.48087 ] pdfxs + 373.741 405.42 m + /N45 7.97009 Tf + (,) + [5.15902 ] pdfxs + (C) show + (hicago,IL,Jun2005.) + [4.67774 2.33886 3.77827 4.25807 4.25805 4.25807 5.09887 3.06281 5.28356 5.21903 4.3161 + 4.67772 7.55789 4.25805 4.25805 4.258 4.25805 2.33886 ] pdfxs + 316.801 395.461 m + ([11]D.LiangandM.J.Ha) + [2.33886 4.25807 4.25807 6.7787 6.47906 5.15871 5.28358 2.33886 4.25807 4.67774 7.07789 + 4.25807 4.67772 7.55775 7.74063 5.15887 4.31607 5.21871 6.36133 4.25805 ] pdfxs + (rr) show + (old.E\016cientcomputationof) + [4.258 2.33891 4.67772 5.15902 5.76341 7.07653 3.77829 2.33886 3.77824 4.43782 6.05849 + 3.77824 4.25805 7.07658 4.67772 4.67772 3.29834 4.25805 3.29834 2.33886 4.25805 7.49759 + 4.25805 2.58274 ] pdfxs + 334.441 386.521 m + (pa) + [4.67774 4.25805 ] pdfxs + (r) show + (amete) + [4.25807 7.07656 3.77824 3.29837 3.77827 ] pdfxs + (r) show + (izedpointerinfo) + [2.33888 3.77824 3.77827 7.43782 4.91766 4.25807 2.33886 4.43758 3.29837 3.77824 6.11965 + 2.33886 4.67777 2.58274 4.25805 ] pdfxs + (r) show + (mationforinte) + [7.07653 4.25805 3.29834 2.33886 4.25805 7.49773 2.58274 4.25805 6.11979 2.33886 4.43782 + 3.29834 3.77824 ] pdfxs + (r) show + (p) + [4.67777 ] pdfxs + (r) show + (ocedu) + [4.49818 3.77824 3.77829 4.67772 4.67777 ] pdfxs + (r) show + (al) + [4.258 2.33891 ] pdfxs + 334.441 377.581 m + (analysis.In) + [4.25807 4.67772 4.25807 2.33886 4.44189 3.35922 2.33888 3.35922 5.21903 3.06284 4.67772 + ] pdfxs + 379.261 377.581 m + /N126 7.97009 Tf + (SAS) + [4.79622 6.36374 4.79622 ] pdfxs + 395.221 377.581 m + /N45 7.97009 Tf + (,July2001.) + [5.15902 4.31607 4.67774 2.33886 7.3818 4.25805 4.25805 4.258 4.25805 2.33886 ] pdfxs + 316.801 367.621 m + ([12]J.) + [2.33886 4.25807 4.25807 6.7787 4.31607 5.21871 ] pdfxs + (C) show + (.Mogul,J.F.Ba) + [5.15895 7.74063 4.25807 4.25807 4.67772 2.33888 5.21886 4.31607 5.15895 5.51944 5.21871 + 5.99926 4.25805 ] pdfxs + (r) show + (tlett,R.N.Mayo,andA.S) + [3.29834 2.33886 3.77824 3.29834 3.29834 5.09896 6.24309 5.15887 6.36133 5.15878 7.74065 + 4.0182 4.20187 4.25805 5.15878 4.25805 4.67772 7.55775 6.36133 5.15878 4.67772 ] pdfxs + (r) show + (ivastava.) + [2.33891 3.96193 4.25805 3.35925 3.29834 4.01786 3.96203 4.25805 2.33886 ] pdfxs + 334.441 358.621 m + (Pe) + [5.52335 3.77827 ] pdfxs + (r) show + (fo) + [2.58276 4.25805 ] pdfxs + (r) show + (manceimplicationsofmultiplepointersizes.In) + [7.07656 4.25805 4.67774 3.77827 6.53842 2.33886 7.07656 4.67774 2.33886 2.33888 3.77824 + 4.25809 3.29834 2.33886 4.25805 4.67772 6.17931 4.25805 5.4029 6.8364 4.67772 2.33891 + 3.29834 2.33886 4.67772 2.33886 6.59835 4.91766 4.25805 2.33886 4.43758 3.29834 3.77824 + 6.17981 3.35925 2.33886 3.77824 3.77829 3.35925 5.09876 3.06281 4.67772 ] pdfxs + 334.441 349.681 m + /N126 7.97009 Tf + (USENIXWinter) + [6.36374 4.79622 5.81661 6.36371 3.30393 9.36374 8.52134 2.63867 4.79622 2.82316 3.96201 + 3.6032 ] pdfxs + 396.78 349.681 m + /N45 7.97009 Tf + (,pages187{200,1995.) + [5.21879 4.67774 4.25805 4.25805 3.77824 6.11926 4.25805 4.25805 4.258 4.25805 4.25805 + 4.25805 4.25805 4.97885 4.25805 4.25805 4.258 4.25805 2.33886 ] pdfxs + 316.801 339.721 m + ([13]E.M.Nyst) + [2.33886 4.25807 4.25807 6.7787 5.76344 5.21894 7.74063 5.15887 6.36133 4.44186 3.35925 + 3.29837 ] pdfxs + (r) show + (om,H.-S.Kim,andW.meiW.H) + [4.25805 7.07656 5.09887 6.36133 2.33886 2.81871 4.67772 5.21879 6.59713 2.33886 7.07658 + 5.15892 4.25805 4.67772 7.49759 8.70013 5.15902 7.07653 3.77829 5.15878 8.70013 5.15902 + 6.36133 ] pdfxs + (w) show + (u.) + [4.67777 2.33886 ] pdfxs + 334.44 330.721 m + (Bottom-upandtop-do) + [5.99926 4.25807 3.29837 3.29837 4.25805 7.07656 2.81871 4.67774 7.49773 4.25807 4.67772 + 7.49759 3.29837 4.25807 4.67772 2.81873 4.67772 4.0182 ] pdfxs + (w) show + (ncontext-sensitivesumma) + [7.5578 3.77824 4.25805 4.43782 3.29834 3.77824 4.44191 3.29834 2.81871 3.35925 3.77824 + 4.67777 3.35925 2.33886 3.29834 2.33886 4.20187 6.59826 3.35925 4.67772 7.07658 7.07653 + 4.25805 ] pdfxs + (r) show + (y-based) + [4.44186 2.81876 4.67772 4.25805 3.3592 3.77829 4.67772 ] pdfxs + 334.44 321.781 m + (pointeranalysis.In) + [4.91766 4.25807 2.33886 4.43758 3.29837 3.77827 6.17978 4.25807 4.67772 4.25807 2.33886 + 4.44189 3.35922 2.33888 3.35922 5.15887 3.06284 4.67772 ] pdfxs + 408.421 321.781 m + /N126 7.97009 Tf + (SAS) + [4.79622 6.36376 4.79622 ] pdfxs + 424.381 321.781 m + /N45 7.97009 Tf + (,2004.) + [5.15902 4.25805 4.25805 4.258 4.25805 2.33886 ] pdfxs + 316.801 311.821 m + ([14]A.Roge) + [2.33886 4.25807 4.25807 6.7787 6.36133 5.15878 6.24312 4.25807 4.25807 3.77824 ] pdfxs + (r) show + (s,M.) + [3.35925 5.09887 7.74063 5.21903 ] pdfxs + (C) show + (a) + [4.25807 ] pdfxs + (r) show + (lisle,J.Reppy,andL.Hend) + [2.33886 2.33888 3.35925 2.33886 3.77824 5.09872 4.3161 5.21869 6.24309 3.77829 4.67772 + 4.43758 3.7218 5.21879 4.25805 4.67772 7.55775 5.28356 5.15873 6.36133 3.77824 4.67777 + 4.67772 ] pdfxs + (r) show + (en.) + [3.77824 4.67777 2.33886 ] pdfxs + 334.441 302.821 m + (Suppo) + [4.67774 4.67774 4.67772 4.9179 4.25807 ] pdfxs + (r) show + (tingdynamicdatast) + [3.29837 2.33886 4.67774 7.07821 4.67774 4.44186 4.67774 4.25807 7.07653 2.33888 6.53816 + 4.67772 4.25805 3.29834 6.95804 3.35925 3.29834 ] pdfxs + (r) show + (uctu) + [4.67772 3.77829 3.29834 4.67772 ] pdfxs + (r) show + (esondist) + [3.77824 6.0591 4.25805 7.37757 4.67772 2.33891 3.3592 3.29834 ] pdfxs + (r) show + (ibutedmemo) + [2.33891 4.67772 4.67772 3.29834 3.77829 7.49788 7.07653 3.77829 7.07653 4.25805 ] pdfxs + (r) show + (y) show + 334.441 293.881 m + (machines.) + [7.07656 4.25805 3.53835 4.67774 2.33886 4.67774 3.77827 3.35922 2.33888 ] pdfxs + 373.321 293.881 m + /N126 7.97009 Tf + (TOPLAS) + [6.11958 6.54067 5.81661 5.34347 6.36374 4.79622 ] pdfxs + 408.301 293.881 m + /N45 7.97009 Tf + (,17\(2\),Ma) + [5.21879 4.25805 4.25805 3.29834 4.258 3.29834 5.03881 7.74065 4.25805 ] pdfxs + (r) show + (.1995.) + [5.15902 4.25805 4.25805 4.258 4.25805 2.33886 ] pdfxs + 316.801 283.921 m + ([15]H.Shacham,M.Page,B.Pfa\013,E.-J.Goh,N.Modadugu,) + [2.33886 4.25807 4.25807 6.7787 6.36133 5.15878 4.67774 4.67774 4.25805 3.53842 4.67774 + 4.25805 7.07656 5.15895 7.74063 5.21903 5.52335 4.25807 4.25805 3.77824 5.09887 5.99926 + 5.15902 5.76341 2.58274 4.25805 4.92159 5.21869 5.76341 2.33886 2.81876 4.31605 5.21903 + 6.66385 4.25805 4.67772 5.09887 6.36133 5.15878 7.74065 4.49789 4.67772 4.25805 4.67777 + 4.67772 4.25805 4.67772 2.33886 ] pdfxs + 334.44 274.921 m + (andD.Boneh.Onthee\013ectivenessofadd) + [4.25807 4.67772 7.55775 6.47906 5.15871 5.99926 4.25807 4.67772 3.77827 4.67774 5.15902 + 6.59685 7.49773 3.29837 4.67772 6.59835 3.77824 4.92159 3.77824 3.77829 3.29834 2.33886 + 4.20187 3.77824 4.67777 3.77824 3.35925 6.17931 4.25805 5.4029 4.25805 4.67772 4.67777 + ] pdfxs + (r) show + (ess-space) + [3.77824 3.35925 3.35925 2.81871 3.35925 4.67772 4.25805 3.77824 3.77829 ] pdfxs + 334.44 265.981 m + (r) show + (andomization.In) + [4.25807 4.67772 4.67774 4.25807 7.07653 2.33888 3.77827 4.25805 3.29837 2.33888 4.25805 + 4.67774 5.15895 3.06284 4.67772 ] pdfxs + 403.381 265.981 m + /N126 7.97009 Tf + (Proc.ACMConf.onComputerAnd) + [5.81661 3.18318 3.96324 3.96201 5.63862 6.12367 6.11961 10.6791 6.11961 4.38307 4.79622 + 2.63862 5.69849 4.38307 7.85609 6.11961 4.38307 7.02181 4.38307 4.61976 2.82311 3.96201 + 6.6032 6.12367 4.79622 4.38307 ] pdfxs + 334.44 256.981 m + (CommunicationsSecurity) + [6.11958 4.38309 7.02181 7.02181 4.61971 4.79622 2.63867 3.54187 4.38309 2.82316 2.63865 + 4.38309 4.79622 6.48086 4.79622 3.54187 3.96201 4.61971 3.6032 2.63867 2.82311 4.13852 + ] pdfxs + 430.2 256.981 m + /N45 7.97009 Tf + (,pages298{307,2004.) + [5.09887 4.67772 4.25805 4.25805 3.77824 6.11926 4.25805 4.25805 4.258 4.25805 4.25805 + 4.25805 4.25805 4.97885 4.25805 4.25805 4.258 4.25805 2.33886 ] pdfxs + 316.8 247.021 m + ([16]M.TakagiandK.Hi) + [2.33886 4.25807 4.25807 6.7787 7.74063 5.21903 5.39706 4.25807 3.96179 4.25807 4.25805 + 5.15895 4.25807 4.67772 7.49759 6.59713 5.15902 6.36133 2.33886 ] pdfxs + (r) show + (aki.Fielda) + [4.25805 4.44186 2.33886 5.21903 5.51946 2.33886 3.77824 2.33886 7.49783 4.25805 ] pdfxs + (rr) show + (aycomp) + [4.0181 7.26203 3.77824 4.25805 7.07658 4.67772 ] pdfxs + (r) show + (essionindata) + [3.77824 3.35925 3.35925 2.33886 4.25805 7.43757 2.33886 7.49759 4.67772 4.25805 3.29834 + 4.25805 ] pdfxs + 334.44 238.082 m + (cachesfordynamicallyallocated) + [3.77827 4.25805 3.53835 4.67774 3.77827 6.1193 2.58276 4.25805 6.11979 4.67774 4.44186 + 4.67774 4.25807 7.07653 2.33888 3.77824 4.25807 2.33886 2.33886 7.32179 4.25805 2.33886 + 2.33886 4.49789 3.77824 4.25805 3.29834 3.77829 7.43787 ] pdfxs + (r) show + (ecu) + [3.77824 3.77829 4.67772 ] pdfxs + (r) show + (sivedatast) + [3.35925 2.33886 4.20173 6.59826 4.67772 4.25805 3.29834 7.07797 3.35925 3.29834 ] pdfxs + (r) show + (uctu) + [4.67772 3.77829 3.29834 4.67772 ] pdfxs + (r) show + (e.) + [3.77824 2.33891 ] pdfxs + 334.44 229.142 m + (In) + [3.06284 4.67772 ] pdfxs + 345.06 229.142 m + /N126 7.97009 Tf + (Proceedingsof5thInternationalSymposiumonHigh) + [5.81661 3.18321 3.96324 3.54187 3.54187 3.54187 4.38309 2.63865 4.79622 3.96203 6.30093 + 4.38309 5.69873 4.38309 2.82316 7.44293 3.30396 4.79622 2.82316 3.96196 3.6032 4.79622 + 4.38312 2.82311 2.63867 4.38307 4.79622 4.38307 5.27776 4.79622 4.13852 7.02181 3.963 + 4.38307 3.48091 2.63862 4.61976 9.96185 4.38307 7.85609 6.36376 2.63862 3.96201 4.38307 + ] pdfxs + 334.44 220.142 m + (PerformanceComputing\(ISHPC'03\),Tokyo) + [5.81661 3.96203 3.6032 2.63865 4.38309 3.6032 7.02181 4.38309 4.79622 3.54187 6.90202 + 6.11958 4.38309 7.02181 4.38309 4.61976 2.82311 2.63862 4.79622 6.96201 3.48087 3.30396 + 4.79622 6.36376 5.81661 6.11956 2.63867 4.38307 4.38307 3.48091 5.63862 5.45975 4.38307 + 3.96201 4.13852 4.38312 ] pdfxs + (-) show + (Odaiba,) + [6.54067 4.38307 4.38312 2.63862 3.54199 4.38307 2.63867 ] pdfxs + 334.44 211.202 m + (Japan,October2003) + [4.50128 4.38309 3.96293 4.38309 4.79622 5.63865 6.54065 3.96203 2.82316 4.38309 3.54187 + 3.96203 6.66311 4.38309 4.38309 4.38307 4.38312 ] pdfxs + 411.48 211.202 m + /N45 7.97009 Tf + (,pages127{145.) + [5.09887 4.67772 4.25805 4.25805 3.77824 6.11926 4.25805 4.25805 4.258 4.25805 4.25805 + 4.25805 4.25805 2.33886 ] pdfxs + 316.8 201.242 m + ([17]D.N.T) + [2.33886 4.25807 4.25807 6.7787 6.47906 5.15871 6.36133 5.15878 5.39706 ] pdfxs + (r) show + (uong,F.Bodin,andA.Seznec.Imp) + [4.67774 4.25805 4.67774 4.25807 5.21886 5.51944 5.15895 5.99926 4.49803 4.67772 2.33891 + 4.67772 5.21879 4.25805 4.67772 7.49759 6.36133 5.15878 4.67772 3.77829 3.77824 4.67777 + 3.77824 3.77824 5.15873 3.06281 7.07653 4.67777 ] pdfxs + (r) show + (ovingcache) + [4.01786 4.44186 2.33886 4.67777 7.07786 3.77824 4.25805 3.53835 4.67772 3.77829 ] pdfxs + 334.44 192.242 m + (behaviorofdynamicallyallocateddatast) + [4.91766 3.77827 4.67774 4.01813 4.44186 2.33888 4.25805 6.17956 4.25807 5.4029 4.67774 + 4.44186 4.67774 4.25807 7.07653 2.33888 3.77824 4.25805 2.33886 2.33886 7.32179 4.25805 + 2.33886 2.33886 4.49789 3.77824 4.25805 3.29834 3.77829 7.37771 4.67772 4.25805 3.29834 + 7.07797 3.35925 3.29834 ] pdfxs + (r) show + (uctu) + [4.67772 3.77829 3.29834 4.67772 ] pdfxs + (r) show + (es.In) + [3.77824 3.35925 5.15887 3.06281 4.67772 ] pdfxs + 334.44 183.302 m + /N126 7.97009 Tf + (ProceedingsoftheInternationalConferenceonParallel) + [5.81661 3.18321 3.96324 3.54187 3.54187 3.54187 4.38309 2.63865 4.79622 3.96203 6.36069 + 4.38309 5.69873 2.82316 4.38309 7.02194 3.30393 4.79622 2.82316 3.96196 3.6032 4.79622 + 4.38312 2.82311 2.63867 4.38307 4.79622 4.38307 5.21761 6.11961 4.38307 4.79622 2.63862 + 3.96201 3.18328 3.96201 4.79622 3.54199 6.902 4.38307 7.85609 5.81661 4.38307 3.18328 + 4.38307 2.57777 2.1576 3.96201 2.15755 ] pdfxs + 334.44 174.302 m + (ArchitecturesandCompilationTechniques\(PACT'98\)) + [6.12365 3.18328 3.96203 4.38307 2.63867 2.82316 3.54187 3.96203 2.82316 4.61971 3.18328 + 3.96203 6.48084 4.38309 4.79622 7.38309 6.11958 4.38307 7.02181 4.38307 2.63862 2.1576 + 4.38307 2.82316 2.63862 4.38312 7.85628 5.45975 3.54184 3.96201 4.38307 4.79622 2.63862 + 3.96201 4.61976 3.96201 6.42071 3.48087 5.15646 6.12367 6.11961 6.11956 2.63862 4.38312 + 4.38307 3.48091 ] pdfxs + 537.06 174.302 m + /N45 7.97009 Tf + (,) show + 334.44 165.363 m + (pages322{329,Oct.1998.) + [4.67774 4.25805 4.25807 3.77827 6.11923 4.25807 4.25805 4.25807 4.25805 4.25807 4.25807 + 4.25805 5.03903 6.59685 3.77827 3.29837 5.09894 4.25805 4.25805 4.258 4.25805 2.33886 + ] pdfxs + 316.8 155.403 m + ([18]) + [2.33886 4.25807 4.25807 6.7787 ] pdfxs + (C) show + (.Ya) + [5.21871 5.64116 4.25807 ] pdfxs + (r) show + (vin,R.Buko) + [4.44186 2.33886 4.67774 5.21871 6.24312 5.15887 5.99926 4.67774 4.20195 4.01798 ] pdfxs + (w) show + (ski,and) + [3.3592 4.44191 2.33886 5.21894 4.25805 4.67772 7.49759 ] pdfxs + (T) show + (.Ande) + [5.15892 6.36133 4.67772 4.67777 3.77824 ] pdfxs + (r) show + (son.Anonymous) + [3.35925 4.25805 4.67772 5.21879 6.36133 4.67772 4.25805 4.43758 4.44186 7.07658 4.258 + 4.67777 3.35925 ] pdfxs + 334.44 146.403 m + (RP) + [6.24312 5.76344 ] pdfxs + (C) show + (:Lo) + [5.15895 5.28358 4.01805 ] pdfxs + (w) show + (-latencyp) + [2.81871 2.33888 4.25805 3.29837 3.77827 4.67774 3.77827 7.26171 4.67772 ] pdfxs + (r) show + (otectionina64-bitadd) + [4.25805 3.29834 3.77829 3.77824 3.29834 2.33886 4.25805 7.49773 2.33886 7.49759 7.07811 + 4.25805 4.25805 2.81871 4.67777 2.33886 6.1184 4.25805 4.67772 4.67777 ] pdfxs + (r) show + (essspace.In) + [3.77824 3.35925 6.1193 3.35925 4.67772 4.25805 3.77824 3.77829 5.15878 3.06281 4.67772 + ] pdfxs + 334.44 137.463 m + /N126 7.97009 Tf + (USENIXSummer) + [6.36374 4.79622 5.81661 6.36371 3.30393 9.36374 4.79622 4.61971 7.02181 7.02184 3.96201 + 3.6032 ] pdfxs + 401.46 137.463 m + /N45 7.97009 Tf + (,pages175{186,1993.) + [5.09887 4.67772 4.25805 4.25805 3.77824 6.11926 4.25805 4.25805 4.258 4.25805 4.25805 + 4.25805 4.25805 5.039 4.25805 4.25805 4.258 4.25805 2.33886 ] pdfxs + 316.8 127.503 m + ([19]Y.ZhangandR.Gupta.Datacomp) + [2.33886 4.25807 4.25807 6.7787 6.36133 5.15878 5.15754 4.67772 4.25807 4.67774 7.13797 + 4.25807 4.67772 7.49759 6.24312 5.15887 6.66385 4.67772 4.67777 3.29834 4.258 5.15873 + 6.47906 4.25805 3.29834 7.0182 3.77824 4.25805 7.07658 4.67772 ] pdfxs + (r) show + (essiont) + [3.77824 3.35925 3.35925 2.33886 4.25805 7.43757 3.29834 ] pdfxs + (r) show + (ansfo) + [4.25805 4.67772 3.35925 2.58274 4.25805 ] pdfxs + (r) show + (mations) + [7.07658 4.258 3.29834 2.33891 4.258 4.67777 3.3592 ] pdfxs + 334.44 118.503 m + (fordynamicallyallocateddatast) + [2.58276 4.25805 6.11979 4.67774 4.44186 4.67774 4.25807 7.07653 2.33888 3.77824 4.25807 + 2.33886 2.33888 7.32179 4.25807 2.33886 2.33886 4.49791 3.77824 4.25805 3.29834 3.77829 + 7.43787 4.67772 4.25805 3.29834 7.0182 3.35925 3.29834 ] pdfxs + (r) show + (uctu) + [4.67772 3.77829 3.29834 4.67772 ] pdfxs + (r) show + (es.In) + [3.77824 3.35925 5.15887 3.06281 4.67772 ] pdfxs + 502.74 118.503 m + /N126 7.97009 Tf + (International) + [3.30396 4.79622 2.82316 3.96196 3.6032 4.79622 4.38312 2.82311 2.63867 4.38307 4.79622 + 4.38307 2.1576 ] pdfxs + 334.44 109.563 m + (ConferenceonCompilerConstruction\(CC\)) + [6.11958 4.38309 4.79622 2.63865 3.96203 3.18328 3.96203 4.79622 3.54201 6.90202 4.38309 + 7.85606 6.11958 4.38309 7.02181 4.38307 2.63862 2.1576 3.96201 6.66311 6.11961 4.38307 + 4.79622 3.48087 2.82316 3.6032 4.61976 3.96196 2.82316 2.63862 4.38312 7.85628 3.48087 + 6.11961 6.11961 3.48087 ] pdfxs + 498.96 109.563 m + /N45 7.97009 Tf + (,Apr2002.) + [5.21879 6.36133 4.67772 6.11979 4.25805 4.25805 4.258 4.25805 2.33886 ] pdfxs + 316.8 99.6029 m + ([20]) + [2.33886 4.25807 4.25807 6.7787 ] pdfxs + (C) show + (.B.Zilles.Benchma) + [5.21871 5.99926 5.15902 5.15754 2.33886 2.33886 2.33888 3.77827 3.35922 5.15895 5.99926 + 3.77827 4.67774 3.53825 4.67774 7.07658 4.25805 ] pdfxs + (r) show + (khealthconside) + [7.26193 4.67772 3.77829 4.25805 2.33886 3.29834 7.55764 3.77824 4.25805 4.67777 3.3592 + 2.33891 4.67772 3.77824 ] pdfxs + (r) show + (edha) + [3.77829 7.43773 4.67772 4.25805 ] pdfxs + (r) show + (mful.) + [7.07658 2.58274 4.67772 2.33891 2.33886 ] pdfxs + 334.44 90.6632 m + /N126 7.97009 Tf + (SIGARCHComput.Archit.News) + [4.79622 3.30393 6.59976 6.36371 5.99785 6.11958 9.48373 6.11958 4.38309 7.02181 4.38309 + 4.61971 2.82316 5.63867 6.12367 3.18328 3.96201 4.38307 2.63862 2.82316 5.63862 6.36376 + 3.96201 5.69843 3.48087 ] pdfxs + 460.32 90.6632 m + /N45 7.97009 Tf + (,29\(3\):4{5,2001.) + [5.15902 4.25805 4.25805 3.29834 4.258 3.29834 2.33891 4.258 4.25805 4.25805 4.97894 + 4.25805 4.25805 4.258 4.25805 2.33886 ] pdfxs + Q + Q + PDFVars/TermAll get exec end end + userdict /pgsave get restore + showpage + %%PageTrailer + %%EndPage + %%Trailer + %%DocumentProcessColors: Cyan Magenta Yellow Black + %%DocumentNeededResources: + %%+ font Times-Bold + %%+ font Times-Italic + %%+ font Helvetica + %%+ font Helvetica-Bold + %%+ font Times-Roman + %%EOF Index: llvm-www/pubs/2005-06-12-MSP-PointerCompSlides.pdf Index: llvm-www/pubs/2005-06-12-MSP-PointerCompSlides.ppt Index: llvm-www/pubs/index.html diff -u llvm-www/pubs/index.html:1.19 llvm-www/pubs/index.html:1.20 --- llvm-www/pubs/index.html:1.19 Sun May 15 11:19:01 2005 +++ llvm-www/pubs/index.html Wed Jun 15 14:18:31 2005 @@ -59,7 +59,15 @@ Chris Lattner and Vikram Adve. Proc. of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'05), Chicago, Illinois, -Jun, 2005. +June, 2005.
    +Received PLDI 2005 Best Paper Award. + +
  • "Transparent Pointer Compression +for Linked Data Structures"
    +Chris Lattner and Vikram Adve. Proceedings of the ACM Workshop on +Memory System Performance (MSP'05), Chicago, Illinois, June, 2005. +
  • "Memory Safety Without Garbage Collection for Embedded Applications"
    Dinakar From lattner at cs.uiuc.edu Wed Jun 15 14:19:01 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Wed, 15 Jun 2005 14:19:01 -0500 Subject: [llvm-commits] CVS: llvm-www/pubs/2005-05-21-PLDI-PoolAlloc.html Message-ID: <200506151919.OAA19966@zion.cs.uiuc.edu> Changes in directory llvm-www/pubs: 2005-05-21-PLDI-PoolAlloc.html updated: 1.4 -> 1.5 --- Log message: Fix validation error --- Diffs of the changes: (+2 -2) 2005-05-21-PLDI-PoolAlloc.html | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm-www/pubs/2005-05-21-PLDI-PoolAlloc.html diff -u llvm-www/pubs/2005-05-21-PLDI-PoolAlloc.html:1.4 llvm-www/pubs/2005-05-21-PLDI-PoolAlloc.html:1.5 --- llvm-www/pubs/2005-05-21-PLDI-PoolAlloc.html:1.4 Wed Jun 15 14:01:48 2005 +++ llvm-www/pubs/2005-05-21-PLDI-PoolAlloc.html Wed Jun 15 14:18:19 2005 @@ -62,9 +62,9 @@ Heap (PDF)
  • Slides:

    +

    Note, animations do not work in PDF version. Please use PPT version if + possible.

      -

      Note, animations do not work in PDF version. Please use PPT version if - possible.

    • Automatic Pool Allocation: Improving Performance by Controlling Data Structure Layout in the Heap - Slides (PPT)
    • From lattner at cs.uiuc.edu Wed Jun 15 15:52:50 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Wed, 15 Jun 2005 15:52:50 -0500 Subject: [llvm-commits] CVS: llvm/test/Regression/Transforms/InstCombine/2005-06-15-ShiftSetCCCrash.ll Message-ID: <200506152052.PAA31506@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/Transforms/InstCombine: 2005-06-15-ShiftSetCCCrash.ll added (r1.1) --- Log message: new testcase for PR577: http://llvm.cs.uiuc.edu/PR577 --- Diffs of the changes: (+8 -0) 2005-06-15-ShiftSetCCCrash.ll | 8 ++++++++ 1 files changed, 8 insertions(+) Index: llvm/test/Regression/Transforms/InstCombine/2005-06-15-ShiftSetCCCrash.ll diff -c /dev/null llvm/test/Regression/Transforms/InstCombine/2005-06-15-ShiftSetCCCrash.ll:1.1 *** /dev/null Wed Jun 15 15:52:49 2005 --- llvm/test/Regression/Transforms/InstCombine/2005-06-15-ShiftSetCCCrash.ll Wed Jun 15 15:52:39 2005 *************** *** 0 **** --- 1,8 ---- + ; RUN: llvm-as < %s | opt -instcombine -disable-output + ; PR577 + + bool %test() { + %tmp.3 = shl int 0, ubyte 41 ; [#uses=1] + %tmp.4 = setne int %tmp.3, 0 ; [#uses=1] + ret bool %tmp.4 + } From lattner at cs.uiuc.edu Wed Jun 15 15:53:42 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Wed, 15 Jun 2005 15:53:42 -0500 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp Message-ID: <200506152053.PAA31523@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.348 -> 1.349 --- Log message: Fix PR577: http://llvm.cs.uiuc.edu/PR577 and testcase InstCombine/2005-06-15-ShiftSetCCCrash.ll. Do not perform undefined out of range shifts. --- Diffs of the changes: (+16 -2) InstructionCombining.cpp | 18 ++++++++++++++++-- 1 files changed, 16 insertions(+), 2 deletions(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.348 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.349 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.348 Wed Jun 15 13:25:30 2005 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Wed Jun 15 15:53:31 2005 @@ -2560,6 +2560,14 @@ default: break; case Instruction::SetEQ: case Instruction::SetNE: { + unsigned TypeBits = CI->getType()->getPrimitiveSizeInBits(); + + // Check that the shift amount is in range. If not, don't perform + // undefined shifts. When the shift is visited it will be + // simplified. + if (ShAmt->getValue() >= TypeBits) + break; + // If we are comparing against bits always shifted out, the // comparison cannot succeed. Constant *Comp = @@ -2573,7 +2581,6 @@ if (LHSI->hasOneUse()) { // Otherwise strength reduce the shift into an and. unsigned ShAmtVal = (unsigned)ShAmt->getValue(); - unsigned TypeBits = CI->getType()->getPrimitiveSizeInBits(); uint64_t Val = (1ULL << (TypeBits-ShAmtVal))-1; Constant *Mask; @@ -2603,6 +2610,14 @@ default: break; case Instruction::SetEQ: case Instruction::SetNE: { + + // Check that the shift amount is in range. If not, don't perform + // undefined shifts. When the shift is visited it will be + // simplified. + unsigned TypeBits = ShAmt->getType()->getPrimitiveSizeInBits(); + if (ShAmt->getValue() >= TypeBits) + break; + // If we are comparing against bits always shifted out, the // comparison cannot succeed. Constant *Comp = @@ -2623,7 +2638,6 @@ Constant *Mask; if (CI->getType()->isUnsigned()) { - unsigned TypeBits = CI->getType()->getPrimitiveSizeInBits(); Val &= ~0ULL >> (64-TypeBits); Mask = ConstantUInt::get(CI->getType(), Val); } else { From lattner at cs.uiuc.edu Wed Jun 15 16:11:30 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Wed, 15 Jun 2005 16:11:30 -0500 Subject: [llvm-commits] CVS: llvm/test/Regression/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll Message-ID: <200506152111.QAA32109@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/Transforms/GlobalOpt: 2005-06-15-LocalizeConstExprCrash.ll added (r1.1) --- Log message: new testcase for PR579: http://llvm.cs.uiuc.edu/PR579 --- Diffs of the changes: (+9 -0) 2005-06-15-LocalizeConstExprCrash.ll | 9 +++++++++ 1 files changed, 9 insertions(+) Index: llvm/test/Regression/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll diff -c /dev/null llvm/test/Regression/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll:1.1 *** /dev/null Wed Jun 15 16:11:28 2005 --- llvm/test/Regression/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll Wed Jun 15 16:11:18 2005 *************** *** 0 **** --- 1,9 ---- + ; RUN: llvm-as < %s | opt -globalopt -disable-output + ; PR579 + + %g_40507551 = internal global short 31038 ; [#uses=1] + + void %main() { + %tmp.4.i.1 = load ubyte* getelementptr (ubyte* cast (short* %g_40507551 to ubyte*), int 1) + ret void + } From lattner at cs.uiuc.edu Wed Jun 15 16:11:59 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Wed, 15 Jun 2005 16:11:59 -0500 Subject: [llvm-commits] CVS: llvm/lib/Transforms/IPO/GlobalOpt.cpp Message-ID: <200506152111.QAA32120@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/IPO: GlobalOpt.cpp updated: 1.40 -> 1.41 --- Log message: Do not promote globals only used by main to locals if there are constantexprs or other uses hanging off of them. --- Diffs of the changes: (+11 -3) GlobalOpt.cpp | 14 +++++++++++--- 1 files changed, 11 insertions(+), 3 deletions(-) Index: llvm/lib/Transforms/IPO/GlobalOpt.cpp diff -u llvm/lib/Transforms/IPO/GlobalOpt.cpp:1.40 llvm/lib/Transforms/IPO/GlobalOpt.cpp:1.41 --- llvm/lib/Transforms/IPO/GlobalOpt.cpp:1.40 Sun May 8 17:18:06 2005 +++ llvm/lib/Transforms/IPO/GlobalOpt.cpp Wed Jun 15 16:11:48 2005 @@ -104,6 +104,10 @@ Function *AccessingFunction; bool HasMultipleAccessingFunctions; + // HasNonInstructionUser - Set to true if this global has a user that is not + // an instruction (e.g. a constant expr or GV initializer). + bool HasNonInstructionUser; + /// isNotSuitableForSRA - Keep track of whether any SRA preventing users of /// the global exist. Such users include GEP instruction with variable /// indexes, and non-gep/load/store users like constant expr casts. @@ -111,7 +115,7 @@ GlobalStatus() : isLoaded(false), StoredType(NotStored), StoredOnceValue(0), AccessingFunction(0), HasMultipleAccessingFunctions(false), - isNotSuitableForSRA(false) {} + HasNonInstructionUser(false), isNotSuitableForSRA(false) {} }; @@ -140,6 +144,8 @@ std::set &PHIUsers) { for (Value::use_iterator UI = V->use_begin(), E = V->use_end(); UI != E; ++UI) if (ConstantExpr *CE = dyn_cast(*UI)) { + GS.HasNonInstructionUser = true; + if (AnalyzeGlobal(CE, GS, PHIUsers)) return true; if (CE->getOpcode() != Instruction::GetElementPtr) GS.isNotSuitableForSRA = true; @@ -241,11 +247,13 @@ return true; // Any other non-load instruction might take address! } } else if (Constant *C = dyn_cast(*UI)) { + GS.HasNonInstructionUser = true; // We might have a dead and dangling constant hanging off of here. if (!ConstantIsDead(C)) return true; } else { - // Otherwise must be a global or some other user. + GS.HasNonInstructionUser = true; + // Otherwise must be some other user. return true; } @@ -940,7 +948,7 @@ // NOTE: It doesn't make sense to promote non first class types since we // are just replacing static memory to stack memory. if (!GS.HasMultipleAccessingFunctions && - GS.AccessingFunction && + GS.AccessingFunction && !GS.HasNonInstructionUser && GV->getType()->getElementType()->isFirstClassType() && GS.AccessingFunction->getName() == "main" && GS.AccessingFunction->hasExternalLinkage()) { From lattner at cs.uiuc.edu Wed Jun 15 16:29:06 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Wed, 15 Jun 2005 16:29:06 -0500 Subject: [llvm-commits] CVS: llvm/test/Regression/Transforms/IndVarsSimplify/2005-06-15-InstMoveCrash.ll Message-ID: <200506152129.QAA00545@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/Transforms/IndVarsSimplify: 2005-06-15-InstMoveCrash.ll added (r1.1) --- Log message: new testcase for PR582: http://llvm.cs.uiuc.edu/PR582 --- Diffs of the changes: (+36 -0) 2005-06-15-InstMoveCrash.ll | 36 ++++++++++++++++++++++++++++++++++++ 1 files changed, 36 insertions(+) Index: llvm/test/Regression/Transforms/IndVarsSimplify/2005-06-15-InstMoveCrash.ll diff -c /dev/null llvm/test/Regression/Transforms/IndVarsSimplify/2005-06-15-InstMoveCrash.ll:1.1 *** /dev/null Wed Jun 15 16:29:05 2005 --- llvm/test/Regression/Transforms/IndVarsSimplify/2005-06-15-InstMoveCrash.ll Wed Jun 15 16:28:55 2005 *************** *** 0 **** --- 1,36 ---- + ; RUN: llvm-as < %s | opt -indvars -disable-output + + void %main() { + entry: + br label %no_exit.1.outer + + no_exit.1.outer: ; preds = %endif.0, %entry + %l_14237116.1.0.ph = phi sbyte [ -46, %entry ], [ 0, %endif.0 ] ; [#uses=1] + %i.0.0.0.ph = phi int [ 0, %entry ], [ %inc.1, %endif.0 ] ; [#uses=1] + br label %no_exit.1 + + no_exit.1: ; preds = %_Z13func_47880058cc.exit, %no_exit.1.outer + br bool false, label %_Z13func_47880058cc.exit, label %then.i + + then.i: ; preds = %no_exit.1 + br label %_Z13func_47880058cc.exit + + _Z13func_47880058cc.exit: ; preds = %then.i, %no_exit.1 + br bool false, label %then.0, label %no_exit.1 + + then.0: ; preds = %_Z13func_47880058cc.exit + %tmp.6 = cast sbyte %l_14237116.1.0.ph to ubyte ; [#uses=1] + br bool false, label %endif.0, label %then.1 + + then.1: ; preds = %then.0 + br label %endif.0 + + endif.0: ; preds = %then.1, %then.0 + %inc.1 = add int %i.0.0.0.ph, 1 ; [#uses=2] + %tmp.2 = setgt int %inc.1, 99 ; [#uses=1] + br bool %tmp.2, label %loopexit.0, label %no_exit.1.outer + + loopexit.0: ; preds = %endif.0 + %tmp.28 = cast ubyte %tmp.6 to uint ; [#uses=0] + ret void + } From lattner at cs.uiuc.edu Wed Jun 15 16:29:47 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Wed, 15 Jun 2005 16:29:47 -0500 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/IndVarSimplify.cpp Message-ID: <200506152129.QAA00554@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: IndVarSimplify.cpp updated: 1.77 -> 1.78 --- Log message: Fix PR582: http://llvm.cs.uiuc.edu/PR582 . The rewriter can move casts around, which invalidated the BB iterator. This fixes Transforms/IndVarsSimplify/2005-06-15-InstMoveCrash.ll --- Diffs of the changes: (+11 -1) IndVarSimplify.cpp | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletion(-) Index: llvm/lib/Transforms/Scalar/IndVarSimplify.cpp diff -u llvm/lib/Transforms/Scalar/IndVarSimplify.cpp:1.77 llvm/lib/Transforms/Scalar/IndVarSimplify.cpp:1.78 --- llvm/lib/Transforms/Scalar/IndVarSimplify.cpp:1.77 Thu Apr 21 18:45:12 2005 +++ llvm/lib/Transforms/Scalar/IndVarSimplify.cpp Wed Jun 15 16:29:31 2005 @@ -551,7 +551,7 @@ for (unsigned i = 0, e = L->getBlocks().size(); i != e; ++i) if (LI->getLoopFor(L->getBlocks()[i]) == L) { // Not in a subloop... BasicBlock *BB = L->getBlocks()[i]; - for (BasicBlock::iterator I = BB->begin(), E = BB->end(); I != E; ++I) + for (BasicBlock::iterator I = BB->begin(), E = BB->end(); I != E;) { if (I->getType()->isInteger()) { // Is an integer instruction SCEVHandle SH = SE->getSCEV(I); if (SH->hasComputableLoopEvolution(L) || // Varies predictably @@ -571,6 +571,10 @@ if (!isa(ExitValue)) { Changed = true; ++NumReplaced; + // Remember the next instruction. The rewriter can move code + // around in some cases. + BasicBlock::iterator NextI = I; ++NextI; + Value *NewVal = Rewriter.expandCodeFor(ExitValue, InsertPt, I->getType()); @@ -582,10 +586,16 @@ // If this instruction is dead now, schedule it to be removed. if (I->use_empty()) InstructionsToDelete.insert(I); + I = NextI; + continue; // Skip the ++I } } } } + + // Next instruction. Continue instruction skips this. + ++I; + } } DeleteTriviallyDeadInstructions(InstructionsToDelete); From lattner at cs.uiuc.edu Wed Jun 15 17:43:04 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Wed, 15 Jun 2005 17:43:04 -0500 Subject: [llvm-commits] CVS: llvm/test/Regression/CFrontend/2005-06-15-ExpandGotoInternalProblem.c Message-ID: <200506152243.RAA01679@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/CFrontend: 2005-06-15-ExpandGotoInternalProblem.c added (r1.1) --- Log message: new testcase for PR580: http://llvm.cs.uiuc.edu/PR580 --- Diffs of the changes: (+13 -0) 2005-06-15-ExpandGotoInternalProblem.c | 13 +++++++++++++ 1 files changed, 13 insertions(+) Index: llvm/test/Regression/CFrontend/2005-06-15-ExpandGotoInternalProblem.c diff -c /dev/null llvm/test/Regression/CFrontend/2005-06-15-ExpandGotoInternalProblem.c:1.1 *** /dev/null Wed Jun 15 17:43:03 2005 --- llvm/test/Regression/CFrontend/2005-06-15-ExpandGotoInternalProblem.c Wed Jun 15 17:42:53 2005 *************** *** 0 **** --- 1,13 ---- + // RUN: %llvmgcc -std=c99 %s -S -o - | gccas -o /dev/null + // PR580 + + int X, Y; + int foo() { + int i; + for (i=0; i<100; i++ ) + { + break; + i = ( X || Y ) ; + } + } + From lattner at cs.uiuc.edu Wed Jun 15 17:44:38 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Wed, 15 Jun 2005 17:44:38 -0500 Subject: [llvm-commits] CVS: llvm-gcc/gcc/llvm-expand.c Message-ID: <200506152244.RAA01692@zion.cs.uiuc.edu> Changes in directory llvm-gcc/gcc: llvm-expand.c updated: 1.100 -> 1.101 --- Log message: Rename to llvm_expand_exit_something -> llvm_expand_break_something, as it inserts code for the 'break' statement. Fix PR580: http://llvm.cs.uiuc.edu/PR580 by always emitting a new label after emitting an unconditional goto. This fixes PR580: http://llvm.cs.uiuc.edu/PR580 , including cases where the continue is replaced with a break or a goto. Testcase here: Regression/CFrontend/2005-06-15-ExpandGotoInternalProblem.c --- Diffs of the changes: (+29 -7) llvm-expand.c | 36 +++++++++++++++++++++++++++++------- 1 files changed, 29 insertions(+), 7 deletions(-) Index: llvm-gcc/gcc/llvm-expand.c diff -u llvm-gcc/gcc/llvm-expand.c:1.100 llvm-gcc/gcc/llvm-expand.c:1.101 --- llvm-gcc/gcc/llvm-expand.c:1.100 Tue Jun 14 16:40:55 2005 +++ llvm-gcc/gcc/llvm-expand.c Wed Jun 15 17:44:27 2005 @@ -1566,7 +1566,7 @@ /* Generate LLVM for the start of an if-then. COND is the expression whose truth should be tested. - If EXITFLAG is nonzero, this conditional is visible to `exit_something'. */ + If EXITFLAG is nonzero, this conditional is visible to `break_something'. */ static void llvm_expand_start_cond (llvm_function *Fn, tree cond, int exitflag, int has_else) { @@ -1825,7 +1825,7 @@ } /* Generate RTL for the start of a loop. EXIT_FLAG is nonzero if this - loop should be exited by `exit_something'. This is a loop for which + loop should be exited by `break_something'. This is a loop for which `expand_continue' will jump to the top of the loop. Make an entry on loop_stack to record the labels associated with @@ -1917,6 +1917,12 @@ whichloop->x.loop.ContinueFound = 1; llvm_expand_goto_internal(Fn, whichloop->x.loop.continue_label, 1, 0); + + /* Start a new block so that if statements are emitted after the continue, + * that they will have the correct "current block". + */ + llvm_emit_label(Fn, llvm_basicblock_new("dead_block_after_continue")); + return 1; } @@ -1992,12 +1998,17 @@ If not currently inside anything that can be exited, return 0 and do nothing; caller will print an error message. */ -static int llvm_expand_exit_something(llvm_function *Fn) { +static int llvm_expand_break_something(llvm_function *Fn) { llvm_nesting *n; for (n = Fn->ExpandInfo->InnermostScope; n; n = n->all) if (n->exit_block) { n->BreakFound = 1; llvm_expand_goto_internal(Fn, n->exit_block, 1, 0); + + /* Start a new block so that if statements are emitted after the break, + * that they will have the correct "current block". + */ + llvm_emit_label(Fn, llvm_basicblock_new("dead_block_after_break")); return 1; } @@ -2010,8 +2021,8 @@ case-labels that are seen and to record the labels generated for the statement. - EXIT_FLAG is nonzero if `exit_something' should exit this case stmt. - Otherwise, this construct is transparent for `exit_something'. + EXIT_FLAG is nonzero if `break_something' should exit this case stmt. + Otherwise, this construct is transparent for `break_something'. EXPR is the index-expression to be dispatched on. */ @@ -2208,14 +2219,25 @@ append_inst(Fn, create_store_inst(V, Fn->ExpandInfo->IndirectGotoValue, 0)); /* FIXME: This is HORRIBLY INCORRECT in the presence of exception handlers. - * There should be one collector block per cleanup level! + * There should be one collector block per cleanup level! Note that + * standard GCC gets this wrong as well. */ llvm_expand_goto_internal(Fn, Fn->ExpandInfo->IndirectGotoBlock, 1, 0); + + /* Start a new block so that if statements are emitted after the goto, that + * they will have the correct "current block". + */ + llvm_emit_label(Fn, llvm_basicblock_new("dead_block_after_goto")); return; } TREE_USED(dest) = 1; llvm_expand_goto_internal(Fn, getLabelDeclBlock(dest), 1, 0); + + /* Start a new block so that if statements are emitted after the goto, that + * they will have the correct "current block". + */ + llvm_emit_label(Fn, llvm_basicblock_new("dead_block_after_goto")); } /* Generate LLVM code for a RETURN_STMT */ @@ -2766,7 +2788,7 @@ break; case BREAK_STMT: - if (!llvm_expand_exit_something(Fn)) + if (!llvm_expand_break_something(Fn)) error ("break statement not within loop or switch"); break; From lattner at cs.uiuc.edu Wed Jun 15 17:49:41 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Wed, 15 Jun 2005 17:49:41 -0500 Subject: [llvm-commits] CVS: llvm/lib/Transforms/IPO/LowerSetJmp.cpp Message-ID: <200506152249.RAA01872@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/IPO: LowerSetJmp.cpp updated: 1.26 -> 1.27 --- Log message: Fix PR575: http://llvm.cs.uiuc.edu/PR575 , patch provided by John Mellor-Crummey. Thanks! --- Diffs of the changes: (+1 -0) LowerSetJmp.cpp | 1 + 1 files changed, 1 insertion(+) Index: llvm/lib/Transforms/IPO/LowerSetJmp.cpp diff -u llvm/lib/Transforms/IPO/LowerSetJmp.cpp:1.26 llvm/lib/Transforms/IPO/LowerSetJmp.cpp:1.27 --- llvm/lib/Transforms/IPO/LowerSetJmp.cpp:1.26 Wed Jun 8 21:59:00 2005 +++ llvm/lib/Transforms/IPO/LowerSetJmp.cpp Wed Jun 15 17:49:30 2005 @@ -459,6 +459,7 @@ BasicBlock* NewBB = OldBB->splitBasicBlock(CI); assert(NewBB && "Couldn't split BB of \"call\" instruction!!"); + DFSBlocks.insert(NewBB); NewBB->setName("Call2Invoke"); Function* Func = OldBB->getParent(); From lattner at cs.uiuc.edu Wed Jun 15 20:52:20 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Wed, 15 Jun 2005 20:52:20 -0500 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp Message-ID: <200506160152.UAA03512@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.349 -> 1.350 --- Log message: Fix a bug in my previous patch. Do not get the shift amount type (which is always ubyte, get the type being shifted). This unbreaks espresso --- Diffs of the changes: (+1 -1) InstructionCombining.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.349 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.350 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.349 Wed Jun 15 15:53:31 2005 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Wed Jun 15 20:52:07 2005 @@ -2614,7 +2614,7 @@ // Check that the shift amount is in range. If not, don't perform // undefined shifts. When the shift is visited it will be // simplified. - unsigned TypeBits = ShAmt->getType()->getPrimitiveSizeInBits(); + unsigned TypeBits = CI->getType()->getPrimitiveSizeInBits(); if (ShAmt->getValue() >= TypeBits) break; From lattner at cs.uiuc.edu Wed Jun 15 22:00:20 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Wed, 15 Jun 2005 22:00:20 -0500 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp Message-ID: <200506160300.WAA04006@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.350 -> 1.351 --- Log message: Fix PR571: http://llvm.cs.uiuc.edu/PR571 , removing code that does just the WRONG thing :) --- Diffs of the changes: (+1 -27) InstructionCombining.cpp | 28 +--------------------------- 1 files changed, 1 insertion(+), 27 deletions(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.350 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.351 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.350 Wed Jun 15 20:52:07 2005 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Wed Jun 15 22:00:08 2005 @@ -3102,33 +3102,7 @@ return 0; } - return 0; //The rest of this function is broken. See bug 571 - - // Okay, we have the two reduced sized operands. If we are doing a <,> - // comparison, make sure we perform the compare with the same signedness as - // the DestTy. We don't have to do this if the comparison is !=/== or if the - // source is a bool. - if (isSignSrc != isSignDest && SrcTy != Type::BoolTy && - SCI.getOpcode() != Instruction::SetEQ && - SCI.getOpcode() != Instruction::SetNE) { - // Insert noop casts of the two operands to change the sign of the - // comparison. - const Type *NewSrcTy; - if (isSignDest) - NewSrcTy = SrcTy->getSignedVersion(); - else - NewSrcTy = SrcTy->getUnsignedVersion(); - - // Insert the new casts. - LHSCIOp = InsertNewInstBefore(new CastInst(LHSCIOp, NewSrcTy, - LHSCIOp->getName()), SCI); - if (Constant *RHSC = dyn_cast(RHSCIOp)) - RHSCIOp = ConstantExpr::getCast(RHSC, NewSrcTy); - else - RHSCIOp = InsertNewInstBefore(new CastInst(RHSCIOp, NewSrcTy, - RHSCIOp->getName()), SCI); - } - + // Okay, just insert a compare of the reduced operands now! return BinaryOperator::create(SCI.getOpcode(), LHSCIOp, RHSCIOp); } From lattner at cs.uiuc.edu Wed Jun 15 23:55:40 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Wed, 15 Jun 2005 23:55:40 -0500 Subject: [llvm-commits] CVS: llvm/test/Regression/Transforms/InstCombine/2005-06-15-DivSelectCrash.ll Message-ID: <200506160455.XAA24216@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/Transforms/InstCombine: 2005-06-15-DivSelectCrash.ll added (r1.1) --- Log message: new testcase for PR583: http://llvm.cs.uiuc.edu/PR583 --- Diffs of the changes: (+9 -0) 2005-06-15-DivSelectCrash.ll | 9 +++++++++ 1 files changed, 9 insertions(+) Index: llvm/test/Regression/Transforms/InstCombine/2005-06-15-DivSelectCrash.ll diff -c /dev/null llvm/test/Regression/Transforms/InstCombine/2005-06-15-DivSelectCrash.ll:1.1 *** /dev/null Wed Jun 15 23:55:39 2005 --- llvm/test/Regression/Transforms/InstCombine/2005-06-15-DivSelectCrash.ll Wed Jun 15 23:55:29 2005 *************** *** 0 **** --- 1,9 ---- + ; RUN: llvm-as < %s | opt -instcombine -disable-output + + int %_Z13func_31585107li(int %l_39521025, int %l_59244666) { + %shortcirc_val = select bool false, uint 1, uint 0 ; [#uses=1] + %tmp.8 = div uint 0, %shortcirc_val ; [#uses=1] + %tmp.9 = seteq uint %tmp.8, 0 ; [#uses=1] + %retval = select bool %tmp.9, int %l_59244666, int -1621308501 ; [#uses=1] + ret int %retval + } From lattner at cs.uiuc.edu Wed Jun 15 23:56:03 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Wed, 15 Jun 2005 23:56:03 -0500 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp Message-ID: <200506160456.XAA24226@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.351 -> 1.352 --- Log message: Fix PR583: http://llvm.cs.uiuc.edu/PR583 and testcase Transforms/InstCombine/2005-06-15-DivSelectCrash.ll --- Diffs of the changes: (+1 -1) InstructionCombining.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.351 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.352 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.351 Wed Jun 15 22:00:08 2005 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Wed Jun 15 23:55:52 2005 @@ -1067,7 +1067,7 @@ I.setOperand(1, SFO); return &I; } else if (SFO->getValue() == 0) { - I.setOperand(2, STO); + I.setOperand(1, STO); return &I; } From natebegeman at mac.com Thu Jun 16 02:06:14 2005 From: natebegeman at mac.com (Nate Begeman) Date: Thu, 16 Jun 2005 02:06:14 -0500 Subject: [llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Message-ID: <200506160706.CAA26941@zion.cs.uiuc.edu> Changes in directory llvm/lib/CodeGen/SelectionDAG: SelectionDAG.cpp updated: 1.119 -> 1.120 --- Log message: Fix bug 537: http://llvm.cs.uiuc.edu/PR537 test 2, which checks to make sure that we fold A+(B-A) -> B for integer types. Add a couple checks to not perform these kinds of transform on floating point values. --- Diffs of the changes: (+7 -2) SelectionDAG.cpp | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.119 llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.120 --- llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.119 Sun May 15 00:39:08 2005 +++ llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Thu Jun 16 02:06:03 2005 @@ -1183,12 +1183,17 @@ if (N2.getOpcode() == ISD::SUB && isa(N2.getOperand(0)) && cast(N2.getOperand(0))->getValue() == 0) return getNode(ISD::SUB, VT, N1, N2.getOperand(1)); // A+(0-B) -> A-B + if (N2.getOpcode() == ISD::SUB && N1 == N2.Val->getOperand(1) && + !MVT::isFloatingPoint(N2.getValueType())) + return N2.Val->getOperand(0); // A+(B-A) -> B break; case ISD::SUB: if (N1.getOpcode() == ISD::ADD) { - if (N1.Val->getOperand(0) == N2) + if (N1.Val->getOperand(0) == N2 && + !MVT::isFloatingPoint(N2.getValueType())) return N1.Val->getOperand(1); // (A+B)-A == B - if (N1.Val->getOperand(1) == N2) + if (N1.Val->getOperand(1) == N2 && + !MVT::isFloatingPoint(N2.getValueType())) return N1.Val->getOperand(0); // (A+B)-B == A } if (N2.getOpcode() == ISD::FNEG) // (A- (-B) -> A+B From reid at x10sys.com Thu Jun 16 02:27:31 2005 From: reid at x10sys.com (Reid Spencer) Date: Thu, 16 Jun 2005 02:27:31 -0500 Subject: [llvm-commits] CVS: llvm-test/Makefile.programs Message-ID: <200506160727.CAA27106@zion.cs.uiuc.edu> Changes in directory llvm-test: Makefile.programs updated: 1.155 -> 1.156 --- Log message: Correct some documentation to reflect reality. --- Diffs of the changes: (+1 -1) Makefile.programs | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm-test/Makefile.programs diff -u llvm-test/Makefile.programs:1.155 llvm-test/Makefile.programs:1.156 --- llvm-test/Makefile.programs:1.155 Thu May 12 18:07:00 2005 +++ llvm-test/Makefile.programs Thu Jun 16 02:27:16 2005 @@ -29,7 +29,7 @@ # # This makefile provides facilities for defining custom tests that are to be run # on all of the programs in the test suite. In order to define one of these -# tests, create a llvm-test/Makefile.TEST. file. This file +# tests, create a llvm-test/TEST..Makefile file. This file # should define a rule 'test..%' which is run once for each program in # the suite (the % passed in is the program name). For a simple example, see # Makefile.TEST.example. From lattner at cs.uiuc.edu Thu Jun 16 20:29:39 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Thu, 16 Jun 2005 20:29:39 -0500 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp Message-ID: <200506170129.UAA11578@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.352 -> 1.353 --- Log message: avoid constructing out of range shift amounts. --- Diffs of the changes: (+4 -2) InstructionCombining.cpp | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.352 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.353 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.352 Wed Jun 15 23:55:52 2005 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Thu Jun 16 20:29:28 2005 @@ -2511,8 +2511,10 @@ if (!CanFold) { // To test for the bad case of the signed shr, see if any // of the bits shifted in could be tested after the mask. - Constant *OShAmt = ConstantUInt::get(Type::UByteTy, - Ty->getPrimitiveSizeInBits()-ShAmt->getValue()); + int ShAmtVal = Ty->getPrimitiveSizeInBits()-ShAmt->getValue(); + if (ShAmtVal < 0) ShAmtVal = 0; // Out of range shift. + + Constant *OShAmt = ConstantUInt::get(Type::UByteTy, ShAmtVal); Constant *ShVal = ConstantExpr::getShl(ConstantInt::getAllOnesValue(Ty), OShAmt); if (ConstantExpr::getAnd(ShVal, AndCST)->isNullValue()) From lattner at cs.uiuc.edu Thu Jun 16 20:45:14 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Thu, 16 Jun 2005 20:45:14 -0500 Subject: [llvm-commits] CVS: llvm/test/Regression/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll Message-ID: <200506170145.UAA13875@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/Transforms/SimplifyCFG: 2005-06-16-PHICrash.ll added (r1.1) --- Log message: new testcase for PR584: http://llvm.cs.uiuc.edu/PR584 --- Diffs of the changes: (+125 -0) 2005-06-16-PHICrash.ll | 125 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 125 insertions(+) Index: llvm/test/Regression/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll diff -c /dev/null llvm/test/Regression/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll:1.1 *** /dev/null Thu Jun 16 20:45:13 2005 --- llvm/test/Regression/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll Thu Jun 16 20:45:03 2005 *************** *** 0 **** --- 1,125 ---- + ; RUN: llvm-as < %s | opt -simplifycfg -disable-output + ; PR584 + + %g_38098584 = external global uint ; [#uses=1] + %g_60187400 = external global uint ; [#uses=1] + %g_59182229 = external global uint ; [#uses=2] + + implementation ; Functions: + + int %_Z13func_26556482h(ubyte %l_88173906) { + entry: + %tmp.1 = cast ubyte %l_88173906 to sbyte ; [#uses=2] + %tmp.3 = seteq ubyte %l_88173906, 0 ; [#uses=1] + br bool %tmp.3, label %else.0, label %then.0 + + then.0: ; preds = %entry + %tmp.5 = seteq ubyte %l_88173906, 0 ; [#uses=1] + br bool %tmp.5, label %else.1, label %then.1 + + then.1: ; preds = %then.0 + br label %return + + else.1: ; preds = %then.0 + br label %loopentry.0 + + loopentry.0: ; preds = %no_exit.0, %else.1 + %i.0.1 = phi int [ 0, %else.1 ], [ %inc.0, %no_exit.0 ] ; [#uses=2] + %tmp.9 = setgt int %i.0.1, 99 ; [#uses=1] + br bool %tmp.9, label %endif.0, label %no_exit.0 + + no_exit.0: ; preds = %loopentry.0 + %inc.0 = add int %i.0.1, 1 ; [#uses=1] + br label %loopentry.0 + + else.0: ; preds = %entry + %tmp.12 = cast sbyte %tmp.1 to int ; [#uses=1] + br label %return + + endif.0: ; preds = %loopentry.0 + %tmp.14 = cast sbyte %tmp.1 to int ; [#uses=1] + %tmp.16 = cast ubyte %l_88173906 to int ; [#uses=1] + %tmp.17 = setgt int %tmp.14, %tmp.16 ; [#uses=1] + %tmp.19 = load uint* %g_59182229 ; [#uses=2] + br bool %tmp.17, label %cond_true, label %cond_false + + cond_true: ; preds = %endif.0 + %tmp.20 = setne uint %tmp.19, 1 ; [#uses=1] + br label %cond_continue + + cond_false: ; preds = %endif.0 + %tmp.22 = setne uint %tmp.19, 0 ; [#uses=1] + br label %cond_continue + + cond_continue: ; preds = %cond_false, %cond_true + %mem_tmp.0 = phi bool [ %tmp.20, %cond_true ], [ %tmp.22, %cond_false ] ; [#uses=1] + br bool %mem_tmp.0, label %then.2, label %else.2 + + then.2: ; preds = %cond_continue + %tmp.25 = cast ubyte %l_88173906 to int ; [#uses=1] + br label %return + + else.2: ; preds = %cond_continue + br label %loopentry.1 + + loopentry.1: ; preds = %endif.3, %else.2 + %i.1.1 = phi int [ 0, %else.2 ], [ %inc.3, %endif.3 ] ; [#uses=2] + %i.3.2 = phi int [ undef, %else.2 ], [ %i.3.0, %endif.3 ] ; [#uses=2] + %l_88173906_addr.1 = phi ubyte [ %l_88173906, %else.2 ], [ %l_88173906_addr.0, %endif.3 ] ; [#uses=3] + %tmp.29 = setgt int %i.1.1, 99 ; [#uses=1] + br bool %tmp.29, label %endif.2, label %no_exit.1 + + no_exit.1: ; preds = %loopentry.1 + %tmp.30 = load uint* %g_38098584 ; [#uses=1] + %tmp.31 = seteq uint %tmp.30, 0 ; [#uses=1] + br bool %tmp.31, label %else.3, label %then.3 + + then.3: ; preds = %no_exit.1 + br label %endif.3 + + else.3: ; preds = %no_exit.1 + br bool false, label %else.4, label %then.4 + + then.4: ; preds = %else.3 + br label %endif.3 + + else.4: ; preds = %else.3 + br bool false, label %else.5, label %then.5 + + then.5: ; preds = %else.4 + store uint 3290648471, uint* %g_59182229 + br label %return + + else.5: ; preds = %else.4 + br label %loopentry.3 + + loopentry.3: ; preds = %then.7, %else.5 + %i.3.3 = phi int [ 0, %else.5 ], [ %inc.2, %then.7 ] ; [#uses=3] + %tmp.55 = setgt int %i.3.3, 99 ; [#uses=1] + br bool %tmp.55, label %endif.3, label %no_exit.3 + + no_exit.3: ; preds = %loopentry.3 + %tmp.57 = seteq ubyte %l_88173906_addr.1, 0 ; [#uses=1] + br bool %tmp.57, label %else.7, label %then.7 + + then.7: ; preds = %no_exit.3 + store uint 16239, uint* %g_60187400 + %inc.2 = add int %i.3.3, 1 ; [#uses=1] + br label %loopentry.3 + + else.7: ; preds = %no_exit.3 + br label %return + + endif.3: ; preds = %loopentry.3, %then.4, %then.3 + %i.3.0 = phi int [ %i.3.2, %then.3 ], [ %i.3.2, %then.4 ], [ %i.3.3, %loopentry.3 ] ; [#uses=1] + %l_88173906_addr.0 = phi ubyte [ 100, %then.3 ], [ %l_88173906_addr.1, %then.4 ], [ %l_88173906_addr.1, %loopentry.3 ] ; [#uses=1] + %inc.3 = add int %i.1.1, 1 ; [#uses=1] + br label %loopentry.1 + + endif.2: ; preds = %loopentry.1 + br label %return + + return: ; preds = %endif.2, %else.7, %then.5, %then.2, %else.0, %then.1 + %result.0 = phi int [ 1624650671, %then.1 ], [ %tmp.25, %then.2 ], [ 3379, %then.5 ], [ 52410, %else.7 ], [ -1526438411, %endif.2 ], [ %tmp.12, %else.0 ] ; [#uses=1] + ret int %result.0 + } From lattner at cs.uiuc.edu Thu Jun 16 20:46:04 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Thu, 16 Jun 2005 20:46:04 -0500 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Utils/SimplifyCFG.cpp Message-ID: <200506170146.UAA13887@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Utils: SimplifyCFG.cpp updated: 1.71 -> 1.72 --- Log message: Don't crash on: X = phi (X, X). This fixes PR584: http://llvm.cs.uiuc.edu/PR584 and Transforms/SimplifyCFG/2005-06-16-PHICrash.ll --- Diffs of the changes: (+9 -6) SimplifyCFG.cpp | 15 +++++++++------ 1 files changed, 9 insertions(+), 6 deletions(-) Index: llvm/lib/Transforms/Utils/SimplifyCFG.cpp diff -u llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.71 llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.72 --- llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.71 Fri May 20 17:19:54 2005 +++ llvm/lib/Transforms/Utils/SimplifyCFG.cpp Thu Jun 16 20:45:53 2005 @@ -1461,12 +1461,15 @@ BasicBlock::iterator AfterPHIIt = BB->begin(); while (isa(AfterPHIIt)) { PHINode *PN = cast(AfterPHIIt++); - if (PN->getIncomingValue(0) == PN->getIncomingValue(1)) - PN->replaceAllUsesWith(PN->getIncomingValue(0)); - else if (!DominatesMergePoint(PN->getIncomingValue(0), BB, - &AggressiveInsts) || - !DominatesMergePoint(PN->getIncomingValue(1), BB, - &AggressiveInsts)) { + if (PN->getIncomingValue(0) == PN->getIncomingValue(1)) { + if (PN->getIncomingValue(0) != PN) + PN->replaceAllUsesWith(PN->getIncomingValue(0)); + else + PN->replaceAllUsesWith(UndefValue::get(PN->getType())); + } else if (!DominatesMergePoint(PN->getIncomingValue(0), BB, + &AggressiveInsts) || + !DominatesMergePoint(PN->getIncomingValue(1), BB, + &AggressiveInsts)) { CanPromote = false; break; } From lattner at cs.uiuc.edu Thu Jun 16 21:04:58 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Thu, 16 Jun 2005 21:04:58 -0500 Subject: [llvm-commits] CVS: llvm/test/Regression/Transforms/InstCombine/2005-06-16-RangeCrash.ll Message-ID: <200506170204.VAA14458@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/Transforms/InstCombine: 2005-06-16-RangeCrash.ll added (r1.1) --- Log message: new testcase for PR585: http://llvm.cs.uiuc.edu/PR585 --- Diffs of the changes: (+7 -0) 2005-06-16-RangeCrash.ll | 7 +++++++ 1 files changed, 7 insertions(+) Index: llvm/test/Regression/Transforms/InstCombine/2005-06-16-RangeCrash.ll diff -c /dev/null llvm/test/Regression/Transforms/InstCombine/2005-06-16-RangeCrash.ll:1.1 *** /dev/null Thu Jun 16 21:04:57 2005 --- llvm/test/Regression/Transforms/InstCombine/2005-06-16-RangeCrash.ll Thu Jun 16 21:04:47 2005 *************** *** 0 **** --- 1,7 ---- + ; RUN: llvm-as < %s | opt -instcombine -disable-output + ; PR585 + bool %test() { + %tmp.26 = div int 0, -2147483648 ; [#uses=1] + %tmp.27 = seteq int %tmp.26, 0 ; [#uses=1] + ret bool %tmp.27 + } From lattner at cs.uiuc.edu Thu Jun 16 21:06:06 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Thu, 16 Jun 2005 21:06:06 -0500 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp Message-ID: <200506170206.VAA14471@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.353 -> 1.354 --- Log message: Don't crash when dealing with INTMIN. This fixes PR585: http://llvm.cs.uiuc.edu/PR585 and Transforms/InstCombine/2005-06-16-RangeCrash.ll --- Diffs of the changes: (+2 -0) InstructionCombining.cpp | 2 ++ 1 files changed, 2 insertions(+) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.353 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.354 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.353 Thu Jun 16 20:29:28 2005 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Thu Jun 16 21:05:55 2005 @@ -2699,6 +2699,8 @@ if (CI->isNullValue()) { // (X / neg) op 0 LoBound = AddOne(DivRHS); HiBound = cast(ConstantExpr::getNeg(DivRHS)); + if (HiBound == DivRHS) + LoBound = 0; // - INTMIN = INTMIN } else if (isPositive(CI)) { // (X / neg) op pos HiOverflow = LoOverflow = ProdOV; if (!LoOverflow) From lattner at cs.uiuc.edu Thu Jun 16 22:58:41 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Thu, 16 Jun 2005 22:58:41 -0500 Subject: [llvm-commits] CVS: llvm/test/Regression/Transforms/InstCombine/2005-06-16-SetCCOrSetCCMiscompile.ll Message-ID: <200506170358.WAA16530@zion.cs.uiuc.edu> Changes in directory llvm/test/Regression/Transforms/InstCombine: 2005-06-16-SetCCOrSetCCMiscompile.ll added (r1.1) --- Log message: new testcase for PR586: http://llvm.cs.uiuc.edu/PR586 --- Diffs of the changes: (+15 -0) 2005-06-16-SetCCOrSetCCMiscompile.ll | 15 +++++++++++++++ 1 files changed, 15 insertions(+) Index: llvm/test/Regression/Transforms/InstCombine/2005-06-16-SetCCOrSetCCMiscompile.ll diff -c /dev/null llvm/test/Regression/Transforms/InstCombine/2005-06-16-SetCCOrSetCCMiscompile.ll:1.1 *** /dev/null Thu Jun 16 22:58:40 2005 --- llvm/test/Regression/Transforms/InstCombine/2005-06-16-SetCCOrSetCCMiscompile.ll Thu Jun 16 22:58:30 2005 *************** *** 0 **** --- 1,15 ---- + ; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep 'ret bool true' + ; PR586 + + %g_07918478 = external global uint ; [#uses=1] + + implementation ; Functions: + + bool %test() { + %tmp.0 = load uint* %g_07918478 ; [#uses=2] + %tmp.1 = setne uint %tmp.0, 0 ; [#uses=1] + %tmp.4 = setlt uint %tmp.0, 4111 ; [#uses=1] + %bothcond = or bool %tmp.1, %tmp.4 ; [#uses=1] + ret bool %bothcond + } + From lattner at cs.uiuc.edu Thu Jun 16 22:59:28 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Thu, 16 Jun 2005 22:59:28 -0500 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp Message-ID: <200506170359.WAA16543@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.354 -> 1.355 --- Log message: This is not true: (X != 13 | X < 15) -> X < 15 It is actually always true. This fixes PR586: http://llvm.cs.uiuc.edu/PR586 and Transforms/InstCombine/2005-06-16-SetCCOrSetCCMiscompile.ll --- Diffs of the changes: (+1 -2) InstructionCombining.cpp | 3 +-- 1 files changed, 1 insertion(+), 2 deletions(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.354 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.355 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.354 Thu Jun 16 21:05:55 2005 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Thu Jun 16 22:59:17 2005 @@ -1967,12 +1967,11 @@ case Instruction::SetNE: switch (RHSCC) { default: assert(0 && "Unknown integer condition code!"); - case Instruction::SetLT: // (X != 13 | X < 15) -> X < 15 - return ReplaceInstUsesWith(I, RHS); case Instruction::SetEQ: // (X != 13 | X == 15) -> X != 13 case Instruction::SetGT: // (X != 13 | X > 15) -> X != 13 return ReplaceInstUsesWith(I, LHS); case Instruction::SetNE: // (X != 13 | X != 15) -> true + case Instruction::SetLT: // (X != 13 | X < 15) -> true return ReplaceInstUsesWith(I, ConstantBool::True); } break; From tbrethou at cs.uiuc.edu Thu Jun 16 23:00:02 2005 From: tbrethou at cs.uiuc.edu (Tanya Brethour) Date: Thu, 16 Jun 2005 23:00:02 -0500 Subject: [llvm-commits] CVS: llvm/include/llvm/Target/TargetSchedInfo.h Message-ID: <200506170400.XAA16588@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/Target: TargetSchedInfo.h updated: 1.35 -> 1.36 --- Log message: Added ModuloSchedSB as a friend class. --- Diffs of the changes: (+3 -0) TargetSchedInfo.h | 3 +++ 1 files changed, 3 insertions(+) Index: llvm/include/llvm/Target/TargetSchedInfo.h diff -u llvm/include/llvm/Target/TargetSchedInfo.h:1.35 llvm/include/llvm/Target/TargetSchedInfo.h:1.36 --- llvm/include/llvm/Target/TargetSchedInfo.h:1.35 Thu Apr 21 22:46:24 2005 +++ llvm/include/llvm/Target/TargetSchedInfo.h Thu Jun 16 22:59:51 2005 @@ -280,7 +280,10 @@ friend class ModuloSchedulingPass; + friend class ModuloSchedulingSBPass; friend class MSSchedule; + friend class MSScheduleSB; + friend class MSchedGraphSB; }; From tbrethou at cs.uiuc.edu Thu Jun 16 23:00:33 2005 From: tbrethou at cs.uiuc.edu (Tanya Brethour) Date: Thu, 16 Jun 2005 23:00:33 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp Message-ID: <200506170400.XAA16599@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/SparcV9: SparcV9TargetMachine.cpp updated: 1.137 -> 1.138 --- Log message: Added SMS for superblocks as an option (experimental) --- Diffs of the changes: (+10 -1) SparcV9TargetMachine.cpp | 11 ++++++++++- 1 files changed, 10 insertions(+), 1 deletion(-) Index: llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp diff -u llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp:1.137 llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp:1.138 --- llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp:1.137 Fri May 13 14:45:45 2005 +++ llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp Thu Jun 16 23:00:22 2005 @@ -64,7 +64,10 @@ cl::desc("Emit LLVM-to-MachineCode mapping info to assembly")); cl::opt EnableModSched("enable-modsched", - cl::desc("Enable sparcv9 modulo scheduling pass instead of local scheduling"), cl::Hidden); + cl::desc("Enable modulo scheduling pass"), cl::Hidden); + + cl::opt EnableSBModSched("enable-modschedSB", + cl::desc("Enable superblock modulo scheduling (experimental)"), cl::Hidden); // Register the target. RegisterTarget X("sparcv9", " SPARC V9"); @@ -192,6 +195,9 @@ PM.add(createSparcV9BurgInstSelector(*this)); + if(!DisableSched && PrintMachineCode) + PM.add(createMachineFunctionPrinterPass(&std::cerr, "Before local scheduling:\n")); + if (!DisableSched) PM.add(createInstructionSchedulingWithSSAPass(*this)); @@ -202,6 +208,9 @@ if(EnableModSched) PM.add(createModuloSchedulingPass(*this)); + if(EnableSBModSched) + PM.add(createModuloSchedulingSBPass(*this)); + if (PrintMachineCode) PM.add(createMachineFunctionPrinterPass(&std::cerr, "Before reg alloc:\n")); From tbrethou at cs.uiuc.edu Thu Jun 16 23:01:09 2005 From: tbrethou at cs.uiuc.edu (Tanya Brethour) Date: Thu, 16 Jun 2005 23:01:09 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/SparcV9/ModuloScheduling/DependenceAnalyzer.cpp MSSchedule.cpp MSSchedule.h ModuloScheduling.cpp ModuloScheduling.h ModuloSchedulingSuperBlock.cpp ModuloSchedulingSuperBlock.h Message-ID: <200506170401.XAA16630@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/SparcV9/ModuloScheduling: DependenceAnalyzer.cpp updated: 1.6 -> 1.7 MSSchedule.cpp updated: 1.15 -> 1.16 MSSchedule.h updated: 1.6 -> 1.7 ModuloScheduling.cpp updated: 1.49 -> 1.50 ModuloScheduling.h updated: 1.30 -> 1.31 ModuloSchedulingSuperBlock.cpp updated: 1.1 -> 1.2 ModuloSchedulingSuperBlock.h updated: 1.1 -> 1.2 --- Log message: Numerous bug fixes and the completed modschedSB algorithm (minor bugs still exist for course). --- Diffs of the changes: (+3305 -195) DependenceAnalyzer.cpp | 25 MSSchedule.cpp | 203 +- MSSchedule.h | 8 ModuloScheduling.cpp | 174 +- ModuloScheduling.h | 3 ModuloSchedulingSuperBlock.cpp | 2968 ++++++++++++++++++++++++++++++++++++++++- ModuloSchedulingSuperBlock.h | 119 + 7 files changed, 3305 insertions(+), 195 deletions(-) Index: llvm/lib/Target/SparcV9/ModuloScheduling/DependenceAnalyzer.cpp diff -u llvm/lib/Target/SparcV9/ModuloScheduling/DependenceAnalyzer.cpp:1.6 llvm/lib/Target/SparcV9/ModuloScheduling/DependenceAnalyzer.cpp:1.7 --- llvm/lib/Target/SparcV9/ModuloScheduling/DependenceAnalyzer.cpp:1.6 Sat Apr 30 18:07:58 2005 +++ llvm/lib/Target/SparcV9/ModuloScheduling/DependenceAnalyzer.cpp Thu Jun 16 23:00:57 2005 @@ -159,10 +159,10 @@ SCEVHandle SV2 = SE->getSCEV(Gep2Idx); //Now handle special cases of dependence analysis - SV1->print(std::cerr); - std::cerr << "\n"; - SV2->print(std::cerr); - std::cerr << "\n"; + //SV1->print(std::cerr); + //std::cerr << "\n"; + //SV2->print(std::cerr); + //std::cerr << "\n"; //Check if we have an SCEVAddExpr, cause we can only handle those SCEVAddRecExpr *SVAdd1 = dyn_cast(SV1); @@ -217,7 +217,7 @@ //Find constant index difference int diff = A1->getValue()->getRawValue() - A2->getValue()->getRawValue(); - std::cerr << diff << "\n"; + //std::cerr << diff << "\n"; if(diff > 5) diff = 2; @@ -240,14 +240,21 @@ //If load/store pair if(valLoad && !val2Load) { - //Anti Dep - deps.push_back(Dependence(diff, Dependence::AntiDep)); + if(srcBeforeDest) + //Anti Dep + deps.push_back(Dependence(diff, Dependence::AntiDep)); + else + deps.push_back(Dependence(diff, Dependence::TrueDep)); + ++NumDeps; } //If store/load pair else if(!valLoad && val2Load) { - //True Dep - deps.push_back(Dependence(diff, Dependence::TrueDep)); + if(srcBeforeDest) + //True Dep + deps.push_back(Dependence(diff, Dependence::TrueDep)); + else + deps.push_back(Dependence(diff, Dependence::AntiDep)); ++NumDeps; } //If store/store pair Index: llvm/lib/Target/SparcV9/ModuloScheduling/MSSchedule.cpp diff -u llvm/lib/Target/SparcV9/ModuloScheduling/MSSchedule.cpp:1.15 llvm/lib/Target/SparcV9/ModuloScheduling/MSSchedule.cpp:1.16 --- llvm/lib/Target/SparcV9/ModuloScheduling/MSSchedule.cpp:1.15 Thu Apr 21 18:29:16 2005 +++ llvm/lib/Target/SparcV9/ModuloScheduling/MSSchedule.cpp Thu Jun 16 23:00:57 2005 @@ -16,18 +16,23 @@ #include "llvm/Support/Debug.h" #include "llvm/Target/TargetSchedInfo.h" #include "../SparcV9Internals.h" +#include "llvm/CodeGen/MachineInstr.h" using namespace llvm; +//Check if all resources are free +bool resourcesFree(MSchedGraphNode*, int, +std::map > &resourceNumPerCycle); + //Returns a boolean indicating if the start cycle needs to be increased/decreased -bool MSSchedule::insert(MSchedGraphNode *node, int cycle) { +bool MSSchedule::insert(MSchedGraphNode *node, int cycle, int II) { //First, check if the cycle has a spot free to start if(schedule.find(cycle) != schedule.end()) { //Check if we have a free issue slot at this cycle if (schedule[cycle].size() < numIssue) { //Now check if all the resources in their respective cycles are available - if(resourcesFree(node, cycle)) { + if(resourcesFree(node, cycle, II)) { //Insert to preserve dependencies addToSchedule(cycle,node); DEBUG(std::cerr << "Found spot in map, and there is an issue slot\n"); @@ -37,7 +42,7 @@ } //Not in the map yet so put it in else { - if(resourcesFree(node,cycle)) { + if(resourcesFree(node,cycle,II)) { std::vector nodes; nodes.push_back(node); schedule[cycle] = nodes; @@ -68,99 +73,113 @@ schedule[cycle] = nodes; } +bool MSSchedule::resourceAvailable(int resourceNum, int cycle) { + bool isFree = true; + + //Get Map for this cycle + if(resourceNumPerCycle.count(cycle)) { + if(resourceNumPerCycle[cycle].count(resourceNum)) { + int maxRes = CPUResource::getCPUResource(resourceNum)->maxNumUsers; + if(resourceNumPerCycle[cycle][resourceNum] >= maxRes) + isFree = false; + } + } + + return isFree; +} + +void MSSchedule::useResource(int resourceNum, int cycle) { + + //Get Map for this cycle + if(resourceNumPerCycle.count(cycle)) { + if(resourceNumPerCycle[cycle].count(resourceNum)) { + resourceNumPerCycle[cycle][resourceNum]++; + } + else { + resourceNumPerCycle[cycle][resourceNum] = 1; + } + } + //If no map, create one! + else { + std::map resourceUse; + resourceUse[resourceNum] = 1; + resourceNumPerCycle[cycle] = resourceUse; + } + +} -bool MSSchedule::resourcesFree(MSchedGraphNode *node, int cycle) { +bool MSSchedule::resourcesFree(MSchedGraphNode *node, int cycle, int II) { //Get Resource usage for this instruction const TargetSchedInfo *msi = node->getParent()->getTarget()->getSchedInfo(); int currentCycle = cycle; bool success = true; - //Get resource usage for this instruction - InstrRUsage rUsage = msi->getInstrRUsage(node->getInst()->getOpcode()); - std::vector > resources = rUsage.resourcesByCycle; - - //Loop over resources in each cycle and increments their usage count - for(unsigned i=0; i < resources.size(); ++i) { - for(unsigned j=0; j < resources[i].size(); ++j) { - - //Get Resource to check its availability - int resourceNum = resources[i][j]; - - DEBUG(std::cerr << "Attempting to schedule Resource Num: " << resourceNum << " in cycle: " << currentCycle << "\n"); - - //Check if this resource is available for this cycle - std::map >::iterator resourcesForCycle = resourceNumPerCycle.find(currentCycle); - - //First check if map exists for this cycle - if(resourcesForCycle != resourceNumPerCycle.end()) { - //A map exists for this cycle, so lets check for the resource - std::map::iterator resourceUse = resourcesForCycle->second.find(resourceNum); - if(resourceUse != resourcesForCycle->second.end()) { - //Check if there are enough of this resource and if so, increase count and move on - if(resourceUse->second < CPUResource::getCPUResource(resourceNum)->maxNumUsers) - ++resourceUse->second; + //Create vector of starting cycles + std::vector cyclesMayConflict; + cyclesMayConflict.push_back(cycle); + + if(resourceNumPerCycle.size() > 0) { + for(int i = cycle-II; i >= (resourceNumPerCycle.begin()->first); i-=II) + cyclesMayConflict.push_back(i); + for(int i = cycle+II; i <= resourceNumPerCycle.end()->first; i+=II) + cyclesMayConflict.push_back(i); + } + + //Now check all cycles for conflicts + for(int index = 0; index < (int) cyclesMayConflict.size(); ++index) { + currentCycle = cyclesMayConflict[index]; + + //Get resource usage for this instruction + InstrRUsage rUsage = msi->getInstrRUsage(node->getInst()->getOpcode()); + std::vector > resources = rUsage.resourcesByCycle; + + //Loop over resources in each cycle and increments their usage count + for(unsigned i=0; i < resources.size(); ++i) { + for(unsigned j=0; j < resources[i].size(); ++j) { - else { - DEBUG(std::cerr << "No resource num " << resourceNum << " available for cycle " << currentCycle << "\n"); - success = false; - } - } - //Not in the map yet, so put it - else - resourcesForCycle->second[resourceNum] = 1; + //Get Resource to check its availability + int resourceNum = resources[i][j]; + + DEBUG(std::cerr << "Attempting to schedule Resource Num: " << resourceNum << " in cycle: " << currentCycle << "\n"); + + success = resourceAvailable(resourceNum, currentCycle); - } - else { - //Create a new map and put in our resource - std::map resourceMap; - resourceMap[resourceNum] = 1; - resourceNumPerCycle[currentCycle] = resourceMap; - } if(!success) break; + } + if(!success) break; - - + //Increase cycle currentCycle++; + } + + if(!success) + return false; } - if(!success) { - int oldCycle = cycle; - DEBUG(std::cerr << "Backtrack\n"); + //Actually put resources into the map + if(success) { + + int currentCycle = cycle; //Get resource usage for this instruction InstrRUsage rUsage = msi->getInstrRUsage(node->getInst()->getOpcode()); std::vector > resources = rUsage.resourcesByCycle; - + //Loop over resources in each cycle and increments their usage count for(unsigned i=0; i < resources.size(); ++i) { - if(oldCycle < currentCycle) { - - //Check if this resource is available for this cycle - std::map >::iterator resourcesForCycle = resourceNumPerCycle.find(oldCycle); - if(resourcesForCycle != resourceNumPerCycle.end()) { - for(unsigned j=0; j < resources[i].size(); ++j) { - int resourceNum = resources[i][j]; - //remove from map - std::map::iterator resourceUse = resourcesForCycle->second.find(resourceNum); - //assert if not in the map.. since it should be! - //assert(resourceUse != resourcesForCycle.end() && "Resource should be in map!"); - DEBUG(std::cerr << "Removing resource num " << resourceNum << " from cycle " << oldCycle << "\n"); - --resourceUse->second; - } - } + for(unsigned j=0; j < resources[i].size(); ++j) { + int resourceNum = resources[i][j]; + useResource(resourceNum, currentCycle); } - else - break; - oldCycle++; + currentCycle++; } - return false; - } + return true; } @@ -174,12 +193,9 @@ DEBUG(std::cerr << "Offset: " << offset << "\n"); - //Not sure what happens in this case, but assert if offset is > II - //assert(offset > -II && "Offset can not be more then II"); - + //Using the schedule, fold up into kernel and check resource conflicts as we go std::vector > tempKernel; - - + int stageNum = ((schedule.rbegin()->first-offset)+1)/ II; int maxSN = 0; @@ -192,21 +208,18 @@ for(std::vector::iterator I = schedule[i].begin(), E = schedule[i].end(); I != E; ++I) { //Check if its a branch - if((*I)->isBranch()) { - assert(count == 0 && "Branch can not be from a previous iteration"); - tempKernel.push_back(std::make_pair(*I, count)); - } - else { - //FIXME: Check if the instructions in the earlier stage conflict - tempKernel.push_back(std::make_pair(*I, count)); - maxSN = std::max(maxSN, count); - } + assert(!(*I)->isBranch() && "Branch should not be schedule!"); + + tempKernel.push_back(std::make_pair(*I, count)); + maxSN = std::max(maxSN, count); + } } ++count; } } + //Add in induction var code for(std::vector >::iterator I = tempKernel.begin(), IE = tempKernel.end(); I != IE; ++I) { @@ -253,6 +266,30 @@ return true; } +bool MSSchedule::defPreviousStage(Value *def, int stage) { + + //Loop over kernel and determine if value is being defined in previous stage + for(std::vector >::iterator P = kernel.begin(), PE = kernel.end(); P != PE; ++P) { + MachineInstr* inst = P->first; + + //Loop over Machine Operands + for(unsigned i=0; i < inst->getNumOperands(); ++i) { + //get machine operand + const MachineOperand &mOp = inst->getOperand(i); + if(mOp.getType() == MachineOperand::MO_VirtualRegister && mOp.isDef()) { + if(def == mOp.getVRegValue()) { + if(P->second >= stage) + return false; + else + return true; + } + } + } + } + + assert(0 && "We should always have found the def in our kernel\n"); +} + void MSSchedule::print(std::ostream &os) const { os << "Schedule:\n"; Index: llvm/lib/Target/SparcV9/ModuloScheduling/MSSchedule.h diff -u llvm/lib/Target/SparcV9/ModuloScheduling/MSSchedule.h:1.6 llvm/lib/Target/SparcV9/ModuloScheduling/MSSchedule.h:1.7 --- llvm/lib/Target/SparcV9/ModuloScheduling/MSSchedule.h:1.6 Thu Apr 21 18:29:16 2005 +++ llvm/lib/Target/SparcV9/ModuloScheduling/MSSchedule.h Thu Jun 16 23:00:57 2005 @@ -28,7 +28,9 @@ std::map > resourceNumPerCycle; //Check if all resources are free - bool resourcesFree(MSchedGraphNode*, int); + bool resourcesFree(MSchedGraphNode*, int, int II); + bool resourceAvailable(int resourceNum, int cycle); + void useResource(int resourceNum, int cycle); //Resulting kernel std::vector > kernel; @@ -42,13 +44,13 @@ public: MSSchedule(int num) : numIssue(num) {} MSSchedule() : numIssue(4) {} - bool insert(MSchedGraphNode *node, int cycle); + bool insert(MSchedGraphNode *node, int cycle, int II); int getStartCycle(MSchedGraphNode *node); void clear() { schedule.clear(); resourceNumPerCycle.clear(); kernel.clear(); } std::vector >* getKernel() { return &kernel; } bool constructKernel(int II, std::vector &branches, std::map &indVar); int getMaxStage() { return maxStage; } - + bool defPreviousStage(Value *def, int stage); //iterators typedef std::map >::iterator schedule_iterator; Index: llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp diff -u llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp:1.49 llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp:1.50 --- llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp:1.49 Sat Apr 30 18:07:58 2005 +++ llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp Thu Jun 16 23:00:57 2005 @@ -178,7 +178,7 @@ } else ++JumboBB; - std::cerr << "BB Size: " << BI->size() << "\n"; + } defaultInst = 0; @@ -230,7 +230,6 @@ II = std::max(RecMII, ResMII); int mII = II; - IISum += mII; //Print out II, RecMII, and ResMII DEBUG(std::cerr << "II starts out as " << II << " ( RecMII=" << RecMII << " and ResMII=" << ResMII << ")\n"); @@ -285,12 +284,15 @@ reconstructLoop(*BI); ++MSLoops; Changed = true; + FinalIISum += II; + IISum += mII; if(schedule.getMaxStage() == 0) ++SameStage; } - else + else { ++NoSched; + } //Clear out our maps for the next basic block that is processed nodeToAttributesMap.clear(); @@ -323,7 +325,9 @@ if(mOp.getType() == MachineOperand::MO_VirtualRegister && mOp.isDef()) { //assert if this is the second def we have seen //DEBUG(std::cerr << "Putting " << *(mOp.getVRegValue()) << " into map\n"); - assert(!defMap.count(mOp.getVRegValue()) && "Def already in the map"); + //assert(!defMap.count(mOp.getVRegValue()) && "Def already in the map"); + if(defMap.count(mOp.getVRegValue())) + return false; defMap[mOp.getVRegValue()] = &*I; } @@ -397,7 +401,7 @@ || OC == V9::MOVRGEZi || OC == V9::MOVLEr || OC == V9::MOVLEi || OC == V9::MOVLEUr || OC == V9::MOVLEUi || OC == V9::MOVFLEr || OC == V9::MOVFLEi || OC == V9::MOVNEr || OC == V9::MOVNEi || OC == V9::MOVNEGr || OC == V9::MOVNEGi - || OC == V9::MOVFNEr || OC == V9::MOVFNEi) { + || OC == V9::MOVFNEr || OC == V9::MOVFNEi || OC == V9::MOVGr || OC == V9::MOVGi) { ++LoopsWithCondMov; return false; } @@ -579,6 +583,8 @@ //Divide the usage count by either the max number we can issue or the number of //resources (whichever is its upper bound) double finalUsageCount; + DEBUG(std::cerr << "Resource Num: " << RB->first << " Usage: " << usageCount << " TotalNum: " << resourceNum << "\n"); + if( resourceNum <= issueSlots) finalUsageCount = ceil(1.0 * usageCount / resourceNum); else @@ -1035,6 +1041,56 @@ } +void ModuloSchedulingPass::addSCC(std::vector &SCC, std::map &newNodes) { + + int totalDelay = 0; + int totalDistance = 0; + std::vector recc; + MSchedGraphNode *start = 0; + MSchedGraphNode *end = 0; + + //Loop over recurrence, get delay and distance + for(std::vector::iterator N = SCC.begin(), NE = SCC.end(); N != NE; ++N) { + DEBUG(std::cerr << **N << "\n"); + totalDelay += (*N)->getLatency(); + + for(unsigned i = 0; i < (*N)->succ_size(); ++i) { + MSchedGraphEdge *edge = (*N)->getSuccessor(i); + if(find(SCC.begin(), SCC.end(), edge->getDest()) != SCC.end()) { + totalDistance += edge->getIteDiff(); + if(edge->getIteDiff() > 0) + if(!start && !end) { + start = *N; + end = edge->getDest(); + } + + } + } + + + //Get the original node + recc.push_back(newNodes[*N]); + + + } + + DEBUG(std::cerr << "End Recc\n"); + CircCount++; + + assert( (start && end) && "Must have start and end node to ignore edge for SCC"); + + if(start && end) { + //Insert reccurrence into the list + DEBUG(std::cerr << "Ignore Edge from!!: " << *start << " to " << *end << "\n"); + edgesToIgnore.insert(std::make_pair(newNodes[start], (newNodes[end])->getInEdgeNum(newNodes[start]))); + } + + int lastII = totalDelay / totalDistance; + + + recurrenceList.insert(std::make_pair(lastII, recc)); + +} void ModuloSchedulingPass::findAllCircuits(MSchedGraph *g, int II) { @@ -1074,6 +1130,7 @@ std::set Visited; std::vector Vk; MSchedGraphNode* s = 0; + int numEdges = 0; //Find scc with the least vertex for (MSchedGraph::iterator GI = MSG->begin(), E = MSG->end(); GI != E; ++GI) @@ -1085,7 +1142,19 @@ if (Visited.insert(nextSCC[0]).second) { Visited.insert(nextSCC.begin()+1, nextSCC.end()); - DEBUG(std::cerr << "SCC size: " << nextSCC.size() << "\n"); + if(nextSCC.size() > 1) { + std::cerr << "SCC size: " << nextSCC.size() << "\n"; + + for(unsigned i = 0; i < nextSCC.size(); ++i) { + //Loop over successor and see if in scc, then count edge + MSchedGraphNode *node = nextSCC[i]; + for(MSchedGraphNode::succ_iterator S = node->succ_begin(), SE = node->succ_end(); S != SE; ++S) { + if(find(nextSCC.begin(), nextSCC.end(), *S) != nextSCC.end()) + numEdges++; + } + } + std::cerr << "Num Edges: " << numEdges << "\n"; + } //Ignore self loops if(nextSCC.size() > 1) { @@ -1120,7 +1189,10 @@ B[*N].clear(); } if(Vk.size() > 1) { - circuit(s, stack, blocked, Vk, s, B, II, newNodes); + if(numEdges < 98) + circuit(s, stack, blocked, Vk, s, B, II, newNodes); + else + addSCC(Vk, newNodes); //Delete nodes from the graph //Find all nodes up to s and delete them @@ -1860,8 +1932,8 @@ schedule.clear(); } DEBUG(std::cerr << "Final II: " << II << "\n"); - FinalIISum += II; } + if(II >= capII) { DEBUG(std::cerr << "Maximum II reached, giving up\n"); @@ -1900,7 +1972,7 @@ increaseSC = false; - increaseSC = schedule.insert(node, cycle); + increaseSC = schedule.insert(node, cycle, II); if(!increaseSC) return true; @@ -2034,18 +2106,11 @@ } } - - /*for(std::vector::iterator BR = branches.begin(), BE = branches.end(); BR != BE; ++BR) { - - //Stick in branch at the end - machineBB->push_back((*BR)->getInst()->clone()); - - //Add nop - BuildMI(machineBB, V9::NOP, 0); - }*/ - - - (((MachineBasicBlock*)origBB)->getParent())->getBasicBlockList().push_back(machineBB); + MachineFunction *F = (((MachineBasicBlock*)origBB)->getParent()); + MachineFunction::BasicBlockListType &BL = F->getBasicBlockList(); + MachineFunction::BasicBlockListType::iterator BLI = origBB; + assert(BLI != BL.end() && "Must find original BB in machine function\n"); + BL.insert(BLI,machineBB); prologues.push_back(machineBB); llvm_prologues.push_back(llvmBB); } @@ -2143,12 +2208,16 @@ } } - (((MachineBasicBlock*)origBB)->getParent())->getBasicBlockList().push_back(machineBB); - epilogues.push_back(machineBB); - llvm_epilogues.push_back(llvmBB); - - DEBUG(std::cerr << "EPILOGUE #" << i << "\n"); - DEBUG(machineBB->print(std::cerr)); + MachineFunction *F = (((MachineBasicBlock*)origBB)->getParent()); + MachineFunction::BasicBlockListType &BL = F->getBasicBlockList(); + MachineFunction::BasicBlockListType::iterator BLI = (MachineBasicBlock*) origBB; + assert(BLI != BL.end() && "Must find original BB in machine function\n"); + BL.insert(BLI,machineBB); + epilogues.push_back(machineBB); + llvm_epilogues.push_back(llvmBB); + + DEBUG(std::cerr << "EPILOGUE #" << i << "\n"); + DEBUG(machineBB->print(std::cerr)); } } @@ -2170,14 +2239,6 @@ DEBUG(std::cerr << "Stage: " << I->second << " Inst: " << *(I->first) << "\n";); - /*if(I->first->isBranch()) { - //Clone instruction - const MachineInstr *inst = I->first->getInst(); - MachineInstr *instClone = inst->clone(); - branches.push_back(instClone); - continue; - }*/ - //Clone instruction const MachineInstr *inst = I->first; MachineInstr *instClone = inst->clone(); @@ -2208,6 +2269,8 @@ //Check if we already have a final PHI value for this if(!finalPHIValue.count(mOp.getVRegValue())) { + //Only create phi if the operand def is from a stage before this one + if(schedule.defPreviousStage(mOp.getVRegValue(), I->second)) { TmpInstruction *tmp = new TmpInstruction(mOp.getVRegValue()); //Get machine code for this instruction @@ -2220,6 +2283,7 @@ //save this as our final phi finalPHIValue[mOp.getVRegValue()] = tmp; newValLocation[tmp] = machineBB; + } } else { //Use the previous final phi value @@ -2538,6 +2602,7 @@ //Keep track of instructions we have already seen and their stage because //we don't want to "save" values if they are used in the kernel immediately std::map lastInstrs; + std::map phiUses; //Loop over kernel and only look at instructions from a stage > 0 //Look at its operands and save values *'s that are read @@ -2557,7 +2622,7 @@ //find the value in the map if (const Value* srcI = mOp.getVRegValue()) { - if(isa(srcI) || isa(srcI) || isa(srcI)) + if(isa(srcI) || isa(srcI)) continue; //Before we declare this Value* one that we should save @@ -2582,9 +2647,27 @@ } } - if(save) + if(save) { + assert(!phiUses.count(srcI) && "Did not expect to see phi use twice"); + if(isa(srcI)) + phiUses[srcI] = I->second; + valuesToSave[srcI] = std::make_pair(I->first, i); - } + + } + } + } + else if(mOp.getType() == MachineOperand::MO_VirtualRegister && mOp.isDef()) { + if (const Value* destI = mOp.getVRegValue()) { + if(!isa(destI)) + continue; + if(phiUses.count(destI)) { + if(phiUses[destI] == I->second) { + //remove from save list + valuesToSave.erase(destI); + } + } + } } if(mOp.getType() != MachineOperand::MO_VirtualRegister && mOp.isUse()) { @@ -2623,7 +2706,14 @@ BasicBlock *llvmKernelBB = new BasicBlock("Kernel", (Function*) (BB->getBasicBlock()->getParent())); MachineBasicBlock *machineKernelBB = new MachineBasicBlock(llvmKernelBB); - (((MachineBasicBlock*)BB)->getParent())->getBasicBlockList().push_back(machineKernelBB); + + MachineFunction *F = (((MachineBasicBlock*)BB)->getParent()); + MachineFunction::BasicBlockListType &BL = F->getBasicBlockList(); + MachineFunction::BasicBlockListType::iterator BLI = BB; + assert(BLI != BL.end() && "Must find original BB in machine function\n"); + BL.insert(BLI,machineKernelBB); + + //(((MachineBasicBlock*)BB)->getParent())->getBasicBlockList().push_back(machineKernelBB); writeKernel(llvmKernelBB, machineKernelBB, valuesToSave, newValues, newValLocation, kernelPHIs); @@ -2833,7 +2923,8 @@ for(unsigned opNum = 0; opNum < temp->getNumOperands(); ++opNum) { MachineOperand &mOp = temp->getOperand(opNum); if (mOp.getType() == MachineOperand::MO_PCRelativeDisp) { - mOp.setValueReg(llvm_prologues[0]); + if(mOp.getVRegValue() == llvmBB) + mOp.setValueReg(llvm_prologues[0]); } } } @@ -2853,7 +2944,8 @@ for(unsigned opNum = 0; opNum < temp->getNumOperands(); ++opNum) { MachineOperand &mOp = temp->getOperand(opNum); if (mOp.getType() == MachineOperand::MO_PCRelativeDisp) { - mOp.setValueReg(llvmKernelBB); + if(mOp.getVRegValue() == llvmBB) + mOp.setValueReg(llvmKernelBB); } } } Index: llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h diff -u llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h:1.30 llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h:1.31 --- llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h:1.30 Sat Apr 30 18:07:59 2005 +++ llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h Thu Jun 16 23:00:57 2005 @@ -98,6 +98,7 @@ void findAllReccurrences(MSchedGraphNode *node, std::vector &visitedNodes, int II); void addReccurrence(std::vector &recurrence, int II, MSchedGraphNode*, MSchedGraphNode*); + void addSCC(std::vector &SCC, std::map &newNodes); void findAllCircuits(MSchedGraph *MSG, int II); bool circuit(MSchedGraphNode *v, std::vector &stack, @@ -142,7 +143,7 @@ void writeKernel(BasicBlock *llvmBB, MachineBasicBlock *machineBB, std::map > &valuesToSave, std::map > &newValues, std::map &newValLocation, std::map > &kernelPHIs); - void removePHIs(const MachineBasicBlock *origBB, std::vector &prologues, std::vector &epilogues, MachineBasicBlock *kernelBB, std::map &newValLocation); + void removePHIs(const MachineBasicBlock* SB, std::vector &prologues, std::vector &epilogues, MachineBasicBlock *kernelBB, std::map &newValLocation); void connectedComponentSet(MSchedGraphNode *node, std::set &ccSet, std::set &lastNodes); Index: llvm/lib/Target/SparcV9/ModuloScheduling/ModuloSchedulingSuperBlock.cpp diff -u llvm/lib/Target/SparcV9/ModuloScheduling/ModuloSchedulingSuperBlock.cpp:1.1 llvm/lib/Target/SparcV9/ModuloScheduling/ModuloSchedulingSuperBlock.cpp:1.2 --- llvm/lib/Target/SparcV9/ModuloScheduling/ModuloSchedulingSuperBlock.cpp:1.1 Sat Apr 30 20:27:47 2005 +++ llvm/lib/Target/SparcV9/ModuloScheduling/ModuloSchedulingSuperBlock.cpp Thu Jun 16 23:00:57 2005 @@ -17,12 +17,16 @@ #include "DependenceAnalyzer.h" #include "ModuloSchedulingSuperBlock.h" +#include "llvm/Constants.h" #include "llvm/ADT/Statistic.h" #include "llvm/CodeGen/MachineFunction.h" #include "llvm/CodeGen/Passes.h" #include "llvm/Support/CFG.h" #include "llvm/Support/Debug.h" #include "llvm/Support/GraphWriter.h" +#include "llvm/Support/Timer.h" +#include "llvm/ADT/StringExtras.h" +#include "llvm/ADT/SCCIterator.h" #include "llvm/Instructions.h" #include "../MachineCodeForInstruction.h" #include "../SparcV9RegisterInfo.h" @@ -30,6 +34,8 @@ #include "../SparcV9TmpInstr.h" #include #include +#include +#include using namespace llvm; /// Create ModuloSchedulingSBPass @@ -39,9 +45,18 @@ return new ModuloSchedulingSBPass(targ); } + +#if 1 +#define TIME_REGION(VARNAME, DESC) \ + NamedRegionTimer VARNAME(DESC) +#else +#define TIME_REGION(VARNAME, DESC) +#endif + + //Graph Traits for printing out the dependence graph template -static void WriteGraphToFile(std::ostream &O, const std::string &GraphName, +static void WriteGraphToFileSB(std::ostream &O, const std::string &GraphName, const GraphType >) { std::string Filename = GraphName + ".dot"; O << "Writing '" << Filename << "'..."; @@ -58,8 +73,82 @@ Statistic<> NumLoops("moduloschedSB-numLoops", "Total Number of Loops"); Statistic<> NumSB("moduloschedSB-numSuperBlocks", "Total Number of SuperBlocks"); Statistic<> BBWithCalls("modulosched-BBCalls", "Basic Blocks rejected due to calls"); - Statistic<> BBWithCondMov("modulosched-loopCondMov", "Basic Blocks rejected due to conditional moves"); + Statistic<> BBWithCondMov("modulosched-loopCondMov", + "Basic Blocks rejected due to conditional moves"); + Statistic<> SBResourceConstraint("modulosched-resourceConstraint", + "Loops constrained by resources"); + Statistic<> SBRecurrenceConstraint("modulosched-recurrenceConstraint", + "Loops constrained by recurrences"); + Statistic<> SBFinalIISum("modulosched-finalIISum", "Sum of all final II"); + Statistic<> SBIISum("modulosched-IISum", "Sum of all theoretical II"); + Statistic<> SBMSLoops("modulosched-schedLoops", "Number of loops successfully modulo-scheduled"); + Statistic<> SBNoSched("modulosched-noSched", "No schedule"); + Statistic<> SBSameStage("modulosched-sameStage", "Max stage is 0"); + Statistic<> SBBLoops("modulosched-SBBLoops", "Number single basic block loops"); + Statistic<> SBInvalid("modulosched-SBInvalid", "Number invalid superblock loops"); + Statistic<> SBValid("modulosched-SBValid", "Number valid superblock loops"); + Statistic<> SBSize("modulosched-SBSize", "Total size of all valid superblocks"); + + template<> + struct DOTGraphTraits : public DefaultDOTGraphTraits { + static std::string getGraphName(MSchedGraphSB *F) { + return "Dependence Graph"; + } + + static std::string getNodeLabel(MSchedGraphSBNode *Node, MSchedGraphSB *Graph) { + if(!Node->isPredicate()) { + if (Node->getInst()) { + std::stringstream ss; + ss << *(Node->getInst()); + return ss.str(); //((MachineInstr*)Node->getInst()); + } + else + return "No Inst"; + } + else + return "Pred Node"; + } + static std::string getEdgeSourceLabel(MSchedGraphSBNode *Node, + MSchedGraphSBNode::succ_iterator I) { + //Label each edge with the type of dependence + std::string edgelabel = ""; + switch (I.getEdge().getDepOrderType()) { + + case MSchedGraphSBEdge::TrueDep: + edgelabel = "True"; + break; + + case MSchedGraphSBEdge::AntiDep: + edgelabel = "Anti"; + break; + + case MSchedGraphSBEdge::OutputDep: + edgelabel = "Output"; + break; + + case MSchedGraphSBEdge::NonDataDep: + edgelabel = "Pred"; + break; + + default: + edgelabel = "Unknown"; + break; + } + + //FIXME + int iteDiff = I.getEdge().getIteDiff(); + std::string intStr = "(IteDiff: "; + intStr += itostr(iteDiff); + + intStr += ")"; + edgelabel += intStr; + + return edgelabel; + } + }; + bool ModuloSchedulingSBPass::runOnFunction(Function &F) { + alarm(100); bool Changed = false; //Get MachineFunction @@ -91,14 +180,97 @@ continue; } - MSchedGraph *MSG = new MSchedGraph(*SB, target, indVarInstrs[*SB], DA, + MSchedGraphSB *MSG = new MSchedGraphSB(*SB, target, indVarInstrs[*SB], DA, machineTollvm[*SB]); //Write Graph out to file - DEBUG(WriteGraphToFile(std::cerr, F.getName(), MSG)); - DEBUG(MSG->print(std::cerr)); + DEBUG(WriteGraphToFileSB(std::cerr, F.getName(), MSG)); + + //Calculate Resource II + int ResMII = calculateResMII(*SB); + + //Calculate Recurrence II + int RecMII = calculateRecMII(MSG, ResMII); + + DEBUG(std::cerr << "Number of reccurrences found: " << recurrenceList.size() << "\n"); + + //Our starting initiation interval is the maximum of RecMII and ResMII + if(RecMII < ResMII) + ++SBRecurrenceConstraint; + else + ++SBResourceConstraint; + + II = std::max(RecMII, ResMII); + int mII = II; + + + //Print out II, RecMII, and ResMII + DEBUG(std::cerr << "II starts out as " << II << " ( RecMII=" << RecMII << " and ResMII=" << ResMII << ")\n"); + + //Calculate Node Properties + calculateNodeAttributes(MSG, ResMII); + + //Dump node properties if in debug mode + DEBUG(for(std::map::iterator I = nodeToAttributesMap.begin(), + E = nodeToAttributesMap.end(); I !=E; ++I) { + std::cerr << "Node: " << *(I->first) << " ASAP: " << I->second.ASAP << " ALAP: " + << I->second.ALAP << " MOB: " << I->second.MOB << " Depth: " << I->second.depth + << " Height: " << I->second.height << "\n"; + }); + + + //Put nodes in order to schedule them + computePartialOrder(); + + //Dump out partial order + DEBUG(for(std::vector >::iterator I = partialOrder.begin(), + E = partialOrder.end(); I !=E; ++I) { + std::cerr << "Start set in PO\n"; + for(std::set::iterator J = I->begin(), JE = I->end(); J != JE; ++J) + std::cerr << "PO:" << **J << "\n"; + }); + //Place nodes in final order + orderNodes(); + + //Dump out order of nodes + DEBUG(for(std::vector::iterator I = FinalNodeOrder.begin(), E = FinalNodeOrder.end(); I != E; ++I) { + std::cerr << "FO:" << **I << "\n"; + }); + + + //Finally schedule nodes + bool haveSched = computeSchedule(*SB, MSG); + + //Print out final schedule + DEBUG(schedule.print(std::cerr)); + + //Final scheduling step is to reconstruct the loop only if we actual have + //stage > 0 + if(haveSched) { + //schedule.printSchedule(std::cerr); + reconstructLoop(*SB); + ++SBMSLoops; + //Changed = true; + SBIISum += mII; + SBFinalIISum += II; + + if(schedule.getMaxStage() == 0) + ++SBSameStage; + } + else + ++SBNoSched; + + //Clear out our maps for the next basic block that is processed + nodeToAttributesMap.clear(); + partialOrder.clear(); + recurrenceList.clear(); + FinalNodeOrder.clear(); + schedule.clear(); + defMap.clear(); + } + alarm(0); return Changed; } @@ -145,63 +317,211 @@ MachineBasicBlock *currentMBB = bbMap[header]; bool done = false; bool success = true; + unsigned offset = 0; + std::map indexMap; while(!done) { - - if(MachineBBisValid(currentMBB)) { - - //Loop over successors of this BB, they should be in the loop block - //and be valid - BasicBlock *next = 0; - for(succ_iterator I = succ_begin(current), E = succ_end(current); - I != E; ++I) { - if(L->contains(*I)) { - if(!next) - next = *I; - else { - done = true; - success = false; - break; - } - } - } - if(success) { - superBlock.push_back(currentMBB); - if(next == header) - done = true; - else if(!next->getSinglePredecessor()) { + //Loop over successors of this BB, they should be in the + //loop block and be valid + BasicBlock *next = 0; + for(succ_iterator I = succ_begin(current), E = succ_end(current); + I != E; ++I) { + if(L->contains(*I)) { + if(!next) + next = *I; + else { done = true; success = false; - } - else { - //Check that the next BB only has one entry - current = next; - assert(bbMap.count(current) && "LLVM BB must have corresponding Machine BB"); - currentMBB = bbMap[current]; + break; } } } - else { - done = true; - success = false; + + if(success) { + superBlock.push_back(currentMBB); + if(next == header) + done = true; + else if(!next->getSinglePredecessor()) { + done = true; + success = false; + } + else { + //Check that the next BB only has one entry + current = next; + assert(bbMap.count(current) && "LLVM BB must have corresponding Machine BB"); + currentMBB = bbMap[current]; + } } } + + + + if(success) { ++NumSB; - Worklist.push_back(superBlock); + + //Loop over all the blocks in the superblock + for(std::vector::iterator currentMBB = superBlock.begin(), MBBEnd = superBlock.end(); currentMBB != MBBEnd; ++currentMBB) { + if(!MachineBBisValid(*currentMBB, indexMap, offset)) { + success = false; + break; + } + } + } + + if(success) { + if(getIndVar(superBlock, bbMap, indexMap)) { + ++SBValid; + Worklist.push_back(superBlock); + SBSize += superBlock.size(); + } + else + ++SBInvalid; + } + } + } + } + + + bool ModuloSchedulingSBPass::getIndVar(std::vector &superBlock, std::map &bbMap, + std::map &indexMap) { + //See if we can get induction var instructions + std::set llvmSuperBlock; + + for(unsigned i =0; i < superBlock.size(); ++i) + llvmSuperBlock.insert(superBlock[i]->getBasicBlock()); + + //Get Target machine instruction info + const TargetInstrInfo *TMI = target.getInstrInfo(); + + //Get the loop back branch + BranchInst *b = dyn_cast(((BasicBlock*) (superBlock[superBlock.size()-1])->getBasicBlock())->getTerminator()); + std::set indVar; + + if(b->isConditional()) { + //Get the condition for the branch + Value *cond = b->getCondition(); + + DEBUG(std::cerr << "Condition: " << *cond << "\n"); + + //List of instructions associated with induction variable + std::vector stack; + + //Add branch + indVar.insert(b); + + if(Instruction *I = dyn_cast(cond)) + if(bbMap.count(I->getParent())) { + if (!assocIndVar(I, indVar, stack, bbMap, superBlock[(superBlock.size()-1)]->getBasicBlock(), llvmSuperBlock)) + return false; + } + else + return false; + else + return false; + } + else { + indVar.insert(b); + } + + //Dump out instructions associate with indvar for debug reasons + DEBUG(for(std::set::iterator N = indVar.begin(), NE = indVar.end(); + N != NE; ++N) { + std::cerr << **N << "\n"; + }); + + //Create map of machine instr to llvm instr + std::map mllvm; + for(std::vector::iterator MBB = superBlock.begin(), MBE = superBlock.end(); MBB != MBE; ++MBB) { + BasicBlock *BB = (BasicBlock*) (*MBB)->getBasicBlock(); + for(BasicBlock::iterator I = BB->begin(), E = BB->end(); I != E; ++I) { + MachineCodeForInstruction & tempMvec = MachineCodeForInstruction::get(I); + for (unsigned j = 0; j < tempMvec.size(); j++) { + mllvm[tempMvec[j]] = I; } + } + } + //Convert list of LLVM Instructions to list of Machine instructions + std::map mIndVar; + for(std::set::iterator N = indVar.begin(), + NE = indVar.end(); N != NE; ++N) { + + //If we have a load, we can't handle this loop because + //there is no way to preserve dependences between loads + //and stores + if(isa(*N)) + return false; + + MachineCodeForInstruction & tempMvec = MachineCodeForInstruction::get(*N); + for (unsigned j = 0; j < tempMvec.size(); j++) { + MachineOpCode OC = (tempMvec[j])->getOpcode(); + if(TMI->isNop(OC)) + continue; + if(!indexMap.count(tempMvec[j])) + continue; + mIndVar[(MachineInstr*) tempMvec[j]] = indexMap[(MachineInstr*) tempMvec[j]]; + DEBUG(std::cerr << *(tempMvec[j]) << " at index " << indexMap[(MachineInstr*) tempMvec[j]] << "\n"); + } } + + //Put into a map for future access + indVarInstrs[superBlock] = mIndVar; + machineTollvm[superBlock] = mllvm; + + return true; + + } + bool ModuloSchedulingSBPass::assocIndVar(Instruction *I, + std::set &indVar, + std::vector &stack, + std::map &bbMap, + const BasicBlock *last, std::set &llvmSuperBlock) { + + stack.push_back(I); + + //If this is a phi node, check if its the canonical indvar + if(PHINode *PN = dyn_cast(I)) { + if(llvmSuperBlock.count(PN->getParent())) { + if (Instruction *Inc = + dyn_cast(PN->getIncomingValueForBlock(last))) + if (Inc->getOpcode() == Instruction::Add && Inc->getOperand(0) == PN) + if (ConstantInt *CI = dyn_cast(Inc->getOperand(1))) + if (CI->equalsInt(1)) { + //We have found the indvar, so add the stack, and inc instruction to the set + indVar.insert(stack.begin(), stack.end()); + indVar.insert(Inc); + stack.pop_back(); + return true; + } + return false; + } + } + else { + //Loop over each of the instructions operands, check if they are an instruction and in this BB + for(unsigned i = 0; i < I->getNumOperands(); ++i) { + if(Instruction *N = dyn_cast(I->getOperand(i))) { + if(bbMap.count(N->getParent())) + if(!assocIndVar(N, indVar, stack, bbMap, last, llvmSuperBlock)) + return false; + } + } } + + stack.pop_back(); + return true; } + /// This function checks if a Machine Basic Block is valid for modulo /// scheduling. This means that it has no control flow (if/else or /// calls) in the block. Currently ModuloScheduling only works on /// single basic block loops. - bool ModuloSchedulingSBPass::MachineBBisValid(const MachineBasicBlock *BI) { + bool ModuloSchedulingSBPass::MachineBBisValid(const MachineBasicBlock *BI, + std::map &indexMap, + unsigned &offset) { //Check size of our basic block.. make sure we have more then just the terminator in it if(BI->getBasicBlock()->size() == 1) @@ -210,9 +530,6 @@ //Get Target machine instruction info const TargetInstrInfo *TMI = target.getInstrInfo(); - //Check each instruction and look for calls, keep map to get index later - std::map indexMap; - unsigned count = 0; for(MachineBasicBlock::const_iterator I = BI->begin(), E = BI->end(); I != E; ++I) { //Get opcode to check instruction type @@ -236,7 +553,7 @@ return false; } - indexMap[I] = count; + indexMap[I] = count + offset; if(TMI->isNop(OC)) continue; @@ -244,6 +561,8 @@ ++count; } + offset += count; + return true; } } @@ -258,10 +577,16 @@ for(unsigned opNum = 0; opNum < I->getNumOperands(); ++opNum) { const MachineOperand &mOp = I->getOperand(opNum); if(mOp.getType() == MachineOperand::MO_VirtualRegister && mOp.isDef()) { - + Value *V = mOp.getVRegValue(); //assert if this is the second def we have seen - assert(!defMap.count(mOp.getVRegValue()) && "Def already in the map"); - defMap[mOp.getVRegValue()] = (MachineInstr*) &*I; + if(defMap.count(V) && isa(V)) + DEBUG(std::cerr << "FIXME: Dup def for phi!\n"); + else { + //assert(!defMap.count(V) && "Def already in the map"); + if(defMap.count(V)) + return false; + defMap[V] = (MachineInstr*) &*I; + } } //See if we can use this Value* as our defaultInst @@ -280,3 +605,2554 @@ return true; } + + +//ResMII is calculated by determining the usage count for each resource +//and using the maximum. +//FIXME: In future there should be a way to get alternative resources +//for each instruction +int ModuloSchedulingSBPass::calculateResMII(std::vector &superBlock) { + + TIME_REGION(X, "calculateResMII"); + + const TargetInstrInfo *mii = target.getInstrInfo(); + const TargetSchedInfo *msi = target.getSchedInfo(); + + int ResMII = 0; + + //Map to keep track of usage count of each resource + std::map resourceUsageCount; + + for(std::vector::iterator BI = superBlock.begin(), BE = superBlock.end(); BI != BE; ++BI) { + for(MachineBasicBlock::const_iterator I = (*BI)->begin(), E = (*BI)->end(); I != E; ++I) { + + //Get resource usage for this instruction + InstrRUsage rUsage = msi->getInstrRUsage(I->getOpcode()); + std::vector > resources = rUsage.resourcesByCycle; + + //Loop over resources in each cycle and increments their usage count + for(unsigned i=0; i < resources.size(); ++i) + for(unsigned j=0; j < resources[i].size(); ++j) { + if(!resourceUsageCount.count(resources[i][j])) { + resourceUsageCount[resources[i][j]] = 1; + } + else { + resourceUsageCount[resources[i][j]] = resourceUsageCount[resources[i][j]] + 1; + } + } + } + } + + //Find maximum usage count + + //Get max number of instructions that can be issued at once. (FIXME) + int issueSlots = msi->maxNumIssueTotal; + + for(std::map::iterator RB = resourceUsageCount.begin(), RE = resourceUsageCount.end(); RB != RE; ++RB) { + + //Get the total number of the resources in our cpu + int resourceNum = CPUResource::getCPUResource(RB->first)->maxNumUsers; + + //Get total usage count for this resources + unsigned usageCount = RB->second; + + //Divide the usage count by either the max number we can issue or the number of + //resources (whichever is its upper bound) + double finalUsageCount; + DEBUG(std::cerr << "Resource Num: " << RB->first << " Usage: " << usageCount << " TotalNum: " << resourceNum << "\n"); + + if( resourceNum <= issueSlots) + finalUsageCount = ceil(1.0 * usageCount / resourceNum); + else + finalUsageCount = ceil(1.0 * usageCount / issueSlots); + + + //Only keep track of the max + ResMII = std::max( (int) finalUsageCount, ResMII); + + } + + return ResMII; + +} + +/// calculateRecMII - Calculates the value of the highest recurrence +/// By value we mean the total latency/distance +int ModuloSchedulingSBPass::calculateRecMII(MSchedGraphSB *graph, int MII) { + + TIME_REGION(X, "calculateRecMII"); + + findAllCircuits(graph, MII); + int RecMII = 0; + + for(std::set > >::iterator I = recurrenceList.begin(), E=recurrenceList.end(); I !=E; ++I) { + RecMII = std::max(RecMII, I->first); + } + + return MII; +} + +int CircCountSB; + +void ModuloSchedulingSBPass::unblock(MSchedGraphSBNode *u, std::set &blocked, + std::map > &B) { + + //Unblock u + DEBUG(std::cerr << "Unblocking: " << *u << "\n"); + blocked.erase(u); + + //std::set toErase; + while (!B[u].empty()) { + MSchedGraphSBNode *W = *B[u].begin(); + B[u].erase(W); + //toErase.insert(*W); + DEBUG(std::cerr << "Removed: " << *W << "from B-List\n"); + if(blocked.count(W)) + unblock(W, blocked, B); + } + +} + +void ModuloSchedulingSBPass::addSCC(std::vector &SCC, std::map &newNodes) { + + int totalDelay = 0; + int totalDistance = 0; + std::vector recc; + MSchedGraphSBNode *start = 0; + MSchedGraphSBNode *end = 0; + + //Loop over recurrence, get delay and distance + for(std::vector::iterator N = SCC.begin(), NE = SCC.end(); N != NE; ++N) { + DEBUG(std::cerr << **N << "\n"); + totalDelay += (*N)->getLatency(); + + for(unsigned i = 0; i < (*N)->succ_size(); ++i) { + MSchedGraphSBEdge *edge = (*N)->getSuccessor(i); + if(find(SCC.begin(), SCC.end(), edge->getDest()) != SCC.end()) { + totalDistance += edge->getIteDiff(); + if(edge->getIteDiff() > 0) + if(!start && !end) { + start = *N; + end = edge->getDest(); + } + + } + } + + + //Get the original node + recc.push_back(newNodes[*N]); + + + } + + DEBUG(std::cerr << "End Recc\n"); + + + assert( (start && end) && "Must have start and end node to ignore edge for SCC"); + + if(start && end) { + //Insert reccurrence into the list + DEBUG(std::cerr << "Ignore Edge from!!: " << *start << " to " << *end << "\n"); + edgesToIgnore.insert(std::make_pair(newNodes[start], (newNodes[end])->getInEdgeNum(newNodes[start]))); + } + + int lastII = totalDelay / totalDistance; + + + recurrenceList.insert(std::make_pair(lastII, recc)); + +} + +bool ModuloSchedulingSBPass::circuit(MSchedGraphSBNode *v, std::vector &stack, + std::set &blocked, std::vector &SCC, + MSchedGraphSBNode *s, std::map > &B, + int II, std::map &newNodes) { + bool f = false; + + DEBUG(std::cerr << "Finding Circuits Starting with: ( " << v << ")"<< *v << "\n"); + + //Push node onto the stack + stack.push_back(v); + + //block this node + blocked.insert(v); + + //Loop over all successors of node v that are in the scc, create Adjaceny list + std::set AkV; + for(MSchedGraphSBNode::succ_iterator I = v->succ_begin(), E = v->succ_end(); I != E; ++I) { + if((std::find(SCC.begin(), SCC.end(), *I) != SCC.end())) { + AkV.insert(*I); + } + } + + for(std::set::iterator I = AkV.begin(), E = AkV.end(); I != E; ++I) { + if(*I == s) { + //We have a circuit, so add it to our list + addRecc(stack, newNodes); + f = true; + } + else if(!blocked.count(*I)) { + if(circuit(*I, stack, blocked, SCC, s, B, II, newNodes)) + f = true; + } + else + DEBUG(std::cerr << "Blocked: " << **I << "\n"); + } + + + if(f) { + unblock(v, blocked, B); + } + else { + for(std::set::iterator I = AkV.begin(), E = AkV.end(); I != E; ++I) + B[*I].insert(v); + + } + + //Pop v + stack.pop_back(); + + return f; + +} + +void ModuloSchedulingSBPass::addRecc(std::vector &stack, std::map &newNodes) { + std::vector recc; + //Dump recurrence for now + DEBUG(std::cerr << "Starting Recc\n"); + + int totalDelay = 0; + int totalDistance = 0; + MSchedGraphSBNode *lastN = 0; + MSchedGraphSBNode *start = 0; + MSchedGraphSBNode *end = 0; + + //Loop over recurrence, get delay and distance + for(std::vector::iterator N = stack.begin(), NE = stack.end(); N != NE; ++N) { + DEBUG(std::cerr << **N << "\n"); + totalDelay += (*N)->getLatency(); + if(lastN) { + int iteDiff = (*N)->getInEdge(lastN).getIteDiff(); + totalDistance += iteDiff; + + if(iteDiff > 0) { + start = lastN; + end = *N; + } + } + //Get the original node + lastN = *N; + recc.push_back(newNodes[*N]); + + + } + + //Get the loop edge + totalDistance += lastN->getIteDiff(*stack.begin()); + + DEBUG(std::cerr << "End Recc\n"); + CircCountSB++; + + if(start && end) { + //Insert reccurrence into the list + DEBUG(std::cerr << "Ignore Edge from!!: " << *start << " to " << *end << "\n"); + edgesToIgnore.insert(std::make_pair(newNodes[start], (newNodes[end])->getInEdgeNum(newNodes[start]))); + } + else { + //Insert reccurrence into the list + DEBUG(std::cerr << "Ignore Edge from: " << *lastN << " to " << **stack.begin() << "\n"); + edgesToIgnore.insert(std::make_pair(newNodes[lastN], newNodes[(*stack.begin())]->getInEdgeNum(newNodes[lastN]))); + + } + //Adjust II until we get close to the inequality delay - II*distance <= 0 + int RecMII = II; //Starting value + int value = totalDelay-(RecMII * totalDistance); + int lastII = II; + while(value < 0) { + + lastII = RecMII; + RecMII--; + value = totalDelay-(RecMII * totalDistance); + } + + recurrenceList.insert(std::make_pair(lastII, recc)); + +} + + +void ModuloSchedulingSBPass::findAllCircuits(MSchedGraphSB *g, int II) { + + CircCountSB = 0; + + //Keep old to new node mapping information + std::map newNodes; + + //copy the graph + MSchedGraphSB *MSG = new MSchedGraphSB(*g, newNodes); + + DEBUG(std::cerr << "Finding All Circuits\n"); + + //Set of blocked nodes + std::set blocked; + + //Stack holding current circuit + std::vector stack; + + //Map for B Lists + std::map > B; + + //current node + MSchedGraphSBNode *s; + + + //Iterate over the graph until its down to one node or empty + while(MSG->size() > 1) { + + //Write Graph out to file + //WriteGraphToFile(std::cerr, "Graph" + utostr(MSG->size()), MSG); + + DEBUG(std::cerr << "Graph Size: " << MSG->size() << "\n"); + DEBUG(std::cerr << "Finding strong component Vk with least vertex\n"); + + //Iterate over all the SCCs in the graph + std::set Visited; + std::vector Vk; + MSchedGraphSBNode* s = 0; + int numEdges = 0; + + //Find scc with the least vertex + for (MSchedGraphSB::iterator GI = MSG->begin(), E = MSG->end(); GI != E; ++GI) + if (Visited.insert(GI->second).second) { + for (scc_iterator SCCI = scc_begin(GI->second), + E = scc_end(GI->second); SCCI != E; ++SCCI) { + std::vector &nextSCC = *SCCI; + + if (Visited.insert(nextSCC[0]).second) { + Visited.insert(nextSCC.begin()+1, nextSCC.end()); + + if(nextSCC.size() > 1) { + DEBUG(std::cerr << "SCC size: " << nextSCC.size() << "\n"); + + for(unsigned i = 0; i < nextSCC.size(); ++i) { + //Loop over successor and see if in scc, then count edge + MSchedGraphSBNode *node = nextSCC[i]; + for(MSchedGraphSBNode::succ_iterator S = node->succ_begin(), SE = node->succ_end(); S != SE; ++S) { + if(find(nextSCC.begin(), nextSCC.end(), *S) != nextSCC.end()) + numEdges++; + } + } + DEBUG(std::cerr << "Num Edges: " << numEdges << "\n"); + } + + //Ignore self loops + if(nextSCC.size() > 1) { + + //Get least vertex in Vk + if(!s) { + s = nextSCC[0]; + Vk = nextSCC; + } + + for(unsigned i = 0; i < nextSCC.size(); ++i) { + if(nextSCC[i] < s) { + s = nextSCC[i]; + Vk = nextSCC; + } + } + } + } + } + } + + + + //Process SCC + DEBUG(for(std::vector::iterator N = Vk.begin(), NE = Vk.end(); + N != NE; ++N) { std::cerr << *((*N)->getInst()); }); + + //Iterate over all nodes in this scc + for(std::vector::iterator N = Vk.begin(), NE = Vk.end(); + N != NE; ++N) { + blocked.erase(*N); + B[*N].clear(); + } + if(Vk.size() > 1) { + if(numEdges < 98) + circuit(s, stack, blocked, Vk, s, B, II, newNodes); + else + addSCC(Vk, newNodes); + + + //Delete nodes from the graph + //Find all nodes up to s and delete them + std::vector nodesToRemove; + nodesToRemove.push_back(s); + for(MSchedGraphSB::iterator N = MSG->begin(), NE = MSG->end(); N != NE; ++N) { + if(N->second < s ) + nodesToRemove.push_back(N->second); + } + for(std::vector::iterator N = nodesToRemove.begin(), NE = nodesToRemove.end(); N != NE; ++N) { + DEBUG(std::cerr << "Deleting Node: " << **N << "\n"); + MSG->deleteNode(*N); + } + } + else + break; + } + DEBUG(std::cerr << "Num Circuits found: " << CircCountSB << "\n"); +} +/// calculateNodeAttributes - The following properties are calculated for +/// each node in the dependence graph: ASAP, ALAP, Depth, Height, and +/// MOB. +void ModuloSchedulingSBPass::calculateNodeAttributes(MSchedGraphSB *graph, int MII) { + + TIME_REGION(X, "calculateNodeAttributes"); + + assert(nodeToAttributesMap.empty() && "Node attribute map was not cleared"); + + //Loop over the nodes and add them to the map + for(MSchedGraphSB::iterator I = graph->begin(), E = graph->end(); I != E; ++I) { + + DEBUG(std::cerr << "Inserting node into attribute map: " << *I->second << "\n"); + + //Assert if its already in the map + assert(nodeToAttributesMap.count(I->second) == 0 && + "Node attributes are already in the map"); + + //Put into the map with default attribute values + nodeToAttributesMap[I->second] = MSNodeSBAttributes(); + } + + //Create set to deal with reccurrences + std::set visitedNodes; + + //Now Loop over map and calculate the node attributes + for(std::map::iterator I = nodeToAttributesMap.begin(), E = nodeToAttributesMap.end(); I != E; ++I) { + calculateASAP(I->first, MII, (MSchedGraphSBNode*) 0); + visitedNodes.clear(); + } + + int maxASAP = findMaxASAP(); + //Calculate ALAP which depends on ASAP being totally calculated + for(std::map::iterator I = nodeToAttributesMap.begin(), E = nodeToAttributesMap.end(); I != E; ++I) { + calculateALAP(I->first, MII, maxASAP, (MSchedGraphSBNode*) 0); + visitedNodes.clear(); + } + + //Calculate MOB which depends on ASAP being totally calculated, also do depth and height + for(std::map::iterator I = nodeToAttributesMap.begin(), E = nodeToAttributesMap.end(); I != E; ++I) { + (I->second).MOB = std::max(0,(I->second).ALAP - (I->second).ASAP); + + DEBUG(std::cerr << "MOB: " << (I->second).MOB << " (" << *(I->first) << ")\n"); + calculateDepth(I->first, (MSchedGraphSBNode*) 0); + calculateHeight(I->first, (MSchedGraphSBNode*) 0); + } + + +} + +/// ignoreEdge - Checks to see if this edge of a recurrence should be ignored or not +bool ModuloSchedulingSBPass::ignoreEdge(MSchedGraphSBNode *srcNode, MSchedGraphSBNode *destNode) { + if(destNode == 0 || srcNode ==0) + return false; + + bool findEdge = edgesToIgnore.count(std::make_pair(srcNode, destNode->getInEdgeNum(srcNode))); + + DEBUG(std::cerr << "Ignoring edge? from: " << *srcNode << " to " << *destNode << "\n"); + + return findEdge; +} + + +/// calculateASAP - Calculates the +int ModuloSchedulingSBPass::calculateASAP(MSchedGraphSBNode *node, int MII, MSchedGraphSBNode *destNode) { + + DEBUG(std::cerr << "Calculating ASAP for " << *node << "\n"); + + //Get current node attributes + MSNodeSBAttributes &attributes = nodeToAttributesMap.find(node)->second; + + if(attributes.ASAP != -1) + return attributes.ASAP; + + int maxPredValue = 0; + + //Iterate over all of the predecessors and find max + for(MSchedGraphSBNode::pred_iterator P = node->pred_begin(), E = node->pred_end(); P != E; ++P) { + + //Only process if we are not ignoring the edge + if(!ignoreEdge(*P, node)) { + int predASAP = -1; + predASAP = calculateASAP(*P, MII, node); + + assert(predASAP != -1 && "ASAP has not been calculated"); + int iteDiff = node->getInEdge(*P).getIteDiff(); + + int currentPredValue = predASAP + (*P)->getLatency() - (iteDiff * MII); + DEBUG(std::cerr << "pred ASAP: " << predASAP << ", iteDiff: " << iteDiff << ", PredLatency: " << (*P)->getLatency() << ", Current ASAP pred: " << currentPredValue << "\n"); + maxPredValue = std::max(maxPredValue, currentPredValue); + } + } + + attributes.ASAP = maxPredValue; + + DEBUG(std::cerr << "ASAP: " << attributes.ASAP << " (" << *node << ")\n"); + + return maxPredValue; +} + + +int ModuloSchedulingSBPass::calculateALAP(MSchedGraphSBNode *node, int MII, + int maxASAP, MSchedGraphSBNode *srcNode) { + + DEBUG(std::cerr << "Calculating ALAP for " << *node << "\n"); + + MSNodeSBAttributes &attributes = nodeToAttributesMap.find(node)->second; + + if(attributes.ALAP != -1) + return attributes.ALAP; + + if(node->hasSuccessors()) { + + //Trying to deal with the issue where the node has successors, but + //we are ignoring all of the edges to them. So this is my hack for + //now.. there is probably a more elegant way of doing this (FIXME) + bool processedOneEdge = false; + + //FIXME, set to something high to start + int minSuccValue = 9999999; + + //Iterate over all of the predecessors and fine max + for(MSchedGraphSBNode::succ_iterator P = node->succ_begin(), + E = node->succ_end(); P != E; ++P) { + + //Only process if we are not ignoring the edge + if(!ignoreEdge(node, *P)) { + processedOneEdge = true; + int succALAP = -1; + succALAP = calculateALAP(*P, MII, maxASAP, node); + + assert(succALAP != -1 && "Successors ALAP should have been caclulated"); + + int iteDiff = P.getEdge().getIteDiff(); + + int currentSuccValue = succALAP - node->getLatency() + iteDiff * MII; + + DEBUG(std::cerr << "succ ALAP: " << succALAP << ", iteDiff: " << iteDiff << ", SuccLatency: " << (*P)->getLatency() << ", Current ALAP succ: " << currentSuccValue << "\n"); + + minSuccValue = std::min(minSuccValue, currentSuccValue); + } + } + + if(processedOneEdge) + attributes.ALAP = minSuccValue; + + else + attributes.ALAP = maxASAP; + } + else + attributes.ALAP = maxASAP; + + DEBUG(std::cerr << "ALAP: " << attributes.ALAP << " (" << *node << ")\n"); + + if(attributes.ALAP < 0) + attributes.ALAP = 0; + + return attributes.ALAP; +} + +int ModuloSchedulingSBPass::findMaxASAP() { + int maxASAP = 0; + + for(std::map::iterator I = nodeToAttributesMap.begin(), + E = nodeToAttributesMap.end(); I != E; ++I) + maxASAP = std::max(maxASAP, I->second.ASAP); + return maxASAP; +} + + +int ModuloSchedulingSBPass::calculateHeight(MSchedGraphSBNode *node,MSchedGraphSBNode *srcNode) { + + MSNodeSBAttributes &attributes = nodeToAttributesMap.find(node)->second; + + if(attributes.height != -1) + return attributes.height; + + int maxHeight = 0; + + //Iterate over all of the predecessors and find max + for(MSchedGraphSBNode::succ_iterator P = node->succ_begin(), + E = node->succ_end(); P != E; ++P) { + + + if(!ignoreEdge(node, *P)) { + int succHeight = calculateHeight(*P, node); + + assert(succHeight != -1 && "Successors Height should have been caclulated"); + + int currentHeight = succHeight + node->getLatency(); + maxHeight = std::max(maxHeight, currentHeight); + } + } + attributes.height = maxHeight; + DEBUG(std::cerr << "Height: " << attributes.height << " (" << *node << ")\n"); + return maxHeight; +} + + +int ModuloSchedulingSBPass::calculateDepth(MSchedGraphSBNode *node, + MSchedGraphSBNode *destNode) { + + MSNodeSBAttributes &attributes = nodeToAttributesMap.find(node)->second; + + if(attributes.depth != -1) + return attributes.depth; + + int maxDepth = 0; + + //Iterate over all of the predecessors and fine max + for(MSchedGraphSBNode::pred_iterator P = node->pred_begin(), E = node->pred_end(); P != E; ++P) { + + if(!ignoreEdge(*P, node)) { + int predDepth = -1; + predDepth = calculateDepth(*P, node); + + assert(predDepth != -1 && "Predecessors ASAP should have been caclulated"); + + int currentDepth = predDepth + (*P)->getLatency(); + maxDepth = std::max(maxDepth, currentDepth); + } + } + attributes.depth = maxDepth; + + DEBUG(std::cerr << "Depth: " << attributes.depth << " (" << *node << "*)\n"); + return maxDepth; +} + +void ModuloSchedulingSBPass::computePartialOrder() { + + TIME_REGION(X, "calculatePartialOrder"); + + DEBUG(std::cerr << "Computing Partial Order\n"); + + //Steps to add a recurrence to the partial order 1) Find reccurrence + //with the highest RecMII. Add it to the partial order. 2) For each + //recurrence with decreasing RecMII, add it to the partial order + //along with any nodes that connect this recurrence to recurrences + //already in the partial order + for(std::set > >::reverse_iterator + I = recurrenceList.rbegin(), E=recurrenceList.rend(); I !=E; ++I) { + + std::set new_recurrence; + + //Loop through recurrence and remove any nodes already in the partial order + for(std::vector::const_iterator N = I->second.begin(), + NE = I->second.end(); N != NE; ++N) { + + bool found = false; + for(std::vector >::iterator PO = partialOrder.begin(), + PE = partialOrder.end(); PO != PE; ++PO) { + if(PO->count(*N)) + found = true; + } + + //Check if its a branch, and remove to handle special + if(!found) { + new_recurrence.insert(*N); + } + + } + + + if(new_recurrence.size() > 0) { + + std::vector path; + std::set nodesToAdd; + + //Dump recc we are dealing with (minus nodes already in PO) + DEBUG(std::cerr << "Recc: "); + DEBUG(for(std::set::iterator R = new_recurrence.begin(), RE = new_recurrence.end(); R != RE; ++R) { std::cerr << **R ; }); + + //Add nodes that connect this recurrence to recurrences in the partial path + for(std::set::iterator N = new_recurrence.begin(), + NE = new_recurrence.end(); N != NE; ++N) + searchPath(*N, path, nodesToAdd, new_recurrence); + + //Add nodes to this recurrence if they are not already in the partial order + for(std::set::iterator N = nodesToAdd.begin(), NE = nodesToAdd.end(); + N != NE; ++N) { + bool found = false; + for(std::vector >::iterator PO = partialOrder.begin(), + PE = partialOrder.end(); PO != PE; ++PO) { + if(PO->count(*N)) + found = true; + } + if(!found) { + assert("FOUND CONNECTOR"); + new_recurrence.insert(*N); + } + } + + partialOrder.push_back(new_recurrence); + } + } + + //Add any nodes that are not already in the partial order + //Add them in a set, one set per connected component + std::set lastNodes; + std::set noPredNodes; + for(std::map::iterator I = nodeToAttributesMap.begin(), + E = nodeToAttributesMap.end(); I != E; ++I) { + + bool found = false; + + //Check if its already in our partial order, if not add it to the final vector + for(std::vector >::iterator PO = partialOrder.begin(), + PE = partialOrder.end(); PO != PE; ++PO) { + if(PO->count(I->first)) + found = true; + } + if(!found) + lastNodes.insert(I->first); + } + + //For each node w/out preds, see if there is a path to one of the + //recurrences, and if so add them to that current recc + /*for(std::set::iterator N = noPredNodes.begin(), NE = noPredNodes.end(); + N != NE; ++N) { + DEBUG(std::cerr << "No Pred Path from: " << **N << "\n"); + for(std::vector >::iterator PO = partialOrder.begin(), + PE = partialOrder.end(); PO != PE; ++PO) { + std::vector path; + pathToRecc(*N, path, *PO, lastNodes); + } + }*/ + + + //Break up remaining nodes that are not in the partial order + ///into their connected compoenents + while(lastNodes.size() > 0) { + std::set ccSet; + connectedComponentSet(*(lastNodes.begin()),ccSet, lastNodes); + if(ccSet.size() > 0) + partialOrder.push_back(ccSet); + } + +} + +void ModuloSchedulingSBPass::connectedComponentSet(MSchedGraphSBNode *node, std::set &ccSet, std::set &lastNodes) { + + //Add to final set + if( !ccSet.count(node) && lastNodes.count(node)) { + lastNodes.erase(node); + ccSet.insert(node); + } + else + return; + + //Loop over successors and recurse if we have not seen this node before + for(MSchedGraphSBNode::succ_iterator node_succ = node->succ_begin(), end=node->succ_end(); node_succ != end; ++node_succ) { + connectedComponentSet(*node_succ, ccSet, lastNodes); + } + +} + +void ModuloSchedulingSBPass::searchPath(MSchedGraphSBNode *node, + std::vector &path, + std::set &nodesToAdd, + std::set &new_reccurrence) { + //Push node onto the path + path.push_back(node); + + //Loop over all successors and see if there is a path from this node to + //a recurrence in the partial order, if so.. add all nodes to be added to recc + for(MSchedGraphSBNode::succ_iterator S = node->succ_begin(), SE = node->succ_end(); S != SE; + ++S) { + + //Check if we should ignore this edge first + if(ignoreEdge(node,*S)) + continue; + + //check if successor is in this recurrence, we will get to it eventually + if(new_reccurrence.count(*S)) + continue; + + //If this node exists in a recurrence already in the partial + //order, then add all nodes in the path to the set of nodes to add + //Check if its already in our partial order, if not add it to the + //final vector + bool found = false; + for(std::vector >::iterator PO = partialOrder.begin(), + PE = partialOrder.end(); PO != PE; ++PO) { + + if(PO->count(*S)) { + found = true; + break; + } + } + + if(!found) { + nodesToAdd.insert(*S); + searchPath(*S, path, nodesToAdd, new_reccurrence); + } + } + + //Pop Node off the path + path.pop_back(); +} + +void dumpIntersection(std::set &IntersectCurrent) { + std::cerr << "Intersection ("; + for(std::set::iterator I = IntersectCurrent.begin(), E = IntersectCurrent.end(); I != E; ++I) + std::cerr << **I << ", "; + std::cerr << ")\n"; +} + +void ModuloSchedulingSBPass::orderNodes() { + + TIME_REGION(X, "orderNodes"); + + int BOTTOM_UP = 0; + int TOP_DOWN = 1; + + //Set default order + int order = BOTTOM_UP; + + //Loop over and find all pred nodes and schedule them first + /*for(std::vector >::iterator CurrentSet = partialOrder.begin(), E= partialOrder.end(); CurrentSet != E; ++CurrentSet) { + for(std::set::iterator N = CurrentSet->begin(), NE = CurrentSet->end(); N != NE; ++N) + if((*N)->isPredicate()) { + FinalNodeOrder.push_back(*N); + CurrentSet->erase(*N); + } + }*/ + + + + //Loop over all the sets and place them in the final node order + for(std::vector >::iterator CurrentSet = partialOrder.begin(), E= partialOrder.end(); CurrentSet != E; ++CurrentSet) { + + DEBUG(std::cerr << "Processing set in S\n"); + DEBUG(dumpIntersection(*CurrentSet)); + + //Result of intersection + std::set IntersectCurrent; + + predIntersect(*CurrentSet, IntersectCurrent); + + //If the intersection of predecessor and current set is not empty + //sort nodes bottom up + if(IntersectCurrent.size() != 0) { + DEBUG(std::cerr << "Final Node Order Predecessors and Current Set interesection is NOT empty\n"); + order = BOTTOM_UP; + } + //If empty, use successors + else { + DEBUG(std::cerr << "Final Node Order Predecessors and Current Set interesection is empty\n"); + + succIntersect(*CurrentSet, IntersectCurrent); + + //sort top-down + if(IntersectCurrent.size() != 0) { + DEBUG(std::cerr << "Final Node Order Successors and Current Set interesection is NOT empty\n"); + order = TOP_DOWN; + } + else { + DEBUG(std::cerr << "Final Node Order Successors and Current Set interesection is empty\n"); + //Find node with max ASAP in current Set + MSchedGraphSBNode *node; + int maxASAP = 0; + DEBUG(std::cerr << "Using current set of size " << CurrentSet->size() << "to find max ASAP\n"); + for(std::set::iterator J = CurrentSet->begin(), JE = CurrentSet->end(); J != JE; ++J) { + //Get node attributes + MSNodeSBAttributes nodeAttr= nodeToAttributesMap.find(*J)->second; + //assert(nodeAttr != nodeToAttributesMap.end() && "Node not in attributes map!"); + + if(maxASAP <= nodeAttr.ASAP) { + maxASAP = nodeAttr.ASAP; + node = *J; + } + } + assert(node != 0 && "In node ordering node should not be null"); + IntersectCurrent.insert(node); + order = BOTTOM_UP; + } + } + + //Repeat until all nodes are put into the final order from current set + while(IntersectCurrent.size() > 0) { + + if(order == TOP_DOWN) { + DEBUG(std::cerr << "Order is TOP DOWN\n"); + + while(IntersectCurrent.size() > 0) { + DEBUG(std::cerr << "Intersection is not empty, so find heighest height\n"); + + int MOB = 0; + int height = 0; + MSchedGraphSBNode *highestHeightNode = *(IntersectCurrent.begin()); + + //Find node in intersection with highest heigh and lowest MOB + for(std::set::iterator I = IntersectCurrent.begin(), + E = IntersectCurrent.end(); I != E; ++I) { + + //Get current nodes properties + MSNodeSBAttributes nodeAttr= nodeToAttributesMap.find(*I)->second; + + if(height < nodeAttr.height) { + highestHeightNode = *I; + height = nodeAttr.height; + MOB = nodeAttr.MOB; + } + else if(height == nodeAttr.height) { + if(MOB > nodeAttr.height) { + highestHeightNode = *I; + height = nodeAttr.height; + MOB = nodeAttr.MOB; + } + } + } + + //Append our node with greatest height to the NodeOrder + if(std::find(FinalNodeOrder.begin(), FinalNodeOrder.end(), highestHeightNode) == FinalNodeOrder.end()) { + DEBUG(std::cerr << "Adding node to Final Order: " << *highestHeightNode << "\n"); + FinalNodeOrder.push_back(highestHeightNode); + } + + //Remove V from IntersectOrder + IntersectCurrent.erase(std::find(IntersectCurrent.begin(), + IntersectCurrent.end(), highestHeightNode)); + + + //Intersect V's successors with CurrentSet + for(MSchedGraphSBNode::succ_iterator P = highestHeightNode->succ_begin(), + E = highestHeightNode->succ_end(); P != E; ++P) { + //if(lower_bound(CurrentSet->begin(), + // CurrentSet->end(), *P) != CurrentSet->end()) { + if(std::find(CurrentSet->begin(), CurrentSet->end(), *P) != CurrentSet->end()) { + if(ignoreEdge(highestHeightNode, *P)) + continue; + //If not already in Intersect, add + if(!IntersectCurrent.count(*P)) + IntersectCurrent.insert(*P); + } + } + } //End while loop over Intersect Size + + //Change direction + order = BOTTOM_UP; + + //Reset Intersect to reflect changes in OrderNodes + IntersectCurrent.clear(); + predIntersect(*CurrentSet, IntersectCurrent); + + } //End If TOP_DOWN + + //Begin if BOTTOM_UP + else { + DEBUG(std::cerr << "Order is BOTTOM UP\n"); + while(IntersectCurrent.size() > 0) { + DEBUG(std::cerr << "Intersection of size " << IntersectCurrent.size() << ", finding highest depth\n"); + + //dump intersection + DEBUG(dumpIntersection(IntersectCurrent)); + //Get node with highest depth, if a tie, use one with lowest + //MOB + int MOB = 0; + int depth = 0; + MSchedGraphSBNode *highestDepthNode = *(IntersectCurrent.begin()); + + for(std::set::iterator I = IntersectCurrent.begin(), + E = IntersectCurrent.end(); I != E; ++I) { + //Find node attribute in graph + MSNodeSBAttributes nodeAttr= nodeToAttributesMap.find(*I)->second; + + if(depth < nodeAttr.depth) { + highestDepthNode = *I; + depth = nodeAttr.depth; + MOB = nodeAttr.MOB; + } + else if(depth == nodeAttr.depth) { + if(MOB > nodeAttr.MOB) { + highestDepthNode = *I; + depth = nodeAttr.depth; + MOB = nodeAttr.MOB; + } + } + } + + + + //Append highest depth node to the NodeOrder + if(std::find(FinalNodeOrder.begin(), FinalNodeOrder.end(), highestDepthNode) == FinalNodeOrder.end()) { + DEBUG(std::cerr << "Adding node to Final Order: " << *highestDepthNode << "\n"); + FinalNodeOrder.push_back(highestDepthNode); + } + //Remove heightestDepthNode from IntersectOrder + IntersectCurrent.erase(highestDepthNode); + + + //Intersect heightDepthNode's pred with CurrentSet + for(MSchedGraphSBNode::pred_iterator P = highestDepthNode->pred_begin(), + E = highestDepthNode->pred_end(); P != E; ++P) { + if(CurrentSet->count(*P)) { + if(ignoreEdge(*P, highestDepthNode)) + continue; + + //If not already in Intersect, add + if(!IntersectCurrent.count(*P)) + IntersectCurrent.insert(*P); + } + } + + } //End while loop over Intersect Size + + //Change order + order = TOP_DOWN; + + //Reset IntersectCurrent to reflect changes in OrderNodes + IntersectCurrent.clear(); + succIntersect(*CurrentSet, IntersectCurrent); + } //End if BOTTOM_DOWN + + DEBUG(std::cerr << "Current Intersection Size: " << IntersectCurrent.size() << "\n"); + } + //End Wrapping while loop + DEBUG(std::cerr << "Ending Size of Current Set: " << CurrentSet->size() << "\n"); + }//End for over all sets of nodes + + //FIXME: As the algorithm stands it will NEVER add an instruction such as ba (with no + //data dependencies) to the final order. We add this manually. It will always be + //in the last set of S since its not part of a recurrence + //Loop over all the sets and place them in the final node order + std::vector > ::reverse_iterator LastSet = partialOrder.rbegin(); + for(std::set::iterator CurrentNode = LastSet->begin(), LastNode = LastSet->end(); + CurrentNode != LastNode; ++CurrentNode) { + if((*CurrentNode)->getInst()->getOpcode() == V9::BA) + FinalNodeOrder.push_back(*CurrentNode); + } + //Return final Order + //return FinalNodeOrder; +} + + +void ModuloSchedulingSBPass::predIntersect(std::set &CurrentSet, std::set &IntersectResult) { + + for(unsigned j=0; j < FinalNodeOrder.size(); ++j) { + for(MSchedGraphSBNode::pred_iterator P = FinalNodeOrder[j]->pred_begin(), + E = FinalNodeOrder[j]->pred_end(); P != E; ++P) { + + //Check if we are supposed to ignore this edge or not + if(ignoreEdge(*P,FinalNodeOrder[j])) + continue; + + if(CurrentSet.count(*P)) + if(std::find(FinalNodeOrder.begin(), FinalNodeOrder.end(), *P) == FinalNodeOrder.end()) + IntersectResult.insert(*P); + } + } +} + +void ModuloSchedulingSBPass::succIntersect(std::set &CurrentSet, std::set &IntersectResult) { + + for(unsigned j=0; j < FinalNodeOrder.size(); ++j) { + for(MSchedGraphSBNode::succ_iterator P = FinalNodeOrder[j]->succ_begin(), + E = FinalNodeOrder[j]->succ_end(); P != E; ++P) { + + //Check if we are supposed to ignore this edge or not + if(ignoreEdge(FinalNodeOrder[j],*P)) + continue; + + if(CurrentSet.count(*P)) + if(std::find(FinalNodeOrder.begin(), FinalNodeOrder.end(), *P) == FinalNodeOrder.end()) + IntersectResult.insert(*P); + } + } +} + + + +bool ModuloSchedulingSBPass::computeSchedule(std::vector &SB, MSchedGraphSB *MSG) { + + TIME_REGION(X, "computeSchedule"); + + bool success = false; + + //FIXME: Should be set to max II of the original loop + //Cap II in order to prevent infinite loop + int capII = MSG->totalDelay(); + + while(!success) { + + //Keep track of branches, but do not insert into the schedule + std::vector branches; + + //Loop over the final node order and process each node + for(std::vector::iterator I = FinalNodeOrder.begin(), + E = FinalNodeOrder.end(); I != E; ++I) { + + //CalculateEarly and Late start + bool initialLSVal = false; + bool initialESVal = false; + int EarlyStart = 0; + int LateStart = 0; + bool hasSucc = false; + bool hasPred = false; + bool sched; + + if((*I)->isBranch()) + if((*I)->hasPredecessors()) + sched = true; + else + sched = false; + else + sched = true; + + if(sched) { + //Loop over nodes in the schedule and determine if they are predecessors + //or successors of the node we are trying to schedule + for(MSScheduleSB::schedule_iterator nodesByCycle = schedule.begin(), nodesByCycleEnd = schedule.end(); + nodesByCycle != nodesByCycleEnd; ++nodesByCycle) { + + //For this cycle, get the vector of nodes schedule and loop over it + for(std::vector::iterator schedNode = nodesByCycle->second.begin(), SNE = nodesByCycle->second.end(); schedNode != SNE; ++schedNode) { + + if((*I)->isPredecessor(*schedNode)) { + int diff = (*I)->getInEdge(*schedNode).getIteDiff(); + int ES_Temp = nodesByCycle->first + (*schedNode)->getLatency() - diff * II; + DEBUG(std::cerr << "Diff: " << diff << " Cycle: " << nodesByCycle->first << "\n"); + DEBUG(std::cerr << "Temp EarlyStart: " << ES_Temp << " Prev EarlyStart: " << EarlyStart << "\n"); + if(initialESVal) + EarlyStart = std::max(EarlyStart, ES_Temp); + else { + EarlyStart = ES_Temp; + initialESVal = true; + } + hasPred = true; + } + if((*I)->isSuccessor(*schedNode)) { + int diff = (*schedNode)->getInEdge(*I).getIteDiff(); + int LS_Temp = nodesByCycle->first - (*I)->getLatency() + diff * II; + DEBUG(std::cerr << "Diff: " << diff << " Cycle: " << nodesByCycle->first << "\n"); + DEBUG(std::cerr << "Temp LateStart: " << LS_Temp << " Prev LateStart: " << LateStart << "\n"); + if(initialLSVal) + LateStart = std::min(LateStart, LS_Temp); + else { + LateStart = LS_Temp; + initialLSVal = true; + } + hasSucc = true; + } + } + } + } + else { + branches.push_back(*I); + continue; + } + + //Check if the node has no pred or successors and set Early Start to its ASAP + if(!hasSucc && !hasPred) + EarlyStart = nodeToAttributesMap.find(*I)->second.ASAP; + + DEBUG(std::cerr << "Has Successors: " << hasSucc << ", Has Pred: " << hasPred << "\n"); + DEBUG(std::cerr << "EarlyStart: " << EarlyStart << ", LateStart: " << LateStart << "\n"); + + //Now, try to schedule this node depending upon its pred and successor in the schedule + //already + if(!hasSucc && hasPred) + success = scheduleNode(*I, EarlyStart, (EarlyStart + II -1)); + else if(!hasPred && hasSucc) + success = scheduleNode(*I, LateStart, (LateStart - II +1)); + else if(hasPred && hasSucc) { + if(EarlyStart > LateStart) { + success = false; + //LateStart = EarlyStart; + DEBUG(std::cerr << "Early Start can not be later then the late start cycle, schedule fails\n"); + } + else + success = scheduleNode(*I, EarlyStart, std::min(LateStart, (EarlyStart + II -1))); + } + else + success = scheduleNode(*I, EarlyStart, EarlyStart + II - 1); + + if(!success) { + ++II; + schedule.clear(); + break; + } + + } + + if(success) { + DEBUG(std::cerr << "Constructing Schedule Kernel\n"); + success = schedule.constructKernel(II, branches, indVarInstrs[SB]); + DEBUG(std::cerr << "Done Constructing Schedule Kernel\n"); + if(!success) { + ++II; + schedule.clear(); + } + DEBUG(std::cerr << "Final II: " << II << "\n"); + + } + + if(II >= capII) { + DEBUG(std::cerr << "Maximum II reached, giving up\n"); + return false; + } + + assert(II < capII && "The II should not exceed the original loop number of cycles"); + } + return true; +} + + +bool ModuloSchedulingSBPass::scheduleNode(MSchedGraphSBNode *node, + int start, int end) { + bool success = false; + + DEBUG(std::cerr << *node << " (Start Cycle: " << start << ", End Cycle: " << end << ")\n"); + + //Make sure start and end are not negative + //if(start < 0) { + //start = 0; + + //} + //if(end < 0) + //end = 0; + + bool forward = true; + if(start > end) + forward = false; + + bool increaseSC = true; + int cycle = start ; + + + while(increaseSC) { + + increaseSC = false; + + increaseSC = schedule.insert(node, cycle, II); + + if(!increaseSC) + return true; + + //Increment cycle to try again + if(forward) { + ++cycle; + DEBUG(std::cerr << "Increase cycle: " << cycle << "\n"); + if(cycle > end) + return false; + } + else { + --cycle; + DEBUG(std::cerr << "Decrease cycle: " << cycle << "\n"); + if(cycle < end) + return false; + } + } + + return success; +} + +void ModuloSchedulingSBPass::reconstructLoop(std::vector &SB) { + + TIME_REGION(X, "reconstructLoop"); + + + DEBUG(std::cerr << "Reconstructing Loop\n"); + + //First find the value *'s that we need to "save" + std::map > valuesToSave; + + //Keep track of instructions we have already seen and their stage because + //we don't want to "save" values if they are used in the kernel immediately + std::map lastInstrs; + + + std::set seenBranchesBB; + const TargetInstrInfo *MTI = target.getInstrInfo(); + std::map > > instrsMovedDown; + std::map branchStage; + + //Loop over kernel and only look at instructions from a stage > 0 + //Look at its operands and save values *'s that are read + for(MSScheduleSB::kernel_iterator I = schedule.kernel_begin(), E = schedule.kernel_end(); I != E; ++I) { + + if(I->second !=0) { + //For this instruction, get the Value*'s that it reads and put them into the set. + //Assert if there is an operand of another type that we need to save + const MachineInstr *inst = I->first; + lastInstrs[inst] = I->second; + + for(unsigned i=0; i < inst->getNumOperands(); ++i) { + //get machine operand + const MachineOperand &mOp = inst->getOperand(i); + + if(mOp.getType() == MachineOperand::MO_VirtualRegister && mOp.isUse()) { + //find the value in the map + if (const Value* srcI = mOp.getVRegValue()) { + + if(isa(srcI) || isa(srcI)) + continue; + + //Before we declare this Value* one that we should save + //make sure its def is not of the same stage as this instruction + //because it will be consumed before its used + Instruction *defInst = (Instruction*) srcI; + + //Should we save this value? + bool save = true; + + //Continue if not in the def map, loop invariant code does not need to be saved + if(!defMap.count(srcI)) + continue; + + MachineInstr *defInstr = defMap[srcI]; + + + if(lastInstrs.count(defInstr)) { + if(lastInstrs[defInstr] == I->second) { + save = false; + + } + } + + if(save) + valuesToSave[srcI] = std::make_pair(I->first, i); + } + } + + if(mOp.getType() != MachineOperand::MO_VirtualRegister && mOp.isUse()) { + assert("Our assumption is wrong. We have another type of register that needs to be saved\n"); + } + } + } + + + //Do a check to see if instruction was moved below its original branch + if(MTI->isBranch(I->first->getOpcode())) { + seenBranchesBB.insert(I->first->getParent()); + branchStage[I->first->getParent()] = I->second; + } + else { + instrsMovedDown[I->first->getParent()].push_back(std::make_pair(I->first, I->second)); + //assert(seenBranchesBB.count(I->first->getParent()) && "Instruction moved below branch\n"); + } + + } + + //The new loop will consist of one or more prologues, the kernel, and one or more epilogues. + + //Map to keep track of old to new values + std::map > newValues; + + //Map to keep track of old to new values in kernel + std::map > kernelPHIs; + + //Another map to keep track of what machine basic blocks these new value*s are in since + //they have no llvm instruction equivalent + std::map newValLocation; + + std::vector > prologues; + std::vector > llvm_prologues; + + //Map to keep track of where the inner branches go + std::map sideExits; + + + //Write prologue + if(schedule.getMaxStage() != 0) + writePrologues(prologues, SB, llvm_prologues, valuesToSave, newValues, newValLocation); + + std::vector llvmKernelBBs; + std::vector machineKernelBBs; + Function *parent = (Function*) SB[0]->getBasicBlock()->getParent(); + + for(unsigned i = 0; i < SB.size(); ++i) { + llvmKernelBBs.push_back(new BasicBlock("Kernel", parent)); + + machineKernelBBs.push_back(new MachineBasicBlock(llvmKernelBBs[i])); + (((MachineBasicBlock*)SB[0])->getParent())->getBasicBlockList().push_back(machineKernelBBs[i]); + } + + writeKernel(llvmKernelBBs, machineKernelBBs, valuesToSave, newValues, newValLocation, kernelPHIs); + + + std::vector > epilogues; + std::vector > llvm_epilogues; + + //Write epilogues + if(schedule.getMaxStage() != 0) + writeEpilogues(epilogues, SB, llvm_epilogues, valuesToSave, newValues, newValLocation, kernelPHIs); + + + //Fix our branches + fixBranches(prologues, llvm_prologues, machineKernelBBs, llvmKernelBBs, epilogues, llvm_epilogues, SB, sideExits); + + //Print out epilogues and prologue + DEBUG(for(std::vector >::iterator PI = prologues.begin(), PE = prologues.end(); + PI != PE; ++PI) { + std::cerr << "PROLOGUE\n"; + for(std::vector::iterator I = PI->begin(), E = PI->end(); I != E; ++I) + (*I)->print(std::cerr); + }); + + DEBUG(std::cerr << "KERNEL\n"); + DEBUG(for(std::vector::iterator I = machineKernelBBs.begin(), E = machineKernelBBs.end(); I != E; ++I) { (*I)->print(std::cerr);}); + + DEBUG(for(std::vector >::iterator EI = epilogues.begin(), EE = epilogues.end(); + EI != EE; ++EI) { + std::cerr << "EPILOGUE\n"; + for(std::vector::iterator I = EI->begin(), E = EI->end(); I != E; ++I) + (*I)->print(std::cerr); + }); + + + //Remove phis + removePHIs(SB, prologues, epilogues, machineKernelBBs, newValLocation); + + //Print out epilogues and prologue + DEBUG(for(std::vector >::iterator PI = prologues.begin(), PE = prologues.end(); + PI != PE; ++PI) { + std::cerr << "PROLOGUE\n"; + for(std::vector::iterator I = PI->begin(), E = PI->end(); I != E; ++I) + (*I)->print(std::cerr); + }); + + DEBUG(std::cerr << "KERNEL\n"); + DEBUG(for(std::vector::iterator I = machineKernelBBs.begin(), E = machineKernelBBs.end(); I != E; ++I) { (*I)->print(std::cerr);}); + + DEBUG(for(std::vector >::iterator EI = epilogues.begin(), EE = epilogues.end(); + EI != EE; ++EI) { + std::cerr << "EPILOGUE\n"; + for(std::vector::iterator I = EI->begin(), E = EI->end(); I != E; ++I) + (*I)->print(std::cerr); + }); + + writeSideExits(prologues, llvm_prologues, epilogues, llvm_epilogues, sideExits, instrsMovedDown, SB, machineKernelBBs, branchStage); + + + DEBUG(std::cerr << "New Machine Function" << "\n"); +} + + +void ModuloSchedulingSBPass::fixBranches(std::vector > &prologues, std::vector > &llvm_prologues, std::vector &machineKernelBB, std::vector &llvmKernelBB, std::vector > &epilogues, std::vector > &llvm_epilogues, std::vector &SB, std::map &sideExits) { + + const TargetInstrInfo *TMI = target.getInstrInfo(); + + //Get exit BB + BasicBlock *last = (BasicBlock*) SB[SB.size()-1]->getBasicBlock(); + BasicBlock *kernel_exit = 0; + bool sawFirst = false; + + for(succ_iterator I = succ_begin(last), + E = succ_end(last); I != E; ++I) { + if (*I != SB[0]->getBasicBlock()) { + kernel_exit = *I; + break; + } + else + sawFirst = true; + } + if(!kernel_exit && sawFirst) { + kernel_exit = (BasicBlock*) SB[0]->getBasicBlock(); + } + + assert(kernel_exit && "Kernel Exit can not be null"); + + if(schedule.getMaxStage() != 0) { + //Fix prologue branches + for(unsigned i = 0; i < prologues.size(); ++i) { + + for(unsigned j = 0; j < prologues[i].size(); ++j) { + + MachineBasicBlock *currentMBB = prologues[i][j]; + + //Find terminator since getFirstTerminator does not work! + for(MachineBasicBlock::reverse_iterator mInst = currentMBB->rbegin(), mInstEnd = currentMBB->rend(); mInst != mInstEnd; ++mInst) { + MachineOpCode OC = mInst->getOpcode(); + //If its a branch update its branchto + if(TMI->isBranch(OC)) { + for(unsigned opNum = 0; opNum < mInst->getNumOperands(); ++opNum) { + MachineOperand &mOp = mInst->getOperand(opNum); + if (mOp.getType() == MachineOperand::MO_PCRelativeDisp) { + //Check if we are branching to the kernel, if not branch to epilogue + if(mOp.getVRegValue() == SB[0]->getBasicBlock()) { + if(i >= prologues.size()-1) + mOp.setValueReg(llvmKernelBB[0]); + else + mOp.setValueReg(llvm_prologues[i+1][0]); + } + else if( (mOp.getVRegValue() == kernel_exit) && (j == prologues[i].size()-1)) { + mOp.setValueReg(llvm_epilogues[i][0]); + } + else if(mOp.getVRegValue() == SB[j+1]->getBasicBlock()) { + mOp.setValueReg(llvm_prologues[i][j+1]); + } + + } + } + + DEBUG(std::cerr << "New Prologue Branch: " << *mInst << "\n"); + } + } + + //Update llvm basic block with our new branch instr + DEBUG(std::cerr << SB[i]->getBasicBlock()->getTerminator() << "\n"); + + const BranchInst *branchVal = dyn_cast(SB[i]->getBasicBlock()->getTerminator()); + + //Check for inner branch + if(j < prologues[i].size()-1) { + //Find our side exit LLVM basic block + BasicBlock *sideExit = 0; + for(unsigned s = 0; s < branchVal->getNumSuccessors(); ++s) { + if(branchVal->getSuccessor(s) != SB[i+1]->getBasicBlock()) + sideExit = branchVal->getSuccessor(s); + } + assert(sideExit && "Must have side exit llvm basic block"); + TerminatorInst *newBranch = new BranchInst(sideExit, + llvm_prologues[i][j+1], + branchVal->getCondition(), + llvm_prologues[i][j]); + } + else { + //If last prologue + if(i == prologues.size()-1) { + TerminatorInst *newBranch = new BranchInst(llvmKernelBB[0], + llvm_epilogues[i][0], + branchVal->getCondition(), + llvm_prologues[i][j]); + } + else { + TerminatorInst *newBranch = new BranchInst(llvm_prologues[i+1][0], + llvm_epilogues[i][0], + branchVal->getCondition(), + llvm_prologues[i][j]); + } + } + } + } + } + + //Fix up kernel machine branches + for(unsigned i = 0; i < machineKernelBB.size(); ++i) { + MachineBasicBlock *currentMBB = machineKernelBB[i]; + + for(MachineBasicBlock::reverse_iterator mInst = currentMBB->rbegin(), mInstEnd = currentMBB->rend(); mInst != mInstEnd; ++mInst) { + MachineOpCode OC = mInst->getOpcode(); + if(TMI->isBranch(OC)) { + for(unsigned opNum = 0; opNum < mInst->getNumOperands(); ++opNum) { + MachineOperand &mOp = mInst->getOperand(opNum); + + if(mOp.getType() == MachineOperand::MO_PCRelativeDisp) { + //Deal with inner kernel branches + if(i < machineKernelBB.size()-1) { + if(mOp.getVRegValue() == SB[i+1]->getBasicBlock()) + mOp.setValueReg(llvmKernelBB[i+1]); + //Side exit! + else { + sideExits[SB[i]] = mOp.getVRegValue(); + } + } + else { + if(mOp.getVRegValue() == SB[0]->getBasicBlock()) + mOp.setValueReg(llvmKernelBB[0]); + else { + if(llvm_epilogues.size() > 0) + mOp.setValueReg(llvm_epilogues[0][0]); + } + } + } + } + } + } + + //Update kernelLLVM branches + const BranchInst *branchVal = dyn_cast(SB[0]->getBasicBlock()->getTerminator()); + + //deal with inner branch + if(i < machineKernelBB.size()-1) { + + //Find our side exit LLVM basic block + BasicBlock *sideExit = 0; + for(unsigned s = 0; s < branchVal->getNumSuccessors(); ++s) { + if(branchVal->getSuccessor(s) != SB[i+1]->getBasicBlock()) + sideExit = branchVal->getSuccessor(s); + } + assert(sideExit && "Must have side exit llvm basic block"); + TerminatorInst *newBranch = new BranchInst(sideExit, + llvmKernelBB[i+1], + branchVal->getCondition(), + llvmKernelBB[i]); + } + else { + //Deal with outter branches + if(epilogues.size() > 0) { + TerminatorInst *newBranch = new BranchInst(llvmKernelBB[0], + llvm_epilogues[0][0], + branchVal->getCondition(), + llvmKernelBB[i]); + } + else { + TerminatorInst *newBranch = new BranchInst(llvmKernelBB[0], + kernel_exit, + branchVal->getCondition(), + llvmKernelBB[i]); + } + } + } + + if(schedule.getMaxStage() != 0) { + + //Lastly add unconditional branches for the epilogues + for(unsigned i = 0; i < epilogues.size(); ++i) { + + for(unsigned j=0; j < epilogues[i].size(); ++j) { + //Now since we don't have fall throughs, add a unconditional + //branch to the next prologue + + //Before adding these, we need to check if the epilogue already has + //a branch in it + bool hasBranch = false; + /*if(j < epilogues[i].size()-1) { + MachineBasicBlock *currentMBB = epilogues[i][j]; + for(MachineBasicBlock::reverse_iterator mInst = currentMBB->rbegin(), mInstEnd = currentMBB->rend(); mInst != mInstEnd; ++mInst) { + + MachineOpCode OC = mInst->getOpcode(); + + //If its a branch update its branchto + if(TMI->isBranch(OC)) { + hasBranch = true; + for(unsigned opNum = 0; opNum < mInst->getNumOperands(); ++opNum) { + MachineOperand &mOp = mInst->getOperand(opNum); + if (mOp.getType() == MachineOperand::MO_PCRelativeDisp) { + + if(mOp.getVRegValue() != sideExits[SB[j]]) { + mOp.setValueReg(llvm_epilogues[i][j+1]); + } + + } + } + + + DEBUG(std::cerr << "New Epilogue Branch: " << *mInst << "\n"); + } + } + if(hasBranch) { + const BranchInst *branchVal = dyn_cast(SB[j]->getBasicBlock()->getTerminator()); + TerminatorInst *newBranch = new BranchInst((BasicBlock*)sideExits[SB[j]], + llvm_epilogues[i][j+1], + branchVal->getCondition(), + llvm_epilogues[i][j]); + } + }*/ + + if(!hasBranch) { + + //Handle inner branches + if(j < epilogues[i].size()-1) { + BuildMI(epilogues[i][j], V9::BA, 1).addPCDisp(llvm_epilogues[i][j+1]); + TerminatorInst *newBranch = new BranchInst(llvm_epilogues[i][j+1], + llvm_epilogues[i][j]); + } + else { + + //Check if this is the last epilogue + if(i != epilogues.size()-1) { + BuildMI(epilogues[i][j], V9::BA, 1).addPCDisp(llvm_epilogues[i+1][0]); + //Add unconditional branch to end of epilogue + TerminatorInst *newBranch = new BranchInst(llvm_epilogues[i+1][0], + llvm_epilogues[i][j]); + + } + else { + BuildMI(epilogues[i][j], V9::BA, 1).addPCDisp(kernel_exit); + TerminatorInst *newBranch = new BranchInst(kernel_exit, llvm_epilogues[i][j]); + } + } + + //Add one more nop! + BuildMI(epilogues[i][j], V9::NOP, 0); + + } + } + } + } + + //Find all llvm basic blocks that branch to the loop entry and + //change to our first prologue. + const BasicBlock *llvmBB = SB[0]->getBasicBlock(); + + std::vectorPreds (pred_begin(llvmBB), pred_end(llvmBB)); + + for(std::vector::iterator P = Preds.begin(), + PE = Preds.end(); P != PE; ++P) { + if(*P == SB[SB.size()-1]->getBasicBlock()) + continue; + else { + DEBUG(std::cerr << "Found our entry BB\n"); + DEBUG((*P)->print(std::cerr)); + //Get the Terminator instruction for this basic block and print it out + //DEBUG(std::cerr << *((*P)->getTerminator()) << "\n"); + + //Update the terminator + TerminatorInst *term = ((BasicBlock*)*P)->getTerminator(); + for(unsigned i=0; i < term->getNumSuccessors(); ++i) { + if(term->getSuccessor(i) == llvmBB) { + DEBUG(std::cerr << "Replacing successor bb\n"); + if(llvm_prologues.size() > 0) { + term->setSuccessor(i, llvm_prologues[0][0]); + + DEBUG(std::cerr << "New Term" << *((*P)->getTerminator()) << "\n"); + + //Also update its corresponding machine instruction + MachineCodeForInstruction & tempMvec = + MachineCodeForInstruction::get(term); + for (unsigned j = 0; j < tempMvec.size(); j++) { + MachineInstr *temp = tempMvec[j]; + MachineOpCode opc = temp->getOpcode(); + if(TMI->isBranch(opc)) { + DEBUG(std::cerr << *temp << "\n"); + //Update branch + for(unsigned opNum = 0; opNum < temp->getNumOperands(); ++opNum) { + MachineOperand &mOp = temp->getOperand(opNum); + if (mOp.getType() == MachineOperand::MO_PCRelativeDisp) { + if(mOp.getVRegValue() == llvmBB) + mOp.setValueReg(llvm_prologues[0][0]); + } + } + } + } + } + else { + term->setSuccessor(i, llvmKernelBB[0]); + + //Also update its corresponding machine instruction + MachineCodeForInstruction & tempMvec = + MachineCodeForInstruction::get(term); + for(unsigned j = 0; j < tempMvec.size(); j++) { + MachineInstr *temp = tempMvec[j]; + MachineOpCode opc = temp->getOpcode(); + if(TMI->isBranch(opc)) { + DEBUG(std::cerr << *temp << "\n"); + //Update branch + for(unsigned opNum = 0; opNum < temp->getNumOperands(); ++opNum) { + MachineOperand &mOp = temp->getOperand(opNum); + if(mOp.getType() == MachineOperand::MO_PCRelativeDisp) { + if(mOp.getVRegValue() == llvmBB) + mOp.setValueReg(llvmKernelBB[0]); + } + } + } + } + } + } + } + break; + } + } + +} + + +void ModuloSchedulingSBPass::writePrologues(std::vector > &prologues, std::vector &origSB, std::vector > &llvm_prologues, std::map > &valuesToSave, std::map > &newValues, std::map &newValLocation) { + + //Keep a map to easily know whats in the kernel + std::map > inKernel; + int maxStageCount = 0; + + //Keep a map of new values we consumed in case they need to be added back + std::map > consumedValues; + + DEBUG(schedule.print(std::cerr)); + + for(MSScheduleSB::kernel_iterator I = schedule.kernel_begin(), E = schedule.kernel_end(); I != E; ++I) { + maxStageCount = std::max(maxStageCount, I->second); + + //Put int the map so we know what instructions in each stage are in the kernel + DEBUG(std::cerr << "Inserting instruction " << *(I->first) << " into map at stage " << I->second << "\n"); + inKernel[I->second].insert(I->first); + } + + //Get target information to look at machine operands + const TargetInstrInfo *mii = target.getInstrInfo(); + + //Now write the prologues + for(int i = 0; i < maxStageCount; ++i) { + std::vector current_prologue; + std::vector current_llvm_prologue; + + for(std::vector::iterator MB = origSB.begin(), + MBE = origSB.end(); MB != MBE; ++MB) { + const MachineBasicBlock *MBB = *MB; + //Create new llvm and machine bb + BasicBlock *llvmBB = new BasicBlock("PROLOGUE", (Function*) (MBB->getBasicBlock()->getParent())); + MachineBasicBlock *machineBB = new MachineBasicBlock(llvmBB); + + DEBUG(std::cerr << "i=" << i << "\n"); + + for(int j = i; j >= 0; --j) { + //iterate over instructions in original bb + for(MachineBasicBlock::const_iterator MI = MBB->begin(), + ME = MBB->end(); ME != MI; ++MI) { + if(inKernel[j].count(&*MI)) { + MachineInstr *instClone = MI->clone(); + machineBB->push_back(instClone); + + //If its a branch, insert a nop + if(mii->isBranch(instClone->getOpcode())) + BuildMI(machineBB, V9::NOP, 0); + + + DEBUG(std::cerr << "Cloning: " << *MI << "\n"); + + //After cloning, we may need to save the value that this instruction defines + for(unsigned opNum=0; opNum < MI->getNumOperands(); ++opNum) { + Instruction *tmp; + + //get machine operand + MachineOperand &mOp = instClone->getOperand(opNum); + if(mOp.getType() == MachineOperand::MO_VirtualRegister + && mOp.isDef()) { + + //Check if this is a value we should save + if(valuesToSave.count(mOp.getVRegValue())) { + //Save copy in tmpInstruction + tmp = new TmpInstruction(mOp.getVRegValue()); + + //Add TmpInstruction to safe LLVM Instruction MCFI + MachineCodeForInstruction & tempMvec = MachineCodeForInstruction::get(defaultInst); + tempMvec.addTemp((Value*) tmp); + + DEBUG(std::cerr << "Value: " << *(mOp.getVRegValue()) + << " New Value: " << *tmp << " Stage: " << i << "\n"); + + newValues[mOp.getVRegValue()][i]= tmp; + newValLocation[tmp] = machineBB; + + DEBUG(std::cerr << "Machine Instr Operands: " + << *(mOp.getVRegValue()) << ", 0, " << *tmp << "\n"); + + //Create machine instruction and put int machineBB + MachineInstr *saveValue; + if(mOp.getVRegValue()->getType() == Type::FloatTy) + saveValue = BuildMI(machineBB, V9::FMOVS, 3).addReg(mOp.getVRegValue()).addRegDef(tmp); + else if(mOp.getVRegValue()->getType() == Type::DoubleTy) + saveValue = BuildMI(machineBB, V9::FMOVD, 3).addReg(mOp.getVRegValue()).addRegDef(tmp); + else + saveValue = BuildMI(machineBB, V9::ORr, 3).addReg(mOp.getVRegValue()).addImm(0).addRegDef(tmp); + + + DEBUG(std::cerr << "Created new machine instr: " << *saveValue << "\n"); + } + } + + //We may also need to update the value that we use if + //its from an earlier prologue + if(j != 0) { + if(mOp.getType() == MachineOperand::MO_VirtualRegister && mOp.isUse()) { + if(newValues.count(mOp.getVRegValue())) { + if(newValues[mOp.getVRegValue()].count(i-1)) { + Value *oldV = mOp.getVRegValue(); + DEBUG(std::cerr << "Replaced this value: " << mOp.getVRegValue() << " With:" << (newValues[mOp.getVRegValue()][i-1]) << "\n"); + //Update the operand with the right value + mOp.setValueReg(newValues[mOp.getVRegValue()][i-1]); + + //Remove this value since we have consumed it + //NOTE: Should this only be done if j != maxStage? + consumedValues[oldV][i-1] = (newValues[oldV][i-1]); + DEBUG(std::cerr << "Deleted value: " << consumedValues[oldV][i-1] << "\n"); + newValues[oldV].erase(i-1); + } + } + else + if(consumedValues.count(mOp.getVRegValue())) + assert(!consumedValues[mOp.getVRegValue()].count(i-1) && "Found a case where we need the value"); + } + } + } + } + } + } + (((MachineBasicBlock*)MBB)->getParent())->getBasicBlockList().push_back(machineBB); + current_prologue.push_back(machineBB); + current_llvm_prologue.push_back(llvmBB); + } + prologues.push_back(current_prologue); + llvm_prologues.push_back(current_llvm_prologue); + + } +} + + +void ModuloSchedulingSBPass::writeEpilogues(std::vector > &epilogues, std::vector &origSB, std::vector > &llvm_epilogues, std::map > &valuesToSave, std::map > &newValues,std::map &newValLocation, std::map > &kernelPHIs ) { + + std::map > inKernel; + const TargetInstrInfo *MTI = target.getInstrInfo(); + + for(MSScheduleSB::kernel_iterator I = schedule.kernel_begin(), E = schedule.kernel_end(); I != E; ++I) { + + //Put int the map so we know what instructions in each stage are in the kernel + inKernel[I->second].insert(I->first); + } + + std::map valPHIs; + + //some debug stuff, will remove later + DEBUG(for(std::map >::iterator V = newValues.begin(), E = newValues.end(); V !=E; ++V) { + std::cerr << "Old Value: " << *(V->first) << "\n"; + for(std::map::iterator I = V->second.begin(), IE = V->second.end(); I != IE; ++I) + std::cerr << "Stage: " << I->first << " Value: " << *(I->second) << "\n"; + }); + + + //Now write the epilogues + for(int i = schedule.getMaxStage()-1; i >= 0; --i) { + std::vector current_epilogue; + std::vector current_llvm_epilogue; + + for(std::vector::iterator MB = origSB.begin(), MBE = origSB.end(); MB != MBE; ++MB) { + const MachineBasicBlock *MBB = *MB; + + BasicBlock *llvmBB = new BasicBlock("EPILOGUE", (Function*) (MBB->getBasicBlock()->getParent())); + MachineBasicBlock *machineBB = new MachineBasicBlock(llvmBB); + + DEBUG(std::cerr << " Epilogue #: " << i << "\n"); + + std::map inEpilogue; + + for(MachineBasicBlock::const_iterator MI = MBB->begin(), ME = MBB->end(); ME != MI; ++MI) { + for(int j=schedule.getMaxStage(); j > i; --j) { + if(inKernel[j].count(&*MI)) { + DEBUG(std::cerr << "Cloning instruction " << *MI << "\n"); + MachineInstr *clone = MI->clone(); + + //Update operands that need to use the result from the phi + for(unsigned opNum=0; opNum < clone->getNumOperands(); ++opNum) { + //get machine operand + const MachineOperand &mOp = clone->getOperand(opNum); + + if((mOp.getType() == MachineOperand::MO_VirtualRegister && mOp.isUse())) { + + DEBUG(std::cerr << "Writing PHI for " << (mOp.getVRegValue()) << "\n"); + + //If this is the last instructions for the max iterations ago, don't update operands + if(inEpilogue.count(mOp.getVRegValue())) + if(inEpilogue[mOp.getVRegValue()] == i) + continue; + + //Quickly write appropriate phis for this operand + if(newValues.count(mOp.getVRegValue())) { + if(newValues[mOp.getVRegValue()].count(i)) { + Instruction *tmp = new TmpInstruction(newValues[mOp.getVRegValue()][i]); + + //Get machine code for this instruction + MachineCodeForInstruction & tempMvec = MachineCodeForInstruction::get(defaultInst); + tempMvec.addTemp((Value*) tmp); + + //assert of no kernelPHI for this value + assert(kernelPHIs[mOp.getVRegValue()][i] !=0 && "Must have final kernel phi to construct epilogue phi"); + + MachineInstr *saveValue = BuildMI(machineBB, V9::PHI, 3).addReg(newValues[mOp.getVRegValue()][i]).addReg(kernelPHIs[mOp.getVRegValue()][i]).addRegDef(tmp); + DEBUG(std::cerr << "Resulting PHI: " << *saveValue << "\n"); + valPHIs[mOp.getVRegValue()] = tmp; + } + } + + if(valPHIs.count(mOp.getVRegValue())) { + //Update the operand in the cloned instruction + clone->getOperand(opNum).setValueReg(valPHIs[mOp.getVRegValue()]); + } + } + else if((mOp.getType() == MachineOperand::MO_VirtualRegister && mOp.isDef())) { + inEpilogue[mOp.getVRegValue()] = i; + } + + } + machineBB->push_back(clone); + //if(MTI->isBranch(clone->getOpcode())) + //BuildMI(machineBB, V9::NOP, 0); + } + } + } + (((MachineBasicBlock*)MBB)->getParent())->getBasicBlockList().push_back(machineBB); + current_epilogue.push_back(machineBB); + current_llvm_epilogue.push_back(llvmBB); + } + + DEBUG(std::cerr << "EPILOGUE #" << i << "\n"); + DEBUG(for(std::vector::iterator B = current_epilogue.begin(), BE = current_epilogue.end(); B != BE; ++B) { + (*B)->print(std::cerr);}); + + epilogues.push_back(current_epilogue); + llvm_epilogues.push_back(current_llvm_epilogue); + } +} + +void ModuloSchedulingSBPass::writeKernel(std::vector &llvmBB, std::vector &machineBB, std::map > &valuesToSave, std::map > &newValues, std::map &newValLocation, std::map > &kernelPHIs) { + + //Keep track of operands that are read and saved from a previous iteration. The new clone + //instruction will use the result of the phi instead. + std::map finalPHIValue; + std::map kernelValue; + + //Branches are a special case + std::vector branches; + + //Get target information to look at machine operands + const TargetInstrInfo *mii = target.getInstrInfo(); + unsigned index = 0; + int numBr = 0; + bool seenBranch = false; + + //Create TmpInstructions for the final phis + for(MSScheduleSB::kernel_iterator I = schedule.kernel_begin(), E = schedule.kernel_end(); I != E; ++I) { + + DEBUG(std::cerr << "Stage: " << I->second << " Inst: " << *(I->first) << "\n";); + + //Clone instruction + const MachineInstr *inst = I->first; + MachineInstr *instClone = inst->clone(); + + if(seenBranch && !mii->isBranch(instClone->getOpcode())) { + index++; + seenBranch = false; + numBr = 0; + } + else if(seenBranch && (numBr == 2)) { + index++; + numBr = 0; + } + + //Insert into machine basic block + assert(index < machineBB.size() && "Must have a valid index into kernel MBBs"); + machineBB[index]->push_back(instClone); + + if(mii->isBranch(instClone->getOpcode())) { + BuildMI(machineBB[index], V9::NOP, 0); + + seenBranch = true; + numBr++; + } + + DEBUG(std::cerr << "Cloned Inst: " << *instClone << "\n"); + + //Loop over Machine Operands + for(unsigned i=0; i < inst->getNumOperands(); ++i) { + //get machine operand + const MachineOperand &mOp = inst->getOperand(i); + + if(I->second != 0) { + if(mOp.getType() == MachineOperand::MO_VirtualRegister && mOp.isUse()) { + + //Check to see where this operand is defined if this instruction is from max stage + if(I->second == schedule.getMaxStage()) { + DEBUG(std::cerr << "VREG: " << *(mOp.getVRegValue()) << "\n"); + } + + //If its in the value saved, we need to create a temp instruction and use that instead + if(valuesToSave.count(mOp.getVRegValue())) { + + //Check if we already have a final PHI value for this + if(!finalPHIValue.count(mOp.getVRegValue())) { + //Only create phi if the operand def is from a stage before this one + if(schedule.defPreviousStage(mOp.getVRegValue(), I->second)) { + TmpInstruction *tmp = new TmpInstruction(mOp.getVRegValue()); + + //Get machine code for this instruction + MachineCodeForInstruction & tempMvec = MachineCodeForInstruction::get(defaultInst); + tempMvec.addTemp((Value*) tmp); + + //Update the operand in the cloned instruction + instClone->getOperand(i).setValueReg(tmp); + + //save this as our final phi + finalPHIValue[mOp.getVRegValue()] = tmp; + newValLocation[tmp] = machineBB[index]; + } + } + else { + //Use the previous final phi value + instClone->getOperand(i).setValueReg(finalPHIValue[mOp.getVRegValue()]); + } + } + } + } + if(I->second != schedule.getMaxStage()) { + if(mOp.getType() == MachineOperand::MO_VirtualRegister && mOp.isDef()) { + if(valuesToSave.count(mOp.getVRegValue())) { + + TmpInstruction *tmp = new TmpInstruction(mOp.getVRegValue()); + + //Get machine code for this instruction + MachineCodeForInstruction & tempVec = MachineCodeForInstruction::get(defaultInst); + tempVec.addTemp((Value*) tmp); + + //Create new machine instr and put in MBB + MachineInstr *saveValue; + if(mOp.getVRegValue()->getType() == Type::FloatTy) + saveValue = BuildMI(machineBB[index], V9::FMOVS, 3).addReg(mOp.getVRegValue()).addRegDef(tmp); + else if(mOp.getVRegValue()->getType() == Type::DoubleTy) + saveValue = BuildMI(machineBB[index], V9::FMOVD, 3).addReg(mOp.getVRegValue()).addRegDef(tmp); + else + saveValue = BuildMI(machineBB[index], V9::ORr, 3).addReg(mOp.getVRegValue()).addImm(0).addRegDef(tmp); + + + //Save for future cleanup + kernelValue[mOp.getVRegValue()] = tmp; + newValLocation[tmp] = machineBB[index]; + kernelPHIs[mOp.getVRegValue()][schedule.getMaxStage()-1] = tmp; + } + } + } + } + + } + + //Loop over each value we need to generate phis for + for(std::map >::iterator V = newValues.begin(), + E = newValues.end(); V != E; ++V) { + + + DEBUG(std::cerr << "Writing phi for" << *(V->first)); + DEBUG(std::cerr << "\nMap of Value* for this phi\n"); + DEBUG(for(std::map::iterator I = V->second.begin(), + IE = V->second.end(); I != IE; ++I) { + std::cerr << "Stage: " << I->first; + std::cerr << " Value: " << *(I->second) << "\n"; + }); + + //If we only have one current iteration live, its safe to set + //lastPhi = to kernel value + if(V->second.size() == 1) { + assert(kernelValue[V->first] != 0 && "Kernel value* must exist to create phi"); + MachineInstr *saveValue = BuildMI(*machineBB[0], machineBB[0]->begin(),V9::PHI, 3).addReg(V->second.begin()->second).addReg(kernelValue[V->first]).addRegDef(finalPHIValue[V->first]); + DEBUG(std::cerr << "Resulting PHI (one live): " << *saveValue << "\n"); + kernelPHIs[V->first][V->second.begin()->first] = kernelValue[V->first]; + DEBUG(std::cerr << "Put kernel phi in at stage: " << schedule.getMaxStage()-1 << " (map stage = " << V->second.begin()->first << ")\n"); + } + else { + + //Keep track of last phi created. + Instruction *lastPhi = 0; + + unsigned count = 1; + //Loop over the the map backwards to generate phis + for(std::map::reverse_iterator I = V->second.rbegin(), IE = V->second.rend(); + I != IE; ++I) { + + if(count < (V->second).size()) { + if(lastPhi == 0) { + lastPhi = new TmpInstruction(I->second); + + //Get machine code for this instruction + MachineCodeForInstruction & tempMvec = MachineCodeForInstruction::get(defaultInst); + tempMvec.addTemp((Value*) lastPhi); + + MachineInstr *saveValue = BuildMI(*machineBB[0], machineBB[0]->begin(), V9::PHI, 3).addReg(kernelValue[V->first]).addReg(I->second).addRegDef(lastPhi); + DEBUG(std::cerr << "Resulting PHI: " << *saveValue << "\n"); + newValLocation[lastPhi] = machineBB[0]; + } + else { + Instruction *tmp = new TmpInstruction(I->second); + + //Get machine code for this instruction + MachineCodeForInstruction & tempMvec = MachineCodeForInstruction::get(defaultInst); + tempMvec.addTemp((Value*) tmp); + + + MachineInstr *saveValue = BuildMI(*machineBB[0], machineBB[0]->begin(), V9::PHI, 3).addReg(lastPhi).addReg(I->second).addRegDef(tmp); + DEBUG(std::cerr << "Resulting PHI: " << *saveValue << "\n"); + lastPhi = tmp; + kernelPHIs[V->first][I->first] = lastPhi; + newValLocation[lastPhi] = machineBB[0]; + } + } + //Final phi value + else { + //The resulting value must be the Value* we created earlier + assert(lastPhi != 0 && "Last phi is NULL!\n"); + MachineInstr *saveValue = BuildMI(*machineBB[0], machineBB[0]->begin(), V9::PHI, 3).addReg(lastPhi).addReg(I->second).addRegDef(finalPHIValue[V->first]); + DEBUG(std::cerr << "Resulting PHI: " << *saveValue << "\n"); + kernelPHIs[V->first][I->first] = finalPHIValue[V->first]; + } + + ++count; + } + + } + } +} + + +void ModuloSchedulingSBPass::removePHIs(std::vector &SB, std::vector > &prologues, std::vector > &epilogues, std::vector &kernelBB, std::map &newValLocation) { + + //Worklist to delete things + std::vector > worklist; + + //Worklist of TmpInstructions that need to be added to a MCFI + std::vector addToMCFI; + + //Worklist to add OR instructions to end of kernel so not to invalidate the iterator + //std::vector > newORs; + + const TargetInstrInfo *TMI = target.getInstrInfo(); + + //Start with the kernel and for each phi insert a copy for the phi + //def and for each arg + //phis are only in the first BB in the kernel + for(MachineBasicBlock::iterator I = kernelBB[0]->begin(), E = kernelBB[0]->end(); + I != E; ++I) { + + DEBUG(std::cerr << "Looking at Instr: " << *I << "\n"); + + //Get op code and check if its a phi + if(I->getOpcode() == V9::PHI) { + + DEBUG(std::cerr << "Replacing PHI: " << *I << "\n"); + Instruction *tmp = 0; + + for(unsigned i = 0; i < I->getNumOperands(); ++i) { + + //Get Operand + const MachineOperand &mOp = I->getOperand(i); + assert(mOp.getType() == MachineOperand::MO_VirtualRegister + && "Should be a Value*\n"); + + if(!tmp) { + tmp = new TmpInstruction(mOp.getVRegValue()); + addToMCFI.push_back(tmp); + } + + //Now for all our arguments we read, OR to the new + //TmpInstruction that we created + if(mOp.isUse()) { + DEBUG(std::cerr << "Use: " << mOp << "\n"); + //Place a copy at the end of its BB but before the branches + assert(newValLocation.count(mOp.getVRegValue()) && "We must know where this value is located\n"); + //Reverse iterate to find the branches, we can safely assume no instructions have been + //put in the nop positions + for(MachineBasicBlock::iterator inst = --(newValLocation[mOp.getVRegValue()])->end(), endBB = (newValLocation[mOp.getVRegValue()])->begin(); inst != endBB; --inst) { + MachineOpCode opc = inst->getOpcode(); + if(TMI->isBranch(opc) || TMI->isNop(opc)) + continue; + else { + if(mOp.getVRegValue()->getType() == Type::FloatTy) + BuildMI(*(newValLocation[mOp.getVRegValue()]), ++inst, V9::FMOVS, 3).addReg(mOp.getVRegValue()).addRegDef(tmp); + else if(mOp.getVRegValue()->getType() == Type::DoubleTy) + BuildMI(*(newValLocation[mOp.getVRegValue()]), ++inst, V9::FMOVD, 3).addReg(mOp.getVRegValue()).addRegDef(tmp); + else + BuildMI(*(newValLocation[mOp.getVRegValue()]), ++inst, V9::ORr, 3).addReg(mOp.getVRegValue()).addImm(0).addRegDef(tmp); + + break; + } + + } + + } + else { + //Remove the phi and replace it with an OR + DEBUG(std::cerr << "Def: " << mOp << "\n"); + //newORs.push_back(std::make_pair(tmp, mOp.getVRegValue())); + if(tmp->getType() == Type::FloatTy) + BuildMI(*kernelBB[0], I, V9::FMOVS, 3).addReg(tmp).addRegDef(mOp.getVRegValue()); + else if(tmp->getType() == Type::DoubleTy) + BuildMI(*kernelBB[0], I, V9::FMOVD, 3).addReg(tmp).addRegDef(mOp.getVRegValue()); + else + BuildMI(*kernelBB[0], I, V9::ORr, 3).addReg(tmp).addImm(0).addRegDef(mOp.getVRegValue()); + + + worklist.push_back(std::make_pair(kernelBB[0], I)); + } + + } + + } + + + } + + //Add TmpInstructions to some MCFI + if(addToMCFI.size() > 0) { + MachineCodeForInstruction & tempMvec = MachineCodeForInstruction::get(defaultInst); + for(unsigned x = 0; x < addToMCFI.size(); ++x) { + tempMvec.addTemp(addToMCFI[x]); + } + addToMCFI.clear(); + } + + + //Remove phis from epilogue + for(std::vector >::iterator MB = epilogues.begin(), + ME = epilogues.end(); MB != ME; ++MB) { + + for(std::vector::iterator currentMBB = MB->begin(), currentME = MB->end(); currentMBB != currentME; ++currentMBB) { + + for(MachineBasicBlock::iterator I = (*currentMBB)->begin(), + E = (*currentMBB)->end(); I != E; ++I) { + + DEBUG(std::cerr << "Looking at Instr: " << *I << "\n"); + //Get op code and check if its a phi + if(I->getOpcode() == V9::PHI) { + Instruction *tmp = 0; + + for(unsigned i = 0; i < I->getNumOperands(); ++i) { + //Get Operand + const MachineOperand &mOp = I->getOperand(i); + assert(mOp.getType() == MachineOperand::MO_VirtualRegister && "Should be a Value*\n"); + + if(!tmp) { + tmp = new TmpInstruction(mOp.getVRegValue()); + addToMCFI.push_back(tmp); + } + + //Now for all our arguments we read, OR to the new TmpInstruction that we created + if(mOp.isUse()) { + DEBUG(std::cerr << "Use: " << mOp << "\n"); + //Place a copy at the end of its BB but before the branches + assert(newValLocation.count(mOp.getVRegValue()) && "We must know where this value is located\n"); + //Reverse iterate to find the branches, we can safely assume no instructions have been + //put in the nop positions + for(MachineBasicBlock::iterator inst = --(newValLocation[mOp.getVRegValue()])->end(), endBB = (newValLocation[mOp.getVRegValue()])->begin(); inst != endBB; --inst) { + MachineOpCode opc = inst->getOpcode(); + if(TMI->isBranch(opc) || TMI->isNop(opc)) + continue; + else { + if(mOp.getVRegValue()->getType() == Type::FloatTy) + BuildMI(*(newValLocation[mOp.getVRegValue()]), ++inst, V9::FMOVS, 3).addReg(mOp.getVRegValue()).addRegDef(tmp); + else if(mOp.getVRegValue()->getType() == Type::DoubleTy) + BuildMI(*(newValLocation[mOp.getVRegValue()]), ++inst, V9::FMOVD, 3).addReg(mOp.getVRegValue()).addRegDef(tmp); + else + BuildMI(*(newValLocation[mOp.getVRegValue()]), ++inst, V9::ORr, 3).addReg(mOp.getVRegValue()).addImm(0).addRegDef(tmp); + + + break; + } + + } + + } + else { + //Remove the phi and replace it with an OR + DEBUG(std::cerr << "Def: " << mOp << "\n"); + if(tmp->getType() == Type::FloatTy) + BuildMI(**currentMBB, I, V9::FMOVS, 3).addReg(tmp).addRegDef(mOp.getVRegValue()); + else if(tmp->getType() == Type::DoubleTy) + BuildMI(**currentMBB, I, V9::FMOVD, 3).addReg(tmp).addRegDef(mOp.getVRegValue()); + else + BuildMI(**currentMBB, I, V9::ORr, 3).addReg(tmp).addImm(0).addRegDef(mOp.getVRegValue()); + + worklist.push_back(std::make_pair(*currentMBB,I)); + } + } + } + } + } + } + + + if(addToMCFI.size() > 0) { + MachineCodeForInstruction & tempMvec = MachineCodeForInstruction::get(defaultInst); + for(unsigned x = 0; x < addToMCFI.size(); ++x) { + tempMvec.addTemp(addToMCFI[x]); + } + addToMCFI.clear(); + } + + //Delete the phis + for(std::vector >::iterator I = worklist.begin(), E = worklist.end(); I != E; ++I) { + DEBUG(std::cerr << "Deleting PHI " << *I->second << "\n"); + I->first->erase(I->second); + + } + + + assert((addToMCFI.size() == 0) && "We should have added all TmpInstructions to some MachineCodeForInstruction"); +} + + + + +void ModuloSchedulingSBPass::writeSideExits(std::vector > &prologues, std::vector > &llvm_prologues, std::vector > &epilogues, std::vector > &llvm_epilogues, std::map &sideExits, std::map > > &instrsMovedDown, std::vector &SB, std::vector &kernelMBBs, std::map branchStage) { + + const TargetInstrInfo *TMI = target.getInstrInfo(); + + //Repeat for each side exit + for(unsigned sideExitNum = 0; sideExitNum < SB.size()-1; ++sideExitNum) { + + std::vector > side_llvm_epilogues; + std::vector > side_epilogues; + MachineBasicBlock* sideMBB; + BasicBlock* sideBB; + + //Create side exit blocks + //Get the LLVM basic block + BasicBlock *bb = (BasicBlock*) SB[sideExitNum]->getBasicBlock(); + MachineBasicBlock *mbb = (MachineBasicBlock*) SB[sideExitNum]; + + int stage = branchStage[mbb]; + + //Create new basic blocks for our side exit instructios that were moved below the branch + sideBB = new BasicBlock("SideExit", (Function*) bb->getParent()); + sideMBB = new MachineBasicBlock(sideBB); + (((MachineBasicBlock*)SB[0])->getParent())->getBasicBlockList().push_back(sideMBB); + + + if(instrsMovedDown.count(mbb)) { + for(std::vector >::iterator I = instrsMovedDown[mbb].begin(), E = instrsMovedDown[mbb].end(); I != E; ++I) { + if(branchStage[mbb] == I->second) + sideMBB->push_back((I->first)->clone()); + } + + //Add unconditional branches to original exits + BuildMI(sideMBB, V9::BA, 1).addPCDisp(sideExits[mbb]); + BuildMI(sideMBB, V9::NOP, 0); + + //Add unconditioal branch to llvm BB + BasicBlock *extBB = dyn_cast(sideExits[mbb]); + assert(extBB && "Side exit basicblock can not be null"); + TerminatorInst *newBranch = new BranchInst(extBB, sideBB); + } + + //Clone epilogues and update their branches, one cloned epilogue set per side exit + //only clone epilogues that are from a greater stage! + for(unsigned i = 0; i < epilogues.size()-stage; ++i) { + std::vector MB = epilogues[i]; + + std::vector newEp; + std::vector newLLVMEp; + + for(std::vector::iterator currentMBB = MB.begin(), + lastMBB = MB.end(); currentMBB != lastMBB; ++currentMBB) { + BasicBlock *tmpBB = new BasicBlock("SideEpilogue", (Function*) (*currentMBB)->getBasicBlock()->getParent()); + MachineBasicBlock *tmp = new MachineBasicBlock(tmpBB); + + //Clone instructions and insert into new MBB + for(MachineBasicBlock::iterator I = (*currentMBB)->begin(), + E = (*currentMBB)->end(); I != E; ++I) { + + MachineInstr *clone = I->clone(); + if(clone->getOpcode() == V9::BA && (currentMBB+1 == lastMBB)) { + //update branch to side exit + for(unsigned i = 0; i < clone->getNumOperands(); ++i) { + MachineOperand &mOp = clone->getOperand(i); + if (mOp.getType() == MachineOperand::MO_PCRelativeDisp) { + mOp.setValueReg(sideBB); + } + } + } + + tmp->push_back(clone); + + } + + //Add llvm branch + TerminatorInst *newBranch = new BranchInst(sideBB, tmpBB); + + newEp.push_back(tmp); + (((MachineBasicBlock*)SB[0])->getParent())->getBasicBlockList().push_back(tmp); + + newLLVMEp.push_back(tmpBB); + + } + side_llvm_epilogues.push_back(newLLVMEp); + side_epilogues.push_back(newEp); + } + + //Now stich up all the branches + + //Loop over prologues, and if its an inner branch and branches to our original side exit + //then have it branch to the appropriate epilogue first (if it exists) + for(unsigned P = 0; P < prologues.size(); ++P) { + + //Get BB side exit we are dealing with + MachineBasicBlock *currentMBB = prologues[P][sideExitNum]; + if(P >= (unsigned) stage) { + //Iterate backwards of machine instructions to find the branch we need to update + for(MachineBasicBlock::reverse_iterator mInst = currentMBB->rbegin(), mInstEnd = currentMBB->rend(); mInst != mInstEnd; ++mInst) { + MachineOpCode OC = mInst->getOpcode(); + + //If its a branch update its branchto + if(TMI->isBranch(OC)) { + for(unsigned opNum = 0; opNum < mInst->getNumOperands(); ++opNum) { + MachineOperand &mOp = mInst->getOperand(opNum); + if (mOp.getType() == MachineOperand::MO_PCRelativeDisp) { + //Check if we branch to side exit + if(mOp.getVRegValue() == sideExits[mbb]) { + mOp.setValueReg(side_llvm_epilogues[P][0]); + } + } + } + DEBUG(std::cerr << "New Prologue Branch: " << *mInst << "\n"); + } + } + + //Update llvm branch + TerminatorInst *branchVal = ((BasicBlock*) currentMBB->getBasicBlock())->getTerminator(); + DEBUG(std::cerr << *branchVal << "\n"); + + for(unsigned i=0; i < branchVal->getNumSuccessors(); ++i) { + if(branchVal->getSuccessor(i) == sideExits[mbb]) { + DEBUG(std::cerr << "Replacing successor bb\n"); + branchVal->setSuccessor(i, side_llvm_epilogues[P][0]); + } + } + } + else { + //must add BA branch because another prologue or kernel has the actual side exit branch + //Add unconditional branches to original exits + assert( (sideExitNum+1) < prologues[P].size() && "must have valid prologue to branch to"); + BuildMI(prologues[P][sideExitNum], V9::BA, 1).addPCDisp((BasicBlock*)(prologues[P][sideExitNum+1])->getBasicBlock()); + BuildMI(prologues[P][sideExitNum], V9::NOP, 0); + + TerminatorInst *newBranch = new BranchInst((BasicBlock*) (prologues[P][sideExitNum+1])->getBasicBlock(), (BasicBlock*) (prologues[P][sideExitNum])->getBasicBlock()); + + } + } + + + //Update side exits in kernel + MachineBasicBlock *currentMBB = kernelMBBs[sideExitNum]; + //Iterate backwards of machine instructions to find the branch we need to update + for(MachineBasicBlock::reverse_iterator mInst = currentMBB->rbegin(), mInstEnd = currentMBB->rend(); mInst != mInstEnd; ++mInst) { + MachineOpCode OC = mInst->getOpcode(); + + //If its a branch update its branchto + if(TMI->isBranch(OC)) { + for(unsigned opNum = 0; opNum < mInst->getNumOperands(); ++opNum) { + MachineOperand &mOp = mInst->getOperand(opNum); + if (mOp.getType() == MachineOperand::MO_PCRelativeDisp) { + //Check if we branch to side exit + if(mOp.getVRegValue() == sideExits[mbb]) { + if(side_llvm_epilogues.size() > 0) + mOp.setValueReg(side_llvm_epilogues[0][0]); + else + mOp.setValueReg(sideBB); + } + } + } + DEBUG(std::cerr << "New Prologue Branch: " << *mInst << "\n"); + } + } + + //Update llvm branch + //Update llvm branch + TerminatorInst *branchVal = ((BasicBlock*)currentMBB->getBasicBlock())->getTerminator(); + DEBUG(std::cerr << *branchVal << "\n"); + + for(unsigned i=0; i < branchVal->getNumSuccessors(); ++i) { + if(branchVal->getSuccessor(i) == sideExits[mbb]) { + DEBUG(std::cerr << "Replacing successor bb\n"); + if(side_llvm_epilogues.size() > 0) + branchVal->setSuccessor(i, side_llvm_epilogues[0][0]); + else + branchVal->setSuccessor(i, sideBB); + } + } + } +} + Index: llvm/lib/Target/SparcV9/ModuloScheduling/ModuloSchedulingSuperBlock.h diff -u llvm/lib/Target/SparcV9/ModuloScheduling/ModuloSchedulingSuperBlock.h:1.1 llvm/lib/Target/SparcV9/ModuloScheduling/ModuloSchedulingSuperBlock.h:1.2 --- llvm/lib/Target/SparcV9/ModuloScheduling/ModuloSchedulingSuperBlock.h:1.1 Sat Apr 30 20:27:47 2005 +++ llvm/lib/Target/SparcV9/ModuloScheduling/ModuloSchedulingSuperBlock.h Thu Jun 16 23:00:57 2005 @@ -15,22 +15,24 @@ #define LLVM_MODULOSCHEDULINGSB_H #include "llvm/Analysis/LoopInfo.h" +#include "llvm/Analysis/ScalarEvolution.h" #include "llvm/Function.h" #include "llvm/Pass.h" #include "llvm/CodeGen/MachineBasicBlock.h" -#include "MSSchedule.h" -#include "MSchedGraph.h" +#include "MSScheduleSB.h" +#include "MSchedGraphSB.h" + namespace llvm { //Struct to contain ModuloScheduling Specific Information for each node - struct MSNodeAttributes { + struct MSNodeSBAttributes { int ASAP; //Earliest time at which the opreation can be scheduled int ALAP; //Latest time at which the operation can be scheduled. int MOB; int depth; int height; - MSNodeAttributes(int asap=-1, int alap=-1, int mob=-1, + MSNodeSBAttributes(int asap=-1, int alap=-1, int mob=-1, int d=-1, int h=-1) : ASAP(asap), ALAP(alap), MOB(mob), depth(d), height(h) {} @@ -55,22 +57,22 @@ Instruction *defaultInst; //Map that holds node to node attribute information - std::map nodeToAttributesMap; + std::map nodeToAttributesMap; //Map to hold all reccurrences - std::set > > recurrenceList; + std::set > > recurrenceList; //Set of edges to ignore, stored as src node and index into vector of successors - std::set > edgesToIgnore; + std::set > edgesToIgnore; //Vector containing the partial order - std::vector > partialOrder; + std::vector > partialOrder; //Vector containing the final node order - std::vector FinalNodeOrder; + std::vector FinalNodeOrder; //Schedule table, key is the cycle number and the vector is resource, node pairs - MSSchedule schedule; + MSScheduleSB schedule; //Current initiation interval int II; @@ -78,10 +80,99 @@ //Internal Functions void FindSuperBlocks(Function &F, LoopInfo &LI, std::vector > &Worklist); - bool MachineBBisValid(const MachineBasicBlock *B); + bool MachineBBisValid(const MachineBasicBlock *B, + std::map &indexMap, + unsigned &offset); bool CreateDefMap(std::vector &SB); + bool getIndVar(std::vector &superBlock, + std::map &bbMap, + std::map &indexMap); + bool assocIndVar(Instruction *I, std::set &indVar, + std::vector &stack, + std::map &bbMap, + const BasicBlock *first, + std::set &llvmSuperBlock); + int calculateResMII(std::vector &superBlock); + int calculateRecMII(MSchedGraphSB *graph, int MII); + void findAllCircuits(MSchedGraphSB *g, int II); + void addRecc(std::vector &stack, + std::map &newNodes); + bool circuit(MSchedGraphSBNode *v, std::vector &stack, + std::set &blocked, std::vector &SCC, + MSchedGraphSBNode *s, std::map > &B, + int II, std::map &newNodes); + void unblock(MSchedGraphSBNode *u, std::set &blocked, + std::map > &B); + void addSCC(std::vector &SCC, std::map &newNodes); + void calculateNodeAttributes(MSchedGraphSB *graph, int MII); + bool ignoreEdge(MSchedGraphSBNode *srcNode, MSchedGraphSBNode *destNode); + int calculateASAP(MSchedGraphSBNode *node, int MII, MSchedGraphSBNode *destNode); + int calculateALAP(MSchedGraphSBNode *node, int MII, + int maxASAP, MSchedGraphSBNode *srcNode); + int findMaxASAP(); + int calculateHeight(MSchedGraphSBNode *node,MSchedGraphSBNode *srcNode); + int calculateDepth(MSchedGraphSBNode *node, MSchedGraphSBNode *destNode); + void computePartialOrder(); + void connectedComponentSet(MSchedGraphSBNode *node, std::set &ccSet, + std::set &lastNodes); + void searchPath(MSchedGraphSBNode *node, + std::vector &path, + std::set &nodesToAdd, + std::set &new_reccurrence); + void orderNodes(); + bool computeSchedule(std::vector &BB, MSchedGraphSB *MSG); + bool scheduleNode(MSchedGraphSBNode *node, int start, int end); + void predIntersect(std::set &CurrentSet, std::set &IntersectResult); + void succIntersect(std::set &CurrentSet, std::set &IntersectResult); + void reconstructLoop(std::vector &SB); + void fixBranches(std::vector > &prologues, + std::vector > &llvm_prologues, + std::vector &machineKernelBB, + std::vector &llvmKernelBB, + std::vector > &epilogues, + std::vector > &llvm_epilogues, + std::vector &SB, + std::map &sideExits); + + void writePrologues(std::vector > &prologues, + std::vector &origBB, + std::vector > &llvm_prologues, + std::map > &valuesToSave, + std::map > &newValues, + std::map &newValLocation); + + void writeKernel(std::vector &llvmBB, std::vector &machineBB, + std::map > &valuesToSave, + std::map > &newValues, + std::map &newValLocation, + std::map > &kernelPHIs); + + void removePHIs(std::vector &SB, + std::vector > &prologues, + std::vector > &epilogues, + std::vector &kernelBB, + std::map &newValLocation); + + void writeEpilogues(std::vector > &epilogues, + std::vector &origSB, + std::vector > &llvm_epilogues, + std::map > &valuesToSave, + std::map > &newValues, + std::map &newValLocation, + std::map > &kernelPHIs); + + void writeSideExits(std::vector > &prologues, + std::vector > &llvm_prologues, + std::vector > &epilogues, + std::vector > &llvm_epilogues, + std::map &sideExits, + std::map > > &instrsMovedDown, + std::vector &SB, + std::vector &kernelMBBs, + std::map branchStage); - public: + public: ModuloSchedulingSBPass(TargetMachine &targ) : target(targ) {} virtual bool runOnFunction(Function &F); virtual const char* getPassName() const { return "ModuloScheduling-SuperBlock"; } @@ -89,7 +180,11 @@ // getAnalysisUsage virtual void getAnalysisUsage(AnalysisUsage &AU) const { + /// HACK: We don't actually need scev, but we have + /// to say we do so that the pass manager does not delete it + /// before we run. AU.addRequired(); + AU.addRequired(); AU.addRequired(); } }; From tbrethou at cs.uiuc.edu Thu Jun 16 23:01:45 2005 From: tbrethou at cs.uiuc.edu (Tanya Brethour) Date: Thu, 16 Jun 2005 23:01:45 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.cpp Message-ID: <200506170401.XAA16658@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/SparcV9/RegAlloc: PhyRegAlloc.cpp updated: 1.168 -> 1.169 --- Log message: Added statistic to count number of spills. --- Diffs of the changes: (+3 -0) PhyRegAlloc.cpp | 3 +++ 1 files changed, 3 insertions(+) Index: llvm/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.cpp diff -u llvm/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.cpp:1.168 llvm/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.cpp:1.169 --- llvm/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.cpp:1.168 Sun Jun 12 18:52:58 2005 +++ llvm/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.cpp Thu Jun 16 23:01:34 2005 @@ -46,10 +46,12 @@ #include "llvm/Support/CommandLine.h" #include "llvm/ADT/SetOperations.h" #include "llvm/ADT/STLExtras.h" +#include "llvm/ADT/Statistic.h" #include #include namespace llvm { + Statistic<> RASpills("regalloc-spills", "Number of registers spilled"); RegAllocDebugLevel_t DEBUG_RA; @@ -703,6 +705,7 @@ // Finally, insert the entire spill code sequences before/after MInst AI.InstrnsBefore.insert(AI.InstrnsBefore.end(), MIBef.begin(), MIBef.end()); AI.InstrnsAfter.insert(AI.InstrnsAfter.begin(), MIAft.begin(), MIAft.end()); + ++RASpills; if (DEBUG_RA) { std::cerr << "\nFor Inst:\n " << *MInst; From tbrethou at cs.uiuc.edu Thu Jun 16 23:15:54 2005 From: tbrethou at cs.uiuc.edu (Tanya Brethour) Date: Thu, 16 Jun 2005 23:15:54 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/SparcV9/ModuloScheduling/MSScheduleSB.cpp MSScheduleSB.h MSchedGraphSB.cpp Message-ID: <200506170415.XAA29856@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/SparcV9/ModuloScheduling: MSScheduleSB.cpp added (r1.1) MSScheduleSB.h added (r1.1) MSchedGraphSB.cpp added (r1.1) --- Log message: Special versions of the dep graph and scheduled for SMS for superblocks. --- Diffs of the changes: (+1265 -0) MSScheduleSB.cpp | 324 ++++++++++++++++++++ MSScheduleSB.h | 73 ++++ MSchedGraphSB.cpp | 868 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1265 insertions(+) Index: llvm/lib/Target/SparcV9/ModuloScheduling/MSScheduleSB.cpp diff -c /dev/null llvm/lib/Target/SparcV9/ModuloScheduling/MSScheduleSB.cpp:1.1 *** /dev/null Thu Jun 16 23:15:53 2005 --- llvm/lib/Target/SparcV9/ModuloScheduling/MSScheduleSB.cpp Thu Jun 16 23:15:43 2005 *************** *** 0 **** --- 1,324 ---- + //===-- MSScheduleSB.cpp Schedule ---------------------------------*- C++ -*-===// + // + // The LLVM Compiler Infrastructure + // + // This file was developed by the LLVM research group and is distributed under + // the University of Illinois Open Source License. See LICENSE.TXT for details. + // + //===----------------------------------------------------------------------===// + // + // + // + //===----------------------------------------------------------------------===// + #define DEBUG_TYPE "ModuloSchedSB" + + #include "MSScheduleSB.h" + #include "llvm/Support/Debug.h" + #include "llvm/Target/TargetSchedInfo.h" + #include "../SparcV9Internals.h" + #include "llvm/CodeGen/MachineInstr.h" + + using namespace llvm; + + //Check if all resources are free + bool resourcesFree(MSchedGraphSBNode*, int, + std::map > &resourceNumPerCycle); + + //Returns a boolean indicating if the start cycle needs to be increased/decreased + bool MSScheduleSB::insert(MSchedGraphSBNode *node, int cycle, int II) { + + //First, check if the cycle has a spot free to start + if(schedule.find(cycle) != schedule.end()) { + //Check if we have a free issue slot at this cycle + if (schedule[cycle].size() < numIssue) { + //Now check if all the resources in their respective cycles are available + if(resourcesFree(node, cycle, II)) { + //Insert to preserve dependencies + addToSchedule(cycle,node); + DEBUG(std::cerr << "Found spot in map, and there is an issue slot\n"); + return false; + } + } + } + //Not in the map yet so put it in + else { + if(resourcesFree(node,cycle,II)) { + std::vector nodes; + nodes.push_back(node); + schedule[cycle] = nodes; + DEBUG(std::cerr << "Nothing in map yet so taking an issue slot\n"); + return false; + } + } + + DEBUG(std::cerr << "All issue slots taken\n"); + return true; + + } + + void MSScheduleSB::addToSchedule(int cycle, MSchedGraphSBNode *node) { + std::vector nodesAtCycle = schedule[cycle]; + + std::map indexMap; + for(unsigned i=0; i < nodesAtCycle.size(); ++i) { + indexMap[nodesAtCycle[i]->getIndex()] = nodesAtCycle[i]; + } + + indexMap[node->getIndex()] = node; + + std::vector nodes; + for(std::map::iterator I = indexMap.begin(), E = indexMap.end(); I != E; ++I) + nodes.push_back(I->second); + + schedule[cycle] = nodes; + } + + bool MSScheduleSB::resourceAvailable(int resourceNum, int cycle) { + bool isFree = true; + + //Get Map for this cycle + if(resourceNumPerCycle.count(cycle)) { + if(resourceNumPerCycle[cycle].count(resourceNum)) { + int maxRes = CPUResource::getCPUResource(resourceNum)->maxNumUsers; + if(resourceNumPerCycle[cycle][resourceNum] >= maxRes) + isFree = false; + } + } + + return isFree; + } + + void MSScheduleSB::useResource(int resourceNum, int cycle) { + + //Get Map for this cycle + if(resourceNumPerCycle.count(cycle)) { + if(resourceNumPerCycle[cycle].count(resourceNum)) { + resourceNumPerCycle[cycle][resourceNum]++; + } + else { + resourceNumPerCycle[cycle][resourceNum] = 1; + } + } + //If no map, create one! + else { + std::map resourceUse; + resourceUse[resourceNum] = 1; + resourceNumPerCycle[cycle] = resourceUse; + } + + } + + bool MSScheduleSB::resourcesFree(MSchedGraphSBNode *node, int cycle, int II) { + + //Get Resource usage for this instruction + const TargetSchedInfo *msi = node->getParent()->getTarget()->getSchedInfo(); + int currentCycle = cycle; + bool success = true; + + //Create vector of starting cycles + std::vector cyclesMayConflict; + cyclesMayConflict.push_back(cycle); + + if(resourceNumPerCycle.size() > 0) { + for(int i = cycle-II; i >= (resourceNumPerCycle.begin()->first); i-=II) + cyclesMayConflict.push_back(i); + for(int i = cycle+II; i <= resourceNumPerCycle.end()->first; i+=II) + cyclesMayConflict.push_back(i); + } + + //Now check all cycles for conflicts + for(int index = 0; index < (int) cyclesMayConflict.size(); ++index) { + currentCycle = cyclesMayConflict[index]; + + //Get resource usage for this instruction + InstrRUsage rUsage = msi->getInstrRUsage(node->getInst()->getOpcode()); + std::vector > resources = rUsage.resourcesByCycle; + + //Loop over resources in each cycle and increments their usage count + for(unsigned i=0; i < resources.size(); ++i) { + for(unsigned j=0; j < resources[i].size(); ++j) { + + //Get Resource to check its availability + int resourceNum = resources[i][j]; + + DEBUG(std::cerr << "Attempting to schedule Resource Num: " << resourceNum << " in cycle: " << currentCycle << "\n"); + + success = resourceAvailable(resourceNum, currentCycle); + + if(!success) + break; + + } + + if(!success) + break; + + //Increase cycle + currentCycle++; + } + + if(!success) + return false; + } + + //Actually put resources into the map + if(success) { + + int currentCycle = cycle; + //Get resource usage for this instruction + InstrRUsage rUsage = msi->getInstrRUsage(node->getInst()->getOpcode()); + std::vector > resources = rUsage.resourcesByCycle; + + //Loop over resources in each cycle and increments their usage count + for(unsigned i=0; i < resources.size(); ++i) { + for(unsigned j=0; j < resources[i].size(); ++j) { + int resourceNum = resources[i][j]; + useResource(resourceNum, currentCycle); + } + currentCycle++; + } + } + + + return true; + + } + + bool MSScheduleSB::constructKernel(int II, std::vector &branches, std::map &indVar) { + + //Our schedule is allowed to have negative numbers, so lets calculate this offset + int offset = schedule.begin()->first; + if(offset > 0) + offset = 0; + + DEBUG(std::cerr << "Offset: " << offset << "\n"); + + //Using the schedule, fold up into kernel and check resource conflicts as we go + std::vector > tempKernel; + + int stageNum = ((schedule.rbegin()->first-offset)+1)/ II; + int maxSN = 0; + + DEBUG(std::cerr << "Number of Stages: " << stageNum << "\n"); + + for(int index = offset; index < (II+offset); ++index) { + int count = 0; + for(int i = index; i <= (schedule.rbegin()->first); i+=II) { + if(schedule.count(i)) { + for(std::vector::iterator I = schedule[i].begin(), + E = schedule[i].end(); I != E; ++I) { + //Check if its a branch + assert(!(*I)->isBranch() && "Branch should not be schedule!"); + + tempKernel.push_back(std::make_pair(*I, count)); + maxSN = std::max(maxSN, count); + + } + } + ++count; + } + } + + + //Add in induction var code + for(std::vector >::iterator I = tempKernel.begin(), IE = tempKernel.end(); + I != IE; ++I) { + //Add indVar instructions before this one for the current iteration + if(I->second == 0) { + std::map tmpMap; + + //Loop over induction variable instructions in the map that come before this instr + for(std::map::iterator N = indVar.begin(), NE = indVar.end(); N != NE; ++N) { + + + if(N->second < I->first->getIndex()) + tmpMap[N->second] = (MachineInstr*) N->first; + } + + //Add to kernel, and delete from indVar + for(std::map::iterator N = tmpMap.begin(), NE = tmpMap.end(); N != NE; ++N) { + kernel.push_back(std::make_pair(N->second, 0)); + indVar.erase(N->second); + } + } + + kernel.push_back(std::make_pair((MachineInstr*) I->first->getInst(), I->second)); + if(I->first->isPredicate()) { + //assert(I->second == 0 && "Predicate node must be from current iteration\n"); + std::vector otherInstrs = I->first->getOtherInstrs(); + for(std::vector::iterator O = otherInstrs.begin(), OE = otherInstrs.end(); O != OE; ++O) { + kernel.push_back(std::make_pair((MachineInstr*) *O, I->second)); + } + } + + } + + std::map tmpMap; + + //Add remaining invar instructions + for(std::map::iterator N = indVar.begin(), NE = indVar.end(); N != NE; ++N) { + tmpMap[N->second] = (MachineInstr*) N->first; + } + + //Add to kernel, and delete from indVar + for(std::map::iterator N = tmpMap.begin(), NE = tmpMap.end(); N != NE; ++N) { + kernel.push_back(std::make_pair(N->second, 0)); + indVar.erase(N->second); + } + + + maxStage = maxSN; + + + return true; + } + + bool MSScheduleSB::defPreviousStage(Value *def, int stage) { + + //Loop over kernel and determine if value is being defined in previous stage + for(std::vector >::iterator P = kernel.begin(), PE = kernel.end(); P != PE; ++P) { + MachineInstr* inst = P->first; + + //Loop over Machine Operands + for(unsigned i=0; i < inst->getNumOperands(); ++i) { + //get machine operand + const MachineOperand &mOp = inst->getOperand(i); + if(mOp.getType() == MachineOperand::MO_VirtualRegister && mOp.isDef()) { + if(def == mOp.getVRegValue()) { + if(P->second >= stage) + return false; + else + return true; + } + } + } + } + + assert(0 && "We should always have found the def in our kernel\n"); + } + + + void MSScheduleSB::print(std::ostream &os) const { + os << "Schedule:\n"; + + for(schedule_const_iterator I = schedule.begin(), E = schedule.end(); I != E; ++I) { + os << "Cycle: " << I->first << "\n"; + for(std::vector::const_iterator node = I->second.begin(), nodeEnd = I->second.end(); node != nodeEnd; ++node) + os << **node << "\n"; + } + + os << "Kernel:\n"; + for(std::vector >::const_iterator I = kernel.begin(), + E = kernel.end(); I != E; ++I) + os << "Node: " << *(I->first) << " Stage: " << I->second << "\n"; + } + + void MSScheduleSB::printSchedule(std::ostream &os) const { + os << "Schedule:\n"; + + for(schedule_const_iterator I = schedule.begin(), E = schedule.end(); I != E; ++I) { + os << "Cycle: " << I->first << "\n"; + for(std::vector::const_iterator node = I->second.begin(), nodeEnd = I->second.end(); node != nodeEnd; ++node) + os << **node << "\n"; + } + } Index: llvm/lib/Target/SparcV9/ModuloScheduling/MSScheduleSB.h diff -c /dev/null llvm/lib/Target/SparcV9/ModuloScheduling/MSScheduleSB.h:1.1 *** /dev/null Thu Jun 16 23:15:54 2005 --- llvm/lib/Target/SparcV9/ModuloScheduling/MSScheduleSB.h Thu Jun 16 23:15:43 2005 *************** *** 0 **** --- 1,73 ---- + //===-- MSScheduleSB.h - Schedule ------- -------------------------*- C++ -*-===// + // + // The LLVM Compiler Infrastructure + // + // This file was developed by the LLVM research group and is distributed under + // the University of Illinois Open Source License. See LICENSE.TXT for details. + // + //===----------------------------------------------------------------------===// + // + // The schedule generated by a scheduling algorithm + // + //===----------------------------------------------------------------------===// + + #ifndef LLVM_MSSCHEDULESB_H + #define LLVM_MSSCHEDULESB_H + + #include "MSchedGraphSB.h" + #include + #include + + namespace llvm { + + class MSScheduleSB { + std::map > schedule; + unsigned numIssue; + + //Internal map to keep track of explicit resources + std::map > resourceNumPerCycle; + + //Check if all resources are free + bool resourcesFree(MSchedGraphSBNode*, int, int II); + bool resourceAvailable(int resourceNum, int cycle); + void useResource(int resourceNum, int cycle); + + //Resulting kernel + std::vector > kernel; + + //Max stage count + int maxStage; + + //add at the right spot in the schedule + void addToSchedule(int, MSchedGraphSBNode*); + + public: + MSScheduleSB(int num) : numIssue(num) {} + MSScheduleSB() : numIssue(4) {} + bool insert(MSchedGraphSBNode *node, int cycle, int II); + int getStartCycle(MSchedGraphSBNode *node); + void clear() { schedule.clear(); resourceNumPerCycle.clear(); kernel.clear(); } + std::vector >* getKernel() { return &kernel; } + bool constructKernel(int II, std::vector &branches, std::map &indVar); + int getMaxStage() { return maxStage; } + bool defPreviousStage(Value *def, int stage); + + //iterators + typedef std::map >::iterator schedule_iterator; + typedef std::map >::const_iterator schedule_const_iterator; + schedule_iterator begin() { return schedule.begin(); }; + schedule_iterator end() { return schedule.end(); }; + void print(std::ostream &os) const; + void printSchedule(std::ostream &os) const; + + typedef std::vector >::iterator kernel_iterator; + typedef std::vector >::const_iterator kernel_const_iterator; + kernel_iterator kernel_begin() { return kernel.begin(); } + kernel_iterator kernel_end() { return kernel.end(); } + + }; + + } + + + #endif Index: llvm/lib/Target/SparcV9/ModuloScheduling/MSchedGraphSB.cpp diff -c /dev/null llvm/lib/Target/SparcV9/ModuloScheduling/MSchedGraphSB.cpp:1.1 *** /dev/null Thu Jun 16 23:15:54 2005 --- llvm/lib/Target/SparcV9/ModuloScheduling/MSchedGraphSB.cpp Thu Jun 16 23:15:43 2005 *************** *** 0 **** --- 1,868 ---- + //===-- MSchedGraphSB.cpp - Scheduling Graph ----------------------*- C++ -*-===// + // + // The LLVM Compiler Infrastructure + // + // This file was developed by the LLVM research group and is distributed under + // the University of Illinois Open Source License. See LICENSE.TXT for details. + // + //===----------------------------------------------------------------------===// + // + // A graph class for dependencies. This graph only contains true, anti, and + // output data dependencies for a given MachineBasicBlock. Dependencies + // across iterations are also computed. Unless data dependence analysis + // is provided, a conservative approach of adding dependencies between all + // loads and stores is taken. + //===----------------------------------------------------------------------===// + #define DEBUG_TYPE "ModuloSchedSB" + + #include "MSchedGraphSB.h" + #include "../SparcV9RegisterInfo.h" + #include "../MachineCodeForInstruction.h" + #include "llvm/BasicBlock.h" + #include "llvm/Constants.h" + #include "llvm/Instructions.h" + #include "llvm/Type.h" + #include "llvm/CodeGen/MachineBasicBlock.h" + #include "llvm/Target/TargetInstrInfo.h" + #include "llvm/Support/Debug.h" + #include + #include + #include + #include "llvm/Target/TargetSchedInfo.h" + #include "../SparcV9Internals.h" + + using namespace llvm; + + //MSchedGraphSBNode constructor + MSchedGraphSBNode::MSchedGraphSBNode(const MachineInstr* inst, + MSchedGraphSB *graph, unsigned idx, + unsigned late, bool isBranch) + : Inst(inst), Parent(graph), index(idx), latency(late), + isBranchInstr(isBranch) { + + //Add to the graph + graph->addNode(inst, this); + } + + //MSchedGraphSBNode constructor + MSchedGraphSBNode::MSchedGraphSBNode(const MachineInstr* inst, + std::vector &other, + MSchedGraphSB *graph, unsigned idx, + unsigned late, bool isPNode) + : Inst(inst), otherInstrs(other), Parent(graph), index(idx), latency(late), isPredicateNode(isPNode) { + + + isBranchInstr = false; + + //Add to the graph + graph->addNode(inst, this); + } + + //MSchedGraphSBNode copy constructor + MSchedGraphSBNode::MSchedGraphSBNode(const MSchedGraphSBNode &N) + : Predecessors(N.Predecessors), Successors(N.Successors) { + + Inst = N.Inst; + Parent = N.Parent; + index = N.index; + latency = N.latency; + isBranchInstr = N.isBranchInstr; + otherInstrs = N.otherInstrs; + } + + //Print the node (instruction and latency) + void MSchedGraphSBNode::print(std::ostream &os) const { + if(!isPredicate()) + os << "MSchedGraphSBNode: Inst=" << *Inst << ", latency= " << latency << "\n"; + else + os << "Pred Node\n"; + } + + + //Get the edge from a predecessor to this node + MSchedGraphSBEdge MSchedGraphSBNode::getInEdge(MSchedGraphSBNode *pred) { + //Loop over all the successors of our predecessor + //return the edge the corresponds to this in edge + for (MSchedGraphSBNode::succ_iterator I = pred->succ_begin(), + E = pred->succ_end(); I != E; ++I) { + if (*I == this) + return I.getEdge(); + } + assert(0 && "Should have found edge between this node and its predecessor!"); + abort(); + } + + //Get the iteration difference for the edge from this node to its successor + unsigned MSchedGraphSBNode::getIteDiff(MSchedGraphSBNode *succ) { + for(std::vector::iterator I = Successors.begin(), + E = Successors.end(); + I != E; ++I) { + if(I->getDest() == succ) + return I->getIteDiff(); + } + return 0; + } + + //Get the index into the vector of edges for the edge from pred to this node + unsigned MSchedGraphSBNode::getInEdgeNum(MSchedGraphSBNode *pred) { + //Loop over all the successors of our predecessor + //return the edge the corresponds to this in edge + int count = 0; + for(MSchedGraphSBNode::succ_iterator I = pred->succ_begin(), + E = pred->succ_end(); + I != E; ++I) { + if(*I == this) + return count; + count++; + } + assert(0 && "Should have found edge between this node and its predecessor!"); + abort(); + } + + //Determine if succ is a successor of this node + bool MSchedGraphSBNode::isSuccessor(MSchedGraphSBNode *succ) { + for(succ_iterator I = succ_begin(), E = succ_end(); I != E; ++I) + if(*I == succ) + return true; + return false; + } + + //Dtermine if pred is a predecessor of this node + bool MSchedGraphSBNode::isPredecessor(MSchedGraphSBNode *pred) { + if(std::find( Predecessors.begin(), Predecessors.end(), + pred) != Predecessors.end()) + return true; + else + return false; + } + + //Add a node to the graph + void MSchedGraphSB::addNode(const MachineInstr* MI, + MSchedGraphSBNode *node) { + + //Make sure node does not already exist + assert(GraphMap.find(MI) == GraphMap.end() + && "New MSchedGraphSBNode already exists for this instruction"); + + GraphMap[MI] = node; + } + + //Delete a node to the graph + void MSchedGraphSB::deleteNode(MSchedGraphSBNode *node) { + + //Delete the edge to this node from all predecessors + while(node->pred_size() > 0) { + //DEBUG(std::cerr << "Delete edge from: " << **P << " to " << *node << "\n"); + MSchedGraphSBNode *pred = *(node->pred_begin()); + pred->deleteSuccessor(node); + } + + //Remove this node from the graph + GraphMap.erase(node->getInst()); + + } + + + //Create a graph for a machine block. The ignoreInstrs map is so that + //we ignore instructions associated to the index variable since this + //is a special case in Modulo Scheduling. We only want to deal with + //the body of the loop. + MSchedGraphSB::MSchedGraphSB(std::vector &bbs, + const TargetMachine &targ, + std::map &ignoreInstrs, + DependenceAnalyzer &DA, + std::map &machineTollvm) + : BBs(bbs), Target(targ) { + + //Make sure there is at least one BB and it is not null, + assert(((bbs.size() >= 1) && bbs[1] != NULL) && "Basic Block is null"); + + std::map > liveOutsideTrace; + std::set llvmBBs; + + for(std::vector::iterator MBB = bbs.begin(), ME = bbs.end()-1; + MBB != ME; ++MBB) + llvmBBs.insert((*MBB)->getBasicBlock()); + + //create predicate nodes + DEBUG("Create predicate nodes\n"); + for(std::vector::iterator MBB = bbs.begin(), ME = bbs.end()-1; + MBB != ME; ++MBB) { + //Get LLVM basic block + BasicBlock *BB = (BasicBlock*) (*MBB)->getBasicBlock(); + + //Get Terminator + BranchInst *b = dyn_cast(BB->getTerminator()); + + std::vector otherInstrs; + MachineInstr *instr = 0; + + //Get the condition for the branch (we already checked if it was conditional) + if(b->isConditional()) { + + Value *cond = b->getCondition(); + + DEBUG(std::cerr << "Condition: " << *cond << "\n"); + + assert(cond && "Condition must not be null!"); + + if(Instruction *I = dyn_cast(cond)) { + MachineCodeForInstruction & tempMvec = MachineCodeForInstruction::get(I); + if(tempMvec.size() > 0) { + DEBUG(std::cerr << *(tempMvec[tempMvec.size()-1]) << "\n");; + instr = (MachineInstr*) tempMvec[tempMvec.size()-1]; + } + } + } + + //Get Machine target information for calculating latency + const TargetInstrInfo *MTI = Target.getInstrInfo(); + + MachineCodeForInstruction & tempMvec = MachineCodeForInstruction::get(b); + int offset = tempMvec.size(); + for (unsigned j = 0; j < tempMvec.size(); j++) { + MachineInstr *mi = tempMvec[j]; + if(MTI->isNop(mi->getOpcode())) + continue; + + if(!instr) { + instr = mi; + DEBUG(std::cerr << "No Cond MI: " << *mi << "\n"); + } + else { + DEBUG(std::cerr << *mi << "\n");; + otherInstrs.push_back(mi); + } + } + + //Node is created and added to the graph automatically + MSchedGraphSBNode *node = new MSchedGraphSBNode(instr, otherInstrs, this, (*MBB)->size()-offset-1, 3, true); + + DEBUG(std::cerr << "Created Node: " << *node << "\n"); + + //Now loop over all instructions and see if their def is live outside the trace + MachineBasicBlock *mb = (MachineBasicBlock*) *MBB; + for(MachineBasicBlock::iterator I = mb->begin(), E = mb->end(); I != E; ++I) { + MachineInstr *instr = I; + if(MTI->isNop(instr->getOpcode()) || MTI->isBranch(instr->getOpcode())) + continue; + if(node->getInst() == instr) + continue; + + for(unsigned i=0; i < instr->getNumOperands(); ++i) { + MachineOperand &mOp = instr->getOperand(i); + if(mOp.isDef() && mOp.getType() == MachineOperand::MO_VirtualRegister) { + Value *val = mOp.getVRegValue(); + //Check if there is a use not in the trace + for(Value::use_iterator V = val->use_begin(), VE = val->use_end(); V != VE; ++V) { + if (Instruction *Inst = dyn_cast(*V)) { + if(llvmBBs.count(Inst->getParent())) + liveOutsideTrace[node].insert(instr); + } + } + } + } + } + + + } + + //Create nodes and edges for this BB + buildNodesAndEdges(ignoreInstrs, DA, machineTollvm, liveOutsideTrace); + + } + + + //Copies the graph and keeps a map from old to new nodes + MSchedGraphSB::MSchedGraphSB(const MSchedGraphSB &G, + std::map &newNodes) + : Target(G.Target) { + + BBs = G.BBs; + + std::map oldToNew; + //Copy all nodes + for(MSchedGraphSB::const_iterator N = G.GraphMap.begin(), + NE = G.GraphMap.end(); N != NE; ++N) { + + MSchedGraphSBNode *newNode = new MSchedGraphSBNode(*(N->second)); + oldToNew[&*(N->second)] = newNode; + newNodes[newNode] = &*(N->second); + GraphMap[&*(N->first)] = newNode; + } + + //Loop over nodes and update edges to point to new nodes + for(MSchedGraphSB::iterator N = GraphMap.begin(), NE = GraphMap.end(); + N != NE; ++N) { + + //Get the node we are dealing with + MSchedGraphSBNode *node = &*(N->second); + + node->setParent(this); + + //Loop over nodes successors and predecessors and update to the new nodes + for(unsigned i = 0; i < node->pred_size(); ++i) { + node->setPredecessor(i, oldToNew[node->getPredecessor(i)]); + } + + for(unsigned i = 0; i < node->succ_size(); ++i) { + MSchedGraphSBEdge *edge = node->getSuccessor(i); + MSchedGraphSBNode *oldDest = edge->getDest(); + edge->setDest(oldToNew[oldDest]); + } + } + } + + //Deconstructor, deletes all nodes in the graph + MSchedGraphSB::~MSchedGraphSB () { + for(MSchedGraphSB::iterator I = GraphMap.begin(), E = GraphMap.end(); + I != E; ++I) + delete I->second; + } + + //Print out graph + void MSchedGraphSB::print(std::ostream &os) const { + for(MSchedGraphSB::const_iterator N = GraphMap.begin(), NE = GraphMap.end(); + N != NE; ++N) { + + //Get the node we are dealing with + MSchedGraphSBNode *node = &*(N->second); + + os << "Node Start\n"; + node->print(os); + os << "Successors:\n"; + //print successors + for(unsigned i = 0; i < node->succ_size(); ++i) { + MSchedGraphSBEdge *edge = node->getSuccessor(i); + MSchedGraphSBNode *oldDest = edge->getDest(); + oldDest->print(os); + } + os << "Node End\n"; + } + } + + //Calculate total delay + int MSchedGraphSB::totalDelay() { + int sum = 0; + + for(MSchedGraphSB::const_iterator N = GraphMap.begin(), NE = GraphMap.end(); + N != NE; ++N) { + + //Get the node we are dealing with + MSchedGraphSBNode *node = &*(N->second); + sum += node->getLatency(); + } + return sum; + } + + bool MSchedGraphSB::instrCauseException(MachineOpCode opCode) { + //Check for integer divide + if(opCode == V9::SDIVXr || opCode == V9::SDIVXi + || opCode == V9::UDIVXr || opCode == V9::UDIVXi) + return true; + + //Check for loads or stores + const TargetInstrInfo *MTI = Target.getInstrInfo(); + //if( MTI->isLoad(opCode) || + if(MTI->isStore(opCode)) + return true; + + //Check for any floating point operation + const TargetSchedInfo *msi = Target.getSchedInfo(); + InstrSchedClass sc = msi->getSchedClass(opCode); + if(sc == SPARC_FGA || sc == SPARC_FGM) + return true; + + return false; + } + + + //Add edges between the nodes + void MSchedGraphSB::buildNodesAndEdges(std::map &ignoreInstrs, + DependenceAnalyzer &DA, + std::map &machineTollvm, + std::map > &liveOutsideTrace) { + + + //Get Machine target information for calculating latency + const TargetInstrInfo *MTI = Target.getInstrInfo(); + + std::vector memInstructions; + std::map > regNumtoNodeMap; + std::map > valuetoNodeMap; + + //Save PHI instructions to deal with later + std::vector phiInstrs; + unsigned index = 0; + + MSchedGraphSBNode *lastPred = 0; + + + for(std::vector::iterator B = BBs.begin(), + BE = BBs.end(); B != BE; ++B) { + + const MachineBasicBlock *BB = *B; + + + //Loop over instructions in MBB and add nodes and edges + for (MachineBasicBlock::const_iterator MI = BB->begin(), e = BB->end(); + MI != e; ++MI) { + + //Ignore indvar instructions + if(ignoreInstrs.count(MI)) { + ++index; + continue; + } + + //Get each instruction of machine basic block, get the delay + //using the op code, create a new node for it, and add to the + //graph. + + MachineOpCode opCode = MI->getOpcode(); + int delay; + + //Get delay + delay = MTI->maxLatency(opCode); + + //Create new node for this machine instruction and add to the graph. + //Create only if not a nop + if(MTI->isNop(opCode)) + continue; + + //Sparc BE does not use PHI opcode, so assert on this case + assert(opCode != TargetInstrInfo::PHI && "Did not expect PHI opcode"); + + bool isBranch = false; + + //Skip branches + if(MTI->isBranch(opCode)) + continue; + + //Node is created and added to the graph automatically + MSchedGraphSBNode *node = 0; + if(!GraphMap.count(MI)){ + node = new MSchedGraphSBNode(MI, this, index, delay); + DEBUG(std::cerr << "Created Node: " << *node << "\n"); + } + else { + node = GraphMap[MI]; + if(node->isPredicate()) { + //Create edge between this node and last pred, then switch to new pred + if(lastPred) { + lastPred->addOutEdge(node, MSchedGraphSBEdge::PredDep, + MSchedGraphSBEdge::NonDataDep, 0); + + if(liveOutsideTrace.count(lastPred)) { + for(std::set::iterator L = liveOutsideTrace[lastPred].begin(), LE = liveOutsideTrace[lastPred].end(); L != LE; ++L) + lastPred->addOutEdge(GraphMap[*L], MSchedGraphSBEdge::PredDep, + MSchedGraphSBEdge::NonDataDep, 1); + } + + } + + lastPred = node; + } + } + + //Add dependencies to instructions that cause exceptions + if(lastPred) + lastPred->print(std::cerr); + + if(!node->isPredicate() && instrCauseException(opCode)) { + if(lastPred) { + lastPred->addOutEdge(node, MSchedGraphSBEdge::PredDep, + MSchedGraphSBEdge::NonDataDep, 0); + } + } + + + //Check OpCode to keep track of memory operations to add memory + //dependencies later. + if(MTI->isLoad(opCode) || MTI->isStore(opCode)) + memInstructions.push_back(node); + + //Loop over all operands, and put them into the register number to + //graph node map for determining dependencies + //If an operands is a use/def, we have an anti dependence to itself + for(unsigned i=0; i < MI->getNumOperands(); ++i) { + //Get Operand + const MachineOperand &mOp = MI->getOperand(i); + + //Check if it has an allocated register + if(mOp.hasAllocatedReg()) { + int regNum = mOp.getReg(); + + if(regNum != SparcV9::g0) { + //Put into our map + regNumtoNodeMap[regNum].push_back(std::make_pair(i, node)); + } + continue; + } + + + //Add virtual registers dependencies + //Check if any exist in the value map already and create dependencies + //between them. + if(mOp.getType() == MachineOperand::MO_VirtualRegister + || mOp.getType() == MachineOperand::MO_CCRegister) { + + //Make sure virtual register value is not null + assert((mOp.getVRegValue() != NULL) && "Null value is defined"); + + //Check if this is a read operation in a phi node, if so DO NOT PROCESS + if(mOp.isUse() && (opCode == TargetInstrInfo::PHI)) { + DEBUG(std::cerr << "Read Operation in a PHI node\n"); + continue; + } + + if (const Value* srcI = mOp.getVRegValue()) { + + //Find value in the map + std::map >::iterator V + = valuetoNodeMap.find(srcI); + + //If there is something in the map already, add edges from + //those instructions + //to this one we are processing + if(V != valuetoNodeMap.end()) { + addValueEdges(V->second, node, mOp.isUse(), mOp.isDef(), phiInstrs); + + //Add to value map + V->second.push_back(std::make_pair(i,node)); + } + //Otherwise put it in the map + else + //Put into value map + valuetoNodeMap[mOp.getVRegValue()].push_back(std::make_pair(i, node)); + } + } + } + ++index; + } + + //Loop over LLVM BB, examine phi instructions, and add them to our + //phiInstr list to process + const BasicBlock *llvm_bb = BB->getBasicBlock(); + for(BasicBlock::const_iterator I = llvm_bb->begin(), E = llvm_bb->end(); + I != E; ++I) { + if(const PHINode *PN = dyn_cast(I)) { + MachineCodeForInstruction & tempMvec = MachineCodeForInstruction::get(PN); + for (unsigned j = 0; j < tempMvec.size(); j++) { + if(!ignoreInstrs.count(tempMvec[j])) { + DEBUG(std::cerr << "Inserting phi instr into map: " << *tempMvec[j] << "\n"); + phiInstrs.push_back((MachineInstr*) tempMvec[j]); + } + } + } + + } + + addMemEdges(memInstructions, DA, machineTollvm); + addMachRegEdges(regNumtoNodeMap); + + //Finally deal with PHI Nodes and Value* + for(std::vector::iterator I = phiInstrs.begin(), + E = phiInstrs.end(); I != E; ++I) { + + //Get Node for this instruction + std::map::iterator X; + X = find(*I); + + if(X == GraphMap.end()) + continue; + + MSchedGraphSBNode *node = X->second; + + DEBUG(std::cerr << "Adding ite diff edges for node: " << *node << "\n"); + + //Loop over operands for this instruction and add value edges + for(unsigned i=0; i < (*I)->getNumOperands(); ++i) { + //Get Operand + const MachineOperand &mOp = (*I)->getOperand(i); + if((mOp.getType() == MachineOperand::MO_VirtualRegister + || mOp.getType() == MachineOperand::MO_CCRegister) && mOp.isUse()) { + + //find the value in the map + if (const Value* srcI = mOp.getVRegValue()) { + + //Find value in the map + std::map >::iterator V + = valuetoNodeMap.find(srcI); + + //If there is something in the map already, add edges from + //those instructions + //to this one we are processing + if(V != valuetoNodeMap.end()) { + addValueEdges(V->second, node, mOp.isUse(), mOp.isDef(), + phiInstrs, 1); + } + } + } + } + } + } + } + //Add dependencies for Value*s + void MSchedGraphSB::addValueEdges(std::vector &NodesInMap, + MSchedGraphSBNode *destNode, bool nodeIsUse, + bool nodeIsDef, std::vector &phiInstrs, int diff) { + + for(std::vector::iterator I = NodesInMap.begin(), + E = NodesInMap.end(); I != E; ++I) { + + //Get node in vectors machine operand that is the same value as node + MSchedGraphSBNode *srcNode = I->second; + MachineOperand mOp = srcNode->getInst()->getOperand(I->first); + + if(diff > 0) + if(std::find(phiInstrs.begin(), phiInstrs.end(), srcNode->getInst()) == phiInstrs.end()) + continue; + + //Node is a Def, so add output dep. + if(nodeIsDef) { + if(mOp.isUse()) { + DEBUG(std::cerr << "Edge from " << *srcNode << " to " << *destNode << " (itediff=" << diff << ", type=anti)\n"); + srcNode->addOutEdge(destNode, MSchedGraphSBEdge::ValueDep, + MSchedGraphSBEdge::AntiDep, diff); + } + if(mOp.isDef()) { + DEBUG(std::cerr << "Edge from " << *srcNode << " to " << *destNode << " (itediff=" << diff << ", type=output)\n"); + srcNode->addOutEdge(destNode, MSchedGraphSBEdge::ValueDep, + MSchedGraphSBEdge::OutputDep, diff); + } + } + if(nodeIsUse) { + if(mOp.isDef()) { + DEBUG(std::cerr << "Edge from " << *srcNode << " to " << *destNode << " (itediff=" << diff << ", type=true)\n"); + srcNode->addOutEdge(destNode, MSchedGraphSBEdge::ValueDep, + MSchedGraphSBEdge::TrueDep, diff); + } + } + } + } + + //Add dependencies for machine registers across iterations + void MSchedGraphSB::addMachRegEdges(std::map >& regNumtoNodeMap) { + //Loop over all machine registers in the map, and add dependencies + //between the instructions that use it + typedef std::map > regNodeMap; + for(regNodeMap::iterator I = regNumtoNodeMap.begin(); + I != regNumtoNodeMap.end(); ++I) { + //Get the register number + int regNum = (*I).first; + + //Get Vector of nodes that use this register + std::vector Nodes = (*I).second; + + //Loop over nodes and determine the dependence between the other + //nodes in the vector + for(unsigned i =0; i < Nodes.size(); ++i) { + + //Get src node operator index that uses this machine register + int srcOpIndex = Nodes[i].first; + + //Get the actual src Node + MSchedGraphSBNode *srcNode = Nodes[i].second; + + //Get Operand + const MachineOperand &srcMOp = srcNode->getInst()->getOperand(srcOpIndex); + + bool srcIsUseandDef = srcMOp.isDef() && srcMOp.isUse(); + bool srcIsUse = srcMOp.isUse() && !srcMOp.isDef(); + + + //Look at all instructions after this in execution order + for(unsigned j=i+1; j < Nodes.size(); ++j) { + + //Sink node is a write + if(Nodes[j].second->getInst()->getOperand(Nodes[j].first).isDef()) { + //Src only uses the register (read) + if(srcIsUse) + srcNode->addOutEdge(Nodes[j].second, + MSchedGraphSBEdge::MachineRegister, + MSchedGraphSBEdge::AntiDep); + + else if(srcIsUseandDef) { + srcNode->addOutEdge(Nodes[j].second, + MSchedGraphSBEdge::MachineRegister, + MSchedGraphSBEdge::AntiDep); + + srcNode->addOutEdge(Nodes[j].second, + MSchedGraphSBEdge::MachineRegister, + MSchedGraphSBEdge::OutputDep); + } + else + srcNode->addOutEdge(Nodes[j].second, + MSchedGraphSBEdge::MachineRegister, + MSchedGraphSBEdge::OutputDep); + } + //Dest node is a read + else { + if(!srcIsUse || srcIsUseandDef) + srcNode->addOutEdge(Nodes[j].second, + MSchedGraphSBEdge::MachineRegister, + MSchedGraphSBEdge::TrueDep); + } + + } + + //Look at all the instructions before this one since machine registers + //could live across iterations. + for(unsigned j = 0; j < i; ++j) { + //Sink node is a write + if(Nodes[j].second->getInst()->getOperand(Nodes[j].first).isDef()) { + //Src only uses the register (read) + if(srcIsUse) + srcNode->addOutEdge(Nodes[j].second, + MSchedGraphSBEdge::MachineRegister, + MSchedGraphSBEdge::AntiDep, 1); + else if(srcIsUseandDef) { + srcNode->addOutEdge(Nodes[j].second, + MSchedGraphSBEdge::MachineRegister, + MSchedGraphSBEdge::AntiDep, 1); + + srcNode->addOutEdge(Nodes[j].second, + MSchedGraphSBEdge::MachineRegister, + MSchedGraphSBEdge::OutputDep, 1); + } + else + srcNode->addOutEdge(Nodes[j].second, + MSchedGraphSBEdge::MachineRegister, + MSchedGraphSBEdge::OutputDep, 1); + } + //Dest node is a read + else { + if(!srcIsUse || srcIsUseandDef) + srcNode->addOutEdge(Nodes[j].second, + MSchedGraphSBEdge::MachineRegister, + MSchedGraphSBEdge::TrueDep,1 ); + } + + + } + + } + + } + + } + + //Add edges between all loads and stores + //Can be less strict with alias analysis and data dependence analysis. + void MSchedGraphSB::addMemEdges(const std::vector& memInst, + DependenceAnalyzer &DA, + std::map &machineTollvm) { + + //Get Target machine instruction info + const TargetInstrInfo *TMI = Target.getInstrInfo(); + + //Loop over all memory instructions in the vector + //Knowing that they are in execution, add true, anti, and output dependencies + for (unsigned srcIndex = 0; srcIndex < memInst.size(); ++srcIndex) { + + MachineInstr *srcInst = (MachineInstr*) memInst[srcIndex]->getInst(); + + //Get the machine opCode to determine type of memory instruction + MachineOpCode srcNodeOpCode = srcInst->getOpcode(); + + //All instructions after this one in execution order have an + //iteration delay of 0 + for(unsigned destIndex = 0; destIndex < memInst.size(); ++destIndex) { + + //No self loops + if(destIndex == srcIndex) + continue; + + MachineInstr *destInst = (MachineInstr*) memInst[destIndex]->getInst(); + + DEBUG(std::cerr << "MInst1: " << *srcInst << "\n"); + DEBUG(std::cerr << "MInst2: " << *destInst << "\n"); + + //Assuming instructions without corresponding llvm instructions + //are from constant pools. + if (!machineTollvm.count(srcInst) || !machineTollvm.count(destInst)) + continue; + + bool useDepAnalyzer = true; + + //Some machine loads and stores are generated by casts, so be + //conservative and always add deps + Instruction *srcLLVM = machineTollvm[srcInst]; + Instruction *destLLVM = machineTollvm[destInst]; + if(!isa(srcLLVM) + && !isa(srcLLVM)) { + if(isa(srcLLVM)) { + if(isa(srcLLVM->getOperand(0)) || isa(srcLLVM->getOperand(1))) + continue; + } + useDepAnalyzer = false; + } + if(!isa(destLLVM) + && !isa(destLLVM)) { + if(isa(destLLVM)) { + if(isa(destLLVM->getOperand(0)) || isa(destLLVM->getOperand(1))) + continue; + } + useDepAnalyzer = false; + } + + //Use dep analysis when we have corresponding llvm loads/stores + if(useDepAnalyzer) { + bool srcBeforeDest = true; + if(destIndex < srcIndex) + srcBeforeDest = false; + + DependenceResult dr = DA.getDependenceInfo(machineTollvm[srcInst], + machineTollvm[destInst], + srcBeforeDest); + + for(std::vector::iterator d = dr.dependences.begin(), + de = dr.dependences.end(); d != de; ++d) { + //Add edge from load to store + memInst[srcIndex]->addOutEdge(memInst[destIndex], + MSchedGraphSBEdge::MemoryDep, + d->getDepType(), d->getIteDiff()); + + } + } + //Otherwise, we can not do any further analysis and must make a dependence + else { + + //Get the machine opCode to determine type of memory instruction + MachineOpCode destNodeOpCode = destInst->getOpcode(); + + //Get the Value* that we are reading from the load, always the first op + const MachineOperand &mOp = srcInst->getOperand(0); + const MachineOperand &mOp2 = destInst->getOperand(0); + + if(mOp.hasAllocatedReg()) + if(mOp.getReg() == SparcV9::g0) + continue; + if(mOp2.hasAllocatedReg()) + if(mOp2.getReg() == SparcV9::g0) + continue; + + DEBUG(std::cerr << "Adding dependence for machine instructions\n"); + //Load-Store deps + if(TMI->isLoad(srcNodeOpCode)) { + + if(TMI->isStore(destNodeOpCode)) + memInst[srcIndex]->addOutEdge(memInst[destIndex], + MSchedGraphSBEdge::MemoryDep, + MSchedGraphSBEdge::AntiDep, 0); + } + else if(TMI->isStore(srcNodeOpCode)) { + if(TMI->isStore(destNodeOpCode)) + memInst[srcIndex]->addOutEdge(memInst[destIndex], + MSchedGraphSBEdge::MemoryDep, + MSchedGraphSBEdge::OutputDep, 0); + + else + memInst[srcIndex]->addOutEdge(memInst[destIndex], + MSchedGraphSBEdge::MemoryDep, + MSchedGraphSBEdge::TrueDep, 0); + } + } + } + } + } From tbrethou at cs.uiuc.edu Thu Jun 16 23:16:25 2005 From: tbrethou at cs.uiuc.edu (Tanya Brethour) Date: Thu, 16 Jun 2005 23:16:25 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/SparcV9/ModuloScheduling/MSchedGraphSB.h Message-ID: <200506170416.XAA29868@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/SparcV9/ModuloScheduling: MSchedGraphSB.h added (r1.1) --- Log message: Special dep graph for SMS for superblocks. --- Diffs of the changes: (+410 -0) MSchedGraphSB.h | 410 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 410 insertions(+) Index: llvm/lib/Target/SparcV9/ModuloScheduling/MSchedGraphSB.h diff -c /dev/null llvm/lib/Target/SparcV9/ModuloScheduling/MSchedGraphSB.h:1.1 *** /dev/null Thu Jun 16 23:16:24 2005 --- llvm/lib/Target/SparcV9/ModuloScheduling/MSchedGraphSB.h Thu Jun 16 23:16:14 2005 *************** *** 0 **** --- 1,410 ---- + //===-- MSchedGraphSB.h - Scheduling Graph ------------------------*- C++ -*-===// + // + // The LLVM Compiler Infrastructure + // + // This file was developed by the LLVM research group and is distributed under + // the University of Illinois Open Source License. See LICENSE.TXT for details. + // + //===----------------------------------------------------------------------===// + // + // A graph class for dependencies. This graph only contains true, anti, and + // output data dependencies for a vector of MachineBasicBlock. Dependencies + // across iterations are also computed. Unless data dependence analysis + // is provided, a conservative approach of adding dependencies between all + // loads and stores is taken. It also includes pseudo predicate nodes for + // modulo scheduling superblocks. + //===----------------------------------------------------------------------===// + + #ifndef LLVM_MSCHEDGRAPHSB_H + #define LLVM_MSCHEDGRAPHSB_H + #include "DependenceAnalyzer.h" + #include "llvm/Analysis/AliasAnalysis.h" + #include "llvm/CodeGen/MachineInstr.h" + #include "llvm/Target/TargetMachine.h" + #include "llvm/Target/TargetData.h" + #include "llvm/ADT/GraphTraits.h" + #include "llvm/ADT/STLExtras.h" + #include "llvm/ADT/iterator" + #include + + + namespace llvm { + + class MSchedGraphSB; + class MSchedGraphSBNode; + template + class MSchedGraphSBNodeIterator; + + //MSchedGraphSBEdge encapsulates the data dependence between nodes. It + //identifies the dependence type, on what, and the iteration + //difference + struct MSchedGraphSBEdge { + enum DataDepOrderType { + TrueDep, AntiDep, OutputDep, NonDataDep + }; + + enum MSchedGraphSBEdgeType { + MemoryDep, ValueDep, MachineRegister, PredDep + }; + + //Get or set edge data + MSchedGraphSBNode *getDest() const { return dest; } + unsigned getIteDiff() { return iteDiff; } + unsigned getDepOrderType() { return depOrderType; } + void setDest(MSchedGraphSBNode *newDest) { dest = newDest; } + + private: + friend class MSchedGraphSBNode; + MSchedGraphSBEdge(MSchedGraphSBNode *destination, MSchedGraphSBEdgeType type, + unsigned deptype, unsigned diff) + : dest(destination), depType(type), depOrderType(deptype), iteDiff(diff) {} + + MSchedGraphSBNode *dest; + MSchedGraphSBEdgeType depType; + unsigned depOrderType; + unsigned iteDiff; + }; + + //MSchedGraphSBNode represents a machine instruction and its + //corresponding latency. Each node also contains a list of its + //predecessors and sucessors. + class MSchedGraphSBNode { + + const MachineInstr* Inst; //Machine Instruction + std::vector otherInstrs; + + MSchedGraphSB* Parent; //Graph this node belongs to + unsigned index; //Index in BB + unsigned latency; //Latency of Instruction + bool isBranchInstr; //Is this node the branch instr or not + bool isPredicateNode; //Indicate if this node should be treated like a predicate + + std::vector Predecessors; //Predecessor Nodes + std::vector Successors; //Successor edges + + public: + MSchedGraphSBNode(const MachineInstr* inst, MSchedGraphSB *graph, + unsigned index, unsigned late=0, bool isBranch=false); + MSchedGraphSBNode(const MachineInstr* inst, std::vector &other, + MSchedGraphSB *graph, + unsigned index, unsigned late=0, bool isPNode=true); + MSchedGraphSBNode(const MSchedGraphSBNode &N); + + //Iterators - Predecessor and Succussor + typedef std::vector::iterator pred_iterator; + pred_iterator pred_begin() { return Predecessors.begin(); } + pred_iterator pred_end() { return Predecessors.end(); } + unsigned pred_size() { return Predecessors.size(); } + + typedef std::vector::const_iterator pred_const_iterator; + pred_const_iterator pred_begin() const { return Predecessors.begin(); } + pred_const_iterator pred_end() const { return Predecessors.end(); } + + typedef MSchedGraphSBNodeIterator::const_iterator, + const MSchedGraphSBNode> succ_const_iterator; + succ_const_iterator succ_begin() const; + succ_const_iterator succ_end() const; + + typedef MSchedGraphSBNodeIterator::iterator, + MSchedGraphSBNode> succ_iterator; + succ_iterator succ_begin(); + succ_iterator succ_end(); + unsigned succ_size() { return Successors.size(); } + + //Get or set predecessor nodes, or successor edges + void setPredecessor(unsigned index, MSchedGraphSBNode *dest) { + Predecessors[index] = dest; + } + + MSchedGraphSBNode* getPredecessor(unsigned index) { + return Predecessors[index]; + } + + MSchedGraphSBEdge* getSuccessor(unsigned index) { + return &Successors[index]; + } + + void deleteSuccessor(MSchedGraphSBNode *node) { + for (unsigned i = 0; i != Successors.size(); ++i) + if (Successors[i].getDest() == node) { + Successors.erase(Successors.begin()+i); + node->Predecessors.erase(std::find(node->Predecessors.begin(), + node->Predecessors.end(), this)); + --i; //Decrease index var since we deleted a node + } + } + + void addOutEdge(MSchedGraphSBNode *destination, + MSchedGraphSBEdge::MSchedGraphSBEdgeType type, + unsigned deptype, unsigned diff=0) { + Successors.push_back(MSchedGraphSBEdge(destination, type, deptype,diff)); + destination->Predecessors.push_back(this); + } + + //General methods to get and set data for the node + const MachineInstr* getInst() { return Inst; } + MSchedGraphSB* getParent() { return Parent; } + bool hasPredecessors() { return (Predecessors.size() > 0); } + bool hasSuccessors() { return (Successors.size() > 0); } + unsigned getLatency() { return latency; } + unsigned getLatency() const { return latency; } + unsigned getIndex() { return index; } + unsigned getIteDiff(MSchedGraphSBNode *succ); + MSchedGraphSBEdge getInEdge(MSchedGraphSBNode *pred); + unsigned getInEdgeNum(MSchedGraphSBNode *pred); + bool isSuccessor(MSchedGraphSBNode *); + bool isPredecessor(MSchedGraphSBNode *); + bool isBranch() { return isBranchInstr; } + bool isPredicate() { return isPredicateNode; } + bool isPredicate() const { return isPredicateNode; } + std::vector getOtherInstrs() { return otherInstrs; } + + //Debug support + void print(std::ostream &os) const; + void setParent(MSchedGraphSB *p) { Parent = p; } + }; + + //Node iterator for graph generation + template + class MSchedGraphSBNodeIterator : public forward_iterator { + IteratorType I; // std::vector::iterator or const_iterator + public: + MSchedGraphSBNodeIterator(IteratorType i) : I(i) {} + + bool operator==(const MSchedGraphSBNodeIterator RHS) const { return I == RHS.I; } + bool operator!=(const MSchedGraphSBNodeIterator RHS) const { return I != RHS.I; } + + const MSchedGraphSBNodeIterator &operator=(const MSchedGraphSBNodeIterator &RHS) { + I = RHS.I; + return *this; + } + + NodeType* operator*() const { + return I->getDest(); + } + NodeType* operator->() const { return operator*(); } + + MSchedGraphSBNodeIterator& operator++() { // Preincrement + ++I; + return *this; + } + MSchedGraphSBNodeIterator operator++(int) { // Postincrement + MSchedGraphSBNodeIterator tmp = *this; ++*this; return tmp; + } + + MSchedGraphSBEdge &getEdge() { + return *I; + } + const MSchedGraphSBEdge &getEdge() const { + return *I; + } + }; + + inline MSchedGraphSBNode::succ_const_iterator MSchedGraphSBNode::succ_begin() const { + return succ_const_iterator(Successors.begin()); + } + inline MSchedGraphSBNode::succ_const_iterator MSchedGraphSBNode::succ_end() const { + return succ_const_iterator(Successors.end()); + } + inline MSchedGraphSBNode::succ_iterator MSchedGraphSBNode::succ_begin() { + return succ_iterator(Successors.begin()); + } + inline MSchedGraphSBNode::succ_iterator MSchedGraphSBNode::succ_end() { + return succ_iterator(Successors.end()); + } + + // ostream << operator for MSGraphNode class + inline std::ostream &operator<<(std::ostream &os, + const MSchedGraphSBNode &node) { + node.print(os); + return os; + } + + + // Provide specializations of GraphTraits to be able to use graph + // iterators on the scheduling graph! + // + template <> struct GraphTraits { + typedef MSchedGraphSBNode NodeType; + typedef MSchedGraphSBNode::succ_iterator ChildIteratorType; + + static inline ChildIteratorType child_begin(NodeType *N) { + return N->succ_begin(); + } + static inline ChildIteratorType child_end(NodeType *N) { + return N->succ_end(); + } + + static NodeType *getEntryNode(NodeType* N) { return N; } + }; + + + + //Graph class to represent dependence graph + class MSchedGraphSB { + + std::vector BBs; //Machine basic block + const TargetMachine &Target; //Target Machine + + //Nodes + std::map GraphMap; + + //Add Nodes and Edges to this graph for our BB + typedef std::pair OpIndexNodePair; + void buildNodesAndEdges(std::map &ignoreInstrs, DependenceAnalyzer &DA, std::map &machineTollvm, std::map > &liveOutsideTrace); + void addValueEdges(std::vector &NodesInMap, + MSchedGraphSBNode *node, + bool nodeIsUse, bool nodeIsDef, std::vector &phiInstrs, int diff=0); + void addMachRegEdges(std::map >& regNumtoNodeMap); + void addMemEdges(const std::vector& memInst, + DependenceAnalyzer &DA, std::map &machineTollvm); + + + bool instrCauseException(MachineOpCode opCode); + + public: + MSchedGraphSB(const MachineBasicBlock *bb, const TargetMachine &targ, + std::map &ignoreInstrs, + DependenceAnalyzer &DA, std::map &machineTollvm); + + //Copy constructor with maps to link old nodes to new nodes + MSchedGraphSB(const MSchedGraphSB &G, std::map &newNodes); + + MSchedGraphSB(std::vector &bbs, + const TargetMachine &targ, + std::map &ignoreInstrs, + DependenceAnalyzer &DA, + std::map &machineTollvm); + + //Print graph + void print(std::ostream &os) const; + + //Deconstructor! + ~MSchedGraphSB(); + + //Add or delete nodes from the Graph + void addNode(const MachineInstr* MI, MSchedGraphSBNode *node); + void deleteNode(MSchedGraphSBNode *node); + int totalDelay(); + + //iterators + typedef std::map::iterator iterator; + typedef std::map::const_iterator const_iterator; + typedef std::map::reverse_iterator reverse_iterator; + iterator find(const MachineInstr* I) { return GraphMap.find(I); } + iterator end() { return GraphMap.end(); } + iterator begin() { return GraphMap.begin(); } + unsigned size() { return GraphMap.size(); } + reverse_iterator rbegin() { return GraphMap.rbegin(); } + reverse_iterator rend() { return GraphMap.rend(); } + + //Get Target or original machine basic block + const TargetMachine* getTarget() { return &Target; } + std::vector getBBs() { return BBs; } + }; + + + + + + // Provide specializations of GraphTraits to be able to use graph + // iterators on the scheduling graph + static MSchedGraphSBNode& getSecond(std::pair &Pair) { + return *Pair.second; + } + + template <> struct GraphTraits { + typedef MSchedGraphSBNode NodeType; + typedef MSchedGraphSBNode::succ_iterator ChildIteratorType; + + static inline ChildIteratorType child_begin(NodeType *N) { + return N->succ_begin(); + } + static inline ChildIteratorType child_end(NodeType *N) { + return N->succ_end(); + } + + typedef std::pointer_to_unary_function&, MSchedGraphSBNode&> DerefFun; + + typedef mapped_iterator nodes_iterator; + static nodes_iterator nodes_begin(MSchedGraphSB *G) { + return map_iterator(((MSchedGraphSB*)G)->begin(), DerefFun(getSecond)); + } + static nodes_iterator nodes_end(MSchedGraphSB *G) { + return map_iterator(((MSchedGraphSB*)G)->end(), DerefFun(getSecond)); + } + + }; + + template <> struct GraphTraits { + typedef const MSchedGraphSBNode NodeType; + typedef MSchedGraphSBNode::succ_const_iterator ChildIteratorType; + + static inline ChildIteratorType child_begin(NodeType *N) { + return N->succ_begin(); + } + static inline ChildIteratorType child_end(NodeType *N) { + return N->succ_end(); + } + typedef std::pointer_to_unary_function&, MSchedGraphSBNode&> DerefFun; + + typedef mapped_iterator nodes_iterator; + static nodes_iterator nodes_begin(MSchedGraphSB *G) { + return map_iterator(((MSchedGraphSB*)G)->begin(), DerefFun(getSecond)); + } + static nodes_iterator nodes_end(MSchedGraphSB *G) { + return map_iterator(((MSchedGraphSB*)G)->end(), DerefFun(getSecond)); + } + }; + + template <> struct GraphTraits > { + typedef MSchedGraphSBNode NodeType; + typedef MSchedGraphSBNode::pred_iterator ChildIteratorType; + + static inline ChildIteratorType child_begin(NodeType *N) { + return N->pred_begin(); + } + static inline ChildIteratorType child_end(NodeType *N) { + return N->pred_end(); + } + typedef std::pointer_to_unary_function&, MSchedGraphSBNode&> DerefFun; + + typedef mapped_iterator nodes_iterator; + static nodes_iterator nodes_begin(MSchedGraphSB *G) { + return map_iterator(((MSchedGraphSB*)G)->begin(), DerefFun(getSecond)); + } + static nodes_iterator nodes_end(MSchedGraphSB *G) { + return map_iterator(((MSchedGraphSB*)G)->end(), DerefFun(getSecond)); + } + }; + + template <> struct GraphTraits > { + typedef const MSchedGraphSBNode NodeType; + typedef MSchedGraphSBNode::pred_const_iterator ChildIteratorType; + + static inline ChildIteratorType child_begin(NodeType *N) { + return N->pred_begin(); + } + static inline ChildIteratorType child_end(NodeType *N) { + return N->pred_end(); + } + + typedef std::pointer_to_unary_function&, MSchedGraphSBNode&> DerefFun; + + typedef mapped_iterator nodes_iterator; + static nodes_iterator nodes_begin(MSchedGraphSB *G) { + return map_iterator(((MSchedGraphSB*)G)->begin(), DerefFun(getSecond)); + } + static nodes_iterator nodes_end(MSchedGraphSB *G) { + return map_iterator(((MSchedGraphSB*)G)->end(), DerefFun(getSecond)); + } + }; + } + + #endif From tbrethou at cs.uiuc.edu Thu Jun 16 23:21:20 2005 From: tbrethou at cs.uiuc.edu (Tanya Brethour) Date: Thu, 16 Jun 2005 23:21:20 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/SparcV9/ModuloScheduling/MSchedGraphSB.cpp Message-ID: <200506170421.XAA31357@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/SparcV9/ModuloScheduling: MSchedGraphSB.cpp updated: 1.1 -> 1.2 --- Log message: Removed IIIi specific changes. This should be fixed to add floating point deps for the IIi. --- Diffs of the changes: (+4 -2) MSchedGraphSB.cpp | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) Index: llvm/lib/Target/SparcV9/ModuloScheduling/MSchedGraphSB.cpp diff -u llvm/lib/Target/SparcV9/ModuloScheduling/MSchedGraphSB.cpp:1.1 llvm/lib/Target/SparcV9/ModuloScheduling/MSchedGraphSB.cpp:1.2 --- llvm/lib/Target/SparcV9/ModuloScheduling/MSchedGraphSB.cpp:1.1 Thu Jun 16 23:15:43 2005 +++ llvm/lib/Target/SparcV9/ModuloScheduling/MSchedGraphSB.cpp Thu Jun 16 23:21:09 2005 @@ -370,8 +370,10 @@ //Check for any floating point operation const TargetSchedInfo *msi = Target.getSchedInfo(); InstrSchedClass sc = msi->getSchedClass(opCode); - if(sc == SPARC_FGA || sc == SPARC_FGM) - return true; + + //FIXME: Should check for floating point instructions! + //if(sc == SPARC_FGA || sc == SPARC_FGM) + //return true; return false; } From lattner at cs.uiuc.edu Fri Jun 17 08:20:28 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Fri, 17 Jun 2005 08:20:28 -0500 Subject: [llvm-commits] CVS: llvm/include/llvm/Support/CommandLine.h Message-ID: <200506171320.IAA09737@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/Support: CommandLine.h updated: 1.43 -> 1.44 --- Log message: silence a huge number of bogus warnings with GCC 4 on Reid's tester. --- Diffs of the changes: (+2 -1) CommandLine.h | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) Index: llvm/include/llvm/Support/CommandLine.h diff -u llvm/include/llvm/Support/CommandLine.h:1.43 llvm/include/llvm/Support/CommandLine.h:1.44 --- llvm/include/llvm/Support/CommandLine.h:1.43 Thu Apr 21 21:31:56 2005 +++ llvm/include/llvm/Support/CommandLine.h Fri Jun 17 08:20:15 2005 @@ -734,7 +734,8 @@ virtual bool handleOccurrence(unsigned pos, const char *ArgName, const std::string &Arg) { - typename ParserClass::parser_data_type Val; + typename ParserClass::parser_data_type Val = + typename ParserClass::parser_data_type(); if (Parser.parse(*this, ArgName, Arg, Val)) return true; // Parse error! setValue(Val); From lattner at cs.uiuc.edu Fri Jun 17 08:23:43 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Fri, 17 Jun 2005 08:23:43 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/X86/X86ISelPattern.cpp Message-ID: <200506171323.IAA14036@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/X86: X86ISelPattern.cpp updated: 1.139 -> 1.140 --- Log message: silence a bogus warning --- Diffs of the changes: (+1 -1) X86ISelPattern.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Target/X86/X86ISelPattern.cpp diff -u llvm/lib/Target/X86/X86ISelPattern.cpp:1.139 llvm/lib/Target/X86/X86ISelPattern.cpp:1.140 --- llvm/lib/Target/X86/X86ISelPattern.cpp:1.139 Thu May 19 00:54:33 2005 +++ llvm/lib/Target/X86/X86ISelPattern.cpp Fri Jun 17 08:23:32 2005 @@ -3862,7 +3862,7 @@ SDOperand Callee = TailCallNode->getOperand(1); bool isDirect = isa(Callee) || isa(Callee); - unsigned CalleeReg; + unsigned CalleeReg = 0; if (!isDirect) CalleeReg = SelectExpr(Callee); unsigned RegOp1 = 0; From lattner at cs.uiuc.edu Fri Jun 17 08:44:19 2005 From: lattner at cs.uiuc.edu (Chris Lattner) Date: Fri, 17 Jun 2005 08:44:19 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/PowerPC/PowerPCBranchSelector.cpp Message-ID: <200506171344.IAA14777@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/PowerPC: PowerPCBranchSelector.cpp updated: 1.9 -> 1.10 --- Log message: silence incredibly braindead GCC 4 warning --- Diffs of the changes: (+0 -2) PowerPCBranchSelector.cpp | 2 -- 1 files changed, 2 deletions(-) Index: llvm/lib/Target/PowerPC/PowerPCBranchSelector.cpp diff -u llvm/lib/Target/PowerPC/PowerPCBranchSelector.cpp:1.9 llvm/lib/Target/PowerPC/PowerPCBranchSelector.cpp:1.10 --- llvm/lib/Target/PowerPC/PowerPCBranchSelector.cpp:1.9 Sun Jun 12 18:50:33 2005 +++ llvm/lib/Target/PowerPC/PowerPCBranchSelector.cpp Fri Jun 17 08:44:07 2005 @@ -42,10 +42,8 @@ return 12; case PPC::IMPLICIT_DEF: // no asm emitted return 0; - break; default: return 4; // PowerPC instructions are all 4 bytes - break; } } From reid at x10sys.com Fri Jun 17 10:21:36 2005 From: reid at x10sys.com (Reid Spencer) Date: Fri, 17 Jun 2005 08:21:36 -0700 Subject: [llvm-commits] CVS: llvm/include/llvm/Support/CommandLine.h In-Reply-To: <200506171320.IAA09737@zion.cs.uiuc.edu> References: <200506171320.IAA09737@zion.cs.uiuc.edu> Message-ID: <1119021696.16576.75.camel@bashful.x10sys.com> On Fri, 2005-06-17 at 08:20 -0500, Chris Lattner wrote: > > silence a huge number of bogus warnings with GCC 4 on Reid's tester. > > diff -u llvm/include/llvm/Support/CommandLine.h:1.43 llvm/include/llvm/Support/CommandLine.h:1.44 > - typename ParserClass::parser_data_type Val; > + typename ParserClass::parser_data_type Val = > + typename ParserClass::parser_data_type(); I tried this a while back. I think this runs into some issues when parser_data_type isn't constructible. I've tried various initializations but there doesn't seem to be a consistent one that works with all parser_data_type types. Did all of LLVM recompile correctly with this change? Reid. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20050617/cf233671/attachment.bin From sabre at nondot.org Fri Jun 17 11:24:33 2005 From: sabre at nondot.org (Chris Lattner) Date: Fri, 17 Jun 2005 11:24:33 -0500 (CDT) Subject: [llvm-commits] CVS: llvm/include/llvm/Support/CommandLine.h In-Reply-To: <1119021696.16576.75.camel@bashful.x10sys.com> References: <200506171320.IAA09737@zion.cs.uiuc.edu> <1119021696.16576.75.camel@bashful.x10sys.com> Message-ID: On Fri, 17 Jun 2005, Reid Spencer wrote: >> silence a huge number of bogus warnings with GCC 4 on Reid's tester. >> >> diff -u llvm/include/llvm/Support/CommandLine.h:1.43 llvm/include/llvm/Support/CommandLine.h:1.44 >> - typename ParserClass::parser_data_type Val; >> + typename ParserClass::parser_data_type Val = >> + typename ParserClass::parser_data_type(); > > I tried this a while back. I think this runs into some issues when > parser_data_type isn't constructible. I've tried various initializations > but there doesn't seem to be a consistent one that works with all > parser_data_type types. Did all of LLVM recompile correctly with this > change? Yes, it does with gcc 3.4 -Chris -- http://nondot.org/sabre/ http://llvm.cs.uiuc.edu/ From alenhar2 at cs.uiuc.edu Fri Jun 17 11:52:23 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Fri, 17 Jun 2005 11:52:23 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/SparcV8/SparcV8ISelPattern.cpp Message-ID: <200506171652.LAA16088@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/SparcV8: SparcV8ISelPattern.cpp added (r1.1) --- Log message: A start at a Sparc V8 Pattern ISel. Anyone want to implement the calling convention? ;) --- Diffs of the changes: (+479 -0) SparcV8ISelPattern.cpp | 479 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 479 insertions(+) Index: llvm/lib/Target/SparcV8/SparcV8ISelPattern.cpp diff -c /dev/null llvm/lib/Target/SparcV8/SparcV8ISelPattern.cpp:1.1 *** /dev/null Fri Jun 17 11:52:22 2005 --- llvm/lib/Target/SparcV8/SparcV8ISelPattern.cpp Fri Jun 17 11:52:12 2005 *************** *** 0 **** --- 1,479 ---- + #if 0 + //===- SparcV8ISelPattern.cpp - A pattern matching isel for SparcV8 -------===// + // + // The LLVM Compiler Infrastructure + // + // This file was developed by the LLVM research group and is distributed under + // the University of Illinois Open Source License. See LICENSE.TXT for details. + // + //===----------------------------------------------------------------------===// + // + // This file defines a pattern matching instruction selector for SparcV8. + // + //===----------------------------------------------------------------------===// + + //Please note that this file is a work in progress, and not a high + //priority for anyone. + + #include "SparcV8.h" + #include "SparcV8RegisterInfo.h" + #include "llvm/Constants.h" // FIXME: REMOVE + #include "llvm/Function.h" + #include "llvm/CodeGen/MachineInstrBuilder.h" + #include "llvm/CodeGen/MachineConstantPool.h" // FIXME: REMOVE + #include "llvm/CodeGen/MachineFunction.h" + #include "llvm/CodeGen/MachineFrameInfo.h" + #include "llvm/CodeGen/SelectionDAG.h" + #include "llvm/CodeGen/SelectionDAGISel.h" + #include "llvm/CodeGen/SSARegMap.h" + #include "llvm/Target/TargetData.h" + #include "llvm/Target/TargetLowering.h" + #include "llvm/Support/MathExtras.h" + #include "llvm/ADT/Statistic.h" + #include "llvm/Support/Debug.h" + #include "llvm/Support/CommandLine.h" + #include + #include + using namespace llvm; + + //===----------------------------------------------------------------------===// + // V8TargetLowering - SparcV8 Implementation of the TargetLowering interface + namespace { + class V8TargetLowering : public TargetLowering { + int VarArgsFrameIndex; // FrameIndex for start of varargs area. + public: + V8TargetLowering(TargetMachine &TM) : TargetLowering(TM) { + // Set up the TargetLowering object. + //I am having problems with shr n ubyte 1 + setShiftAmountType(MVT::i32); + setSetCCResultType(MVT::i32); + setSetCCResultContents(ZeroOrOneSetCCResult); + + //FIXME: get these right + addRegisterClass(MVT::i64, V8::GPRCRegisterClass); + addRegisterClass(MVT::f64, V8::FPRCRegisterClass); + addRegisterClass(MVT::f32, V8::FPRCRegisterClass); + + setOperationAction(ISD::BRCONDTWOWAY, MVT::Other, Expand); + setOperationAction(ISD::EXTLOAD, MVT::i1, Promote); + setOperationAction(ISD::EXTLOAD, MVT::f32, Promote); + + setOperationAction(ISD::ZEXTLOAD, MVT::i1, Expand); + setOperationAction(ISD::SEXTLOAD, MVT::i1, Expand); + + setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand); + setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8, Expand); + setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16, Expand); + setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i32, Expand); + + setOperationAction(ISD::UREM, MVT::i32, Expand); + setOperationAction(ISD::SREM, MVT::i32, Expand); + + setOperationAction(ISD::CTPOP, MVT::i32, Expand); + setOperationAction(ISD::CTTZ, MVT::i32, Expand); + setOperationAction(ISD::CTLZ, MVT::i32, Expand); + + setOperationAction(ISD::MEMMOVE, MVT::Other, Expand); + setOperationAction(ISD::MEMSET, MVT::Other, Expand); + setOperationAction(ISD::MEMCPY, MVT::Other, Expand); + + // We don't support sin/cos/sqrt + setOperationAction(ISD::FSIN , MVT::f64, Expand); + setOperationAction(ISD::FCOS , MVT::f64, Expand); + setOperationAction(ISD::FSQRT, MVT::f64, Expand); + setOperationAction(ISD::FSIN , MVT::f32, Expand); + setOperationAction(ISD::FCOS , MVT::f32, Expand); + setOperationAction(ISD::FSQRT, MVT::f32, Expand); + + computeRegisterProperties(); + + addLegalFPImmediate(+0.0); //F31 + addLegalFPImmediate(-0.0); //-F31 + } + + /// LowerArguments - This hook must be implemented to indicate how we should + /// lower the arguments for the specified function, into the specified DAG. + virtual std::vector + LowerArguments(Function &F, SelectionDAG &DAG); + + /// LowerCallTo - This hook lowers an abstract call to a function into an + /// actual call. + virtual std::pair + LowerCallTo(SDOperand Chain, const Type *RetTy, bool isVarArg, unsigned CC, + bool isTailCall, SDOperand Callee, ArgListTy &Args, + SelectionDAG &DAG); + }; + } + + /// AddLiveIn - This helper function adds the specified physical register to the + /// MachineFunction as a live in value. It also creates a corresponding virtual + /// register for it. + static unsigned AddLiveIn(MachineFunction &MF, unsigned PReg, + TargetRegisterClass *RC) { + assert(RC->contains(PReg) && "Not the correct regclass!"); + unsigned VReg = MF.getSSARegMap()->createVirtualRegister(RC); + MF.addLiveIn(PReg, VReg); + return VReg; + } + + std::vector + V8TargetLowering::LowerArguments(Function &F, SelectionDAG &DAG) + { + //FIXME + std::vector ArgValues; + + MachineFunction &MF = DAG.getMachineFunction(); + MachineFrameInfo*MFI = MF.getFrameInfo(); + + MachineBasicBlock& BB = MF.front(); + + //return the arguments + return ArgValues; + } + + std::pair + V8TargetLowering::LowerCallTo(SDOperand Chain, + const Type *RetTy, bool isVarArg, + unsigned CallingConv, bool isTailCall, + SDOperand Callee, ArgListTy &Args, + SelectionDAG &DAG) { + //FIXME + return std::make_pair(Chain, Chain); + } + + namespace { + + //===--------------------------------------------------------------------===// + /// ISel - V8 specific code to select V8 machine instructions for + /// SelectionDAG operations. + //===--------------------------------------------------------------------===// + class ISel : public SelectionDAGISel { + + /// V8Lowering - This object fully describes how to lower LLVM code to an + /// V8-specific SelectionDAG. + V8TargetLowering V8Lowering; + + SelectionDAG *ISelDAG; // Hack to support us having a dag->dag transform + // for sdiv and udiv until it is put into the future + // dag combiner. + + /// ExprMap - As shared expressions are codegen'd, we keep track of which + /// vreg the value is produced in, so we only emit one copy of each compiled + /// tree. + static const unsigned notIn = (unsigned)(-1); + std::map ExprMap; + + public: + ISel(TargetMachine &TM) : SelectionDAGISel(V8Lowering), V8Lowering(TM) + {} + + /// InstructionSelectBasicBlock - This callback is invoked by + /// SelectionDAGISel when it has created a SelectionDAG for us to codegen. + virtual void InstructionSelectBasicBlock(SelectionDAG &DAG) { + DEBUG(BB->dump()); + + // Codegen the basic block. + ISelDAG = &DAG; + max_depth = DAG.getRoot().getNodeDepth(); + Select(DAG.getRoot()); + + // Clear state used for selection. + ExprMap.clear(); + } + + virtual void EmitFunctionEntryCode(Function &Fn, MachineFunction &MF); + + unsigned SelectExpr(SDOperand N); + void Select(SDOperand N); + + }; + } + + void ISel::EmitFunctionEntryCode(Function &Fn, MachineFunction &MF) { + // If this function has live-in values, emit the copies from pregs to vregs at + // the top of the function, before anything else. + MachineBasicBlock *BB = MF.begin(); + if (MF.livein_begin() != MF.livein_end()) { + SSARegMap *RegMap = MF.getSSARegMap(); + for (MachineFunction::livein_iterator LI = MF.livein_begin(), + E = MF.livein_end(); LI != E; ++LI) { + const TargetRegisterClass *RC = RegMap->getRegClass(LI->second); + if (RC == V8::GPRCRegisterClass) { + BuildMI(BB, V8::ORrr, 2, LI->second).addReg(LI->first).addReg(V8::G0); + } else if (RC == V8::FPRCRegisterClass) { + BuildMI(BB, V8::FMOVSrr, 2, LI->second).addReg(LI->first); + } else { + assert(0 && "Unknown regclass!"); + } + } + } + } + + //These describe LDAx + static const int IMM_LOW = -32768; + static const int IMM_HIGH = 32767; + static const int IMM_MULT = 65536; + + static long getUpper16(long l) + { + long y = l / IMM_MULT; + if (l % IMM_MULT > IMM_HIGH) + ++y; + return y; + } + + static long getLower16(long l) + { + long h = getUpper16(l); + return l - h * IMM_MULT; + } + + unsigned ISel::SelectExpr(SDOperand N) { + unsigned Result; + unsigned Tmp1, Tmp2 = 0, Tmp3; + unsigned Opc = 0; + unsigned opcode = N.getOpcode(); + + SDNode *Node = N.Val; + MVT::ValueType DestType = N.getValueType(); + + unsigned &Reg = ExprMap[N]; + if (Reg) return Reg; + + if (N.getOpcode() != ISD::CALL && N.getOpcode() != ISD::TAILCALL) + Reg = Result = (N.getValueType() != MVT::Other) ? + MakeReg(N.getValueType()) : notIn; + else { + // If this is a call instruction, make sure to prepare ALL of the result + // values as well as the chain. + if (Node->getNumValues() == 1) + Reg = Result = notIn; // Void call, just a chain. + else { + Result = MakeReg(Node->getValueType(0)); + ExprMap[N.getValue(0)] = Result; + for (unsigned i = 1, e = N.Val->getNumValues()-1; i != e; ++i) + ExprMap[N.getValue(i)] = MakeReg(Node->getValueType(i)); + ExprMap[SDOperand(Node, Node->getNumValues()-1)] = notIn; + } + } + + switch (opcode) { + default: + Node->dump(); + assert(0 && "Node not handled!\n"); + + case ISD::EXTLOAD: + case ISD::ZEXTLOAD: + case ISD::SEXTLOAD: + case ISD::LOAD: + { + // Make sure we generate both values. + if (Result != notIn) + ExprMap[N.getValue(1)] = notIn; // Generate the token + else + Result = ExprMap[N.getValue(0)] = MakeReg(N.getValue(0).getValueType()); + + SDOperand Chain = N.getOperand(0); + SDOperand Address = N.getOperand(1); + Select(Chain); + unsigned Adr = SelectExpr(Address); + switch(cast(Node)->getExtraValueType()) { + case MVT::i32: Opc = V8::LD; + case MVT::i16: Opc = opcode == ISD::ZEXTLOAD ? V8::LDUH : V8::LDSH; break; + case MVT::i8: Opc = opcode == ISD::ZEXTLOAD ? V8::LDUB : V8::LDSB; break; + case MVT::f64: Opc = V8::LDFSRrr; + case MVT::f32: Opc = V8::LDDFrr; + default: + Node->dump(); + assert(0 && "Bad type!"); + break; + } + BuildMI(BB, Opc, 1, Result).addReg(Adr); + return Result; + } + + case ISD::TAILCALL: + case ISD::CALL: + { + //FIXME: + abort(); + return Result; + } + + case ISD::CopyFromReg: + { + // Make sure we generate both values. + if (Result != notIn) + ExprMap[N.getValue(1)] = notIn; // Generate the token + else + Result = ExprMap[N.getValue(0)] = MakeReg(N.getValue(0).getValueType()); + + SDOperand Chain = N.getOperand(0); + Select(Chain); + unsigned r = dyn_cast(Node)->getReg(); + + BuildMI(BB, V8::ORrr, 2, Result).addReg(r).addReg(V8::G0); + return Result; + } + + //Most of the plain arithmetic and logic share the same form, and the same + //constant immediate test + case ISD::XOR: + case ISD::AND: + case ISD::OR: + case ISD::SHL: + case ISD::SRL: + case ISD::SRA: + case ISD::ADD: + case ISD::SUB: + case ISD::SDIV: + case ISD::UDIV: + case ISD::SMUL: + case ISD::UMUL: + switch(opcode) { + case ISD::XOR: Opc = V8::XORrr; break; + case ISD::AND: Opc = V8::ANDrr; break; + case ISD::OR: Opc = V8::ORrr; break; + case ISD::SHL: Opc = V8::SLLrr; break; + case ISD::SRL: Opc = V8::SRLrr; break; + case ISD::SRA: Opc = V8::SRArr; break; + case ISD::ADD: Opc = V8::ADDrr; break; + case ISD::SUB: Opc = V8::SUBrr; break; + case ISD::SDIV: Opc = V8::SDIVrr; break; + case ISD::UDIV: Opc = V8::UDIVrr; break; + case ISD::SMUL: Opc = V8::SMULrr; break; + case ISD::UMUL: Opc = V8::UMULrr; break; + } + Tmp1 = SelectExpr(N.getOperand(0)); + Tmp2 = SelectExpr(N.getOperand(1)); + BuildMI(BB, Opc, 2, Result).addReg(Tmp1).addReg(Tmp2); + return Result; + + } + return 0; + } + + void ISel::Select(SDOperand N) { + unsigned Tmp1, Tmp2, Opc; + unsigned opcode = N.getOpcode(); + + if (!ExprMap.insert(std::make_pair(N, notIn)).second) + return; // Already selected. + + SDNode *Node = N.Val; + + switch (opcode) { + + default: + Node->dump(); std::cerr << "\n"; + assert(0 && "Node not handled yet!"); + + case ISD::BRCOND: { + //FIXME + abort(); + return; + } + + case ISD::BR: { + MachineBasicBlock *Dest = + cast(N.getOperand(1))->getBasicBlock(); + + Select(N.getOperand(0)); + BuildMI(BB, V8::BA, 1).addMBB(Dest); + return; + } + + case ISD::ImplicitDef: + Select(N.getOperand(0)); + BuildMI(BB, V8::IMPLICIT_DEF, 0, cast(N)->getReg()); + return; + + case ISD::EntryToken: return; // Noop + + case ISD::TokenFactor: + for (unsigned i = 0, e = Node->getNumOperands(); i != e; ++i) + Select(Node->getOperand(i)); + return; + + case ISD::CopyToReg: + Select(N.getOperand(0)); + Tmp1 = SelectExpr(N.getOperand(1)); + Tmp2 = cast(N)->getReg(); + + if (Tmp1 != Tmp2) { + if (N.getOperand(1).getValueType() == MVT::f64 || + N.getOperand(1).getValueType() == MVT::f32) + BuildMI(BB, V8::FMOVS, 2, Tmp2).addReg(Tmp1); + else + BuildMI(BB, V8::ORrr, 2, Tmp2).addReg(Tmp1).addReg(V8::G0); + } + return; + + case ISD::RET: + //FIXME: + abort(); + return; + + case ISD::TRUNCSTORE: + case ISD::STORE: + { + SDOperand Chain = N.getOperand(0); + SDOperand Value = N.getOperand(1); + SDOperand Address = N.getOperand(2); + Select(Chain); + + Tmp1 = SelectExpr(Value); + Tmp2 = SelectExpr(Address); + + unsigned VT = opcode == ISD::STORE ? + Value.getValueType() : cast(Node)->getExtraValueType(); + switch(VT) { + default: assert(0 && "unknown Type in store"); + case MVT::f64: Opc = V8::STDFrr; break; + case MVT::f32: Opc = V8::STFrr; break; + case MVT::i1: //FIXME: DAG does not promote this load + case MVT::i8: Opc = V8::STBrr; break; + case MVT::i16: Opc = V8::STHrr; break; + case MVT::i32: Opc = V8::STLrr; break; + case MVT::i64: Opc = V8::STDrr; break; + } + + BuildMI(BB,Opc,2).addReg(Tmp1).addReg(Tmp2); + return; + } + + case ISD::EXTLOAD: + case ISD::SEXTLOAD: + case ISD::ZEXTLOAD: + case ISD::LOAD: + case ISD::CopyFromReg: + case ISD::TAILCALL: + case ISD::CALL: + case ISD::DYNAMIC_STACKALLOC: + ExprMap.erase(N); + SelectExpr(N); + return; + + case ISD::CALLSEQ_START: + case ISD::CALLSEQ_END: + Select(N.getOperand(0)); + Tmp1 = cast(N.getOperand(1))->getValue(); + + Opc = N.getOpcode() == ISD::CALLSEQ_START ? V8::ADJUSTCALLSTACKDOWN : + V8::ADJUSTCALLSTACKUP; + BuildMI(BB, Opc, 1).addImm(Tmp1); + return; + } + assert(0 && "Should not be reached!"); + } + + + /// createV8PatternInstructionSelector - This pass converts an LLVM function + /// into a machine code representation using pattern matching and a machine + /// description file. + /// + FunctionPass *llvm::createV8PatternInstructionSelector(TargetMachine &TM) { + return new ISel(TM); + } + + #endif From reid at x10sys.com Fri Jun 17 12:31:14 2005 From: reid at x10sys.com (Reid Spencer) Date: Fri, 17 Jun 2005 10:31:14 -0700 Subject: [llvm-commits] CVS: llvm/include/llvm/Support/CommandLine.h In-Reply-To: References: <200506171320.IAA09737@zion.cs.uiuc.edu> <1119021696.16576.75.camel@bashful.x10sys.com> Message-ID: <1119029474.16576.77.camel@bashful.x10sys.com> On Fri, 2005-06-17 at 11:24 -0500, Chris Lattner wrote: > On Fri, 17 Jun 2005, Reid Spencer wrote: > >> silence a huge number of bogus warnings with GCC 4 on Reid's tester. > >> > >> diff -u llvm/include/llvm/Support/CommandLine.h:1.43 llvm/include/llvm/Support/CommandLine.h:1.44 > >> - typename ParserClass::parser_data_type Val; > >> + typename ParserClass::parser_data_type Val = > >> + typename ParserClass::parser_data_type(); > > > > I tried this a while back. I think this runs into some issues when > > parser_data_type isn't constructible. I've tried various initializations > > but there doesn't seem to be a consistent one that works with all > > parser_data_type types. Did all of LLVM recompile correctly with this > > change? > > Yes, it does with gcc 3.4 Okay, seems to work with 4.0.0 too. Not sure what I tried to do previously but a similar patch didn't (previously) work with 4.0.0. Glad this annoying warning is out of the way. Thanks for taking care of it! Reid -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20050617/2d83ad77/attachment.bin From reid at x10sys.com Sat Jun 18 11:53:38 2005 From: reid at x10sys.com (Reid Spencer) Date: Sat, 18 Jun 2005 11:53:38 -0500 Subject: [llvm-commits] CVS: llvm/include/llvm/Support/CommandLine.h Message-ID: <200506181653.LAA24941@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/Support: CommandLine.h updated: 1.44 -> 1.45 --- Log message: Make sure a variable is initialized before use to clean up a warning from GCC 4.0.0 in release build. --- Diffs of the changes: (+2 -1) CommandLine.h | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) Index: llvm/include/llvm/Support/CommandLine.h diff -u llvm/include/llvm/Support/CommandLine.h:1.44 llvm/include/llvm/Support/CommandLine.h:1.45 --- llvm/include/llvm/Support/CommandLine.h:1.44 Fri Jun 17 08:20:15 2005 +++ llvm/include/llvm/Support/CommandLine.h Sat Jun 18 11:53:27 2005 @@ -894,7 +894,8 @@ virtual bool handleOccurrence(unsigned pos, const char *ArgName, const std::string &Arg) { - typename ParserClass::parser_data_type Val; + typename ParserClass::parser_data_type Val = + typename ParserClass::parser_data_type(); if (Parser.parse(*this, ArgName, Arg, Val)) return true; // Parse Error! addValue(Val); From reid at x10sys.com Sat Jun 18 12:37:46 2005 From: reid at x10sys.com (Reid Spencer) Date: Sat, 18 Jun 2005 12:37:46 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/PowerPC/PowerPCBranchSelector.cpp Message-ID: <200506181737.MAA25117@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/PowerPC: PowerPCBranchSelector.cpp updated: 1.10 -> 1.11 --- Log message: Clean up some uninitialized variables and missing return statements that GCC 4.0.0 compiler (sometimes incorrectly) warns about under release build. --- Diffs of the changes: (+2 -1) PowerPCBranchSelector.cpp | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) Index: llvm/lib/Target/PowerPC/PowerPCBranchSelector.cpp diff -u llvm/lib/Target/PowerPC/PowerPCBranchSelector.cpp:1.10 llvm/lib/Target/PowerPC/PowerPCBranchSelector.cpp:1.11 --- llvm/lib/Target/PowerPC/PowerPCBranchSelector.cpp:1.10 Fri Jun 17 08:44:07 2005 +++ llvm/lib/Target/PowerPC/PowerPCBranchSelector.cpp Sat Jun 18 12:37:34 2005 @@ -43,8 +43,9 @@ case PPC::IMPLICIT_DEF: // no asm emitted return 0; default: - return 4; // PowerPC instructions are all 4 bytes + break; } + return 4; // PowerPC instructions are all 4 bytes } virtual bool runOnMachineFunction(MachineFunction &Fn) { From reid at x10sys.com Sat Jun 18 12:37:46 2005 From: reid at x10sys.com (Reid Spencer) Date: Sat, 18 Jun 2005 12:37:46 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/SparcV9/SparcV9BurgISel.cpp SparcV9CodeEmitter.cpp Message-ID: <200506181737.MAA25123@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/SparcV9: SparcV9BurgISel.cpp updated: 1.18 -> 1.19 SparcV9CodeEmitter.cpp updated: 1.80 -> 1.81 --- Log message: Clean up some uninitialized variables and missing return statements that GCC 4.0.0 compiler (sometimes incorrectly) warns about under release build. --- Diffs of the changes: (+3 -2) SparcV9BurgISel.cpp | 3 ++- SparcV9CodeEmitter.cpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) Index: llvm/lib/Target/SparcV9/SparcV9BurgISel.cpp diff -u llvm/lib/Target/SparcV9/SparcV9BurgISel.cpp:1.18 llvm/lib/Target/SparcV9/SparcV9BurgISel.cpp:1.19 --- llvm/lib/Target/SparcV9/SparcV9BurgISel.cpp:1.18 Wed May 11 16:45:03 2005 +++ llvm/lib/Target/SparcV9/SparcV9BurgISel.cpp Sat Jun 18 12:37:34 2005 @@ -2915,8 +2915,9 @@ return true; break; default: - return false; break; + break; } + return false; } /// GetInstructionsByRule - Choose machine instructions for the Index: llvm/lib/Target/SparcV9/SparcV9CodeEmitter.cpp diff -u llvm/lib/Target/SparcV9/SparcV9CodeEmitter.cpp:1.80 llvm/lib/Target/SparcV9/SparcV9CodeEmitter.cpp:1.81 --- llvm/lib/Target/SparcV9/SparcV9CodeEmitter.cpp:1.80 Thu Apr 21 18:25:42 2005 +++ llvm/lib/Target/SparcV9/SparcV9CodeEmitter.cpp Sat Jun 18 12:37:34 2005 @@ -56,7 +56,7 @@ SparcV9CodeEmitter::getRealRegNum(unsigned fakeReg, MachineInstr &MI) { const SparcV9RegInfo &RI = *TM.getRegInfo(); - unsigned regClass, regType = RI.getRegType(fakeReg); + unsigned regClass = 0, regType = RI.getRegType(fakeReg); // At least map fakeReg into its class fakeReg = RI.getClassRegNum(fakeReg, regClass); From reid at x10sys.com Sat Jun 18 12:37:46 2005 From: reid at x10sys.com (Reid Spencer) Date: Sat, 18 Jun 2005 12:37:46 -0500 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/InstructionCombining.cpp Message-ID: <200506181737.MAA25127@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: InstructionCombining.cpp updated: 1.355 -> 1.356 --- Log message: Clean up some uninitialized variables and missing return statements that GCC 4.0.0 compiler (sometimes incorrectly) warns about under release build. --- Diffs of the changes: (+3 -3) InstructionCombining.cpp | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.355 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.356 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.355 Thu Jun 16 22:59:17 2005 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Sat Jun 18 12:37:34 2005 @@ -757,7 +757,7 @@ return BinaryOperator::createNot(Op1); // C - ~X == X + (1+C) - Value *X; + Value *X = 0; if (match(Op1, m_Not(m_Value(X)))) return BinaryOperator::createAdd(X, ConstantExpr::getAdd(C, ConstantInt::get(I.getType(), 1))); @@ -852,7 +852,7 @@ ConstantExpr::getNeg(DivRHS)); // X - X*C --> X * (1-C) - ConstantInt *C2; + ConstantInt *C2 = 0; if (dyn_castFoldableMul(Op1I, C2) == Op0) { Constant *CP1 = ConstantExpr::getSub(ConstantInt::get(I.getType(), 1), C2); @@ -5129,7 +5129,7 @@ Instruction *InstCombiner::visitBranchInst(BranchInst &BI) { // Change br (not X), label True, label False to: br X, label False, True - Value *X; + Value *X = 0; BasicBlock *TrueDest; BasicBlock *FalseDest; if (match(&BI, m_Br(m_Not(m_Value(X)), TrueDest, FalseDest)) && From reid at x10sys.com Sat Jun 18 12:46:40 2005 From: reid at x10sys.com (Reid Spencer) Date: Sat, 18 Jun 2005 12:46:40 -0500 Subject: [llvm-commits] CVS: llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp Message-ID: <200506181746.MAA25612@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/IPO: SimplifyLibCalls.cpp updated: 1.42 -> 1.43 --- Log message: Fix a problem with the strcmp optimization checking the wrong string and not casting to the correct type. --- Diffs of the changes: (+16 -13) SimplifyLibCalls.cpp | 29 ++++++++++++++++------------- 1 files changed, 16 insertions(+), 13 deletions(-) Index: llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp diff -u llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp:1.42 llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp:1.43 --- llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp:1.42 Fri May 20 20:27:04 2005 +++ llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp Sat Jun 18 12:46:28 2005 @@ -367,8 +367,9 @@ // auto registers it into the "optlist" global above. namespace { -// Forward declare a utility function. +// Forward declare utility functions. bool getConstantStringLength(Value* V, uint64_t& len, ConstantArray** A = 0 ); +Value *CastToCStr(Value *V, Instruction &IP); /// This LibCallOptimization will find instances of a call to "exit" that occurs /// within the "main" function and change it to a simple "ret" instruction with @@ -663,7 +664,8 @@ if (len_1 == 0) { // strcmp("",x) -> *x - LoadInst* load = new LoadInst(s1,ci->getName()+".load",ci); + LoadInst* load = + new LoadInst(CastToCStr(s2,*ci), ci->getName()+".load",ci); CastInst* cast = new CastInst(load,Type::IntTy,ci->getName()+".int",ci); ci->replaceAllUsesWith(cast); @@ -681,7 +683,8 @@ if (len_2 == 0) { // strcmp(x,"") -> *x - LoadInst* load = new LoadInst(s2,ci->getName()+".val",ci); + LoadInst* load = + new LoadInst(CastToCStr(s1,*ci),ci->getName()+".val",ci); CastInst* cast = new CastInst(load,Type::IntTy,ci->getName()+".int",ci); ci->replaceAllUsesWith(cast); @@ -1242,16 +1245,6 @@ } } PowOptimizer; -/// CastToCStr - Return V if it is an sbyte*, otherwise cast it to sbyte*, -/// inserting the cast before IP, and return the cast. -/// @brief Cast a value to a "C" string. -static Value *CastToCStr(Value *V, Instruction &IP) { - const Type *SBPTy = PointerType::get(Type::SByteTy); - if (V->getType() != SBPTy) - return new CastInst(V, SBPTy, V->getName(), &IP); - return V; -} - /// This LibCallOptimization will simplify calls to the "fprintf" library /// function. It looks for cases where the result of fprintf is not used and the /// operation can be reduced to something simpler. @@ -1889,6 +1882,16 @@ return true; // success! } +/// CastToCStr - Return V if it is an sbyte*, otherwise cast it to sbyte*, +/// inserting the cast before IP, and return the cast. +/// @brief Cast a value to a "C" string. +Value *CastToCStr(Value *V, Instruction &IP) { + const Type *SBPTy = PointerType::get(Type::SByteTy); + if (V->getType() != SBPTy) + return new CastInst(V, SBPTy, V->getName(), &IP); + return V; +} + // TODO: // Additional cases that we need to add to this file: // From alenhar2 at cs.uiuc.edu Sat Jun 18 13:28:29 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:28:29 -0500 Subject: [llvm-commits] CVS: llvm/docs/LangRef.html Message-ID: <200506181828.NAA25788@zion.cs.uiuc.edu> Changes in directory llvm/docs: LangRef.html updated: 1.108 -> 1.109 --- Log message: OK, after checking the backwards compatibility code on X86 and the new code path on alpha, now has come the time for new vararg support. So, with out further ado, I revert behavior back a couple of years! Well, ok, I lied. A few more notes. First, the Simple ISels cannot be expected to work any longer, but they should still compile Second, there are likely some bugs to track down once the nightly testers start with this. Third, the initial patch doesn't include sparcv9, but I'll do that today. Forth, subsequent patches won't bother being long winded. --- Diffs of the changes: (+50 -93) LangRef.html | 143 ++++++++++++++++++++--------------------------------------- 1 files changed, 50 insertions(+), 93 deletions(-) Index: llvm/docs/LangRef.html diff -u llvm/docs/LangRef.html:1.108 llvm/docs/LangRef.html:1.109 --- llvm/docs/LangRef.html:1.108 Mon May 16 11:17:45 2005 +++ llvm/docs/LangRef.html Sat Jun 18 13:28:17 2005 @@ -101,7 +101,6 @@
    • 'cast .. to' Instruction
    • 'select' Instruction
    • 'call' Instruction
    • -
    • 'vanext' Instruction
    • 'vaarg' Instruction
    • @@ -2211,58 +2210,6 @@ - -
      - -
      Syntax:
      - -
      -  <resultarglist> = vanext <va_list> <arglist>, <argty>
      -
      - -
      Overview:
      - -

      The 'vanext' instruction is used to access arguments passed -through the "variable argument" area of a function call. It is used to -implement the va_arg macro in C.

      - -
      Arguments:
      - -

      This instruction takes a va_list value and the type of the -argument. It returns another va_list. The actual type of -va_list may be defined differently for different targets. Most targets -use a va_list type of sbyte* or some other pointer type.

      - -
      Semantics:
      - -

      The 'vanext' instruction advances the specified va_list -past an argument of the specified type. In conjunction with the vaarg instruction, it is used to implement -the va_arg macro available in C. For more information, see -the variable argument handling Intrinsic -Functions.

      - -

      It is legal for this instruction to be called in a function which -does not take a variable number of arguments, for example, the vfprintf -function.

      - -

      vanext is an LLVM instruction instead of an intrinsic function because it takes a type as an -argument. The type refers to the current argument in the va_list; it -tells the compiler how far on the stack it needs to advance to find the next -argument.

      - -
      Example:
      - -

      See the variable argument processing -section.

      - -
      - - - @@ -2271,34 +2218,35 @@
      Syntax:
      -  <resultval> = vaarg <va_list> <arglist>, <argty>
      +  <resultval> = va_arg <va_list*> <arglist>, <argty>
       
      Overview:
      -

      The 'vaarg' instruction is used to access arguments passed through +

      The 'va_arg' instruction is used to access arguments passed through the "variable argument" area of a function call. It is used to implement the va_arg macro in C.

      Arguments:
      -

      This instruction takes a va_list value and the type of the -argument. It returns a value of the specified argument type. Again, the actual -type of va_list is target specific.

      +

      This instruction takes a va_list* value and the type of +the argument. It returns a value of the specified argument type and +increments the va_list to poin to the next argument. Again, the +actual type of va_list is target specific.

      Semantics:
      -

      The 'vaarg' instruction loads an argument of the specified type from -the specified va_list. In conjunction with the vanext instruction, it is used to implement the -va_arg macro available in C. For more information, see the variable -argument handling Intrinsic Functions.

      +

      The 'va_arg' instruction loads an argument of the specified +type from the specified va_list and causes the +va_list to point to the next argument. For more information, +see the variable argument handling Intrinsic +Functions.

      It is legal for this instruction to be called in a function which does not take a variable number of arguments, for example, the vfprintf function.

      -

      vaarg is an LLVM instruction instead of an va_arg is an LLVM instruction instead of an intrinsic function because it takes a type as an argument.

      @@ -2361,20 +2309,20 @@
       int %test(int %X, ...) {
         ; Initialize variable argument processing
      -  %ap = call sbyte* %llvm.va_start()
      +  %ap = alloca sbyte*
      +  call void %llvm.va_start(sbyte** %ap)
       
         ; Read a single integer argument
      -  %tmp = vaarg sbyte* %ap, int
      -
      -  ; Advance to the next argument
      -  %ap2 = vanext sbyte* %ap, int
      +  %tmp = va_arg sbyte** %ap, int
       
         ; Demonstrate usage of llvm.va_copy and llvm.va_end
      -  %aq = call sbyte* %llvm.va_copy(sbyte* %ap2)
      -  call void %llvm.va_end(sbyte* %aq)
      +  %aq = alloca sbyte*
      +  %apv = load sbyte** %ap
      +  call void %llvm.va_copy(sbyte** %aq, sbyte* %apv)
      +  call void %llvm.va_end(sbyte** %aq)
       
         ; Stop processing of arguments.
      -  call void %llvm.va_end(sbyte* %ap2)
      +  call void %llvm.va_end(sbyte** %ap)
         ret int %tmp
       }
       
      @@ -2388,19 +2336,25 @@
      Syntax:
      -
        declare <va_list> %llvm.va_start()
      +
        declare void %llvm.va_start(<va_list>* <arglist>)
      Overview:
      -

      The 'llvm.va_start' intrinsic returns a new <arglist> -for subsequent use by the variable argument intrinsics.

      +

      The 'llvm.va_start' intrinsic initializes +*<arglist> for subsequent use by va_arg.

      + +
      Arguments:
      + +

      The argument is a pointer to a va_list element to initialize.

      +
      Semantics:
      -

      The 'llvm.va_start' intrinsic works just like the va_start -macro available in C. In a target-dependent way, it initializes and -returns a va_list element, so that the next vaarg -will produce the first variable argument passed to the function. Unlike -the C va_start macro, this intrinsic does not need to know the -last argument of the function; the compiler can figure that out.

      -

      Note that this intrinsic function is only legal to be called from -within the body of a variable argument function.

      + +

      The 'llvm.va_start' intrinsic works just like the va_start +macro available in C. In a target-dependent way, it initializes the +va_list element the argument points to, so that the next call to +va_arg will produce the first variable argument passed to the function. +Unlike the C va_start macro, this intrinsic does not need to know the +last argument of the function, the compiler can figure that out.

      +
      @@ -2410,7 +2364,7 @@
      Syntax:
      -
        declare void %llvm.va_end(<va_list> <arglist>)
      +
        declare void %llvm.va_end(<va_list*> <arglist>)
      Overview:

      The 'llvm.va_end' intrinsic destroys <arglist> which has been initialized previously with llvm.va_start @@ -2435,24 +2389,27 @@

      Syntax:
      -  declare <va_list> %llvm.va_copy(<va_list> <destarglist>)
      +  declare void %llvm.va_copy(<va_list>* <destarglist>,
      +                                          <va_list> <srcarglist>)
       
      Overview:
      -

      The 'llvm.va_copy' intrinsic copies the current argument position -from the source argument list to the destination argument list.

      +

      The 'llvm.va_copy' intrinsic copies the current argument position from +the source argument list to the destination argument list.

      Arguments:
      -

      The argument is the va_list to copy.

      +

      The first argument is a pointer to a va_list element to initialize. +The second argument is a va_list element to copy from.

      +
      Semantics:
      -

      The 'llvm.va_copy' intrinsic works just like the va_copy -macro available in C. In a target-dependent way, it copies the source -va_list element into the returned list. This intrinsic is necessary -because the llvm.va_start intrinsic may be +

      The 'llvm.va_copy' intrinsic works just like the va_copy macro +available in C. In a target-dependent way, it copies the source +va_list element into the destination list. This intrinsic is necessary +because the llvm.va_begin intrinsic may be arbitrarily complex and require memory allocation, for example.

      @@ -3305,7 +3262,7 @@ Chris Lattner
      The LLVM Compiler Infrastructure
      - Last modified: $Date: 2005/05/16 16:17:45 $ + Last modified: $Date: 2005/06/18 18:28:17 $ From alenhar2 at cs.uiuc.edu Sat Jun 18 13:30:49 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:30:49 -0500 Subject: [llvm-commits] CVS: llvm/test/Feature/varargs_new.ll Message-ID: <200506181830.NAA25879@zion.cs.uiuc.edu> Changes in directory llvm/test/Feature: varargs_new.ll added (r1.1) --- Log message: new vararg test --- Diffs of the changes: (+33 -0) varargs_new.ll | 33 +++++++++++++++++++++++++++++++++ 1 files changed, 33 insertions(+) Index: llvm/test/Feature/varargs_new.ll diff -c /dev/null llvm/test/Feature/varargs_new.ll:1.1 *** /dev/null Sat Jun 18 13:30:47 2005 --- llvm/test/Feature/varargs_new.ll Sat Jun 18 13:30:37 2005 *************** *** 0 **** --- 1,33 ---- + ; RUN: llvm-as %s -o - | llvm-dis > %t1.ll + ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll + ; RUN: diff %t1.ll %t2.ll + + ; Demonstrate all of the variable argument handling intrinsic functions plus + ; the va_arg instruction. + + implementation ; Functions: + declare void %llvm.va_start(sbyte**) + declare void %llvm.va_copy(sbyte**, sbyte*) + declare void %llvm.va_end(sbyte**) + + int %test(int %X, ...) { + ; Allocate two va_list items. On this target, va_list is of type sbyte* + %ap = alloca sbyte* ; [#uses=4] + %aq = alloca sbyte* ; [#uses=2] + + ; Initialize variable argument processing + call void %llvm.va_start(sbyte** %ap) + + ; Read a single integer argument + %tmp = vaarg sbyte** %ap, int ; [#uses=1] + + ; Demonstrate usage of llvm.va_copy and llvm_va_end + %apv = load sbyte** %ap ; [#uses=1] + call void %llvm.va_copy(sbyte** %aq, sbyte* %apv) + call void %llvm.va_end(sbyte** %aq) + + ; Stop processing of arguments. + call void %llvm.va_end(sbyte** %ap) + ret int %tmp + + } From alenhar2 at cs.uiuc.edu Sat Jun 18 13:31:42 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:31:42 -0500 Subject: [llvm-commits] CVS: llvm/include/llvm/Support/InstVisitor.h Message-ID: <200506181831.NAA25929@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/Support: InstVisitor.h updated: 1.35 -> 1.36 --- Log message: header file changes for varargs --- Diffs of the changes: (+0 -1) InstVisitor.h | 1 - 1 files changed, 1 deletion(-) Index: llvm/include/llvm/Support/InstVisitor.h diff -u llvm/include/llvm/Support/InstVisitor.h:1.35 llvm/include/llvm/Support/InstVisitor.h:1.36 --- llvm/include/llvm/Support/InstVisitor.h:1.35 Thu Apr 21 15:44:59 2005 +++ llvm/include/llvm/Support/InstVisitor.h Sat Jun 18 13:31:30 2005 @@ -174,7 +174,6 @@ RetTy visitSelectInst(SelectInst &I) { DELEGATE(Instruction); } RetTy visitCallInst(CallInst &I) { DELEGATE(Instruction); } RetTy visitShiftInst(ShiftInst &I) { DELEGATE(Instruction); } - RetTy visitVANextInst(VANextInst &I) { DELEGATE(Instruction); } RetTy visitVAArgInst(VAArgInst &I) { DELEGATE(Instruction); } // Next level propagators... if the user does not overload a specific From alenhar2 at cs.uiuc.edu Sat Jun 18 13:31:42 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:31:42 -0500 Subject: [llvm-commits] CVS: llvm/include/llvm/Instruction.def Instructions.h Message-ID: <200506181831.NAA25927@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm: Instruction.def updated: 1.14 -> 1.15 Instructions.h updated: 1.22 -> 1.23 --- Log message: header file changes for varargs --- Diffs of the changes: (+5 -47) Instruction.def | 7 ++++--- Instructions.h | 45 +-------------------------------------------- 2 files changed, 5 insertions(+), 47 deletions(-) Index: llvm/include/llvm/Instruction.def diff -u llvm/include/llvm/Instruction.def:1.14 llvm/include/llvm/Instruction.def:1.15 --- llvm/include/llvm/Instruction.def:1.14 Sat Oct 16 13:05:37 2004 +++ llvm/include/llvm/Instruction.def Sat Jun 18 13:31:30 2005 @@ -128,13 +128,14 @@ HANDLE_OTHER_INST(30, Shl , ShiftInst ) // Shift operations HANDLE_OTHER_INST(31, Shr , ShiftInst ) -HANDLE_OTHER_INST(32, VANext , VANextInst ) // vanext instruction -HANDLE_OTHER_INST(33, VAArg , VAArgInst ) // vaarg instruction + //HANDLE_OTHER_INST(32, VANext , VANextInst ) // vanext instruction + //HANDLE_OTHER_INST(33, VAArg , VAArgInst ) // vaarg instruction HANDLE_OTHER_INST(34, Select , SelectInst ) // select instruction HANDLE_OTHER_INST(35, UserOp1, Instruction) // May be used internally in a pass HANDLE_OTHER_INST(36, UserOp2, Instruction) - LAST_OTHER_INST(36) +HANDLE_OTHER_INST(37, VAArg , VAArgInst ) // vaarg instruction + LAST_OTHER_INST(37) #undef FIRST_TERM_INST #undef HANDLE_TERM_INST Index: llvm/include/llvm/Instructions.h diff -u llvm/include/llvm/Instructions.h:1.22 llvm/include/llvm/Instructions.h:1.23 --- llvm/include/llvm/Instructions.h:1.22 Sun May 15 11:13:11 2005 +++ llvm/include/llvm/Instructions.h Sat Jun 18 13:31:30 2005 @@ -660,55 +660,12 @@ } }; - -//===----------------------------------------------------------------------===// -// VANextInst Class -//===----------------------------------------------------------------------===// - -/// VANextInst - This class represents the va_next llvm instruction, which -/// advances a vararg list passed an argument of the specified type, returning -/// the resultant list. -/// -class VANextInst : public UnaryInstruction { - PATypeHolder ArgTy; - VANextInst(const VANextInst &VAN) - : UnaryInstruction(VAN.getType(), VANext, VAN.getOperand(0)), - ArgTy(VAN.getArgType()) { - } - -public: - VANextInst(Value *List, const Type *Ty, const std::string &Name = "", - Instruction *InsertBefore = 0) - : UnaryInstruction(List->getType(), VANext, List, Name, InsertBefore), - ArgTy(Ty) { - } - VANextInst(Value *List, const Type *Ty, const std::string &Name, - BasicBlock *InsertAtEnd) - : UnaryInstruction(List->getType(), VANext, List, Name, InsertAtEnd), - ArgTy(Ty) { - } - - const Type *getArgType() const { return ArgTy; } - - virtual VANextInst *clone() const; - - // Methods for support type inquiry through isa, cast, and dyn_cast: - static inline bool classof(const VANextInst *) { return true; } - static inline bool classof(const Instruction *I) { - return I->getOpcode() == VANext; - } - static inline bool classof(const Value *V) { - return isa(V) && classof(cast(V)); - } -}; - - //===----------------------------------------------------------------------===// // VAArgInst Class //===----------------------------------------------------------------------===// /// VAArgInst - This class represents the va_arg llvm instruction, which returns -/// an argument of the specified type given a va_list. +/// an argument of the specified type given a va_list and increments that list /// class VAArgInst : public UnaryInstruction { VAArgInst(const VAArgInst &VAA) From alenhar2 at cs.uiuc.edu Sat Jun 18 13:31:42 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:31:42 -0500 Subject: [llvm-commits] CVS: llvm/include/llvm/Target/TargetLowering.h Message-ID: <200506181831.NAA25936@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm/Target: TargetLowering.h updated: 1.14 -> 1.15 --- Log message: header file changes for varargs --- Diffs of the changes: (+5 -6) TargetLowering.h | 11 +++++------ 1 files changed, 5 insertions(+), 6 deletions(-) Index: llvm/include/llvm/Target/TargetLowering.h diff -u llvm/include/llvm/Target/TargetLowering.h:1.14 llvm/include/llvm/Target/TargetLowering.h:1.15 --- llvm/include/llvm/Target/TargetLowering.h:1.14 Sat May 14 00:51:05 2005 +++ llvm/include/llvm/Target/TargetLowering.h Sat Jun 18 13:31:30 2005 @@ -268,7 +268,7 @@ /// LowerVAStart - This lowers the llvm.va_start intrinsic. If not /// implemented, this method prints a message and aborts. virtual std::pair - LowerVAStart(SDOperand Chain, SelectionDAG &DAG); + LowerVAStart(SDOperand Chain, SelectionDAG &DAG, SDOperand Dest); /// LowerVAEnd - This lowers llvm.va_end and returns the resultant chain. If /// not implemented, this defaults to a noop. @@ -278,13 +278,12 @@ /// value/chain pair. If not implemented, this defaults to returning the /// input operand. virtual std::pair - LowerVACopy(SDOperand Chain, SDOperand L, SelectionDAG &DAG); + LowerVACopy(SDOperand Chain, SDOperand Src, SDOperand Dest, SelectionDAG &DAG); - /// LowerVAArgNext - This lowers the vaarg and vanext instructions (depending - /// on whether the first argument is true). If not implemented, this prints a - /// message and aborts. + /// LowerVAArgNext - This lowers the instruction + /// If not implemented, this prints a message and aborts. virtual std::pair - LowerVAArgNext(bool isVANext, SDOperand Chain, SDOperand VAList, + LowerVAArgNext(SDOperand Chain, SDOperand VAList, const Type *ArgTy, SelectionDAG &DAG); /// LowerFrameReturnAddress - This hook lowers a call to llvm.returnaddress or From alenhar2 at cs.uiuc.edu Sat Jun 18 13:35:07 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:35:07 -0500 Subject: [llvm-commits] CVS: llvm/lib/Analysis/DataStructure/Local.cpp Message-ID: <200506181835.NAA26063@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis/DataStructure: Local.cpp updated: 1.133 -> 1.134 --- Log message: core changes for varargs --- Diffs of the changes: (+1 -5) Local.cpp | 6 +----- 1 files changed, 1 insertion(+), 5 deletions(-) Index: llvm/lib/Analysis/DataStructure/Local.cpp diff -u llvm/lib/Analysis/DataStructure/Local.cpp:1.133 llvm/lib/Analysis/DataStructure/Local.cpp:1.134 --- llvm/lib/Analysis/DataStructure/Local.cpp:1.133 Thu Apr 21 16:07:28 2005 +++ llvm/lib/Analysis/DataStructure/Local.cpp Sat Jun 18 13:34:51 2005 @@ -119,7 +119,6 @@ void visitInstruction(Instruction &I); void visitCallSite(CallSite CS); - void visitVANextInst(VANextInst &I); void visitVAArgInst(VAArgInst &I); void MergeConstantInitIntoNode(DSNodeHandle &NH, Constant *C); @@ -475,11 +474,8 @@ RetNode->mergeWith(getValueDest(*RI.getOperand(0))); } -void GraphBuilder::visitVANextInst(VANextInst &I) { - getValueDest(*I.getOperand(0)).mergeWith(getValueDest(I)); -} - void GraphBuilder::visitVAArgInst(VAArgInst &I) { + //FIXME: also updates the argument DSNodeHandle Ptr = getValueDest(*I.getOperand(0)); if (Ptr.isNull()) return; From alenhar2 at cs.uiuc.edu Sat Jun 18 13:35:08 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:35:08 -0500 Subject: [llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp Instruction.cpp Instructions.cpp Verifier.cpp Message-ID: <200506181835.NAA26073@zion.cs.uiuc.edu> Changes in directory llvm/lib/VMCore: AsmWriter.cpp updated: 1.179 -> 1.180 Instruction.cpp updated: 1.46 -> 1.47 Instructions.cpp updated: 1.19 -> 1.20 Verifier.cpp updated: 1.133 -> 1.134 --- Log message: core changes for varargs --- Diffs of the changes: (+3 -12) AsmWriter.cpp | 4 ---- Instruction.cpp | 5 +---- Instructions.cpp | 1 - Verifier.cpp | 5 ++--- 4 files changed, 3 insertions(+), 12 deletions(-) Index: llvm/lib/VMCore/AsmWriter.cpp diff -u llvm/lib/VMCore/AsmWriter.cpp:1.179 llvm/lib/VMCore/AsmWriter.cpp:1.180 --- llvm/lib/VMCore/AsmWriter.cpp:1.179 Sun May 15 11:13:11 2005 +++ llvm/lib/VMCore/AsmWriter.cpp Sat Jun 18 13:34:52 2005 @@ -1188,10 +1188,6 @@ if (Operand) writeOperand(Operand, true); // Work with broken code Out << ", "; printType(I.getType()); - } else if (const VANextInst *VAN = dyn_cast(&I)) { - if (Operand) writeOperand(Operand, true); // Work with broken code - Out << ", "; - printType(VAN->getArgType()); } else if (Operand) { // Print the normal way... // PrintAllTypes - Instructions who have operands of all the same type Index: llvm/lib/VMCore/Instruction.cpp diff -u llvm/lib/VMCore/Instruction.cpp:1.46 llvm/lib/VMCore/Instruction.cpp:1.47 --- llvm/lib/VMCore/Instruction.cpp:1.46 Fri May 6 00:50:54 2005 +++ llvm/lib/VMCore/Instruction.cpp Sat Jun 18 13:34:52 2005 @@ -110,8 +110,7 @@ case Call: return "call"; case Shl: return "shl"; case Shr: return "shr"; - case VANext: return "vanext"; - case VAArg: return "vaarg"; + case VAArg: return "va_arg"; default: return " "; } @@ -139,8 +138,6 @@ return LI->isVolatile() == cast(I)->isVolatile(); if (const StoreInst *SI = dyn_cast(this)) return SI->isVolatile() == cast(I)->isVolatile(); - if (const VANextInst *VAN = dyn_cast(this)) - return VAN->getArgType() == cast(I)->getArgType(); if (const CallInst *CI = dyn_cast(this)) return CI->isTailCall() == cast(I)->isTailCall(); return true; Index: llvm/lib/VMCore/Instructions.cpp diff -u llvm/lib/VMCore/Instructions.cpp:1.19 llvm/lib/VMCore/Instructions.cpp:1.20 --- llvm/lib/VMCore/Instructions.cpp:1.19 Fri May 6 15:26:43 2005 +++ llvm/lib/VMCore/Instructions.cpp Sat Jun 18 13:34:52 2005 @@ -1096,7 +1096,6 @@ CallInst *CallInst::clone() const { return new CallInst(*this); } ShiftInst *ShiftInst::clone() const { return new ShiftInst(*this); } SelectInst *SelectInst::clone() const { return new SelectInst(*this); } -VANextInst *VANextInst::clone() const { return new VANextInst(*this); } VAArgInst *VAArgInst::clone() const { return new VAArgInst(*this); } PHINode *PHINode::clone() const { return new PHINode(*this); } ReturnInst *ReturnInst::clone() const { return new ReturnInst(*this); } Index: llvm/lib/VMCore/Verifier.cpp diff -u llvm/lib/VMCore/Verifier.cpp:1.133 llvm/lib/VMCore/Verifier.cpp:1.134 --- llvm/lib/VMCore/Verifier.cpp:1.133 Sun May 8 17:27:09 2005 +++ llvm/lib/VMCore/Verifier.cpp Sat Jun 18 13:34:52 2005 @@ -178,7 +178,6 @@ void visitPHINode(PHINode &PN); void visitBinaryOperator(BinaryOperator &B); void visitShiftInst(ShiftInst &SI); - void visitVANextInst(VANextInst &VAN) { visitInstruction(VAN); } void visitVAArgInst(VAArgInst &VAA) { visitInstruction(VAA); } void visitCallInst(CallInst &CI); void visitGetElementPtrInst(GetElementPtrInst &GEP); @@ -655,10 +654,10 @@ Assert1(CI.getParent()->getParent()->getFunctionType()->isVarArg(), "llvm.va_start intrinsic may only occur in function with variable" " args!", &CI); - NumArgs = 0; + NumArgs = 1; break; case Intrinsic::vaend: NumArgs = 1; break; - case Intrinsic::vacopy: NumArgs = 1; break; + case Intrinsic::vacopy: NumArgs = 2; break; case Intrinsic::returnaddress: case Intrinsic::frameaddress: From alenhar2 at cs.uiuc.edu Sat Jun 18 13:35:09 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:35:09 -0500 Subject: [llvm-commits] CVS: llvm/lib/ExecutionEngine/Interpreter/Execution.cpp Interpreter.h Message-ID: <200506181835.NAA26083@zion.cs.uiuc.edu> Changes in directory llvm/lib/ExecutionEngine/Interpreter: Execution.cpp updated: 1.137 -> 1.138 Interpreter.h updated: 1.70 -> 1.71 --- Log message: core changes for varargs --- Diffs of the changes: (+3 -13) Execution.cpp | 15 +++------------ Interpreter.h | 1 - 2 files changed, 3 insertions(+), 13 deletions(-) Index: llvm/lib/ExecutionEngine/Interpreter/Execution.cpp diff -u llvm/lib/ExecutionEngine/Interpreter/Execution.cpp:1.137 llvm/lib/ExecutionEngine/Interpreter/Execution.cpp:1.138 --- llvm/lib/ExecutionEngine/Interpreter/Execution.cpp:1.137 Thu Apr 21 17:43:08 2005 +++ llvm/lib/ExecutionEngine/Interpreter/Execution.cpp Sat Jun 18 13:34:52 2005 @@ -988,18 +988,6 @@ SetValue(&I, executeCastOperation(I.getOperand(0), I.getType(), SF), SF); } -void Interpreter::visitVANextInst(VANextInst &I) { - ExecutionContext &SF = ECStack.back(); - - // Get the incoming valist parameter. LLI treats the valist as a - // (ec-stack-depth var-arg-index) pair. - GenericValue VAList = getOperandValue(I.getOperand(0), SF); - - // Move the pointer to the next vararg. - ++VAList.UIntPairVal.second; - SetValue(&I, VAList, SF); -} - #define IMPLEMENT_VAARG(TY) \ case Type::TY##TyID: Dest.TY##Val = Src.TY##Val; break @@ -1033,6 +1021,9 @@ // Set the Value of this Instruction. SetValue(&I, Dest, SF); + + // Move the pointer to the next vararg. + ++VAList.UIntPairVal.second; } //===----------------------------------------------------------------------===// Index: llvm/lib/ExecutionEngine/Interpreter/Interpreter.h diff -u llvm/lib/ExecutionEngine/Interpreter/Interpreter.h:1.70 llvm/lib/ExecutionEngine/Interpreter/Interpreter.h:1.71 --- llvm/lib/ExecutionEngine/Interpreter/Interpreter.h:1.70 Thu Apr 21 23:06:38 2005 +++ llvm/lib/ExecutionEngine/Interpreter/Interpreter.h Sat Jun 18 13:34:52 2005 @@ -153,7 +153,6 @@ void visitShl(ShiftInst &I); void visitShr(ShiftInst &I); - void visitVANextInst(VANextInst &I); void visitVAArgInst(VAArgInst &I); void visitInstruction(Instruction &I) { std::cerr << I; From alenhar2 at cs.uiuc.edu Sat Jun 18 13:35:09 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:35:09 -0500 Subject: [llvm-commits] CVS: llvm/lib/Analysis/IPA/Andersens.cpp Message-ID: <200506181835.NAA26079@zion.cs.uiuc.edu> Changes in directory llvm/lib/Analysis/IPA: Andersens.cpp updated: 1.24 -> 1.25 --- Log message: core changes for varargs --- Diffs of the changes: (+0 -5) Andersens.cpp | 5 ----- 1 files changed, 5 deletions(-) Index: llvm/lib/Analysis/IPA/Andersens.cpp diff -u llvm/lib/Analysis/IPA/Andersens.cpp:1.24 llvm/lib/Analysis/IPA/Andersens.cpp:1.25 --- llvm/lib/Analysis/IPA/Andersens.cpp:1.24 Thu Apr 21 16:08:44 2005 +++ llvm/lib/Analysis/IPA/Andersens.cpp Sat Jun 18 13:34:51 2005 @@ -330,7 +330,6 @@ void visitCastInst(CastInst &CI); void visitSetCondInst(SetCondInst &SCI) {} // NOOP! void visitSelectInst(SelectInst &SI); - void visitVANext(VANextInst &I); void visitVAArg(VAArgInst &I); void visitInstruction(Instruction &I); }; @@ -867,10 +866,6 @@ } } -void Andersens::visitVANext(VANextInst &I) { - // FIXME: Implement - assert(0 && "vanext not handled yet!"); -} void Andersens::visitVAArg(VAArgInst &I) { assert(0 && "vaarg not handled yet!"); } From alenhar2 at cs.uiuc.edu Sat Jun 18 13:35:10 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:35:10 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/SparcV8/SparcV8ISelSimple.cpp Message-ID: <200506181835.NAA26107@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/SparcV8: SparcV8ISelSimple.cpp updated: 1.91 -> 1.92 --- Log message: core changes for varargs --- Diffs of the changes: (+20 -17) SparcV8ISelSimple.cpp | 37 ++++++++++++++++++++----------------- 1 files changed, 20 insertions(+), 17 deletions(-) Index: llvm/lib/Target/SparcV8/SparcV8ISelSimple.cpp diff -u llvm/lib/Target/SparcV8/SparcV8ISelSimple.cpp:1.91 llvm/lib/Target/SparcV8/SparcV8ISelSimple.cpp:1.92 --- llvm/lib/Target/SparcV8/SparcV8ISelSimple.cpp:1.91 Fri Apr 22 13:06:01 2005 +++ llvm/lib/Target/SparcV8/SparcV8ISelSimple.cpp Sat Jun 18 13:34:52 2005 @@ -102,7 +102,6 @@ void visitBranchInst(BranchInst &I); void visitUnreachableInst(UnreachableInst &I) {} void visitCastInst(CastInst &I); - void visitVANextInst(VANextInst &I); void visitVAArgInst(VAArgInst &I); void visitLoadInst(LoadInst &I); void visitStoreInst(StoreInst &I); @@ -1754,8 +1753,10 @@ case Intrinsic::vastart: { // Add the VarArgsOffset to the frame pointer, and copy it to the result. - unsigned DestReg = getReg (CI); - BuildMI (BB, V8::ADDri, 2, DestReg).addReg (V8::FP).addSImm (VarArgsOffset); + unsigned DestReg = getReg (CI.getOperand(1)); + unsigned Tmp = makeAnotherReg(Type::IntTy); + BuildMI (BB, V8::ADDri, 2, Tmp).addReg (V8::FP).addSImm (VarArgsOffset); + BuildMI(BB, V8::ST, 3).addReg(DestReg).addSImm(0).addReg(Tmp); return; } @@ -1765,39 +1766,37 @@ case Intrinsic::vacopy: { // Copy the va_list ptr (arg1) to the result. - unsigned DestReg = getReg (CI), SrcReg = getReg (CI.getOperand (1)); - BuildMI (BB, V8::ORrr, 2, DestReg).addReg (V8::G0).addReg (SrcReg); + unsigned DestReg = getReg (CI.getOperand(1)), SrcReg = getReg (CI.getOperand (2)); + BuildMI(BB, V8::ST, 3).addReg(DestReg).addSImm(0).addReg(SrcReg); return; } } } -void V8ISel::visitVANextInst (VANextInst &I) { - // Add the type size to the vararg pointer (arg0). - unsigned DestReg = getReg (I); - unsigned SrcReg = getReg (I.getOperand (0)); - unsigned TySize = TM.getTargetData ().getTypeSize (I.getArgType ()); - BuildMI (BB, V8::ADDri, 2, DestReg).addReg (SrcReg).addSImm (TySize); -} - void V8ISel::visitVAArgInst (VAArgInst &I) { - unsigned VAList = getReg (I.getOperand (0)); + unsigned VAListPtr = getReg (I.getOperand (0)); unsigned DestReg = getReg (I); + unsigned Size; + unsigned VAList = makeAnotherReg(Type::IntTy); + BuildMI(BB, V8::LD, 2, VAList).addReg(VAListPtr).addSImm(0); switch (I.getType ()->getTypeID ()) { case Type::PointerTyID: case Type::UIntTyID: case Type::IntTyID: + Size = 4; BuildMI (BB, V8::LD, 2, DestReg).addReg (VAList).addSImm (0); - return; + break; case Type::ULongTyID: case Type::LongTyID: + Size = 8; BuildMI (BB, V8::LD, 2, DestReg).addReg (VAList).addSImm (0); BuildMI (BB, V8::LD, 2, DestReg+1).addReg (VAList).addSImm (4); - return; + break; case Type::DoubleTyID: { + Size = 8; unsigned DblAlign = TM.getTargetData().getDoubleAlignment(); unsigned TempReg = makeAnotherReg (Type::IntTy); unsigned TempReg2 = makeAnotherReg (Type::IntTy); @@ -1807,7 +1806,7 @@ BuildMI (BB, V8::ST, 3).addFrameIndex (FI).addSImm (0).addReg (TempReg); BuildMI (BB, V8::ST, 3).addFrameIndex (FI).addSImm (4).addReg (TempReg2); BuildMI (BB, V8::LDDFri, 2, DestReg).addFrameIndex (FI).addSImm (0); - return; + break; } default: @@ -1816,4 +1815,8 @@ abort (); return; } + unsigned tmp = makeAnotherReg(Type::IntTy); + BuildMI (BB, V8::ADDri, 2, tmp).addReg(VAList).addSImm(Size); + BuildMI(BB, V8::ST, 3).addReg(VAListPtr).addSImm(0).addReg(VAList); + return; } From alenhar2 at cs.uiuc.edu Sat Jun 18 13:35:09 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:35:09 -0500 Subject: [llvm-commits] CVS: llvm/lib/AsmParser/Lexer.l llvmAsmParser.y Message-ID: <200506181835.NAA26091@zion.cs.uiuc.edu> Changes in directory llvm/lib/AsmParser: Lexer.l updated: 1.63 -> 1.64 llvmAsmParser.y updated: 1.225 -> 1.226 --- Log message: core changes for varargs --- Diffs of the changes: (+125 -8) Lexer.l | 6 +- llvmAsmParser.y | 127 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 125 insertions(+), 8 deletions(-) Index: llvm/lib/AsmParser/Lexer.l diff -u llvm/lib/AsmParser/Lexer.l:1.63 llvm/lib/AsmParser/Lexer.l:1.64 --- llvm/lib/AsmParser/Lexer.l:1.63 Thu May 19 22:25:47 2005 +++ llvm/lib/AsmParser/Lexer.l Sat Jun 18 13:34:51 2005 @@ -253,9 +253,9 @@ select { RET_TOK(OtherOpVal, Select, SELECT); } shl { RET_TOK(OtherOpVal, Shl, SHL); } shr { RET_TOK(OtherOpVal, Shr, SHR); } -vanext { RET_TOK(OtherOpVal, VANext, VANEXT); } -vaarg { RET_TOK(OtherOpVal, VAArg , VAARG); } - +vanext { return VANEXT_old; } +vaarg { return VAARG_old; } +va_arg { RET_TOK(OtherOpVal, VAArg , VAARG); } ret { RET_TOK(TermOpVal, Ret, RET); } br { RET_TOK(TermOpVal, Br, BR); } switch { RET_TOK(TermOpVal, Switch, SWITCH); } Index: llvm/lib/AsmParser/llvmAsmParser.y diff -u llvm/lib/AsmParser/llvmAsmParser.y:1.225 llvm/lib/AsmParser/llvmAsmParser.y:1.226 --- llvm/lib/AsmParser/llvmAsmParser.y:1.225 Thu May 19 22:25:47 2005 +++ llvm/lib/AsmParser/llvmAsmParser.y Sat Jun 18 13:34:51 2005 @@ -47,6 +47,10 @@ #define YYERROR_VERBOSE 1 +static bool ObsoleteVarArgs; +static BasicBlock* CurBB; + + // This contains info used when building the body of a function. It is // destroyed when the function is completed. // @@ -723,6 +727,7 @@ static Module * RunParser(Module * M) { llvmAsmlineno = 1; // Reset the current line number... + ObsoleteVarArgs = false; CurModule.CurrentModule = M; yyparse(); // Parse the file, potentially throwing exception @@ -730,6 +735,80 @@ Module *Result = ParserResult; ParserResult = 0; + if(ObsoleteVarArgs) { + if(Function* F = Result->getNamedFunction("llvm.va_start")) { + assert(F->arg_size() == 0 && "Obsolete va_start takes 0 argument!"); + + //foo = va_start() + // -> + //bar = alloca typeof(foo) + //va_start(bar) + //foo = load bar + + const Type* RetTy = Type::getPrimitiveType(Type::VoidTyID); + const Type* ArgTy = F->getFunctionType()->getReturnType(); + const Type* ArgTyPtr = PointerType::get(ArgTy); + Function* NF = Result->getOrInsertFunction("llvm.va_start", + RetTy, ArgTyPtr, 0); + + while (!F->use_empty()) { + CallInst* CI = cast(F->use_back()); + AllocaInst* bar = new AllocaInst(ArgTy, 0, "vastart.fix.1", CI); + new CallInst(NF, bar, "", CI); + Value* foo = new LoadInst(bar, "vastart.fix.2", CI); + CI->replaceAllUsesWith(foo); + CI->getParent()->getInstList().erase(CI); + } + Result->getFunctionList().erase(F); + } + + if(Function* F = Result->getNamedFunction("llvm.va_end")) { + assert(F->arg_size() == 1 && "Obsolete va_end takes 1 argument!"); + //vaend foo + // -> + //bar = alloca 1 of typeof(foo) + //vaend bar + const Type* RetTy = Type::getPrimitiveType(Type::VoidTyID); + const Type* ArgTy = F->getFunctionType()->getParamType(0); + const Type* ArgTyPtr = PointerType::get(ArgTy); + Function* NF = Result->getOrInsertFunction("llvm.va_end", + RetTy, ArgTyPtr, 0); + + while (!F->use_empty()) { + CallInst* CI = cast(F->use_back()); + AllocaInst* bar = new AllocaInst(ArgTy, 0, "vaend.fix.1", CI); + new CallInst(NF, bar, "", CI); + CI->getParent()->getInstList().erase(CI); + } + Result->getFunctionList().erase(F); + } + + if(Function* F = Result->getNamedFunction("llvm.va_copy")) { + assert(F->arg_size() == 1 && "Obsolete va_copy takes 1 argument!"); + //foo = vacopy(bar) + // -> + //a = alloca 1 of typeof(foo) + //vacopy(a, bar) + //foo = load a + + const Type* RetTy = Type::getPrimitiveType(Type::VoidTyID); + const Type* ArgTy = F->getFunctionType()->getReturnType(); + const Type* ArgTyPtr = PointerType::get(ArgTy); + Function* NF = Result->getOrInsertFunction("llvm.va_copy", + RetTy, ArgTyPtr, ArgTy, 0); + + while (!F->use_empty()) { + CallInst* CI = cast(F->use_back()); + AllocaInst* a = new AllocaInst(ArgTy, 0, "vacopy.fix.1", CI); + new CallInst(NF, a, CI->getOperand(1), "", CI); + Value* foo = new LoadInst(a, "vacopy.fix.2", CI); + CI->replaceAllUsesWith(foo); + CI->getParent()->getInstList().erase(CI); + } + Result->getFunctionList().erase(F); + } + } + return Result; } @@ -866,7 +945,8 @@ // Other Operators %type ShiftOps -%token PHI_TOK CAST SELECT SHL SHR VAARG VANEXT +%token PHI_TOK CAST SELECT SHL SHR VAARG +%token VAARG_old VANEXT_old //OBSOLETE %start Module @@ -1727,7 +1807,7 @@ $$ = $1; } | /* empty */ { - $$ = getBBVal(ValID::create((int)CurFun.NextBBNum++), true); + $$ = CurBB = getBBVal(ValID::create((int)CurFun.NextBBNum++), true); // Make sure to move the basic block to the correct location in the // function, instead of leaving it inserted wherever it was first @@ -1737,7 +1817,7 @@ BBL.splice(BBL.end(), BBL, $$); } | LABELSTR { - $$ = getBBVal(ValID::create($1), true); + $$ = CurBB = getBBVal(ValID::create($1), true); // Make sure to move the basic block to the correct location in the // function, instead of leaving it inserted wherever it was first @@ -1964,8 +2044,45 @@ $$ = new VAArgInst($2, *$4); delete $4; } - | VANEXT ResolvedVal ',' Types { - $$ = new VANextInst($2, *$4); + | VAARG_old ResolvedVal ',' Types { + ObsoleteVarArgs = true; + const Type* ArgTy = $2->getType(); + Function* NF = CurModule.CurrentModule-> + getOrInsertFunction("llvm.va_copy", ArgTy, ArgTy, 0); + + //b = vaarg a, t -> + //foo = alloca 1 of t + //bar = vacopy a + //store bar -> foo + //b = vaarg foo, t + AllocaInst* foo = new AllocaInst(ArgTy, 0, "vaarg.fix"); + CurBB->getInstList().push_back(foo); + CallInst* bar = new CallInst(NF, $2); + CurBB->getInstList().push_back(bar); + CurBB->getInstList().push_back(new StoreInst(bar, foo)); + $$ = new VAArgInst(foo, *$4); + delete $4; + } + | VANEXT_old ResolvedVal ',' Types { + ObsoleteVarArgs = true; + const Type* ArgTy = $2->getType(); + Function* NF = CurModule.CurrentModule-> + getOrInsertFunction("llvm.va_copy", ArgTy, ArgTy, 0); + + //b = vanext a, t -> + //foo = alloca 1 of t + //bar = vacopy a + //store bar -> foo + //tmp = vaarg foo, t + //b = load foo + AllocaInst* foo = new AllocaInst(ArgTy, 0, "vanext.fix"); + CurBB->getInstList().push_back(foo); + CallInst* bar = new CallInst(NF, $2); + CurBB->getInstList().push_back(bar); + CurBB->getInstList().push_back(new StoreInst(bar, foo)); + Instruction* tmp = new VAArgInst(foo, *$4); + CurBB->getInstList().push_back(tmp); + $$ = new LoadInst(foo); delete $4; } | PHI_TOK PHIList { From alenhar2 at cs.uiuc.edu Sat Jun 18 13:35:09 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:35:09 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaISelPattern.cpp Message-ID: <200506181835.NAA26077@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/Alpha: AlphaISelPattern.cpp updated: 1.122 -> 1.123 --- Log message: core changes for varargs --- Diffs of the changes: (+30 -8) AlphaISelPattern.cpp | 38 ++++++++++++++++++++++++++++++-------- 1 files changed, 30 insertions(+), 8 deletions(-) Index: llvm/lib/Target/Alpha/AlphaISelPattern.cpp diff -u llvm/lib/Target/Alpha/AlphaISelPattern.cpp:1.122 llvm/lib/Target/Alpha/AlphaISelPattern.cpp:1.123 --- llvm/lib/Target/Alpha/AlphaISelPattern.cpp:1.122 Wed Jun 8 13:02:21 2005 +++ llvm/lib/Target/Alpha/AlphaISelPattern.cpp Sat Jun 18 13:34:52 2005 @@ -72,7 +72,8 @@ // AlphaTargetLowering - Alpha Implementation of the TargetLowering interface namespace { class AlphaTargetLowering : public TargetLowering { - int VarArgsFrameIndex; // FrameIndex for start of varargs area. + int VarArgsOffset; // What is the offset to the first vaarg + int VarArgsBase; // What is the base FrameIndex unsigned GP; //GOT vreg public: AlphaTargetLowering(TargetMachine &TM) : TargetLowering(TM) { @@ -151,10 +152,10 @@ SelectionDAG &DAG); virtual std::pair - LowerVAStart(SDOperand Chain, SelectionDAG &DAG); + LowerVAStart(SDOperand Chain, SelectionDAG &DAG, SDOperand Dest); virtual std::pair - LowerVAArgNext(bool isVANext, SDOperand Chain, SDOperand VAList, + LowerVAArgNext(SDOperand Chain, SDOperand VAList, const Type *ArgTy, SelectionDAG &DAG); virtual std::pair @@ -300,12 +301,14 @@ // If the functions takes variable number of arguments, copy all regs to stack if (F.isVarArg()) { + VarArgsOffset = count * 8; std::vector LS; for (int i = 0; i < 6; ++i) { if (args_int[i] < 1024) args_int[i] = AddLiveIn(MF,args_int[i], getRegClassFor(MVT::i64)); SDOperand argt = DAG.getCopyFromReg(args_int[i], MVT::i64, DAG.getRoot()); int FI = MFI->CreateFixedObject(8, -8 * (6 - i)); + if (i == 0) VarArgsBase = FI; SDOperand SDFI = DAG.getFrameIndex(FI, MVT::i64); LS.push_back(DAG.getNode(ISD::STORE, MVT::Other, DAG.getRoot(), argt, SDFI, DAG.getSrcValue(NULL))); @@ -393,15 +396,34 @@ } std::pair -AlphaTargetLowering::LowerVAStart(SDOperand Chain, SelectionDAG &DAG) { - //vastart just returns the address of the VarArgsFrameIndex slot. - return std::make_pair(DAG.getFrameIndex(VarArgsFrameIndex, MVT::i64), Chain); +AlphaTargetLowering::LowerVAStart(SDOperand Chain, SelectionDAG &DAG, SDOperand Dest) { + // vastart just stores the address of the VarArgsBase and VarArgsOffset + SDOperand FR = DAG.getFrameIndex(VarArgsBase, MVT::i32); + SDOperand S1 = DAG.getNode(ISD::STORE, MVT::Other, Chain, FR, Dest, DAG.getSrcValue(NULL)); + SDOperand SA2 = DAG.getNode(ISD::ADD, MVT::i64, Dest, DAG.getConstant(8, MVT::i64)); + SDOperand S2 = DAG.getNode(ISD::STORE, MVT::Other, S1, + DAG.getConstant(VarArgsOffset, MVT::i64), SA2, + DAG.getSrcValue(NULL)); + + return std::make_pair(S2, S2); } std::pair AlphaTargetLowering:: -LowerVAArgNext(bool isVANext, SDOperand Chain, SDOperand VAList, +LowerVAArgNext(SDOperand Chain, SDOperand VAList, const Type *ArgTy, SelectionDAG &DAG) { - abort(); + //FIXME: For now, ignore FP + SDOperand Base = DAG.getLoad(MVT::i64, Chain, VAList, DAG.getSrcValue(NULL)); + SDOperand Tmp = DAG.getNode(ISD::ADD, MVT::i64, VAList, + DAG.getConstant(8, MVT::i64)); + SDOperand Offset = DAG.getLoad(MVT::i64, Chain, Tmp, DAG.getSrcValue(NULL)); + SDOperand DataPtr = DAG.getNode(ISD::ADD, MVT::i64, Base, Offset); + SDOperand Result = DAG.getLoad(MVT::i64, Chain, DataPtr, + DAG.getSrcValue(NULL)); + SDOperand NewOffset = DAG.getNode(ISD::ADD, MVT::i64, Offset, + DAG.getConstant(8, MVT::i64)); + SDOperand Update = DAG.getNode(ISD::STORE, MVT::Other, Result, NewOffset, + Tmp, DAG.getSrcValue(NULL)); + return std::make_pair(Result, Update); } From alenhar2 at cs.uiuc.edu Sat Jun 18 13:35:09 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:35:09 -0500 Subject: [llvm-commits] CVS: llvm/lib/Bytecode/Writer/SlotCalculator.cpp Writer.cpp Message-ID: <200506181835.NAA26093@zion.cs.uiuc.edu> Changes in directory llvm/lib/Bytecode/Writer: SlotCalculator.cpp updated: 1.71 -> 1.72 Writer.cpp updated: 1.105 -> 1.106 --- Log message: core changes for varargs --- Diffs of the changes: (+1 -16) SlotCalculator.cpp | 6 ------ Writer.cpp | 11 +---------- 2 files changed, 1 insertion(+), 16 deletions(-) Index: llvm/lib/Bytecode/Writer/SlotCalculator.cpp diff -u llvm/lib/Bytecode/Writer/SlotCalculator.cpp:1.71 llvm/lib/Bytecode/Writer/SlotCalculator.cpp:1.72 --- llvm/lib/Bytecode/Writer/SlotCalculator.cpp:1.71 Thu May 5 17:32:23 2005 +++ llvm/lib/Bytecode/Writer/SlotCalculator.cpp Sat Jun 18 13:34:51 2005 @@ -187,8 +187,6 @@ !isa(I->getOperand(op))) getOrCreateSlot(I->getOperand(op)); getOrCreateSlot(I->getType()); - if (const VANextInst *VAN = dyn_cast(&*I)) - getOrCreateSlot(VAN->getArgType()); } processSymbolTableConstants(&F->getSymbolTable()); } @@ -320,8 +318,6 @@ getOrCreateSlot(BB); for (BasicBlock::const_iterator I = BB->begin(), E = BB->end(); I!=E; ++I) { getOrCreateSlot(I); - if (const VANextInst *VAN = dyn_cast(I)) - getOrCreateSlot(VAN->getArgType()); } } @@ -472,8 +468,6 @@ for (unsigned op = 0, e = I->getNumOperands(); op != e; ++op) if (isa(I->getOperand(op))) getOrCreateCompactionTableSlot(I->getOperand(op)); - if (const VANextInst *VAN = dyn_cast(&*I)) - getOrCreateCompactionTableSlot(VAN->getArgType()); } // Do the types in the symbol table Index: llvm/lib/Bytecode/Writer/Writer.cpp diff -u llvm/lib/Bytecode/Writer/Writer.cpp:1.105 llvm/lib/Bytecode/Writer/Writer.cpp:1.106 --- llvm/lib/Bytecode/Writer/Writer.cpp:1.105 Fri May 13 18:35:47 2005 +++ llvm/lib/Bytecode/Writer/Writer.cpp Sat Jun 18 13:34:51 2005 @@ -439,7 +439,7 @@ output_typeid(Type); // Result type unsigned NumArgs = I->getNumOperands(); - output_vbr(NumArgs + (isa(I) || isa(I) || + output_vbr(NumArgs + (isa(I) || isa(I) || Opcode == 56 || Opcode == 58)); if (!isa(&I)) { @@ -453,10 +453,6 @@ int Slot = Table.getSlot(I->getType()); assert(Slot != -1 && "Cast return type unknown?"); output_typeid((unsigned)Slot); - } else if (const VANextInst *VAI = dyn_cast(I)) { - int Slot = Table.getSlot(VAI->getArgType()); - assert(Slot != -1 && "VarArg argument type unknown?"); - output_typeid((unsigned)Slot); } else if (Opcode == 56) { // Invoke escape sequence output_vbr(cast(I)->getCallingConv()); } else if (Opcode == 58) { // Call escape sequence @@ -704,11 +700,6 @@ assert(Slots[1] != ~0U && "Cast return type unknown?"); if (Slots[1] > MaxOpSlot) MaxOpSlot = Slots[1]; NumOperands++; - } else if (const VANextInst *VANI = dyn_cast(&I)) { - Slots[1] = Table.getSlot(VANI->getArgType()); - assert(Slots[1] != ~0U && "va_next return type unknown?"); - if (Slots[1] > MaxOpSlot) MaxOpSlot = Slots[1]; - NumOperands++; } else if (const GetElementPtrInst *GEP = dyn_cast(&I)) { // We need to encode the type of sequential type indices into their slot # unsigned Idx = 1; From alenhar2 at cs.uiuc.edu Sat Jun 18 13:35:10 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:35:10 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/PowerPC/PPC32ISelSimple.cpp PPC64ISelPattern.cpp Message-ID: <200506181835.NAA26127@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/PowerPC: PPC32ISelSimple.cpp updated: 1.141 -> 1.142 PPC64ISelPattern.cpp updated: 1.21 -> 1.22 --- Log message: core changes for varargs --- Diffs of the changes: (+41 -43) PPC32ISelSimple.cpp | 44 ++++++++++++++------------------------------ PPC64ISelPattern.cpp | 40 +++++++++++++++++++++++++++------------- 2 files changed, 41 insertions(+), 43 deletions(-) Index: llvm/lib/Target/PowerPC/PPC32ISelSimple.cpp diff -u llvm/lib/Target/PowerPC/PPC32ISelSimple.cpp:1.141 llvm/lib/Target/PowerPC/PPC32ISelSimple.cpp:1.142 --- llvm/lib/Target/PowerPC/PPC32ISelSimple.cpp:1.141 Fri Apr 22 12:54:30 2005 +++ llvm/lib/Target/PowerPC/PPC32ISelSimple.cpp Sat Jun 18 13:34:52 2005 @@ -310,7 +310,6 @@ void visitShiftInst(ShiftInst &I); void visitPHINode(PHINode &I) {} // PHI nodes handled by second pass void visitCastInst(CastInst &I); - void visitVANextInst(VANextInst &I); void visitVAArgInst(VAArgInst &I); void visitInstruction(Instruction &I) { @@ -1978,6 +1977,7 @@ unsigned TmpReg1, TmpReg2, TmpReg3; switch (ID) { case Intrinsic::vastart: + //FIXME: need to store, not return a value // Get the address of the first vararg value... TmpReg1 = getReg(CI); addFrameReference(BuildMI(BB, PPC::ADDI, 2, TmpReg1), VarArgsFrameIndex, @@ -1985,6 +1985,7 @@ return; case Intrinsic::vacopy: + //FIXME: need to store into first arg the value of the second TmpReg1 = getReg(CI); TmpReg2 = getReg(CI.getOperand(1)); BuildMI(BB, PPC::OR, 2, TmpReg1).addReg(TmpReg2).addReg(TmpReg2); @@ -3679,37 +3680,12 @@ abort(); } -/// visitVANextInst - Implement the va_next instruction... -/// -void PPC32ISel::visitVANextInst(VANextInst &I) { - unsigned VAList = getReg(I.getOperand(0)); - unsigned DestReg = getReg(I); - - unsigned Size; - switch (I.getArgType()->getTypeID()) { - default: - std::cerr << I; - assert(0 && "Error: bad type for va_next instruction!"); - return; - case Type::PointerTyID: - case Type::UIntTyID: - case Type::IntTyID: - Size = 4; - break; - case Type::ULongTyID: - case Type::LongTyID: - case Type::DoubleTyID: - Size = 8; - break; - } - - // Increment the VAList pointer... - BuildMI(BB, PPC::ADDI, 2, DestReg).addReg(VAList).addSImm(Size); -} - void PPC32ISel::visitVAArgInst(VAArgInst &I) { - unsigned VAList = getReg(I.getOperand(0)); + unsigned VAListPtr = getReg(I.getOperand(0)); unsigned DestReg = getReg(I); + unsigned VAList = makeAnotherReg(Type::IntTy); + BuildMI(BB, PPC::LWZ, 2, VAList).addSImm(0).addReg(VAListPtr); + int Size; switch (I.getType()->getTypeID()) { default: @@ -3719,20 +3695,28 @@ case Type::PointerTyID: case Type::UIntTyID: case Type::IntTyID: + Size = 4; BuildMI(BB, PPC::LWZ, 2, DestReg).addSImm(0).addReg(VAList); break; case Type::ULongTyID: case Type::LongTyID: + Size = 8; BuildMI(BB, PPC::LWZ, 2, DestReg).addSImm(0).addReg(VAList); BuildMI(BB, PPC::LWZ, 2, DestReg+1).addSImm(4).addReg(VAList); break; case Type::FloatTyID: + Size = 4; //?? Bad value? BuildMI(BB, PPC::LFS, 2, DestReg).addSImm(0).addReg(VAList); break; case Type::DoubleTyID: + Size = 8; BuildMI(BB, PPC::LFD, 2, DestReg).addSImm(0).addReg(VAList); break; } + // Increment the VAList pointer... + unsigned NP = makeAnotherReg(Type::IntTy); + BuildMI(BB, PPC::ADDI, 2, NP).addReg(VAList).addSImm(Size); + BuildMI(BB, PPC::STW, 3).addReg(NP).addSImm(0).addReg(VAListPtr); } /// visitGetElementPtrInst - instruction-select GEP instructions Index: llvm/lib/Target/PowerPC/PPC64ISelPattern.cpp diff -u llvm/lib/Target/PowerPC/PPC64ISelPattern.cpp:1.21 llvm/lib/Target/PowerPC/PPC64ISelPattern.cpp:1.22 --- llvm/lib/Target/PowerPC/PPC64ISelPattern.cpp:1.21 Sun May 15 14:54:37 2005 +++ llvm/lib/Target/PowerPC/PPC64ISelPattern.cpp Sat Jun 18 13:34:52 2005 @@ -98,12 +98,16 @@ SelectionDAG &DAG); virtual std::pair - LowerVAStart(SDOperand Chain, SelectionDAG &DAG); + LowerVAStart(SDOperand Chain, SelectionDAG &DAG, SDOperand Dest); virtual std::pair - LowerVAArgNext(bool isVANext, SDOperand Chain, SDOperand VAList, + LowerVAArgNext(SDOperand Chain, SDOperand VAList, const Type *ArgTy, SelectionDAG &DAG); + virtual std::pair + LowerVACopy(SDOperand Chain, SDOperand Src, SDOperand Dest, + SelectionDAG &DAG); + virtual std::pair LowerFrameReturnAddress(bool isFrameAddr, SDOperand Chain, unsigned Depth, SelectionDAG &DAG); @@ -365,26 +369,36 @@ } std::pair -PPC64TargetLowering::LowerVAStart(SDOperand Chain, SelectionDAG &DAG) { - //vastart just returns the address of the VarArgsFrameIndex slot. - return std::make_pair(DAG.getFrameIndex(VarArgsFrameIndex, MVT::i64), Chain); +PPC64TargetLowering::LowerVAStart(SDOperand Chain, SelectionDAG &DAG, SDOperand Dest) { + // vastart just stores the address of the VarArgsFrameIndex slot. + SDOperand FR = DAG.getFrameIndex(VarArgsFrameIndex, MVT::i64); + SDOperand Result = DAG.getNode(ISD::STORE, MVT::Other, Chain, FR, Dest, DAG.getSrcValue(NULL)); + return std::make_pair(Result, Result); } std::pair PPC64TargetLowering:: -LowerVAArgNext(bool isVANext, SDOperand Chain, SDOperand VAList, +LowerVAArgNext(SDOperand Chain, SDOperand VAList, const Type *ArgTy, SelectionDAG &DAG) { MVT::ValueType ArgVT = getValueType(ArgTy); SDOperand Result; - if (!isVANext) { - Result = DAG.getLoad(ArgVT, DAG.getEntryNode(), VAList, - DAG.getSrcValue(NULL)); - } else { - Result = DAG.getNode(ISD::ADD, VAList.getValueType(), VAList, - DAG.getConstant(8, VAList.getValueType())); - } + SDOperand Val = DAG.getLoad(MVT::i64, Chain, VAList, DAG.getSrcValue(NULL)); + Result = DAG.getLoad(ArgVT, Val.getValue(1), Val, DAG.getSrcValue(NULL)); + Val = DAG.getNode(ISD::ADD, VAList.getValueType(), Val, + DAG.getConstant(8, VAList.getValueType())); + Chain = DAG.getNode(ISD::STORE, MVT::Other, Chain, + Val, VAList, DAG.getSrcValue(NULL)); return std::make_pair(Result, Chain); } +std::pair +PPC64TargetLowering::LowerVACopy(SDOperand Chain, SDOperand Src, + SDOperand Dest, SelectionDAG &DAG) +{ + SDOperand Result = DAG.getNode(ISD::STORE, MVT::Other, Chain, + Src, Dest, DAG.getSrcValue(NULL)); + return std::make_pair(Result, Result); +} + std::pair PPC64TargetLowering:: LowerFrameReturnAddress(bool isFrameAddress, SDOperand Chain, unsigned Depth, From alenhar2 at cs.uiuc.edu Sat Jun 18 13:35:09 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:35:09 -0500 Subject: [llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Message-ID: <200506181835.NAA26085@zion.cs.uiuc.edu> Changes in directory llvm/lib/CodeGen/SelectionDAG: SelectionDAGISel.cpp updated: 1.60 -> 1.61 --- Log message: core changes for varargs --- Diffs of the changes: (+12 -18) SelectionDAGISel.cpp | 30 ++++++++++++------------------ 1 files changed, 12 insertions(+), 18 deletions(-) Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.60 llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.61 --- llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.60 Sat May 14 08:56:55 2005 +++ llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Sat Jun 18 13:34:51 2005 @@ -356,7 +356,6 @@ void visitCall(CallInst &I); void visitVAStart(CallInst &I); - void visitVANext(VANextInst &I); void visitVAArg(VAArgInst &I); void visitVAEnd(CallInst &I); void visitVACopy(CallInst &I); @@ -839,7 +838,7 @@ } std::pair -TargetLowering::LowerVAStart(SDOperand Chain, SelectionDAG &DAG) { +TargetLowering::LowerVAStart(SDOperand Chain, SelectionDAG &DAG, SDOperand Dest) { // We have no sane default behavior, just emit a useful error message and bail // out. std::cerr << "Variable arguments handling not implemented on this target!\n"; @@ -854,13 +853,16 @@ } std::pair -TargetLowering::LowerVACopy(SDOperand Chain, SDOperand L, SelectionDAG &DAG) { - // Default to returning the input list. - return std::make_pair(L, Chain); +TargetLowering::LowerVACopy(SDOperand Chain, SDOperand Src, SDOperand Dest, + SelectionDAG &DAG) { + // We have no sane default behavior, just emit a useful error message and bail + // out. + std::cerr << "Variable arguments handling not implemented on this target!\n"; + abort(); } std::pair -TargetLowering::LowerVAArgNext(bool isVANext, SDOperand Chain, SDOperand VAList, +TargetLowering::LowerVAArgNext(SDOperand Chain, SDOperand VAList, const Type *ArgTy, SelectionDAG &DAG) { // We have no sane default behavior, just emit a useful error message and bail // out. @@ -871,23 +873,15 @@ void SelectionDAGLowering::visitVAStart(CallInst &I) { - std::pair Result = TLI.LowerVAStart(getRoot(), DAG); + std::pair Result = TLI.LowerVAStart(getRoot(), DAG, getValue(I.getOperand(1))); setValue(&I, Result.first); DAG.setRoot(Result.second); } void SelectionDAGLowering::visitVAArg(VAArgInst &I) { std::pair Result = - TLI.LowerVAArgNext(false, getRoot(), getValue(I.getOperand(0)), - I.getType(), DAG); - setValue(&I, Result.first); - DAG.setRoot(Result.second); -} - -void SelectionDAGLowering::visitVANext(VANextInst &I) { - std::pair Result = - TLI.LowerVAArgNext(true, getRoot(), getValue(I.getOperand(0)), - I.getArgType(), DAG); + TLI.LowerVAArgNext(getRoot(), getValue(I.getOperand(0)), + I.getType(), DAG); setValue(&I, Result.first); DAG.setRoot(Result.second); } @@ -898,7 +892,7 @@ void SelectionDAGLowering::visitVACopy(CallInst &I) { std::pair Result = - TLI.LowerVACopy(getRoot(), getValue(I.getOperand(1)), DAG); + TLI.LowerVACopy(getRoot(), getValue(I.getOperand(2)), getValue(I.getOperand(1)), DAG); setValue(&I, Result.first); DAG.setRoot(Result.second); } From alenhar2 at cs.uiuc.edu Sat Jun 18 13:35:10 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:35:10 -0500 Subject: [llvm-commits] CVS: llvm/lib/Bytecode/Reader/Reader.cpp ReaderWrappers.cpp Message-ID: <200506181835.NAA26121@zion.cs.uiuc.edu> Changes in directory llvm/lib/Bytecode/Reader: Reader.cpp updated: 1.163 -> 1.164 ReaderWrappers.cpp updated: 1.47 -> 1.48 --- Log message: core changes for varargs --- Diffs of the changes: (+134 -6) Reader.cpp | 39 ++++++++++++++++++-- ReaderWrappers.cpp | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 134 insertions(+), 6 deletions(-) Index: llvm/lib/Bytecode/Reader/Reader.cpp diff -u llvm/lib/Bytecode/Reader/Reader.cpp:1.163 llvm/lib/Bytecode/Reader/Reader.cpp:1.164 --- llvm/lib/Bytecode/Reader/Reader.cpp:1.163 Fri May 6 17:35:09 2005 +++ llvm/lib/Bytecode/Reader/Reader.cpp Sat Jun 18 13:34:51 2005 @@ -658,10 +658,43 @@ Result = new VAArgInst(getValue(iType, Oprnds[0]), getSanitizedType(Oprnds[1])); break; - case Instruction::VANext: - Result = new VANextInst(getValue(iType, Oprnds[0]), - getSanitizedType(Oprnds[1])); + case 32: { //VANext_old + const Type* ArgTy = getValue(iType, Oprnds[0])->getType(); + Function* NF = TheModule->getOrInsertFunction("llvm.va_copy", ArgTy, ArgTy, 0); + + //b = vanext a, t -> + //foo = alloca 1 of t + //bar = vacopy a + //store bar -> foo + //tmp = vaarg foo, t + //b = load foo + AllocaInst* foo = new AllocaInst(ArgTy, 0, "vanext.fix"); + BB->getInstList().push_back(foo); + CallInst* bar = new CallInst(NF, getValue(iType, Oprnds[0])); + BB->getInstList().push_back(bar); + BB->getInstList().push_back(new StoreInst(bar, foo)); + Instruction* tmp = new VAArgInst(foo, getSanitizedType(Oprnds[1])); + BB->getInstList().push_back(tmp); + Result = new LoadInst(foo); + break; + } + case 33: { //VAArg_old + const Type* ArgTy = getValue(iType, Oprnds[0])->getType(); + Function* NF = TheModule->getOrInsertFunction("llvm.va_copy", ArgTy, ArgTy, 0); + + //b = vaarg a, t -> + //foo = alloca 1 of t + //bar = vacopy a + //store bar -> foo + //b = vaarg foo, t + AllocaInst* foo = new AllocaInst(ArgTy, 0, "vaarg.fix"); + BB->getInstList().push_back(foo); + CallInst* bar = new CallInst(NF, getValue(iType, Oprnds[0])); + BB->getInstList().push_back(bar); + BB->getInstList().push_back(new StoreInst(bar, foo)); + Result = new VAArgInst(foo, getSanitizedType(Oprnds[1])); break; + } case Instruction::Cast: Result = new CastInst(getValue(iType, Oprnds[0]), getSanitizedType(Oprnds[1])); Index: llvm/lib/Bytecode/Reader/ReaderWrappers.cpp diff -u llvm/lib/Bytecode/Reader/ReaderWrappers.cpp:1.47 llvm/lib/Bytecode/Reader/ReaderWrappers.cpp:1.48 --- llvm/lib/Bytecode/Reader/ReaderWrappers.cpp:1.47 Tue Jun 7 19:49:08 2005 +++ llvm/lib/Bytecode/Reader/ReaderWrappers.cpp Sat Jun 18 13:34:51 2005 @@ -149,6 +149,100 @@ } //===----------------------------------------------------------------------===// +// Varargs transmogrification code... +// + +// CheckVarargs - This is used to automatically translate old-style varargs to +// new style varargs for backwards compatibility. +static ModuleProvider* CheckVarargs(ModuleProvider* MP) { + Module* M = MP->getModule(); + + // check to see if va_start takes arguements... + Function* F = M->getNamedFunction("llvm.va_start"); + if(F == 0) return MP; //No varargs use, just return. + + if (F->getFunctionType()->getNumParams() == 1) + return MP; // Modern varargs processing, just return. + + // If we get to this point, we know that we have an old-style module. + // Materialize the whole thing to perform the rewriting. + MP->materializeModule(); + + if(Function* F = M->getNamedFunction("llvm.va_start")) { + assert(F->arg_size() == 0 && "Obsolete va_start takes 0 argument!"); + + //foo = va_start() + // -> + //bar = alloca typeof(foo) + //va_start(bar) + //foo = load bar + + const Type* RetTy = Type::getPrimitiveType(Type::VoidTyID); + const Type* ArgTy = F->getFunctionType()->getReturnType(); + const Type* ArgTyPtr = PointerType::get(ArgTy); + Function* NF = M->getOrInsertFunction("llvm.va_start", + RetTy, ArgTyPtr, 0); + + for(Value::use_iterator I = F->use_begin(), E = F->use_end(); I != E;) + if (CallInst* CI = dyn_cast(*I++)) { + AllocaInst* bar = new AllocaInst(ArgTy, 0, "vastart.fix.1", CI); + new CallInst(NF, bar, "", CI); + Value* foo = new LoadInst(bar, "vastart.fix.2", CI); + CI->replaceAllUsesWith(foo); + CI->getParent()->getInstList().erase(CI); + } + F->setName(""); + } + + if(Function* F = M->getNamedFunction("llvm.va_end")) { + assert(F->arg_size() == 1 && "Obsolete va_end takes 1 argument!"); + //vaend foo + // -> + //bar = alloca 1 of typeof(foo) + //vaend bar + const Type* RetTy = Type::getPrimitiveType(Type::VoidTyID); + const Type* ArgTy = F->getFunctionType()->getParamType(0); + const Type* ArgTyPtr = PointerType::get(ArgTy); + Function* NF = M->getOrInsertFunction("llvm.va_end", + RetTy, ArgTyPtr, 0); + + for(Value::use_iterator I = F->use_begin(), E = F->use_end(); I != E;) + if (CallInst* CI = dyn_cast(*I++)) { + AllocaInst* bar = new AllocaInst(ArgTy, 0, "vaend.fix.1", CI); + new CallInst(NF, bar, "", CI); + CI->getParent()->getInstList().erase(CI); + } + F->setName(""); + } + + if(Function* F = M->getNamedFunction("llvm.va_copy")) { + assert(F->arg_size() == 1 && "Obsolete va_copy takes 1 argument!"); + //foo = vacopy(bar) + // -> + //a = alloca 1 of typeof(foo) + //vacopy(a, bar) + //foo = load a + + const Type* RetTy = Type::getPrimitiveType(Type::VoidTyID); + const Type* ArgTy = F->getFunctionType()->getReturnType(); + const Type* ArgTyPtr = PointerType::get(ArgTy); + Function* NF = M->getOrInsertFunction("llvm.va_copy", + RetTy, ArgTyPtr, ArgTy, 0); + + for(Value::use_iterator I = F->use_begin(), E = F->use_end(); I != E;) + if (CallInst* CI = dyn_cast(*I++)) { + AllocaInst* a = new AllocaInst(ArgTy, 0, "vacopy.fix.1", CI); + new CallInst(NF, a, CI->getOperand(1), "", CI); + Value* foo = new LoadInst(a, "vacopy.fix.2", CI); + CI->replaceAllUsesWith(foo); + CI->getParent()->getInstList().erase(CI); + } + F->setName(""); + } + return MP; +} + +//===----------------------------------------------------------------------===// // Wrapper functions //===----------------------------------------------------------------------===// @@ -159,7 +253,8 @@ unsigned Length, const std::string &ModuleID, BytecodeHandler* H ) { - return new BytecodeBufferReader(Buffer, Length, ModuleID, H); + return CheckVarargs( + new BytecodeBufferReader(Buffer, Length, ModuleID, H)); } /// ParseBytecodeBuffer - Parse a given bytecode buffer @@ -182,9 +277,9 @@ ModuleProvider *llvm::getBytecodeModuleProvider(const std::string &Filename, BytecodeHandler* H) { if (Filename != std::string("-")) // Read from a file... - return new BytecodeFileReader(Filename,H); + return CheckVarargs(new BytecodeFileReader(Filename,H)); else // Read from stdin - return new BytecodeStdinReader(H); + return CheckVarargs(new BytecodeStdinReader(H)); } /// ParseBytecodeFile - Parse the given bytecode file From alenhar2 at cs.uiuc.edu Sat Jun 18 13:35:10 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:35:10 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/X86/X86ISelPattern.cpp X86ISelSimple.cpp Message-ID: <200506181835.NAA26134@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/X86: X86ISelPattern.cpp updated: 1.140 -> 1.141 X86ISelSimple.cpp updated: 1.319 -> 1.320 --- Log message: core changes for varargs --- Diffs of the changes: (+51 -56) X86ISelPattern.cpp | 63 +++++++++++++++++++++++++++++++---------------------- X86ISelSimple.cpp | 44 ++++++++++--------------------------- 2 files changed, 51 insertions(+), 56 deletions(-) Index: llvm/lib/Target/X86/X86ISelPattern.cpp diff -u llvm/lib/Target/X86/X86ISelPattern.cpp:1.140 llvm/lib/Target/X86/X86ISelPattern.cpp:1.141 --- llvm/lib/Target/X86/X86ISelPattern.cpp:1.140 Fri Jun 17 08:23:32 2005 +++ llvm/lib/Target/X86/X86ISelPattern.cpp Sat Jun 18 13:34:52 2005 @@ -176,12 +176,16 @@ SelectionDAG &DAG); virtual std::pair - LowerVAStart(SDOperand Chain, SelectionDAG &DAG); + LowerVAStart(SDOperand Chain, SelectionDAG &DAG, SDOperand Dest); virtual std::pair - LowerVAArgNext(bool isVANext, SDOperand Chain, SDOperand VAList, + LowerVAArgNext(SDOperand Chain, SDOperand VAList, const Type *ArgTy, SelectionDAG &DAG); + virtual std::pair + LowerVACopy(SDOperand Chain, SDOperand Src, SDOperand Dest, + SelectionDAG &DAG); + virtual std::pair LowerFrameReturnAddress(bool isFrameAddr, SDOperand Chain, unsigned Depth, SelectionDAG &DAG); @@ -442,35 +446,44 @@ return std::make_pair(ResultVal, Chain); } -std::pair -X86TargetLowering::LowerVAStart(SDOperand Chain, SelectionDAG &DAG) { - // vastart just returns the address of the VarArgsFrameIndex slot. - return std::make_pair(DAG.getFrameIndex(VarArgsFrameIndex, MVT::i32), Chain); +std::pair +X86TargetLowering::LowerVAStart(SDOperand Chain, SelectionDAG &DAG, SDOperand Dest) { + // vastart just stores the address of the VarArgsFrameIndex slot. + SDOperand FR = DAG.getFrameIndex(VarArgsFrameIndex, MVT::i32); + SDOperand Result = DAG.getNode(ISD::STORE, MVT::Other, Chain, FR, Dest, DAG.getSrcValue(NULL)); + return std::make_pair(Result, Result); } -std::pair X86TargetLowering:: -LowerVAArgNext(bool isVANext, SDOperand Chain, SDOperand VAList, - const Type *ArgTy, SelectionDAG &DAG) { +std::pair +X86TargetLowering::LowerVAArgNext(SDOperand Chain, SDOperand VAList, + const Type *ArgTy, SelectionDAG &DAG) { MVT::ValueType ArgVT = getValueType(ArgTy); - SDOperand Result; - if (!isVANext) { - Result = DAG.getLoad(ArgVT, DAG.getEntryNode(), VAList, - DAG.getSrcValue(NULL)); - } else { - unsigned Amt; - if (ArgVT == MVT::i32) - Amt = 4; - else { - assert((ArgVT == MVT::i64 || ArgVT == MVT::f64) && - "Other types should have been promoted for varargs!"); - Amt = 8; - } - Result = DAG.getNode(ISD::ADD, VAList.getValueType(), VAList, - DAG.getConstant(Amt, VAList.getValueType())); - } + SDOperand Val = DAG.getLoad(MVT::i32, Chain, VAList, DAG.getSrcValue(NULL)); + SDOperand Result = DAG.getLoad(ArgVT, Val.getValue(1), Val, DAG.getSrcValue(NULL)); + unsigned Amt; + if (ArgVT == MVT::i32) + Amt = 4; + else { + assert((ArgVT == MVT::i64 || ArgVT == MVT::f64) && + "Other types should have been promoted for varargs!"); + Amt = 8; + } + Val = DAG.getNode(ISD::ADD, Val.getValueType(), Val, + DAG.getConstant(Amt, Val.getValueType())); + Chain = DAG.getNode(ISD::STORE, MVT::Other, Chain, + Val, VAList, DAG.getSrcValue(NULL)); return std::make_pair(Result, Chain); } +std::pair +X86TargetLowering::LowerVACopy(SDOperand Chain, SDOperand Src, + SDOperand Dest, SelectionDAG &DAG) +{ + SDOperand Result = DAG.getNode(ISD::STORE, MVT::Other, Chain, + Src, Dest, DAG.getSrcValue(NULL)); + return std::make_pair(Result, Result); +} + //===----------------------------------------------------------------------===// // Fast Calling Convention implementation //===----------------------------------------------------------------------===// Index: llvm/lib/Target/X86/X86ISelSimple.cpp diff -u llvm/lib/Target/X86/X86ISelSimple.cpp:1.319 llvm/lib/Target/X86/X86ISelSimple.cpp:1.320 --- llvm/lib/Target/X86/X86ISelSimple.cpp:1.319 Fri May 13 16:48:20 2005 +++ llvm/lib/Target/X86/X86ISelSimple.cpp Sat Jun 18 13:34:52 2005 @@ -232,7 +232,6 @@ void visitShiftInst(ShiftInst &I); void visitPHINode(PHINode &I) {} // PHI nodes handled by second pass void visitCastInst(CastInst &I); - void visitVANextInst(VANextInst &I); void visitVAArgInst(VAArgInst &I); void visitInstruction(Instruction &I) { @@ -1838,12 +1837,14 @@ unsigned TmpReg1, TmpReg2; switch (ID) { case Intrinsic::vastart: + //FIXME: store to first arg, don't return // Get the address of the first vararg value... TmpReg1 = getReg(CI); addFrameReference(BuildMI(BB, X86::LEA32r, 5, TmpReg1), VarArgsFrameIndex); return; case Intrinsic::vacopy: + //FIXME: copy val of second into first (which is a ptr) TmpReg1 = getReg(CI); TmpReg2 = getReg(CI.getOperand(1)); BuildMI(BB, X86::MOV32rr, 1, TmpReg1).addReg(TmpReg2); @@ -3745,38 +3746,12 @@ abort(); } -/// visitVANextInst - Implement the va_next instruction... -/// -void X86ISel::visitVANextInst(VANextInst &I) { - unsigned VAList = getReg(I.getOperand(0)); - unsigned DestReg = getReg(I); - - unsigned Size; - switch (I.getArgType()->getTypeID()) { - default: - std::cerr << I; - assert(0 && "Error: bad type for va_next instruction!"); - return; - case Type::PointerTyID: - case Type::UIntTyID: - case Type::IntTyID: - Size = 4; - break; - case Type::ULongTyID: - case Type::LongTyID: - case Type::DoubleTyID: - Size = 8; - break; - } - - // Increment the VAList pointer... - BuildMI(BB, X86::ADD32ri, 2, DestReg).addReg(VAList).addImm(Size); -} - void X86ISel::visitVAArgInst(VAArgInst &I) { - unsigned VAList = getReg(I.getOperand(0)); + unsigned VAListPtr = getReg(I.getOperand(0)); unsigned DestReg = getReg(I); - + unsigned VAList = makeAnotherReg(Type::IntTy); + addDirectMem(BuildMI(BB, X86::MOV32rm, 4, VAList), VAListPtr); + unsigned Size; switch (I.getType()->getTypeID()) { default: std::cerr << I; @@ -3785,17 +3760,24 @@ case Type::PointerTyID: case Type::UIntTyID: case Type::IntTyID: + Size = 4; addDirectMem(BuildMI(BB, X86::MOV32rm, 4, DestReg), VAList); break; case Type::ULongTyID: case Type::LongTyID: + Size = 8; addDirectMem(BuildMI(BB, X86::MOV32rm, 4, DestReg), VAList); addRegOffset(BuildMI(BB, X86::MOV32rm, 4, DestReg+1), VAList, 4); break; case Type::DoubleTyID: + Size = 8; addDirectMem(BuildMI(BB, X86::FLD64m, 4, DestReg), VAList); break; } + // Increment the VAList pointer... + unsigned NP = makeAnotherReg(Type::IntTy); + BuildMI(BB, X86::ADD32ri, 2, NP).addReg(VAList).addSImm(Size); + addDirectMem(BuildMI(BB, X86::MOV32rm, 5), VAListPtr).addReg(VAList); } /// visitGetElementPtrInst - instruction-select GEP instructions From alenhar2 at cs.uiuc.edu Sat Jun 18 13:35:10 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:35:10 -0500 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Scalar/LICM.cpp Message-ID: <200506181835.NAA26135@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Scalar: LICM.cpp updated: 1.73 -> 1.74 --- Log message: core changes for varargs --- Diffs of the changes: (+1 -1) LICM.cpp | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Transforms/Scalar/LICM.cpp diff -u llvm/lib/Transforms/Scalar/LICM.cpp:1.73 llvm/lib/Transforms/Scalar/LICM.cpp:1.74 --- llvm/lib/Transforms/Scalar/LICM.cpp:1.73 Thu Apr 21 18:45:12 2005 +++ llvm/lib/Transforms/Scalar/LICM.cpp Sat Jun 18 13:34:52 2005 @@ -386,7 +386,7 @@ return isa(I) || isa(I) || isa(I) || isa(I) || - isa(I) || isa(I) || isa(I); + isa(I) || isa(I); } /// isNotUsedInLoop - Return true if the only users of this instruction are From alenhar2 at cs.uiuc.edu Sat Jun 18 13:35:10 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:35:10 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/CBackend/Writer.cpp Message-ID: <200506181835.NAA26111@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/CBackend: Writer.cpp updated: 1.238 -> 1.239 --- Log message: core changes for varargs --- Diffs of the changes: (+13 -18) Writer.cpp | 31 +++++++++++++------------------ 1 files changed, 13 insertions(+), 18 deletions(-) Index: llvm/lib/Target/CBackend/Writer.cpp diff -u llvm/lib/Target/CBackend/Writer.cpp:1.238 llvm/lib/Target/CBackend/Writer.cpp:1.239 --- llvm/lib/Target/CBackend/Writer.cpp:1.238 Fri May 6 01:58:42 2005 +++ llvm/lib/Target/CBackend/Writer.cpp Sat Jun 18 13:34:52 2005 @@ -145,7 +145,7 @@ // emit it inline where it would go. if (I.getType() == Type::VoidTy || !I.hasOneUse() || isa(I) || isa(I) || isa(I) || - isa(I) || isa(I) || isa(I)) + isa(I) || isa(I)) // Don't inline a load across a store or other bad things! return false; @@ -196,7 +196,6 @@ void visitLoadInst (LoadInst &I); void visitStoreInst (StoreInst &I); void visitGetElementPtrInst(GetElementPtrInst &I); - void visitVANextInst(VANextInst &I); void visitVAArgInst (VAArgInst &I); void visitInstruction(Instruction &I) { @@ -1469,7 +1468,10 @@ case Intrinsic::vastart: Out << "0; "; - Out << "va_start(*(va_list*)&" << Mang->getValueName(&I) << ", "; + // Out << "va_start(*(va_list*)&" << Mang->getValueName(&I) << ", "; + Out << "va_start(*(va_list*)"; + writeOperand(I.getOperand(1)); + Out << ", "; // Output the last argument to the enclosing function... if (I.getParent()->getParent()->arg_empty()) { std::cerr << "The C backend does not currently support zero " @@ -1482,7 +1484,7 @@ return; case Intrinsic::vaend: if (!isa(I.getOperand(1))) { - Out << "va_end(*(va_list*)&"; + Out << "0; va_end(*(va_list*)"; writeOperand(I.getOperand(1)); Out << ')'; } else { @@ -1490,10 +1492,11 @@ } return; case Intrinsic::vacopy: - Out << "0;"; - Out << "va_copy(*(va_list*)&" << Mang->getValueName(&I) << ", "; - Out << "*(va_list*)&"; + Out << "0; "; + Out << "va_copy(*(va_list*)"; writeOperand(I.getOperand(1)); + Out << ", *(va_list*)&"; + writeOperand(I.getOperand(2)); Out << ')'; return; case Intrinsic::returnaddress: @@ -1710,20 +1713,12 @@ gep_type_end(I)); } -void CWriter::visitVANextInst(VANextInst &I) { - Out << Mang->getValueName(I.getOperand(0)); - Out << "; va_arg(*(va_list*)&" << Mang->getValueName(&I) << ", "; - printType(Out, I.getArgType()); - Out << ')'; -} - void CWriter::visitVAArgInst(VAArgInst &I) { - Out << "0;\n"; - Out << "{ va_list Tmp; va_copy(Tmp, *(va_list*)&"; + Out << "va_arg(*(va_list*)"; writeOperand(I.getOperand(0)); - Out << ");\n " << Mang->getValueName(&I) << " = va_arg(Tmp, "; + Out << ", "; printType(Out, I.getType()); - Out << ");\n va_end(Tmp); }"; + Out << ");\n "; } //===----------------------------------------------------------------------===// From alenhar2 at cs.uiuc.edu Sat Jun 18 13:35:10 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:35:10 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/IA64/IA64ISelPattern.cpp Message-ID: <200506181835.NAA26113@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/IA64: IA64ISelPattern.cpp updated: 1.44 -> 1.45 --- Log message: core changes for varargs --- Diffs of the changes: (+35 -21) IA64ISelPattern.cpp | 56 ++++++++++++++++++++++++++++++++-------------------- 1 files changed, 35 insertions(+), 21 deletions(-) Index: llvm/lib/Target/IA64/IA64ISelPattern.cpp diff -u llvm/lib/Target/IA64/IA64ISelPattern.cpp:1.44 llvm/lib/Target/IA64/IA64ISelPattern.cpp:1.45 --- llvm/lib/Target/IA64/IA64ISelPattern.cpp:1.44 Fri May 20 06:39:17 2005 +++ llvm/lib/Target/IA64/IA64ISelPattern.cpp Sat Jun 18 13:34:52 2005 @@ -114,12 +114,16 @@ SelectionDAG &DAG); virtual std::pair - LowerVAStart(SDOperand Chain, SelectionDAG &DAG); + LowerVAStart(SDOperand Chain, SelectionDAG &DAG, SDOperand Dest); virtual std::pair - LowerVAArgNext(bool isVANext, SDOperand Chain, SDOperand VAList, + LowerVAArgNext(SDOperand Chain, SDOperand VAList, const Type *ArgTy, SelectionDAG &DAG); + virtual std::pair + LowerVACopy(SDOperand Chain, SDOperand Src, SDOperand Dest, + SelectionDAG &DAG); + virtual std::pair LowerFrameReturnAddress(bool isFrameAddr, SDOperand Chain, unsigned Depth, SelectionDAG &DAG); @@ -380,34 +384,44 @@ } std::pair -IA64TargetLowering::LowerVAStart(SDOperand Chain, SelectionDAG &DAG) { - // vastart just returns the address of the VarArgsFrameIndex slot. - return std::make_pair(DAG.getFrameIndex(VarArgsFrameIndex, MVT::i64), Chain); +IA64TargetLowering::LowerVAStart(SDOperand Chain, SelectionDAG &DAG, SDOperand Dest) { + // vastart just stores the address of the VarArgsFrameIndex slot. + SDOperand FR = DAG.getFrameIndex(VarArgsFrameIndex, MVT::i64); + SDOperand Result = DAG.getNode(ISD::STORE, MVT::Other, Chain, FR, Dest, DAG.getSrcValue(NULL)); + return std::make_pair(Result, Result); } std::pair IA64TargetLowering:: -LowerVAArgNext(bool isVANext, SDOperand Chain, SDOperand VAList, +LowerVAArgNext(SDOperand Chain, SDOperand VAList, const Type *ArgTy, SelectionDAG &DAG) { MVT::ValueType ArgVT = getValueType(ArgTy); - SDOperand Result; - if (!isVANext) { - Result = DAG.getLoad(ArgVT, DAG.getEntryNode(), VAList, DAG.getSrcValue(NULL)); - } else { - unsigned Amt; - if (ArgVT == MVT::i32 || ArgVT == MVT::f32) - Amt = 8; - else { - assert((ArgVT == MVT::i64 || ArgVT == MVT::f64) && - "Other types should have been promoted for varargs!"); - Amt = 8; - } - Result = DAG.getNode(ISD::ADD, VAList.getValueType(), VAList, - DAG.getConstant(Amt, VAList.getValueType())); - } + SDOperand Val = DAG.getLoad(MVT::i64, Chain, VAList, DAG.getSrcValue(NULL)); + SDOperand Result = DAG.getLoad(ArgVT, DAG.getEntryNode(), Val, DAG.getSrcValue(NULL)); + unsigned Amt; + if (ArgVT == MVT::i32 || ArgVT == MVT::f32) + Amt = 8; + else { + assert((ArgVT == MVT::i64 || ArgVT == MVT::f64) && + "Other types should have been promoted for varargs!"); + Amt = 8; + } + Val = DAG.getNode(ISD::ADD, Val.getValueType(), Val, + DAG.getConstant(Amt, Val.getValueType())); + Chain = DAG.getNode(ISD::STORE, MVT::Other, Chain, + Val, VAList, DAG.getSrcValue(NULL)); return std::make_pair(Result, Chain); } +std::pair +IA64TargetLowering::LowerVACopy(SDOperand Chain, SDOperand Src, + SDOperand Dest, SelectionDAG &DAG) +{ + SDOperand Result = DAG.getNode(ISD::STORE, MVT::Other, Chain, + Src, Dest, DAG.getSrcValue(NULL)); + return std::make_pair(Result, Result); +} + std::pair IA64TargetLowering:: LowerFrameReturnAddress(bool isFrameAddress, SDOperand Chain, unsigned Depth, SelectionDAG &DAG) { From alenhar2 at cs.uiuc.edu Sat Jun 18 13:46:51 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 13:46:51 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/SparcV9/SparcV9.burg.in SparcV9BurgISel.cpp Message-ID: <200506181846.NAA26201@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/SparcV9: SparcV9.burg.in updated: 1.14 -> 1.15 SparcV9BurgISel.cpp updated: 1.19 -> 1.20 --- Log message: OK, at least get rid of old stuff, and mark what needs to be fixed for V9 --- Diffs of the changes: (+4 -2) SparcV9.burg.in | 2 -- SparcV9BurgISel.cpp | 4 ++++ 2 files changed, 4 insertions(+), 2 deletions(-) Index: llvm/lib/Target/SparcV9/SparcV9.burg.in diff -u llvm/lib/Target/SparcV9/SparcV9.burg.in:1.14 llvm/lib/Target/SparcV9/SparcV9.burg.in:1.15 --- llvm/lib/Target/SparcV9/SparcV9.burg.in:1.14 Sun Oct 17 00:37:47 2004 +++ llvm/lib/Target/SparcV9/SparcV9.burg.in Sat Jun 18 13:46:40 2005 @@ -96,7 +96,6 @@ %term Call=CallOPCODE %term Shl=ShlOPCODE %term Shr=ShrOPCODE -%term VANext=VANextOPCODE %term VAArg=VAArgOPCODE /* 33...46 are unused */ /* @@ -268,7 +267,6 @@ reg: Shl(reg,reg) = 62 (20); /* 1 for issue restrictions */ reg: Shr(reg,reg) = 63 (20); /* 1 for issue restrictions */ reg: Phi(reg,reg) = 64 (0); -reg: VANext(reg) = 65 (40); /* incr stack slot pointer */ reg: VAArg(reg) = 66 (40); /* get a vararg */ /* Index: llvm/lib/Target/SparcV9/SparcV9BurgISel.cpp diff -u llvm/lib/Target/SparcV9/SparcV9BurgISel.cpp:1.19 llvm/lib/Target/SparcV9/SparcV9BurgISel.cpp:1.20 --- llvm/lib/Target/SparcV9/SparcV9BurgISel.cpp:1.19 Sat Jun 18 12:37:34 2005 +++ llvm/lib/Target/SparcV9/SparcV9BurgISel.cpp Sat Jun 18 13:46:40 2005 @@ -4216,6 +4216,8 @@ case 64: // reg: Phi(reg,reg) break; // don't forward the value +#if 0 +//FIXME: new VAArg support case 65: // reg: VANext(reg): the va_next(va_list, type) instruction { // Increment the va_list pointer register according to the type. // All LLVM argument types are <= 64 bits, so use one doubleword. @@ -4227,7 +4229,9 @@ addSImm(argSize).addRegDef(vaNextI)); break; } +#endif +//FIXME: new VAArg support case 66: // reg: VAArg (reg): the va_arg instruction { // Load argument from stack using current va_list pointer value. // Use 64-bit load for all non-FP args, and LDDF or double for FP. From reid at x10sys.com Sat Jun 18 14:58:21 2005 From: reid at x10sys.com (Reid Spencer) Date: Sat, 18 Jun 2005 12:58:21 -0700 Subject: [llvm-commits] CVS: llvm/test/Feature/varargs_new.ll In-Reply-To: <200506181830.NAA25879@zion.cs.uiuc.edu> References: <200506181830.NAA25879@zion.cs.uiuc.edu> Message-ID: <1119124701.16576.90.camel@bashful.x10sys.com> I get this with your changes: Running /proj/llvm/build/../llvm/test/Feature/dg.exp ... FAIL: /proj/llvm/build/../llvm/test/Feature/varargs_new.ll: llvm-as: /proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y:740: llvm::Module* RunParser(llvm::Module*): Assertion `F->arg.llvm-as ((anonymous namespace)::PrintStackTrace()+0x1a)[0x82c4142] llvm-as((anonymous namespace)::SignalHandler(int)+0xd3)[0x82c440b] /lib/tls/libc.so.6[0xaef8c8] /lib/ld-linux.so.2[0xa587a2] /lib/tls/libc.so.6(gsignal+0x55)[0xaef7d5] /lib/tls/libc.so.6(abort+0xe9)[0xaf1149] /lib/tls/libc.so.6(__assert_fail+0x101)[0xae8db1] llvm-as[0x81c0ee0] llvm-as(llvm::RunVMAsmParser(std::basic_string, std::allocator > const&, _IO_FILE*)+0x73)[0]llvm-as(llvm::ParseAssemblyFile (std::basic_string, std::allocator > const&)+0x1c1)[0x81afa4]llvm-as(main+0x5a)[0x81ab16e] /lib/tls/libc.so.6(__libc_start_main+0xd3)[0xadce23] llvm-as(__gxx_personality_v0+0xd1)[0x81ab091] llvm-dis: Standard Input empty! 0a1,3 ; ModuleID = '' implementation ; Functions: Reid On Sat, 2005-06-18 at 13:30 -0500, Andrew Lenharth wrote: > > Changes in directory llvm/test/Feature: > > varargs_new.ll added (r1.1) > --- > Log message: > > new vararg test > > --- > Diffs of the changes: (+33 -0) > > varargs_new.ll | 33 +++++++++++++++++++++++++++++++++ > 1 files changed, 33 insertions(+) > > > Index: llvm/test/Feature/varargs_new.ll > diff -c /dev/null llvm/test/Feature/varargs_new.ll:1.1 > *** /dev/null Sat Jun 18 13:30:47 2005 > --- llvm/test/Feature/varargs_new.ll Sat Jun 18 13:30:37 2005 > *************** > *** 0 **** > --- 1,33 ---- > + ; RUN: llvm-as %s -o - | llvm-dis > %t1.ll > + ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll > + ; RUN: diff %t1.ll %t2.ll > + > + ; Demonstrate all of the variable argument handling intrinsic functions plus > + ; the va_arg instruction. > + > + implementation ; Functions: > + declare void %llvm.va_start(sbyte**) > + declare void %llvm.va_copy(sbyte**, sbyte*) > + declare void %llvm.va_end(sbyte**) > + > + int %test(int %X, ...) { > + ; Allocate two va_list items. On this target, va_list is of type sbyte* > + %ap = alloca sbyte* ; [#uses=4] > + %aq = alloca sbyte* ; [#uses=2] > + > + ; Initialize variable argument processing > + call void %llvm.va_start(sbyte** %ap) > + > + ; Read a single integer argument > + %tmp = vaarg sbyte** %ap, int ; [#uses=1] > + > + ; Demonstrate usage of llvm.va_copy and llvm_va_end > + %apv = load sbyte** %ap ; [#uses=1] > + call void %llvm.va_copy(sbyte** %aq, sbyte* %apv) > + call void %llvm.va_end(sbyte** %aq) > + > + ; Stop processing of arguments. > + call void %llvm.va_end(sbyte** %ap) > + ret int %tmp > + > + } > > > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://mail.cs.uiuc.edu/mailman/listinfo/llvm-commits -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20050618/3a9f0ba4/attachment.bin From reid at x10sys.com Sat Jun 18 15:27:44 2005 From: reid at x10sys.com (Reid Spencer) Date: Sat, 18 Jun 2005 15:27:44 -0500 Subject: [llvm-commits] CVS: llvm/test/Feature/varargs_new.ll Message-ID: <200506182027.PAA26490@zion.cs.uiuc.edu> Changes in directory llvm/test/Feature: varargs_new.ll updated: 1.1 -> 1.2 --- Log message: Fix this test case to actually test the new va_arg instruction not the old vaarg instruction. --- Diffs of the changes: (+1 -1) varargs_new.ll | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/test/Feature/varargs_new.ll diff -u llvm/test/Feature/varargs_new.ll:1.1 llvm/test/Feature/varargs_new.ll:1.2 --- llvm/test/Feature/varargs_new.ll:1.1 Sat Jun 18 13:30:37 2005 +++ llvm/test/Feature/varargs_new.ll Sat Jun 18 15:27:32 2005 @@ -19,7 +19,7 @@ call void %llvm.va_start(sbyte** %ap) ; Read a single integer argument - %tmp = vaarg sbyte** %ap, int ; [#uses=1] + %tmp = va_arg sbyte** %ap, int ; [#uses=1] ; Demonstrate usage of llvm.va_copy and llvm_va_end %apv = load sbyte** %ap ; [#uses=1] From reid at x10sys.com Sat Jun 18 15:29:39 2005 From: reid at x10sys.com (Reid Spencer) Date: Sat, 18 Jun 2005 13:29:39 -0700 Subject: [llvm-commits] CVS: llvm/test/Feature/varargs_new.ll In-Reply-To: <1119124701.16576.90.camel@bashful.x10sys.com> References: <200506181830.NAA25879@zion.cs.uiuc.edu> <1119124701.16576.90.camel@bashful.x10sys.com> Message-ID: <1119126579.16576.92.camel@bashful.x10sys.com> Andrew, I think I fixed this, but I'd like you to verify my patch, please: http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050613/026759.html Thanks, Reid. On Sat, 2005-06-18 at 12:58 -0700, Reid Spencer wrote: > I get this with your changes: > > Running /proj/llvm/build/../llvm/test/Feature/dg.exp ... > FAIL: /proj/llvm/build/../llvm/test/Feature/varargs_new.ll: > llvm-as: /proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y:740: > llvm::Module* RunParser(llvm::Module*): Assertion `F->arg.llvm-as > ((anonymous namespace)::PrintStackTrace()+0x1a)[0x82c4142] > llvm-as((anonymous namespace)::SignalHandler(int)+0xd3)[0x82c440b] > /lib/tls/libc.so.6[0xaef8c8] > /lib/ld-linux.so.2[0xa587a2] > /lib/tls/libc.so.6(gsignal+0x55)[0xaef7d5] > /lib/tls/libc.so.6(abort+0xe9)[0xaf1149] > /lib/tls/libc.so.6(__assert_fail+0x101)[0xae8db1] > llvm-as[0x81c0ee0] > llvm-as(llvm::RunVMAsmParser(std::basic_string std::char_traits, std::allocator > const&, > _IO_FILE*)+0x73)[0]llvm-as(llvm::ParseAssemblyFile > (std::basic_string, std::allocator > > const&)+0x1c1)[0x81afa4]llvm-as(main+0x5a)[0x81ab16e] > /lib/tls/libc.so.6(__libc_start_main+0xd3)[0xadce23] > llvm-as(__gxx_personality_v0+0xd1)[0x81ab091] > llvm-dis: Standard Input empty! > 0a1,3 > ; ModuleID = '' > implementation ; Functions: > > Reid > > On Sat, 2005-06-18 at 13:30 -0500, Andrew Lenharth wrote: > > > > Changes in directory llvm/test/Feature: > > > > varargs_new.ll added (r1.1) > > --- > > Log message: > > > > new vararg test > > > > --- > > Diffs of the changes: (+33 -0) > > > > varargs_new.ll | 33 +++++++++++++++++++++++++++++++++ > > 1 files changed, 33 insertions(+) > > > > > > Index: llvm/test/Feature/varargs_new.ll > > diff -c /dev/null llvm/test/Feature/varargs_new.ll:1.1 > > *** /dev/null Sat Jun 18 13:30:47 2005 > > --- llvm/test/Feature/varargs_new.ll Sat Jun 18 13:30:37 2005 > > *************** > > *** 0 **** > > --- 1,33 ---- > > + ; RUN: llvm-as %s -o - | llvm-dis > %t1.ll > > + ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll > > + ; RUN: diff %t1.ll %t2.ll > > + > > + ; Demonstrate all of the variable argument handling intrinsic functions plus > > + ; the va_arg instruction. > > + > > + implementation ; Functions: > > + declare void %llvm.va_start(sbyte**) > > + declare void %llvm.va_copy(sbyte**, sbyte*) > > + declare void %llvm.va_end(sbyte**) > > + > > + int %test(int %X, ...) { > > + ; Allocate two va_list items. On this target, va_list is of type sbyte* > > + %ap = alloca sbyte* ; [#uses=4] > > + %aq = alloca sbyte* ; [#uses=2] > > + > > + ; Initialize variable argument processing > > + call void %llvm.va_start(sbyte** %ap) > > + > > + ; Read a single integer argument > > + %tmp = vaarg sbyte** %ap, int ; [#uses=1] > > + > > + ; Demonstrate usage of llvm.va_copy and llvm_va_end > > + %apv = load sbyte** %ap ; [#uses=1] > > + call void %llvm.va_copy(sbyte** %aq, sbyte* %apv) > > + call void %llvm.va_end(sbyte** %aq) > > + > > + ; Stop processing of arguments. > > + call void %llvm.va_end(sbyte** %ap) > > + ret int %tmp > > + > > + } > > > > > > > > _______________________________________________ > > llvm-commits mailing list > > llvm-commits at cs.uiuc.edu > > http://mail.cs.uiuc.edu/mailman/listinfo/llvm-commits > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://mail.cs.uiuc.edu/mailman/listinfo/llvm-commits -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20050618/10ae2101/attachment.bin From reid at x10sys.com Sat Jun 18 16:02:08 2005 From: reid at x10sys.com (Reid Spencer) Date: Sat, 18 Jun 2005 14:02:08 -0700 Subject: [llvm-commits] CVS: llvm/test/Feature/varargs_new.ll In-Reply-To: <1119126579.16576.92.camel@bashful.x10sys.com> References: <200506181830.NAA25879@zion.cs.uiuc.edu> <1119124701.16576.90.camel@bashful.x10sys.com> <1119126579.16576.92.camel@bashful.x10sys.com> Message-ID: <1119128528.16576.96.camel@bashful.x10sys.com> Andrew, One more thought on this. You should probably write two XFAIL tests for this feature that test (a) whether old style vaarg is mixed with new style intrinsics and (b) whether new style va_arg is mixed with old style intrinsics. This is just to make sure that that the assembler correctly rejects programs that mix the styles. Reid. On Sat, 2005-06-18 at 13:29 -0700, Reid Spencer wrote: > Andrew, > > I think I fixed this, but I'd like you to verify my patch, please: > > http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050613/026759.html > > Thanks, > > Reid. > > On Sat, 2005-06-18 at 12:58 -0700, Reid Spencer wrote: > > I get this with your changes: > > > > Running /proj/llvm/build/../llvm/test/Feature/dg.exp ... > > FAIL: /proj/llvm/build/../llvm/test/Feature/varargs_new.ll: > > llvm-as: /proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y:740: > > llvm::Module* RunParser(llvm::Module*): Assertion `F->arg.llvm-as > > ((anonymous namespace)::PrintStackTrace()+0x1a)[0x82c4142] > > llvm-as((anonymous namespace)::SignalHandler(int)+0xd3)[0x82c440b] > > /lib/tls/libc.so.6[0xaef8c8] > > /lib/ld-linux.so.2[0xa587a2] > > /lib/tls/libc.so.6(gsignal+0x55)[0xaef7d5] > > /lib/tls/libc.so.6(abort+0xe9)[0xaf1149] > > /lib/tls/libc.so.6(__assert_fail+0x101)[0xae8db1] > > llvm-as[0x81c0ee0] > > llvm-as(llvm::RunVMAsmParser(std::basic_string > std::char_traits, std::allocator > const&, > > _IO_FILE*)+0x73)[0]llvm-as(llvm::ParseAssemblyFile > > (std::basic_string, std::allocator > > > const&)+0x1c1)[0x81afa4]llvm-as(main+0x5a)[0x81ab16e] > > /lib/tls/libc.so.6(__libc_start_main+0xd3)[0xadce23] > > llvm-as(__gxx_personality_v0+0xd1)[0x81ab091] > > llvm-dis: Standard Input empty! > > 0a1,3 > > ; ModuleID = '' > > implementation ; Functions: > > > > Reid > > > > On Sat, 2005-06-18 at 13:30 -0500, Andrew Lenharth wrote: > > > > > > Changes in directory llvm/test/Feature: > > > > > > varargs_new.ll added (r1.1) > > > --- > > > Log message: > > > > > > new vararg test > > > > > > --- > > > Diffs of the changes: (+33 -0) > > > > > > varargs_new.ll | 33 +++++++++++++++++++++++++++++++++ > > > 1 files changed, 33 insertions(+) > > > > > > > > > Index: llvm/test/Feature/varargs_new.ll > > > diff -c /dev/null llvm/test/Feature/varargs_new.ll:1.1 > > > *** /dev/null Sat Jun 18 13:30:47 2005 > > > --- llvm/test/Feature/varargs_new.ll Sat Jun 18 13:30:37 2005 > > > *************** > > > *** 0 **** > > > --- 1,33 ---- > > > + ; RUN: llvm-as %s -o - | llvm-dis > %t1.ll > > > + ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll > > > + ; RUN: diff %t1.ll %t2.ll > > > + > > > + ; Demonstrate all of the variable argument handling intrinsic functions plus > > > + ; the va_arg instruction. > > > + > > > + implementation ; Functions: > > > + declare void %llvm.va_start(sbyte**) > > > + declare void %llvm.va_copy(sbyte**, sbyte*) > > > + declare void %llvm.va_end(sbyte**) > > > + > > > + int %test(int %X, ...) { > > > + ; Allocate two va_list items. On this target, va_list is of type sbyte* > > > + %ap = alloca sbyte* ; [#uses=4] > > > + %aq = alloca sbyte* ; [#uses=2] > > > + > > > + ; Initialize variable argument processing > > > + call void %llvm.va_start(sbyte** %ap) > > > + > > > + ; Read a single integer argument > > > + %tmp = vaarg sbyte** %ap, int ; [#uses=1] > > > + > > > + ; Demonstrate usage of llvm.va_copy and llvm_va_end > > > + %apv = load sbyte** %ap ; [#uses=1] > > > + call void %llvm.va_copy(sbyte** %aq, sbyte* %apv) > > > + call void %llvm.va_end(sbyte** %aq) > > > + > > > + ; Stop processing of arguments. > > > + call void %llvm.va_end(sbyte** %ap) > > > + ret int %tmp > > > + > > > + } > > > > > > > > > > > > _______________________________________________ > > > llvm-commits mailing list > > > llvm-commits at cs.uiuc.edu > > > http://mail.cs.uiuc.edu/mailman/listinfo/llvm-commits > > _______________________________________________ > > llvm-commits mailing list > > llvm-commits at cs.uiuc.edu > > http://mail.cs.uiuc.edu/mailman/listinfo/llvm-commits > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://mail.cs.uiuc.edu/mailman/listinfo/llvm-commits -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20050618/f2cfe8f2/attachment.bin From reid at x10sys.com Sat Jun 18 16:11:31 2005 From: reid at x10sys.com (Reid Spencer) Date: Sat, 18 Jun 2005 16:11:31 -0500 Subject: [llvm-commits] CVS: llvm-gcc/gcc/llvm-expand.c llvm-representation.c llvm-representation.h llvm-types.c Message-ID: <200506182111.QAA26657@zion.cs.uiuc.edu> Changes in directory llvm-gcc/gcc: llvm-expand.c updated: 1.101 -> 1.102 llvm-representation.c updated: 1.17 -> 1.18 llvm-representation.h updated: 1.15 -> 1.16 llvm-types.c updated: 1.22 -> 1.23 --- Log message: Clean up some code (no functional changes): * Correct constructs that GCC 4.0.0 errors on such as functions with no return type, inconsistent constness, and under-specified static initializers * Wrap some long lines * Comment out some variables that are not used. --- Diffs of the changes: (+31 -30) llvm-expand.c | 11 ++++++----- llvm-representation.c | 10 +++++----- llvm-representation.h | 8 ++++---- llvm-types.c | 32 ++++++++++++++++---------------- 4 files changed, 31 insertions(+), 30 deletions(-) Index: llvm-gcc/gcc/llvm-expand.c diff -u llvm-gcc/gcc/llvm-expand.c:1.101 llvm-gcc/gcc/llvm-expand.c:1.102 --- llvm-gcc/gcc/llvm-expand.c:1.101 Wed Jun 15 17:44:27 2005 +++ llvm-gcc/gcc/llvm-expand.c Sat Jun 18 16:11:19 2005 @@ -160,8 +160,9 @@ return I; } -static inline llvm_value *cast_if_type_not_equal(llvm_function *Fn, - llvm_value *V, llvm_type *Ty) { +static inline llvm_value * +cast_if_type_not_equal(llvm_function *Fn, + llvm_value *V, const llvm_type *Ty) { llvm_instruction *Cast; if (V->Ty == Ty) return V; /* No cast required? */ @@ -2645,7 +2646,7 @@ */ static void llvm_expand_anon_union_decl(llvm_function *Fn, tree decl, tree decl_elts) { - llvm_nesting *InnermostCleanupScope = Fn->ExpandInfo->InnermostBlockScope; + /*llvm_nesting *InnermostCleanupScope = Fn->ExpandInfo->InnermostBlockScope;*/ llvm_value *x; tree t; @@ -7438,7 +7439,7 @@ assembler symbol name. */ extern int decode_reg_name(const char *); void llvm_make_decl_llvm(tree decl, const char *asmspec) { - int top_level = (DECL_CONTEXT (decl) == NULL_TREE); + /*int top_level = (DECL_CONTEXT (decl) == NULL_TREE); */ const char *name = 0; int reg_number; @@ -8144,7 +8145,7 @@ /* Emit intrinsics to mark variable declarations */ -static void llvm_emit_dbg_declare(llvm_function *Fn, tree t){ +static void llvm_emit_dbg_declare(llvm_function * Fn, tree t){ /* FIXME: need to actually do this. See llvm_emit_dbg_stoppoint for an example of how to create a new Index: llvm-gcc/gcc/llvm-representation.c diff -u llvm-gcc/gcc/llvm-representation.c:1.17 llvm-gcc/gcc/llvm-representation.c:1.18 --- llvm-gcc/gcc/llvm-representation.c:1.17 Wed Feb 23 11:33:28 2005 +++ llvm-gcc/gcc/llvm-representation.c Sat Jun 18 16:11:20 2005 @@ -185,12 +185,12 @@ subsequent values get increasing identifiers. The name and type of a value should not be changed after they are constructed. */ -void llvm_value_construct(llvm_value *Val, struct llvm_type *Type, +void llvm_value_construct(llvm_value *Val, const struct llvm_type *Type, const char *Name, enum ValueType VT) { llvm_value *GlobalVal; Val->VTy = VT; GlobalVal = llvm_value_is_global(Val) ? Val : 0; - Val->Ty = Type; + Val->Ty = (struct llvm_type*) Type; if (Name[0] == '*') ++Name; Val->Name = Name[0] ? IdentifierTableGetName(Name, GlobalVal) : xstrdup(Name); } @@ -267,7 +267,7 @@ /* llvm_constant implementation ******************************************** */ -void llvm_constant_construct(llvm_constant *C, struct llvm_type *Ty, +void llvm_constant_construct(llvm_constant *C, const struct llvm_type *Ty, const char *Name, enum ValueType VT, const char *Rep) { llvm_value_construct(D2V(C), Ty, Name, VT); @@ -279,7 +279,7 @@ llvm_value_destruct(D2V(C)); } -llvm_value *llvm_constant_new(struct llvm_type *Ty, const char *Rep) { +llvm_value *llvm_constant_new(const struct llvm_type *Ty, const char *Rep) { llvm_constant *C = (llvm_constant*)xcalloc(sizeof(llvm_constant), 1); llvm_constant_construct(C, Ty, "", Constant, Rep); return D2V(C); @@ -340,7 +340,7 @@ llvm_constant_intptr_0 = llvm_constant_int_0; } -llvm_value *llvm_constant_get_null(llvm_type *Ty) { +llvm_value *llvm_constant_get_null(const llvm_type *Ty) { if (Ty == UByteTy) return llvm_constant_ubyte_0; if (Ty == IntTy) return llvm_constant_int_0; if (Ty == UIntTy) return llvm_constant_uint_0; Index: llvm-gcc/gcc/llvm-representation.h diff -u llvm-gcc/gcc/llvm-representation.h:1.15 llvm-gcc/gcc/llvm-representation.h:1.16 --- llvm-gcc/gcc/llvm-representation.h:1.15 Wed Mar 2 11:03:07 2005 +++ llvm-gcc/gcc/llvm-representation.h Sat Jun 18 16:11:20 2005 @@ -48,7 +48,7 @@ } llvm_value; /* llvm_value_construct make a copy of the name string argument */ -void llvm_value_construct(llvm_value *Val, struct llvm_type *Type, +void llvm_value_construct(llvm_value *Val, const struct llvm_type *Type, const char *Name, enum ValueType VT); void llvm_value_destruct(llvm_value *Val); @@ -90,11 +90,11 @@ "Operand to V2C is not a constant"), \ (llvm_constant*)(VAL)) -llvm_value *llvm_constant_new(struct llvm_type *Ty, const char *Rep); +llvm_value *llvm_constant_new(const struct llvm_type *Ty, const char *Rep); llvm_value *llvm_constant_new_integral(struct llvm_type *Ty, long long X); -llvm_value *llvm_constant_get_null(struct llvm_type *Ty); +llvm_value *llvm_constant_get_null(const struct llvm_type *Ty); int llvm_is_null_constant(llvm_value *V); -void llvm_constant_construct(llvm_constant *C, struct llvm_type *Ty, +void llvm_constant_construct(llvm_constant *C, const struct llvm_type *Ty, const char *Name, enum ValueType VT, const char *Rep); void llvm_constant_destruct(llvm_constant *C); Index: llvm-gcc/gcc/llvm-types.c diff -u llvm-gcc/gcc/llvm-types.c:1.22 llvm-gcc/gcc/llvm-types.c:1.23 --- llvm-gcc/gcc/llvm-types.c:1.22 Fri May 13 00:30:45 2005 +++ llvm-gcc/gcc/llvm-types.c Sat Jun 18 16:11:20 2005 @@ -70,19 +70,19 @@ } /* All of the primitive types... */ -static llvm_type TheVoidTy = { VoidTyID }; -static llvm_type TheBoolTy = { BoolTyID }; -static llvm_type TheUByteTy = { UByteTyID }; -static llvm_type TheSByteTy = { SByteTyID }; -static llvm_type TheUShortTy = { UShortTyID }; -static llvm_type TheShortTy = { ShortTyID }; -static llvm_type TheUIntTy = { UIntTyID }; -static llvm_type TheIntTy = { IntTyID }; -static llvm_type TheULongTy = { ULongTyID }; -static llvm_type TheLongTy = { LongTyID }; -static llvm_type TheFloatTy = { FloatTyID }; -static llvm_type TheDoubleTy = { DoubleTyID }; -static llvm_type TheLabelTy = { LabelTyID }; +static llvm_type TheVoidTy = { VoidTyID, 0, {{0}}, 0, {0} }; +static llvm_type TheBoolTy = { BoolTyID , 0, {{0}}, 0, {0} }; +static llvm_type TheUByteTy = { UByteTyID, 0, {{0}}, 0, {0} }; +static llvm_type TheSByteTy = { SByteTyID, 0, {{0}}, 0, {0} }; +static llvm_type TheUShortTy = { UShortTyID, 0, {{0}}, 0, {0} }; +static llvm_type TheShortTy = { ShortTyID, 0, {{0}}, 0, {0} }; +static llvm_type TheUIntTy = { UIntTyID, 0, {{0}}, 0, {0} }; +static llvm_type TheIntTy = { IntTyID, 0, {{0}}, 0, {0} }; +static llvm_type TheULongTy = { ULongTyID, 0, {{0}}, 0, {0} }; +static llvm_type TheLongTy = { LongTyID, 0, {{0}}, 0, {0} }; +static llvm_type TheFloatTy = { FloatTyID, 0, {{0}}, 0, {0} }; +static llvm_type TheDoubleTy = { DoubleTyID, 0, {{0}}, 0, {0} }; +static llvm_type TheLabelTy = { LabelTyID, 0, {{0}}, 0, {0} }; llvm_type *VoidTy = &TheVoidTy; llvm_type *BoolTy = &TheBoolTy; llvm_type *UByteTy = &TheUByteTy; @@ -637,8 +637,8 @@ #define DEBUG_STRUCT_LAYOUT 0 -static void PrintFieldInfo(tree field ATTRIBUTE_UNUSED) { #if DEBUG_STRUCT_LAYOUT +static void PrintFieldInfo(tree field ATTRIBUTE_UNUSED) { llvm_type *FieldTy = llvm_type_get_from_tree(TREE_TYPE(field)); fprintf(stderr, "FIELD: off=%d size=%d ", GetFieldOffset(field), GetDeclSize(field)); @@ -646,8 +646,8 @@ fprintf(stderr, " name='%s' talign=%d dalign=%d\n", DECL_NAME(field) ? IDENTIFIER_POINTER(DECL_NAME(field)) : "", GetFieldAlignmentInBits(field), TYPE_ALIGN(TREE_TYPE(field))/8); -#endif } +#endif /* For bit-field layout, "integral" types are treated differently than other @@ -946,7 +946,7 @@ /* isStructWithHoles - This function returns true if the specified type is a * struct and if it has inter-element gaps. */ -static isStructWithHoles(llvm_type *Ty) { +static int isStructWithHoles(llvm_type *Ty) { unsigned i, e; if (Ty->ID != StructTyID) return 0; From reid at x10sys.com Sat Jun 18 17:59:43 2005 From: reid at x10sys.com (Reid Spencer) Date: Sat, 18 Jun 2005 17:59:43 -0500 Subject: [llvm-commits] CVS: llvm/docs/CommandGuide/.cvsignore Message-ID: <200506182259.RAA27081@zion.cs.uiuc.edu> Changes in directory llvm/docs/CommandGuide: .cvsignore updated: 1.1 -> 1.2 --- Log message: Ignore generated files. --- Diffs of the changes: (+3 -0) .cvsignore | 3 +++ 1 files changed, 3 insertions(+) Index: llvm/docs/CommandGuide/.cvsignore diff -u llvm/docs/CommandGuide/.cvsignore:1.1 llvm/docs/CommandGuide/.cvsignore:1.2 --- llvm/docs/CommandGuide/.cvsignore:1.1 Fri Nov 19 15:54:43 2004 +++ llvm/docs/CommandGuide/.cvsignore Sat Jun 18 17:59:31 2005 @@ -1 +1,4 @@ pod2htm?.tmp +*.html +*.1 +*.ps From reid at x10sys.com Sat Jun 18 18:00:45 2005 From: reid at x10sys.com (Reid Spencer) Date: Sat, 18 Jun 2005 18:00:45 -0500 Subject: [llvm-commits] CVS: llvm/docs/.cvsignore Message-ID: <200506182300.SAA27141@zion.cs.uiuc.edu> Changes in directory llvm/docs: .cvsignore updated: 1.1 -> 1.2 --- Log message: Ignore some generated files. --- Diffs of the changes: (+3 -1) .cvsignore | 4 +++- 1 files changed, 3 insertions(+), 1 deletion(-) Index: llvm/docs/.cvsignore diff -u llvm/docs/.cvsignore:1.1 llvm/docs/.cvsignore:1.2 --- llvm/docs/.cvsignore:1.1 Wed Dec 8 13:00:45 2004 +++ llvm/docs/.cvsignore Sat Jun 18 18:00:34 2005 @@ -1,2 +1,4 @@ doxygen.cfg - +doxygen +doxygen.out +*.tar.gz From reid at x10sys.com Sat Jun 18 18:01:37 2005 From: reid at x10sys.com (Reid Spencer) Date: Sat, 18 Jun 2005 18:01:37 -0500 Subject: [llvm-commits] CVS: llvm/.cvsignore Message-ID: <200506182301.SAA27160@zion.cs.uiuc.edu> Changes in directory llvm: .cvsignore updated: 1.3 -> 1.4 --- Log message: Ignore the configure.out file generated by "make reconfigure" --- Diffs of the changes: (+1 -0) .cvsignore | 1 + 1 files changed, 1 insertion(+) Index: llvm/.cvsignore diff -u llvm/.cvsignore:1.3 llvm/.cvsignore:1.4 --- llvm/.cvsignore:1.3 Fri Dec 24 09:11:23 2004 +++ llvm/.cvsignore Sat Jun 18 18:01:25 2005 @@ -4,3 +4,4 @@ config.status cvs.out autom4te.cache +configure.out From sabre at nondot.org Sat Jun 18 22:17:55 2005 From: sabre at nondot.org (Chris Lattner) Date: Sat, 18 Jun 2005 22:17:55 -0500 (CDT) Subject: [llvm-commits] CVS: llvm/test/Feature/varargs_new.ll In-Reply-To: <1119126579.16576.92.camel@bashful.x10sys.com> References: <200506181830.NAA25879@zion.cs.uiuc.edu> <1119124701.16576.90.camel@bashful.x10sys.com> <1119126579.16576.92.camel@bashful.x10sys.com> Message-ID: On Sat, 18 Jun 2005, Reid Spencer wrote: > Andrew, > I think I fixed this, but I'd like you to verify my patch, please: > http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050613/026759.html Reid: I think this patch should be reverted. This regression test failing indicates a bug in the auto-upgrader for .ll files. Imagine if an old LLVM front-end generated this file: now llvm-as would crash on it. Not only is this not acceptable from a backwards compatibility perspective, llvm-as should not crash on *any* input. Please revert it back to the old format. If you'd like, you can check the new version in as another test to provide a sanity check for the new-style varargs. Andrew, please fix the .ll file reader :) -Chris >> I get this with your changes: >> >> Running /proj/llvm/build/../llvm/test/Feature/dg.exp ... >> FAIL: /proj/llvm/build/../llvm/test/Feature/varargs_new.ll: >> llvm-as: /proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y:740: >> llvm::Module* RunParser(llvm::Module*): Assertion `F->arg.llvm-as >> ((anonymous namespace)::PrintStackTrace()+0x1a)[0x82c4142] >> llvm-as((anonymous namespace)::SignalHandler(int)+0xd3)[0x82c440b] >> /lib/tls/libc.so.6[0xaef8c8] >> /lib/ld-linux.so.2[0xa587a2] >> /lib/tls/libc.so.6(gsignal+0x55)[0xaef7d5] >> /lib/tls/libc.so.6(abort+0xe9)[0xaf1149] >> /lib/tls/libc.so.6(__assert_fail+0x101)[0xae8db1] >> llvm-as[0x81c0ee0] >> llvm-as(llvm::RunVMAsmParser(std::basic_string> std::char_traits, std::allocator > const&, >> _IO_FILE*)+0x73)[0]llvm-as(llvm::ParseAssemblyFile >> (std::basic_string, std::allocator > >> const&)+0x1c1)[0x81afa4]llvm-as(main+0x5a)[0x81ab16e] >> /lib/tls/libc.so.6(__libc_start_main+0xd3)[0xadce23] >> llvm-as(__gxx_personality_v0+0xd1)[0x81ab091] >> llvm-dis: Standard Input empty! >> 0a1,3 >> ; ModuleID = '' >> implementation ; Functions: >> >> Reid >> >> On Sat, 2005-06-18 at 13:30 -0500, Andrew Lenharth wrote: >>> >>> Changes in directory llvm/test/Feature: >>> >>> varargs_new.ll added (r1.1) >>> --- >>> Log message: >>> >>> new vararg test >>> >>> --- >>> Diffs of the changes: (+33 -0) >>> >>> varargs_new.ll | 33 +++++++++++++++++++++++++++++++++ >>> 1 files changed, 33 insertions(+) >>> >>> >>> Index: llvm/test/Feature/varargs_new.ll >>> diff -c /dev/null llvm/test/Feature/varargs_new.ll:1.1 >>> *** /dev/null Sat Jun 18 13:30:47 2005 >>> --- llvm/test/Feature/varargs_new.ll Sat Jun 18 13:30:37 2005 >>> *************** >>> *** 0 **** >>> --- 1,33 ---- >>> + ; RUN: llvm-as %s -o - | llvm-dis > %t1.ll >>> + ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll >>> + ; RUN: diff %t1.ll %t2.ll >>> + >>> + ; Demonstrate all of the variable argument handling intrinsic functions plus >>> + ; the va_arg instruction. >>> + >>> + implementation ; Functions: >>> + declare void %llvm.va_start(sbyte**) >>> + declare void %llvm.va_copy(sbyte**, sbyte*) >>> + declare void %llvm.va_end(sbyte**) >>> + >>> + int %test(int %X, ...) { >>> + ; Allocate two va_list items. On this target, va_list is of type sbyte* >>> + %ap = alloca sbyte* ; [#uses=4] >>> + %aq = alloca sbyte* ; [#uses=2] >>> + >>> + ; Initialize variable argument processing >>> + call void %llvm.va_start(sbyte** %ap) >>> + >>> + ; Read a single integer argument >>> + %tmp = vaarg sbyte** %ap, int ; [#uses=1] >>> + >>> + ; Demonstrate usage of llvm.va_copy and llvm_va_end >>> + %apv = load sbyte** %ap ; [#uses=1] >>> + call void %llvm.va_copy(sbyte** %aq, sbyte* %apv) >>> + call void %llvm.va_end(sbyte** %aq) >>> + >>> + ; Stop processing of arguments. >>> + call void %llvm.va_end(sbyte** %ap) >>> + ret int %tmp >>> + >>> + } >>> >>> >>> >>> _______________________________________________ >>> llvm-commits mailing list >>> llvm-commits at cs.uiuc.edu >>> http://mail.cs.uiuc.edu/mailman/listinfo/llvm-commits >> _______________________________________________ >> llvm-commits mailing list >> llvm-commits at cs.uiuc.edu >> http://mail.cs.uiuc.edu/mailman/listinfo/llvm-commits > -Chris -- http://nondot.org/sabre/ http://llvm.cs.uiuc.edu/ From alenhar2 at cs.uiuc.edu Sat Jun 18 22:54:07 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sat, 18 Jun 2005 22:54:07 -0500 Subject: [llvm-commits] CVS: llvm/lib/AsmParser/llvmAsmParser.y Message-ID: <200506190354.WAA28121@zion.cs.uiuc.edu> Changes in directory llvm/lib/AsmParser: llvmAsmParser.y updated: 1.226 -> 1.227 --- Log message: add a check for the mixing of vaarg and vanext with va_arg --- Diffs of the changes: (+9 -0) llvmAsmParser.y | 9 +++++++++ 1 files changed, 9 insertions(+) Index: llvm/lib/AsmParser/llvmAsmParser.y diff -u llvm/lib/AsmParser/llvmAsmParser.y:1.226 llvm/lib/AsmParser/llvmAsmParser.y:1.227 --- llvm/lib/AsmParser/llvmAsmParser.y:1.226 Sat Jun 18 13:34:51 2005 +++ llvm/lib/AsmParser/llvmAsmParser.y Sat Jun 18 22:53:56 2005 @@ -48,6 +48,7 @@ #define YYERROR_VERBOSE 1 static bool ObsoleteVarArgs; +static bool NewVarArgs; static BasicBlock* CurBB; @@ -728,6 +729,7 @@ llvmAsmlineno = 1; // Reset the current line number... ObsoleteVarArgs = false; + NewVarArgs = false; CurModule.CurrentModule = M; yyparse(); // Parse the file, potentially throwing exception @@ -735,6 +737,12 @@ Module *Result = ParserResult; ParserResult = 0; + if (ObsoleteVarArgs && NewVarArgs) + { + std::cerr << "This file is corrupt in that it uses both new and old style varargs\n"; + abort(); + } + if(ObsoleteVarArgs) { if(Function* F = Result->getNamedFunction("llvm.va_start")) { assert(F->arg_size() == 0 && "Obsolete va_start takes 0 argument!"); @@ -2041,6 +2049,7 @@ $$ = new SelectInst($2, $4, $6); } | VAARG ResolvedVal ',' Types { + NewVarArgs = true; $$ = new VAArgInst($2, *$4); delete $4; } From alenhar2 at cs.uiuc.edu Sun Jun 19 00:42:18 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sun, 19 Jun 2005 00:42:18 -0500 Subject: [llvm-commits] CVS: llvm/test/Feature/varargs_new.ll In-Reply-To: References: <200506181830.NAA25879@zion.cs.uiuc.edu> <1119124701.16576.90.camel@bashful.x10sys.com> <1119126579.16576.92.camel@bashful.x10sys.com> Message-ID: <1119159739.13532.9.camel@localhost.localdomain> On Sat, 2005-06-18 at 22:17 -0500, Chris Lattner wrote: > Reid: I think this patch should be reverted. This regression test failing > indicates a bug in the auto-upgrader for .ll files. Imagine if an old > LLVM front-end generated this file: now llvm-as would crash on it. No front end would generate this file. This is not a bug in the upgrade code but a matter of what to do on illegal/invalid .ll files. The problem here is using oldstyle vaarg with new style va_start (new style is va_arg, and must be to disambiguate certain legal constructs). > Not only is this not acceptable from a backwards compatibility > perspective, llvm-as should not crash on *any* input. It already does for similar problems. try defining llvm.va_start as taking 5 args. Verify will hit an assertion. This is no different than hitting an arguement number check assertion earlier. Andrew -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20050619/7bd613dd/attachment.bin From alenhar2 at cs.uiuc.edu Sun Jun 19 00:45:12 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sun, 19 Jun 2005 00:45:12 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/SparcV9/SparcV9BurgISel.cpp Message-ID: <200506190545.AAA28773@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/SparcV9: SparcV9BurgISel.cpp updated: 1.20 -> 1.21 --- Log message: so this doesn't crash when run. It is hard to tell if things are right enough to work correctly with all the TmpInstructions running around --- Diffs of the changes: (+27 -24) SparcV9BurgISel.cpp | 51 +++++++++++++++++++++++++++------------------------ 1 files changed, 27 insertions(+), 24 deletions(-) Index: llvm/lib/Target/SparcV9/SparcV9BurgISel.cpp diff -u llvm/lib/Target/SparcV9/SparcV9BurgISel.cpp:1.20 llvm/lib/Target/SparcV9/SparcV9BurgISel.cpp:1.21 --- llvm/lib/Target/SparcV9/SparcV9BurgISel.cpp:1.20 Sat Jun 18 13:46:40 2005 +++ llvm/lib/Target/SparcV9/SparcV9BurgISel.cpp Sun Jun 19 00:45:00 2005 @@ -2869,8 +2869,11 @@ int fpReg = SparcV9::i6; int firstVarArgOff = numFixedArgs * 8 + SparcV9FrameInfo::FirstIncomingArgOffsetFromFP; - mvec.push_back(BuildMI(V9::ADDi, 3).addMReg(fpReg).addSImm(firstVarArgOff). - addRegDef(&callInstr)); + //What oh what do we pass to TmpInstruction? + MachineCodeForInstruction& m = MachineCodeForInstruction::get(&callInstr); + TmpInstruction* T = new TmpInstruction(m, callInstr.getOperand(1)->getType()); + mvec.push_back(BuildMI(V9::ADDi, 3).addMReg(fpReg).addSImm(firstVarArgOff).addRegDef(T)); + mvec.push_back(BuildMI(V9::STXr, 3).addReg(T).addReg(callInstr.getOperand(1)).addSImm(0)); return true; } @@ -2878,11 +2881,10 @@ return true; // no-op on SparcV9 case Intrinsic::vacopy: - // Simple copy of current va_list (arg1) to new va_list (result) - mvec.push_back(BuildMI(V9::ORr, 3). - addMReg(target.getRegInfo()->getZeroRegNum()). - addReg(callInstr.getOperand(1)). - addRegDef(&callInstr)); + // Simple store of current va_list (arg2) to new va_list (arg1) + mvec.push_back(BuildMI(V9::STXi, 3). + addReg(callInstr.getOperand(2)). + addReg(callInstr.getOperand(1)).addSImm(0)); return true; } } @@ -4216,32 +4218,33 @@ case 64: // reg: Phi(reg,reg) break; // don't forward the value -#if 0 -//FIXME: new VAArg support - case 65: // reg: VANext(reg): the va_next(va_list, type) instruction - { // Increment the va_list pointer register according to the type. - // All LLVM argument types are <= 64 bits, so use one doubleword. - Instruction* vaNextI = subtreeRoot->getInstruction(); - assert(target.getTargetData().getTypeSize(vaNextI->getType()) <= 8 && - "We assumed that all LLVM parameter types <= 8 bytes!"); - unsigned argSize = SparcV9FrameInfo::SizeOfEachArgOnStack; - mvec.push_back(BuildMI(V9::ADDi, 3).addReg(vaNextI->getOperand(0)). - addSImm(argSize).addRegDef(vaNextI)); - break; - } -#endif - -//FIXME: new VAArg support case 66: // reg: VAArg (reg): the va_arg instruction { // Load argument from stack using current va_list pointer value. // Use 64-bit load for all non-FP args, and LDDF or double for FP. Instruction* vaArgI = subtreeRoot->getInstruction(); + //but first load the va_list pointer + // Create a virtual register to represent it + //What oh what do we pass to TmpInstruction? + MachineCodeForInstruction& m1 = MachineCodeForInstruction::get(vaArgI); + TmpInstruction* VReg = new TmpInstruction(m1, vaArgI->getOperand(0)->getType()); + mvec.push_back(BuildMI(V9::LDXi, 3).addReg(vaArgI->getOperand(0)) + .addSImm(0).addRegDef(VReg)); + //OK, now do the load MachineOpCode loadOp = (vaArgI->getType()->isFloatingPoint() ? (vaArgI->getType() == Type::FloatTy ? V9::LDFi : V9::LDDFi) : V9::LDXi); - mvec.push_back(BuildMI(loadOp, 3).addReg(vaArgI->getOperand(0)). + mvec.push_back(BuildMI(loadOp, 3).addReg(VReg). addSImm(0).addRegDef(vaArgI)); + //Also increment the pointer + MachineCodeForInstruction& m2 = MachineCodeForInstruction::get(vaArgI); + TmpInstruction* VRegA = new TmpInstruction(m2, vaArgI->getOperand(0)->getType()); + unsigned argSize = SparcV9FrameInfo::SizeOfEachArgOnStack; + mvec.push_back(BuildMI(V9::ADDi, 3).addReg(VReg). + addSImm(argSize).addRegDef(VRegA)); + //And store + mvec.push_back(BuildMI(V9::STXr, 3).addReg(VRegA). + addReg(vaArgI->getOperand(0)).addSImm(0)); break; } From reid at x10sys.com Sun Jun 19 01:25:31 2005 From: reid at x10sys.com (Reid Spencer) Date: Sat, 18 Jun 2005 23:25:31 -0700 Subject: [llvm-commits] CVS: llvm/test/Feature/varargs_new.ll In-Reply-To: References: <200506181830.NAA25879@zion.cs.uiuc.edu> <1119124701.16576.90.camel@bashful.x10sys.com> <1119126579.16576.92.camel@bashful.x10sys.com> Message-ID: <1119162331.16576.105.camel@bashful.x10sys.com> I don't think my patch is incorrect. The test case needs to test va_arg, not vaarg. Since it doesn't exist in anyone's release tarball, only in CVS, it can't hurt since they'd only pick this test up if they also picked up Andrew's changes. I have requested that Andrew add additional tests for mixing vaarg and vanext with va_arg. He's already committed changes to the assembly reader to check those combinations. As Andrew pointed out, an old front end could not generate this file. The change I made is needed to make that one test correct, as Andrew has confirmed. However, I agree that the auto-upgrade, validation checking and the test cases are insufficient. Please talk to Andrew about completing those tasks. Reid On Sat, 2005-06-18 at 22:17 -0500, Chris Lattner wrote: > On Sat, 18 Jun 2005, Reid Spencer wrote: > > > Andrew, > > I think I fixed this, but I'd like you to verify my patch, please: > > http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050613/026759.html > > Reid: I think this patch should be reverted. This regression test failing > indicates a bug in the auto-upgrader for .ll files. Imagine if an old > LLVM front-end generated this file: now llvm-as would crash on it. > > Not only is this not acceptable from a backwards compatibility > perspective, llvm-as should not crash on *any* input. > > Please revert it back to the old format. If you'd like, you can check the > new version in as another test to provide a sanity check for the new-style > varargs. > > Andrew, please fix the .ll file reader :) > > -Chris > > >> I get this with your changes: > >> > >> Running /proj/llvm/build/../llvm/test/Feature/dg.exp ... > >> FAIL: /proj/llvm/build/../llvm/test/Feature/varargs_new.ll: > >> llvm-as: /proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y:740: > >> llvm::Module* RunParser(llvm::Module*): Assertion `F->arg.llvm-as > >> ((anonymous namespace)::PrintStackTrace()+0x1a)[0x82c4142] > >> llvm-as((anonymous namespace)::SignalHandler(int)+0xd3)[0x82c440b] > >> /lib/tls/libc.so.6[0xaef8c8] > >> /lib/ld-linux.so.2[0xa587a2] > >> /lib/tls/libc.so.6(gsignal+0x55)[0xaef7d5] > >> /lib/tls/libc.so.6(abort+0xe9)[0xaf1149] > >> /lib/tls/libc.so.6(__assert_fail+0x101)[0xae8db1] > >> llvm-as[0x81c0ee0] > >> llvm-as(llvm::RunVMAsmParser(std::basic_string >> std::char_traits, std::allocator > const&, > >> _IO_FILE*)+0x73)[0]llvm-as(llvm::ParseAssemblyFile > >> (std::basic_string, std::allocator > > >> const&)+0x1c1)[0x81afa4]llvm-as(main+0x5a)[0x81ab16e] > >> /lib/tls/libc.so.6(__libc_start_main+0xd3)[0xadce23] > >> llvm-as(__gxx_personality_v0+0xd1)[0x81ab091] > >> llvm-dis: Standard Input empty! > >> 0a1,3 > >> ; ModuleID = '' > >> implementation ; Functions: > >> > >> Reid > >> > >> On Sat, 2005-06-18 at 13:30 -0500, Andrew Lenharth wrote: > >>> > >>> Changes in directory llvm/test/Feature: > >>> > >>> varargs_new.ll added (r1.1) > >>> --- > >>> Log message: > >>> > >>> new vararg test > >>> > >>> --- > >>> Diffs of the changes: (+33 -0) > >>> > >>> varargs_new.ll | 33 +++++++++++++++++++++++++++++++++ > >>> 1 files changed, 33 insertions(+) > >>> > >>> > >>> Index: llvm/test/Feature/varargs_new.ll > >>> diff -c /dev/null llvm/test/Feature/varargs_new.ll:1.1 > >>> *** /dev/null Sat Jun 18 13:30:47 2005 > >>> --- llvm/test/Feature/varargs_new.ll Sat Jun 18 13:30:37 2005 > >>> *************** > >>> *** 0 **** > >>> --- 1,33 ---- > >>> + ; RUN: llvm-as %s -o - | llvm-dis > %t1.ll > >>> + ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll > >>> + ; RUN: diff %t1.ll %t2.ll > >>> + > >>> + ; Demonstrate all of the variable argument handling intrinsic functions plus > >>> + ; the va_arg instruction. > >>> + > >>> + implementation ; Functions: > >>> + declare void %llvm.va_start(sbyte**) > >>> + declare void %llvm.va_copy(sbyte**, sbyte*) > >>> + declare void %llvm.va_end(sbyte**) > >>> + > >>> + int %test(int %X, ...) { > >>> + ; Allocate two va_list items. On this target, va_list is of type sbyte* > >>> + %ap = alloca sbyte* ; [#uses=4] > >>> + %aq = alloca sbyte* ; [#uses=2] > >>> + > >>> + ; Initialize variable argument processing > >>> + call void %llvm.va_start(sbyte** %ap) > >>> + > >>> + ; Read a single integer argument > >>> + %tmp = vaarg sbyte** %ap, int ; [#uses=1] > >>> + > >>> + ; Demonstrate usage of llvm.va_copy and llvm_va_end > >>> + %apv = load sbyte** %ap ; [#uses=1] > >>> + call void %llvm.va_copy(sbyte** %aq, sbyte* %apv) > >>> + call void %llvm.va_end(sbyte** %aq) > >>> + > >>> + ; Stop processing of arguments. > >>> + call void %llvm.va_end(sbyte** %ap) > >>> + ret int %tmp > >>> + > >>> + } > >>> > >>> > >>> > >>> _______________________________________________ > >>> llvm-commits mailing list > >>> llvm-commits at cs.uiuc.edu > >>> http://mail.cs.uiuc.edu/mailman/listinfo/llvm-commits > >> _______________________________________________ > >> llvm-commits mailing list > >> llvm-commits at cs.uiuc.edu > >> http://mail.cs.uiuc.edu/mailman/listinfo/llvm-commits > > > > -Chris > -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20050618/6e661e6d/attachment.bin From sabre at nondot.org Sun Jun 19 08:36:11 2005 From: sabre at nondot.org (Chris Lattner) Date: Sun, 19 Jun 2005 08:36:11 -0500 (CDT) Subject: [llvm-commits] CVS: llvm/test/Feature/varargs_new.ll In-Reply-To: <1119159739.13532.9.camel@localhost.localdomain> References: <200506181830.NAA25879@zion.cs.uiuc.edu> <1119124701.16576.90.camel@bashful.x10sys.com> <1119126579.16576.92.camel@bashful.x10sys.com> <1119159739.13532.9.camel@localhost.localdomain> Message-ID: On Sun, 19 Jun 2005, Andrew Lenharth wrote: > On Sat, 2005-06-18 at 22:17 -0500, Chris Lattner wrote: >> Reid: I think this patch should be reverted. This regression test failing >> indicates a bug in the auto-upgrader for .ll files. Imagine if an old >> LLVM front-end generated this file: now llvm-as would crash on it. > > No front end would generate this file. This is not a bug in the upgrade > code but a matter of what to do on illegal/invalid .ll files. The > problem here is using oldstyle vaarg with new style va_start (new style > is va_arg, and must be to disambiguate certain legal constructs). Ok, makes sense. >> Not only is this not acceptable from a backwards compatibility >> perspective, llvm-as should not crash on *any* input. > > It already does for similar problems. try defining llvm.va_start as > taking 5 args. Verify will hit an assertion. This is no different than > hitting an arguement number check assertion earlier. That's a bug and should be fixed then :). It should use ThrowException to report the error, which will tack on a line number to the error report. Sorry for the misunderstanding! -Chris -- http://nondot.org/sabre/ http://llvm.cs.uiuc.edu/ From sabre at nondot.org Sun Jun 19 08:37:29 2005 From: sabre at nondot.org (Chris Lattner) Date: Sun, 19 Jun 2005 08:37:29 -0500 (CDT) Subject: [llvm-commits] CVS: llvm/test/Feature/varargs_new.ll In-Reply-To: <1119162331.16576.105.camel@bashful.x10sys.com> References: <200506181830.NAA25879@zion.cs.uiuc.edu> <1119124701.16576.90.camel@bashful.x10sys.com> <1119126579.16576.92.camel@bashful.x10sys.com> <1119162331.16576.105.camel@bashful.x10sys.com> Message-ID: On Sat, 18 Jun 2005, Reid Spencer wrote: > I don't think my patch is incorrect. The test case needs to test va_arg, > not vaarg. Since it doesn't exist in anyone's release tarball, only in > CVS, it can't hurt since they'd only pick this test up if they also > picked up Andrew's changes. Ok. > I have requested that Andrew add additional tests for mixing vaarg and > vanext with va_arg. He's already committed changes to the assembly > reader to check those combinations. Ok, great. > As Andrew pointed out, an old front end could not generate this file. My mistake :) > The change I made is needed to make that one test correct, as Andrew has > confirmed. However, I agree that the auto-upgrade, validation checking > and the test cases are insufficient. Please talk to Andrew about > completing those tasks. Also, all of the new regressions on X86... -Chris > On Sat, 2005-06-18 at 22:17 -0500, Chris Lattner wrote: >> On Sat, 18 Jun 2005, Reid Spencer wrote: >> >>> Andrew, >>> I think I fixed this, but I'd like you to verify my patch, please: >>> http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050613/026759.html >> >> Reid: I think this patch should be reverted. This regression test failing >> indicates a bug in the auto-upgrader for .ll files. Imagine if an old >> LLVM front-end generated this file: now llvm-as would crash on it. >> >> Not only is this not acceptable from a backwards compatibility >> perspective, llvm-as should not crash on *any* input. >> >> Please revert it back to the old format. If you'd like, you can check the >> new version in as another test to provide a sanity check for the new-style >> varargs. >> >> Andrew, please fix the .ll file reader :) >> >> -Chris >> >>>> I get this with your changes: >>>> >>>> Running /proj/llvm/build/../llvm/test/Feature/dg.exp ... >>>> FAIL: /proj/llvm/build/../llvm/test/Feature/varargs_new.ll: >>>> llvm-as: /proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y:740: >>>> llvm::Module* RunParser(llvm::Module*): Assertion `F->arg.llvm-as >>>> ((anonymous namespace)::PrintStackTrace()+0x1a)[0x82c4142] >>>> llvm-as((anonymous namespace)::SignalHandler(int)+0xd3)[0x82c440b] >>>> /lib/tls/libc.so.6[0xaef8c8] >>>> /lib/ld-linux.so.2[0xa587a2] >>>> /lib/tls/libc.so.6(gsignal+0x55)[0xaef7d5] >>>> /lib/tls/libc.so.6(abort+0xe9)[0xaf1149] >>>> /lib/tls/libc.so.6(__assert_fail+0x101)[0xae8db1] >>>> llvm-as[0x81c0ee0] >>>> llvm-as(llvm::RunVMAsmParser(std::basic_string>>> std::char_traits, std::allocator > const&, >>>> _IO_FILE*)+0x73)[0]llvm-as(llvm::ParseAssemblyFile >>>> (std::basic_string, std::allocator > >>>> const&)+0x1c1)[0x81afa4]llvm-as(main+0x5a)[0x81ab16e] >>>> /lib/tls/libc.so.6(__libc_start_main+0xd3)[0xadce23] >>>> llvm-as(__gxx_personality_v0+0xd1)[0x81ab091] >>>> llvm-dis: Standard Input empty! >>>> 0a1,3 >>>> ; ModuleID = '' >>>> implementation ; Functions: >>>> >>>> Reid >>>> >>>> On Sat, 2005-06-18 at 13:30 -0500, Andrew Lenharth wrote: >>>>> >>>>> Changes in directory llvm/test/Feature: >>>>> >>>>> varargs_new.ll added (r1.1) >>>>> --- >>>>> Log message: >>>>> >>>>> new vararg test >>>>> >>>>> --- >>>>> Diffs of the changes: (+33 -0) >>>>> >>>>> varargs_new.ll | 33 +++++++++++++++++++++++++++++++++ >>>>> 1 files changed, 33 insertions(+) >>>>> >>>>> >>>>> Index: llvm/test/Feature/varargs_new.ll >>>>> diff -c /dev/null llvm/test/Feature/varargs_new.ll:1.1 >>>>> *** /dev/null Sat Jun 18 13:30:47 2005 >>>>> --- llvm/test/Feature/varargs_new.ll Sat Jun 18 13:30:37 2005 >>>>> *************** >>>>> *** 0 **** >>>>> --- 1,33 ---- >>>>> + ; RUN: llvm-as %s -o - | llvm-dis > %t1.ll >>>>> + ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll >>>>> + ; RUN: diff %t1.ll %t2.ll >>>>> + >>>>> + ; Demonstrate all of the variable argument handling intrinsic functions plus >>>>> + ; the va_arg instruction. >>>>> + >>>>> + implementation ; Functions: >>>>> + declare void %llvm.va_start(sbyte**) >>>>> + declare void %llvm.va_copy(sbyte**, sbyte*) >>>>> + declare void %llvm.va_end(sbyte**) >>>>> + >>>>> + int %test(int %X, ...) { >>>>> + ; Allocate two va_list items. On this target, va_list is of type sbyte* >>>>> + %ap = alloca sbyte* ; [#uses=4] >>>>> + %aq = alloca sbyte* ; [#uses=2] >>>>> + >>>>> + ; Initialize variable argument processing >>>>> + call void %llvm.va_start(sbyte** %ap) >>>>> + >>>>> + ; Read a single integer argument >>>>> + %tmp = vaarg sbyte** %ap, int ; [#uses=1] >>>>> + >>>>> + ; Demonstrate usage of llvm.va_copy and llvm_va_end >>>>> + %apv = load sbyte** %ap ; [#uses=1] >>>>> + call void %llvm.va_copy(sbyte** %aq, sbyte* %apv) >>>>> + call void %llvm.va_end(sbyte** %aq) >>>>> + >>>>> + ; Stop processing of arguments. >>>>> + call void %llvm.va_end(sbyte** %ap) >>>>> + ret int %tmp >>>>> + >>>>> + } >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> llvm-commits mailing list >>>>> llvm-commits at cs.uiuc.edu >>>>> http://mail.cs.uiuc.edu/mailman/listinfo/llvm-commits >>>> _______________________________________________ >>>> llvm-commits mailing list >>>> llvm-commits at cs.uiuc.edu >>>> http://mail.cs.uiuc.edu/mailman/listinfo/llvm-commits >>> >> >> -Chris >> > -Chris -- http://nondot.org/sabre/ http://llvm.cs.uiuc.edu/ From alenhar2 at cs.uiuc.edu Sun Jun 19 09:05:07 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sun, 19 Jun 2005 09:05:07 -0500 Subject: [llvm-commits] CVS: llvm/lib/Bytecode/Reader/ReaderWrappers.cpp Message-ID: <200506191405.JAA00998@zion.cs.uiuc.edu> Changes in directory llvm/lib/Bytecode/Reader: ReaderWrappers.cpp updated: 1.48 -> 1.49 --- Log message: va_end fix --- Diffs of the changes: (+1 -0) ReaderWrappers.cpp | 1 + 1 files changed, 1 insertion(+) Index: llvm/lib/Bytecode/Reader/ReaderWrappers.cpp diff -u llvm/lib/Bytecode/Reader/ReaderWrappers.cpp:1.48 llvm/lib/Bytecode/Reader/ReaderWrappers.cpp:1.49 --- llvm/lib/Bytecode/Reader/ReaderWrappers.cpp:1.48 Sat Jun 18 13:34:51 2005 +++ llvm/lib/Bytecode/Reader/ReaderWrappers.cpp Sun Jun 19 09:04:55 2005 @@ -209,6 +209,7 @@ for(Value::use_iterator I = F->use_begin(), E = F->use_end(); I != E;) if (CallInst* CI = dyn_cast(*I++)) { AllocaInst* bar = new AllocaInst(ArgTy, 0, "vaend.fix.1", CI); + new StoreInst(CI->getOperand(1), bar, CI); new CallInst(NF, bar, "", CI); CI->getParent()->getInstList().erase(CI); } From alenhar2 at cs.uiuc.edu Sun Jun 19 09:05:07 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sun, 19 Jun 2005 09:05:07 -0500 Subject: [llvm-commits] CVS: llvm/lib/AsmParser/llvmAsmParser.y Message-ID: <200506191405.JAA01002@zion.cs.uiuc.edu> Changes in directory llvm/lib/AsmParser: llvmAsmParser.y updated: 1.227 -> 1.228 --- Log message: va_end fix --- Diffs of the changes: (+1 -0) llvmAsmParser.y | 1 + 1 files changed, 1 insertion(+) Index: llvm/lib/AsmParser/llvmAsmParser.y diff -u llvm/lib/AsmParser/llvmAsmParser.y:1.227 llvm/lib/AsmParser/llvmAsmParser.y:1.228 --- llvm/lib/AsmParser/llvmAsmParser.y:1.227 Sat Jun 18 22:53:56 2005 +++ llvm/lib/AsmParser/llvmAsmParser.y Sun Jun 19 09:04:55 2005 @@ -785,6 +785,7 @@ while (!F->use_empty()) { CallInst* CI = cast(F->use_back()); AllocaInst* bar = new AllocaInst(ArgTy, 0, "vaend.fix.1", CI); + new StoreInst(CI->getOperand(1), bar, CI); new CallInst(NF, bar, "", CI); CI->getParent()->getInstList().erase(CI); } From alenhar2 at cs.uiuc.edu Sun Jun 19 09:25:07 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sun, 19 Jun 2005 09:25:07 -0500 Subject: [llvm-commits] CVS: llvm/test/Feature/varargs_new.ll In-Reply-To: References: <200506181830.NAA25879@zion.cs.uiuc.edu> <1119124701.16576.90.camel@bashful.x10sys.com> <1119126579.16576.92.camel@bashful.x10sys.com> <1119162331.16576.105.camel@bashful.x10sys.com> Message-ID: <1119191107.31839.0.camel@localhost.localdomain> On Sun, 2005-06-19 at 08:37 -0500, Chris Lattner wrote: > Also, all of the new regressions on X86... OK, this is what you get for testing without optimizations :) instcombine is eating instrinsics. Andrew -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20050619/e9e929e1/attachment.bin From alenhar2 at cs.uiuc.edu Sun Jun 19 09:41:31 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sun, 19 Jun 2005 09:41:31 -0500 Subject: [llvm-commits] CVS: llvm/lib/Transforms/Utils/Local.cpp Message-ID: <200506191441.JAA01145@zion.cs.uiuc.edu> Changes in directory llvm/lib/Transforms/Utils: Local.cpp updated: 1.39 -> 1.40 --- Log message: prevent DCE of vaarg intrinsics. This should take care of most regressions --- Diffs of the changes: (+0 -2) Local.cpp | 2 -- 1 files changed, 2 deletions(-) Index: llvm/lib/Transforms/Utils/Local.cpp diff -u llvm/lib/Transforms/Utils/Local.cpp:1.39 llvm/lib/Transforms/Utils/Local.cpp:1.40 --- llvm/lib/Transforms/Utils/Local.cpp:1.39 Fri May 6 00:27:34 2005 +++ llvm/lib/Transforms/Utils/Local.cpp Sun Jun 19 09:41:20 2005 @@ -381,8 +381,6 @@ if (Function *F = CI->getCalledFunction()) switch (F->getIntrinsicID()) { default: break; - case Intrinsic::vastart: - case Intrinsic::vacopy: case Intrinsic::returnaddress: case Intrinsic::frameaddress: case Intrinsic::isunordered: From alenhar2 at cs.uiuc.edu Sun Jun 19 09:46:32 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sun, 19 Jun 2005 09:46:32 -0500 Subject: [llvm-commits] CVS: llvm/include/llvm/Instructions.h Message-ID: <200506191446.JAA01185@zion.cs.uiuc.edu> Changes in directory llvm/include/llvm: Instructions.h updated: 1.23 -> 1.24 --- Log message: fix DCE + va_arg problem --- Diffs of the changes: (+1 -0) Instructions.h | 1 + 1 files changed, 1 insertion(+) Index: llvm/include/llvm/Instructions.h diff -u llvm/include/llvm/Instructions.h:1.23 llvm/include/llvm/Instructions.h:1.24 --- llvm/include/llvm/Instructions.h:1.23 Sat Jun 18 13:31:30 2005 +++ llvm/include/llvm/Instructions.h Sun Jun 19 09:46:20 2005 @@ -681,6 +681,7 @@ } virtual VAArgInst *clone() const; + bool mayWriteToMemory() const { return true; } // Methods for support type inquiry through isa, cast, and dyn_cast: static inline bool classof(const VAArgInst *) { return true; } From alenhar2 at cs.uiuc.edu Sun Jun 19 09:53:30 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Sun, 19 Jun 2005 09:53:30 -0500 Subject: [llvm-commits] CVS: llvm/test/Feature/varargs_new.ll In-Reply-To: References: <200506181830.NAA25879@zion.cs.uiuc.edu> <1119124701.16576.90.camel@bashful.x10sys.com> <1119126579.16576.92.camel@bashful.x10sys.com> <1119162331.16576.105.camel@bashful.x10sys.com> Message-ID: <1119192810.3450.1.camel@localhost.localdomain> On Sun, 2005-06-19 at 08:37 -0500, Chris Lattner wrote: > Also, all of the new regressions on X86... http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050613/026777.html http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050613/026776.html Should do it. -- Andrew Lenharth -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20050619/d286728a/attachment.bin