GStreamer 1.29.2 unstable development snapshot release

Tim-Philipp Müller via gstreamer-devel <[email protected]> Mon, 29 Jun 2026 01:47:07 +0100
Newsgroups gmane.comp.video.gstreamer.devel
Message-ID <[email protected]>
--=-fhcLd88TeR557buJbO5h
Content-Type: multipart/mixed; boundary="=-8wZdg12qh5G/zOgTG0ea"

--=-8wZdg12qh5G/zOgTG0ea
Content-Type: multipart/alternative; boundary="=-6ttEnb8WxbAV5Kl9Bc0l"

--=-6ttEnb8WxbAV5Kl9Bc0l
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

The GStreamer team is pleased to announce another development release
in the API/ABI-unstable 1.29 release series.

The API/ABI-unstable 1.29 release series is for testing and development
purposes in the lead-up to the stable 1.28 series which is scheduled
for release in late 2026.

Any newly-added API can still change until that point.

This development release is primarily for developers and early
adopters.

Minimal=C2=A0release notes=C2=A0with details about changes and fixed bugs c=
an be
found at:

   https://gstreamer.freedesktop.org/releases/1.29/#1.29.2

Highlights:

* webrtcbin2: New scalable WebRTC bin that uses fewer threads and
native Rust DTLS, ICE and RTP session management implementations
* rtspsrc2: implement support for SRTP, authentication, HTTP
tunnelling, keep alive, stream selection, TLS validation, latency
configuration
* rtp2: New Rust RTP payloader and depayloader implementations for MPA
audio, MPEG-2 video and raw video
* Digitally Signed Content (DSC) support, initially for H.266 video
* New D3D12-based element which performs color lookup operations using
user-provided Adobe .cube LUT files
* videoencoders: Support adaptive presets with resolution-dependent
properties and implement in x264enc and nvh264enc
* closedcaption: add h266seiinserter; add "do-timestamp" property to
codecseiiinserter/merge_requests/10514)
* flv: Add support for AV1 video
* v4l2: add capture timestamps to buffers in v4l2src, and "bitrate"
and "gop-size" properties to video encoders
* applemedia: new iosurface helper library providing a
memory:IOSurface abstraction
* AMF: add super resolution hq-scaler component
* New OpenGL glalphacombine element for RGBA inputs and Vulkan/OpenGL
memory support for alphacombine
* openjpeg: Add support for high bit depth formats
* analytics: add semantic tag getter to GstAnalyticsMtd
* tensordecoders: Add YOLO26 detection decoder
* tfliteinference: support for external delegates, XNNPACK, and GRAY8
input
* MP4: add support for losslessly-compressed video
* matroskamux: add TrueHD audio and HDMV PGS subpicture support
* playsink reconfiguration stability improvements
* New agingradio and sofalizer audio effect elements
* New image-rs based imagersoverlay element in Rust to replace
gdkpixbufoverlay
* webrtcsink: add v4l2h264enc (Raspberry Pi) encoder support and a
signaller for Unreal Engine PixelStreaming
* webrtcsink, webrtcsource: make custom signalling protocol extendable
* Speech elements: implement support for non-synchronized output
* d3d12: Add support for hardware-accelerated decoding of VP9 with
alpha
* androidmedia: New source element for Android assets
* filesink: Add support for Windows file sharing mode to allow reading
of file while it's being written to
* tracing: custom spans and events API and new tracers that integrate
with the Rust tracing ecosystem
* editing-services: auto-plug raw video converters from the registry
based on compositor memory family and prepare for multi-threaded
usage
* dots-viewer: General enhancement of the web app
* New viuersink video sink that plays video in the terminal, replacing
aasink and cacasink
* cerbero: Added ccache support for MSVC
* Countless bug fixes, build fixes, memory leak fixes, and other
stability and reliability improvements

Binaries for Android, iOS, Mac OS X and Windows should be available
soon.

As always, please let us know of any issues you run into by filing an
issue or Merge Request in=C2=A0GitLab [1]:

Thanks!



[1] GitLab https://gitlab.freedesktop.org/gstreamer/gstreamer/

--=-6ttEnb8WxbAV5Kl9Bc0l
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<html><head><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style><style>pre,code,address {
  margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}
ol,ul {
  margin-top: 0em;
  margin-bottom: 0em;
}
blockquote {
  margin-top: 0em;
  margin-bottom: 0em;
}
</style></head><body style=3D"overflow-wrap: break-word; -webkit-nbsp-mode:=
 space; line-break: after-white-space;"><p></p><div>The GStreamer team is p=
