author | Matt Brubeck <mbrubeck@mozilla.com> |
Wed, 28 Dec 2011 11:02:59 -0800 | |
changeset 83443 | 010fe7e7df1a9797a4b6b43c17462943db5d9a84 |
parent 83407 | d144d8a5af9e89faa160725f063cd10f531bc3b2 (current diff) |
parent 83442 | 97df9986ccf449b0e16f81364287b9b3b9936567 (diff) |
child 83444 | 5f606d407c14b09e52911b6725360d756f75cf27 |
child 83472 | 855983168b2fcfc98e8b031be84735f1b927ebfe |
push id | 21760 |
push user | mbrubeck@mozilla.com |
push date | Wed, 28 Dec 2011 19:04:19 +0000 |
treeherder | mozilla-central@010fe7e7df1a [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
milestone | 12.0a1 |
first release with | nightly linux32
010fe7e7df1a
/
12.0a1
/
20111229031056
/
files
nightly linux64
010fe7e7df1a
/
12.0a1
/
20111229031056
/
files
nightly mac
010fe7e7df1a
/
12.0a1
/
20111229031056
/
files
nightly win32
010fe7e7df1a
/
12.0a1
/
20111229031056
/
files
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
releases | nightly linux32
12.0a1
/
20111229031056
/
pushlog to previous
nightly linux64
12.0a1
/
20111229031056
/
pushlog to previous
nightly mac
12.0a1
/
20111229031056
/
pushlog to previous
nightly win32
12.0a1
/
20111229031056
/
pushlog to previous
|
--- a/browser/components/build/Makefile.in +++ b/browser/components/build/Makefile.in @@ -7,23 +7,22 @@ include $(DEPTH)/config/autoconf.mk MODULE = browsercomps LIBRARY_NAME = browsercomps SHORT_LIBNAME = brwsrcmp IS_COMPONENT = 1 MODULE_NAME = nsBrowserCompsModule FORCE_SHARED_LIB = 1 -# Because we are an application component, link against the CRT statically -# (on Windows, but only if we're not building our own CRT for jemalloc) -ifndef MOZ_MEMORY +# Statically link the CRT on Windows if building against +# a XULRunner SDK. +ifdef LIBXUL_SDK USE_STATIC_LIBS = 1 endif - EXPORTS = nsBrowserCompsCID.h CPPSRCS = nsModule.cpp \ $(NULL) ifeq ($(OS_ARCH),WINNT) OS_LIBS += $(call EXPAND_LIBNAME,ole32 shell32) endif @@ -65,8 +64,11 @@ SHARED_LIBRARY_LIBS += ../migration/src/ # GTK2: Need to link with glib for GNOME shell service ifneq (,$(filter cocoa gtk2,$(MOZ_WIDGET_TOOLKIT))) EXTRA_DSO_LDOPTS += \ $(TK_LIBS) \ $(NULL) endif include $(topsrcdir)/config/rules.mk + +# Ensure that we don't embed a manifest referencing the CRT. +EMBED_MANIFEST_AT =
--- a/browser/themes/winstripe/browser-aero.css +++ b/browser/themes/winstripe/browser-aero.css @@ -289,31 +289,33 @@ #tab-view:-moz-lwtheme { background-image: url("chrome://browser/skin/tabview/grain.png"), -moz-linear-gradient(rgba(255,255,255,0), #CCD9EA 200px, #C7D5E7); background-attachment: fixed; } } @media not all and (-moz-windows-compositor) { - #main-window:-moz-system-metric(windows-default-theme) { - background-color: rgb(185,209,234); - } - #main-window:-moz-system-metric(windows-default-theme):-moz-window-inactive { - background-color: rgb(215,228,242); - } + @media (-moz-windows-default-theme) { + #main-window { + background-color: rgb(185,209,234); + } + #main-window:-moz-window-inactive { + background-color: rgb(215,228,242); + } - #toolbar-menubar:not([autohide=true]):not(:-moz-lwtheme):-moz-system-metric(windows-default-theme), - #TabsToolbar[tabsontop=true]:not(:-moz-lwtheme):-moz-system-metric(windows-default-theme), - #navigator-toolbox[tabsontop=false] > toolbar:not(#toolbar-menubar):not(:-moz-lwtheme):-moz-system-metric(windows-default-theme) { - -moz-binding: url("chrome://global/content/bindings/toolbar.xml#toolbar-drag"); - background-color: transparent; - } - #toolbar-menubar[autohide=true]:-moz-system-metric(windows-default-theme) { - background-color: transparent; + #toolbar-menubar:not([autohide=true]):not(:-moz-lwtheme), + #TabsToolbar[tabsontop=true]:not(:-moz-lwtheme), + #navigator-toolbox[tabsontop=false] > toolbar:not(#toolbar-menubar):not(:-moz-lwtheme) { + -moz-binding: url("chrome://global/content/bindings/toolbar.xml#toolbar-drag"); + background-color: transparent; + } + #toolbar-menubar[autohide=true] { + background-color: transparent !important; + } } #print-preview-toolbar:not(:-moz-lwtheme) { -moz-appearance: -moz-win-browsertabbar-toolbox; } } /* ::::: fullscreen window controls ::::: */
--- a/browser/themes/winstripe/browser.css +++ b/browser/themes/winstripe/browser.css @@ -1546,19 +1546,21 @@ html|*.urlbar-input:-moz-lwtheme:-moz-pl } .ac-url-text, .ac-action-text { color: -moz-nativehyperlinktext; } %ifndef WINSTRIPE_AERO -.ac-url-text:-moz-system-metric(windows-default-theme), -.ac-action-text:-moz-system-metric(windows-default-theme) { - color: #006600; +@media (-moz-windows-default-theme) { + .ac-url-text, + .ac-action-text { + color: #006600; + } } %endif richlistitem[type~="action"][actiontype="switchtab"] > .ac-url-box > .ac-action-icon { list-style-image: url("chrome://browser/skin/actionicon-tab.png"); } .autocomplete-treebody::-moz-tree-cell-text(treecolAutoCompleteComment) {
--- a/browser/themes/winstripe/places/places-aero.css +++ b/browser/themes/winstripe/places/places-aero.css @@ -1,12 +1,14 @@ %include places.css /* Style Places sidebars as Vista media collection */ -#bookmarksPanel:-moz-system-metric(windows-default-theme), -#history-panel:-moz-system-metric(windows-default-theme) { - background-color: #EEF3FA; -} +@media (-moz-windows-default-theme) { + #bookmarksPanel, + #history-panel { + background-color: #EEF3FA; + } -.sidebar-placesTree:-moz-system-metric(windows-default-theme) { - background-color: transparent; - border-top: none; + .sidebar-placesTree { + background-color: transparent; + border-top: none; + } }
--- a/content/canvas/src/nsCanvasRenderingContext2DAzure.cpp +++ b/content/canvas/src/nsCanvasRenderingContext2DAzure.cpp @@ -804,17 +804,17 @@ protected: state.patternStyles[aStyle]->mForceWriteOnly, state.patternStyles[aStyle]->mCORSUsed); } ExtendMode mode; if (state.patternStyles[aStyle]->mRepeat == nsCanvasPatternAzure::NOREPEAT) { mode = EXTEND_CLAMP; } else { - mode = EXTEND_WRAP; + mode = EXTEND_REPEAT; } mPattern = new (mSurfacePattern.addr()) SurfacePattern(state.patternStyles[aStyle]->mSurface, mode); } return *mPattern; }
--- a/docshell/test/unit/test_nsIDownloadHistory.js +++ b/docshell/test/unit/test_nsIDownloadHistory.js @@ -86,15 +86,18 @@ function run_test() try { Cc["@mozilla.org/browser/global-history;2"]. getService(Ci.nsIGlobalHistory2); } catch (ex) { return; } + // Needed to properly setup and shutdown the profile. + do_get_profile(); + Services.prefs.setBoolPref("places.history.enabled", true); for (var i = 0; i < tests.length; i++) tests[i](); cleanup(); }
--- a/dom/indexedDB/test/Makefile.in +++ b/dom/indexedDB/test/Makefile.in @@ -119,21 +119,22 @@ TEST_FILES = \ test_transaction_lifetimes.html \ test_transaction_lifetimes_nested.html \ test_transaction_ordering.html \ test_setVersion.html \ test_setVersion_abort.html \ test_setVersion_events.html \ test_setVersion_exclusion.html \ test_unique_index_update.html \ - test_writer_starvation.html \ third_party_iframe1.html \ third_party_iframe2.html \ $(NULL) +# test_writer_starvation.html disabled for infinite loops, bug 595368 + ifeq (browser,$(MOZ_BUILD_APP)) BROWSER_TEST_FILES = \ browser_forgetThisSite.js \ browser_forgetThisSiteAdd.html \ browser_forgetThisSiteGet.html \ browserHelpers.js \ browser_permissionsPrompt.html \ browser_permissionsPromptAllow.js \
--- a/extensions/spellcheck/hunspell/src/README.hunspell +++ b/extensions/spellcheck/hunspell/src/README.hunspell @@ -31,17 +31,17 @@ * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * ******* END LICENSE BLOCK ******* Hunspell Version: 1.3.2 -Additional Patches: Bug 710967 +Additional Patches: 694002, 710967 Hunspell Author: László Németh MySpell Author: Kevin Hendricks & David Einstein Hunspell is a spell checker and morphological analyser library. Hunspell is based on OpenOffice.org's Myspell. Documentation, tests, and examples are available at http://hunspell.sourceforge.net.
--- a/extensions/spellcheck/hunspell/src/affentry.cpp +++ b/extensions/spellcheck/hunspell/src/affentry.cpp @@ -462,17 +462,19 @@ SfxEntry::SfxEntry(AffixMgr * pmgr, affe numconds = dp->numconds; // length of the condition opts = dp->opts; // cross product flag // then copy over all of the conditions if (opts & aeLONGCOND) { memcpy(c.l.conds1, dp->c.l.conds1, MAXCONDLEN_1); c.l.conds2 = dp->c.l.conds2; } else memcpy(c.conds, dp->c.conds, MAXCONDLEN); - + next = NULL; + nextne = NULL; + nexteq = NULL; rappnd = myrevstrdup(appnd); morphcode = dp->morphcode; contclass = dp->contclass; contclasslen = dp->contclasslen; } SfxEntry::~SfxEntry()
--- a/gfx/2d/2D.h +++ b/gfx/2d/2D.h @@ -143,23 +143,29 @@ struct StrokeOptions { CapStyle mLineCap : 3; }; /* * This structure supplies additional options for calls to DrawSurface. * * mFilter - Filter used when resampling source surface region to the * destination region. + * aSamplingBounds - This indicates whether the implementation is allowed + * to sample pixels outside the source rectangle as + * specified in DrawSurface on the surface. */ struct DrawSurfaceOptions { - DrawSurfaceOptions(Filter aFilter = FILTER_LINEAR) + DrawSurfaceOptions(Filter aFilter = FILTER_LINEAR, + SamplingBounds aSamplingBounds = SAMPLING_UNBOUNDED) : mFilter(aFilter) + , mSamplingBounds(aSamplingBounds) { } Filter mFilter : 3; + SamplingBounds mSamplingBounds : 1; }; /* * This class is used to store gradient stops, it can only be used with a * matching DrawTarget. Not adhering to this condition will make a draw call * fail. */ class GradientStops : public RefCounted<GradientStops> @@ -207,89 +213,109 @@ public: * stored in a separate object and are backend dependent. This class itself * may be used on the stack. */ class LinearGradientPattern : public Pattern { public: /* * aBegin Start of the linear gradient - * aEnd End of the linear gradient + * aEnd End of the linear gradient - NOTE: In the case of a zero length + * gradient it will act as the color of the last stop. * aStops GradientStops object for this gradient, this should match the * backend type of the draw target this pattern will be used with. + * aMatrix A matrix that transforms the pattern into user space */ LinearGradientPattern(const Point &aBegin, const Point &aEnd, - GradientStops *aStops) + GradientStops *aStops, + const Matrix &aMatrix = Matrix()) : mBegin(aBegin) , mEnd(aEnd) , mStops(aStops) + , mMatrix(aMatrix) { } virtual PatternType GetType() const { return PATTERN_LINEAR_GRADIENT; } Point mBegin; Point mEnd; RefPtr<GradientStops> mStops; + Matrix mMatrix; }; /* * This class is used for Radial Gradient Patterns, the gradient stops are * stored in a separate object and are backend dependent. This class itself * may be used on the stack. */ class RadialGradientPattern : public Pattern { public: /* * aBegin Start of the linear gradient * aEnd End of the linear gradient * aStops GradientStops object for this gradient, this should match the * backend type of the draw target this pattern will be used with. + * aMatrix A matrix that transforms the pattern into user space */ RadialGradientPattern(const Point &aCenter1, const Point &aCenter2, Float aRadius1, Float aRadius2, - GradientStops *aStops) + GradientStops *aStops, + const Matrix &aMatrix = Matrix()) : mCenter1(aCenter1) , mCenter2(aCenter2) , mRadius1(aRadius1) , mRadius2(aRadius2) , mStops(aStops) + , mMatrix(aMatrix) { } virtual PatternType GetType() const { return PATTERN_RADIAL_GRADIENT; } Point mCenter1; Point mCenter2; Float mRadius1; Float mRadius2; RefPtr<GradientStops> mStops; + Matrix mMatrix; }; /* * This class is used for Surface Patterns, they wrap a surface and a * repetition mode for the surface. This may be used on the stack. */ class SurfacePattern : public Pattern { public: - SurfacePattern(SourceSurface *aSourceSurface, ExtendMode aExtendMode) + /* + * aSourceSurface Surface to use for drawing + * aExtendMode This determines how the image is extended outside the bounds + * of the image. + * aMatrix A matrix that transforms the pattern into user space + * aFilter Resampling filter used for resampling the image. + */ + SurfacePattern(SourceSurface *aSourceSurface, ExtendMode aExtendMode, + const Matrix &aMatrix = Matrix(), Filter aFilter = FILTER_LINEAR) : mSurface(aSourceSurface) , mExtendMode(aExtendMode) + , mFilter(aFilter) + , mMatrix(aMatrix) {} virtual PatternType GetType() const { return PATTERN_SURFACE; } RefPtr<SourceSurface> mSurface; ExtendMode mExtendMode; Filter mFilter; + Matrix mMatrix; }; /* * This is the base class for source surfaces. These objects are surfaces * which may be used as a source in a SurfacePattern of a DrawSurface call. * They cannot be drawn to directly. */ class SourceSurface : public RefCounted<SourceSurface> @@ -306,24 +332,31 @@ public: * DataSourceSurface's data can be accessed directly. */ virtual TemporaryRef<DataSourceSurface> GetDataSurface() = 0; }; class DataSourceSurface : public SourceSurface { public: + virtual SurfaceType GetType() const { return SURFACE_DATA; } /* Get the raw bitmap data of the surface */ virtual unsigned char *GetData() = 0; /* * Stride of the surface, distance in bytes between the start of the image * data belonging to row y and row y+1. This may be negative. */ virtual int32_t Stride() = 0; + /* + * This function is called after modifying the data on the source surface + * directly through the data pointer. + */ + virtual void MarkDirty() {} + virtual TemporaryRef<DataSourceSurface> GetDataSurface() { RefPtr<DataSourceSurface> temp = this; return temp.forget(); } }; /* This is an abstract object that accepts path segments. */ class PathSink : public RefCounted<PathSink> { public: virtual ~PathSink() {} @@ -602,37 +635,58 @@ public: * Fill a series of clyphs on the draw target with a certain source pattern. */ virtual void FillGlyphs(ScaledFont *aFont, const GlyphBuffer &aBuffer, const Pattern &aPattern, const DrawOptions &aOptions = DrawOptions()) = 0; /* + * This takes a source pattern and a mask, and composites the source pattern + * onto the destination surface using the alpha channel of the mask pattern + * as a mask for the operation. + * + * aSource Source pattern + * aMask Mask pattern + * aOptions Drawing options + */ + virtual void Mask(const Pattern &aSource, + const Pattern &aMask, + const DrawOptions &aOptions = DrawOptions()) = 0; + + /* * Push a clip to the DrawTarget. * * aPath The path to clip to */ virtual void PushClip(const Path *aPath) = 0; + /* + * Push an axis-aligned rectangular clip to the DrawTarget. This rectangle + * is specified in user space. + * + * aRect The rect to clip to + */ + virtual void PushClipRect(const Rect &aRect) = 0; + /* Pop a clip from the DrawTarget. A pop without a corresponding push will * be ignored. */ virtual void PopClip() = 0; /* * Create a SourceSurface optimized for use with this DrawTarget from * existing bitmap data in memory. * * The SourceSurface does not take ownership of aData, and may be freed at any time. */ virtual TemporaryRef<SourceSurface> CreateSourceSurfaceFromData(unsigned char *aData, - const IntSize &aSize, - int32_t aStride, - SurfaceFormat aFormat) const = 0; + const IntSize &aSize, + int32_t aStride, + SurfaceFormat aFormat) const = 0; /* * Create a SourceSurface optimized for use with this DrawTarget from * an arbitrary other SourceSurface. This may return aSourceSurface or some * other existing surface. */ virtual TemporaryRef<SourceSurface> OptimizeSourceSurface(SourceSurface *aSurface) const = 0; @@ -661,18 +715,23 @@ public: /* * Create a GradientStops object that holds information about a set of * gradient stops, this object is required for linear or radial gradient * patterns to represent the color stops in the gradient. * * aStops An array of gradient stops * aNumStops Number of stops in the array aStops + * aExtendNone This describes how to extend the stop color outside of the + * gradient area. */ - virtual TemporaryRef<GradientStops> CreateGradientStops(GradientStop *aStops, uint32_t aNumStops) const = 0; + virtual TemporaryRef<GradientStops> + CreateGradientStops(GradientStop *aStops, + uint32_t aNumStops, + ExtendMode aExtendMode = EXTEND_CLAMP) const = 0; const Matrix &GetTransform() const { return mTransform; } /* * Set a transform on the surface, this transform is applied at drawing time * to both the mask and source of the operation. */ virtual void SetTransform(const Matrix &aTransform) @@ -690,22 +749,44 @@ protected: bool mTransformDirty : 1; SurfaceFormat mFormat; }; class Factory { public: -#ifdef USE_CAIRO static TemporaryRef<DrawTarget> CreateDrawTargetForCairoSurface(cairo_surface_t* aSurface); -#endif + + static TemporaryRef<DrawTarget> + CreateDrawTarget(BackendType aBackend, const IntSize &aSize, SurfaceFormat aFormat); + + static TemporaryRef<DrawTarget> + CreateDrawTargetForData(BackendType aBackend, unsigned char* aData, const IntSize &aSize, int32_t aStride, SurfaceFormat aFormat); + + static TemporaryRef<ScaledFont> + CreateScaledFontForNativeFont(const NativeFont &aNativeFont, Float aSize); - static TemporaryRef<DrawTarget> CreateDrawTarget(BackendType aBackend, const IntSize &aSize, SurfaceFormat aFormat); - static TemporaryRef<ScaledFont> CreateScaledFontForNativeFont(const NativeFont &aNativeFont, Float aSize); + /* + * This creates a simple data source surface for a certain size. It allocates + * new memory for the surface. This memory is freed when the surface is + * destroyed. + */ + static TemporaryRef<DataSourceSurface> + CreateDataSourceSurface(const IntSize &aSize, SurfaceFormat aFormat); + + /* + * This creates a simple data source surface for some existing data. It will + * wrap this data and the data for this source surface. The caller is + * responsible for deallocating the memory only after destruction of the + * surface. + */ + static TemporaryRef<DataSourceSurface> + CreateDataSourceSurfaceFromData(unsigned char *aData, int32_t aStride, + const IntSize &aSize, SurfaceFormat aFormat); #ifdef WIN32 static TemporaryRef<DrawTarget> CreateDrawTargetForD3D10Texture(ID3D10Texture2D *aTexture, SurfaceFormat aFormat); static void SetDirect3D10Device(ID3D10Device1 *aDevice); static ID3D10Device1 *GetDirect3D10Device(); private: static ID3D10Device1 *mD3D10Device;
--- a/gfx/2d/DrawTargetCairo.h +++ b/gfx/2d/DrawTargetCairo.h @@ -101,34 +101,39 @@ public: const DrawOptions &aOptions = DrawOptions()) { return; } virtual void FillGlyphs(ScaledFont *aFont, const GlyphBuffer &aBuffer, const Pattern &aPattern, const DrawOptions &aOptions) { return; } + virtual void Mask(const Pattern &aSource, + const Pattern &aMask, + const DrawOptions &aOptions = DrawOptions()) + { return; } virtual void PushClip(const Path *aPath) { } + virtual void PushClipRect(const Rect &aRect) { } virtual void PopClip() { } virtual TemporaryRef<PathBuilder> CreatePathBuilder(FillRule aFillRule = FILL_WINDING) const { return NULL; } virtual TemporaryRef<SourceSurface> CreateSourceSurfaceFromData(unsigned char *aData, const IntSize &aSize, int32_t aStride, SurfaceFormat aFormat) const; virtual TemporaryRef<SourceSurface> OptimizeSourceSurface(SourceSurface *aSurface) const; virtual TemporaryRef<SourceSurface> CreateSourceSurfaceFromNativeSurface(const NativeSurface &aSurface) const; virtual TemporaryRef<DrawTarget> CreateSimilarDrawTarget(const IntSize &aSize, SurfaceFormat aFormat) const { return NULL; } - virtual TemporaryRef<GradientStops> CreateGradientStops(GradientStop *aStops, uint32_t aNumStops) const + virtual TemporaryRef<GradientStops> CreateGradientStops(GradientStop *aStops, uint32_t aNumStops, ExtendMode aExtendMode = EXTEND_CLAMP) const { return NULL; } virtual void *GetNativeSurface(NativeSurfaceType aType) { return NULL; } virtual void SetTransform(const Matrix& aTransform); bool Init(cairo_surface_t* aSurface);
--- a/gfx/2d/DrawTargetD2D.cpp +++ b/gfx/2d/DrawTargetD2D.cpp @@ -263,16 +263,18 @@ DrawTargetD2D::DrawSurface(SourceSurface const DrawOptions &aOptions) { RefPtr<ID2D1Bitmap> bitmap; ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, ColorPattern(Color())); PrepareForDrawing(rt); + rt->SetAntialiasMode(D2DAAMode(aOptions.mAntialiasMode)); + Rect srcRect = aSource; switch (aSurface->GetType()) { case SURFACE_D2D1_BITMAP: { SourceSurfaceD2D *srcSurf = static_cast<SourceSurfaceD2D*>(aSurface); bitmap = srcSurf->GetBitmap(); @@ -748,16 +750,18 @@ void DrawTargetD2D::FillRect(const Rect &aRect, const Pattern &aPattern, const DrawOptions &aOptions) { ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, aPattern); PrepareForDrawing(rt); + rt->SetAntialiasMode(D2DAAMode(aOptions.mAntialiasMode)); + RefPtr<ID2D1Brush> brush = CreateBrushForPattern(aPattern, aOptions.mAlpha); if (brush) { rt->FillRectangle(D2DRect(aRect), brush); } FinalizeRTForOperation(aOptions.mCompositionOp, aPattern, aRect); } @@ -767,16 +771,18 @@ DrawTargetD2D::StrokeRect(const Rect &aR const Pattern &aPattern, const StrokeOptions &aStrokeOptions, const DrawOptions &aOptions) { ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, aPattern); PrepareForDrawing(rt); + rt->SetAntialiasMode(D2DAAMode(aOptions.mAntialiasMode)); + RefPtr<ID2D1Brush> brush = CreateBrushForPattern(aPattern, aOptions.mAlpha); RefPtr<ID2D1StrokeStyle> strokeStyle = CreateStrokeStyleForOptions(aStrokeOptions); if (brush && strokeStyle) { rt->DrawRectangle(D2DRect(aRect), brush, aStrokeOptions.mLineWidth, strokeStyle); } @@ -789,16 +795,18 @@ DrawTargetD2D::StrokeLine(const Point &a const Pattern &aPattern, const StrokeOptions &aStrokeOptions, const DrawOptions &aOptions) { ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, aPattern); PrepareForDrawing(rt); + rt->SetAntialiasMode(D2DAAMode(aOptions.mAntialiasMode)); + RefPtr<ID2D1Brush> brush = CreateBrushForPattern(aPattern, aOptions.mAlpha); RefPtr<ID2D1StrokeStyle> strokeStyle = CreateStrokeStyleForOptions(aStrokeOptions); if (brush && strokeStyle) { rt->DrawLine(D2DPoint(aStart), D2DPoint(aEnd), brush, aStrokeOptions.mLineWidth, strokeStyle); } @@ -817,16 +825,18 @@ DrawTargetD2D::Stroke(const Path *aPath, } const PathD2D *d2dPath = static_cast<const PathD2D*>(aPath); ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, aPattern); PrepareForDrawing(rt); + rt->SetAntialiasMode(D2DAAMode(aOptions.mAntialiasMode)); + RefPtr<ID2D1Brush> brush = CreateBrushForPattern(aPattern, aOptions.mAlpha); RefPtr<ID2D1StrokeStyle> strokeStyle = CreateStrokeStyleForOptions(aStrokeOptions); if (brush && strokeStyle) { rt->DrawGeometry(d2dPath->mGeometry, brush, aStrokeOptions.mLineWidth, strokeStyle); } @@ -844,16 +854,18 @@ DrawTargetD2D::Fill(const Path *aPath, } const PathD2D *d2dPath = static_cast<const PathD2D*>(aPath); ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, aPattern); PrepareForDrawing(rt); + rt->SetAntialiasMode(D2DAAMode(aOptions.mAntialiasMode)); + RefPtr<ID2D1Brush> brush = CreateBrushForPattern(aPattern, aOptions.mAlpha); if (brush) { rt->FillGeometry(d2dPath->mGeometry, brush); } Rect bounds; if (aOptions.mCompositionOp != OP_OVER) { @@ -912,16 +924,46 @@ DrawTargetD2D::FillGlyphs(ScaledFont *aF if (brush) { rt->DrawGlyphRun(D2D1::Point2F(), &glyphRun, brush); } FinalizeRTForOperation(aOptions.mCompositionOp, aPattern, Rect(0, 0, (Float)mSize.width, (Float)mSize.height)); } void +DrawTargetD2D::Mask(const Pattern &aSource, + const Pattern &aMask, + const DrawOptions &aOptions) +{ + ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, aSource); + + PrepareForDrawing(rt); + + RefPtr<ID2D1Brush> brush = CreateBrushForPattern(aSource, aOptions.mAlpha); + RefPtr<ID2D1Brush> maskBrush = CreateBrushForPattern(aMask, 1.0f); + + RefPtr<ID2D1Layer> layer; + rt->CreateLayer(byRef(layer)); + rt->PushLayer(D2D1::LayerParameters(D2D1::InfiniteRect(), NULL, + D2D1_ANTIALIAS_MODE_PER_PRIMITIVE, + D2D1::IdentityMatrix(), + 1.0f, maskBrush), + layer); + + Rect rect(0, 0, mSize.width, mSize.height); + Matrix mat = mTransform; + mat.Invert(); + + rt->FillRectangle(D2DRect(mat.TransformBounds(rect)), brush); + rt->PopLayer(); + + FinalizeRTForOperation(aOptions.mCompositionOp, aSource, Rect(0, 0, (Float)mSize.width, (Float)mSize.height)); +} + +void DrawTargetD2D::PushClip(const Path *aPath) { if (aPath->GetBackendType() != BACKEND_DIRECT2D) { gfxDebug() << *this << ": Ignoring clipping call for incompatible path."; return; } RefPtr<PathD2D> pathD2D = static_cast<PathD2D*>(const_cast<Path*>(aPath)); @@ -953,34 +995,67 @@ DrawTargetD2D::PushClip(const Path *aPat mRT->PushLayer(D2D1::LayerParameters(D2D1::InfiniteRect(), pathD2D->mGeometry, D2D1_ANTIALIAS_MODE_PER_PRIMITIVE, clip.mTransform, 1.0f, NULL, options), layer); } } void +DrawTargetD2D::PushClipRect(const Rect &aRect) +{ + if (!mTransform.IsRectilinear()) { + // Whoops, this isn't a rectangle in device space, Direct2D will not deal + // with this transform the way we want it to. + // See remarks: http://msdn.microsoft.com/en-us/library/dd316860%28VS.85%29.aspx + + RefPtr<PathBuilder> pathBuilder = CreatePathBuilder(); + pathBuilder->MoveTo(aRect.TopLeft()); + pathBuilder->LineTo(aRect.TopRight()); + pathBuilder->LineTo(aRect.BottomRight()); + pathBuilder->LineTo(aRect.BottomLeft()); + pathBuilder->Close(); + RefPtr<Path> path = pathBuilder->Finish(); + return PushClip(path); + } + + PushedClip clip; + // Do not store the transform, just store the device space rectangle directly. + clip.mBounds = D2DRect(mTransform.TransformBounds(aRect)); + + mPushedClips.push_back(clip); + + mRT->SetTransform(D2D1::IdentityMatrix()); + if (mClipsArePushed) { + mRT->PushAxisAlignedClip(clip.mBounds, D2D1_ANTIALIAS_MODE_PER_PRIMITIVE); + } +} + +void DrawTargetD2D::PopClip() { if (mClipsArePushed) { - mRT->PopLayer(); + if (mPushedClips.back().mLayer) { + mRT->PopLayer(); + } else { + mRT->PopAxisAlignedClip(); + } } mPushedClips.pop_back(); } TemporaryRef<SourceSurface> DrawTargetD2D::CreateSourceSurfaceFromData(unsigned char *aData, const IntSize &aSize, int32_t aStride, SurfaceFormat aFormat) const { RefPtr<SourceSurfaceD2D> newSurf = new SourceSurfaceD2D(); if (!newSurf->InitFromData(aData, aSize, aStride, aFormat, mRT)) { - gfxDebug() << *this << ": Failure to create source surface from data. Size: " << aSize; return NULL; } return newSurf; } TemporaryRef<SourceSurface> DrawTargetD2D::OptimizeSourceSurface(SourceSurface *aSurface) const @@ -1044,28 +1119,32 @@ DrawTargetD2D::CreatePathBuilder(FillRul if (aFillRule == FILL_WINDING) { sink->SetFillMode(D2D1_FILL_MODE_WINDING); } return new PathBuilderD2D(sink, path, aFillRule); } TemporaryRef<GradientStops> -DrawTargetD2D::CreateGradientStops(GradientStop *rawStops, uint32_t aNumStops) const +DrawTargetD2D::CreateGradientStops(GradientStop *rawStops, uint32_t aNumStops, ExtendMode aExtendMode) const { D2D1_GRADIENT_STOP *stops = new D2D1_GRADIENT_STOP[aNumStops]; for (uint32_t i = 0; i < aNumStops; i++) { stops[i].position = rawStops[i].offset; stops[i].color = D2DColor(rawStops[i].color); } RefPtr<ID2D1GradientStopCollection> stopCollection; - HRESULT hr = mRT->CreateGradientStopCollection(stops, aNumStops, byRef(stopCollection)); + HRESULT hr = + mRT->CreateGradientStopCollection(stops, aNumStops, + D2D1_GAMMA_2_2, D2DExtend(aExtendMode), + byRef(stopCollection)); + delete [] stops; if (FAILED(hr)) { gfxWarning() << "Failed to create GradientStopCollection. Code: " << hr; return NULL; } return new GradientStopsD2D(stopCollection); } @@ -1092,30 +1171,35 @@ DrawTargetD2D::Init(const IntSize &aSize mFormat = aFormat; if (!Factory::GetDirect3D10Device()) { gfxDebug() << "Failed to Init Direct2D DrawTarget (No D3D10 Device set.)"; return false; } mDevice = Factory::GetDirect3D10Device(); - CD3D10_TEXTURE2D_DESC desc(DXGI_FORMAT_B8G8R8A8_UNORM, + CD3D10_TEXTURE2D_DESC desc(DXGIFormat(aFormat), mSize.width, mSize.height, 1, 1); desc.BindFlags = D3D10_BIND_RENDER_TARGET | D3D10_BIND_SHADER_RESOURCE; hr = mDevice->CreateTexture2D(&desc, NULL, byRef(mTexture)); if (FAILED(hr)) { gfxDebug() << "Failed to init Direct2D DrawTarget. Size: " << mSize << " Code: " << hr; return false; } - return InitD2DRenderTarget(); + if (!InitD2DRenderTarget()) { + return false; + } + + mRT->Clear(D2D1::ColorF(0, 0)); + return true; } bool DrawTargetD2D::Init(ID3D10Texture2D *aTexture, SurfaceFormat aFormat) { HRESULT hr; mTexture = aTexture; @@ -1225,49 +1309,52 @@ DrawTargetD2D::InitD2DRenderTarget() mRT = CreateRTForTexture(mTexture); if (!mRT) { return false; } mRT->BeginDraw(); - mRT->Clear(D2D1::ColorF(0, 0)); - if (mFormat == FORMAT_B8G8R8X8) { mRT->SetTextAntialiasMode(D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE); } return InitD3D10Data(); } void DrawTargetD2D::PrepareForDrawing(ID2D1RenderTarget *aRT) { if (!mClipsArePushed || aRT == mTempRT) { if (mPushedClips.size()) { // The transform of clips is relative to the world matrix, since we use the total // transform for the clips, make the world matrix identity. - mRT->SetTransform(D2D1::IdentityMatrix()); - mTransformDirty = true; + aRT->SetTransform(D2D1::IdentityMatrix()); + if (aRT == mRT) { + mTransformDirty = true; + mClipsArePushed = true; + } for (std::vector<PushedClip>::iterator iter = mPushedClips.begin(); - iter != mPushedClips.end(); iter++) { + iter != mPushedClips.end(); iter++) { D2D1_LAYER_OPTIONS options = D2D1_LAYER_OPTIONS_NONE; + if (iter->mLayer) { + D2D1_LAYER_OPTIONS options = D2D1_LAYER_OPTIONS_NONE; - if (mFormat == FORMAT_B8G8R8X8) { - options = D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE; + if (mFormat == FORMAT_B8G8R8X8) { + options = D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE; + } + + aRT->PushLayer(D2D1::LayerParameters(D2D1::InfiniteRect(), iter->mPath->mGeometry, + D2D1_ANTIALIAS_MODE_PER_PRIMITIVE, + iter->mTransform, 1.0f, NULL, + options), iter->mLayer); + } else { + aRT->PushAxisAlignedClip(iter->mBounds, D2D1_ANTIALIAS_MODE_PER_PRIMITIVE); } - - aRT->PushLayer(D2D1::LayerParameters(D2D1::InfiniteRect(), iter->mPath->mGeometry, - D2D1_ANTIALIAS_MODE_PER_PRIMITIVE, - iter->mTransform, 1.0f, NULL, - options), iter->mLayer); - } - if (aRT == mRT) { - mClipsArePushed = true; } } } FlushTransformToRT(); MarkChanged(); if (aRT == mTempRT) { mTempRT->SetTransform(D2DMatrix(mTransform)); @@ -1416,18 +1503,22 @@ DrawTargetD2D::FinalizeRTForOperation(Co if (aOperator == OP_OVER && !IsPatternSupportedByD2D(aPattern)) { return; } if (!mTempRT) { return; } - for (unsigned int i = 0; i < mPushedClips.size(); i++) { - mTempRT->PopLayer(); + for (int i = mPushedClips.size() - 1; i >= 0; i--) { + if (mPushedClips[i].mLayer) { + mTempRT->PopLayer(); + } else { + mTempRT->PopAxisAlignedClip(); + } } mRT->Flush(); mTempRT->Flush(); AutoSaveRestoreClippedOut restoreClippedOut(this); bool needsWriteBack = @@ -1530,17 +1621,17 @@ DrawTargetD2D::CreateRTForTexture(ID3D10 return NULL; } D3D10_TEXTURE2D_DESC desc; aTexture->GetDesc(&desc); D2D1_ALPHA_MODE alphaMode = D2D1_ALPHA_MODE_PREMULTIPLIED; - if (mFormat == FORMAT_B8G8R8X8) { + if (mFormat == FORMAT_B8G8R8X8 && aTexture == mTexture) { alphaMode = D2D1_ALPHA_MODE_IGNORE; } D2D1_RENDER_TARGET_PROPERTIES props = D2D1::RenderTargetProperties(D2D1_RENDER_TARGET_TYPE_DEFAULT, D2D1::PixelFormat(desc.Format, alphaMode)); hr = factory()->CreateDxgiSurfaceRenderTarget(surface, props, byRef(rt)); if (FAILED(hr)) { @@ -1587,18 +1678,22 @@ DrawTargetD2D::EnsureViews() gfxWarning() << *this << "Failed to create rendertarget view for temp texture. Code: " << hr; } } void DrawTargetD2D::PopAllClips() { if (mClipsArePushed) { - for (unsigned int i = 0; i < mPushedClips.size(); i++) { - mRT->PopLayer(); + for (int i = mPushedClips.size() - 1; i >= 0; i--) { + if (mPushedClips[i].mLayer) { + mRT->PopLayer(); + } else { + mRT->PopAxisAlignedClip(); + } } mClipsArePushed = false; } } TemporaryRef<ID2D1Brush> DrawTargetD2D::CreateBrushForPattern(const Pattern &aPattern, Float aAlpha) @@ -1624,19 +1719,30 @@ DrawTargetD2D::CreateBrushForPattern(con GradientStopsD2D *stops = static_cast<GradientStopsD2D*>(pat->mStops.get()); if (!stops) { gfxDebug() << "No stops specified for gradient pattern."; return NULL; } + if (pat->mBegin == pat->mEnd) { + RefPtr<ID2D1SolidColorBrush> colBrush; + uint32_t stopCount = stops->mStopCollection->GetGradientStopCount(); + vector<D2D1_GRADIENT_STOP> d2dStops(stopCount); + stops->mStopCollection->GetGradientStops(&d2dStops.front(), stopCount); + mRT->CreateSolidColorBrush(d2dStops.back().color, + D2D1::BrushProperties(aAlpha), + byRef(colBrush)); + return colBrush; + } + mRT->CreateLinearGradientBrush(D2D1::LinearGradientBrushProperties(D2DPoint(pat->mBegin), D2DPoint(pat->mEnd)), - D2D1::BrushProperties(aAlpha), + D2D1::BrushProperties(aAlpha, D2DMatrix(pat->mMatrix)), stops->mStopCollection, byRef(gradBrush)); return gradBrush; } else if (aPattern.GetType() == PATTERN_RADIAL_GRADIENT) { RefPtr<ID2D1RadialGradientBrush> gradBrush; const RadialGradientPattern *pat = static_cast<const RadialGradientPattern*>(&aPattern); @@ -1647,71 +1753,66 @@ DrawTargetD2D::CreateBrushForPattern(con return NULL; } // This will not be a complex radial gradient brush. mRT->CreateRadialGradientBrush( D2D1::RadialGradientBrushProperties(D2DPoint(pat->mCenter1), D2D1::Point2F(), pat->mRadius2, pat->mRadius2), - D2D1::BrushProperties(aAlpha), + D2D1::BrushProperties(aAlpha, D2DMatrix(pat->mMatrix)), stops->mStopCollection, byRef(gradBrush)); return gradBrush; } else if (aPattern.GetType() == PATTERN_SURFACE) { RefPtr<ID2D1BitmapBrush> bmBrush; const SurfacePattern *pat = static_cast<const SurfacePattern*>(&aPattern); if (!pat->mSurface) { gfxDebug() << "No source surface specified for surface pattern"; return NULL; } RefPtr<ID2D1Bitmap> bitmap; + + Matrix mat = pat->mMatrix; switch (pat->mSurface->GetType()) { case SURFACE_D2D1_BITMAP: { SourceSurfaceD2D *surf = static_cast<SourceSurfaceD2D*>(pat->mSurface.get()); bitmap = surf->mBitmap; if (!bitmap) { - gfxDebug() << "Source surface used for pattern too large!"; - return NULL; + bitmap = CreatePartialBitmapForSurface(surf, mat); + + if (!bitmap) { + return NULL; + } } } break; case SURFACE_D2D1_DRAWTARGET: { SourceSurfaceD2DTarget *surf = static_cast<SourceSurfaceD2DTarget*>(pat->mSurface.get()); bitmap = surf->GetBitmap(mRT); AddDependencyOnSource(surf); } break; } - - D2D1_EXTEND_MODE extend = D2D1_EXTEND_MODE_CLAMP; - switch (pat->mExtendMode) { - case EXTEND_WRAP: - extend = D2D1_EXTEND_MODE_WRAP; - break; - case EXTEND_MIRROR: - extend = D2D1_EXTEND_MODE_MIRROR; - break; - } - + mRT->CreateBitmapBrush(bitmap, - D2D1::BitmapBrushProperties(extend, - extend, + D2D1::BitmapBrushProperties(D2DExtend(pat->mExtendMode), + D2DExtend(pat->mExtendMode), D2DFilter(pat->mFilter)), - D2D1::BrushProperties(aAlpha), + D2D1::BrushProperties(aAlpha, D2DMatrix(mat)), byRef(bmBrush)); return bmBrush; } gfxWarning() << "Invalid pattern type detected."; return NULL; } @@ -1850,16 +1951,69 @@ DrawTargetD2D::CreateGradientTexture(con data.pSysMem = &textureData.front(); RefPtr<ID3D10Texture1D> tex; mDevice->CreateTexture1D(&desc, &data, byRef(tex)); return tex; } +TemporaryRef<ID2D1Bitmap> +DrawTargetD2D::CreatePartialBitmapForSurface(SourceSurfaceD2D *aSurface, Matrix &aMatrix) +{ + RefPtr<ID2D1Bitmap> bitmap; + + // This is where things get complicated. The source surface was + // created for a surface that was too large to fit in a texture. + // We'll need to figure out if we can work with a partial upload + // or downsample in software. + + Matrix transform = mTransform; + transform = aMatrix * transform; + if (!transform.Invert()) { + // Singular transform, nothing to be drawn. + return NULL; + } + + Rect rect(0, 0, mSize.width, mSize.height); + + // Calculate the rectangle of the source mapped to our surface. + rect = transform.TransformBounds(rect); + rect.RoundOut(); + + Rect uploadRect(0, 0, aSurface->mSize.width, aSurface->mSize.height); + + // Calculate the rectangle on the source bitmap that touches our + // surface. + uploadRect = uploadRect.Intersect(rect); + + if (uploadRect.width <= mRT->GetMaximumBitmapSize() && + uploadRect.height <= mRT->GetMaximumBitmapSize()) { + + int Bpp = BytesPerPixel(aSurface->mFormat); + int stride = Bpp * aSurface->mSize.width; + + // A partial upload will suffice. + mRT->CreateBitmap(D2D1::SizeU(uint32_t(uploadRect.width), uint32_t(uploadRect.height)), + &aSurface->mRawData.front() + int(uploadRect.x) + int(uploadRect.y) * stride, + stride, + D2D1::BitmapProperties(D2DPixelFormat(aSurface->mFormat)), + byRef(bitmap)); + + aMatrix.Translate(-uploadRect.x, -uploadRect.y); + + return bitmap; + } else { + // XXX - FIX ME!! + MOZ_ASSERT(false); + gfxDebug() << "Source surface used for pattern too large!"; + return NULL; + } +} + void DrawTargetD2D::SetupEffectForRadialGradient(const RadialGradientPattern *aPattern) { mPrivateData->mEffect->GetTechniqueByName("SampleRadialGradient")->GetPassByIndex(0)->Apply(0); mPrivateData->mEffect->GetVariableByName("MaskTexCoords")->AsVector()-> SetFloatVector(ShaderConstantRectD3D10(0, 0, 1.0f, 1.0f)); float dimensions[] = { float(mSize.width), float(mSize.height), 0, 0 }; @@ -1902,23 +2056,36 @@ DrawTargetD2D::SetupEffectForRadialGradi invTransform._21, invTransform._22, 0, 0, invTransform._31, invTransform._32, 1.0f, 0, 0, 0, 0, 1.0f }; mPrivateData->mEffect->GetVariableByName("DeviceSpaceToUserSpace")-> AsMatrix()->SetMatrix(matrix); float A = dc.x * dc.x + dc.y * dc.y - dr * dr; + + uint32_t offset = 0; + switch (stops->mStopCollection->GetExtendMode()) { + case D2D1_EXTEND_MODE_WRAP: + offset = 1; + break; + case D2D1_EXTEND_MODE_MIRROR: + offset = 2; + break; + default: + gfxWarning() << "This shouldn't happen! Invalid extend mode for gradient stops."; + } + if (A == 0) { mPrivateData->mEffect->GetTechniqueByName("SampleRadialGradient")-> - GetPassByIndex(1)->Apply(0); + GetPassByIndex(offset * 2 + 1)->Apply(0); } else { mPrivateData->mEffect->GetVariableByName("A")->AsScalar()->SetFloat(A); mPrivateData->mEffect->GetTechniqueByName("SampleRadialGradient")-> - GetPassByIndex(0)->Apply(0); + GetPassByIndex(offset * 2)->Apply(0); } } ID2D1Factory* DrawTargetD2D::factory() { if (mFactory) { return mFactory; @@ -1931,17 +2098,17 @@ DrawTargetD2D::factory() if (!createD2DFactory) { gfxWarning() << "Failed to locate D2D1CreateFactory function."; return NULL; } D2D1_FACTORY_OPTIONS options; #ifdef _DEBUG - options.debugLevel = D2D1_DEBUG_LEVEL_NONE; + options.debugLevel = D2D1_DEBUG_LEVEL_WARNING; #else options.debugLevel = D2D1_DEBUG_LEVEL_NONE; #endif HRESULT hr = createD2DFactory(D2D1_FACTORY_TYPE_MULTI_THREADED, __uuidof(ID2D1Factory), &options, (void**)&mFactory);
--- a/gfx/2d/DrawTargetD2D.h +++ b/gfx/2d/DrawTargetD2D.h @@ -51,16 +51,17 @@ #else #include <unordered_set> #endif namespace mozilla { namespace gfx { class SourceSurfaceD2DTarget; +class SourceSurfaceD2D; class GradientStopsD2D; struct PrivateD3D10DataD2D { RefPtr<ID3D10Effect> mEffect; RefPtr<ID3D10InputLayout> mInputLayout; RefPtr<ID3D10Buffer> mVB; RefPtr<ID3D10BlendState> mBlendStates[OP_COUNT]; @@ -112,34 +113,41 @@ public: const DrawOptions &aOptions = DrawOptions()); virtual void Fill(const Path *aPath, const Pattern &aPattern, const DrawOptions &aOptions = DrawOptions()); virtual void FillGlyphs(ScaledFont *aFont, const GlyphBuffer &aBuffer, const Pattern &aPattern, const DrawOptions &aOptions = DrawOptions()); + virtual void Mask(const Pattern &aSource, + const Pattern &aMask, + const DrawOptions &aOptions = DrawOptions()); virtual void PushClip(const Path *aPath); + virtual void PushClipRect(const Rect &aRect); virtual void PopClip(); virtual TemporaryRef<SourceSurface> CreateSourceSurfaceFromData(unsigned char *aData, const IntSize &aSize, int32_t aStride, SurfaceFormat aFormat) const; virtual TemporaryRef<SourceSurface> OptimizeSourceSurface(SourceSurface *aSurface) const; virtual TemporaryRef<SourceSurface> CreateSourceSurfaceFromNativeSurface(const NativeSurface &aSurface) const; virtual TemporaryRef<DrawTarget> CreateSimilarDrawTarget(const IntSize &aSize, SurfaceFormat aFormat) const; virtual TemporaryRef<PathBuilder> CreatePathBuilder(FillRule aFillRule = FILL_WINDING) const; - virtual TemporaryRef<GradientStops> CreateGradientStops(GradientStop *aStops, uint32_t aNumStops) const; + virtual TemporaryRef<GradientStops> + CreateGradientStops(GradientStop *aStops, + uint32_t aNumStops, + ExtendMode aExtendMode = EXTEND_CLAMP) const; virtual void *GetNativeSurface(NativeSurfaceType aType); bool Init(const IntSize &aSize, SurfaceFormat aFormat); bool Init(ID3D10Texture2D *aTexture, SurfaceFormat aFormat); bool InitD3D10Data(); static ID2D1Factory *factory(); @@ -181,16 +189,21 @@ private: TemporaryRef<ID2D1RenderTarget> CreateRTForTexture(ID3D10Texture2D *aTexture); TemporaryRef<ID2D1Geometry> GetClippedGeometry(); TemporaryRef<ID2D1Brush> CreateBrushForPattern(const Pattern &aPattern, Float aAlpha = 1.0f); TemporaryRef<ID3D10Texture1D> CreateGradientTexture(const GradientStopsD2D *aStops); + // This creates a partially uploaded bitmap for a SourceSurfaceD2D that is + // too big to fit in a bitmap. It adjusts the passed Matrix to accomodate the + // partial upload. + TemporaryRef<ID2D1Bitmap> CreatePartialBitmapForSurface(SourceSurfaceD2D *aSurface, Matrix &aMatrix); + void SetupEffectForRadialGradient(const RadialGradientPattern *aPattern); static const uint32_t test = 4; IntSize mSize; RefPtr<ID3D10Device1> mDevice; RefPtr<ID3D10Texture2D> mTexture;
--- a/gfx/2d/DrawTargetSkia.cpp +++ b/gfx/2d/DrawTargetSkia.cpp @@ -194,19 +194,19 @@ DrawTargetSkia::Snapshot() SkShader::TileMode ExtendModeToTileMode(ExtendMode aMode) { switch (aMode) { case EXTEND_CLAMP: return SkShader::kClamp_TileMode; - case EXTEND_WRAP: + case EXTEND_REPEAT: return SkShader::kRepeat_TileMode; - case EXTEND_MIRROR: + case EXTEND_REFLECT: return SkShader::kMirror_TileMode; } return SkShader::kClamp_TileMode; } struct AutoPaintSetup { AutoPaintSetup(SkCanvas *aCanvas, const DrawOptions& aOptions, const Pattern& aPattern) : mNeedsRestore(false), mAlpha(1.0) @@ -666,17 +666,17 @@ DrawTargetSkia::PushClip(const Path *aPa void DrawTargetSkia::PopClip() { mCanvas->restore(); } TemporaryRef<GradientStops> -DrawTargetSkia::CreateGradientStops(GradientStop *aStops, uint32_t aNumStops) const +DrawTargetSkia::CreateGradientStops(GradientStop *aStops, uint32_t aNumStops, ExtendMode aExtendMode) const { std::vector<GradientStop> stops; stops.resize(aNumStops); for (uint32_t i = 0; i < aNumStops; i++) { stops[i] = aStops[i]; } std::stable_sort(stops.begin(), stops.end());
--- a/gfx/2d/DrawTargetSkia.h +++ b/gfx/2d/DrawTargetSkia.h @@ -94,29 +94,34 @@ public: const DrawOptions &aOptions = DrawOptions()); virtual void Fill(const Path *aPath, const Pattern &aPattern, const DrawOptions &aOptions = DrawOptions()); virtual void FillGlyphs(ScaledFont *aFont, const GlyphBuffer &aBuffer, const Pattern &aPattern, const DrawOptions &aOptions = DrawOptions()); + virtual void Mask(const Pattern &aSource, + const Pattern &aMask, + const DrawOptions &aOptions = DrawOptions()) + { return; } virtual void PushClip(const Path *aPath); + virtual void PushClipRect(const Rect &aRect) { } virtual void PopClip(); virtual TemporaryRef<SourceSurface> CreateSourceSurfaceFromData(unsigned char *aData, const IntSize &aSize, int32_t aStride, SurfaceFormat aFormat) const; virtual TemporaryRef<SourceSurface> OptimizeSourceSurface(SourceSurface *aSurface) const; virtual TemporaryRef<SourceSurface> CreateSourceSurfaceFromNativeSurface(const NativeSurface &aSurface) const; virtual TemporaryRef<DrawTarget> CreateSimilarDrawTarget(const IntSize &aSize, SurfaceFormat aFormat) const; virtual TemporaryRef<PathBuilder> CreatePathBuilder(FillRule aFillRule = FILL_WINDING) const; - virtual TemporaryRef<GradientStops> CreateGradientStops(GradientStop *aStops, uint32_t aNumStops) const; + virtual TemporaryRef<GradientStops> CreateGradientStops(GradientStop *aStops, uint32_t aNumStops, ExtendMode aExtendMode = EXTEND_CLAMP) const; virtual void SetTransform(const Matrix &aTransform); bool Init(const IntSize &aSize, SurfaceFormat aFormat); operator std::string() const { std::stringstream stream; stream << "DrawTargetSkia(" << this << ")"; return stream.str();
--- a/gfx/2d/HelpersD2D.h +++ b/gfx/2d/HelpersD2D.h @@ -54,31 +54,46 @@ static inline D2D1_SIZE_U D2DIntSize(con return D2D1::SizeU(aSize.width, aSize.height); } static inline D2D1_RECT_F D2DRect(const Rect &aRect) { return D2D1::RectF(aRect.x, aRect.y, aRect.XMost(), aRect.YMost()); } +static inline D2D1_EXTEND_MODE D2DExtend(ExtendMode aExtendMode) +{ + D2D1_EXTEND_MODE extend = D2D1_EXTEND_MODE_CLAMP; + switch (aExtendMode) { + case EXTEND_REPEAT: + extend = D2D1_EXTEND_MODE_WRAP; + break; + case EXTEND_REFLECT: + extend = D2D1_EXTEND_MODE_MIRROR; + break; + } + + return extend; +} + static inline D2D1_BITMAP_INTERPOLATION_MODE D2DFilter(const Filter &aFilter) { switch (aFilter) { case FILTER_POINT: return D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR; } return D2D1_BITMAP_INTERPOLATION_MODE_LINEAR; } -static inline D2D1_ANTIALIAS_MODE D2DAAMode(const AntialiasMode &aMode) +static inline D2D1_ANTIALIAS_MODE D2DAAMode(AntialiasMode aMode) { switch (aMode) { case AA_NONE: - D2D1_ANTIALIAS_MODE_ALIASED; + return D2D1_ANTIALIAS_MODE_ALIASED; } return D2D1_ANTIALIAS_MODE_PER_PRIMITIVE; } static inline D2D1_MATRIX_3X2_F D2DMatrix(const Matrix &aTransform) { return D2D1::Matrix3x2F(aTransform._11, aTransform._12, @@ -136,16 +151,21 @@ static inline D2D1_ALPHA_MODE AlphaMode( switch (aFormat) { case FORMAT_B8G8R8X8: return D2D1_ALPHA_MODE_IGNORE; } return D2D1_ALPHA_MODE_PREMULTIPLIED; } +static inline D2D1_PIXEL_FORMAT D2DPixelFormat(SurfaceFormat aFormat) +{ + return D2D1::PixelFormat(DXGIFormat(aFormat), AlphaMode(aFormat)); +} + static inline int BytesPerPixel(SurfaceFormat aFormat) { switch (aFormat) { case FORMAT_A8: return 1; default: return 4; }
--- a/gfx/2d/Matrix.h +++ b/gfx/2d/Matrix.h @@ -138,14 +138,32 @@ public: resultMatrix._12 = this->_11 * aMatrix._12 + this->_12 * aMatrix._22; resultMatrix._21 = this->_21 * aMatrix._11 + this->_22 * aMatrix._21; resultMatrix._22 = this->_21 * aMatrix._12 + this->_22 * aMatrix._22; resultMatrix._31 = this->_31 * aMatrix._11 + this->_32 * aMatrix._21 + aMatrix._31; resultMatrix._32 = this->_31 * aMatrix._12 + this->_32 * aMatrix._22 + aMatrix._32; return resultMatrix; } + + /* Returns true if the matrix is a rectilinear transformation (i.e. + * grid-aligned rectangles are transformed to grid-aligned rectangles) + */ + bool IsRectilinear() { + if (FuzzyEqual(_12, 0) && FuzzyEqual(_21, 0)) { + return true; + } else if (FuzzyEqual(_22, 0) && FuzzyEqual(_11, 0)) { + return true; + } + + return false; + } +private: + static bool FuzzyEqual(Float aV1, Float aV2) { + // XXX - Check if fabs does the smart thing and just negates the sign bit. + return fabs(aV2 - aV1) < 1e-6; + } }; } } #endif /* MOZILLA_GFX_MATRIX_H_ */
--- a/gfx/2d/ShadersD2D.fx +++ b/gfx/2d/ShadersD2D.fx @@ -55,16 +55,30 @@ Texture2D mask; sampler sSampler = sampler_state { Filter = MIN_MAG_MIP_LINEAR; Texture = tex; AddressU = Clamp; AddressV = Clamp; }; +sampler sWrapSampler = sampler_state { + Filter = MIN_MAG_MIP_LINEAR; + Texture = tex; + AddressU = Wrap; + AddressV = Wrap; +}; + +sampler sMirrorSampler = sampler_state { + Filter = MIN_MAG_MIP_LINEAR; + Texture = tex; + AddressU = Mirror; + AddressV = Mirror; +}; + sampler sMaskSampler = sampler_state { Filter = MIN_MAG_MIP_LINEAR; Texture = mask; AddressU = Clamp; AddressV = Clamp; }; sampler sShadowSampler = sampler_state { @@ -137,17 +151,17 @@ float4 SampleTexturePS( VS_OUTPUT In) : return tex.Sample(sSampler, In.TexCoord); }; float4 SampleMaskTexturePS( VS_OUTPUT In) : SV_Target { return tex.Sample(sSampler, In.TexCoord) * mask.Sample(sMaskSampler, In.MaskTexCoord).a; }; -float4 SampleRadialGradientPS( VS_RADIAL_OUTPUT In) : SV_Target +float4 SampleRadialGradientPS(VS_RADIAL_OUTPUT In, uniform sampler aSampler) : SV_Target { // Radial gradient painting is defined as the set of circles whose centers // are described by C(t) = (C2 - C1) * t + C1; with radii // R(t) = (R2 - R1) * t + R1; for R(t) > 0. This shader solves the // quadratic equation that arises when calculating t for pixel (x, y). // // A more extensive derrivation can be found in the pixman radial gradient // code. @@ -173,25 +187,25 @@ float4 SampleRadialGradientPS( VS_RADIAL float2 isValid = step(float2(-radius1, -radius1), t * diff.z); if (max(isValid.x, isValid.y) <= 0) { return float4(0, 0, 0, 0); } float upper_t = lerp(t.y, t.x, isValid.x); - float4 output = tex.Sample(sSampler, float2(upper_t, 0.5)); + float4 output = tex.Sample(aSampler, float2(upper_t, 0.5)); // Premultiply output.rgb *= output.a; // Multiply the output color by the input mask for the operation. output *= mask.Sample(sMaskSampler, In.MaskTexCoord).a; return output; }; -float4 SampleRadialGradientA0PS( VS_RADIAL_OUTPUT In) : SV_Target +float4 SampleRadialGradientA0PS( VS_RADIAL_OUTPUT In, uniform sampler aSampler ) : SV_Target { // This simpler shader is used for the degenerate case where A is 0, // i.e. we're actually solving a linear equation. float2 p = In.PixelCoord; float3 dp = float3(p - center1, radius1); // dpx * dcx + dpy * dcy + r * dr @@ -200,17 +214,17 @@ float4 SampleRadialGradientA0PS( VS_RADI float C = pow(dp.x, 2) + pow(dp.y, 2) - pow(radius1, 2); float t = 0.5 * C / B; if (-radius1 >= t * diff.z) { return float4(0, 0, 0, 0); } - float4 output = tex.Sample(sSampler, float2(t, 0.5)); + float4 output = tex.Sample(aSampler, float2(t, 0.5)); // Premultiply output.rgb *= output.a; // Multiply the output color by the input mask for the operation. output *= mask.Sample(sMaskSampler, In.MaskTexCoord).a; return output; }; float4 SampleShadowHPS( VS_OUTPUT In) : SV_Target @@ -272,29 +286,57 @@ technique10 SampleTexture SetVertexShader(CompileShader(vs_4_0_level_9_3, SampleTextureVS())); SetGeometryShader(NULL); SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleTexturePS())); } } technique10 SampleRadialGradient { - pass P0 + pass APos + { + SetRasterizerState(TextureRast); + SetVertexShader(CompileShader(vs_4_0_level_9_3, SampleRadialVS())); + SetGeometryShader(NULL); + SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleRadialGradientPS( sSampler ))); + } + pass A0 + { + SetRasterizerState(TextureRast); + SetVertexShader(CompileShader(vs_4_0_level_9_3, SampleRadialVS())); + SetGeometryShader(NULL); + SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleRadialGradientA0PS( sSampler ))); + } + pass APosWrap { SetRasterizerState(TextureRast); SetVertexShader(CompileShader(vs_4_0_level_9_3, SampleRadialVS())); SetGeometryShader(NULL); - SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleRadialGradientPS())); + SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleRadialGradientPS( sWrapSampler ))); } - pass P1 + pass A0Wrap { SetRasterizerState(TextureRast); SetVertexShader(CompileShader(vs_4_0_level_9_3, SampleRadialVS())); SetGeometryShader(NULL); - SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleRadialGradientA0PS())); + SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleRadialGradientA0PS( sWrapSampler ))); + } + pass APosMirror + { + SetRasterizerState(TextureRast); + SetVertexShader(CompileShader(vs_4_0_level_9_3, SampleRadialVS())); + SetGeometryShader(NULL); + SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleRadialGradientPS( sMirrorSampler ))); + } + pass A0Mirror + { + SetRasterizerState(TextureRast); + SetVertexShader(CompileShader(vs_4_0_level_9_3, SampleRadialVS())); + SetGeometryShader(NULL); + SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleRadialGradientA0PS( sMirrorSampler ))); } } technique10 SampleMaskedTexture { pass P0 { SetRasterizerState(TextureRast);
--- a/gfx/2d/ShadersD2D.h +++ b/gfx/2d/ShadersD2D.h @@ -27,27 +27,41 @@ cbuffer cb2 float3 diff; // Offset: 64, size: 12 float2 center1; // Offset: 80, size: 8 float A; // Offset: 88, size: 4 float radius1; // Offset: 92, size: 4 float sq_radius1; // Offset: 96, size: 4 } // -// 8 local object(s) +// 10 local object(s) // Texture2D tex; Texture2D mask; SamplerState sSampler { Filter = uint(MIN_MAG_MIP_LINEAR /* 21 */); Texture = tex; AddressU = uint(CLAMP /* 3 */); AddressV = uint(CLAMP /* 3 */); }; +SamplerState sWrapSampler +{ + Filter = uint(MIN_MAG_MIP_LINEAR /* 21 */); + Texture = tex; + AddressU = uint(WRAP /* 1 */); + AddressV = uint(WRAP /* 1 */); +}; +SamplerState sMirrorSampler +{ + Filter = uint(MIN_MAG_MIP_LINEAR /* 21 */); + Texture = tex; + AddressU = uint(MIRROR /* 2 */); + AddressV = uint(MIRROR /* 2 */); +}; SamplerState sMaskSampler { Filter = uint(MIN_MAG_MIP_LINEAR /* 21 */); Texture = mask; AddressU = uint(CLAMP /* 3 */); AddressV = uint(CLAMP /* 3 */); }; SamplerState sShadowSampler @@ -227,17 +241,17 @@ technique10 SampleTexture }; } } technique10 SampleRadialGradient { - pass P0 + pass APos { RasterizerState = TextureRast; VertexShader = asm { // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // // Buffer Definitions: @@ -495,17 +509,17 @@ technique10 SampleRadialGradient sample r0.xyzw, v1.xyxx, t1.xyzw, s1 mul o0.xyzw, r0.wwww, r2.xyzw ret // Approximately 33 instruction slots used }; } - pass P1 + pass A0 { RasterizerState = TextureRast; VertexShader = asm { // // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 // // // Buffer Definitions: @@ -738,16 +752,1038 @@ technique10 SampleRadialGradient sample r0.xyzw, v1.xyxx, t1.xyzw, s1 mul o0.xyzw, r0.wwww, r1.xyzw ret // Approximately 19 instruction slots used }; } + pass APosWrap + { + RasterizerState = TextureRast; + VertexShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 + // + // + // Buffer Definitions: + // + // cbuffer cb0 + // { + // + // float4 QuadDesc; // Offset: 0 Size: 16 + // float4 TexCoords; // Offset: 16 Size: 16 [unused] + // float4 MaskTexCoords; // Offset: 32 Size: 16 + // + // } + // + // cbuffer cb2 + // { + // + // float3x3 DeviceSpaceToUserSpace; // Offset: 0 Size: 44 + // float2 dimensions; // Offset: 48 Size: 8 + // float3 diff; // Offset: 64 Size: 12 [unused] + // float2 center1; // Offset: 80 Size: 8 [unused] + // float A; // Offset: 88 Size: 4 [unused] + // float radius1; // Offset: 92 Size: 4 [unused] + // float sq_radius1; // Offset: 96 Size: 4 [unused] + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // cb0 cbuffer NA NA 0 1 + // cb2 cbuffer NA NA 1 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // POSITION 0 xyz 0 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float xyzw + // TEXCOORD 0 xy 1 NONE float xy + // TEXCOORD 1 zw 1 NONE float zw + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c1 cb0 0 1 ( FLT, FLT, FLT, FLT) + // c2 cb0 2 1 ( FLT, FLT, FLT, FLT) + // c3 cb1 0 2 ( FLT, FLT, FLT, FLT) + // c5 cb1 3 1 ( FLT, FLT, FLT, FLT) + // + // + // Runtime generated constant mappings: + // + // Target Reg Constant Description + // ---------- -------------------------------------------------- + // c0 Vertex Shader position offset + // + // + // Level9 shader bytecode: + // + vs_2_x + def c6, 1, 0.5, 0, 0 + dcl_texcoord v0 + mad oT0.xy, v0, c2.zwzw, c2 + mad r0.xy, v0, c1.zwzw, c1 + add r0.z, r0.x, c6.x + mul r0.z, r0.z, c5.x + mul r1.x, r0.z, c6.y + add r0.z, -r0.y, c6.x + add oPos.xy, r0, c0 + mul r0.x, r0.z, c5.y + mul r1.y, r0.x, c6.y + mov r1.z, c6.x + dp3 oT0.w, r1, c3 + dp3 oT0.z, r1, c4 + mov oPos.zw, c6.xyzx + + // approximately 13 instruction slots used + vs_4_0 + dcl_constantbuffer cb0[3], immediateIndexed + dcl_constantbuffer cb1[4], immediateIndexed + dcl_input v0.xy + dcl_output_siv o0.xyzw, position + dcl_output o1.xy + dcl_output o1.zw + dcl_temps 2 + mov o0.zw, l(0,0,0,1.000000) + mad r0.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx + mov o0.xy, r0.xyxx + add r0.x, r0.x, l(1.000000) + add r0.y, -r0.y, l(1.000000) + mul r0.xy, r0.xyxx, cb1[3].xyxx + mul r1.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) + mov r1.z, l(1.000000) + dp3 o1.z, r1.xyzx, cb1[0].xyzx + dp3 o1.w, r1.xyzx, cb1[1].xyzx + mad o1.xy, v0.xyxx, cb0[2].zwzz, cb0[2].xyxx + ret + // Approximately 12 instruction slots used + + }; + GeometryShader = NULL; + PixelShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 + // + // + // Buffer Definitions: + // + // cbuffer cb2 + // { + // + // float3x3 DeviceSpaceToUserSpace; // Offset: 0 Size: 44 [unused] + // float2 dimensions; // Offset: 48 Size: 8 [unused] + // float3 diff; // Offset: 64 Size: 12 + // float2 center1; // Offset: 80 Size: 8 + // float A; // Offset: 88 Size: 4 + // float radius1; // Offset: 92 Size: 4 + // float sq_radius1; // Offset: 96 Size: 4 + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // sWrapSampler sampler NA NA 0 1 + // sMaskSampler sampler NA NA 1 1 + // tex texture float4 2d 0 1 + // mask texture float4 2d 1 1 + // cb2 cbuffer NA NA 0 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float + // TEXCOORD 0 xy 1 NONE float xy + // TEXCOORD 1 zw 1 NONE float zw + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Target 0 xyzw 0 TARGET float xyzw + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c0 cb0 4 3 ( FLT, FLT, FLT, FLT) + // + // + // Sampler/Resource to DX9 shader sampler mappings: + // + // Target Sampler Source Sampler Source Resource + // -------------- --------------- ---------------- + // s0 s0 t0 + // s1 s1 t1 + // + // + // Level9 shader bytecode: + // + ps_2_x + def c3, 0.5, 0, 0, 0 + def c4, 1, -1, 0, -0 + dcl t0 + dcl_2d s0 + dcl_2d s1 + add r0.xy, t0.wzzw, -c1 + dp2add r0.w, r0, r0, -c2.x + mul r0.w, r0.w, c1.z + mov r0.z, c1.w + dp3 r0.x, r0, c0 + mad r0.y, r0.x, r0.x, -r0.w + abs r0.z, r0.y + rsq r0.z, r0.z + rcp r1.x, r0.z + mov r1.yz, -r1.x + add r0.xzw, r0.x, r1.xyyz + rcp r1.x, c1.z + mul r0.xzw, r0, r1.x + mov r1.w, c1.w + mad r1.xyz, r0.xzww, c0.z, r1.w + cmp r2.x, r1.x, r0.x, r0.w + cmp r0.xzw, r1.xyyz, c4.xyxy, c4.zyzw + mov r2.y, c3.x + texld r1, t0, s1 + texld r2, r2, s0 + mul r2.xyz, r2.w, r2 + mul r1, r1.w, r2 + add r0.w, r0.w, r0.x + cmp r0.x, r0.w, r0.x, r0.z + cmp r1, -r0.x, c4.z, r1 + cmp r0, r0.y, r1, c4.z + mov oC0, r0 + + // approximately 28 instruction slots used (2 texture, 26 arithmetic) + ps_4_0 + dcl_constantbuffer cb0[7], immediateIndexed + dcl_sampler s0, mode_default + dcl_sampler s1, mode_default + dcl_resource_texture2d (float,float,float,float) t0 + dcl_resource_texture2d (float,float,float,float) t1 + dcl_input_ps linear v1.xy + dcl_input_ps linear v1.zw + dcl_output o0.xyzw + dcl_temps 3 + add r0.xy, v1.zwzz, -cb0[5].xyxx + mov r0.z, cb0[5].w + dp3 r0.z, r0.xyzx, cb0[4].xyzx + dp2 r0.x, r0.xyxx, r0.xyxx + add r0.x, r0.x, -cb0[6].x + mul r0.x, r0.x, cb0[5].z + mad r0.x, r0.z, r0.z, -r0.x + lt r0.y, r0.x, l(0.000000) + sqrt r1.x, |r0.x| + mov r1.y, -r1.x + add r0.xz, r0.zzzz, r1.xxyx + div r0.xz, r0.xxzx, cb0[5].zzzz + mul r1.xy, r0.xzxx, cb0[4].zzzz + ge r1.xy, r1.xyxx, -cb0[5].wwww + and r1.xy, r1.xyxx, l(0x3f800000, 0x3f800000, 0, 0) + add r0.x, -r0.z, r0.x + mad r2.x, r1.x, r0.x, r0.z + mov r2.y, l(0.500000) + sample r2.xyzw, r2.xyxx, t0.xyzw, s0 + if_nz r0.y + mov o0.xyzw, l(0,0,0,0) + ret + endif + max r0.x, r1.y, r1.x + ge r0.x, l(0.000000), r0.x + if_nz r0.x + mov o0.xyzw, l(0,0,0,0) + ret + endif + mul r2.xyz, r2.wwww, r2.xyzx + sample r0.xyzw, v1.xyxx, t1.xyzw, s1 + mul o0.xyzw, r0.wwww, r2.xyzw + ret + // Approximately 33 instruction slots used + + }; + } + + pass A0Wrap + { + RasterizerState = TextureRast; + VertexShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 + // + // + // Buffer Definitions: + // + // cbuffer cb0 + // { + // + // float4 QuadDesc; // Offset: 0 Size: 16 + // float4 TexCoords; // Offset: 16 Size: 16 [unused] + // float4 MaskTexCoords; // Offset: 32 Size: 16 + // + // } + // + // cbuffer cb2 + // { + // + // float3x3 DeviceSpaceToUserSpace; // Offset: 0 Size: 44 + // float2 dimensions; // Offset: 48 Size: 8 + // float3 diff; // Offset: 64 Size: 12 [unused] + // float2 center1; // Offset: 80 Size: 8 [unused] + // float A; // Offset: 88 Size: 4 [unused] + // float radius1; // Offset: 92 Size: 4 [unused] + // float sq_radius1; // Offset: 96 Size: 4 [unused] + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // cb0 cbuffer NA NA 0 1 + // cb2 cbuffer NA NA 1 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // POSITION 0 xyz 0 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float xyzw + // TEXCOORD 0 xy 1 NONE float xy + // TEXCOORD 1 zw 1 NONE float zw + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c1 cb0 0 1 ( FLT, FLT, FLT, FLT) + // c2 cb0 2 1 ( FLT, FLT, FLT, FLT) + // c3 cb1 0 2 ( FLT, FLT, FLT, FLT) + // c5 cb1 3 1 ( FLT, FLT, FLT, FLT) + // + // + // Runtime generated constant mappings: + // + // Target Reg Constant Description + // ---------- -------------------------------------------------- + // c0 Vertex Shader position offset + // + // + // Level9 shader bytecode: + // + vs_2_x + def c6, 1, 0.5, 0, 0 + dcl_texcoord v0 + mad oT0.xy, v0, c2.zwzw, c2 + mad r0.xy, v0, c1.zwzw, c1 + add r0.z, r0.x, c6.x + mul r0.z, r0.z, c5.x + mul r1.x, r0.z, c6.y + add r0.z, -r0.y, c6.x + add oPos.xy, r0, c0 + mul r0.x, r0.z, c5.y + mul r1.y, r0.x, c6.y + mov r1.z, c6.x + dp3 oT0.w, r1, c3 + dp3 oT0.z, r1, c4 + mov oPos.zw, c6.xyzx + + // approximately 13 instruction slots used + vs_4_0 + dcl_constantbuffer cb0[3], immediateIndexed + dcl_constantbuffer cb1[4], immediateIndexed + dcl_input v0.xy + dcl_output_siv o0.xyzw, position + dcl_output o1.xy + dcl_output o1.zw + dcl_temps 2 + mov o0.zw, l(0,0,0,1.000000) + mad r0.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx + mov o0.xy, r0.xyxx + add r0.x, r0.x, l(1.000000) + add r0.y, -r0.y, l(1.000000) + mul r0.xy, r0.xyxx, cb1[3].xyxx + mul r1.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) + mov r1.z, l(1.000000) + dp3 o1.z, r1.xyzx, cb1[0].xyzx + dp3 o1.w, r1.xyzx, cb1[1].xyzx + mad o1.xy, v0.xyxx, cb0[2].zwzz, cb0[2].xyxx + ret + // Approximately 12 instruction slots used + + }; + GeometryShader = NULL; + PixelShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 + // + // + // Buffer Definitions: + // + // cbuffer cb2 + // { + // + // float3x3 DeviceSpaceToUserSpace; // Offset: 0 Size: 44 [unused] + // float2 dimensions; // Offset: 48 Size: 8 [unused] + // float3 diff; // Offset: 64 Size: 12 + // float2 center1; // Offset: 80 Size: 8 + // float A; // Offset: 88 Size: 4 [unused] + // float radius1; // Offset: 92 Size: 4 + // float sq_radius1; // Offset: 96 Size: 4 [unused] + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // sWrapSampler sampler NA NA 0 1 + // sMaskSampler sampler NA NA 1 1 + // tex texture float4 2d 0 1 + // mask texture float4 2d 1 1 + // cb2 cbuffer NA NA 0 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float + // TEXCOORD 0 xy 1 NONE float xy + // TEXCOORD 1 zw 1 NONE float zw + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Target 0 xyzw 0 TARGET float xyzw + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c0 cb0 4 2 ( FLT, FLT, FLT, FLT) + // + // + // Sampler/Resource to DX9 shader sampler mappings: + // + // Target Sampler Source Sampler Source Resource + // -------------- --------------- ---------------- + // s0 s0 t0 + // s1 s1 t1 + // + // + // Level9 shader bytecode: + // + ps_2_x + def c2, 0.5, 0, 0, 0 + dcl t0 + dcl_2d s0 + dcl_2d s1 + mul r0.w, c1.w, c1.w + add r0.xy, t0.wzzw, -c1 + dp2add r0.w, r0, r0, -r0.w + mul r0.w, r0.w, c2.x + mov r0.z, c1.w + dp3 r0.x, r0, c0 + rcp r0.x, r0.x + mul r0.x, r0.x, r0.w + mov r0.y, c2.x + texld r1, t0, s1 + texld r2, r0, s0 + mov r0.w, c1.w + mad r0.x, r0.x, -c0.z, -r0.w + mul r2.xyz, r2.w, r2 + mul r1, r1.w, r2 + cmp r0, r0.x, c2.y, r1 + mov oC0, r0 + + // approximately 18 instruction slots used (2 texture, 16 arithmetic) + ps_4_0 + dcl_constantbuffer cb0[6], immediateIndexed + dcl_sampler s0, mode_default + dcl_sampler s1, mode_default + dcl_resource_texture2d (float,float,float,float) t0 + dcl_resource_texture2d (float,float,float,float) t1 + dcl_input_ps linear v1.xy + dcl_input_ps linear v1.zw + dcl_output o0.xyzw + dcl_temps 2 + add r0.xy, v1.zwzz, -cb0[5].xyxx + mov r0.z, cb0[5].w + dp3 r0.z, r0.xyzx, cb0[4].xyzx + dp2 r0.x, r0.xyxx, r0.xyxx + mad r0.x, -cb0[5].w, cb0[5].w, r0.x + mul r0.x, r0.x, l(0.500000) + div r0.x, r0.x, r0.z + mul r0.z, r0.x, cb0[4].z + ge r0.z, -cb0[5].w, r0.z + mov r0.y, l(0.500000) + sample r1.xyzw, r0.xyxx, t0.xyzw, s0 + if_nz r0.z + mov o0.xyzw, l(0,0,0,0) + ret + endif + mul r1.xyz, r1.wwww, r1.xyzx + sample r0.xyzw, v1.xyxx, t1.xyzw, s1 + mul o0.xyzw, r0.wwww, r1.xyzw + ret + // Approximately 19 instruction slots used + + }; + } + + pass APosMirror + { + RasterizerState = TextureRast; + VertexShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 + // + // + // Buffer Definitions: + // + // cbuffer cb0 + // { + // + // float4 QuadDesc; // Offset: 0 Size: 16 + // float4 TexCoords; // Offset: 16 Size: 16 [unused] + // float4 MaskTexCoords; // Offset: 32 Size: 16 + // + // } + // + // cbuffer cb2 + // { + // + // float3x3 DeviceSpaceToUserSpace; // Offset: 0 Size: 44 + // float2 dimensions; // Offset: 48 Size: 8 + // float3 diff; // Offset: 64 Size: 12 [unused] + // float2 center1; // Offset: 80 Size: 8 [unused] + // float A; // Offset: 88 Size: 4 [unused] + // float radius1; // Offset: 92 Size: 4 [unused] + // float sq_radius1; // Offset: 96 Size: 4 [unused] + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // cb0 cbuffer NA NA 0 1 + // cb2 cbuffer NA NA 1 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // POSITION 0 xyz 0 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float xyzw + // TEXCOORD 0 xy 1 NONE float xy + // TEXCOORD 1 zw 1 NONE float zw + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c1 cb0 0 1 ( FLT, FLT, FLT, FLT) + // c2 cb0 2 1 ( FLT, FLT, FLT, FLT) + // c3 cb1 0 2 ( FLT, FLT, FLT, FLT) + // c5 cb1 3 1 ( FLT, FLT, FLT, FLT) + // + // + // Runtime generated constant mappings: + // + // Target Reg Constant Description + // ---------- -------------------------------------------------- + // c0 Vertex Shader position offset + // + // + // Level9 shader bytecode: + // + vs_2_x + def c6, 1, 0.5, 0, 0 + dcl_texcoord v0 + mad oT0.xy, v0, c2.zwzw, c2 + mad r0.xy, v0, c1.zwzw, c1 + add r0.z, r0.x, c6.x + mul r0.z, r0.z, c5.x + mul r1.x, r0.z, c6.y + add r0.z, -r0.y, c6.x + add oPos.xy, r0, c0 + mul r0.x, r0.z, c5.y + mul r1.y, r0.x, c6.y + mov r1.z, c6.x + dp3 oT0.w, r1, c3 + dp3 oT0.z, r1, c4 + mov oPos.zw, c6.xyzx + + // approximately 13 instruction slots used + vs_4_0 + dcl_constantbuffer cb0[3], immediateIndexed + dcl_constantbuffer cb1[4], immediateIndexed + dcl_input v0.xy + dcl_output_siv o0.xyzw, position + dcl_output o1.xy + dcl_output o1.zw + dcl_temps 2 + mov o0.zw, l(0,0,0,1.000000) + mad r0.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx + mov o0.xy, r0.xyxx + add r0.x, r0.x, l(1.000000) + add r0.y, -r0.y, l(1.000000) + mul r0.xy, r0.xyxx, cb1[3].xyxx + mul r1.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) + mov r1.z, l(1.000000) + dp3 o1.z, r1.xyzx, cb1[0].xyzx + dp3 o1.w, r1.xyzx, cb1[1].xyzx + mad o1.xy, v0.xyxx, cb0[2].zwzz, cb0[2].xyxx + ret + // Approximately 12 instruction slots used + + }; + GeometryShader = NULL; + PixelShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 + // + // + // Buffer Definitions: + // + // cbuffer cb2 + // { + // + // float3x3 DeviceSpaceToUserSpace; // Offset: 0 Size: 44 [unused] + // float2 dimensions; // Offset: 48 Size: 8 [unused] + // float3 diff; // Offset: 64 Size: 12 + // float2 center1; // Offset: 80 Size: 8 + // float A; // Offset: 88 Size: 4 + // float radius1; // Offset: 92 Size: 4 + // float sq_radius1; // Offset: 96 Size: 4 + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // sMirrorSampler sampler NA NA 0 1 + // sMaskSampler sampler NA NA 1 1 + // tex texture float4 2d 0 1 + // mask texture float4 2d 1 1 + // cb2 cbuffer NA NA 0 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float + // TEXCOORD 0 xy 1 NONE float xy + // TEXCOORD 1 zw 1 NONE float zw + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Target 0 xyzw 0 TARGET float xyzw + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c0 cb0 4 3 ( FLT, FLT, FLT, FLT) + // + // + // Sampler/Resource to DX9 shader sampler mappings: + // + // Target Sampler Source Sampler Source Resource + // -------------- --------------- ---------------- + // s0 s0 t0 + // s1 s1 t1 + // + // + // Level9 shader bytecode: + // + ps_2_x + def c3, 0.5, 0, 0, 0 + def c4, 1, -1, 0, -0 + dcl t0 + dcl_2d s0 + dcl_2d s1 + add r0.xy, t0.wzzw, -c1 + dp2add r0.w, r0, r0, -c2.x + mul r0.w, r0.w, c1.z + mov r0.z, c1.w + dp3 r0.x, r0, c0 + mad r0.y, r0.x, r0.x, -r0.w + abs r0.z, r0.y + rsq r0.z, r0.z + rcp r1.x, r0.z + mov r1.yz, -r1.x + add r0.xzw, r0.x, r1.xyyz + rcp r1.x, c1.z + mul r0.xzw, r0, r1.x + mov r1.w, c1.w + mad r1.xyz, r0.xzww, c0.z, r1.w + cmp r2.x, r1.x, r0.x, r0.w + cmp r0.xzw, r1.xyyz, c4.xyxy, c4.zyzw + mov r2.y, c3.x + texld r1, t0, s1 + texld r2, r2, s0 + mul r2.xyz, r2.w, r2 + mul r1, r1.w, r2 + add r0.w, r0.w, r0.x + cmp r0.x, r0.w, r0.x, r0.z + cmp r1, -r0.x, c4.z, r1 + cmp r0, r0.y, r1, c4.z + mov oC0, r0 + + // approximately 28 instruction slots used (2 texture, 26 arithmetic) + ps_4_0 + dcl_constantbuffer cb0[7], immediateIndexed + dcl_sampler s0, mode_default + dcl_sampler s1, mode_default + dcl_resource_texture2d (float,float,float,float) t0 + dcl_resource_texture2d (float,float,float,float) t1 + dcl_input_ps linear v1.xy + dcl_input_ps linear v1.zw + dcl_output o0.xyzw + dcl_temps 3 + add r0.xy, v1.zwzz, -cb0[5].xyxx + mov r0.z, cb0[5].w + dp3 r0.z, r0.xyzx, cb0[4].xyzx + dp2 r0.x, r0.xyxx, r0.xyxx + add r0.x, r0.x, -cb0[6].x + mul r0.x, r0.x, cb0[5].z + mad r0.x, r0.z, r0.z, -r0.x + lt r0.y, r0.x, l(0.000000) + sqrt r1.x, |r0.x| + mov r1.y, -r1.x + add r0.xz, r0.zzzz, r1.xxyx + div r0.xz, r0.xxzx, cb0[5].zzzz + mul r1.xy, r0.xzxx, cb0[4].zzzz + ge r1.xy, r1.xyxx, -cb0[5].wwww + and r1.xy, r1.xyxx, l(0x3f800000, 0x3f800000, 0, 0) + add r0.x, -r0.z, r0.x + mad r2.x, r1.x, r0.x, r0.z + mov r2.y, l(0.500000) + sample r2.xyzw, r2.xyxx, t0.xyzw, s0 + if_nz r0.y + mov o0.xyzw, l(0,0,0,0) + ret + endif + max r0.x, r1.y, r1.x + ge r0.x, l(0.000000), r0.x + if_nz r0.x + mov o0.xyzw, l(0,0,0,0) + ret + endif + mul r2.xyz, r2.wwww, r2.xyzx + sample r0.xyzw, v1.xyxx, t1.xyzw, s1 + mul o0.xyzw, r0.wwww, r2.xyzw + ret + // Approximately 33 instruction slots used + + }; + } + + pass A0Mirror + { + RasterizerState = TextureRast; + VertexShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 + // + // + // Buffer Definitions: + // + // cbuffer cb0 + // { + // + // float4 QuadDesc; // Offset: 0 Size: 16 + // float4 TexCoords; // Offset: 16 Size: 16 [unused] + // float4 MaskTexCoords; // Offset: 32 Size: 16 + // + // } + // + // cbuffer cb2 + // { + // + // float3x3 DeviceSpaceToUserSpace; // Offset: 0 Size: 44 + // float2 dimensions; // Offset: 48 Size: 8 + // float3 diff; // Offset: 64 Size: 12 [unused] + // float2 center1; // Offset: 80 Size: 8 [unused] + // float A; // Offset: 88 Size: 4 [unused] + // float radius1; // Offset: 92 Size: 4 [unused] + // float sq_radius1; // Offset: 96 Size: 4 [unused] + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // cb0 cbuffer NA NA 0 1 + // cb2 cbuffer NA NA 1 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // POSITION 0 xyz 0 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float xyzw + // TEXCOORD 0 xy 1 NONE float xy + // TEXCOORD 1 zw 1 NONE float zw + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c1 cb0 0 1 ( FLT, FLT, FLT, FLT) + // c2 cb0 2 1 ( FLT, FLT, FLT, FLT) + // c3 cb1 0 2 ( FLT, FLT, FLT, FLT) + // c5 cb1 3 1 ( FLT, FLT, FLT, FLT) + // + // + // Runtime generated constant mappings: + // + // Target Reg Constant Description + // ---------- -------------------------------------------------- + // c0 Vertex Shader position offset + // + // + // Level9 shader bytecode: + // + vs_2_x + def c6, 1, 0.5, 0, 0 + dcl_texcoord v0 + mad oT0.xy, v0, c2.zwzw, c2 + mad r0.xy, v0, c1.zwzw, c1 + add r0.z, r0.x, c6.x + mul r0.z, r0.z, c5.x + mul r1.x, r0.z, c6.y + add r0.z, -r0.y, c6.x + add oPos.xy, r0, c0 + mul r0.x, r0.z, c5.y + mul r1.y, r0.x, c6.y + mov r1.z, c6.x + dp3 oT0.w, r1, c3 + dp3 oT0.z, r1, c4 + mov oPos.zw, c6.xyzx + + // approximately 13 instruction slots used + vs_4_0 + dcl_constantbuffer cb0[3], immediateIndexed + dcl_constantbuffer cb1[4], immediateIndexed + dcl_input v0.xy + dcl_output_siv o0.xyzw, position + dcl_output o1.xy + dcl_output o1.zw + dcl_temps 2 + mov o0.zw, l(0,0,0,1.000000) + mad r0.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx + mov o0.xy, r0.xyxx + add r0.x, r0.x, l(1.000000) + add r0.y, -r0.y, l(1.000000) + mul r0.xy, r0.xyxx, cb1[3].xyxx + mul r1.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) + mov r1.z, l(1.000000) + dp3 o1.z, r1.xyzx, cb1[0].xyzx + dp3 o1.w, r1.xyzx, cb1[1].xyzx + mad o1.xy, v0.xyxx, cb0[2].zwzz, cb0[2].xyxx + ret + // Approximately 12 instruction slots used + + }; + GeometryShader = NULL; + PixelShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 + // + // + // Buffer Definitions: + // + // cbuffer cb2 + // { + // + // float3x3 DeviceSpaceToUserSpace; // Offset: 0 Size: 44 [unused] + // float2 dimensions; // Offset: 48 Size: 8 [unused] + // float3 diff; // Offset: 64 Size: 12 + // float2 center1; // Offset: 80 Size: 8 + // float A; // Offset: 88 Size: 4 [unused] + // float radius1; // Offset: 92 Size: 4 + // float sq_radius1; // Offset: 96 Size: 4 [unused] + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // sMirrorSampler sampler NA NA 0 1 + // sMaskSampler sampler NA NA 1 1 + // tex texture float4 2d 0 1 + // mask texture float4 2d 1 1 + // cb2 cbuffer NA NA 0 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float + // TEXCOORD 0 xy 1 NONE float xy + // TEXCOORD 1 zw 1 NONE float zw + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Target 0 xyzw 0 TARGET float xyzw + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c0 cb0 4 2 ( FLT, FLT, FLT, FLT) + // + // + // Sampler/Resource to DX9 shader sampler mappings: + // + // Target Sampler Source Sampler Source Resource + // -------------- --------------- ---------------- + // s0 s0 t0 + // s1 s1 t1 + // + // + // Level9 shader bytecode: + // + ps_2_x + def c2, 0.5, 0, 0, 0 + dcl t0 + dcl_2d s0 + dcl_2d s1 + mul r0.w, c1.w, c1.w + add r0.xy, t0.wzzw, -c1 + dp2add r0.w, r0, r0, -r0.w + mul r0.w, r0.w, c2.x + mov r0.z, c1.w + dp3 r0.x, r0, c0 + rcp r0.x, r0.x + mul r0.x, r0.x, r0.w + mov r0.y, c2.x + texld r1, t0, s1 + texld r2, r0, s0 + mov r0.w, c1.w + mad r0.x, r0.x, -c0.z, -r0.w + mul r2.xyz, r2.w, r2 + mul r1, r1.w, r2 + cmp r0, r0.x, c2.y, r1 + mov oC0, r0 + + // approximately 18 instruction slots used (2 texture, 16 arithmetic) + ps_4_0 + dcl_constantbuffer cb0[6], immediateIndexed + dcl_sampler s0, mode_default + dcl_sampler s1, mode_default + dcl_resource_texture2d (float,float,float,float) t0 + dcl_resource_texture2d (float,float,float,float) t1 + dcl_input_ps linear v1.xy + dcl_input_ps linear v1.zw + dcl_output o0.xyzw + dcl_temps 2 + add r0.xy, v1.zwzz, -cb0[5].xyxx + mov r0.z, cb0[5].w + dp3 r0.z, r0.xyzx, cb0[4].xyzx + dp2 r0.x, r0.xyxx, r0.xyxx + mad r0.x, -cb0[5].w, cb0[5].w, r0.x + mul r0.x, r0.x, l(0.500000) + div r0.x, r0.x, r0.z + mul r0.z, r0.x, cb0[4].z + ge r0.z, -cb0[5].w, r0.z + mov r0.y, l(0.500000) + sample r1.xyzw, r0.xyxx, t0.xyzw, s0 + if_nz r0.z + mov o0.xyzw, l(0,0,0,0) + ret + endif + mul r1.xyz, r1.wwww, r1.xyzx + sample r0.xyzw, v1.xyxx, t1.xyzw, s1 + mul o0.xyzw, r0.wwww, r1.xyzw + ret + // Approximately 19 instruction slots used + + }; + } + } technique10 SampleMaskedTexture { pass P0 { RasterizerState = TextureRast; VertexShader = asm { @@ -1616,36 +2652,36 @@ technique10 SampleTextureWithShadow } } #endif const BYTE d2deffect[] = { - 68, 88, 66, 67, 109, 248, - 87, 153, 208, 172, 175, 58, - 169, 190, 216, 26, 197, 8, - 157, 19, 1, 0, 0, 0, - 1, 102, 0, 0, 1, 0, + 68, 88, 66, 67, 89, 219, + 143, 13, 125, 145, 119, 9, + 237, 27, 203, 21, 5, 113, + 148, 91, 1, 0, 0, 0, + 89, 168, 0, 0, 1, 0, 0, 0, 36, 0, 0, 0, - 70, 88, 49, 48, 213, 101, + 70, 88, 49, 48, 45, 168, 0, 0, 1, 16, 255, 254, 3, 0, 0, 0, 14, 0, - 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 157, 94, + 0, 0, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 21, 159, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 14, 0, - 0, 0, 14, 0, 0, 0, + 1, 0, 0, 0, 5, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 22, 0, + 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 99, 98, 48, 0, 102, 108, 111, 97, 116, 52, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 16, 0, 0, 0, 10, 33, 0, 0, 81, 117, 97, 100, 68, @@ -1720,236 +2756,683 @@ const BYTE d2deffect[] = 0, 0, 0, 115, 83, 97, 109, 112, 108, 101, 114, 0, 1, 0, 0, 0, 2, 0, 0, 0, 21, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, - 115, 77, 97, 115, 107, 83, + 115, 87, 114, 97, 112, 83, 97, 109, 112, 108, 101, 114, 0, 1, 0, 0, 0, 2, 0, 0, 0, 21, 0, 0, 0, 1, 0, 0, 0, 2, - 0, 0, 0, 3, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, - 0, 0, 0, 3, 0, 0, - 0, 115, 83, 104, 97, 100, - 111, 119, 83, 97, 109, 112, + 0, 0, 0, 1, 0, 0, + 0, 115, 77, 105, 114, 114, + 111, 114, 83, 97, 109, 112, 108, 101, 114, 0, 1, 0, 0, 0, 2, 0, 0, 0, 21, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, - 4, 0, 0, 0, 1, 0, + 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, - 4, 0, 0, 0, 4, 0, + 2, 0, 0, 0, 115, 77, + 97, 115, 107, 83, 97, 109, + 112, 108, 101, 114, 0, 1, + 0, 0, 0, 2, 0, 0, + 0, 21, 0, 0, 0, 1, + 0, 0, 0, 2, 0, 0, + 0, 3, 0, 0, 0, 1, + 0, 0, 0, 2, 0, 0, + 0, 3, 0, 0, 0, 115, + 83, 104, 97, 100, 111, 119, + 83, 97, 109, 112, 108, 101, + 114, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 21, 0, + 0, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 4, 0, + 0, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 4, 0, + 0, 0, 4, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 82, 97, - 115, 116, 101, 114, 105, 122, - 101, 114, 83, 116, 97, 116, - 101, 0, 128, 2, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 84, 101, 120, 116, 117, 114, - 101, 82, 97, 115, 116, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 66, 108, 101, 110, 100, 83, - 116, 97, 116, 101, 0, 208, - 2, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, - 0, 0, 0, 83, 104, 97, - 100, 111, 119, 66, 108, 101, - 110, 100, 72, 0, 1, 0, + 0, 0, 82, 97, 115, 116, + 101, 114, 105, 122, 101, 114, + 83, 116, 97, 116, 101, 0, + 228, 2, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 84, 101, + 120, 116, 117, 114, 101, 82, + 97, 115, 116, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 15, 0, 0, 0, 83, 104, - 97, 100, 111, 119, 66, 108, - 101, 110, 100, 86, 0, 1, - 0, 0, 0, 2, 0, 0, - 0, 1, 0, 0, 0, 1, - 0, 0, 0, 2, 0, 0, - 0, 2, 0, 0, 0, 1, - 0, 0, 0, 2, 0, 0, - 0, 6, 0, 0, 0, 1, - 0, 0, 0, 2, 0, 0, - 0, 1, 0, 0, 0, 1, - 0, 0, 0, 2, 0, 0, - 0, 2, 0, 0, 0, 1, - 0, 0, 0, 2, 0, 0, - 0, 6, 0, 0, 0, 1, + 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 66, 108, + 101, 110, 100, 83, 116, 97, + 116, 101, 0, 52, 3, 0, + 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, - 0, 1, 0, 0, 0, 1, - 0, 0, 0, 3, 0, 0, - 0, 15, 0, 0, 0, 83, - 97, 109, 112, 108, 101, 84, - 101, 120, 116, 117, 114, 101, - 0, 80, 48, 0, 36, 4, - 0, 0, 68, 88, 66, 67, - 116, 139, 68, 62, 73, 113, - 92, 4, 72, 76, 225, 161, - 30, 132, 222, 233, 1, 0, - 0, 0, 36, 4, 0, 0, - 6, 0, 0, 0, 56, 0, - 0, 0, 248, 0, 0, 0, - 244, 1, 0, 0, 112, 2, - 0, 0, 128, 3, 0, 0, - 180, 3, 0, 0, 65, 111, - 110, 57, 184, 0, 0, 0, - 184, 0, 0, 0, 0, 2, - 254, 255, 132, 0, 0, 0, - 52, 0, 0, 0, 1, 0, - 36, 0, 0, 0, 48, 0, + 0, 83, 104, 97, 100, 111, + 119, 66, 108, 101, 110, 100, + 72, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 15, 0, + 0, 0, 83, 104, 97, 100, + 111, 119, 66, 108, 101, 110, + 100, 86, 0, 1, 0, 0, + 0, 2, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 0, + 0, 2, 0, 0, 0, 2, + 0, 0, 0, 1, 0, 0, + 0, 2, 0, 0, 0, 6, + 0, 0, 0, 1, 0, 0, + 0, 2, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 0, + 0, 2, 0, 0, 0, 2, + 0, 0, 0, 1, 0, 0, + 0, 2, 0, 0, 0, 6, + 0, 0, 0, 1, 0, 0, + 0, 2, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 0, + 0, 3, 0, 0, 0, 15, + 0, 0, 0, 83, 97, 109, + 112, 108, 101, 84, 101, 120, + 116, 117, 114, 101, 0, 80, + 48, 0, 36, 4, 0, 0, + 68, 88, 66, 67, 116, 139, + 68, 62, 73, 113, 92, 4, + 72, 76, 225, 161, 30, 132, + 222, 233, 1, 0, 0, 0, + 36, 4, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 248, 0, 0, 0, 244, 1, + 0, 0, 112, 2, 0, 0, + 128, 3, 0, 0, 180, 3, + 0, 0, 65, 111, 110, 57, + 184, 0, 0, 0, 184, 0, + 0, 0, 0, 2, 254, 255, + 132, 0, 0, 0, 52, 0, + 0, 0, 1, 0, 36, 0, 0, 0, 48, 0, 0, 0, - 36, 0, 1, 0, 48, 0, - 0, 0, 0, 0, 3, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, - 254, 255, 81, 0, 0, 5, - 4, 0, 15, 160, 0, 0, + 48, 0, 0, 0, 36, 0, + 1, 0, 48, 0, 0, 0, + 0, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 254, 255, + 81, 0, 0, 5, 4, 0, + 15, 160, 0, 0, 0, 0, + 0, 0, 128, 63, 0, 0, + 0, 0, 0, 0, 0, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 4, 0, 0, 4, 0, 0, + 3, 224, 0, 0, 228, 144, + 2, 0, 238, 160, 2, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 12, 224, 0, 0, + 20, 144, 3, 0, 180, 160, + 3, 0, 20, 160, 4, 0, + 0, 4, 0, 0, 3, 128, + 0, 0, 228, 144, 1, 0, + 238, 160, 1, 0, 228, 160, + 2, 0, 0, 3, 0, 0, + 3, 192, 0, 0, 228, 128, + 0, 0, 228, 160, 1, 0, + 0, 2, 0, 0, 12, 192, + 4, 0, 68, 160, 255, 255, + 0, 0, 83, 72, 68, 82, + 244, 0, 0, 0, 64, 0, + 1, 0, 61, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 95, 0, + 0, 3, 50, 16, 16, 0, + 0, 0, 0, 0, 103, 0, + 0, 4, 242, 32, 16, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 50, 32, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 194, 32, 16, 0, 1, 0, + 0, 0, 50, 0, 0, 11, + 50, 32, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 0, 0, 0, 0, 230, 138, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 70, 128, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 8, 194, 32, 16, 0, + 0, 0, 0, 0, 2, 64, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, - 0, 0, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 2, - 5, 0, 0, 128, 0, 0, - 15, 144, 4, 0, 0, 4, - 0, 0, 3, 224, 0, 0, - 228, 144, 2, 0, 238, 160, - 2, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 12, 224, - 0, 0, 20, 144, 3, 0, - 180, 160, 3, 0, 20, 160, + 50, 0, 0, 11, 50, 32, + 16, 0, 1, 0, 0, 0, + 70, 16, 16, 0, 0, 0, + 0, 0, 230, 138, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 70, 128, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 50, 0, 0, 11, + 194, 32, 16, 0, 1, 0, + 0, 0, 6, 20, 16, 0, + 0, 0, 0, 0, 166, 142, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 6, 132, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 62, 0, + 0, 1, 83, 84, 65, 84, + 116, 0, 0, 0, 5, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 82, 68, 69, 70, 8, 1, + 0, 0, 1, 0, 0, 0, + 64, 0, 0, 0, 1, 0, + 0, 0, 28, 0, 0, 0, + 0, 4, 254, 255, 0, 1, + 0, 0, 212, 0, 0, 0, + 60, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 99, 98, 48, 0, + 60, 0, 0, 0, 3, 0, + 0, 0, 88, 0, 0, 0, + 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 160, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 172, 0, + 0, 0, 0, 0, 0, 0, + 188, 0, 0, 0, 16, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 172, 0, + 0, 0, 0, 0, 0, 0, + 198, 0, 0, 0, 32, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 172, 0, + 0, 0, 0, 0, 0, 0, + 81, 117, 97, 100, 68, 101, + 115, 99, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 84, 101, + 120, 67, 111, 111, 114, 100, + 115, 0, 77, 97, 115, 107, + 84, 101, 120, 67, 111, 111, + 114, 100, 115, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 57, 46, 50, + 57, 46, 57, 53, 50, 46, + 51, 49, 49, 49, 0, 171, + 171, 171, 73, 83, 71, 78, + 44, 0, 0, 0, 1, 0, + 0, 0, 8, 0, 0, 0, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 7, 3, 0, 0, + 80, 79, 83, 73, 84, 73, + 79, 78, 0, 171, 171, 171, + 79, 83, 71, 78, 104, 0, + 0, 0, 3, 0, 0, 0, + 8, 0, 0, 0, 80, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 92, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 3, 12, 0, 0, 92, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 12, 3, 0, 0, 83, 86, + 95, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 171, 171, 171, 254, 3, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 212, 2, 0, 0, 68, 88, + 66, 67, 22, 206, 82, 103, + 196, 235, 84, 233, 156, 39, + 210, 152, 32, 145, 169, 162, + 1, 0, 0, 0, 212, 2, + 0, 0, 6, 0, 0, 0, + 56, 0, 0, 0, 164, 0, + 0, 0, 16, 1, 0, 0, + 140, 1, 0, 0, 48, 2, + 0, 0, 160, 2, 0, 0, + 65, 111, 110, 57, 100, 0, + 0, 0, 100, 0, 0, 0, + 0, 2, 255, 255, 60, 0, + 0, 0, 40, 0, 0, 0, + 0, 0, 40, 0, 0, 0, + 40, 0, 0, 0, 40, 0, + 1, 0, 36, 0, 0, 0, + 40, 0, 0, 0, 0, 0, + 1, 2, 255, 255, 31, 0, + 0, 2, 0, 0, 0, 128, + 0, 0, 15, 176, 31, 0, + 0, 2, 0, 0, 0, 144, + 0, 8, 15, 160, 66, 0, + 0, 3, 0, 0, 15, 128, + 0, 0, 228, 176, 0, 8, + 228, 160, 1, 0, 0, 2, + 0, 8, 15, 128, 0, 0, + 228, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 100, 0, + 0, 0, 64, 0, 0, 0, + 25, 0, 0, 0, 90, 0, + 0, 3, 0, 96, 16, 0, + 0, 0, 0, 0, 88, 24, + 0, 4, 0, 112, 16, 0, + 0, 0, 0, 0, 85, 85, + 0, 0, 98, 16, 0, 3, + 50, 16, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 69, 0, 0, 9, + 242, 32, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 1, 0, 0, 0, 70, 126, + 16, 0, 0, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 83, 84, 65, 84, 116, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 68, + 69, 70, 156, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 28, 0, 0, 0, 0, 4, + 255, 255, 0, 1, 0, 0, + 105, 0, 0, 0, 92, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 101, 0, 0, 0, 2, 0, + 0, 0, 5, 0, 0, 0, + 4, 0, 0, 0, 255, 255, + 255, 255, 0, 0, 0, 0, + 1, 0, 0, 0, 12, 0, + 0, 0, 115, 83, 97, 109, + 112, 108, 101, 114, 0, 116, + 101, 120, 0, 77, 105, 99, + 114, 111, 115, 111, 102, 116, + 32, 40, 82, 41, 32, 72, + 76, 83, 76, 32, 83, 104, + 97, 100, 101, 114, 32, 67, + 111, 109, 112, 105, 108, 101, + 114, 32, 57, 46, 50, 57, + 46, 57, 53, 50, 46, 51, + 49, 49, 49, 0, 171, 171, + 73, 83, 71, 78, 104, 0, + 0, 0, 3, 0, 0, 0, + 8, 0, 0, 0, 80, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 92, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 3, 3, 0, 0, 92, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 12, 0, 0, 0, 83, 86, + 95, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 171, 171, 171, 79, 83, + 71, 78, 44, 0, 0, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 83, 86, 95, 84, + 97, 114, 103, 101, 116, 0, + 171, 171, 58, 8, 0, 0, + 0, 0, 0, 0, 83, 97, + 109, 112, 108, 101, 82, 97, + 100, 105, 97, 108, 71, 114, + 97, 100, 105, 101, 110, 116, + 0, 65, 80, 111, 115, 0, + 4, 7, 0, 0, 68, 88, + 66, 67, 171, 7, 14, 215, + 173, 41, 24, 247, 237, 1, + 38, 39, 209, 221, 241, 232, + 1, 0, 0, 0, 4, 7, + 0, 0, 6, 0, 0, 0, + 56, 0, 0, 0, 148, 1, + 0, 0, 104, 3, 0, 0, + 228, 3, 0, 0, 96, 6, + 0, 0, 148, 6, 0, 0, + 65, 111, 110, 57, 84, 1, + 0, 0, 84, 1, 0, 0, + 0, 2, 254, 255, 252, 0, + 0, 0, 88, 0, 0, 0, + 4, 0, 36, 0, 0, 0, + 84, 0, 0, 0, 84, 0, + 0, 0, 36, 0, 1, 0, + 84, 0, 0, 0, 0, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 2, 0, + 1, 0, 2, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 2, 0, 3, 0, 0, 0, + 0, 0, 1, 0, 3, 0, + 1, 0, 5, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 2, 254, 255, 81, 0, + 0, 5, 6, 0, 15, 160, + 0, 0, 128, 63, 0, 0, + 0, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 31, 0, + 0, 2, 5, 0, 0, 128, + 0, 0, 15, 144, 4, 0, + 0, 4, 0, 0, 3, 224, + 0, 0, 228, 144, 2, 0, + 238, 160, 2, 0, 228, 160, 4, 0, 0, 4, 0, 0, 3, 128, 0, 0, 228, 144, 1, 0, 238, 160, 1, 0, 228, 160, 2, 0, 0, 3, - 0, 0, 3, 192, 0, 0, - 228, 128, 0, 0, 228, 160, - 1, 0, 0, 2, 0, 0, - 12, 192, 4, 0, 68, 160, - 255, 255, 0, 0, 83, 72, - 68, 82, 244, 0, 0, 0, - 64, 0, 1, 0, 61, 0, + 0, 0, 4, 128, 0, 0, + 0, 128, 6, 0, 0, 160, + 5, 0, 0, 3, 0, 0, + 4, 128, 0, 0, 170, 128, + 5, 0, 0, 160, 5, 0, + 0, 3, 1, 0, 1, 128, + 0, 0, 170, 128, 6, 0, + 85, 160, 2, 0, 0, 3, + 0, 0, 4, 128, 0, 0, + 85, 129, 6, 0, 0, 160, + 2, 0, 0, 3, 0, 0, + 3, 192, 0, 0, 228, 128, + 0, 0, 228, 160, 5, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 170, 128, 5, 0, + 85, 160, 5, 0, 0, 3, + 1, 0, 2, 128, 0, 0, + 0, 128, 6, 0, 85, 160, + 1, 0, 0, 2, 1, 0, + 4, 128, 6, 0, 0, 160, + 8, 0, 0, 3, 0, 0, + 8, 224, 1, 0, 228, 128, + 3, 0, 228, 160, 8, 0, + 0, 3, 0, 0, 4, 224, + 1, 0, 228, 128, 4, 0, + 228, 160, 1, 0, 0, 2, + 0, 0, 12, 192, 6, 0, + 36, 160, 255, 255, 0, 0, + 83, 72, 68, 82, 204, 1, + 0, 0, 64, 0, 1, 0, + 115, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 3, 0, 0, 0, + 70, 142, 32, 0, 1, 0, + 0, 0, 4, 0, 0, 0, 95, 0, 0, 3, 50, 16, 16, 0, 0, 0, 0, 0, 103, 0, 0, 4, 242, 32, 16, 0, 0, 0, 0, 0, 1, 0, 0, 0, 101, 0, 0, 3, 50, 32, 16, 0, 1, 0, 0, 0, 101, 0, 0, 3, 194, 32, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 11, 50, 32, 16, 0, - 0, 0, 0, 0, 70, 16, - 16, 0, 0, 0, 0, 0, - 230, 138, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 104, 0, + 0, 2, 2, 0, 0, 0, 54, 0, 0, 8, 194, 32, 16, 0, 0, 0, 0, 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 50, 0, 0, 11, - 50, 32, 16, 0, 1, 0, + 50, 0, 16, 0, 0, 0, 0, 0, 70, 16, 16, 0, 0, 0, 0, 0, 230, 138, 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 70, 128, + 0, 0, 0, 0, 70, 128, 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 50, 0, - 0, 11, 194, 32, 16, 0, - 1, 0, 0, 0, 6, 20, + 0, 0, 0, 0, 54, 0, + 0, 5, 50, 32, 16, 0, + 0, 0, 0, 0, 70, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 18, 0, + 16, 0, 0, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 128, 63, 0, 0, + 0, 8, 34, 0, 16, 0, + 0, 0, 0, 0, 26, 0, + 16, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 128, 63, + 56, 0, 0, 8, 50, 0, 16, 0, 0, 0, 0, 0, - 166, 142, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 6, 132, 32, 0, 0, 0, + 70, 0, 16, 0, 0, 0, + 0, 0, 70, 128, 32, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 56, 0, 0, 10, + 50, 0, 16, 0, 1, 0, + 0, 0, 70, 0, 16, 0, + 0, 0, 0, 0, 2, 64, + 0, 0, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0, + 0, 0, 0, 0, 0, 0, + 54, 0, 0, 5, 66, 0, + 16, 0, 1, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 128, 63, 16, 0, 0, 8, + 66, 32, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 70, 130, + 32, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 16, 0, + 0, 8, 130, 32, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 1, 0, + 0, 0, 1, 0, 0, 0, + 50, 0, 0, 11, 50, 32, + 16, 0, 1, 0, 0, 0, + 70, 16, 16, 0, 0, 0, + 0, 0, 230, 138, 32, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 70, 128, 32, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 62, 0, 0, 1, + 83, 84, 65, 84, 116, 0, + 0, 0, 12, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 6, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 68, + 69, 70, 116, 2, 0, 0, + 2, 0, 0, 0, 100, 0, 0, 0, 2, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 116, 0, 0, 0, - 5, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 28, 0, 0, 0, 0, 4, + 254, 255, 0, 1, 0, 0, + 67, 2, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 82, 68, 69, 70, - 8, 1, 0, 0, 1, 0, - 0, 0, 64, 0, 0, 0, - 1, 0, 0, 0, 28, 0, - 0, 0, 0, 4, 254, 255, - 0, 1, 0, 0, 212, 0, - 0, 0, 60, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 99, 98, - 48, 0, 60, 0, 0, 0, - 3, 0, 0, 0, 88, 0, - 0, 0, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 160, 0, 0, 0, - 0, 0, 0, 0, 16, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 99, 98, 48, 0, + 99, 98, 50, 0, 92, 0, + 0, 0, 3, 0, 0, 0, + 148, 0, 0, 0, 48, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 96, 0, + 0, 0, 7, 0, 0, 0, + 16, 1, 0, 0, 112, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 220, 0, + 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 2, 0, + 0, 0, 232, 0, 0, 0, + 0, 0, 0, 0, 248, 0, + 0, 0, 16, 0, 0, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 232, 0, 0, 0, + 0, 0, 0, 0, 2, 1, + 0, 0, 32, 0, 0, 0, + 16, 0, 0, 0, 2, 0, + 0, 0, 232, 0, 0, 0, + 0, 0, 0, 0, 81, 117, + 97, 100, 68, 101, 115, 99, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 84, 101, 120, 67, + 111, 111, 114, 100, 115, 0, + 77, 97, 115, 107, 84, 101, + 120, 67, 111, 111, 114, 100, + 115, 0, 184, 1, 0, 0, + 0, 0, 0, 0, 44, 0, 0, 0, 2, 0, 0, 0, - 172, 0, 0, 0, 0, 0, - 0, 0, 188, 0, 0, 0, - 16, 0, 0, 0, 16, 0, - 0, 0, 2, 0, 0, 0, - 172, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 0, 0, - 32, 0, 0, 0, 16, 0, + 208, 1, 0, 0, 0, 0, + 0, 0, 224, 1, 0, 0, + 48, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, - 172, 0, 0, 0, 0, 0, - 0, 0, 81, 117, 97, 100, - 68, 101, 115, 99, 0, 171, - 171, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 84, 101, 120, 67, 111, 111, - 114, 100, 115, 0, 77, 97, - 115, 107, 84, 101, 120, 67, - 111, 111, 114, 100, 115, 0, - 77, 105, 99, 114, 111, 115, - 111, 102, 116, 32, 40, 82, - 41, 32, 72, 76, 83, 76, - 32, 83, 104, 97, 100, 101, - 114, 32, 67, 111, 109, 112, - 105, 108, 101, 114, 32, 57, - 46, 50, 57, 46, 57, 53, - 50, 46, 51, 49, 49, 49, - 0, 171, 171, 171, 73, 83, + 236, 1, 0, 0, 0, 0, + 0, 0, 252, 1, 0, 0, + 64, 0, 0, 0, 12, 0, + 0, 0, 0, 0, 0, 0, + 4, 2, 0, 0, 0, 0, + 0, 0, 20, 2, 0, 0, + 80, 0, 0, 0, 8, 0, + 0, 0, 0, 0, 0, 0, + 236, 1, 0, 0, 0, 0, + 0, 0, 28, 2, 0, 0, + 88, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 32, 2, 0, 0, 0, 0, + 0, 0, 48, 2, 0, 0, + 92, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 32, 2, 0, 0, 0, 0, + 0, 0, 56, 2, 0, 0, + 96, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 32, 2, 0, 0, 0, 0, + 0, 0, 68, 101, 118, 105, + 99, 101, 83, 112, 97, 99, + 101, 84, 111, 85, 115, 101, + 114, 83, 112, 97, 99, 101, + 0, 171, 3, 0, 3, 0, + 3, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 100, 105, 109, 101, 110, 115, + 105, 111, 110, 115, 0, 171, + 1, 0, 3, 0, 1, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 100, 105, + 102, 102, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 99, 101, + 110, 116, 101, 114, 49, 0, + 65, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 114, 97, 100, 105, + 117, 115, 49, 0, 115, 113, + 95, 114, 97, 100, 105, 117, + 115, 49, 0, 77, 105, 99, + 114, 111, 115, 111, 102, 116, + 32, 40, 82, 41, 32, 72, + 76, 83, 76, 32, 83, 104, + 97, 100, 101, 114, 32, 67, + 111, 109, 112, 105, 108, 101, + 114, 32, 57, 46, 50, 57, + 46, 57, 53, 50, 46, 51, + 49, 49, 49, 0, 73, 83, 71, 78, 44, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 7, 3, 0, 0, 80, 79, 83, 73, 84, 73, 79, 78, 0, 171, @@ -1967,146 +3450,443 @@ const BYTE d2deffect[] = 92, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 12, 3, 0, 0, 83, 86, 95, 80, 111, 115, 105, 116, 105, 111, 110, 0, 84, 69, 88, 67, 79, 79, 82, 68, 0, 171, 171, 171, - 154, 3, 0, 0, 0, 0, + 52, 11, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 212, 2, 0, 0, - 68, 88, 66, 67, 22, 206, - 82, 103, 196, 235, 84, 233, - 156, 39, 210, 152, 32, 145, - 169, 162, 1, 0, 0, 0, - 212, 2, 0, 0, 6, 0, + 0, 0, 220, 9, 0, 0, + 68, 88, 66, 67, 75, 110, + 115, 165, 159, 108, 132, 208, + 154, 90, 141, 18, 236, 102, + 72, 112, 1, 0, 0, 0, + 220, 9, 0, 0, 6, 0, 0, 0, 56, 0, 0, 0, - 164, 0, 0, 0, 16, 1, - 0, 0, 140, 1, 0, 0, - 48, 2, 0, 0, 160, 2, + 128, 2, 0, 0, 88, 6, + 0, 0, 212, 6, 0, 0, + 56, 9, 0, 0, 168, 9, 0, 0, 65, 111, 110, 57, - 100, 0, 0, 0, 100, 0, + 64, 2, 0, 0, 64, 2, 0, 0, 0, 2, 255, 255, - 60, 0, 0, 0, 40, 0, - 0, 0, 0, 0, 40, 0, - 0, 0, 40, 0, 0, 0, - 40, 0, 1, 0, 36, 0, - 0, 0, 40, 0, 0, 0, - 0, 0, 1, 2, 255, 255, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 15, 176, - 31, 0, 0, 2, 0, 0, - 0, 144, 0, 8, 15, 160, - 66, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 176, - 0, 8, 228, 160, 1, 0, - 0, 2, 0, 8, 15, 128, - 0, 0, 228, 128, 255, 255, - 0, 0, 83, 72, 68, 82, - 100, 0, 0, 0, 64, 0, - 0, 0, 25, 0, 0, 0, + 8, 2, 0, 0, 56, 0, + 0, 0, 1, 0, 44, 0, + 0, 0, 56, 0, 0, 0, + 56, 0, 2, 0, 36, 0, + 0, 0, 56, 0, 0, 0, + 0, 0, 1, 1, 1, 0, + 0, 0, 4, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 1, 2, 255, 255, 81, 0, + 0, 5, 3, 0, 15, 160, + 0, 0, 0, 63, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 81, 0, + 0, 5, 4, 0, 15, 160, + 0, 0, 128, 63, 0, 0, + 128, 191, 0, 0, 0, 0, + 0, 0, 0, 128, 31, 0, + 0, 2, 0, 0, 0, 128, + 0, 0, 15, 176, 31, 0, + 0, 2, 0, 0, 0, 144, + 0, 8, 15, 160, 31, 0, + 0, 2, 0, 0, 0, 144, + 1, 8, 15, 160, 2, 0, + 0, 3, 0, 0, 3, 128, + 0, 0, 235, 176, 1, 0, + 228, 161, 90, 0, 0, 4, + 0, 0, 8, 128, 0, 0, + 228, 128, 0, 0, 228, 128, + 2, 0, 0, 161, 5, 0, + 0, 3, 0, 0, 8, 128, + 0, 0, 255, 128, 1, 0, + 170, 160, 1, 0, 0, 2, + 0, 0, 4, 128, 1, 0, + 255, 160, 8, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 228, 128, 0, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 2, 128, 0, 0, 0, 128, + 0, 0, 0, 128, 0, 0, + 255, 129, 35, 0, 0, 2, + 0, 0, 4, 128, 0, 0, + 85, 128, 7, 0, 0, 2, + 0, 0, 4, 128, 0, 0, + 170, 128, 6, 0, 0, 2, + 1, 0, 1, 128, 0, 0, + 170, 128, 1, 0, 0, 2, + 1, 0, 6, 128, 1, 0, + 0, 129, 2, 0, 0, 3, + 0, 0, 13, 128, 0, 0, + 0, 128, 1, 0, 148, 128, + 6, 0, 0, 2, 1, 0, + 1, 128, 1, 0, 170, 160, + 5, 0, 0, 3, 0, 0, + 13, 128, 0, 0, 228, 128, + 1, 0, 0, 128, 1, 0, + 0, 2, 1, 0, 8, 128, + 1, 0, 255, 160, 4, 0, + 0, 4, 1, 0, 7, 128, + 0, 0, 248, 128, 0, 0, + 170, 160, 1, 0, 255, 128, + 88, 0, 0, 4, 2, 0, + 1, 128, 1, 0, 0, 128, + 0, 0, 0, 128, 0, 0, + 255, 128, 88, 0, 0, 4, + 0, 0, 13, 128, 1, 0, + 148, 128, 4, 0, 68, 160, + 4, 0, 230, 160, 1, 0, + 0, 2, 2, 0, 2, 128, + 3, 0, 0, 160, 66, 0, + 0, 3, 1, 0, 15, 128, + 0, 0, 228, 176, 1, 8, + 228, 160, 66, 0, 0, 3, + 2, 0, 15, 128, 2, 0, + 228, 128, 0, 8, 228, 160, + 5, 0, 0, 3, 2, 0, + 7, 128, 2, 0, 255, 128, + 2, 0, 228, 128, 5, 0, + 0, 3, 1, 0, 15, 128, + 1, 0, 255, 128, 2, 0, + 228, 128, 2, 0, 0, 3, + 0, 0, 8, 128, 0, 0, + 255, 128, 0, 0, 0, 128, + 88, 0, 0, 4, 0, 0, + 1, 128, 0, 0, 255, 128, + 0, 0, 0, 128, 0, 0, + 170, 128, 88, 0, 0, 4, + 1, 0, 15, 128, 0, 0, + 0, 129, 4, 0, 170, 160, + 1, 0, 228, 128, 88, 0, + 0, 4, 0, 0, 15, 128, + 0, 0, 85, 128, 1, 0, + 228, 128, 4, 0, 170, 160, + 1, 0, 0, 2, 0, 8, + 15, 128, 0, 0, 228, 128, + 255, 255, 0, 0, 83, 72, + 68, 82, 208, 3, 0, 0, + 64, 0, 0, 0, 244, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 90, 0, 0, 3, 0, 96, 16, 0, 0, 0, 0, 0, + 90, 0, 0, 3, 0, 96, + 16, 0, 1, 0, 0, 0, 88, 24, 0, 4, 0, 112, 16, 0, 0, 0, 0, 0, - 85, 85, 0, 0, 98, 16, - 0, 3, 50, 16, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 69, 0, - 0, 9, 242, 32, 16, 0, - 0, 0, 0, 0, 70, 16, + 85, 85, 0, 0, 88, 24, + 0, 4, 0, 112, 16, 0, + 1, 0, 0, 0, 85, 85, + 0, 0, 98, 16, 0, 3, + 50, 16, 16, 0, 1, 0, + 0, 0, 98, 16, 0, 3, + 194, 16, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 104, 0, 0, 2, + 3, 0, 0, 0, 0, 0, + 0, 9, 50, 0, 16, 0, + 0, 0, 0, 0, 230, 26, + 16, 0, 1, 0, 0, 0, + 70, 128, 32, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 54, 0, + 0, 6, 66, 0, 16, 0, + 0, 0, 0, 0, 58, 128, + 32, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 16, 0, + 0, 8, 66, 0, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 15, 0, 0, 7, 18, 0, + 16, 0, 0, 0, 0, 0, + 70, 0, 16, 0, 0, 0, + 0, 0, 70, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 0, 9, 18, 0, 16, 0, + 0, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 10, 128, 32, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 56, 0, + 0, 8, 18, 0, 16, 0, + 0, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 42, 128, 32, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 50, 0, 0, 10, 18, 0, + 16, 0, 0, 0, 0, 0, + 42, 0, 16, 0, 0, 0, + 0, 0, 42, 0, 16, 0, + 0, 0, 0, 0, 10, 0, + 16, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 49, 0, + 0, 7, 34, 0, 16, 0, + 0, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 0, 0, 75, 0, 0, 6, + 18, 0, 16, 0, 1, 0, + 0, 0, 10, 0, 16, 128, + 129, 0, 0, 0, 0, 0, + 0, 0, 54, 0, 0, 6, + 34, 0, 16, 0, 1, 0, + 0, 0, 10, 0, 16, 128, + 65, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 7, + 82, 0, 16, 0, 0, 0, + 0, 0, 166, 10, 16, 0, + 0, 0, 0, 0, 6, 1, + 16, 0, 1, 0, 0, 0, + 14, 0, 0, 8, 82, 0, + 16, 0, 0, 0, 0, 0, + 6, 2, 16, 0, 0, 0, + 0, 0, 166, 138, 32, 0, + 0, 0, 0, 0, 5, 0, + 0, 0, 56, 0, 0, 8, + 50, 0, 16, 0, 1, 0, + 0, 0, 134, 0, 16, 0, + 0, 0, 0, 0, 166, 138, + 32, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 29, 0, + 0, 9, 50, 0, 16, 0, + 1, 0, 0, 0, 70, 0, + 16, 0, 1, 0, 0, 0, + 246, 143, 32, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 1, 0, + 0, 10, 50, 0, 16, 0, + 1, 0, 0, 0, 70, 0, 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 0, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 116, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, + 2, 64, 0, 0, 0, 0, + 128, 63, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 8, + 18, 0, 16, 0, 0, 0, + 0, 0, 42, 0, 16, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 9, 18, 0, 16, 0, + 2, 0, 0, 0, 10, 0, + 16, 0, 1, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 42, 0, 16, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 34, 0, 16, 0, + 2, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 0, 63, + 69, 0, 0, 9, 242, 0, + 16, 0, 2, 0, 0, 0, + 70, 0, 16, 0, 2, 0, + 0, 0, 70, 126, 16, 0, + 0, 0, 0, 0, 0, 96, + 16, 0, 0, 0, 0, 0, + 31, 0, 4, 3, 26, 0, + 16, 0, 0, 0, 0, 0, + 54, 0, 0, 8, 242, 32, + 16, 0, 0, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 21, 0, 0, 1, 52, 0, + 0, 7, 18, 0, 16, 0, + 0, 0, 0, 0, 26, 0, + 16, 0, 1, 0, 0, 0, + 10, 0, 16, 0, 1, 0, + 0, 0, 29, 0, 0, 7, + 18, 0, 16, 0, 0, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 31, 0, 4, 3, 10, 0, + 16, 0, 0, 0, 0, 0, + 54, 0, 0, 8, 242, 32, + 16, 0, 0, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 21, 0, 0, 1, 56, 0, + 0, 7, 114, 0, 16, 0, + 2, 0, 0, 0, 246, 15, + 16, 0, 2, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 1, 0, 0, 0, 70, 126, + 16, 0, 1, 0, 0, 0, + 0, 96, 16, 0, 1, 0, + 0, 0, 56, 0, 0, 7, + 242, 32, 16, 0, 0, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 2, 0, 0, 0, + 62, 0, 0, 1, 83, 84, + 65, 84, 116, 0, 0, 0, + 33, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 17, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 82, 68, 69, 70, + 92, 2, 0, 0, 1, 0, + 0, 0, 224, 0, 0, 0, + 5, 0, 0, 0, 28, 0, + 0, 0, 0, 4, 255, 255, + 0, 1, 0, 0, 43, 2, + 0, 0, 188, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 82, 68, 69, 70, 156, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 28, 0, 0, 0, - 0, 4, 255, 255, 0, 1, - 0, 0, 105, 0, 0, 0, - 92, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 101, 0, 0, 0, + 0, 0, 0, 0, 197, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 210, 0, 0, 0, 2, 0, + 0, 0, 5, 0, 0, 0, + 4, 0, 0, 0, 255, 255, + 255, 255, 0, 0, 0, 0, + 1, 0, 0, 0, 12, 0, + 0, 0, 214, 0, 0, 0, 2, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 0, 0, + 255, 255, 255, 255, 1, 0, 0, 0, 1, 0, 0, 0, - 12, 0, 0, 0, 115, 83, - 97, 109, 112, 108, 101, 114, - 0, 116, 101, 120, 0, 77, - 105, 99, 114, 111, 115, 111, - 102, 116, 32, 40, 82, 41, - 32, 72, 76, 83, 76, 32, - 83, 104, 97, 100, 101, 114, - 32, 67, 111, 109, 112, 105, - 108, 101, 114, 32, 57, 46, - 50, 57, 46, 57, 53, 50, - 46, 51, 49, 49, 49, 0, - 171, 171, 73, 83, 71, 78, + 12, 0, 0, 0, 219, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 115, 83, 97, 109, 112, 108, + 101, 114, 0, 115, 77, 97, + 115, 107, 83, 97, 109, 112, + 108, 101, 114, 0, 116, 101, + 120, 0, 109, 97, 115, 107, + 0, 99, 98, 50, 0, 171, + 219, 0, 0, 0, 7, 0, + 0, 0, 248, 0, 0, 0, + 112, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 160, 1, 0, 0, 0, 0, + 0, 0, 44, 0, 0, 0, + 0, 0, 0, 0, 184, 1, + 0, 0, 0, 0, 0, 0, + 200, 1, 0, 0, 48, 0, + 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 212, 1, + 0, 0, 0, 0, 0, 0, + 228, 1, 0, 0, 64, 0, + 0, 0, 12, 0, 0, 0, + 2, 0, 0, 0, 236, 1, + 0, 0, 0, 0, 0, 0, + 252, 1, 0, 0, 80, 0, + 0, 0, 8, 0, 0, 0, + 2, 0, 0, 0, 212, 1, + 0, 0, 0, 0, 0, 0, + 4, 2, 0, 0, 88, 0, + 0, 0, 4, 0, 0, 0, + 2, 0, 0, 0, 8, 2, + 0, 0, 0, 0, 0, 0, + 24, 2, 0, 0, 92, 0, + 0, 0, 4, 0, 0, 0, + 2, 0, 0, 0, 8, 2, + 0, 0, 0, 0, 0, 0, + 32, 2, 0, 0, 96, 0, + 0, 0, 4, 0, 0, 0, + 2, 0, 0, 0, 8, 2, + 0, 0, 0, 0, 0, 0, + 68, 101, 118, 105, 99, 101, + 83, 112, 97, 99, 101, 84, + 111, 85, 115, 101, 114, 83, + 112, 97, 99, 101, 0, 171, + 3, 0, 3, 0, 3, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 100, 105, + 109, 101, 110, 115, 105, 111, + 110, 115, 0, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 100, 105, 102, 102, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 99, 101, 110, 116, + 101, 114, 49, 0, 65, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 114, 97, 100, 105, 117, 115, + 49, 0, 115, 113, 95, 114, + 97, 100, 105, 117, 115, 49, + 0, 77, 105, 99, 114, 111, + 115, 111, 102, 116, 32, 40, + 82, 41, 32, 72, 76, 83, + 76, 32, 83, 104, 97, 100, + 101, 114, 32, 67, 111, 109, + 112, 105, 108, 101, 114, 32, + 57, 46, 50, 57, 46, 57, + 53, 50, 46, 51, 49, 49, + 49, 0, 73, 83, 71, 78, 104, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 3, 3, 0, 0, 92, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, - 0, 0, 12, 0, 0, 0, + 0, 0, 12, 12, 0, 0, 83, 86, 95, 80, 111, 115, 105, 116, 105, 111, 110, 0, 84, 69, 88, 67, 79, 79, 82, 68, 0, 171, 171, 171, 79, 83, 71, 78, 44, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 83, 86, 95, 84, 97, 114, 103, 101, - 116, 0, 171, 171, 214, 7, - 0, 0, 0, 0, 0, 0, - 83, 97, 109, 112, 108, 101, - 82, 97, 100, 105, 97, 108, - 71, 114, 97, 100, 105, 101, - 110, 116, 0, 4, 7, 0, + 116, 0, 171, 171, 80, 18, + 0, 0, 0, 0, 0, 0, + 65, 48, 0, 4, 7, 0, 0, 68, 88, 66, 67, 171, 7, 14, 215, 173, 41, 24, 247, 237, 1, 38, 39, 209, 221, 241, 232, 1, 0, 0, 0, 4, 7, 0, 0, 6, 0, 0, 0, 56, 0, 0, 0, 148, 1, 0, 0, 104, 3, 0, 0, 228, 3, 0, @@ -2396,382 +4176,1322 @@ const BYTE d2deffect[] = 12, 0, 0, 92, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 12, 3, 0, 0, 83, 86, 95, 80, 111, 115, 105, 116, 105, 111, 110, 0, 84, 69, 88, 67, 79, 79, 82, 68, 0, - 171, 171, 171, 203, 10, 0, + 171, 171, 171, 59, 28, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 220, - 9, 0, 0, 68, 88, 66, - 67, 75, 110, 115, 165, 159, - 108, 132, 208, 154, 90, 141, - 18, 236, 102, 72, 112, 1, - 0, 0, 0, 220, 9, 0, + 0, 0, 0, 0, 0, 188, + 7, 0, 0, 68, 88, 66, + 67, 158, 207, 216, 153, 107, + 204, 140, 217, 118, 241, 126, + 175, 204, 121, 49, 49, 1, + 0, 0, 0, 188, 7, 0, 0, 6, 0, 0, 0, 56, - 0, 0, 0, 128, 2, 0, - 0, 88, 6, 0, 0, 212, - 6, 0, 0, 56, 9, 0, - 0, 168, 9, 0, 0, 65, - 111, 110, 57, 64, 2, 0, - 0, 64, 2, 0, 0, 0, - 2, 255, 255, 8, 2, 0, + 0, 0, 0, 196, 1, 0, + 0, 56, 4, 0, 0, 180, + 4, 0, 0, 24, 7, 0, + 0, 136, 7, 0, 0, 65, + 111, 110, 57, 132, 1, 0, + 0, 132, 1, 0, 0, 0, + 2, 255, 255, 76, 1, 0, 0, 56, 0, 0, 0, 1, 0, 44, 0, 0, 0, 56, 0, 0, 0, 56, 0, 2, 0, 36, 0, 0, 0, 56, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 4, - 0, 3, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 2, 255, - 255, 81, 0, 0, 5, 3, + 255, 81, 0, 0, 5, 2, 0, 15, 160, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 81, 0, 0, 5, 4, - 0, 15, 160, 0, 0, 128, - 63, 0, 0, 128, 191, 0, - 0, 0, 0, 0, 0, 0, - 128, 31, 0, 0, 2, 0, + 0, 31, 0, 0, 2, 0, 0, 0, 128, 0, 0, 15, 176, 31, 0, 0, 2, 0, 0, 0, 144, 0, 8, 15, 160, 31, 0, 0, 2, 0, 0, 0, 144, 1, 8, 15, - 160, 2, 0, 0, 3, 0, - 0, 3, 128, 0, 0, 235, - 176, 1, 0, 228, 161, 90, - 0, 0, 4, 0, 0, 8, - 128, 0, 0, 228, 128, 0, - 0, 228, 128, 2, 0, 0, - 161, 5, 0, 0, 3, 0, - 0, 8, 128, 0, 0, 255, - 128, 1, 0, 170, 160, 1, - 0, 0, 2, 0, 0, 4, - 128, 1, 0, 255, 160, 8, - 0, 0, 3, 0, 0, 1, - 128, 0, 0, 228, 128, 0, - 0, 228, 160, 4, 0, 0, - 4, 0, 0, 2, 128, 0, - 0, 0, 128, 0, 0, 0, - 128, 0, 0, 255, 129, 35, - 0, 0, 2, 0, 0, 4, - 128, 0, 0, 85, 128, 7, - 0, 0, 2, 0, 0, 4, - 128, 0, 0, 170, 128, 6, - 0, 0, 2, 1, 0, 1, - 128, 0, 0, 170, 128, 1, - 0, 0, 2, 1, 0, 6, - 128, 1, 0, 0, 129, 2, - 0, 0, 3, 0, 0, 13, - 128, 0, 0, 0, 128, 1, - 0, 148, 128, 6, 0, 0, - 2, 1, 0, 1, 128, 1, - 0, 170, 160, 5, 0, 0, - 3, 0, 0, 13, 128, 0, - 0, 228, 128, 1, 0, 0, - 128, 1, 0, 0, 2, 1, + 160, 5, 0, 0, 3, 0, 0, 8, 128, 1, 0, 255, - 160, 4, 0, 0, 4, 1, - 0, 7, 128, 0, 0, 248, - 128, 0, 0, 170, 160, 1, - 0, 255, 128, 88, 0, 0, - 4, 2, 0, 1, 128, 1, - 0, 0, 128, 0, 0, 0, - 128, 0, 0, 255, 128, 88, - 0, 0, 4, 0, 0, 13, - 128, 1, 0, 148, 128, 4, - 0, 68, 160, 4, 0, 230, - 160, 1, 0, 0, 2, 2, - 0, 2, 128, 3, 0, 0, - 160, 66, 0, 0, 3, 1, - 0, 15, 128, 0, 0, 228, - 176, 1, 8, 228, 160, 66, - 0, 0, 3, 2, 0, 15, - 128, 2, 0, 228, 128, 0, - 8, 228, 160, 5, 0, 0, + 160, 1, 0, 255, 160, 2, + 0, 0, 3, 0, 0, 3, + 128, 0, 0, 235, 176, 1, + 0, 228, 161, 90, 0, 0, + 4, 0, 0, 8, 128, 0, + 0, 228, 128, 0, 0, 228, + 128, 0, 0, 255, 129, 5, + 0, 0, 3, 0, 0, 8, + 128, 0, 0, 255, 128, 2, + 0, 0, 160, 1, 0, 0, + 2, 0, 0, 4, 128, 1, + 0, 255, 160, 8, 0, 0, + 3, 0, 0, 1, 128, 0, + 0, 228, 128, 0, 0, 228, + 160, 6, 0, 0, 2, 0, + 0, 1, 128, 0, 0, 0, + 128, 5, 0, 0, 3, 0, + 0, 1, 128, 0, 0, 0, + 128, 0, 0, 255, 128, 1, + 0, 0, 2, 0, 0, 2, + 128, 2, 0, 0, 160, 66, + 0, 0, 3, 1, 0, 15, + 128, 0, 0, 228, 176, 1, + 8, 228, 160, 66, 0, 0, + 3, 2, 0, 15, 128, 0, + 0, 228, 128, 0, 8, 228, + 160, 1, 0, 0, 2, 0, + 0, 8, 128, 1, 0, 255, + 160, 4, 0, 0, 4, 0, + 0, 1, 128, 0, 0, 0, + 128, 0, 0, 170, 161, 0, + 0, 255, 129, 5, 0, 0, 3, 2, 0, 7, 128, 2, 0, 255, 128, 2, 0, 228, 128, 5, 0, 0, 3, 1, 0, 15, 128, 1, 0, 255, - 128, 2, 0, 228, 128, 2, - 0, 0, 3, 0, 0, 8, - 128, 0, 0, 255, 128, 0, - 0, 0, 128, 88, 0, 0, - 4, 0, 0, 1, 128, 0, - 0, 255, 128, 0, 0, 0, - 128, 0, 0, 170, 128, 88, - 0, 0, 4, 1, 0, 15, - 128, 0, 0, 0, 129, 4, - 0, 170, 160, 1, 0, 228, - 128, 88, 0, 0, 4, 0, - 0, 15, 128, 0, 0, 85, - 128, 1, 0, 228, 128, 4, - 0, 170, 160, 1, 0, 0, - 2, 0, 8, 15, 128, 0, - 0, 228, 128, 255, 255, 0, - 0, 83, 72, 68, 82, 208, - 3, 0, 0, 64, 0, 0, - 0, 244, 0, 0, 0, 89, - 0, 0, 4, 70, 142, 32, - 0, 0, 0, 0, 0, 7, - 0, 0, 0, 90, 0, 0, - 3, 0, 96, 16, 0, 0, - 0, 0, 0, 90, 0, 0, - 3, 0, 96, 16, 0, 1, - 0, 0, 0, 88, 24, 0, - 4, 0, 112, 16, 0, 0, - 0, 0, 0, 85, 85, 0, + 128, 2, 0, 228, 128, 88, + 0, 0, 4, 0, 0, 15, + 128, 0, 0, 0, 128, 2, + 0, 85, 160, 1, 0, 228, + 128, 1, 0, 0, 2, 0, + 8, 15, 128, 0, 0, 228, + 128, 255, 255, 0, 0, 83, + 72, 68, 82, 108, 2, 0, + 0, 64, 0, 0, 0, 155, + 0, 0, 0, 89, 0, 0, + 4, 70, 142, 32, 0, 0, + 0, 0, 0, 6, 0, 0, + 0, 90, 0, 0, 3, 0, + 96, 16, 0, 0, 0, 0, + 0, 90, 0, 0, 3, 0, + 96, 16, 0, 1, 0, 0, 0, 88, 24, 0, 4, 0, - 112, 16, 0, 1, 0, 0, - 0, 85, 85, 0, 0, 98, - 16, 0, 3, 50, 16, 16, - 0, 1, 0, 0, 0, 98, - 16, 0, 3, 194, 16, 16, - 0, 1, 0, 0, 0, 101, - 0, 0, 3, 242, 32, 16, - 0, 0, 0, 0, 0, 104, - 0, 0, 2, 3, 0, 0, - 0, 0, 0, 0, 9, 50, - 0, 16, 0, 0, 0, 0, - 0, 230, 26, 16, 0, 1, - 0, 0, 0, 70, 128, 32, - 128, 65, 0, 0, 0, 0, - 0, 0, 0, 5, 0, 0, - 0, 54, 0, 0, 6, 66, + 112, 16, 0, 0, 0, 0, + 0, 85, 85, 0, 0, 88, + 24, 0, 4, 0, 112, 16, + 0, 1, 0, 0, 0, 85, + 85, 0, 0, 98, 16, 0, + 3, 50, 16, 16, 0, 1, + 0, 0, 0, 98, 16, 0, + 3, 194, 16, 16, 0, 1, + 0, 0, 0, 101, 0, 0, + 3, 242, 32, 16, 0, 0, + 0, 0, 0, 104, 0, 0, + 2, 2, 0, 0, 0, 0, + 0, 0, 9, 50, 0, 16, + 0, 0, 0, 0, 0, 230, + 26, 16, 0, 1, 0, 0, + 0, 70, 128, 32, 128, 65, + 0, 0, 0, 0, 0, 0, + 0, 5, 0, 0, 0, 54, + 0, 0, 6, 66, 0, 16, + 0, 0, 0, 0, 0, 58, + 128, 32, 0, 0, 0, 0, + 0, 5, 0, 0, 0, 16, + 0, 0, 8, 66, 0, 16, + 0, 0, 0, 0, 0, 70, + 2, 16, 0, 0, 0, 0, + 0, 70, 130, 32, 0, 0, + 0, 0, 0, 4, 0, 0, + 0, 15, 0, 0, 7, 18, 0, 16, 0, 0, 0, 0, - 0, 58, 128, 32, 0, 0, - 0, 0, 0, 5, 0, 0, - 0, 16, 0, 0, 8, 66, - 0, 16, 0, 0, 0, 0, - 0, 70, 2, 16, 0, 0, - 0, 0, 0, 70, 130, 32, - 0, 0, 0, 0, 0, 4, - 0, 0, 0, 15, 0, 0, - 7, 18, 0, 16, 0, 0, + 0, 70, 0, 16, 0, 0, 0, 0, 0, 70, 0, 16, - 0, 0, 0, 0, 0, 70, - 0, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 18, + 0, 0, 0, 0, 0, 50, + 0, 0, 12, 18, 0, 16, + 0, 0, 0, 0, 0, 58, + 128, 32, 128, 65, 0, 0, + 0, 0, 0, 0, 0, 5, + 0, 0, 0, 58, 128, 32, + 0, 0, 0, 0, 0, 5, + 0, 0, 0, 10, 0, 16, + 0, 0, 0, 0, 0, 56, + 0, 0, 7, 18, 0, 16, + 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, - 0, 10, 0, 16, 0, 0, - 0, 0, 0, 10, 128, 32, - 128, 65, 0, 0, 0, 0, - 0, 0, 0, 6, 0, 0, - 0, 56, 0, 0, 8, 18, + 0, 1, 64, 0, 0, 0, + 0, 0, 63, 14, 0, 0, + 7, 18, 0, 16, 0, 0, + 0, 0, 0, 10, 0, 16, + 0, 0, 0, 0, 0, 42, + 0, 16, 0, 0, 0, 0, + 0, 56, 0, 0, 8, 66, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 42, 128, 32, - 0, 0, 0, 0, 0, 5, - 0, 0, 0, 50, 0, 0, - 10, 18, 0, 16, 0, 0, - 0, 0, 0, 42, 0, 16, - 0, 0, 0, 0, 0, 42, + 0, 0, 0, 0, 0, 4, + 0, 0, 0, 29, 0, 0, + 9, 66, 0, 16, 0, 0, + 0, 0, 0, 58, 128, 32, + 128, 65, 0, 0, 0, 0, + 0, 0, 0, 5, 0, 0, + 0, 42, 0, 16, 0, 0, + 0, 0, 0, 54, 0, 0, + 5, 34, 0, 16, 0, 0, + 0, 0, 0, 1, 64, 0, + 0, 0, 0, 0, 63, 69, + 0, 0, 9, 242, 0, 16, + 0, 1, 0, 0, 0, 70, + 0, 16, 0, 0, 0, 0, + 0, 70, 126, 16, 0, 0, + 0, 0, 0, 0, 96, 16, + 0, 0, 0, 0, 0, 31, + 0, 4, 3, 42, 0, 16, + 0, 0, 0, 0, 0, 54, + 0, 0, 8, 242, 32, 16, + 0, 0, 0, 0, 0, 2, + 64, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 62, 0, 0, 1, 21, + 0, 0, 1, 56, 0, 0, + 7, 114, 0, 16, 0, 1, + 0, 0, 0, 246, 15, 16, + 0, 1, 0, 0, 0, 70, + 2, 16, 0, 1, 0, 0, + 0, 69, 0, 0, 9, 242, 0, 16, 0, 0, 0, 0, - 0, 10, 0, 16, 128, 65, - 0, 0, 0, 0, 0, 0, - 0, 49, 0, 0, 7, 34, + 0, 70, 16, 16, 0, 1, + 0, 0, 0, 70, 126, 16, + 0, 1, 0, 0, 0, 0, + 96, 16, 0, 1, 0, 0, + 0, 56, 0, 0, 7, 242, + 32, 16, 0, 0, 0, 0, + 0, 246, 15, 16, 0, 0, + 0, 0, 0, 70, 14, 16, + 0, 1, 0, 0, 0, 62, + 0, 0, 1, 83, 84, 65, + 84, 116, 0, 0, 0, 19, + 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 9, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 82, 68, 69, 70, 92, + 2, 0, 0, 1, 0, 0, + 0, 224, 0, 0, 0, 5, + 0, 0, 0, 28, 0, 0, + 0, 0, 4, 255, 255, 0, + 1, 0, 0, 43, 2, 0, + 0, 188, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 197, 0, 0, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 210, + 0, 0, 0, 2, 0, 0, + 0, 5, 0, 0, 0, 4, + 0, 0, 0, 255, 255, 255, + 255, 0, 0, 0, 0, 1, + 0, 0, 0, 12, 0, 0, + 0, 214, 0, 0, 0, 2, + 0, 0, 0, 5, 0, 0, + 0, 4, 0, 0, 0, 255, + 255, 255, 255, 1, 0, 0, + 0, 1, 0, 0, 0, 12, + 0, 0, 0, 219, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 115, + 83, 97, 109, 112, 108, 101, + 114, 0, 115, 77, 97, 115, + 107, 83, 97, 109, 112, 108, + 101, 114, 0, 116, 101, 120, + 0, 109, 97, 115, 107, 0, + 99, 98, 50, 0, 171, 219, + 0, 0, 0, 7, 0, 0, + 0, 248, 0, 0, 0, 112, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 160, + 1, 0, 0, 0, 0, 0, + 0, 44, 0, 0, 0, 0, + 0, 0, 0, 184, 1, 0, + 0, 0, 0, 0, 0, 200, + 1, 0, 0, 48, 0, 0, + 0, 8, 0, 0, 0, 0, + 0, 0, 0, 212, 1, 0, + 0, 0, 0, 0, 0, 228, + 1, 0, 0, 64, 0, 0, + 0, 12, 0, 0, 0, 2, + 0, 0, 0, 236, 1, 0, + 0, 0, 0, 0, 0, 252, + 1, 0, 0, 80, 0, 0, + 0, 8, 0, 0, 0, 2, + 0, 0, 0, 212, 1, 0, + 0, 0, 0, 0, 0, 4, + 2, 0, 0, 88, 0, 0, + 0, 4, 0, 0, 0, 0, + 0, 0, 0, 8, 2, 0, + 0, 0, 0, 0, 0, 24, + 2, 0, 0, 92, 0, 0, + 0, 4, 0, 0, 0, 2, + 0, 0, 0, 8, 2, 0, + 0, 0, 0, 0, 0, 32, + 2, 0, 0, 96, 0, 0, + 0, 4, 0, 0, 0, 0, + 0, 0, 0, 8, 2, 0, + 0, 0, 0, 0, 0, 68, + 101, 118, 105, 99, 101, 83, + 112, 97, 99, 101, 84, 111, + 85, 115, 101, 114, 83, 112, + 97, 99, 101, 0, 171, 3, + 0, 3, 0, 3, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 100, 105, 109, + 101, 110, 115, 105, 111, 110, + 115, 0, 171, 1, 0, 3, + 0, 1, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 100, 105, 102, 102, 0, + 171, 171, 171, 1, 0, 3, + 0, 1, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 99, 101, 110, 116, 101, + 114, 49, 0, 65, 0, 171, + 171, 0, 0, 3, 0, 1, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 114, + 97, 100, 105, 117, 115, 49, + 0, 115, 113, 95, 114, 97, + 100, 105, 117, 115, 49, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 57, + 46, 50, 57, 46, 57, 53, + 50, 46, 51, 49, 49, 49, + 0, 73, 83, 71, 78, 104, + 0, 0, 0, 3, 0, 0, + 0, 8, 0, 0, 0, 80, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 15, 0, 0, 0, 92, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 1, 0, 0, + 0, 3, 3, 0, 0, 92, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 1, 0, 0, + 0, 12, 12, 0, 0, 83, + 86, 95, 80, 111, 115, 105, + 116, 105, 111, 110, 0, 84, + 69, 88, 67, 79, 79, 82, + 68, 0, 171, 171, 171, 79, + 83, 71, 78, 44, 0, 0, + 0, 1, 0, 0, 0, 8, + 0, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 15, + 0, 0, 0, 83, 86, 95, + 84, 97, 114, 103, 101, 116, + 0, 171, 171, 87, 35, 0, + 0, 0, 0, 0, 0, 65, + 80, 111, 115, 87, 114, 97, + 112, 0, 4, 7, 0, 0, + 68, 88, 66, 67, 171, 7, + 14, 215, 173, 41, 24, 247, + 237, 1, 38, 39, 209, 221, + 241, 232, 1, 0, 0, 0, + 4, 7, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 148, 1, 0, 0, 104, 3, + 0, 0, 228, 3, 0, 0, + 96, 6, 0, 0, 148, 6, + 0, 0, 65, 111, 110, 57, + 84, 1, 0, 0, 84, 1, + 0, 0, 0, 2, 254, 255, + 252, 0, 0, 0, 88, 0, + 0, 0, 4, 0, 36, 0, + 0, 0, 84, 0, 0, 0, + 84, 0, 0, 0, 36, 0, + 1, 0, 84, 0, 0, 0, + 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 2, 0, 1, 0, 2, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 2, 0, 3, 0, + 0, 0, 0, 0, 1, 0, + 3, 0, 1, 0, 5, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 254, 255, + 81, 0, 0, 5, 6, 0, + 15, 160, 0, 0, 128, 63, + 0, 0, 0, 63, 0, 0, + 0, 0, 0, 0, 0, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 4, 0, 0, 4, 0, 0, + 3, 224, 0, 0, 228, 144, + 2, 0, 238, 160, 2, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 3, 128, 0, 0, + 228, 144, 1, 0, 238, 160, + 1, 0, 228, 160, 2, 0, + 0, 3, 0, 0, 4, 128, + 0, 0, 0, 128, 6, 0, + 0, 160, 5, 0, 0, 3, + 0, 0, 4, 128, 0, 0, + 170, 128, 5, 0, 0, 160, + 5, 0, 0, 3, 1, 0, + 1, 128, 0, 0, 170, 128, + 6, 0, 85, 160, 2, 0, + 0, 3, 0, 0, 4, 128, + 0, 0, 85, 129, 6, 0, + 0, 160, 2, 0, 0, 3, + 0, 0, 3, 192, 0, 0, + 228, 128, 0, 0, 228, 160, + 5, 0, 0, 3, 0, 0, + 1, 128, 0, 0, 170, 128, + 5, 0, 85, 160, 5, 0, + 0, 3, 1, 0, 2, 128, + 0, 0, 0, 128, 6, 0, + 85, 160, 1, 0, 0, 2, + 1, 0, 4, 128, 6, 0, + 0, 160, 8, 0, 0, 3, + 0, 0, 8, 224, 1, 0, + 228, 128, 3, 0, 228, 160, + 8, 0, 0, 3, 0, 0, + 4, 224, 1, 0, 228, 128, + 4, 0, 228, 160, 1, 0, + 0, 2, 0, 0, 12, 192, + 6, 0, 36, 160, 255, 255, + 0, 0, 83, 72, 68, 82, + 204, 1, 0, 0, 64, 0, + 1, 0, 115, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 1, 0, 0, 0, 4, 0, + 0, 0, 95, 0, 0, 3, + 50, 16, 16, 0, 0, 0, + 0, 0, 103, 0, 0, 4, + 242, 32, 16, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 50, 32, + 16, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 194, 32, + 16, 0, 1, 0, 0, 0, + 104, 0, 0, 2, 2, 0, + 0, 0, 54, 0, 0, 8, + 194, 32, 16, 0, 0, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 128, 63, 50, 0, + 0, 11, 50, 0, 16, 0, + 0, 0, 0, 0, 70, 16, + 16, 0, 0, 0, 0, 0, + 230, 138, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 70, 128, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 54, 0, 0, 5, 50, 32, + 16, 0, 0, 0, 0, 0, + 70, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 7, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 128, 63, + 0, 0, 0, 8, 34, 0, + 16, 0, 0, 0, 0, 0, + 26, 0, 16, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 128, 63, 56, 0, 0, 8, + 50, 0, 16, 0, 0, 0, + 0, 0, 70, 0, 16, 0, + 0, 0, 0, 0, 70, 128, + 32, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 56, 0, + 0, 10, 50, 0, 16, 0, + 1, 0, 0, 0, 70, 0, + 16, 0, 0, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 0, 63, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 54, 0, 0, 5, + 66, 0, 16, 0, 1, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 128, 63, 16, 0, + 0, 8, 66, 32, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 70, 130, 32, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 16, 0, 0, 8, 130, 32, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 70, 130, 32, 0, + 1, 0, 0, 0, 1, 0, + 0, 0, 50, 0, 0, 11, + 50, 32, 16, 0, 1, 0, + 0, 0, 70, 16, 16, 0, + 0, 0, 0, 0, 230, 138, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 70, 128, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 62, 0, + 0, 1, 83, 84, 65, 84, + 116, 0, 0, 0, 12, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 4, 0, + 0, 0, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 82, 68, 69, 70, 116, 2, + 0, 0, 2, 0, 0, 0, + 100, 0, 0, 0, 2, 0, + 0, 0, 28, 0, 0, 0, + 0, 4, 254, 255, 0, 1, + 0, 0, 67, 2, 0, 0, + 92, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 96, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 99, 98, + 48, 0, 99, 98, 50, 0, + 92, 0, 0, 0, 3, 0, + 0, 0, 148, 0, 0, 0, + 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 96, 0, 0, 0, 7, 0, + 0, 0, 16, 1, 0, 0, + 112, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 220, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 232, 0, + 0, 0, 0, 0, 0, 0, + 248, 0, 0, 0, 16, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 232, 0, + 0, 0, 0, 0, 0, 0, + 2, 1, 0, 0, 32, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 232, 0, + 0, 0, 0, 0, 0, 0, + 81, 117, 97, 100, 68, 101, + 115, 99, 0, 171, 171, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 84, 101, + 120, 67, 111, 111, 114, 100, + 115, 0, 77, 97, 115, 107, + 84, 101, 120, 67, 111, 111, + 114, 100, 115, 0, 184, 1, + 0, 0, 0, 0, 0, 0, + 44, 0, 0, 0, 2, 0, + 0, 0, 208, 1, 0, 0, + 0, 0, 0, 0, 224, 1, + 0, 0, 48, 0, 0, 0, + 8, 0, 0, 0, 2, 0, + 0, 0, 236, 1, 0, 0, + 0, 0, 0, 0, 252, 1, + 0, 0, 64, 0, 0, 0, + 12, 0, 0, 0, 0, 0, + 0, 0, 4, 2, 0, 0, + 0, 0, 0, 0, 20, 2, + 0, 0, 80, 0, 0, 0, + 8, 0, 0, 0, 0, 0, + 0, 0, 236, 1, 0, 0, + 0, 0, 0, 0, 28, 2, + 0, 0, 88, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 32, 2, 0, 0, + 0, 0, 0, 0, 48, 2, + 0, 0, 92, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 32, 2, 0, 0, + 0, 0, 0, 0, 56, 2, + 0, 0, 96, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 32, 2, 0, 0, + 0, 0, 0, 0, 68, 101, + 118, 105, 99, 101, 83, 112, + 97, 99, 101, 84, 111, 85, + 115, 101, 114, 83, 112, 97, + 99, 101, 0, 171, 3, 0, + 3, 0, 3, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 100, 105, 109, 101, + 110, 115, 105, 111, 110, 115, + 0, 171, 1, 0, 3, 0, + 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 100, 105, 102, 102, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 99, 101, 110, 116, 101, 114, + 49, 0, 65, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 114, 97, + 100, 105, 117, 115, 49, 0, + 115, 113, 95, 114, 97, 100, + 105, 117, 115, 49, 0, 77, + 105, 99, 114, 111, 115, 111, + 102, 116, 32, 40, 82, 41, + 32, 72, 76, 83, 76, 32, + 83, 104, 97, 100, 101, 114, + 32, 67, 111, 109, 112, 105, + 108, 101, 114, 32, 57, 46, + 50, 57, 46, 57, 53, 50, + 46, 51, 49, 49, 49, 0, + 73, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 7, 3, 0, 0, 80, 79, + 83, 73, 84, 73, 79, 78, + 0, 171, 171, 171, 79, 83, + 71, 78, 104, 0, 0, 0, + 3, 0, 0, 0, 8, 0, + 0, 0, 80, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 3, 12, + 0, 0, 92, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 12, 3, + 0, 0, 83, 86, 95, 80, + 111, 115, 105, 116, 105, 111, + 110, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 171, + 171, 171, 40, 43, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 224, 9, + 0, 0, 68, 88, 66, 67, + 24, 242, 43, 93, 196, 38, + 133, 163, 204, 85, 187, 56, + 214, 99, 96, 127, 1, 0, + 0, 0, 224, 9, 0, 0, + 6, 0, 0, 0, 56, 0, + 0, 0, 128, 2, 0, 0, + 88, 6, 0, 0, 212, 6, + 0, 0, 60, 9, 0, 0, + 172, 9, 0, 0, 65, 111, + 110, 57, 64, 2, 0, 0, + 64, 2, 0, 0, 0, 2, + 255, 255, 8, 2, 0, 0, + 56, 0, 0, 0, 1, 0, + 44, 0, 0, 0, 56, 0, + 0, 0, 56, 0, 2, 0, + 36, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 1, 1, + 1, 0, 0, 0, 4, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 255, 255, + 81, 0, 0, 5, 3, 0, + 15, 160, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 81, 0, 0, 5, 4, 0, + 15, 160, 0, 0, 128, 63, + 0, 0, 128, 191, 0, 0, + 0, 0, 0, 0, 0, 128, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 15, 176, + 31, 0, 0, 2, 0, 0, + 0, 144, 0, 8, 15, 160, + 31, 0, 0, 2, 0, 0, + 0, 144, 1, 8, 15, 160, + 2, 0, 0, 3, 0, 0, + 3, 128, 0, 0, 235, 176, + 1, 0, 228, 161, 90, 0, + 0, 4, 0, 0, 8, 128, + 0, 0, 228, 128, 0, 0, + 228, 128, 2, 0, 0, 161, + 5, 0, 0, 3, 0, 0, + 8, 128, 0, 0, 255, 128, + 1, 0, 170, 160, 1, 0, + 0, 2, 0, 0, 4, 128, + 1, 0, 255, 160, 8, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 228, 128, 0, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 2, 128, 0, 0, + 0, 128, 0, 0, 0, 128, + 0, 0, 255, 129, 35, 0, + 0, 2, 0, 0, 4, 128, + 0, 0, 85, 128, 7, 0, + 0, 2, 0, 0, 4, 128, + 0, 0, 170, 128, 6, 0, + 0, 2, 1, 0, 1, 128, + 0, 0, 170, 128, 1, 0, + 0, 2, 1, 0, 6, 128, + 1, 0, 0, 129, 2, 0, + 0, 3, 0, 0, 13, 128, + 0, 0, 0, 128, 1, 0, + 148, 128, 6, 0, 0, 2, + 1, 0, 1, 128, 1, 0, + 170, 160, 5, 0, 0, 3, + 0, 0, 13, 128, 0, 0, + 228, 128, 1, 0, 0, 128, + 1, 0, 0, 2, 1, 0, + 8, 128, 1, 0, 255, 160, + 4, 0, 0, 4, 1, 0, + 7, 128, 0, 0, 248, 128, + 0, 0, 170, 160, 1, 0, + 255, 128, 88, 0, 0, 4, + 2, 0, 1, 128, 1, 0, + 0, 128, 0, 0, 0, 128, + 0, 0, 255, 128, 88, 0, + 0, 4, 0, 0, 13, 128, + 1, 0, 148, 128, 4, 0, + 68, 160, 4, 0, 230, 160, + 1, 0, 0, 2, 2, 0, + 2, 128, 3, 0, 0, 160, + 66, 0, 0, 3, 1, 0, + 15, 128, 0, 0, 228, 176, + 1, 8, 228, 160, 66, 0, + 0, 3, 2, 0, 15, 128, + 2, 0, 228, 128, 0, 8, + 228, 160, 5, 0, 0, 3, + 2, 0, 7, 128, 2, 0, + 255, 128, 2, 0, 228, 128, + 5, 0, 0, 3, 1, 0, + 15, 128, 1, 0, 255, 128, + 2, 0, 228, 128, 2, 0, + 0, 3, 0, 0, 8, 128, + 0, 0, 255, 128, 0, 0, + 0, 128, 88, 0, 0, 4, + 0, 0, 1, 128, 0, 0, + 255, 128, 0, 0, 0, 128, + 0, 0, 170, 128, 88, 0, + 0, 4, 1, 0, 15, 128, + 0, 0, 0, 129, 4, 0, + 170, 160, 1, 0, 228, 128, + 88, 0, 0, 4, 0, 0, + 15, 128, 0, 0, 85, 128, + 1, 0, 228, 128, 4, 0, + 170, 160, 1, 0, 0, 2, + 0, 8, 15, 128, 0, 0, + 228, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 208, 3, + 0, 0, 64, 0, 0, 0, + 244, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 7, 0, + 0, 0, 90, 0, 0, 3, + 0, 96, 16, 0, 0, 0, + 0, 0, 90, 0, 0, 3, + 0, 96, 16, 0, 1, 0, + 0, 0, 88, 24, 0, 4, + 0, 112, 16, 0, 0, 0, + 0, 0, 85, 85, 0, 0, + 88, 24, 0, 4, 0, 112, + 16, 0, 1, 0, 0, 0, + 85, 85, 0, 0, 98, 16, + 0, 3, 50, 16, 16, 0, + 1, 0, 0, 0, 98, 16, + 0, 3, 194, 16, 16, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 104, 0, + 0, 2, 3, 0, 0, 0, + 0, 0, 0, 9, 50, 0, + 16, 0, 0, 0, 0, 0, + 230, 26, 16, 0, 1, 0, + 0, 0, 70, 128, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 54, 0, 0, 6, 66, 0, + 16, 0, 0, 0, 0, 0, + 58, 128, 32, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 16, 0, 0, 8, 66, 0, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 4, 0, + 0, 0, 15, 0, 0, 7, + 18, 0, 16, 0, 0, 0, + 0, 0, 70, 0, 16, 0, + 0, 0, 0, 0, 70, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 18, 0, + 16, 0, 0, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 10, 128, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 56, 0, 0, 8, 18, 0, + 16, 0, 0, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 42, 128, 32, 0, + 0, 0, 0, 0, 5, 0, + 0, 0, 50, 0, 0, 10, + 18, 0, 16, 0, 0, 0, + 0, 0, 42, 0, 16, 0, + 0, 0, 0, 0, 42, 0, + 16, 0, 0, 0, 0, 0, + 10, 0, 16, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 49, 0, 0, 7, 34, 0, + 16, 0, 0, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 0, 0, 75, 0, + 0, 6, 18, 0, 16, 0, + 1, 0, 0, 0, 10, 0, + 16, 128, 129, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 34, 0, 16, 0, + 1, 0, 0, 0, 10, 0, + 16, 128, 65, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 7, 82, 0, 16, 0, + 0, 0, 0, 0, 166, 10, + 16, 0, 0, 0, 0, 0, + 6, 1, 16, 0, 1, 0, + 0, 0, 14, 0, 0, 8, + 82, 0, 16, 0, 0, 0, + 0, 0, 6, 2, 16, 0, + 0, 0, 0, 0, 166, 138, + 32, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 56, 0, + 0, 8, 50, 0, 16, 0, + 1, 0, 0, 0, 134, 0, + 16, 0, 0, 0, 0, 0, + 166, 138, 32, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 29, 0, 0, 9, 50, 0, + 16, 0, 1, 0, 0, 0, + 70, 0, 16, 0, 1, 0, + 0, 0, 246, 143, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 1, 0, 0, 10, 50, 0, + 16, 0, 1, 0, 0, 0, + 70, 0, 16, 0, 1, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 128, 63, 0, 0, + 128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 8, 18, 0, 16, 0, + 0, 0, 0, 0, 42, 0, + 16, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 50, 0, 0, 9, 18, 0, + 16, 0, 2, 0, 0, 0, + 10, 0, 16, 0, 1, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 42, 0, + 16, 0, 0, 0, 0, 0, + 54, 0, 0, 5, 34, 0, + 16, 0, 2, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 0, 63, 69, 0, 0, 9, + 242, 0, 16, 0, 2, 0, + 0, 0, 70, 0, 16, 0, + 2, 0, 0, 0, 70, 126, + 16, 0, 0, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 31, 0, 4, 3, + 26, 0, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 8, + 242, 32, 16, 0, 0, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 62, 0, + 0, 1, 21, 0, 0, 1, + 52, 0, 0, 7, 18, 0, + 16, 0, 0, 0, 0, 0, + 26, 0, 16, 0, 1, 0, + 0, 0, 10, 0, 16, 0, + 1, 0, 0, 0, 29, 0, + 0, 7, 18, 0, 16, 0, + 0, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 31, 0, 4, 3, + 10, 0, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 8, + 242, 32, 16, 0, 0, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 62, 0, + 0, 1, 21, 0, 0, 1, + 56, 0, 0, 7, 114, 0, + 16, 0, 2, 0, 0, 0, + 246, 15, 16, 0, 2, 0, + 0, 0, 70, 2, 16, 0, + 2, 0, 0, 0, 69, 0, + 0, 9, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 16, + 16, 0, 1, 0, 0, 0, + 70, 126, 16, 0, 1, 0, + 0, 0, 0, 96, 16, 0, + 1, 0, 0, 0, 56, 0, + 0, 7, 242, 32, 16, 0, + 0, 0, 0, 0, 246, 15, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 2, 0, + 0, 0, 62, 0, 0, 1, + 83, 84, 65, 84, 116, 0, + 0, 0, 33, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 17, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 68, + 69, 70, 96, 2, 0, 0, + 1, 0, 0, 0, 228, 0, + 0, 0, 5, 0, 0, 0, + 28, 0, 0, 0, 0, 4, + 255, 255, 0, 1, 0, 0, + 47, 2, 0, 0, 188, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 201, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 214, 0, 0, 0, + 2, 0, 0, 0, 5, 0, + 0, 0, 4, 0, 0, 0, + 255, 255, 255, 255, 0, 0, + 0, 0, 1, 0, 0, 0, + 12, 0, 0, 0, 218, 0, + 0, 0, 2, 0, 0, 0, + 5, 0, 0, 0, 4, 0, + 0, 0, 255, 255, 255, 255, + 1, 0, 0, 0, 1, 0, + 0, 0, 12, 0, 0, 0, + 223, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 115, 87, 114, 97, + 112, 83, 97, 109, 112, 108, + 101, 114, 0, 115, 77, 97, + 115, 107, 83, 97, 109, 112, + 108, 101, 114, 0, 116, 101, + 120, 0, 109, 97, 115, 107, + 0, 99, 98, 50, 0, 171, + 223, 0, 0, 0, 7, 0, + 0, 0, 252, 0, 0, 0, + 112, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 164, 1, 0, 0, 0, 0, + 0, 0, 44, 0, 0, 0, + 0, 0, 0, 0, 188, 1, + 0, 0, 0, 0, 0, 0, + 204, 1, 0, 0, 48, 0, + 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 216, 1, + 0, 0, 0, 0, 0, 0, + 232, 1, 0, 0, 64, 0, + 0, 0, 12, 0, 0, 0, + 2, 0, 0, 0, 240, 1, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 80, 0, + 0, 0, 8, 0, 0, 0, + 2, 0, 0, 0, 216, 1, + 0, 0, 0, 0, 0, 0, + 8, 2, 0, 0, 88, 0, + 0, 0, 4, 0, 0, 0, + 2, 0, 0, 0, 12, 2, + 0, 0, 0, 0, 0, 0, + 28, 2, 0, 0, 92, 0, + 0, 0, 4, 0, 0, 0, + 2, 0, 0, 0, 12, 2, + 0, 0, 0, 0, 0, 0, + 36, 2, 0, 0, 96, 0, + 0, 0, 4, 0, 0, 0, + 2, 0, 0, 0, 12, 2, + 0, 0, 0, 0, 0, 0, + 68, 101, 118, 105, 99, 101, + 83, 112, 97, 99, 101, 84, + 111, 85, 115, 101, 114, 83, + 112, 97, 99, 101, 0, 171, + 3, 0, 3, 0, 3, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 100, 105, + 109, 101, 110, 115, 105, 111, + 110, 115, 0, 171, 1, 0, + 3, 0, 1, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 100, 105, 102, 102, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 99, 101, 110, 116, + 101, 114, 49, 0, 65, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 114, 97, 100, 105, 117, 115, + 49, 0, 115, 113, 95, 114, + 97, 100, 105, 117, 115, 49, + 0, 77, 105, 99, 114, 111, + 115, 111, 102, 116, 32, 40, + 82, 41, 32, 72, 76, 83, + 76, 32, 83, 104, 97, 100, + 101, 114, 32, 67, 111, 109, + 112, 105, 108, 101, 114, 32, + 57, 46, 50, 57, 46, 57, + 53, 50, 46, 51, 49, 49, + 49, 0, 73, 83, 71, 78, + 104, 0, 0, 0, 3, 0, + 0, 0, 8, 0, 0, 0, + 80, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 92, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 3, 3, 0, 0, + 92, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 12, 12, 0, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171, 171, 171, + 79, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 83, 86, + 95, 84, 97, 114, 103, 101, + 116, 0, 171, 171, 68, 50, + 0, 0, 0, 0, 0, 0, + 65, 48, 87, 114, 97, 112, + 0, 4, 7, 0, 0, 68, + 88, 66, 67, 171, 7, 14, + 215, 173, 41, 24, 247, 237, + 1, 38, 39, 209, 221, 241, + 232, 1, 0, 0, 0, 4, + 7, 0, 0, 6, 0, 0, + 0, 56, 0, 0, 0, 148, + 1, 0, 0, 104, 3, 0, + 0, 228, 3, 0, 0, 96, + 6, 0, 0, 148, 6, 0, + 0, 65, 111, 110, 57, 84, + 1, 0, 0, 84, 1, 0, + 0, 0, 2, 254, 255, 252, + 0, 0, 0, 88, 0, 0, + 0, 4, 0, 36, 0, 0, + 0, 84, 0, 0, 0, 84, + 0, 0, 0, 36, 0, 1, + 0, 84, 0, 0, 0, 0, + 0, 1, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 2, + 0, 1, 0, 2, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 2, 0, 3, 0, 0, + 0, 0, 0, 1, 0, 3, + 0, 1, 0, 5, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 1, 2, 254, 255, 81, + 0, 0, 5, 6, 0, 15, + 160, 0, 0, 128, 63, 0, + 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 31, + 0, 0, 2, 5, 0, 0, + 128, 0, 0, 15, 144, 4, + 0, 0, 4, 0, 0, 3, + 224, 0, 0, 228, 144, 2, + 0, 238, 160, 2, 0, 228, + 160, 4, 0, 0, 4, 0, + 0, 3, 128, 0, 0, 228, + 144, 1, 0, 238, 160, 1, + 0, 228, 160, 2, 0, 0, + 3, 0, 0, 4, 128, 0, + 0, 0, 128, 6, 0, 0, + 160, 5, 0, 0, 3, 0, + 0, 4, 128, 0, 0, 170, + 128, 5, 0, 0, 160, 5, + 0, 0, 3, 1, 0, 1, + 128, 0, 0, 170, 128, 6, + 0, 85, 160, 2, 0, 0, + 3, 0, 0, 4, 128, 0, + 0, 85, 129, 6, 0, 0, + 160, 2, 0, 0, 3, 0, + 0, 3, 192, 0, 0, 228, + 128, 0, 0, 228, 160, 5, + 0, 0, 3, 0, 0, 1, + 128, 0, 0, 170, 128, 5, + 0, 85, 160, 5, 0, 0, + 3, 1, 0, 2, 128, 0, + 0, 0, 128, 6, 0, 85, + 160, 1, 0, 0, 2, 1, + 0, 4, 128, 6, 0, 0, + 160, 8, 0, 0, 3, 0, + 0, 8, 224, 1, 0, 228, + 128, 3, 0, 228, 160, 8, + 0, 0, 3, 0, 0, 4, + 224, 1, 0, 228, 128, 4, + 0, 228, 160, 1, 0, 0, + 2, 0, 0, 12, 192, 6, + 0, 36, 160, 255, 255, 0, + 0, 83, 72, 68, 82, 204, + 1, 0, 0, 64, 0, 1, + 0, 115, 0, 0, 0, 89, + 0, 0, 4, 70, 142, 32, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 89, 0, 0, + 4, 70, 142, 32, 0, 1, + 0, 0, 0, 4, 0, 0, + 0, 95, 0, 0, 3, 50, + 16, 16, 0, 0, 0, 0, + 0, 103, 0, 0, 4, 242, + 32, 16, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 101, + 0, 0, 3, 50, 32, 16, + 0, 1, 0, 0, 0, 101, + 0, 0, 3, 194, 32, 16, + 0, 1, 0, 0, 0, 104, + 0, 0, 2, 2, 0, 0, + 0, 54, 0, 0, 8, 194, + 32, 16, 0, 0, 0, 0, + 0, 2, 64, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 128, 63, 50, 0, 0, + 11, 50, 0, 16, 0, 0, + 0, 0, 0, 70, 16, 16, + 0, 0, 0, 0, 0, 230, + 138, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 70, + 128, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 54, + 0, 0, 5, 50, 32, 16, + 0, 0, 0, 0, 0, 70, + 0, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 1, 64, 0, - 0, 0, 0, 0, 0, 75, - 0, 0, 6, 18, 0, 16, - 0, 1, 0, 0, 0, 10, - 0, 16, 128, 129, 0, 0, - 0, 0, 0, 0, 0, 54, - 0, 0, 6, 34, 0, 16, - 0, 1, 0, 0, 0, 10, + 0, 0, 0, 128, 63, 0, + 0, 0, 8, 34, 0, 16, + 0, 0, 0, 0, 0, 26, 0, 16, 128, 65, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 7, 82, 0, 16, - 0, 0, 0, 0, 0, 166, - 10, 16, 0, 0, 0, 0, - 0, 6, 1, 16, 0, 1, - 0, 0, 0, 14, 0, 0, - 8, 82, 0, 16, 0, 0, - 0, 0, 0, 6, 2, 16, - 0, 0, 0, 0, 0, 166, - 138, 32, 0, 0, 0, 0, - 0, 5, 0, 0, 0, 56, - 0, 0, 8, 50, 0, 16, - 0, 1, 0, 0, 0, 134, - 0, 16, 0, 0, 0, 0, - 0, 166, 138, 32, 0, 0, - 0, 0, 0, 4, 0, 0, - 0, 29, 0, 0, 9, 50, - 0, 16, 0, 1, 0, 0, - 0, 70, 0, 16, 0, 1, - 0, 0, 0, 246, 143, 32, - 128, 65, 0, 0, 0, 0, - 0, 0, 0, 5, 0, 0, - 0, 1, 0, 0, 10, 50, - 0, 16, 0, 1, 0, 0, - 0, 70, 0, 16, 0, 1, - 0, 0, 0, 2, 64, 0, - 0, 0, 0, 128, 63, 0, - 0, 128, 63, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 8, 18, 0, 16, - 0, 0, 0, 0, 0, 42, - 0, 16, 128, 65, 0, 0, - 0, 0, 0, 0, 0, 10, - 0, 16, 0, 0, 0, 0, - 0, 50, 0, 0, 9, 18, - 0, 16, 0, 2, 0, 0, - 0, 10, 0, 16, 0, 1, - 0, 0, 0, 10, 0, 16, - 0, 0, 0, 0, 0, 42, + 0, 0, 0, 0, 0, 1, + 64, 0, 0, 0, 0, 128, + 63, 56, 0, 0, 8, 50, 0, 16, 0, 0, 0, 0, - 0, 54, 0, 0, 5, 34, - 0, 16, 0, 2, 0, 0, - 0, 1, 64, 0, 0, 0, - 0, 0, 63, 69, 0, 0, - 9, 242, 0, 16, 0, 2, + 0, 70, 0, 16, 0, 0, + 0, 0, 0, 70, 128, 32, + 0, 1, 0, 0, 0, 3, + 0, 0, 0, 56, 0, 0, + 10, 50, 0, 16, 0, 1, 0, 0, 0, 70, 0, 16, - 0, 2, 0, 0, 0, 70, - 126, 16, 0, 0, 0, 0, - 0, 0, 96, 16, 0, 0, - 0, 0, 0, 31, 0, 4, - 3, 26, 0, 16, 0, 0, - 0, 0, 0, 54, 0, 0, - 8, 242, 32, 16, 0, 0, - 0, 0, 0, 2, 64, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 62, - 0, 0, 1, 21, 0, 0, - 1, 52, 0, 0, 7, 18, - 0, 16, 0, 0, 0, 0, - 0, 26, 0, 16, 0, 1, - 0, 0, 0, 10, 0, 16, - 0, 1, 0, 0, 0, 29, - 0, 0, 7, 18, 0, 16, - 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 2, 64, 0, 0, 0, 0, 0, - 0, 10, 0, 16, 0, 0, - 0, 0, 0, 31, 0, 4, - 3, 10, 0, 16, 0, 0, - 0, 0, 0, 54, 0, 0, - 8, 242, 32, 16, 0, 0, - 0, 0, 0, 2, 64, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 62, - 0, 0, 1, 21, 0, 0, - 1, 56, 0, 0, 7, 114, - 0, 16, 0, 2, 0, 0, - 0, 246, 15, 16, 0, 2, + 63, 0, 0, 0, 63, 0, + 0, 0, 0, 0, 0, 0, + 0, 54, 0, 0, 5, 66, + 0, 16, 0, 1, 0, 0, + 0, 1, 64, 0, 0, 0, + 0, 128, 63, 16, 0, 0, + 8, 66, 32, 16, 0, 1, 0, 0, 0, 70, 2, 16, - 0, 2, 0, 0, 0, 69, - 0, 0, 9, 242, 0, 16, - 0, 0, 0, 0, 0, 70, - 16, 16, 0, 1, 0, 0, - 0, 70, 126, 16, 0, 1, - 0, 0, 0, 0, 96, 16, - 0, 1, 0, 0, 0, 56, - 0, 0, 7, 242, 32, 16, - 0, 0, 0, 0, 0, 246, - 15, 16, 0, 0, 0, 0, - 0, 70, 14, 16, 0, 2, + 0, 1, 0, 0, 0, 70, + 130, 32, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 16, + 0, 0, 8, 130, 32, 16, + 0, 1, 0, 0, 0, 70, + 2, 16, 0, 1, 0, 0, + 0, 70, 130, 32, 0, 1, + 0, 0, 0, 1, 0, 0, + 0, 50, 0, 0, 11, 50, + 32, 16, 0, 1, 0, 0, + 0, 70, 16, 16, 0, 0, + 0, 0, 0, 230, 138, 32, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 70, 128, 32, + 0, 0, 0, 0, 0, 2, 0, 0, 0, 62, 0, 0, 1, 83, 84, 65, 84, 116, - 0, 0, 0, 33, 0, 0, + 0, 0, 0, 12, 0, 0, + 0, 2, 0, 0, 0, 0, + 0, 0, 0, 4, 0, 0, + 0, 6, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 0, - 0, 17, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 3, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, - 68, 69, 70, 92, 2, 0, - 0, 1, 0, 0, 0, 224, - 0, 0, 0, 5, 0, 0, + 68, 69, 70, 116, 2, 0, + 0, 2, 0, 0, 0, 100, + 0, 0, 0, 2, 0, 0, 0, 28, 0, 0, 0, 0, - 4, 255, 255, 0, 1, 0, - 0, 43, 2, 0, 0, 188, - 0, 0, 0, 3, 0, 0, + 4, 254, 255, 0, 1, 0, + 0, 67, 2, 0, 0, 92, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 197, 0, 0, 0, 3, + 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 210, 0, 0, - 0, 2, 0, 0, 0, 5, - 0, 0, 0, 4, 0, 0, - 0, 255, 255, 255, 255, 0, - 0, 0, 0, 1, 0, 0, - 0, 12, 0, 0, 0, 214, + 0, 0, 0, 99, 98, 48, + 0, 99, 98, 50, 0, 92, + 0, 0, 0, 3, 0, 0, + 0, 148, 0, 0, 0, 48, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 96, + 0, 0, 0, 7, 0, 0, + 0, 16, 1, 0, 0, 112, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 220, + 0, 0, 0, 0, 0, 0, + 0, 16, 0, 0, 0, 2, + 0, 0, 0, 232, 0, 0, + 0, 0, 0, 0, 0, 248, + 0, 0, 0, 16, 0, 0, + 0, 16, 0, 0, 0, 0, + 0, 0, 0, 232, 0, 0, + 0, 0, 0, 0, 0, 2, + 1, 0, 0, 32, 0, 0, + 0, 16, 0, 0, 0, 2, + 0, 0, 0, 232, 0, 0, + 0, 0, 0, 0, 0, 81, + 117, 97, 100, 68, 101, 115, + 99, 0, 171, 171, 171, 1, + 0, 3, 0, 1, 0, 4, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 84, 101, 120, + 67, 111, 111, 114, 100, 115, + 0, 77, 97, 115, 107, 84, + 101, 120, 67, 111, 111, 114, + 100, 115, 0, 184, 1, 0, + 0, 0, 0, 0, 0, 44, 0, 0, 0, 2, 0, 0, - 0, 5, 0, 0, 0, 4, - 0, 0, 0, 255, 255, 255, - 255, 1, 0, 0, 0, 1, - 0, 0, 0, 12, 0, 0, - 0, 219, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 115, 83, 97, - 109, 112, 108, 101, 114, 0, - 115, 77, 97, 115, 107, 83, - 97, 109, 112, 108, 101, 114, - 0, 116, 101, 120, 0, 109, - 97, 115, 107, 0, 99, 98, - 50, 0, 171, 219, 0, 0, - 0, 7, 0, 0, 0, 248, - 0, 0, 0, 112, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 160, 1, 0, - 0, 0, 0, 0, 0, 44, - 0, 0, 0, 0, 0, 0, - 0, 184, 1, 0, 0, 0, - 0, 0, 0, 200, 1, 0, + 0, 208, 1, 0, 0, 0, + 0, 0, 0, 224, 1, 0, 0, 48, 0, 0, 0, 8, - 0, 0, 0, 0, 0, 0, - 0, 212, 1, 0, 0, 0, - 0, 0, 0, 228, 1, 0, - 0, 64, 0, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0, 236, 1, 0, 0, 0, 0, 0, 0, 252, 1, 0, + 0, 64, 0, 0, 0, 12, + 0, 0, 0, 0, 0, 0, + 0, 4, 2, 0, 0, 0, + 0, 0, 0, 20, 2, 0, 0, 80, 0, 0, 0, 8, - 0, 0, 0, 2, 0, 0, - 0, 212, 1, 0, 0, 0, - 0, 0, 0, 4, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 236, 1, 0, 0, 0, + 0, 0, 0, 28, 2, 0, 0, 88, 0, 0, 0, 4, - 0, 0, 0, 2, 0, 0, - 0, 8, 2, 0, 0, 0, - 0, 0, 0, 24, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 32, 2, 0, 0, 0, + 0, 0, 0, 48, 2, 0, 0, 92, 0, 0, 0, 4, - 0, 0, 0, 2, 0, 0, - 0, 8, 2, 0, 0, 0, - 0, 0, 0, 32, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 32, 2, 0, 0, 0, + 0, 0, 0, 56, 2, 0, 0, 96, 0, 0, 0, 4, - 0, 0, 0, 2, 0, 0, - 0, 8, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 32, 2, 0, 0, 0, 0, 0, 0, 68, 101, 118, 105, 99, 101, 83, 112, 97, 99, 101, 84, 111, 85, 115, 101, 114, 83, 112, 97, 99, 101, 0, 171, 3, 0, 3, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 105, 109, 101, 110, @@ -2794,45 +5514,381 @@ const BYTE d2deffect[] = 99, 114, 111, 115, 111, 102, 116, 32, 40, 82, 41, 32, 72, 76, 83, 76, 32, 83, 104, 97, 100, 101, 114, 32, 67, 111, 109, 112, 105, 108, 101, 114, 32, 57, 46, 50, 57, 46, 57, 53, 50, 46, 51, 49, 49, 49, 0, 73, - 83, 71, 78, 104, 0, 0, - 0, 3, 0, 0, 0, 8, - 0, 0, 0, 80, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 15, - 0, 0, 0, 92, 0, 0, + 83, 71, 78, 44, 0, 0, + 0, 1, 0, 0, 0, 8, + 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, - 0, 1, 0, 0, 0, 3, - 3, 0, 0, 92, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 0, - 0, 1, 0, 0, 0, 12, - 12, 0, 0, 83, 86, 95, - 80, 111, 115, 105, 116, 105, - 111, 110, 0, 84, 69, 88, - 67, 79, 79, 82, 68, 0, + 0, 0, 0, 0, 0, 7, + 3, 0, 0, 80, 79, 83, + 73, 84, 73, 79, 78, 0, 171, 171, 171, 79, 83, 71, - 78, 44, 0, 0, 0, 1, + 78, 104, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, - 0, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 0, 80, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, - 0, 83, 86, 95, 84, 97, - 114, 103, 101, 116, 0, 171, - 171, 231, 17, 0, 0, 0, - 0, 0, 0, 80, 49, 0, + 0, 92, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 1, + 0, 0, 0, 3, 12, 0, + 0, 92, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 1, + 0, 0, 0, 12, 3, 0, + 0, 83, 86, 95, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 84, 69, 88, 67, 79, + 79, 82, 68, 0, 171, 171, + 171, 55, 60, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 2, 0, 0, 0, 0, + 0, 0, 0, 192, 7, 0, + 0, 68, 88, 66, 67, 148, + 128, 74, 221, 199, 126, 74, + 95, 7, 207, 141, 28, 193, + 83, 71, 108, 1, 0, 0, + 0, 192, 7, 0, 0, 6, + 0, 0, 0, 56, 0, 0, + 0, 196, 1, 0, 0, 56, + 4, 0, 0, 180, 4, 0, + 0, 28, 7, 0, 0, 140, + 7, 0, 0, 65, 111, 110, + 57, 132, 1, 0, 0, 132, + 1, 0, 0, 0, 2, 255, + 255, 76, 1, 0, 0, 56, + 0, 0, 0, 1, 0, 44, + 0, 0, 0, 56, 0, 0, + 0, 56, 0, 2, 0, 36, + 0, 0, 0, 56, 0, 0, + 0, 0, 0, 1, 1, 1, + 0, 0, 0, 4, 0, 2, + 0, 0, 0, 0, 0, 0, + 0, 1, 2, 255, 255, 81, + 0, 0, 5, 2, 0, 15, + 160, 0, 0, 0, 63, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 31, + 0, 0, 2, 0, 0, 0, + 128, 0, 0, 15, 176, 31, + 0, 0, 2, 0, 0, 0, + 144, 0, 8, 15, 160, 31, + 0, 0, 2, 0, 0, 0, + 144, 1, 8, 15, 160, 5, + 0, 0, 3, 0, 0, 8, + 128, 1, 0, 255, 160, 1, + 0, 255, 160, 2, 0, 0, + 3, 0, 0, 3, 128, 0, + 0, 235, 176, 1, 0, 228, + 161, 90, 0, 0, 4, 0, + 0, 8, 128, 0, 0, 228, + 128, 0, 0, 228, 128, 0, + 0, 255, 129, 5, 0, 0, + 3, 0, 0, 8, 128, 0, + 0, 255, 128, 2, 0, 0, + 160, 1, 0, 0, 2, 0, + 0, 4, 128, 1, 0, 255, + 160, 8, 0, 0, 3, 0, + 0, 1, 128, 0, 0, 228, + 128, 0, 0, 228, 160, 6, + 0, 0, 2, 0, 0, 1, + 128, 0, 0, 0, 128, 5, + 0, 0, 3, 0, 0, 1, + 128, 0, 0, 0, 128, 0, + 0, 255, 128, 1, 0, 0, + 2, 0, 0, 2, 128, 2, + 0, 0, 160, 66, 0, 0, + 3, 1, 0, 15, 128, 0, + 0, 228, 176, 1, 8, 228, + 160, 66, 0, 0, 3, 2, + 0, 15, 128, 0, 0, 228, + 128, 0, 8, 228, 160, 1, + 0, 0, 2, 0, 0, 8, + 128, 1, 0, 255, 160, 4, + 0, 0, 4, 0, 0, 1, + 128, 0, 0, 0, 128, 0, + 0, 170, 161, 0, 0, 255, + 129, 5, 0, 0, 3, 2, + 0, 7, 128, 2, 0, 255, + 128, 2, 0, 228, 128, 5, + 0, 0, 3, 1, 0, 15, + 128, 1, 0, 255, 128, 2, + 0, 228, 128, 88, 0, 0, + 4, 0, 0, 15, 128, 0, + 0, 0, 128, 2, 0, 85, + 160, 1, 0, 228, 128, 1, + 0, 0, 2, 0, 8, 15, + 128, 0, 0, 228, 128, 255, + 255, 0, 0, 83, 72, 68, + 82, 108, 2, 0, 0, 64, + 0, 0, 0, 155, 0, 0, + 0, 89, 0, 0, 4, 70, + 142, 32, 0, 0, 0, 0, + 0, 6, 0, 0, 0, 90, + 0, 0, 3, 0, 96, 16, + 0, 0, 0, 0, 0, 90, + 0, 0, 3, 0, 96, 16, + 0, 1, 0, 0, 0, 88, + 24, 0, 4, 0, 112, 16, + 0, 0, 0, 0, 0, 85, + 85, 0, 0, 88, 24, 0, + 4, 0, 112, 16, 0, 1, + 0, 0, 0, 85, 85, 0, + 0, 98, 16, 0, 3, 50, + 16, 16, 0, 1, 0, 0, + 0, 98, 16, 0, 3, 194, + 16, 16, 0, 1, 0, 0, + 0, 101, 0, 0, 3, 242, + 32, 16, 0, 0, 0, 0, + 0, 104, 0, 0, 2, 2, + 0, 0, 0, 0, 0, 0, + 9, 50, 0, 16, 0, 0, + 0, 0, 0, 230, 26, 16, + 0, 1, 0, 0, 0, 70, + 128, 32, 128, 65, 0, 0, + 0, 0, 0, 0, 0, 5, + 0, 0, 0, 54, 0, 0, + 6, 66, 0, 16, 0, 0, + 0, 0, 0, 58, 128, 32, + 0, 0, 0, 0, 0, 5, + 0, 0, 0, 16, 0, 0, + 8, 66, 0, 16, 0, 0, + 0, 0, 0, 70, 2, 16, + 0, 0, 0, 0, 0, 70, + 130, 32, 0, 0, 0, 0, + 0, 4, 0, 0, 0, 15, + 0, 0, 7, 18, 0, 16, + 0, 0, 0, 0, 0, 70, + 0, 16, 0, 0, 0, 0, + 0, 70, 0, 16, 0, 0, + 0, 0, 0, 50, 0, 0, + 12, 18, 0, 16, 0, 0, + 0, 0, 0, 58, 128, 32, + 128, 65, 0, 0, 0, 0, + 0, 0, 0, 5, 0, 0, + 0, 58, 128, 32, 0, 0, + 0, 0, 0, 5, 0, 0, + 0, 10, 0, 16, 0, 0, + 0, 0, 0, 56, 0, 0, + 7, 18, 0, 16, 0, 0, + 0, 0, 0, 10, 0, 16, + 0, 0, 0, 0, 0, 1, + 64, 0, 0, 0, 0, 0, + 63, 14, 0, 0, 7, 18, + 0, 16, 0, 0, 0, 0, + 0, 10, 0, 16, 0, 0, + 0, 0, 0, 42, 0, 16, + 0, 0, 0, 0, 0, 56, + 0, 0, 8, 66, 0, 16, + 0, 0, 0, 0, 0, 10, + 0, 16, 0, 0, 0, 0, + 0, 42, 128, 32, 0, 0, + 0, 0, 0, 4, 0, 0, + 0, 29, 0, 0, 9, 66, + 0, 16, 0, 0, 0, 0, + 0, 58, 128, 32, 128, 65, + 0, 0, 0, 0, 0, 0, + 0, 5, 0, 0, 0, 42, + 0, 16, 0, 0, 0, 0, + 0, 54, 0, 0, 5, 34, + 0, 16, 0, 0, 0, 0, + 0, 1, 64, 0, 0, 0, + 0, 0, 63, 69, 0, 0, + 9, 242, 0, 16, 0, 1, + 0, 0, 0, 70, 0, 16, + 0, 0, 0, 0, 0, 70, + 126, 16, 0, 0, 0, 0, + 0, 0, 96, 16, 0, 0, + 0, 0, 0, 31, 0, 4, + 3, 42, 0, 16, 0, 0, + 0, 0, 0, 54, 0, 0, + 8, 242, 32, 16, 0, 0, + 0, 0, 0, 2, 64, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 62, + 0, 0, 1, 21, 0, 0, + 1, 56, 0, 0, 7, 114, + 0, 16, 0, 1, 0, 0, + 0, 246, 15, 16, 0, 1, + 0, 0, 0, 70, 2, 16, + 0, 1, 0, 0, 0, 69, + 0, 0, 9, 242, 0, 16, + 0, 0, 0, 0, 0, 70, + 16, 16, 0, 1, 0, 0, + 0, 70, 126, 16, 0, 1, + 0, 0, 0, 0, 96, 16, + 0, 1, 0, 0, 0, 56, + 0, 0, 7, 242, 32, 16, + 0, 0, 0, 0, 0, 246, + 15, 16, 0, 0, 0, 0, + 0, 70, 14, 16, 0, 1, + 0, 0, 0, 62, 0, 0, + 1, 83, 84, 65, 84, 116, + 0, 0, 0, 19, 0, 0, + 0, 2, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 82, + 68, 69, 70, 96, 2, 0, + 0, 1, 0, 0, 0, 228, + 0, 0, 0, 5, 0, 0, + 0, 28, 0, 0, 0, 0, + 4, 255, 255, 0, 1, 0, + 0, 47, 2, 0, 0, 188, + 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 201, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 214, 0, 0, + 0, 2, 0, 0, 0, 5, + 0, 0, 0, 4, 0, 0, + 0, 255, 255, 255, 255, 0, + 0, 0, 0, 1, 0, 0, + 0, 12, 0, 0, 0, 218, + 0, 0, 0, 2, 0, 0, + 0, 5, 0, 0, 0, 4, + 0, 0, 0, 255, 255, 255, + 255, 1, 0, 0, 0, 1, + 0, 0, 0, 12, 0, 0, + 0, 223, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 115, 87, 114, + 97, 112, 83, 97, 109, 112, + 108, 101, 114, 0, 115, 77, + 97, 115, 107, 83, 97, 109, + 112, 108, 101, 114, 0, 116, + 101, 120, 0, 109, 97, 115, + 107, 0, 99, 98, 50, 0, + 171, 223, 0, 0, 0, 7, + 0, 0, 0, 252, 0, 0, + 0, 112, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 164, 1, 0, 0, 0, + 0, 0, 0, 44, 0, 0, + 0, 0, 0, 0, 0, 188, + 1, 0, 0, 0, 0, 0, + 0, 204, 1, 0, 0, 48, + 0, 0, 0, 8, 0, 0, + 0, 0, 0, 0, 0, 216, + 1, 0, 0, 0, 0, 0, + 0, 232, 1, 0, 0, 64, + 0, 0, 0, 12, 0, 0, + 0, 2, 0, 0, 0, 240, + 1, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 80, + 0, 0, 0, 8, 0, 0, + 0, 2, 0, 0, 0, 216, + 1, 0, 0, 0, 0, 0, + 0, 8, 2, 0, 0, 88, + 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 12, + 2, 0, 0, 0, 0, 0, + 0, 28, 2, 0, 0, 92, + 0, 0, 0, 4, 0, 0, + 0, 2, 0, 0, 0, 12, + 2, 0, 0, 0, 0, 0, + 0, 36, 2, 0, 0, 96, + 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 12, + 2, 0, 0, 0, 0, 0, + 0, 68, 101, 118, 105, 99, + 101, 83, 112, 97, 99, 101, + 84, 111, 85, 115, 101, 114, + 83, 112, 97, 99, 101, 0, + 171, 3, 0, 3, 0, 3, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 100, + 105, 109, 101, 110, 115, 105, + 111, 110, 115, 0, 171, 1, + 0, 3, 0, 1, 0, 2, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 100, 105, 102, + 102, 0, 171, 171, 171, 1, + 0, 3, 0, 1, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 99, 101, 110, + 116, 101, 114, 49, 0, 65, + 0, 171, 171, 0, 0, 3, + 0, 1, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 114, 97, 100, 105, 117, + 115, 49, 0, 115, 113, 95, + 114, 97, 100, 105, 117, 115, + 49, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 57, 46, 50, 57, 46, + 57, 53, 50, 46, 51, 49, + 49, 49, 0, 73, 83, 71, + 78, 104, 0, 0, 0, 3, + 0, 0, 0, 8, 0, 0, + 0, 80, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, + 0, 92, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 1, + 0, 0, 0, 3, 3, 0, + 0, 92, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 1, + 0, 0, 0, 12, 12, 0, + 0, 83, 86, 95, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 84, 69, 88, 67, 79, + 79, 82, 68, 0, 171, 171, + 171, 79, 83, 71, 78, 44, + 0, 0, 0, 1, 0, 0, + 0, 8, 0, 0, 0, 32, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 15, 0, 0, 0, 83, + 86, 95, 84, 97, 114, 103, + 101, 116, 0, 171, 171, 83, + 67, 0, 0, 0, 0, 0, + 0, 65, 80, 111, 115, 77, + 105, 114, 114, 111, 114, 0, 4, 7, 0, 0, 68, 88, 66, 67, 171, 7, 14, 215, 173, 41, 24, 247, 237, 1, 38, 39, 209, 221, 241, 232, 1, 0, 0, 0, 4, 7, 0, 0, 6, 0, 0, 0, 56, 0, 0, 0, 148, 1, 0, 0, 104, 3, 0, 0, @@ -3123,291 +6179,383 @@ const BYTE d2deffect[] = 92, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 12, 3, 0, 0, 83, 86, 95, 80, 111, 115, 105, 116, 105, 111, 110, 0, 84, 69, 88, 67, 79, 79, 82, 68, 0, 171, 171, 171, - 210, 27, 0, 0, 0, 0, + 42, 75, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 188, 7, 0, 0, - 68, 88, 66, 67, 158, 207, - 216, 153, 107, 204, 140, 217, - 118, 241, 126, 175, 204, 121, - 49, 49, 1, 0, 0, 0, - 188, 7, 0, 0, 6, 0, + 0, 0, 228, 9, 0, 0, + 68, 88, 66, 67, 90, 139, + 199, 161, 131, 3, 38, 117, + 153, 113, 42, 204, 54, 196, + 132, 44, 1, 0, 0, 0, + 228, 9, 0, 0, 6, 0, 0, 0, 56, 0, 0, 0, - 196, 1, 0, 0, 56, 4, - 0, 0, 180, 4, 0, 0, - 24, 7, 0, 0, 136, 7, + 128, 2, 0, 0, 88, 6, + 0, 0, 212, 6, 0, 0, + 64, 9, 0, 0, 176, 9, 0, 0, 65, 111, 110, 57, - 132, 1, 0, 0, 132, 1, + 64, 2, 0, 0, 64, 2, 0, 0, 0, 2, 255, 255, - 76, 1, 0, 0, 56, 0, + 8, 2, 0, 0, 56, 0, 0, 0, 1, 0, 44, 0, 0, 0, 56, 0, 0, 0, 56, 0, 2, 0, 36, 0, 0, 0, 56, 0, 0, 0, 0, 0, 1, 1, 1, 0, - 0, 0, 4, 0, 2, 0, + 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 2, 255, 255, 81, 0, - 0, 5, 2, 0, 15, 160, + 0, 5, 3, 0, 15, 160, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, + 0, 0, 0, 0, 81, 0, + 0, 5, 4, 0, 15, 160, + 0, 0, 128, 63, 0, 0, + 128, 191, 0, 0, 0, 0, + 0, 0, 0, 128, 31, 0, 0, 2, 0, 0, 0, 128, 0, 0, 15, 176, 31, 0, 0, 2, 0, 0, 0, 144, 0, 8, 15, 160, 31, 0, 0, 2, 0, 0, 0, 144, - 1, 8, 15, 160, 5, 0, - 0, 3, 0, 0, 8, 128, - 1, 0, 255, 160, 1, 0, - 255, 160, 2, 0, 0, 3, - 0, 0, 3, 128, 0, 0, - 235, 176, 1, 0, 228, 161, - 90, 0, 0, 4, 0, 0, - 8, 128, 0, 0, 228, 128, - 0, 0, 228, 128, 0, 0, - 255, 129, 5, 0, 0, 3, + 1, 8, 15, 160, 2, 0, + 0, 3, 0, 0, 3, 128, + 0, 0, 235, 176, 1, 0, + 228, 161, 90, 0, 0, 4, 0, 0, 8, 128, 0, 0, - 255, 128, 2, 0, 0, 160, - 1, 0, 0, 2, 0, 0, - 4, 128, 1, 0, 255, 160, - 8, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 228, 128, - 0, 0, 228, 160, 6, 0, - 0, 2, 0, 0, 1, 128, - 0, 0, 0, 128, 5, 0, - 0, 3, 0, 0, 1, 128, + 228, 128, 0, 0, 228, 128, + 2, 0, 0, 161, 5, 0, + 0, 3, 0, 0, 8, 128, + 0, 0, 255, 128, 1, 0, + 170, 160, 1, 0, 0, 2, + 0, 0, 4, 128, 1, 0, + 255, 160, 8, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 228, 128, 0, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 2, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, - 255, 128, 1, 0, 0, 2, - 0, 0, 2, 128, 2, 0, - 0, 160, 66, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 228, 176, 1, 8, 228, 160, - 66, 0, 0, 3, 2, 0, - 15, 128, 0, 0, 228, 128, - 0, 8, 228, 160, 1, 0, - 0, 2, 0, 0, 8, 128, + 255, 129, 35, 0, 0, 2, + 0, 0, 4, 128, 0, 0, + 85, 128, 7, 0, 0, 2, + 0, 0, 4, 128, 0, 0, + 170, 128, 6, 0, 0, 2, + 1, 0, 1, 128, 0, 0, + 170, 128, 1, 0, 0, 2, + 1, 0, 6, 128, 1, 0, + 0, 129, 2, 0, 0, 3, + 0, 0, 13, 128, 0, 0, + 0, 128, 1, 0, 148, 128, + 6, 0, 0, 2, 1, 0, + 1, 128, 1, 0, 170, 160, + 5, 0, 0, 3, 0, 0, + 13, 128, 0, 0, 228, 128, + 1, 0, 0, 128, 1, 0, + 0, 2, 1, 0, 8, 128, 1, 0, 255, 160, 4, 0, - 0, 4, 0, 0, 1, 128, + 0, 4, 1, 0, 7, 128, + 0, 0, 248, 128, 0, 0, + 170, 160, 1, 0, 255, 128, + 88, 0, 0, 4, 2, 0, + 1, 128, 1, 0, 0, 128, 0, 0, 0, 128, 0, 0, - 170, 161, 0, 0, 255, 129, + 255, 128, 88, 0, 0, 4, + 0, 0, 13, 128, 1, 0, + 148, 128, 4, 0, 68, 160, + 4, 0, 230, 160, 1, 0, + 0, 2, 2, 0, 2, 128, + 3, 0, 0, 160, 66, 0, + 0, 3, 1, 0, 15, 128, + 0, 0, 228, 176, 1, 8, + 228, 160, 66, 0, 0, 3, + 2, 0, 15, 128, 2, 0, + 228, 128, 0, 8, 228, 160, 5, 0, 0, 3, 2, 0, 7, 128, 2, 0, 255, 128, 2, 0, 228, 128, 5, 0, 0, 3, 1, 0, 15, 128, 1, 0, 255, 128, 2, 0, - 228, 128, 88, 0, 0, 4, - 0, 0, 15, 128, 0, 0, - 0, 128, 2, 0, 85, 160, - 1, 0, 228, 128, 1, 0, - 0, 2, 0, 8, 15, 128, - 0, 0, 228, 128, 255, 255, - 0, 0, 83, 72, 68, 82, - 108, 2, 0, 0, 64, 0, - 0, 0, 155, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 90, 0, - 0, 3, 0, 96, 16, 0, - 0, 0, 0, 0, 90, 0, - 0, 3, 0, 96, 16, 0, - 1, 0, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 0, 0, 0, 0, 85, 85, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 1, 0, - 0, 0, 85, 85, 0, 0, - 98, 16, 0, 3, 50, 16, + 228, 128, 2, 0, 0, 3, + 0, 0, 8, 128, 0, 0, + 255, 128, 0, 0, 0, 128, + 88, 0, 0, 4, 0, 0, + 1, 128, 0, 0, 255, 128, + 0, 0, 0, 128, 0, 0, + 170, 128, 88, 0, 0, 4, + 1, 0, 15, 128, 0, 0, + 0, 129, 4, 0, 170, 160, + 1, 0, 228, 128, 88, 0, + 0, 4, 0, 0, 15, 128, + 0, 0, 85, 128, 1, 0, + 228, 128, 4, 0, 170, 160, + 1, 0, 0, 2, 0, 8, + 15, 128, 0, 0, 228, 128, + 255, 255, 0, 0, 83, 72, + 68, 82, 208, 3, 0, 0, + 64, 0, 0, 0, 244, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 7, 0, 0, 0, + 90, 0, 0, 3, 0, 96, + 16, 0, 0, 0, 0, 0, + 90, 0, 0, 3, 0, 96, 16, 0, 1, 0, 0, 0, - 98, 16, 0, 3, 194, 16, - 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 242, 32, + 88, 24, 0, 4, 0, 112, 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 2, 0, - 0, 0, 0, 0, 0, 9, - 50, 0, 16, 0, 0, 0, - 0, 0, 230, 26, 16, 0, - 1, 0, 0, 0, 70, 128, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 5, 0, - 0, 0, 54, 0, 0, 6, - 66, 0, 16, 0, 0, 0, - 0, 0, 58, 128, 32, 0, - 0, 0, 0, 0, 5, 0, - 0, 0, 16, 0, 0, 8, - 66, 0, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 130, + 85, 85, 0, 0, 88, 24, + 0, 4, 0, 112, 16, 0, + 1, 0, 0, 0, 85, 85, + 0, 0, 98, 16, 0, 3, + 50, 16, 16, 0, 1, 0, + 0, 0, 98, 16, 0, 3, + 194, 16, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 104, 0, 0, 2, + 3, 0, 0, 0, 0, 0, + 0, 9, 50, 0, 16, 0, + 0, 0, 0, 0, 230, 26, + 16, 0, 1, 0, 0, 0, + 70, 128, 32, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 54, 0, + 0, 6, 66, 0, 16, 0, + 0, 0, 0, 0, 58, 128, 32, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 15, 0, - 0, 7, 18, 0, 16, 0, - 0, 0, 0, 0, 70, 0, + 5, 0, 0, 0, 16, 0, + 0, 8, 66, 0, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 15, 0, 0, 7, 18, 0, 16, 0, 0, 0, 0, 0, 70, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 12, - 18, 0, 16, 0, 0, 0, - 0, 0, 58, 128, 32, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 58, 128, 32, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 18, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 0, 63, - 14, 0, 0, 7, 18, 0, + 0, 0, 70, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 0, 9, 18, 0, 16, 0, + 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 42, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 66, 0, 16, 0, + 10, 128, 32, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 56, 0, + 0, 8, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 42, 128, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 29, 0, 0, 9, 66, 0, + 0, 0, 5, 0, 0, 0, + 50, 0, 0, 10, 18, 0, 16, 0, 0, 0, 0, 0, - 58, 128, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 42, 0, - 16, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 34, 0, + 42, 0, 16, 0, 0, 0, + 0, 0, 42, 0, 16, 0, + 0, 0, 0, 0, 10, 0, + 16, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 49, 0, + 0, 7, 34, 0, 16, 0, + 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 1, 64, 0, 0, 0, 0, - 0, 63, 69, 0, 0, 9, - 242, 0, 16, 0, 1, 0, - 0, 0, 70, 0, 16, 0, - 0, 0, 0, 0, 70, 126, + 0, 0, 75, 0, 0, 6, + 18, 0, 16, 0, 1, 0, + 0, 0, 10, 0, 16, 128, + 129, 0, 0, 0, 0, 0, + 0, 0, 54, 0, 0, 6, + 34, 0, 16, 0, 1, 0, + 0, 0, 10, 0, 16, 128, + 65, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 7, + 82, 0, 16, 0, 0, 0, + 0, 0, 166, 10, 16, 0, + 0, 0, 0, 0, 6, 1, + 16, 0, 1, 0, 0, 0, + 14, 0, 0, 8, 82, 0, 16, 0, 0, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 31, 0, 4, 3, - 42, 0, 16, 0, 0, 0, - 0, 0, 54, 0, 0, 8, - 242, 32, 16, 0, 0, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 21, 0, 0, 1, - 56, 0, 0, 7, 114, 0, + 6, 2, 16, 0, 0, 0, + 0, 0, 166, 138, 32, 0, + 0, 0, 0, 0, 5, 0, + 0, 0, 56, 0, 0, 8, + 50, 0, 16, 0, 1, 0, + 0, 0, 134, 0, 16, 0, + 0, 0, 0, 0, 166, 138, + 32, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 29, 0, + 0, 9, 50, 0, 16, 0, + 1, 0, 0, 0, 70, 0, + 16, 0, 1, 0, 0, 0, + 246, 143, 32, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 1, 0, + 0, 10, 50, 0, 16, 0, + 1, 0, 0, 0, 70, 0, + 16, 0, 1, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 128, 63, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 8, + 18, 0, 16, 0, 0, 0, + 0, 0, 42, 0, 16, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 9, 18, 0, 16, 0, + 2, 0, 0, 0, 10, 0, 16, 0, 1, 0, 0, 0, - 246, 15, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 16, + 10, 0, 16, 0, 0, 0, + 0, 0, 42, 0, 16, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 34, 0, 16, 0, + 2, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 0, 63, + 69, 0, 0, 9, 242, 0, + 16, 0, 2, 0, 0, 0, + 70, 0, 16, 0, 2, 0, + 0, 0, 70, 126, 16, 0, + 0, 0, 0, 0, 0, 96, + 16, 0, 0, 0, 0, 0, + 31, 0, 4, 3, 26, 0, + 16, 0, 0, 0, 0, 0, + 54, 0, 0, 8, 242, 32, + 16, 0, 0, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 21, 0, 0, 1, 52, 0, + 0, 7, 18, 0, 16, 0, + 0, 0, 0, 0, 26, 0, 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 1, 0, - 0, 0, 0, 96, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 242, 32, 16, 0, - 0, 0, 0, 0, 246, 15, + 10, 0, 16, 0, 1, 0, + 0, 0, 29, 0, 0, 7, + 18, 0, 16, 0, 0, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, + 31, 0, 4, 3, 10, 0, + 16, 0, 0, 0, 0, 0, + 54, 0, 0, 8, 242, 32, + 16, 0, 0, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 116, 0, - 0, 0, 19, 0, 0, 0, - 2, 0, 0, 0, 0, 0, + 21, 0, 0, 1, 56, 0, + 0, 7, 114, 0, 16, 0, + 2, 0, 0, 0, 246, 15, + 16, 0, 2, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 1, 0, 0, 0, 70, 126, + 16, 0, 1, 0, 0, 0, + 0, 96, 16, 0, 1, 0, + 0, 0, 56, 0, 0, 7, + 242, 32, 16, 0, 0, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 2, 0, 0, 0, + 62, 0, 0, 1, 83, 84, + 65, 84, 116, 0, 0, 0, + 33, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 17, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 82, 68, 69, 70, + 100, 2, 0, 0, 1, 0, + 0, 0, 232, 0, 0, 0, + 5, 0, 0, 0, 28, 0, + 0, 0, 0, 4, 255, 255, + 0, 1, 0, 0, 51, 2, + 0, 0, 188, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 203, 0, 0, 0, 3, 0, 0, 0, - 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 68, - 69, 70, 92, 2, 0, 0, - 1, 0, 0, 0, 224, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 216, 0, 0, 0, 2, 0, 0, 0, 5, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 255, 255, 0, 1, 0, 0, - 43, 2, 0, 0, 188, 0, - 0, 0, 3, 0, 0, 0, + 4, 0, 0, 0, 255, 255, + 255, 255, 0, 0, 0, 0, + 1, 0, 0, 0, 12, 0, + 0, 0, 220, 0, 0, 0, + 2, 0, 0, 0, 5, 0, + 0, 0, 4, 0, 0, 0, + 255, 255, 255, 255, 1, 0, + 0, 0, 1, 0, 0, 0, + 12, 0, 0, 0, 225, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 197, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 210, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 0, 0, - 0, 0, 1, 0, 0, 0, - 12, 0, 0, 0, 214, 0, - 0, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 4, 0, - 0, 0, 255, 255, 255, 255, - 1, 0, 0, 0, 1, 0, - 0, 0, 12, 0, 0, 0, - 219, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 115, 83, 97, 109, - 112, 108, 101, 114, 0, 115, - 77, 97, 115, 107, 83, 97, - 109, 112, 108, 101, 114, 0, - 116, 101, 120, 0, 109, 97, - 115, 107, 0, 99, 98, 50, - 0, 171, 219, 0, 0, 0, - 7, 0, 0, 0, 248, 0, + 115, 77, 105, 114, 114, 111, + 114, 83, 97, 109, 112, 108, + 101, 114, 0, 115, 77, 97, + 115, 107, 83, 97, 109, 112, + 108, 101, 114, 0, 116, 101, + 120, 0, 109, 97, 115, 107, + 0, 99, 98, 50, 0, 171, + 171, 171, 225, 0, 0, 0, + 7, 0, 0, 0, 0, 1, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 160, 1, 0, 0, + 0, 0, 168, 1, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, - 184, 1, 0, 0, 0, 0, - 0, 0, 200, 1, 0, 0, + 192, 1, 0, 0, 0, 0, + 0, 0, 208, 1, 0, 0, 48, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 212, 1, 0, 0, 0, 0, - 0, 0, 228, 1, 0, 0, + 220, 1, 0, 0, 0, 0, + 0, 0, 236, 1, 0, 0, 64, 0, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0, - 236, 1, 0, 0, 0, 0, - 0, 0, 252, 1, 0, 0, + 244, 1, 0, 0, 0, 0, + 0, 0, 4, 2, 0, 0, 80, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, - 212, 1, 0, 0, 0, 0, - 0, 0, 4, 2, 0, 0, + 220, 1, 0, 0, 0, 0, + 0, 0, 12, 2, 0, 0, 88, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 8, 2, 0, 0, 0, 0, - 0, 0, 24, 2, 0, 0, + 0, 0, 2, 0, 0, 0, + 16, 2, 0, 0, 0, 0, + 0, 0, 32, 2, 0, 0, 92, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, - 8, 2, 0, 0, 0, 0, - 0, 0, 32, 2, 0, 0, + 16, 2, 0, 0, 0, 0, + 0, 0, 40, 2, 0, 0, 96, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 8, 2, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 16, 2, 0, 0, 0, 0, 0, 0, 68, 101, 118, 105, 99, 101, 83, 112, 97, 99, 101, 84, 111, 85, 115, 101, 114, 83, 112, 97, 99, 101, 0, 171, 3, 0, 3, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 105, 109, 101, 110, 115, @@ -3457,370 +6605,1622 @@ const BYTE d2deffect[] = 44, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 83, 86, 95, 84, 97, 114, 103, 101, 116, 0, 171, 171, - 238, 34, 0, 0, 0, 0, - 0, 0, 83, 97, 109, 112, - 108, 101, 77, 97, 115, 107, - 101, 100, 84, 101, 120, 116, - 117, 114, 101, 0, 36, 4, - 0, 0, 68, 88, 66, 67, - 116, 139, 68, 62, 73, 113, - 92, 4, 72, 76, 225, 161, - 30, 132, 222, 233, 1, 0, - 0, 0, 36, 4, 0, 0, - 6, 0, 0, 0, 56, 0, - 0, 0, 248, 0, 0, 0, - 244, 1, 0, 0, 112, 2, - 0, 0, 128, 3, 0, 0, - 180, 3, 0, 0, 65, 111, - 110, 57, 184, 0, 0, 0, - 184, 0, 0, 0, 0, 2, - 254, 255, 132, 0, 0, 0, - 52, 0, 0, 0, 1, 0, - 36, 0, 0, 0, 48, 0, - 0, 0, 48, 0, 0, 0, - 36, 0, 1, 0, 48, 0, - 0, 0, 0, 0, 3, 0, + 70, 82, 0, 0, 0, 0, + 0, 0, 65, 48, 77, 105, + 114, 114, 111, 114, 0, 4, + 7, 0, 0, 68, 88, 66, + 67, 171, 7, 14, 215, 173, + 41, 24, 247, 237, 1, 38, + 39, 209, 221, 241, 232, 1, + 0, 0, 0, 4, 7, 0, + 0, 6, 0, 0, 0, 56, + 0, 0, 0, 148, 1, 0, + 0, 104, 3, 0, 0, 228, + 3, 0, 0, 96, 6, 0, + 0, 148, 6, 0, 0, 65, + 111, 110, 57, 84, 1, 0, + 0, 84, 1, 0, 0, 0, + 2, 254, 255, 252, 0, 0, + 0, 88, 0, 0, 0, 4, + 0, 36, 0, 0, 0, 84, + 0, 0, 0, 84, 0, 0, + 0, 36, 0, 1, 0, 84, + 0, 0, 0, 0, 0, 1, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 1, + 0, 2, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 2, + 0, 3, 0, 0, 0, 0, + 0, 1, 0, 3, 0, 1, + 0, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 2, 254, 255, 81, 0, 0, + 5, 6, 0, 15, 160, 0, + 0, 128, 63, 0, 0, 0, + 63, 0, 0, 0, 0, 0, + 0, 0, 0, 31, 0, 0, + 2, 5, 0, 0, 128, 0, + 0, 15, 144, 4, 0, 0, + 4, 0, 0, 3, 224, 0, + 0, 228, 144, 2, 0, 238, + 160, 2, 0, 228, 160, 4, + 0, 0, 4, 0, 0, 3, + 128, 0, 0, 228, 144, 1, + 0, 238, 160, 1, 0, 228, + 160, 2, 0, 0, 3, 0, + 0, 4, 128, 0, 0, 0, + 128, 6, 0, 0, 160, 5, + 0, 0, 3, 0, 0, 4, + 128, 0, 0, 170, 128, 5, + 0, 0, 160, 5, 0, 0, + 3, 1, 0, 1, 128, 0, + 0, 170, 128, 6, 0, 85, + 160, 2, 0, 0, 3, 0, + 0, 4, 128, 0, 0, 85, + 129, 6, 0, 0, 160, 2, + 0, 0, 3, 0, 0, 3, + 192, 0, 0, 228, 128, 0, + 0, 228, 160, 5, 0, 0, + 3, 0, 0, 1, 128, 0, + 0, 170, 128, 5, 0, 85, + 160, 5, 0, 0, 3, 1, + 0, 2, 128, 0, 0, 0, + 128, 6, 0, 85, 160, 1, + 0, 0, 2, 1, 0, 4, + 128, 6, 0, 0, 160, 8, + 0, 0, 3, 0, 0, 8, + 224, 1, 0, 228, 128, 3, + 0, 228, 160, 8, 0, 0, + 3, 0, 0, 4, 224, 1, + 0, 228, 128, 4, 0, 228, + 160, 1, 0, 0, 2, 0, + 0, 12, 192, 6, 0, 36, + 160, 255, 255, 0, 0, 83, + 72, 68, 82, 204, 1, 0, + 0, 64, 0, 1, 0, 115, + 0, 0, 0, 89, 0, 0, + 4, 70, 142, 32, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 89, 0, 0, 4, 70, + 142, 32, 0, 1, 0, 0, + 0, 4, 0, 0, 0, 95, + 0, 0, 3, 50, 16, 16, + 0, 0, 0, 0, 0, 103, + 0, 0, 4, 242, 32, 16, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 101, 0, 0, + 3, 50, 32, 16, 0, 1, + 0, 0, 0, 101, 0, 0, + 3, 194, 32, 16, 0, 1, + 0, 0, 0, 104, 0, 0, + 2, 2, 0, 0, 0, 54, + 0, 0, 8, 194, 32, 16, + 0, 0, 0, 0, 0, 2, + 64, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 128, + 63, 50, 0, 0, 11, 50, + 0, 16, 0, 0, 0, 0, + 0, 70, 16, 16, 0, 0, + 0, 0, 0, 230, 138, 32, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 70, 128, 32, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 54, 0, 0, + 5, 50, 32, 16, 0, 0, + 0, 0, 0, 70, 0, 16, + 0, 0, 0, 0, 0, 0, + 0, 0, 7, 18, 0, 16, + 0, 0, 0, 0, 0, 10, + 0, 16, 0, 0, 0, 0, + 0, 1, 64, 0, 0, 0, + 0, 128, 63, 0, 0, 0, + 8, 34, 0, 16, 0, 0, + 0, 0, 0, 26, 0, 16, + 128, 65, 0, 0, 0, 0, + 0, 0, 0, 1, 64, 0, + 0, 0, 0, 128, 63, 56, + 0, 0, 8, 50, 0, 16, + 0, 0, 0, 0, 0, 70, + 0, 16, 0, 0, 0, 0, + 0, 70, 128, 32, 0, 1, + 0, 0, 0, 3, 0, 0, + 0, 56, 0, 0, 10, 50, + 0, 16, 0, 1, 0, 0, + 0, 70, 0, 16, 0, 0, + 0, 0, 0, 2, 64, 0, + 0, 0, 0, 0, 63, 0, + 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 54, + 0, 0, 5, 66, 0, 16, + 0, 1, 0, 0, 0, 1, + 64, 0, 0, 0, 0, 128, + 63, 16, 0, 0, 8, 66, + 32, 16, 0, 1, 0, 0, + 0, 70, 2, 16, 0, 1, + 0, 0, 0, 70, 130, 32, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 16, 0, 0, + 8, 130, 32, 16, 0, 1, + 0, 0, 0, 70, 2, 16, + 0, 1, 0, 0, 0, 70, + 130, 32, 0, 1, 0, 0, + 0, 1, 0, 0, 0, 50, + 0, 0, 11, 50, 32, 16, + 0, 1, 0, 0, 0, 70, + 16, 16, 0, 0, 0, 0, + 0, 230, 138, 32, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 70, 128, 32, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 62, 0, 0, 1, 83, + 84, 65, 84, 116, 0, 0, + 0, 12, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 0, 4, 0, 0, 0, 6, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 82, 68, 69, + 70, 116, 2, 0, 0, 2, + 0, 0, 0, 100, 0, 0, + 0, 2, 0, 0, 0, 28, + 0, 0, 0, 0, 4, 254, + 255, 0, 1, 0, 0, 67, + 2, 0, 0, 92, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 96, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 99, 98, 48, 0, 99, + 98, 50, 0, 92, 0, 0, + 0, 3, 0, 0, 0, 148, + 0, 0, 0, 48, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 96, 0, 0, + 0, 7, 0, 0, 0, 16, + 1, 0, 0, 112, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 220, 0, 0, + 0, 0, 0, 0, 0, 16, + 0, 0, 0, 2, 0, 0, + 0, 232, 0, 0, 0, 0, + 0, 0, 0, 248, 0, 0, + 0, 16, 0, 0, 0, 16, + 0, 0, 0, 0, 0, 0, + 0, 232, 0, 0, 0, 0, + 0, 0, 0, 2, 1, 0, + 0, 32, 0, 0, 0, 16, + 0, 0, 0, 2, 0, 0, + 0, 232, 0, 0, 0, 0, + 0, 0, 0, 81, 117, 97, + 100, 68, 101, 115, 99, 0, + 171, 171, 171, 1, 0, 3, + 0, 1, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 84, 101, 120, 67, 111, + 111, 114, 100, 115, 0, 77, + 97, 115, 107, 84, 101, 120, + 67, 111, 111, 114, 100, 115, + 0, 184, 1, 0, 0, 0, + 0, 0, 0, 44, 0, 0, + 0, 2, 0, 0, 0, 208, + 1, 0, 0, 0, 0, 0, + 0, 224, 1, 0, 0, 48, + 0, 0, 0, 8, 0, 0, + 0, 2, 0, 0, 0, 236, + 1, 0, 0, 0, 0, 0, + 0, 252, 1, 0, 0, 64, + 0, 0, 0, 12, 0, 0, + 0, 0, 0, 0, 0, 4, + 2, 0, 0, 0, 0, 0, + 0, 20, 2, 0, 0, 80, + 0, 0, 0, 8, 0, 0, + 0, 0, 0, 0, 0, 236, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, - 254, 255, 81, 0, 0, 5, - 4, 0, 15, 160, 0, 0, - 0, 0, 0, 0, 128, 63, - 0, 0, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 2, - 5, 0, 0, 128, 0, 0, - 15, 144, 4, 0, 0, 4, - 0, 0, 3, 224, 0, 0, - 228, 144, 2, 0, 238, 160, - 2, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 12, 224, - 0, 0, 20, 144, 3, 0, - 180, 160, 3, 0, 20, 160, - 4, 0, 0, 4, 0, 0, - 3, 128, 0, 0, 228, 144, - 1, 0, 238, 160, 1, 0, - 228, 160, 2, 0, 0, 3, - 0, 0, 3, 192, 0, 0, - 228, 128, 0, 0, 228, 160, - 1, 0, 0, 2, 0, 0, - 12, 192, 4, 0, 68, 160, - 255, 255, 0, 0, 83, 72, - 68, 82, 244, 0, 0, 0, - 64, 0, 1, 0, 61, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 95, 0, 0, 3, 50, 16, - 16, 0, 0, 0, 0, 0, - 103, 0, 0, 4, 242, 32, - 16, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 194, 32, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 11, 50, 32, 16, 0, - 0, 0, 0, 0, 70, 16, - 16, 0, 0, 0, 0, 0, - 230, 138, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 8, 194, 32, - 16, 0, 0, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 128, 63, 50, 0, 0, 11, - 50, 32, 16, 0, 1, 0, - 0, 0, 70, 16, 16, 0, - 0, 0, 0, 0, 230, 138, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 50, 0, - 0, 11, 194, 32, 16, 0, - 1, 0, 0, 0, 6, 20, - 16, 0, 0, 0, 0, 0, - 166, 142, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 6, 132, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 116, 0, 0, 0, - 5, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 82, 68, 69, 70, - 8, 1, 0, 0, 1, 0, - 0, 0, 64, 0, 0, 0, - 1, 0, 0, 0, 28, 0, - 0, 0, 0, 4, 254, 255, - 0, 1, 0, 0, 212, 0, - 0, 0, 60, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 99, 98, - 48, 0, 60, 0, 0, 0, - 3, 0, 0, 0, 88, 0, - 0, 0, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 160, 0, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 0, 2, 0, 0, 0, - 172, 0, 0, 0, 0, 0, - 0, 0, 188, 0, 0, 0, - 16, 0, 0, 0, 16, 0, - 0, 0, 2, 0, 0, 0, - 172, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 0, 0, - 32, 0, 0, 0, 16, 0, - 0, 0, 2, 0, 0, 0, - 172, 0, 0, 0, 0, 0, - 0, 0, 81, 117, 97, 100, - 68, 101, 115, 99, 0, 171, - 171, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 84, 101, 120, 67, 111, 111, - 114, 100, 115, 0, 77, 97, - 115, 107, 84, 101, 120, 67, - 111, 111, 114, 100, 115, 0, - 77, 105, 99, 114, 111, 115, - 111, 102, 116, 32, 40, 82, - 41, 32, 72, 76, 83, 76, - 32, 83, 104, 97, 100, 101, - 114, 32, 67, 111, 109, 112, - 105, 108, 101, 114, 32, 57, - 46, 50, 57, 46, 57, 53, - 50, 46, 51, 49, 49, 49, - 0, 171, 171, 171, 73, 83, - 71, 78, 44, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 7, 3, - 0, 0, 80, 79, 83, 73, - 84, 73, 79, 78, 0, 171, - 171, 171, 79, 83, 71, 78, - 104, 0, 0, 0, 3, 0, - 0, 0, 8, 0, 0, 0, - 80, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, + 0, 28, 2, 0, 0, 88, + 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 32, + 2, 0, 0, 0, 0, 0, + 0, 48, 2, 0, 0, 92, + 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 32, + 2, 0, 0, 0, 0, 0, + 0, 56, 2, 0, 0, 96, + 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 32, + 2, 0, 0, 0, 0, 0, + 0, 68, 101, 118, 105, 99, + 101, 83, 112, 97, 99, 101, + 84, 111, 85, 115, 101, 114, + 83, 112, 97, 99, 101, 0, + 171, 3, 0, 3, 0, 3, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 100, + 105, 109, 101, 110, 115, 105, + 111, 110, 115, 0, 171, 1, + 0, 3, 0, 1, 0, 2, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 100, 105, 102, + 102, 0, 171, 171, 171, 1, + 0, 3, 0, 1, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 99, 101, 110, + 116, 101, 114, 49, 0, 65, + 0, 171, 171, 0, 0, 3, + 0, 1, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 114, 97, 100, 105, 117, + 115, 49, 0, 115, 113, 95, + 114, 97, 100, 105, 117, 115, + 49, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 57, 46, 50, 57, 46, + 57, 53, 50, 46, 51, 49, + 49, 49, 0, 73, 83, 71, + 78, 44, 0, 0, 0, 1, + 0, 0, 0, 8, 0, 0, + 0, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 7, 3, 0, + 0, 80, 79, 83, 73, 84, + 73, 79, 78, 0, 171, 171, + 171, 79, 83, 71, 78, 104, + 0, 0, 0, 3, 0, 0, + 0, 8, 0, 0, 0, 80, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 15, 0, 0, 0, 92, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 1, 0, 0, + 0, 3, 12, 0, 0, 92, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 1, 0, 0, + 0, 12, 3, 0, 0, 83, + 86, 95, 80, 111, 115, 105, + 116, 105, 111, 110, 0, 84, + 69, 88, 67, 79, 79, 82, + 68, 0, 171, 171, 171, 63, 92, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 12, 0, 0, - 92, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 12, 3, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 171, 171, - 202, 42, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 208, 3, 0, 0, - 68, 88, 66, 67, 145, 96, - 208, 189, 244, 147, 57, 205, - 242, 133, 35, 176, 39, 143, - 121, 235, 1, 0, 0, 0, - 208, 3, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 224, 0, 0, 0, 188, 1, - 0, 0, 56, 2, 0, 0, - 44, 3, 0, 0, 156, 3, - 0, 0, 65, 111, 110, 57, - 160, 0, 0, 0, 160, 0, - 0, 0, 0, 2, 255, 255, - 116, 0, 0, 0, 44, 0, - 0, 0, 0, 0, 44, 0, - 0, 0, 44, 0, 0, 0, - 44, 0, 2, 0, 36, 0, - 0, 0, 44, 0, 0, 0, - 0, 0, 1, 1, 1, 0, - 1, 2, 255, 255, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 31, 0, - 0, 2, 0, 0, 0, 144, - 1, 8, 15, 160, 1, 0, - 0, 2, 0, 0, 3, 128, - 0, 0, 235, 176, 66, 0, - 0, 3, 1, 0, 15, 128, - 0, 0, 228, 176, 0, 8, - 228, 160, 66, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 1, 8, 228, 160, - 5, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 255, 128, - 1, 0, 228, 128, 1, 0, - 0, 2, 0, 8, 15, 128, - 0, 0, 228, 128, 255, 255, - 0, 0, 83, 72, 68, 82, - 212, 0, 0, 0, 64, 0, - 0, 0, 53, 0, 0, 0, - 90, 0, 0, 3, 0, 96, - 16, 0, 0, 0, 0, 0, - 90, 0, 0, 3, 0, 96, - 16, 0, 1, 0, 0, 0, - 88, 24, 0, 4, 0, 112, - 16, 0, 0, 0, 0, 0, - 85, 85, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 1, 0, 0, 0, 85, 85, - 0, 0, 98, 16, 0, 3, - 50, 16, 16, 0, 1, 0, - 0, 0, 98, 16, 0, 3, - 194, 16, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 104, 0, 0, 2, - 2, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 0, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 1, 0, 0, 0, 230, 26, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 1, 0, - 0, 0, 0, 96, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 242, 32, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 1, 0, - 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 116, 0, - 0, 0, 4, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 68, - 69, 70, 236, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 255, 255, 0, 1, 0, 0, - 187, 0, 0, 0, 156, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 165, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 178, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 0, 0, - 0, 0, 1, 0, 0, 0, - 12, 0, 0, 0, 182, 0, - 0, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 4, 0, - 0, 0, 255, 255, 255, 255, - 1, 0, 0, 0, 1, 0, - 0, 0, 12, 0, 0, 0, - 115, 83, 97, 109, 112, 108, - 101, 114, 0, 115, 77, 97, - 115, 107, 83, 97, 109, 112, - 108, 101, 114, 0, 116, 101, - 120, 0, 109, 97, 115, 107, + 0, 1, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 0, 196, 7, 0, 0, 68, + 88, 66, 67, 10, 64, 223, + 200, 195, 240, 1, 206, 6, + 135, 41, 112, 246, 195, 250, + 98, 1, 0, 0, 0, 196, + 7, 0, 0, 6, 0, 0, + 0, 56, 0, 0, 0, 196, + 1, 0, 0, 56, 4, 0, + 0, 180, 4, 0, 0, 32, + 7, 0, 0, 144, 7, 0, + 0, 65, 111, 110, 57, 132, + 1, 0, 0, 132, 1, 0, + 0, 0, 2, 255, 255, 76, + 1, 0, 0, 56, 0, 0, + 0, 1, 0, 44, 0, 0, + 0, 56, 0, 0, 0, 56, + 0, 2, 0, 36, 0, 0, + 0, 56, 0, 0, 0, 0, + 0, 1, 1, 1, 0, 0, + 0, 4, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 1, + 2, 255, 255, 81, 0, 0, + 5, 2, 0, 15, 160, 0, + 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 31, 0, 0, + 2, 0, 0, 0, 128, 0, + 0, 15, 176, 31, 0, 0, + 2, 0, 0, 0, 144, 0, + 8, 15, 160, 31, 0, 0, + 2, 0, 0, 0, 144, 1, + 8, 15, 160, 5, 0, 0, + 3, 0, 0, 8, 128, 1, + 0, 255, 160, 1, 0, 255, + 160, 2, 0, 0, 3, 0, + 0, 3, 128, 0, 0, 235, + 176, 1, 0, 228, 161, 90, + 0, 0, 4, 0, 0, 8, + 128, 0, 0, 228, 128, 0, + 0, 228, 128, 0, 0, 255, + 129, 5, 0, 0, 3, 0, + 0, 8, 128, 0, 0, 255, + 128, 2, 0, 0, 160, 1, + 0, 0, 2, 0, 0, 4, + 128, 1, 0, 255, 160, 8, + 0, 0, 3, 0, 0, 1, + 128, 0, 0, 228, 128, 0, + 0, 228, 160, 6, 0, 0, + 2, 0, 0, 1, 128, 0, + 0, 0, 128, 5, 0, 0, + 3, 0, 0, 1, 128, 0, + 0, 0, 128, 0, 0, 255, + 128, 1, 0, 0, 2, 0, + 0, 2, 128, 2, 0, 0, + 160, 66, 0, 0, 3, 1, + 0, 15, 128, 0, 0, 228, + 176, 1, 8, 228, 160, 66, + 0, 0, 3, 2, 0, 15, + 128, 0, 0, 228, 128, 0, + 8, 228, 160, 1, 0, 0, + 2, 0, 0, 8, 128, 1, + 0, 255, 160, 4, 0, 0, + 4, 0, 0, 1, 128, 0, + 0, 0, 128, 0, 0, 170, + 161, 0, 0, 255, 129, 5, + 0, 0, 3, 2, 0, 7, + 128, 2, 0, 255, 128, 2, + 0, 228, 128, 5, 0, 0, + 3, 1, 0, 15, 128, 1, + 0, 255, 128, 2, 0, 228, + 128, 88, 0, 0, 4, 0, + 0, 15, 128, 0, 0, 0, + 128, 2, 0, 85, 160, 1, + 0, 228, 128, 1, 0, 0, + 2, 0, 8, 15, 128, 0, + 0, 228, 128, 255, 255, 0, + 0, 83, 72, 68, 82, 108, + 2, 0, 0, 64, 0, 0, + 0, 155, 0, 0, 0, 89, + 0, 0, 4, 70, 142, 32, + 0, 0, 0, 0, 0, 6, + 0, 0, 0, 90, 0, 0, + 3, 0, 96, 16, 0, 0, + 0, 0, 0, 90, 0, 0, + 3, 0, 96, 16, 0, 1, + 0, 0, 0, 88, 24, 0, + 4, 0, 112, 16, 0, 0, + 0, 0, 0, 85, 85, 0, + 0, 88, 24, 0, 4, 0, + 112, 16, 0, 1, 0, 0, + 0, 85, 85, 0, 0, 98, + 16, 0, 3, 50, 16, 16, + 0, 1, 0, 0, 0, 98, + 16, 0, 3, 194, 16, 16, + 0, 1, 0, 0, 0, 101, + 0, 0, 3, 242, 32, 16, + 0, 0, 0, 0, 0, 104, + 0, 0, 2, 2, 0, 0, + 0, 0, 0, 0, 9, 50, + 0, 16, 0, 0, 0, 0, + 0, 230, 26, 16, 0, 1, + 0, 0, 0, 70, 128, 32, + 128, 65, 0, 0, 0, 0, + 0, 0, 0, 5, 0, 0, + 0, 54, 0, 0, 6, 66, + 0, 16, 0, 0, 0, 0, + 0, 58, 128, 32, 0, 0, + 0, 0, 0, 5, 0, 0, + 0, 16, 0, 0, 8, 66, + 0, 16, 0, 0, 0, 0, + 0, 70, 2, 16, 0, 0, + 0, 0, 0, 70, 130, 32, + 0, 0, 0, 0, 0, 4, + 0, 0, 0, 15, 0, 0, + 7, 18, 0, 16, 0, 0, + 0, 0, 0, 70, 0, 16, + 0, 0, 0, 0, 0, 70, + 0, 16, 0, 0, 0, 0, + 0, 50, 0, 0, 12, 18, + 0, 16, 0, 0, 0, 0, + 0, 58, 128, 32, 128, 65, + 0, 0, 0, 0, 0, 0, + 0, 5, 0, 0, 0, 58, + 128, 32, 0, 0, 0, 0, + 0, 5, 0, 0, 0, 10, + 0, 16, 0, 0, 0, 0, + 0, 56, 0, 0, 7, 18, + 0, 16, 0, 0, 0, 0, + 0, 10, 0, 16, 0, 0, + 0, 0, 0, 1, 64, 0, + 0, 0, 0, 0, 63, 14, + 0, 0, 7, 18, 0, 16, + 0, 0, 0, 0, 0, 10, + 0, 16, 0, 0, 0, 0, + 0, 42, 0, 16, 0, 0, + 0, 0, 0, 56, 0, 0, + 8, 66, 0, 16, 0, 0, + 0, 0, 0, 10, 0, 16, + 0, 0, 0, 0, 0, 42, + 128, 32, 0, 0, 0, 0, + 0, 4, 0, 0, 0, 29, + 0, 0, 9, 66, 0, 16, + 0, 0, 0, 0, 0, 58, + 128, 32, 128, 65, 0, 0, + 0, 0, 0, 0, 0, 5, + 0, 0, 0, 42, 0, 16, + 0, 0, 0, 0, 0, 54, + 0, 0, 5, 34, 0, 16, + 0, 0, 0, 0, 0, 1, + 64, 0, 0, 0, 0, 0, + 63, 69, 0, 0, 9, 242, + 0, 16, 0, 1, 0, 0, + 0, 70, 0, 16, 0, 0, + 0, 0, 0, 70, 126, 16, + 0, 0, 0, 0, 0, 0, + 96, 16, 0, 0, 0, 0, + 0, 31, 0, 4, 3, 42, + 0, 16, 0, 0, 0, 0, + 0, 54, 0, 0, 8, 242, + 32, 16, 0, 0, 0, 0, + 0, 2, 64, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 62, 0, 0, + 1, 21, 0, 0, 1, 56, + 0, 0, 7, 114, 0, 16, + 0, 1, 0, 0, 0, 246, + 15, 16, 0, 1, 0, 0, + 0, 70, 2, 16, 0, 1, + 0, 0, 0, 69, 0, 0, + 9, 242, 0, 16, 0, 0, + 0, 0, 0, 70, 16, 16, + 0, 1, 0, 0, 0, 70, + 126, 16, 0, 1, 0, 0, + 0, 0, 96, 16, 0, 1, + 0, 0, 0, 56, 0, 0, + 7, 242, 32, 16, 0, 0, + 0, 0, 0, 246, 15, 16, + 0, 0, 0, 0, 0, 70, + 14, 16, 0, 1, 0, 0, + 0, 62, 0, 0, 1, 83, + 84, 65, 84, 116, 0, 0, + 0, 19, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 9, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 82, 68, 69, + 70, 100, 2, 0, 0, 1, + 0, 0, 0, 232, 0, 0, + 0, 5, 0, 0, 0, 28, + 0, 0, 0, 0, 4, 255, + 255, 0, 1, 0, 0, 51, + 2, 0, 0, 188, 0, 0, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 203, + 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 216, 0, 0, 0, 2, + 0, 0, 0, 5, 0, 0, + 0, 4, 0, 0, 0, 255, + 255, 255, 255, 0, 0, 0, + 0, 1, 0, 0, 0, 12, + 0, 0, 0, 220, 0, 0, + 0, 2, 0, 0, 0, 5, + 0, 0, 0, 4, 0, 0, + 0, 255, 255, 255, 255, 1, + 0, 0, 0, 1, 0, 0, + 0, 12, 0, 0, 0, 225, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 115, 77, 105, 114, 114, + 111, 114, 83, 97, 109, 112, + 108, 101, 114, 0, 115, 77, + 97, 115, 107, 83, 97, 109, + 112, 108, 101, 114, 0, 116, + 101, 120, 0, 109, 97, 115, + 107, 0, 99, 98, 50, 0, + 171, 171, 171, 225, 0, 0, + 0, 7, 0, 0, 0, 0, + 1, 0, 0, 112, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 168, 1, 0, + 0, 0, 0, 0, 0, 44, + 0, 0, 0, 0, 0, 0, + 0, 192, 1, 0, 0, 0, + 0, 0, 0, 208, 1, 0, + 0, 48, 0, 0, 0, 8, + 0, 0, 0, 0, 0, 0, + 0, 220, 1, 0, 0, 0, + 0, 0, 0, 236, 1, 0, + 0, 64, 0, 0, 0, 12, + 0, 0, 0, 2, 0, 0, + 0, 244, 1, 0, 0, 0, + 0, 0, 0, 4, 2, 0, + 0, 80, 0, 0, 0, 8, + 0, 0, 0, 2, 0, 0, + 0, 220, 1, 0, 0, 0, + 0, 0, 0, 12, 2, 0, + 0, 88, 0, 0, 0, 4, + 0, 0, 0, 0, 0, 0, + 0, 16, 2, 0, 0, 0, + 0, 0, 0, 32, 2, 0, + 0, 92, 0, 0, 0, 4, + 0, 0, 0, 2, 0, 0, + 0, 16, 2, 0, 0, 0, + 0, 0, 0, 40, 2, 0, + 0, 96, 0, 0, 0, 4, + 0, 0, 0, 0, 0, 0, + 0, 16, 2, 0, 0, 0, + 0, 0, 0, 68, 101, 118, + 105, 99, 101, 83, 112, 97, + 99, 101, 84, 111, 85, 115, + 101, 114, 83, 112, 97, 99, + 101, 0, 171, 3, 0, 3, + 0, 3, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 100, 105, 109, 101, 110, + 115, 105, 111, 110, 115, 0, + 171, 1, 0, 3, 0, 1, + 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 100, + 105, 102, 102, 0, 171, 171, + 171, 1, 0, 3, 0, 1, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 99, + 101, 110, 116, 101, 114, 49, + 0, 65, 0, 171, 171, 0, + 0, 3, 0, 1, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 114, 97, 100, + 105, 117, 115, 49, 0, 115, + 113, 95, 114, 97, 100, 105, + 117, 115, 49, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 57, 46, 50, + 57, 46, 57, 53, 50, 46, + 51, 49, 49, 49, 0, 73, + 83, 71, 78, 104, 0, 0, + 0, 3, 0, 0, 0, 8, + 0, 0, 0, 80, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 15, + 0, 0, 0, 92, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 1, 0, 0, 0, 3, + 3, 0, 0, 92, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 1, 0, 0, 0, 12, + 12, 0, 0, 83, 86, 95, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 84, 69, 88, + 67, 79, 79, 82, 68, 0, + 171, 171, 171, 79, 83, 71, + 78, 44, 0, 0, 0, 1, + 0, 0, 0, 8, 0, 0, + 0, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, + 0, 83, 86, 95, 84, 97, + 114, 103, 101, 116, 0, 171, + 171, 91, 99, 0, 0, 0, + 0, 0, 0, 83, 97, 109, + 112, 108, 101, 77, 97, 115, + 107, 101, 100, 84, 101, 120, + 116, 117, 114, 101, 0, 36, + 4, 0, 0, 68, 88, 66, + 67, 116, 139, 68, 62, 73, + 113, 92, 4, 72, 76, 225, + 161, 30, 132, 222, 233, 1, + 0, 0, 0, 36, 4, 0, + 0, 6, 0, 0, 0, 56, + 0, 0, 0, 248, 0, 0, + 0, 244, 1, 0, 0, 112, + 2, 0, 0, 128, 3, 0, + 0, 180, 3, 0, 0, 65, + 111, 110, 57, 184, 0, 0, + 0, 184, 0, 0, 0, 0, + 2, 254, 255, 132, 0, 0, + 0, 52, 0, 0, 0, 1, + 0, 36, 0, 0, 0, 48, + 0, 0, 0, 48, 0, 0, + 0, 36, 0, 1, 0, 48, + 0, 0, 0, 0, 0, 3, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 2, 254, 255, 81, 0, 0, + 5, 4, 0, 15, 160, 0, + 0, 0, 0, 0, 0, 128, + 63, 0, 0, 0, 0, 0, + 0, 0, 0, 31, 0, 0, + 2, 5, 0, 0, 128, 0, + 0, 15, 144, 4, 0, 0, + 4, 0, 0, 3, 224, 0, + 0, 228, 144, 2, 0, 238, + 160, 2, 0, 228, 160, 4, + 0, 0, 4, 0, 0, 12, + 224, 0, 0, 20, 144, 3, + 0, 180, 160, 3, 0, 20, + 160, 4, 0, 0, 4, 0, + 0, 3, 128, 0, 0, 228, + 144, 1, 0, 238, 160, 1, + 0, 228, 160, 2, 0, 0, + 3, 0, 0, 3, 192, 0, + 0, 228, 128, 0, 0, 228, + 160, 1, 0, 0, 2, 0, + 0, 12, 192, 4, 0, 68, + 160, 255, 255, 0, 0, 83, + 72, 68, 82, 244, 0, 0, + 0, 64, 0, 1, 0, 61, + 0, 0, 0, 89, 0, 0, + 4, 70, 142, 32, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 95, 0, 0, 3, 50, + 16, 16, 0, 0, 0, 0, + 0, 103, 0, 0, 4, 242, + 32, 16, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 101, + 0, 0, 3, 50, 32, 16, + 0, 1, 0, 0, 0, 101, + 0, 0, 3, 194, 32, 16, + 0, 1, 0, 0, 0, 50, + 0, 0, 11, 50, 32, 16, + 0, 0, 0, 0, 0, 70, + 16, 16, 0, 0, 0, 0, + 0, 230, 138, 32, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 70, 128, 32, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 54, 0, 0, 8, 194, + 32, 16, 0, 0, 0, 0, + 0, 2, 64, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 128, 63, 50, 0, 0, + 11, 50, 32, 16, 0, 1, + 0, 0, 0, 70, 16, 16, + 0, 0, 0, 0, 0, 230, + 138, 32, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 70, + 128, 32, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 50, + 0, 0, 11, 194, 32, 16, + 0, 1, 0, 0, 0, 6, + 20, 16, 0, 0, 0, 0, + 0, 166, 142, 32, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 6, 132, 32, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 62, 0, 0, 1, 83, + 84, 65, 84, 116, 0, 0, + 0, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 82, 68, 69, + 70, 8, 1, 0, 0, 1, + 0, 0, 0, 64, 0, 0, + 0, 1, 0, 0, 0, 28, + 0, 0, 0, 0, 4, 254, + 255, 0, 1, 0, 0, 212, + 0, 0, 0, 60, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 99, + 98, 48, 0, 60, 0, 0, + 0, 3, 0, 0, 0, 88, + 0, 0, 0, 48, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 160, 0, 0, + 0, 0, 0, 0, 0, 16, + 0, 0, 0, 2, 0, 0, + 0, 172, 0, 0, 0, 0, + 0, 0, 0, 188, 0, 0, + 0, 16, 0, 0, 0, 16, + 0, 0, 0, 2, 0, 0, + 0, 172, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 0, + 0, 32, 0, 0, 0, 16, + 0, 0, 0, 2, 0, 0, + 0, 172, 0, 0, 0, 0, + 0, 0, 0, 81, 117, 97, + 100, 68, 101, 115, 99, 0, + 171, 171, 171, 1, 0, 3, + 0, 1, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 84, 101, 120, 67, 111, + 111, 114, 100, 115, 0, 77, + 97, 115, 107, 84, 101, 120, + 67, 111, 111, 114, 100, 115, 0, 77, 105, 99, 114, 111, 115, 111, 102, 116, 32, 40, 82, 41, 32, 72, 76, 83, 76, 32, 83, 104, 97, 100, 101, 114, 32, 67, 111, 109, 112, 105, 108, 101, 114, 32, 57, 46, 50, 57, 46, 57, 53, 50, 46, 51, 49, 49, - 49, 0, 73, 83, 71, 78, - 104, 0, 0, 0, 3, 0, - 0, 0, 8, 0, 0, 0, - 80, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 92, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 3, 0, 0, - 92, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 12, 12, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 171, 171, - 79, 83, 71, 78, 44, 0, - 0, 0, 1, 0, 0, 0, - 8, 0, 0, 0, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 83, 86, - 95, 84, 97, 114, 103, 101, - 116, 0, 171, 171, 6, 47, - 0, 0, 0, 0, 0, 0, - 83, 97, 109, 112, 108, 101, - 84, 101, 120, 116, 117, 114, - 101, 87, 105, 116, 104, 83, - 104, 97, 100, 111, 119, 0, + 49, 0, 171, 171, 171, 73, + 83, 71, 78, 44, 0, 0, + 0, 1, 0, 0, 0, 8, + 0, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 7, + 3, 0, 0, 80, 79, 83, + 73, 84, 73, 79, 78, 0, + 171, 171, 171, 79, 83, 71, + 78, 104, 0, 0, 0, 3, + 0, 0, 0, 8, 0, 0, + 0, 80, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, + 0, 92, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 1, + 0, 0, 0, 3, 12, 0, + 0, 92, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 1, + 0, 0, 0, 12, 3, 0, + 0, 83, 86, 95, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 84, 69, 88, 67, 79, + 79, 82, 68, 0, 171, 171, + 171, 63, 107, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 2, 0, 0, 0, 0, + 0, 0, 0, 208, 3, 0, + 0, 68, 88, 66, 67, 145, + 96, 208, 189, 244, 147, 57, + 205, 242, 133, 35, 176, 39, + 143, 121, 235, 1, 0, 0, + 0, 208, 3, 0, 0, 6, + 0, 0, 0, 56, 0, 0, + 0, 224, 0, 0, 0, 188, + 1, 0, 0, 56, 2, 0, + 0, 44, 3, 0, 0, 156, + 3, 0, 0, 65, 111, 110, + 57, 160, 0, 0, 0, 160, + 0, 0, 0, 0, 2, 255, + 255, 116, 0, 0, 0, 44, + 0, 0, 0, 0, 0, 44, + 0, 0, 0, 44, 0, 0, + 0, 44, 0, 2, 0, 36, + 0, 0, 0, 44, 0, 0, + 0, 0, 0, 1, 1, 1, + 0, 1, 2, 255, 255, 31, + 0, 0, 2, 0, 0, 0, + 128, 0, 0, 15, 176, 31, + 0, 0, 2, 0, 0, 0, + 144, 0, 8, 15, 160, 31, + 0, 0, 2, 0, 0, 0, + 144, 1, 8, 15, 160, 1, + 0, 0, 2, 0, 0, 3, + 128, 0, 0, 235, 176, 66, + 0, 0, 3, 1, 0, 15, + 128, 0, 0, 228, 176, 0, + 8, 228, 160, 66, 0, 0, + 3, 0, 0, 15, 128, 0, + 0, 228, 128, 1, 8, 228, + 160, 5, 0, 0, 3, 0, + 0, 15, 128, 0, 0, 255, + 128, 1, 0, 228, 128, 1, + 0, 0, 2, 0, 8, 15, + 128, 0, 0, 228, 128, 255, + 255, 0, 0, 83, 72, 68, + 82, 212, 0, 0, 0, 64, + 0, 0, 0, 53, 0, 0, + 0, 90, 0, 0, 3, 0, + 96, 16, 0, 0, 0, 0, + 0, 90, 0, 0, 3, 0, + 96, 16, 0, 1, 0, 0, + 0, 88, 24, 0, 4, 0, + 112, 16, 0, 0, 0, 0, + 0, 85, 85, 0, 0, 88, + 24, 0, 4, 0, 112, 16, + 0, 1, 0, 0, 0, 85, + 85, 0, 0, 98, 16, 0, + 3, 50, 16, 16, 0, 1, + 0, 0, 0, 98, 16, 0, + 3, 194, 16, 16, 0, 1, + 0, 0, 0, 101, 0, 0, + 3, 242, 32, 16, 0, 0, + 0, 0, 0, 104, 0, 0, + 2, 2, 0, 0, 0, 69, + 0, 0, 9, 242, 0, 16, + 0, 0, 0, 0, 0, 70, + 16, 16, 0, 1, 0, 0, + 0, 70, 126, 16, 0, 0, + 0, 0, 0, 0, 96, 16, + 0, 0, 0, 0, 0, 69, + 0, 0, 9, 242, 0, 16, + 0, 1, 0, 0, 0, 230, + 26, 16, 0, 1, 0, 0, + 0, 70, 126, 16, 0, 1, + 0, 0, 0, 0, 96, 16, + 0, 1, 0, 0, 0, 56, + 0, 0, 7, 242, 32, 16, + 0, 0, 0, 0, 0, 70, + 14, 16, 0, 0, 0, 0, + 0, 246, 15, 16, 0, 1, + 0, 0, 0, 62, 0, 0, + 1, 83, 84, 65, 84, 116, + 0, 0, 0, 4, 0, 0, + 0, 2, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 82, + 68, 69, 70, 236, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 0, 0, + 0, 28, 0, 0, 0, 0, + 4, 255, 255, 0, 1, 0, + 0, 187, 0, 0, 0, 156, + 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 165, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 178, 0, 0, + 0, 2, 0, 0, 0, 5, + 0, 0, 0, 4, 0, 0, + 0, 255, 255, 255, 255, 0, + 0, 0, 0, 1, 0, 0, + 0, 12, 0, 0, 0, 182, + 0, 0, 0, 2, 0, 0, + 0, 5, 0, 0, 0, 4, + 0, 0, 0, 255, 255, 255, + 255, 1, 0, 0, 0, 1, + 0, 0, 0, 12, 0, 0, + 0, 115, 83, 97, 109, 112, + 108, 101, 114, 0, 115, 77, + 97, 115, 107, 83, 97, 109, + 112, 108, 101, 114, 0, 116, + 101, 120, 0, 109, 97, 115, + 107, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 57, 46, 50, 57, 46, + 57, 53, 50, 46, 51, 49, + 49, 49, 0, 73, 83, 71, + 78, 104, 0, 0, 0, 3, + 0, 0, 0, 8, 0, 0, + 0, 80, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, + 0, 92, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 1, + 0, 0, 0, 3, 3, 0, + 0, 92, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 1, + 0, 0, 0, 12, 12, 0, + 0, 83, 86, 95, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 84, 69, 88, 67, 79, + 79, 82, 68, 0, 171, 171, + 171, 79, 83, 71, 78, 44, + 0, 0, 0, 1, 0, 0, + 0, 8, 0, 0, 0, 32, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 15, 0, 0, 0, 83, + 86, 95, 84, 97, 114, 103, + 101, 116, 0, 171, 171, 123, + 111, 0, 0, 0, 0, 0, + 0, 83, 97, 109, 112, 108, + 101, 84, 101, 120, 116, 117, + 114, 101, 87, 105, 116, 104, + 83, 104, 97, 100, 111, 119, + 0, 4, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 128, + 63, 1, 0, 0, 0, 0, + 0, 128, 63, 1, 0, 0, + 0, 0, 0, 128, 63, 1, + 0, 0, 0, 0, 0, 128, + 63, 1, 0, 0, 0, 3, + 0, 0, 0, 255, 255, 255, + 255, 36, 4, 0, 0, 68, + 88, 66, 67, 116, 139, 68, + 62, 73, 113, 92, 4, 72, + 76, 225, 161, 30, 132, 222, + 233, 1, 0, 0, 0, 36, + 4, 0, 0, 6, 0, 0, + 0, 56, 0, 0, 0, 248, + 0, 0, 0, 244, 1, 0, + 0, 112, 2, 0, 0, 128, + 3, 0, 0, 180, 3, 0, + 0, 65, 111, 110, 57, 184, + 0, 0, 0, 184, 0, 0, + 0, 0, 2, 254, 255, 132, + 0, 0, 0, 52, 0, 0, + 0, 1, 0, 36, 0, 0, + 0, 48, 0, 0, 0, 48, + 0, 0, 0, 36, 0, 1, + 0, 48, 0, 0, 0, 0, + 0, 3, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 1, 2, 254, 255, 81, + 0, 0, 5, 4, 0, 15, + 160, 0, 0, 0, 0, 0, + 0, 128, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 31, + 0, 0, 2, 5, 0, 0, + 128, 0, 0, 15, 144, 4, + 0, 0, 4, 0, 0, 3, + 224, 0, 0, 228, 144, 2, + 0, 238, 160, 2, 0, 228, + 160, 4, 0, 0, 4, 0, + 0, 12, 224, 0, 0, 20, + 144, 3, 0, 180, 160, 3, + 0, 20, 160, 4, 0, 0, + 4, 0, 0, 3, 128, 0, + 0, 228, 144, 1, 0, 238, + 160, 1, 0, 228, 160, 2, + 0, 0, 3, 0, 0, 3, + 192, 0, 0, 228, 128, 0, + 0, 228, 160, 1, 0, 0, + 2, 0, 0, 12, 192, 4, + 0, 68, 160, 255, 255, 0, + 0, 83, 72, 68, 82, 244, + 0, 0, 0, 64, 0, 1, + 0, 61, 0, 0, 0, 89, + 0, 0, 4, 70, 142, 32, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 95, 0, 0, + 3, 50, 16, 16, 0, 0, + 0, 0, 0, 103, 0, 0, + 4, 242, 32, 16, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 101, 0, 0, 3, 50, + 32, 16, 0, 1, 0, 0, + 0, 101, 0, 0, 3, 194, + 32, 16, 0, 1, 0, 0, + 0, 50, 0, 0, 11, 50, + 32, 16, 0, 0, 0, 0, + 0, 70, 16, 16, 0, 0, + 0, 0, 0, 230, 138, 32, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 70, 128, 32, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 54, 0, 0, + 8, 194, 32, 16, 0, 0, + 0, 0, 0, 2, 64, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 128, 63, 50, + 0, 0, 11, 50, 32, 16, + 0, 1, 0, 0, 0, 70, + 16, 16, 0, 0, 0, 0, + 0, 230, 138, 32, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 70, 128, 32, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 50, 0, 0, 11, 194, + 32, 16, 0, 1, 0, 0, + 0, 6, 20, 16, 0, 0, + 0, 0, 0, 166, 142, 32, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 6, 132, 32, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 62, 0, 0, + 1, 83, 84, 65, 84, 116, + 0, 0, 0, 5, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 82, + 68, 69, 70, 8, 1, 0, + 0, 1, 0, 0, 0, 64, + 0, 0, 0, 1, 0, 0, + 0, 28, 0, 0, 0, 0, + 4, 254, 255, 0, 1, 0, + 0, 212, 0, 0, 0, 60, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 99, 98, 48, 0, 60, + 0, 0, 0, 3, 0, 0, + 0, 88, 0, 0, 0, 48, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 160, + 0, 0, 0, 0, 0, 0, + 0, 16, 0, 0, 0, 2, + 0, 0, 0, 172, 0, 0, + 0, 0, 0, 0, 0, 188, + 0, 0, 0, 16, 0, 0, + 0, 16, 0, 0, 0, 2, + 0, 0, 0, 172, 0, 0, + 0, 0, 0, 0, 0, 198, + 0, 0, 0, 32, 0, 0, + 0, 16, 0, 0, 0, 2, + 0, 0, 0, 172, 0, 0, + 0, 0, 0, 0, 0, 81, + 117, 97, 100, 68, 101, 115, + 99, 0, 171, 171, 171, 1, + 0, 3, 0, 1, 0, 4, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 84, 101, 120, + 67, 111, 111, 114, 100, 115, + 0, 77, 97, 115, 107, 84, + 101, 120, 67, 111, 111, 114, + 100, 115, 0, 77, 105, 99, + 114, 111, 115, 111, 102, 116, + 32, 40, 82, 41, 32, 72, + 76, 83, 76, 32, 83, 104, + 97, 100, 101, 114, 32, 67, + 111, 109, 112, 105, 108, 101, + 114, 32, 57, 46, 50, 57, + 46, 57, 53, 50, 46, 51, + 49, 49, 49, 0, 171, 171, + 171, 73, 83, 71, 78, 44, + 0, 0, 0, 1, 0, 0, + 0, 8, 0, 0, 0, 32, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 7, 3, 0, 0, 80, + 79, 83, 73, 84, 73, 79, + 78, 0, 171, 171, 171, 79, + 83, 71, 78, 104, 0, 0, + 0, 3, 0, 0, 0, 8, + 0, 0, 0, 80, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 15, + 0, 0, 0, 92, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 1, 0, 0, 0, 3, + 12, 0, 0, 92, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 1, 0, 0, 0, 12, + 3, 0, 0, 83, 86, 95, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 84, 69, 88, + 67, 79, 79, 82, 68, 0, + 171, 171, 171, 159, 115, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 232, + 9, 0, 0, 68, 88, 66, + 67, 45, 80, 33, 8, 5, + 16, 134, 134, 115, 16, 129, + 43, 103, 216, 255, 210, 1, + 0, 0, 0, 232, 9, 0, + 0, 6, 0, 0, 0, 56, + 0, 0, 0, 248, 2, 0, + 0, 8, 7, 0, 0, 132, + 7, 0, 0, 68, 9, 0, + 0, 180, 9, 0, 0, 65, + 111, 110, 57, 184, 2, 0, + 0, 184, 2, 0, 0, 0, + 2, 255, 255, 120, 2, 0, + 0, 64, 0, 0, 0, 2, + 0, 40, 0, 0, 0, 64, + 0, 0, 0, 64, 0, 1, + 0, 36, 0, 0, 0, 64, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 6, 0, 4, 0, 3, + 0, 0, 0, 0, 0, 1, + 2, 255, 255, 31, 0, 0, + 2, 0, 0, 0, 128, 0, + 0, 15, 176, 31, 0, 0, + 2, 0, 0, 0, 144, 0, + 8, 15, 160, 2, 0, 0, + 3, 0, 0, 1, 128, 0, + 0, 0, 176, 0, 0, 85, + 160, 1, 0, 0, 2, 0, + 0, 2, 128, 0, 0, 85, + 176, 2, 0, 0, 3, 1, + 0, 1, 128, 0, 0, 0, + 176, 0, 0, 0, 160, 1, + 0, 0, 2, 1, 0, 2, + 128, 0, 0, 85, 176, 66, + 0, 0, 3, 0, 0, 15, + 128, 0, 0, 228, 128, 0, + 8, 228, 160, 66, 0, 0, + 3, 1, 0, 15, 128, 1, + 0, 228, 128, 0, 8, 228, + 160, 5, 0, 0, 3, 0, + 0, 1, 128, 0, 0, 255, + 128, 3, 0, 85, 160, 4, + 0, 0, 4, 0, 0, 1, + 128, 3, 0, 0, 160, 1, + 0, 255, 128, 0, 0, 0, + 128, 2, 0, 0, 3, 1, + 0, 1, 128, 0, 0, 0, + 176, 0, 0, 170, 160, 1, + 0, 0, 2, 1, 0, 2, + 128, 0, 0, 85, 176, 2, + 0, 0, 3, 2, 0, 1, + 128, 0, 0, 0, 176, 0, + 0, 255, 160, 1, 0, 0, + 2, 2, 0, 2, 128, 0, + 0, 85, 176, 66, 0, 0, + 3, 1, 0, 15, 128, 1, + 0, 228, 128, 0, 8, 228, + 160, 66, 0, 0, 3, 2, + 0, 15, 128, 2, 0, 228, + 128, 0, 8, 228, 160, 4, + 0, 0, 4, 0, 0, 1, + 128, 3, 0, 170, 160, 1, + 0, 255, 128, 0, 0, 0, + 128, 4, 0, 0, 4, 0, + 0, 1, 128, 3, 0, 255, + 160, 2, 0, 255, 128, 0, + 0, 0, 128, 2, 0, 0, + 3, 1, 0, 1, 128, 0, + 0, 0, 176, 1, 0, 0, + 160, 1, 0, 0, 2, 1, + 0, 2, 128, 0, 0, 85, + 176, 2, 0, 0, 3, 2, + 0, 1, 128, 0, 0, 0, + 176, 1, 0, 85, 160, 1, + 0, 0, 2, 2, 0, 2, + 128, 0, 0, 85, 176, 66, + 0, 0, 3, 1, 0, 15, + 128, 1, 0, 228, 128, 0, + 8, 228, 160, 66, 0, 0, + 3, 2, 0, 15, 128, 2, + 0, 228, 128, 0, 8, 228, + 160, 4, 0, 0, 4, 0, + 0, 1, 128, 4, 0, 0, + 160, 1, 0, 255, 128, 0, + 0, 0, 128, 4, 0, 0, + 4, 0, 0, 1, 128, 4, + 0, 85, 160, 2, 0, 255, + 128, 0, 0, 0, 128, 2, + 0, 0, 3, 1, 0, 1, + 128, 0, 0, 0, 176, 1, + 0, 170, 160, 1, 0, 0, + 2, 1, 0, 2, 128, 0, + 0, 85, 176, 2, 0, 0, + 3, 2, 0, 1, 128, 0, + 0, 0, 176, 1, 0, 255, + 160, 1, 0, 0, 2, 2, + 0, 2, 128, 0, 0, 85, + 176, 66, 0, 0, 3, 1, + 0, 15, 128, 1, 0, 228, + 128, 0, 8, 228, 160, 66, + 0, 0, 3, 2, 0, 15, + 128, 2, 0, 228, 128, 0, + 8, 228, 160, 4, 0, 0, + 4, 0, 0, 1, 128, 4, + 0, 170, 160, 1, 0, 255, + 128, 0, 0, 0, 128, 4, + 0, 0, 4, 0, 0, 1, + 128, 4, 0, 255, 160, 2, + 0, 255, 128, 0, 0, 0, + 128, 2, 0, 0, 3, 1, + 0, 1, 128, 0, 0, 0, + 176, 2, 0, 0, 160, 1, + 0, 0, 2, 1, 0, 2, + 128, 0, 0, 85, 176, 66, + 0, 0, 3, 1, 0, 15, + 128, 1, 0, 228, 128, 0, + 8, 228, 160, 4, 0, 0, + 4, 0, 0, 1, 128, 5, + 0, 0, 160, 1, 0, 255, + 128, 0, 0, 0, 128, 5, + 0, 0, 3, 0, 0, 15, + 128, 0, 0, 0, 128, 6, + 0, 228, 160, 1, 0, 0, + 2, 0, 8, 15, 128, 0, + 0, 228, 128, 255, 255, 0, + 0, 83, 72, 68, 82, 8, + 4, 0, 0, 64, 0, 0, + 0, 2, 1, 0, 0, 89, + 0, 0, 4, 70, 142, 32, + 0, 0, 0, 0, 0, 10, + 0, 0, 0, 90, 0, 0, + 3, 0, 96, 16, 0, 0, + 0, 0, 0, 88, 24, 0, + 4, 0, 112, 16, 0, 0, + 0, 0, 0, 85, 85, 0, + 0, 98, 16, 0, 3, 50, + 16, 16, 0, 1, 0, 0, + 0, 101, 0, 0, 3, 242, + 32, 16, 0, 0, 0, 0, + 0, 104, 0, 0, 2, 4, + 0, 0, 0, 0, 0, 0, + 8, 242, 0, 16, 0, 0, + 0, 0, 0, 6, 16, 16, + 0, 1, 0, 0, 0, 38, + 135, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 54, + 0, 0, 5, 82, 0, 16, + 0, 1, 0, 0, 0, 86, + 7, 16, 0, 0, 0, 0, + 0, 54, 0, 0, 5, 162, + 0, 16, 0, 1, 0, 0, + 0, 86, 21, 16, 0, 1, + 0, 0, 0, 69, 0, 0, + 9, 242, 0, 16, 0, 2, + 0, 0, 0, 230, 10, 16, + 0, 1, 0, 0, 0, 70, + 126, 16, 0, 0, 0, 0, + 0, 0, 96, 16, 0, 0, + 0, 0, 0, 69, 0, 0, + 9, 242, 0, 16, 0, 1, + 0, 0, 0, 70, 0, 16, + 0, 1, 0, 0, 0, 70, + 126, 16, 0, 0, 0, 0, + 0, 0, 96, 16, 0, 0, + 0, 0, 0, 56, 0, 0, + 8, 18, 0, 16, 0, 1, + 0, 0, 0, 58, 0, 16, + 0, 2, 0, 0, 0, 26, + 128, 32, 0, 0, 0, 0, + 0, 6, 0, 0, 0, 50, + 0, 0, 10, 18, 0, 16, + 0, 1, 0, 0, 0, 10, + 128, 32, 0, 0, 0, 0, + 0, 6, 0, 0, 0, 58, + 0, 16, 0, 1, 0, 0, + 0, 10, 0, 16, 0, 1, + 0, 0, 0, 54, 0, 0, + 5, 162, 0, 16, 0, 0, + 0, 0, 0, 86, 21, 16, + 0, 1, 0, 0, 0, 69, + 0, 0, 9, 242, 0, 16, + 0, 2, 0, 0, 0, 70, + 0, 16, 0, 0, 0, 0, + 0, 70, 126, 16, 0, 0, + 0, 0, 0, 0, 96, 16, + 0, 0, 0, 0, 0, 69, + 0, 0, 9, 242, 0, 16, + 0, 0, 0, 0, 0, 230, + 10, 16, 0, 0, 0, 0, + 0, 70, 126, 16, 0, 0, + 0, 0, 0, 0, 96, 16, + 0, 0, 0, 0, 0, 50, + 0, 0, 10, 18, 0, 16, + 0, 0, 0, 0, 0, 42, + 128, 32, 0, 0, 0, 0, + 0, 6, 0, 0, 0, 58, + 0, 16, 0, 2, 0, 0, + 0, 10, 0, 16, 0, 1, + 0, 0, 0, 50, 0, 0, + 10, 18, 0, 16, 0, 0, + 0, 0, 0, 58, 128, 32, + 0, 0, 0, 0, 0, 6, + 0, 0, 0, 58, 0, 16, + 0, 0, 0, 0, 0, 10, + 0, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 8, 242, + 0, 16, 0, 1, 0, 0, + 0, 6, 16, 16, 0, 1, + 0, 0, 0, 38, 135, 32, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 54, 0, 0, + 5, 82, 0, 16, 0, 2, + 0, 0, 0, 86, 7, 16, + 0, 1, 0, 0, 0, 54, + 0, 0, 5, 162, 0, 16, + 0, 2, 0, 0, 0, 86, + 21, 16, 0, 1, 0, 0, + 0, 69, 0, 0, 9, 242, + 0, 16, 0, 3, 0, 0, + 0, 70, 0, 16, 0, 2, + 0, 0, 0, 70, 126, 16, + 0, 0, 0, 0, 0, 0, + 96, 16, 0, 0, 0, 0, + 0, 69, 0, 0, 9, 242, + 0, 16, 0, 2, 0, 0, + 0, 230, 10, 16, 0, 2, + 0, 0, 0, 70, 126, 16, + 0, 0, 0, 0, 0, 0, + 96, 16, 0, 0, 0, 0, + 0, 50, 0, 0, 10, 18, + 0, 16, 0, 0, 0, 0, + 0, 10, 128, 32, 0, 0, + 0, 0, 0, 7, 0, 0, + 0, 58, 0, 16, 0, 3, + 0, 0, 0, 10, 0, 16, + 0, 0, 0, 0, 0, 50, + 0, 0, 10, 18, 0, 16, + 0, 0, 0, 0, 0, 26, + 128, 32, 0, 0, 0, 0, + 0, 7, 0, 0, 0, 58, + 0, 16, 0, 2, 0, 0, + 0, 10, 0, 16, 0, 0, + 0, 0, 0, 54, 0, 0, + 5, 162, 0, 16, 0, 1, + 0, 0, 0, 86, 21, 16, + 0, 1, 0, 0, 0, 69, + 0, 0, 9, 242, 0, 16, + 0, 2, 0, 0, 0, 70, + 0, 16, 0, 1, 0, 0, + 0, 70, 126, 16, 0, 0, + 0, 0, 0, 0, 96, 16, + 0, 0, 0, 0, 0, 69, + 0, 0, 9, 242, 0, 16, + 0, 1, 0, 0, 0, 230, + 10, 16, 0, 1, 0, 0, + 0, 70, 126, 16, 0, 0, + 0, 0, 0, 0, 96, 16, + 0, 0, 0, 0, 0, 50, + 0, 0, 10, 18, 0, 16, + 0, 0, 0, 0, 0, 42, + 128, 32, 0, 0, 0, 0, + 0, 7, 0, 0, 0, 58, + 0, 16, 0, 2, 0, 0, + 0, 10, 0, 16, 0, 0, + 0, 0, 0, 50, 0, 0, + 10, 18, 0, 16, 0, 0, + 0, 0, 0, 58, 128, 32, + 0, 0, 0, 0, 0, 7, + 0, 0, 0, 58, 0, 16, + 0, 1, 0, 0, 0, 10, + 0, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 8, 18, + 0, 16, 0, 1, 0, 0, + 0, 10, 16, 16, 0, 1, + 0, 0, 0, 10, 128, 32, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 54, 0, 0, + 5, 34, 0, 16, 0, 1, + 0, 0, 0, 26, 16, 16, + 0, 1, 0, 0, 0, 69, + 0, 0, 9, 242, 0, 16, + 0, 1, 0, 0, 0, 70, + 0, 16, 0, 1, 0, 0, + 0, 70, 126, 16, 0, 0, + 0, 0, 0, 0, 96, 16, + 0, 0, 0, 0, 0, 50, + 0, 0, 10, 18, 0, 16, + 0, 0, 0, 0, 0, 10, + 128, 32, 0, 0, 0, 0, + 0, 8, 0, 0, 0, 58, + 0, 16, 0, 1, 0, 0, + 0, 10, 0, 16, 0, 0, + 0, 0, 0, 56, 0, 0, + 8, 242, 32, 16, 0, 0, + 0, 0, 0, 6, 0, 16, + 0, 0, 0, 0, 0, 70, + 142, 32, 0, 0, 0, 0, + 0, 9, 0, 0, 0, 62, + 0, 0, 1, 83, 84, 65, + 84, 116, 0, 0, 0, 30, + 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 5, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 82, 68, 69, 70, 184, + 1, 0, 0, 1, 0, 0, + 0, 148, 0, 0, 0, 3, + 0, 0, 0, 28, 0, 0, + 0, 0, 4, 255, 255, 0, + 1, 0, 0, 132, 1, 0, + 0, 124, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 139, 0, 0, + 0, 2, 0, 0, 0, 5, + 0, 0, 0, 4, 0, 0, + 0, 255, 255, 255, 255, 0, + 0, 0, 0, 1, 0, 0, + 0, 12, 0, 0, 0, 143, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 115, 83, 104, 97, 100, + 111, 119, 83, 97, 109, 112, + 108, 101, 114, 0, 116, 101, + 120, 0, 99, 98, 49, 0, + 171, 143, 0, 0, 0, 4, + 0, 0, 0, 172, 0, 0, + 0, 160, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 12, 1, 0, 0, 0, + 0, 0, 0, 48, 0, 0, + 0, 2, 0, 0, 0, 28, + 1, 0, 0, 0, 0, 0, + 0, 44, 1, 0, 0, 48, + 0, 0, 0, 48, 0, 0, + 0, 0, 0, 0, 0, 60, + 1, 0, 0, 0, 0, 0, + 0, 76, 1, 0, 0, 96, + 0, 0, 0, 48, 0, 0, + 0, 2, 0, 0, 0, 88, + 1, 0, 0, 0, 0, 0, + 0, 104, 1, 0, 0, 144, + 0, 0, 0, 16, 0, 0, + 0, 2, 0, 0, 0, 116, + 1, 0, 0, 0, 0, 0, + 0, 66, 108, 117, 114, 79, + 102, 102, 115, 101, 116, 115, + 72, 0, 171, 171, 171, 1, + 0, 3, 0, 1, 0, 4, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 66, 108, 117, + 114, 79, 102, 102, 115, 101, + 116, 115, 86, 0, 171, 171, + 171, 1, 0, 3, 0, 1, + 0, 4, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 66, + 108, 117, 114, 87, 101, 105, + 103, 104, 116, 115, 0, 1, + 0, 3, 0, 1, 0, 4, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 83, 104, 97, + 100, 111, 119, 67, 111, 108, + 111, 114, 0, 1, 0, 3, + 0, 1, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 77, 105, 99, 114, 111, + 115, 111, 102, 116, 32, 40, + 82, 41, 32, 72, 76, 83, + 76, 32, 83, 104, 97, 100, + 101, 114, 32, 67, 111, 109, + 112, 105, 108, 101, 114, 32, + 57, 46, 50, 57, 46, 57, + 53, 50, 46, 51, 49, 49, + 49, 0, 171, 171, 171, 73, + 83, 71, 78, 104, 0, 0, + 0, 3, 0, 0, 0, 8, + 0, 0, 0, 80, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 15, + 0, 0, 0, 92, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 1, 0, 0, 0, 3, + 3, 0, 0, 92, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 1, 0, 0, 0, 12, + 0, 0, 0, 83, 86, 95, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 84, 69, 88, + 67, 79, 79, 82, 68, 0, + 171, 171, 171, 79, 83, 71, + 78, 44, 0, 0, 0, 1, + 0, 0, 0, 8, 0, 0, + 0, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, + 0, 83, 86, 95, 84, 97, + 114, 103, 101, 116, 0, 171, + 171, 219, 119, 0, 0, 0, + 0, 0, 0, 80, 49, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 128, 63, 1, 0, 0, 0, 0, 0, 128, 63, 1, 0, 0, 0, 0, 0, 128, 63, 1, 0, 0, 0, 0, 0, 128, 63, 1, 0, 0, 0, 3, 0, 0, 0, 255, 255, 255, 255, @@ -3996,325 +8396,315 @@ const BYTE d2deffect[] = 0, 0, 92, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 12, 3, 0, 0, 83, 86, 95, 80, 111, 115, 105, 116, 105, 111, 110, 0, 84, 69, 88, 67, 79, 79, 82, 68, 0, 171, - 171, 171, 42, 51, 0, 0, + 171, 171, 2, 130, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 232, 9, + 0, 0, 0, 0, 172, 9, 0, 0, 68, 88, 66, 67, - 45, 80, 33, 8, 5, 16, - 134, 134, 115, 16, 129, 43, - 103, 216, 255, 210, 1, 0, - 0, 0, 232, 9, 0, 0, + 110, 68, 159, 211, 251, 173, + 118, 80, 154, 213, 185, 171, + 243, 23, 113, 100, 1, 0, + 0, 0, 172, 9, 0, 0, 6, 0, 0, 0, 56, 0, - 0, 0, 248, 2, 0, 0, - 8, 7, 0, 0, 132, 7, - 0, 0, 68, 9, 0, 0, - 180, 9, 0, 0, 65, 111, - 110, 57, 184, 2, 0, 0, - 184, 2, 0, 0, 0, 2, - 255, 255, 120, 2, 0, 0, - 64, 0, 0, 0, 2, 0, - 40, 0, 0, 0, 64, 0, - 0, 0, 64, 0, 1, 0, - 36, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 6, 0, 4, 0, 3, 0, + 0, 0, 220, 2, 0, 0, + 204, 6, 0, 0, 72, 7, + 0, 0, 8, 9, 0, 0, + 120, 9, 0, 0, 65, 111, + 110, 57, 156, 2, 0, 0, + 156, 2, 0, 0, 0, 2, + 255, 255, 104, 2, 0, 0, + 52, 0, 0, 0, 1, 0, + 40, 0, 0, 0, 52, 0, + 0, 0, 52, 0, 1, 0, + 36, 0, 0, 0, 52, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 2, 255, 255, 31, 0, 0, 2, 0, 0, 0, 128, 0, 0, 15, 176, 31, 0, 0, 2, 0, 0, 0, 144, 0, 8, 15, 160, 2, 0, 0, 3, - 0, 0, 1, 128, 0, 0, - 0, 176, 0, 0, 85, 160, + 0, 0, 2, 128, 0, 0, + 85, 176, 0, 0, 85, 160, 1, 0, 0, 2, 0, 0, - 2, 128, 0, 0, 85, 176, + 1, 128, 0, 0, 0, 176, 2, 0, 0, 3, 1, 0, - 1, 128, 0, 0, 0, 176, + 2, 128, 0, 0, 85, 176, 0, 0, 0, 160, 1, 0, - 0, 2, 1, 0, 2, 128, - 0, 0, 85, 176, 66, 0, + 0, 2, 1, 0, 1, 128, + 0, 0, 0, 176, 66, 0, 0, 3, 0, 0, 15, 128, 0, 0, 228, 128, 0, 8, 228, 160, 66, 0, 0, 3, 1, 0, 15, 128, 1, 0, 228, 128, 0, 8, 228, 160, 5, 0, 0, 3, 0, 0, - 1, 128, 0, 0, 255, 128, + 15, 128, 0, 0, 228, 128, 3, 0, 85, 160, 4, 0, - 0, 4, 0, 0, 1, 128, + 0, 4, 0, 0, 15, 128, 3, 0, 0, 160, 1, 0, - 255, 128, 0, 0, 0, 128, + 228, 128, 0, 0, 228, 128, 2, 0, 0, 3, 1, 0, - 1, 128, 0, 0, 0, 176, + 2, 128, 0, 0, 85, 176, 0, 0, 170, 160, 1, 0, - 0, 2, 1, 0, 2, 128, - 0, 0, 85, 176, 2, 0, - 0, 3, 2, 0, 1, 128, - 0, 0, 0, 176, 0, 0, + 0, 2, 1, 0, 1, 128, + 0, 0, 0, 176, 2, 0, + 0, 3, 2, 0, 2, 128, + 0, 0, 85, 176, 0, 0, 255, 160, 1, 0, 0, 2, - 2, 0, 2, 128, 0, 0, - 85, 176, 66, 0, 0, 3, + 2, 0, 1, 128, 0, 0, + 0, 176, 66, 0, 0, 3, 1, 0, 15, 128, 1, 0, 228, 128, 0, 8, 228, 160, 66, 0, 0, 3, 2, 0, 15, 128, 2, 0, 228, 128, 0, 8, 228, 160, 4, 0, - 0, 4, 0, 0, 1, 128, + 0, 4, 0, 0, 15, 128, 3, 0, 170, 160, 1, 0, - 255, 128, 0, 0, 0, 128, + 228, 128, 0, 0, 228, 128, 4, 0, 0, 4, 0, 0, - 1, 128, 3, 0, 255, 160, - 2, 0, 255, 128, 0, 0, - 0, 128, 2, 0, 0, 3, - 1, 0, 1, 128, 0, 0, - 0, 176, 1, 0, 0, 160, + 15, 128, 3, 0, 255, 160, + 2, 0, 228, 128, 0, 0, + 228, 128, 2, 0, 0, 3, + 1, 0, 2, 128, 0, 0, + 85, 176, 1, 0, 0, 160, 1, 0, 0, 2, 1, 0, - 2, 128, 0, 0, 85, 176, + 1, 128, 0, 0, 0, 176, 2, 0, 0, 3, 2, 0, - 1, 128, 0, 0, 0, 176, + 2, 128, 0, 0, 85, 176, 1, 0, 85, 160, 1, 0, - 0, 2, 2, 0, 2, 128, - 0, 0, 85, 176, 66, 0, + 0, 2, 2, 0, 1, 128, + 0, 0, 0, 176, 66, 0, 0, 3, 1, 0, 15, 128, 1, 0, 228, 128, 0, 8, 228, 160, 66, 0, 0, 3, 2, 0, 15, 128, 2, 0, 228, 128, 0, 8, 228, 160, 4, 0, 0, 4, 0, 0, - 1, 128, 4, 0, 0, 160, - 1, 0, 255, 128, 0, 0, - 0, 128, 4, 0, 0, 4, - 0, 0, 1, 128, 4, 0, - 85, 160, 2, 0, 255, 128, - 0, 0, 0, 128, 2, 0, - 0, 3, 1, 0, 1, 128, - 0, 0, 0, 176, 1, 0, + 15, 128, 4, 0, 0, 160, + 1, 0, 228, 128, 0, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 15, 128, 4, 0, + 85, 160, 2, 0, 228, 128, + 0, 0, 228, 128, 2, 0, + 0, 3, 1, 0, 2, 128, + 0, 0, 85, 176, 1, 0, 170, 160, 1, 0, 0, 2, - 1, 0, 2, 128, 0, 0, - 85, 176, 2, 0, 0, 3, - 2, 0, 1, 128, 0, 0, - 0, 176, 1, 0, 255, 160, + 1, 0, 1, 128, 0, 0, + 0, 176, 2, 0, 0, 3, + 2, 0, 2, 128, 0, 0, + 85, 176, 1, 0, 255, 160, 1, 0, 0, 2, 2, 0, - 2, 128, 0, 0, 85, 176, + 1, 128, 0, 0, 0, 176, 66, 0, 0, 3, 1, 0, 15, 128, 1, 0, 228, 128, 0, 8, 228, 160, 66, 0, 0, 3, 2, 0, 15, 128, 2, 0, 228, 128, 0, 8, 228, 160, 4, 0, 0, 4, - 0, 0, 1, 128, 4, 0, - 170, 160, 1, 0, 255, 128, - 0, 0, 0, 128, 4, 0, - 0, 4, 0, 0, 1, 128, + 0, 0, 15, 128, 4, 0, + 170, 160, 1, 0, 228, 128, + 0, 0, 228, 128, 4, 0, + 0, 4, 0, 0, 15, 128, 4, 0, 255, 160, 2, 0, - 255, 128, 0, 0, 0, 128, + 228, 128, 0, 0, 228, 128, 2, 0, 0, 3, 1, 0, - 1, 128, 0, 0, 0, 176, + 2, 128, 0, 0, 85, 176, 2, 0, 0, 160, 1, 0, - 0, 2, 1, 0, 2, 128, - 0, 0, 85, 176, 66, 0, + 0, 2, 1, 0, 1, 128, + 0, 0, 0, 176, 66, 0, 0, 3, 1, 0, 15, 128, 1, 0, 228, 128, 0, 8, 228, 160, 4, 0, 0, 4, - 0, 0, 1, 128, 5, 0, - 0, 160, 1, 0, 255, 128, - 0, 0, 0, 128, 5, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 0, 128, 6, 0, - 228, 160, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 8, 4, - 0, 0, 64, 0, 0, 0, - 2, 1, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 10, 0, - 0, 0, 90, 0, 0, 3, - 0, 96, 16, 0, 0, 0, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 0, 0, - 0, 0, 85, 85, 0, 0, - 98, 16, 0, 3, 50, 16, + 0, 0, 15, 128, 5, 0, + 0, 160, 1, 0, 228, 128, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 8, 15, 128, + 0, 0, 228, 128, 255, 255, + 0, 0, 83, 72, 68, 82, + 232, 3, 0, 0, 64, 0, + 0, 0, 250, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 90, 0, + 0, 3, 0, 96, 16, 0, + 0, 0, 0, 0, 88, 24, + 0, 4, 0, 112, 16, 0, + 0, 0, 0, 0, 85, 85, + 0, 0, 98, 16, 0, 3, + 50, 16, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 104, 0, 0, 2, + 4, 0, 0, 0, 54, 0, + 0, 5, 82, 0, 16, 0, + 0, 0, 0, 0, 6, 16, + 16, 0, 1, 0, 0, 0, + 0, 0, 0, 8, 242, 0, 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 242, 32, + 86, 21, 16, 0, 1, 0, + 0, 0, 134, 141, 32, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 54, 0, 0, 5, + 162, 0, 16, 0, 0, 0, + 0, 0, 6, 8, 16, 0, + 1, 0, 0, 0, 69, 0, + 0, 9, 242, 0, 16, 0, + 2, 0, 0, 0, 230, 10, + 16, 0, 0, 0, 0, 0, + 70, 126, 16, 0, 0, 0, + 0, 0, 0, 96, 16, 0, + 0, 0, 0, 0, 69, 0, + 0, 9, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 0, + 16, 0, 0, 0, 0, 0, + 70, 126, 16, 0, 0, 0, + 0, 0, 0, 96, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 8, 242, 0, 16, 0, + 2, 0, 0, 0, 70, 14, + 16, 0, 2, 0, 0, 0, + 86, 133, 32, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 50, 0, 0, 10, 242, 0, 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 4, 0, - 0, 0, 0, 0, 0, 8, - 242, 0, 16, 0, 0, 0, + 6, 128, 32, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 2, 0, 0, 0, 54, 0, + 0, 5, 82, 0, 16, 0, + 1, 0, 0, 0, 6, 16, + 16, 0, 1, 0, 0, 0, + 69, 0, 0, 9, 242, 0, + 16, 0, 2, 0, 0, 0, + 70, 0, 16, 0, 1, 0, + 0, 0, 70, 126, 16, 0, + 0, 0, 0, 0, 0, 96, + 16, 0, 0, 0, 0, 0, + 69, 0, 0, 9, 242, 0, + 16, 0, 1, 0, 0, 0, + 230, 10, 16, 0, 1, 0, + 0, 0, 70, 126, 16, 0, + 0, 0, 0, 0, 0, 96, + 16, 0, 0, 0, 0, 0, + 50, 0, 0, 10, 242, 0, + 16, 0, 0, 0, 0, 0, + 166, 138, 32, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 70, 14, 16, 0, 2, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 0, 0, 0, 0, 246, 143, + 32, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 5, + 82, 0, 16, 0, 1, 0, 0, 0, 6, 16, 16, 0, - 1, 0, 0, 0, 38, 135, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 82, 0, 16, 0, - 1, 0, 0, 0, 86, 7, - 16, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 8, 242, 0, 16, 0, + 2, 0, 0, 0, 86, 21, + 16, 0, 1, 0, 0, 0, + 134, 141, 32, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 54, 0, 0, 5, 162, 0, 16, 0, 1, 0, 0, 0, - 86, 21, 16, 0, 1, 0, + 6, 8, 16, 0, 2, 0, 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 2, 0, - 0, 0, 230, 10, 16, 0, + 242, 0, 16, 0, 3, 0, + 0, 0, 70, 0, 16, 0, 1, 0, 0, 0, 70, 126, 16, 0, 0, 0, 0, 0, 0, 96, 16, 0, 0, 0, 0, 0, 69, 0, 0, 9, 242, 0, 16, 0, 1, 0, - 0, 0, 70, 0, 16, 0, + 0, 0, 230, 10, 16, 0, 1, 0, 0, 0, 70, 126, 16, 0, 0, 0, 0, 0, 0, 96, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 18, 0, 16, 0, 1, 0, - 0, 0, 58, 0, 16, 0, - 2, 0, 0, 0, 26, 128, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 50, 0, - 0, 10, 18, 0, 16, 0, - 1, 0, 0, 0, 10, 128, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 58, 0, - 16, 0, 1, 0, 0, 0, - 10, 0, 16, 0, 1, 0, - 0, 0, 54, 0, 0, 5, - 162, 0, 16, 0, 0, 0, - 0, 0, 86, 21, 16, 0, - 1, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 2, 0, 0, 0, 70, 0, - 16, 0, 0, 0, 0, 0, - 70, 126, 16, 0, 0, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 0, 0, 0, 0, 230, 10, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 0, 0, + 0, 0, 6, 128, 32, 0, + 0, 0, 0, 0, 7, 0, + 0, 0, 70, 14, 16, 0, + 3, 0, 0, 0, 70, 14, 16, 0, 0, 0, 0, 0, - 70, 126, 16, 0, 0, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 10, 18, 0, 16, 0, - 0, 0, 0, 0, 42, 128, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 58, 0, - 16, 0, 2, 0, 0, 0, - 10, 0, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 10, - 18, 0, 16, 0, 0, 0, - 0, 0, 58, 128, 32, 0, - 0, 0, 0, 0, 6, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 10, 0, + 50, 0, 0, 10, 242, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 242, 0, - 16, 0, 1, 0, 0, 0, - 6, 16, 16, 0, 1, 0, - 0, 0, 38, 135, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 5, - 82, 0, 16, 0, 2, 0, - 0, 0, 86, 7, 16, 0, - 1, 0, 0, 0, 54, 0, - 0, 5, 162, 0, 16, 0, - 2, 0, 0, 0, 86, 21, + 86, 133, 32, 0, 0, 0, + 0, 0, 7, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 82, 0, 16, 0, + 2, 0, 0, 0, 6, 16, 16, 0, 1, 0, 0, 0, 69, 0, 0, 9, 242, 0, - 16, 0, 3, 0, 0, 0, + 16, 0, 1, 0, 0, 0, 70, 0, 16, 0, 2, 0, 0, 0, 70, 126, 16, 0, 0, 0, 0, 0, 0, 96, 16, 0, 0, 0, 0, 0, 69, 0, 0, 9, 242, 0, 16, 0, 2, 0, 0, 0, 230, 10, 16, 0, 2, 0, 0, 0, 70, 126, 16, 0, 0, 0, 0, 0, 0, 96, 16, 0, 0, 0, 0, 0, - 50, 0, 0, 10, 18, 0, + 50, 0, 0, 10, 242, 0, 16, 0, 0, 0, 0, 0, - 10, 128, 32, 0, 0, 0, + 166, 138, 32, 0, 0, 0, 0, 0, 7, 0, 0, 0, - 58, 0, 16, 0, 3, 0, - 0, 0, 10, 0, 16, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 70, 14, 16, 0, 0, 0, 0, 0, 50, 0, - 0, 10, 18, 0, 16, 0, - 0, 0, 0, 0, 26, 128, + 0, 10, 242, 0, 16, 0, + 0, 0, 0, 0, 246, 143, 32, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 58, 0, + 7, 0, 0, 0, 70, 14, 16, 0, 2, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 162, 0, 16, 0, 1, 0, - 0, 0, 86, 21, 16, 0, - 1, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 2, 0, 0, 0, 70, 0, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 0, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 1, 0, 0, 0, 230, 10, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 0, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 10, 18, 0, 16, 0, - 0, 0, 0, 0, 42, 128, - 32, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 58, 0, - 16, 0, 2, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 10, - 18, 0, 16, 0, 0, 0, - 0, 0, 58, 128, 32, 0, - 0, 0, 0, 0, 7, 0, - 0, 0, 58, 0, 16, 0, - 1, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 18, 0, - 16, 0, 1, 0, 0, 0, - 10, 16, 16, 0, 1, 0, - 0, 0, 10, 128, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 54, 0, 0, 5, + 70, 14, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 8, 34, 0, 16, 0, 1, 0, 0, 0, 26, 16, 16, 0, - 1, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 0, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 0, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 10, 18, 0, 16, 0, - 0, 0, 0, 0, 10, 128, + 1, 0, 0, 0, 10, 128, 32, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 58, 0, + 5, 0, 0, 0, 54, 0, + 0, 5, 18, 0, 16, 0, + 1, 0, 0, 0, 10, 16, + 16, 0, 1, 0, 0, 0, + 69, 0, 0, 9, 242, 0, 16, 0, 1, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 242, 32, 16, 0, 0, 0, - 0, 0, 6, 0, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 9, 0, 0, 0, 62, 0, + 70, 0, 16, 0, 1, 0, + 0, 0, 70, 126, 16, 0, + 0, 0, 0, 0, 0, 96, + 16, 0, 0, 0, 0, 0, + 50, 0, 0, 10, 242, 32, + 16, 0, 0, 0, 0, 0, + 6, 128, 32, 0, 0, 0, + 0, 0, 8, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 62, 0, 0, 1, 83, 84, 65, 84, - 116, 0, 0, 0, 30, 0, + 116, 0, 0, 0, 29, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 5, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4353,29 +8743,29 @@ const BYTE d2deffect[] = 101, 114, 0, 116, 101, 120, 0, 99, 98, 49, 0, 171, 143, 0, 0, 0, 4, 0, 0, 0, 172, 0, 0, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, - 2, 0, 0, 0, 28, 1, + 0, 0, 0, 0, 28, 1, 0, 0, 0, 0, 0, 0, 44, 1, 0, 0, 48, 0, 0, 0, 48, 0, 0, 0, - 0, 0, 0, 0, 60, 1, + 2, 0, 0, 0, 60, 1, 0, 0, 0, 0, 0, 0, 76, 1, 0, 0, 96, 0, 0, 0, 48, 0, 0, 0, 2, 0, 0, 0, 88, 1, 0, 0, 0, 0, 0, 0, 104, 1, 0, 0, 144, 0, 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 116, 1, + 0, 0, 0, 0, 116, 1, 0, 0, 0, 0, 0, 0, 66, 108, 117, 114, 79, 102, 102, 115, 101, 116, 115, 72, 0, 171, 171, 171, 1, 0, 3, 0, 1, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 66, 108, 117, 114, 79, 102, 102, 115, 101, 116, @@ -4423,1555 +8813,1031 @@ const BYTE d2deffect[] = 44, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 83, 86, 95, 84, 97, 114, 103, 101, 116, 0, 171, 171, - 102, 55, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 128, 63, 1, 0, 0, 0, - 0, 0, 128, 63, 1, 0, - 0, 0, 0, 0, 128, 63, - 1, 0, 0, 0, 0, 0, - 128, 63, 1, 0, 0, 0, - 3, 0, 0, 0, 255, 255, - 255, 255, 36, 4, 0, 0, - 68, 88, 66, 67, 116, 139, - 68, 62, 73, 113, 92, 4, - 72, 76, 225, 161, 30, 132, - 222, 233, 1, 0, 0, 0, - 36, 4, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 248, 0, 0, 0, 244, 1, - 0, 0, 112, 2, 0, 0, - 128, 3, 0, 0, 180, 3, - 0, 0, 65, 111, 110, 57, - 184, 0, 0, 0, 184, 0, - 0, 0, 0, 2, 254, 255, - 132, 0, 0, 0, 52, 0, - 0, 0, 1, 0, 36, 0, - 0, 0, 48, 0, 0, 0, - 48, 0, 0, 0, 36, 0, - 1, 0, 48, 0, 0, 0, - 0, 0, 3, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 254, 255, - 81, 0, 0, 5, 4, 0, - 15, 160, 0, 0, 0, 0, - 0, 0, 128, 63, 0, 0, - 0, 0, 0, 0, 0, 0, - 31, 0, 0, 2, 5, 0, - 0, 128, 0, 0, 15, 144, - 4, 0, 0, 4, 0, 0, - 3, 224, 0, 0, 228, 144, - 2, 0, 238, 160, 2, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 12, 224, 0, 0, - 20, 144, 3, 0, 180, 160, - 3, 0, 20, 160, 4, 0, - 0, 4, 0, 0, 3, 128, - 0, 0, 228, 144, 1, 0, - 238, 160, 1, 0, 228, 160, - 2, 0, 0, 3, 0, 0, - 3, 192, 0, 0, 228, 128, - 0, 0, 228, 160, 1, 0, - 0, 2, 0, 0, 12, 192, - 4, 0, 68, 160, 255, 255, - 0, 0, 83, 72, 68, 82, - 244, 0, 0, 0, 64, 0, - 1, 0, 61, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 0, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 50, 32, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 194, 32, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 11, - 50, 32, 16, 0, 0, 0, - 0, 0, 70, 16, 16, 0, - 0, 0, 0, 0, 230, 138, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 54, 0, - 0, 8, 194, 32, 16, 0, - 0, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 128, 63, - 50, 0, 0, 11, 50, 32, - 16, 0, 1, 0, 0, 0, - 70, 16, 16, 0, 0, 0, - 0, 0, 230, 138, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 70, 128, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 50, 0, 0, 11, - 194, 32, 16, 0, 1, 0, - 0, 0, 6, 20, 16, 0, - 0, 0, 0, 0, 166, 142, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 6, 132, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 116, 0, 0, 0, 5, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 82, 68, 69, 70, 8, 1, - 0, 0, 1, 0, 0, 0, - 64, 0, 0, 0, 1, 0, - 0, 0, 28, 0, 0, 0, - 0, 4, 254, 255, 0, 1, - 0, 0, 212, 0, 0, 0, - 60, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 99, 98, 48, 0, - 60, 0, 0, 0, 3, 0, - 0, 0, 88, 0, 0, 0, - 48, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 160, 0, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 172, 0, - 0, 0, 0, 0, 0, 0, - 188, 0, 0, 0, 16, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 172, 0, - 0, 0, 0, 0, 0, 0, - 198, 0, 0, 0, 32, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 172, 0, - 0, 0, 0, 0, 0, 0, - 81, 117, 97, 100, 68, 101, - 115, 99, 0, 171, 171, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84, 101, - 120, 67, 111, 111, 114, 100, - 115, 0, 77, 97, 115, 107, - 84, 101, 120, 67, 111, 111, - 114, 100, 115, 0, 77, 105, - 99, 114, 111, 115, 111, 102, - 116, 32, 40, 82, 41, 32, - 72, 76, 83, 76, 32, 83, - 104, 97, 100, 101, 114, 32, - 67, 111, 109, 112, 105, 108, - 101, 114, 32, 57, 46, 50, - 57, 46, 57, 53, 50, 46, - 51, 49, 49, 49, 0, 171, - 171, 171, 73, 83, 71, 78, - 44, 0, 0, 0, 1, 0, - 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 7, 3, 0, 0, - 80, 79, 83, 73, 84, 73, - 79, 78, 0, 171, 171, 171, - 79, 83, 71, 78, 104, 0, - 0, 0, 3, 0, 0, 0, - 8, 0, 0, 0, 80, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 92, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 3, 12, 0, 0, 92, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 12, 3, 0, 0, 83, 86, - 95, 80, 111, 115, 105, 116, - 105, 111, 110, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 171, 171, 171, 138, 65, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 172, 9, 0, 0, 68, 88, - 66, 67, 110, 68, 159, 211, - 251, 173, 118, 80, 154, 213, - 185, 171, 243, 23, 113, 100, - 1, 0, 0, 0, 172, 9, - 0, 0, 6, 0, 0, 0, - 56, 0, 0, 0, 220, 2, - 0, 0, 204, 6, 0, 0, - 72, 7, 0, 0, 8, 9, - 0, 0, 120, 9, 0, 0, - 65, 111, 110, 57, 156, 2, - 0, 0, 156, 2, 0, 0, - 0, 2, 255, 255, 104, 2, - 0, 0, 52, 0, 0, 0, - 1, 0, 40, 0, 0, 0, - 52, 0, 0, 0, 52, 0, - 1, 0, 36, 0, 0, 0, - 52, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 6, 0, - 0, 0, 0, 0, 0, 0, - 1, 2, 255, 255, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 15, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 2, 0, - 0, 3, 0, 0, 2, 128, - 0, 0, 85, 176, 0, 0, - 85, 160, 1, 0, 0, 2, - 0, 0, 1, 128, 0, 0, - 0, 176, 2, 0, 0, 3, - 1, 0, 2, 128, 0, 0, - 85, 176, 0, 0, 0, 160, - 1, 0, 0, 2, 1, 0, - 1, 128, 0, 0, 0, 176, - 66, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 0, 8, 228, 160, 66, 0, - 0, 3, 1, 0, 15, 128, - 1, 0, 228, 128, 0, 8, - 228, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 3, 0, 85, 160, - 4, 0, 0, 4, 0, 0, - 15, 128, 3, 0, 0, 160, - 1, 0, 228, 128, 0, 0, - 228, 128, 2, 0, 0, 3, - 1, 0, 2, 128, 0, 0, - 85, 176, 0, 0, 170, 160, - 1, 0, 0, 2, 1, 0, - 1, 128, 0, 0, 0, 176, - 2, 0, 0, 3, 2, 0, - 2, 128, 0, 0, 85, 176, - 0, 0, 255, 160, 1, 0, - 0, 2, 2, 0, 1, 128, - 0, 0, 0, 176, 66, 0, - 0, 3, 1, 0, 15, 128, - 1, 0, 228, 128, 0, 8, - 228, 160, 66, 0, 0, 3, - 2, 0, 15, 128, 2, 0, - 228, 128, 0, 8, 228, 160, - 4, 0, 0, 4, 0, 0, - 15, 128, 3, 0, 170, 160, - 1, 0, 228, 128, 0, 0, - 228, 128, 4, 0, 0, 4, - 0, 0, 15, 128, 3, 0, - 255, 160, 2, 0, 228, 128, - 0, 0, 228, 128, 2, 0, - 0, 3, 1, 0, 2, 128, - 0, 0, 85, 176, 1, 0, - 0, 160, 1, 0, 0, 2, - 1, 0, 1, 128, 0, 0, - 0, 176, 2, 0, 0, 3, - 2, 0, 2, 128, 0, 0, - 85, 176, 1, 0, 85, 160, - 1, 0, 0, 2, 2, 0, - 1, 128, 0, 0, 0, 176, - 66, 0, 0, 3, 1, 0, - 15, 128, 1, 0, 228, 128, - 0, 8, 228, 160, 66, 0, - 0, 3, 2, 0, 15, 128, - 2, 0, 228, 128, 0, 8, - 228, 160, 4, 0, 0, 4, - 0, 0, 15, 128, 4, 0, - 0, 160, 1, 0, 228, 128, - 0, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 15, 128, - 4, 0, 85, 160, 2, 0, - 228, 128, 0, 0, 228, 128, - 2, 0, 0, 3, 1, 0, - 2, 128, 0, 0, 85, 176, - 1, 0, 170, 160, 1, 0, - 0, 2, 1, 0, 1, 128, - 0, 0, 0, 176, 2, 0, - 0, 3, 2, 0, 2, 128, - 0, 0, 85, 176, 1, 0, - 255, 160, 1, 0, 0, 2, - 2, 0, 1, 128, 0, 0, - 0, 176, 66, 0, 0, 3, - 1, 0, 15, 128, 1, 0, - 228, 128, 0, 8, 228, 160, - 66, 0, 0, 3, 2, 0, - 15, 128, 2, 0, 228, 128, - 0, 8, 228, 160, 4, 0, - 0, 4, 0, 0, 15, 128, - 4, 0, 170, 160, 1, 0, - 228, 128, 0, 0, 228, 128, - 4, 0, 0, 4, 0, 0, - 15, 128, 4, 0, 255, 160, - 2, 0, 228, 128, 0, 0, - 228, 128, 2, 0, 0, 3, - 1, 0, 2, 128, 0, 0, - 85, 176, 2, 0, 0, 160, - 1, 0, 0, 2, 1, 0, - 1, 128, 0, 0, 0, 176, - 66, 0, 0, 3, 1, 0, - 15, 128, 1, 0, 228, 128, - 0, 8, 228, 160, 4, 0, - 0, 4, 0, 0, 15, 128, - 5, 0, 0, 160, 1, 0, - 228, 128, 0, 0, 228, 128, - 1, 0, 0, 2, 0, 8, - 15, 128, 0, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 232, 3, 0, 0, - 64, 0, 0, 0, 250, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 90, 0, 0, 3, 0, 96, - 16, 0, 0, 0, 0, 0, - 88, 24, 0, 4, 0, 112, - 16, 0, 0, 0, 0, 0, - 85, 85, 0, 0, 98, 16, - 0, 3, 50, 16, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 104, 0, - 0, 2, 4, 0, 0, 0, - 54, 0, 0, 5, 82, 0, - 16, 0, 0, 0, 0, 0, - 6, 16, 16, 0, 1, 0, - 0, 0, 0, 0, 0, 8, - 242, 0, 16, 0, 1, 0, - 0, 0, 86, 21, 16, 0, - 1, 0, 0, 0, 134, 141, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 54, 0, - 0, 5, 162, 0, 16, 0, - 0, 0, 0, 0, 6, 8, - 16, 0, 1, 0, 0, 0, - 69, 0, 0, 9, 242, 0, - 16, 0, 2, 0, 0, 0, - 230, 10, 16, 0, 0, 0, - 0, 0, 70, 126, 16, 0, - 0, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 69, 0, 0, 9, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 0, 16, 0, 0, 0, - 0, 0, 70, 126, 16, 0, - 0, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 8, 242, 0, - 16, 0, 2, 0, 0, 0, - 70, 14, 16, 0, 2, 0, - 0, 0, 86, 133, 32, 0, - 0, 0, 0, 0, 6, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 0, 0, - 0, 0, 6, 128, 32, 0, - 0, 0, 0, 0, 6, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 2, 0, 0, 0, - 54, 0, 0, 5, 82, 0, - 16, 0, 1, 0, 0, 0, - 6, 16, 16, 0, 1, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 2, 0, - 0, 0, 70, 0, 16, 0, - 1, 0, 0, 0, 70, 126, - 16, 0, 0, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 69, 0,