<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>13973</bug_id>
          
          <creation_ts>2020-07-07 06:24:34 +0000</creation_ts>
          <short_desc>change siginfo data format to json for reproducibility? (siginfo files currently not reproducible)</short_desc>
          <delta_ts>2021-10-14 21:55:37 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>BitBake</product>
          <component>bitbake</component>
          <version>unspecified</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium+</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>4.0 M1</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yann Dirson">ydirson</reporter>
          <assigned_to name="Richard Purdie">richard.purdie</assigned_to>
          <cc>poky.bs.watcher</cc>
    
    <cc>poky.watcher</cc>
    
    <cc>randy.macleod</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>No (bug/feature does not impact docs)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>87703</commentid>
    <comment_count>0</comment_count>
      <attachid>4700</attachid>
    <who name="Yann Dirson">ydirson</who>
    <bug_when>2020-07-07 06:24:34 +0000</bug_when>
    <thetext>Created attachment 4700
sample siginfo files showing the problem

Building using SSTATE_MIRRORS providing 99% of the artifacts still occasionally results in the local sstate-cache being loaded with rm_work.tgz.siginfo files.
It is likely the cause of a behaviour I have observed even without SSTATE_MIRRORS, which shows virtually all such files to be retransfered when rsync&apos;ing the sstate for public consumption - the SSTATE_MIRRORS makes it easier to characterize, though.

bitbake-dumpsigs|sort seems to only show differences in ordering of the dependency lists.

See example in attachment:

$ ls -l sstate-cache-3/a6/sstate:libsndfile1:dbfp4-shadow-linux:1.0.28:r0:dbfp4:3:a62ff980ff61c8724c91a5a8c281295e_rm_work.tgz.siginfo sstate-cache-3+dev/a6/sstate:libsndfile1:dbfp4-shadow-linux:1.0.28:r0:dbfp4:3:a62ff980ff61c8724c91a5a8c281295e_rm_work.tgz.siginfo
-rw-rw-r-- 1 gitlab-runner gitlab-runner 22019 Jul  7 11:52 sstate-cache-3/a6/sstate:libsndfile1:dbfp4-shadow-linux:1.0.28:r0:dbfp4:3:a62ff980ff61c8724c91a5a8c281295e_rm_work.tgz.siginfo
-rw-rw-r-- 1 gitlab-runner gitlab-runner 22043 Jul  7 12:52 sstate-cache-3+dev/a6/sstate:libsndfile1:dbfp4-shadow-linux:1.0.28:r0:dbfp4:3:a62ff980ff61c8724c91a5a8c281295e_rm_work.tgz.siginfo

$ bitbake-diffsigs ...
NOTE: Starting bitbake server...

$</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87728</commentid>
    <comment_count>1</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2020-07-09 07:59:30 +0000</bug_when>
    <thetext>Can you give a little more detail about what you believe the issue is here please? I&apos;m struggling to understand what the problem is exactly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87733</commentid>
    <comment_count>2</comment_count>
    <who name="Yann Dirson">ydirson</who>
    <bug_when>2020-07-09 08:43:59 +0000</bug_when>
    <thetext>Having different sigdata contents causes extra network traffic when rsyncing sstate.  Now if there was a difference for the tools I wouldn&apos;t object, but the fact that bitbake-diffsigs claims to see no difference hints for a bug.

Additionally, this hides in a haystack those sigdata that really changed: if I exlude *siginfo* from a transfer to check for changes that should not be there, I&apos;ll miss those that really change for a reason.

Here I have a base sstate from the OS team, and an app layer whose artifacts get into their own sstate.  This app sstate should not contain stuff coming from the app layer, though it is cluttered with hundred of siginfo files that look essentially identical to that in SSTATE_MIRROR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87745</commentid>
    <comment_count>3</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2020-07-12 04:53:06 +0000</bug_when>
    <thetext>Ok, thanks for the info. Please try and clearly explain the issue in bugs as I didn&apos;t understand this one at first.

To restate the issue, the siginfo files are not being written deterministically. This leads to the same file being written with different checksums which in turn causes your multiple rsync issue.

From a quick look at the files, the issue looks like a sorting issue in the dictionaries stored inside the files. The data is the same, pickle is just changing the order (python dicts are unsorted). I need to look further at that to confirm but it seems like a good place to start debugging from.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87746</commentid>
    <comment_count>4</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2020-07-12 06:20:02 +0000</bug_when>
    <thetext>This is looking like it is dict ordering and is hard to fix as either we
change all the dicts to ordered dicts, created with sorting before pickling, or we change from pickle to json format, both of which are fairly invasive.