leased to announce another development release in the API/ABI-unstable 1.29=
 release series.</div><div><br></div><div>The API/ABI-unstable 1.29 release=
 series is for testing and development purposes in the lead-up to the stabl=
e 1.28 series which is scheduled for release in late 2026.</div><div><br></=
div><div>Any newly-added API can still change until that point.</div><div><=
br></div><div>This development release is primarily for developers and earl=
y adopters.</div><div><br></div><div style=3D"caret-color: rgb(46, 52, 54);=
 color: rgb(46, 52, 54); font-family: Cantarell; font-size: 14.666667px; fo=
nt-style: normal; font-variant-caps: normal; letter-spacing: normal; text-a=
lign: start; text-indent: 0px; text-transform: none; white-space: normal; w=
ord-spacing: 0px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0.4); -webkit-=
text-stroke-width: 0px; text-decoration: none;">Minimal&nbsp;<b>release not=
es</b><span style=3D"font-weight: 400;"><span class=3D"Apple-converted-spac=
e">&nbsp;</span>with details about changes and fixed bugs can be found at:<=
/span></div><div style=3D"caret-color: rgb(46, 52, 54); color: rgb(46, 52, =
54); font-family: Cantarell; font-size: 14.666667px; font-style: normal; fo=
nt-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans:=
 auto; text-align: start; text-indent: 0px; text-transform: none; white-spa=
ce: normal; widows: auto; word-spacing: 0px; -webkit-tap-highlight-color: r=
gba(0, 0, 0, 0.4); -webkit-text-stroke-width: 0px; text-decoration: none;">=
<br></div><div style=3D"caret-color: rgb(46, 52, 54); color: rgb(46, 52, 54=
); font-family: Cantarell; font-size: 14.666667px; font-style: normal; font=
-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: a=
uto; text-align: start; text-indent: 0px; text-transform: none; white-space=
: normal; widows: auto; word-spacing: 0px; -webkit-tap-highlight-color: rgb=
a(0, 0, 0, 0.4); -webkit-text-stroke-width: 0px; text-decoration: none; mar=
gin-left: 3ch;"><a href=3D"https://gstreamer.freedesktop.org/releases/1.29/=
#1.29.2" style=3D"color: rgb(46, 52, 54);">https://gstreamer.freedesktop.or=
g/releases/1.29/#1.29.2</a></div><div><br></div><div><b>Highlights:</b></di=
v><div><b><br></b></div><div><ul><li>webrtcbin2: New scalable WebRTC bin th=
at uses fewer threads and native Rust DTLS, ICE and RTP session management =
implementations</li><li>rtspsrc2: implement support for SRTP, authenticatio=
n, HTTP tunnelling, keep alive, stream selection, TLS validation, latency c=
onfiguration</li><li>rtp2: New Rust RTP payloader and depayloader implement=
ations for MPA audio, MPEG-2 video and raw video</li><li>Digitally Signed C=
ontent (DSC) support, initially for H.266 video</li><li>New D3D12-based ele=
ment which performs color lookup operations using user-provided Adobe .cube=
 LUT files</li><li>videoencoders: Support adaptive presets with resolution-=
dependent properties and implement in x264enc and nvh264enc</li><li>closedc=
aption: add h266seiinserter; add "do-timestamp" property to codecseiiinsert=
er/merge_requests/10514)</li><li>flv: Add support for AV1 video</li><li>v4l=
2: add capture timestamps to buffers in v4l2src, and "bitrate" and "gop-siz=
e" properties to video encoders</li><li>applemedia: new iosurface helper li=
brary providing a memory:IOSurface abstraction</li><li>AMF: add super resol=
ution hq-scaler component</li><li>New OpenGL glalphacombine element for RGB=
A inputs and Vulkan/OpenGL memory support for alphacombine</li><li>openjpeg=
: Add support for high bit depth formats</li><li>analytics: add semantic ta=
g getter to GstAnalyticsMtd</li><li>tensordecoders: Add YOLO26 detection de=
coder</li><li>tfliteinference: support for external delegates, XNNPACK, and=
 GRAY8 input</li><li>MP4: add support for losslessly-compressed video</li><=
