IEEE Invalid Operation (TRAPS 13) Quiz
Georgia Miller
Georgia Miller <georgia_miller@mail.gfps.k12.mt.us>
17 Feb 2005 09:49:34 -0700
--====51515554505057505252===1
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="iso-8859-1"
Here is the solution and explanation of the IEEE invalid operation error I =
was getting in Quiz. This is from Cognos Customer Support. I did what it =
suggested, changed the Defines for T-Amount and D-Enc-Amount to FLOAT SIZE =
8 instead of Integer Signed Size 8, and now it works. I am no longer =
getting the IEEE error.
Thanks for everyone's help.
Georgia Miller
--------------------------------------
Date: 2/17/2005 7:50 AM
*****************************************************************
Thank you for contacting Cognos Customer Support.
The following message was sent to you by Steve Bourgeois
Ms. Miller,
=A0=A0=A0=A0=A0=A0=A0 Our senior HP specialist gave me a hand with your =
case, and here is the detailed explanantion of the problem and a few =
solutions:
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Patrick,
One problem I see with the QUIZ code (which is probably the cause of the =
abort) is that the three passes are not consistent in the format of the =
data that they're writing into the subfile.=A0 This problem does not exist =
in the original QTP source.
In both of the QUIZ examples (APZMTDT2 and APZYTDT2), there are problems =
with the 8th and 10th items.=A0 The 8th is always based on the item T-=
AMOUNT (an 8 byte integer) and the 10th is always based on D-ENC-AMOUNT (=
also an 8 byte integer), but here's what's included by the three passes:
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 8th =
item=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 10th item
pass 1=A0=A0=A0=A0=A0=A0 T-AMOUNT =
SUBTOTAL=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 D-ENC-AMOUNT
pass 2=A0=A0=A0=A0=A0=A0 T-=
AMOUNT=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 D-=
ENC-AMOUNT SUBTOTAL
pass 3=A0=A0=A0=A0=A0=A0 T-=
AMOUNT=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 D-=
ENC-AMOUNT
When QUIZ writes "item SUBTOTAL"s=A0 to a subfile, they are always written =
as 8 byte FLOATING POINT values.=A0 If you use QSHOW to do a SHOW SUBFILE =
SBAPHIST, you'll see that the subfile dictionary metadata (which was =
created when pass 1 was executed) indicates that T-AMOUNT is stored as an =
IEEE FLOAT, while D-ENC-AMOUNT is stored as an INTEGER.=A0 The data in the =
records written into the subfile by pass 1 are consistent with the =
information in the subfile dictionary.
When the second pass is executed, it adds records to the subfile with T-=
AMOUNT in integer format and D-ENC-AMOUNT SUBTOTAL in floating point =
format, both of which are inconsistent with the information in the subfile =
dictionary.=A0 The third pass adds records with both of these values =
stored in integer format.
Now, when we try to report the values in the subfile, the integer values =
stored for T-AMOUNT in passes 2 and 3 will be interpretted as if they're =
stored in floating point format and the floating point values stored in D-=
ENC-AMOUNT by pass 2 will be interpretted as if they're stored in integer =
format.=A0 In most cases, the reported values will just be garbage, but it'=
s possible for things to blow up if the values stored using the wrong =
format don't represent valid values when interpretted using the format =
from the subfile dictionary.
If there is a requirement for some passes to store SUBTOTALs for each of =
these items in the subfile using QUIZ, then all three passes will have to =
make sure that they're storing 8 byte floating point values.=A0 This can =
be done by changing the declaration of the DEFINEs T-AMOUNT and D-ENC-=
AMOUNT so that their type is FLOAT SIZE 8 instead of INTEGER SIGNED SIZE 8.=
Can this change be made without affecting the results of the application?=
=A0 If the numbers that must be stored are sufficiently large, there might =
be problems.=A0 While an 8 byte integer can accurately store values that =
are up to 18 digits long, an 8 byte IEEE float can only hold exact =
representations of integer values that are up to 15 digits long.
The reason that this problem didn't exist in the original QTP code is that =
the ITEM ... SUBTOTAL ... statements for T-AMOUNT and T-ENC-AMOUNT cause =
QTP to accumulate the subtotal values in these INTEGER temporary items and =
then, these items are written out out to the subfile -- always in integer =
format.
=A0=A0=A0 Mark=A0
--====51515554505057505252===1
Content-Transfer-Encoding: base64
Content-Type: text/html; name="Text10.htm";
x-mac-creator=556DC536;
x-mac-type=54455854
PEhUTUwgeG1sbnM6ZVhjbGFpbWVyPSJodHRwOi8vd3d3LmV4Y2xhaW1lci5jby51ayI+DTxIRUFE
Pg08TUVUQSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hh
cnNldD1VVEYtMTYiPg08TUVUQSBIVFRQLUVRVUlWPSJDb250ZW50LVR5cGUiIENPTlRFTlQ9InRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtMTYiPg08VElUTEU+W0NhbGwgUmVmZXJlbmNlOiAyMjgwMTM0
XSBzYzwvVElUTEU+DTwvSEVBRD48Qk9EWSA+PERJVj4NPCEtLSBDb252ZXJ0ZWQgZnJvbSB0ZXh0
L3J0ZiBmb3JtYXQgLS0+DQ08UD48Rk9OVCBDT0xPUj0iIzAwMDBGRiIgU0laRT0yPkNvZ25vcyBT
dXBwb3J0IEFjY2VsZXJhdG9yIGhhcyBhcnJpdmVkLCB0byBhY2NlbGVyYXRlIHlvdXIgc3VwcG9y
dCBleHBlcmllbmNlIGNsaWNrIGhlcmU6PC9GT05UPg0NPEJSPjxGT05UIENPTE9SPSIjMDAwMEZG
IiBTSVpFPTI+PEEgSFJFRj0iaHR0cDovL3N1cHBvcnQuY29nbm9zLmNvbS9lbi9zdXBwb3J0L2Nz
YS9pbmRleC5odG1sIj5odHRwOi8vc3VwcG9ydC5jb2dub3MuY29tL2VuL3N1cHBvcnQvY3NhL2lu
ZGV4Lmh0bWw8L0E+PC9GT05UPg0NPEJSPjxGT05UIENPTE9SPSIjMDAwMEZGIiBTSVpFPTI+Kioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKio8L0ZPTlQ+DQ08QlI+PEZPTlQgQ09MT1I9IiMwMDAwRkYiIFNJWkU9Mj5UaGFuayB5b3Ug
Zm9yIGNvbnRhY3RpbmcgQ29nbm9zIEN1c3RvbWVyIFN1cHBvcnQuPC9GT05UPg08L1A+DQ08UD48
Rk9OVCBDT0xPUj0iIzAwMDBGRiIgU0laRT0yPlRvIGVuc3VyZSB0aGF0IHlvdXIgcmVwbHkgaXMg
YWRkZWQgdG8geW91ciBvbmdvaW5nIGNhbGwsIHJlcGx5IHRvIHRoaXMgZW1haWwgYW5kIGZvbGxv
dyB0aGVzZSBzdGVwczo8L0ZPTlQ+DQ08QlI+PEZPTlQgQ09MT1I9IiMwMDAwRkYiIFNJWkU9Mj4x
LiBSZW1vdmUgdGhlIG9yaWdpbmFsIHRleHQgb2YgdGhlIG1lc3NhZ2UgZnJvbSB5b3VyIHJlcGx5
LjwvRk9OVD4NDTxCUj48Rk9OVCBDT0xPUj0iIzAwMDBGRiIgU0laRT0yPjIuIEluY2x1ZGUgb25s
eSB0aGUgZm9sbG93aW5nIGxpbmUgaW4gdGhlIFN1YmplY3Qgb2YgeW91ciBNZXNzYWdlOjwvRk9O
VD4NPC9QPg0NPFA+PEI+PEZPTlQgQ09MT1I9IiMwMDAwMDAiIEZBQ0U9IkFyaWFsIj5bQ2FsbCBS
ZWZlcmVuY2U6IDIyODAxMzRdPC9GT05UPjwvQj4NPC9QPg0NPFA+PFU+PEZPTlQgQ09MT1I9IiMw
MDAwMDAiIEZBQ0U9IkFyaWFsIj5UaGUgZm9sbG93aW5nIG1lc3NhZ2Ugd2FzIHNlbnQgdG8geW91
IGJ5IFN0ZXZlIEJvdXJnZW9pczwvRk9OVD48L1U+DTwvUD4NDTxQPjxGT05UIFNJWkU9MiBGQUNF
PSJDb3VyaWVyIE5ldyI+TXMuIE1pbGxlciw8L0ZPTlQ+DTwvUD4NDTxQPiZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8Rk9OVCBTSVpFPTIgRkFDRT0iQ291cmllciBO
ZXciPk91ciBzZW5pb3IgSFAgc3BlY2lhbGlzdCBnYXZlIG1lIGEgaGFuZCB3aXRoIHlvdXIgY2Fz
ZSwgYW5kIGhlcmUgaXMgdGhlIGRldGFpbGVkIGV4cGxhbmFudGlvbiBvZiB0aGUgcHJvYmxlbSBh
bmQgYSBmZXcgc29sdXRpb25zOjwvRk9OVD48L1A+DQ08UD48Rk9OVCBTSVpFPTIgRkFDRT0iQ291
cmllciBOZXciPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT08L0ZPTlQ+DQ08
QlI+PEZPTlQgU0laRT0yIEZBQ0U9IkNvdXJpZXIgTmV3Ij5QYXRyaWNrLDwvRk9OVD4NPC9QPg0N
PFA+PEZPTlQgU0laRT0yIEZBQ0U9IkNvdXJpZXIgTmV3Ij5PbmUgcHJvYmxlbSBJIHNlZSB3aXRo
IHRoZSBRVUlaIGNvZGUgKHdoaWNoIGlzIHByb2JhYmx5IHRoZSBjYXVzZSBvZiB0aGUgYWJvcnQp
IGlzIHRoYXQgdGhlIHRocmVlIHBhc3NlcyBhcmUgbm90IGNvbnNpc3RlbnQgaW4gdGhlIGZvcm1h
dCBvZiB0aGUgZGF0YSB0aGF0IHRoZXkncmUgd3JpdGluZyBpbnRvIHRoZSBzdWJmaWxlLiZuYnNw
OyBUaGlzIHByb2JsZW0gZG9lcyBub3QgZXhpc3QgaW4gdGhlIG9yaWdpbmFsIFFUUCBzb3VyY2Uu
PC9GT05UPjwvUD4NDTxQPjxGT05UIFNJWkU9MiBGQUNFPSJDb3VyaWVyIE5ldyI+SW4gYm90aCBv
ZiB0aGUgUVVJWiBleGFtcGxlcyAoQVBaTVREVDIgYW5kIEFQWllURFQyKSwgdGhlcmUgYXJlIHBy
b2JsZW1zIHdpdGggdGhlIDh0aCBhbmQgMTB0aCBpdGVtcy4mbmJzcDsgVGhlIDh0aCBpcyBhbHdh
eXMgYmFzZWQgb24gdGhlIGl0ZW0gVC1BTU9VTlQgKGFuIDggYnl0ZSBpbnRlZ2VyKSBhbmQgdGhl
IDEwdGggaXMgYWx3YXlzIGJhc2VkIG9uIEQtRU5DLUFNT1VOVCAoYWxzbyBhbiA4IGJ5dGUgaW50
ZWdlciksIGJ1dCBoZXJlJ3Mgd2hhdCdzIGluY2x1ZGVkIGJ5IHRoZSB0aHJlZSBwYXNzZXM6PC9G
T05UPjwvUD4NDTxQPjxGT05UIFNJWkU9MiBGQUNFPSJDb3VyaWVyIE5ldyI+Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDh0aCBpdGVtJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDEwdGggaXRlbTwvRk9O
VD4NPC9QPg0NPFA+PEZPTlQgU0laRT0yIEZBQ0U9IkNvdXJpZXIgTmV3Ij5wYXNzIDEmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgVC1BTU9VTlQgU1VCVE9UQUwmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsgRC1FTkMtQU1PVU5UPC9GT05UPg0NPEJSPjxGT05UIFNJWkU9MiBGQUNFPSJDb3VyaWVy
IE5ldyI+cGFzcyAyJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFQtQU1PVU5U
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7IEQtRU5DLUFNT1VOVCBTVUJUT1RBTDwvRk9OVD4NDTxCUj48Rk9OVCBTSVpF
PTIgRkFDRT0iQ291cmllciBOZXciPnBhc3MgMyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyBULUFNT1VOVCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBELUVOQy1BTU9VTlQ8L0ZPTlQ+DTwvUD4NDTxQ
PjxGT05UIFNJWkU9MiBGQUNFPSJDb3VyaWVyIE5ldyI+V2hlbiBRVUlaIHdyaXRlcyAmcXVvdDtp
dGVtIFNVQlRPVEFMJnF1b3Q7cyZuYnNwOyB0byBhIHN1YmZpbGUsIHRoZXkgYXJlIGFsd2F5cyB3
cml0dGVuIGFzIDggYnl0ZSBGTE9BVElORyBQT0lOVCB2YWx1ZXMuJm5ic3A7IElmIHlvdSB1c2Ug
UVNIT1cgdG8gZG8gYSBTSE9XIFNVQkZJTEUgU0JBUEhJU1QsIHlvdSdsbCBzZWUgdGhhdCB0aGUg
c3ViZmlsZSBkaWN0aW9uYXJ5IG1ldGFkYXRhICh3aGljaCB3YXMgY3JlYXRlZCB3aGVuIHBhc3Mg
MSB3YXMgZXhlY3V0ZWQpIGluZGljYXRlcyB0aGF0IFQtQU1PVU5UIGlzIHN0b3JlZCBhcyBhbiBJ
RUVFIEZMT0FULCB3aGlsZSBELUVOQy1BTU9VTlQgaXMgc3RvcmVkIGFzIGFuIElOVEVHRVIuJm5i
c3A7IFRoZSBkYXRhIGluIHRoZSByZWNvcmRzIHdyaXR0ZW4gaW50byB0aGUgc3ViZmlsZSBieSBw
YXNzIDEgYXJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIHN1YmZpbGUg
ZGljdGlvbmFyeS48L0ZPTlQ+PC9QPg0NPFA+PEZPTlQgU0laRT0yIEZBQ0U9IkNvdXJpZXIgTmV3
Ij5XaGVuIHRoZSBzZWNvbmQgcGFzcyBpcyBleGVjdXRlZCwgaXQgYWRkcyByZWNvcmRzIHRvIHRo
ZSBzdWJmaWxlIHdpdGggVC1BTU9VTlQgaW4gaW50ZWdlciBmb3JtYXQgYW5kIEQtRU5DLUFNT1VO
VCBTVUJUT1RBTCBpbiBmbG9hdGluZyBwb2ludCBmb3JtYXQsIGJvdGggb2Ygd2hpY2ggYXJlIGlu
Y29uc2lzdGVudCB3aXRoIHRoZSBpbmZvcm1hdGlvbiBpbiB0aGUgc3ViZmlsZSBkaWN0aW9uYXJ5
LiZuYnNwOyBUaGUgdGhpcmQgcGFzcyBhZGRzIHJlY29yZHMgd2l0aCBib3RoIG9mIHRoZXNlIHZh
bHVlcyBzdG9yZWQgaW4gaW50ZWdlciBmb3JtYXQuPC9GT05UPjwvUD4NDTxQPjxGT05UIFNJWkU9
MiBGQUNFPSJDb3VyaWVyIE5ldyI+Tm93LCB3aGVuIHdlIHRyeSB0byByZXBvcnQgdGhlIHZhbHVl
cyBpbiB0aGUgc3ViZmlsZSwgdGhlIGludGVnZXIgdmFsdWVzIHN0b3JlZCBmb3IgVC1BTU9VTlQg
aW4gcGFzc2VzIDIgYW5kIDMgd2lsbCBiZSBpbnRlcnByZXR0ZWQgYXMgaWYgdGhleSdyZSBzdG9y
ZWQgaW4gZmxvYXRpbmcgcG9pbnQgZm9ybWF0IGFuZCB0aGUgZmxvYXRpbmcgcG9pbnQgdmFsdWVz
IHN0b3JlZCBpbiBELUVOQy1BTU9VTlQgYnkgcGFzcyAyIHdpbGwgYmUgaW50ZXJwcmV0dGVkIGFz
IGlmIHRoZXkncmUgc3RvcmVkIGluIGludGVnZXIgZm9ybWF0LiZuYnNwOyBJbiBtb3N0IGNhc2Vz
LCB0aGUgcmVwb3J0ZWQgdmFsdWVzIHdpbGwganVzdCBiZSBnYXJiYWdlLCBidXQgaXQncyBwb3Nz
aWJsZSBmb3IgdGhpbmdzIHRvIGJsb3cgdXAgaWYgdGhlIHZhbHVlcyBzdG9yZWQgdXNpbmcgdGhl
IHdyb25nIGZvcm1hdCBkb24ndCByZXByZXNlbnQgdmFsaWQgdmFsdWVzIHdoZW4gaW50ZXJwcmV0
dGVkIHVzaW5nIHRoZSBmb3JtYXQgZnJvbSB0aGUgc3ViZmlsZSBkaWN0aW9uYXJ5LjwvRk9OVD48
L1A+DQ08UD48Rk9OVCBTSVpFPTIgRkFDRT0iQ291cmllciBOZXciPklmIHRoZXJlIGlzIGEgcmVx
dWlyZW1lbnQgZm9yIHNvbWUgcGFzc2VzIHRvIHN0b3JlIFNVQlRPVEFMcyBmb3IgZWFjaCBvZiB0
aGVzZSBpdGVtcyBpbiB0aGUgc3ViZmlsZSB1c2luZyBRVUlaLCB0aGVuIGFsbCB0aHJlZSBwYXNz
ZXMgd2lsbCBoYXZlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZXkncmUgc3RvcmluZyA4IGJ5dGUgZmxv
YXRpbmcgcG9pbnQgdmFsdWVzLiZuYnNwOyBUaGlzIGNhbiBiZSBkb25lIGJ5IGNoYW5naW5nIHRo
ZSBkZWNsYXJhdGlvbiBvZiB0aGUgREVGSU5FcyBULUFNT1VOVCBhbmQgRC1FTkMtQU1PVU5UIHNv
IHRoYXQgdGhlaXIgdHlwZSBpcyBGTE9BVCBTSVpFIDggaW5zdGVhZCBvZiBJTlRFR0VSIFNJR05F
RCBTSVpFIDguPC9GT05UPjwvUD4NDTxQPjxGT05UIFNJWkU9MiBGQUNFPSJDb3VyaWVyIE5ldyI+
Q2FuIHRoaXMgY2hhbmdlIGJlIG1hZGUgd2l0aG91dCBhZmZlY3RpbmcgdGhlIHJlc3VsdHMgb2Yg
dGhlIGFwcGxpY2F0aW9uPyZuYnNwOyBJZiB0aGUgbnVtYmVycyB0aGF0IG11c3QgYmUgc3RvcmVk
IGFyZSBzdWZmaWNpZW50bHkgbGFyZ2UsIHRoZXJlIG1pZ2h0IGJlIHByb2JsZW1zLiZuYnNwOyBX
aGlsZSBhbiA4IGJ5dGUgaW50ZWdlciBjYW4gYWNjdXJhdGVseSBzdG9yZSB2YWx1ZXMgdGhhdCBh
cmUgdXAgdG8gMTggZGlnaXRzIGxvbmcsIGFuIDggYnl0ZSBJRUVFIGZsb2F0IGNhbiBvbmx5IGhv
bGQgZXhhY3QgcmVwcmVzZW50YXRpb25zIG9mIGludGVnZXIgdmFsdWVzIHRoYXQgYXJlIHVwIHRv
IDE1IGRpZ2l0cyBsb25nLjwvRk9OVD48L1A+DQ08UD48Rk9OVCBTSVpFPTIgRkFDRT0iQ291cmll
ciBOZXciPlRoZSByZWFzb24gdGhhdCB0aGlzIHByb2JsZW0gZGlkbid0IGV4aXN0IGluIHRoZSBv
cmlnaW5hbCBRVFAgY29kZSBpcyB0aGF0IHRoZSBJVEVNIC4uLiBTVUJUT1RBTCAuLi4gc3RhdGVt
ZW50cyBmb3IgVC1BTU9VTlQgYW5kIFQtRU5DLUFNT1VOVCBjYXVzZSBRVFAgdG8gYWNjdW11bGF0
ZSB0aGUgc3VidG90YWwgdmFsdWVzIGluIHRoZXNlIElOVEVHRVIgdGVtcG9yYXJ5IGl0ZW1zIGFu
ZCB0aGVuLCB0aGVzZSBpdGVtcyBhcmUgd3JpdHRlbiBvdXQgb3V0IHRvIHRoZSBzdWJmaWxlIC0t
IGFsd2F5cyBpbiBpbnRlZ2VyIGZvcm1hdC48L0ZPTlQ+PC9QPg0NPFA+PEZPTlQgU0laRT0yIEZB
Q0U9IkNvdXJpZXIgTmV3Ij4mbmJzcDsmbmJzcDsmbmJzcDsgTWFyazwvRk9OVD4gDTwvUD4NDTwv
RElWPg08RElWPiZuYnNwOzwvRElWPg08RElWPg08UD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDs8Rk9OVCBGQUNFPSJBcmlhbCIgU0laRT0iMiI+VGhpcyBtZXNzYWdl
IG1heSBjb250YWluIHByaXZpbGVnZWQgYW5kL29yIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbi4m
bmJzcDsgSWYgeW91IGhhdmUgcmVjZWl2ZWQgdGhpcyBlLW1haWwgaW4gZXJyb3Igb3IgYXJlIG5v
dCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50LCB5b3UgbWF5IG5vdCB1c2UsIGNvcHksIGRpc3NlbWlu
YXRlIG9yIGRpc3RyaWJ1dGUgaXQ7IGRvIG5vdCBvcGVuIGFueSBhdHRhY2htZW50cywgZGVsZXRl
IGl0IGltbWVkaWF0ZWx5IGZyb20geW91ciBzeXN0ZW0gYW5kIG5vdGlmeSB0aGUgc2VuZGVyIHBy
b21wdGx5IGJ5IGUtbWFpbCB0aGF0IHlvdSBoYXZlIGRvbmUgc28uJm5ic3A7IFRoYW5rIHlvdS48
L0ZPTlQ+DTwvUD4NPC9ESVY+PC9CT0RZPjwvSFRNTD4N
--====51515554505057505252===1--