ofx and generic import: GUI, callbacks

Chris Lyttle chris@wilddev.net
22 Nov 2002 01:49:38 -0800


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

On Thu, 2002-11-21 at 17:58, Chris Lyttle wrote:
> What I think might work is a dialog sort of like this; 
> 
> Status Date      Description    Amount  Dest Account
> Clear 02/21/2002 ATM Withdrawal $200 
> 
> o This matches the following transaction;
>       02/21/2002 Cash           $200    Expenses:Cash Withdrawal
> o This is a new transaction
> o Postpone this transaction
> o Replace this transaction
> 
> And have the above for each transaction being imported. The right pane
> could still list other possible matches (Though I would make it somewhat
> smaller). The user is then certain what match has been picked, the top
> line could be directly edited to create a new transaction (if This is a
> new transaction is selected). It also gives a visual indication to the
> user with the radio button selection of what exactly will happen to the
> transaction. The Status can be used for the clear/reconcile decision.
> 
>

Derek pointed out it was difficult to understand what I meant above. So
I went ahead and used glade to implement something I feel might be
useful along the lines I was talking about above. A few things I
couldn't find widgets for so had to improvise.

The way I see this dialog working is like this;

1) User imports file, chooses account the file is for in Benoit's
Account picker
2) This dialog pops up with the list of downloaded transactions in the
left pane. Each transaction is red.
3) User selects a transaction, the list of matches appears on the right
pane, with the top pick automatically filled into the 'This Matches The
Following Transaction:' register field. This is read only.
4) If the user accepts this he just has to select a different
transaction. The previous one will turn blue in the Download list to
indicate it was processed. (This could also require the Apply button to
be pressed, but personally I'd find it annoying to have to confirm my
choice).
5) If the user doesn't like the match he just has to choose another one
from the potential matches list or...
6) Select 'This Is A New Transaction:'. This time the fields are not
only editable, they are actually the register (sort of like josh has in
the SX Editor). The user can create a whole new transaction from the
downloaded data, with splits, etc as wanted.
7) Again once he moves to the next transaction, the edited one updates
with his changes and turns blue to indicate its been accepted.
8) The last two choices are also available if needed.

This may be to hard/over the top for where we are now in the release
process, but I feel it could give us what we need. Having thought a bit
about how the druid process operates I'm not to sure now if it gives the
user the best experience. Hopefully this will help the discussion.

Chris
-- 
RedHat Certified Engineer #807302549405490.
--------------------------------------------
	|^|
	| |   |^|
	| |^| | |  Life out here is raw 
	| | |^| |  But we will never stop
	| |_|_| |  We will never quit 
	| / __> |  cause we are Metallica
	|/ /    |
	\       /
	 |     |
--------------------------------------------

--=-eW6tX94AtNTHgv2qDmwV
Content-Type: application/DEFANGED-10; name="transaction-matcher_glade.DEFANGED-10"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="transaction-matcher_glade.DEFANGED-10"

PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxHVEstSW50ZXJmYWNlPgoKPHByb2plY3Q+CiAgPG5hbWU+
VHJhbnNhY3Rpb24gTWF0Y2hlcjwvbmFtZT4KICA8cHJvZ3JhbV9uYW1lPnRyYW5zYWN0aW9uLW1h
dGNoZXI8L3Byb2dyYW1fbmFtZT4KICA8ZGlyZWN0b3J5PjwvZGlyZWN0b3J5PgogIDxzb3VyY2Vf
ZGlyZWN0b3J5PnNyYzwvc291cmNlX2RpcmVjdG9yeT4KICA8cGl4bWFwc19kaXJlY3Rvcnk+cGl4
bWFwczwvcGl4bWFwc19kaXJlY3Rvcnk+CiAgPGxhbmd1YWdlPkM8L2xhbmd1YWdlPgogIDxnbm9t
ZV9zdXBwb3J0PlRydWU8L2dub21lX3N1cHBvcnQ+CiAgPGdldHRleHRfc3VwcG9ydD5UcnVlPC9n
ZXR0ZXh0X3N1cHBvcnQ+CjwvcHJvamVjdD4KCjx3aWRnZXQ+CiAgPGNsYXNzPkd0a1dpbmRvdzwv
Y2xhc3M+CiAgPG5hbWU+dHJhbnNhY3Rpb25fbWF0Y2hlcjwvbmFtZT4KICA8Ym9yZGVyX3dpZHRo
Pjg8L2JvcmRlcl93aWR0aD4KICA8c2lnbmFsPgogICAgPG5hbWU+Y2xvc2U8L25hbWU+CiAgICA8
aGFuZGxlcj5vbl9tYXRjaGVyX2NhbmNlbF9jbGlja2VkPC9oYW5kbGVyPgogICAgPGxhc3RfbW9k
aWZpY2F0aW9uX3RpbWU+RnJpLCAyMiBOb3YgMjAwMiAwNToxMzoxMCBHTVQ8L2xhc3RfbW9kaWZp
Y2F0aW9uX3RpbWU+CiAgPC9zaWduYWw+CiAgPHRpdGxlPkdlbmVyaWMgSW1wb3J0IFRyYW5zYWN0
aW9uIE1hdGNoZXI8L3RpdGxlPgogIDx0eXBlPkdUS19XSU5ET1dfVE9QTEVWRUw8L3R5cGU+CiAg
PHBvc2l0aW9uPkdUS19XSU5fUE9TX0NFTlRFUjwvcG9zaXRpb24+CiAgPG1vZGFsPkZhbHNlPC9t
b2RhbD4KICA8ZGVmYXVsdF93aWR0aD44MDA8L2RlZmF1bHRfd2lkdGg+CiAgPGRlZmF1bHRfaGVp
Z2h0PjYwMDwvZGVmYXVsdF9oZWlnaHQ+CiAgPGFsbG93X3Nocmluaz5UcnVlPC9hbGxvd19zaHJp
bms+CiAgPGFsbG93X2dyb3c+VHJ1ZTwvYWxsb3dfZ3Jvdz4KICA8YXV0b19zaHJpbms+VHJ1ZTwv
YXV0b19zaHJpbms+CgogIDx3aWRnZXQ+CiAgICA8Y2xhc3M+R3RrVkJveDwvY2xhc3M+CiAgICA8
bmFtZT52Ym94NDwvbmFtZT4KICAgIDxob21vZ2VuZW91cz5GYWxzZTwvaG9tb2dlbmVvdXM+CiAg
ICA8c3BhY2luZz4wPC9zcGFjaW5nPgoKICAgIDx3aWRnZXQ+CiAgICAgIDxjbGFzcz5HdGtIQm94
PC9jbGFzcz4KICAgICAgPG5hbWU+aGJveDE8L25hbWU+CiAgICAgIDxob21vZ2VuZW91cz5GYWxz
ZTwvaG9tb2dlbmVvdXM+CiAgICAgIDxzcGFjaW5nPjA8L3NwYWNpbmc+CiAgICAgIDxjaGlsZD4K
CTxwYWRkaW5nPjA8L3BhZGRpbmc+Cgk8ZXhwYW5kPlRydWU8L2V4cGFuZD4KCTxmaWxsPlRydWU8
L2ZpbGw+CiAgICAgIDwvY2hpbGQ+CgogICAgICA8d2lkZ2V0PgoJPGNsYXNzPkd0a0ZyYW1lPC9j
bGFzcz4KCTxuYW1lPmZyYW1lMzwvbmFtZT4KCTxib3JkZXJfd2lkdGg+NTwvYm9yZGVyX3dpZHRo
PgoJPGxhYmVsPkxpc3QgT2YgRG93bmxvYWRlZCBUcmFuc2FjdGlvbnM6PC9sYWJlbD4KCTxsYWJl
bF94YWxpZ24+MC4wNTwvbGFiZWxfeGFsaWduPgoJPHNoYWRvd190eXBlPkdUS19TSEFET1dfRVRD
SEVEX0lOPC9zaGFkb3dfdHlwZT4KCTxjaGlsZD4KCSAgPHBhZGRpbmc+MDwvcGFkZGluZz4KCSAg
PGV4cGFuZD5UcnVlPC9leHBhbmQ+CgkgIDxmaWxsPlRydWU8L2ZpbGw+Cgk8L2NoaWxkPgoKCTx3
aWRnZXQ+CgkgIDxjbGFzcz5HdGtTY3JvbGxlZFdpbmRvdzwvY2xhc3M+CgkgIDxuYW1lPnNjcm9s
bGVkd2luZG93MjwvbmFtZT4KCSAgPGJvcmRlcl93aWR0aD41PC9ib3JkZXJfd2lkdGg+CgkgIDxo
c2Nyb2xsYmFyX3BvbGljeT5HVEtfUE9MSUNZX0FMV0FZUzwvaHNjcm9sbGJhcl9wb2xpY3k+Cgkg
IDx2c2Nyb2xsYmFyX3BvbGljeT5HVEtfUE9MSUNZX0FMV0FZUzwvdnNjcm9sbGJhcl9wb2xpY3k+
CgkgIDxodXBkYXRlX3BvbGljeT5HVEtfVVBEQVRFX0NPTlRJTlVPVVM8L2h1cGRhdGVfcG9saWN5
PgoJICA8dnVwZGF0ZV9wb2xpY3k+R1RLX1VQREFURV9DT05USU5VT1VTPC92dXBkYXRlX3BvbGlj
eT4KCgkgIDx3aWRnZXQ+CgkgICAgPGNsYXNzPkd0a0NMaXN0PC9jbGFzcz4KCSAgICA8bmFtZT5j
bGlzdDE8L25hbWU+CgkgICAgPGNhbl9mb2N1cz5UcnVlPC9jYW5fZm9jdXM+CgkgICAgPGNvbHVt
bnM+NjwvY29sdW1ucz4KCSAgICA8Y29sdW1uX3dpZHRocz42MSwyNiw4OSw4MCwxOSw4MDwvY29s
dW1uX3dpZHRocz4KCSAgICA8c2VsZWN0aW9uX21vZGU+R1RLX1NFTEVDVElPTl9TSU5HTEU8L3Nl
bGVjdGlvbl9tb2RlPgoJICAgIDxzaG93X3RpdGxlcz5UcnVlPC9zaG93X3RpdGxlcz4KCSAgICA8
c2hhZG93X3R5cGU+R1RLX1NIQURPV19JTjwvc2hhZG93X3R5cGU+CgoJICAgIDx3aWRnZXQ+Cgkg
ICAgICA8Y2xhc3M+R3RrTGFiZWw8L2NsYXNzPgoJICAgICAgPGNoaWxkX25hbWU+Q0xpc3Q6dGl0
bGU8L2NoaWxkX25hbWU+CgkgICAgICA8bmFtZT5sYWJlbDQzPC9uYW1lPgoJICAgICAgPGxhYmVs
PkRhdGU8L2xhYmVsPgoJICAgICAgPGp1c3RpZnk+R1RLX0pVU1RJRllfQ0VOVEVSPC9qdXN0aWZ5
PgoJICAgICAgPHdyYXA+RmFsc2U8L3dyYXA+CgkgICAgICA8eGFsaWduPjAuNTwveGFsaWduPgoJ
ICAgICAgPHlhbGlnbj4wLjU8L3lhbGlnbj4KCSAgICAgIDx4cGFkPjA8L3hwYWQ+CgkgICAgICA8
eXBhZD4wPC95cGFkPgoJICAgIDwvd2lkZ2V0PgoKCSAgICA8d2lkZ2V0PgoJICAgICAgPGNsYXNz
Pkd0a0xhYmVsPC9jbGFzcz4KCSAgICAgIDxjaGlsZF9uYW1lPkNMaXN0OnRpdGxlPC9jaGlsZF9u
YW1lPgoJICAgICAgPG5hbWU+bGFiZWw0NDwvbmFtZT4KCSAgICAgIDxsYWJlbD5OdW08L2xhYmVs
PgoJICAgICAgPGp1c3RpZnk+R1RLX0pVU1RJRllfQ0VOVEVSPC9qdXN0aWZ5PgoJICAgICAgPHdy
YXA+RmFsc2U8L3dyYXA+CgkgICAgICA8eGFsaWduPjAuNTwveGFsaWduPgoJICAgICAgPHlhbGln
bj4wLjU8L3lhbGlnbj4KCSAgICAgIDx4cGFkPjA8L3hwYWQ+CgkgICAgICA8eXBhZD4wPC95cGFk
PgoJICAgIDwvd2lkZ2V0PgoKCSAgICA8d2lkZ2V0PgoJICAgICAgPGNsYXNzPkd0a0xhYmVsPC9j
bGFzcz4KCSAgICAgIDxjaGlsZF9uYW1lPkNMaXN0OnRpdGxlPC9jaGlsZF9uYW1lPgoJICAgICAg
PG5hbWU+bGFiZWw0NTwvbmFtZT4KCSAgICAgIDxsYWJlbD5EZXNjcmlwdGlvbjwvbGFiZWw+Cgkg
ICAgICA8anVzdGlmeT5HVEtfSlVTVElGWV9DRU5URVI8L2p1c3RpZnk+CgkgICAgICA8d3JhcD5G
YWxzZTwvd3JhcD4KCSAgICAgIDx4YWxpZ24+MC41PC94YWxpZ24+CgkgICAgICA8eWFsaWduPjAu
NTwveWFsaWduPgoJICAgICAgPHhwYWQ+MDwveHBhZD4KCSAgICAgIDx5cGFkPjA8L3lwYWQ+Cgkg
ICAgPC93aWRnZXQ+CgoJICAgIDx3aWRnZXQ+CgkgICAgICA8Y2xhc3M+R3RrTGFiZWw8L2NsYXNz
PgoJICAgICAgPGNoaWxkX25hbWU+Q0xpc3Q6dGl0bGU8L2NoaWxkX25hbWU+CgkgICAgICA8bmFt
ZT5sYWJlbDQ2PC9uYW1lPgoJICAgICAgPGxhYmVsPkFjY291bnQ8L2xhYmVsPgoJICAgICAgPGp1
c3RpZnk+R1RLX0pVU1RJRllfQ0VOVEVSPC9qdXN0aWZ5PgoJICAgICAgPHdyYXA+RmFsc2U8L3dy
YXA+CgkgICAgICA8eGFsaWduPjAuNTwveGFsaWduPgoJICAgICAgPHlhbGlnbj4wLjU8L3lhbGln
bj4KCSAgICAgIDx4cGFkPjA8L3hwYWQ+CgkgICAgICA8eXBhZD4wPC95cGFkPgoJICAgIDwvd2lk
Z2V0PgoKCSAgICA8d2lkZ2V0PgoJICAgICAgPGNsYXNzPkd0a0xhYmVsPC9jbGFzcz4KCSAgICAg
IDxjaGlsZF9uYW1lPkNMaXN0OnRpdGxlPC9jaGlsZF9uYW1lPgoJICAgICAgPG5hbWU+bGFiZWw0
NzwvbmFtZT4KCSAgICAgIDxsYWJlbD5SPC9sYWJlbD4KCSAgICAgIDxqdXN0aWZ5PkdUS19KVVNU
SUZZX0NFTlRFUjwvanVzdGlmeT4KCSAgICAgIDx3cmFwPkZhbHNlPC93cmFwPgoJICAgICAgPHhh
bGlnbj4wLjU8L3hhbGlnbj4KCSAgICAgIDx5YWxpZ24+MC41PC95YWxpZ24+CgkgICAgICA8eHBh
ZD4wPC94cGFkPgoJICAgICAgPHlwYWQ+MDwveXBhZD4KCSAgICA8L3dpZGdldD4KCgkgICAgPHdp
ZGdldD4KCSAgICAgIDxjbGFzcz5HdGtMYWJlbDwvY2xhc3M+CgkgICAgICA8Y2hpbGRfbmFtZT5D
TGlzdDp0aXRsZTwvY2hpbGRfbmFtZT4KCSAgICAgIDxuYW1lPmxhYmVsNDg8L25hbWU+CgkgICAg
ICA8bGFiZWw+QW1vdW50PC9sYWJlbD4KCSAgICAgIDxqdXN0aWZ5PkdUS19KVVNUSUZZX0NFTlRF
UjwvanVzdGlmeT4KCSAgICAgIDx3cmFwPkZhbHNlPC93cmFwPgoJICAgICAgPHhhbGlnbj4wLjU8
L3hhbGlnbj4KCSAgICAgIDx5YWxpZ24+MC41PC95YWxpZ24+CgkgICAgICA8eHBhZD4wPC94cGFk
PgoJICAgICAgPHlwYWQ+MDwveXBhZD4KCSAgICA8L3dpZGdldD4KCSAgPC93aWRnZXQ+Cgk8L3dp
ZGdldD4KICAgICAgPC93aWRnZXQ+CgogICAgICA8d2lkZ2V0PgoJPGNsYXNzPkd0a0ZyYW1lPC9j
bGFzcz4KCTxuYW1lPmZyYW1lNDwvbmFtZT4KCTxib3JkZXJfd2lkdGg+NTwvYm9yZGVyX3dpZHRo
PgoJPGxhYmVsPlBvdGVudGlhbCBUcmFuc2FjdGlvbiBNYXRjaGVzOjwvbGFiZWw+Cgk8bGFiZWxf
eGFsaWduPjAuMDU8L2xhYmVsX3hhbGlnbj4KCTxzaGFkb3dfdHlwZT5HVEtfU0hBRE9XX0VUQ0hF
RF9JTjwvc2hhZG93X3R5cGU+Cgk8Y2hpbGQ+CgkgIDxwYWRkaW5nPjA8L3BhZGRpbmc+CgkgIDxl
eHBhbmQ+VHJ1ZTwvZXhwYW5kPgoJICA8ZmlsbD5UcnVlPC9maWxsPgoJPC9jaGlsZD4KCgk8d2lk
Z2V0PgoJICA8Y2xhc3M+R3RrU2Nyb2xsZWRXaW5kb3c8L2NsYXNzPgoJICA8bmFtZT5zY3JvbGxl
ZHdpbmRvdzM8L25hbWU+CgkgIDxib3JkZXJfd2lkdGg+NTwvYm9yZGVyX3dpZHRoPgoJICA8aHNj
cm9sbGJhcl9wb2xpY3k+R1RLX1BPTElDWV9BTFdBWVM8L2hzY3JvbGxiYXJfcG9saWN5PgoJICA8
dnNjcm9sbGJhcl9wb2xpY3k+R1RLX1BPTElDWV9BTFdBWVM8L3ZzY3JvbGxiYXJfcG9saWN5PgoJ
ICA8aHVwZGF0ZV9wb2xpY3k+R1RLX1VQREFURV9DT05USU5VT1VTPC9odXBkYXRlX3BvbGljeT4K
CSAgPHZ1cGRhdGVfcG9saWN5PkdUS19VUERBVEVfQ09OVElOVU9VUzwvdnVwZGF0ZV9wb2xpY3k+
CgoJICA8d2lkZ2V0PgoJICAgIDxjbGFzcz5HdGtDTGlzdDwvY2xhc3M+CgkgICAgPG5hbWU+Y2xp
c3QyPC9uYW1lPgoJICAgIDxjYW5fZm9jdXM+VHJ1ZTwvY2FuX2ZvY3VzPgoJICAgIDxjb2x1bW5z
PjY8L2NvbHVtbnM+CgkgICAgPGNvbHVtbl93aWR0aHM+NjksMzAsOTYsODEsMjEsODA8L2NvbHVt
bl93aWR0aHM+CgkgICAgPHNlbGVjdGlvbl9tb2RlPkdUS19TRUxFQ1RJT05fU0lOR0xFPC9zZWxl
Y3Rpb25fbW9kZT4KCSAgICA8c2hvd190aXRsZXM+VHJ1ZTwvc2hvd190aXRsZXM+CgkgICAgPHNo
YWRvd190eXBlPkdUS19TSEFET1dfSU48L3NoYWRvd190eXBlPgoKCSAgICA8d2lkZ2V0PgoJICAg
ICAgPGNsYXNzPkd0a0xhYmVsPC9jbGFzcz4KCSAgICAgIDxjaGlsZF9uYW1lPkNMaXN0OnRpdGxl
PC9jaGlsZF9uYW1lPgoJICAgICAgPG5hbWU+bGFiZWw0OTwvbmFtZT4KCSAgICAgIDxsYWJlbD5E
YXRlPC9sYWJlbD4KCSAgICAgIDxqdXN0aWZ5PkdUS19KVVNUSUZZX0NFTlRFUjwvanVzdGlmeT4K
CSAgICAgIDx3cmFwPkZhbHNlPC93cmFwPgoJICAgICAgPHhhbGlnbj4wLjU8L3hhbGlnbj4KCSAg
ICAgIDx5YWxpZ24+MC41PC95YWxpZ24+CgkgICAgICA8eHBhZD4wPC94cGFkPgoJICAgICAgPHlw
YWQ+MDwveXBhZD4KCSAgICA8L3dpZGdldD4KCgkgICAgPHdpZGdldD4KCSAgICAgIDxjbGFzcz5H
dGtMYWJlbDwvY2xhc3M+CgkgICAgICA8Y2hpbGRfbmFtZT5DTGlzdDp0aXRsZTwvY2hpbGRfbmFt
ZT4KCSAgICAgIDxuYW1lPmxhYmVsNTA8L25hbWU+CgkgICAgICA8bGFiZWw+TnVtPC9sYWJlbD4K
CSAgICAgIDxqdXN0aWZ5PkdUS19KVVNUSUZZX0NFTlRFUjwvanVzdGlmeT4KCSAgICAgIDx3cmFw
PkZhbHNlPC93cmFwPgoJICAgICAgPHhhbGlnbj4wLjU8L3hhbGlnbj4KCSAgICAgIDx5YWxpZ24+
MC41PC95YWxpZ24+CgkgICAgICA8eHBhZD4wPC94cGFkPgoJICAgICAgPHlwYWQ+MDwveXBhZD4K
CSAgICA8L3dpZGdldD4KCgkgICAgPHdpZGdldD4KCSAgICAgIDxjbGFzcz5HdGtMYWJlbDwvY2xh
c3M+CgkgICAgICA8Y2hpbGRfbmFtZT5DTGlzdDp0aXRsZTwvY2hpbGRfbmFtZT4KCSAgICAgIDxu
YW1lPmxhYmVsNTE8L25hbWU+CgkgICAgICA8bGFiZWw+RGVzY3JpcHRpb248L2xhYmVsPgoJICAg
ICAgPGp1c3RpZnk+R1RLX0pVU1RJRllfQ0VOVEVSPC9qdXN0aWZ5PgoJICAgICAgPHdyYXA+RmFs
c2U8L3dyYXA+CgkgICAgICA8eGFsaWduPjAuNTwveGFsaWduPgoJICAgICAgPHlhbGlnbj4wLjU8
L3lhbGlnbj4KCSAgICAgIDx4cGFkPjA8L3hwYWQ+CgkgICAgICA8eXBhZD4wPC95cGFkPgoJICAg
IDwvd2lkZ2V0PgoKCSAgICA8d2lkZ2V0PgoJICAgICAgPGNsYXNzPkd0a0xhYmVsPC9jbGFzcz4K
CSAgICAgIDxjaGlsZF9uYW1lPkNMaXN0OnRpdGxlPC9jaGlsZF9uYW1lPgoJICAgICAgPG5hbWU+
bGFiZWw1MjwvbmFtZT4KCSAgICAgIDxsYWJlbD5BY2NvdW50PC9sYWJlbD4KCSAgICAgIDxqdXN0
aWZ5PkdUS19KVVNUSUZZX0NFTlRFUjwvanVzdGlmeT4KCSAgICAgIDx3cmFwPkZhbHNlPC93cmFw
PgoJICAgICAgPHhhbGlnbj4wLjU8L3hhbGlnbj4KCSAgICAgIDx5YWxpZ24+MC41PC95YWxpZ24+
CgkgICAgICA8eHBhZD4wPC94cGFkPgoJICAgICAgPHlwYWQ+MDwveXBhZD4KCSAgICA8L3dpZGdl
dD4KCgkgICAgPHdpZGdldD4KCSAgICAgIDxjbGFzcz5HdGtMYWJlbDwvY2xhc3M+CgkgICAgICA8
Y2hpbGRfbmFtZT5DTGlzdDp0aXRsZTwvY2hpbGRfbmFtZT4KCSAgICAgIDxuYW1lPmxhYmVsNTM8
L25hbWU+CgkgICAgICA8bGFiZWw+UjwvbGFiZWw+CgkgICAgICA8anVzdGlmeT5HVEtfSlVTVElG
WV9DRU5URVI8L2p1c3RpZnk+CgkgICAgICA8d3JhcD5GYWxzZTwvd3JhcD4KCSAgICAgIDx4YWxp
Z24+MC41PC94YWxpZ24+CgkgICAgICA8eWFsaWduPjAuNTwveWFsaWduPgoJICAgICAgPHhwYWQ+
MDwveHBhZD4KCSAgICAgIDx5cGFkPjA8L3lwYWQ+CgkgICAgPC93aWRnZXQ+CgoJICAgIDx3aWRn
ZXQ+CgkgICAgICA8Y2xhc3M+R3RrTGFiZWw8L2NsYXNzPgoJICAgICAgPGNoaWxkX25hbWU+Q0xp
c3Q6dGl0bGU8L2NoaWxkX25hbWU+CgkgICAgICA8bmFtZT5sYWJlbDU0PC9uYW1lPgoJICAgICAg
PGxhYmVsPkFtb3VudDwvbGFiZWw+CgkgICAgICA8anVzdGlmeT5HVEtfSlVTVElGWV9DRU5URVI8
L2p1c3RpZnk+CgkgICAgICA8d3JhcD5GYWxzZTwvd3JhcD4KCSAgICAgIDx4YWxpZ24+MC41PC94
YWxpZ24+CgkgICAgICA8eWFsaWduPjAuNTwveWFsaWduPgoJICAgICAgPHhwYWQ+MDwveHBhZD4K
CSAgICAgIDx5cGFkPjA8L3lwYWQ+CgkgICAgPC93aWRnZXQ+CgkgIDwvd2lkZ2V0PgoJPC93aWRn
ZXQ+CiAgICAgIDwvd2lkZ2V0PgogICAgPC93aWRnZXQ+CgogICAgPHdpZGdldD4KICAgICAgPGNs
YXNzPkd0a0ZyYW1lPC9jbGFzcz4KICAgICAgPG5hbWU+ZnJhbWU1PC9uYW1lPgogICAgICA8Ym9y
ZGVyX3dpZHRoPjU8L2JvcmRlcl93aWR0aD4KICAgICAgPGxhYmVsPkltcG9ydCBBY3Rpb246PC9s
YWJlbD4KICAgICAgPGxhYmVsX3hhbGlnbj4wLjA1PC9sYWJlbF94YWxpZ24+CiAgICAgIDxzaGFk
b3dfdHlwZT5HVEtfU0hBRE9XX0VUQ0hFRF9JTjwvc2hhZG93X3R5cGU+CiAgICAgIDxjaGlsZD4K
CTxwYWRkaW5nPjA8L3BhZGRpbmc+Cgk8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+Cgk8ZmlsbD5UcnVl
PC9maWxsPgogICAgICA8L2NoaWxkPgoKICAgICAgPHdpZGdldD4KCTxjbGFzcz5HdGtWQm94PC9j
bGFzcz4KCTxuYW1lPnZib3g1PC9uYW1lPgoJPGJvcmRlcl93aWR0aD45PC9ib3JkZXJfd2lkdGg+
Cgk8aG9tb2dlbmVvdXM+RmFsc2U8L2hvbW9nZW5lb3VzPgoJPHNwYWNpbmc+MDwvc3BhY2luZz4K
Cgk8d2lkZ2V0PgoJICA8Y2xhc3M+R3RrUmFkaW9CdXR0b248L2NsYXNzPgoJICA8bmFtZT5yYWRp
b2J1dHRvbjEwPC9uYW1lPgoJICA8Y2FuX2ZvY3VzPlRydWU8L2Nhbl9mb2N1cz4KCSAgPGxhYmVs
PlRoaXMgTWF0Y2hlcyBUaGUgRm9sbG93aW5nIFRyYW5zYWN0aW9uOjwvbGFiZWw+CgkgIDxhY3Rp
dmU+RmFsc2U8L2FjdGl2ZT4KCSAgPGRyYXdfaW5kaWNhdG9yPlRydWU8L2RyYXdfaW5kaWNhdG9y
PgoJICA8Y2hpbGQ+CgkgICAgPHBhZGRpbmc+MDwvcGFkZGluZz4KCSAgICA8ZXhwYW5kPkZhbHNl
PC9leHBhbmQ+CgkgICAgPGZpbGw+RmFsc2U8L2ZpbGw+CgkgIDwvY2hpbGQ+Cgk8L3dpZGdldD4K
Cgk8d2lkZ2V0PgoJICA8Y2xhc3M+R3RrRnJhbWU8L2NsYXNzPgoJICA8bmFtZT5mcmFtZTY8L25h
bWU+CgkgIDxib3JkZXJfd2lkdGg+NTwvYm9yZGVyX3dpZHRoPgoJICA8bGFiZWxfeGFsaWduPjA8
L2xhYmVsX3hhbGlnbj4KCSAgPHNoYWRvd190eXBlPkdUS19TSEFET1dfTk9ORTwvc2hhZG93X3R5
cGU+CgkgIDxjaGlsZD4KCSAgICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJICAgIDxleHBhbmQ+VHJ1
ZTwvZXhwYW5kPgoJICAgIDxmaWxsPlRydWU8L2ZpbGw+CgkgIDwvY2hpbGQ+CgoJICA8d2lkZ2V0
PgoJICAgIDxjbGFzcz5HdGtUYWJsZTwvY2xhc3M+CgkgICAgPG5hbWU+dGFibGUyPC9uYW1lPgoJ
ICAgIDxyb3dzPjI8L3Jvd3M+CgkgICAgPGNvbHVtbnM+NjwvY29sdW1ucz4KCSAgICA8aG9tb2dl
bmVvdXM+RmFsc2U8L2hvbW9nZW5lb3VzPgoJICAgIDxyb3dfc3BhY2luZz4wPC9yb3dfc3BhY2lu
Zz4KCSAgICA8Y29sdW1uX3NwYWNpbmc+MDwvY29sdW1uX3NwYWNpbmc+CgoJICAgIDx3aWRnZXQ+
CgkgICAgICA8Y2xhc3M+R3RrRW50cnk8L2NsYXNzPgoJICAgICAgPG5hbWU+ZW50cnk1PC9uYW1l
PgoJICAgICAgPGNhbl9mb2N1cz5UcnVlPC9jYW5fZm9jdXM+CgkgICAgICA8ZWRpdGFibGU+RmFs
c2U8L2VkaXRhYmxlPgoJICAgICAgPHRleHRfdmlzaWJsZT5UcnVlPC90ZXh0X3Zpc2libGU+Cgkg
ICAgICA8dGV4dF9tYXhfbGVuZ3RoPjA8L3RleHRfbWF4X2xlbmd0aD4KCSAgICAgIDx0ZXh0PiAg
MDIvMjEvMjAwMiAgICAgICAgICAgICAgICAgICAgIDEyMiAgICAgICAgICAgICAgICAgIENhc2gg
V2l0aGRyYXdhbCAgICAgIEV4cGVuc2VzOkNhc2ggV2l0aGRyYXdhbCAgICAgICAgIGMgICAgICAg
ICAgICAgICAgICAgICAgMjAwLjAwPC90ZXh0PgoJICAgICAgPGNoaWxkPgoJCTxsZWZ0X2F0dGFj
aD4wPC9sZWZ0X2F0dGFjaD4KCQk8cmlnaHRfYXR0YWNoPjY8L3JpZ2h0X2F0dGFjaD4KCQk8dG9w
X2F0dGFjaD4xPC90b3BfYXR0YWNoPgoJCTxib3R0b21fYXR0YWNoPjI8L2JvdHRvbV9hdHRhY2g+
CgkJPHhwYWQ+MDwveHBhZD4KCQk8eXBhZD4wPC95cGFkPgoJCTx4ZXhwYW5kPlRydWU8L3hleHBh
bmQ+CgkJPHlleHBhbmQ+RmFsc2U8L3lleHBhbmQ+CgkJPHhzaHJpbms+RmFsc2U8L3hzaHJpbms+
CgkJPHlzaHJpbms+RmFsc2U8L3lzaHJpbms+CgkJPHhmaWxsPlRydWU8L3hmaWxsPgoJCTx5Zmls
bD5GYWxzZTwveWZpbGw+CgkgICAgICA8L2NoaWxkPgoJICAgIDwvd2lkZ2V0PgoKCSAgICA8d2lk
Z2V0PgoJICAgICAgPGNsYXNzPkd0a0xhYmVsPC9jbGFzcz4KCSAgICAgIDxuYW1lPmxhYmVsNjA8
L25hbWU+CgkgICAgICA8bGFiZWw+RGF0ZTwvbGFiZWw+CgkgICAgICA8anVzdGlmeT5HVEtfSlVT
VElGWV9DRU5URVI8L2p1c3RpZnk+CgkgICAgICA8d3JhcD5GYWxzZTwvd3JhcD4KCSAgICAgIDx4
YWxpZ24+MC41PC94YWxpZ24+CgkgICAgICA8eWFsaWduPjAuNTwveWFsaWduPgoJICAgICAgPHhw
YWQ+MDwveHBhZD4KCSAgICAgIDx5cGFkPjA8L3lwYWQ+CgkgICAgICA8Y2hpbGQ+CgkJPGxlZnRf
YXR0YWNoPjA8L2xlZnRfYXR0YWNoPgoJCTxyaWdodF9hdHRhY2g+MTwvcmlnaHRfYXR0YWNoPgoJ
CTx0b3BfYXR0YWNoPjA8L3RvcF9hdHRhY2g+CgkJPGJvdHRvbV9hdHRhY2g+MTwvYm90dG9tX2F0
dGFjaD4KCQk8eHBhZD4wPC94cGFkPgoJCTx5cGFkPjA8L3lwYWQ+CgkJPHhleHBhbmQ+RmFsc2U8
L3hleHBhbmQ+CgkJPHlleHBhbmQ+RmFsc2U8L3lleHBhbmQ+CgkJPHhzaHJpbms+RmFsc2U8L3hz
aHJpbms+CgkJPHlzaHJpbms+RmFsc2U8L3lzaHJpbms+CgkJPHhmaWxsPlRydWU8L3hmaWxsPgoJ
CTx5ZmlsbD5GYWxzZTwveWZpbGw+CgkgICAgICA8L2NoaWxkPgoJICAgIDwvd2lkZ2V0PgoKCSAg
ICA8d2lkZ2V0PgoJICAgICAgPGNsYXNzPkd0a0xhYmVsPC9jbGFzcz4KCSAgICAgIDxuYW1lPmxh
YmVsNjE8L25hbWU+CgkgICAgICA8bGFiZWw+TnVtPC9sYWJlbD4KCSAgICAgIDxqdXN0aWZ5PkdU
S19KVVNUSUZZX0NFTlRFUjwvanVzdGlmeT4KCSAgICAgIDx3cmFwPkZhbHNlPC93cmFwPgoJICAg
ICAgPHhhbGlnbj4wLjU8L3hhbGlnbj4KCSAgICAgIDx5YWxpZ24+MC41PC95YWxpZ24+CgkgICAg
ICA8eHBhZD4wPC94cGFkPgoJICAgICAgPHlwYWQ+MDwveXBhZD4KCSAgICAgIDxjaGlsZD4KCQk8
bGVmdF9hdHRhY2g+MTwvbGVmdF9hdHRhY2g+CgkJPHJpZ2h0X2F0dGFjaD4yPC9yaWdodF9hdHRh
Y2g+CgkJPHRvcF9hdHRhY2g+MDwvdG9wX2F0dGFjaD4KCQk8Ym90dG9tX2F0dGFjaD4xPC9ib3R0
b21fYXR0YWNoPgoJCTx4cGFkPjA8L3hwYWQ+CgkJPHlwYWQ+MDwveXBhZD4KCQk8eGV4cGFuZD5G
YWxzZTwveGV4cGFuZD4KCQk8eWV4cGFuZD5GYWxzZTwveWV4cGFuZD4KCQk8eHNocmluaz5GYWxz
ZTwveHNocmluaz4KCQk8eXNocmluaz5GYWxzZTwveXNocmluaz4KCQk8eGZpbGw+VHJ1ZTwveGZp
bGw+CgkJPHlmaWxsPkZhbHNlPC95ZmlsbD4KCSAgICAgIDwvY2hpbGQ+CgkgICAgPC93aWRnZXQ+
CgoJICAgIDx3aWRnZXQ+CgkgICAgICA8Y2xhc3M+R3RrTGFiZWw8L2NsYXNzPgoJICAgICAgPG5h
bWU+bGFiZWw2MjwvbmFtZT4KCSAgICAgIDxsYWJlbD5EZXNjcmlwdGlvbjwvbGFiZWw+CgkgICAg
ICA8anVzdGlmeT5HVEtfSlVTVElGWV9DRU5URVI8L2p1c3RpZnk+CgkgICAgICA8d3JhcD5GYWxz
ZTwvd3JhcD4KCSAgICAgIDx4YWxpZ24+MC41PC94YWxpZ24+CgkgICAgICA8eWFsaWduPjAuNTwv
eWFsaWduPgoJICAgICAgPHhwYWQ+MDwveHBhZD4KCSAgICAgIDx5cGFkPjA8L3lwYWQ+CgkgICAg
ICA8Y2hpbGQ+CgkJPGxlZnRfYXR0YWNoPjI8L2xlZnRfYXR0YWNoPgoJCTxyaWdodF9hdHRhY2g+
MzwvcmlnaHRfYXR0YWNoPgoJCTx0b3BfYXR0YWNoPjA8L3RvcF9hdHRhY2g+CgkJPGJvdHRvbV9h
dHRhY2g+MTwvYm90dG9tX2F0dGFjaD4KCQk8eHBhZD4wPC94cGFkPgoJCTx5cGFkPjA8L3lwYWQ+
CgkJPHhleHBhbmQ+RmFsc2U8L3hleHBhbmQ+CgkJPHlleHBhbmQ+RmFsc2U8L3lleHBhbmQ+CgkJ
PHhzaHJpbms+RmFsc2U8L3hzaHJpbms+CgkJPHlzaHJpbms+RmFsc2U8L3lzaHJpbms+CgkJPHhm
aWxsPlRydWU8L3hmaWxsPgoJCTx5ZmlsbD5GYWxzZTwveWZpbGw+CgkgICAgICA8L2NoaWxkPgoJ
ICAgIDwvd2lkZ2V0PgoKCSAgICA8d2lkZ2V0PgoJICAgICAgPGNsYXNzPkd0a0xhYmVsPC9jbGFz
cz4KCSAgICAgIDxuYW1lPmxhYmVsNjM8L25hbWU+CgkgICAgICA8bGFiZWw+QWNjb3VudDwvbGFi
ZWw+CgkgICAgICA8anVzdGlmeT5HVEtfSlVTVElGWV9DRU5URVI8L2p1c3RpZnk+CgkgICAgICA8
d3JhcD5GYWxzZTwvd3JhcD4KCSAgICAgIDx4YWxpZ24+MC41PC94YWxpZ24+CgkgICAgICA8eWFs
aWduPjAuNTwveWFsaWduPgoJICAgICAgPHhwYWQ+MDwveHBhZD4KCSAgICAgIDx5cGFkPjA8L3lw
YWQ+CgkgICAgICA8Y2hpbGQ+CgkJPGxlZnRfYXR0YWNoPjM8L2xlZnRfYXR0YWNoPgoJCTxyaWdo
dF9hdHRhY2g+NDwvcmlnaHRfYXR0YWNoPgoJCTx0b3BfYXR0YWNoPjA8L3RvcF9hdHRhY2g+CgkJ
PGJvdHRvbV9hdHRhY2g+MTwvYm90dG9tX2F0dGFjaD4KCQk8eHBhZD4wPC94cGFkPgoJCTx5cGFk
PjA8L3lwYWQ+CgkJPHhleHBhbmQ+RmFsc2U8L3hleHBhbmQ+CgkJPHlleHBhbmQ+RmFsc2U8L3ll
eHBhbmQ+CgkJPHhzaHJpbms+RmFsc2U8L3hzaHJpbms+CgkJPHlzaHJpbms+RmFsc2U8L3lzaHJp
bms+CgkJPHhmaWxsPlRydWU8L3hmaWxsPgoJCTx5ZmlsbD5GYWxzZTwveWZpbGw+CgkgICAgICA8
L2NoaWxkPgoJICAgIDwvd2lkZ2V0PgoKCSAgICA8d2lkZ2V0PgoJICAgICAgPGNsYXNzPkd0a0xh
YmVsPC9jbGFzcz4KCSAgICAgIDxuYW1lPmxhYmVsNjQ8L25hbWU+CgkgICAgICA8bGFiZWw+Ujwv
bGFiZWw+CgkgICAgICA8anVzdGlmeT5HVEtfSlVTVElGWV9DRU5URVI8L2p1c3RpZnk+CgkgICAg
ICA8d3JhcD5GYWxzZTwvd3JhcD4KCSAgICAgIDx4YWxpZ24+MC41PC94YWxpZ24+CgkgICAgICA8
eWFsaWduPjAuNTwveWFsaWduPgoJICAgICAgPHhwYWQ+MDwveHBhZD4KCSAgICAgIDx5cGFkPjA8
L3lwYWQ+CgkgICAgICA8Y2hpbGQ+CgkJPGxlZnRfYXR0YWNoPjQ8L2xlZnRfYXR0YWNoPgoJCTxy
aWdodF9hdHRhY2g+NTwvcmlnaHRfYXR0YWNoPgoJCTx0b3BfYXR0YWNoPjA8L3RvcF9hdHRhY2g+
CgkJPGJvdHRvbV9hdHRhY2g+MTwvYm90dG9tX2F0dGFjaD4KCQk8eHBhZD4wPC94cGFkPgoJCTx5
cGFkPjA8L3lwYWQ+CgkJPHhleHBhbmQ+RmFsc2U8L3hleHBhbmQ+CgkJPHlleHBhbmQ+RmFsc2U8
L3lleHBhbmQ+CgkJPHhzaHJpbms+RmFsc2U8L3hzaHJpbms+CgkJPHlzaHJpbms+RmFsc2U8L3lz
aHJpbms+CgkJPHhmaWxsPlRydWU8L3hmaWxsPgoJCTx5ZmlsbD5GYWxzZTwveWZpbGw+CgkgICAg
ICA8L2NoaWxkPgoJICAgIDwvd2lkZ2V0PgoKCSAgICA8d2lkZ2V0PgoJICAgICAgPGNsYXNzPkd0
a0xhYmVsPC9jbGFzcz4KCSAgICAgIDxuYW1lPmxhYmVsNjU8L25hbWU+CgkgICAgICA8bGFiZWw+
QW1vdW50PC9sYWJlbD4KCSAgICAgIDxqdXN0aWZ5PkdUS19KVVNUSUZZX0NFTlRFUjwvanVzdGlm
eT4KCSAgICAgIDx3cmFwPkZhbHNlPC93cmFwPgoJICAgICAgPHhhbGlnbj4wLjU8L3hhbGlnbj4K
CSAgICAgIDx5YWxpZ24+MC41PC95YWxpZ24+CgkgICAgICA8eHBhZD4wPC94cGFkPgoJICAgICAg
PHlwYWQ+MDwveXBhZD4KCSAgICAgIDxjaGlsZD4KCQk8bGVmdF9hdHRhY2g+NTwvbGVmdF9hdHRh
Y2g+CgkJPHJpZ2h0X2F0dGFjaD42PC9yaWdodF9hdHRhY2g+CgkJPHRvcF9hdHRhY2g+MDwvdG9w
X2F0dGFjaD4KCQk8Ym90dG9tX2F0dGFjaD4xPC9ib3R0b21fYXR0YWNoPgoJCTx4cGFkPjA8L3hw
YWQ+CgkJPHlwYWQ+MDwveXBhZD4KCQk8eGV4cGFuZD5GYWxzZTwveGV4cGFuZD4KCQk8eWV4cGFu
ZD5GYWxzZTwveWV4cGFuZD4KCQk8eHNocmluaz5GYWxzZTwveHNocmluaz4KCQk8eXNocmluaz5G
YWxzZTwveXNocmluaz4KCQk8eGZpbGw+VHJ1ZTwveGZpbGw+CgkJPHlmaWxsPkZhbHNlPC95Zmls
bD4KCSAgICAgIDwvY2hpbGQ+CgkgICAgPC93aWRnZXQ+CgkgIDwvd2lkZ2V0PgoJPC93aWRnZXQ+
CgoJPHdpZGdldD4KCSAgPGNsYXNzPkd0a1JhZGlvQnV0dG9uPC9jbGFzcz4KCSAgPG5hbWU+cmFk
aW9idXR0b24xNDwvbmFtZT4KCSAgPGNhbl9mb2N1cz5UcnVlPC9jYW5fZm9jdXM+CgkgIDxsYWJl
bD5UaGlzIElzIEEgTmV3IFRyYW5zYWN0aW9uOjwvbGFiZWw+CgkgIDxhY3RpdmU+RmFsc2U8L2Fj
dGl2ZT4KCSAgPGRyYXdfaW5kaWNhdG9yPlRydWU8L2RyYXdfaW5kaWNhdG9yPgoJICA8Y2hpbGQ+
CgkgICAgPHBhZGRpbmc+MDwvcGFkZGluZz4KCSAgICA8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+Cgkg
ICAgPGZpbGw+RmFsc2U8L2ZpbGw+CgkgIDwvY2hpbGQ+Cgk8L3dpZGdldD4KCgk8d2lkZ2V0PgoJ
ICA8Y2xhc3M+R3RrRnJhbWU8L2NsYXNzPgoJICA8bmFtZT5mcmFtZTc8L25hbWU+CgkgIDxib3Jk
ZXJfd2lkdGg+NTwvYm9yZGVyX3dpZHRoPgoJICA8bGFiZWxfeGFsaWduPjA8L2xhYmVsX3hhbGln
bj4KCSAgPHNoYWRvd190eXBlPkdUS19TSEFET1dfTk9ORTwvc2hhZG93X3R5cGU+CgkgIDxjaGls
ZD4KCSAgICA8cGFkZGluZz4wPC9wYWRkaW5nPgoJICAgIDxleHBhbmQ+RmFsc2U8L2V4cGFuZD4K
CSAgICA8ZmlsbD5GYWxzZTwvZmlsbD4KCSAgPC9jaGlsZD4KCgkgIDx3aWRnZXQ+CgkgICAgPGNs
YXNzPkd0a1RhYmxlPC9jbGFzcz4KCSAgICA8bmFtZT50YWJsZTM8L25hbWU+CgkgICAgPHJvd3M+
Mjwvcm93cz4KCSAgICA8Y29sdW1ucz42PC9jb2x1bW5zPgoJICAgIDxob21vZ2VuZW91cz5GYWxz
ZTwvaG9tb2dlbmVvdXM+CgkgICAgPHJvd19zcGFjaW5nPjA8L3Jvd19zcGFjaW5nPgoJICAgIDxj
b2x1bW5fc3BhY2luZz4wPC9jb2x1bW5fc3BhY2luZz4KCgkgICAgPHdpZGdldD4KCSAgICAgIDxj
bGFzcz5HdGtMYWJlbDwvY2xhc3M+CgkgICAgICA8bmFtZT5sYWJlbDY2PC9uYW1lPgoJICAgICAg
PGxhYmVsPkRhdGU8L2xhYmVsPgoJICAgICAgPGp1c3RpZnk+R1RLX0pVU1RJRllfQ0VOVEVSPC9q
dXN0aWZ5PgoJICAgICAgPHdyYXA+RmFsc2U8L3dyYXA+CgkgICAgICA8eGFsaWduPjAuNTwveGFs
aWduPgoJICAgICAgPHlhbGlnbj4wLjU8L3lhbGlnbj4KCSAgICAgIDx4cGFkPjA8L3hwYWQ+Cgkg
ICAgICA8eXBhZD4wPC95cGFkPgoJICAgICAgPGNoaWxkPgoJCTxsZWZ0X2F0dGFjaD4wPC9sZWZ0
X2F0dGFjaD4KCQk8cmlnaHRfYXR0YWNoPjE8L3JpZ2h0X2F0dGFjaD4KCQk8dG9wX2F0dGFjaD4w
PC90b3BfYXR0YWNoPgoJCTxib3R0b21fYXR0YWNoPjE8L2JvdHRvbV9hdHRhY2g+CgkJPHhwYWQ+
MDwveHBhZD4KCQk8eXBhZD4wPC95cGFkPgoJCTx4ZXhwYW5kPkZhbHNlPC94ZXhwYW5kPgoJCTx5
ZXhwYW5kPkZhbHNlPC95ZXhwYW5kPgoJCTx4c2hyaW5rPkZhbHNlPC94c2hyaW5rPgoJCTx5c2hy
aW5rPkZhbHNlPC95c2hyaW5rPgoJCTx4ZmlsbD5UcnVlPC94ZmlsbD4KCQk8eWZpbGw+RmFsc2U8
L3lmaWxsPgoJICAgICAgPC9jaGlsZD4KCSAgICA8L3dpZGdldD4KCgkgICAgPHdpZGdldD4KCSAg
ICAgIDxjbGFzcz5HdGtMYWJlbDwvY2xhc3M+CgkgICAgICA8bmFtZT5sYWJlbDY3PC9uYW1lPgoJ
ICAgICAgPGxhYmVsPk51bTwvbGFiZWw+CgkgICAgICA8anVzdGlmeT5HVEtfSlVTVElGWV9DRU5U
RVI8L2p1c3RpZnk+CgkgICAgICA8d3JhcD5GYWxzZTwvd3JhcD4KCSAgICAgIDx4YWxpZ24+MC41
PC94YWxpZ24+CgkgICAgICA8eWFsaWduPjAuNTwveWFsaWduPgoJICAgICAgPHhwYWQ+MDwveHBh
ZD4KCSAgICAgIDx5cGFkPjA8L3lwYWQ+CgkgICAgICA8Y2hpbGQ+CgkJPGxlZnRfYXR0YWNoPjE8
L2xlZnRfYXR0YWNoPgoJCTxyaWdodF9hdHRhY2g+MjwvcmlnaHRfYXR0YWNoPgoJCTx0b3BfYXR0
YWNoPjA8L3RvcF9hdHRhY2g+CgkJPGJvdHRvbV9hdHRhY2g+MTwvYm90dG9tX2F0dGFjaD4KCQk8
eHBhZD4wPC94cGFkPgoJCTx5cGFkPjA8L3lwYWQ+CgkJPHhleHBhbmQ+RmFsc2U8L3hleHBhbmQ+
CgkJPHlleHBhbmQ+RmFsc2U8L3lleHBhbmQ+CgkJPHhzaHJpbms+RmFsc2U8L3hzaHJpbms+CgkJ
PHlzaHJpbms+RmFsc2U8L3lzaHJpbms+CgkJPHhmaWxsPlRydWU8L3hmaWxsPgoJCTx5ZmlsbD5G
YWxzZTwveWZpbGw+CgkgICAgICA8L2NoaWxkPgoJICAgIDwvd2lkZ2V0PgoKCSAgICA8d2lkZ2V0
PgoJICAgICAgPGNsYXNzPkd0a0xhYmVsPC9jbGFzcz4KCSAgICAgIDxuYW1lPmxhYmVsNjg8L25h
bWU+CgkgICAgICA8bGFiZWw+RGVzY3JpcHRpb248L2xhYmVsPgoJICAgICAgPGp1c3RpZnk+R1RL
X0pVU1RJRllfQ0VOVEVSPC9qdXN0aWZ5PgoJICAgICAgPHdyYXA+RmFsc2U8L3dyYXA+CgkgICAg
ICA8eGFsaWduPjAuNTwveGFsaWduPgoJICAgICAgPHlhbGlnbj4wLjU8L3lhbGlnbj4KCSAgICAg
IDx4cGFkPjA8L3hwYWQ+CgkgICAgICA8eXBhZD4wPC95cGFkPgoJICAgICAgPGNoaWxkPgoJCTxs
ZWZ0X2F0dGFjaD4yPC9sZWZ0X2F0dGFjaD4KCQk8cmlnaHRfYXR0YWNoPjM8L3JpZ2h0X2F0dGFj
aD4KCQk8dG9wX2F0dGFjaD4wPC90b3BfYXR0YWNoPgoJCTxib3R0b21fYXR0YWNoPjE8L2JvdHRv
bV9hdHRhY2g+CgkJPHhwYWQ+MDwveHBhZD4KCQk8eXBhZD4wPC95cGFkPgoJCTx4ZXhwYW5kPkZh
bHNlPC94ZXhwYW5kPgoJCTx5ZXhwYW5kPkZhbHNlPC95ZXhwYW5kPgoJCTx4c2hyaW5rPkZhbHNl
PC94c2hyaW5rPgoJCTx5c2hyaW5rPkZhbHNlPC95c2hyaW5rPgoJCTx4ZmlsbD5UcnVlPC94Zmls
bD4KCQk8eWZpbGw+RmFsc2U8L3lmaWxsPgoJICAgICAgPC9jaGlsZD4KCSAgICA8L3dpZGdldD4K
CgkgICAgPHdpZGdldD4KCSAgICAgIDxjbGFzcz5HdGtMYWJlbDwvY2xhc3M+CgkgICAgICA8bmFt
ZT5sYWJlbDY5PC9uYW1lPgoJICAgICAgPGxhYmVsPkFjY291bnQ8L2xhYmVsPgoJICAgICAgPGp1
c3RpZnk+R1RLX0pVU1RJRllfQ0VOVEVSPC9qdXN0aWZ5PgoJICAgICAgPHdyYXA+RmFsc2U8L3dy
YXA+CgkgICAgICA8eGFsaWduPjAuNTwveGFsaWduPgoJICAgICAgPHlhbGlnbj4wLjU8L3lhbGln
bj4KCSAgICAgIDx4cGFkPjA8L3hwYWQ+CgkgICAgICA8eXBhZD4wPC95cGFkPgoJICAgICAgPGNo
aWxkPgoJCTxsZWZ0X2F0dGFjaD4zPC9sZWZ0X2F0dGFjaD4KCQk8cmlnaHRfYXR0YWNoPjQ8L3Jp
Z2h0X2F0dGFjaD4KCQk8dG9wX2F0dGFjaD4wPC90b3BfYXR0YWNoPgoJCTxib3R0b21fYXR0YWNo
PjE8L2JvdHRvbV9hdHRhY2g+CgkJPHhwYWQ+MDwveHBhZD4KCQk8eXBhZD4wPC95cGFkPgoJCTx4
ZXhwYW5kPkZhbHNlPC94ZXhwYW5kPgoJCTx5ZXhwYW5kPkZhbHNlPC95ZXhwYW5kPgoJCTx4c2hy
aW5rPkZhbHNlPC94c2hyaW5rPgoJCTx5c2hyaW5rPkZhbHNlPC95c2hyaW5rPgoJCTx4ZmlsbD5U
cnVlPC94ZmlsbD4KCQk8eWZpbGw+RmFsc2U8L3lmaWxsPgoJICAgICAgPC9jaGlsZD4KCSAgICA8
L3dpZGdldD4KCgkgICAgPHdpZGdldD4KCSAgICAgIDxjbGFzcz5HdGtMYWJlbDwvY2xhc3M+Cgkg
ICAgICA8bmFtZT5sYWJlbDcwPC9uYW1lPgoJICAgICAgPGxhYmVsPlI8L2xhYmVsPgoJICAgICAg
PGp1c3RpZnk+R1RLX0pVU1RJRllfQ0VOVEVSPC9qdXN0aWZ5PgoJICAgICAgPHdyYXA+RmFsc2U8
L3dyYXA+CgkgICAgICA8eGFsaWduPjAuNTwveGFsaWduPgoJICAgICAgPHlhbGlnbj4wLjU8L3lh
bGlnbj4KCSAgICAgIDx4cGFkPjA8L3hwYWQ+CgkgICAgICA8eXBhZD4wPC95cGFkPgoJICAgICAg
PGNoaWxkPgoJCTxsZWZ0X2F0dGFjaD40PC9sZWZ0X2F0dGFjaD4KCQk8cmlnaHRfYXR0YWNoPjU8
L3JpZ2h0X2F0dGFjaD4KCQk8dG9wX2F0dGFjaD4wPC90b3BfYXR0YWNoPgoJCTxib3R0b21fYXR0
YWNoPjE8L2JvdHRvbV9hdHRhY2g+CgkJPHhwYWQ+MDwveHBhZD4KCQk8eXBhZD4wPC95cGFkPgoJ
CTx4ZXhwYW5kPkZhbHNlPC94ZXhwYW5kPgoJCTx5ZXhwYW5kPkZhbHNlPC95ZXhwYW5kPgoJCTx4
c2hyaW5rPkZhbHNlPC94c2hyaW5rPgoJCTx5c2hyaW5rPkZhbHNlPC95c2hyaW5rPgoJCTx4Zmls
bD5UcnVlPC94ZmlsbD4KCQk8eWZpbGw+RmFsc2U8L3lmaWxsPgoJICAgICAgPC9jaGlsZD4KCSAg
ICA8L3dpZGdldD4KCgkgICAgPHdpZGdldD4KCSAgICAgIDxjbGFzcz5HdGtMYWJlbDwvY2xhc3M+
CgkgICAgICA8bmFtZT5sYWJlbDcxPC9uYW1lPgoJICAgICAgPGxhYmVsPkFtb3VudDwvbGFiZWw+
CgkgICAgICA8anVzdGlmeT5HVEtfSlVTVElGWV9DRU5URVI8L2p1c3RpZnk+CgkgICAgICA8d3Jh
cD5GYWxzZTwvd3JhcD4KCSAgICAgIDx4YWxpZ24+MC41PC94YWxpZ24+CgkgICAgICA8eWFsaWdu
PjAuNTwveWFsaWduPgoJICAgICAgPHhwYWQ+MDwveHBhZD4KCSAgICAgIDx5cGFkPjA8L3lwYWQ+
CgkgICAgICA8Y2hpbGQ+CgkJPGxlZnRfYXR0YWNoPjU8L2xlZnRfYXR0YWNoPgoJCTxyaWdodF9h
dHRhY2g+NjwvcmlnaHRfYXR0YWNoPgoJCTx0b3BfYXR0YWNoPjA8L3RvcF9hdHRhY2g+CgkJPGJv
dHRvbV9hdHRhY2g+MTwvYm90dG9tX2F0dGFjaD4KCQk8eHBhZD4wPC94cGFkPgoJCTx5cGFkPjA8
L3lwYWQ+CgkJPHhleHBhbmQ+RmFsc2U8L3hleHBhbmQ+CgkJPHlleHBhbmQ+RmFsc2U8L3lleHBh
bmQ+CgkJPHhzaHJpbms+RmFsc2U8L3hzaHJpbms+CgkJPHlzaHJpbms+RmFsc2U8L3lzaHJpbms+
CgkJPHhmaWxsPlRydWU8L3hmaWxsPgoJCTx5ZmlsbD5GYWxzZTwveWZpbGw+CgkgICAgICA8L2No
aWxkPgoJICAgIDwvd2lkZ2V0PgoKCSAgICA8d2lkZ2V0PgoJICAgICAgPGNsYXNzPkd0a0VudHJ5
PC9jbGFzcz4KCSAgICAgIDxuYW1lPmVudHJ5NjwvbmFtZT4KCSAgICAgIDxjYW5fZm9jdXM+VHJ1
ZTwvY2FuX2ZvY3VzPgoJICAgICAgPGVkaXRhYmxlPkZhbHNlPC9lZGl0YWJsZT4KCSAgICAgIDx0
ZXh0X3Zpc2libGU+VHJ1ZTwvdGV4dF92aXNpYmxlPgoJICAgICAgPHRleHRfbWF4X2xlbmd0aD4w
PC90ZXh0X21heF9sZW5ndGg+CgkgICAgICA8dGV4dD4gIDAyLzIxLzIwMDIgICAgICAgICAgICAg
ICAgICAgICAxMjIgICAgICAgICAgICAgICAgICBDYXNoIFdpdGhkcmF3YWwgICAgICBFeHBlbnNl
czpDYXNoIFdpdGhkcmF3YWwgICAgICAgICBjICAgICAgICAgICAgICAgICAgICAgIDIwMC4wMDwv
dGV4dD4KCSAgICAgIDxjaGlsZD4KCQk8bGVmdF9hdHRhY2g+MDwvbGVmdF9hdHRhY2g+CgkJPHJp
Z2h0X2F0dGFjaD42PC9yaWdodF9hdHRhY2g+CgkJPHRvcF9hdHRhY2g+MTwvdG9wX2F0dGFjaD4K
CQk8Ym90dG9tX2F0dGFjaD4yPC9ib3R0b21fYXR0YWNoPgoJCTx4cGFkPjA8L3hwYWQ+CgkJPHlw
YWQ+MDwveXBhZD4KCQk8eGV4cGFuZD5UcnVlPC94ZXhwYW5kPgoJCTx5ZXhwYW5kPkZhbHNlPC95
ZXhwYW5kPgoJCTx4c2hyaW5rPkZhbHNlPC94c2hyaW5rPgoJCTx5c2hyaW5rPkZhbHNlPC95c2hy
aW5rPgoJCTx4ZmlsbD5UcnVlPC94ZmlsbD4KCQk8eWZpbGw+RmFsc2U8L3lmaWxsPgoJICAgICAg
PC9jaGlsZD4KCSAgICA8L3dpZGdldD4KCSAgPC93aWRnZXQ+Cgk8L3dpZGdldD4KCgk8d2lkZ2V0
PgoJICA8Y2xhc3M+R3RrUmFkaW9CdXR0b248L2NsYXNzPgoJICA8bmFtZT5yYWRpb2J1dHRvbjEz
PC9uYW1lPgoJICA8Y2FuX2ZvY3VzPlRydWU8L2Nhbl9mb2N1cz4KCSAgPGxhYmVsPlBvc3Rwb25l
IFRoaXMgVHJhbnNhY3Rpb248L2xhYmVsPgoJICA8YWN0aXZlPkZhbHNlPC9hY3RpdmU+CgkgIDxk
cmF3X2luZGljYXRvcj5UcnVlPC9kcmF3X2luZGljYXRvcj4KCSAgPGNoaWxkPgoJICAgIDxwYWRk
aW5nPjA8L3BhZGRpbmc+CgkgICAgPGV4cGFuZD5GYWxzZTwvZXhwYW5kPgoJICAgIDxmaWxsPkZh
bHNlPC9maWxsPgoJICA8L2NoaWxkPgoJPC93aWRnZXQ+CgoJPHdpZGdldD4KCSAgPGNsYXNzPkd0
a1JhZGlvQnV0dG9uPC9jbGFzcz4KCSAgPG5hbWU+cmFkaW9idXR0b24xMjwvbmFtZT4KCSAgPGNh
bl9mb2N1cz5UcnVlPC9jYW5fZm9jdXM+CgkgIDxsYWJlbD5SZXBsYWNlIFRoaXMgVHJhbnNhY3Rp
b248L2xhYmVsPgoJICA8YWN0aXZlPkZhbHNlPC9hY3RpdmU+CgkgIDxkcmF3X2luZGljYXRvcj5U
cnVlPC9kcmF3X2luZGljYXRvcj4KCSAgPGNoaWxkPgoJICAgIDxwYWRkaW5nPjA8L3BhZGRpbmc+
CgkgICAgPGV4cGFuZD5GYWxzZTwvZXhwYW5kPgoJICAgIDxmaWxsPkZhbHNlPC9maWxsPgoJICA8
L2NoaWxkPgoJPC93aWRnZXQ+CiAgICAgIDwvd2lkZ2V0PgogICAgPC93aWRnZXQ+CgogICAgPHdp
ZGdldD4KICAgICAgPGNsYXNzPkd0a0hTZXBhcmF0b3I8L2NsYXNzPgogICAgICA8bmFtZT5oc2Vw
YXJhdG9yMTwvbmFtZT4KICAgICAgPGNoaWxkPgoJPHBhZGRpbmc+MDwvcGFkZGluZz4KCTxleHBh
bmQ+RmFsc2U8L2V4cGFuZD4KCTxmaWxsPlRydWU8L2ZpbGw+CiAgICAgIDwvY2hpbGQ+CiAgICA8
L3dpZGdldD4KCiAgICA8d2lkZ2V0PgogICAgICA8Y2xhc3M+R3RrSEJ1dHRvbkJveDwvY2xhc3M+
CiAgICAgIDxuYW1lPmhidXR0b25ib3gyPC9uYW1lPgogICAgICA8Ym9yZGVyX3dpZHRoPjQ8L2Jv
cmRlcl93aWR0aD4KICAgICAgPGxheW91dF9zdHlsZT5HVEtfQlVUVE9OQk9YX1NQUkVBRDwvbGF5
b3V0X3N0eWxlPgogICAgICA8c3BhY2luZz44PC9zcGFjaW5nPgogICAgICA8Y2hpbGRfbWluX3dp
ZHRoPjg1PC9jaGlsZF9taW5fd2lkdGg+CiAgICAgIDxjaGlsZF9taW5faGVpZ2h0PjI3PC9jaGls
ZF9taW5faGVpZ2h0PgogICAgICA8Y2hpbGRfaXBhZF94Pjc8L2NoaWxkX2lwYWRfeD4KICAgICAg
PGNoaWxkX2lwYWRfeT4wPC9jaGlsZF9pcGFkX3k+CiAgICAgIDxjaGlsZD4KCTxwYWRkaW5nPjA8
L3BhZGRpbmc+Cgk8ZXhwYW5kPkZhbHNlPC9leHBhbmQ+Cgk8ZmlsbD5UcnVlPC9maWxsPgogICAg
ICA8L2NoaWxkPgoKICAgICAgPHdpZGdldD4KCTxjbGFzcz5HdGtCdXR0b248L2NsYXNzPgoJPG5h
bWU+YnV0dG9uMTA8L25hbWU+Cgk8Y2FuX2RlZmF1bHQ+VHJ1ZTwvY2FuX2RlZmF1bHQ+Cgk8Y2Fu
X2ZvY3VzPlRydWU8L2Nhbl9mb2N1cz4KCTxzdG9ja19idXR0b24+R05PTUVfU1RPQ0tfQlVUVE9O
X0hFTFA8L3N0b2NrX2J1dHRvbj4KCTxyZWxpZWY+R1RLX1JFTElFRl9OT1JNQUw8L3JlbGllZj4K
ICAgICAgPC93aWRnZXQ+CgogICAgICA8d2lkZ2V0PgoJPGNsYXNzPkd0a0J1dHRvbjwvY2xhc3M+
Cgk8bmFtZT5idXR0b24xMTwvbmFtZT4KCTxjYW5fZGVmYXVsdD5UcnVlPC9jYW5fZGVmYXVsdD4K
CTxjYW5fZm9jdXM+VHJ1ZTwvY2FuX2ZvY3VzPgoJPHN0b2NrX2J1dHRvbj5HTk9NRV9TVE9DS19C
VVRUT05fQVBQTFk8L3N0b2NrX2J1dHRvbj4KCTxyZWxpZWY+R1RLX1JFTElFRl9OT1JNQUw8L3Jl
bGllZj4KICAgICAgPC93aWRnZXQ+CgogICAgICA8d2lkZ2V0PgoJPGNsYXNzPkd0a0J1dHRvbjwv
Y2xhc3M+Cgk8bmFtZT5idXR0b24xMjwvbmFtZT4KCTxjYW5fZGVmYXVsdD5UcnVlPC9jYW5fZGVm
YXVsdD4KCTxjYW5fZm9jdXM+VHJ1ZTwvY2FuX2ZvY3VzPgoJPHN0b2NrX2J1dHRvbj5HTk9NRV9T
VE9DS19CVVRUT05fQ0FOQ0VMPC9zdG9ja19idXR0b24+Cgk8cmVsaWVmPkdUS19SRUxJRUZfTk9S
TUFMPC9yZWxpZWY+CiAgICAgIDwvd2lkZ2V0PgoKICAgICAgPHdpZGdldD4KCTxjbGFzcz5HdGtC
dXR0b248L2NsYXNzPgoJPG5hbWU+YnV0dG9uMTM8L25hbWU+Cgk8Y2FuX2RlZmF1bHQ+VHJ1ZTwv
Y2FuX2RlZmF1bHQ+Cgk8Y2FuX2ZvY3VzPlRydWU8L2Nhbl9mb2N1cz4KCTxzdG9ja19idXR0b24+
R05PTUVfU1RPQ0tfQlVUVE9OX09LPC9zdG9ja19idXR0b24+Cgk8cmVsaWVmPkdUS19SRUxJRUZf
Tk9STUFMPC9yZWxpZWY+CiAgICAgIDwvd2lkZ2V0PgogICAgPC93aWRnZXQ+CiAgPC93aWRnZXQ+
Cjwvd2lkZ2V0PgoKPC9HVEstSW50ZXJmYWNlPgo=

--=-eW6tX94AtNTHgv2qDmwV
Content-Type: text/sanitizer-log; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="sanitizer.log"

This message has been 'sanitized'.  This means that potentially
dangerous content has been rewritten or removed.  The following
log describes which actions were taken.

Sanitizer (start="1037958582"):
  Part (pos="1032"):
    SanitizeFile (filename="unnamed.txt", mimetype="text/plain"):
      Match (rule="2"):
        Enforced policy: accept

  Part (pos="4185"):
    SanitizeFile (filename="transaction-matcher.glade", mimetype="application/x-glade"):
      Match (rule="default"):
        Enforced policy: defang

      Replaced mime type with: application/DEFANGED-10
      Replaced file name with: transaction-matcher_glade.DEFANGED-10

  Total modifications so far: 1


Anomy 0.0.0 : Sanitizer.pm
$Id: Sanitizer.pm,v 1.54 2002/02/15 16:59:07 bre Exp $

--=-eW6tX94AtNTHgv2qDmwV--