li>matroskamux: add TrueHD audio and HDMV PGS subpicture support</li><li>pl=
aysink reconfiguration stability improvements</li><li>New agingradio and so=
falizer audio effect elements</li><li>New image-rs based imagersoverlay ele=
ment in Rust to replace gdkpixbufoverlay</li><li>webrtcsink: add v4l2h264en=
c (Raspberry Pi) encoder support and a signaller for Unreal Engine PixelStr=
eaming</li><li>webrtcsink, webrtcsource: make custom signalling protocol ex=
tendable</li><li>Speech elements: implement support for non-synchronized ou=
tput</li><li>d3d12: Add support for hardware-accelerated decoding of VP9 wi=
th alpha</li><li>androidmedia: New source element for Android assets</li><l=
i>filesink: Add support for Windows file sharing mode to allow reading of f=
ile while it's being written to</li><li>tracing: custom spans and events AP=
I and new tracers that integrate with the Rust tracing ecosystem</li><li>ed=
iting-services: auto-plug raw video converters from the registry based on c=
ompositor memory family and prepare for multi-threaded usage</li><li>dots-v=
iewer: General enhancement of the web app</li><li>New viuersink video sink =
that plays video in the terminal, replacing aasink and cacasink</li><li>cer=
bero: Added ccache support for MSVC</li><li>Countless bug fixes, build fixe=
s, memory leak fixes, and other stability and reliability improvements</li>=
</ul><div><br></div></div><div><b>Binaries</b> for Android, iOS, Mac OS X a=
nd Windows should be available soon.</div><div><br></div><div>As always, pl=
ease let us know of any issues you run into by filing an issue or Merge Req=
uest in&nbsp;<a href=3D"https://gitlab.freedesktop.org/gstreamer/gstreamer/=
">GitLab</a>:</div><div><br></div><div>Thanks!</div><div><span></span></div=
><div><br></div><div><span></span></div><div><br></div><div><span></span></=
div></body></html>

--=-6ttEnb8WxbAV5Kl9Bc0l--

--=-8wZdg12qh5G/zOgTG0ea
Content-Disposition: attachment; filename="GStreamer-1.29.2.txt"
Content-Type: text/plain; name="GStreamer-1.29.2.txt"; charset="UTF-8"
Content-Transfer-Encoding: base64

aHR0cHM6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3NyYy9nc3RyZWFtZXIvZ3N0cmVhbWVy
LTEuMjkuMi50YXIueHoKZTRlMWRjY2M5MmNiNGJlN2MzNGRjNTEzMjE2ZjBmZmMzNjEwZmUwNzFk
ODdlMjhjZWVjZjc4NGI0M2Q2Y2NmMwoKaHR0cHM6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3Jn
L3NyYy9nc3QtcGx1Z2lucy1iYXNlL2dzdC1wbHVnaW5zLWJhc2UtMS4yOS4yLnRhci54egplYWFh
YTBiYjQ1NTgxMmUyMjc3ZDE0YzliZThkZDMxMzZlMmM2MDdlMzRlZmQ0MDFhMzNkNGIzODRiMmYw
MjUzCgpodHRwczovL2dzdHJlYW1lci5mcmVlZGVza3RvcC5vcmcvc3JjL2dzdC1wbHVnaW5zLWdv
b2QvZ3N0LXBsdWdpbnMtZ29vZC0xLjI5LjIudGFyLnh6CjRjZTI3NGQyMDdiZDdiNDA0YjhiMDdl
ZDY2OWI0ZWJhYzgxODQ5YjIzNjM2ZTQ1NWIyMzE1MGRlZTFlMzU5NWUKCmh0dHBzOi8vZ3N0cmVh
bWVyLmZyZWVkZXNrdG9wLm9yZy9zcmMvZ3N0LXBsdWdpbnMtdWdseS9nc3QtcGx1Z2lucy11Z2x5
LTEuMjkuMi50YXIueHoKNjQwMTliOTc4OTBlMGQ4ODhiMGVkMDk1NDhlMWI2YzhlNzg5OTExZDEz
YzdjMGE1MjExY2EzZTRhOGNiNjIxZQoKaHR0cHM6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3Jn
L3NyYy9nc3QtcGx1Z2lucy1iYWQvZ3N0LXBsdWdpbnMtYmFkLTEuMjkuMi50YXIueHoKYmY1ODEx
ZGE2MTU5ZTBkMmFlMDYxN2ZkMjJmMzU0ZjJmM2ExNWNiYzViYWVhMDBjYTViNDYyMGE4YmMzYzM4
YwoKaHR0cHM6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3NyYy9nc3QtbGliYXYvZ3N0LWxp
YmF2LTEuMjkuMi50YXIueHoKY2IzYjNmMTI3NDIyMWEwNGI3YzcxZWIyNGI5YWVhOGNmOGY3NGYx
NmRmZjA1MTM2NDU0ODg3MmZiMzFhZDhiNAoKaHR0cHM6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Au
b3JnL3NyYy9nc3QtcnRzcC1zZXJ2ZXIvZ3N0LXJ0c3Atc2VydmVyLTEuMjkuMi50YXIueHoKZGFh
MmNiOTJhMjU2ODc0MWM0ODRkNmU5ZWI5MmEyYjNiM2ZlYzUwNzY3NDk0MGIxYTU0ZTczMGI1OTc0
MzFhNwoKaHR0cHM6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3NyYy9nc3QtZWRpdGluZy1z
ZXJ2aWNlcy9nc3QtZWRpdGluZy1zZXJ2aWNlcy0xLjI5LjIudGFyLnh6CjBmMjQ0YjgyMzNhMDFh
ODE5NzQ5Y2NlMmIzMjRlODIyNTM2M2Q1MjU3ZWMyYTI0ODFlYjcyZGVlMTYzYTk3ODkKCmh0dHBz
Oi8vZ3N0cmVhbWVyLmZyZWVkZXNrdG9wLm9yZy9zcmMvZ3N0LXB5dGhvbi9nc3QtcHl0aG9uLTEu
MjkuMi50YXIueHoKNWFkOGM4NzVmMjZkNmNiOWJhYTFlMGM3NWYzM2JjMzcxZTY0ZWI2OTQ0NjMx
MmEyZTNiY2YzN2NkNTE0NGY5NgoKaHR0cHM6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3Ny
Yy9nc3QtZGV2dG9vbHMvZ3N0LWRldnRvb2xzLTEuMjkuMi50YXIueHoKYWZjNzNmMjMzOWI0Mzg1
NmNjNzYyYTA0ZjYxNzU4NTI1MDkzYTM2Mzc4YTBhZWM5NDI5MjY4YmEwNjUwMDQyNwoKaHR0cHM6
Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3NyYy9nc3RyZWFtZXItc2hhcnAvZ3N0cmVhbWVy
LXNoYXJwLTEuMjkuMi50YXIueHoKMzg2MjVjYTJlNmE1OGU0NmJkOGNjYzZlN2UzZTMwOTdhNzli
ODQzNTUzYjUwMzU1MmNmNDcwOWNjZGExMGUyNgoKaHR0cHM6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0
b3Aub3JnL3NyYy9nc3RyZWFtZXItZG9jcy9nc3RyZWFtZXItZG9jcy0xLjI5LjIudGFyLnh6Cjli
MzgzMmExM2M5MzY3OGI2NmI5ODA0Zjc1ZDdjOWEyZmQ1Njk2OGVhODg1NDhhZmZmNjRiYWViNmZj
NTIzMjgKCg==


