GncBusiness v. GNCSession

Bill Gribble grib@linuxdevel.com
26 Nov 2001 12:11:21 -0600


--=-NqfLgt/FLzRkxc6byXVq
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

On Fri, 2001-11-23 at 19:28, Derek Atkins wrote:
> Could you explain to me how you convert from a glade definition
> and XML schema to, e.g., gncInvoiceGetValue() or gncCustomerGetName()?

I've got mostly-working now a batch of scheme code that does something 
really similar.  You design an interface in Glade, annotate it within
Glade, and then write a very tiny amount of Scheme code to generate a
whole application.  I'm using it to do the configuration dialogs for 
the OpenCheckout point of sale.  When it's a little more stable it will
be released under GPL. 

Attached are a Glade file and a Scheme source file showing the
configuration app I'm working on, and the current README for the
glade-db module.  Most of the work recently has been getting GtkCLists
to handle very large tables properly (by just fetching a few screenfuls
at a time and faking the scrollbars to show the right thing).  I think
this is enough to give the idea of how you can relate the widgets from
Glade into a database model. I'm doing everything directly with
Postgres, but you could just as easily do what I've done and generate
GNC calls instead of manipulating the tables directly. 

b.g.


--=-NqfLgt/FLzRkxc6byXVq
Content-Disposition: attachment; filename=README
Content-Transfer-Encoding: quoted-printable
Content-Type: text/x-readme; charset=ISO-8859-1

Database integration tools for Glade=20
------------------------------------

The idea is that we use a naming convention for the individual widgets=20
in the Glade UI to automagically set callbacks and build data structures.
Since the widget name is queryable to some extent (you can get a list=20
of all the widgets with a certain name prefix) and isn't used for anything,
we can fill it up with info about how to connect the widget to a particular
database table and field. =20

For example, we create an entry widget and name it=20

(gnc-db-edit record=3Dcurrent field=3Ddescription)

"record=3Dcurrent" identifies an item called 'current' in a hash table
of database records that are being viewed or edited.  The user defines
what database, table, and primary key 'current' refers to at startup
time.  The contents of "current" can be changed by other glade
widgets; for example, a button labeled "next" might be named

(gnc-db-action record=3Dcurrent action=3Dnext)

This would mean that when the button is clicked, the "current" record
is changed to point to the next item in the table that current is in.
When the widget is clicked, all the gnc-db-edit widgets that are
editing fields of 'current' need to be updated; if some have been
changed without commit, there needs to be a query dialog to ask
whether changes should be committed or discarded.

Explicit commits or rollbacks can be done by widgets named something like=20

(gnc-db-action record=3Dcurrent action=3Dcommit)

The scheme code that needs to be written (by the "end user") to use
this stuff just needs to define the "records" that are being used by=20
database, table, index field, and initial value, i.e.=20

Records are defined as GOOPS objects, of type <gnc:glade-db-record>.  So
you can make on like so:

(make <gnc:glade-db-record>
  #:name     "current"     ;; name of the record as it appears in glade
  #:database "inventory"   ;; name of the database=20
  #:table    "items-table" ;; table(s) to select from=20
  #:order   '("SKU")       ;; unique field(s) to use for increment/decremen=
t=20
  #:default                ;; function returning a hash table of field->val=
ue
    (lambda (record)       ;; for new records=20
      (let ((ht (make-hash-table 13)))
        (hash-set! ht "name" "New Item"))
	(hash-set! ht "quantity" 0)
	ht))

The widgets are examined automatically by an init function to=20
parse their names and set up the appropriate callbacks.=20

What's there now
----------------

db-test.scm / db-test.glade are my "working test" files.  You can fire
it up with something like=20

  guile -l db-test.scm=20

You'll need a semi-recent guile-gtk installed.  The Debian package=20
is 'libguilegtk-dev'.

It's a sort of inventory item editor thingy.  You will probably need
to set up your GNC_MODULE_PATH, LD_LIBRARY_PATH, and GUILE_LOAD_PATH
by hand to get it to work.  Here are mine, just so you know.  Adjust
your paths accordingly.

  GNC_MODULE_PATH=3D/usr/local/gnucash-1.7/lib/gnucash/:.
  GUILE_LOAD_PATH=3D/usr/local/g-wrap/share/guile/:/usr/local/gnucash-1.7/s=
hare/gnucash/guile-modules/:.
  LD_LIBRARY_PATH=3D/usr/local/gnucash-1.7/lib:/usr/local/gnucash-1.7/lib/g=
nucash/:/usr/local/g-wrap/lib/:.

The sample app lets you view and edit a simple inventory database.=20


<gnc:glade-db-record> options=20
-----------------------------

The glade-db-record serves 3 roles:

  1. It defines an SQL query and ordering of records from some set of table=
s=20
  2. It is a "cursor" (conceptually, not an SQL cursor) indexing that query=
,
     and providing a "current record" abstraction for use by editor and=20
     display widgets.=20
  3. It provides a mechanism for translating between the value in the datab=
ase
     table and what might be viewed or edited by the user.=20

You can construct a pretty wide range of SQL queries by setting up the=20
record initializers properly, but not arbitrary queries. =20