I do want to clarify that files with the same filename should always be identical as far as diffsigs is concerned. The sstate code simply won&apos;t overwrite any existing files for that reason. There should be therefore no need to overwrite files which already exist in an sstate cache (and out autobuilder and default code never does on recent releases).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87757</commentid>
    <comment_count>5</comment_count>
    <who name="Yann Dirson">ydirson</who>
    <bug_when>2020-07-14 01:11:06 +0000</bug_when>
    <thetext>A less invasive option may be, when the hash is the same as in sstate, to import the pre-existing siginfo and compare it to the one we&apos;re about to read.

But don&apos;t we have a canonical sorting order, used to compute the hash value ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87763</commentid>
    <comment_count>6</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2020-07-15 04:11:52 +0000</bug_when>
    <thetext>We do have a sorting used to compute the hashes so the hashes themselves are fine. When we store the data in dicts and write to disk, python dicts are unsorted though so the on disk format is variable :(.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91762</commentid>
    <comment_count>7</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2021-10-14 21:55:37 +0000</bug_when>
    <thetext>http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=4c33a6e52be775265c871aa2d3b87ed23a0d48da</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>4700</attachid>
            <date>2020-07-07 06:24:34 +0000</date>
            <delta_ts>2020-07-07 06:24:34 +0000</delta_ts>
            <desc>sample siginfo files showing the problem</desc>
            <filename>siginfo.tgz</filename>
            <type>application/x-compressed-tar</type>
            <size>9961</size>
            <attacher name="Yann Dirson">ydirson</attacher>
            
              <data encoding="base64">H4sIABR1BF8AA+w7aXfbVnaKN1ny7qwz7aQvNDOUbHGRSFGLqzQURdkcUySHpGw5HhcGgUcCFgkw
AChZUdhJ9w3tTFtM1+nyof1XPaff+hv6sfc+7CAlL5NMM+eU5zh6293fve/e95BUOpX+tKIq3Yqs
7E99M78M/PK5HPsLv+jfzOLKitdm44uL+cXMFKl8Q/yEfkPd4DVCpjRVNU5b97L5X9GfDuIbNCnw
gkST2TSfT9sj6z25rStiR+7RxXWx3RnkkrrEi+phsicrwxfri6lMaml1XcvYk+vZdT6/1OmsrWY6
nfyisLqylBPWFvllflVYWl1cWlumnNbnDlVtP2V0v0jpcldWOur/tfT///tl2J/5f575/+JKbiX4
F37L2UwmO7WYXcksZnJLK1lYl81mc9kpkvllKMD1/65s9Ph2UhsqCtUmrHvZ/K/o76tzP/ufXbs5
subMiwav74t0oFtPoXe5sFku7bVK1Wa5VrXMM4UG/qdpmRcLzWqptFXagubmbrmyxeGU24QFV9wm
TBTve1PFomXOus3KlreuWHTWXXb625XCPUAz43Trdcu86rUjk3t7/uTenjPpENwues0AucqWs8rr
h9ms7ljmTbtZq7fKO+XPCi2mAYe9eqO0Xd7zuo1CtVLetMxLdrfZapSB3zMo7DlbzMsg4HatwbEF
lnnBle+63QjOXSrWqtvle1yz3CpZ5lkm+kVf6JtuMwhzBQaD/bNMJxd9bdx0m2Govb0Q5a3S5u69
SM9FYPfC2rhuD9ra4HYKdQa1XdittFq7VeD+Its8W3VonkFL3NjerVQiSGbu15ot1/p2uxnq+nuD
dT1bTbNuDZi7xFquUS5UAKBSAZIoxrRn6xtOKyjyZdwiAY2AGYuBDX+jUq4+KDW4+4XmfTDr40oJ
EdbubZe3a2DbncIDGHhnB+Qt7xSK97lWoXGv1OKaj4HcGdxE07XNHxRr9cd2a2t3B1R0uV4oPijc
KzlinEHtXK0/uMc5ht8qgyt9GBpoFjYrJW63Wq42WyAaut2NwALgmgFdC4zVCy1A/l5gBLhq1Gqt
cfww0SrtcOVqsbK7VXIgJywAMo1C47Gz4EwdI0KdkW2WdrdqLp9bOPwQ7OC6xXSjVNgqVbYt891G
qViulzxWqrAHHoL41xo73KNa4wFX2mM84MrwCAfesANafbdZqpSKrVLUMd9HdwkLWgSLAKYPcKZc
3a4BqlajwG0VWoXt3WoR900T1NkqtQrNB9D7LnTulavgAIVmydGpz6E7ieBMgze9kcCyd91BUObE
8Qja8zCOe2IaY0YVd+l5J3q81QL+nP1kb5Srbq8ZGfAc5Io74Oz4a27fix7eiBcZXCSem/gDDtb3
3AHwhZAnzDgT6IIuadcJZ4Ou4E4+hFhQA9XdaNVqleL9QrnKrFirYjDHiOFQvGS3mwDVdHvFYrBX
2bJ7l1kPtqoN+H6wyxlDhSZZdgI7svUZ0NhbzeNMdslv52HyUpvXKdeWFVHW3B6kP6x3M9DjFN6Q
D6i7ZKDRjvwCmGA93YWfxi4AgAe024pqUGy4cyJv8Kx1QVQFmxx9QQUP16ysCL2hSNnUDb/jkZ7G
tJnNvvUcsLhsXolwOAt9ROxMqgLfY2kd65OewQkHnH6ko2Cc2NMprwkSN+ANidMHVADEfd7m+G1F
VdhkSCtX3VGPvtoTg6xfcAW6Yjd81WEd5Yk77WltVqfagSzY0Fch1dSo6HN8RZcNipJzqECwitfv
UoPDJFVHFEe6oCodBvEedAzaFzn7LzdUZINNXHMnvJF3vBHgwRum5hXI9TAdknhdAvyYHv1bWlL7
NB3KBdPtodwT9TTNCuLyYjaXzqTbPV6kya6mDgdpkR6khZ5MFUNPt9UXVE/3qcG7ybSqpwfq/hEb
S2tUkAdUT/aHPUPug+R82s/CA81Fzs6+U+12SlS5gToY9kBTYAywHMnRzlIbeOnkO8vLy5lcrp3p
rK5lBFEUqbDaXrTMf/1WSsEL+3yX2vYli1TMdYQlXuistXM5Ybm9JuZW+Mwqv5LJdmgnY5n/8i0W
gvscZcivictLi5TPtHm6KqzmljNrSyuZzNpadnW1syKsWOa/fytlcLcTuAU6K0giLnbWRBBjJbe8
ssoLK7l8ZnlZWBaynbVcNrcGu+4/vpWSONY41CBacPJgH0TJ5jttPpsVRX6NdkQxv7JChRUwTmcJ
xjOdtjU0r2CoO5QApifrhvUT8Pur9Uaz1HjIYQbHTv8Lm5t2GnR9c5MlKqUGZB8tSDEgwmyXK6Um
yzZwDR67AXCcxHplEw7UHUhNtrZKdUxs6AuDKiJni+rr/uLmJoKWgOa5+7UdAL0eTDww84UZm5er
dj7jn4cXtip2une5Ui5CUusmd5dgBSYy9iRmtNUCoj7XKjUgaz2320R614ssheKqNTz17aUoKmtd
ckSyGZh1i0CkOgsSVWqPbeRn64+wSCzWGiXMq7AmaDQg4/5hAeulTQ6TL0QPzLYc3c46YjgdzJCK
lVIBsrxZhyNbJtQkNm3eZ5jWbflcfVdqxQdbtUdVF03TgWxuPQANNHe3Wa4y3bpfbtpWLTpJ4znb
StOPCo0qY/V8834Ja4or9UIDM/AKZyf/N7FaAA4qnJfTRFJDO/exfmpOH/DaARzDeJBI/2R+HD+e
cLSO0s5h5Py1pHPm9fhxoMAZ8ZolfWBOWdLbZix+HCxIRz2RuCOONUaW9MhMxY8j6esoHT/2M7QR
h8em3OXwVE2JlnTTXIwf27oYRUh0O6pmaLziEXKyTyAkmJcBq5vGwYBmfgbLPgVnHBpyT08BFYOX
FX0uwVZtlwqt3UapmVggif6L7BL+TTp/4Z84P5oNrTvGRSOyQXYVnRqWFDNvelK4KS5QzZk3vGFf
CzfMax7H7sq+eTWkhqQlTSNwSGBU98UxTfO6pwAnHwd8PzDfDmja8U4Y/4e92bNTUyLtkPG0ZU5c
II6zszs4EG8bNgmdX58l8EMAPBJhOJQCzYnz3jzDAwtiMTYEBiKYyRFZIWIKCD3ktbmYHa9i8yl9
0JONudh6zKHggtAe7UMsRiiXqL+ALQIyCt9HDlU9hRRSz1VZmcPWAokhUGzBRTMfApU7Hgh9ATFV
n3ORzYdphEW6s+ETvUNiJDY762CDtDqkNR+LRo2hpvhIbJBbpKoeElgo7DNhcdre88TWuk0QZbex
6gzMToj9tRu+QhMnFJyJeZfHKDAk1J4WZB18fS6yImIQGdkBADyETl8dUIqcgkNEP5QNaS7meHVs
go7RE2VlSF/ZwAHCC0QOW/c0g000iSX9DnpKoBKAsAeFgCVdlv5TaqOnOufMKA0xcADhG05z5/nA
2jt/aWrKNmq5Qwwwnn1mEkZWZlbE0cgNArjZvjwIrE/53oIg8eMIwOguEVVPUNDvExKLD2LoaPHj
enUUI0/vIjolpAy75CMxh9t10gSqA1npEgYEWlAE4NJwGI3QjIVwga8YJONvCpk1RVWh3q6mVCSG
SnhRJAOdDkWVtCHpIbjFh239czpEl0ZGbK0AUezAdnIQ9OWuZJAOL/ccziCy6gJVKOnzR2xHaRSy
OaQBWtMo5IXAPAPuIxqSHJCAtWwe0jZ79AWrB/WNxJhu7eucUcKVoyjxShcsqGp9Hjgx+P4A1QNU
PX6cQQi8oPMj0qaGQTVgqtOjgoFjDqoOD12HIVSyAo4Pe8g4cuYLPV0lPcofIDkskV3MEfmdUdB2
wgB/OQBiQKTPsAgieQbCsw3HIv5OffTM207McZ/hoR5ecNsxX8jLn9t7L3ATNYIlnF0Ac0FjRYAZ
H0CDxJFeaPg2InDkuD0/5vxtMOP+2Ojdu2EcutzFM+D2l9hCYVhvHJu8IQ77/aM3pBLN0r8JAnIf
0Qtqf9CjEyn0D1CJz6ggqdj4EjaBSJLgxPqtMfDxEU/Vt2LPvn7mMUh2dLCCS9dutmFY7nftjl3f
fE77QxxmYf+b0CMr574JxBC9DDVS+Uygc4vUNYrXRG4ETzprk/blEsboE7ARCeJGm1KFDMG2Y5i9
SBWLu83JJGJfr/C3yCOUpQ/RhfieQCBmyxrtHcFJy67U8PTglaMIqP1OSyAw6bKqOOFLhRilHcoQ
Fg5pQiSKcz7Y8S4x6PHsuk1PEB5qcEWMohwKEkbYhMMJroOsxesmWfJoDwIhoCJAJdCmpMdrXZqC
JAt4jyJVO5B48Xj88Po+BFQ6gDUEuIC43TsiwHpAdBCzr2rO2RzcI86CLwPt1O1gz3PD1ISto/VJ
sgO+ffdr3rynhdlfDHP8+Zfwb5Isp0Sr+PHzEfvP1xSTIkxRnRcCR5Hip4+ufiMJiiAGkgPvfMS0
AbbD2HF4izQo1oewJWBf9NSubufMuKX9BB0TQsjl+A44CJG7kDLQAAbMZIYQJXDXMcdC33Eyo47a
A1/BDVfdbi6ls4TFEs3fayzHiyN7G7DnGVBiYpKH4mode+nSJ4RdZSnDXo98+SUxtEBaTXuA8yPC
bOXHlhgYravRAUl+TpKHMAF4YqeTmZgEWhKPeXTwckA3NHlgST/F0jjwsDDCSzJLmsMK3Xsph8pU
NaedCzdL2jXPsWRbWjEvUYXbbaZ2W9vJVUv6jQml8x+YM/FjB7cl/dg8D/jzOUvaMR/ZFf+A13Sa
2ty8DyYEtacOoM91NLXPyt45v47Cmxao9u2id0Gcf5J5iulrAsplftgzBvtdzKISQKVifhA/Dt6V
rMePnZYlnTdJ5JpEdwf8Aj1jfpCsLUHOiuVC/Djwwg2TlN0G+G9NMCSbyeSj3kKytkj8K4XwM9gI
ZtyPIQBCN6+SZB9vdTbaImwuUEnRfDfMmdp+Dg4Iin5qzofvC+xnwVH8eOzhB1An/KsJ9/kORj81
F6CwCLwojzxO7ee2UdIbqCEAZ246GSm7DcOboEkP2DgO9Qr8133DB8T1h4it3gA0v2mugqGfJNil
TVcZJp4+CRg1+N1IYp7ZE/58BG6VeArA38crqchT5AgiyIGsy20ZjpijpKz0ZAVOHEkWRQqV4Yd4
DRZ63wQ8JSgXH5hXgvqC0bRZDNxeBTUfuLwKflqAKou+SAKeZXafFVDdQ/MxyOxJ+SQx9jkDamP8
SwnQja+awEcWoJINUMli4uk8YP/MvH3Cbhh/goTlR+aFF6t5Dp3uubdz7XdRmP07DACBV8pRGtJV
S/q5+eHp146WNF+VsoEbNP9676y595qXee5dHll46V3ercDm9q/yFsyfJzsibQ+7SVsMcK3Bhn+k
bKSHupbWNSHNFp26ZclETGO3dRsvX+fYZYNY0mPzWSB5CT0AkUkPECT80EUir3dk0vOL9LtjwZzd
lfw+Wt15Tx6lRVWwpN8yz/X5fWpJn+999dbU1KuayzZT/Nh7Hh/5ZntNk3tI8rk3QJLPvSaOWAhH
bIHE2Hs/NoJYsB+btAvZatyGTWpEN2hgf0an8rkTp8Lb+idoutA9FzuH/wJPMsfzSPhMs6T3xq6g
FfDc7+ApEhqFOMaQfWx+clK4u3Pn1SJdIfrGgBQPzPP2xxPSUiAe+IdpC4Lvs+jZhvmH0tUt6ddO
5koQXo2rvzHPoX9b0h9jAuLtdLwDt6Q7ZjpZA19V1KTal41kR4MsITlQZQWvhcJnu33gW9JV8/vR
1wzGS/ghgyRLlvSJ+R1gapTuyB0VzqpPVR0D+EAW5zBUm2PR9QCfCVJm2jkTYQ9D9OEg8AM/gXOx
XrJPw8w8+YRk8Cj8Q/O9iHM7Z5klbZhn4WC1pI/wqI1qMFmapLSoYi1pFvODE55yJghvSb+HyvZu
ZfEaypL2qlIjamkoFkTa61jSF2N7nIWnS+atV6JnmSeEh61ys9WohQIE7IY+hUrTjhJBrdkjQZM4
L0gRLMcuioCTit7xaX9yBEx1zDvjT0t4TTfp6zNY/0PznYh2HOe8YF5jGWSS15NYjFM4YeOBLLxe
B+jvInRIVU4aPwIX65lx9sV1/Dj0cSIoLZhkAZZfN8+jpaH1xPzehJPNdyFLun7KrmBBI2qlbXSd
CSjd9AHSdPt1wJL+OZhjRF818RMbSxri3hj/Vgu91vt6dARU6+YF+0HfkrZwWwZBYFqalBP+CGPr
xO8MYXJgEpJ073Qix7qNCBb9+ZhLOh9TWdI1kyRlWxYfOPStH8B/z7zkKxD6f1KVDJO+9ktoH6rH
TnaJs7O8V30U/dux0KRrB5b0ldmeYeUtu693PmEdkafEKTtnZgYQuI0OiX3c/lEmRmLOO0b8dgwi
lQ8xO0OhToPldklbrbVK67hodgYKU0taR4uEvrEG+Q/Ns7utoiU1zeBTwcT7NUt6x/zvZMXXbeh7
SQjNganxzzRhHn1Nwwcr/N8U9hdORnTiwtPRvgrGV0FWW7SkffMeOy7sAIFfmSV146hHN7CcWkiE
qoaxD5GdcopVXqDj980Zr7K1pLXQE7hrhxfmOXl5NW9J+YDfOF5vSX918kF019/QFSxya+ZbwH7V
fPCLlvpLdqmvZbC8L2NRGP4OGiv8sS8XAqEm6aUomxOKbEEdHFnSFTMxVll4AS4Sxv/azTj+FI//
kDJsp4JAAMtmICx34d9v40ccEyu2aLH2j2NeSQ0IJ3+EsSr0gWRA6/fRiBF9WNI98+wRhfzqtrmc
7EL+Ayz1ZQX/F56hgnfbSbt4MY4GVPfSIP8LfcDwLnC+GPjywQmmxyhy6BgPivxneERFOGUH3F+G
qpA+Dyf/qpkL26Innpar+N9o/Axvs0Jat1+FCbL26aRvJzAZU0wlLEv0AsR2sgS5E3i998r6xDwG
1qCrBaawPJ+D+gM3qTDUDbWfmEdv+/u9/3o/8kGH81GG/dSORx+OQlg+9m7uYnyvhxOxdRKjiijz
CoQew+hR0ob8NbsERcot0la7Q32BtIeG+8JpSLxC8KNcme8lBV7HC018xGYfM+CjRk89ZNeqDvoA
Pezmc5Pp5XPAZT8pqP2+qrAmrFwYA+baNADflruvBqz1T5IyCohyhwBpewLBl8IdaDAwGQ6nHMgg
SLsjKycyiZMTYCiEVzDH0ckm9NfK2dX8ifhlONQn4JdzbwCz/AYw+TeA4U/eSsF1fVnQ1HaP/2LS
xgH0/vwEIv7kSdvgVcF7J8r3EgwD/STCA/0EgJBiAj5yKshJHJ4OJ+tgBi3/2vQcuDcjeqoyTyOZ
XZrI6ivBvT7RgXpItYEwmaAzOQFMkVV96URabPZkYv/b3nW2N3FsYXKBkEByqaGEQBZRbINlcAUD
htBDM6Y7GDCyJPsVkUssGxtMC4QQYIknIDqkF/Lp/rH7I+6cmW2zOytLDpfkSXafZ7GYPWf67pzd
c+Z9w4Y+vLi+0mvYN85yGuqy6ZgRNuDhqv2ZXPJcbXifiOthegUWnDC9HGpDy+JGsU4hpJBQBW6j
6rvdK3Uuk0iG1yTkuShfzwJacjXPDAgzQCzfnZl0SjgwyVcu0kUm0i/amwvaC6lE/5Bco2SpcSuh
0i/SWFBGfD3wSIj/G9Z/urgRlwxIk0OndI32TLZPzprS9IbHo9QzHqV0oiNTuhYfvRKVugdz2TAV
cU2rUaAfwpUKNSlcq0CT/EqDSalGfzuSHi0rwSOaPN+lTlgrQXnA93QNKe0UKZaIvBfcG8RnP0uT
NK5MUSVRb8BqFZx0jU5cM6Vta9KnrbNFNQX/gXzi6pQqvr0+DX2DeamBu8NJ1Et6Z12YaLpDm62d
HCbty1on7rUQrau0wnmMuiJUZN+UoJctvahsaUVxi0YdNjcpaI5pRJ0qBgxNjbBu/thWqVZ8zNzd
J7Jbb80K6ytE1bKTQ/QsE1aratmMxeiHFO5YnaF52PaSs55aCfztMtA3iqzTl0qqUbS6uwSNMwPP
E7/UHLwDXCgL3YzyZzFWNYrII6A7VnkFFSw7181aTQiTdDIuLO6ts5oQJqlmrBOXxmbcXWiD79+W
iGs8jiHSWFDGaUFhCafm3kTNx4GAzrCyKnpMbGNY17GWfjrbWUSdrAXfevlQGlRAZXw18tg1Sq0u
2TsctqSE8Z/oOW+khwf6ExSITJs0+vqy9F4gokGGkElCbLzgJaYN+oRuJIyth1uMbOJ8ur/SjWh0
tzvYEb6J7FDifI4ibWkjhdjpkcwmcjkn0FbIi6Lb7Y+W3Lxyv87HwnAyYsJjHXO2jlU4gZzd1CI1
S3erUTKRzfICumkjULn9QbTSetGp9Bh55NRy46qzvUnayzZCBoDUocXT1Y/JDCjRzirm5kXJ3pxj
KUpJXXKyL1QRXqzjoJMfX9vT5xLZcmpJpahYhRxN9BJmFB8qz36wmANjE6twhHpzQZEDhy0BWTBt
J1qeiy/PxYzlRrmdc6WlbhXo2QXYdkqkZDrdWtC0sprldr+tUiX3FTsj0GarnbKHs8KbYW9O7jor
nJm83iYVghlZLVPedcMzc2Xa5E9fho58oq/Plddfs14qYla/0TZwcoeUV/OpQPPbCiOWvW0rV8go
Z882NUqdmsdFc5Jwcgyab5EnhDx0edPorK2rTyc7UtWNjal1DR21tZ21iTWpRE1jqrozmWxYk5cg
Wpb0WKh4eXMSSefxX/Nd+uHuO282p1kAFDYeF37GS/yI7/Fr2pzSxdtL6WI3Me1R1yJ1MEzi19DA
MH80j9n0ez7eYzhOv3qCsDYMs+jKOz6kK4YkJX/G0M+ziVFxAXAZhjqSOcswk66rSF4M3ZTohYVh
mOKRcwp6izJ5O5C8h5f7hC4dx2OGy6SpQIkwvMMlOvj5AV0j8C2GhBDzokMxMJHmBV1hKKc0D5wY
Qy/P6Cg/1/LzQ11zvqDEN50crnC5/fzcJ5JtVJRp6lBMDlQHNQxrqFUrGdL0N8eQob9v4lOGHM9w
m6YJp0jiJL5kKBPgBD7sM4aPSKAXWWxnaKffVWgWgE1owUcMG0cD2G4MK5RBdfNaTOk+ZCGGHbxq
e8WIelBfGFZTYX2+NtYy1IsOdvGCGI6R5BqsQgXDCbqqw1PCRYbzvKSzJDzA8Eh0hhd8h+F5gblf
wXVrSTfNMJH/XurtLnfeVlKyF6uMUK0EvpUW5InQrRg+4fl9rplL1ynNwflh2MzlPqM6DOM8w6hm
4t4tNGfm6u6RBbrE5ZSog1ZS4dFUUDWGLZoJdo7XuYbqnGI4wn+f0cgsHF9x93l2N31dtEpk78Wb
Y/h3sIl+sECGTVTHDgZTMy+q6NoOhhuaMWrilVgyvvpPFbeDHrXQ6Ztr6sOhlRd3SNOFF6iK/O+0
YtqaD7TR36oUZdfP0Kl9POMYw0FNJd7klVvmff61tPDU93Uz7BIXzVIhE7GRoc03ijOK6Zmd3rnO
8ELckD4wKYZBKuQc4gwtvMjt9L9BBmifRCfp6mGGPi55RzPW0+n6KYZF4iZ3YCgZvuIKA/x8qJk8
V0npGSZhNviKiOeIYSam4C3swQcox1p8iK24ia8xGfuQwTaUYQUSOISD2IvVWIy7eISlmIsFWI4t
2IQzWIh/4waW4Bam4gJMrMM0dOILXMZ1vI8Z2Ik7mI4HWISHWI8hzEEjvsEGHMBuAJvxLrrwOZ7i
BT7GLizDKEZwDZdwDwbDek/f20huDEO8dYf5OYdacxonGD6lX00M83hqo+h7H/wbwzC/1EBi3Qzf
aPpzg6cf923nCQe4QjM/d5NSWwDKkCHOL27VzLx3dU9jzGO4xxVuBYrGFYa3+ZUufp4OXTFuMzzV
DOiXVLn7DB9LNB9/FXfxPFeSSCXDe/x3Nf1OMowEHtcuvBvDbdHrKsAZw9e++2JdUQ8a1DE80HS3
QTV5wtAjrimAgH5YPWV9fUx61ahHK8PFUW7CziHTt11GjQx2t/MXm8E0WZWDVX8uAG10/KlH1V8A
/71mTa0f/71+bUOE//46DhX/exXtZI0w4P9Bx+sY/zHx32tt/Pf6Gn7vE/57Xc3aCP/9dRxXJz2Y
cUz+JIBTDebp3wfa8e8BfPr3wKCN4Fv/QvCtgxHvQ8T7EPE+RLwPEe9DxPsQ8T5EvA//aN4HxbVO
jl1TfDzGBziE7ViDWhxFM8qwAcfxJX7AXAxgFI+wB4vQj+X4Da2Yicf4EacxDwb24ifUYRWqsBo3
EcdC/IoV+Brf4iVO4TYG8T6u4xgO4ClmYA6e4QUWgOEwcoihEjvRhm9Qg224i3JksR9PsBI78Dtu
oRqL8RzdOIIH+BCzUYFdlovbdT/NspziWIb5TDqiXA+McK5cxFbyC68JuIFq9f7lo7qv6OgSn/rH
41Srt32kV6T3Cl+Bt//7wOdw/1f9Ud+n9maNl4H8tLc1XtdHmo/t84pxxJUV9z1/s/wG76/yhvH1
kPBffM/wg6bWGhdxsNYDWufZHsq2h+G3Ak70Rbrwh37hedUFgSzXeQ4PSuc7eULLfQ9adyqSVxtL
Nf75n+nCFjSROzrBc7lQoi/kBteZGYy92CQcweXoZdIHGPDkkHsf19AoHOLluMpEeAeGMYIWhh81
o3taMwFfhHl1OilWZq/0aCnT+CdNznXee1OEqJDPDweZdNatY+T8pKgU6U33j9eI9PJSdAJ5koV3
XDd6Md3o3ffVb7U+jGI3z1d45PuYdPErdxzuyJgBZCz/7hBmSWfbr5rmrtDVg0KYWkj1c8vL5j7j
vuWXXhaYxEOktluGzvgHSDhF92E9TsoYmRNa93fwlrrGy3yuGVzyU6OdkYOVolfKcUGEu5CjNFD2
U1/XprjcDI3cRZ4uwnZ8YRLCtfteoKfOcPFnmodeL4lfYvhlVESTJZnwD28elbFdImzonIw7OsHP
S/T/L3BDRsjgFyYDcR5qbWArcOleyMW1ozIMLc3zFR5RJd7mmPe9Qp9B0DnqdcXu1DrA71Gh30lX
fxs/L/NT59OuUe4Gd53bxuVFfIzyOBHRYjLATLiT/ZFUTwo95FZqn8M79L74u5q6/j6qDZm4ZXmt
x7G2XOWqw9RT0/GxFe811tSnaEDV1tdEEvZRnpeZCBnxz+fveJndmvQO0lmLjagXkRsUfaTz11M4
AYVTLeEiJ/nZboXpYUngVtivKWW27unSw/OoGPUFiRwXDVVi3HZ5ZCgAYjAYuClDOhXWghJDSMO8
9cGY0LcxEZMxBdPSOuIii8rHpbjxMPH4CHSC7EE2x1GQ0MjHJ+TSAllMRJL1RyEC8hAZBdiUNCRK
DhVPIaIhL1GQw3WkY99RaYQ0xEaF2YN8hEEKmVCAyUklV7IolRxyo6IIhGy2oSBvlMvVpKOBkgRR
CktSKN1SgOIohIGKlRjOrNAcXQnC4ZqvB4mKKQDFszQwbB+UioF2qHgMtO3jhcBZ48eGq9Wi/h4d
D1bSH0ARrG8++583JkyIqFci6pWIekUcEfVKMQVE1CuvpioR9UpEvRJRrygVi6hX5BFRr/w51Cud
pdE1fP+nw1yPBvkCmkNRUz/5P/K43A4hf3wUjrs8r0gw8bI/jjr/WI/tvuEVkYp8qUdL/yEE+nRu
qfDtAzpM7D0F0ex/K5qLeJGGCai/RKj05aFEBgeJ1HipAmTcWojyZ0EJyL4/R4itEWJrhNgaIbZG
iK0RYmuE2KroRYitEWJrhNgaIbZGiK0RYmuE2BohtkaIrRFia4TYGiG26nUixNYIsTVCbI0QW/+S
iK0JcxI5KYmU9rWTwt1wCdlnmobqI0rk7ASXP7kpyMH3MIxl7/MiCVPPBZngP3OS5FZKnrSPnEre
3ciB3omrxPc/6klFT4dyAr8IJ5M0/jkEn3ttOvauMQl5fwr0ML8v8qjzhIO2Ekvn+nFQTDeMmyry
jjmZTz+a0V/Y3KGrNC7AEXOKhWCRx7Kzb/1rwgRctzhf882ooqb5HYR5xLQ05/c1VN+rPSGwrv5u
ix17k5ac/GZBNsuFxdD4DppxayQNl0xV3QtN7kYbEYOYNWXbf9WTfa4IY3meL9VaNAzHX2vIuL+1
SUpfeomWdX5bot59dRSzp8I4rj81t1qBliIknrpaB41A6S3N9K+984ffAS3H6FnTckiwYBfNzn7N
4X19Tn3tjxkgZugCJNCNjvZ5zyOYahjP4xg54gO3KnHeBkMlUoO01DwNMqCmmjGD/PDKEtBPgOJF
0E9vNOc7HnAfkT3RI8d8nSSWFgV1hYudkVPqWSDYQPROLz1VnH33XPyX1qkTfd5xD8lqpWHVWICE
cYtGxnis9xs6fs+6c10u4dxsijmGKD1GydxwTS252cSxWWPrYxWuBUIq6Wy6m0KqM+6K7woIIV6M
CPtt4uZQFZVQdbY301MuHtlGjJRilXY2anAXN4FslfRwJjeQK7czq1DLUJu0qsktlBvNRmyqbVBR
+La319xcPEaLyMSJJ+8dkhECorF0WUbuG7LXnSAsK9ecUJM7911Zj+1aFoKMUeYYfX5lEfFl9UIm
x2dzuU/CNyAZaXhW0WajwtKeTslUcasvN5QZQHmsXQrGNH1M8VH8xS1d9AB7Cq40MuroFhow7ZAQ
V7mkWd7sWV3cIJuPFH5tOzUnb7oTr5gX+1Lr1TcmTCiWPV6Sxy8bcSAvRMxYmcGzDQlAC2WgdzJp
qBtHJpKyvoQ8YkoeMXoVpKc0/fDmQv+PiVymKgojQpri3Q6nB3yXeK84gXD+Sw11oZeGPWp5VBZk
oT5bNBd4xqwIkQzAfnDptebq+AFuvPX0xnu7MwPxzn4+d+N9fNpTqJG6PNhRU2nzjCeuV8E1M3TY
eYaKQmf48NwMHaoY1pnP453SgpSLS7w70dfkxpw2kZHC3xOSq4VQwcXf0OYUWIWbxpaz+rLJIDbx
QhzuO2l9VvYLC/73AnzsX1lsIGgz3+DG/WXzhFHiDRW3/loxmwVn2zfhb1A1tPnLt1mZuvBcJpfp
yPDF83w8wy2znnQujkwqleYGyTZzWrqn/ejhqqNHdsbX5bFFWACeN7xyczLFGV4i2vl11hsGr7Cw
/do8jyrvVmf5nlFmmYnCRnxCHWhZoYYauUeU9ZrQxB3Ko9ROvRsw60Q05O9ei9cfpEif5/K4JR/C
1eGBoGJvXxGRmlfNdMkD3M3Ni87amnb5IaDYsR42l4mvlMtGFBwyXi9vd/MqLTarQ6NB3ShUf0ho
kuZLYGugYvhaK7FYRKv4e0Of89FAojHxXLJ+A5jeXnq6+Br5nf1C0k22s1+EW8gd5ie8I51J1FYW
gIOjngoizSmvJx6QOvkNpqy67BQ9eaebrSUOk30b6lYR39Acoenp22iZx1bPTLaamscSOfNOmm9K
PMY82k3vBj3trpY8PgxY9NmU4T6a7EHc73+foLfl2YF3aHrL6KGXRqdY+T2swpzmTgye3XHzXe96
w1N2uRL7+MvsYIQLHx3RER3RER3RER3RER3RER3R8bc6/geGshWdAMgAAA==
</data>

          </attachment>
      

    </bug>

</bugzilla>