Date: Wed, 3 Jun 2009 13:29:08 +0000 (UTC) From: Ed Schouten <ed@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r193380 - in vendor/clang/dist: docs include/clang/AST include/clang/Basic include/clang/Frontend lib/AST lib/Frontend lib/Sema test/CodeGen test/Parser test/Sema test/SemaCXX test/Sema... Message-ID: <200906031329.n53DT8Go055819@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ed Date: Wed Jun 3 13:29:08 2009 New Revision: 193380 URL: http://svn.freebsd.org/changeset/base/193380 Log: Import Clang, at r72770. Added: vendor/clang/dist/docs/PCHLayout.graffle vendor/clang/dist/docs/PCHLayout.png (contents, props changed) vendor/clang/dist/test/CodeGen/always_inline.c vendor/clang/dist/test/Sema/vfprintf-invalid-redecl.c vendor/clang/dist/test/Sema/vfprintf-valid-redecl.c Modified: vendor/clang/dist/docs/PCHInternals.html vendor/clang/dist/include/clang/AST/Builtins.def vendor/clang/dist/include/clang/Basic/DiagnosticGroups.td vendor/clang/dist/include/clang/Basic/DiagnosticSemaKinds.td vendor/clang/dist/include/clang/Frontend/CompileOptions.h vendor/clang/dist/lib/AST/ASTContext.cpp vendor/clang/dist/lib/AST/Type.cpp vendor/clang/dist/lib/Frontend/Backend.cpp vendor/clang/dist/lib/Frontend/PCHWriter.cpp vendor/clang/dist/lib/Sema/Sema.cpp vendor/clang/dist/lib/Sema/SemaType.cpp vendor/clang/dist/test/Parser/cxx-ambig-paren-expr.cpp vendor/clang/dist/test/SemaCXX/const-cast.cpp vendor/clang/dist/test/SemaCXX/decl-expr-ambiguity.cpp vendor/clang/dist/test/SemaCXX/member-expr.cpp vendor/clang/dist/test/SemaCXX/reinterpret-cast.cpp vendor/clang/dist/test/SemaCXX/static-cast.cpp vendor/clang/dist/test/SemaObjC/objc2-merge-gc-attribue-decl.m vendor/clang/dist/test/SemaObjCXX/blocks.mm vendor/clang/dist/test/SemaTemplate/temp_arg_nontype.cpp vendor/clang/dist/tools/clang-cc/clang-cc.cpp Modified: vendor/clang/dist/docs/PCHInternals.html ============================================================================== --- vendor/clang/dist/docs/PCHInternals.html Wed Jun 3 13:28:36 2009 (r193379) +++ vendor/clang/dist/docs/PCHInternals.html Wed Jun 3 13:29:08 2009 (r193380) @@ -63,9 +63,250 @@ with the <b><tt>-include-pch</tt></b> op PCH file generation serializes the build when all compilations require the PCH file to be up-to-date.</li> </ul> + +<p>Clang's precompiled headers are designed with a compact on-disk +representation, which minimizes both PCH creation time and the time +required to initially load the PCH file. The PCH file itself contains +a serialized representation of Clang's abstract syntax trees and +supporting data structures, stored using the same compressed bitstream +as <a href="http://llvm.org/docs/BitCodeFormat.html">LLVM's bitcode +file format</a>.</p> + +<p>Clang's precompiled headers are loaded "lazily" from disk. When a +PCH file is initially loaded, Clang reads only a small amount of data +from the PCH file to establish where certain important data structures +are stored. The amount of data read in this initial load is +independent of the size of the PCH file, such that a larger PCH file +does not lead to longer PCH load times. The actual header data in the +PCH file--macros, functions, variables, types, etc.--is loaded only +when it is referenced from the user's code, at which point only that +entity (and those entities it depends on) are deserialized from the +PCH file. With this approach, the cost of using a precompiled header +for a translation unit is proportional to the amount of code actually +used from the header, rather than being proportional to the size of +the header itself.</p> </body> + +<h2>Precompiled Header Contents</h2> + +<img src="PCHLayout.png" align="right" alt="Precompiled header layout"> + +<p>Clang's precompiled headers are organized into several different +blocks, each of which contains the serialized representation of a part +of Clang's internal representation. Each of the blocks corresponds to +either a block or a record within <a + href="http://llvm.org/docs/BitCodeFormat.html">LLVM's bitstream +format</a>. The contents of each of these logical blocks are described +below.</p> + +<h3 name="metadata">Metadata Block</h3> + +<p>The metadata block contains several records that provide +information about how the precompiled header was built. This metadata +is primarily used to validate the use of a precompiled header. For +example, a precompiled header built for x86 (32-bit) cannot be used +when compiling for x86-64 (64-bit). The metadata block contains +information about:</p> + +<dl> + <dt>Language options</dt> + <dd>Describes the particular language dialect used to compile the +PCH file, including major options (e.g., Objective-C support) and more +minor options (e.g., support for "//" comments). The contents of this +record correspond to the <code>LangOptions</code> class.</dd> + + <dt>Target architecture</dt> + <dd>The target triple that describes the architecture, platform, and +ABI for which the PCH file was generated, e.g., +<code>i386-apple-darwin9</code>.</dd> -<p>More to be written...</p> + <dt>PCH version</dt> + <dd>The major and minor version numbers of the precompiled header +format. Changes in the minor version number should not affect backward +compatibility, while changes in the major version number imply that a +newer compiler cannot read an older precompiled header (and +vice-versa).</dd> + + <dt>Original file name</dt> + <dd>The full path of the header that was used to generate the +precompiled header.</dd> </dl> + + <dt>Predefines buffer</dt> + <dd>Although not explicitly stored as part of the metadata, the +predefines buffer is used in the validation of the precompiled header. +The predefines buffer itself contains code generated by the compiler +to initialize the preprocessor state according to the current target, +platform, and command-line options. For example, the predefines buffer +will contain "<code>#define __STDC__ 1</code>" when we are compiling C +without Microsoft extensions. The predefines buffer itself is stored +within the <a href="#sourcemgr">source manager block</a>, but its +contents are verified along with the rest of the metadata.</dd> </dl> + +<h3 name="sourcemgr">Source Manager Block</h3> + +<p>The source manager block contains the serialized representation of +Clang's <a + href="InternalsManual.html#SourceLocation">SourceManager</a> class, +which handles the mapping from source locations (as represented in +Clang's abstract syntax tree) into actual column/line positions within +a source file or macro instantiation. The precompiled header's +representation of the source manager also includes information about +all of the headers that were (transitively) included when building the +precompiled header.</p> + +<p>The bulk of the source manager block is dedicated to information +about the various files, buffers, and macro instantiations into which +a source location can refer. Each of these is referenced by a numeric +"file ID", which is a unique number (allocated starting at 1) stored +in the source location. Clang serializes the information for each kind +of file ID, along with an index that maps file IDs to the position +within the PCH file where the information about that file ID is +stored. The data associated with a file ID is loaded only when +required by the front end, e.g., to emit a diagnostic that includes a +macro instantiation history inside the header itself.</p> + +<p>The source manager block also contains information about all of the +headers that were included when building the precompiled header. This +includes information about the controlling macro for the header (e.g., +when the preprocessor identified that the contents of the header +dependent on a macro like <code>LLVM_CLANG_SOURCEMANAGER_H</code>) +along with a cached version of the results of the <code>stat()</code> +system calls performed when building the precompiled header. The +latter is particularly useful in reducing system time when searching +for include files.</p> + +<h3 name="preprocessor">Preprocessor Block</h3> + +<p>The preprocessor block contains the serialized representation of +the preprocessor. Specifically, it contains all of the macros that +have been defined by the end of the header used to build the +precompiled header, along with the token sequences that comprise each +macro. The macro definitions are only read from the PCH file when the +name of the macro first occurs in the program. This lazy loading of +macro definitions is trigged by lookups into the <a + href="#idtable">identifier table</a>.</p> + +<h3 name="types">Types Block</h3> + +<p>The types block contains the serialized representation of all of +the types referenced in the translation unit. Each Clang type node +(<code>PointerType</code>, <code>FunctionProtoType</code>, etc.) has a +corresponding record type in the PCH file. When types are deserialized +from the precompiled header, the data within the record is used to +reconstruct the appropriate type node using the AST context.</p> + +<p>Each type has a unique type ID, which is an integer that uniquely +identifies that type. Type ID 0 represents the NULL type, type IDs +less than <code>NUM_PREDEF_TYPE_IDS</code> represent predefined types +(<code>void</code>, <code>float</code>, etc.), while other +"user-defined" type IDs are assigned consecutively from +<code>NUM_PREDEF_TYPE_IDS</code> upward as the types are encountered. +The PCH file has an associated mapping from the user-defined types +block to the location within the types block where the serialized +representation of that type resides, enabling lazy deserialization of +types. When a type is referenced from within the PCH file, that +reference is encoded using the type ID shifted left by 3 bits. The +lower three bits are used to represent the <code>const</code>, +<code>volatile</code>, and <code>restrict</code> qualifiers, as in +Clang's <a + href="http://clang.llvm.org/docs/InternalsManual.html#Type">QualType</a> +class.</p> + +<h3 name="decls">Declarations Block</h3> + +<p>The declarations block contains the serialized representation of +all of the declarations referenced in the translation unit. Each Clang +declaration node (<code>VarDecl</code>, <code>FunctionDecl</code>, +etc.) has a corresponding record type in the PCH file. When +declarations are deserialized from the precompiled header, the data +within the record is used to build and populate a new instance of the +corresponding <code>Decl</code> node. As with types, each declaration +node has a numeric ID that is used to refer to that declaration within +the PCH file. In addition, a lookup table provides a mapping from that +numeric ID to the offset within the precompiled header where that +declaration is described.</p> + +<p>Declarations in Clang's abstract syntax trees are stored +hierarchically. At the top of the hierarchy is the translation unit +(<code>TranslationUnitDecl</code>), which contains all of the +declarations in the translation unit. These declarations---such as +functions or struct types---may also contain other declarations inside +them, and so on. Within Clang, each declaration is stored within a <a +href="http://clang.llvm.org/docs/InternalsManual.html#DeclContext">declaration +context</a>, as represented by the <code>DeclContext</code> class. +Declaration contexts provide the mechanism to perform name lookup +within a given declaration (e.g., find the member named <code>x</code> +in a structure) and iterate over the declarations stored within a +context (e.g., iterate over all of the fields of a structure for +structure layout).</p> + +<p>In Clang's precompiled header format, deserializing a declaration +that is a <code>DeclContext</code> is a separate operation from +deserializing all of the declarations stored within that declaration +context. Therefore, Clang will deserialize the translation unit +declaration without deserializing the declarations within that +translation unit. When required, the declarations stored within a +declaration context will be serialized. There are two representations +of the declarations within a declaration context, which correspond to +the name-lookup and iteration behavior described above:</p> + +<ul> + <li>When the front end performs name lookup to find a name + <code>x</code> within a given declaration context (for example, + during semantic analysis of the expression <code>p->x</code>, + where <code>p</code>'s type is defined in the precompiled header), + Clang deserializes a hash table mapping from the names within that + declaration context to the declaration IDs that represent each + visible declaration with that name. The entire hash table is + deserialized at this point (into the <code>llvm::DenseMap</code> + stored within each <code>DeclContext</code> object), but the actual + declarations are not yet deserialized. In a second step, those + declarations with the name <code>x</code> will be deserialized and + will be used as the result of name lookup.</li> + + <li>When the front end performs iteration over all of the + declarations within a declaration context, all of those declarations + are immediately de-serialized. For large declaration contexts (e.g., + the translation unit), this operation is expensive; however, large + declaration contexts are not traversed in normal compilation, since + such a traversal is unnecessary. However, it is common for the code + generator and semantic analysis to traverse declaration contexts for + structs, classes, unions, and enumerations, although those contexts + contain relatively few declarations in the common case.</li> +</ul> + +<h3 name="idtable">Identifier Table Block</h3> + +<p>The identifier table block contains an on-disk hash table that maps +each identifier mentioned within the precompiled header to the +serialized representation of the identifier's information (e.g, the +<code>IdentifierInfo</code> structure). The serialized representation +contains:</p> + +<ul> + <li>The actual identifier string.</li> + <li>Flags that describe whether this identifier is the name of a + built-in, a poisoned identifier, an extension token, or a + macro.</li> + <li>If the identifier names a macro, the offset of the macro + definition within the <a href="#preprocessor">preprocessor + block</a>.</li> + <li>If the identifier names one or more declarations visible from + translation unit scope, the <a href="#decls">declaration IDs</a> of these + declarations.</li> +</ul> + +<p>When a precompiled header is loaded, the precompiled header +mechanism introduces itself into the identifier table as an external +lookup source. Thus, when the user program refers to an identifier +that has not yet been seen, Clang will perform a lookup into the +on-disk hash table ... FINISH THIS! + +<p>A separate table provides a mapping from the numeric representation +of identifiers used in the PCH file to the location within the on-disk +hash table where that identifier is stored. This mapping is used when +deserializing the name of a declaration, the identifier of a token, or +any other construct in the PCH file that refers to a name.</p> + </div> -</body> </html> Added: vendor/clang/dist/docs/PCHLayout.graffle ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/clang/dist/docs/PCHLayout.graffle Wed Jun 3 13:29:08 2009 (r193380) @@ -0,0 +1,1495 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>ActiveLayerIndex</key> + <integer>0</integer> + <key>ApplicationVersion</key> + <array> + <string>com.omnigroup.OmniGrafflePro</string> + <string>137.11.0.108132</string> + </array> + <key>AutoAdjust</key> + <true/> + <key>BackgroundGraphic</key> + <dict> + <key>Bounds</key> + <string>{{0, 0}, {576, 733}}</string> + <key>Class</key> + <string>SolidGraphic</string> + <key>ID</key> + <integer>2</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <key>CanvasOrigin</key> + <string>{0, 0}</string> + <key>ColumnAlign</key> + <integer>1</integer> + <key>ColumnSpacing</key> + <real>36</real> + <key>CreationDate</key> + <string>2009-06-02 11:19:43 -0700</string> + <key>Creator</key> + <string>Douglas Gregor</string> + <key>DisplayScale</key> + <string>1 0/72 in = 1 0/72 in</string> + <key>GraphDocumentVersion</key> + <integer>6</integer> + <key>GraphicsList</key> + <array> + <dict> + <key>Bounds</key> + <string>{{35, 338}, {104, 30}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>13</integer> + <key>Layer</key> + <integer>0</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.175793</string> + <key>g</key> + <string>0.402929</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>9</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1019 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Method Pool}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{32, 58}, {110, 14}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>YES</string> + <key>Flow</key> + <string>Resize</string> + <key>ID</key> + <integer>12</integer> + <key>Layer</key> + <integer>0</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1019 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Precompiled Header}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + <key>Wrap</key> + <string>NO</string> + </dict> + <dict> + <key>Bounds</key> + <string>{{35, 190}, {104, 30}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>11</integer> + <key>Layer</key> + <integer>0</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>0.796208</string> + <key>r</key> + <string>0.324589</string> + </dict> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>9</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1019 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Types}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{35, 227}, {104, 30}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>10</integer> + <key>Layer</key> + <integer>0</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>1</string> + <key>g</key> + <string>0.382716</string> + <key>r</key> + <string>0.524072</string> + </dict> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>9</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1019 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Declarations}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{35, 301}, {104, 30}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>9</integer> + <key>Layer</key> + <integer>0</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.54645</string> + <key>g</key> + <string>0.242877</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>9</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1019 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Selector Table}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{35, 264}, {104, 30}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>8</integer> + <key>Layer</key> + <integer>0</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.99938</string> + <key>g</key> + <string>0.457913</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>9</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1019 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Identifier Table}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{35, 153}, {104, 30}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>7</integer> + <key>Layer</key> + <integer>0</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.669993</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>0.254644</string> + </dict> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>9</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1019 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Preprocessor}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{35, 116}, {104, 30}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>6</integer> + <key>Layer</key> + <integer>0</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.258332</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>0.593784</string> + </dict> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>9</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1019 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Source Manager}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{35, 79}, {104, 30}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>5</integer> + <key>Layer</key> + <integer>0</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0.270873</string> + <key>g</key> + <string>1</string> + <key>r</key> + <string>0.979351</string> + </dict> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>9</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1019 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Metadata}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{21, 47}, {132, 337}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>4</integer> + <key>Layer</key> + <integer>1</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>FillType</key> + <integer>2</integer> + <key>GradientAngle</key> + <real>90</real> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>9</real> + </dict> + </dict> + </dict> + </array> + <key>GridInfo</key> + <dict/> + <key>GuidesLocked</key> + <string>NO</string> + <key>GuidesVisible</key> + <string>YES</string> + <key>HPages</key> + <integer>1</integer> + <key>ImageCounter</key> + <integer>1</integer> + <key>KeepToScale</key> + <false/> + <key>Layers</key> + <array> + <dict> + <key>Lock</key> + <string>NO</string> + <key>Name</key> + <string>Sub-blocks</string> + <key>Print</key> + <string>YES</string> + <key>View</key> + <string>YES</string> + </dict> + <dict> + <key>Lock</key> + <string>NO</string> + <key>Name</key> + <string>PCH Block</string> + <key>Print</key> + <string>YES</string> + <key>View</key> + <string>YES</string> + </dict> + </array> + <key>LayoutInfo</key> + <dict> + <key>Animate</key> + <string>NO</string> + <key>circoMinDist</key> + <real>18</real> + <key>circoSeparation</key> + <real>0.0</real> + <key>layoutEngine</key> + <string>dot</string> + <key>neatoSeparation</key> + <real>0.0</real> + <key>twopiSeparation</key> + <real>0.0</real> + </dict> + <key>LinksVisible</key> + <string>NO</string> + <key>MagnetsVisible</key> + <string>NO</string> + <key>MasterSheets</key> + <array/> + <key>ModificationDate</key> + <string>2009-06-02 11:33:35 -0700</string> + <key>Modifier</key> + <string>Douglas Gregor</string> + <key>NotesVisible</key> + <string>NO</string> + <key>Orientation</key> + <integer>2</integer> + <key>OriginVisible</key> + <string>NO</string> + <key>PageBreaks</key> + <string>YES</string> + <key>PrintInfo</key> + <dict> + <key>NSBottomMargin</key> + <array> + <string>float</string> + <string>41</string> + </array> + <key>NSLeftMargin</key> + <array> + <string>float</string> + <string>18</string> + </array> + <key>NSPaperSize</key> + <array> + <string>size</string> + <string>{612, 792}</string> + </array> + <key>NSRightMargin</key> + <array> + <string>float</string> + <string>18</string> + </array> + <key>NSTopMargin</key> + <array> + <string>float</string> + <string>18</string> + </array> + </dict> + <key>PrintOnePage</key> + <false/> + <key>QuickLookPreview</key> + <data> + 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 + xcryXYOE70kNEkobxshDE4ypYRSoiytISv3yGZm4zKPE7Ywp+IglQYJWgwTChjH4nUX7 + mChyz8RFU/Cm0djBxsKYYY4xxtFQMIZNZwzFl4KkF+0p2TuF0grZUZVbJo9nCC4avHX6 + 5TPu21THQ6ZDTlXfKWwJGV+6jt4pVAFzTKRsFyuFrh91Y2NCdsnMMciehgIyG7t8IK5B + wo+Fr10+Szwn6ruc9/gg1lBejRunB4nffX8eGiNabux1eRgluoXNvU0b8TPK+aftZbPm + c6VqTqXO+GwX9tPSUmCBaVQtVsBWSKvfPFX6rfLilG9geF9Wfu3U7pHc+Amvv8a632rU + ApatUJXChqpQ5X1pE+GgiuWEkxS6ftSNjZWqZo75zdFQUhWNURXiG1SNiz1TKK2QHVVC + jst4hVBhsScMHldYivqOQbdRNekzJaFVqkLYQGY/eWgTRe5XWNIrbNPISXBjoeowxyDD + JnmmsOmQKX4TVWuaX6Aq6oQQA94Op1R9PaliIYQ+k+q2LFr2Obclni+Ewui/o+Qf98GW + tPxoiQALXr8Mt8b1Tx/CeB+2pYAMp4Zi/fG4wEtixMfj2HTEzgi0Ycb4amPP5b9ZnI0v + PSMUx9gx+2svFAQHa+CwjxMeK/hmrJdEXipcJkUApJWGeI3y4wOqhoVfJ5F2RZGP7iKN + pyNOWiJvLddz41RQDa1EHoUNDamCejZRZCyn9YM8HV2WBl+wrRsbS+QNcwYNaSjLCjSd + horp1RcK/1egQ4a0hQxVsJVkuQT45Tu3dI8PBLnl00oKPFHIfFLRHHQcQZaLwCYKZCyn + kOUDAXIRNuPBWDc2VshmzgoZhnIPNAYZ4hp5b7xQ8Dh9gdC4JNo847I6I7Tjd8b+WdHy + /yfrGPwedDTqfhg/DeHhwq3vkJ//D8Opeh8KZW5kc3RyZWFtCmVuZG9iago1IDAgb2Jq + CjIzNDUKZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCAzIDAgUiAv + UmVzb3VyY2VzIDYgMCBSIC9Db250ZW50cyA0IDAgUiAvTWVkaWFCb3ggWzAgMCA1NzYg + NzMzXQo+PgplbmRvYmoKNiAwIG9iago8PCAvUHJvY1NldCBbIC9QREYgL1RleHQgL0lt + YWdlQiAvSW1hZ2VDIC9JbWFnZUkgXSAvQ29sb3JTcGFjZSA8PCAvQ3MyIDEzIDAgUgov + Q3MxIDcgMCBSID4+IC9Gb250IDw8IC9GMS4wIDE0IDAgUiA+PiAvWE9iamVjdCA8PCAv + SW0xIDggMCBSIC9JbTIgMTEgMCBSCj4+IC9TaGFkaW5nIDw8IC9TaDEgMTAgMCBSID4+ + ID4+CmVuZG9iagoxMCAwIG9iago8PCAvQ29sb3JTcGFjZSA3IDAgUiAvU2hhZGluZ1R5 + cGUgMiAvQ29vcmRzIFsgNjYuNSAtMTY5IDY2LjQ5OTk3IDE2OSBdIC9Eb21haW4KWyAw + IDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gMTUgMCBSID4+CmVu + ZG9iago4IDAgb2JqCjw8IC9MZW5ndGggOSAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5 + cGUgL0ltYWdlIC9XaWR0aCAzMDggL0hlaWdodCA3MTggL0ludGVycG9sYXRlCnRydWUg + L0NvbG9yU3BhY2UgMTYgMCBSIC9JbnRlbnQgL1BlcmNlcHR1YWwgL1NNYXNrIDE3IDAg + UiAvQml0c1BlckNvbXBvbmVudAo4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVh + bQp4Ae3QMQEAAADCoPVPbQsviEBhwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwMB7YCAeAAEKZW5kc3RyZWFtCmVuZG9iago5IDAgb2JqCjI5MTYKZW5kb2JqCjEx + IDAgb2JqCjw8IC9MZW5ndGggMTIgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9J + bWFnZSAvV2lkdGggMjUyIC9IZWlnaHQgMTA0IC9JbnRlcnBvbGF0ZQp0cnVlIC9Db2xv + clNwYWNlIDE2IDAgUiAvSW50ZW50IC9QZXJjZXB0dWFsIC9TTWFzayAxOSAwIFIgL0Jp + dHNQZXJDb21wb25lbnQKOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHt + 0AENAAAAwqD3T20ON4hAYcCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBj4 + HhgzLwABCmVuZHN0cmVhbQplbmRvYmoKMTIgMCBvYmoKMzY2CmVuZG9iagoxNyAwIG9i + ago8PCAvTGVuZ3RoIDE4IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2Ug + L1dpZHRoIDMwOCAvSGVpZ2h0IDcxOCAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAvSW50 + ZXJwb2xhdGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVj + b2RlID4+CnN0cmVhbQp4Ae3a6VdV5xkF8Dgh8ySDDJeAUAZBBgVRXBBEi1FREwNqQmWB + VKNEIAuLmIVBYqiINqAsMZgQcECJExJUUGNW/7U+5wJGtxh32n7JyX4/NNm6e/H99R3O + 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 *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906031329.n53DT8Go055819>