Initializer options recognized by "(make <gnc:glade-db-record>)"=20
include:=20

   #:name      (string) The name of this record as it is used in=20
               "record=3D" parameters of Glade widgets.=20

   #:database  (string) The Postgres database to connect to. =20

   #:tables    (string or list of strings) The table(s) that will be used
               in the query.  The first table is considered to be the
               "primary table" and is the only one that can be altered
               by editor widgets (updates are done by oids from this
               table)

   #:fields    (string or list of strings) fields to select from the
               specified tables.  Defaults to "*".

   #:order     (string or list of strings) Ordering keys for the query
               (must be fields from the #:fields parameter) in order
               of significance from most to least.  This should be a
               unique sort order if next and prev actions are to
               behave as expected.

   #:limit-thunk (procedure of no args) A function to call at query
               time which will return a bit of SQL for insertion into
               a "where" clause.  For example, if you only want to
               select records where field 'foo' is greater than field
               'bar', #:limit-thunk (lambda () "foo > bar") would do
               it.

   #:default-thunk (procedure of no args) A function to call when the
               'new' action is initiated to generate default values
               for the fields of the new record.  The return value
               should be a list of lists, where for each list the
               first element is the field name and the second element
               is the initial value.


gnc-db-display widgets
----------------------

These are widgets that display either a single field or multiple
fields from one or more records but don't allow the records to be
edited in place.  gnc-db-display widgets may have behaviors, such as
click handlers, that change the selection or take some other action
but at this point those behaviors are hard-wired: GtkCLists and
GtkCombos alter the current value of their associated record when
clicked.

GtkCList widgets can be configured to select only a few screenfuls of
data at a time from their table.  This is a dramatic performance
improvement when the clist is displaying a large table.  To enable this
behavior, you need to do the following things:=20

  1. In Glade, put the GtkCList widget inside a GtkScrolledWindow with
     the scrollbar policy set to "Never" for the vertical scrollbar. =20
     You can set the horizontal scrollbar policy to whatever you like.

  2. Create a GtkVScrollbar that will have the same height as the CList.=20
     Generally you want to do this by putting it in a GtkHBox with=20
     the CList's containing GtkScrolledWindow.  Name this scrollbar
     something reasonable. =20

  3. In the gnc-db-display definition for the CList, add the parameter=20
     "scrollbar=3Dscrollbar-widget-name" where scrollbar-widget-name is=20
     whatever you named the scrollbar.=20

Now the scrollbar will control the view of data in the CList as you
expect it to, but the clist will automatically select only 3
screenfuls of data at a time (to allow for smooth scrolling without
too many interrupts).
 =20
gnc-db-edit widgets
-------------------

These are widgets that allow the user to view and modify the contents of a=20
record.=20
 =20
   record    : the name of the record being displayed=20
   fields    : what fields within the record to display.  should=20
               always be a list, even if it's a list of 1 thing.=20
  =20
   x-record  : an optional other record to use as a value translator.=20
   x-fields  : the fields in the x-record to use as sources for the=20
               values in the 'fields' fields, matched in order. =20
               if any element of x-fields is #f, do not translate the=20
               ordinally matching field of 'fields'.=20
   x-display : fields in the x-record to use as input/output displayed=20
               values.=20

If x-record is present, x-fields must be present also and must be the
same length as fields.  x-display is optional.; if present, it must be
the same length as fields.

I can hear you saying "that makes no sense."  Think about the case=20
of the "Tax category" from the demo DB editor.  What we want is for=20
the category picker to select from the tax_category table:

cat_no | cat_name
-----------------
0      | Sales Tax
1      | Luxury Tax=20

but we are putting the values into the items table:=20

item_no | description | sku    | tax_cat
--------------------------------------
0       | widget      | 0345556| 0=20
1       | big widget  | 0345557| 1

so we define a record called "tax-picker" on the tax category table,
and define the combobox list widget like so:

  (gnc-db-display record=3Dtax-picker fields=3D(cat_name))

and the Entry part of the combobox:=20

  (gnc-db-edit record=3Dinventory fields=3D(tax_cat)=20
               x-record=3Dtax-picker x-fields=3D(cat_no) x-display=3D(cat_n=
ame))

so what gets displayed is the cat_name (a readable string) but when a=20
cat_name is selected, the cat_no is actually stored in the tax_cat field
of the inventory record.  Make sense?=20

Type conversions are done by looking at the table's type information.

For GtkList and GtkComboBox widgets, the values to choose from can be eithe=
r
a set that is defined within Glade or the results of a query.  If a query,=20
the widget definition should have the following additional fields:=20

  table : the table to select from=20
  value : table column to use as the selected value=20
  display : column to use as the displayed value.=20

For example, if I have a table mapping names to indexes like so

names:=20
 index | name
-------+--------
0       Joe=20
1       Bob
2       Susie

and another table that has the person's ID as a column, I could=20
create a ComboBox named=20

(gnc-db-edit record=3Dcurrent field=3Did table=3Dnames value=3Dindex displa=
y=3Dname)

and "Joe", "Bob", and "Susie" would appear in the pick list, assigning=20
0, 1, or 2 to the field "id" in the current record.=20
  =20
gnc-db-action widgets
---------------------

These are generally buttons that cause something to be done to a
record, such as committing changes to the DB or rolling them back,
creating new records, or what have you.  The action handlers may end
up iterating over the edit widgets that refer to the same record to
update their contents.

   record  : the record
   action  : commit - commit changes to the DB
             rollback - discard changes in edit widgets=20
             new - create a new record=20
             delete - delete the current record

Other actions can be defined by gnc:glade-db-record-add-action-handler!


gnc-db-select widgets
---------------------

These are widgets that select a new record.  They can be buttons which
cause the new record to be selected by some algorithm (next, previous,
first, last).

  record  : the record that will be changed=20
  action  : next, prev, first, last, and select are reserved.  Any other=20
            action can be set via gnc:glade-db-record-add-select-handler!

b.g.



--=-NqfLgt/FLzRkxc6byXVq
Content-Type: application/x-glade
Content-Disposition: attachment; filename=pos-config.glade
Content-Transfer-Encoding: base64

PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxHVEstSW50ZXJmYWNlPgoKPHByb2plY3Q+CiAgPG5hbWU+
cG9zLWNvbmZpZzwvbmFtZT4KICA8cHJvZ3JhbV9uYW1lPnBvcy1jb25maWc8L3Byb2dyYW1fbmFt
ZT4KICA8ZGlyZWN0b3J5PjwvZGlyZWN0b3J5PgogIDxzb3VyY2VfZGlyZWN0b3J5PnNyYzwvc291
cmNlX2RpcmVjdG9yeT4KICA8cGl4bWFwc19kaXJlY3Rvcnk+cGl4bWFwczwvcGl4bWFwc19kaXJl
Y3Rvcnk+CiAgPGxhbmd1YWdlPkM8L2xhbmd1YWdlPgogIDxnbm9tZV9zdXBwb3J0PlRydWU8L2du
b21lX3N1cHBvcnQ+CiAgPGdldHRleHRfc3VwcG9ydD5UcnVlPC9nZXR0ZXh0X3N1cHBvcnQ+CiAg
PG91dHB1dF9tYWluX2ZpbGU+RmFsc2U8L291dHB1dF9tYWluX2ZpbGU+CiAgPG91dHB1dF9zdXBw
b3J0X2ZpbGVzPkZhbHNlPC9vdXRwdXRfc3VwcG9ydF9maWxlcz4KICA8b3V0cHV0X2J1aWxkX2Zp
bGVzPkZhbHNlPC9vdXRwdXRfYnVpbGRfZmlsZXM+CjwvcHJvamVjdD4KCjx3aWRnZXQ+CiAgPGNs
YXNzPkdub21lRGlhbG9nPC9jbGFzcz4KICA8bmFtZT5jb25maWd1cmF0aW9uIGVkaXRvcjwvbmFt
ZT4KICA8dGl0bGU+RWRpdCBDb25maWd1cmF0aW9uPC90aXRsZT4KICA8dHlwZT5HVEtfV0lORE9X
X0RJQUxPRzwvdHlwZT4KICA8cG9zaXRpb24+R1RLX1dJTl9QT1NfTk9ORTwvcG9zaXRpb24+CiAg
PG1vZGFsPkZhbHNlPC9tb2RhbD4KICA8YWxsb3dfc2hyaW5rPlRydWU8L2FsbG93X3Nocmluaz4K
ICA8YWxsb3dfZ3Jvdz5UcnVlPC9hbGxvd19ncm93PgogIDxhdXRvX3Nocmluaz5GYWxzZTwvYXV0
b19zaHJpbms+CiAgPGF1dG9fY2xvc2U+RmFsc2U8L2F1dG9fY2xvc2U+CiAgPGhpZGVfb25fY2xv
c2U+RmFsc2U8L2hpZGVfb25fY2xvc2U+CgogIDx3aWRnZXQ+CiAgICA8Y2xhc3M+R3RrVkJveDwv
Y2xhc3M+CiAgICA8Y2hpbGRfbmFtZT5Hbm9tZURpYWxvZzp2Ym94PC9jaGlsZF9uYW1lPgogICAg
PG5hbWU+ZGlhbG9nLXZib3gyPC9uYW1lPgogICAgPGhvbW9nZW5lb3VzPkZhbHNlPC9ob21vZ2Vu
ZW91cz4KICAgIDxzcGFjaW5nPjg8L3NwYWNpbmc+CiAgICA8Y2hpbGQ+CiAgICAgIDxwYWRkaW5n
PjQ8L3BhZGRpbmc+CiAgICAgIDxleHBhbmQ+VHJ1ZTwvZXhwYW5kPgogICAgICA8ZmlsbD5UcnVl
PC9maWxsPgogICAgPC9jaGlsZD4KCiAgICA8d2lkZ2V0PgogICAgICA8Y2xhc3M+R3RrSEJ1dHRv
bkJveDwvY2xhc3M+CiAgICAgIDxjaGlsZF9uYW1lPkdub21lRGlhbG9nOmFjdGlvbl9hcmVhPC9j
aGlsZF9uYW1lPgogICAgICA8bmFtZT5kaWFsb2ctYWN0aW9uX2FyZWEyPC9uYW1lPgogICAgICA8
bGF5b3V0X3N0eWxlPkdUS19CVVRUT05CT1hfRU5EPC9sYXlvdXRfc3R5bGU+CiAgICAgIDxzcGFj
aW5nPjg8L3NwYWNpbmc+CiAgICAgIDxjaGlsZF9taW5fd2lkdGg+ODU8L2NoaWxkX21pbl93aWR0
aD4KICAgICAgPGNoaWxkX21pbl9oZWlnaHQ+Mjc8L2NoaWxkX21pbl9oZWlnaHQ+CiAgICAgIDxj
aGlsZF9pcGFkX3g+NzwvY2hpbGRfaXBhZF94PgogICAgICA8Y2hpbGRfaXBhZF95PjA8L2NoaWxk
X2lwYWRfeT4KICAgICAgPGNoaWxkPgoJPHBhZGRpbmc+MDwvcGFkZGluZz4KCTxleHBhbmQ+RmFs
c2U8L2V4cGFuZD4KCTxmaWxsPlRydWU8L2ZpbGw+Cgk8cGFjaz5HVEtfUEFDS19FTkQ8L3BhY2s+
CiAgICAgIDwvY2hpbGQ+CgogICAgICA8d2lkZ2V0PgoJPGNsYXNzPkd0a0J1dHRvbjwvY2xhc3M+
Cgk8bmFtZT5jbG9zZS1idXR0b248L25hbWU+Cgk8Y2FuX2RlZmF1bHQ+VHJ1ZTwvY2FuX2RlZmF1
bHQ+Cgk8Y2FuX2ZvY3VzPlRydWU8L2Nhbl9mb2N1cz4KCTxzdG9ja19idXR0b24+R05PTUVfU1RP
Q0tfQlVUVE9OX0NMT1NFPC9zdG9ja19idXR0b24+CiAgICAgIDwvd2lkZ2V0PgogICAgPC93aWRn
ZXQ+CgogICAgPHdpZGdldD4KICAgICAgPGNsYXNzPkd0a05vdGVib29rPC9jbGFzcz4KICAgICAg
PG5hbWU+bm90ZWJvb2syPC9uYW1lPgogICAgICA8Y2FuX2ZvY3VzPlRydWU8L2Nhbl9mb2N1cz4K
ICAgICAgPHNob3dfdGFicz5UcnVlPC9zaG93X3RhYnM+CiAgICAgIDxzaG93X2JvcmRlcj5UcnVl
PC9zaG93X2JvcmRlcj4KICAgICAgPHRhYl9wb3M+R1RLX1BPU19UT1A8L3RhYl9wb3M+CiAgICAg
IDxzY3JvbGxhYmxlPkZhbHNlPC9zY3JvbGxhYmxlPgogICAgICA8dGFiX2hib3JkZXI+MjwvdGFi
X2hib3JkZXI+CiAgICAgIDx0YWJfdmJvcmRlcj4yPC90YWJfdmJvcmRlcj4KICAgICAgPHBvcHVw
X2VuYWJsZT5GYWxzZTwvcG9wdXBfZW5hYmxlPgogICAgICA8Y2hpbGQ+Cgk8cGFkZGluZz4wPC9w
YWRkaW5nPgoJPGV4cGFuZD5UcnVlPC9leHBhbmQ+Cgk8ZmlsbD5UcnVlPC9maWxsPgogICAgICA8
L2NoaWxkPgoKICAgICAgPHdpZGdldD4KCTxjbGFzcz5HdGtIQm94PC9jbGFzcz4KCTxuYW1lPmhi
b3g2PC9uYW1lPgoJPGhvbW9nZW5lb3VzPkZhbHNlPC9ob21vZ2VuZW91cz4KCTxzcGFjaW5nPjA8
L3NwYWNpbmc+CgoJPHdpZGdldD4KCSAgPGNsYXNzPkd0a1ZCb3g8L2NsYXNzPgoJICA8bmFtZT52
Ym94MjU8L25hbWU+CgkgIDxob21vZ2VuZW91cz5GYWxzZTwvaG9tb2dlbmVvdXM+CgkgIDxzcGFj
aW5nPjA8L3NwYWNpbmc+CgkgIDxjaGlsZD4KCSAgICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJICAg
IDxleHBhbmQ+VHJ1ZTwvZXhwYW5kPgoJICAgIDxmaWxsPlRydWU8L2ZpbGw+CgkgIDwvY2hpbGQ+
CgoJICA8d2lkZ2V0PgoJICAgIDxjbGFzcz5HdGtIQm94PC9jbGFzcz4KCSAgICA8bmFtZT5oYm94
MjE8L25hbWU+CgkgICAgPGhvbW9nZW5lb3VzPkZhbHNlPC9ob21vZ2VuZW91cz4KCSAgICA8c3Bh
Y2luZz4wPC9zcGFjaW5nPgoJICAgIDxjaGlsZD4KCSAgICAgIDxwYWRkaW5nPjA8L3BhZGRpbmc+
CgkgICAgICA8ZXhwYW5kPlRydWU8L2V4cGFuZD4KCSAgICAgIDxmaWxsPlRydWU8L2ZpbGw+Cgkg
ICAgPC9jaGlsZD4KCgkgICAgPHdpZGdldD4KCSAgICAgIDxjbGFzcz5HdGtTY3JvbGxlZFdpbmRv
dzwvY2xhc3M+CgkgICAgICA8bmFtZT5zY3JvbGxlZHdpbmRvdzU8L25hbWU+CgkgICAgICA8aHNj
cm9sbGJhcl9wb2xpY3k+R1RLX1BPTElDWV9ORVZFUjwvaHNjcm9sbGJhcl9wb2xpY3k+CgkgICAg
ICA8dnNjcm9sbGJhcl9wb2xpY3k+R1RLX1BPTElDWV9ORVZFUjwvdnNjcm9sbGJhcl9wb2xpY3k+
CgkgICAgICA8aHVwZGF0ZV9wb2xpY3k+R1RLX1VQREFURV9DT05USU5VT1VTPC9odXBkYXRlX3Bv
bGljeT4KCSAgICAgIDx2dXBkYXRlX3BvbGljeT5HVEtfVVBEQVRFX0NPTlRJTlVPVVM8L3Z1cGRh
dGVfcG9saWN5PgoJICAgICAgPGNoaWxkPgoJCTxwYWRkaW5nPjA8L3BhZGRpbmc+CgkJPGV4cGFu
ZD5UcnVlPC9leHBhbmQ+CgkJPGZpbGw+VHJ1ZTwvZmlsbD4KCSAgICAgIDwvY2hpbGQ+CgoJICAg
ICAgPHdpZGdldD4KCQk8Y2xhc3M+R3RrQ0xpc3Q8L2NsYXNzPgoJCTxuYW1lPihnbmMtZGItZGlz
cGxheSByZWNvcmQ9aXRlbXMgZmllbGRzPShza3Ugc2hvcnRfZGVzYyBkZXBhcnRtZW50Lm5hbWUg
YW1vdW50KSBzY3JvbGxiYXI9aXRlbS1saXN0LXNjcm9sbGJhcik8L25hbWU+CgkJPGNhbl9mb2N1
cz5UcnVlPC9jYW5fZm9jdXM+CgkJPGNvbHVtbnM+NDwvY29sdW1ucz4KCQk8Y29sdW1uX3dpZHRo
cz45NiwyNjMsODgsODA8L2NvbHVtbl93aWR0aHM+CgkJPHNlbGVjdGlvbl9tb2RlPkdUS19TRUxF
Q1RJT05fU0lOR0xFPC9zZWxlY3Rpb25fbW9kZT4KCQk8c2hvd190aXRsZXM+VHJ1ZTwvc2hvd190
aXRsZXM+CgkJPHNoYWRvd190eXBlPkdUS19TSEFET1dfSU48L3NoYWRvd190eXBlPgoKCQk8d2lk
Z2V0PgoJCSAgPGNsYXNzPkd0a0xhYmVsPC9jbGFzcz4KCQkgIDxjaGlsZF9uYW1lPkNMaXN0OnRp
dGxlPC9jaGlsZF9uYW1lPgoJCSAgPG5hbWU+bGFiZWwyMzwvbmFtZT4KCQkgIDxsYWJlbD5TS1U8
L2xhYmVsPgoJCSAgPGp1c3RpZnk+R1RLX0pVU1RJRllfQ0VOVEVSPC9qdXN0aWZ5PgoJCSAgPHdy
YXA+RmFsc2U8L3dyYXA+CgkJICA8eGFsaWduPjAuNTwveGFsaWduPgoJCSAgPHlhbGlnbj4wLjU8
L3lhbGlnbj4KCQkgIDx4cGFkPjA8L3hwYWQ+CgkJICA8eXBhZD4wPC95cGFkPgoJCTwvd2lkZ2V0
PgoKCQk8d2lkZ2V0PgoJCSAgPGNsYXNzPkd0a0xhYmVsPC9jbGFzcz4KCQkgIDxjaGlsZF9uYW1l
PkNMaXN0OnRpdGxlPC9jaGlsZF9uYW1lPgoJCSAgPG5hbWU+bGFiZWwyNDwvbmFtZT4KCQkgIDxs
YWJlbD5EZXNjcmlwdGlvbjwvbGFiZWw+CgkJICA8anVzdGlmeT5HVEtfSlVTVElGWV9DRU5URVI8
L2p1c3RpZnk+CgkJICA8d3JhcD5GYWxzZTwvd3JhcD4KCQkgIDx4YWxpZ24+MC41PC94YWxpZ24+
CgkJICA8eWFsaWduPjAuNTwveWFsaWduPgoJCSAgPHhwYWQ+MDwveHBhZD4KCQkgIDx5cGFkPjA8
L3lwYWQ+CgkJPC93aWRnZXQ+CgoJCTx3aWRnZXQ+CgkJICA8Y2xhc3M+R3RrTGFiZWw8L2NsYXNz
PgoJCSAgPGNoaWxkX25hbWU+Q0xpc3Q6dGl0bGU8L2NoaWxkX25hbWU+CgkJICA8bmFtZT5sYWJl
bDI1PC9uYW1lPgoJCSAgPGxhYmVsPkRlcGFydG1lbnQ8L2xhYmVsPgoJCSAgPGp1c3RpZnk+R1RL
X0pVU1RJRllfQ0VOVEVSPC9qdXN0aWZ5PgoJCSAgPHdyYXA+RmFsc2U8L3dyYXA+CgkJICA8eGFs
aWduPjAuNTwveGFsaWduPgoJCSAgPHlhbGlnbj4wLjU8L3lhbGlnbj4KCQkgIDx4cGFkPjA8L3hw
YWQ+CgkJICA8eXBhZD4wPC95cGFkPgoJCTwvd2lkZ2V0PgoKCQk8d2lkZ2V0PgoJCSAgPGNsYXNz
Pkd0a0xhYmVsPC9jbGFzcz4KCQkgIDxjaGlsZF9uYW1lPkNMaXN0OnRpdGxlPC9jaGlsZF9uYW1l
PgoJCSAgPG5hbWU+bGFiZWwyNjwvbmFtZT4KCQkgIDxsYWJlbD5QcmljZTwvbGFiZWw+CgkJICA8
anVzdGlmeT5HVEtfSlVTVElGWV9DRU5URVI8L2p1c3RpZnk+CgkJICA8d3JhcD5GYWxzZTwvd3Jh
cD4KCQkgIDx4YWxpZ24+MC41PC94YWxpZ24+CgkJICA8eWFsaWduPjAuNTwveWFsaWduPgoJCSAg
PHhwYWQ+MDwveHBhZD4KCQkgIDx5cGFkPjA8L3lwYWQ+CgkJPC93aWRnZXQ+CgkgICAgICA8L3dp
ZGdldD4KCSAgICA8L3dpZGdldD4KCgkgICAgPHdpZGdldD4KCSAgICAgIDxjbGFzcz5HdGtWU2Ny
b2xsYmFyPC9jbGFzcz4KCSAgICAgIDxuYW1lPml0ZW0tbGlzdC1zY3JvbGxiYXI8L25hbWU+Cgkg
ICAgICA8cG9saWN5PkdUS19VUERBVEVfQ09OVElOVU9VUzwvcG9saWN5PgoJICAgICAgPHZhbHVl
PjA8L3ZhbHVlPgoJICAgICAgPGxvd2VyPjA8L2xvd2VyPgoJICAgICAgPHVwcGVyPjA8L3VwcGVy
PgoJICAgICAgPHN0ZXA+MDwvc3RlcD4KCSAgICAgIDxwYWdlPjA8L3BhZ2U+CgkgICAgICA8cGFn
ZV9zaXplPjA8L3BhZ2Vfc2l6ZT4KCSAgICAgIDxjaGlsZD4KCQk8cGFkZGluZz4wPC9wYWRkaW5n
PgoJCTxleHBhbmQ+RmFsc2U8L2V4cGFuZD4KCQk8ZmlsbD5GYWxzZTwvZmlsbD4KCSAgICAgIDwv
Y2hpbGQ+CgkgICAgPC93aWRnZXQ+CgkgIDwvd2lkZ2V0PgoKCSAgPHdpZGdldD4KCSAgICA8Y2xh
c3M+R3RrRnJhbWU8L2NsYXNzPgoJICAgIDxuYW1lPmZyYW1lMTA8L25hbWU+CgkgICAgPGxhYmVs
X3hhbGlnbj4wPC9sYWJlbF94YWxpZ24+CgkgICAgPHNoYWRvd190eXBlPkdUS19TSEFET1dfRVRD
SEVEX0lOPC9zaGFkb3dfdHlwZT4KCSAgICA8Y2hpbGQ+CgkgICAgICA8cGFkZGluZz4wPC9wYWRk
aW5nPgoJICAgICAgPGV4cGFuZD5GYWxzZTwvZXhwYW5kPgoJICAgICAgPGZpbGw+RmFsc2U8L2Zp
bGw+CgkgICAgPC9jaGlsZD4KCgkgICAgPHdpZGdldD4KCSAgICAgIDxjbGFzcz5HdGtIQm94PC9j
bGFzcz4KCSAgICAgIDxuYW1lPmhib3gyMDwvbmFtZT4KCSAgICAgIDxob21vZ2VuZW91cz5GYWxz
ZTwvaG9tb2dlbmVvdXM+CgkgICAgICA8c3BhY2luZz41PC9zcGFjaW5nPgoKCSAgICAgIDx3aWRn
ZXQ+CgkJPGNsYXNzPkd0a0xhYmVsPC9jbGFzcz4KCQk8bmFtZT5sYWJlbDYwPC9uYW1lPgoJCTxs
YWJlbD5RdWljayBzZWFyY2g6PC9sYWJlbD4KCQk8anVzdGlmeT5HVEtfSlVTVElGWV9DRU5URVI8
L2p1c3RpZnk+CgkJPHdyYXA+RmFsc2U8L3dyYXA+CgkJPHhhbGlnbj4wLjU8L3hhbGlnbj4KCQk8
eWFsaWduPjAuNTwveWFsaWduPgoJCTx4cGFkPjA8L3hwYWQ+CgkJPHlwYWQ+MDwveXBhZD4KCQk8
Y2hpbGQ+CgkJICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJCSAgPGV4cGFuZD5GYWxzZTwvZXhwYW5k
PgoJCSAgPGZpbGw+RmFsc2U8L2ZpbGw+CgkJPC9jaGlsZD4KCSAgICAgIDwvd2lkZ2V0PgoKCSAg
ICAgIDx3aWRnZXQ+CgkJPGNsYXNzPkd0a09wdGlvbk1lbnU8L2NsYXNzPgoJCTxuYW1lPml0ZW0t
c2VhcmNoLWZpZWxkLWxpc3Q8L25hbWU+CgkJPGNhbl9mb2N1cz5UcnVlPC9jYW5fZm9jdXM+CgkJ
PGl0ZW1zPlNLVQpEZXNjcmlwdGlvbgpEZXBhcnRtZW50ClByaWNlCjwvaXRlbXM+CgkJPGluaXRp
YWxfY2hvaWNlPjA8L2luaXRpYWxfY2hvaWNlPgoJCTxjaGlsZD4KCQkgIDxwYWRkaW5nPjA8L3Bh
ZGRpbmc+CgkJICA8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkJICA8ZmlsbD5GYWxzZTwvZmlsbD4K
CQk8L2NoaWxkPgoJICAgICAgPC93aWRnZXQ+CgoJICAgICAgPHdpZGdldD4KCQk8Y2xhc3M+R3Rr
TGFiZWw8L2NsYXNzPgoJCTxuYW1lPmxhYmVsNjE8L25hbWU+CgkJPGxhYmVsPm1hdGNoZXM8L2xh
YmVsPgoJCTxqdXN0aWZ5PkdUS19KVVNUSUZZX0NFTlRFUjwvanVzdGlmeT4KCQk8d3JhcD5GYWxz
ZTwvd3JhcD4KCQk8eGFsaWduPjAuNTwveGFsaWduPgoJCTx5YWxpZ24+MC41PC95YWxpZ24+CgkJ
PHhwYWQ+MDwveHBhZD4KCQk8eXBhZD4wPC95cGFkPgoJCTxjaGlsZD4KCQkgIDxwYWRkaW5nPjA8
L3BhZGRpbmc+CgkJICA8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkJICA8ZmlsbD5GYWxzZTwvZmls
bD4KCQk8L2NoaWxkPgoJICAgICAgPC93aWRnZXQ+CgoJICAgICAgPHdpZGdldD4KCQk8Y2xhc3M+
R3RrRW50cnk8L2NsYXNzPgoJCTxuYW1lPml0ZW0tc2VhcmNoLW1hdGNoLWVudHJ5PC9uYW1lPgoJ
CTxjYW5fZm9jdXM+VHJ1ZTwvY2FuX2ZvY3VzPgoJCTxlZGl0YWJsZT5UcnVlPC9lZGl0YWJsZT4K
CQk8dGV4dF92aXNpYmxlPlRydWU8L3RleHRfdmlzaWJsZT4KCQk8dGV4dF9tYXhfbGVuZ3RoPjA8
L3RleHRfbWF4X2xlbmd0aD4KCQk8dGV4dD48L3RleHQ+CgkJPGNoaWxkPgoJCSAgPHBhZGRpbmc+
MDwvcGFkZGluZz4KCQkgIDxleHBhbmQ+VHJ1ZTwvZXhwYW5kPgoJCSAgPGZpbGw+VHJ1ZTwvZmls
bD4KCQk8L2NoaWxkPgoJICAgICAgPC93aWRnZXQ+CgoJICAgICAgPHdpZGdldD4KCQk8Y2xhc3M+
R3RrQnV0dG9uPC9jbGFzcz4KCQk8bmFtZT5pdGVtLXNlYXJjaC1wcmV2LWJ1dHRvbjwvbmFtZT4K
CQk8Y2FuX2ZvY3VzPlRydWU8L2Nhbl9mb2N1cz4KCQk8bGFiZWw+Jmx0OyZsdDsgRmluZCBwcmV2
PC9sYWJlbD4KCQk8cmVsaWVmPkdUS19SRUxJRUZfTk9STUFMPC9yZWxpZWY+CgkJPGNoaWxkPgoJ
CSAgPHBhZGRpbmc+MDwvcGFkZGluZz4KCQkgIDxleHBhbmQ+RmFsc2U8L2V4cGFuZD4KCQkgIDxm
aWxsPkZhbHNlPC9maWxsPgoJCTwvY2hpbGQ+CgkgICAgICA8L3dpZGdldD4KCgkgICAgICA8d2lk
Z2V0PgoJCTxjbGFzcz5HdGtCdXR0b248L2NsYXNzPgoJCTxuYW1lPml0ZW0tc2VhcmNoLW5leHQt
YnV0dG9uPC9uYW1lPgoJCTxjYW5fZm9jdXM+VHJ1ZTwvY2FuX2ZvY3VzPgoJCTxsYWJlbD5GaW5k
IG5leHQgJmd0OyZndDs8L2xhYmVsPgoJCTxyZWxpZWY+R1RLX1JFTElFRl9OT1JNQUw8L3JlbGll
Zj4KCQk8Y2hpbGQ+CgkJICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJCSAgPGV4cGFuZD5GYWxzZTwv
ZXhwYW5kPgoJCSAgPGZpbGw+RmFsc2U8L2ZpbGw+CgkJPC9jaGlsZD4KCSAgICAgIDwvd2lkZ2V0
PgoJICAgIDwvd2lkZ2V0PgoJICA8L3dpZGdldD4KCTwvd2lkZ2V0PgoKCTx3aWRnZXQ+CgkgIDxj
bGFzcz5HdGtWQm94PC9jbGFzcz4KCSAgPG5hbWU+dmJveDc8L25hbWU+CgkgIDxob21vZ2VuZW91
cz5GYWxzZTwvaG9tb2dlbmVvdXM+CgkgIDxzcGFjaW5nPjA8L3NwYWNpbmc+CgkgIDxjaGlsZD4K
CSAgICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJICAgIDxleHBhbmQ+VHJ1ZTwvZXhwYW5kPgoJICAg
IDxmaWxsPlRydWU8L2ZpbGw+CgkgIDwvY2hpbGQ+CgoJICA8d2lkZ2V0PgoJICAgIDxjbGFzcz5H
dGtMYWJlbDwvY2xhc3M+CgkgICAgPG5hbWU+bGFiZWwyNzwvbmFtZT4KCSAgICA8bGFiZWw+PC9s
YWJlbD4KCSAgICA8anVzdGlmeT5HVEtfSlVTVElGWV9DRU5URVI8L2p1c3RpZnk+CgkgICAgPHdy
YXA+RmFsc2U8L3dyYXA+CgkgICAgPHhhbGlnbj4wLjU8L3hhbGlnbj4KCSAgICA8eWFsaWduPjAu
NTwveWFsaWduPgoJICAgIDx4cGFkPjA8L3hwYWQ+CgkgICAgPHlwYWQ+MDwveXBhZD4KCSAgICA8
Y2hpbGQ+CgkgICAgICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJICAgICAgPGV4cGFuZD5GYWxzZTwv
ZXhwYW5kPgoJICAgICAgPGZpbGw+RmFsc2U8L2ZpbGw+CgkgICAgPC9jaGlsZD4KCSAgPC93aWRn
ZXQ+CgoJICA8d2lkZ2V0PgoJICAgIDxjbGFzcz5HdGtCdXR0b248L2NsYXNzPgoJICAgIDxuYW1l
PmVkaXQtaXRlbS1idXR0b248L25hbWU+CgkgICAgPGNhbl9mb2N1cz5UcnVlPC9jYW5fZm9jdXM+
CgkgICAgPGxhYmVsPkVkaXQgSXRlbS4uLjwvbGFiZWw+CgkgICAgPHJlbGllZj5HVEtfUkVMSUVG
X05PUk1BTDwvcmVsaWVmPgoJICAgIDxjaGlsZD4KCSAgICAgIDxwYWRkaW5nPjA8L3BhZGRpbmc+
CgkgICAgICA8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkgICAgICA8ZmlsbD5GYWxzZTwvZmlsbD4K
CSAgICA8L2NoaWxkPgoJICA8L3dpZGdldD4KCgkgIDx3aWRnZXQ+CgkgICAgPGNsYXNzPkd0a0J1
dHRvbjwvY2xhc3M+CgkgICAgPG5hbWU+bmV3LWl0ZW0tYnV0dG9uPC9uYW1lPgoJICAgIDxjYW5f
Zm9jdXM+VHJ1ZTwvY2FuX2ZvY3VzPgoJICAgIDxsYWJlbD5OZXcgSXRlbS4uLjwvbGFiZWw+Cgkg
ICAgPHJlbGllZj5HVEtfUkVMSUVGX05PUk1BTDwvcmVsaWVmPgoJICAgIDxjaGlsZD4KCSAgICAg
IDxwYWRkaW5nPjA8L3BhZGRpbmc+CgkgICAgICA8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkgICAg
ICA8ZmlsbD5GYWxzZTwvZmlsbD4KCSAgICA8L2NoaWxkPgoJICA8L3dpZGdldD4KCgkgIDx3aWRn
ZXQ+CgkgICAgPGNsYXNzPkd0a0J1dHRvbjwvY2xhc3M+CgkgICAgPG5hbWU+KGduYy1kYi1hY3Rp
b24gcmVjb3JkPWl0ZW1zIGFjdGlvbj1kZWxldGUgY29uZmlybT0jdCk8L25hbWU+CgkgICAgPGNh
bl9mb2N1cz5UcnVlPC9jYW5fZm9jdXM+CgkgICAgPGxhYmVsPkRlbGV0ZSBJdGVtPC9sYWJlbD4K
CSAgICA8cmVsaWVmPkdUS19SRUxJRUZfTk9STUFMPC9yZWxpZWY+CgkgICAgPGNoaWxkPgoJICAg
ICAgPHBhZGRpbmc+MDwvcGFkZGluZz4KCSAgICAgIDxleHBhbmQ+RmFsc2U8L2V4cGFuZD4KCSAg
ICAgIDxmaWxsPkZhbHNlPC9maWxsPgoJICAgIDwvY2hpbGQ+CgkgIDwvd2lkZ2V0PgoKCSAgPHdp
ZGdldD4KCSAgICA8Y2xhc3M+R3RrTGFiZWw8L2NsYXNzPgoJICAgIDxuYW1lPmxhYmVsMjg8L25h
bWU+CgkgICAgPGxhYmVsPjwvbGFiZWw+CgkgICAgPGp1c3RpZnk+R1RLX0pVU1RJRllfQ0VOVEVS
PC9qdXN0aWZ5PgoJICAgIDx3cmFwPkZhbHNlPC93cmFwPgoJICAgIDx4YWxpZ24+MC41PC94YWxp
Z24+CgkgICAgPHlhbGlnbj4wLjU8L3lhbGlnbj4KCSAgICA8eHBhZD4wPC94cGFkPgoJICAgIDx5
cGFkPjA8L3lwYWQ+CgkgICAgPGNoaWxkPgoJICAgICAgPHBhZGRpbmc+MDwvcGFkZGluZz4KCSAg
ICAgIDxleHBhbmQ+RmFsc2U8L2V4cGFuZD4KCSAgICAgIDxmaWxsPkZhbHNlPC9maWxsPgoJICAg
IDwvY2hpbGQ+CgkgIDwvd2lkZ2V0PgoJPC93aWRnZXQ+CiAgICAgIDwvd2lkZ2V0PgoKICAgICAg
PHdpZGdldD4KCTxjbGFzcz5HdGtMYWJlbDwvY2xhc3M+Cgk8Y2hpbGRfbmFtZT5Ob3RlYm9vazp0
YWI8L2NoaWxkX25hbWU+Cgk8bmFtZT5sYWJlbDIxPC9uYW1lPgoJPGxhYmVsPkludmVudG9yeSBp
dGVtczwvbGFiZWw+Cgk8anVzdGlmeT5HVEtfSlVTVElGWV9DRU5URVI8L2p1c3RpZnk+Cgk8d3Jh
cD5GYWxzZTwvd3JhcD4KCTx4YWxpZ24+MC41PC94YWxpZ24+Cgk8eWFsaWduPjAuNTwveWFsaWdu
PgoJPHhwYWQ+MDwveHBhZD4KCTx5cGFkPjA8L3lwYWQ+CiAgICAgIDwvd2lkZ2V0PgoKICAgICAg
PHdpZGdldD4KCTxjbGFzcz5HdGtMYWJlbDwvY2xhc3M+Cgk8bmFtZT5sYWJlbDI5PC9uYW1lPgoJ
PGxhYmVsPk5vdCBzdXBwb3J0ZWQgeWV0PC9sYWJlbD4KCTxqdXN0aWZ5PkdUS19KVVNUSUZZX0NF
TlRFUjwvanVzdGlmeT4KCTx3cmFwPkZhbHNlPC93cmFwPgoJPHhhbGlnbj4wLjU8L3hhbGlnbj4K
CTx5YWxpZ24+MC41PC95YWxpZ24+Cgk8eHBhZD4wPC94cGFkPgoJPHlwYWQ+MDwveXBhZD4KICAg
ICAgPC93aWRnZXQ+CgogICAgICA8d2lkZ2V0PgoJPGNsYXNzPkd0a0xhYmVsPC9jbGFzcz4KCTxj
aGlsZF9uYW1lPk5vdGVib29rOnRhYjwvY2hpbGRfbmFtZT4KCTxuYW1lPmxhYmVsMjI8L25hbWU+
Cgk8bGFiZWw+UHJvbW90aW9ucy9kaXNjb3VudHM8L2xhYmVsPgoJPGp1c3RpZnk+R1RLX0pVU1RJ
RllfQ0VOVEVSPC9qdXN0aWZ5PgoJPHdyYXA+RmFsc2U8L3dyYXA+Cgk8eGFsaWduPjAuNTwveGFs
aWduPgoJPHlhbGlnbj4wLjU8L3lhbGlnbj4KCTx4cGFkPjA8L3hwYWQ+Cgk8eXBhZD4wPC95cGFk
PgogICAgICA8L3dpZGdldD4KCiAgICAgIDx3aWRnZXQ+Cgk8Y2xhc3M+R3RrSEJveDwvY2xhc3M+
Cgk8bmFtZT5oYm94MTwvbmFtZT4KCTxob21vZ2VuZW91cz5GYWxzZTwvaG9tb2dlbmVvdXM+Cgk8
c3BhY2luZz4wPC9zcGFjaW5nPgoKCTx3aWRnZXQ+CgkgIDxjbGFzcz5HdGtIQm94PC9jbGFzcz4K
CSAgPG5hbWU+aGJveDI8L25hbWU+CgkgIDxob21vZ2VuZW91cz5GYWxzZTwvaG9tb2dlbmVvdXM+
CgkgIDxzcGFjaW5nPjA8L3NwYWNpbmc+CgkgIDxjaGlsZD4KCSAgICA8cGFkZGluZz4wPC9wYWRk
aW5nPgoJICAgIDxleHBhbmQ+VHJ1ZTwvZXhwYW5kPgoJICAgIDxmaWxsPlRydWU8L2ZpbGw+Cgkg
IDwvY2hpbGQ+CgoJICA8d2lkZ2V0PgoJICAgIDxjbGFzcz5HdGtTY3JvbGxlZFdpbmRvdzwvY2xh
c3M+CgkgICAgPG5hbWU+c2Nyb2xsZWR3aW5kb3cxPC9uYW1lPgoJICAgIDxoc2Nyb2xsYmFyX3Bv
bGljeT5HVEtfUE9MSUNZX05FVkVSPC9oc2Nyb2xsYmFyX3BvbGljeT4KCSAgICA8dnNjcm9sbGJh
cl9wb2xpY3k+R1RLX1BPTElDWV9BTFdBWVM8L3ZzY3JvbGxiYXJfcG9saWN5PgoJICAgIDxodXBk
YXRlX3BvbGljeT5HVEtfVVBEQVRFX0NPTlRJTlVPVVM8L2h1cGRhdGVfcG9saWN5PgoJICAgIDx2
dXBkYXRlX3BvbGljeT5HVEtfVVBEQVRFX0NPTlRJTlVPVVM8L3Z1cGRhdGVfcG9saWN5PgoJICAg
IDxjaGlsZD4KCSAgICAgIDxwYWRkaW5nPjA8L3BhZGRpbmc+CgkgICAgICA8ZXhwYW5kPlRydWU8
L2V4cGFuZD4KCSAgICAgIDxmaWxsPlRydWU8L2ZpbGw+CgkgICAgPC9jaGlsZD4KCgkgICAgPHdp
ZGdldD4KCSAgICAgIDxjbGFzcz5HdGtDTGlzdDwvY2xhc3M+CgkgICAgICA8bmFtZT4oZ25jLWRi
LWRpc3BsYXkgcmVjb3JkPWRlcGFydG1lbnQgZmllbGRzPShuYW1lIGRlcGFydG1lbnRfbm8pKTwv
bmFtZT4KCSAgICAgIDxjYW5fZm9jdXM+VHJ1ZTwvY2FuX2ZvY3VzPgoJICAgICAgPGNvbHVtbnM+
MjwvY29sdW1ucz4KCSAgICAgIDxjb2x1bW5fd2lkdGhzPjE4NSw4MDwvY29sdW1uX3dpZHRocz4K
CSAgICAgIDxzZWxlY3Rpb25fbW9kZT5HVEtfU0VMRUNUSU9OX1NJTkdMRTwvc2VsZWN0aW9uX21v
ZGU+CgkgICAgICA8c2hvd190aXRsZXM+VHJ1ZTwvc2hvd190aXRsZXM+CgkgICAgICA8c2hhZG93
X3R5cGU+R1RLX1NIQURPV19JTjwvc2hhZG93X3R5cGU+CgoJICAgICAgPHdpZGdldD4KCQk8Y2xh
c3M+R3RrTGFiZWw8L2NsYXNzPgoJCTxjaGlsZF9uYW1lPkNMaXN0OnRpdGxlPC9jaGlsZF9uYW1l
PgoJCTxuYW1lPmxhYmVsMTE8L25hbWU+CgkJPGxhYmVsPkRlcHQuIG5hbWU8L2xhYmVsPgoJCTxq
dXN0aWZ5PkdUS19KVVNUSUZZX0NFTlRFUjwvanVzdGlmeT4KCQk8d3JhcD5GYWxzZTwvd3JhcD4K
CQk8eGFsaWduPjAuNTwveGFsaWduPgoJCTx5YWxpZ24+MC41PC95YWxpZ24+CgkJPHhwYWQ+MDwv
eHBhZD4KCQk8eXBhZD4wPC95cGFkPgoJICAgICAgPC93aWRnZXQ+CgoJICAgICAgPHdpZGdldD4K
CQk8Y2xhc3M+R3RrTGFiZWw8L2NsYXNzPgoJCTxjaGlsZF9uYW1lPkNMaXN0OnRpdGxlPC9jaGls
ZF9uYW1lPgoJCTxuYW1lPmxhYmVsMTI8L25hbWU+CgkJPGxhYmVsPkRlcHQuIG51bWJlcjwvbGFi
ZWw+CgkJPGp1c3RpZnk+R1RLX0pVU1RJRllfQ0VOVEVSPC9qdXN0aWZ5PgoJCTx3cmFwPkZhbHNl
PC93cmFwPgoJCTx4YWxpZ24+MC41PC94YWxpZ24+CgkJPHlhbGlnbj4wLjU8L3lhbGlnbj4KCQk8
eHBhZD4wPC94cGFkPgoJCTx5cGFkPjA8L3lwYWQ+CgkgICAgICA8L3dpZGdldD4KCSAgICA8L3dp
ZGdldD4KCSAgPC93aWRnZXQ+CgoJICA8d2lkZ2V0PgoJICAgIDxjbGFzcz5HdGtWQm94PC9jbGFz
cz4KCSAgICA8bmFtZT52Ym94NDwvbmFtZT4KCSAgICA8aG9tb2dlbmVvdXM+RmFsc2U8L2hvbW9n
ZW5lb3VzPgoJICAgIDxzcGFjaW5nPjA8L3NwYWNpbmc+CgkgICAgPGNoaWxkPgoJICAgICAgPHBh
ZGRpbmc+MzwvcGFkZGluZz4KCSAgICAgIDxleHBhbmQ+RmFsc2U8L2V4cGFuZD4KCSAgICAgIDxm
aWxsPkZhbHNlPC9maWxsPgoJICAgIDwvY2hpbGQ+CgoJICAgIDx3aWRnZXQ+CgkgICAgICA8Y2xh
c3M+R3RrRnJhbWU8L2NsYXNzPgoJICAgICAgPG5hbWU+ZnJhbWUyPC9uYW1lPgoJICAgICAgPGxh
YmVsPkVkaXQgZGVwYXJ0bWVudDwvbGFiZWw+CgkgICAgICA8bGFiZWxfeGFsaWduPjA8L2xhYmVs
X3hhbGlnbj4KCSAgICAgIDxzaGFkb3dfdHlwZT5HVEtfU0hBRE9XX0VUQ0hFRF9JTjwvc2hhZG93
X3R5cGU+CgkgICAgICA8Y2hpbGQ+CgkJPHBhZGRpbmc+MDwvcGFkZGluZz4KCQk8ZXhwYW5kPkZh
bHNlPC9leHBhbmQ+CgkJPGZpbGw+RmFsc2U8L2ZpbGw+CgkgICAgICA8L2NoaWxkPgoKCSAgICAg
IDx3aWRnZXQ+CgkJPGNsYXNzPkd0a0hCb3g8L2NsYXNzPgoJCTxuYW1lPmhib3g1PC9uYW1lPgoJ
CTxob21vZ2VuZW91cz5GYWxzZTwvaG9tb2dlbmVvdXM+CgkJPHNwYWNpbmc+MDwvc3BhY2luZz4K
CgkJPHdpZGdldD4KCQkgIDxjbGFzcz5HdGtWQm94PC9jbGFzcz4KCQkgIDxuYW1lPnZib3g1PC9u
YW1lPgoJCSAgPGhvbW9nZW5lb3VzPlRydWU8L2hvbW9nZW5lb3VzPgoJCSAgPHNwYWNpbmc+NTwv
c3BhY2luZz4KCQkgIDxjaGlsZD4KCQkgICAgPHBhZGRpbmc+MDwvcGFkZGluZz4KCQkgICAgPGV4
cGFuZD5UcnVlPC9leHBhbmQ+CgkJICAgIDxmaWxsPlRydWU8L2ZpbGw+CgkJICA8L2NoaWxkPgoK
CQkgIDx3aWRnZXQ+CgkJICAgIDxjbGFzcz5HdGtMYWJlbDwvY2xhc3M+CgkJICAgIDxuYW1lPmxh
YmVsOTwvbmFtZT4KCQkgICAgPGxhYmVsPkRlcHQuIG5hbWU6PC9sYWJlbD4KCQkgICAgPGp1c3Rp
Znk+R1RLX0pVU1RJRllfQ0VOVEVSPC9qdXN0aWZ5PgoJCSAgICA8d3JhcD5GYWxzZTwvd3JhcD4K
CQkgICAgPHhhbGlnbj4xPC94YWxpZ24+CgkJICAgIDx5YWxpZ24+MC41PC95YWxpZ24+CgkJICAg
IDx4cGFkPjU8L3hwYWQ+CgkJICAgIDx5cGFkPjA8L3lwYWQ+CgkJICAgIDxjaGlsZD4KCQkgICAg
ICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJCSAgICAgIDxleHBhbmQ+RmFsc2U8L2V4cGFuZD4KCQkg
ICAgICA8ZmlsbD5GYWxzZTwvZmlsbD4KCQkgICAgPC9jaGlsZD4KCQkgIDwvd2lkZ2V0PgoKCQkg
IDx3aWRnZXQ+CgkJICAgIDxjbGFzcz5HdGtMYWJlbDwvY2xhc3M+CgkJICAgIDxuYW1lPmxhYmVs
MTA8L25hbWU+CgkJICAgIDxsYWJlbD5EZXB0LiBudW1iZXI6PC9sYWJlbD4KCQkgICAgPGp1c3Rp
Znk+R1RLX0pVU1RJRllfQ0VOVEVSPC9qdXN0aWZ5PgoJCSAgICA8d3JhcD5GYWxzZTwvd3JhcD4K
CQkgICAgPHhhbGlnbj4xPC94YWxpZ24+CgkJICAgIDx5YWxpZ24+MC41PC95YWxpZ24+CgkJICAg
IDx4cGFkPjU8L3hwYWQ+CgkJICAgIDx5cGFkPjA8L3lwYWQ+CgkJICAgIDxjaGlsZD4KCQkgICAg
ICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJCSAgICAgIDxleHBhbmQ+RmFsc2U8L2V4cGFuZD4KCQkg
ICAgICA8ZmlsbD5GYWxzZTwvZmlsbD4KCQkgICAgPC9jaGlsZD4KCQkgIDwvd2lkZ2V0PgoJCTwv
d2lkZ2V0PgoKCQk8d2lkZ2V0PgoJCSAgPGNsYXNzPkd0a1ZCb3g8L2NsYXNzPgoJCSAgPG5hbWU+
dmJveDY8L25hbWU+CgkJICA8aG9tb2dlbmVvdXM+VHJ1ZTwvaG9tb2dlbmVvdXM+CgkJICA8c3Bh
Y2luZz41PC9zcGFjaW5nPgoJCSAgPGNoaWxkPgoJCSAgICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJ
CSAgICA8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkJICAgIDxmaWxsPkZhbHNlPC9maWxsPgoJCSAg
PC9jaGlsZD4KCgkJICA8d2lkZ2V0PgoJCSAgICA8Y2xhc3M+R3RrRW50cnk8L2NsYXNzPgoJCSAg
ICA8bmFtZT4oZ25jLWRiLWVkaXQgcmVjb3JkPWRlcGFydG1lbnQgZmllbGRzPShuYW1lKSk8L25h
bWU+CgkJICAgIDxjYW5fZm9jdXM+VHJ1ZTwvY2FuX2ZvY3VzPgoJCSAgICA8ZWRpdGFibGU+VHJ1
ZTwvZWRpdGFibGU+CgkJICAgIDx0ZXh0X3Zpc2libGU+VHJ1ZTwvdGV4dF92aXNpYmxlPgoJCSAg
ICA8dGV4dF9tYXhfbGVuZ3RoPjA8L3RleHRfbWF4X2xlbmd0aD4KCQkgICAgPHRleHQ+PC90ZXh0
PgoJCSAgICA8Y2hpbGQ+CgkJICAgICAgPHBhZGRpbmc+MDwvcGFkZGluZz4KCQkgICAgICA8ZXhw
YW5kPkZhbHNlPC9leHBhbmQ+CgkJICAgICAgPGZpbGw+RmFsc2U8L2ZpbGw+CgkJICAgIDwvY2hp
bGQ+CgkJICA8L3dpZGdldD4KCgkJICA8d2lkZ2V0PgoJCSAgICA8Y2xhc3M+R3RrU3BpbkJ1dHRv
bjwvY2xhc3M+CgkJICAgIDxuYW1lPihnbmMtZGItZWRpdCByZWNvcmQ9ZGVwYXJ0bWVudCBmaWVs
ZHM9KGRlcGFydG1lbnRfbm8pKTwvbmFtZT4KCQkgICAgPGNhbl9mb2N1cz5UcnVlPC9jYW5fZm9j
dXM+CgkJICAgIDxjbGltYl9yYXRlPjE8L2NsaW1iX3JhdGU+CgkJICAgIDxkaWdpdHM+MDwvZGln
aXRzPgoJCSAgICA8bnVtZXJpYz5GYWxzZTwvbnVtZXJpYz4KCQkgICAgPHVwZGF0ZV9wb2xpY3k+
R1RLX1VQREFURV9BTFdBWVM8L3VwZGF0ZV9wb2xpY3k+CgkJICAgIDxzbmFwPkZhbHNlPC9zbmFw
PgoJCSAgICA8d3JhcD5GYWxzZTwvd3JhcD4KCQkgICAgPHZhbHVlPjE8L3ZhbHVlPgoJCSAgICA8
bG93ZXI+MDwvbG93ZXI+CgkJICAgIDx1cHBlcj4xMDAwMDA8L3VwcGVyPgoJCSAgICA8c3RlcD4x
PC9zdGVwPgoJCSAgICA8cGFnZT4xMDwvcGFnZT4KCQkgICAgPHBhZ2Vfc2l6ZT4xMDwvcGFnZV9z
aXplPgoJCSAgICA8Y2hpbGQ+CgkJICAgICAgPHBhZGRpbmc+MDwvcGFkZGluZz4KCQkgICAgICA8
ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkJICAgICAgPGZpbGw+RmFsc2U8L2ZpbGw+CgkJICAgIDwv
Y2hpbGQ+CgkJICA8L3dpZGdldD4KCQk8L3dpZGdldD4KCSAgICAgIDwvd2lkZ2V0PgoJICAgIDwv
d2lkZ2V0PgoKCSAgICA8d2lkZ2V0PgoJICAgICAgPGNsYXNzPkd0a0hCb3g8L2NsYXNzPgoJICAg
ICAgPG5hbWU+aGJveDQ8L25hbWU+CgkgICAgICA8aG9tb2dlbmVvdXM+VHJ1ZTwvaG9tb2dlbmVv
dXM+CgkgICAgICA8c3BhY2luZz4wPC9zcGFjaW5nPgoJICAgICAgPGNoaWxkPgoJCTxwYWRkaW5n
PjA8L3BhZGRpbmc+CgkJPGV4cGFuZD5GYWxzZTwvZXhwYW5kPgoJCTxmaWxsPlRydWU8L2ZpbGw+
CgkJPHBhY2s+R1RLX1BBQ0tfRU5EPC9wYWNrPgoJICAgICAgPC9jaGlsZD4KCgkgICAgICA8d2lk
Z2V0PgoJCTxjbGFzcz5HdGtCdXR0b248L2NsYXNzPgoJCTxuYW1lPihnbmMtZGItYWN0aW9uIHJl
Y29yZD1kZXBhcnRtZW50IGFjdGlvbj1uZXcpPC9uYW1lPgoJCTxjYW5fZm9jdXM+VHJ1ZTwvY2Fu
X2ZvY3VzPgoJCTxsYWJlbD5OZXc8L2xhYmVsPgoJCTxyZWxpZWY+R1RLX1JFTElFRl9OT1JNQUw8
L3JlbGllZj4KCQk8Y2hpbGQ+CgkJICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJCSAgPGV4cGFuZD5U
cnVlPC9leHBhbmQ+CgkJICA8ZmlsbD5UcnVlPC9maWxsPgoJCTwvY2hpbGQ+CgkgICAgICA8L3dp
ZGdldD4KCgkgICAgICA8d2lkZ2V0PgoJCTxjbGFzcz5HdGtCdXR0b248L2NsYXNzPgoJCTxuYW1l
PihnbmMtZGItYWN0aW9uIHJlY29yZD1kZXBhcnRtZW50IGFjdGlvbj1kZWxldGUpPC9uYW1lPgoJ
CTxjYW5fZm9jdXM+VHJ1ZTwvY2FuX2ZvY3VzPgoJCTxsYWJlbD5EZWxldGU8L2xhYmVsPgoJCTxy
ZWxpZWY+R1RLX1JFTElFRl9OT1JNQUw8L3JlbGllZj4KCQk8Y2hpbGQ+CgkJICA8cGFkZGluZz4w
PC9wYWRkaW5nPgoJCSAgPGV4cGFuZD5UcnVlPC9leHBhbmQ+CgkJICA8ZmlsbD5UcnVlPC9maWxs
PgoJCTwvY2hpbGQ+CgkgICAgICA8L3dpZGdldD4KCgkgICAgICA8d2lkZ2V0PgoJCTxjbGFzcz5H
dGtCdXR0b248L2NsYXNzPgoJCTxuYW1lPihnbmMtZGItYWN0aW9uIHJlY29yZD1kZXBhcnRtZW50
IGFjdGlvbj1yb2xsYmFjayk8L25hbWU+CgkJPGNhbl9mb2N1cz5UcnVlPC9jYW5fZm9jdXM+CgkJ
PGxhYmVsPlJldmVydDwvbGFiZWw+CgkJPHJlbGllZj5HVEtfUkVMSUVGX05PUk1BTDwvcmVsaWVm
PgoJCTxjaGlsZD4KCQkgIDxwYWRkaW5nPjA8L3BhZGRpbmc+CgkJICA8ZXhwYW5kPlRydWU8L2V4
cGFuZD4KCQkgIDxmaWxsPlRydWU8L2ZpbGw+CgkJPC9jaGlsZD4KCSAgICAgIDwvd2lkZ2V0PgoK
CSAgICAgIDx3aWRnZXQ+CgkJPGNsYXNzPkd0a0J1dHRvbjwvY2xhc3M+CgkJPG5hbWU+KGduYy1k
Yi1hY3Rpb24gcmVjb3JkPWRlcGFydG1lbnQgYWN0aW9uPWNvbW1pdCk8L25hbWU+CgkJPGNhbl9m
b2N1cz5UcnVlPC9jYW5fZm9jdXM+CgkJPGxhYmVsPkFwcGx5PC9sYWJlbD4KCQk8cmVsaWVmPkdU
S19SRUxJRUZfTk9STUFMPC9yZWxpZWY+CgkJPGNoaWxkPgoJCSAgPHBhZGRpbmc+MDwvcGFkZGlu
Zz4KCQkgIDxleHBhbmQ+VHJ1ZTwvZXhwYW5kPgoJCSAgPGZpbGw+VHJ1ZTwvZmlsbD4KCQk8L2No
aWxkPgoJICAgICAgPC93aWRnZXQ+CgkgICAgPC93aWRnZXQ+CgkgIDwvd2lkZ2V0PgoJPC93aWRn
ZXQ+CiAgICAgIDwvd2lkZ2V0PgoKICAgICAgPHdpZGdldD4KCTxjbGFzcz5HdGtMYWJlbDwvY2xh
c3M+Cgk8Y2hpbGRfbmFtZT5Ob3RlYm9vazp0YWI8L2NoaWxkX25hbWU+Cgk8bmFtZT5sYWJlbDQw
PC9uYW1lPgoJPGxhYmVsPkRlcGFydG1lbnRzPC9sYWJlbD4KCTxqdXN0aWZ5PkdUS19KVVNUSUZZ
X0NFTlRFUjwvanVzdGlmeT4KCTx3cmFwPkZhbHNlPC93cmFwPgoJPHhhbGlnbj4wLjU8L3hhbGln
bj4KCTx5YWxpZ24+MC41PC95YWxpZ24+Cgk8eHBhZD4wPC94cGFkPgoJPHlwYWQ+MDwveXBhZD4K
ICAgICAgPC93aWRnZXQ+CgogICAgICA8d2lkZ2V0PgoJPGNsYXNzPkd0a0xhYmVsPC9jbGFzcz4K
CTxuYW1lPmxhYmVsNDc8L25hbWU+Cgk8bGFiZWw+Tm90IHN1cHBvcnRlZCB5ZXQ8L2xhYmVsPgoJ
PGp1c3RpZnk+R1RLX0pVU1RJRllfQ0VOVEVSPC9qdXN0aWZ5PgoJPHdyYXA+RmFsc2U8L3dyYXA+
Cgk8eGFsaWduPjAuNTwveGFsaWduPgoJPHlhbGlnbj4wLjU8L3lhbGlnbj4KCTx4cGFkPjA8L3hw
YWQ+Cgk8eXBhZD4wPC95cGFkPgogICAgICA8L3dpZGdldD4KCiAgICAgIDx3aWRnZXQ+Cgk8Y2xh
c3M+R3RrTGFiZWw8L2NsYXNzPgoJPGNoaWxkX25hbWU+Tm90ZWJvb2s6dGFiPC9jaGlsZF9uYW1l
PgoJPG5hbWU+bGFiZWw0MTwvbmFtZT4KCTxsYWJlbD5UYXhlczwvbGFiZWw+Cgk8anVzdGlmeT5H
VEtfSlVTVElGWV9DRU5URVI8L2p1c3RpZnk+Cgk8d3JhcD5GYWxzZTwvd3JhcD4KCTx4YWxpZ24+
MC41PC94YWxpZ24+Cgk8eWFsaWduPjAuNTwveWFsaWduPgoJPHhwYWQ+MDwveHBhZD4KCTx5cGFk
PjA8L3lwYWQ+CiAgICAgIDwvd2lkZ2V0PgoKICAgICAgPHdpZGdldD4KCTxjbGFzcz5HdGtIQm94
PC9jbGFzcz4KCTxuYW1lPmhib3gxNzwvbmFtZT4KCTxob21vZ2VuZW91cz5GYWxzZTwvaG9tb2dl
bmVvdXM+Cgk8c3BhY2luZz4wPC9zcGFjaW5nPgoKCTx3aWRnZXQ+CgkgIDxjbGFzcz5HdGtTY3Jv
bGxlZFdpbmRvdzwvY2xhc3M+CgkgIDxuYW1lPnNjcm9sbGVkd2luZG93NDwvbmFtZT4KCSAgPGhz
Y3JvbGxiYXJfcG9saWN5PkdUS19QT0xJQ1lfQVVUT01BVElDPC9oc2Nyb2xsYmFyX3BvbGljeT4K
CSAgPHZzY3JvbGxiYXJfcG9saWN5PkdUS19QT0xJQ1lfQUxXQVlTPC92c2Nyb2xsYmFyX3BvbGlj
eT4KCSAgPGh1cGRhdGVfcG9saWN5PkdUS19VUERBVEVfQ09OVElOVU9VUzwvaHVwZGF0ZV9wb2xp
Y3k+CgkgIDx2dXBkYXRlX3BvbGljeT5HVEtfVVBEQVRFX0NPTlRJTlVPVVM8L3Z1cGRhdGVfcG9s
aWN5PgoJICA8Y2hpbGQ+CgkgICAgPHBhZGRpbmc+MDwvcGFkZGluZz4KCSAgICA8ZXhwYW5kPlRy
dWU8L2V4cGFuZD4KCSAgICA8ZmlsbD5UcnVlPC9maWxsPgoJICA8L2NoaWxkPgoKCSAgPHdpZGdl
dD4KCSAgICA8Y2xhc3M+R3RrQ0xpc3Q8L2NsYXNzPgoJICAgIDxuYW1lPihnbmMtZGItZGlzcGxh
eSByZWNvcmQ9ZW1wbG95ZWUgZmllbGRzPShsbmFtZSBmbmFtZSBzc24pKTwvbmFtZT4KCSAgICA8
Y2FuX2ZvY3VzPlRydWU8L2Nhbl9mb2N1cz4KCSAgICA8Y29sdW1ucz4zPC9jb2x1bW5zPgoJICAg
IDxjb2x1bW5fd2lkdGhzPjIxOCwxNjEsODA8L2NvbHVtbl93aWR0aHM+CgkgICAgPHNlbGVjdGlv
bl9tb2RlPkdUS19TRUxFQ1RJT05fU0lOR0xFPC9zZWxlY3Rpb25fbW9kZT4KCSAgICA8c2hvd190
aXRsZXM+VHJ1ZTwvc2hvd190aXRsZXM+CgkgICAgPHNoYWRvd190eXBlPkdUS19TSEFET1dfSU48
L3NoYWRvd190eXBlPgoKCSAgICA8d2lkZ2V0PgoJICAgICAgPGNsYXNzPkd0a0xhYmVsPC9jbGFz
cz4KCSAgICAgIDxjaGlsZF9uYW1lPkNMaXN0OnRpdGxlPC9jaGlsZF9uYW1lPgoJICAgICAgPG5h
bWU+bGFiZWw0ODwvbmFtZT4KCSAgICAgIDxsYWJlbD5MYXN0IG5hbWU8L2xhYmVsPgoJICAgICAg
PGp1c3RpZnk+R1RLX0pVU1RJRllfQ0VOVEVSPC9qdXN0aWZ5PgoJICAgICAgPHdyYXA+RmFsc2U8
L3dyYXA+CgkgICAgICA8eGFsaWduPjAuNTwveGFsaWduPgoJICAgICAgPHlhbGlnbj4wLjU8L3lh
bGlnbj4KCSAgICAgIDx4cGFkPjA8L3hwYWQ+CgkgICAgICA8eXBhZD4wPC95cGFkPgoJICAgIDwv
d2lkZ2V0PgoKCSAgICA8d2lkZ2V0PgoJICAgICAgPGNsYXNzPkd0a0xhYmVsPC9jbGFzcz4KCSAg
ICAgIDxjaGlsZF9uYW1lPkNMaXN0OnRpdGxlPC9jaGlsZF9uYW1lPgoJICAgICAgPG5hbWU+bGFi
ZWw0OTwvbmFtZT4KCSAgICAgIDxsYWJlbD5GaXJzdCBuYW1lPC9sYWJlbD4KCSAgICAgIDxqdXN0
aWZ5PkdUS19KVVNUSUZZX0NFTlRFUjwvanVzdGlmeT4KCSAgICAgIDx3cmFwPkZhbHNlPC93cmFw
PgoJICAgICAgPHhhbGlnbj4wLjU8L3hhbGlnbj4KCSAgICAgIDx5YWxpZ24+MC41PC95YWxpZ24+
CgkgICAgICA8eHBhZD4wPC94cGFkPgoJICAgICAgPHlwYWQ+MDwveXBhZD4KCSAgICA8L3dpZGdl
dD4KCgkgICAgPHdpZGdldD4KCSAgICAgIDxjbGFzcz5HdGtMYWJlbDwvY2xhc3M+CgkgICAgICA8
Y2hpbGRfbmFtZT5DTGlzdDp0aXRsZTwvY2hpbGRfbmFtZT4KCSAgICAgIDxuYW1lPmxhYmVsNTA8
L25hbWU+CgkgICAgICA8bGFiZWw+U1NOPC9sYWJlbD4KCSAgICAgIDxqdXN0aWZ5PkdUS19KVVNU
SUZZX0NFTlRFUjwvanVzdGlmeT4KCSAgICAgIDx3cmFwPkZhbHNlPC93cmFwPgoJICAgICAgPHhh
bGlnbj4wLjU8L3hhbGlnbj4KCSAgICAgIDx5YWxpZ24+MC41PC95YWxpZ24+CgkgICAgICA8eHBh
ZD4wPC94cGFkPgoJICAgICAgPHlwYWQ+MDwveXBhZD4KCSAgICA8L3dpZGdldD4KCSAgPC93aWRn
ZXQ+Cgk8L3dpZGdldD4KCgk8d2lkZ2V0PgoJICA8Y2xhc3M+R3RrVkJveDwvY2xhc3M+CgkgIDxu
YW1lPnZib3gxOTwvbmFtZT4KCSAgPGhvbW9nZW5lb3VzPkZhbHNlPC9ob21vZ2VuZW91cz4KCSAg
PHNwYWNpbmc+MDwvc3BhY2luZz4KCSAgPGNoaWxkPgoJICAgIDxwYWRkaW5nPjA8L3BhZGRpbmc+
CgkgICAgPGV4cGFuZD5GYWxzZTwvZXhwYW5kPgoJICAgIDxmaWxsPkZhbHNlPC9maWxsPgoJICA8
L2NoaWxkPgoKCSAgPHdpZGdldD4KCSAgICA8Y2xhc3M+R3RrTGFiZWw8L2NsYXNzPgoJICAgIDxu
YW1lPmxhYmVsNTE8L25hbWU+CgkgICAgPGxhYmVsPiAgICAgICAgICAgICAgICAgICAgICAgICAg
PC9sYWJlbD4KCSAgICA8anVzdGlmeT5HVEtfSlVTVElGWV9DRU5URVI8L2p1c3RpZnk+CgkgICAg
PHdyYXA+RmFsc2U8L3dyYXA+CgkgICAgPHhhbGlnbj4wLjU8L3hhbGlnbj4KCSAgICA8eWFsaWdu
PjAuNTwveWFsaWduPgoJICAgIDx4cGFkPjA8L3hwYWQ+CgkgICAgPHlwYWQ+MDwveXBhZD4KCSAg
ICA8Y2hpbGQ+CgkgICAgICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJICAgICAgPGV4cGFuZD5GYWxz
ZTwvZXhwYW5kPgoJICAgICAgPGZpbGw+RmFsc2U8L2ZpbGw+CgkgICAgPC9jaGlsZD4KCSAgPC93
aWRnZXQ+CgoJICA8d2lkZ2V0PgoJICAgIDxjbGFzcz5HdGtCdXR0b248L2NsYXNzPgoJICAgIDxu
YW1lPm5ldy1lbXBsb3llZS1idXR0b248L25hbWU+CgkgICAgPGNhbl9mb2N1cz5UcnVlPC9jYW5f
Zm9jdXM+CgkgICAgPGxhYmVsPk5ldyBlbXBsb3llZS4uLjwvbGFiZWw+CgkgICAgPHJlbGllZj5H
VEtfUkVMSUVGX05PUk1BTDwvcmVsaWVmPgoJICAgIDxjaGlsZD4KCSAgICAgIDxwYWRkaW5nPjA8
L3BhZGRpbmc+CgkgICAgICA8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkgICAgICA8ZmlsbD5GYWxz
ZTwvZmlsbD4KCSAgICA8L2NoaWxkPgoJICA8L3dpZGdldD4KCgkgIDx3aWRnZXQ+CgkgICAgPGNs
YXNzPkd0a0J1dHRvbjwvY2xhc3M+CgkgICAgPG5hbWU+ZWRpdC1lbXBsb3llZS1idXR0b248L25h
bWU+CgkgICAgPGNhbl9mb2N1cz5UcnVlPC9jYW5fZm9jdXM+CgkgICAgPGxhYmVsPkVkaXQgZW1w
bG95ZWUuLi48L2xhYmVsPgoJICAgIDxyZWxpZWY+R1RLX1JFTElFRl9OT1JNQUw8L3JlbGllZj4K
CSAgICA8Y2hpbGQ+CgkgICAgICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJICAgICAgPGV4cGFuZD5G
YWxzZTwvZXhwYW5kPgoJICAgICAgPGZpbGw+RmFsc2U8L2ZpbGw+CgkgICAgPC9jaGlsZD4KCSAg
PC93aWRnZXQ+CgoJICA8d2lkZ2V0PgoJICAgIDxjbGFzcz5HdGtCdXR0b248L2NsYXNzPgoJICAg
IDxuYW1lPihnbmMtZGItYWN0aW9uIHJlY29yZD1lbXBsb3llZSBhY3Rpb249ZGVsZXRlIGNvbmZp
cm09I3QpPC9uYW1lPgoJICAgIDxjYW5fZm9jdXM+VHJ1ZTwvY2FuX2ZvY3VzPgoJICAgIDxsYWJl
bD5EZWxldGUgZW1wbG95ZWU8L2xhYmVsPgoJICAgIDxyZWxpZWY+R1RLX1JFTElFRl9OT1JNQUw8
L3JlbGllZj4KCSAgICA8Y2hpbGQ+CgkgICAgICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJICAgICAg
PGV4cGFuZD5GYWxzZTwvZXhwYW5kPgoJICAgICAgPGZpbGw+RmFsc2U8L2ZpbGw+CgkgICAgPC9j
aGlsZD4KCSAgPC93aWRnZXQ+CgoJICA8d2lkZ2V0PgoJICAgIDxjbGFzcz5HdGtMYWJlbDwvY2xh
c3M+CgkgICAgPG5hbWU+bGFiZWw1MjwvbmFtZT4KCSAgICA8bGFiZWw+PC9sYWJlbD4KCSAgICA8
anVzdGlmeT5HVEtfSlVTVElGWV9DRU5URVI8L2p1c3RpZnk+CgkgICAgPHdyYXA+RmFsc2U8L3dy
YXA+CgkgICAgPHhhbGlnbj4wLjU8L3hhbGlnbj4KCSAgICA8eWFsaWduPjAuNTwveWFsaWduPgoJ
ICAgIDx4cGFkPjA8L3hwYWQ+CgkgICAgPHlwYWQ+MDwveXBhZD4KCSAgICA8Y2hpbGQ+CgkgICAg
ICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJICAgICAgPGV4cGFuZD5GYWxzZTwvZXhwYW5kPgoJICAg
ICAgPGZpbGw+RmFsc2U8L2ZpbGw+CgkgICAgPC9jaGlsZD4KCSAgPC93aWRnZXQ+Cgk8L3dpZGdl
dD4KICAgICAgPC93aWRnZXQ+CgogICAgICA8d2lkZ2V0PgoJPGNsYXNzPkd0a0xhYmVsPC9jbGFz
cz4KCTxjaGlsZF9uYW1lPk5vdGVib29rOnRhYjwvY2hpbGRfbmFtZT4KCTxuYW1lPmxhYmVsNDI8
L25hbWU+Cgk8bGFiZWw+RW1wbG95ZWVzPC9sYWJlbD4KCTxqdXN0aWZ5PkdUS19KVVNUSUZZX0NF
TlRFUjwvanVzdGlmeT4KCTx3cmFwPkZhbHNlPC93cmFwPgoJPHhhbGlnbj4wLjU8L3hhbGlnbj4K
CTx5YWxpZ24+MC41PC95YWxpZ24+Cgk8eHBhZD4wPC94cGFkPgoJPHlwYWQ+MDwveXBhZD4KICAg
ICAgPC93aWRnZXQ+CgogICAgICA8d2lkZ2V0PgoJPGNsYXNzPkd0a0hCb3g8L2NsYXNzPgoJPG5h
bWU+aGJveDE2PC9uYW1lPgoJPGhvbW9nZW5lb3VzPkZhbHNlPC9ob21vZ2VuZW91cz4KCTxzcGFj
aW5nPjA8L3NwYWNpbmc+CgoJPHdpZGdldD4KCSAgPGNsYXNzPkd0a0ZyYW1lPC9jbGFzcz4KCSAg
PG5hbWU+ZnJhbWU3PC9uYW1lPgoJICA8bGFiZWw+UE9TIENvbmZpZ3VyYXRpb25zPC9sYWJlbD4K
CSAgPGxhYmVsX3hhbGlnbj4wPC9sYWJlbF94YWxpZ24+CgkgIDxzaGFkb3dfdHlwZT5HVEtfU0hB
RE9XX0VUQ0hFRF9JTjwvc2hhZG93X3R5cGU+CgkgIDxjaGlsZD4KCSAgICA8cGFkZGluZz4wPC9w
YWRkaW5nPgoJICAgIDxleHBhbmQ+VHJ1ZTwvZXhwYW5kPgoJICAgIDxmaWxsPlRydWU8L2ZpbGw+
CgkgIDwvY2hpbGQ+CgoJICA8d2lkZ2V0PgoJICAgIDxjbGFzcz5HdGtTY3JvbGxlZFdpbmRvdzwv
Y2xhc3M+CgkgICAgPG5hbWU+c2Nyb2xsZWR3aW5kb3czPC9uYW1lPgoJICAgIDxoc2Nyb2xsYmFy
X3BvbGljeT5HVEtfUE9MSUNZX0FVVE9NQVRJQzwvaHNjcm9sbGJhcl9wb2xpY3k+CgkgICAgPHZz
Y3JvbGxiYXJfcG9saWN5PkdUS19QT0xJQ1lfQUxXQVlTPC92c2Nyb2xsYmFyX3BvbGljeT4KCSAg
ICA8aHVwZGF0ZV9wb2xpY3k+R1RLX1VQREFURV9DT05USU5VT1VTPC9odXBkYXRlX3BvbGljeT4K
CSAgICA8dnVwZGF0ZV9wb2xpY3k+R1RLX1VQREFURV9DT05USU5VT1VTPC92dXBkYXRlX3BvbGlj
eT4KCgkgICAgPHdpZGdldD4KCSAgICAgIDxjbGFzcz5HdGtDTGlzdDwvY2xhc3M+CgkgICAgICA8
bmFtZT4oZ25jLWRiLWRpc3BsYXkgcmVjb3JkPXBvcy1jb25maWcgZmllbGRzPShuYW1lKSk8L25h
bWU+CgkgICAgICA8Y2FuX2ZvY3VzPlRydWU8L2Nhbl9mb2N1cz4KCSAgICAgIDxjb2x1bW5zPjE8
L2NvbHVtbnM+CgkgICAgICA8Y29sdW1uX3dpZHRocz44MDwvY29sdW1uX3dpZHRocz4KCSAgICAg
IDxzZWxlY3Rpb25fbW9kZT5HVEtfU0VMRUNUSU9OX1NJTkdMRTwvc2VsZWN0aW9uX21vZGU+Cgkg
ICAgICA8c2hvd190aXRsZXM+RmFsc2U8L3Nob3dfdGl0bGVzPgoJICAgICAgPHNoYWRvd190eXBl
PkdUS19TSEFET1dfSU48L3NoYWRvd190eXBlPgoKCSAgICAgIDx3aWRnZXQ+CgkJPGNsYXNzPkd0
a0xhYmVsPC9jbGFzcz4KCQk8Y2hpbGRfbmFtZT5DTGlzdDp0aXRsZTwvY2hpbGRfbmFtZT4KCQk8
bmFtZT5sYWJlbDQ0PC9uYW1lPgoJCTxsYWJlbD5sYWJlbDQ0PC9sYWJlbD4KCQk8anVzdGlmeT5H
VEtfSlVTVElGWV9DRU5URVI8L2p1c3RpZnk+CgkJPHdyYXA+RmFsc2U8L3dyYXA+CgkJPHhhbGln
bj4wLjU8L3hhbGlnbj4KCQk8eWFsaWduPjAuNTwveWFsaWduPgoJCTx4cGFkPjA8L3hwYWQ+CgkJ
PHlwYWQ+MDwveXBhZD4KCSAgICAgIDwvd2lkZ2V0PgoJICAgIDwvd2lkZ2V0PgoJICA8L3dpZGdl
dD4KCTwvd2lkZ2V0PgoKCTx3aWRnZXQ+CgkgIDxjbGFzcz5HdGtWQm94PC9jbGFzcz4KCSAgPG5h
bWU+dmJveDE4PC9uYW1lPgoJICA8aG9tb2dlbmVvdXM+RmFsc2U8L2hvbW9nZW5lb3VzPgoJICA8
c3BhY2luZz4wPC9zcGFjaW5nPgoJICA8Y2hpbGQ+CgkgICAgPHBhZGRpbmc+MDwvcGFkZGluZz4K
CSAgICA8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkgICAgPGZpbGw+RmFsc2U8L2ZpbGw+CgkgIDwv
Y2hpbGQ+CgoJICA8d2lkZ2V0PgoJICAgIDxjbGFzcz5HdGtMYWJlbDwvY2xhc3M+CgkgICAgPG5h
bWU+bGFiZWw0NTwvbmFtZT4KCSAgICA8bGFiZWw+ICAgICAgICAgICAgICAgICAgICAgICAgICA8
L2xhYmVsPgoJICAgIDxqdXN0aWZ5PkdUS19KVVNUSUZZX0NFTlRFUjwvanVzdGlmeT4KCSAgICA8
d3JhcD5GYWxzZTwvd3JhcD4KCSAgICA8eGFsaWduPjAuNTwveGFsaWduPgoJICAgIDx5YWxpZ24+
MC41PC95YWxpZ24+CgkgICAgPHhwYWQ+MDwveHBhZD4KCSAgICA8eXBhZD4wPC95cGFkPgoJICAg
IDxjaGlsZD4KCSAgICAgIDxwYWRkaW5nPjA8L3BhZGRpbmc+CgkgICAgICA8ZXhwYW5kPkZhbHNl
PC9leHBhbmQ+CgkgICAgICA8ZmlsbD5GYWxzZTwvZmlsbD4KCSAgICA8L2NoaWxkPgoJICA8L3dp
ZGdldD4KCgkgIDx3aWRnZXQ+CgkgICAgPGNsYXNzPkd0a0J1dHRvbjwvY2xhc3M+CgkgICAgPG5h
bWU+ZWRpdC1jb25maWctYnV0dG9uPC9uYW1lPgoJICAgIDxjYW5fZm9jdXM+VHJ1ZTwvY2FuX2Zv
Y3VzPgoJICAgIDxsYWJlbD5FZGl0IGNvbmZpZy4uLjwvbGFiZWw+CgkgICAgPHJlbGllZj5HVEtf
UkVMSUVGX05PUk1BTDwvcmVsaWVmPgoJICAgIDxjaGlsZD4KCSAgICAgIDxwYWRkaW5nPjA8L3Bh
ZGRpbmc+CgkgICAgICA8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkgICAgICA8ZmlsbD5GYWxzZTwv
ZmlsbD4KCSAgICA8L2NoaWxkPgoJICA8L3dpZGdldD4KCgkgIDx3aWRnZXQ+CgkgICAgPGNsYXNz
Pkd0a0J1dHRvbjwvY2xhc3M+CgkgICAgPG5hbWU+bmV3LWNvbmZpZy1idXR0b248L25hbWU+Cgkg
ICAgPGNhbl9mb2N1cz5UcnVlPC9jYW5fZm9jdXM+CgkgICAgPGxhYmVsPk5ldyBjb25maWcuLi48
L2xhYmVsPgoJICAgIDxyZWxpZWY+R1RLX1JFTElFRl9OT1JNQUw8L3JlbGllZj4KCSAgICA8Y2hp
bGQ+CgkgICAgICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJICAgICAgPGV4cGFuZD5GYWxzZTwvZXhw
YW5kPgoJICAgICAgPGZpbGw+RmFsc2U8L2ZpbGw+CgkgICAgPC9jaGlsZD4KCSAgPC93aWRnZXQ+
CgoJICA8d2lkZ2V0PgoJICAgIDxjbGFzcz5HdGtCdXR0b248L2NsYXNzPgoJICAgIDxuYW1lPihn
bmMtZGItYWN0aW9uIHJlY29yZD1jb25maWcgYWN0aW9uPWRlbGV0ZSBjb25maXJtPSN0KTwvbmFt
ZT4KCSAgICA8Y2FuX2ZvY3VzPlRydWU8L2Nhbl9mb2N1cz4KCSAgICA8bGFiZWw+RGVsZXRlIGNv
bmZpZzwvbGFiZWw+CgkgICAgPHJlbGllZj5HVEtfUkVMSUVGX05PUk1BTDwvcmVsaWVmPgoJICAg
IDxjaGlsZD4KCSAgICAgIDxwYWRkaW5nPjA8L3BhZGRpbmc+CgkgICAgICA8ZXhwYW5kPkZhbHNl
PC9leHBhbmQ+CgkgICAgICA8ZmlsbD5GYWxzZTwvZmlsbD4KCSAgICA8L2NoaWxkPgoJICA8L3dp
ZGdldD4KCgkgIDx3aWRnZXQ+CgkgICAgPGNsYXNzPkd0a0xhYmVsPC9jbGFzcz4KCSAgICA8bmFt
ZT5sYWJlbDQ2PC9uYW1lPgoJICAgIDxsYWJlbD48L2xhYmVsPgoJICAgIDxqdXN0aWZ5PkdUS19K
VVNUSUZZX0NFTlRFUjwvanVzdGlmeT4KCSAgICA8d3JhcD5GYWxzZTwvd3JhcD4KCSAgICA8eGFs
aWduPjAuNTwveGFsaWduPgoJICAgIDx5YWxpZ24+MC41PC95YWxpZ24+CgkgICAgPHhwYWQ+MDwv
eHBhZD4KCSAgICA8eXBhZD4wPC95cGFkPgoJICAgIDxjaGlsZD4KCSAgICAgIDxwYWRkaW5nPjA8
L3BhZGRpbmc+CgkgICAgICA8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkgICAgICA8ZmlsbD5GYWxz
ZTwvZmlsbD4KCSAgICA8L2NoaWxkPgoJICA8L3dpZGdldD4KCTwvd2lkZ2V0PgogICAgICA8L3dp
ZGdldD4KCiAgICAgIDx3aWRnZXQ+Cgk8Y2xhc3M+R3RrTGFiZWw8L2NsYXNzPgoJPGNoaWxkX25h
bWU+Tm90ZWJvb2s6dGFiPC9jaGlsZF9uYW1lPgoJPG5hbWU+bGFiZWw0MzwvbmFtZT4KCTxsYWJl
bD5QT1MgQ29uZmlndXJhdGlvbnM8L2xhYmVsPgoJPGp1c3RpZnk+R1RLX0pVU1RJRllfQ0VOVEVS
PC9qdXN0aWZ5PgoJPHdyYXA+RmFsc2U8L3dyYXA+Cgk8eGFsaWduPjAuNTwveGFsaWduPgoJPHlh
bGlnbj4wLjU8L3lhbGlnbj4KCTx4cGFkPjA8L3hwYWQ+Cgk8eXBhZD4wPC95cGFkPgogICAgICA8
L3dpZGdldD4KICAgIDwvd2lkZ2V0PgogIDwvd2lkZ2V0Pgo8L3dpZGdldD4KCjx3aWRnZXQ+CiAg
PGNsYXNzPkdub21lRGlhbG9nPC9jbGFzcz4KICA8bmFtZT5pdGVtIGVkaXRvcjwvbmFtZT4KICA8
dmlzaWJsZT5GYWxzZTwvdmlzaWJsZT4KICA8dGl0bGU+RWRpdCBJbnZlbnRvcnkgSXRlbTwvdGl0
bGU+CiAgPHR5cGU+R1RLX1dJTkRPV19ESUFMT0c8L3R5cGU+CiAgPHBvc2l0aW9uPkdUS19XSU5f
UE9TX05PTkU8L3Bvc2l0aW9uPgogIDxtb2RhbD5GYWxzZTwvbW9kYWw+CiAgPGFsbG93X3Nocmlu
az5UcnVlPC9hbGxvd19zaHJpbms+CiAgPGFsbG93X2dyb3c+VHJ1ZTwvYWxsb3dfZ3Jvdz4KICA8
YXV0b19zaHJpbms+RmFsc2U8L2F1dG9fc2hyaW5rPgogIDxhdXRvX2Nsb3NlPkZhbHNlPC9hdXRv
X2Nsb3NlPgogIDxoaWRlX29uX2Nsb3NlPkZhbHNlPC9oaWRlX29uX2Nsb3NlPgoKICA8d2lkZ2V0
PgogICAgPGNsYXNzPkd0a1ZCb3g8L2NsYXNzPgogICAgPGNoaWxkX25hbWU+R25vbWVEaWFsb2c6
dmJveDwvY2hpbGRfbmFtZT4KICAgIDxuYW1lPmRpYWxvZy12Ym94MzwvbmFtZT4KICAgIDxob21v
Z2VuZW91cz5GYWxzZTwvaG9tb2dlbmVvdXM+CiAgICA8c3BhY2luZz44PC9zcGFjaW5nPgogICAg
PGNoaWxkPgogICAgICA8cGFkZGluZz40PC9wYWRkaW5nPgogICAgICA8ZXhwYW5kPlRydWU8L2V4
cGFuZD4KICAgICAgPGZpbGw+VHJ1ZTwvZmlsbD4KICAgIDwvY2hpbGQ+CgogICAgPHdpZGdldD4K
ICAgICAgPGNsYXNzPkd0a0hCdXR0b25Cb3g8L2NsYXNzPgogICAgICA8Y2hpbGRfbmFtZT5Hbm9t
ZURpYWxvZzphY3Rpb25fYXJlYTwvY2hpbGRfbmFtZT4KICAgICAgPG5hbWU+ZGlhbG9nLWFjdGlv
bl9hcmVhMzwvbmFtZT4KICAgICAgPGxheW91dF9zdHlsZT5HVEtfQlVUVE9OQk9YX0VORDwvbGF5
b3V0X3N0eWxlPgogICAgICA8c3BhY2luZz44PC9zcGFjaW5nPgogICAgICA8Y2hpbGRfbWluX3dp
ZHRoPjg1PC9jaGlsZF9taW5fd2lkdGg+CiAgICAgIDxjaGlsZF9taW5faGVpZ2h0PjI3PC9jaGls
ZF9taW5faGVpZ2h0PgogICAgICA8Y2hpbGRfaXBhZF94Pjc8L2NoaWxkX2lwYWRfeD4KICAgICAg
PGNoaWxkX2lwYWRfeT4wPC9jaGlsZF9pcGFkX3k+CiAgICAgIDxjaGlsZD4KCTxwYWRkaW5nPjA8
L3BhZGRpbmc+Cgk8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+Cgk8ZmlsbD5UcnVlPC9maWxsPgoJPHBh
Y2s+R1RLX1BBQ0tfRU5EPC9wYWNrPgogICAgICA8L2NoaWxkPgoKICAgICAgPHdpZGdldD4KCTxj
bGFzcz5HdGtCdXR0b248L2NsYXNzPgoJPG5hbWU+KGduYy1kYi1hY3Rpb24gcmVjb3JkPWl0ZW1z
IGFjdGlvbj1yb2xsYmFjayk8L25hbWU+Cgk8Y2FuX2RlZmF1bHQ+VHJ1ZTwvY2FuX2RlZmF1bHQ+
Cgk8Y2FuX2ZvY3VzPlRydWU8L2Nhbl9mb2N1cz4KCTxsYWJlbD5SZXZlcnQ8L2xhYmVsPgoJPHN0
b2NrX3BpeG1hcD5HTk9NRV9TVE9DS19QSVhNQVBfVU5ETzwvc3RvY2tfcGl4bWFwPgogICAgICA8
L3dpZGdldD4KCiAgICAgIDx3aWRnZXQ+Cgk8Y2xhc3M+R3RrQnV0dG9uPC9jbGFzcz4KCTxuYW1l
PihnbmMtZGItYWN0aW9uIHJlY29yZD1pdGVtcyBhY3Rpb249Y29tbWl0KTwvbmFtZT4KCTxjYW5f
ZGVmYXVsdD5UcnVlPC9jYW5fZGVmYXVsdD4KCTxjYW5fZm9jdXM+VHJ1ZTwvY2FuX2ZvY3VzPgoJ
PHN0b2NrX2J1dHRvbj5HTk9NRV9TVE9DS19CVVRUT05fQVBQTFk8L3N0b2NrX2J1dHRvbj4KICAg
ICAgPC93aWRnZXQ+CgogICAgICA8d2lkZ2V0PgoJPGNsYXNzPkd0a0J1dHRvbjwvY2xhc3M+Cgk8
bmFtZT5jbG9zZS1pdGVtLWJ1dHRvbjwvbmFtZT4KCTxjYW5fZGVmYXVsdD5UcnVlPC9jYW5fZGVm
YXVsdD4KCTxjYW5fZm9jdXM+VHJ1ZTwvY2FuX2ZvY3VzPgoJPHN0b2NrX2J1dHRvbj5HTk9NRV9T
VE9DS19CVVRUT05fQ0xPU0U8L3N0b2NrX2J1dHRvbj4KICAgICAgPC93aWRnZXQ+CiAgICA8L3dp
ZGdldD4KCiAgICA8d2lkZ2V0PgogICAgICA8Y2xhc3M+R3RrVkJveDwvY2xhc3M+CiAgICAgIDxu
YW1lPnZib3g5PC9uYW1lPgogICAgICA8aG9tb2dlbmVvdXM+RmFsc2U8L2hvbW9nZW5lb3VzPgog
ICAgICA8c3BhY2luZz4wPC9zcGFjaW5nPgogICAgICA8Y2hpbGQ+Cgk8cGFkZGluZz4wPC9wYWRk
aW5nPgoJPGV4cGFuZD5UcnVlPC9leHBhbmQ+Cgk8ZmlsbD5UcnVlPC9maWxsPgogICAgICA8L2No
aWxkPgoKICAgICAgPHdpZGdldD4KCTxjbGFzcz5HdGtGcmFtZTwvY2xhc3M+Cgk8bmFtZT5mcmFt
ZTM8L25hbWU+Cgk8bGFiZWw+SXRlbSBEZXNjcmlwdGlvbjwvbGFiZWw+Cgk8bGFiZWxfeGFsaWdu
PjA8L2xhYmVsX3hhbGlnbj4KCTxzaGFkb3dfdHlwZT5HVEtfU0hBRE9XX0VUQ0hFRF9JTjwvc2hh
ZG93X3R5cGU+Cgk8Y2hpbGQ+CgkgIDxwYWRkaW5nPjA8L3BhZGRpbmc+CgkgIDxleHBhbmQ+RmFs
c2U8L2V4cGFuZD4KCSAgPGZpbGw+RmFsc2U8L2ZpbGw+Cgk8L2NoaWxkPgoKCTx3aWRnZXQ+Cgkg
IDxjbGFzcz5HdGtIQm94PC9jbGFzcz4KCSAgPG5hbWU+aGJveDg8L25hbWU+CgkgIDxob21vZ2Vu
ZW91cz5GYWxzZTwvaG9tb2dlbmVvdXM+CgkgIDxzcGFjaW5nPjA8L3NwYWNpbmc+CgoJICA8d2lk
Z2V0PgoJICAgIDxjbGFzcz5HdGtWQm94PC9jbGFzcz4KCSAgICA8bmFtZT52Ym94MTE8L25hbWU+
CgkgICAgPGhvbW9nZW5lb3VzPlRydWU8L2hvbW9nZW5lb3VzPgoJICAgIDxzcGFjaW5nPjA8L3Nw
YWNpbmc+CgkgICAgPGNoaWxkPgoJICAgICAgPHBhZGRpbmc+MDwvcGFkZGluZz4KCSAgICAgIDxl
eHBhbmQ+VHJ1ZTwvZXhwYW5kPgoJICAgICAgPGZpbGw+VHJ1ZTwvZmlsbD4KCSAgICA8L2NoaWxk
PgoKCSAgICA8d2lkZ2V0PgoJICAgICAgPGNsYXNzPkd0a0xhYmVsPC9jbGFzcz4KCSAgICAgIDxu
YW1lPmxhYmVsMzA8L25hbWU+CgkgICAgICA8bGFiZWw+U0tVOjwvbGFiZWw+CgkgICAgICA8anVz
dGlmeT5HVEtfSlVTVElGWV9DRU5URVI8L2p1c3RpZnk+CgkgICAgICA8d3JhcD5GYWxzZTwvd3Jh
cD4KCSAgICAgIDx4YWxpZ24+MTwveGFsaWduPgoJICAgICAgPHlhbGlnbj4wLjU8L3lhbGlnbj4K
CSAgICAgIDx4cGFkPjU8L3hwYWQ+CgkgICAgICA8eXBhZD4wPC95cGFkPgoJICAgICAgPGNoaWxk
PgoJCTxwYWRkaW5nPjU8L3BhZGRpbmc+CgkJPGV4cGFuZD5GYWxzZTwvZXhwYW5kPgoJCTxmaWxs
PkZhbHNlPC9maWxsPgoJICAgICAgPC9jaGlsZD4KCSAgICA8L3dpZGdldD4KCgkgICAgPHdpZGdl
dD4KCSAgICAgIDxjbGFzcz5HdGtMYWJlbDwvY2xhc3M+CgkgICAgICA8bmFtZT5sYWJlbDMxPC9u
YW1lPgoJICAgICAgPGxhYmVsPkRlc2NyaXB0aW9uOjwvbGFiZWw+CgkgICAgICA8anVzdGlmeT5H
VEtfSlVTVElGWV9DRU5URVI8L2p1c3RpZnk+CgkgICAgICA8d3JhcD5GYWxzZTwvd3JhcD4KCSAg
ICAgIDx4YWxpZ24+MTwveGFsaWduPgoJICAgICAgPHlhbGlnbj4wLjU8L3lhbGlnbj4KCSAgICAg
IDx4cGFkPjU8L3hwYWQ+CgkgICAgICA8eXBhZD4wPC95cGFkPgoJICAgICAgPGNoaWxkPgoJCTxw
YWRkaW5nPjA8L3BhZGRpbmc+CgkJPGV4cGFuZD5GYWxzZTwvZXhwYW5kPgoJCTxmaWxsPkZhbHNl
PC9maWxsPgoJICAgICAgPC9jaGlsZD4KCSAgICA8L3dpZGdldD4KCgkgICAgPHdpZGdldD4KCSAg
ICAgIDxjbGFzcz5HdGtMYWJlbDwvY2xhc3M+CgkgICAgICA8bmFtZT5sYWJlbDMyPC9uYW1lPgoJ
ICAgICAgPGxhYmVsPkRlcGFydG1lbnQ6PC9sYWJlbD4KCSAgICAgIDxqdXN0aWZ5PkdUS19KVVNU
SUZZX0NFTlRFUjwvanVzdGlmeT4KCSAgICAgIDx3cmFwPkZhbHNlPC93cmFwPgoJICAgICAgPHhh
bGlnbj4xPC94YWxpZ24+CgkgICAgICA8eWFsaWduPjAuNTwveWFsaWduPgoJICAgICAgPHhwYWQ+
NTwveHBhZD4KCSAgICAgIDx5cGFkPjA8L3lwYWQ+CgkgICAgICA8Y2hpbGQ+CgkJPHBhZGRpbmc+
MDwvcGFkZGluZz4KCQk8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkJPGZpbGw+RmFsc2U8L2ZpbGw+
CgkgICAgICA8L2NoaWxkPgoJICAgIDwvd2lkZ2V0PgoJICA8L3dpZGdldD4KCgkgIDx3aWRnZXQ+
CgkgICAgPGNsYXNzPkd0a1ZCb3g8L2NsYXNzPgoJICAgIDxuYW1lPnZib3gxMjwvbmFtZT4KCSAg
ICA8aG9tb2dlbmVvdXM+VHJ1ZTwvaG9tb2dlbmVvdXM+CgkgICAgPHNwYWNpbmc+MDwvc3BhY2lu
Zz4KCSAgICA8Y2hpbGQ+CgkgICAgICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJICAgICAgPGV4cGFu
ZD5UcnVlPC9leHBhbmQ+CgkgICAgICA8ZmlsbD5UcnVlPC9maWxsPgoJICAgIDwvY2hpbGQ+CgoJ
ICAgIDx3aWRnZXQ+CgkgICAgICA8Y2xhc3M+R3RrRW50cnk8L2NsYXNzPgoJICAgICAgPG5hbWU+
KGduYy1kYi1lZGl0IHJlY29yZD1pdGVtcyBmaWVsZHM9KHNrdSkpPC9uYW1lPgoJICAgICAgPGNh
bl9mb2N1cz5UcnVlPC9jYW5fZm9jdXM+CgkgICAgICA8ZWRpdGFibGU+VHJ1ZTwvZWRpdGFibGU+
CgkgICAgICA8dGV4dF92aXNpYmxlPlRydWU8L3RleHRfdmlzaWJsZT4KCSAgICAgIDx0ZXh0X21h
eF9sZW5ndGg+MDwvdGV4dF9tYXhfbGVuZ3RoPgoJICAgICAgPHRleHQ+PC90ZXh0PgoJICAgICAg
PGNoaWxkPgoJCTxwYWRkaW5nPjA8L3BhZGRpbmc+CgkJPGV4cGFuZD5GYWxzZTwvZXhwYW5kPgoJ
CTxmaWxsPkZhbHNlPC9maWxsPgoJICAgICAgPC9jaGlsZD4KCSAgICA8L3dpZGdldD4KCgkgICAg
PHdpZGdldD4KCSAgICAgIDxjbGFzcz5HdGtFbnRyeTwvY2xhc3M+CgkgICAgICA8bmFtZT4oZ25j
LWRiLWVkaXQgcmVjb3JkPWl0ZW1zIGZpZWxkcz0oc2hvcnRfZGVzYykpPC9uYW1lPgoJICAgICAg
PGNhbl9mb2N1cz5UcnVlPC9jYW5fZm9jdXM+CgkgICAgICA8ZWRpdGFibGU+VHJ1ZTwvZWRpdGFi
bGU+CgkgICAgICA8dGV4dF92aXNpYmxlPlRydWU8L3RleHRfdmlzaWJsZT4KCSAgICAgIDx0ZXh0
X21heF9sZW5ndGg+MDwvdGV4dF9tYXhfbGVuZ3RoPgoJICAgICAgPHRleHQ+PC90ZXh0PgoJICAg
ICAgPGNoaWxkPgoJCTxwYWRkaW5nPjA8L3BhZGRpbmc+CgkJPGV4cGFuZD5GYWxzZTwvZXhwYW5k
PgoJCTxmaWxsPkZhbHNlPC9maWxsPgoJICAgICAgPC9jaGlsZD4KCSAgICA8L3dpZGdldD4KCgkg
ICAgPHdpZGdldD4KCSAgICAgIDxjbGFzcz5HdGtDb21ibzwvY2xhc3M+CgkgICAgICA8bmFtZT4o
Z25jLWRiLWRpc3BsYXkgcmVjb3JkPWRlcHQtcGlja2VyIGZpZWxkcz0obmFtZSkpPC9uYW1lPgoJ
ICAgICAgPHZhbHVlX2luX2xpc3Q+RmFsc2U8L3ZhbHVlX2luX2xpc3Q+CgkgICAgICA8b2tfaWZf
ZW1wdHk+VHJ1ZTwvb2tfaWZfZW1wdHk+CgkgICAgICA8Y2FzZV9zZW5zaXRpdmU+RmFsc2U8L2Nh
c2Vfc2Vuc2l0aXZlPgoJICAgICAgPHVzZV9hcnJvd3M+VHJ1ZTwvdXNlX2Fycm93cz4KCSAgICAg
IDx1c2VfYXJyb3dzX2Fsd2F5cz5GYWxzZTwvdXNlX2Fycm93c19hbHdheXM+CgkgICAgICA8aXRl
bXM+PC9pdGVtcz4KCSAgICAgIDxjaGlsZD4KCQk8cGFkZGluZz4wPC9wYWRkaW5nPgoJCTxleHBh
bmQ+RmFsc2U8L2V4cGFuZD4KCQk8ZmlsbD5GYWxzZTwvZmlsbD4KCSAgICAgIDwvY2hpbGQ+CgoJ
ICAgICAgPHdpZGdldD4KCQk8Y2xhc3M+R3RrRW50cnk8L2NsYXNzPgoJCTxjaGlsZF9uYW1lPkd0
a0NvbWJvOmVudHJ5PC9jaGlsZF9uYW1lPgoJCTxuYW1lPihnbmMtZGItZWRpdCByZWNvcmQ9aXRl
bXMgZmllbGRzPShkZXB0KSB4LXJlY29yZD1kZXB0LXBpY2tlciB4LWZpZWxkcz0oZGVwYXJ0bWVu
dF9ubykgeC1kaXNwbGF5PShuYW1lKSk8L25hbWU+CgkJPGNhbl9mb2N1cz5UcnVlPC9jYW5fZm9j
dXM+CgkJPGVkaXRhYmxlPkZhbHNlPC9lZGl0YWJsZT4KCQk8dGV4dF92aXNpYmxlPlRydWU8L3Rl
eHRfdmlzaWJsZT4KCQk8dGV4dF9tYXhfbGVuZ3RoPjA8L3RleHRfbWF4X2xlbmd0aD4KCQk8dGV4
dD48L3RleHQ+CgkgICAgICA8L3dpZGdldD4KCSAgICA8L3dpZGdldD4KCSAgPC93aWRnZXQ+Cgk8
L3dpZGdldD4KICAgICAgPC93aWRnZXQ+CgogICAgICA8d2lkZ2V0PgoJPGNsYXNzPkd0a0ZyYW1l
PC9jbGFzcz4KCTxuYW1lPmZyYW1lNDwvbmFtZT4KCTxsYWJlbD5QcmljZSBhbmQgVGF4IEluZm88
L2xhYmVsPgoJPGxhYmVsX3hhbGlnbj4wPC9sYWJlbF94YWxpZ24+Cgk8c2hhZG93X3R5cGU+R1RL
X1NIQURPV19FVENIRURfSU48L3NoYWRvd190eXBlPgoJPGNoaWxkPgoJICA8cGFkZGluZz4wPC9w
YWRkaW5nPgoJICA8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkgIDxmaWxsPkZhbHNlPC9maWxsPgoJ
PC9jaGlsZD4KCgk8d2lkZ2V0PgoJICA8Y2xhc3M+R3RrSEJveDwvY2xhc3M+CgkgIDxuYW1lPmhi
b3g5PC9uYW1lPgoJICA8aG9tb2dlbmVvdXM+RmFsc2U8L2hvbW9nZW5lb3VzPgoJICA8c3BhY2lu
Zz4wPC9zcGFjaW5nPgoKCSAgPHdpZGdldD4KCSAgICA8Y2xhc3M+R3RrVkJveDwvY2xhc3M+Cgkg
ICAgPG5hbWU+dmJveDEzPC9uYW1lPgoJICAgIDxob21vZ2VuZW91cz5UcnVlPC9ob21vZ2VuZW91
cz4KCSAgICA8c3BhY2luZz4wPC9zcGFjaW5nPgoJICAgIDxjaGlsZD4KCSAgICAgIDxwYWRkaW5n
PjA8L3BhZGRpbmc+CgkgICAgICA8ZXhwYW5kPlRydWU8L2V4cGFuZD4KCSAgICAgIDxmaWxsPlRy
dWU8L2ZpbGw+CgkgICAgPC9jaGlsZD4KCgkgICAgPHdpZGdldD4KCSAgICAgIDxjbGFzcz5HdGtM
YWJlbDwvY2xhc3M+CgkgICAgICA8bmFtZT5sYWJlbDMzPC9uYW1lPgoJICAgICAgPGxhYmVsPlBy
aWNlOjwvbGFiZWw+CgkgICAgICA8anVzdGlmeT5HVEtfSlVTVElGWV9DRU5URVI8L2p1c3RpZnk+
CgkgICAgICA8d3JhcD5GYWxzZTwvd3JhcD4KCSAgICAgIDx4YWxpZ24+MTwveGFsaWduPgoJICAg
ICAgPHlhbGlnbj4wLjU8L3lhbGlnbj4KCSAgICAgIDx4cGFkPjU8L3hwYWQ+CgkgICAgICA8eXBh
ZD4wPC95cGFkPgoJICAgICAgPGNoaWxkPgoJCTxwYWRkaW5nPjU8L3BhZGRpbmc+CgkJPGV4cGFu
ZD5GYWxzZTwvZXhwYW5kPgoJCTxmaWxsPkZhbHNlPC9maWxsPgoJICAgICAgPC9jaGlsZD4KCSAg
ICA8L3dpZGdldD4KCgkgICAgPHdpZGdldD4KCSAgICAgIDxjbGFzcz5HdGtMYWJlbDwvY2xhc3M+
CgkgICAgICA8bmFtZT5sYWJlbDM0PC9uYW1lPgoJICAgICAgPGxhYmVsPlRheCBncm91cDo8L2xh
YmVsPgoJICAgICAgPGp1c3RpZnk+R1RLX0pVU1RJRllfQ0VOVEVSPC9qdXN0aWZ5PgoJICAgICAg
PHdyYXA+RmFsc2U8L3dyYXA+CgkgICAgICA8eGFsaWduPjE8L3hhbGlnbj4KCSAgICAgIDx5YWxp
Z24+MC41PC95YWxpZ24+CgkgICAgICA8eHBhZD41PC94cGFkPgoJICAgICAgPHlwYWQ+MDwveXBh
ZD4KCSAgICAgIDxjaGlsZD4KCQk8cGFkZGluZz4wPC9wYWRkaW5nPgoJCTxleHBhbmQ+RmFsc2U8
L2V4cGFuZD4KCQk8ZmlsbD5GYWxzZTwvZmlsbD4KCSAgICAgIDwvY2hpbGQ+CgkgICAgPC93aWRn
ZXQ+CgoJICAgIDx3aWRnZXQ+CgkgICAgICA8Y2xhc3M+R3RrTGFiZWw8L2NsYXNzPgoJICAgICAg
PG5hbWU+bGFiZWwzNTwvbmFtZT4KCSAgICAgIDxsYWJlbD48L2xhYmVsPgoJICAgICAgPGp1c3Rp
Znk+R1RLX0pVU1RJRllfQ0VOVEVSPC9qdXN0aWZ5PgoJICAgICAgPHdyYXA+RmFsc2U8L3dyYXA+
CgkgICAgICA8eGFsaWduPjAuNTwveGFsaWduPgoJICAgICAgPHlhbGlnbj4wLjU8L3lhbGlnbj4K
CSAgICAgIDx4cGFkPjA8L3hwYWQ+CgkgICAgICA8eXBhZD4wPC95cGFkPgoJICAgICAgPGNoaWxk
PgoJCTxwYWRkaW5nPjA8L3BhZGRpbmc+CgkJPGV4cGFuZD5GYWxzZTwvZXhwYW5kPgoJCTxmaWxs
PkZhbHNlPC9maWxsPgoJICAgICAgPC9jaGlsZD4KCSAgICA8L3dpZGdldD4KCSAgPC93aWRnZXQ+
CgoJICA8d2lkZ2V0PgoJICAgIDxjbGFzcz5HdGtWQm94PC9jbGFzcz4KCSAgICA8bmFtZT52Ym94
MTQ8L25hbWU+CgkgICAgPGhvbW9nZW5lb3VzPlRydWU8L2hvbW9nZW5lb3VzPgoJICAgIDxzcGFj
aW5nPjA8L3NwYWNpbmc+CgkgICAgPGNoaWxkPgoJICAgICAgPHBhZGRpbmc+MDwvcGFkZGluZz4K
CSAgICAgIDxleHBhbmQ+VHJ1ZTwvZXhwYW5kPgoJICAgICAgPGZpbGw+VHJ1ZTwvZmlsbD4KCSAg
ICA8L2NoaWxkPgoKCSAgICA8d2lkZ2V0PgoJICAgICAgPGNsYXNzPkd0a1NwaW5CdXR0b248L2Ns
YXNzPgoJICAgICAgPG5hbWU+KGduYy1kYi1lZGl0IHJlY29yZD1pdGVtcyBmaWVsZHM9KGFtb3Vu
dCkpPC9uYW1lPgoJICAgICAgPGNhbl9mb2N1cz5UcnVlPC9jYW5fZm9jdXM+CgkgICAgICA8Y2xp
bWJfcmF0ZT4wLjAxPC9jbGltYl9yYXRlPgoJICAgICAgPGRpZ2l0cz4yPC9kaWdpdHM+CgkgICAg
ICA8bnVtZXJpYz5GYWxzZTwvbnVtZXJpYz4KCSAgICAgIDx1cGRhdGVfcG9saWN5PkdUS19VUERB
VEVfQUxXQVlTPC91cGRhdGVfcG9saWN5PgoJICAgICAgPHNuYXA+RmFsc2U8L3NuYXA+CgkgICAg
ICA8d3JhcD5GYWxzZTwvd3JhcD4KCSAgICAgIDx2YWx1ZT4xPC92YWx1ZT4KCSAgICAgIDxsb3dl
cj4wPC9sb3dlcj4KCSAgICAgIDx1cHBlcj4xZSswNzwvdXBwZXI+CgkgICAgICA8c3RlcD4wLjAx
PC9zdGVwPgoJICAgICAgPHBhZ2U+MTA8L3BhZ2U+CgkgICAgICA8cGFnZV9zaXplPjEwPC9wYWdl
X3NpemU+CgkgICAgICA8Y2hpbGQ+CgkJPHBhZGRpbmc+MDwvcGFkZGluZz4KCQk8ZXhwYW5kPkZh
bHNlPC9leHBhbmQ+CgkJPGZpbGw+RmFsc2U8L2ZpbGw+CgkgICAgICA8L2NoaWxkPgoJICAgIDwv
d2lkZ2V0PgoKCSAgICA8d2lkZ2V0PgoJICAgICAgPGNsYXNzPkd0a0NvbWJvPC9jbGFzcz4KCSAg
ICAgIDxuYW1lPmNvbWJvMjwvbmFtZT4KCSAgICAgIDx2YWx1ZV9pbl9saXN0PkZhbHNlPC92YWx1
ZV9pbl9saXN0PgoJICAgICAgPG9rX2lmX2VtcHR5PlRydWU8L29rX2lmX2VtcHR5PgoJICAgICAg
PGNhc2Vfc2Vuc2l0aXZlPkZhbHNlPC9jYXNlX3NlbnNpdGl2ZT4KCSAgICAgIDx1c2VfYXJyb3dz
PlRydWU8L3VzZV9hcnJvd3M+CgkgICAgICA8dXNlX2Fycm93c19hbHdheXM+RmFsc2U8L3VzZV9h
cnJvd3NfYWx3YXlzPgoJICAgICAgPGl0ZW1zPjwvaXRlbXM+CgkgICAgICA8Y2hpbGQ+CgkJPHBh
ZGRpbmc+MDwvcGFkZGluZz4KCQk8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkJPGZpbGw+RmFsc2U8
L2ZpbGw+CgkgICAgICA8L2NoaWxkPgoKCSAgICAgIDx3aWRnZXQ+CgkJPGNsYXNzPkd0a0VudHJ5
PC9jbGFzcz4KCQk8Y2hpbGRfbmFtZT5HdGtDb21ibzplbnRyeTwvY2hpbGRfbmFtZT4KCQk8bmFt
ZT4oZ25jLWRiLWVkaXQgcmVjb3JkPWl0ZW1zIGZpZWxkcz0odGF4X2dyb3VwKSk8L25hbWU+CgkJ
PGNhbl9mb2N1cz5UcnVlPC9jYW5fZm9jdXM+CgkJPGVkaXRhYmxlPlRydWU8L2VkaXRhYmxlPgoJ
CTx0ZXh0X3Zpc2libGU+VHJ1ZTwvdGV4dF92aXNpYmxlPgoJCTx0ZXh0X21heF9sZW5ndGg+MDwv
dGV4dF9tYXhfbGVuZ3RoPgoJCTx0ZXh0PjwvdGV4dD4KCSAgICAgIDwvd2lkZ2V0PgoJICAgIDwv
d2lkZ2V0PgoKCSAgICA8d2lkZ2V0PgoJICAgICAgPGNsYXNzPkd0a0hCb3g8L2NsYXNzPgoJICAg
ICAgPG5hbWU+aGJveDEwPC9uYW1lPgoJICAgICAgPGhvbW9nZW5lb3VzPkZhbHNlPC9ob21vZ2Vu
ZW91cz4KCSAgICAgIDxzcGFjaW5nPjA8L3NwYWNpbmc+CgkgICAgICA8Y2hpbGQ+CgkJPHBhZGRp
bmc+MDwvcGFkZGluZz4KCQk8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkJPGZpbGw+RmFsc2U8L2Zp
bGw+CgkgICAgICA8L2NoaWxkPgoKCSAgICAgIDx3aWRnZXQ+CgkJPGNsYXNzPkd0a0NoZWNrQnV0
dG9uPC9jbGFzcz4KCQk8bmFtZT4oZ25jLWRiLWVkaXQgcmVjb3JkPWl0ZW1zIGZpZWxkcz0odGF4
X2luY2x1c2l2ZSkpPC9uYW1lPgoJCTxjYW5fZm9jdXM+VHJ1ZTwvY2FuX2ZvY3VzPgoJCTxsYWJl
bD5UYXggaW5jbHVzaXZlPC9sYWJlbD4KCQk8YWN0aXZlPkZhbHNlPC9hY3RpdmU+CgkJPGRyYXdf
aW5kaWNhdG9yPlRydWU8L2RyYXdfaW5kaWNhdG9yPgoJCTxjaGlsZD4KCQkgIDxwYWRkaW5nPjA8
L3BhZGRpbmc+CgkJICA8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkJICA8ZmlsbD5GYWxzZTwvZmls
bD4KCQk8L2NoaWxkPgoJICAgICAgPC93aWRnZXQ+CgoJICAgICAgPHdpZGdldD4KCQk8Y2xhc3M+
R3RrQ2hlY2tCdXR0b248L2NsYXNzPgoJCTxuYW1lPihnbmMtZGItZWRpdCByZWNvcmQ9aXRlbXMg
ZmllbGRzPSh0YXhfZXhlbXB0KSk8L25hbWU+CgkJPGNhbl9mb2N1cz5UcnVlPC9jYW5fZm9jdXM+
CgkJPGxhYmVsPlRheCBleGVtcHQ8L2xhYmVsPgoJCTxhY3RpdmU+RmFsc2U8L2FjdGl2ZT4KCQk8
ZHJhd19pbmRpY2F0b3I+VHJ1ZTwvZHJhd19pbmRpY2F0b3I+CgkJPGNoaWxkPgoJCSAgPHBhZGRp
bmc+MDwvcGFkZGluZz4KCQkgIDxleHBhbmQ+RmFsc2U8L2V4cGFuZD4KCQkgIDxmaWxsPkZhbHNl
PC9maWxsPgoJCTwvY2hpbGQ+CgkgICAgICA8L3dpZGdldD4KCSAgICA8L3dpZGdldD4KCSAgPC93
aWRnZXQ+Cgk8L3dpZGdldD4KICAgICAgPC93aWRnZXQ+CgogICAgICA8d2lkZ2V0PgoJPGNsYXNz
Pkd0a0ZyYW1lPC9jbGFzcz4KCTxuYW1lPmZyYW1lNjwvbmFtZT4KCTxsYWJlbD5EYXRlcyBvZiBB
dmFpbGFiaWxpdHk8L2xhYmVsPgoJPGxhYmVsX3hhbGlnbj4wPC9sYWJlbF94YWxpZ24+Cgk8c2hh
ZG93X3R5cGU+R1RLX1NIQURPV19FVENIRURfSU48L3NoYWRvd190eXBlPgoJPGNoaWxkPgoJICA8
cGFkZGluZz4wPC9wYWRkaW5nPgoJICA8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkgIDxmaWxsPkZh
bHNlPC9maWxsPgoJPC9jaGlsZD4KCgk8d2lkZ2V0PgoJICA8Y2xhc3M+R3RrSEJveDwvY2xhc3M+
CgkgIDxuYW1lPmhib3gxMTwvbmFtZT4KCSAgPGhvbW9nZW5lb3VzPkZhbHNlPC9ob21vZ2VuZW91
cz4KCSAgPHNwYWNpbmc+MDwvc3BhY2luZz4KCgkgIDx3aWRnZXQ+CgkgICAgPGNsYXNzPkd0a1ZC
b3g8L2NsYXNzPgoJICAgIDxuYW1lPnZib3gxNTwvbmFtZT4KCSAgICA8aG9tb2dlbmVvdXM+VHJ1
ZTwvaG9tb2dlbmVvdXM+CgkgICAgPHNwYWNpbmc+MDwvc3BhY2luZz4KCSAgICA8Y2hpbGQ+Cgkg
ICAgICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJICAgICAgPGV4cGFuZD5UcnVlPC9leHBhbmQ+Cgkg
ICAgICA8ZmlsbD5UcnVlPC9maWxsPgoJICAgIDwvY2hpbGQ+CgoJICAgIDx3aWRnZXQ+CgkgICAg
ICA8Y2xhc3M+R3RrTGFiZWw8L2NsYXNzPgoJICAgICAgPG5hbWU+bGFiZWwzNjwvbmFtZT4KCSAg
ICAgIDxsYWJlbD5TdGFydGluZyBkYXRlOjwvbGFiZWw+CgkgICAgICA8anVzdGlmeT5HVEtfSlVT
VElGWV9DRU5URVI8L2p1c3RpZnk+CgkgICAgICA8d3JhcD5GYWxzZTwvd3JhcD4KCSAgICAgIDx4
YWxpZ24+MTwveGFsaWduPgoJICAgICAgPHlhbGlnbj4wLjU8L3lhbGlnbj4KCSAgICAgIDx4cGFk
PjU8L3hwYWQ+CgkgICAgICA8eXBhZD4wPC95cGFkPgoJICAgICAgPGNoaWxkPgoJCTxwYWRkaW5n
PjU8L3BhZGRpbmc+CgkJPGV4cGFuZD5GYWxzZTwvZXhwYW5kPgoJCTxmaWxsPkZhbHNlPC9maWxs
PgoJICAgICAgPC9jaGlsZD4KCSAgICA8L3dpZGdldD4KCgkgICAgPHdpZGdldD4KCSAgICAgIDxj
bGFzcz5HdGtMYWJlbDwvY2xhc3M+CgkgICAgICA8bmFtZT5sYWJlbDM3PC9uYW1lPgoJICAgICAg
PGxhYmVsPkVuZGluZyBkYXRlOjwvbGFiZWw+CgkgICAgICA8anVzdGlmeT5HVEtfSlVTVElGWV9D
RU5URVI8L2p1c3RpZnk+CgkgICAgICA8d3JhcD5GYWxzZTwvd3JhcD4KCSAgICAgIDx4YWxpZ24+
MTwveGFsaWduPgoJICAgICAgPHlhbGlnbj4wLjU8L3lhbGlnbj4KCSAgICAgIDx4cGFkPjU8L3hw
YWQ+CgkgICAgICA8eXBhZD4wPC95cGFkPgoJICAgICAgPGNoaWxkPgoJCTxwYWRkaW5nPjA8L3Bh
ZGRpbmc+CgkJPGV4cGFuZD5GYWxzZTwvZXhwYW5kPgoJCTxmaWxsPkZhbHNlPC9maWxsPgoJICAg
ICAgPC9jaGlsZD4KCSAgICA8L3dpZGdldD4KCSAgPC93aWRnZXQ+CgoJICA8d2lkZ2V0PgoJICAg
IDxjbGFzcz5HdGtWQm94PC9jbGFzcz4KCSAgICA8bmFtZT52Ym94MTY8L25hbWU+CgkgICAgPGhv
bW9nZW5lb3VzPlRydWU8L2hvbW9nZW5lb3VzPgoJICAgIDxzcGFjaW5nPjA8L3NwYWNpbmc+Cgkg
ICAgPGNoaWxkPgoJICAgICAgPHBhZGRpbmc+MDwvcGFkZGluZz4KCSAgICAgIDxleHBhbmQ+VHJ1
ZTwvZXhwYW5kPgoJICAgICAgPGZpbGw+VHJ1ZTwvZmlsbD4KCSAgICA8L2NoaWxkPgoKCSAgICA8
d2lkZ2V0PgoJICAgICAgPGNsYXNzPkd0a0hCb3g8L2NsYXNzPgoJICAgICAgPG5hbWU+aGJveDEy
PC9uYW1lPgoJICAgICAgPGhvbW9nZW5lb3VzPkZhbHNlPC9ob21vZ2VuZW91cz4KCSAgICAgIDxz
cGFjaW5nPjA8L3NwYWNpbmc+CgkgICAgICA8Y2hpbGQ+CgkJPHBhZGRpbmc+MDwvcGFkZGluZz4K
CQk8ZXhwYW5kPlRydWU8L2V4cGFuZD4KCQk8ZmlsbD5UcnVlPC9maWxsPgoJICAgICAgPC9jaGls
ZD4KCgkgICAgICA8d2lkZ2V0PgoJCTxjbGFzcz5HdGtFbnRyeTwvY2xhc3M+CgkJPG5hbWU+KGdu
Yy1kYi1lZGl0IHJlY29yZD1pdGVtcyBmaWVsZHM9KGFjdF9kYXRlKSk8L25hbWU+CgkJPGNhbl9m
b2N1cz5UcnVlPC9jYW5fZm9jdXM+CgkJPGVkaXRhYmxlPlRydWU8L2VkaXRhYmxlPgoJCTx0ZXh0
X3Zpc2libGU+VHJ1ZTwvdGV4dF92aXNpYmxlPgoJCTx0ZXh0X21heF9sZW5ndGg+MDwvdGV4dF9t
YXhfbGVuZ3RoPgoJCTx0ZXh0PjwvdGV4dD4KCQk8Y2hpbGQ+CgkJICA8cGFkZGluZz4wPC9wYWRk
aW5nPgoJCSAgPGV4cGFuZD5UcnVlPC9leHBhbmQ+CgkJICA8ZmlsbD5UcnVlPC9maWxsPgoJCTwv
Y2hpbGQ+CgkgICAgICA8L3dpZGdldD4KCgkgICAgICA8d2lkZ2V0PgoJCTxjbGFzcz5HdGtCdXR0
b248L2NsYXNzPgoJCTxuYW1lPnN0YXJ0LWRhdGUtc2VsZWN0b3I8L25hbWU+CgkJPGNhbl9mb2N1
cz5UcnVlPC9jYW5fZm9jdXM+CgkJPGxhYmVsPlNlbGVjdC4uLjwvbGFiZWw+CgkJPHJlbGllZj5H
VEtfUkVMSUVGX05PUk1BTDwvcmVsaWVmPgoJCTxjaGlsZD4KCQkgIDxwYWRkaW5nPjA8L3BhZGRp
bmc+CgkJICA8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkJICA8ZmlsbD5GYWxzZTwvZmlsbD4KCQk8
L2NoaWxkPgoJICAgICAgPC93aWRnZXQ+CgkgICAgPC93aWRnZXQ+CgoJICAgIDx3aWRnZXQ+Cgkg
ICAgICA8Y2xhc3M+R3RrSEJveDwvY2xhc3M+CgkgICAgICA8bmFtZT5oYm94MTM8L25hbWU+Cgkg
ICAgICA8aG9tb2dlbmVvdXM+RmFsc2U8L2hvbW9nZW5lb3VzPgoJICAgICAgPHNwYWNpbmc+MDwv
c3BhY2luZz4KCSAgICAgIDxjaGlsZD4KCQk8cGFkZGluZz4wPC9wYWRkaW5nPgoJCTxleHBhbmQ+
VHJ1ZTwvZXhwYW5kPgoJCTxmaWxsPlRydWU8L2ZpbGw+CgkgICAgICA8L2NoaWxkPgoKCSAgICAg
IDx3aWRnZXQ+CgkJPGNsYXNzPkd0a0VudHJ5PC9jbGFzcz4KCQk8bmFtZT4oZ25jLWRiLWVkaXQg
cmVjb3JkPWl0ZW1zIGZpZWxkcz0oZGVhY3RfZGF0ZSkpPC9uYW1lPgoJCTxjYW5fZm9jdXM+VHJ1
ZTwvY2FuX2ZvY3VzPgoJCTxlZGl0YWJsZT5UcnVlPC9lZGl0YWJsZT4KCQk8dGV4dF92aXNpYmxl
PlRydWU8L3RleHRfdmlzaWJsZT4KCQk8dGV4dF9tYXhfbGVuZ3RoPjA8L3RleHRfbWF4X2xlbmd0
aD4KCQk8dGV4dD48L3RleHQ+CgkJPGNoaWxkPgoJCSAgPHBhZGRpbmc+MDwvcGFkZGluZz4KCQkg
IDxleHBhbmQ+VHJ1ZTwvZXhwYW5kPgoJCSAgPGZpbGw+VHJ1ZTwvZmlsbD4KCQk8L2NoaWxkPgoJ
ICAgICAgPC93aWRnZXQ+CgoJICAgICAgPHdpZGdldD4KCQk8Y2xhc3M+R3RrQnV0dG9uPC9jbGFz
cz4KCQk8bmFtZT5zdGFydC1kYXRlLXNlbGVjdG9yPC9uYW1lPgoJCTxjYW5fZm9jdXM+VHJ1ZTwv
Y2FuX2ZvY3VzPgoJCTxsYWJlbD5TZWxlY3QuLi48L2xhYmVsPgoJCTxyZWxpZWY+R1RLX1JFTElF
Rl9OT1JNQUw8L3JlbGllZj4KCQk8Y2hpbGQ+CgkJICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJCSAg
PGV4cGFuZD5GYWxzZTwvZXhwYW5kPgoJCSAgPGZpbGw+RmFsc2U8L2ZpbGw+CgkJPC9jaGlsZD4K
CSAgICAgIDwvd2lkZ2V0PgoJICAgIDwvd2lkZ2V0PgoJICA8L3dpZGdldD4KCTwvd2lkZ2V0Pgog
ICAgICA8L3dpZGdldD4KICAgIDwvd2lkZ2V0PgogIDwvd2lkZ2V0Pgo8L3dpZGdldD4KCjx3aWRn
ZXQ+CiAgPGNsYXNzPkdub21lRGlhbG9nPC9jbGFzcz4KICA8bmFtZT5lbXBsb3llZSBlZGl0b3I8
L25hbWU+CiAgPHZpc2libGU+RmFsc2U8L3Zpc2libGU+CiAgPHRpdGxlPkVkaXQgRW1wbG95ZWUg
SW5mb3JtYXRpb248L3RpdGxlPgogIDx0eXBlPkdUS19XSU5ET1dfVE9QTEVWRUw8L3R5cGU+CiAg
PHBvc2l0aW9uPkdUS19XSU5fUE9TX05PTkU8L3Bvc2l0aW9uPgogIDxtb2RhbD5GYWxzZTwvbW9k
YWw+CiAgPGFsbG93X3Nocmluaz5UcnVlPC9hbGxvd19zaHJpbms+CiAgPGFsbG93X2dyb3c+VHJ1
ZTwvYWxsb3dfZ3Jvdz4KICA8YXV0b19zaHJpbms+RmFsc2U8L2F1dG9fc2hyaW5rPgogIDxhdXRv
X2Nsb3NlPkZhbHNlPC9hdXRvX2Nsb3NlPgogIDxoaWRlX29uX2Nsb3NlPkZhbHNlPC9oaWRlX29u
X2Nsb3NlPgoKICA8d2lkZ2V0PgogICAgPGNsYXNzPkd0a1ZCb3g8L2NsYXNzPgogICAgPGNoaWxk
X25hbWU+R25vbWVEaWFsb2c6dmJveDwvY2hpbGRfbmFtZT4KICAgIDxuYW1lPmRpYWxvZy12Ym94
NDwvbmFtZT4KICAgIDxob21vZ2VuZW91cz5GYWxzZTwvaG9tb2dlbmVvdXM+CiAgICA8c3BhY2lu
Zz44PC9zcGFjaW5nPgogICAgPGNoaWxkPgogICAgICA8cGFkZGluZz40PC9wYWRkaW5nPgogICAg
ICA8ZXhwYW5kPlRydWU8L2V4cGFuZD4KICAgICAgPGZpbGw+VHJ1ZTwvZmlsbD4KICAgIDwvY2hp
bGQ+CgogICAgPHdpZGdldD4KICAgICAgPGNsYXNzPkd0a0hCdXR0b25Cb3g8L2NsYXNzPgogICAg
ICA8Y2hpbGRfbmFtZT5Hbm9tZURpYWxvZzphY3Rpb25fYXJlYTwvY2hpbGRfbmFtZT4KICAgICAg
PG5hbWU+ZGlhbG9nLWFjdGlvbl9hcmVhNDwvbmFtZT4KICAgICAgPGxheW91dF9zdHlsZT5HVEtf
QlVUVE9OQk9YX0VORDwvbGF5b3V0X3N0eWxlPgogICAgICA8c3BhY2luZz44PC9zcGFjaW5nPgog
ICAgICA8Y2hpbGRfbWluX3dpZHRoPjg1PC9jaGlsZF9taW5fd2lkdGg+CiAgICAgIDxjaGlsZF9t
aW5faGVpZ2h0PjI3PC9jaGlsZF9taW5faGVpZ2h0PgogICAgICA8Y2hpbGRfaXBhZF94Pjc8L2No
aWxkX2lwYWRfeD4KICAgICAgPGNoaWxkX2lwYWRfeT4wPC9jaGlsZF9pcGFkX3k+CiAgICAgIDxj
aGlsZD4KCTxwYWRkaW5nPjA8L3BhZGRpbmc+Cgk8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+Cgk8Zmls
bD5UcnVlPC9maWxsPgoJPHBhY2s+R1RLX1BBQ0tfRU5EPC9wYWNrPgogICAgICA8L2NoaWxkPgoK
ICAgICAgPHdpZGdldD4KCTxjbGFzcz5HdGtCdXR0b248L2NsYXNzPgoJPG5hbWU+KGduYy1kYi1h
Y3Rpb24gcmVjb3JkPWVtcGxveWVlIGFjdGlvbj1yb2xsYmFjayk8L25hbWU+Cgk8Y2FuX2RlZmF1
bHQ+VHJ1ZTwvY2FuX2RlZmF1bHQ+Cgk8Y2FuX2ZvY3VzPlRydWU8L2Nhbl9mb2N1cz4KCTxsYWJl
bD5SZXZlcnQ8L2xhYmVsPgoJPHN0b2NrX3BpeG1hcD5HTk9NRV9TVE9DS19QSVhNQVBfVU5ETzwv
c3RvY2tfcGl4bWFwPgogICAgICA8L3dpZGdldD4KCiAgICAgIDx3aWRnZXQ+Cgk8Y2xhc3M+R3Rr
QnV0dG9uPC9jbGFzcz4KCTxuYW1lPihnbmMtZGItYWN0aW9uIHJlY29yZD1lbXBsb3llZSBhY3Rp
b249Y29tbWl0KTwvbmFtZT4KCTxjYW5fZGVmYXVsdD5UcnVlPC9jYW5fZGVmYXVsdD4KCTxjYW5f
Zm9jdXM+VHJ1ZTwvY2FuX2ZvY3VzPgoJPHN0b2NrX2J1dHRvbj5HTk9NRV9TVE9DS19CVVRUT05f
QVBQTFk8L3N0b2NrX2J1dHRvbj4KICAgICAgPC93aWRnZXQ+CgogICAgICA8d2lkZ2V0PgoJPGNs
YXNzPkd0a0J1dHRvbjwvY2xhc3M+Cgk8bmFtZT5jbG9zZS1lbXBsb3llZS1idXR0b248L25hbWU+
Cgk8Y2FuX2RlZmF1bHQ+VHJ1ZTwvY2FuX2RlZmF1bHQ+Cgk8Y2FuX2ZvY3VzPlRydWU8L2Nhbl9m
b2N1cz4KCTxzdG9ja19idXR0b24+R05PTUVfU1RPQ0tfQlVUVE9OX0NMT1NFPC9zdG9ja19idXR0
b24+CiAgICAgIDwvd2lkZ2V0PgogICAgPC93aWRnZXQ+CgogICAgPHdpZGdldD4KICAgICAgPGNs
YXNzPkd0a1ZCb3g8L2NsYXNzPgogICAgICA8bmFtZT52Ym94MjA8L25hbWU+CiAgICAgIDxob21v
Z2VuZW91cz5GYWxzZTwvaG9tb2dlbmVvdXM+CiAgICAgIDxzcGFjaW5nPjA8L3NwYWNpbmc+CiAg
ICAgIDxjaGlsZD4KCTxwYWRkaW5nPjA8L3BhZGRpbmc+Cgk8ZXhwYW5kPlRydWU8L2V4cGFuZD4K
CTxmaWxsPlRydWU8L2ZpbGw+CiAgICAgIDwvY2hpbGQ+CgogICAgICA8d2lkZ2V0PgoJPGNsYXNz
Pkd0a0ZyYW1lPC9jbGFzcz4KCTxuYW1lPmZyYW1lODwvbmFtZT4KCTxsYWJlbD5QZXJzb25hbCBp
bmZvcm1hdGlvbiA8L2xhYmVsPgoJPGxhYmVsX3hhbGlnbj4wPC9sYWJlbF94YWxpZ24+Cgk8c2hh
ZG93X3R5cGU+R1RLX1NIQURPV19FVENIRURfSU48L3NoYWRvd190eXBlPgoJPGNoaWxkPgoJICA8
cGFkZGluZz4wPC9wYWRkaW5nPgoJICA8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkgIDxmaWxsPkZh
bHNlPC9maWxsPgoJPC9jaGlsZD4KCgk8d2lkZ2V0PgoJICA8Y2xhc3M+R3RrSEJveDwvY2xhc3M+
CgkgIDxuYW1lPmhib3gxODwvbmFtZT4KCSAgPGhvbW9nZW5lb3VzPkZhbHNlPC9ob21vZ2VuZW91
cz4KCSAgPHNwYWNpbmc+MDwvc3BhY2luZz4KCgkgIDx3aWRnZXQ+CgkgICAgPGNsYXNzPkd0a1ZC
b3g8L2NsYXNzPgoJICAgIDxuYW1lPnZib3gyMTwvbmFtZT4KCSAgICA8aG9tb2dlbmVvdXM+VHJ1
ZTwvaG9tb2dlbmVvdXM+CgkgICAgPHNwYWNpbmc+MDwvc3BhY2luZz4KCSAgICA8Y2hpbGQ+Cgkg
ICAgICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJICAgICAgPGV4cGFuZD5UcnVlPC9leHBhbmQ+Cgkg
ICAgICA8ZmlsbD5UcnVlPC9maWxsPgoJICAgIDwvY2hpbGQ+CgoJICAgIDx3aWRnZXQ+CgkgICAg
ICA8Y2xhc3M+R3RrTGFiZWw8L2NsYXNzPgoJICAgICAgPG5hbWU+bGFiZWw1MzwvbmFtZT4KCSAg
ICAgIDxsYWJlbD5MYXN0IG5hbWU6PC9sYWJlbD4KCSAgICAgIDxqdXN0aWZ5PkdUS19KVVNUSUZZ
X0NFTlRFUjwvanVzdGlmeT4KCSAgICAgIDx3cmFwPkZhbHNlPC93cmFwPgoJICAgICAgPHhhbGln
bj4xPC94YWxpZ24+CgkgICAgICA8eWFsaWduPjAuNTwveWFsaWduPgoJICAgICAgPHhwYWQ+NTwv
eHBhZD4KCSAgICAgIDx5cGFkPjA8L3lwYWQ+CgkgICAgICA8Y2hpbGQ+CgkJPHBhZGRpbmc+NTwv
cGFkZGluZz4KCQk8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkJPGZpbGw+RmFsc2U8L2ZpbGw+Cgkg
ICAgICA8L2NoaWxkPgoJICAgIDwvd2lkZ2V0PgoKCSAgICA8d2lkZ2V0PgoJICAgICAgPGNsYXNz
Pkd0a0xhYmVsPC9jbGFzcz4KCSAgICAgIDxuYW1lPmxhYmVsNTQ8L25hbWU+CgkgICAgICA8bGFi
ZWw+Rmlyc3QgbmFtZTo8L2xhYmVsPgoJICAgICAgPGp1c3RpZnk+R1RLX0pVU1RJRllfQ0VOVEVS
PC9qdXN0aWZ5PgoJICAgICAgPHdyYXA+RmFsc2U8L3dyYXA+CgkgICAgICA8eGFsaWduPjE8L3hh
bGlnbj4KCSAgICAgIDx5YWxpZ24+MC41PC95YWxpZ24+CgkgICAgICA8eHBhZD41PC94cGFkPgoJ
ICAgICAgPHlwYWQ+MDwveXBhZD4KCSAgICAgIDxjaGlsZD4KCQk8cGFkZGluZz4wPC9wYWRkaW5n
PgoJCTxleHBhbmQ+RmFsc2U8L2V4cGFuZD4KCQk8ZmlsbD5GYWxzZTwvZmlsbD4KCSAgICAgIDwv
Y2hpbGQ+CgkgICAgPC93aWRnZXQ+CgoJICAgIDx3aWRnZXQ+CgkgICAgICA8Y2xhc3M+R3RrTGFi
ZWw8L2NsYXNzPgoJICAgICAgPG5hbWU+bGFiZWw1NTwvbmFtZT4KCSAgICAgIDxsYWJlbD5NaWRk
bGUgaW5pdGlhbDo8L2xhYmVsPgoJICAgICAgPGp1c3RpZnk+R1RLX0pVU1RJRllfQ0VOVEVSPC9q
dXN0aWZ5PgoJICAgICAgPHdyYXA+RmFsc2U8L3dyYXA+CgkgICAgICA8eGFsaWduPjE8L3hhbGln
bj4KCSAgICAgIDx5YWxpZ24+MC41PC95YWxpZ24+CgkgICAgICA8eHBhZD41PC94cGFkPgoJICAg
ICAgPHlwYWQ+MDwveXBhZD4KCSAgICAgIDxjaGlsZD4KCQk8cGFkZGluZz4wPC9wYWRkaW5nPgoJ
CTxleHBhbmQ+RmFsc2U8L2V4cGFuZD4KCQk8ZmlsbD5GYWxzZTwvZmlsbD4KCSAgICAgIDwvY2hp
bGQ+CgkgICAgPC93aWRnZXQ+CgoJICAgIDx3aWRnZXQ+CgkgICAgICA8Y2xhc3M+R3RrTGFiZWw8
L2NsYXNzPgoJICAgICAgPG5hbWU+bGFiZWw1NjwvbmFtZT4KCSAgICAgIDxsYWJlbD5Tb2NpYWwg
c2VjdXJpdHkgbm86PC9sYWJlbD4KCSAgICAgIDxqdXN0aWZ5PkdUS19KVVNUSUZZX0NFTlRFUjwv
anVzdGlmeT4KCSAgICAgIDx3cmFwPkZhbHNlPC93cmFwPgoJICAgICAgPHhhbGlnbj4xPC94YWxp
Z24+CgkgICAgICA8eWFsaWduPjAuNTwveWFsaWduPgoJICAgICAgPHhwYWQ+NTwveHBhZD4KCSAg
ICAgIDx5cGFkPjA8L3lwYWQ+CgkgICAgICA8Y2hpbGQ+CgkJPHBhZGRpbmc+MDwvcGFkZGluZz4K
CQk8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkJPGZpbGw+RmFsc2U8L2ZpbGw+CgkgICAgICA8L2No
aWxkPgoJICAgIDwvd2lkZ2V0PgoJICA8L3dpZGdldD4KCgkgIDx3aWRnZXQ+CgkgICAgPGNsYXNz
Pkd0a1ZCb3g8L2NsYXNzPgoJICAgIDxuYW1lPnZib3gyMjwvbmFtZT4KCSAgICA8aG9tb2dlbmVv
dXM+VHJ1ZTwvaG9tb2dlbmVvdXM+CgkgICAgPHNwYWNpbmc+MDwvc3BhY2luZz4KCSAgICA8Y2hp
bGQ+CgkgICAgICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJICAgICAgPGV4cGFuZD5UcnVlPC9leHBh
bmQ+CgkgICAgICA8ZmlsbD5UcnVlPC9maWxsPgoJICAgIDwvY2hpbGQ+CgoJICAgIDx3aWRnZXQ+
CgkgICAgICA8Y2xhc3M+R3RrRW50cnk8L2NsYXNzPgoJICAgICAgPG5hbWU+KGduYy1kYi1lZGl0
IHJlY29yZD1lbXBsb3llZSBmaWVsZHM9KGxuYW1lKSk8L25hbWU+CgkgICAgICA8Y2FuX2ZvY3Vz
PlRydWU8L2Nhbl9mb2N1cz4KCSAgICAgIDxlZGl0YWJsZT5UcnVlPC9lZGl0YWJsZT4KCSAgICAg
IDx0ZXh0X3Zpc2libGU+VHJ1ZTwvdGV4dF92aXNpYmxlPgoJICAgICAgPHRleHRfbWF4X2xlbmd0
aD4wPC90ZXh0X21heF9sZW5ndGg+CgkgICAgICA8dGV4dD48L3RleHQ+CgkgICAgICA8Y2hpbGQ+
CgkJPHBhZGRpbmc+MDwvcGFkZGluZz4KCQk8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+CgkJPGZpbGw+
RmFsc2U8L2ZpbGw+CgkgICAgICA8L2NoaWxkPgoJICAgIDwvd2lkZ2V0PgoKCSAgICA8d2lkZ2V0
PgoJICAgICAgPGNsYXNzPkd0a0VudHJ5PC9jbGFzcz4KCSAgICAgIDxuYW1lPihnbmMtZGItZWRp
dCByZWNvcmQ9ZW1wbG95ZWUgZmllbGRzPShmbmFtZSkpPC9uYW1lPgoJICAgICAgPGNhbl9mb2N1
cz5UcnVlPC9jYW5fZm9jdXM+CgkgICAgICA8ZWRpdGFibGU+VHJ1ZTwvZWRpdGFibGU+CgkgICAg
ICA8dGV4dF92aXNpYmxlPlRydWU8L3RleHRfdmlzaWJsZT4KCSAgICAgIDx0ZXh0X21heF9sZW5n
dGg+MDwvdGV4dF9tYXhfbGVuZ3RoPgoJICAgICAgPHRleHQ+PC90ZXh0PgoJICAgICAgPGNoaWxk
PgoJCTxwYWRkaW5nPjA8L3BhZGRpbmc+CgkJPGV4cGFuZD5GYWxzZTwvZXhwYW5kPgoJCTxmaWxs
PkZhbHNlPC9maWxsPgoJICAgICAgPC9jaGlsZD4KCSAgICA8L3dpZGdldD4KCgkgICAgPHdpZGdl
dD4KCSAgICAgIDxjbGFzcz5HdGtFbnRyeTwvY2xhc3M+CgkgICAgICA8bmFtZT4oZ25jLWRiLWVk
aXQgcmVjb3JkPWVtcGxveWVlIGZpZWxkcz0obWkpKTwvbmFtZT4KCSAgICAgIDxjYW5fZm9jdXM+
VHJ1ZTwvY2FuX2ZvY3VzPgoJICAgICAgPGVkaXRhYmxlPlRydWU8L2VkaXRhYmxlPgoJICAgICAg
PHRleHRfdmlzaWJsZT5UcnVlPC90ZXh0X3Zpc2libGU+CgkgICAgICA8dGV4dF9tYXhfbGVuZ3Ro
PjA8L3RleHRfbWF4X2xlbmd0aD4KCSAgICAgIDx0ZXh0PjwvdGV4dD4KCSAgICAgIDxjaGlsZD4K
CQk8cGFkZGluZz4wPC9wYWRkaW5nPgoJCTxleHBhbmQ+RmFsc2U8L2V4cGFuZD4KCQk8ZmlsbD5G
YWxzZTwvZmlsbD4KCSAgICAgIDwvY2hpbGQ+CgkgICAgPC93aWRnZXQ+CgoJICAgIDx3aWRnZXQ+
CgkgICAgICA8Y2xhc3M+R3RrRW50cnk8L2NsYXNzPgoJICAgICAgPG5hbWU+KGduYy1kYi1lZGl0
IHJlY29yZD1lbXBsb3llZSBmaWVsZHM9KHNzbikpPC9uYW1lPgoJICAgICAgPGNhbl9mb2N1cz5U
cnVlPC9jYW5fZm9jdXM+CgkgICAgICA8ZWRpdGFibGU+VHJ1ZTwvZWRpdGFibGU+CgkgICAgICA8
dGV4dF92aXNpYmxlPlRydWU8L3RleHRfdmlzaWJsZT4KCSAgICAgIDx0ZXh0X21heF9sZW5ndGg+
MDwvdGV4dF9tYXhfbGVuZ3RoPgoJICAgICAgPHRleHQ+PC90ZXh0PgoJICAgICAgPGNoaWxkPgoJ
CTxwYWRkaW5nPjA8L3BhZGRpbmc+CgkJPGV4cGFuZD5GYWxzZTwvZXhwYW5kPgoJCTxmaWxsPkZh
bHNlPC9maWxsPgoJICAgICAgPC9jaGlsZD4KCSAgICA8L3dpZGdldD4KCSAgPC93aWRnZXQ+Cgk8
L3dpZGdldD4KICAgICAgPC93aWRnZXQ+CgogICAgICA8d2lkZ2V0PgoJPGNsYXNzPkd0a0ZyYW1l
PC9jbGFzcz4KCTxuYW1lPmZyYW1lOTwvbmFtZT4KCTxsYWJlbD5Mb2dvbiBpbmZvcm1hdGlvbjwv
bGFiZWw+Cgk8bGFiZWxfeGFsaWduPjA8L2xhYmVsX3hhbGlnbj4KCTxzaGFkb3dfdHlwZT5HVEtf
U0hBRE9XX0VUQ0hFRF9JTjwvc2hhZG93X3R5cGU+Cgk8Y2hpbGQ+CgkgIDxwYWRkaW5nPjA8L3Bh
ZGRpbmc+CgkgIDxleHBhbmQ+RmFsc2U8L2V4cGFuZD4KCSAgPGZpbGw+RmFsc2U8L2ZpbGw+Cgk8
L2NoaWxkPgoKCTx3aWRnZXQ+CgkgIDxjbGFzcz5HdGtIQm94PC9jbGFzcz4KCSAgPG5hbWU+aGJv
eDE5PC9uYW1lPgoJICA8aG9tb2dlbmVvdXM+RmFsc2U8L2hvbW9nZW5lb3VzPgoJICA8c3BhY2lu
Zz4wPC9zcGFjaW5nPgoKCSAgPHdpZGdldD4KCSAgICA8Y2xhc3M+R3RrVkJveDwvY2xhc3M+Cgkg
ICAgPG5hbWU+dmJveDIzPC9uYW1lPgoJICAgIDxob21vZ2VuZW91cz5UcnVlPC9ob21vZ2VuZW91
cz4KCSAgICA8c3BhY2luZz4wPC9zcGFjaW5nPgoJICAgIDxjaGlsZD4KCSAgICAgIDxwYWRkaW5n
PjA8L3BhZGRpbmc+CgkgICAgICA8ZXhwYW5kPlRydWU8L2V4cGFuZD4KCSAgICAgIDxmaWxsPlRy
dWU8L2ZpbGw+CgkgICAgPC9jaGlsZD4KCgkgICAgPHdpZGdldD4KCSAgICAgIDxjbGFzcz5HdGtM
YWJlbDwvY2xhc3M+CgkgICAgICA8bmFtZT5sYWJlbDU3PC9uYW1lPgoJICAgICAgPGxhYmVsPkxv
Z29uIElEOjwvbGFiZWw+CgkgICAgICA8anVzdGlmeT5HVEtfSlVTVElGWV9DRU5URVI8L2p1c3Rp
Znk+CgkgICAgICA8d3JhcD5GYWxzZTwvd3JhcD4KCSAgICAgIDx4YWxpZ24+MTwveGFsaWduPgoJ
ICAgICAgPHlhbGlnbj4wLjU8L3lhbGlnbj4KCSAgICAgIDx4cGFkPjU8L3hwYWQ+CgkgICAgICA8
eXBhZD4wPC95cGFkPgoJICAgICAgPGNoaWxkPgoJCTxwYWRkaW5nPjU8L3BhZGRpbmc+CgkJPGV4
cGFuZD5GYWxzZTwvZXhwYW5kPgoJCTxmaWxsPkZhbHNlPC9maWxsPgoJICAgICAgPC9jaGlsZD4K
CSAgICA8L3dpZGdldD4KCgkgICAgPHdpZGdldD4KCSAgICAgIDxjbGFzcz5HdGtMYWJlbDwvY2xh
c3M+CgkgICAgICA8bmFtZT5sYWJlbDU4PC9uYW1lPgoJICAgICAgPGxhYmVsPkxvZ29uIFBJTjo8
L2xhYmVsPgoJICAgICAgPGp1c3RpZnk+R1RLX0pVU1RJRllfQ0VOVEVSPC9qdXN0aWZ5PgoJICAg
ICAgPHdyYXA+RmFsc2U8L3dyYXA+CgkgICAgICA8eGFsaWduPjE8L3hhbGlnbj4KCSAgICAgIDx5
YWxpZ24+MC41PC95YWxpZ24+CgkgICAgICA8eHBhZD41PC94cGFkPgoJICAgICAgPHlwYWQ+MDwv
eXBhZD4KCSAgICAgIDxjaGlsZD4KCQk8cGFkZGluZz4wPC9wYWRkaW5nPgoJCTxleHBhbmQ+RmFs
c2U8L2V4cGFuZD4KCQk8ZmlsbD5GYWxzZTwvZmlsbD4KCSAgICAgIDwvY2hpbGQ+CgkgICAgPC93
aWRnZXQ+CgoJICAgIDx3aWRnZXQ+CgkgICAgICA8Y2xhc3M+R3RrTGFiZWw8L2NsYXNzPgoJICAg
ICAgPG5hbWU+bGFiZWw1OTwvbmFtZT4KCSAgICAgIDxsYWJlbD5Qcm9maWxlOjwvbGFiZWw+Cgkg
ICAgICA8anVzdGlmeT5HVEtfSlVTVElGWV9DRU5URVI8L2p1c3RpZnk+CgkgICAgICA8d3JhcD5G
YWxzZTwvd3JhcD4KCSAgICAgIDx4YWxpZ24+MTwveGFsaWduPgoJICAgICAgPHlhbGlnbj4wLjU8
L3lhbGlnbj4KCSAgICAgIDx4cGFkPjU8L3hwYWQ+CgkgICAgICA8eXBhZD4wPC95cGFkPgoJICAg
ICAgPGNoaWxkPgoJCTxwYWRkaW5nPjA8L3BhZGRpbmc+CgkJPGV4cGFuZD5GYWxzZTwvZXhwYW5k
PgoJCTxmaWxsPkZhbHNlPC9maWxsPgoJICAgICAgPC9jaGlsZD4KCSAgICA8L3dpZGdldD4KCSAg
PC93aWRnZXQ+CgoJICA8d2lkZ2V0PgoJICAgIDxjbGFzcz5HdGtWQm94PC9jbGFzcz4KCSAgICA8
bmFtZT52Ym94MjQ8L25hbWU+CgkgICAgPGhvbW9nZW5lb3VzPlRydWU8L2hvbW9nZW5lb3VzPgoJ
ICAgIDxzcGFjaW5nPjA8L3NwYWNpbmc+CgkgICAgPGNoaWxkPgoJICAgICAgPHBhZGRpbmc+MDwv
cGFkZGluZz4KCSAgICAgIDxleHBhbmQ+VHJ1ZTwvZXhwYW5kPgoJICAgICAgPGZpbGw+VHJ1ZTwv
ZmlsbD4KCSAgICA8L2NoaWxkPgoKCSAgICA8d2lkZ2V0PgoJICAgICAgPGNsYXNzPkd0a1NwaW5C
dXR0b248L2NsYXNzPgoJICAgICAgPG5hbWU+KGduYy1kYi1lZGl0IHJlY29yZD1lbXBsb3llZSBm
aWVsZHM9KGxvZ29uX25vKSk8L25hbWU+CgkgICAgICA8Y2FuX2ZvY3VzPlRydWU8L2Nhbl9mb2N1
cz4KCSAgICAgIDxjbGltYl9yYXRlPjE8L2NsaW1iX3JhdGU+CgkgICAgICA8ZGlnaXRzPjA8L2Rp
Z2l0cz4KCSAgICAgIDxudW1lcmljPkZhbHNlPC9udW1lcmljPgoJICAgICAgPHVwZGF0ZV9wb2xp
Y3k+R1RLX1VQREFURV9BTFdBWVM8L3VwZGF0ZV9wb2xpY3k+CgkgICAgICA8c25hcD5GYWxzZTwv
c25hcD4KCSAgICAgIDx3cmFwPkZhbHNlPC93cmFwPgoJICAgICAgPHZhbHVlPjE8L3ZhbHVlPgoJ
ICAgICAgPGxvd2VyPjA8L2xvd2VyPgoJICAgICAgPHVwcGVyPjEwMDwvdXBwZXI+CgkgICAgICA8
c3RlcD4xPC9zdGVwPgoJICAgICAgPHBhZ2U+MTA8L3BhZ2U+CgkgICAgICA8cGFnZV9zaXplPjEw
PC9wYWdlX3NpemU+CgkgICAgICA8Y2hpbGQ+CgkJPHBhZGRpbmc+MDwvcGFkZGluZz4KCQk8ZXhw
YW5kPkZhbHNlPC9leHBhbmQ+CgkJPGZpbGw+RmFsc2U8L2ZpbGw+CgkgICAgICA8L2NoaWxkPgoJ
ICAgIDwvd2lkZ2V0PgoKCSAgICA8d2lkZ2V0PgoJICAgICAgPGNsYXNzPkd0a0VudHJ5PC9jbGFz
cz4KCSAgICAgIDxuYW1lPihnbmMtZGItZWRpdCByZWNvcmQ9ZW1wbG95ZWUgZmllbGRzPShsb2dv
bl9wYXNzKSk8L25hbWU+CgkgICAgICA8Y2FuX2ZvY3VzPlRydWU8L2Nhbl9mb2N1cz4KCSAgICAg
IDxlZGl0YWJsZT5UcnVlPC9lZGl0YWJsZT4KCSAgICAgIDx0ZXh0X3Zpc2libGU+RmFsc2U8L3Rl
eHRfdmlzaWJsZT4KCSAgICAgIDx0ZXh0X21heF9sZW5ndGg+MDwvdGV4dF9tYXhfbGVuZ3RoPgoJ
ICAgICAgPHRleHQ+PC90ZXh0PgoJICAgICAgPGNoaWxkPgoJCTxwYWRkaW5nPjA8L3BhZGRpbmc+
CgkJPGV4cGFuZD5GYWxzZTwvZXhwYW5kPgoJCTxmaWxsPkZhbHNlPC9maWxsPgoJICAgICAgPC9j
aGlsZD4KCSAgICA8L3dpZGdldD4KCgkgICAgPHdpZGdldD4KCSAgICAgIDxjbGFzcz5HdGtDb21i
bzwvY2xhc3M+CgkgICAgICA8bmFtZT4oZ25jLWRiLWRpc3BsYXkgcmVjb3JkPXByb2ZpbGUtcGlj
a2VyIGZpZWxkcz0ocHJvZmlsZV9uYW1lKSk8L25hbWU+CgkgICAgICA8dmFsdWVfaW5fbGlzdD5G
YWxzZTwvdmFsdWVfaW5fbGlzdD4KCSAgICAgIDxva19pZl9lbXB0eT5UcnVlPC9va19pZl9lbXB0
eT4KCSAgICAgIDxjYXNlX3NlbnNpdGl2ZT5GYWxzZTwvY2FzZV9zZW5zaXRpdmU+CgkgICAgICA8
dXNlX2Fycm93cz5UcnVlPC91c2VfYXJyb3dzPgoJICAgICAgPHVzZV9hcnJvd3NfYWx3YXlzPkZh
bHNlPC91c2VfYXJyb3dzX2Fsd2F5cz4KCSAgICAgIDxpdGVtcz48L2l0ZW1zPgoJICAgICAgPGNo
aWxkPgoJCTxwYWRkaW5nPjA8L3BhZGRpbmc+CgkJPGV4cGFuZD5GYWxzZTwvZXhwYW5kPgoJCTxm
aWxsPkZhbHNlPC9maWxsPgoJICAgICAgPC9jaGlsZD4KCgkgICAgICA8d2lkZ2V0PgoJCTxjbGFz
cz5HdGtFbnRyeTwvY2xhc3M+CgkJPGNoaWxkX25hbWU+R3RrQ29tYm86ZW50cnk8L2NoaWxkX25h
bWU+CgkJPG5hbWU+KGduYy1kYi1lZGl0IHJlY29yZD1lbXBsb3llZSBmaWVsZHM9KHByb2ZpbGUp
IHgtcmVjb3JkPXByb2ZpbGUtcGlja2VyIHgtZmllbGRzPShwcm9maWxlX2lkKSB4LWRpc3BsYXk9
KHByb2ZpbGVfbmFtZSkpPC9uYW1lPgoJCTxjYW5fZm9jdXM+VHJ1ZTwvY2FuX2ZvY3VzPgoJCTxl
ZGl0YWJsZT5UcnVlPC9lZGl0YWJsZT4KCQk8dGV4dF92aXNpYmxlPlRydWU8L3RleHRfdmlzaWJs
ZT4KCQk8dGV4dF9tYXhfbGVuZ3RoPjA8L3RleHRfbWF4X2xlbmd0aD4KCQk8dGV4dD48L3RleHQ+
CgkgICAgICA8L3dpZGdldD4KCSAgICA8L3dpZGdldD4KCSAgPC93aWRnZXQ+Cgk8L3dpZGdldD4K
ICAgICAgPC93aWRnZXQ+CiAgICA8L3dpZGdldD4KICA8L3dpZGdldD4KPC93aWRnZXQ+Cgo8L0dU
Sy1JbnRlcmZhY2U+Cn==

--=-NqfLgt/FLzRkxc6byXVq
Content-Disposition: attachment; filename=pos-config.scm
Content-Transfer-Encoding: quoted-printable
Content-Type: text/x-scheme; charset=ISO-8859-1

(use-modules (gtk gtk) (gtk libglade) (gtk gdk) (gnome gnome))
(use-modules (gnucash gnc-module))
(use-modules (oop goops))
(use-modules (ice-9 slib))
	    =20
(gnc:module-system-init)
(gnc:module-load "gnucash/glade-db" 0)
(debug-enable 'backtrace)

(require 'format)

(define *app-glade-file* "pos-config.glade")

(define (test-main)
  (gnome-init-hack "gnome-app" #f '())
  (glade-gnome-init)

  (let* ((xml (glade-xml-new *app-glade-file*))
	 (top-window (glade-xml-get-widget xml "configuration editor"))
	 (item-window (glade-xml-get-widget xml "item editor"))
	 (employee-window (glade-xml-get-widget xml "employee editor")))

    (make <gnc:glade-db-record>
      #:name      "items"
      #:database  "merctest"
      #:tables    '("item" "department")
      #:fields    '("item.*" "department.name")
      #:order     '("dept" "sku")
      #:limit-thunk=20
      (lambda () "item.dept =3D department.department_no")
      #:default-thunk=20
      (lambda ()
	(list (list "config_no" 0))))
   =20
    (gnc:glade-db-record-add-filter!=20
     (gnc:glade-db-record-lookup "items" #f)
     "amount"=20
     (lambda (db-val)
       (format:format #f "~,2F" (/ db-val 100)))
     (lambda (disp-val)
       (inexact->exact (* disp-val 100))))

    (make <gnc:glade-db-record>
      #:name "dept-picker" #:database "merctest"
      #:tables "department" #:order "department_no")
   =20
    (make <gnc:glade-db-record>
      #:name      "department"
      #:database  "merctest"
      #:tables    "department"
      #:order     "department_no"
      #:default-thunk
      (lambda ()=20
	(list (list "config_no" 0)
	      (list "department_no" 0))))
   =20
    (make <gnc:glade-db-record>
      #:name      "employee"
      #:database  "merctest"
      #:tables    "employee"
      #:order     '("lname" "fname" "ssn"))
   =20
    (make <gnc:glade-db-record>
      #:name      "pos-config"
      #:database  "merctest"
      #:tables    "pos_config"
      #:order     "name")
   =20
    (gtk-signal-connect=20
     (glade-xml-get-widget xml "close-button") "clicked"
     (lambda () (gtk-widget-destroy top-window) (gtk-main-quit)))
   =20
    (gtk-signal-connect=20
     (glade-xml-get-widget xml "edit-item-button") "clicked"
     (lambda () (gtk-widget-show item-window)))
   =20
    (gtk-signal-connect=20
     (glade-xml-get-widget xml "new-item-button") "clicked"
     (lambda ()
       (gnc:glade-db-handle-action (gnc:glade-db-record-lookup "items" #f)=20
				   'new)
       (gtk-widget-show item-window)))
   =20
    (gtk-signal-connect=20
     (glade-xml-get-widget xml "close-item-button") "clicked"=20
     (lambda ()=20
       (display "click on close item window\n")
       (gtk-widget-hide item-window)))
   =20
    (gtk-signal-connect=20
     (glade-xml-get-widget xml "edit-employee-button") "clicked"
     (lambda ()
       (gtk-widget-show employee-window)))
   =20
    (gtk-signal-connect=20
     (glade-xml-get-widget xml "new-employee-button") "clicked"
     (lambda ()
       (gnc:glade-db-handle-action
	(gnc:glade-db-record-lookup "employees" #f) 'new)
       (gtk-widget-show employee-window)))
   =20
    (gtk-signal-connect=20
     (glade-xml-get-widget xml "close-employee-button") "clicked"=20
     (lambda () (gtk-widget-hide employee-window)))
   =20
    (gnc:glade-db-init xml #f)
    (gtk-standalone-main top-window)))

(test-main)
--=-NqfLgt/FLzRkxc6byXVq--