--=-8wZdg12qh5G/zOgTG0ea--

--=-fhcLd88TeR557buJbO5h
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEE1jcDLkW4xlhblFZWXS7ub280nXwFAmpBwIsACgkQXS7ub280
nXy9vw//c3V+G3lsgSe2W+8Uh9XC1TO/LK/4lSObxPEfISudErwbya0hhkRr45oE
wS93vaND4LYl31PUC3E8SpInoI9Fwcp1IkxP83C3h7zjUha4EU+IZZ9Hu2bn5nkQ
psVABtrQKpJmK7JjqCOHmq2mrziAdw5zpJIXfE8iqmvHT1LkWlNN1Zq1U5PQAsAx
Jay4ZlWvlhlvVOCGx7K5Tg/81EgNWWmsVd3RPdSxlpiv3NVq6YkK638JxTRjuNrz
nAnl/B15rkLLQw8UsfkHX969zOM2kZn3ncpJlYOgI+WVcS+5nNdE7ddSxLpyqJZ8
2bE5mhBy6yD2x2CSw6Pmk+bHHOFk209DyVurHVQtK4chTlLNFnevN9Tae4kx8grl
Q7adayGKfP4oetK+Xg/9NtebBzwA6fgbRD+EEYeY0+mHu2c/edmYA9AWa6m7+0Eg
Dr45wsnPHu/hyay+PNm1lxvcVCQXjudrtEY1zweo77Vdh3gyxh/LY9xJjKTzksB5
UgKYysFUK73Sf0nBZ0vlAhWdBRuHFo8Gox3tiMcNZMc/tzW5LrEsY3NLCRIMV6RW
VxyoppocErZJSHW4apn7dzCiO5qKx3IfoynPFXeIyMwvYUwLS039XeVZk85BZZC3
+00c9WwWy9AlKpVvoFEHJGg57knxWiXCZYEZGr334oJWLg8hjuE=
=lGtC
-----END PGP SIGNATURE-----

--=-fhcLd88TeR557buJbO5h--