From 6e93d609a737808ba3c1cc26b6311d459db032ad Mon Sep 17 00:00:00 2001 From: Cameron McCormack Date: Mon, 6 Mar 2017 10:44:13 +0800 Subject: [PATCH 001/130] Bug 1341230 - Part 1: Rename ESM_MANAGED_STATES to EXTERNALLY_MANAGED_STATES. r=smaug Since it's not just the EventStateManager that has access to modify these EventStates bits. MozReview-Commit-ID: 17EpfQT5M40 --HG-- extra : rebase_source : 6d5f7ecff2d41d66cbc23ea12e08dc6295e29875 --- dom/base/Element.cpp | 2 +- dom/base/Element.h | 11 ++++++----- dom/events/EventStates.h | 22 ++++++++++++++++------ 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/dom/base/Element.cpp b/dom/base/Element.cpp index a3c62bd57072..1e0ecfa68676 100644 --- a/dom/base/Element.cpp +++ b/dom/base/Element.cpp @@ -224,7 +224,7 @@ void Element::UpdateState(bool aNotify) { EventStates oldState = mState; - mState = IntrinsicState() | (oldState & ESM_MANAGED_STATES); + mState = IntrinsicState() | (oldState & EXTERNALLY_MANAGED_STATES); if (aNotify) { EventStates changedStates = oldState ^ mState; if (!changedStates.IsEmpty()) { diff --git a/dom/base/Element.h b/dom/base/Element.h index 5e464be95c37..d353bded5188 100644 --- a/dom/base/Element.h +++ b/dom/base/Element.h @@ -515,20 +515,21 @@ private: EventStates StyleStateFromLocks() const; protected: - // Methods for the ESM to manage state bits. These will handle - // setting up script blockers when they notify, so no need to do it - // in the callers unless desired. + // Methods for the ESM, nsGlobalWindow and focus manager to manage state bits. + // These will handle setting up script blockers when they notify, so no need + // to do it in the callers unless desired. States passed here must only be + // those in EXTERNALLY_MANAGED_STATES. virtual void AddStates(EventStates aStates) { NS_PRECONDITION(!aStates.HasAtLeastOneOfStates(INTRINSIC_STATES), - "Should only be adding ESM-managed states here"); + "Should only be adding externally-managed states here"); AddStatesSilently(aStates); NotifyStateChange(aStates); } virtual void RemoveStates(EventStates aStates) { NS_PRECONDITION(!aStates.HasAtLeastOneOfStates(INTRINSIC_STATES), - "Should only be removing ESM-managed states here"); + "Should only be removing externally-managed states here"); RemoveStatesSilently(aStates); NotifyStateChange(aStates); } diff --git a/dom/events/EventStates.h b/dom/events/EventStates.h index 84fd0c50d6d0..8d9d7fc2b3dd 100644 --- a/dom/events/EventStates.h +++ b/dom/events/EventStates.h @@ -314,12 +314,22 @@ private: #define DIRECTION_STATES (NS_EVENT_STATE_LTR | NS_EVENT_STATE_RTL) -#define ESM_MANAGED_STATES (NS_EVENT_STATE_ACTIVE | NS_EVENT_STATE_FOCUS | \ - NS_EVENT_STATE_HOVER | NS_EVENT_STATE_DRAGOVER | \ - NS_EVENT_STATE_URLTARGET | NS_EVENT_STATE_FOCUSRING | \ - NS_EVENT_STATE_FULL_SCREEN | NS_EVENT_STATE_UNRESOLVED | \ - NS_EVENT_STATE_FOCUS_WITHIN) +// Event states that are managed externally to an element (by the +// EventStateManager, or by other code). As opposed to those in +// INTRINSIC_STATES, which are are computed by the element itself +// and returned from Element::IntrinsicState. +#define EXTERNALLY_MANAGED_STATES ( \ + NS_EVENT_STATE_ACTIVE | \ + NS_EVENT_STATE_DRAGOVER | \ + NS_EVENT_STATE_FOCUS | \ + NS_EVENT_STATE_FOCUSRING | \ + NS_EVENT_STATE_FOCUS_WITHIN | \ + NS_EVENT_STATE_FULL_SCREEN | \ + NS_EVENT_STATE_HOVER | \ + NS_EVENT_STATE_UNRESOLVED | \ + NS_EVENT_STATE_URLTARGET \ +) -#define INTRINSIC_STATES (~ESM_MANAGED_STATES) +#define INTRINSIC_STATES (~EXTERNALLY_MANAGED_STATES) #endif // mozilla_EventStates_h_ From 4e902578ed82d8027eba659586c34cd419b7ba38 Mon Sep 17 00:00:00 2001 From: Cameron McCormack Date: Mon, 6 Mar 2017 10:44:13 +0800 Subject: [PATCH 002/130] Bug 1341230 - Part 2: Add C++ API to add/remove manually managed EventStates bits. r=smaug MozReview-Commit-ID: 11886pRRXSq --HG-- extra : rebase_source : 6881181ab9e8bfd9559a4f92d77a8b2796daa9dc --- dom/base/Element.h | 14 ++++++++++++++ dom/events/EventStates.h | 12 ++++++++++++ 2 files changed, 26 insertions(+) diff --git a/dom/base/Element.h b/dom/base/Element.h index d353bded5188..0656e6792540 100644 --- a/dom/base/Element.h +++ b/dom/base/Element.h @@ -534,6 +534,20 @@ protected: NotifyStateChange(aStates); } public: + // Public methods to manage state bits in MANUALLY_MANAGED_STATES. + void AddManuallyManagedStates(EventStates aStates) + { + MOZ_ASSERT(MANUALLY_MANAGED_STATES.HasAllStates(aStates), + "Should only be adding manually-managed states here"); + AddStates(aStates); + } + void RemoveManuallyManagedStates(EventStates aStates) + { + MOZ_ASSERT(MANUALLY_MANAGED_STATES.HasAllStates(aStates), + "Should only be removing manually-managed states here"); + RemoveStates(aStates); + } + virtual void UpdateEditableState(bool aNotify) override; virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent, diff --git a/dom/events/EventStates.h b/dom/events/EventStates.h index 8d9d7fc2b3dd..814897e7b92d 100644 --- a/dom/events/EventStates.h +++ b/dom/events/EventStates.h @@ -314,11 +314,23 @@ private: #define DIRECTION_STATES (NS_EVENT_STATE_LTR | NS_EVENT_STATE_RTL) +// Event states that can be added and removed through +// Element::{Add,Remove}ManuallyManagedStates. +// +// Take care when manually managing state bits. You are responsible for +// setting or clearing the bit when an Element is added or removed from a +// document (e.g. in BindToTree and UnbindFromTree), if that is an +// appropriate thing to do for your state bit. +#define MANUALLY_MANAGED_STATES ( \ + mozilla::EventStates() /* none so far */ \ +) + // Event states that are managed externally to an element (by the // EventStateManager, or by other code). As opposed to those in // INTRINSIC_STATES, which are are computed by the element itself // and returned from Element::IntrinsicState. #define EXTERNALLY_MANAGED_STATES ( \ + MANUALLY_MANAGED_STATES | \ NS_EVENT_STATE_ACTIVE | \ NS_EVENT_STATE_DRAGOVER | \ NS_EVENT_STATE_FOCUS | \ From c7acd6712320c5d7014cbb5c1913adae6ebcc12c Mon Sep 17 00:00:00 2001 From: Cameron McCormack Date: Mon, 6 Mar 2017 12:49:04 +0800 Subject: [PATCH 003/130] Bug 1341230 - Part 3: Add nsIDOMWindowUtils API to add/remove manually managed EventStates bits. r=smaug MozReview-Commit-ID: 8brJct2tkTo --HG-- extra : rebase_source : f532dde551e347deae7b9f5a4d678658c5dc0c70 --- dom/base/nsDOMWindowUtils.cpp | 64 +++++++++++++++++++++++ dom/interfaces/base/nsIDOMWindowUtils.idl | 20 +++++++ 2 files changed, 84 insertions(+) diff --git a/dom/base/nsDOMWindowUtils.cpp b/dom/base/nsDOMWindowUtils.cpp index 1548561f8e46..502b56b75115 100644 --- a/dom/base/nsDOMWindowUtils.cpp +++ b/dom/base/nsDOMWindowUtils.cpp @@ -4095,6 +4095,70 @@ nsDOMWindowUtils::IsTimeoutTracking(uint32_t aTimeoutId, bool* aResult) return NS_OK; } +struct StateTableEntry +{ + const char* mStateString; + EventStates mState; +}; + +static constexpr StateTableEntry kManuallyManagedStates[] = { + // none yet; but for example: { "highlight", NS_EVENT_STATE_HIGHLIGHT }, + { nullptr, EventStates() }, +}; + +static_assert(!kManuallyManagedStates[ArrayLength(kManuallyManagedStates) - 1] + .mStateString, + "last kManuallyManagedStates entry must be a sentinel with " + "mStateString == nullptr"); + +static EventStates +GetEventStateForString(const nsAString& aStateString) +{ + for (const StateTableEntry* entry = kManuallyManagedStates; + entry->mStateString; ++entry) { + if (aStateString.EqualsASCII(entry->mStateString)) { + return entry->mState; + } + } + return EventStates(); +} + +NS_IMETHODIMP +nsDOMWindowUtils::AddManuallyManagedState(nsIDOMElement* aElement, + const nsAString& aStateString) +{ + nsCOMPtr element = do_QueryInterface(aElement); + if (!element) { + return NS_ERROR_INVALID_ARG; + } + + EventStates state = GetEventStateForString(aStateString); + if (state.IsEmpty()) { + return NS_ERROR_INVALID_ARG; + } + + element->AddManuallyManagedStates(state); + return NS_OK; +} + +NS_IMETHODIMP +nsDOMWindowUtils::RemoveManuallyManagedState(nsIDOMElement* aElement, + const nsAString& aStateString) +{ + nsCOMPtr element = do_QueryInterface(aElement); + if (!element) { + return NS_ERROR_INVALID_ARG; + } + + EventStates state = GetEventStateForString(aStateString); + if (state.IsEmpty()) { + return NS_ERROR_INVALID_ARG; + } + + element->RemoveManuallyManagedStates(state); + return NS_OK; +} + NS_INTERFACE_MAP_BEGIN(nsTranslationNodeList) NS_INTERFACE_MAP_ENTRY(nsISupports) NS_INTERFACE_MAP_ENTRY(nsITranslationNodeList) diff --git a/dom/interfaces/base/nsIDOMWindowUtils.idl b/dom/interfaces/base/nsIDOMWindowUtils.idl index 29732c9794d1..deb28c913483 100644 --- a/dom/interfaces/base/nsIDOMWindowUtils.idl +++ b/dom/interfaces/base/nsIDOMWindowUtils.idl @@ -1976,6 +1976,26 @@ interface nsIDOMWindowUtils : nsISupports { */ boolean isTimeoutTracking(in unsigned long timeoutId); + /** + * Adds an EventStates bit to the element. + * + * The state string must be one of the following: + * * (none yet; but for example "higlighted" for NS_EVENT_STATE_HIGHLIGHTED) + * + * The supported state strings are defined in kManuallyManagedStates + * in nsDOMWindowUtils.cpp. + */ + void addManuallyManagedState(in nsIDOMElement element, + in AString state); + + /** + * Removes the specified EventStates bits from the element. + * + * See above for the strings that can be passed for |state|. + */ + void removeManuallyManagedState(in nsIDOMElement element, + in AString state); + // These consts are only for testing purposes. const long DEFAULT_MOUSE_POINTER_ID = 0; const long DEFAULT_PEN_POINTER_ID = 1; From 076bd7732984e86956f7748a5800eb0cf3b4114e Mon Sep 17 00:00:00 2001 From: Chris Pearce Date: Mon, 27 Feb 2017 10:42:59 +1300 Subject: [PATCH 004/130] Bug 1344614 - Improve GMP clock precision to match Chromium's CDM clock. r=jwwang The clock that GMP currently exposes to CDMs has second precision. Whereas the clock that Chromium exposes to CDMs has microsecond precision. We should use the same clock as Chromium does (since we have its code in our tree already) so that our CDM harness is as compatible to Chromium as possible. MozReview-Commit-ID: FssZZFg4vhn --HG-- extra : rebase_source : 8fab078ba0ecf351a9a8147d3f7434d40a2e0a25 --- dom/media/gmp/GMPPlatform.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dom/media/gmp/GMPPlatform.cpp b/dom/media/gmp/GMPPlatform.cpp index 0c2c3d0d5e93..9e8b02cb7cec 100644 --- a/dom/media/gmp/GMPPlatform.cpp +++ b/dom/media/gmp/GMPPlatform.cpp @@ -10,6 +10,7 @@ #include "GMPChild.h" #include "mozilla/Mutex.h" #include "base/thread.h" +#include "base/time.h" #include "mozilla/ReentrantMonitor.h" #include @@ -220,8 +221,11 @@ SetTimerOnMainThread(GMPTask* aTask, int64_t aTimeoutMS) GMPErr GetClock(GMPTimestamp* aOutTime) { - *aOutTime = time(0) * 1000; - return GMPNoErr; + if (!aOutTime) { + return GMPGenericErr; + } + *aOutTime = base::Time::Now().ToDoubleT() * 1000.0; + return GMPNoErr; } void From 1701707c3beee06434874549e700745cbf1eda8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Sun, 5 Mar 2017 23:06:55 -0800 Subject: [PATCH 005/130] servo: Merge #15828 - style: Remove unneeded indirection in LonghandsToSerialize (from emilio:cleanup-all-day); r=Wafflespeanut Source-Repo: https://github.com/servo/servo Source-Revision: d4bdd33cd9816e2ceab9ddd9afd145cef8579087 --HG-- extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear extra : subtree_revision : e76295de4c9c92263236677eabd8f6d819a2b738 --- servo/components/style/properties/helpers.mako.rs | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/servo/components/style/properties/helpers.mako.rs b/servo/components/style/properties/helpers.mako.rs index 861bcc2eaa62..b85f9de75dba 100644 --- a/servo/components/style/properties/helpers.mako.rs +++ b/servo/components/style/properties/helpers.mako.rs @@ -499,13 +499,8 @@ /// correspond to a shorthand. pub struct LonghandsToSerialize<'a> { % for sub_property in shorthand.sub_properties: - % if sub_property.boxed: - pub ${sub_property.ident}: - &'a Box, - % else: - pub ${sub_property.ident}: - &'a longhands::${sub_property.ident}::SpecifiedValue, - % endif + pub ${sub_property.ident}: + &'a longhands::${sub_property.ident}::SpecifiedValue, % endfor } From bfd97a370ccb7e0065c31840c509c9624d87c0a0 Mon Sep 17 00:00:00 2001 From: austinprete Date: Sun, 5 Mar 2017 23:53:26 -0800 Subject: [PATCH 006/130] servo: Merge #15465 - Implement parsing/serialization for caret-color (from austinprete:caret-color); r=Wafflespeanut This pull request implements parsing and serialization for the caret-color CSS property, per issue #15309 . --- - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #15309 - [X] There are tests for these changes Source-Repo: https://github.com/servo/servo Source-Revision: 511b82eea3eb3a4fdbd7b5fac61a0e292c474d60 --HG-- extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear extra : subtree_revision : faef3291db500435dd63551a76182a5f9675a6e1 --- .../helpers/animated_properties.mako.rs | 21 +++++++++++++++- .../style/properties/longhand/ui.mako.rs | 7 ++++++ servo/components/style/values/computed/mod.rs | 3 +++ .../components/style/values/specified/mod.rs | 3 +++ servo/tests/unit/style/parsing/ui.rs | 25 ++++++++++++++++++- 5 files changed, 57 insertions(+), 2 deletions(-) diff --git a/servo/components/style/properties/helpers/animated_properties.mako.rs b/servo/components/style/properties/helpers/animated_properties.mako.rs index 0a9e5cd3ae60..04af291b3ec5 100644 --- a/servo/components/style/properties/helpers/animated_properties.mako.rs +++ b/servo/components/style/properties/helpers/animated_properties.mako.rs @@ -29,11 +29,12 @@ use std::fmt; use style_traits::ToCss; use super::ComputedValues; use values::CSSFloat; -use values::Either; +use values::{Auto, Either}; use values::computed::{Angle, LengthOrPercentageOrAuto, LengthOrPercentageOrNone}; use values::computed::{BorderRadiusSize, ClipRect, LengthOrNone}; use values::computed::{CalcLengthOrPercentage, Context, LengthOrPercentage}; use values::computed::{MaxLength, MinLength}; +use values::computed::ColorOrAuto; use values::computed::position::{HorizontalPosition, Position, VerticalPosition}; use values::computed::ToComputedValue; use values::specified::Angle as SpecifiedAngle; @@ -1796,3 +1797,21 @@ impl Interpolate for TransformList { } } +/// https://drafts.csswg.org/css-transitions-1/#animtype-color +impl Interpolate for ColorOrAuto { + #[inline] + fn interpolate(&self, other: &Self, progress: f64) -> Result { + match (*self, *other) { + (Either::First(ref this), Either::First(ref other)) => { + this.interpolate(&other, progress).map(Either::First) + }, + (Either::Second(Auto), Either::Second(Auto)) => { + Ok(Either::Second(Auto)) + }, + _ => { + let interpolated = if progress < 0.5 { *self } else { *other }; + Ok(interpolated) + } + } + } +} diff --git a/servo/components/style/properties/longhand/ui.mako.rs b/servo/components/style/properties/longhand/ui.mako.rs index 8b8d902c37da..3cd6668912b3 100644 --- a/servo/components/style/properties/longhand/ui.mako.rs +++ b/servo/components/style/properties/longhand/ui.mako.rs @@ -30,3 +30,10 @@ ${helpers.single_keyword("-moz-window-dragging", "default drag no-drag", product gecko_enum_prefix="StyleWindowDragging", animatable=False, spec="None (Nonstandard Firefox-only property)")} + +${helpers.predefined_type("caret-color", + "ColorOrAuto", + "Either::Second(Auto)", + spec="https://drafts.csswg.org/css-ui/#caret-color", + animatable="True", + products="none")} diff --git a/servo/components/style/values/computed/mod.rs b/servo/components/style/values/computed/mod.rs index 3652af994847..9f3c827b9443 100644 --- a/servo/components/style/values/computed/mod.rs +++ b/servo/components/style/values/computed/mod.rs @@ -363,3 +363,6 @@ impl ClipRectOrAuto { } } } + +/// | auto +pub type ColorOrAuto = Either; diff --git a/servo/components/style/values/specified/mod.rs b/servo/components/style/values/specified/mod.rs index 7584ec7bee86..5c60141c689e 100644 --- a/servo/components/style/values/specified/mod.rs +++ b/servo/components/style/values/specified/mod.rs @@ -998,3 +998,6 @@ impl Parse for ClipRect { /// rect(...) | auto pub type ClipRectOrAuto = Either; + +/// | auto +pub type ColorOrAuto = Either; diff --git a/servo/tests/unit/style/parsing/ui.rs b/servo/tests/unit/style/parsing/ui.rs index c364e47bce50..1687df848489 100644 --- a/servo/tests/unit/style/parsing/ui.rs +++ b/servo/tests/unit/style/parsing/ui.rs @@ -2,11 +2,13 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -use cssparser::Parser; +use cssparser::{Color, Parser, RGBA}; use media_queries::CSSErrorReporterTest; use servo_url::ServoUrl; use style::parser::ParserContext; use style::stylesheets::Origin; +use style::values::{Auto, Either}; +use style::values::specified::CSSColor; use style_traits::ToCss; #[test] @@ -30,3 +32,24 @@ fn test_moz_user_select() { let mut negative = Parser::new("potato"); assert!(_moz_user_select::parse(&context, &mut negative).is_err()); } + +#[test] +fn test_caret_color() { + use style::properties::longhands::caret_color; + + let auto = parse_longhand!(caret_color, "auto"); + assert_eq!(auto, Either::Second(Auto)); + + let blue_color = CSSColor { + parsed: Color::RGBA(RGBA { + red: 0, + green: 0, + blue: 255, + alpha: 255, + }), + authored: Some(String::from("blue").into_boxed_str()), + }; + + let color = parse_longhand!(caret_color, "blue"); + assert_eq!(color, Either::First(blue_color)); +} From 855c64b0d5f9dd8004ac59ea42945c3ba92a1000 Mon Sep 17 00:00:00 2001 From: Julian Descottes Date: Fri, 3 Mar 2017 10:28:32 +0100 Subject: [PATCH 007/130] Bug 1344156 - reps v0.4.0: update reps bundle from GitHub;r=tromey MozReview-Commit-ID: 4vQozULRsrP --HG-- extra : rebase_source : be7a35bd3a0adcd802c5a9d6873676070ca15a65 --- .../client/shared/components/reps/reps.js | 96 ++++++++++++++----- .../reps/test/mochitest/test_reps_array.html | 4 +- .../test/mochitest/test_reps_attribute.html | 4 +- .../mochitest/test_reps_comment-node.html | 4 +- .../test/mochitest/test_reps_date-time.html | 4 +- .../test/mochitest/test_reps_document.html | 4 +- .../mochitest/test_reps_element-node.html | 11 ++- .../reps/test/mochitest/test_reps_error.html | 4 +- .../reps/test/mochitest/test_reps_event.html | 4 +- .../test/mochitest/test_reps_failure.html | 4 +- .../test/mochitest/test_reps_function.html | 4 +- .../test/mochitest/test_reps_grip-array.html | 4 +- .../test/mochitest/test_reps_grip-map.html | 14 +-- .../reps/test/mochitest/test_reps_grip.html | 4 +- .../test/mochitest/test_reps_infinity.html | 4 +- .../test/mochitest/test_reps_long-string.html | 4 +- .../reps/test/mochitest/test_reps_nan.html | 4 +- .../reps/test/mochitest/test_reps_null.html | 4 +- .../reps/test/mochitest/test_reps_number.html | 4 +- .../mochitest/test_reps_object-with-text.html | 4 +- .../mochitest/test_reps_object-with-url.html | 4 +- .../reps/test/mochitest/test_reps_object.html | 33 ++++++- .../test/mochitest/test_reps_promise.html | 4 +- .../reps/test/mochitest/test_reps_regexp.html | 4 +- .../reps/test/mochitest/test_reps_string.html | 4 +- .../test/mochitest/test_reps_stylesheet.html | 4 +- .../reps/test/mochitest/test_reps_symbol.html | 4 +- .../test/mochitest/test_reps_text-node.html | 11 ++- .../test/mochitest/test_reps_undefined.html | 4 +- .../reps/test/mochitest/test_reps_window.html | 4 +- 30 files changed, 174 insertions(+), 91 deletions(-) diff --git a/devtools/client/shared/components/reps/reps.js b/devtools/client/shared/components/reps/reps.js index f1d9e390bac5..38f989c486c6 100644 --- a/devtools/client/shared/components/reps/reps.js +++ b/devtools/client/shared/components/reps/reps.js @@ -60,13 +60,15 @@ return /******/ (function(modules) { // webpackBootstrap createFactories, parseURLEncodedText, parseURLParams, - getSelectableInInspectorGrips + getSelectableInInspectorGrips, + maybeEscapePropertyName } = __webpack_require__(4); module.exports = { REPS, MODE, createFactories, + maybeEscapePropertyName, parseURLEncodedText, parseURLParams, getSelectableInInspectorGrips @@ -354,6 +356,29 @@ return /******/ (function(modules) { // webpackBootstrap }) + "\""; } + /** + * Escape a property name, if needed. "Escaping" in this context + * means surrounding the property name with quotes. + * + * @param {String} + * name the property name + * @return {String} either the input, or the input surrounded by + * quotes, properly quoted in JS syntax. + */ + function maybeEscapePropertyName(name) { + // Quote the property name if it needs quoting. This particular + // test is an approximation; see + // https://mathiasbynens.be/notes/javascript-properties. However, + // the full solution requires a fair amount of Unicode data, and so + // let's defer that until either it's important, or the \p regexp + // syntax lands, see + // https://github.com/tc39/proposal-regexp-unicode-property-escapes. + if (!/^\w+$/.test(name)) { + name = escapeString(name); + } + return name; + } + function cropMultipleLines(text, limit) { return escapeNewLines(cropString(text, limit)); } @@ -587,7 +612,8 @@ return /******/ (function(modules) { // webpackBootstrap parseURLEncodedText, getFileName, getURLDisplayString, - getSelectableInInspectorGrips + getSelectableInInspectorGrips, + maybeEscapePropertyName }; /***/ }, @@ -978,9 +1004,9 @@ return /******/ (function(modules) { // webpackBootstrap return x === y.toString(); } - let props = Object.getOwnPropertyNames(array); - for (let i = 0; i < props.length; i++) { - let p = props[i]; + let propsArray = Object.getOwnPropertyNames(array); + for (let i = 0; i < propsArray.length; i++) { + let p = propsArray[i]; // Valid indexes are skipped if (isInteger(p)) { @@ -1268,6 +1294,7 @@ return /******/ (function(modules) { // webpackBootstrap const React = __webpack_require__(3); const { createFactories, + maybeEscapePropertyName, wrapRender } = __webpack_require__(4); const { MODE } = __webpack_require__(1); @@ -1295,7 +1322,11 @@ return /******/ (function(modules) { // webpackBootstrap attachedActorIds: React.PropTypes.array, onDOMNodeMouseOver: React.PropTypes.func, onDOMNodeMouseOut: React.PropTypes.func, - onInspectIconClick: React.PropTypes.func + onInspectIconClick: React.PropTypes.func, + // Normally a PropRep will quote a property name that isn't valid + // when unquoted; but this flag can be used to suppress the + // quoting. + suppressQuotes: React.PropTypes.bool }, render: wrapRender(function () { @@ -1305,14 +1336,18 @@ return /******/ (function(modules) { // webpackBootstrap name, mode, equal, - delim + delim, + suppressQuotes } = this.props; let key; // The key can be a simple string, for plain objects, // or another object for maps and weakmaps. - if (typeof this.props.name === "string") { - key = span({ "className": "nodeName" }, this.props.name); + if (typeof name === "string") { + if (!suppressQuotes) { + name = maybeEscapePropertyName(name); + } + key = span({ "className": "nodeName" }, name); } else { key = Rep(Object.assign({}, this.props, { object: name, @@ -1424,19 +1459,24 @@ return /******/ (function(modules) { // webpackBootstrap } const truncate = Object.keys(properties).length > max; - let props = this.getProps(properties, indexes, truncate); + // The server synthesizes some property names for a Proxy, like + // and ; we don't want to quote these because, + // as synthetic properties, they appear more natural when + // unquoted. + const suppressQuotes = object.class === "Proxy"; + let propsArray = this.getProps(properties, indexes, truncate, suppressQuotes); if (truncate) { // There are some undisplayed props. Then display "more...". let objectLink = this.props.objectLink || span; - props.push(Caption({ + propsArray.push(Caption({ object: objectLink({ object: object }, `${propertiesLength - max} more…`) })); } - return props; + return propsArray; }, /** @@ -1445,10 +1485,12 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} properties Props object. * @param {Array} indexes Indexes of props. * @param {Boolean} truncate true if the grip will be truncated. + * @param {Boolean} suppressQuotes true if we should suppress quotes + * on property names. * @return {Array} Props. */ - getProps: function (properties, indexes, truncate) { - let props = []; + getProps: function (properties, indexes, truncate, suppressQuotes) { + let propsArray = []; // Make indexes ordered by ascending. indexes.sort(function (a, b) { @@ -1459,7 +1501,7 @@ return /******/ (function(modules) { // webpackBootstrap let name = Object.keys(properties)[i]; let value = this.getPropValue(properties[name]); - props.push(PropRep(Object.assign({}, this.props, { + propsArray.push(PropRep(Object.assign({}, this.props, { mode: MODE.TINY, name: name, object: value, @@ -1467,11 +1509,12 @@ return /******/ (function(modules) { // webpackBootstrap delim: i !== indexes.length - 1 || truncate ? ", " : "", defaultRep: Grip, // Do not propagate title to properties reps - title: undefined + title: undefined, + suppressQuotes }))); }); - return props; + return propsArray; }, /** @@ -1530,7 +1573,7 @@ return /******/ (function(modules) { // webpackBootstrap render: wrapRender(function () { let object = this.props.object; - let props = this.safePropIterator(object, this.props.mode === MODE.LONG ? 10 : 3); + let propsArray = this.safePropIterator(object, this.props.mode === MODE.LONG ? 10 : 3); let objectLink = this.props.objectLink || span; if (this.props.mode === MODE.TINY) { @@ -1543,7 +1586,7 @@ return /******/ (function(modules) { // webpackBootstrap return span({ className: "objectBox objectBox-object" }, this.getTitle(object), objectLink({ className: "objectLeftBrace", object: object - }, " { "), ...props, objectLink({ + }, " { "), ...propsArray, objectLink({ className: "objectRightBrace", object: object }, " }")); @@ -2114,7 +2157,8 @@ return /******/ (function(modules) { // webpackBootstrap name: `<${key}>`, object, equal: ": ", - delim: i < keys.length - 1 ? ", " : "" + delim: i < keys.length - 1 ? ", " : "", + suppressQuotes: true })); }); }, @@ -2136,11 +2180,11 @@ return /******/ (function(modules) { // webpackBootstrap }, " }")); } - const props = this.getProps(promiseState); + const propsArray = this.getProps(promiseState); return span({ className: "objectBox objectBox-object" }, this.getTitle(object), objectLink({ className: "objectLeftBrace", object: object - }, " { "), ...props, objectLink({ + }, " { "), ...propsArray, objectLink({ className: "objectRightBrace", object: object }, " }")); @@ -2456,7 +2500,7 @@ return /******/ (function(modules) { // webpackBootstrap draggable: false, // TODO: Localize this with "openNodeInInspector" when Bug 1317038 lands title: "Click to select the node in the inspector", - onClick: () => onInspectIconClick(object) + onClick: e => onInspectIconClick(object, e) }); } } @@ -2747,7 +2791,7 @@ return /******/ (function(modules) { // webpackBootstrap draggable: false, // TODO: Localize this with "openNodeInInspector" when Bug 1317038 lands title: "Click to select the node in the inspector", - onClick: () => onInspectIconClick(grip) + onClick: e => onInspectIconClick(grip, e) }); } } @@ -3404,7 +3448,7 @@ return /******/ (function(modules) { // webpackBootstrap render: wrapRender(function () { let object = this.props.object; - let props = this.safeEntriesIterator(object, this.props.mode === MODE.LONG ? 10 : 3); + let propsArray = this.safeEntriesIterator(object, this.props.mode === MODE.LONG ? 10 : 3); let objectLink = this.props.objectLink || span; if (this.props.mode === MODE.TINY) { @@ -3417,7 +3461,7 @@ return /******/ (function(modules) { // webpackBootstrap return span({ className: "objectBox objectBox-object" }, this.getTitle(object), objectLink({ className: "objectLeftBrace", object: object - }, " { "), props, objectLink({ + }, " { "), propsArray, objectLink({ className: "objectRightBrace", object: object }, " }")); diff --git a/devtools/client/shared/components/reps/test/mochitest/test_reps_array.html b/devtools/client/shared/components/reps/test/mochitest/test_reps_array.html index 3563ad1ae3b3..6bbb36b176c4 100644 --- a/devtools/client/shared/components/reps/test/mochitest/test_reps_array.html +++ b/devtools/client/shared/components/reps/test/mochitest/test_reps_array.html @@ -14,8 +14,8 @@ Test ArrayRep rep
-
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/devtools/client/shared/components/reps/test/mochitest/test_reps_undefined.html b/devtools/client/shared/components/reps/test/mochitest/test_reps_undefined.html
index 2702f5bd2841..173249d5a88c 100644
--- a/devtools/client/shared/components/reps/test/mochitest/test_reps_undefined.html
+++ b/devtools/client/shared/components/reps/test/mochitest/test_reps_undefined.html
@@ -14,8 +14,8 @@ Test undefined rep
 
 
 
-
-
+
-
+
 
From 320c3b0f39d821c45c02a3bf5187b4c7eb41741b Mon Sep 17 00:00:00 2001 From: JW Wang Date: Mon, 6 Mar 2017 17:14:29 +0800 Subject: [PATCH 016/130] Bug 1289742. P8 - always create a video element which is capable of playing both audio and video. r=kaku MozReview-Commit-ID: 6fSivL8rIsx --HG-- extra : rebase_source : cd227d630a9b15ba0c748e285b0dc3f152bd2ff9 --- dom/media/test/test_load_same_resource.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dom/media/test/test_load_same_resource.html b/dom/media/test/test_load_same_resource.html index 836782b066ed..0151cf5231e6 100644 --- a/dom/media/test/test_load_same_resource.html +++ b/dom/media/test/test_load_same_resource.html @@ -71,8 +71,7 @@ function tryClone(event) { // failure. function initTest(test, token) { - var elemType = /^audio/.test(test.type) ? "audio" : "video"; - var e = document.createElement(elemType); + var e = document.createElement("video"); e.preload = "auto"; e.src = test.name; e._expectedDuration = test.duration; From 170f8d252bbbf18a37fc85c7f0072ddb96476ea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Mon, 6 Mar 2017 00:36:05 -0800 Subject: [PATCH 017/130] servo: Merge #15830 - Update cssparser to get perf improvements for CSSOM setters (from emilio:cssparserup); r=KiChjang In particular, it it includes https://github.com/servo/rust-cssparser/pull/124 Source-Repo: https://github.com/servo/servo Source-Revision: c62973b77b6ac74c0daf11b1f4c18b9dd64ae400 --HG-- extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear extra : subtree_revision : 42809d20c09bd2bbf5eaac50ab7ddbfcef01a49c --- servo/Cargo.lock | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/servo/Cargo.lock b/servo/Cargo.lock index c98ca1bd721b..77dbaf27504b 100644 --- a/servo/Cargo.lock +++ b/servo/Cargo.lock @@ -275,7 +275,7 @@ version = "0.0.1" dependencies = [ "azure 0.14.0 (git+https://github.com/servo/rust-azure)", "canvas_traits 0.0.1", - "cssparser 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cssparser 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -290,7 +290,7 @@ dependencies = [ name = "canvas_traits" version = "0.0.1" dependencies = [ - "cssparser 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cssparser 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -516,7 +516,7 @@ dependencies = [ [[package]] name = "cssparser" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cssparser-macros 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -933,7 +933,7 @@ version = "0.0.1" dependencies = [ "app_units 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "atomic_refcell 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cssparser 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cssparser 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1344,7 +1344,7 @@ dependencies = [ "atomic_refcell 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "canvas_traits 0.0.1", - "cssparser 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cssparser 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "gfx 0.0.1", @@ -1657,7 +1657,7 @@ name = "msg" version = "0.0.1" dependencies = [ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cssparser 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cssparser 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.9.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2241,7 +2241,7 @@ dependencies = [ "caseless 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "cmake 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)", "cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "cssparser 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cssparser 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "deny_public_fields 0.0.1", "devtools_traits 0.0.1", "dom_struct 0.0.1", @@ -2311,7 +2311,7 @@ dependencies = [ "app_units 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "atomic_refcell 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "canvas_traits 0.0.1", - "cssparser 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cssparser 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "gfx_traits 0.0.1", "heapsize 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2380,7 +2380,7 @@ name = "selectors" version = "0.18.0" dependencies = [ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cssparser 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cssparser 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "matches 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2731,7 +2731,7 @@ dependencies = [ "bindgen 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cssparser 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cssparser 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2769,7 +2769,7 @@ name = "style_tests" version = "0.0.1" dependencies = [ "app_units 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cssparser 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cssparser 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "html5ever-atoms 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "owning_ref 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2789,7 +2789,7 @@ name = "style_traits" version = "0.0.1" dependencies = [ "app_units 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cssparser 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cssparser 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2803,7 +2803,7 @@ version = "0.0.1" dependencies = [ "app_units 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "atomic_refcell 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cssparser 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cssparser 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "geckoservo 0.0.1", @@ -3364,7 +3364,7 @@ dependencies = [ "checksum core-foundation-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "41115a6aa5d3e1e5ef98148373f25971d1fad53818553f216495f9e67e90a624" "checksum core-graphics 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ead017dcf77f503dc991f6b52de6084eeea60a94b0a652baa9bf88654a28e83f" "checksum core-text 4.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0e9719616a10f717628e074744f8c55df7b450f7a34d29c196d14f4498aad05d" -"checksum cssparser 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "112b0e846ce6b441564c908a2e74d98a2c6f2cbe838b0f32d037d5bfb9e982ca" +"checksum cssparser 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "35e3e110221f306501253d8d34857040de365ce2d92ac0abb2f06dedc845d9d0" "checksum cssparser-macros 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b8f0415de0bdbce823c0db204e00a62c8240fa2d3e04cd13ff7c6396e4446b95" "checksum dbghelp-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "97590ba53bcb8ac28279161ca943a924d1fd4a8fb3fa63302591647c4fc5b850" "checksum dbus 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "94d266a872aaf68b50d02083c429a3686935ab6ab54824290509cdc422673eaf" From 998e9923defcaa8b09579c8d404c0805040331f2 Mon Sep 17 00:00:00 2001 From: Scott Wu Date: Fri, 17 Feb 2017 18:16:17 +0800 Subject: [PATCH 018/130] Bug 1320880 - Add RTL support to date picker r=mconley MozReview-Commit-ID: LIrOuUCfz17 --HG-- extra : rebase_source : 61781745759e1efb7851e1478bc6d3a591cb16c7 --- toolkit/content/datepicker.xhtml | 8 ++++---- toolkit/content/widgets/datepicker.js | 11 +++++++---- toolkit/content/widgets/datetimepopup.xml | 4 +++- toolkit/themes/shared/datetimeinputpickers.css | 12 +++++++++--- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/toolkit/content/datepicker.xhtml b/toolkit/content/datepicker.xhtml index c5c76e323795..45d2cb80db7d 100644 --- a/toolkit/content/datepicker.xhtml +++ b/toolkit/content/datepicker.xhtml @@ -16,8 +16,8 @@
@@ -51,8 +51,8 @@ new DatePicker({ monthYear: root.querySelector(".month-year"), monthYearView: root.querySelector(".month-year-view"), - buttonLeft: root.querySelector(".left"), - buttonRight: root.querySelector(".right"), + buttonPrev: root.querySelector(".prev"), + buttonNext: root.querySelector(".next"), weekHeader: root.querySelector(".week-header"), daysView: root.querySelector(".days-view") }); diff --git a/toolkit/content/widgets/datepicker.js b/toolkit/content/widgets/datepicker.js index cc779d19f6c1..d315b7a515e4 100644 --- a/toolkit/content/widgets/datepicker.js +++ b/toolkit/content/widgets/datepicker.js @@ -50,7 +50,8 @@ function DatePicker(context) { weekends, monthStrings, weekdayStrings, - locale } = this.props; + locale, + dir } = this.props; const dateKeeper = new DateKeeper({ year, month, day }, { @@ -59,6 +60,8 @@ function DatePicker(context) { calViewSize: CAL_VIEW_SIZE }); + document.dir = dir; + this.state = { dateKeeper, locale, @@ -217,11 +220,11 @@ function DatePicker(context) { event.preventDefault(); event.target.setCapture(); - if (event.target == this.context.buttonLeft) { + if (event.target == this.context.buttonPrev) { event.target.classList.add("active"); this.state.dateKeeper.setMonthByOffset(-1); this._update(); - } else if (event.target == this.context.buttonRight) { + } else if (event.target == this.context.buttonNext) { event.target.classList.add("active"); this.state.dateKeeper.setMonthByOffset(1); this._update(); @@ -229,7 +232,7 @@ function DatePicker(context) { break; } case "mouseup": { - if (event.target == this.context.buttonLeft || event.target == this.context.buttonRight) { + if (event.target == this.context.buttonPrev || event.target == this.context.buttonNext) { event.target.classList.remove("active"); } diff --git a/toolkit/content/widgets/datetimepopup.xml b/toolkit/content/widgets/datetimepopup.xml index 35bf117c96ed..acec564a08ec 100644 --- a/toolkit/content/widgets/datetimepopup.xml +++ b/toolkit/content/widgets/datetimepopup.xml @@ -97,6 +97,7 @@ button.left { +.nav > button.prev, +.nav > button.next:dir(rtl) { background: url("chrome://global/skin/icons/calendar-arrows.svg#left") no-repeat 50% 50%; } -.nav > button.right { +.nav > button.next, +.nav > button.prev:dir(rtl) { background: url("chrome://global/skin/icons/calendar-arrows.svg#right") no-repeat 50% 50%; } @@ -92,6 +94,7 @@ button { align-items: center; top: 0; left: 3rem; + right: 3rem; width: 17.1rem; height: var(--date-picker-item-height); z-index: 10; @@ -101,7 +104,10 @@ button.month-year { font-size: 1.3rem; border: var(--border); border-radius: 0.3rem; - padding: 0.2rem 2.6rem 0.2rem 1.2rem; + padding-top: 0.2rem; + padding-bottom: 0.2rem; + padding-inline-start: 1.2rem; + padding-inline-end: 2.6rem; } button.month-year:hover { From db24dacb5b9d3e220e15acc294a85f91f0a60c84 Mon Sep 17 00:00:00 2001 From: Kaku Kuo Date: Mon, 6 Mar 2017 15:30:49 +0800 Subject: [PATCH 019/130] Bug 1344621 - Label runnables in dom/media/MediaResource.cpp; r=jwwang MozReview-Commit-ID: EEZoUIdKOkK --HG-- extra : rebase_source : c26479eacfba20ef6343a16ac3c7fd624b74d6ba --- dom/media/MediaResource.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/dom/media/MediaResource.cpp b/dom/media/MediaResource.cpp index 8c04b53208a3..72bca52f1e59 100644 --- a/dom/media/MediaResource.cpp +++ b/dom/media/MediaResource.cpp @@ -54,8 +54,11 @@ MediaResource::Destroy() delete this; return; } - MOZ_ALWAYS_SUCCEEDS( - NS_DispatchToMainThread(NewNonOwningRunnableMethod(this, &MediaResource::Destroy))); + nsresult rv = + SystemGroup::Dispatch("MediaResource::Destroy", + TaskCategory::Other, + NewNonOwningRunnableMethod(this, &MediaResource::Destroy)); + MOZ_ALWAYS_SUCCEEDS(rv); } NS_IMPL_ADDREF(MediaResource) @@ -866,7 +869,10 @@ ChannelMediaResource::CacheClientNotifyDataReceived() mDataReceivedEvent = NewNonOwningRunnableMethod("ChannelMediaResource::DoNotifyDataReceived", this, &ChannelMediaResource::DoNotifyDataReceived); - NS_DispatchToMainThread(mDataReceivedEvent.get()); + + nsCOMPtr event = mDataReceivedEvent.get(); + + SystemGroup::AbstractMainThreadFor(TaskCategory::Other)->Dispatch(event.forget()); } void From fbf972dd2b975ef5de30e2e093ea868dc72be501 Mon Sep 17 00:00:00 2001 From: Svetlana Orlik Date: Fri, 3 Mar 2017 20:15:56 +0300 Subject: [PATCH 020/130] Bug 1344276 - top 20 websites of www.alexa.com/topsites, r=Gijs MozReview-Commit-ID: 673pKrdXBfM --HG-- extra : rebase_source : f6a7b3d0af681e3d90597a9ec9098d9541f04f65 --- .../places/unifiedcomplete-top-urls.json | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/toolkit/components/places/unifiedcomplete-top-urls.json b/toolkit/components/places/unifiedcomplete-top-urls.json index 60d3215d791a..a94b85d76dac 100644 --- a/toolkit/components/places/unifiedcomplete-top-urls.json +++ b/toolkit/components/places/unifiedcomplete-top-urls.json @@ -1,8 +1,22 @@ [ - ["https://google.com/", "Google"], - ["https://youtube.com/", "YouTube"], - ["https://facebook.com/", "Facebook"], - ["https://baidu.com/", "\u767E\u5EA6\u4E00\u4E0B\uFF0C\u4F60\u5C31\u77E5\u9053"], - ["https://wikipedia.org/", "Wikipedia"], - ["https://yahoo.com/", "Yahoo"] -] \ No newline at end of file + ["https://www.google.com/", "Google"], + ["https://www.youtube.com/", "YouTube"], + ["https://www.facebook.com/", "Facebook"], + ["https://www.baidu.com/", "百度一下"], + ["https://www.yahoo.com/", "Yahoo"], + ["https://www.wikipedia.org/", "Wikipedia"], + ["http://www.qq.com/", "腾讯首页"], + ["http://www.sohu.com/", "搜狐"], + ["https://world.taobao.com/", "淘宝海外全球站"], + ["https://www.tmall.com/", "天猫tmall.com"], + ["https://www.live.com/", "Live"], + ["https://www.amazon.com/", "Amazon.com"], + ["https://vk.com/", "VK"], + ["https://twitter.com/", "Twitter"], + ["https://www.instagram.com/", "Instagram"], + ["http://360.cn/", "360公司官网"], + ["http://www.sina.com.cn/", "新浪首页"], + ["https://www.linkedin.com/", "LinkedIn"], + ["http://www.jd.com/", "京东(JD.COM)"], + ["https://www.reddit.com/", "reddit"] +] From 0cb0b2702be6761a31d55fcb0cf6f28881d4473c Mon Sep 17 00:00:00 2001 From: Valentin Gosu Date: Wed, 1 Mar 2017 00:01:15 +0100 Subject: [PATCH 021/130] Bug 1324243 - Normalize IPv6 r=manishearth MozReview-Commit-ID: Kxe9eLqvKp6 --HG-- extra : rebase_source : 195cafb81adeb9d5fa0a84535144debe1b26f6ff --- .../test/unit/test_nsDefaultURIFixup_info.js | 6 ++++-- dom/url/tests/test_url.html | 4 ++-- netwerk/base/nsStandardURL.cpp | 18 ++++++++++++++++-- netwerk/base/rust-url-capi/src/lib.rs | 16 ++++++++++++++++ netwerk/base/rust-url-capi/src/rust-url-capi.h | 2 ++ netwerk/test/unit/test_URIs.js | 4 ++-- netwerk/test/unit/test_standardurl.js | 8 ++++++++ .../meta/url/a-element-origin-xhtml.xhtml.ini | 6 ------ .../meta/url/a-element-origin.html.ini | 6 ------ .../meta/url/a-element-xhtml.xhtml.ini | 6 ------ .../web-platform/meta/url/a-element.html.ini | 6 ------ .../meta/url/url-constructor.html.ini | 6 ------ .../web-platform/meta/url/url-origin.html.ini | 6 ------ .../web-platform/meta/url/url-setters.html.ini | 18 ------------------ 14 files changed, 50 insertions(+), 62 deletions(-) diff --git a/docshell/test/unit/test_nsDefaultURIFixup_info.js b/docshell/test/unit/test_nsDefaultURIFixup_info.js index c606ac32efd2..2c4a7b699020 100644 --- a/docshell/test/unit/test_nsDefaultURIFixup_info.js +++ b/docshell/test/unit/test_nsDefaultURIFixup_info.js @@ -200,11 +200,13 @@ var testcases = [ { protocolChange: true, }, { input: "[64:ff9b::8.8.8.8]", - fixedURI: "http://[64:ff9b::8.8.8.8]/", + fixedURI: "http://[64:ff9b::808:808]/", + alternateURI: "http://[64:ff9b::808:808]/", protocolChange: true }, { input: "[64:ff9b::8.8.8.8]/~moz", - fixedURI: "http://[64:ff9b::8.8.8.8]/~moz", + fixedURI: "http://[64:ff9b::808:808]/~moz", + alternateURI: "http://[64:ff9b::808:808]/~moz", protocolChange: true }, { input: "[::1][::1]", diff --git a/dom/url/tests/test_url.html b/dom/url/tests/test_url.html index 73e75667d8db..68a41617063d 100644 --- a/dom/url/tests/test_url.html +++ b/dom/url/tests/test_url.html @@ -323,8 +323,8 @@ is(url.href, "http://[2001::1]/"); url.hostname = "[::192.9.5.5]"; - is(url.hostname, "[::192.9.5.5]", "IPv6 hostname"); - is(url.href, "http://[::192.9.5.5]/"); + is(url.hostname, "[::c009:505]", "IPv6 hostname"); + is(url.href, "http://[::c009:505]/"); url = new URL("http://localhost/"); url.hostname = "[::]"; diff --git a/netwerk/base/nsStandardURL.cpp b/netwerk/base/nsStandardURL.cpp index 5d1b6ffadf49..2102eae6faac 100644 --- a/netwerk/base/nsStandardURL.cpp +++ b/netwerk/base/nsStandardURL.cpp @@ -773,7 +773,14 @@ nsStandardURL::BuildNormalizedSpec(const char *spec) if (!SegmentIs(spec, mScheme, "resource") && !SegmentIs(spec, mScheme, "chrome")) { nsAutoCString ipString; - if (NS_SUCCEEDED(NormalizeIPv4(encHost, ipString))) { + if (encHost.Length() > 0 && + encHost.First() == '[' && encHost.Last() == ']') { + rv = (nsresult) rusturl_parse_ipv6addr(&encHost, &ipString); + if (NS_FAILED(rv)) { + return rv; + } + encHost = ipString; + } else if (NS_SUCCEEDED(NormalizeIPv4(encHost, ipString))) { encHost = ipString; } } @@ -2014,7 +2021,14 @@ nsStandardURL::SetHost(const nsACString &input) if (!SegmentIs(mScheme, "resource") && !SegmentIs(mScheme, "chrome")) { nsAutoCString ipString; - if (NS_SUCCEEDED(NormalizeIPv4(hostBuf, ipString))) { + if (hostBuf.Length() > 0 && + hostBuf.First() == '[' && hostBuf.Last() == ']') { + rv = (nsresult) rusturl_parse_ipv6addr(&hostBuf, &ipString); + if (NS_FAILED(rv)) { + return rv; + } + hostBuf = ipString; + } else if (NS_SUCCEEDED(NormalizeIPv4(hostBuf, ipString))) { hostBuf = ipString; } } diff --git a/netwerk/base/rust-url-capi/src/lib.rs b/netwerk/base/rust-url-capi/src/lib.rs index 44bdd8e81211..90866bc6a4e6 100644 --- a/netwerk/base/rust-url-capi/src/lib.rs +++ b/netwerk/base/rust-url-capi/src/lib.rs @@ -525,3 +525,19 @@ pub extern "C" fn rusturl_relative_spec(urlptr1: Option<&Url>, urlptr2: Option<& pub extern "C" fn sizeof_rusturl() -> size_t { mem::size_of::() } + +#[no_mangle] +pub extern "C" fn rusturl_parse_ipv6addr(input: &nsACString, cont: &mut nsACString) -> i32 { + let ip6 = match str::from_utf8(input) { + Ok(content) => content, + Err(_) => return ParseError::InvalidDomainCharacter.error_code() + }; + + let h = match url::Host::parse(ip6) { + Ok(host) => host, + Err(e) => return e.error_code() + }; + + cont.assign(&h.to_string()); + NSError::OK.error_code() +} diff --git a/netwerk/base/rust-url-capi/src/rust-url-capi.h b/netwerk/base/rust-url-capi/src/rust-url-capi.h index 2bcf77544e73..2c17f16b7544 100644 --- a/netwerk/base/rust-url-capi/src/rust-url-capi.h +++ b/netwerk/base/rust-url-capi/src/rust-url-capi.h @@ -47,6 +47,8 @@ int32_t rusturl_resolve(const rusturl* url, const nsACString* relative, nsACStri int32_t rusturl_common_base_spec(const rusturl* url1, const rusturl* url2, nsACString* cont); int32_t rusturl_relative_spec(const rusturl* url1, const rusturl* url2, nsACString* cont); +int32_t rusturl_parse_ipv6addr(const nsACString* input, nsACString* cont); + size_t sizeof_rusturl(); } diff --git a/netwerk/test/unit/test_URIs.js b/netwerk/test/unit/test_URIs.js index 1dc076178e86..51d52b50dae4 100644 --- a/netwerk/test/unit/test_URIs.js +++ b/netwerk/test/unit/test_URIs.js @@ -150,8 +150,8 @@ var gTests = [ nsIURL: true, nsINestedURI: false }, { spec: "http://[::192.9.5.5]/ipng", scheme: "http", - prePath: "http://[::192.9.5.5]", - host: "::192.9.5.5", + prePath: "http://[::c009:505]", + host: "::c009:505", path: "/ipng", ref: "", nsIURL: true, nsINestedURI: false }, diff --git a/netwerk/test/unit/test_standardurl.js b/netwerk/test/unit/test_standardurl.js index a1a320721e02..7a00825c0331 100644 --- a/netwerk/test/unit/test_standardurl.js +++ b/netwerk/test/unit/test_standardurl.js @@ -461,3 +461,11 @@ add_test(function test_invalidHostChars() { // hostname separators, so there is no way to set them and fail. run_next_test(); }); + +add_test(function test_normalize_ipv6() { + var url = stringToURL("http://example.com"); + url.host = "[::192.9.5.5]"; + do_check_eq(url.spec, "http://[::c009:505]/"); + + run_next_test(); +}); diff --git a/testing/web-platform/meta/url/a-element-origin-xhtml.xhtml.ini b/testing/web-platform/meta/url/a-element-origin-xhtml.xhtml.ini index 0194629c87e8..52144baf810f 100644 --- a/testing/web-platform/meta/url/a-element-origin-xhtml.xhtml.ini +++ b/testing/web-platform/meta/url/a-element-origin-xhtml.xhtml.ini @@ -6,12 +6,6 @@ [Parsing origin: against ] expected: FAIL - [Parsing origin: against ] - expected: FAIL - - [Parsing origin: against ] - expected: FAIL - [Parsing origin: against ] expected: FAIL diff --git a/testing/web-platform/meta/url/a-element-origin.html.ini b/testing/web-platform/meta/url/a-element-origin.html.ini index f60b378ce188..fbe7a5ba10db 100644 --- a/testing/web-platform/meta/url/a-element-origin.html.ini +++ b/testing/web-platform/meta/url/a-element-origin.html.ini @@ -6,12 +6,6 @@ [Parsing origin: against ] expected: FAIL - [Parsing origin: against ] - expected: FAIL - - [Parsing origin: against ] - expected: FAIL - [Parsing origin: against ] expected: FAIL diff --git a/testing/web-platform/meta/url/a-element-xhtml.xhtml.ini b/testing/web-platform/meta/url/a-element-xhtml.xhtml.ini index fbe4c4ac687e..b8bef5e17eb0 100644 --- a/testing/web-platform/meta/url/a-element-xhtml.xhtml.ini +++ b/testing/web-platform/meta/url/a-element-xhtml.xhtml.ini @@ -414,12 +414,6 @@ [Parsing: against ] expected: FAIL - [Parsing: against ] - expected: FAIL - - [Parsing: against ] - expected: FAIL - [Parsing: against ] expected: FAIL diff --git a/testing/web-platform/meta/url/a-element.html.ini b/testing/web-platform/meta/url/a-element.html.ini index 331a51e40a85..f2f38dc379b9 100644 --- a/testing/web-platform/meta/url/a-element.html.ini +++ b/testing/web-platform/meta/url/a-element.html.ini @@ -423,12 +423,6 @@ [Parsing: against ] expected: FAIL - [Parsing: against ] - expected: FAIL - - [Parsing: against ] - expected: FAIL - [Parsing: against ] expected: FAIL diff --git a/testing/web-platform/meta/url/url-constructor.html.ini b/testing/web-platform/meta/url/url-constructor.html.ini index 8700aa33c7b5..bf026c0197db 100644 --- a/testing/web-platform/meta/url/url-constructor.html.ini +++ b/testing/web-platform/meta/url/url-constructor.html.ini @@ -201,12 +201,6 @@ [Parsing: against ] expected: FAIL - [Parsing: against ] - expected: FAIL - - [Parsing: against ] - expected: FAIL - [Parsing: against ] expected: FAIL diff --git a/testing/web-platform/meta/url/url-origin.html.ini b/testing/web-platform/meta/url/url-origin.html.ini index 5284e5bf3467..a1a80c20f29a 100644 --- a/testing/web-platform/meta/url/url-origin.html.ini +++ b/testing/web-platform/meta/url/url-origin.html.ini @@ -6,12 +6,6 @@ [Origin parsing: against ] expected: FAIL - [Origin parsing: against ] - expected: FAIL - - [Origin parsing: against ] - expected: FAIL - [Origin parsing: against ] expected: FAIL diff --git a/testing/web-platform/meta/url/url-setters.html.ini b/testing/web-platform/meta/url/url-setters.html.ini index ccb97a3b9683..8c0e6c2b8e5f 100644 --- a/testing/web-platform/meta/url/url-setters.html.ini +++ b/testing/web-platform/meta/url/url-setters.html.ini @@ -228,15 +228,6 @@ [: Setting .host = 'example.net' Path-only URLs can gain a host] expected: FAIL - [URL: Setting .host = '[::0:01\]:2' IPv6 address syntax is normalized] - expected: FAIL - - [: Setting .host = '[::0:01\]:2' IPv6 address syntax is normalized] - expected: FAIL - - [: Setting .host = '[::0:01\]:2' IPv6 address syntax is normalized] - expected: FAIL - [URL: Setting .host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, and it’s invalid in a domain] expected: FAIL @@ -273,15 +264,6 @@ [: Setting .hostname = 'example.net' Path-only URLs can gain a host] expected: FAIL - [URL: Setting .hostname = '[::0:01\]' IPv6 address syntax is normalized] - expected: FAIL - - [: Setting .hostname = '[::0:01\]' IPv6 address syntax is normalized] - expected: FAIL - - [: Setting .hostname = '[::0:01\]' IPv6 address syntax is normalized] - expected: FAIL - [URL: Setting .hostname = 'example.com:8080' Stuff after a : delimiter is ignored] expected: FAIL From a25648d3cd9adbadad6c54381c7e32edb700c7aa Mon Sep 17 00:00:00 2001 From: "Carsten \"Tomcat\" Book" Date: Mon, 6 Mar 2017 14:13:03 +0100 Subject: [PATCH 022/130] Backed out changeset 189b914221f4 (bug 1324243) for wpt-11 bustage --- .../test/unit/test_nsDefaultURIFixup_info.js | 6 ++---- dom/url/tests/test_url.html | 4 ++-- netwerk/base/nsStandardURL.cpp | 18 ++---------------- netwerk/base/rust-url-capi/src/lib.rs | 16 ---------------- netwerk/base/rust-url-capi/src/rust-url-capi.h | 2 -- netwerk/test/unit/test_URIs.js | 4 ++-- netwerk/test/unit/test_standardurl.js | 8 -------- .../meta/url/a-element-origin-xhtml.xhtml.ini | 6 ++++++ .../meta/url/a-element-origin.html.ini | 6 ++++++ .../meta/url/a-element-xhtml.xhtml.ini | 6 ++++++ .../web-platform/meta/url/a-element.html.ini | 6 ++++++ .../meta/url/url-constructor.html.ini | 6 ++++++ .../web-platform/meta/url/url-origin.html.ini | 6 ++++++ .../web-platform/meta/url/url-setters.html.ini | 18 ++++++++++++++++++ 14 files changed, 62 insertions(+), 50 deletions(-) diff --git a/docshell/test/unit/test_nsDefaultURIFixup_info.js b/docshell/test/unit/test_nsDefaultURIFixup_info.js index 2c4a7b699020..c606ac32efd2 100644 --- a/docshell/test/unit/test_nsDefaultURIFixup_info.js +++ b/docshell/test/unit/test_nsDefaultURIFixup_info.js @@ -200,13 +200,11 @@ var testcases = [ { protocolChange: true, }, { input: "[64:ff9b::8.8.8.8]", - fixedURI: "http://[64:ff9b::808:808]/", - alternateURI: "http://[64:ff9b::808:808]/", + fixedURI: "http://[64:ff9b::8.8.8.8]/", protocolChange: true }, { input: "[64:ff9b::8.8.8.8]/~moz", - fixedURI: "http://[64:ff9b::808:808]/~moz", - alternateURI: "http://[64:ff9b::808:808]/~moz", + fixedURI: "http://[64:ff9b::8.8.8.8]/~moz", protocolChange: true }, { input: "[::1][::1]", diff --git a/dom/url/tests/test_url.html b/dom/url/tests/test_url.html index 68a41617063d..73e75667d8db 100644 --- a/dom/url/tests/test_url.html +++ b/dom/url/tests/test_url.html @@ -323,8 +323,8 @@ is(url.href, "http://[2001::1]/"); url.hostname = "[::192.9.5.5]"; - is(url.hostname, "[::c009:505]", "IPv6 hostname"); - is(url.href, "http://[::c009:505]/"); + is(url.hostname, "[::192.9.5.5]", "IPv6 hostname"); + is(url.href, "http://[::192.9.5.5]/"); url = new URL("http://localhost/"); url.hostname = "[::]"; diff --git a/netwerk/base/nsStandardURL.cpp b/netwerk/base/nsStandardURL.cpp index 2102eae6faac..5d1b6ffadf49 100644 --- a/netwerk/base/nsStandardURL.cpp +++ b/netwerk/base/nsStandardURL.cpp @@ -773,14 +773,7 @@ nsStandardURL::BuildNormalizedSpec(const char *spec) if (!SegmentIs(spec, mScheme, "resource") && !SegmentIs(spec, mScheme, "chrome")) { nsAutoCString ipString; - if (encHost.Length() > 0 && - encHost.First() == '[' && encHost.Last() == ']') { - rv = (nsresult) rusturl_parse_ipv6addr(&encHost, &ipString); - if (NS_FAILED(rv)) { - return rv; - } - encHost = ipString; - } else if (NS_SUCCEEDED(NormalizeIPv4(encHost, ipString))) { + if (NS_SUCCEEDED(NormalizeIPv4(encHost, ipString))) { encHost = ipString; } } @@ -2021,14 +2014,7 @@ nsStandardURL::SetHost(const nsACString &input) if (!SegmentIs(mScheme, "resource") && !SegmentIs(mScheme, "chrome")) { nsAutoCString ipString; - if (hostBuf.Length() > 0 && - hostBuf.First() == '[' && hostBuf.Last() == ']') { - rv = (nsresult) rusturl_parse_ipv6addr(&hostBuf, &ipString); - if (NS_FAILED(rv)) { - return rv; - } - hostBuf = ipString; - } else if (NS_SUCCEEDED(NormalizeIPv4(hostBuf, ipString))) { + if (NS_SUCCEEDED(NormalizeIPv4(hostBuf, ipString))) { hostBuf = ipString; } } diff --git a/netwerk/base/rust-url-capi/src/lib.rs b/netwerk/base/rust-url-capi/src/lib.rs index 90866bc6a4e6..44bdd8e81211 100644 --- a/netwerk/base/rust-url-capi/src/lib.rs +++ b/netwerk/base/rust-url-capi/src/lib.rs @@ -525,19 +525,3 @@ pub extern "C" fn rusturl_relative_spec(urlptr1: Option<&Url>, urlptr2: Option<& pub extern "C" fn sizeof_rusturl() -> size_t { mem::size_of::() } - -#[no_mangle] -pub extern "C" fn rusturl_parse_ipv6addr(input: &nsACString, cont: &mut nsACString) -> i32 { - let ip6 = match str::from_utf8(input) { - Ok(content) => content, - Err(_) => return ParseError::InvalidDomainCharacter.error_code() - }; - - let h = match url::Host::parse(ip6) { - Ok(host) => host, - Err(e) => return e.error_code() - }; - - cont.assign(&h.to_string()); - NSError::OK.error_code() -} diff --git a/netwerk/base/rust-url-capi/src/rust-url-capi.h b/netwerk/base/rust-url-capi/src/rust-url-capi.h index 2c17f16b7544..2bcf77544e73 100644 --- a/netwerk/base/rust-url-capi/src/rust-url-capi.h +++ b/netwerk/base/rust-url-capi/src/rust-url-capi.h @@ -47,8 +47,6 @@ int32_t rusturl_resolve(const rusturl* url, const nsACString* relative, nsACStri int32_t rusturl_common_base_spec(const rusturl* url1, const rusturl* url2, nsACString* cont); int32_t rusturl_relative_spec(const rusturl* url1, const rusturl* url2, nsACString* cont); -int32_t rusturl_parse_ipv6addr(const nsACString* input, nsACString* cont); - size_t sizeof_rusturl(); } diff --git a/netwerk/test/unit/test_URIs.js b/netwerk/test/unit/test_URIs.js index 51d52b50dae4..1dc076178e86 100644 --- a/netwerk/test/unit/test_URIs.js +++ b/netwerk/test/unit/test_URIs.js @@ -150,8 +150,8 @@ var gTests = [ nsIURL: true, nsINestedURI: false }, { spec: "http://[::192.9.5.5]/ipng", scheme: "http", - prePath: "http://[::c009:505]", - host: "::c009:505", + prePath: "http://[::192.9.5.5]", + host: "::192.9.5.5", path: "/ipng", ref: "", nsIURL: true, nsINestedURI: false }, diff --git a/netwerk/test/unit/test_standardurl.js b/netwerk/test/unit/test_standardurl.js index 7a00825c0331..a1a320721e02 100644 --- a/netwerk/test/unit/test_standardurl.js +++ b/netwerk/test/unit/test_standardurl.js @@ -461,11 +461,3 @@ add_test(function test_invalidHostChars() { // hostname separators, so there is no way to set them and fail. run_next_test(); }); - -add_test(function test_normalize_ipv6() { - var url = stringToURL("http://example.com"); - url.host = "[::192.9.5.5]"; - do_check_eq(url.spec, "http://[::c009:505]/"); - - run_next_test(); -}); diff --git a/testing/web-platform/meta/url/a-element-origin-xhtml.xhtml.ini b/testing/web-platform/meta/url/a-element-origin-xhtml.xhtml.ini index 52144baf810f..0194629c87e8 100644 --- a/testing/web-platform/meta/url/a-element-origin-xhtml.xhtml.ini +++ b/testing/web-platform/meta/url/a-element-origin-xhtml.xhtml.ini @@ -6,6 +6,12 @@ [Parsing origin: against ] expected: FAIL + [Parsing origin: against ] + expected: FAIL + + [Parsing origin: against ] + expected: FAIL + [Parsing origin: against ] expected: FAIL diff --git a/testing/web-platform/meta/url/a-element-origin.html.ini b/testing/web-platform/meta/url/a-element-origin.html.ini index fbe7a5ba10db..f60b378ce188 100644 --- a/testing/web-platform/meta/url/a-element-origin.html.ini +++ b/testing/web-platform/meta/url/a-element-origin.html.ini @@ -6,6 +6,12 @@ [Parsing origin: against ] expected: FAIL + [Parsing origin: against ] + expected: FAIL + + [Parsing origin: against ] + expected: FAIL + [Parsing origin: against ] expected: FAIL diff --git a/testing/web-platform/meta/url/a-element-xhtml.xhtml.ini b/testing/web-platform/meta/url/a-element-xhtml.xhtml.ini index b8bef5e17eb0..fbe4c4ac687e 100644 --- a/testing/web-platform/meta/url/a-element-xhtml.xhtml.ini +++ b/testing/web-platform/meta/url/a-element-xhtml.xhtml.ini @@ -414,6 +414,12 @@ [Parsing: against ] expected: FAIL + [Parsing: against ] + expected: FAIL + + [Parsing: against ] + expected: FAIL + [Parsing: against ] expected: FAIL diff --git a/testing/web-platform/meta/url/a-element.html.ini b/testing/web-platform/meta/url/a-element.html.ini index f2f38dc379b9..331a51e40a85 100644 --- a/testing/web-platform/meta/url/a-element.html.ini +++ b/testing/web-platform/meta/url/a-element.html.ini @@ -423,6 +423,12 @@ [Parsing: against ] expected: FAIL + [Parsing: against ] + expected: FAIL + + [Parsing: against ] + expected: FAIL + [Parsing: against ] expected: FAIL diff --git a/testing/web-platform/meta/url/url-constructor.html.ini b/testing/web-platform/meta/url/url-constructor.html.ini index bf026c0197db..8700aa33c7b5 100644 --- a/testing/web-platform/meta/url/url-constructor.html.ini +++ b/testing/web-platform/meta/url/url-constructor.html.ini @@ -201,6 +201,12 @@ [Parsing: against ] expected: FAIL + [Parsing: against ] + expected: FAIL + + [Parsing: against ] + expected: FAIL + [Parsing: against ] expected: FAIL diff --git a/testing/web-platform/meta/url/url-origin.html.ini b/testing/web-platform/meta/url/url-origin.html.ini index a1a80c20f29a..5284e5bf3467 100644 --- a/testing/web-platform/meta/url/url-origin.html.ini +++ b/testing/web-platform/meta/url/url-origin.html.ini @@ -6,6 +6,12 @@ [Origin parsing: against ] expected: FAIL + [Origin parsing: against ] + expected: FAIL + + [Origin parsing: against ] + expected: FAIL + [Origin parsing: against ] expected: FAIL diff --git a/testing/web-platform/meta/url/url-setters.html.ini b/testing/web-platform/meta/url/url-setters.html.ini index 8c0e6c2b8e5f..ccb97a3b9683 100644 --- a/testing/web-platform/meta/url/url-setters.html.ini +++ b/testing/web-platform/meta/url/url-setters.html.ini @@ -228,6 +228,15 @@ [: Setting .host = 'example.net' Path-only URLs can gain a host] expected: FAIL + [URL: Setting .host = '[::0:01\]:2' IPv6 address syntax is normalized] + expected: FAIL + + [: Setting .host = '[::0:01\]:2' IPv6 address syntax is normalized] + expected: FAIL + + [: Setting .host = '[::0:01\]:2' IPv6 address syntax is normalized] + expected: FAIL + [URL: Setting .host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, and it’s invalid in a domain] expected: FAIL @@ -264,6 +273,15 @@ [: Setting .hostname = 'example.net' Path-only URLs can gain a host] expected: FAIL + [URL: Setting .hostname = '[::0:01\]' IPv6 address syntax is normalized] + expected: FAIL + + [: Setting .hostname = '[::0:01\]' IPv6 address syntax is normalized] + expected: FAIL + + [: Setting .hostname = '[::0:01\]' IPv6 address syntax is normalized] + expected: FAIL + [URL: Setting .hostname = 'example.com:8080' Stuff after a : delimiter is ignored] expected: FAIL From 3078595329df6daf6298fa7421842e4e65d160de Mon Sep 17 00:00:00 2001 From: Miko Mynttinen Date: Thu, 9 Feb 2017 12:37:34 +0100 Subject: [PATCH 023/130] Bug 1323791 - Part 1: Use no-repeat texture rects with polygon layers r=mattwoodrow MozReview-Commit-ID: 3ObTvCXQZAj --HG-- extra : rebase_source : 2a6e268dfe785b7403a3c08220fb5d19ea027c5b --- gfx/layers/Compositor.cpp | 79 +++++++++++++++++++++++++++------------ 1 file changed, 56 insertions(+), 23 deletions(-) diff --git a/gfx/layers/Compositor.cpp b/gfx/layers/Compositor.cpp index cd94d8b9a8dd..34f41a4cbe59 100644 --- a/gfx/layers/Compositor.cpp +++ b/gfx/layers/Compositor.cpp @@ -311,6 +311,50 @@ Compositor::DrawTriangles(const nsTArray& aTriangles, } } +static nsTArray +GenerateTexturedTriangles(const gfx::Polygon& aPolygon, + const gfx::Rect& aRect, + const gfx::Rect& aTexRect) +{ + nsTArray texturedTriangles; + + gfx::Rect layerRects[4]; + gfx::Rect textureRects[4]; + size_t rects = DecomposeIntoNoRepeatRects(aRect, aTexRect, + &layerRects, &textureRects); + for (size_t i = 0; i < rects; ++i) { + const gfx::Rect& rect = layerRects[i]; + const gfx::Rect& texRect = textureRects[i]; + const gfx::Polygon clipped = aPolygon.ClipPolygon(rect); + + if (clipped.IsEmpty()) { + continue; + } + + for (const gfx::Triangle& triangle : clipped.ToTriangles()) { + const gfx::Rect intersection = rect.Intersect(triangle.BoundingBox()); + + // Cull completely invisible triangles. + if (intersection.IsEmpty()) { + continue; + } + + MOZ_ASSERT(rect.width > 0.0f && rect.height > 0.0f); + MOZ_ASSERT(intersection.width > 0.0f && intersection.height > 0.0f); + + // Since the texture was created for non-split geometry, we need to + // update the texture coordinates to account for the split. + gfx::TexturedTriangle t(triangle); + t.width = rect.width; + t.height = rect.height; + UpdateTextureCoordinates(t, rect, intersection, texRect); + texturedTriangles.AppendElement(Move(t)); + } + } + + return texturedTriangles; +} + void Compositor::DrawPolygon(const gfx::Polygon& aPolygon, const gfx::Rect& aRect, @@ -322,32 +366,21 @@ Compositor::DrawPolygon(const gfx::Polygon& aPolygon, { nsTArray texturedTriangles; - for (gfx::Triangle& triangle : aPolygon.ToTriangles()) { - const gfx::Rect intersection = aRect.Intersect(triangle.BoundingBox()); + TexturedEffect* texturedEffect = + aEffectChain.mPrimaryEffect->AsTexturedEffect(); - // Cull invisible triangles. - if (intersection.IsEmpty()) { - continue; + if (texturedEffect) { + texturedTriangles = + GenerateTexturedTriangles(aPolygon, aRect, texturedEffect->mTextureCoords); + } else { + for (const gfx::Triangle& triangle : aPolygon.ToTriangles()) { + texturedTriangles.AppendElement(gfx::TexturedTriangle(triangle)); } + } - MOZ_ASSERT(aRect.width > 0.0f && aRect.height > 0.0f); - MOZ_ASSERT(intersection.width > 0.0f && intersection.height > 0.0f); - - gfx::TexturedTriangle texturedTriangle(Move(triangle)); - texturedTriangle.width = aRect.width; - texturedTriangle.height = aRect.height; - - // Since the texture was created for non-split geometry, we need to - // update the texture coordinates to account for the split. - TexturedEffect* texturedEffect = - aEffectChain.mPrimaryEffect->AsTexturedEffect(); - - if (texturedEffect) { - UpdateTextureCoordinates(texturedTriangle, aRect, intersection, - texturedEffect->mTextureCoords); - } - - texturedTriangles.AppendElement(Move(texturedTriangle)); + if (texturedTriangles.IsEmpty()) { + // Nothing to render. + return; } DrawTriangles(texturedTriangles, aRect, aClipRect, aEffectChain, From 30bdba0118cc572f824723a03cca6697ebd5b3d3 Mon Sep 17 00:00:00 2001 From: Miko Mynttinen Date: Wed, 8 Feb 2017 20:55:17 +0100 Subject: [PATCH 024/130] Bug 1323791 - Part 2: Add and enable pref flag for DX layer geometry r=mattwoodrow MozReview-Commit-ID: 7H7WT8sD0MQ --HG-- extra : rebase_source : 6022be5b6221c0df48f7390a5b471b05b2a36f52 --- gfx/thebes/gfxPrefs.h | 2 ++ modules/libpref/init/all.js | 3 +++ 2 files changed, 5 insertions(+) diff --git a/gfx/thebes/gfxPrefs.h b/gfx/thebes/gfxPrefs.h index bf66516e6f09..a55ddbbfcc78 100644 --- a/gfx/thebes/gfxPrefs.h +++ b/gfx/thebes/gfxPrefs.h @@ -540,8 +540,10 @@ private: DECL_GFX_PREF(Once, "layers.uniformity-info", UniformityInfo, bool, false); DECL_GFX_PREF(Once, "layers.use-image-offscreen-surfaces", UseImageOffscreenSurfaces, bool, true); DECL_GFX_PREF(Live, "layers.draw-mask-debug", DrawMaskLayer, bool, false); + DECL_GFX_PREF(Live, "layers.geometry.opengl.enabled", OGLLayerGeometry, bool, false); DECL_GFX_PREF(Live, "layers.geometry.basic.enabled", BasicLayerGeometry, bool, false); + DECL_GFX_PREF(Live, "layers.geometry.d3d11.enabled", D3D11LayerGeometry, bool, false); DECL_GFX_PREF(Live, "layout.animation.prerender.partial", PartiallyPrerenderAnimatedContent, bool, false); DECL_GFX_PREF(Live, "layout.animation.prerender.viewport-ratio-limit-x", AnimationPrerenderViewportRatioLimitX, float, 1.125f); diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 8fbc91891ccf..12bd78e27e03 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -623,6 +623,9 @@ pref("layers.geometry.opengl.enabled", true); // Whether to enable arbitrary layer geometry for Basic compositor pref("layers.geometry.basic.enabled", true); +// Whether to enable arbitrary layer geometry for DirectX compositor +pref("layers.geometry.d3d11.enabled", true); + // APZ preferences. For documentation/details on what these prefs do, check // gfx/layers/apz/src/AsyncPanZoomController.cpp. pref("apz.allow_checkerboarding", true); From a64e73a6033ab72e513df7c9d1394027f80cd2fb Mon Sep 17 00:00:00 2001 From: Miko Mynttinen Date: Thu, 9 Feb 2017 21:41:16 +0100 Subject: [PATCH 025/130] Bug 1323791 - Part 3: Add dynamic vertex shaders r=bas MozReview-Commit-ID: H92wpa7QKMY --HG-- extra : rebase_source : 722e74ed0c1778db958f76f193231a23a727e915 --- gfx/layers/d3d11/CompositorD3D11.hlsl | 61 +++++++++++++++++++++++++++ gfx/layers/d3d11/genshaders.sh | 4 ++ 2 files changed, 65 insertions(+) diff --git a/gfx/layers/d3d11/CompositorD3D11.hlsl b/gfx/layers/d3d11/CompositorD3D11.hlsl index 21175704b721..8595df5e84ff 100644 --- a/gfx/layers/d3d11/CompositorD3D11.hlsl +++ b/gfx/layers/d3d11/CompositorD3D11.hlsl @@ -43,6 +43,11 @@ struct VS_INPUT { float2 vPosition : POSITION; }; +struct VS_TEX_INPUT { + float2 vPosition : POSITION; + float2 vTexCoords : TEXCOORD0; +}; + struct VS_OUTPUT { float4 vPosition : SV_Position; float2 vTexCoords : TEXCOORD0; @@ -165,6 +170,38 @@ VS_MASK_OUTPUT LayerQuadMaskVS(const VS_INPUT aVertex) return outp; } +VS_OUTPUT LayerDynamicVS(const VS_TEX_INPUT aVertex) +{ + VS_OUTPUT outp; + + float4 position = float4(aVertex.vPosition, 0, 1); + position = mul(mLayerTransform, position); + outp.vPosition = VertexPosition(position); + + outp.vTexCoords = aVertex.vTexCoords; + + return outp; +} + +VS_MASK_OUTPUT LayerDynamicMaskVS(const VS_TEX_INPUT aVertex) +{ + VS_MASK_OUTPUT outp; + + float4 position = float4(aVertex.vPosition, 0, 1); + position = mul(mLayerTransform, position); + outp.vPosition = VertexPosition(position); + + // calculate the position on the mask texture + outp.vMaskCoords.x = (position.x - vMaskQuad.x) / vMaskQuad.z; + outp.vMaskCoords.y = (position.y - vMaskQuad.y) / vMaskQuad.w; + outp.vMaskCoords.z = 1; + outp.vMaskCoords *= position.w; + + outp.vTexCoords = aVertex.vTexCoords; + + return outp; +} + float4 RGBAShaderMask(const VS_MASK_OUTPUT aVertex) : SV_Target { float2 maskCoords = aVertex.vMaskCoords.xy / aVertex.vMaskCoords.z; @@ -313,6 +350,30 @@ VS_BLEND_OUTPUT LayerQuadBlendMaskVS(const VS_INPUT aVertex) return o; } +VS_BLEND_OUTPUT LayerDynamicBlendVS(const VS_TEX_INPUT aVertex) +{ + VS_OUTPUT v = LayerDynamicVS(aVertex); + + VS_BLEND_OUTPUT o; + o.vPosition = v.vPosition; + o.vTexCoords = v.vTexCoords; + o.vMaskCoords = float3(0, 0, 0); + o.vBackdropCoords = BackdropPosition(v.vPosition); + return o; +} + +VS_BLEND_OUTPUT LayerDynamicBlendMaskVS(const VS_TEX_INPUT aVertex) +{ + VS_MASK_OUTPUT v = LayerDynamicMaskVS(aVertex); + + VS_BLEND_OUTPUT o; + o.vPosition = v.vPosition; + o.vTexCoords = v.vTexCoords; + o.vMaskCoords = v.vMaskCoords; + o.vBackdropCoords = BackdropPosition(v.vPosition); + return o; +} + // The layer type and mask type are specified as constants. We use these to // call the correct pixel shader to determine the source color for blending. // Unfortunately this also requires some boilerplate to convert VS_BLEND_OUTPUT diff --git a/gfx/layers/d3d11/genshaders.sh b/gfx/layers/d3d11/genshaders.sh index 0928e3f49d59..b50e001dbaac 100644 --- a/gfx/layers/d3d11/genshaders.sh +++ b/gfx/layers/d3d11/genshaders.sh @@ -30,12 +30,14 @@ DEST=CompositorD3D11Shaders.h rm -f $DEST echo "struct ShaderBytes { const void* mData; size_t mLength; };" >> $DEST; makeShaderVS LayerQuadVS +makeShaderVS LayerDynamicVS makeShaderPS SolidColorShader makeShaderPS RGBShader makeShaderPS RGBAShader makeShaderPS ComponentAlphaShader makeShaderPS YCbCrShader makeShaderVS LayerQuadMaskVS +makeShaderVS LayerDynamicMaskVS makeShaderPS SolidColorShaderMask makeShaderPS RGBShaderMask makeShaderPS RGBAShaderMask @@ -45,6 +47,8 @@ makeShaderPS ComponentAlphaShaderMask # Mix-blend shaders makeShaderVS LayerQuadBlendVS makeShaderVS LayerQuadBlendMaskVS +makeShaderVS LayerDynamicBlendVS +makeShaderVS LayerDynamicBlendMaskVS makeShaderPS BlendShader rm $tempfile From a52904151c823b55e2c462b7862976296cccae57 Mon Sep 17 00:00:00 2001 From: Miko Mynttinen Date: Thu, 9 Feb 2017 21:41:27 +0100 Subject: [PATCH 026/130] Bug 1323791 - Part 4: Add recompiled D3D11 shaders r=bas MozReview-Commit-ID: 3tnY1wwDmqM --HG-- extra : rebase_source : 26d2bb660c275ef98c799a11d23afb77b3c39476 --- gfx/layers/d3d11/CompositorD3D11Shaders.h | 20815 +++++++++++--------- 1 file changed, 11397 insertions(+), 9418 deletions(-) diff --git a/gfx/layers/d3d11/CompositorD3D11Shaders.h b/gfx/layers/d3d11/CompositorD3D11Shaders.h index e137d08c3519..e12d9197f9cc 100755 --- a/gfx/layers/d3d11/CompositorD3D11Shaders.h +++ b/gfx/layers/d3d11/CompositorD3D11Shaders.h @@ -1,9434 +1,11413 @@ struct ShaderBytes { const void* mData; size_t mLength; }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4x4 mLayerTransform; // Offset: 0 Size: 64 -// float4x4 mProjection; // Offset: 64 Size: 64 -// float4 vRenderTargetOffset; // Offset: 128 Size: 16 -// float4 vTextureCoords; // Offset: 144 Size: 16 -// float4 vLayerQuad; // Offset: 160 Size: 16 -// float4 vMaskQuad; // Offset: 176 Size: 16 [unused] -// float4x4 mBackdropTransform; // Offset: 192 Size: 64 [unused] -// float4 fLayerColor; // Offset: 256 Size: 16 [unused] -// float fLayerOpacity; // Offset: 272 Size: 4 [unused] -// uint4 iBlendConfig; // Offset: 288 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 304 Size: 44 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// POSITION 0 xy 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 -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) -// c3 cb0 3 8 ( FLT, FLT, FLT, FLT) -// -// -// Runtime generated constant mappings: -// -// Target Reg Constant Description -// ---------- -------------------------------------------------- -// c0 Vertex Shader position offset -// -// -// Level9 shader bytecode: -// - vs_2_x - dcl_texcoord v0 - mad oT0.xy, v0, c9.zwzw, c9 - mad r0.xy, v0, c10.zwzw, c10 - mul r1, r0.y, c2 - mad r0, c1, r0.x, r1 - add r0, r0, c3 - rcp r1.x, r0.w - mul r0.xyz, r0, r1.x - add r0, r0, -c8 - mul r0.xyz, r0.w, r0 - mul r1, r0.y, c5 - mad r1, c4, r0.x, r1 - mad r1, c6, r0.z, r1 - mad r0, c7, r0.w, r1 - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - -// approximately 15 instruction slots used -vs_4_0 -dcl_constantbuffer CB0[11], immediateIndexed -dcl_input v0.xy -dcl_output_siv o0.xyzw, position -dcl_output o1.xy -dcl_temps 2 -mad r0.xy, v0.xyxx, cb0[10].zwzz, cb0[10].xyxx -mul r1.xyzw, r0.yyyy, cb0[1].xyzw -mad r0.xyzw, cb0[0].xyzw, r0.xxxx, r1.xyzw -add r0.xyzw, r0.xyzw, cb0[3].xyzw -div r0.xyz, r0.xyzx, r0.wwww -add r0.xyzw, r0.xyzw, -cb0[8].xyzw -mul r0.xyz, r0.wwww, r0.xyzx -mul r1.xyzw, r0.yyyy, cb0[5].xyzw -mad r1.xyzw, cb0[4].xyzw, r0.xxxx, r1.xyzw -mad r1.xyzw, cb0[6].xyzw, r0.zzzz, r1.xyzw -mad o0.xyzw, cb0[7].xyzw, r0.wwww, r1.xyzw -mad o1.xy, v0.xyxx, cb0[9].zwzz, cb0[9].xyxx -ret -// Approximately 13 instruction slots used -#endif - -const BYTE LayerQuadVS[] = -{ - 68, 88, 66, 67, 250, 65, - 94, 205, 254, 155, 52, 90, - 43, 147, 203, 201, 141, 74, - 80, 143, 1, 0, 0, 0, - 68, 7, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 152, 1, 0, 0, 160, 3, - 0, 0, 28, 4, 0, 0, - 184, 6, 0, 0, 236, 6, - 0, 0, 65, 111, 110, 57, - 88, 1, 0, 0, 88, 1, - 0, 0, 0, 2, 254, 255, - 24, 1, 0, 0, 64, 0, - 0, 0, 2, 0, 36, 0, - 0, 0, 60, 0, 0, 0, - 60, 0, 0, 0, 36, 0, - 1, 0, 60, 0, 0, 0, - 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 8, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 254, 255, - 31, 0, 0, 2, 5, 0, - 0, 128, 0, 0, 15, 144, - 4, 0, 0, 4, 0, 0, - 3, 224, 0, 0, 228, 144, - 9, 0, 238, 160, 9, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 128, 0, 0, - 228, 144, 10, 0, 238, 160, - 10, 0, 228, 160, 5, 0, - 0, 3, 1, 0, 15, 128, - 0, 0, 85, 128, 2, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 15, 128, 1, 0, - 228, 160, 0, 0, 0, 128, - 1, 0, 228, 128, 2, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 128, 3, 0, - 228, 160, 6, 0, 0, 2, - 1, 0, 1, 128, 0, 0, - 255, 128, 5, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 228, 128, 1, 0, 0, 128, - 2, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 8, 0, 228, 161, 5, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 255, 128, 0, 0, - 228, 128, 5, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 85, 128, 5, 0, 228, 160, - 4, 0, 0, 4, 1, 0, - 15, 128, 4, 0, 228, 160, - 0, 0, 0, 128, 1, 0, - 228, 128, 4, 0, 0, 4, - 1, 0, 15, 128, 6, 0, - 228, 160, 0, 0, 170, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 15, 128, - 7, 0, 228, 160, 0, 0, - 255, 128, 1, 0, 228, 128, - 4, 0, 0, 4, 0, 0, - 3, 192, 0, 0, 255, 128, - 0, 0, 228, 160, 0, 0, - 228, 128, 1, 0, 0, 2, - 0, 0, 12, 192, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 0, 2, - 0, 0, 64, 0, 1, 0, - 128, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 11, 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, - 104, 0, 0, 2, 2, 0, - 0, 0, 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, - 10, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 56, 0, - 0, 8, 242, 0, 16, 0, - 1, 0, 0, 0, 86, 5, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 50, 0, 0, 10, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 0, 0, - 0, 8, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 14, 0, 0, 7, 114, 0, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 9, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 0, 0, 0, 0, 246, 15, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 242, 0, 16, 0, 1, 0, - 0, 0, 86, 5, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 1, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 6, 0, - 0, 0, 166, 10, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 50, 0, 0, 10, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 7, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 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, 9, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 116, 0, 0, 0, - 13, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 12, 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, 0, 0, - 0, 0, 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, - 148, 2, 0, 0, 1, 0, - 0, 0, 72, 0, 0, 0, - 1, 0, 0, 0, 28, 0, - 0, 0, 0, 4, 254, 255, - 0, 1, 0, 0, 108, 2, - 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, 36, 71, - 108, 111, 98, 97, 108, 115, - 0, 171, 171, 171, 60, 0, - 0, 0, 11, 0, 0, 0, - 96, 0, 0, 0, 96, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 104, 1, - 0, 0, 0, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 136, 1, - 0, 0, 64, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 148, 1, - 0, 0, 128, 0, 0, 0, - 16, 0, 0, 0, 2, 0, - 0, 0, 168, 1, 0, 0, - 0, 0, 0, 0, 184, 1, - 0, 0, 144, 0, 0, 0, - 16, 0, 0, 0, 2, 0, - 0, 0, 200, 1, 0, 0, - 0, 0, 0, 0, 216, 1, - 0, 0, 160, 0, 0, 0, - 16, 0, 0, 0, 2, 0, - 0, 0, 200, 1, 0, 0, - 0, 0, 0, 0, 227, 1, - 0, 0, 176, 0, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 200, 1, 0, 0, - 0, 0, 0, 0, 237, 1, - 0, 0, 192, 0, 0, 0, - 64, 0, 0, 0, 0, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 0, 2, - 0, 0, 0, 1, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 168, 1, 0, 0, - 0, 0, 0, 0, 12, 2, - 0, 0, 16, 1, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 28, 2, 0, 0, - 0, 0, 0, 0, 44, 2, - 0, 0, 32, 1, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 60, 2, 0, 0, - 0, 0, 0, 0, 76, 2, - 0, 0, 48, 1, 0, 0, - 44, 0, 0, 0, 0, 0, - 0, 0, 92, 2, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 84, 101, 120, 116, 117, - 114, 101, 67, 111, 111, 114, - 100, 115, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 118, 76, 97, 121, - 101, 114, 81, 117, 97, 100, - 0, 118, 77, 97, 115, 107, - 81, 117, 97, 100, 0, 109, - 66, 97, 99, 107, 100, 114, - 111, 112, 84, 114, 97, 110, - 115, 102, 111, 114, 109, 0, - 102, 76, 97, 121, 101, 114, - 67, 111, 108, 111, 114, 0, - 102, 76, 97, 121, 101, 114, - 79, 112, 97, 99, 105, 116, - 121, 0, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 105, 66, 108, 101, - 110, 100, 67, 111, 110, 102, - 105, 103, 0, 171, 171, 171, - 1, 0, 19, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 89, - 117, 118, 67, 111, 108, 111, - 114, 77, 97, 116, 114, 105, - 120, 0, 2, 0, 3, 0, - 3, 0, 3, 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, 49, - 48, 46, 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, 3, 3, - 0, 0, 80, 79, 83, 73, - 84, 73, 79, 78, 0, 171, - 171, 171, 79, 83, 71, 78, - 80, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 68, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 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 -}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4x4 mLayerTransform; // Offset: 0 Size: 64 +// float4x4 mProjection; // Offset: 64 Size: 64 +// float4 vRenderTargetOffset; // Offset: 128 Size: 16 +// float4 vTextureCoords; // Offset: 144 Size: 16 +// float4 vLayerQuad; // Offset: 160 Size: 16 +// float4 vMaskQuad; // Offset: 176 Size: 16 [unused] +// float4x4 mBackdropTransform; // Offset: 192 Size: 64 [unused] +// float4 fLayerColor; // Offset: 256 Size: 16 [unused] +// float fLayerOpacity; // Offset: 272 Size: 4 [unused] +// uint4 iBlendConfig; // Offset: 288 Size: 16 [unused] +// row_major float3x3 mYuvColorMatrix;// Offset: 304 Size: 44 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// $Globals cbuffer NA NA cb0 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// POSITION 0 xy 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 +// +// +// Constant buffer to DX9 shader constant mappings: +// +// Target Reg Buffer Start Reg # of Regs Data Conversion +// ---------- ------- --------- --------- ---------------------- +// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) +// c3 cb0 3 8 ( FLT, FLT, FLT, FLT) +// +// +// Runtime generated constant mappings: +// +// Target Reg Constant Description +// ---------- -------------------------------------------------- +// c0 Vertex Shader position offset +// +// +// Level9 shader bytecode: +// + vs_2_x + dcl_texcoord v0 + mad oT0.xy, v0, c9.zwzw, c9 + mad r0.xy, v0, c10.zwzw, c10 + mul r1, r0.y, c2 + mad r0, c1, r0.x, r1 + add r0, r0, c3 + rcp r1.x, r0.w + mul r0.xyz, r0, r1.x + add r0, r0, -c8 + mul r0.xyz, r0.w, r0 + mul r1, r0.y, c5 + mad r1, c4, r0.x, r1 + mad r1, c6, r0.z, r1 + mad r0, c7, r0.w, r1 + mad oPos.xy, r0.w, c0, r0 + mov oPos.zw, r0 + +// approximately 15 instruction slots used +vs_4_0 +dcl_constantbuffer CB0[11], immediateIndexed +dcl_input v0.xy +dcl_output_siv o0.xyzw, position +dcl_output o1.xy +dcl_temps 2 +mad r0.xy, v0.xyxx, cb0[10].zwzz, cb0[10].xyxx +mul r1.xyzw, r0.yyyy, cb0[1].xyzw +mad r0.xyzw, cb0[0].xyzw, r0.xxxx, r1.xyzw +add r0.xyzw, r0.xyzw, cb0[3].xyzw +div r0.xyz, r0.xyzx, r0.wwww +add r0.xyzw, r0.xyzw, -cb0[8].xyzw +mul r0.xyz, r0.wwww, r0.xyzx +mul r1.xyzw, r0.yyyy, cb0[5].xyzw +mad r1.xyzw, cb0[4].xyzw, r0.xxxx, r1.xyzw +mad r1.xyzw, cb0[6].xyzw, r0.zzzz, r1.xyzw +mad o0.xyzw, cb0[7].xyzw, r0.wwww, r1.xyzw +mad o1.xy, v0.xyxx, cb0[9].zwzz, cb0[9].xyxx +ret +// Approximately 13 instruction slots used +#endif + +const BYTE LayerQuadVS[] = +{ + 68, 88, 66, 67, 250, 65, + 94, 205, 254, 155, 52, 90, + 43, 147, 203, 201, 141, 74, + 80, 143, 1, 0, 0, 0, + 68, 7, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 152, 1, 0, 0, 160, 3, + 0, 0, 28, 4, 0, 0, + 184, 6, 0, 0, 236, 6, + 0, 0, 65, 111, 110, 57, + 88, 1, 0, 0, 88, 1, + 0, 0, 0, 2, 254, 255, + 24, 1, 0, 0, 64, 0, + 0, 0, 2, 0, 36, 0, + 0, 0, 60, 0, 0, 0, + 60, 0, 0, 0, 36, 0, + 1, 0, 60, 0, 0, 0, + 0, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 8, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 254, 255, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 4, 0, 0, 4, 0, 0, + 3, 224, 0, 0, 228, 144, + 9, 0, 238, 160, 9, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 3, 128, 0, 0, + 228, 144, 10, 0, 238, 160, + 10, 0, 228, 160, 5, 0, + 0, 3, 1, 0, 15, 128, + 0, 0, 85, 128, 2, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 15, 128, 1, 0, + 228, 160, 0, 0, 0, 128, + 1, 0, 228, 128, 2, 0, + 0, 3, 0, 0, 15, 128, + 0, 0, 228, 128, 3, 0, + 228, 160, 6, 0, 0, 2, + 1, 0, 1, 128, 0, 0, + 255, 128, 5, 0, 0, 3, + 0, 0, 7, 128, 0, 0, + 228, 128, 1, 0, 0, 128, + 2, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 128, + 8, 0, 228, 161, 5, 0, + 0, 3, 0, 0, 7, 128, + 0, 0, 255, 128, 0, 0, + 228, 128, 5, 0, 0, 3, + 1, 0, 15, 128, 0, 0, + 85, 128, 5, 0, 228, 160, + 4, 0, 0, 4, 1, 0, + 15, 128, 4, 0, 228, 160, + 0, 0, 0, 128, 1, 0, + 228, 128, 4, 0, 0, 4, + 1, 0, 15, 128, 6, 0, + 228, 160, 0, 0, 170, 128, + 1, 0, 228, 128, 4, 0, + 0, 4, 0, 0, 15, 128, + 7, 0, 228, 160, 0, 0, + 255, 128, 1, 0, 228, 128, + 4, 0, 0, 4, 0, 0, + 3, 192, 0, 0, 255, 128, + 0, 0, 228, 160, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 12, 192, 0, 0, + 228, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 0, 2, + 0, 0, 64, 0, 1, 0, + 128, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 11, 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, + 104, 0, 0, 2, 2, 0, + 0, 0, 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, + 10, 0, 0, 0, 70, 128, + 32, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 56, 0, + 0, 8, 242, 0, 16, 0, + 1, 0, 0, 0, 86, 5, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 50, 0, 0, 10, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 6, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 0, 0, + 0, 8, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 14, 0, 0, 7, 114, 0, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 0, 0, + 0, 9, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 0, 0, 0, 0, 246, 15, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 8, + 242, 0, 16, 0, 1, 0, + 0, 0, 86, 5, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 6, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 1, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 6, 0, + 0, 0, 166, 10, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 50, 0, 0, 10, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 7, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 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, 9, 0, 0, 0, + 70, 128, 32, 0, 0, 0, + 0, 0, 9, 0, 0, 0, + 62, 0, 0, 1, 83, 84, + 65, 84, 116, 0, 0, 0, + 13, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 12, 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, 0, 0, + 0, 0, 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, + 148, 2, 0, 0, 1, 0, + 0, 0, 72, 0, 0, 0, + 1, 0, 0, 0, 28, 0, + 0, 0, 0, 4, 254, 255, + 0, 1, 0, 0, 108, 2, + 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, 36, 71, + 108, 111, 98, 97, 108, 115, + 0, 171, 171, 171, 60, 0, + 0, 0, 11, 0, 0, 0, + 96, 0, 0, 0, 96, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 104, 1, + 0, 0, 0, 0, 0, 0, + 64, 0, 0, 0, 2, 0, + 0, 0, 120, 1, 0, 0, + 0, 0, 0, 0, 136, 1, + 0, 0, 64, 0, 0, 0, + 64, 0, 0, 0, 2, 0, + 0, 0, 120, 1, 0, 0, + 0, 0, 0, 0, 148, 1, + 0, 0, 128, 0, 0, 0, + 16, 0, 0, 0, 2, 0, + 0, 0, 168, 1, 0, 0, + 0, 0, 0, 0, 184, 1, + 0, 0, 144, 0, 0, 0, + 16, 0, 0, 0, 2, 0, + 0, 0, 200, 1, 0, 0, + 0, 0, 0, 0, 216, 1, + 0, 0, 160, 0, 0, 0, + 16, 0, 0, 0, 2, 0, + 0, 0, 200, 1, 0, 0, + 0, 0, 0, 0, 227, 1, + 0, 0, 176, 0, 0, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 200, 1, 0, 0, + 0, 0, 0, 0, 237, 1, + 0, 0, 192, 0, 0, 0, + 64, 0, 0, 0, 0, 0, + 0, 0, 120, 1, 0, 0, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 1, 0, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 168, 1, 0, 0, + 0, 0, 0, 0, 12, 2, + 0, 0, 16, 1, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 28, 2, 0, 0, + 0, 0, 0, 0, 44, 2, + 0, 0, 32, 1, 0, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 60, 2, 0, 0, + 0, 0, 0, 0, 76, 2, + 0, 0, 48, 1, 0, 0, + 44, 0, 0, 0, 0, 0, + 0, 0, 92, 2, 0, 0, + 0, 0, 0, 0, 109, 76, + 97, 121, 101, 114, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 0, 3, 0, 3, 0, + 4, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 80, 114, 111, 106, 101, + 99, 116, 105, 111, 110, 0, + 118, 82, 101, 110, 100, 101, + 114, 84, 97, 114, 103, 101, + 116, 79, 102, 102, 115, 101, + 116, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 118, 84, 101, 120, 116, 117, + 114, 101, 67, 111, 111, 114, + 100, 115, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 118, 76, 97, 121, + 101, 114, 81, 117, 97, 100, + 0, 118, 77, 97, 115, 107, + 81, 117, 97, 100, 0, 109, + 66, 97, 99, 107, 100, 114, + 111, 112, 84, 114, 97, 110, + 115, 102, 111, 114, 109, 0, + 102, 76, 97, 121, 101, 114, + 67, 111, 108, 111, 114, 0, + 102, 76, 97, 121, 101, 114, + 79, 112, 97, 99, 105, 116, + 121, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 105, 66, 108, 101, + 110, 100, 67, 111, 110, 102, + 105, 103, 0, 171, 171, 171, + 1, 0, 19, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 89, + 117, 118, 67, 111, 108, 111, + 114, 77, 97, 116, 114, 105, + 120, 0, 2, 0, 3, 0, + 3, 0, 3, 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, 49, + 48, 46, 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, 3, 3, + 0, 0, 80, 79, 83, 73, + 84, 73, 79, 78, 0, 171, + 171, 171, 79, 83, 71, 78, + 80, 0, 0, 0, 2, 0, + 0, 0, 8, 0, 0, 0, + 56, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 68, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 3, 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 +}; ShaderBytes sLayerQuadVS = { LayerQuadVS, sizeof(LayerQuadVS) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 -// float fLayerOpacity; // Offset: 16 Size: 4 [unused] -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] -// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float -// -// -// 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 0 1 ( FLT, FLT, FLT, FLT) -// -// -// Level9 shader bytecode: -// - ps_2_x - mov oC0, c0 - -// approximately 1 instruction slot used -ps_4_0 -dcl_constantbuffer CB0[1], immediateIndexed -dcl_output o0.xyzw -mov o0.xyzw, cb0[0].xyzw -ret -// Approximately 2 instruction slots used -#endif - -const BYTE SolidColorShader[] = -{ - 68, 88, 66, 67, 181, 3, - 20, 0, 202, 78, 164, 59, - 210, 171, 118, 253, 118, 104, - 133, 184, 1, 0, 0, 0, - 112, 4, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 132, 0, 0, 0, 204, 0, - 0, 0, 72, 1, 0, 0, - 228, 3, 0, 0, 60, 4, - 0, 0, 65, 111, 110, 57, - 68, 0, 0, 0, 68, 0, - 0, 0, 0, 2, 255, 255, - 20, 0, 0, 0, 48, 0, - 0, 0, 1, 0, 36, 0, - 0, 0, 48, 0, 0, 0, - 48, 0, 0, 0, 36, 0, - 0, 0, 48, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 2, - 255, 255, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 160, 255, 255, 0, 0, - 83, 72, 68, 82, 64, 0, - 0, 0, 64, 0, 0, 0, - 16, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 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, 1, 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, 148, 2, 0, 0, - 1, 0, 0, 0, 72, 0, - 0, 0, 1, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 255, 255, 0, 1, 0, 0, - 108, 2, 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, - 36, 71, 108, 111, 98, 97, - 108, 115, 0, 171, 171, 171, - 60, 0, 0, 0, 11, 0, - 0, 0, 96, 0, 0, 0, - 96, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 104, 1, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 116, 1, - 0, 0, 0, 0, 0, 0, - 132, 1, 0, 0, 16, 0, - 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 148, 1, - 0, 0, 0, 0, 0, 0, - 164, 1, 0, 0, 32, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 180, 1, - 0, 0, 0, 0, 0, 0, - 196, 1, 0, 0, 48, 0, - 0, 0, 44, 0, 0, 0, - 0, 0, 0, 0, 212, 1, - 0, 0, 0, 0, 0, 0, - 228, 1, 0, 0, 96, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 244, 1, - 0, 0, 0, 0, 0, 0, - 4, 2, 0, 0, 160, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 244, 1, - 0, 0, 0, 0, 0, 0, - 16, 2, 0, 0, 224, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 116, 1, - 0, 0, 0, 0, 0, 0, - 36, 2, 0, 0, 240, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 52, 2, - 0, 0, 0, 0, 0, 0, - 68, 2, 0, 0, 0, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 52, 2, - 0, 0, 0, 0, 0, 0, - 79, 2, 0, 0, 16, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 52, 2, - 0, 0, 0, 0, 0, 0, - 89, 2, 0, 0, 32, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 244, 1, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 67, 111, 108, 111, 114, 0, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 76, - 97, 121, 101, 114, 79, 112, - 97, 99, 105, 116, 121, 0, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 118, 77, 97, - 115, 107, 81, 117, 97, 100, - 0, 109, 66, 97, 99, 107, - 100, 114, 111, 112, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 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, 49, 48, 46, 49, 0, - 73, 83, 71, 78, 80, 0, - 0, 0, 2, 0, 0, 0, - 8, 0, 0, 0, 56, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 68, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 3, 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 -}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4x4 mLayerTransform; // Offset: 0 Size: 64 +// float4x4 mProjection; // Offset: 64 Size: 64 +// float4 vRenderTargetOffset; // Offset: 128 Size: 16 +// float4 vTextureCoords; // Offset: 144 Size: 16 [unused] +// float4 vLayerQuad; // Offset: 160 Size: 16 [unused] +// float4 vMaskQuad; // Offset: 176 Size: 16 [unused] +// float4x4 mBackdropTransform; // Offset: 192 Size: 64 [unused] +// float4 fLayerColor; // Offset: 256 Size: 16 [unused] +// float fLayerOpacity; // Offset: 272 Size: 4 [unused] +// uint4 iBlendConfig; // Offset: 288 Size: 16 [unused] +// row_major float3x3 mYuvColorMatrix;// Offset: 304 Size: 44 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// $Globals cbuffer NA NA cb0 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// POSITION 0 xy 0 NONE float xy +// TEXCOORD 0 xy 1 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 +// +// +// Constant buffer to DX9 shader constant mappings: +// +// Target Reg Buffer Start Reg # of Regs Data Conversion +// ---------- ------- --------- --------- ---------------------- +// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) +// c3 cb0 3 6 ( FLT, FLT, FLT, FLT) +// +// +// Runtime generated constant mappings: +// +// Target Reg Constant Description +// ---------- -------------------------------------------------- +// c0 Vertex Shader position offset +// +// +// Level9 shader bytecode: +// + vs_2_x + dcl_texcoord v0 + dcl_texcoord1 v1 + mul r0, v0.y, c2 + mad r0, c1, v0.x, r0 + add r0, r0, c3 + rcp r1.x, r0.w + mul r0.xyz, r0, r1.x + add r0, r0, -c8 + mul r0.xyz, r0.w, r0 + mul r1, r0.y, c5 + mad r1, c4, r0.x, r1 + mad r1, c6, r0.z, r1 + mad r0, c7, r0.w, r1 + mad oPos.xy, r0.w, c0, r0 + mov oPos.zw, r0 + mov oT0.xy, v1 + +// approximately 14 instruction slots used +vs_4_0 +dcl_constantbuffer CB0[9], immediateIndexed +dcl_input v0.xy +dcl_input v1.xy +dcl_output_siv o0.xyzw, position +dcl_output o1.xy +dcl_temps 2 +mul r0.xyzw, v0.yyyy, cb0[1].xyzw +mad r0.xyzw, cb0[0].xyzw, v0.xxxx, r0.xyzw +add r0.xyzw, r0.xyzw, cb0[3].xyzw +div r0.xyz, r0.xyzx, r0.wwww +add r0.xyzw, r0.xyzw, -cb0[8].xyzw +mul r0.xyz, r0.wwww, r0.xyzx +mul r1.xyzw, r0.yyyy, cb0[5].xyzw +mad r1.xyzw, cb0[4].xyzw, r0.xxxx, r1.xyzw +mad r1.xyzw, cb0[6].xyzw, r0.zzzz, r1.xyzw +mad o0.xyzw, cb0[7].xyzw, r0.wwww, r1.xyzw +mov o1.xy, v1.xyxx +ret +// Approximately 12 instruction slots used +#endif + +const BYTE LayerDynamicVS[] = +{ + 68, 88, 66, 67, 139, 89, + 202, 51, 215, 17, 235, 234, + 105, 39, 39, 230, 117, 232, + 111, 184, 1, 0, 0, 0, + 28, 7, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 136, 1, 0, 0, 88, 3, + 0, 0, 212, 3, 0, 0, + 112, 6, 0, 0, 196, 6, + 0, 0, 65, 111, 110, 57, + 72, 1, 0, 0, 72, 1, + 0, 0, 0, 2, 254, 255, + 8, 1, 0, 0, 64, 0, + 0, 0, 2, 0, 36, 0, + 0, 0, 60, 0, 0, 0, + 60, 0, 0, 0, 36, 0, + 1, 0, 60, 0, 0, 0, + 0, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 254, 255, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 5, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 85, 144, + 2, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 15, 128, + 1, 0, 228, 160, 0, 0, + 0, 144, 0, 0, 228, 128, + 2, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 128, + 3, 0, 228, 160, 6, 0, + 0, 2, 1, 0, 1, 128, + 0, 0, 255, 128, 5, 0, + 0, 3, 0, 0, 7, 128, + 0, 0, 228, 128, 1, 0, + 0, 128, 2, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 128, 8, 0, 228, 161, + 5, 0, 0, 3, 0, 0, + 7, 128, 0, 0, 255, 128, + 0, 0, 228, 128, 5, 0, + 0, 3, 1, 0, 15, 128, + 0, 0, 85, 128, 5, 0, + 228, 160, 4, 0, 0, 4, + 1, 0, 15, 128, 4, 0, + 228, 160, 0, 0, 0, 128, + 1, 0, 228, 128, 4, 0, + 0, 4, 1, 0, 15, 128, + 6, 0, 228, 160, 0, 0, + 170, 128, 1, 0, 228, 128, + 4, 0, 0, 4, 0, 0, + 15, 128, 7, 0, 228, 160, + 0, 0, 255, 128, 1, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 3, 192, 0, 0, + 255, 128, 0, 0, 228, 160, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 12, 192, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 3, 224, + 1, 0, 228, 144, 255, 255, + 0, 0, 83, 72, 68, 82, + 200, 1, 0, 0, 64, 0, + 1, 0, 114, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 95, 0, + 0, 3, 50, 16, 16, 0, + 0, 0, 0, 0, 95, 0, + 0, 3, 50, 16, 16, 0, + 1, 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, 104, 0, 0, 2, + 2, 0, 0, 0, 56, 0, + 0, 8, 242, 0, 16, 0, + 0, 0, 0, 0, 86, 21, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 50, 0, 0, 10, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 6, 16, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 0, 0, + 0, 8, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 14, 0, 0, 7, 114, 0, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 0, 0, + 0, 9, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 0, 0, 0, 0, 246, 15, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 8, + 242, 0, 16, 0, 1, 0, + 0, 0, 86, 5, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 6, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 1, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 6, 0, + 0, 0, 166, 10, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 50, 0, 0, 10, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 7, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 54, 0, + 0, 5, 50, 32, 16, 0, + 1, 0, 0, 0, 70, 16, + 16, 0, 1, 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, 10, 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, + 148, 2, 0, 0, 1, 0, + 0, 0, 72, 0, 0, 0, + 1, 0, 0, 0, 28, 0, + 0, 0, 0, 4, 254, 255, + 0, 1, 0, 0, 108, 2, + 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, 36, 71, + 108, 111, 98, 97, 108, 115, + 0, 171, 171, 171, 60, 0, + 0, 0, 11, 0, 0, 0, + 96, 0, 0, 0, 96, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 104, 1, + 0, 0, 0, 0, 0, 0, + 64, 0, 0, 0, 2, 0, + 0, 0, 120, 1, 0, 0, + 0, 0, 0, 0, 136, 1, + 0, 0, 64, 0, 0, 0, + 64, 0, 0, 0, 2, 0, + 0, 0, 120, 1, 0, 0, + 0, 0, 0, 0, 148, 1, + 0, 0, 128, 0, 0, 0, + 16, 0, 0, 0, 2, 0, + 0, 0, 168, 1, 0, 0, + 0, 0, 0, 0, 184, 1, + 0, 0, 144, 0, 0, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 200, 1, 0, 0, + 0, 0, 0, 0, 216, 1, + 0, 0, 160, 0, 0, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 200, 1, 0, 0, + 0, 0, 0, 0, 227, 1, + 0, 0, 176, 0, 0, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 200, 1, 0, 0, + 0, 0, 0, 0, 237, 1, + 0, 0, 192, 0, 0, 0, + 64, 0, 0, 0, 0, 0, + 0, 0, 120, 1, 0, 0, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 1, 0, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 168, 1, 0, 0, + 0, 0, 0, 0, 12, 2, + 0, 0, 16, 1, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 28, 2, 0, 0, + 0, 0, 0, 0, 44, 2, + 0, 0, 32, 1, 0, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 60, 2, 0, 0, + 0, 0, 0, 0, 76, 2, + 0, 0, 48, 1, 0, 0, + 44, 0, 0, 0, 0, 0, + 0, 0, 92, 2, 0, 0, + 0, 0, 0, 0, 109, 76, + 97, 121, 101, 114, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 0, 3, 0, 3, 0, + 4, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 80, 114, 111, 106, 101, + 99, 116, 105, 111, 110, 0, + 118, 82, 101, 110, 100, 101, + 114, 84, 97, 114, 103, 101, + 116, 79, 102, 102, 115, 101, + 116, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 118, 84, 101, 120, 116, 117, + 114, 101, 67, 111, 111, 114, + 100, 115, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 118, 76, 97, 121, + 101, 114, 81, 117, 97, 100, + 0, 118, 77, 97, 115, 107, + 81, 117, 97, 100, 0, 109, + 66, 97, 99, 107, 100, 114, + 111, 112, 84, 114, 97, 110, + 115, 102, 111, 114, 109, 0, + 102, 76, 97, 121, 101, 114, + 67, 111, 108, 111, 114, 0, + 102, 76, 97, 121, 101, 114, + 79, 112, 97, 99, 105, 116, + 121, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 105, 66, 108, 101, + 110, 100, 67, 111, 110, 102, + 105, 103, 0, 171, 171, 171, + 1, 0, 19, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 89, + 117, 118, 67, 111, 108, 111, + 114, 77, 97, 116, 114, 105, + 120, 0, 2, 0, 3, 0, + 3, 0, 3, 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, 49, + 48, 46, 49, 0, 73, 83, + 71, 78, 76, 0, 0, 0, + 2, 0, 0, 0, 8, 0, + 0, 0, 56, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 3, 3, + 0, 0, 65, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 3, 3, + 0, 0, 80, 79, 83, 73, + 84, 73, 79, 78, 0, 84, + 69, 88, 67, 79, 79, 82, + 68, 0, 171, 171, 79, 83, + 71, 78, 80, 0, 0, 0, + 2, 0, 0, 0, 8, 0, + 0, 0, 56, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 68, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 3, 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 +}; +ShaderBytes sLayerDynamicVS = { LayerDynamicVS, sizeof(LayerDynamicVS) }; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4 fLayerColor; // Offset: 0 Size: 16 +// float fLayerOpacity; // Offset: 16 Size: 4 [unused] +// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] +// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] +// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] +// float4x4 mProjection; // Offset: 160 Size: 64 [unused] +// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] +// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] +// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] +// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] +// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// $Globals cbuffer NA NA cb0 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float +// TEXCOORD 0 xy 1 NONE float +// +// +// 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 0 1 ( FLT, FLT, FLT, FLT) +// +// +// Level9 shader bytecode: +// + ps_2_x + mov oC0, c0 + +// approximately 1 instruction slot used +ps_4_0 +dcl_constantbuffer CB0[1], immediateIndexed +dcl_output o0.xyzw +mov o0.xyzw, cb0[0].xyzw +ret +// Approximately 2 instruction slots used +#endif + +const BYTE SolidColorShader[] = +{ + 68, 88, 66, 67, 181, 3, + 20, 0, 202, 78, 164, 59, + 210, 171, 118, 253, 118, 104, + 133, 184, 1, 0, 0, 0, + 112, 4, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 132, 0, 0, 0, 204, 0, + 0, 0, 72, 1, 0, 0, + 228, 3, 0, 0, 60, 4, + 0, 0, 65, 111, 110, 57, + 68, 0, 0, 0, 68, 0, + 0, 0, 0, 2, 255, 255, + 20, 0, 0, 0, 48, 0, + 0, 0, 1, 0, 36, 0, + 0, 0, 48, 0, 0, 0, + 48, 0, 0, 0, 36, 0, + 0, 0, 48, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 2, + 255, 255, 1, 0, 0, 2, + 0, 8, 15, 128, 0, 0, + 228, 160, 255, 255, 0, 0, + 83, 72, 68, 82, 64, 0, + 0, 0, 64, 0, 0, 0, + 16, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 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, 1, 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, 148, 2, 0, 0, + 1, 0, 0, 0, 72, 0, + 0, 0, 1, 0, 0, 0, + 28, 0, 0, 0, 0, 4, + 255, 255, 0, 1, 0, 0, + 108, 2, 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, + 36, 71, 108, 111, 98, 97, + 108, 115, 0, 171, 171, 171, + 60, 0, 0, 0, 11, 0, + 0, 0, 96, 0, 0, 0, + 96, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 104, 1, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 116, 1, + 0, 0, 0, 0, 0, 0, + 132, 1, 0, 0, 16, 0, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 148, 1, + 0, 0, 0, 0, 0, 0, + 164, 1, 0, 0, 32, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 180, 1, + 0, 0, 0, 0, 0, 0, + 196, 1, 0, 0, 48, 0, + 0, 0, 44, 0, 0, 0, + 0, 0, 0, 0, 212, 1, + 0, 0, 0, 0, 0, 0, + 228, 1, 0, 0, 96, 0, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 244, 1, + 0, 0, 0, 0, 0, 0, + 4, 2, 0, 0, 160, 0, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 244, 1, + 0, 0, 0, 0, 0, 0, + 16, 2, 0, 0, 224, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 116, 1, + 0, 0, 0, 0, 0, 0, + 36, 2, 0, 0, 240, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 52, 2, + 0, 0, 0, 0, 0, 0, + 68, 2, 0, 0, 0, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 52, 2, + 0, 0, 0, 0, 0, 0, + 79, 2, 0, 0, 16, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 52, 2, + 0, 0, 0, 0, 0, 0, + 89, 2, 0, 0, 32, 1, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 244, 1, + 0, 0, 0, 0, 0, 0, + 102, 76, 97, 121, 101, 114, + 67, 111, 108, 111, 114, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 102, 76, + 97, 121, 101, 114, 79, 112, + 97, 99, 105, 116, 121, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 105, 66, 108, 101, 110, 100, + 67, 111, 110, 102, 105, 103, + 0, 171, 171, 171, 1, 0, + 19, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 89, 117, 118, + 67, 111, 108, 111, 114, 77, + 97, 116, 114, 105, 120, 0, + 2, 0, 3, 0, 3, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 76, + 97, 121, 101, 114, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 0, 3, 0, 3, 0, + 4, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 80, 114, 111, 106, 101, + 99, 116, 105, 111, 110, 0, + 118, 82, 101, 110, 100, 101, + 114, 84, 97, 114, 103, 101, + 116, 79, 102, 102, 115, 101, + 116, 0, 118, 84, 101, 120, + 116, 117, 114, 101, 67, 111, + 111, 114, 100, 115, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 76, + 97, 121, 101, 114, 81, 117, + 97, 100, 0, 118, 77, 97, + 115, 107, 81, 117, 97, 100, + 0, 109, 66, 97, 99, 107, + 100, 114, 111, 112, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 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, 49, 48, 46, 49, 0, + 73, 83, 71, 78, 80, 0, + 0, 0, 2, 0, 0, 0, + 8, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 68, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 3, 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 +}; ShaderBytes sSolidColorShader = { SolidColorShader, sizeof(SolidColorShader) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 [unused] -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] -// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tRGB texture float4 2d t0 1 -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float xy -// -// -// 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 1 1 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t0 -// -// -// Level9 shader bytecode: -// - ps_2_x - dcl t0.xy - dcl_2d s0 - texld r0, t0, s0 - mul r0.xyz, r0, c0.x - mov r0.w, c0.x - mov oC0, r0 - -// approximately 4 instruction slots used (1 texture, 3 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[2], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t0 -dcl_input_ps linear v1.xy -dcl_output o0.xyzw -dcl_temps 1 -sample r0.xyzw, v1.xyxx, t0.xyzw, s0 -mul o0.xyz, r0.xyzx, cb0[1].xxxx -mov o0.w, cb0[1].x -ret -// Approximately 4 instruction slots used -#endif - -const BYTE RGBShader[] = -{ - 68, 88, 66, 67, 181, 57, - 113, 191, 104, 206, 206, 65, - 235, 158, 87, 241, 179, 224, - 69, 235, 1, 0, 0, 0, - 120, 5, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 204, 0, 0, 0, 136, 1, - 0, 0, 4, 2, 0, 0, - 236, 4, 0, 0, 68, 5, - 0, 0, 65, 111, 110, 57, - 140, 0, 0, 0, 140, 0, - 0, 0, 0, 2, 255, 255, - 88, 0, 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, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 255, 255, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 3, 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, 5, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 228, 128, 0, 0, - 0, 160, 1, 0, 0, 2, - 0, 0, 8, 128, 0, 0, - 0, 160, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 180, 0, - 0, 0, 64, 0, 0, 0, - 45, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 2, 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, 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, 0, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 114, 32, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 6, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 54, 0, - 0, 6, 130, 32, 16, 0, - 0, 0, 0, 0, 10, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 116, 0, 0, 0, 4, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 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, - 1, 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, 224, 2, - 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, 184, 2, 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, 1, 0, - 0, 0, 133, 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, - 13, 0, 0, 0, 138, 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, 116, 82, 71, - 66, 0, 36, 71, 108, 111, - 98, 97, 108, 115, 0, 171, - 138, 0, 0, 0, 11, 0, - 0, 0, 172, 0, 0, 0, - 96, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 180, 1, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 192, 1, - 0, 0, 0, 0, 0, 0, - 208, 1, 0, 0, 16, 0, - 0, 0, 4, 0, 0, 0, - 2, 0, 0, 0, 224, 1, - 0, 0, 0, 0, 0, 0, - 240, 1, 0, 0, 32, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 16, 2, 0, 0, 48, 0, - 0, 0, 44, 0, 0, 0, - 0, 0, 0, 0, 32, 2, - 0, 0, 0, 0, 0, 0, - 48, 2, 0, 0, 96, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 64, 2, - 0, 0, 0, 0, 0, 0, - 80, 2, 0, 0, 160, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 64, 2, - 0, 0, 0, 0, 0, 0, - 92, 2, 0, 0, 224, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 192, 1, - 0, 0, 0, 0, 0, 0, - 112, 2, 0, 0, 240, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 128, 2, - 0, 0, 0, 0, 0, 0, - 144, 2, 0, 0, 0, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 128, 2, - 0, 0, 0, 0, 0, 0, - 155, 2, 0, 0, 16, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 128, 2, - 0, 0, 0, 0, 0, 0, - 165, 2, 0, 0, 32, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 64, 2, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 67, 111, 108, 111, 114, 0, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 76, - 97, 121, 101, 114, 79, 112, - 97, 99, 105, 116, 121, 0, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 118, 77, 97, - 115, 107, 81, 117, 97, 100, - 0, 109, 66, 97, 99, 107, - 100, 114, 111, 112, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 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, 49, 48, 46, 49, 0, - 73, 83, 71, 78, 80, 0, - 0, 0, 2, 0, 0, 0, - 8, 0, 0, 0, 56, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 68, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 3, 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, 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 -}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4 fLayerColor; // Offset: 0 Size: 16 [unused] +// float fLayerOpacity; // Offset: 16 Size: 4 +// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] +// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] +// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] +// float4x4 mProjection; // Offset: 160 Size: 64 [unused] +// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] +// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] +// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] +// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] +// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// sSampler sampler NA NA s0 1 +// tRGB texture float4 2d t0 1 +// $Globals cbuffer NA NA cb0 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float +// TEXCOORD 0 xy 1 NONE float xy +// +// +// 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 1 1 ( FLT, FLT, FLT, FLT) +// +// +// Sampler/Resource to DX9 shader sampler mappings: +// +// Target Sampler Source Sampler Source Resource +// -------------- --------------- ---------------- +// s0 s0 t0 +// +// +// Level9 shader bytecode: +// + ps_2_x + dcl t0.xy + dcl_2d s0 + texld r0, t0, s0 + mul r0.xyz, r0, c0.x + mov r0.w, c0.x + mov oC0, r0 + +// approximately 4 instruction slots used (1 texture, 3 arithmetic) +ps_4_0 +dcl_constantbuffer CB0[2], immediateIndexed +dcl_sampler s0, mode_default +dcl_resource_texture2d (float,float,float,float) t0 +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 1 +sample r0.xyzw, v1.xyxx, t0.xyzw, s0 +mul o0.xyz, r0.xyzx, cb0[1].xxxx +mov o0.w, cb0[1].x +ret +// Approximately 4 instruction slots used +#endif + +const BYTE RGBShader[] = +{ + 68, 88, 66, 67, 181, 57, + 113, 191, 104, 206, 206, 65, + 235, 158, 87, 241, 179, 224, + 69, 235, 1, 0, 0, 0, + 120, 5, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 204, 0, 0, 0, 136, 1, + 0, 0, 4, 2, 0, 0, + 236, 4, 0, 0, 68, 5, + 0, 0, 65, 111, 110, 57, + 140, 0, 0, 0, 140, 0, + 0, 0, 0, 2, 255, 255, + 88, 0, 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, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 255, 255, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 3, 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, 5, 0, + 0, 3, 0, 0, 7, 128, + 0, 0, 228, 128, 0, 0, + 0, 160, 1, 0, 0, 2, + 0, 0, 8, 128, 0, 0, + 0, 160, 1, 0, 0, 2, + 0, 8, 15, 128, 0, 0, + 228, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 180, 0, + 0, 0, 64, 0, 0, 0, + 45, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 2, 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, 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, 0, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 8, + 114, 32, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 6, 128, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 130, 32, 16, 0, + 0, 0, 0, 0, 10, 128, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 62, 0, + 0, 1, 83, 84, 65, 84, + 116, 0, 0, 0, 4, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 2, 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, + 1, 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, 224, 2, + 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, 184, 2, 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, 1, 0, + 0, 0, 133, 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, + 13, 0, 0, 0, 138, 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, 116, 82, 71, + 66, 0, 36, 71, 108, 111, + 98, 97, 108, 115, 0, 171, + 138, 0, 0, 0, 11, 0, + 0, 0, 172, 0, 0, 0, + 96, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 180, 1, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 192, 1, + 0, 0, 0, 0, 0, 0, + 208, 1, 0, 0, 16, 0, + 0, 0, 4, 0, 0, 0, + 2, 0, 0, 0, 224, 1, + 0, 0, 0, 0, 0, 0, + 240, 1, 0, 0, 32, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 16, 2, 0, 0, 48, 0, + 0, 0, 44, 0, 0, 0, + 0, 0, 0, 0, 32, 2, + 0, 0, 0, 0, 0, 0, + 48, 2, 0, 0, 96, 0, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 64, 2, + 0, 0, 0, 0, 0, 0, + 80, 2, 0, 0, 160, 0, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 64, 2, + 0, 0, 0, 0, 0, 0, + 92, 2, 0, 0, 224, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 192, 1, + 0, 0, 0, 0, 0, 0, + 112, 2, 0, 0, 240, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 128, 2, + 0, 0, 0, 0, 0, 0, + 144, 2, 0, 0, 0, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 128, 2, + 0, 0, 0, 0, 0, 0, + 155, 2, 0, 0, 16, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 128, 2, + 0, 0, 0, 0, 0, 0, + 165, 2, 0, 0, 32, 1, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 64, 2, + 0, 0, 0, 0, 0, 0, + 102, 76, 97, 121, 101, 114, + 67, 111, 108, 111, 114, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 102, 76, + 97, 121, 101, 114, 79, 112, + 97, 99, 105, 116, 121, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 105, 66, 108, 101, 110, 100, + 67, 111, 110, 102, 105, 103, + 0, 171, 171, 171, 1, 0, + 19, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 89, 117, 118, + 67, 111, 108, 111, 114, 77, + 97, 116, 114, 105, 120, 0, + 2, 0, 3, 0, 3, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 76, + 97, 121, 101, 114, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 0, 3, 0, 3, 0, + 4, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 80, 114, 111, 106, 101, + 99, 116, 105, 111, 110, 0, + 118, 82, 101, 110, 100, 101, + 114, 84, 97, 114, 103, 101, + 116, 79, 102, 102, 115, 101, + 116, 0, 118, 84, 101, 120, + 116, 117, 114, 101, 67, 111, + 111, 114, 100, 115, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 76, + 97, 121, 101, 114, 81, 117, + 97, 100, 0, 118, 77, 97, + 115, 107, 81, 117, 97, 100, + 0, 109, 66, 97, 99, 107, + 100, 114, 111, 112, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 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, 49, 48, 46, 49, 0, + 73, 83, 71, 78, 80, 0, + 0, 0, 2, 0, 0, 0, + 8, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 68, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 3, 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, 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 +}; ShaderBytes sRGBShader = { RGBShader, sizeof(RGBShader) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 [unused] -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] -// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tRGB texture float4 2d t0 1 -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float xy -// -// -// 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 1 1 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t0 -// -// -// Level9 shader bytecode: -// - ps_2_x - dcl t0.xy - dcl_2d s0 - texld r0, t0, s0 - mul r0, r0, c0.x - mov oC0, r0 - -// approximately 3 instruction slots used (1 texture, 2 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[2], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t0 -dcl_input_ps linear v1.xy -dcl_output o0.xyzw -dcl_temps 1 -sample r0.xyzw, v1.xyxx, t0.xyzw, s0 -mul o0.xyzw, r0.xyzw, cb0[1].xxxx -ret -// Approximately 3 instruction slots used -#endif - -const BYTE RGBAShader[] = -{ - 68, 88, 66, 67, 0, 64, - 93, 222, 73, 216, 128, 20, - 42, 69, 82, 179, 209, 122, - 136, 190, 1, 0, 0, 0, - 84, 5, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 192, 0, 0, 0, 100, 1, - 0, 0, 224, 1, 0, 0, - 200, 4, 0, 0, 32, 5, - 0, 0, 65, 111, 110, 57, - 128, 0, 0, 0, 128, 0, - 0, 0, 0, 2, 255, 255, - 76, 0, 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, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 255, 255, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 3, 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, 5, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 128, 0, 0, - 0, 160, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 156, 0, - 0, 0, 64, 0, 0, 0, - 39, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 2, 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, 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, 0, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 6, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 116, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 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, - 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, 224, 2, - 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, 184, 2, 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, 1, 0, - 0, 0, 133, 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, - 13, 0, 0, 0, 138, 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, 116, 82, 71, - 66, 0, 36, 71, 108, 111, - 98, 97, 108, 115, 0, 171, - 138, 0, 0, 0, 11, 0, - 0, 0, 172, 0, 0, 0, - 96, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 180, 1, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 192, 1, - 0, 0, 0, 0, 0, 0, - 208, 1, 0, 0, 16, 0, - 0, 0, 4, 0, 0, 0, - 2, 0, 0, 0, 224, 1, - 0, 0, 0, 0, 0, 0, - 240, 1, 0, 0, 32, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 16, 2, 0, 0, 48, 0, - 0, 0, 44, 0, 0, 0, - 0, 0, 0, 0, 32, 2, - 0, 0, 0, 0, 0, 0, - 48, 2, 0, 0, 96, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 64, 2, - 0, 0, 0, 0, 0, 0, - 80, 2, 0, 0, 160, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 64, 2, - 0, 0, 0, 0, 0, 0, - 92, 2, 0, 0, 224, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 192, 1, - 0, 0, 0, 0, 0, 0, - 112, 2, 0, 0, 240, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 128, 2, - 0, 0, 0, 0, 0, 0, - 144, 2, 0, 0, 0, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 128, 2, - 0, 0, 0, 0, 0, 0, - 155, 2, 0, 0, 16, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 128, 2, - 0, 0, 0, 0, 0, 0, - 165, 2, 0, 0, 32, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 64, 2, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 67, 111, 108, 111, 114, 0, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 76, - 97, 121, 101, 114, 79, 112, - 97, 99, 105, 116, 121, 0, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 118, 77, 97, - 115, 107, 81, 117, 97, 100, - 0, 109, 66, 97, 99, 107, - 100, 114, 111, 112, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 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, 49, 48, 46, 49, 0, - 73, 83, 71, 78, 80, 0, - 0, 0, 2, 0, 0, 0, - 8, 0, 0, 0, 56, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 68, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 3, 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, 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 -}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4 fLayerColor; // Offset: 0 Size: 16 [unused] +// float fLayerOpacity; // Offset: 16 Size: 4 +// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] +// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] +// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] +// float4x4 mProjection; // Offset: 160 Size: 64 [unused] +// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] +// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] +// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] +// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] +// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// sSampler sampler NA NA s0 1 +// tRGB texture float4 2d t0 1 +// $Globals cbuffer NA NA cb0 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float +// TEXCOORD 0 xy 1 NONE float xy +// +// +// 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 1 1 ( FLT, FLT, FLT, FLT) +// +// +// Sampler/Resource to DX9 shader sampler mappings: +// +// Target Sampler Source Sampler Source Resource +// -------------- --------------- ---------------- +// s0 s0 t0 +// +// +// Level9 shader bytecode: +// + ps_2_x + dcl t0.xy + dcl_2d s0 + texld r0, t0, s0 + mul r0, r0, c0.x + mov oC0, r0 + +// approximately 3 instruction slots used (1 texture, 2 arithmetic) +ps_4_0 +dcl_constantbuffer CB0[2], immediateIndexed +dcl_sampler s0, mode_default +dcl_resource_texture2d (float,float,float,float) t0 +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 1 +sample r0.xyzw, v1.xyxx, t0.xyzw, s0 +mul o0.xyzw, r0.xyzw, cb0[1].xxxx +ret +// Approximately 3 instruction slots used +#endif + +const BYTE RGBAShader[] = +{ + 68, 88, 66, 67, 0, 64, + 93, 222, 73, 216, 128, 20, + 42, 69, 82, 179, 209, 122, + 136, 190, 1, 0, 0, 0, + 84, 5, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 192, 0, 0, 0, 100, 1, + 0, 0, 224, 1, 0, 0, + 200, 4, 0, 0, 32, 5, + 0, 0, 65, 111, 110, 57, + 128, 0, 0, 0, 128, 0, + 0, 0, 0, 2, 255, 255, + 76, 0, 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, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 255, 255, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 3, 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, 5, 0, + 0, 3, 0, 0, 15, 128, + 0, 0, 228, 128, 0, 0, + 0, 160, 1, 0, 0, 2, + 0, 8, 15, 128, 0, 0, + 228, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 156, 0, + 0, 0, 64, 0, 0, 0, + 39, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 2, 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, 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, 0, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 8, + 242, 32, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 6, 128, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 62, 0, + 0, 1, 83, 84, 65, 84, + 116, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 2, 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, + 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, 224, 2, + 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, 184, 2, 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, 1, 0, + 0, 0, 133, 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, + 13, 0, 0, 0, 138, 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, 116, 82, 71, + 66, 0, 36, 71, 108, 111, + 98, 97, 108, 115, 0, 171, + 138, 0, 0, 0, 11, 0, + 0, 0, 172, 0, 0, 0, + 96, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 180, 1, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 192, 1, + 0, 0, 0, 0, 0, 0, + 208, 1, 0, 0, 16, 0, + 0, 0, 4, 0, 0, 0, + 2, 0, 0, 0, 224, 1, + 0, 0, 0, 0, 0, 0, + 240, 1, 0, 0, 32, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 16, 2, 0, 0, 48, 0, + 0, 0, 44, 0, 0, 0, + 0, 0, 0, 0, 32, 2, + 0, 0, 0, 0, 0, 0, + 48, 2, 0, 0, 96, 0, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 64, 2, + 0, 0, 0, 0, 0, 0, + 80, 2, 0, 0, 160, 0, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 64, 2, + 0, 0, 0, 0, 0, 0, + 92, 2, 0, 0, 224, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 192, 1, + 0, 0, 0, 0, 0, 0, + 112, 2, 0, 0, 240, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 128, 2, + 0, 0, 0, 0, 0, 0, + 144, 2, 0, 0, 0, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 128, 2, + 0, 0, 0, 0, 0, 0, + 155, 2, 0, 0, 16, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 128, 2, + 0, 0, 0, 0, 0, 0, + 165, 2, 0, 0, 32, 1, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 64, 2, + 0, 0, 0, 0, 0, 0, + 102, 76, 97, 121, 101, 114, + 67, 111, 108, 111, 114, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 102, 76, + 97, 121, 101, 114, 79, 112, + 97, 99, 105, 116, 121, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 105, 66, 108, 101, 110, 100, + 67, 111, 110, 102, 105, 103, + 0, 171, 171, 171, 1, 0, + 19, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 89, 117, 118, + 67, 111, 108, 111, 114, 77, + 97, 116, 114, 105, 120, 0, + 2, 0, 3, 0, 3, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 76, + 97, 121, 101, 114, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 0, 3, 0, 3, 0, + 4, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 80, 114, 111, 106, 101, + 99, 116, 105, 111, 110, 0, + 118, 82, 101, 110, 100, 101, + 114, 84, 97, 114, 103, 101, + 116, 79, 102, 102, 115, 101, + 116, 0, 118, 84, 101, 120, + 116, 117, 114, 101, 67, 111, + 111, 114, 100, 115, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 76, + 97, 121, 101, 114, 81, 117, + 97, 100, 0, 118, 77, 97, + 115, 107, 81, 117, 97, 100, + 0, 109, 66, 97, 99, 107, + 100, 114, 111, 112, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 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, 49, 48, 46, 49, 0, + 73, 83, 71, 78, 80, 0, + 0, 0, 2, 0, 0, 0, + 8, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 68, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 3, 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, 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 +}; ShaderBytes sRGBAShader = { RGBAShader, sizeof(RGBAShader) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 [unused] -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] -// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tRGB texture float4 2d t0 1 -// tRGBWhite texture float4 2d t4 1 -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// SV_Target 1 xyzw 1 TARGET float xyzw -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c0 cb0 1 1 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t0 -// s1 s0 t4 -// -// -// Level9 shader bytecode: -// - ps_2_x - def c1, 1, 0, 0, 0 - dcl t0.xy - dcl_2d s0 - dcl_2d s1 - texld r0, t0, s0 - texld r1, t0, s1 - add r1, r0, -r1 - add r1, r1, c1.x - mov r0.w, r1.y - mul r1, r1, c0.x - mov oC1, r1 - mul r0, r0, c0.x - mov oC0, r0 - -// approximately 9 instruction slots used (2 texture, 7 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[2], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t0 -dcl_resource_texture2d (float,float,float,float) t4 -dcl_input_ps linear v1.xy -dcl_output o0.xyzw -dcl_output o1.xyzw -dcl_temps 2 -sample r0.xyzw, v1.xyxx, t4.xyzw, s0 -sample r1.xyzw, v1.xyxx, t0.xyzw, s0 -add r0.xyzw, -r0.xyzw, r1.xyzw -add r0.xyzw, r0.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000) -mov r1.w, r0.y -mul o1.xyzw, r0.xyzw, cb0[1].xxxx -mul o0.xyzw, r1.xyzw, cb0[1].xxxx -ret -// Approximately 8 instruction slots used -#endif - -const BYTE ComponentAlphaShader[] = -{ - 68, 88, 66, 67, 168, 127, - 203, 56, 125, 182, 211, 23, - 166, 215, 189, 218, 181, 48, - 227, 73, 1, 0, 0, 0, - 212, 6, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 64, 1, 0, 0, 160, 2, - 0, 0, 28, 3, 0, 0, - 48, 6, 0, 0, 136, 6, - 0, 0, 65, 111, 110, 57, - 0, 1, 0, 0, 0, 1, - 0, 0, 0, 2, 255, 255, - 200, 0, 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, 4, 0, 1, 0, - 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 1, 2, 255, 255, 81, 0, - 0, 5, 1, 0, 15, 160, - 0, 0, 128, 63, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 3, 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, 66, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 176, 0, 8, - 228, 160, 66, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 228, 176, 1, 8, 228, 160, - 2, 0, 0, 3, 1, 0, - 15, 128, 0, 0, 228, 128, - 1, 0, 228, 129, 2, 0, - 0, 3, 1, 0, 15, 128, - 1, 0, 228, 128, 1, 0, - 0, 160, 1, 0, 0, 2, - 0, 0, 8, 128, 1, 0, - 85, 128, 5, 0, 0, 3, - 1, 0, 15, 128, 1, 0, - 228, 128, 0, 0, 0, 160, - 1, 0, 0, 2, 1, 8, - 15, 128, 1, 0, 228, 128, - 5, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 0, 0, 0, 160, 1, 0, - 0, 2, 0, 8, 15, 128, - 0, 0, 228, 128, 255, 255, - 0, 0, 83, 72, 68, 82, - 88, 1, 0, 0, 64, 0, - 0, 0, 86, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 2, 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, 88, 24, 0, 4, - 0, 112, 16, 0, 4, 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, - 101, 0, 0, 3, 242, 32, - 16, 0, 1, 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, 4, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 1, 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, 0, 0, 0, 8, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 0, 0, - 0, 10, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 128, 63, 54, 0, 0, 5, - 130, 0, 16, 0, 1, 0, - 0, 0, 26, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 242, 32, 16, 0, - 1, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 6, 128, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 56, 0, 0, 8, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 6, 128, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 116, 0, - 0, 0, 8, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 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, 2, 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, 12, 3, 0, 0, - 1, 0, 0, 0, 192, 0, - 0, 0, 4, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 255, 255, 0, 1, 0, 0, - 228, 2, 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, 1, 0, 0, 0, - 165, 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, 13, 0, - 0, 0, 170, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 4, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 180, 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, 116, 82, 71, - 66, 0, 116, 82, 71, 66, - 87, 104, 105, 116, 101, 0, - 36, 71, 108, 111, 98, 97, - 108, 115, 0, 171, 171, 171, - 180, 0, 0, 0, 11, 0, - 0, 0, 216, 0, 0, 0, - 96, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 224, 1, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 236, 1, - 0, 0, 0, 0, 0, 0, - 252, 1, 0, 0, 16, 0, - 0, 0, 4, 0, 0, 0, - 2, 0, 0, 0, 12, 2, - 0, 0, 0, 0, 0, 0, - 28, 2, 0, 0, 32, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 44, 2, - 0, 0, 0, 0, 0, 0, - 60, 2, 0, 0, 48, 0, - 0, 0, 44, 0, 0, 0, - 0, 0, 0, 0, 76, 2, - 0, 0, 0, 0, 0, 0, - 92, 2, 0, 0, 96, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 108, 2, - 0, 0, 0, 0, 0, 0, - 124, 2, 0, 0, 160, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 108, 2, - 0, 0, 0, 0, 0, 0, - 136, 2, 0, 0, 224, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 236, 1, - 0, 0, 0, 0, 0, 0, - 156, 2, 0, 0, 240, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 172, 2, - 0, 0, 0, 0, 0, 0, - 188, 2, 0, 0, 0, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 172, 2, - 0, 0, 0, 0, 0, 0, - 199, 2, 0, 0, 16, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 172, 2, - 0, 0, 0, 0, 0, 0, - 209, 2, 0, 0, 32, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 108, 2, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 67, 111, 108, 111, 114, 0, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 76, - 97, 121, 101, 114, 79, 112, - 97, 99, 105, 116, 121, 0, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 118, 77, 97, - 115, 107, 81, 117, 97, 100, - 0, 109, 66, 97, 99, 107, - 100, 114, 111, 112, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 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, 49, 48, 46, 49, 0, - 73, 83, 71, 78, 80, 0, - 0, 0, 2, 0, 0, 0, - 8, 0, 0, 0, 56, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 68, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 3, 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, 79, 83, - 71, 78, 68, 0, 0, 0, - 2, 0, 0, 0, 8, 0, - 0, 0, 56, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 56, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 15, 0, - 0, 0, 83, 86, 95, 84, - 97, 114, 103, 101, 116, 0, - 171, 171 -}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4 fLayerColor; // Offset: 0 Size: 16 [unused] +// float fLayerOpacity; // Offset: 16 Size: 4 +// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] +// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] +// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] +// float4x4 mProjection; // Offset: 160 Size: 64 [unused] +// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] +// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] +// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] +// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] +// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// sSampler sampler NA NA s0 1 +// tRGB texture float4 2d t0 1 +// tRGBWhite texture float4 2d t4 1 +// $Globals cbuffer NA NA cb0 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float +// TEXCOORD 0 xy 1 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// +// +// Constant buffer to DX9 shader constant mappings: +// +// Target Reg Buffer Start Reg # of Regs Data Conversion +// ---------- ------- --------- --------- ---------------------- +// c0 cb0 1 1 ( FLT, FLT, FLT, FLT) +// +// +// Sampler/Resource to DX9 shader sampler mappings: +// +// Target Sampler Source Sampler Source Resource +// -------------- --------------- ---------------- +// s0 s0 t0 +// s1 s0 t4 +// +// +// Level9 shader bytecode: +// + ps_2_x + def c1, 1, 0, 0, 0 + dcl t0.xy + dcl_2d s0 + dcl_2d s1 + texld r0, t0, s0 + texld r1, t0, s1 + add r1, r0, -r1 + add r1, r1, c1.x + mov r0.w, r1.y + mul r1, r1, c0.x + mov oC1, r1 + mul r0, r0, c0.x + mov oC0, r0 + +// approximately 9 instruction slots used (2 texture, 7 arithmetic) +ps_4_0 +dcl_constantbuffer CB0[2], immediateIndexed +dcl_sampler s0, mode_default +dcl_resource_texture2d (float,float,float,float) t0 +dcl_resource_texture2d (float,float,float,float) t4 +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 2 +sample r0.xyzw, v1.xyxx, t4.xyzw, s0 +sample r1.xyzw, v1.xyxx, t0.xyzw, s0 +add r0.xyzw, -r0.xyzw, r1.xyzw +add r0.xyzw, r0.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000) +mov r1.w, r0.y +mul o1.xyzw, r0.xyzw, cb0[1].xxxx +mul o0.xyzw, r1.xyzw, cb0[1].xxxx +ret +// Approximately 8 instruction slots used +#endif + +const BYTE ComponentAlphaShader[] = +{ + 68, 88, 66, 67, 168, 127, + 203, 56, 125, 182, 211, 23, + 166, 215, 189, 218, 181, 48, + 227, 73, 1, 0, 0, 0, + 212, 6, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 64, 1, 0, 0, 160, 2, + 0, 0, 28, 3, 0, 0, + 48, 6, 0, 0, 136, 6, + 0, 0, 65, 111, 110, 57, + 0, 1, 0, 0, 0, 1, + 0, 0, 0, 2, 255, 255, + 200, 0, 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, 4, 0, 1, 0, + 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 1, 2, 255, 255, 81, 0, + 0, 5, 1, 0, 15, 160, + 0, 0, 128, 63, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 31, 0, + 0, 2, 0, 0, 0, 128, + 0, 0, 3, 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, 66, 0, + 0, 3, 0, 0, 15, 128, + 0, 0, 228, 176, 0, 8, + 228, 160, 66, 0, 0, 3, + 1, 0, 15, 128, 0, 0, + 228, 176, 1, 8, 228, 160, + 2, 0, 0, 3, 1, 0, + 15, 128, 0, 0, 228, 128, + 1, 0, 228, 129, 2, 0, + 0, 3, 1, 0, 15, 128, + 1, 0, 228, 128, 1, 0, + 0, 160, 1, 0, 0, 2, + 0, 0, 8, 128, 1, 0, + 85, 128, 5, 0, 0, 3, + 1, 0, 15, 128, 1, 0, + 228, 128, 0, 0, 0, 160, + 1, 0, 0, 2, 1, 8, + 15, 128, 1, 0, 228, 128, + 5, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 128, + 0, 0, 0, 160, 1, 0, + 0, 2, 0, 8, 15, 128, + 0, 0, 228, 128, 255, 255, + 0, 0, 83, 72, 68, 82, + 88, 1, 0, 0, 64, 0, + 0, 0, 86, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 2, 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, 88, 24, 0, 4, + 0, 112, 16, 0, 4, 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, + 101, 0, 0, 3, 242, 32, + 16, 0, 1, 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, 4, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 1, 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, 0, 0, 0, 8, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 0, 0, + 0, 10, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 0, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 128, 63, 0, 0, 128, 63, + 0, 0, 128, 63, 0, 0, + 128, 63, 54, 0, 0, 5, + 130, 0, 16, 0, 1, 0, + 0, 0, 26, 0, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 8, 242, 32, 16, 0, + 1, 0, 0, 0, 70, 14, + 16, 0, 0, 0, 0, 0, + 6, 128, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 56, 0, 0, 8, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 6, 128, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 62, 0, 0, 1, + 83, 84, 65, 84, 116, 0, + 0, 0, 8, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 3, 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, 2, 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, 12, 3, 0, 0, + 1, 0, 0, 0, 192, 0, + 0, 0, 4, 0, 0, 0, + 28, 0, 0, 0, 0, 4, + 255, 255, 0, 1, 0, 0, + 228, 2, 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, 1, 0, 0, 0, + 165, 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, 13, 0, + 0, 0, 170, 0, 0, 0, + 2, 0, 0, 0, 5, 0, + 0, 0, 4, 0, 0, 0, + 255, 255, 255, 255, 4, 0, + 0, 0, 1, 0, 0, 0, + 13, 0, 0, 0, 180, 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, 116, 82, 71, + 66, 0, 116, 82, 71, 66, + 87, 104, 105, 116, 101, 0, + 36, 71, 108, 111, 98, 97, + 108, 115, 0, 171, 171, 171, + 180, 0, 0, 0, 11, 0, + 0, 0, 216, 0, 0, 0, + 96, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 224, 1, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 236, 1, + 0, 0, 0, 0, 0, 0, + 252, 1, 0, 0, 16, 0, + 0, 0, 4, 0, 0, 0, + 2, 0, 0, 0, 12, 2, + 0, 0, 0, 0, 0, 0, + 28, 2, 0, 0, 32, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 44, 2, + 0, 0, 0, 0, 0, 0, + 60, 2, 0, 0, 48, 0, + 0, 0, 44, 0, 0, 0, + 0, 0, 0, 0, 76, 2, + 0, 0, 0, 0, 0, 0, + 92, 2, 0, 0, 96, 0, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 108, 2, + 0, 0, 0, 0, 0, 0, + 124, 2, 0, 0, 160, 0, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 108, 2, + 0, 0, 0, 0, 0, 0, + 136, 2, 0, 0, 224, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 236, 1, + 0, 0, 0, 0, 0, 0, + 156, 2, 0, 0, 240, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 172, 2, + 0, 0, 0, 0, 0, 0, + 188, 2, 0, 0, 0, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 172, 2, + 0, 0, 0, 0, 0, 0, + 199, 2, 0, 0, 16, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 172, 2, + 0, 0, 0, 0, 0, 0, + 209, 2, 0, 0, 32, 1, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 108, 2, + 0, 0, 0, 0, 0, 0, + 102, 76, 97, 121, 101, 114, + 67, 111, 108, 111, 114, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 102, 76, + 97, 121, 101, 114, 79, 112, + 97, 99, 105, 116, 121, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 105, 66, 108, 101, 110, 100, + 67, 111, 110, 102, 105, 103, + 0, 171, 171, 171, 1, 0, + 19, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 89, 117, 118, + 67, 111, 108, 111, 114, 77, + 97, 116, 114, 105, 120, 0, + 2, 0, 3, 0, 3, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 76, + 97, 121, 101, 114, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 0, 3, 0, 3, 0, + 4, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 80, 114, 111, 106, 101, + 99, 116, 105, 111, 110, 0, + 118, 82, 101, 110, 100, 101, + 114, 84, 97, 114, 103, 101, + 116, 79, 102, 102, 115, 101, + 116, 0, 118, 84, 101, 120, + 116, 117, 114, 101, 67, 111, + 111, 114, 100, 115, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 76, + 97, 121, 101, 114, 81, 117, + 97, 100, 0, 118, 77, 97, + 115, 107, 81, 117, 97, 100, + 0, 109, 66, 97, 99, 107, + 100, 114, 111, 112, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 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, 49, 48, 46, 49, 0, + 73, 83, 71, 78, 80, 0, + 0, 0, 2, 0, 0, 0, + 8, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 68, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 3, 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, 79, 83, + 71, 78, 68, 0, 0, 0, + 2, 0, 0, 0, 8, 0, + 0, 0, 56, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 56, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 0, + 0, 0, 83, 86, 95, 84, + 97, 114, 103, 101, 116, 0, + 171, 171 +}; ShaderBytes sComponentAlphaShader = { ComponentAlphaShader, sizeof(ComponentAlphaShader) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 [unused] -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] -// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tY texture float4 2d t1 1 -// tCb texture float4 2d t2 1 -// tCr texture float4 2d t3 1 -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float xy -// -// -// 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 1 1 ( FLT, FLT, FLT, FLT) -// c1 cb0 3 3 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t1 -// s1 s0 t2 -// s2 s0 t3 -// -// -// Level9 shader bytecode: -// - ps_2_x - def c4, -0.0627499968, -0.50195998, 1, 0 - dcl t0.xy - dcl_2d s0 - dcl_2d s1 - dcl_2d s2 - mov r0.w, c4.z - texld r1, t0, s1 - texld r2, t0, s0 - add r2.x, r2.x, c4.x - add r2.y, r1.x, c4.y - texld r1, t0, s2 - add r2.z, r1.x, c4.y - dp3 r0.x, c1, r2 - dp3 r0.y, c2, r2 - dp3 r0.z, c3, r2 - mul r0, r0, c0.x - mov oC0, r0 - -// approximately 12 instruction slots used (3 texture, 9 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[6], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t1 -dcl_resource_texture2d (float,float,float,float) t2 -dcl_resource_texture2d (float,float,float,float) t3 -dcl_input_ps linear v1.xy -dcl_output o0.xyzw -dcl_temps 3 -mov r0.w, l(1.000000) -sample r1.xyzw, v1.xyxx, t1.xyzw, s0 -add r1.x, r1.x, l(-0.062750) -sample r2.xyzw, v1.xyxx, t2.xyzw, s0 -add r1.y, r2.x, l(-0.501960) -sample r2.xyzw, v1.xyxx, t3.xyzw, s0 -add r1.z, r2.x, l(-0.501960) -dp3 r0.x, cb0[3].xyzx, r1.xyzx -dp3 r0.y, cb0[4].xyzx, r1.xyzx -dp3 r0.z, cb0[5].xyzx, r1.xyzx -mul o0.xyzw, r0.xyzw, cb0[1].xxxx -ret -// Approximately 12 instruction slots used -#endif - -const BYTE YCbCrShader[] = -{ - 68, 88, 66, 67, 56, 199, - 91, 5, 215, 233, 204, 14, - 193, 166, 163, 11, 246, 123, - 165, 88, 1, 0, 0, 0, - 156, 7, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 144, 1, 0, 0, 100, 3, - 0, 0, 224, 3, 0, 0, - 16, 7, 0, 0, 104, 7, - 0, 0, 65, 111, 110, 57, - 80, 1, 0, 0, 80, 1, - 0, 0, 0, 2, 255, 255, - 8, 1, 0, 0, 72, 0, - 0, 0, 2, 0, 48, 0, - 0, 0, 72, 0, 0, 0, - 72, 0, 3, 0, 36, 0, - 0, 0, 72, 0, 1, 0, - 0, 0, 2, 0, 1, 0, - 3, 0, 2, 0, 0, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 3, 0, 1, 0, - 0, 0, 0, 0, 1, 2, - 255, 255, 81, 0, 0, 5, - 4, 0, 15, 160, 18, 131, - 128, 189, 115, 128, 0, 191, - 0, 0, 128, 63, 0, 0, - 0, 0, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 3, 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, 31, 0, 0, 2, - 0, 0, 0, 144, 2, 8, - 15, 160, 1, 0, 0, 2, - 0, 0, 8, 128, 4, 0, - 170, 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, 176, - 0, 8, 228, 160, 2, 0, - 0, 3, 2, 0, 1, 128, - 2, 0, 0, 128, 4, 0, - 0, 160, 2, 0, 0, 3, - 2, 0, 2, 128, 1, 0, - 0, 128, 4, 0, 85, 160, - 66, 0, 0, 3, 1, 0, - 15, 128, 0, 0, 228, 176, - 2, 8, 228, 160, 2, 0, - 0, 3, 2, 0, 4, 128, - 1, 0, 0, 128, 4, 0, - 85, 160, 8, 0, 0, 3, - 0, 0, 1, 128, 1, 0, - 228, 160, 2, 0, 228, 128, - 8, 0, 0, 3, 0, 0, - 2, 128, 2, 0, 228, 160, - 2, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 4, 128, - 3, 0, 228, 160, 2, 0, - 228, 128, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 0, 0, 0, 160, - 1, 0, 0, 2, 0, 8, - 15, 128, 0, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 204, 1, 0, 0, - 64, 0, 0, 0, 115, 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, - 88, 24, 0, 4, 0, 112, - 16, 0, 1, 0, 0, 0, - 85, 85, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 2, 0, 0, 0, 85, 85, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 3, 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, 3, 0, - 0, 0, 54, 0, 0, 5, - 130, 0, 16, 0, 0, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 128, 63, 69, 0, - 0, 9, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 1, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 7, 18, 0, 16, 0, - 1, 0, 0, 0, 10, 0, - 16, 0, 1, 0, 0, 0, - 1, 64, 0, 0, 18, 131, - 128, 189, 69, 0, 0, 9, - 242, 0, 16, 0, 2, 0, - 0, 0, 70, 16, 16, 0, - 1, 0, 0, 0, 70, 126, - 16, 0, 2, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 7, - 34, 0, 16, 0, 1, 0, - 0, 0, 10, 0, 16, 0, - 2, 0, 0, 0, 1, 64, - 0, 0, 115, 128, 0, 191, - 69, 0, 0, 9, 242, 0, - 16, 0, 2, 0, 0, 0, - 70, 16, 16, 0, 1, 0, - 0, 0, 70, 126, 16, 0, - 3, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 66, 0, - 16, 0, 1, 0, 0, 0, - 10, 0, 16, 0, 2, 0, - 0, 0, 1, 64, 0, 0, - 115, 128, 0, 191, 16, 0, - 0, 8, 18, 0, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 16, 0, 0, 8, 34, 0, - 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 16, 0, 0, 8, - 66, 0, 16, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 5, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 8, 242, 32, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 6, 128, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 116, 0, 0, 0, - 12, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 7, 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, 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, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 82, 68, 69, 70, - 40, 3, 0, 0, 1, 0, - 0, 0, 220, 0, 0, 0, - 5, 0, 0, 0, 28, 0, - 0, 0, 0, 4, 255, 255, - 0, 1, 0, 0, 0, 3, - 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, - 1, 0, 0, 0, 197, 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, 13, 0, 0, 0, - 200, 0, 0, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 255, 255, - 255, 255, 2, 0, 0, 0, - 1, 0, 0, 0, 13, 0, - 0, 0, 204, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 3, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 208, 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, 116, 89, 0, - 116, 67, 98, 0, 116, 67, - 114, 0, 36, 71, 108, 111, - 98, 97, 108, 115, 0, 171, - 171, 171, 208, 0, 0, 0, - 11, 0, 0, 0, 244, 0, - 0, 0, 96, 1, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 252, 1, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 8, 2, 0, 0, 0, 0, - 0, 0, 24, 2, 0, 0, - 16, 0, 0, 0, 4, 0, - 0, 0, 2, 0, 0, 0, - 40, 2, 0, 0, 0, 0, - 0, 0, 56, 2, 0, 0, - 32, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 72, 2, 0, 0, 0, 0, - 0, 0, 88, 2, 0, 0, - 48, 0, 0, 0, 44, 0, - 0, 0, 2, 0, 0, 0, - 104, 2, 0, 0, 0, 0, - 0, 0, 120, 2, 0, 0, - 96, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 136, 2, 0, 0, 0, 0, - 0, 0, 152, 2, 0, 0, - 160, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 136, 2, 0, 0, 0, 0, - 0, 0, 164, 2, 0, 0, - 224, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 8, 2, 0, 0, 0, 0, - 0, 0, 184, 2, 0, 0, - 240, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 200, 2, 0, 0, 0, 0, - 0, 0, 216, 2, 0, 0, - 0, 1, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 200, 2, 0, 0, 0, 0, - 0, 0, 227, 2, 0, 0, - 16, 1, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 200, 2, 0, 0, 0, 0, - 0, 0, 237, 2, 0, 0, - 32, 1, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 136, 2, 0, 0, 0, 0, - 0, 0, 102, 76, 97, 121, - 101, 114, 67, 111, 108, 111, - 114, 0, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 79, 112, 97, 99, 105, 116, - 121, 0, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 105, 66, 108, 101, - 110, 100, 67, 111, 110, 102, - 105, 103, 0, 171, 171, 171, - 1, 0, 19, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 89, - 117, 118, 67, 111, 108, 111, - 114, 77, 97, 116, 114, 105, - 120, 0, 2, 0, 3, 0, - 3, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 76, 97, 121, 101, 114, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 80, 114, 111, - 106, 101, 99, 116, 105, 111, - 110, 0, 118, 82, 101, 110, - 100, 101, 114, 84, 97, 114, - 103, 101, 116, 79, 102, 102, - 115, 101, 116, 0, 118, 84, - 101, 120, 116, 117, 114, 101, - 67, 111, 111, 114, 100, 115, - 0, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 76, 97, 121, 101, 114, - 81, 117, 97, 100, 0, 118, - 77, 97, 115, 107, 81, 117, - 97, 100, 0, 109, 66, 97, - 99, 107, 100, 114, 111, 112, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 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, 49, 48, 46, - 49, 0, 73, 83, 71, 78, - 80, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 68, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 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, - 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 -}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4 fLayerColor; // Offset: 0 Size: 16 [unused] +// float fLayerOpacity; // Offset: 16 Size: 4 +// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] +// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 +// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] +// float4x4 mProjection; // Offset: 160 Size: 64 [unused] +// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] +// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] +// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] +// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] +// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// sSampler sampler NA NA s0 1 +// tY texture float4 2d t1 1 +// tCb texture float4 2d t2 1 +// tCr texture float4 2d t3 1 +// $Globals cbuffer NA NA cb0 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float +// TEXCOORD 0 xy 1 NONE float xy +// +// +// 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 1 1 ( FLT, FLT, FLT, FLT) +// c1 cb0 3 3 ( FLT, FLT, FLT, FLT) +// +// +// Sampler/Resource to DX9 shader sampler mappings: +// +// Target Sampler Source Sampler Source Resource +// -------------- --------------- ---------------- +// s0 s0 t1 +// s1 s0 t2 +// s2 s0 t3 +// +// +// Level9 shader bytecode: +// + ps_2_x + def c4, -0.0627499968, -0.50195998, 1, 0 + dcl t0.xy + dcl_2d s0 + dcl_2d s1 + dcl_2d s2 + mov r0.w, c4.z + texld r1, t0, s1 + texld r2, t0, s0 + add r2.x, r2.x, c4.x + add r2.y, r1.x, c4.y + texld r1, t0, s2 + add r2.z, r1.x, c4.y + dp3 r0.x, c1, r2 + dp3 r0.y, c2, r2 + dp3 r0.z, c3, r2 + mul r0, r0, c0.x + mov oC0, r0 + +// approximately 12 instruction slots used (3 texture, 9 arithmetic) +ps_4_0 +dcl_constantbuffer CB0[6], immediateIndexed +dcl_sampler s0, mode_default +dcl_resource_texture2d (float,float,float,float) t1 +dcl_resource_texture2d (float,float,float,float) t2 +dcl_resource_texture2d (float,float,float,float) t3 +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 3 +mov r0.w, l(1.000000) +sample r1.xyzw, v1.xyxx, t1.xyzw, s0 +add r1.x, r1.x, l(-0.062750) +sample r2.xyzw, v1.xyxx, t2.xyzw, s0 +add r1.y, r2.x, l(-0.501960) +sample r2.xyzw, v1.xyxx, t3.xyzw, s0 +add r1.z, r2.x, l(-0.501960) +dp3 r0.x, cb0[3].xyzx, r1.xyzx +dp3 r0.y, cb0[4].xyzx, r1.xyzx +dp3 r0.z, cb0[5].xyzx, r1.xyzx +mul o0.xyzw, r0.xyzw, cb0[1].xxxx +ret +// Approximately 12 instruction slots used +#endif + +const BYTE YCbCrShader[] = +{ + 68, 88, 66, 67, 56, 199, + 91, 5, 215, 233, 204, 14, + 193, 166, 163, 11, 246, 123, + 165, 88, 1, 0, 0, 0, + 156, 7, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 144, 1, 0, 0, 100, 3, + 0, 0, 224, 3, 0, 0, + 16, 7, 0, 0, 104, 7, + 0, 0, 65, 111, 110, 57, + 80, 1, 0, 0, 80, 1, + 0, 0, 0, 2, 255, 255, + 8, 1, 0, 0, 72, 0, + 0, 0, 2, 0, 48, 0, + 0, 0, 72, 0, 0, 0, + 72, 0, 3, 0, 36, 0, + 0, 0, 72, 0, 1, 0, + 0, 0, 2, 0, 1, 0, + 3, 0, 2, 0, 0, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 3, 0, 1, 0, + 0, 0, 0, 0, 1, 2, + 255, 255, 81, 0, 0, 5, + 4, 0, 15, 160, 18, 131, + 128, 189, 115, 128, 0, 191, + 0, 0, 128, 63, 0, 0, + 0, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 3, 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, 31, 0, 0, 2, + 0, 0, 0, 144, 2, 8, + 15, 160, 1, 0, 0, 2, + 0, 0, 8, 128, 4, 0, + 170, 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, 176, + 0, 8, 228, 160, 2, 0, + 0, 3, 2, 0, 1, 128, + 2, 0, 0, 128, 4, 0, + 0, 160, 2, 0, 0, 3, + 2, 0, 2, 128, 1, 0, + 0, 128, 4, 0, 85, 160, + 66, 0, 0, 3, 1, 0, + 15, 128, 0, 0, 228, 176, + 2, 8, 228, 160, 2, 0, + 0, 3, 2, 0, 4, 128, + 1, 0, 0, 128, 4, 0, + 85, 160, 8, 0, 0, 3, + 0, 0, 1, 128, 1, 0, + 228, 160, 2, 0, 228, 128, + 8, 0, 0, 3, 0, 0, + 2, 128, 2, 0, 228, 160, + 2, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 4, 128, + 3, 0, 228, 160, 2, 0, + 228, 128, 5, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 128, 0, 0, 0, 160, + 1, 0, 0, 2, 0, 8, + 15, 128, 0, 0, 228, 128, + 255, 255, 0, 0, 83, 72, + 68, 82, 204, 1, 0, 0, + 64, 0, 0, 0, 115, 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, + 88, 24, 0, 4, 0, 112, + 16, 0, 1, 0, 0, 0, + 85, 85, 0, 0, 88, 24, + 0, 4, 0, 112, 16, 0, + 2, 0, 0, 0, 85, 85, + 0, 0, 88, 24, 0, 4, + 0, 112, 16, 0, 3, 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, 3, 0, + 0, 0, 54, 0, 0, 5, + 130, 0, 16, 0, 0, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 128, 63, 69, 0, + 0, 9, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 16, + 16, 0, 1, 0, 0, 0, + 70, 126, 16, 0, 1, 0, + 0, 0, 0, 96, 16, 0, + 0, 0, 0, 0, 0, 0, + 0, 7, 18, 0, 16, 0, + 1, 0, 0, 0, 10, 0, + 16, 0, 1, 0, 0, 0, + 1, 64, 0, 0, 18, 131, + 128, 189, 69, 0, 0, 9, + 242, 0, 16, 0, 2, 0, + 0, 0, 70, 16, 16, 0, + 1, 0, 0, 0, 70, 126, + 16, 0, 2, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 7, + 34, 0, 16, 0, 1, 0, + 0, 0, 10, 0, 16, 0, + 2, 0, 0, 0, 1, 64, + 0, 0, 115, 128, 0, 191, + 69, 0, 0, 9, 242, 0, + 16, 0, 2, 0, 0, 0, + 70, 16, 16, 0, 1, 0, + 0, 0, 70, 126, 16, 0, + 3, 0, 0, 0, 0, 96, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 66, 0, + 16, 0, 1, 0, 0, 0, + 10, 0, 16, 0, 2, 0, + 0, 0, 1, 64, 0, 0, + 115, 128, 0, 191, 16, 0, + 0, 8, 18, 0, 16, 0, + 0, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 16, 0, 0, 8, 34, 0, + 16, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 16, 0, 0, 8, + 66, 0, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 5, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 56, 0, + 0, 8, 242, 32, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 0, 0, 0, 0, + 6, 128, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 62, 0, 0, 1, 83, 84, + 65, 84, 116, 0, 0, 0, + 12, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 7, 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, 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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 82, 68, 69, 70, + 40, 3, 0, 0, 1, 0, + 0, 0, 220, 0, 0, 0, + 5, 0, 0, 0, 28, 0, + 0, 0, 0, 4, 255, 255, + 0, 1, 0, 0, 0, 3, + 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, + 1, 0, 0, 0, 197, 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, 13, 0, 0, 0, + 200, 0, 0, 0, 2, 0, + 0, 0, 5, 0, 0, 0, + 4, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 0, 0, + 1, 0, 0, 0, 13, 0, + 0, 0, 204, 0, 0, 0, + 2, 0, 0, 0, 5, 0, + 0, 0, 4, 0, 0, 0, + 255, 255, 255, 255, 3, 0, + 0, 0, 1, 0, 0, 0, + 13, 0, 0, 0, 208, 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, 116, 89, 0, + 116, 67, 98, 0, 116, 67, + 114, 0, 36, 71, 108, 111, + 98, 97, 108, 115, 0, 171, + 171, 171, 208, 0, 0, 0, + 11, 0, 0, 0, 244, 0, + 0, 0, 96, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 252, 1, 0, 0, + 0, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 8, 2, 0, 0, 0, 0, + 0, 0, 24, 2, 0, 0, + 16, 0, 0, 0, 4, 0, + 0, 0, 2, 0, 0, 0, + 40, 2, 0, 0, 0, 0, + 0, 0, 56, 2, 0, 0, + 32, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 72, 2, 0, 0, 0, 0, + 0, 0, 88, 2, 0, 0, + 48, 0, 0, 0, 44, 0, + 0, 0, 2, 0, 0, 0, + 104, 2, 0, 0, 0, 0, + 0, 0, 120, 2, 0, 0, + 96, 0, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, + 136, 2, 0, 0, 0, 0, + 0, 0, 152, 2, 0, 0, + 160, 0, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, + 136, 2, 0, 0, 0, 0, + 0, 0, 164, 2, 0, 0, + 224, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 8, 2, 0, 0, 0, 0, + 0, 0, 184, 2, 0, 0, + 240, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 200, 2, 0, 0, 0, 0, + 0, 0, 216, 2, 0, 0, + 0, 1, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 200, 2, 0, 0, 0, 0, + 0, 0, 227, 2, 0, 0, + 16, 1, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 200, 2, 0, 0, 0, 0, + 0, 0, 237, 2, 0, 0, + 32, 1, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, + 136, 2, 0, 0, 0, 0, + 0, 0, 102, 76, 97, 121, + 101, 114, 67, 111, 108, 111, + 114, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 102, 76, 97, 121, 101, 114, + 79, 112, 97, 99, 105, 116, + 121, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 105, 66, 108, 101, + 110, 100, 67, 111, 110, 102, + 105, 103, 0, 171, 171, 171, + 1, 0, 19, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 89, + 117, 118, 67, 111, 108, 111, + 114, 77, 97, 116, 114, 105, + 120, 0, 2, 0, 3, 0, + 3, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 76, 97, 121, 101, 114, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 0, 3, 0, + 3, 0, 4, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 80, 114, 111, + 106, 101, 99, 116, 105, 111, + 110, 0, 118, 82, 101, 110, + 100, 101, 114, 84, 97, 114, + 103, 101, 116, 79, 102, 102, + 115, 101, 116, 0, 118, 84, + 101, 120, 116, 117, 114, 101, + 67, 111, 111, 114, 100, 115, + 0, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 118, 76, 97, 121, 101, 114, + 81, 117, 97, 100, 0, 118, + 77, 97, 115, 107, 81, 117, + 97, 100, 0, 109, 66, 97, + 99, 107, 100, 114, 111, 112, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 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, 49, 48, 46, + 49, 0, 73, 83, 71, 78, + 80, 0, 0, 0, 2, 0, + 0, 0, 8, 0, 0, 0, + 56, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 68, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 3, 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, + 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 +}; ShaderBytes sYCbCrShader = { YCbCrShader, sizeof(YCbCrShader) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4x4 mLayerTransform; // Offset: 0 Size: 64 -// float4x4 mProjection; // Offset: 64 Size: 64 -// float4 vRenderTargetOffset; // Offset: 128 Size: 16 -// float4 vTextureCoords; // Offset: 144 Size: 16 -// float4 vLayerQuad; // Offset: 160 Size: 16 -// float4 vMaskQuad; // Offset: 176 Size: 16 -// float4x4 mBackdropTransform; // Offset: 192 Size: 64 [unused] -// float4 fLayerColor; // Offset: 256 Size: 16 [unused] -// float fLayerOpacity; // Offset: 272 Size: 4 [unused] -// uint4 iBlendConfig; // Offset: 288 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 304 Size: 44 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// POSITION 0 xy 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 xyz 2 NONE float xyz -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) -// c3 cb0 3 9 ( FLT, FLT, FLT, FLT) -// -// -// Runtime generated constant mappings: -// -// Target Reg Constant Description -// ---------- -------------------------------------------------- -// c0 Vertex Shader position offset -// -// -// Level9 shader bytecode: -// - vs_2_x - def c12, 1, 0, 0, 0 - dcl_texcoord v0 - mov r0.z, c12.x - rcp r0.w, c11.z - mad r1.xy, v0, c10.zwzw, c10 - mul r2, r1.y, c2 - mad r1, c1, r1.x, r2 - add r1, r1, c3 - add r2.xy, r1, -c11 - mul r0.x, r0.w, r2.x - rcp r0.w, c11.w - mul r0.y, r0.w, r2.y - mul oT1.xyz, r0, r1.w - mad oT0.xy, v0, c9.zwzw, c9 - rcp r0.x, r1.w - mul r1.xyz, r0.x, r1 - add r0, r1, -c8 - mul r0.xyz, r0.w, r0 - mul r1, r0.y, c5 - mad r1, c4, r0.x, r1 - mad r1, c6, r0.z, r1 - mad r0, c7, r0.w, r1 - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - -// approximately 22 instruction slots used -vs_4_0 -dcl_constantbuffer CB0[12], immediateIndexed -dcl_input v0.xy -dcl_output_siv o0.xyzw, position -dcl_output o1.xy -dcl_output o2.xyz -dcl_temps 4 -mad r0.xy, v0.xyxx, cb0[10].zwzz, cb0[10].xyxx -mul r1.xyzw, r0.yyyy, cb0[1].xyzw -mad r0.xyzw, cb0[0].xyzw, r0.xxxx, r1.xyzw -add r0.xyzw, r0.xyzw, cb0[3].xyzw -div r1.xyz, r0.xyzx, r0.wwww -mov r1.w, r0.w -add r2.xyzw, r1.xyzw, -cb0[8].xyzw -mul r1.xyz, r2.wwww, r2.xyzx -mul r3.xyzw, r1.yyyy, cb0[5].xyzw -mad r3.xyzw, cb0[4].xyzw, r1.xxxx, r3.xyzw -mad r3.xyzw, cb0[6].xyzw, r1.zzzz, r3.xyzw -mad o0.xyzw, cb0[7].xyzw, r2.wwww, r3.xyzw -mad o1.xy, v0.xyxx, cb0[9].zwzz, cb0[9].xyxx -add r0.xy, r0.xyxx, -cb0[11].xyxx -div r0.xy, r0.xyxx, cb0[11].zwzz -mov r0.z, l(1.000000) -mul o2.xyz, r1.wwww, r0.xyzx -ret -// Approximately 18 instruction slots used -#endif - -const BYTE LayerQuadMaskVS[] = -{ - 68, 88, 66, 67, 47, 28, - 196, 228, 98, 79, 27, 152, - 192, 25, 215, 128, 59, 234, - 245, 240, 1, 0, 0, 0, - 108, 8, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 20, 2, 0, 0, 176, 4, - 0, 0, 44, 5, 0, 0, - 200, 7, 0, 0, 252, 7, - 0, 0, 65, 111, 110, 57, - 212, 1, 0, 0, 212, 1, - 0, 0, 0, 2, 254, 255, - 148, 1, 0, 0, 64, 0, - 0, 0, 2, 0, 36, 0, - 0, 0, 60, 0, 0, 0, - 60, 0, 0, 0, 36, 0, - 1, 0, 60, 0, 0, 0, - 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 9, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 254, 255, - 81, 0, 0, 5, 12, 0, - 15, 160, 0, 0, 128, 63, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 31, 0, 0, 2, 5, 0, - 0, 128, 0, 0, 15, 144, - 1, 0, 0, 2, 0, 0, - 4, 128, 12, 0, 0, 160, - 6, 0, 0, 2, 0, 0, - 8, 128, 11, 0, 170, 160, - 4, 0, 0, 4, 1, 0, - 3, 128, 0, 0, 228, 144, - 10, 0, 238, 160, 10, 0, - 228, 160, 5, 0, 0, 3, - 2, 0, 15, 128, 1, 0, - 85, 128, 2, 0, 228, 160, - 4, 0, 0, 4, 1, 0, - 15, 128, 1, 0, 228, 160, - 1, 0, 0, 128, 2, 0, - 228, 128, 2, 0, 0, 3, - 1, 0, 15, 128, 1, 0, - 228, 128, 3, 0, 228, 160, - 2, 0, 0, 3, 2, 0, - 3, 128, 1, 0, 228, 128, - 11, 0, 228, 161, 5, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 255, 128, 2, 0, - 0, 128, 6, 0, 0, 2, - 0, 0, 8, 128, 11, 0, - 255, 160, 5, 0, 0, 3, - 0, 0, 2, 128, 0, 0, - 255, 128, 2, 0, 85, 128, - 5, 0, 0, 3, 1, 0, - 7, 224, 0, 0, 228, 128, - 1, 0, 255, 128, 4, 0, - 0, 4, 0, 0, 3, 224, - 0, 0, 228, 144, 9, 0, - 238, 160, 9, 0, 228, 160, - 6, 0, 0, 2, 0, 0, - 1, 128, 1, 0, 255, 128, - 5, 0, 0, 3, 1, 0, - 7, 128, 0, 0, 0, 128, - 1, 0, 228, 128, 2, 0, - 0, 3, 0, 0, 15, 128, - 1, 0, 228, 128, 8, 0, - 228, 161, 5, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 255, 128, 0, 0, 228, 128, - 5, 0, 0, 3, 1, 0, - 15, 128, 0, 0, 85, 128, - 5, 0, 228, 160, 4, 0, - 0, 4, 1, 0, 15, 128, - 4, 0, 228, 160, 0, 0, - 0, 128, 1, 0, 228, 128, - 4, 0, 0, 4, 1, 0, - 15, 128, 6, 0, 228, 160, - 0, 0, 170, 128, 1, 0, - 228, 128, 4, 0, 0, 4, - 0, 0, 15, 128, 7, 0, - 228, 160, 0, 0, 255, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 3, 192, - 0, 0, 255, 128, 0, 0, - 228, 160, 0, 0, 228, 128, - 1, 0, 0, 2, 0, 0, - 12, 192, 0, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 148, 2, 0, 0, - 64, 0, 1, 0, 165, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 12, 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, 114, 32, 16, 0, - 2, 0, 0, 0, 104, 0, - 0, 2, 4, 0, 0, 0, - 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, 10, 0, - 0, 0, 70, 128, 32, 0, - 0, 0, 0, 0, 10, 0, - 0, 0, 56, 0, 0, 8, - 242, 0, 16, 0, 1, 0, - 0, 0, 86, 5, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 0, 0, 0, 8, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 14, 0, - 0, 7, 114, 0, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 130, 0, 16, 0, 1, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 9, 242, 0, 16, 0, - 2, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 1, 0, 0, 0, 246, 15, - 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 2, 0, - 0, 0, 56, 0, 0, 8, - 242, 0, 16, 0, 3, 0, - 0, 0, 86, 5, 16, 0, - 1, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 3, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 6, 0, - 16, 0, 1, 0, 0, 0, - 70, 14, 16, 0, 3, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 3, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 6, 0, - 0, 0, 166, 10, 16, 0, - 1, 0, 0, 0, 70, 14, - 16, 0, 3, 0, 0, 0, - 50, 0, 0, 10, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 7, 0, 0, 0, - 246, 15, 16, 0, 2, 0, - 0, 0, 70, 14, 16, 0, - 3, 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, 9, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 0, 0, 0, 9, 50, 0, - 16, 0, 0, 0, 0, 0, - 70, 0, 16, 0, 0, 0, - 0, 0, 70, 128, 32, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 11, 0, 0, 0, - 14, 0, 0, 8, 50, 0, - 16, 0, 0, 0, 0, 0, - 70, 0, 16, 0, 0, 0, - 0, 0, 230, 138, 32, 0, - 0, 0, 0, 0, 11, 0, - 0, 0, 54, 0, 0, 5, - 66, 0, 16, 0, 0, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 128, 63, 56, 0, - 0, 7, 114, 32, 16, 0, - 2, 0, 0, 0, 246, 15, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 116, 0, - 0, 0, 18, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 15, 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, - 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, 82, 68, - 69, 70, 148, 2, 0, 0, - 1, 0, 0, 0, 72, 0, - 0, 0, 1, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 254, 255, 0, 1, 0, 0, - 108, 2, 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, - 36, 71, 108, 111, 98, 97, - 108, 115, 0, 171, 171, 171, - 60, 0, 0, 0, 11, 0, - 0, 0, 96, 0, 0, 0, - 96, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 104, 1, 0, 0, 0, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 136, 1, 0, 0, 64, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 148, 1, 0, 0, 128, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 168, 1, - 0, 0, 0, 0, 0, 0, - 184, 1, 0, 0, 144, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 200, 1, - 0, 0, 0, 0, 0, 0, - 216, 1, 0, 0, 160, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 200, 1, - 0, 0, 0, 0, 0, 0, - 227, 1, 0, 0, 176, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 200, 1, - 0, 0, 0, 0, 0, 0, - 237, 1, 0, 0, 192, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 168, 1, - 0, 0, 0, 0, 0, 0, - 12, 2, 0, 0, 16, 1, - 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 28, 2, - 0, 0, 0, 0, 0, 0, - 44, 2, 0, 0, 32, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 60, 2, - 0, 0, 0, 0, 0, 0, - 76, 2, 0, 0, 48, 1, - 0, 0, 44, 0, 0, 0, - 0, 0, 0, 0, 92, 2, - 0, 0, 0, 0, 0, 0, - 109, 76, 97, 121, 101, 114, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 80, 114, 111, - 106, 101, 99, 116, 105, 111, - 110, 0, 118, 82, 101, 110, - 100, 101, 114, 84, 97, 114, - 103, 101, 116, 79, 102, 102, - 115, 101, 116, 0, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 118, 77, 97, - 115, 107, 81, 117, 97, 100, - 0, 109, 66, 97, 99, 107, - 100, 114, 111, 112, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 102, 76, 97, 121, - 101, 114, 67, 111, 108, 111, - 114, 0, 102, 76, 97, 121, - 101, 114, 79, 112, 97, 99, - 105, 116, 121, 0, 171, 171, - 0, 0, 3, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 105, 66, - 108, 101, 110, 100, 67, 111, - 110, 102, 105, 103, 0, 171, - 171, 171, 1, 0, 19, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 89, 117, 118, 67, 111, - 108, 111, 114, 77, 97, 116, - 114, 105, 120, 0, 2, 0, - 3, 0, 3, 0, 3, 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, 49, 48, 46, 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, - 3, 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, - 2, 0, 0, 0, 7, 8, - 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 -}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4x4 mLayerTransform; // Offset: 0 Size: 64 +// float4x4 mProjection; // Offset: 64 Size: 64 +// float4 vRenderTargetOffset; // Offset: 128 Size: 16 +// float4 vTextureCoords; // Offset: 144 Size: 16 +// float4 vLayerQuad; // Offset: 160 Size: 16 +// float4 vMaskQuad; // Offset: 176 Size: 16 +// float4x4 mBackdropTransform; // Offset: 192 Size: 64 [unused] +// float4 fLayerColor; // Offset: 256 Size: 16 [unused] +// float fLayerOpacity; // Offset: 272 Size: 4 [unused] +// uint4 iBlendConfig; // Offset: 288 Size: 16 [unused] +// row_major float3x3 mYuvColorMatrix;// Offset: 304 Size: 44 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// $Globals cbuffer NA NA cb0 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// POSITION 0 xy 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 xyz 2 NONE float xyz +// +// +// Constant buffer to DX9 shader constant mappings: +// +// Target Reg Buffer Start Reg # of Regs Data Conversion +// ---------- ------- --------- --------- ---------------------- +// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) +// c3 cb0 3 9 ( FLT, FLT, FLT, FLT) +// +// +// Runtime generated constant mappings: +// +// Target Reg Constant Description +// ---------- -------------------------------------------------- +// c0 Vertex Shader position offset +// +// +// Level9 shader bytecode: +// + vs_2_x + def c12, 1, 0, 0, 0 + dcl_texcoord v0 + mov r0.z, c12.x + rcp r0.w, c11.z + mad r1.xy, v0, c10.zwzw, c10 + mul r2, r1.y, c2 + mad r1, c1, r1.x, r2 + add r1, r1, c3 + add r2.xy, r1, -c11 + mul r0.x, r0.w, r2.x + rcp r0.w, c11.w + mul r0.y, r0.w, r2.y + mul oT1.xyz, r0, r1.w + mad oT0.xy, v0, c9.zwzw, c9 + rcp r0.x, r1.w + mul r1.xyz, r0.x, r1 + add r0, r1, -c8 + mul r0.xyz, r0.w, r0 + mul r1, r0.y, c5 + mad r1, c4, r0.x, r1 + mad r1, c6, r0.z, r1 + mad r0, c7, r0.w, r1 + mad oPos.xy, r0.w, c0, r0 + mov oPos.zw, r0 + +// approximately 22 instruction slots used +vs_4_0 +dcl_constantbuffer CB0[12], immediateIndexed +dcl_input v0.xy +dcl_output_siv o0.xyzw, position +dcl_output o1.xy +dcl_output o2.xyz +dcl_temps 4 +mad r0.xy, v0.xyxx, cb0[10].zwzz, cb0[10].xyxx +mul r1.xyzw, r0.yyyy, cb0[1].xyzw +mad r0.xyzw, cb0[0].xyzw, r0.xxxx, r1.xyzw +add r0.xyzw, r0.xyzw, cb0[3].xyzw +div r1.xyz, r0.xyzx, r0.wwww +mov r1.w, r0.w +add r2.xyzw, r1.xyzw, -cb0[8].xyzw +mul r1.xyz, r2.wwww, r2.xyzx +mul r3.xyzw, r1.yyyy, cb0[5].xyzw +mad r3.xyzw, cb0[4].xyzw, r1.xxxx, r3.xyzw +mad r3.xyzw, cb0[6].xyzw, r1.zzzz, r3.xyzw +mad o0.xyzw, cb0[7].xyzw, r2.wwww, r3.xyzw +mad o1.xy, v0.xyxx, cb0[9].zwzz, cb0[9].xyxx +add r0.xy, r0.xyxx, -cb0[11].xyxx +div r0.xy, r0.xyxx, cb0[11].zwzz +mov r0.z, l(1.000000) +mul o2.xyz, r1.wwww, r0.xyzx +ret +// Approximately 18 instruction slots used +#endif + +const BYTE LayerQuadMaskVS[] = +{ + 68, 88, 66, 67, 47, 28, + 196, 228, 98, 79, 27, 152, + 192, 25, 215, 128, 59, 234, + 245, 240, 1, 0, 0, 0, + 108, 8, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 20, 2, 0, 0, 176, 4, + 0, 0, 44, 5, 0, 0, + 200, 7, 0, 0, 252, 7, + 0, 0, 65, 111, 110, 57, + 212, 1, 0, 0, 212, 1, + 0, 0, 0, 2, 254, 255, + 148, 1, 0, 0, 64, 0, + 0, 0, 2, 0, 36, 0, + 0, 0, 60, 0, 0, 0, + 60, 0, 0, 0, 36, 0, + 1, 0, 60, 0, 0, 0, + 0, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 9, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 254, 255, + 81, 0, 0, 5, 12, 0, + 15, 160, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 1, 0, 0, 2, 0, 0, + 4, 128, 12, 0, 0, 160, + 6, 0, 0, 2, 0, 0, + 8, 128, 11, 0, 170, 160, + 4, 0, 0, 4, 1, 0, + 3, 128, 0, 0, 228, 144, + 10, 0, 238, 160, 10, 0, + 228, 160, 5, 0, 0, 3, + 2, 0, 15, 128, 1, 0, + 85, 128, 2, 0, 228, 160, + 4, 0, 0, 4, 1, 0, + 15, 128, 1, 0, 228, 160, + 1, 0, 0, 128, 2, 0, + 228, 128, 2, 0, 0, 3, + 1, 0, 15, 128, 1, 0, + 228, 128, 3, 0, 228, 160, + 2, 0, 0, 3, 2, 0, + 3, 128, 1, 0, 228, 128, + 11, 0, 228, 161, 5, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 255, 128, 2, 0, + 0, 128, 6, 0, 0, 2, + 0, 0, 8, 128, 11, 0, + 255, 160, 5, 0, 0, 3, + 0, 0, 2, 128, 0, 0, + 255, 128, 2, 0, 85, 128, + 5, 0, 0, 3, 1, 0, + 7, 224, 0, 0, 228, 128, + 1, 0, 255, 128, 4, 0, + 0, 4, 0, 0, 3, 224, + 0, 0, 228, 144, 9, 0, + 238, 160, 9, 0, 228, 160, + 6, 0, 0, 2, 0, 0, + 1, 128, 1, 0, 255, 128, + 5, 0, 0, 3, 1, 0, + 7, 128, 0, 0, 0, 128, + 1, 0, 228, 128, 2, 0, + 0, 3, 0, 0, 15, 128, + 1, 0, 228, 128, 8, 0, + 228, 161, 5, 0, 0, 3, + 0, 0, 7, 128, 0, 0, + 255, 128, 0, 0, 228, 128, + 5, 0, 0, 3, 1, 0, + 15, 128, 0, 0, 85, 128, + 5, 0, 228, 160, 4, 0, + 0, 4, 1, 0, 15, 128, + 4, 0, 228, 160, 0, 0, + 0, 128, 1, 0, 228, 128, + 4, 0, 0, 4, 1, 0, + 15, 128, 6, 0, 228, 160, + 0, 0, 170, 128, 1, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 15, 128, 7, 0, + 228, 160, 0, 0, 255, 128, + 1, 0, 228, 128, 4, 0, + 0, 4, 0, 0, 3, 192, + 0, 0, 255, 128, 0, 0, + 228, 160, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 12, 192, 0, 0, 228, 128, + 255, 255, 0, 0, 83, 72, + 68, 82, 148, 2, 0, 0, + 64, 0, 1, 0, 165, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 12, 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, 114, 32, 16, 0, + 2, 0, 0, 0, 104, 0, + 0, 2, 4, 0, 0, 0, + 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, 10, 0, + 0, 0, 70, 128, 32, 0, + 0, 0, 0, 0, 10, 0, + 0, 0, 56, 0, 0, 8, + 242, 0, 16, 0, 1, 0, + 0, 0, 86, 5, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 0, 0, 0, 8, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 14, 0, + 0, 7, 114, 0, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 5, + 130, 0, 16, 0, 1, 0, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 0, 9, 242, 0, 16, 0, + 2, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 1, 0, 0, 0, 246, 15, + 16, 0, 2, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 56, 0, 0, 8, + 242, 0, 16, 0, 3, 0, + 0, 0, 86, 5, 16, 0, + 1, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 3, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 6, 0, + 16, 0, 1, 0, 0, 0, + 70, 14, 16, 0, 3, 0, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 3, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 6, 0, + 0, 0, 166, 10, 16, 0, + 1, 0, 0, 0, 70, 14, + 16, 0, 3, 0, 0, 0, + 50, 0, 0, 10, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 7, 0, 0, 0, + 246, 15, 16, 0, 2, 0, + 0, 0, 70, 14, 16, 0, + 3, 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, 9, 0, 0, 0, + 70, 128, 32, 0, 0, 0, + 0, 0, 9, 0, 0, 0, + 0, 0, 0, 9, 50, 0, + 16, 0, 0, 0, 0, 0, + 70, 0, 16, 0, 0, 0, + 0, 0, 70, 128, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, + 14, 0, 0, 8, 50, 0, + 16, 0, 0, 0, 0, 0, + 70, 0, 16, 0, 0, 0, + 0, 0, 230, 138, 32, 0, + 0, 0, 0, 0, 11, 0, + 0, 0, 54, 0, 0, 5, + 66, 0, 16, 0, 0, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 128, 63, 56, 0, + 0, 7, 114, 32, 16, 0, + 2, 0, 0, 0, 246, 15, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 83, 84, 65, 84, 116, 0, + 0, 0, 18, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 15, 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, + 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, 82, 68, + 69, 70, 148, 2, 0, 0, + 1, 0, 0, 0, 72, 0, + 0, 0, 1, 0, 0, 0, + 28, 0, 0, 0, 0, 4, + 254, 255, 0, 1, 0, 0, + 108, 2, 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, + 36, 71, 108, 111, 98, 97, + 108, 115, 0, 171, 171, 171, + 60, 0, 0, 0, 11, 0, + 0, 0, 96, 0, 0, 0, + 96, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 104, 1, 0, 0, 0, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 136, 1, 0, 0, 64, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 148, 1, 0, 0, 128, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 168, 1, + 0, 0, 0, 0, 0, 0, + 184, 1, 0, 0, 144, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 216, 1, 0, 0, 160, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 227, 1, 0, 0, 176, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 237, 1, 0, 0, 192, 0, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 168, 1, + 0, 0, 0, 0, 0, 0, + 12, 2, 0, 0, 16, 1, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 28, 2, + 0, 0, 0, 0, 0, 0, + 44, 2, 0, 0, 32, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 60, 2, + 0, 0, 0, 0, 0, 0, + 76, 2, 0, 0, 48, 1, + 0, 0, 44, 0, 0, 0, + 0, 0, 0, 0, 92, 2, + 0, 0, 0, 0, 0, 0, + 109, 76, 97, 121, 101, 114, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 0, 3, 0, + 3, 0, 4, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 80, 114, 111, + 106, 101, 99, 116, 105, 111, + 110, 0, 118, 82, 101, 110, + 100, 101, 114, 84, 97, 114, + 103, 101, 116, 79, 102, 102, + 115, 101, 116, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 118, 84, 101, 120, + 116, 117, 114, 101, 67, 111, + 111, 114, 100, 115, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 76, + 97, 121, 101, 114, 81, 117, + 97, 100, 0, 118, 77, 97, + 115, 107, 81, 117, 97, 100, + 0, 109, 66, 97, 99, 107, + 100, 114, 111, 112, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 0, 102, 76, 97, 121, + 101, 114, 67, 111, 108, 111, + 114, 0, 102, 76, 97, 121, + 101, 114, 79, 112, 97, 99, + 105, 116, 121, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 105, 66, + 108, 101, 110, 100, 67, 111, + 110, 102, 105, 103, 0, 171, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 89, 117, 118, 67, 111, + 108, 111, 114, 77, 97, 116, + 114, 105, 120, 0, 2, 0, + 3, 0, 3, 0, 3, 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, 49, 48, 46, 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, + 3, 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, + 2, 0, 0, 0, 7, 8, + 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 +}; ShaderBytes sLayerQuadMaskVS = { LayerQuadMaskVS, sizeof(LayerQuadMaskVS) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 -// float fLayerOpacity; // Offset: 16 Size: 4 [unused] -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] -// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tMask texture float4 2d t5 1 -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float -// TEXCOORD 1 xyz 2 NONE float xyz -// -// -// 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 0 1 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t5 -// -// -// Level9 shader bytecode: -// - ps_2_x - dcl t1.xyz - dcl_2d s0 - rcp r0.w, t1.z - mul r0.xy, r0.w, t1 - texld r0, r0, s0 - mul r0, r0.x, c0 - mov oC0, r0 - -// approximately 5 instruction slots used (1 texture, 4 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[1], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t5 -dcl_input_ps linear v2.xyz -dcl_output o0.xyzw -dcl_temps 1 -div r0.xy, v2.xyxx, v2.zzzz -sample r0.xyzw, r0.xyxx, t5.xyzw, s0 -mul o0.xyzw, r0.xxxx, cb0[0].xyzw -ret -// Approximately 4 instruction slots used -#endif - -const BYTE SolidColorShaderMask[] = -{ - 68, 88, 66, 67, 11, 0, - 43, 127, 123, 42, 253, 228, - 4, 220, 7, 130, 11, 94, - 213, 177, 1, 0, 0, 0, - 164, 5, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 220, 0, 0, 0, 156, 1, - 0, 0, 24, 2, 0, 0, - 0, 5, 0, 0, 112, 5, - 0, 0, 65, 111, 110, 57, - 156, 0, 0, 0, 156, 0, - 0, 0, 0, 2, 255, 255, - 104, 0, 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, 5, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 255, 255, - 31, 0, 0, 2, 0, 0, - 0, 128, 1, 0, 7, 176, - 31, 0, 0, 2, 0, 0, - 0, 144, 0, 8, 15, 160, - 6, 0, 0, 2, 0, 0, - 8, 128, 1, 0, 170, 176, - 5, 0, 0, 3, 0, 0, - 3, 128, 0, 0, 255, 128, - 1, 0, 228, 176, 66, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 128, 0, 8, - 228, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 0, 128, 0, 0, 228, 160, - 1, 0, 0, 2, 0, 8, - 15, 128, 0, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 184, 0, 0, 0, - 64, 0, 0, 0, 46, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 90, 0, 0, 3, 0, 96, - 16, 0, 0, 0, 0, 0, - 88, 24, 0, 4, 0, 112, - 16, 0, 5, 0, 0, 0, - 85, 85, 0, 0, 98, 16, - 0, 3, 114, 16, 16, 0, - 2, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 104, 0, - 0, 2, 1, 0, 0, 0, - 14, 0, 0, 7, 50, 0, - 16, 0, 0, 0, 0, 0, - 70, 16, 16, 0, 2, 0, - 0, 0, 166, 26, 16, 0, - 2, 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, 5, 0, - 0, 0, 0, 96, 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, 0, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 116, 0, 0, 0, - 4, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 2, 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, - 224, 2, 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, 184, 2, - 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, - 1, 0, 0, 0, 133, 0, - 0, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 4, 0, - 0, 0, 255, 255, 255, 255, - 5, 0, 0, 0, 1, 0, - 0, 0, 13, 0, 0, 0, - 139, 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, 116, - 77, 97, 115, 107, 0, 36, - 71, 108, 111, 98, 97, 108, - 115, 0, 139, 0, 0, 0, - 11, 0, 0, 0, 172, 0, - 0, 0, 96, 1, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 180, 1, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 0, 2, 0, 0, 0, - 192, 1, 0, 0, 0, 0, - 0, 0, 208, 1, 0, 0, - 16, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 224, 1, 0, 0, 0, 0, - 0, 0, 240, 1, 0, 0, - 32, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 0, - 0, 0, 16, 2, 0, 0, - 48, 0, 0, 0, 44, 0, - 0, 0, 0, 0, 0, 0, - 32, 2, 0, 0, 0, 0, - 0, 0, 48, 2, 0, 0, - 96, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 64, 2, 0, 0, 0, 0, - 0, 0, 80, 2, 0, 0, - 160, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 64, 2, 0, 0, 0, 0, - 0, 0, 92, 2, 0, 0, - 224, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 192, 1, 0, 0, 0, 0, - 0, 0, 112, 2, 0, 0, - 240, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 128, 2, 0, 0, 0, 0, - 0, 0, 144, 2, 0, 0, - 0, 1, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 128, 2, 0, 0, 0, 0, - 0, 0, 155, 2, 0, 0, - 16, 1, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 128, 2, 0, 0, 0, 0, - 0, 0, 165, 2, 0, 0, - 32, 1, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 64, 2, 0, 0, 0, 0, - 0, 0, 102, 76, 97, 121, - 101, 114, 67, 111, 108, 111, - 114, 0, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 79, 112, 97, 99, 105, 116, - 121, 0, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 105, 66, 108, 101, - 110, 100, 67, 111, 110, 102, - 105, 103, 0, 171, 171, 171, - 1, 0, 19, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 89, - 117, 118, 67, 111, 108, 111, - 114, 77, 97, 116, 114, 105, - 120, 0, 2, 0, 3, 0, - 3, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 76, 97, 121, 101, 114, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 80, 114, 111, - 106, 101, 99, 116, 105, 111, - 110, 0, 118, 82, 101, 110, - 100, 101, 114, 84, 97, 114, - 103, 101, 116, 79, 102, 102, - 115, 101, 116, 0, 118, 84, - 101, 120, 116, 117, 114, 101, - 67, 111, 111, 114, 100, 115, - 0, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 76, 97, 121, 101, 114, - 81, 117, 97, 100, 0, 118, - 77, 97, 115, 107, 81, 117, - 97, 100, 0, 109, 66, 97, - 99, 107, 100, 114, 111, 112, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 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, 49, 48, 46, - 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, 0, 0, 0, - 92, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 7, 7, 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 -}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4x4 mLayerTransform; // Offset: 0 Size: 64 +// float4x4 mProjection; // Offset: 64 Size: 64 +// float4 vRenderTargetOffset; // Offset: 128 Size: 16 +// float4 vTextureCoords; // Offset: 144 Size: 16 [unused] +// float4 vLayerQuad; // Offset: 160 Size: 16 [unused] +// float4 vMaskQuad; // Offset: 176 Size: 16 +// float4x4 mBackdropTransform; // Offset: 192 Size: 64 [unused] +// float4 fLayerColor; // Offset: 256 Size: 16 [unused] +// float fLayerOpacity; // Offset: 272 Size: 4 [unused] +// uint4 iBlendConfig; // Offset: 288 Size: 16 [unused] +// row_major float3x3 mYuvColorMatrix;// Offset: 304 Size: 44 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// $Globals cbuffer NA NA cb0 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// POSITION 0 xy 0 NONE float xy +// TEXCOORD 0 xy 1 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 xyz 2 NONE float xyz +// +// +// Constant buffer to DX9 shader constant mappings: +// +// Target Reg Buffer Start Reg # of Regs Data Conversion +// ---------- ------- --------- --------- ---------------------- +// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) +// c3 cb0 3 6 ( FLT, FLT, FLT, FLT) +// c9 cb0 11 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 c10, 1, 0, 0, 0 + dcl_texcoord v0 + dcl_texcoord1 v1 + mov r0.z, c10.x + rcp r0.w, c9.z + mul r1, v0.y, c2 + mad r1, c1, v0.x, r1 + add r1, r1, c3 + add r2.xy, r1, -c9 + mul r0.x, r0.w, r2.x + rcp r0.w, c9.w + mul r0.y, r0.w, r2.y + mul oT1.xyz, r0, r1.w + rcp r0.x, r1.w + mul r1.xyz, r0.x, r1 + add r0, r1, -c8 + mul r0.xyz, r0.w, r0 + mul r1, r0.y, c5 + mad r1, c4, r0.x, r1 + mad r1, c6, r0.z, r1 + mad r0, c7, r0.w, r1 + mad oPos.xy, r0.w, c0, r0 + mov oPos.zw, r0 + mov oT0.xy, v1 + +// approximately 21 instruction slots used +vs_4_0 +dcl_constantbuffer CB0[12], immediateIndexed +dcl_input v0.xy +dcl_input v1.xy +dcl_output_siv o0.xyzw, position +dcl_output o1.xy +dcl_output o2.xyz +dcl_temps 4 +mul r0.xyzw, v0.yyyy, cb0[1].xyzw +mad r0.xyzw, cb0[0].xyzw, v0.xxxx, r0.xyzw +add r0.xyzw, r0.xyzw, cb0[3].xyzw +div r1.xyz, r0.xyzx, r0.wwww +mov r1.w, r0.w +add r2.xyzw, r1.xyzw, -cb0[8].xyzw +mul r1.xyz, r2.wwww, r2.xyzx +mul r3.xyzw, r1.yyyy, cb0[5].xyzw +mad r3.xyzw, cb0[4].xyzw, r1.xxxx, r3.xyzw +mad r3.xyzw, cb0[6].xyzw, r1.zzzz, r3.xyzw +mad o0.xyzw, cb0[7].xyzw, r2.wwww, r3.xyzw +mov o1.xy, v1.xyxx +add r0.xy, r0.xyxx, -cb0[11].xyxx +div r0.xy, r0.xyxx, cb0[11].zwzz +mov r0.z, l(1.000000) +mul o2.xyz, r1.wwww, r0.xyzx +ret +// Approximately 17 instruction slots used +#endif + +const BYTE LayerDynamicMaskVS[] = +{ + 68, 88, 66, 67, 79, 185, + 28, 146, 97, 84, 184, 108, + 120, 34, 45, 31, 188, 119, + 78, 218, 1, 0, 0, 0, + 80, 8, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 16, 2, 0, 0, 116, 4, + 0, 0, 240, 4, 0, 0, + 140, 7, 0, 0, 224, 7, + 0, 0, 65, 111, 110, 57, + 208, 1, 0, 0, 208, 1, + 0, 0, 0, 2, 254, 255, + 132, 1, 0, 0, 76, 0, + 0, 0, 3, 0, 36, 0, + 0, 0, 72, 0, 0, 0, + 72, 0, 0, 0, 36, 0, + 1, 0, 72, 0, 0, 0, + 0, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 11, 0, 1, 0, 9, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 254, 255, + 81, 0, 0, 5, 10, 0, + 15, 160, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 1, 0, 0, 2, 0, 0, + 4, 128, 10, 0, 0, 160, + 6, 0, 0, 2, 0, 0, + 8, 128, 9, 0, 170, 160, + 5, 0, 0, 3, 1, 0, + 15, 128, 0, 0, 85, 144, + 2, 0, 228, 160, 4, 0, + 0, 4, 1, 0, 15, 128, + 1, 0, 228, 160, 0, 0, + 0, 144, 1, 0, 228, 128, + 2, 0, 0, 3, 1, 0, + 15, 128, 1, 0, 228, 128, + 3, 0, 228, 160, 2, 0, + 0, 3, 2, 0, 3, 128, + 1, 0, 228, 128, 9, 0, + 228, 161, 5, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 255, 128, 2, 0, 0, 128, + 6, 0, 0, 2, 0, 0, + 8, 128, 9, 0, 255, 160, + 5, 0, 0, 3, 0, 0, + 2, 128, 0, 0, 255, 128, + 2, 0, 85, 128, 5, 0, + 0, 3, 1, 0, 7, 224, + 0, 0, 228, 128, 1, 0, + 255, 128, 6, 0, 0, 2, + 0, 0, 1, 128, 1, 0, + 255, 128, 5, 0, 0, 3, + 1, 0, 7, 128, 0, 0, + 0, 128, 1, 0, 228, 128, + 2, 0, 0, 3, 0, 0, + 15, 128, 1, 0, 228, 128, + 8, 0, 228, 161, 5, 0, + 0, 3, 0, 0, 7, 128, + 0, 0, 255, 128, 0, 0, + 228, 128, 5, 0, 0, 3, + 1, 0, 15, 128, 0, 0, + 85, 128, 5, 0, 228, 160, + 4, 0, 0, 4, 1, 0, + 15, 128, 4, 0, 228, 160, + 0, 0, 0, 128, 1, 0, + 228, 128, 4, 0, 0, 4, + 1, 0, 15, 128, 6, 0, + 228, 160, 0, 0, 170, 128, + 1, 0, 228, 128, 4, 0, + 0, 4, 0, 0, 15, 128, + 7, 0, 228, 160, 0, 0, + 255, 128, 1, 0, 228, 128, + 4, 0, 0, 4, 0, 0, + 3, 192, 0, 0, 255, 128, + 0, 0, 228, 160, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 12, 192, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 3, 224, 1, 0, + 228, 144, 255, 255, 0, 0, + 83, 72, 68, 82, 92, 2, + 0, 0, 64, 0, 1, 0, + 151, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 12, 0, + 0, 0, 95, 0, 0, 3, + 50, 16, 16, 0, 0, 0, + 0, 0, 95, 0, 0, 3, + 50, 16, 16, 0, 1, 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, 114, 32, + 16, 0, 2, 0, 0, 0, + 104, 0, 0, 2, 4, 0, + 0, 0, 56, 0, 0, 8, + 242, 0, 16, 0, 0, 0, + 0, 0, 86, 21, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 16, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 8, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 14, 0, + 0, 7, 114, 0, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 5, + 130, 0, 16, 0, 1, 0, + 0, 0, 58, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 0, 9, 242, 0, 16, 0, + 2, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 1, 0, 0, 0, 246, 15, + 16, 0, 2, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 56, 0, 0, 8, + 242, 0, 16, 0, 3, 0, + 0, 0, 86, 5, 16, 0, + 1, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 3, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 6, 0, + 16, 0, 1, 0, 0, 0, + 70, 14, 16, 0, 3, 0, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 3, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 6, 0, + 0, 0, 166, 10, 16, 0, + 1, 0, 0, 0, 70, 14, + 16, 0, 3, 0, 0, 0, + 50, 0, 0, 10, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 7, 0, 0, 0, + 246, 15, 16, 0, 2, 0, + 0, 0, 70, 14, 16, 0, + 3, 0, 0, 0, 54, 0, + 0, 5, 50, 32, 16, 0, + 1, 0, 0, 0, 70, 16, + 16, 0, 1, 0, 0, 0, + 0, 0, 0, 9, 50, 0, + 16, 0, 0, 0, 0, 0, + 70, 0, 16, 0, 0, 0, + 0, 0, 70, 128, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, + 14, 0, 0, 8, 50, 0, + 16, 0, 0, 0, 0, 0, + 70, 0, 16, 0, 0, 0, + 0, 0, 230, 138, 32, 0, + 0, 0, 0, 0, 11, 0, + 0, 0, 54, 0, 0, 5, + 66, 0, 16, 0, 0, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 128, 63, 56, 0, + 0, 7, 114, 32, 16, 0, + 2, 0, 0, 0, 246, 15, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 83, 84, 65, 84, 116, 0, + 0, 0, 17, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 13, 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, 148, 2, 0, 0, + 1, 0, 0, 0, 72, 0, + 0, 0, 1, 0, 0, 0, + 28, 0, 0, 0, 0, 4, + 254, 255, 0, 1, 0, 0, + 108, 2, 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, + 36, 71, 108, 111, 98, 97, + 108, 115, 0, 171, 171, 171, + 60, 0, 0, 0, 11, 0, + 0, 0, 96, 0, 0, 0, + 96, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 104, 1, 0, 0, 0, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 136, 1, 0, 0, 64, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 148, 1, 0, 0, 128, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 168, 1, + 0, 0, 0, 0, 0, 0, + 184, 1, 0, 0, 144, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 216, 1, 0, 0, 160, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 227, 1, 0, 0, 176, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 237, 1, 0, 0, 192, 0, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 168, 1, + 0, 0, 0, 0, 0, 0, + 12, 2, 0, 0, 16, 1, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 28, 2, + 0, 0, 0, 0, 0, 0, + 44, 2, 0, 0, 32, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 60, 2, + 0, 0, 0, 0, 0, 0, + 76, 2, 0, 0, 48, 1, + 0, 0, 44, 0, 0, 0, + 0, 0, 0, 0, 92, 2, + 0, 0, 0, 0, 0, 0, + 109, 76, 97, 121, 101, 114, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 0, 3, 0, + 3, 0, 4, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 80, 114, 111, + 106, 101, 99, 116, 105, 111, + 110, 0, 118, 82, 101, 110, + 100, 101, 114, 84, 97, 114, + 103, 101, 116, 79, 102, 102, + 115, 101, 116, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 118, 84, 101, 120, + 116, 117, 114, 101, 67, 111, + 111, 114, 100, 115, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 76, + 97, 121, 101, 114, 81, 117, + 97, 100, 0, 118, 77, 97, + 115, 107, 81, 117, 97, 100, + 0, 109, 66, 97, 99, 107, + 100, 114, 111, 112, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 0, 102, 76, 97, 121, + 101, 114, 67, 111, 108, 111, + 114, 0, 102, 76, 97, 121, + 101, 114, 79, 112, 97, 99, + 105, 116, 121, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 105, 66, + 108, 101, 110, 100, 67, 111, + 110, 102, 105, 103, 0, 171, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 89, 117, 118, 67, 111, + 108, 111, 114, 77, 97, 116, + 114, 105, 120, 0, 2, 0, + 3, 0, 3, 0, 3, 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, 49, 48, 46, 49, 0, + 73, 83, 71, 78, 76, 0, + 0, 0, 2, 0, 0, 0, + 8, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 3, 3, 0, 0, 65, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 3, 3, 0, 0, 80, 79, + 83, 73, 84, 73, 79, 78, + 0, 84, 69, 88, 67, 79, + 79, 82, 68, 0, 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, 2, 0, 0, 0, + 7, 8, 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 +}; +ShaderBytes sLayerDynamicMaskVS = { LayerDynamicMaskVS, sizeof(LayerDynamicMaskVS) }; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4 fLayerColor; // Offset: 0 Size: 16 +// float fLayerOpacity; // Offset: 16 Size: 4 [unused] +// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] +// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] +// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] +// float4x4 mProjection; // Offset: 160 Size: 64 [unused] +// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] +// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] +// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] +// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] +// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// sSampler sampler NA NA s0 1 +// tMask texture float4 2d t5 1 +// $Globals cbuffer NA NA cb0 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float +// TEXCOORD 0 xy 1 NONE float +// TEXCOORD 1 xyz 2 NONE float xyz +// +// +// 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 0 1 ( FLT, FLT, FLT, FLT) +// +// +// Sampler/Resource to DX9 shader sampler mappings: +// +// Target Sampler Source Sampler Source Resource +// -------------- --------------- ---------------- +// s0 s0 t5 +// +// +// Level9 shader bytecode: +// + ps_2_x + dcl t1.xyz + dcl_2d s0 + rcp r0.w, t1.z + mul r0.xy, r0.w, t1 + texld r0, r0, s0 + mul r0, r0.x, c0 + mov oC0, r0 + +// approximately 5 instruction slots used (1 texture, 4 arithmetic) +ps_4_0 +dcl_constantbuffer CB0[1], immediateIndexed +dcl_sampler s0, mode_default +dcl_resource_texture2d (float,float,float,float) t5 +dcl_input_ps linear v2.xyz +dcl_output o0.xyzw +dcl_temps 1 +div r0.xy, v2.xyxx, v2.zzzz +sample r0.xyzw, r0.xyxx, t5.xyzw, s0 +mul o0.xyzw, r0.xxxx, cb0[0].xyzw +ret +// Approximately 4 instruction slots used +#endif + +const BYTE SolidColorShaderMask[] = +{ + 68, 88, 66, 67, 11, 0, + 43, 127, 123, 42, 253, 228, + 4, 220, 7, 130, 11, 94, + 213, 177, 1, 0, 0, 0, + 164, 5, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 220, 0, 0, 0, 156, 1, + 0, 0, 24, 2, 0, 0, + 0, 5, 0, 0, 112, 5, + 0, 0, 65, 111, 110, 57, + 156, 0, 0, 0, 156, 0, + 0, 0, 0, 2, 255, 255, + 104, 0, 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, 5, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 255, 255, + 31, 0, 0, 2, 0, 0, + 0, 128, 1, 0, 7, 176, + 31, 0, 0, 2, 0, 0, + 0, 144, 0, 8, 15, 160, + 6, 0, 0, 2, 0, 0, + 8, 128, 1, 0, 170, 176, + 5, 0, 0, 3, 0, 0, + 3, 128, 0, 0, 255, 128, + 1, 0, 228, 176, 66, 0, + 0, 3, 0, 0, 15, 128, + 0, 0, 228, 128, 0, 8, + 228, 160, 5, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 0, 128, 0, 0, 228, 160, + 1, 0, 0, 2, 0, 8, + 15, 128, 0, 0, 228, 128, + 255, 255, 0, 0, 83, 72, + 68, 82, 184, 0, 0, 0, + 64, 0, 0, 0, 46, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 90, 0, 0, 3, 0, 96, + 16, 0, 0, 0, 0, 0, + 88, 24, 0, 4, 0, 112, + 16, 0, 5, 0, 0, 0, + 85, 85, 0, 0, 98, 16, + 0, 3, 114, 16, 16, 0, + 2, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 104, 0, + 0, 2, 1, 0, 0, 0, + 14, 0, 0, 7, 50, 0, + 16, 0, 0, 0, 0, 0, + 70, 16, 16, 0, 2, 0, + 0, 0, 166, 26, 16, 0, + 2, 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, 5, 0, + 0, 0, 0, 96, 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, 0, 0, 0, 0, + 62, 0, 0, 1, 83, 84, + 65, 84, 116, 0, 0, 0, + 4, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 2, 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, + 224, 2, 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, 184, 2, + 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, + 1, 0, 0, 0, 133, 0, + 0, 0, 2, 0, 0, 0, + 5, 0, 0, 0, 4, 0, + 0, 0, 255, 255, 255, 255, + 5, 0, 0, 0, 1, 0, + 0, 0, 13, 0, 0, 0, + 139, 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, 116, + 77, 97, 115, 107, 0, 36, + 71, 108, 111, 98, 97, 108, + 115, 0, 139, 0, 0, 0, + 11, 0, 0, 0, 172, 0, + 0, 0, 96, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 180, 1, 0, 0, + 0, 0, 0, 0, 16, 0, + 0, 0, 2, 0, 0, 0, + 192, 1, 0, 0, 0, 0, + 0, 0, 208, 1, 0, 0, + 16, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 224, 1, 0, 0, 0, 0, + 0, 0, 240, 1, 0, 0, + 32, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 0, + 0, 0, 16, 2, 0, 0, + 48, 0, 0, 0, 44, 0, + 0, 0, 0, 0, 0, 0, + 32, 2, 0, 0, 0, 0, + 0, 0, 48, 2, 0, 0, + 96, 0, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, + 64, 2, 0, 0, 0, 0, + 0, 0, 80, 2, 0, 0, + 160, 0, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, + 64, 2, 0, 0, 0, 0, + 0, 0, 92, 2, 0, 0, + 224, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 192, 1, 0, 0, 0, 0, + 0, 0, 112, 2, 0, 0, + 240, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 128, 2, 0, 0, 0, 0, + 0, 0, 144, 2, 0, 0, + 0, 1, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 128, 2, 0, 0, 0, 0, + 0, 0, 155, 2, 0, 0, + 16, 1, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 128, 2, 0, 0, 0, 0, + 0, 0, 165, 2, 0, 0, + 32, 1, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, + 64, 2, 0, 0, 0, 0, + 0, 0, 102, 76, 97, 121, + 101, 114, 67, 111, 108, 111, + 114, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 102, 76, 97, 121, 101, 114, + 79, 112, 97, 99, 105, 116, + 121, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 105, 66, 108, 101, + 110, 100, 67, 111, 110, 102, + 105, 103, 0, 171, 171, 171, + 1, 0, 19, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 89, + 117, 118, 67, 111, 108, 111, + 114, 77, 97, 116, 114, 105, + 120, 0, 2, 0, 3, 0, + 3, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 76, 97, 121, 101, 114, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 0, 3, 0, + 3, 0, 4, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 80, 114, 111, + 106, 101, 99, 116, 105, 111, + 110, 0, 118, 82, 101, 110, + 100, 101, 114, 84, 97, 114, + 103, 101, 116, 79, 102, 102, + 115, 101, 116, 0, 118, 84, + 101, 120, 116, 117, 114, 101, + 67, 111, 111, 114, 100, 115, + 0, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 118, 76, 97, 121, 101, 114, + 81, 117, 97, 100, 0, 118, + 77, 97, 115, 107, 81, 117, + 97, 100, 0, 109, 66, 97, + 99, 107, 100, 114, 111, 112, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 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, 49, 48, 46, + 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, 0, 0, 0, + 92, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 7, 7, 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 +}; ShaderBytes sSolidColorShaderMask = { SolidColorShaderMask, sizeof(SolidColorShaderMask) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 [unused] -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] -// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tRGB texture float4 2d t0 1 -// tMask texture float4 2d t5 1 -// $Globals cbuffer NA NA cb0 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 xyz 2 NONE float xyz -// -// -// 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 1 1 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t0 -// s1 s0 t5 -// -// -// Level9 shader bytecode: -// - ps_2_x - dcl t0.xy - dcl t1.xyz - dcl_2d s0 - dcl_2d s1 - rcp r0.w, t1.z - mul r0.xy, r0.w, t1 - texld r1, t0, s0 - texld r0, r0, s1 - mul r1.xyz, r1, c0.x - mov r1.w, c0.x - mul r0, r0.x, r1 - mov oC0, r0 - -// approximately 8 instruction slots used (2 texture, 6 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[2], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t0 -dcl_resource_texture2d (float,float,float,float) t5 -dcl_input_ps linear v1.xy -dcl_input_ps linear v2.xyz -dcl_output o0.xyzw -dcl_temps 2 -sample r0.xyzw, v1.xyxx, t0.xyzw, s0 -mul r0.xyz, r0.xyzx, cb0[1].xxxx -div r1.xy, v2.xyxx, v2.zzzz -sample r1.xyzw, r1.xyxx, t5.xyzw, s0 -mov r0.w, cb0[1].x -mul o0.xyzw, r0.xyzw, r1.xxxx -ret -// Approximately 7 instruction slots used -#endif - -const BYTE RGBShaderMask[] = -{ - 68, 88, 66, 67, 89, 221, - 15, 22, 232, 140, 114, 122, - 200, 15, 217, 125, 153, 18, - 224, 0, 1, 0, 0, 0, - 136, 6, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 36, 1, 0, 0, 88, 2, - 0, 0, 212, 2, 0, 0, - 228, 5, 0, 0, 84, 6, - 0, 0, 65, 111, 110, 57, - 228, 0, 0, 0, 228, 0, - 0, 0, 0, 2, 255, 255, - 172, 0, 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, 5, 0, 1, 0, - 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 1, 2, 255, 255, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 7, 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, 6, 0, - 0, 2, 0, 0, 8, 128, - 1, 0, 170, 176, 5, 0, - 0, 3, 0, 0, 3, 128, - 0, 0, 255, 128, 1, 0, - 228, 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, 1, 0, 7, 128, - 1, 0, 228, 128, 0, 0, - 0, 160, 1, 0, 0, 2, - 1, 0, 8, 128, 0, 0, - 0, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 0, 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, 44, 1, 0, 0, - 64, 0, 0, 0, 75, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 2, 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, 88, 24, - 0, 4, 0, 112, 16, 0, - 5, 0, 0, 0, 85, 85, - 0, 0, 98, 16, 0, 3, - 50, 16, 16, 0, 1, 0, - 0, 0, 98, 16, 0, 3, - 114, 16, 16, 0, 2, 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, 56, 0, - 0, 8, 114, 0, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 6, 128, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 14, 0, 0, 7, 50, 0, - 16, 0, 1, 0, 0, 0, - 70, 16, 16, 0, 2, 0, - 0, 0, 166, 26, 16, 0, - 2, 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, 5, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 54, 0, - 0, 6, 130, 0, 16, 0, - 0, 0, 0, 0, 10, 128, - 32, 0, 0, 0, 0, 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, - 6, 0, 16, 0, 1, 0, - 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 116, 0, - 0, 0, 7, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 3, 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, - 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, 3, 0, 0, - 1, 0, 0, 0, 188, 0, - 0, 0, 4, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 255, 255, 0, 1, 0, 0, - 224, 2, 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, 1, 0, 0, 0, - 165, 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, 13, 0, - 0, 0, 170, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 5, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 176, 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, 116, 82, 71, - 66, 0, 116, 77, 97, 115, - 107, 0, 36, 71, 108, 111, - 98, 97, 108, 115, 0, 171, - 171, 171, 176, 0, 0, 0, - 11, 0, 0, 0, 212, 0, - 0, 0, 96, 1, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 220, 1, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 232, 1, 0, 0, 0, 0, - 0, 0, 248, 1, 0, 0, - 16, 0, 0, 0, 4, 0, - 0, 0, 2, 0, 0, 0, - 8, 2, 0, 0, 0, 0, - 0, 0, 24, 2, 0, 0, - 32, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 40, 2, 0, 0, 0, 0, - 0, 0, 56, 2, 0, 0, - 48, 0, 0, 0, 44, 0, - 0, 0, 0, 0, 0, 0, - 72, 2, 0, 0, 0, 0, - 0, 0, 88, 2, 0, 0, - 96, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 104, 2, 0, 0, 0, 0, - 0, 0, 120, 2, 0, 0, - 160, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 104, 2, 0, 0, 0, 0, - 0, 0, 132, 2, 0, 0, - 224, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 232, 1, 0, 0, 0, 0, - 0, 0, 152, 2, 0, 0, - 240, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 168, 2, 0, 0, 0, 0, - 0, 0, 184, 2, 0, 0, - 0, 1, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 168, 2, 0, 0, 0, 0, - 0, 0, 195, 2, 0, 0, - 16, 1, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 168, 2, 0, 0, 0, 0, - 0, 0, 205, 2, 0, 0, - 32, 1, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 104, 2, 0, 0, 0, 0, - 0, 0, 102, 76, 97, 121, - 101, 114, 67, 111, 108, 111, - 114, 0, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 79, 112, 97, 99, 105, 116, - 121, 0, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 105, 66, 108, 101, - 110, 100, 67, 111, 110, 102, - 105, 103, 0, 171, 171, 171, - 1, 0, 19, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 89, - 117, 118, 67, 111, 108, 111, - 114, 77, 97, 116, 114, 105, - 120, 0, 2, 0, 3, 0, - 3, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 76, 97, 121, 101, 114, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 80, 114, 111, - 106, 101, 99, 116, 105, 111, - 110, 0, 118, 82, 101, 110, - 100, 101, 114, 84, 97, 114, - 103, 101, 116, 79, 102, 102, - 115, 101, 116, 0, 118, 84, - 101, 120, 116, 117, 114, 101, - 67, 111, 111, 114, 100, 115, - 0, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 76, 97, 121, 101, 114, - 81, 117, 97, 100, 0, 118, - 77, 97, 115, 107, 81, 117, - 97, 100, 0, 109, 66, 97, - 99, 107, 100, 114, 111, 112, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 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, 49, 48, 46, - 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, 2, 0, - 0, 0, 7, 7, 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 -}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4 fLayerColor; // Offset: 0 Size: 16 [unused] +// float fLayerOpacity; // Offset: 16 Size: 4 +// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] +// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] +// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] +// float4x4 mProjection; // Offset: 160 Size: 64 [unused] +// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] +// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] +// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] +// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] +// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// sSampler sampler NA NA s0 1 +// tRGB texture float4 2d t0 1 +// tMask texture float4 2d t5 1 +// $Globals cbuffer NA NA cb0 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 xyz 2 NONE float xyz +// +// +// 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 1 1 ( FLT, FLT, FLT, FLT) +// +// +// Sampler/Resource to DX9 shader sampler mappings: +// +// Target Sampler Source Sampler Source Resource +// -------------- --------------- ---------------- +// s0 s0 t0 +// s1 s0 t5 +// +// +// Level9 shader bytecode: +// + ps_2_x + dcl t0.xy + dcl t1.xyz + dcl_2d s0 + dcl_2d s1 + rcp r0.w, t1.z + mul r0.xy, r0.w, t1 + texld r1, t0, s0 + texld r0, r0, s1 + mul r1.xyz, r1, c0.x + mov r1.w, c0.x + mul r0, r0.x, r1 + mov oC0, r0 + +// approximately 8 instruction slots used (2 texture, 6 arithmetic) +ps_4_0 +dcl_constantbuffer CB0[2], immediateIndexed +dcl_sampler s0, mode_default +dcl_resource_texture2d (float,float,float,float) t0 +dcl_resource_texture2d (float,float,float,float) t5 +dcl_input_ps linear v1.xy +dcl_input_ps linear v2.xyz +dcl_output o0.xyzw +dcl_temps 2 +sample r0.xyzw, v1.xyxx, t0.xyzw, s0 +mul r0.xyz, r0.xyzx, cb0[1].xxxx +div r1.xy, v2.xyxx, v2.zzzz +sample r1.xyzw, r1.xyxx, t5.xyzw, s0 +mov r0.w, cb0[1].x +mul o0.xyzw, r0.xyzw, r1.xxxx +ret +// Approximately 7 instruction slots used +#endif + +const BYTE RGBShaderMask[] = +{ + 68, 88, 66, 67, 89, 221, + 15, 22, 232, 140, 114, 122, + 200, 15, 217, 125, 153, 18, + 224, 0, 1, 0, 0, 0, + 136, 6, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 36, 1, 0, 0, 88, 2, + 0, 0, 212, 2, 0, 0, + 228, 5, 0, 0, 84, 6, + 0, 0, 65, 111, 110, 57, + 228, 0, 0, 0, 228, 0, + 0, 0, 0, 2, 255, 255, + 172, 0, 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, 5, 0, 1, 0, + 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 1, 2, 255, 255, 31, 0, + 0, 2, 0, 0, 0, 128, + 0, 0, 3, 176, 31, 0, + 0, 2, 0, 0, 0, 128, + 1, 0, 7, 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, 6, 0, + 0, 2, 0, 0, 8, 128, + 1, 0, 170, 176, 5, 0, + 0, 3, 0, 0, 3, 128, + 0, 0, 255, 128, 1, 0, + 228, 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, 1, 0, 7, 128, + 1, 0, 228, 128, 0, 0, + 0, 160, 1, 0, 0, 2, + 1, 0, 8, 128, 0, 0, + 0, 160, 5, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 0, 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, 44, 1, 0, 0, + 64, 0, 0, 0, 75, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 2, 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, 88, 24, + 0, 4, 0, 112, 16, 0, + 5, 0, 0, 0, 85, 85, + 0, 0, 98, 16, 0, 3, + 50, 16, 16, 0, 1, 0, + 0, 0, 98, 16, 0, 3, + 114, 16, 16, 0, 2, 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, 56, 0, + 0, 8, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 6, 128, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 14, 0, 0, 7, 50, 0, + 16, 0, 1, 0, 0, 0, + 70, 16, 16, 0, 2, 0, + 0, 0, 166, 26, 16, 0, + 2, 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, 5, 0, + 0, 0, 0, 96, 16, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 130, 0, 16, 0, + 0, 0, 0, 0, 10, 128, + 32, 0, 0, 0, 0, 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, + 6, 0, 16, 0, 1, 0, + 0, 0, 62, 0, 0, 1, + 83, 84, 65, 84, 116, 0, + 0, 0, 7, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 3, 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, + 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, 3, 0, 0, + 1, 0, 0, 0, 188, 0, + 0, 0, 4, 0, 0, 0, + 28, 0, 0, 0, 0, 4, + 255, 255, 0, 1, 0, 0, + 224, 2, 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, 1, 0, 0, 0, + 165, 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, 13, 0, + 0, 0, 170, 0, 0, 0, + 2, 0, 0, 0, 5, 0, + 0, 0, 4, 0, 0, 0, + 255, 255, 255, 255, 5, 0, + 0, 0, 1, 0, 0, 0, + 13, 0, 0, 0, 176, 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, 116, 82, 71, + 66, 0, 116, 77, 97, 115, + 107, 0, 36, 71, 108, 111, + 98, 97, 108, 115, 0, 171, + 171, 171, 176, 0, 0, 0, + 11, 0, 0, 0, 212, 0, + 0, 0, 96, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 220, 1, 0, 0, + 0, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 232, 1, 0, 0, 0, 0, + 0, 0, 248, 1, 0, 0, + 16, 0, 0, 0, 4, 0, + 0, 0, 2, 0, 0, 0, + 8, 2, 0, 0, 0, 0, + 0, 0, 24, 2, 0, 0, + 32, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 40, 2, 0, 0, 0, 0, + 0, 0, 56, 2, 0, 0, + 48, 0, 0, 0, 44, 0, + 0, 0, 0, 0, 0, 0, + 72, 2, 0, 0, 0, 0, + 0, 0, 88, 2, 0, 0, + 96, 0, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, + 104, 2, 0, 0, 0, 0, + 0, 0, 120, 2, 0, 0, + 160, 0, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, + 104, 2, 0, 0, 0, 0, + 0, 0, 132, 2, 0, 0, + 224, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 232, 1, 0, 0, 0, 0, + 0, 0, 152, 2, 0, 0, + 240, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 168, 2, 0, 0, 0, 0, + 0, 0, 184, 2, 0, 0, + 0, 1, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 168, 2, 0, 0, 0, 0, + 0, 0, 195, 2, 0, 0, + 16, 1, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 168, 2, 0, 0, 0, 0, + 0, 0, 205, 2, 0, 0, + 32, 1, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, + 104, 2, 0, 0, 0, 0, + 0, 0, 102, 76, 97, 121, + 101, 114, 67, 111, 108, 111, + 114, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 102, 76, 97, 121, 101, 114, + 79, 112, 97, 99, 105, 116, + 121, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 105, 66, 108, 101, + 110, 100, 67, 111, 110, 102, + 105, 103, 0, 171, 171, 171, + 1, 0, 19, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 89, + 117, 118, 67, 111, 108, 111, + 114, 77, 97, 116, 114, 105, + 120, 0, 2, 0, 3, 0, + 3, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 76, 97, 121, 101, 114, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 0, 3, 0, + 3, 0, 4, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 80, 114, 111, + 106, 101, 99, 116, 105, 111, + 110, 0, 118, 82, 101, 110, + 100, 101, 114, 84, 97, 114, + 103, 101, 116, 79, 102, 102, + 115, 101, 116, 0, 118, 84, + 101, 120, 116, 117, 114, 101, + 67, 111, 111, 114, 100, 115, + 0, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 118, 76, 97, 121, 101, 114, + 81, 117, 97, 100, 0, 118, + 77, 97, 115, 107, 81, 117, + 97, 100, 0, 109, 66, 97, + 99, 107, 100, 114, 111, 112, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 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, 49, 48, 46, + 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, 2, 0, + 0, 0, 7, 7, 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 +}; ShaderBytes sRGBShaderMask = { RGBShaderMask, sizeof(RGBShaderMask) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 [unused] -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] -// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tRGB texture float4 2d t0 1 -// tMask texture float4 2d t5 1 -// $Globals cbuffer NA NA cb0 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 xyz 2 NONE float xyz -// -// -// 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 1 1 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t0 -// s1 s0 t5 -// -// -// Level9 shader bytecode: -// - ps_2_x - dcl t0.xy - dcl t1.xyz - dcl_2d s0 - dcl_2d s1 - rcp r0.w, t1.z - mul r0.xy, r0.w, t1 - texld r1, t0, s0 - texld r0, r0, s1 - mul r1, r1, c0.x - mul r0, r0.x, r1 - mov oC0, r0 - -// approximately 7 instruction slots used (2 texture, 5 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[2], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t0 -dcl_resource_texture2d (float,float,float,float) t5 -dcl_input_ps linear v1.xy -dcl_input_ps linear v2.xyz -dcl_output o0.xyzw -dcl_temps 2 -div r0.xy, v2.xyxx, v2.zzzz -sample r0.xyzw, r0.xyxx, t5.xyzw, s0 -sample r1.xyzw, v1.xyxx, t0.xyzw, s0 -mul r1.xyzw, r1.xyzw, cb0[1].xxxx -mul o0.xyzw, r0.xxxx, r1.xyzw -ret -// Approximately 6 instruction slots used -#endif - -const BYTE RGBAShaderMask[] = -{ - 68, 88, 66, 67, 195, 236, - 129, 118, 244, 48, 247, 117, - 155, 208, 5, 31, 9, 224, - 75, 19, 1, 0, 0, 0, - 100, 6, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 24, 1, 0, 0, 52, 2, - 0, 0, 176, 2, 0, 0, - 192, 5, 0, 0, 48, 6, - 0, 0, 65, 111, 110, 57, - 216, 0, 0, 0, 216, 0, - 0, 0, 0, 2, 255, 255, - 160, 0, 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, 5, 0, 1, 0, - 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 1, 2, 255, 255, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 128, - 1, 0, 7, 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, 6, 0, - 0, 2, 0, 0, 8, 128, - 1, 0, 170, 176, 5, 0, - 0, 3, 0, 0, 3, 128, - 0, 0, 255, 128, 1, 0, - 228, 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, 1, 0, 15, 128, - 1, 0, 228, 128, 0, 0, - 0, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 0, 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, 20, 1, 0, 0, - 64, 0, 0, 0, 69, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 2, 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, 88, 24, - 0, 4, 0, 112, 16, 0, - 5, 0, 0, 0, 85, 85, - 0, 0, 98, 16, 0, 3, - 50, 16, 16, 0, 1, 0, - 0, 0, 98, 16, 0, 3, - 114, 16, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 104, 0, 0, 2, - 2, 0, 0, 0, 14, 0, - 0, 7, 50, 0, 16, 0, - 0, 0, 0, 0, 70, 16, - 16, 0, 2, 0, 0, 0, - 166, 26, 16, 0, 2, 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, 5, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 1, 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, 56, 0, 0, 8, - 242, 0, 16, 0, 1, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 6, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 242, 32, 16, 0, - 0, 0, 0, 0, 6, 0, - 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, 6, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 3, 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, 8, 3, 0, 0, - 1, 0, 0, 0, 188, 0, - 0, 0, 4, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 255, 255, 0, 1, 0, 0, - 224, 2, 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, 1, 0, 0, 0, - 165, 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, 13, 0, - 0, 0, 170, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 5, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 176, 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, 116, 82, 71, - 66, 0, 116, 77, 97, 115, - 107, 0, 36, 71, 108, 111, - 98, 97, 108, 115, 0, 171, - 171, 171, 176, 0, 0, 0, - 11, 0, 0, 0, 212, 0, - 0, 0, 96, 1, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 220, 1, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 232, 1, 0, 0, 0, 0, - 0, 0, 248, 1, 0, 0, - 16, 0, 0, 0, 4, 0, - 0, 0, 2, 0, 0, 0, - 8, 2, 0, 0, 0, 0, - 0, 0, 24, 2, 0, 0, - 32, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 40, 2, 0, 0, 0, 0, - 0, 0, 56, 2, 0, 0, - 48, 0, 0, 0, 44, 0, - 0, 0, 0, 0, 0, 0, - 72, 2, 0, 0, 0, 0, - 0, 0, 88, 2, 0, 0, - 96, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 104, 2, 0, 0, 0, 0, - 0, 0, 120, 2, 0, 0, - 160, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 104, 2, 0, 0, 0, 0, - 0, 0, 132, 2, 0, 0, - 224, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 232, 1, 0, 0, 0, 0, - 0, 0, 152, 2, 0, 0, - 240, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 168, 2, 0, 0, 0, 0, - 0, 0, 184, 2, 0, 0, - 0, 1, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 168, 2, 0, 0, 0, 0, - 0, 0, 195, 2, 0, 0, - 16, 1, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 168, 2, 0, 0, 0, 0, - 0, 0, 205, 2, 0, 0, - 32, 1, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 104, 2, 0, 0, 0, 0, - 0, 0, 102, 76, 97, 121, - 101, 114, 67, 111, 108, 111, - 114, 0, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 79, 112, 97, 99, 105, 116, - 121, 0, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 105, 66, 108, 101, - 110, 100, 67, 111, 110, 102, - 105, 103, 0, 171, 171, 171, - 1, 0, 19, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 89, - 117, 118, 67, 111, 108, 111, - 114, 77, 97, 116, 114, 105, - 120, 0, 2, 0, 3, 0, - 3, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 76, 97, 121, 101, 114, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 80, 114, 111, - 106, 101, 99, 116, 105, 111, - 110, 0, 118, 82, 101, 110, - 100, 101, 114, 84, 97, 114, - 103, 101, 116, 79, 102, 102, - 115, 101, 116, 0, 118, 84, - 101, 120, 116, 117, 114, 101, - 67, 111, 111, 114, 100, 115, - 0, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 76, 97, 121, 101, 114, - 81, 117, 97, 100, 0, 118, - 77, 97, 115, 107, 81, 117, - 97, 100, 0, 109, 66, 97, - 99, 107, 100, 114, 111, 112, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 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, 49, 48, 46, - 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, 2, 0, - 0, 0, 7, 7, 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 -}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4 fLayerColor; // Offset: 0 Size: 16 [unused] +// float fLayerOpacity; // Offset: 16 Size: 4 +// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] +// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] +// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] +// float4x4 mProjection; // Offset: 160 Size: 64 [unused] +// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] +// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] +// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] +// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] +// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// sSampler sampler NA NA s0 1 +// tRGB texture float4 2d t0 1 +// tMask texture float4 2d t5 1 +// $Globals cbuffer NA NA cb0 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 xyz 2 NONE float xyz +// +// +// 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 1 1 ( FLT, FLT, FLT, FLT) +// +// +// Sampler/Resource to DX9 shader sampler mappings: +// +// Target Sampler Source Sampler Source Resource +// -------------- --------------- ---------------- +// s0 s0 t0 +// s1 s0 t5 +// +// +// Level9 shader bytecode: +// + ps_2_x + dcl t0.xy + dcl t1.xyz + dcl_2d s0 + dcl_2d s1 + rcp r0.w, t1.z + mul r0.xy, r0.w, t1 + texld r1, t0, s0 + texld r0, r0, s1 + mul r1, r1, c0.x + mul r0, r0.x, r1 + mov oC0, r0 + +// approximately 7 instruction slots used (2 texture, 5 arithmetic) +ps_4_0 +dcl_constantbuffer CB0[2], immediateIndexed +dcl_sampler s0, mode_default +dcl_resource_texture2d (float,float,float,float) t0 +dcl_resource_texture2d (float,float,float,float) t5 +dcl_input_ps linear v1.xy +dcl_input_ps linear v2.xyz +dcl_output o0.xyzw +dcl_temps 2 +div r0.xy, v2.xyxx, v2.zzzz +sample r0.xyzw, r0.xyxx, t5.xyzw, s0 +sample r1.xyzw, v1.xyxx, t0.xyzw, s0 +mul r1.xyzw, r1.xyzw, cb0[1].xxxx +mul o0.xyzw, r0.xxxx, r1.xyzw +ret +// Approximately 6 instruction slots used +#endif + +const BYTE RGBAShaderMask[] = +{ + 68, 88, 66, 67, 195, 236, + 129, 118, 244, 48, 247, 117, + 155, 208, 5, 31, 9, 224, + 75, 19, 1, 0, 0, 0, + 100, 6, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 24, 1, 0, 0, 52, 2, + 0, 0, 176, 2, 0, 0, + 192, 5, 0, 0, 48, 6, + 0, 0, 65, 111, 110, 57, + 216, 0, 0, 0, 216, 0, + 0, 0, 0, 2, 255, 255, + 160, 0, 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, 5, 0, 1, 0, + 0, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 1, 2, 255, 255, 31, 0, + 0, 2, 0, 0, 0, 128, + 0, 0, 3, 176, 31, 0, + 0, 2, 0, 0, 0, 128, + 1, 0, 7, 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, 6, 0, + 0, 2, 0, 0, 8, 128, + 1, 0, 170, 176, 5, 0, + 0, 3, 0, 0, 3, 128, + 0, 0, 255, 128, 1, 0, + 228, 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, 1, 0, 15, 128, + 1, 0, 228, 128, 0, 0, + 0, 160, 5, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 0, 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, 20, 1, 0, 0, + 64, 0, 0, 0, 69, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 2, 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, 88, 24, + 0, 4, 0, 112, 16, 0, + 5, 0, 0, 0, 85, 85, + 0, 0, 98, 16, 0, 3, + 50, 16, 16, 0, 1, 0, + 0, 0, 98, 16, 0, 3, + 114, 16, 16, 0, 2, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 104, 0, 0, 2, + 2, 0, 0, 0, 14, 0, + 0, 7, 50, 0, 16, 0, + 0, 0, 0, 0, 70, 16, + 16, 0, 2, 0, 0, 0, + 166, 26, 16, 0, 2, 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, 5, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 1, 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, 56, 0, 0, 8, + 242, 0, 16, 0, 1, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 6, 128, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 56, 0, + 0, 7, 242, 32, 16, 0, + 0, 0, 0, 0, 6, 0, + 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, 6, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 3, 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, 8, 3, 0, 0, + 1, 0, 0, 0, 188, 0, + 0, 0, 4, 0, 0, 0, + 28, 0, 0, 0, 0, 4, + 255, 255, 0, 1, 0, 0, + 224, 2, 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, 1, 0, 0, 0, + 165, 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, 13, 0, + 0, 0, 170, 0, 0, 0, + 2, 0, 0, 0, 5, 0, + 0, 0, 4, 0, 0, 0, + 255, 255, 255, 255, 5, 0, + 0, 0, 1, 0, 0, 0, + 13, 0, 0, 0, 176, 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, 116, 82, 71, + 66, 0, 116, 77, 97, 115, + 107, 0, 36, 71, 108, 111, + 98, 97, 108, 115, 0, 171, + 171, 171, 176, 0, 0, 0, + 11, 0, 0, 0, 212, 0, + 0, 0, 96, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 220, 1, 0, 0, + 0, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 232, 1, 0, 0, 0, 0, + 0, 0, 248, 1, 0, 0, + 16, 0, 0, 0, 4, 0, + 0, 0, 2, 0, 0, 0, + 8, 2, 0, 0, 0, 0, + 0, 0, 24, 2, 0, 0, + 32, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 40, 2, 0, 0, 0, 0, + 0, 0, 56, 2, 0, 0, + 48, 0, 0, 0, 44, 0, + 0, 0, 0, 0, 0, 0, + 72, 2, 0, 0, 0, 0, + 0, 0, 88, 2, 0, 0, + 96, 0, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, + 104, 2, 0, 0, 0, 0, + 0, 0, 120, 2, 0, 0, + 160, 0, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, + 104, 2, 0, 0, 0, 0, + 0, 0, 132, 2, 0, 0, + 224, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 232, 1, 0, 0, 0, 0, + 0, 0, 152, 2, 0, 0, + 240, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 168, 2, 0, 0, 0, 0, + 0, 0, 184, 2, 0, 0, + 0, 1, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 168, 2, 0, 0, 0, 0, + 0, 0, 195, 2, 0, 0, + 16, 1, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 168, 2, 0, 0, 0, 0, + 0, 0, 205, 2, 0, 0, + 32, 1, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, + 104, 2, 0, 0, 0, 0, + 0, 0, 102, 76, 97, 121, + 101, 114, 67, 111, 108, 111, + 114, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 102, 76, 97, 121, 101, 114, + 79, 112, 97, 99, 105, 116, + 121, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 105, 66, 108, 101, + 110, 100, 67, 111, 110, 102, + 105, 103, 0, 171, 171, 171, + 1, 0, 19, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 89, + 117, 118, 67, 111, 108, 111, + 114, 77, 97, 116, 114, 105, + 120, 0, 2, 0, 3, 0, + 3, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 76, 97, 121, 101, 114, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 0, 3, 0, + 3, 0, 4, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 80, 114, 111, + 106, 101, 99, 116, 105, 111, + 110, 0, 118, 82, 101, 110, + 100, 101, 114, 84, 97, 114, + 103, 101, 116, 79, 102, 102, + 115, 101, 116, 0, 118, 84, + 101, 120, 116, 117, 114, 101, + 67, 111, 111, 114, 100, 115, + 0, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 118, 76, 97, 121, 101, 114, + 81, 117, 97, 100, 0, 118, + 77, 97, 115, 107, 81, 117, + 97, 100, 0, 109, 66, 97, + 99, 107, 100, 114, 111, 112, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 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, 49, 48, 46, + 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, 2, 0, + 0, 0, 7, 7, 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 +}; ShaderBytes sRGBAShaderMask = { RGBAShaderMask, sizeof(RGBAShaderMask) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 [unused] -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] -// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tY texture float4 2d t1 1 -// tCb texture float4 2d t2 1 -// tCr texture float4 2d t3 1 -// tMask texture float4 2d t5 1 -// $Globals cbuffer NA NA cb0 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 xyz 2 NONE float xyz -// -// -// 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 1 1 ( FLT, FLT, FLT, FLT) -// c1 cb0 3 3 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t1 -// s1 s0 t2 -// s2 s0 t3 -// s3 s0 t5 -// -// -// Level9 shader bytecode: -// - ps_2_x - def c4, -0.0627499968, -0.50195998, 1, 0 - dcl t0.xy - dcl t1.xyz - dcl_2d s0 - dcl_2d s1 - dcl_2d s2 - dcl_2d s3 - mov r0.w, c4.z - texld r1, t0, s1 - texld r2, t0, s0 - add r2.x, r2.x, c4.x - add r2.y, r1.x, c4.y - rcp r2.w, t1.z - mul r1.xy, r2.w, t1 - texld r3, t0, s2 - texld r1, r1, s3 - add r2.z, r3.x, c4.y - dp3 r0.x, c1, r2 - dp3 r0.y, c2, r2 - dp3 r0.z, c3, r2 - mul r0, r0, c0.x - mul r0, r1.x, r0 - mov oC0, r0 - -// approximately 16 instruction slots used (4 texture, 12 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[6], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t1 -dcl_resource_texture2d (float,float,float,float) t2 -dcl_resource_texture2d (float,float,float,float) t3 -dcl_resource_texture2d (float,float,float,float) t5 -dcl_input_ps linear v1.xy -dcl_input_ps linear v2.xyz -dcl_output o0.xyzw -dcl_temps 3 -mov r0.w, l(1.000000) -sample r1.xyzw, v1.xyxx, t1.xyzw, s0 -add r1.x, r1.x, l(-0.062750) -sample r2.xyzw, v1.xyxx, t2.xyzw, s0 -add r1.y, r2.x, l(-0.501960) -sample r2.xyzw, v1.xyxx, t3.xyzw, s0 -add r1.z, r2.x, l(-0.501960) -dp3 r0.x, cb0[3].xyzx, r1.xyzx -dp3 r0.y, cb0[4].xyzx, r1.xyzx -dp3 r0.z, cb0[5].xyzx, r1.xyzx -mul r0.xyzw, r0.xyzw, cb0[1].xxxx -div r1.xy, v2.xyxx, v2.zzzz -sample r1.xyzw, r1.xyxx, t5.xyzw, s0 -mul o0.xyzw, r0.xyzw, r1.xxxx -ret -// Approximately 15 instruction slots used -#endif - -const BYTE YCbCrShaderMask[] = -{ - 68, 88, 66, 67, 239, 174, - 189, 163, 31, 16, 244, 108, - 86, 227, 23, 8, 28, 147, - 43, 62, 1, 0, 0, 0, - 168, 8, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 232, 1, 0, 0, 52, 4, - 0, 0, 176, 4, 0, 0, - 4, 8, 0, 0, 116, 8, - 0, 0, 65, 111, 110, 57, - 168, 1, 0, 0, 168, 1, - 0, 0, 0, 2, 255, 255, - 92, 1, 0, 0, 76, 0, - 0, 0, 2, 0, 52, 0, - 0, 0, 76, 0, 0, 0, - 76, 0, 4, 0, 36, 0, - 0, 0, 76, 0, 1, 0, - 0, 0, 2, 0, 1, 0, - 3, 0, 2, 0, 5, 0, - 3, 0, 0, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 3, 0, 1, 0, 0, 0, - 0, 0, 1, 2, 255, 255, - 81, 0, 0, 5, 4, 0, - 15, 160, 18, 131, 128, 189, - 115, 128, 0, 191, 0, 0, - 128, 63, 0, 0, 0, 0, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 3, 176, - 31, 0, 0, 2, 0, 0, - 0, 128, 1, 0, 7, 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, - 31, 0, 0, 2, 0, 0, - 0, 144, 2, 8, 15, 160, - 31, 0, 0, 2, 0, 0, - 0, 144, 3, 8, 15, 160, - 1, 0, 0, 2, 0, 0, - 8, 128, 4, 0, 170, 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, 176, 0, 8, - 228, 160, 2, 0, 0, 3, - 2, 0, 1, 128, 2, 0, - 0, 128, 4, 0, 0, 160, - 2, 0, 0, 3, 2, 0, - 2, 128, 1, 0, 0, 128, - 4, 0, 85, 160, 6, 0, - 0, 2, 2, 0, 8, 128, - 1, 0, 170, 176, 5, 0, - 0, 3, 1, 0, 3, 128, - 2, 0, 255, 128, 1, 0, - 228, 176, 66, 0, 0, 3, - 3, 0, 15, 128, 0, 0, - 228, 176, 2, 8, 228, 160, - 66, 0, 0, 3, 1, 0, - 15, 128, 1, 0, 228, 128, - 3, 8, 228, 160, 2, 0, - 0, 3, 2, 0, 4, 128, - 3, 0, 0, 128, 4, 0, - 85, 160, 8, 0, 0, 3, - 0, 0, 1, 128, 1, 0, - 228, 160, 2, 0, 228, 128, - 8, 0, 0, 3, 0, 0, - 2, 128, 2, 0, 228, 160, - 2, 0, 228, 128, 8, 0, - 0, 3, 0, 0, 4, 128, - 3, 0, 228, 160, 2, 0, - 228, 128, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 0, 0, 0, 160, - 5, 0, 0, 3, 0, 0, - 15, 128, 1, 0, 0, 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, - 68, 2, 0, 0, 64, 0, - 0, 0, 145, 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, 88, 24, - 0, 4, 0, 112, 16, 0, - 1, 0, 0, 0, 85, 85, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 2, 0, - 0, 0, 85, 85, 0, 0, - 88, 24, 0, 4, 0, 112, - 16, 0, 3, 0, 0, 0, - 85, 85, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 5, 0, 0, 0, 85, 85, - 0, 0, 98, 16, 0, 3, - 50, 16, 16, 0, 1, 0, - 0, 0, 98, 16, 0, 3, - 114, 16, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 104, 0, 0, 2, - 3, 0, 0, 0, 54, 0, - 0, 5, 130, 0, 16, 0, - 0, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 69, 0, 0, 9, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 16, 16, 0, 1, 0, - 0, 0, 70, 126, 16, 0, - 1, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 18, 0, - 16, 0, 1, 0, 0, 0, - 10, 0, 16, 0, 1, 0, - 0, 0, 1, 64, 0, 0, - 18, 131, 128, 189, 69, 0, - 0, 9, 242, 0, 16, 0, - 2, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 2, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 7, 34, 0, 16, 0, - 1, 0, 0, 0, 10, 0, - 16, 0, 2, 0, 0, 0, - 1, 64, 0, 0, 115, 128, - 0, 191, 69, 0, 0, 9, - 242, 0, 16, 0, 2, 0, - 0, 0, 70, 16, 16, 0, - 1, 0, 0, 0, 70, 126, - 16, 0, 3, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 7, - 66, 0, 16, 0, 1, 0, - 0, 0, 10, 0, 16, 0, - 2, 0, 0, 0, 1, 64, - 0, 0, 115, 128, 0, 191, - 16, 0, 0, 8, 18, 0, - 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 16, 0, 0, 8, - 34, 0, 16, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 16, 0, - 0, 8, 66, 0, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 56, 0, 0, 8, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 6, 128, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 14, 0, 0, 7, - 50, 0, 16, 0, 1, 0, - 0, 0, 70, 16, 16, 0, - 2, 0, 0, 0, 166, 26, - 16, 0, 2, 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, - 5, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 7, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 6, 0, 16, 0, - 1, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 116, 0, 0, 0, 15, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 9, 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, - 4, 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, 76, 3, - 0, 0, 1, 0, 0, 0, - 0, 1, 0, 0, 6, 0, - 0, 0, 28, 0, 0, 0, - 0, 4, 255, 255, 0, 1, - 0, 0, 36, 3, 0, 0, - 220, 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, 1, 0, - 0, 0, 229, 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, - 13, 0, 0, 0, 232, 0, - 0, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 4, 0, - 0, 0, 255, 255, 255, 255, - 2, 0, 0, 0, 1, 0, - 0, 0, 13, 0, 0, 0, - 236, 0, 0, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 255, 255, - 255, 255, 3, 0, 0, 0, - 1, 0, 0, 0, 13, 0, - 0, 0, 240, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 5, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 246, 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, 116, 89, 0, - 116, 67, 98, 0, 116, 67, - 114, 0, 116, 77, 97, 115, - 107, 0, 36, 71, 108, 111, - 98, 97, 108, 115, 0, 171, - 246, 0, 0, 0, 11, 0, - 0, 0, 24, 1, 0, 0, - 96, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 32, 2, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 44, 2, - 0, 0, 0, 0, 0, 0, - 60, 2, 0, 0, 16, 0, - 0, 0, 4, 0, 0, 0, - 2, 0, 0, 0, 76, 2, - 0, 0, 0, 0, 0, 0, - 92, 2, 0, 0, 32, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 108, 2, - 0, 0, 0, 0, 0, 0, - 124, 2, 0, 0, 48, 0, - 0, 0, 44, 0, 0, 0, - 2, 0, 0, 0, 140, 2, - 0, 0, 0, 0, 0, 0, - 156, 2, 0, 0, 96, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 172, 2, - 0, 0, 0, 0, 0, 0, - 188, 2, 0, 0, 160, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 172, 2, - 0, 0, 0, 0, 0, 0, - 200, 2, 0, 0, 224, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 44, 2, - 0, 0, 0, 0, 0, 0, - 220, 2, 0, 0, 240, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 236, 2, - 0, 0, 0, 0, 0, 0, - 252, 2, 0, 0, 0, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 236, 2, - 0, 0, 0, 0, 0, 0, - 7, 3, 0, 0, 16, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 236, 2, - 0, 0, 0, 0, 0, 0, - 17, 3, 0, 0, 32, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 172, 2, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 67, 111, 108, 111, 114, 0, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 76, - 97, 121, 101, 114, 79, 112, - 97, 99, 105, 116, 121, 0, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 118, 77, 97, - 115, 107, 81, 117, 97, 100, - 0, 109, 66, 97, 99, 107, - 100, 114, 111, 112, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 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, 49, 48, 46, 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, 2, 0, 0, 0, - 7, 7, 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 -}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4 fLayerColor; // Offset: 0 Size: 16 [unused] +// float fLayerOpacity; // Offset: 16 Size: 4 +// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] +// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 +// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] +// float4x4 mProjection; // Offset: 160 Size: 64 [unused] +// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] +// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] +// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] +// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] +// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// sSampler sampler NA NA s0 1 +// tY texture float4 2d t1 1 +// tCb texture float4 2d t2 1 +// tCr texture float4 2d t3 1 +// tMask texture float4 2d t5 1 +// $Globals cbuffer NA NA cb0 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 xyz 2 NONE float xyz +// +// +// 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 1 1 ( FLT, FLT, FLT, FLT) +// c1 cb0 3 3 ( FLT, FLT, FLT, FLT) +// +// +// Sampler/Resource to DX9 shader sampler mappings: +// +// Target Sampler Source Sampler Source Resource +// -------------- --------------- ---------------- +// s0 s0 t1 +// s1 s0 t2 +// s2 s0 t3 +// s3 s0 t5 +// +// +// Level9 shader bytecode: +// + ps_2_x + def c4, -0.0627499968, -0.50195998, 1, 0 + dcl t0.xy + dcl t1.xyz + dcl_2d s0 + dcl_2d s1 + dcl_2d s2 + dcl_2d s3 + mov r0.w, c4.z + texld r1, t0, s1 + texld r2, t0, s0 + add r2.x, r2.x, c4.x + add r2.y, r1.x, c4.y + rcp r2.w, t1.z + mul r1.xy, r2.w, t1 + texld r3, t0, s2 + texld r1, r1, s3 + add r2.z, r3.x, c4.y + dp3 r0.x, c1, r2 + dp3 r0.y, c2, r2 + dp3 r0.z, c3, r2 + mul r0, r0, c0.x + mul r0, r1.x, r0 + mov oC0, r0 + +// approximately 16 instruction slots used (4 texture, 12 arithmetic) +ps_4_0 +dcl_constantbuffer CB0[6], immediateIndexed +dcl_sampler s0, mode_default +dcl_resource_texture2d (float,float,float,float) t1 +dcl_resource_texture2d (float,float,float,float) t2 +dcl_resource_texture2d (float,float,float,float) t3 +dcl_resource_texture2d (float,float,float,float) t5 +dcl_input_ps linear v1.xy +dcl_input_ps linear v2.xyz +dcl_output o0.xyzw +dcl_temps 3 +mov r0.w, l(1.000000) +sample r1.xyzw, v1.xyxx, t1.xyzw, s0 +add r1.x, r1.x, l(-0.062750) +sample r2.xyzw, v1.xyxx, t2.xyzw, s0 +add r1.y, r2.x, l(-0.501960) +sample r2.xyzw, v1.xyxx, t3.xyzw, s0 +add r1.z, r2.x, l(-0.501960) +dp3 r0.x, cb0[3].xyzx, r1.xyzx +dp3 r0.y, cb0[4].xyzx, r1.xyzx +dp3 r0.z, cb0[5].xyzx, r1.xyzx +mul r0.xyzw, r0.xyzw, cb0[1].xxxx +div r1.xy, v2.xyxx, v2.zzzz +sample r1.xyzw, r1.xyxx, t5.xyzw, s0 +mul o0.xyzw, r0.xyzw, r1.xxxx +ret +// Approximately 15 instruction slots used +#endif + +const BYTE YCbCrShaderMask[] = +{ + 68, 88, 66, 67, 239, 174, + 189, 163, 31, 16, 244, 108, + 86, 227, 23, 8, 28, 147, + 43, 62, 1, 0, 0, 0, + 168, 8, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 232, 1, 0, 0, 52, 4, + 0, 0, 176, 4, 0, 0, + 4, 8, 0, 0, 116, 8, + 0, 0, 65, 111, 110, 57, + 168, 1, 0, 0, 168, 1, + 0, 0, 0, 2, 255, 255, + 92, 1, 0, 0, 76, 0, + 0, 0, 2, 0, 52, 0, + 0, 0, 76, 0, 0, 0, + 76, 0, 4, 0, 36, 0, + 0, 0, 76, 0, 1, 0, + 0, 0, 2, 0, 1, 0, + 3, 0, 2, 0, 5, 0, + 3, 0, 0, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 3, 0, 1, 0, 0, 0, + 0, 0, 1, 2, 255, 255, + 81, 0, 0, 5, 4, 0, + 15, 160, 18, 131, 128, 189, + 115, 128, 0, 191, 0, 0, + 128, 63, 0, 0, 0, 0, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 3, 176, + 31, 0, 0, 2, 0, 0, + 0, 128, 1, 0, 7, 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, + 31, 0, 0, 2, 0, 0, + 0, 144, 2, 8, 15, 160, + 31, 0, 0, 2, 0, 0, + 0, 144, 3, 8, 15, 160, + 1, 0, 0, 2, 0, 0, + 8, 128, 4, 0, 170, 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, 176, 0, 8, + 228, 160, 2, 0, 0, 3, + 2, 0, 1, 128, 2, 0, + 0, 128, 4, 0, 0, 160, + 2, 0, 0, 3, 2, 0, + 2, 128, 1, 0, 0, 128, + 4, 0, 85, 160, 6, 0, + 0, 2, 2, 0, 8, 128, + 1, 0, 170, 176, 5, 0, + 0, 3, 1, 0, 3, 128, + 2, 0, 255, 128, 1, 0, + 228, 176, 66, 0, 0, 3, + 3, 0, 15, 128, 0, 0, + 228, 176, 2, 8, 228, 160, + 66, 0, 0, 3, 1, 0, + 15, 128, 1, 0, 228, 128, + 3, 8, 228, 160, 2, 0, + 0, 3, 2, 0, 4, 128, + 3, 0, 0, 128, 4, 0, + 85, 160, 8, 0, 0, 3, + 0, 0, 1, 128, 1, 0, + 228, 160, 2, 0, 228, 128, + 8, 0, 0, 3, 0, 0, + 2, 128, 2, 0, 228, 160, + 2, 0, 228, 128, 8, 0, + 0, 3, 0, 0, 4, 128, + 3, 0, 228, 160, 2, 0, + 228, 128, 5, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 128, 0, 0, 0, 160, + 5, 0, 0, 3, 0, 0, + 15, 128, 1, 0, 0, 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, + 68, 2, 0, 0, 64, 0, + 0, 0, 145, 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, 88, 24, + 0, 4, 0, 112, 16, 0, + 1, 0, 0, 0, 85, 85, + 0, 0, 88, 24, 0, 4, + 0, 112, 16, 0, 2, 0, + 0, 0, 85, 85, 0, 0, + 88, 24, 0, 4, 0, 112, + 16, 0, 3, 0, 0, 0, + 85, 85, 0, 0, 88, 24, + 0, 4, 0, 112, 16, 0, + 5, 0, 0, 0, 85, 85, + 0, 0, 98, 16, 0, 3, + 50, 16, 16, 0, 1, 0, + 0, 0, 98, 16, 0, 3, + 114, 16, 16, 0, 2, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 104, 0, 0, 2, + 3, 0, 0, 0, 54, 0, + 0, 5, 130, 0, 16, 0, + 0, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 128, 63, + 69, 0, 0, 9, 242, 0, + 16, 0, 1, 0, 0, 0, + 70, 16, 16, 0, 1, 0, + 0, 0, 70, 126, 16, 0, + 1, 0, 0, 0, 0, 96, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 18, 0, + 16, 0, 1, 0, 0, 0, + 10, 0, 16, 0, 1, 0, + 0, 0, 1, 64, 0, 0, + 18, 131, 128, 189, 69, 0, + 0, 9, 242, 0, 16, 0, + 2, 0, 0, 0, 70, 16, + 16, 0, 1, 0, 0, 0, + 70, 126, 16, 0, 2, 0, + 0, 0, 0, 96, 16, 0, + 0, 0, 0, 0, 0, 0, + 0, 7, 34, 0, 16, 0, + 1, 0, 0, 0, 10, 0, + 16, 0, 2, 0, 0, 0, + 1, 64, 0, 0, 115, 128, + 0, 191, 69, 0, 0, 9, + 242, 0, 16, 0, 2, 0, + 0, 0, 70, 16, 16, 0, + 1, 0, 0, 0, 70, 126, + 16, 0, 3, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 7, + 66, 0, 16, 0, 1, 0, + 0, 0, 10, 0, 16, 0, + 2, 0, 0, 0, 1, 64, + 0, 0, 115, 128, 0, 191, + 16, 0, 0, 8, 18, 0, + 16, 0, 0, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 16, 0, 0, 8, + 34, 0, 16, 0, 0, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 4, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 16, 0, + 0, 8, 66, 0, 16, 0, + 0, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 56, 0, 0, 8, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 6, 128, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 14, 0, 0, 7, + 50, 0, 16, 0, 1, 0, + 0, 0, 70, 16, 16, 0, + 2, 0, 0, 0, 166, 26, + 16, 0, 2, 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, + 5, 0, 0, 0, 0, 96, + 16, 0, 0, 0, 0, 0, + 56, 0, 0, 7, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 6, 0, 16, 0, + 1, 0, 0, 0, 62, 0, + 0, 1, 83, 84, 65, 84, + 116, 0, 0, 0, 15, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 9, 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, + 4, 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, 76, 3, + 0, 0, 1, 0, 0, 0, + 0, 1, 0, 0, 6, 0, + 0, 0, 28, 0, 0, 0, + 0, 4, 255, 255, 0, 1, + 0, 0, 36, 3, 0, 0, + 220, 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, 1, 0, + 0, 0, 229, 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, + 13, 0, 0, 0, 232, 0, + 0, 0, 2, 0, 0, 0, + 5, 0, 0, 0, 4, 0, + 0, 0, 255, 255, 255, 255, + 2, 0, 0, 0, 1, 0, + 0, 0, 13, 0, 0, 0, + 236, 0, 0, 0, 2, 0, + 0, 0, 5, 0, 0, 0, + 4, 0, 0, 0, 255, 255, + 255, 255, 3, 0, 0, 0, + 1, 0, 0, 0, 13, 0, + 0, 0, 240, 0, 0, 0, + 2, 0, 0, 0, 5, 0, + 0, 0, 4, 0, 0, 0, + 255, 255, 255, 255, 5, 0, + 0, 0, 1, 0, 0, 0, + 13, 0, 0, 0, 246, 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, 116, 89, 0, + 116, 67, 98, 0, 116, 67, + 114, 0, 116, 77, 97, 115, + 107, 0, 36, 71, 108, 111, + 98, 97, 108, 115, 0, 171, + 246, 0, 0, 0, 11, 0, + 0, 0, 24, 1, 0, 0, + 96, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 32, 2, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 44, 2, + 0, 0, 0, 0, 0, 0, + 60, 2, 0, 0, 16, 0, + 0, 0, 4, 0, 0, 0, + 2, 0, 0, 0, 76, 2, + 0, 0, 0, 0, 0, 0, + 92, 2, 0, 0, 32, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 108, 2, + 0, 0, 0, 0, 0, 0, + 124, 2, 0, 0, 48, 0, + 0, 0, 44, 0, 0, 0, + 2, 0, 0, 0, 140, 2, + 0, 0, 0, 0, 0, 0, + 156, 2, 0, 0, 96, 0, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 172, 2, + 0, 0, 0, 0, 0, 0, + 188, 2, 0, 0, 160, 0, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 172, 2, + 0, 0, 0, 0, 0, 0, + 200, 2, 0, 0, 224, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 44, 2, + 0, 0, 0, 0, 0, 0, + 220, 2, 0, 0, 240, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 236, 2, + 0, 0, 0, 0, 0, 0, + 252, 2, 0, 0, 0, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 236, 2, + 0, 0, 0, 0, 0, 0, + 7, 3, 0, 0, 16, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 236, 2, + 0, 0, 0, 0, 0, 0, + 17, 3, 0, 0, 32, 1, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 172, 2, + 0, 0, 0, 0, 0, 0, + 102, 76, 97, 121, 101, 114, + 67, 111, 108, 111, 114, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 102, 76, + 97, 121, 101, 114, 79, 112, + 97, 99, 105, 116, 121, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 105, 66, 108, 101, 110, 100, + 67, 111, 110, 102, 105, 103, + 0, 171, 171, 171, 1, 0, + 19, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 89, 117, 118, + 67, 111, 108, 111, 114, 77, + 97, 116, 114, 105, 120, 0, + 2, 0, 3, 0, 3, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 76, + 97, 121, 101, 114, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 0, 3, 0, 3, 0, + 4, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 80, 114, 111, 106, 101, + 99, 116, 105, 111, 110, 0, + 118, 82, 101, 110, 100, 101, + 114, 84, 97, 114, 103, 101, + 116, 79, 102, 102, 115, 101, + 116, 0, 118, 84, 101, 120, + 116, 117, 114, 101, 67, 111, + 111, 114, 100, 115, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 76, + 97, 121, 101, 114, 81, 117, + 97, 100, 0, 118, 77, 97, + 115, 107, 81, 117, 97, 100, + 0, 109, 66, 97, 99, 107, + 100, 114, 111, 112, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 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, 49, 48, 46, 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, 2, 0, 0, 0, + 7, 7, 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 +}; ShaderBytes sYCbCrShaderMask = { YCbCrShaderMask, sizeof(YCbCrShaderMask) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 [unused] -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] -// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tRGB texture float4 2d t0 1 -// tRGBWhite texture float4 2d t4 1 -// tMask texture float4 2d t5 1 -// $Globals cbuffer NA NA cb0 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 xyz 2 NONE float xyz -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// SV_Target 1 xyzw 1 TARGET float xyzw -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c0 cb0 1 1 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t0 -// s1 s0 t4 -// s2 s0 t5 -// -// -// Level9 shader bytecode: -// - ps_2_x - def c1, 1, 0, 0, 0 - dcl t0.xy - dcl t1.xyz - dcl_2d s0 - dcl_2d s1 - dcl_2d s2 - rcp r0.w, t1.z - mul r0.xy, r0.w, t1 - texld r0, r0, s2 - mul r0.x, r0.x, c0.x - texld r1, t0, s0 - texld r2, t0, s1 - add r2, r1, -r2 - add r2, r2, c1.x - mov r1.w, r2.y - mul r2, r0.x, r2 - mul r0, r0.x, r1 - mov oC0, r0 - mov oC1, r2 - -// approximately 13 instruction slots used (3 texture, 10 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[2], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t0 -dcl_resource_texture2d (float,float,float,float) t4 -dcl_resource_texture2d (float,float,float,float) t5 -dcl_input_ps linear v1.xy -dcl_input_ps linear v2.xyz -dcl_output o0.xyzw -dcl_output o1.xyzw -dcl_temps 3 -div r0.xy, v2.xyxx, v2.zzzz -sample r0.xyzw, r0.xyxx, t5.xyzw, s0 -mul r0.x, r0.x, cb0[1].x -sample r1.xyzw, v1.xyxx, t4.xyzw, s0 -sample r2.xyzw, v1.xyxx, t0.xyzw, s0 -add r1.xyzw, -r1.xyzw, r2.xyzw -add r1.xyzw, r1.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000) -mov r2.w, r1.y -mul o1.xyzw, r0.xxxx, r1.xyzw -mul o0.xyzw, r0.xxxx, r2.xyzw -ret -// Approximately 11 instruction slots used -#endif - -const BYTE ComponentAlphaShaderMask[] = -{ - 68, 88, 66, 67, 53, 1, - 100, 182, 2, 181, 247, 136, - 91, 215, 208, 183, 243, 6, - 78, 16, 1, 0, 0, 0, - 220, 7, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 152, 1, 0, 0, 108, 3, - 0, 0, 232, 3, 0, 0, - 32, 7, 0, 0, 144, 7, - 0, 0, 65, 111, 110, 57, - 88, 1, 0, 0, 88, 1, - 0, 0, 0, 2, 255, 255, - 28, 1, 0, 0, 60, 0, - 0, 0, 1, 0, 48, 0, - 0, 0, 60, 0, 0, 0, - 60, 0, 3, 0, 36, 0, - 0, 0, 60, 0, 0, 0, - 0, 0, 4, 0, 1, 0, - 5, 0, 2, 0, 0, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 2, - 255, 255, 81, 0, 0, 5, - 1, 0, 15, 160, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 3, 176, 31, 0, 0, 2, - 0, 0, 0, 128, 1, 0, - 7, 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, 31, 0, 0, 2, - 0, 0, 0, 144, 2, 8, - 15, 160, 6, 0, 0, 2, - 0, 0, 8, 128, 1, 0, - 170, 176, 5, 0, 0, 3, - 0, 0, 3, 128, 0, 0, - 255, 128, 1, 0, 228, 176, - 66, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 2, 8, 228, 160, 5, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 0, 128, 0, 0, - 0, 160, 66, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 228, 176, 0, 8, 228, 160, - 66, 0, 0, 3, 2, 0, - 15, 128, 0, 0, 228, 176, - 1, 8, 228, 160, 2, 0, - 0, 3, 2, 0, 15, 128, - 1, 0, 228, 128, 2, 0, - 228, 129, 2, 0, 0, 3, - 2, 0, 15, 128, 2, 0, - 228, 128, 1, 0, 0, 160, - 1, 0, 0, 2, 1, 0, - 8, 128, 2, 0, 85, 128, - 5, 0, 0, 3, 2, 0, - 15, 128, 0, 0, 0, 128, - 2, 0, 228, 128, 5, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 0, 128, 1, 0, - 228, 128, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 1, 0, 0, 2, - 1, 8, 15, 128, 2, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 204, 1, - 0, 0, 64, 0, 0, 0, - 115, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 2, 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, - 88, 24, 0, 4, 0, 112, - 16, 0, 4, 0, 0, 0, - 85, 85, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 5, 0, 0, 0, 85, 85, - 0, 0, 98, 16, 0, 3, - 50, 16, 16, 0, 1, 0, - 0, 0, 98, 16, 0, 3, - 114, 16, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 1, 0, - 0, 0, 104, 0, 0, 2, - 3, 0, 0, 0, 14, 0, - 0, 7, 50, 0, 16, 0, - 0, 0, 0, 0, 70, 16, - 16, 0, 2, 0, 0, 0, - 166, 26, 16, 0, 2, 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, 5, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 18, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 10, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 4, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 2, 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, 0, 0, - 0, 8, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 14, - 16, 128, 65, 0, 0, 0, - 1, 0, 0, 0, 70, 14, - 16, 0, 2, 0, 0, 0, - 0, 0, 0, 10, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 128, 63, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 128, 63, 54, 0, - 0, 5, 130, 0, 16, 0, - 2, 0, 0, 0, 26, 0, - 16, 0, 1, 0, 0, 0, - 56, 0, 0, 7, 242, 32, - 16, 0, 1, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 242, 32, 16, 0, - 0, 0, 0, 0, 6, 0, - 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, 11, 0, 0, 0, - 3, 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, 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, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 68, - 69, 70, 48, 3, 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, - 8, 3, 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, 1, 0, 0, 0, - 197, 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, 13, 0, - 0, 0, 202, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 4, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 212, 0, - 0, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 4, 0, - 0, 0, 255, 255, 255, 255, - 5, 0, 0, 0, 1, 0, - 0, 0, 13, 0, 0, 0, - 218, 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, 116, - 82, 71, 66, 0, 116, 82, - 71, 66, 87, 104, 105, 116, - 101, 0, 116, 77, 97, 115, - 107, 0, 36, 71, 108, 111, - 98, 97, 108, 115, 0, 171, - 218, 0, 0, 0, 11, 0, - 0, 0, 252, 0, 0, 0, - 96, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 4, 2, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 16, 2, - 0, 0, 0, 0, 0, 0, - 32, 2, 0, 0, 16, 0, - 0, 0, 4, 0, 0, 0, - 2, 0, 0, 0, 48, 2, - 0, 0, 0, 0, 0, 0, - 64, 2, 0, 0, 32, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 80, 2, - 0, 0, 0, 0, 0, 0, - 96, 2, 0, 0, 48, 0, - 0, 0, 44, 0, 0, 0, - 0, 0, 0, 0, 112, 2, - 0, 0, 0, 0, 0, 0, - 128, 2, 0, 0, 96, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 144, 2, - 0, 0, 0, 0, 0, 0, - 160, 2, 0, 0, 160, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 144, 2, - 0, 0, 0, 0, 0, 0, - 172, 2, 0, 0, 224, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 16, 2, - 0, 0, 0, 0, 0, 0, - 192, 2, 0, 0, 240, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 208, 2, - 0, 0, 0, 0, 0, 0, - 224, 2, 0, 0, 0, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 208, 2, - 0, 0, 0, 0, 0, 0, - 235, 2, 0, 0, 16, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 208, 2, - 0, 0, 0, 0, 0, 0, - 245, 2, 0, 0, 32, 1, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 144, 2, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 67, 111, 108, 111, 114, 0, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 76, - 97, 121, 101, 114, 79, 112, - 97, 99, 105, 116, 121, 0, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 105, 66, 108, 101, 110, 100, - 67, 111, 110, 102, 105, 103, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 89, 117, 118, - 67, 111, 108, 111, 114, 77, - 97, 116, 114, 105, 120, 0, - 2, 0, 3, 0, 3, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 118, 77, 97, - 115, 107, 81, 117, 97, 100, - 0, 109, 66, 97, 99, 107, - 100, 114, 111, 112, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 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, 49, 48, 46, 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, 2, 0, 0, 0, - 7, 7, 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, 68, 0, 0, 0, - 2, 0, 0, 0, 8, 0, - 0, 0, 56, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 56, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 15, 0, - 0, 0, 83, 86, 95, 84, - 97, 114, 103, 101, 116, 0, - 171, 171 -}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4 fLayerColor; // Offset: 0 Size: 16 [unused] +// float fLayerOpacity; // Offset: 16 Size: 4 +// uint4 iBlendConfig; // Offset: 32 Size: 16 [unused] +// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 [unused] +// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] +// float4x4 mProjection; // Offset: 160 Size: 64 [unused] +// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] +// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] +// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] +// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] +// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// sSampler sampler NA NA s0 1 +// tRGB texture float4 2d t0 1 +// tRGBWhite texture float4 2d t4 1 +// tMask texture float4 2d t5 1 +// $Globals cbuffer NA NA cb0 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 xyz 2 NONE float xyz +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// +// +// Constant buffer to DX9 shader constant mappings: +// +// Target Reg Buffer Start Reg # of Regs Data Conversion +// ---------- ------- --------- --------- ---------------------- +// c0 cb0 1 1 ( FLT, FLT, FLT, FLT) +// +// +// Sampler/Resource to DX9 shader sampler mappings: +// +// Target Sampler Source Sampler Source Resource +// -------------- --------------- ---------------- +// s0 s0 t0 +// s1 s0 t4 +// s2 s0 t5 +// +// +// Level9 shader bytecode: +// + ps_2_x + def c1, 1, 0, 0, 0 + dcl t0.xy + dcl t1.xyz + dcl_2d s0 + dcl_2d s1 + dcl_2d s2 + rcp r0.w, t1.z + mul r0.xy, r0.w, t1 + texld r0, r0, s2 + mul r0.x, r0.x, c0.x + texld r1, t0, s0 + texld r2, t0, s1 + add r2, r1, -r2 + add r2, r2, c1.x + mov r1.w, r2.y + mul r2, r0.x, r2 + mul r0, r0.x, r1 + mov oC0, r0 + mov oC1, r2 + +// approximately 13 instruction slots used (3 texture, 10 arithmetic) +ps_4_0 +dcl_constantbuffer CB0[2], immediateIndexed +dcl_sampler s0, mode_default +dcl_resource_texture2d (float,float,float,float) t0 +dcl_resource_texture2d (float,float,float,float) t4 +dcl_resource_texture2d (float,float,float,float) t5 +dcl_input_ps linear v1.xy +dcl_input_ps linear v2.xyz +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 3 +div r0.xy, v2.xyxx, v2.zzzz +sample r0.xyzw, r0.xyxx, t5.xyzw, s0 +mul r0.x, r0.x, cb0[1].x +sample r1.xyzw, v1.xyxx, t4.xyzw, s0 +sample r2.xyzw, v1.xyxx, t0.xyzw, s0 +add r1.xyzw, -r1.xyzw, r2.xyzw +add r1.xyzw, r1.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000) +mov r2.w, r1.y +mul o1.xyzw, r0.xxxx, r1.xyzw +mul o0.xyzw, r0.xxxx, r2.xyzw +ret +// Approximately 11 instruction slots used +#endif + +const BYTE ComponentAlphaShaderMask[] = +{ + 68, 88, 66, 67, 53, 1, + 100, 182, 2, 181, 247, 136, + 91, 215, 208, 183, 243, 6, + 78, 16, 1, 0, 0, 0, + 220, 7, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 152, 1, 0, 0, 108, 3, + 0, 0, 232, 3, 0, 0, + 32, 7, 0, 0, 144, 7, + 0, 0, 65, 111, 110, 57, + 88, 1, 0, 0, 88, 1, + 0, 0, 0, 2, 255, 255, + 28, 1, 0, 0, 60, 0, + 0, 0, 1, 0, 48, 0, + 0, 0, 60, 0, 0, 0, + 60, 0, 3, 0, 36, 0, + 0, 0, 60, 0, 0, 0, + 0, 0, 4, 0, 1, 0, + 5, 0, 2, 0, 0, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 2, + 255, 255, 81, 0, 0, 5, + 1, 0, 15, 160, 0, 0, + 128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 3, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 1, 0, + 7, 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, 31, 0, 0, 2, + 0, 0, 0, 144, 2, 8, + 15, 160, 6, 0, 0, 2, + 0, 0, 8, 128, 1, 0, + 170, 176, 5, 0, 0, 3, + 0, 0, 3, 128, 0, 0, + 255, 128, 1, 0, 228, 176, + 66, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 128, + 2, 8, 228, 160, 5, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 0, 128, 0, 0, + 0, 160, 66, 0, 0, 3, + 1, 0, 15, 128, 0, 0, + 228, 176, 0, 8, 228, 160, + 66, 0, 0, 3, 2, 0, + 15, 128, 0, 0, 228, 176, + 1, 8, 228, 160, 2, 0, + 0, 3, 2, 0, 15, 128, + 1, 0, 228, 128, 2, 0, + 228, 129, 2, 0, 0, 3, + 2, 0, 15, 128, 2, 0, + 228, 128, 1, 0, 0, 160, + 1, 0, 0, 2, 1, 0, + 8, 128, 2, 0, 85, 128, + 5, 0, 0, 3, 2, 0, + 15, 128, 0, 0, 0, 128, + 2, 0, 228, 128, 5, 0, + 0, 3, 0, 0, 15, 128, + 0, 0, 0, 128, 1, 0, + 228, 128, 1, 0, 0, 2, + 0, 8, 15, 128, 0, 0, + 228, 128, 1, 0, 0, 2, + 1, 8, 15, 128, 2, 0, + 228, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 204, 1, + 0, 0, 64, 0, 0, 0, + 115, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 2, 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, + 88, 24, 0, 4, 0, 112, + 16, 0, 4, 0, 0, 0, + 85, 85, 0, 0, 88, 24, + 0, 4, 0, 112, 16, 0, + 5, 0, 0, 0, 85, 85, + 0, 0, 98, 16, 0, 3, + 50, 16, 16, 0, 1, 0, + 0, 0, 98, 16, 0, 3, + 114, 16, 16, 0, 2, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 1, 0, + 0, 0, 104, 0, 0, 2, + 3, 0, 0, 0, 14, 0, + 0, 7, 50, 0, 16, 0, + 0, 0, 0, 0, 70, 16, + 16, 0, 2, 0, 0, 0, + 166, 26, 16, 0, 2, 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, 5, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 8, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 10, 128, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 69, 0, + 0, 9, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 16, + 16, 0, 1, 0, 0, 0, + 70, 126, 16, 0, 4, 0, + 0, 0, 0, 96, 16, 0, + 0, 0, 0, 0, 69, 0, + 0, 9, 242, 0, 16, 0, + 2, 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, 0, 0, + 0, 8, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 14, + 16, 128, 65, 0, 0, 0, + 1, 0, 0, 0, 70, 14, + 16, 0, 2, 0, 0, 0, + 0, 0, 0, 10, 242, 0, + 16, 0, 1, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 128, 63, 0, 0, + 128, 63, 0, 0, 128, 63, + 0, 0, 128, 63, 54, 0, + 0, 5, 130, 0, 16, 0, + 2, 0, 0, 0, 26, 0, + 16, 0, 1, 0, 0, 0, + 56, 0, 0, 7, 242, 32, + 16, 0, 1, 0, 0, 0, + 6, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 56, 0, + 0, 7, 242, 32, 16, 0, + 0, 0, 0, 0, 6, 0, + 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, 11, 0, 0, 0, + 3, 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, 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, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 68, + 69, 70, 48, 3, 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, + 8, 3, 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, 1, 0, 0, 0, + 197, 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, 13, 0, + 0, 0, 202, 0, 0, 0, + 2, 0, 0, 0, 5, 0, + 0, 0, 4, 0, 0, 0, + 255, 255, 255, 255, 4, 0, + 0, 0, 1, 0, 0, 0, + 13, 0, 0, 0, 212, 0, + 0, 0, 2, 0, 0, 0, + 5, 0, 0, 0, 4, 0, + 0, 0, 255, 255, 255, 255, + 5, 0, 0, 0, 1, 0, + 0, 0, 13, 0, 0, 0, + 218, 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, 116, + 82, 71, 66, 0, 116, 82, + 71, 66, 87, 104, 105, 116, + 101, 0, 116, 77, 97, 115, + 107, 0, 36, 71, 108, 111, + 98, 97, 108, 115, 0, 171, + 218, 0, 0, 0, 11, 0, + 0, 0, 252, 0, 0, 0, + 96, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 4, 2, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 16, 2, + 0, 0, 0, 0, 0, 0, + 32, 2, 0, 0, 16, 0, + 0, 0, 4, 0, 0, 0, + 2, 0, 0, 0, 48, 2, + 0, 0, 0, 0, 0, 0, + 64, 2, 0, 0, 32, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 80, 2, + 0, 0, 0, 0, 0, 0, + 96, 2, 0, 0, 48, 0, + 0, 0, 44, 0, 0, 0, + 0, 0, 0, 0, 112, 2, + 0, 0, 0, 0, 0, 0, + 128, 2, 0, 0, 96, 0, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 144, 2, + 0, 0, 0, 0, 0, 0, + 160, 2, 0, 0, 160, 0, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 144, 2, + 0, 0, 0, 0, 0, 0, + 172, 2, 0, 0, 224, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 16, 2, + 0, 0, 0, 0, 0, 0, + 192, 2, 0, 0, 240, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 208, 2, + 0, 0, 0, 0, 0, 0, + 224, 2, 0, 0, 0, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 208, 2, + 0, 0, 0, 0, 0, 0, + 235, 2, 0, 0, 16, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 208, 2, + 0, 0, 0, 0, 0, 0, + 245, 2, 0, 0, 32, 1, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 144, 2, + 0, 0, 0, 0, 0, 0, + 102, 76, 97, 121, 101, 114, + 67, 111, 108, 111, 114, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 102, 76, + 97, 121, 101, 114, 79, 112, + 97, 99, 105, 116, 121, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 105, 66, 108, 101, 110, 100, + 67, 111, 110, 102, 105, 103, + 0, 171, 171, 171, 1, 0, + 19, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 89, 117, 118, + 67, 111, 108, 111, 114, 77, + 97, 116, 114, 105, 120, 0, + 2, 0, 3, 0, 3, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 76, + 97, 121, 101, 114, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 0, 3, 0, 3, 0, + 4, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 80, 114, 111, 106, 101, + 99, 116, 105, 111, 110, 0, + 118, 82, 101, 110, 100, 101, + 114, 84, 97, 114, 103, 101, + 116, 79, 102, 102, 115, 101, + 116, 0, 118, 84, 101, 120, + 116, 117, 114, 101, 67, 111, + 111, 114, 100, 115, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 76, + 97, 121, 101, 114, 81, 117, + 97, 100, 0, 118, 77, 97, + 115, 107, 81, 117, 97, 100, + 0, 109, 66, 97, 99, 107, + 100, 114, 111, 112, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 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, 49, 48, 46, 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, 2, 0, 0, 0, + 7, 7, 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, 68, 0, 0, 0, + 2, 0, 0, 0, 8, 0, + 0, 0, 56, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 56, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 15, 0, + 0, 0, 83, 86, 95, 84, + 97, 114, 103, 101, 116, 0, + 171, 171 +}; ShaderBytes sComponentAlphaShaderMask = { ComponentAlphaShaderMask, sizeof(ComponentAlphaShaderMask) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4x4 mLayerTransform; // Offset: 0 Size: 64 -// float4x4 mProjection; // Offset: 64 Size: 64 -// float4 vRenderTargetOffset; // Offset: 128 Size: 16 -// float4 vTextureCoords; // Offset: 144 Size: 16 -// float4 vLayerQuad; // Offset: 160 Size: 16 -// float4 vMaskQuad; // Offset: 176 Size: 16 [unused] -// float4x4 mBackdropTransform; // Offset: 192 Size: 64 -// float4 fLayerColor; // Offset: 256 Size: 16 [unused] -// float fLayerOpacity; // Offset: 272 Size: 4 [unused] -// uint4 iBlendConfig; // Offset: 288 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 304 Size: 44 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// POSITION 0 xy 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 2 zw 1 NONE float zw -// TEXCOORD 1 xyz 2 NONE float xyz -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) -// c3 cb0 3 8 ( FLT, FLT, FLT, FLT) -// c11 cb0 12 2 ( FLT, FLT, FLT, FLT) -// c13 cb0 15 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 c14, 1, 0.5, 0, 0 - dcl_texcoord v0 - mad oT0.xy, v0, c9.zwzw, c9 - mad r0.xy, v0, c10.zwzw, c10 - mul r1, r0.y, c2 - mad r0, c1, r0.x, r1 - add r0, r0, c3 - rcp r1.x, r0.w - mul r0.xyz, r0, r1.x - add r0, r0, -c8 - mul r0.xyz, r0.w, r0 - mul r1, r0.y, c5 - mad r1, c4, r0.x, r1 - mad r1, c6, r0.z, r1 - mad r0, c7, r0.w, r1 - add r1.xy, r0, c14.x - mad r1.y, r1.y, -c14.y, c14.x - mul r1.x, r1.x, c14.y - mul r1.yz, r1.y, c12.xyxw - mad r1.xy, c11.yxzw, r1.x, r1.yzzw - add oT0.zw, r1.xyxy, c13.xyyx - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - mov oT1.xyz, c14.z - -// approximately 22 instruction slots used -vs_4_0 -dcl_constantbuffer CB0[16], immediateIndexed -dcl_input v0.xy -dcl_output_siv o0.xyzw, position -dcl_output o1.xy -dcl_output o1.zw -dcl_output o2.xyz -dcl_temps 2 -mad r0.xy, v0.xyxx, cb0[10].zwzz, cb0[10].xyxx -mul r1.xyzw, r0.yyyy, cb0[1].xyzw -mad r0.xyzw, cb0[0].xyzw, r0.xxxx, r1.xyzw -add r0.xyzw, r0.xyzw, cb0[3].xyzw -div r0.xyz, r0.xyzx, r0.wwww -add r0.xyzw, r0.xyzw, -cb0[8].xyzw -mul r0.xyz, r0.wwww, r0.xyzx -mul r1.xyzw, r0.yyyy, cb0[5].xyzw -mad r1.xyzw, cb0[4].xyzw, r0.xxxx, r1.xyzw -mad r1.xyzw, cb0[6].xyzw, r0.zzzz, r1.xyzw -mad r0.xyzw, cb0[7].xyzw, r0.wwww, r1.xyzw -mov o0.xyzw, r0.xyzw -add r0.xy, r0.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) -mad r0.y, -r0.y, l(0.500000), l(1.000000) -mul r0.x, r0.x, l(0.500000) -mul r0.yz, r0.yyyy, cb0[13].xxyx -mad r0.xy, cb0[12].xyxx, r0.xxxx, r0.yzyy -add o1.zw, r0.xxxy, cb0[15].xxxy -mad o1.xy, v0.xyxx, cb0[9].zwzz, cb0[9].xyxx -mov o2.xyz, l(0,0,0,0) -ret -// Approximately 21 instruction slots used -#endif - -const BYTE LayerQuadBlendVS[] = -{ - 68, 88, 66, 67, 36, 1, - 251, 17, 122, 90, 56, 20, - 13, 210, 38, 20, 162, 170, - 120, 203, 1, 0, 0, 0, - 56, 9, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 60, 2, 0, 0, 100, 5, - 0, 0, 224, 5, 0, 0, - 124, 8, 0, 0, 176, 8, - 0, 0, 65, 111, 110, 57, - 252, 1, 0, 0, 252, 1, - 0, 0, 0, 2, 254, 255, - 164, 1, 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, 2, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 8, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 12, 0, 2, 0, 11, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 1, 0, 13, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 254, 255, - 81, 0, 0, 5, 14, 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, - 9, 0, 238, 160, 9, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 3, 128, 0, 0, - 228, 144, 10, 0, 238, 160, - 10, 0, 228, 160, 5, 0, - 0, 3, 1, 0, 15, 128, - 0, 0, 85, 128, 2, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 15, 128, 1, 0, - 228, 160, 0, 0, 0, 128, - 1, 0, 228, 128, 2, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 128, 3, 0, - 228, 160, 6, 0, 0, 2, - 1, 0, 1, 128, 0, 0, - 255, 128, 5, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 228, 128, 1, 0, 0, 128, - 2, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 8, 0, 228, 161, 5, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 255, 128, 0, 0, - 228, 128, 5, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 85, 128, 5, 0, 228, 160, - 4, 0, 0, 4, 1, 0, - 15, 128, 4, 0, 228, 160, - 0, 0, 0, 128, 1, 0, - 228, 128, 4, 0, 0, 4, - 1, 0, 15, 128, 6, 0, - 228, 160, 0, 0, 170, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 15, 128, - 7, 0, 228, 160, 0, 0, - 255, 128, 1, 0, 228, 128, - 2, 0, 0, 3, 1, 0, - 3, 128, 0, 0, 228, 128, - 14, 0, 0, 160, 4, 0, - 0, 4, 1, 0, 2, 128, - 1, 0, 85, 128, 14, 0, - 85, 161, 14, 0, 0, 160, - 5, 0, 0, 3, 1, 0, - 1, 128, 1, 0, 0, 128, - 14, 0, 85, 160, 5, 0, - 0, 3, 1, 0, 6, 128, - 1, 0, 85, 128, 12, 0, - 196, 160, 4, 0, 0, 4, - 1, 0, 3, 128, 11, 0, - 225, 160, 1, 0, 0, 128, - 1, 0, 233, 128, 2, 0, - 0, 3, 0, 0, 12, 224, - 1, 0, 68, 128, 13, 0, - 20, 160, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 255, 128, 0, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 12, 192, - 0, 0, 228, 128, 1, 0, - 0, 2, 1, 0, 7, 224, - 14, 0, 170, 160, 255, 255, - 0, 0, 83, 72, 68, 82, - 32, 3, 0, 0, 64, 0, - 1, 0, 200, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 16, 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, 101, 0, 0, 3, - 114, 32, 16, 0, 2, 0, - 0, 0, 104, 0, 0, 2, - 2, 0, 0, 0, 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, 10, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 10, 0, 0, 0, - 56, 0, 0, 8, 242, 0, - 16, 0, 1, 0, 0, 0, - 86, 5, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 0, 0, 0, 8, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 14, 0, 0, 7, - 114, 0, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 246, 15, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 242, 0, 16, 0, - 1, 0, 0, 0, 86, 5, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 50, 0, 0, 10, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 166, 10, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 7, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 54, 0, 0, 5, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 10, - 50, 0, 16, 0, 0, 0, - 0, 0, 70, 0, 16, 0, - 0, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 0, 0, 0, 0, 0, 0, - 50, 0, 0, 10, 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, - 0, 63, 1, 64, 0, 0, - 0, 0, 128, 63, 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, 56, 0, 0, 8, - 98, 0, 16, 0, 0, 0, - 0, 0, 86, 5, 16, 0, - 0, 0, 0, 0, 6, 129, - 32, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 50, 0, - 0, 10, 50, 0, 16, 0, - 0, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, - 150, 5, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 8, - 194, 32, 16, 0, 1, 0, - 0, 0, 6, 4, 16, 0, - 0, 0, 0, 0, 6, 132, - 32, 0, 0, 0, 0, 0, - 15, 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, 9, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 54, 0, 0, 8, 114, 32, - 16, 0, 2, 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, 21, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 18, 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, - 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, 82, 68, - 69, 70, 148, 2, 0, 0, - 1, 0, 0, 0, 72, 0, - 0, 0, 1, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 254, 255, 0, 1, 0, 0, - 108, 2, 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, - 36, 71, 108, 111, 98, 97, - 108, 115, 0, 171, 171, 171, - 60, 0, 0, 0, 11, 0, - 0, 0, 96, 0, 0, 0, - 96, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 104, 1, 0, 0, 0, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 136, 1, 0, 0, 64, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 148, 1, 0, 0, 128, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 168, 1, - 0, 0, 0, 0, 0, 0, - 184, 1, 0, 0, 144, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 200, 1, - 0, 0, 0, 0, 0, 0, - 216, 1, 0, 0, 160, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 200, 1, - 0, 0, 0, 0, 0, 0, - 227, 1, 0, 0, 176, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 200, 1, - 0, 0, 0, 0, 0, 0, - 237, 1, 0, 0, 192, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 168, 1, - 0, 0, 0, 0, 0, 0, - 12, 2, 0, 0, 16, 1, - 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 28, 2, - 0, 0, 0, 0, 0, 0, - 44, 2, 0, 0, 32, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 60, 2, - 0, 0, 0, 0, 0, 0, - 76, 2, 0, 0, 48, 1, - 0, 0, 44, 0, 0, 0, - 0, 0, 0, 0, 92, 2, - 0, 0, 0, 0, 0, 0, - 109, 76, 97, 121, 101, 114, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 80, 114, 111, - 106, 101, 99, 116, 105, 111, - 110, 0, 118, 82, 101, 110, - 100, 101, 114, 84, 97, 114, - 103, 101, 116, 79, 102, 102, - 115, 101, 116, 0, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 118, 77, 97, - 115, 107, 81, 117, 97, 100, - 0, 109, 66, 97, 99, 107, - 100, 114, 111, 112, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 102, 76, 97, 121, - 101, 114, 67, 111, 108, 111, - 114, 0, 102, 76, 97, 121, - 101, 114, 79, 112, 97, 99, - 105, 116, 121, 0, 171, 171, - 0, 0, 3, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 105, 66, - 108, 101, 110, 100, 67, 111, - 110, 102, 105, 103, 0, 171, - 171, 171, 1, 0, 19, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 89, 117, 118, 67, 111, - 108, 111, 114, 77, 97, 116, - 114, 105, 120, 0, 2, 0, - 3, 0, 3, 0, 3, 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, 49, 48, 46, 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, - 3, 3, 0, 0, 80, 79, - 83, 73, 84, 73, 79, 78, - 0, 171, 171, 171, 79, 83, - 71, 78, 128, 0, 0, 0, - 4, 0, 0, 0, 8, 0, - 0, 0, 104, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 116, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 3, 12, - 0, 0, 116, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 12, 3, - 0, 0, 116, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 7, 8, - 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 -}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4x4 mLayerTransform; // Offset: 0 Size: 64 +// float4x4 mProjection; // Offset: 64 Size: 64 +// float4 vRenderTargetOffset; // Offset: 128 Size: 16 +// float4 vTextureCoords; // Offset: 144 Size: 16 +// float4 vLayerQuad; // Offset: 160 Size: 16 +// float4 vMaskQuad; // Offset: 176 Size: 16 [unused] +// float4x4 mBackdropTransform; // Offset: 192 Size: 64 +// float4 fLayerColor; // Offset: 256 Size: 16 [unused] +// float fLayerOpacity; // Offset: 272 Size: 4 [unused] +// uint4 iBlendConfig; // Offset: 288 Size: 16 [unused] +// row_major float3x3 mYuvColorMatrix;// Offset: 304 Size: 44 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// $Globals cbuffer NA NA cb0 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// POSITION 0 xy 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 2 zw 1 NONE float zw +// TEXCOORD 1 xyz 2 NONE float xyz +// +// +// Constant buffer to DX9 shader constant mappings: +// +// Target Reg Buffer Start Reg # of Regs Data Conversion +// ---------- ------- --------- --------- ---------------------- +// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) +// c3 cb0 3 8 ( FLT, FLT, FLT, FLT) +// c11 cb0 12 2 ( FLT, FLT, FLT, FLT) +// c13 cb0 15 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 c14, 1, 0.5, 0, 0 + dcl_texcoord v0 + mad oT0.xy, v0, c9.zwzw, c9 + mad r0.xy, v0, c10.zwzw, c10 + mul r1, r0.y, c2 + mad r0, c1, r0.x, r1 + add r0, r0, c3 + rcp r1.x, r0.w + mul r0.xyz, r0, r1.x + add r0, r0, -c8 + mul r0.xyz, r0.w, r0 + mul r1, r0.y, c5 + mad r1, c4, r0.x, r1 + mad r1, c6, r0.z, r1 + mad r0, c7, r0.w, r1 + add r1.xy, r0, c14.x + mad r1.y, r1.y, -c14.y, c14.x + mul r1.x, r1.x, c14.y + mul r1.yz, r1.y, c12.xyxw + mad r1.xy, c11.yxzw, r1.x, r1.yzzw + add oT0.zw, r1.xyxy, c13.xyyx + mad oPos.xy, r0.w, c0, r0 + mov oPos.zw, r0 + mov oT1.xyz, c14.z + +// approximately 22 instruction slots used +vs_4_0 +dcl_constantbuffer CB0[16], immediateIndexed +dcl_input v0.xy +dcl_output_siv o0.xyzw, position +dcl_output o1.xy +dcl_output o1.zw +dcl_output o2.xyz +dcl_temps 2 +mad r0.xy, v0.xyxx, cb0[10].zwzz, cb0[10].xyxx +mul r1.xyzw, r0.yyyy, cb0[1].xyzw +mad r0.xyzw, cb0[0].xyzw, r0.xxxx, r1.xyzw +add r0.xyzw, r0.xyzw, cb0[3].xyzw +div r0.xyz, r0.xyzx, r0.wwww +add r0.xyzw, r0.xyzw, -cb0[8].xyzw +mul r0.xyz, r0.wwww, r0.xyzx +mul r1.xyzw, r0.yyyy, cb0[5].xyzw +mad r1.xyzw, cb0[4].xyzw, r0.xxxx, r1.xyzw +mad r1.xyzw, cb0[6].xyzw, r0.zzzz, r1.xyzw +mad r0.xyzw, cb0[7].xyzw, r0.wwww, r1.xyzw +mov o0.xyzw, r0.xyzw +add r0.xy, r0.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) +mad r0.y, -r0.y, l(0.500000), l(1.000000) +mul r0.x, r0.x, l(0.500000) +mul r0.yz, r0.yyyy, cb0[13].xxyx +mad r0.xy, cb0[12].xyxx, r0.xxxx, r0.yzyy +add o1.zw, r0.xxxy, cb0[15].xxxy +mad o1.xy, v0.xyxx, cb0[9].zwzz, cb0[9].xyxx +mov o2.xyz, l(0,0,0,0) +ret +// Approximately 21 instruction slots used +#endif + +const BYTE LayerQuadBlendVS[] = +{ + 68, 88, 66, 67, 36, 1, + 251, 17, 122, 90, 56, 20, + 13, 210, 38, 20, 162, 170, + 120, 203, 1, 0, 0, 0, + 56, 9, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 60, 2, 0, 0, 100, 5, + 0, 0, 224, 5, 0, 0, + 124, 8, 0, 0, 176, 8, + 0, 0, 65, 111, 110, 57, + 252, 1, 0, 0, 252, 1, + 0, 0, 0, 2, 254, 255, + 164, 1, 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, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 8, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 12, 0, 2, 0, 11, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 1, 0, 13, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 254, 255, + 81, 0, 0, 5, 14, 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, + 9, 0, 238, 160, 9, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 3, 128, 0, 0, + 228, 144, 10, 0, 238, 160, + 10, 0, 228, 160, 5, 0, + 0, 3, 1, 0, 15, 128, + 0, 0, 85, 128, 2, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 15, 128, 1, 0, + 228, 160, 0, 0, 0, 128, + 1, 0, 228, 128, 2, 0, + 0, 3, 0, 0, 15, 128, + 0, 0, 228, 128, 3, 0, + 228, 160, 6, 0, 0, 2, + 1, 0, 1, 128, 0, 0, + 255, 128, 5, 0, 0, 3, + 0, 0, 7, 128, 0, 0, + 228, 128, 1, 0, 0, 128, + 2, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 128, + 8, 0, 228, 161, 5, 0, + 0, 3, 0, 0, 7, 128, + 0, 0, 255, 128, 0, 0, + 228, 128, 5, 0, 0, 3, + 1, 0, 15, 128, 0, 0, + 85, 128, 5, 0, 228, 160, + 4, 0, 0, 4, 1, 0, + 15, 128, 4, 0, 228, 160, + 0, 0, 0, 128, 1, 0, + 228, 128, 4, 0, 0, 4, + 1, 0, 15, 128, 6, 0, + 228, 160, 0, 0, 170, 128, + 1, 0, 228, 128, 4, 0, + 0, 4, 0, 0, 15, 128, + 7, 0, 228, 160, 0, 0, + 255, 128, 1, 0, 228, 128, + 2, 0, 0, 3, 1, 0, + 3, 128, 0, 0, 228, 128, + 14, 0, 0, 160, 4, 0, + 0, 4, 1, 0, 2, 128, + 1, 0, 85, 128, 14, 0, + 85, 161, 14, 0, 0, 160, + 5, 0, 0, 3, 1, 0, + 1, 128, 1, 0, 0, 128, + 14, 0, 85, 160, 5, 0, + 0, 3, 1, 0, 6, 128, + 1, 0, 85, 128, 12, 0, + 196, 160, 4, 0, 0, 4, + 1, 0, 3, 128, 11, 0, + 225, 160, 1, 0, 0, 128, + 1, 0, 233, 128, 2, 0, + 0, 3, 0, 0, 12, 224, + 1, 0, 68, 128, 13, 0, + 20, 160, 4, 0, 0, 4, + 0, 0, 3, 192, 0, 0, + 255, 128, 0, 0, 228, 160, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 12, 192, + 0, 0, 228, 128, 1, 0, + 0, 2, 1, 0, 7, 224, + 14, 0, 170, 160, 255, 255, + 0, 0, 83, 72, 68, 82, + 32, 3, 0, 0, 64, 0, + 1, 0, 200, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 16, 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, 101, 0, 0, 3, + 114, 32, 16, 0, 2, 0, + 0, 0, 104, 0, 0, 2, + 2, 0, 0, 0, 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, 10, 0, 0, 0, + 70, 128, 32, 0, 0, 0, + 0, 0, 10, 0, 0, 0, + 56, 0, 0, 8, 242, 0, + 16, 0, 1, 0, 0, 0, + 86, 5, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 0, 0, 0, 8, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 14, 0, 0, 7, + 114, 0, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 246, 15, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 8, 0, 0, 0, + 56, 0, 0, 7, 114, 0, + 16, 0, 0, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 8, 242, 0, 16, 0, + 1, 0, 0, 0, 86, 5, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 50, 0, 0, 10, 242, 0, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 6, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 166, 10, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 7, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 54, 0, 0, 5, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 10, + 50, 0, 16, 0, 0, 0, + 0, 0, 70, 0, 16, 0, + 0, 0, 0, 0, 2, 64, + 0, 0, 0, 0, 128, 63, + 0, 0, 128, 63, 0, 0, + 0, 0, 0, 0, 0, 0, + 50, 0, 0, 10, 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, + 0, 63, 1, 64, 0, 0, + 0, 0, 128, 63, 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, 56, 0, 0, 8, + 98, 0, 16, 0, 0, 0, + 0, 0, 86, 5, 16, 0, + 0, 0, 0, 0, 6, 129, + 32, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 50, 0, + 0, 10, 50, 0, 16, 0, + 0, 0, 0, 0, 70, 128, + 32, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 6, 0, + 16, 0, 0, 0, 0, 0, + 150, 5, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 8, + 194, 32, 16, 0, 1, 0, + 0, 0, 6, 4, 16, 0, + 0, 0, 0, 0, 6, 132, + 32, 0, 0, 0, 0, 0, + 15, 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, 9, 0, 0, 0, + 70, 128, 32, 0, 0, 0, + 0, 0, 9, 0, 0, 0, + 54, 0, 0, 8, 114, 32, + 16, 0, 2, 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, 21, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 18, 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, + 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, 82, 68, + 69, 70, 148, 2, 0, 0, + 1, 0, 0, 0, 72, 0, + 0, 0, 1, 0, 0, 0, + 28, 0, 0, 0, 0, 4, + 254, 255, 0, 1, 0, 0, + 108, 2, 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, + 36, 71, 108, 111, 98, 97, + 108, 115, 0, 171, 171, 171, + 60, 0, 0, 0, 11, 0, + 0, 0, 96, 0, 0, 0, + 96, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 104, 1, 0, 0, 0, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 136, 1, 0, 0, 64, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 148, 1, 0, 0, 128, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 168, 1, + 0, 0, 0, 0, 0, 0, + 184, 1, 0, 0, 144, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 216, 1, 0, 0, 160, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 227, 1, 0, 0, 176, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 237, 1, 0, 0, 192, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 168, 1, + 0, 0, 0, 0, 0, 0, + 12, 2, 0, 0, 16, 1, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 28, 2, + 0, 0, 0, 0, 0, 0, + 44, 2, 0, 0, 32, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 60, 2, + 0, 0, 0, 0, 0, 0, + 76, 2, 0, 0, 48, 1, + 0, 0, 44, 0, 0, 0, + 0, 0, 0, 0, 92, 2, + 0, 0, 0, 0, 0, 0, + 109, 76, 97, 121, 101, 114, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 0, 3, 0, + 3, 0, 4, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 80, 114, 111, + 106, 101, 99, 116, 105, 111, + 110, 0, 118, 82, 101, 110, + 100, 101, 114, 84, 97, 114, + 103, 101, 116, 79, 102, 102, + 115, 101, 116, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 118, 84, 101, 120, + 116, 117, 114, 101, 67, 111, + 111, 114, 100, 115, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 76, + 97, 121, 101, 114, 81, 117, + 97, 100, 0, 118, 77, 97, + 115, 107, 81, 117, 97, 100, + 0, 109, 66, 97, 99, 107, + 100, 114, 111, 112, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 0, 102, 76, 97, 121, + 101, 114, 67, 111, 108, 111, + 114, 0, 102, 76, 97, 121, + 101, 114, 79, 112, 97, 99, + 105, 116, 121, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 105, 66, + 108, 101, 110, 100, 67, 111, + 110, 102, 105, 103, 0, 171, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 89, 117, 118, 67, 111, + 108, 111, 114, 77, 97, 116, + 114, 105, 120, 0, 2, 0, + 3, 0, 3, 0, 3, 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, 49, 48, 46, 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, + 3, 3, 0, 0, 80, 79, + 83, 73, 84, 73, 79, 78, + 0, 171, 171, 171, 79, 83, + 71, 78, 128, 0, 0, 0, + 4, 0, 0, 0, 8, 0, + 0, 0, 104, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 116, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 3, 12, + 0, 0, 116, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 12, 3, + 0, 0, 116, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 7, 8, + 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 +}; ShaderBytes sLayerQuadBlendVS = { LayerQuadBlendVS, sizeof(LayerQuadBlendVS) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4x4 mLayerTransform; // Offset: 0 Size: 64 -// float4x4 mProjection; // Offset: 64 Size: 64 -// float4 vRenderTargetOffset; // Offset: 128 Size: 16 -// float4 vTextureCoords; // Offset: 144 Size: 16 -// float4 vLayerQuad; // Offset: 160 Size: 16 -// float4 vMaskQuad; // Offset: 176 Size: 16 -// float4x4 mBackdropTransform; // Offset: 192 Size: 64 -// float4 fLayerColor; // Offset: 256 Size: 16 [unused] -// float fLayerOpacity; // Offset: 272 Size: 4 [unused] -// uint4 iBlendConfig; // Offset: 288 Size: 16 [unused] -// row_major float3x3 mYuvColorMatrix;// Offset: 304 Size: 44 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// $Globals cbuffer NA NA cb0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// POSITION 0 xy 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 2 zw 1 NONE float zw -// TEXCOORD 1 xyz 2 NONE float xyz -// -// -// Constant buffer to DX9 shader constant mappings: -// -// Target Reg Buffer Start Reg # of Regs Data Conversion -// ---------- ------- --------- --------- ---------------------- -// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) -// c3 cb0 3 11 ( FLT, FLT, FLT, FLT) -// c14 cb0 15 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 c15, 1, 0.5, 0, 0 - dcl_texcoord v0 - mov r0.z, c15.x - rcp r0.w, c11.z - mad r1.xy, v0, c10.zwzw, c10 - mul r2, r1.y, c2 - mad r1, c1, r1.x, r2 - add r1, r1, c3 - add r2.xy, r1, -c11 - mul r0.x, r0.w, r2.x - rcp r0.w, c11.w - mul r0.y, r0.w, r2.y - mul oT1.xyz, r0, r1.w - mad oT0.xy, v0, c9.zwzw, c9 - rcp r0.x, r1.w - mul r1.xyz, r0.x, r1 - add r0, r1, -c8 - mul r0.xyz, r0.w, r0 - mul r1, r0.y, c5 - mad r1, c4, r0.x, r1 - mad r1, c6, r0.z, r1 - mad r0, c7, r0.w, r1 - add r1.xy, r0, c15.x - mad r1.y, r1.y, -c15.y, c15.x - mul r1.x, r1.x, c15.y - mul r1.yz, r1.y, c13.xyxw - mad r1.xy, c12.yxzw, r1.x, r1.yzzw - add oT0.zw, r1.xyxy, c14.xyyx - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - -// approximately 28 instruction slots used -vs_4_0 -dcl_constantbuffer CB0[16], immediateIndexed -dcl_input v0.xy -dcl_output_siv o0.xyzw, position -dcl_output o1.xy -dcl_output o1.zw -dcl_output o2.xyz -dcl_temps 4 -mad r0.xy, v0.xyxx, cb0[10].zwzz, cb0[10].xyxx -mul r1.xyzw, r0.yyyy, cb0[1].xyzw -mad r0.xyzw, cb0[0].xyzw, r0.xxxx, r1.xyzw -add r0.xyzw, r0.xyzw, cb0[3].xyzw -div r1.xyz, r0.xyzx, r0.wwww -mov r1.w, r0.w -add r2.xyzw, r1.xyzw, -cb0[8].xyzw -mul r1.xyz, r2.wwww, r2.xyzx -mul r3.xyzw, r1.yyyy, cb0[5].xyzw -mad r3.xyzw, cb0[4].xyzw, r1.xxxx, r3.xyzw -mad r3.xyzw, cb0[6].xyzw, r1.zzzz, r3.xyzw -mad r2.xyzw, cb0[7].xyzw, r2.wwww, r3.xyzw -mov o0.xyzw, r2.xyzw -add r0.zw, r2.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) -mad r0.w, -r0.w, l(0.500000), l(1.000000) -mul r0.z, r0.z, l(0.500000) -mul r1.xy, r0.wwww, cb0[13].xyxx -mad r0.zw, cb0[12].xxxy, r0.zzzz, r1.xxxy -add o1.zw, r0.zzzw, cb0[15].xxxy -mad o1.xy, v0.xyxx, cb0[9].zwzz, cb0[9].xyxx -add r0.xy, r0.xyxx, -cb0[11].xyxx -div r0.xy, r0.xyxx, cb0[11].zwzz -mov r0.z, l(1.000000) -mul o2.xyz, r1.wwww, r0.xyzx -ret -// Approximately 25 instruction slots used -#endif - -const BYTE LayerQuadBlendMaskVS[] = -{ - 68, 88, 66, 67, 206, 205, - 172, 45, 15, 157, 207, 85, - 247, 28, 223, 137, 10, 58, - 17, 237, 1, 0, 0, 0, - 236, 9, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 136, 2, 0, 0, 24, 6, - 0, 0, 148, 6, 0, 0, - 48, 9, 0, 0, 100, 9, - 0, 0, 65, 111, 110, 57, - 72, 2, 0, 0, 72, 2, - 0, 0, 0, 2, 254, 255, - 252, 1, 0, 0, 76, 0, - 0, 0, 3, 0, 36, 0, - 0, 0, 72, 0, 0, 0, - 72, 0, 0, 0, 36, 0, - 1, 0, 72, 0, 0, 0, - 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 11, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 1, 0, 14, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 254, 255, - 81, 0, 0, 5, 15, 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, - 1, 0, 0, 2, 0, 0, - 4, 128, 15, 0, 0, 160, - 6, 0, 0, 2, 0, 0, - 8, 128, 11, 0, 170, 160, - 4, 0, 0, 4, 1, 0, - 3, 128, 0, 0, 228, 144, - 10, 0, 238, 160, 10, 0, - 228, 160, 5, 0, 0, 3, - 2, 0, 15, 128, 1, 0, - 85, 128, 2, 0, 228, 160, - 4, 0, 0, 4, 1, 0, - 15, 128, 1, 0, 228, 160, - 1, 0, 0, 128, 2, 0, - 228, 128, 2, 0, 0, 3, - 1, 0, 15, 128, 1, 0, - 228, 128, 3, 0, 228, 160, - 2, 0, 0, 3, 2, 0, - 3, 128, 1, 0, 228, 128, - 11, 0, 228, 161, 5, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 255, 128, 2, 0, - 0, 128, 6, 0, 0, 2, - 0, 0, 8, 128, 11, 0, - 255, 160, 5, 0, 0, 3, - 0, 0, 2, 128, 0, 0, - 255, 128, 2, 0, 85, 128, - 5, 0, 0, 3, 1, 0, - 7, 224, 0, 0, 228, 128, - 1, 0, 255, 128, 4, 0, - 0, 4, 0, 0, 3, 224, - 0, 0, 228, 144, 9, 0, - 238, 160, 9, 0, 228, 160, - 6, 0, 0, 2, 0, 0, - 1, 128, 1, 0, 255, 128, - 5, 0, 0, 3, 1, 0, - 7, 128, 0, 0, 0, 128, - 1, 0, 228, 128, 2, 0, - 0, 3, 0, 0, 15, 128, - 1, 0, 228, 128, 8, 0, - 228, 161, 5, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 255, 128, 0, 0, 228, 128, - 5, 0, 0, 3, 1, 0, - 15, 128, 0, 0, 85, 128, - 5, 0, 228, 160, 4, 0, - 0, 4, 1, 0, 15, 128, - 4, 0, 228, 160, 0, 0, - 0, 128, 1, 0, 228, 128, - 4, 0, 0, 4, 1, 0, - 15, 128, 6, 0, 228, 160, - 0, 0, 170, 128, 1, 0, - 228, 128, 4, 0, 0, 4, - 0, 0, 15, 128, 7, 0, - 228, 160, 0, 0, 255, 128, - 1, 0, 228, 128, 2, 0, - 0, 3, 1, 0, 3, 128, - 0, 0, 228, 128, 15, 0, - 0, 160, 4, 0, 0, 4, - 1, 0, 2, 128, 1, 0, - 85, 128, 15, 0, 85, 161, - 15, 0, 0, 160, 5, 0, - 0, 3, 1, 0, 1, 128, - 1, 0, 0, 128, 15, 0, - 85, 160, 5, 0, 0, 3, - 1, 0, 6, 128, 1, 0, - 85, 128, 13, 0, 196, 160, - 4, 0, 0, 4, 1, 0, - 3, 128, 12, 0, 225, 160, - 1, 0, 0, 128, 1, 0, - 233, 128, 2, 0, 0, 3, - 0, 0, 12, 224, 1, 0, - 68, 128, 14, 0, 20, 160, - 4, 0, 0, 4, 0, 0, - 3, 192, 0, 0, 255, 128, - 0, 0, 228, 160, 0, 0, - 228, 128, 1, 0, 0, 2, - 0, 0, 12, 192, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 136, 3, - 0, 0, 64, 0, 1, 0, - 226, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 16, 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, - 101, 0, 0, 3, 114, 32, - 16, 0, 2, 0, 0, 0, - 104, 0, 0, 2, 4, 0, - 0, 0, 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, - 10, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 56, 0, - 0, 8, 242, 0, 16, 0, - 1, 0, 0, 0, 86, 5, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 50, 0, 0, 10, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 0, 0, - 0, 8, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 14, 0, 0, 7, 114, 0, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 130, 0, 16, 0, - 1, 0, 0, 0, 58, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 242, 0, - 16, 0, 2, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 70, 142, 32, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 1, 0, 0, 0, - 246, 15, 16, 0, 2, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 56, 0, - 0, 8, 242, 0, 16, 0, - 3, 0, 0, 0, 86, 5, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 50, 0, 0, 10, 242, 0, - 16, 0, 3, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 6, 0, 16, 0, 1, 0, - 0, 0, 70, 14, 16, 0, - 3, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 3, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 166, 10, - 16, 0, 1, 0, 0, 0, - 70, 14, 16, 0, 3, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 2, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 7, 0, - 0, 0, 246, 15, 16, 0, - 2, 0, 0, 0, 70, 14, - 16, 0, 3, 0, 0, 0, - 54, 0, 0, 5, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 2, 0, - 0, 0, 0, 0, 0, 10, - 194, 0, 16, 0, 0, 0, - 0, 0, 6, 4, 16, 0, - 2, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 63, - 50, 0, 0, 10, 130, 0, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 63, 1, 64, 0, 0, - 0, 0, 128, 63, 56, 0, - 0, 7, 66, 0, 16, 0, - 0, 0, 0, 0, 42, 0, - 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 63, 56, 0, 0, 8, - 50, 0, 16, 0, 1, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 50, 0, - 0, 10, 194, 0, 16, 0, - 0, 0, 0, 0, 6, 132, - 32, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 166, 10, - 16, 0, 0, 0, 0, 0, - 6, 4, 16, 0, 1, 0, - 0, 0, 0, 0, 0, 8, - 194, 32, 16, 0, 1, 0, - 0, 0, 166, 14, 16, 0, - 0, 0, 0, 0, 6, 132, - 32, 0, 0, 0, 0, 0, - 15, 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, 9, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 0, 0, 0, 9, 50, 0, - 16, 0, 0, 0, 0, 0, - 70, 0, 16, 0, 0, 0, - 0, 0, 70, 128, 32, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 11, 0, 0, 0, - 14, 0, 0, 8, 50, 0, - 16, 0, 0, 0, 0, 0, - 70, 0, 16, 0, 0, 0, - 0, 0, 230, 138, 32, 0, - 0, 0, 0, 0, 11, 0, - 0, 0, 54, 0, 0, 5, - 66, 0, 16, 0, 0, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 128, 63, 56, 0, - 0, 7, 114, 32, 16, 0, - 2, 0, 0, 0, 246, 15, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 116, 0, - 0, 0, 25, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 21, 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, 148, 2, 0, 0, - 1, 0, 0, 0, 72, 0, - 0, 0, 1, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 254, 255, 0, 1, 0, 0, - 108, 2, 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, - 36, 71, 108, 111, 98, 97, - 108, 115, 0, 171, 171, 171, - 60, 0, 0, 0, 11, 0, - 0, 0, 96, 0, 0, 0, - 96, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 104, 1, 0, 0, 0, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 136, 1, 0, 0, 64, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 148, 1, 0, 0, 128, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 168, 1, - 0, 0, 0, 0, 0, 0, - 184, 1, 0, 0, 144, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 200, 1, - 0, 0, 0, 0, 0, 0, - 216, 1, 0, 0, 160, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 200, 1, - 0, 0, 0, 0, 0, 0, - 227, 1, 0, 0, 176, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 200, 1, - 0, 0, 0, 0, 0, 0, - 237, 1, 0, 0, 192, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 168, 1, - 0, 0, 0, 0, 0, 0, - 12, 2, 0, 0, 16, 1, - 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 28, 2, - 0, 0, 0, 0, 0, 0, - 44, 2, 0, 0, 32, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 60, 2, - 0, 0, 0, 0, 0, 0, - 76, 2, 0, 0, 48, 1, - 0, 0, 44, 0, 0, 0, - 0, 0, 0, 0, 92, 2, - 0, 0, 0, 0, 0, 0, - 109, 76, 97, 121, 101, 114, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 80, 114, 111, - 106, 101, 99, 116, 105, 111, - 110, 0, 118, 82, 101, 110, - 100, 101, 114, 84, 97, 114, - 103, 101, 116, 79, 102, 102, - 115, 101, 116, 0, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 118, 77, 97, - 115, 107, 81, 117, 97, 100, - 0, 109, 66, 97, 99, 107, - 100, 114, 111, 112, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 102, 76, 97, 121, - 101, 114, 67, 111, 108, 111, - 114, 0, 102, 76, 97, 121, - 101, 114, 79, 112, 97, 99, - 105, 116, 121, 0, 171, 171, - 0, 0, 3, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 105, 66, - 108, 101, 110, 100, 67, 111, - 110, 102, 105, 103, 0, 171, - 171, 171, 1, 0, 19, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 89, 117, 118, 67, 111, - 108, 111, 114, 77, 97, 116, - 114, 105, 120, 0, 2, 0, - 3, 0, 3, 0, 3, 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, 49, 48, 46, 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, - 3, 3, 0, 0, 80, 79, - 83, 73, 84, 73, 79, 78, - 0, 171, 171, 171, 79, 83, - 71, 78, 128, 0, 0, 0, - 4, 0, 0, 0, 8, 0, - 0, 0, 104, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 116, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 3, 12, - 0, 0, 116, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 12, 3, - 0, 0, 116, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 7, 8, - 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 -}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4x4 mLayerTransform; // Offset: 0 Size: 64 +// float4x4 mProjection; // Offset: 64 Size: 64 +// float4 vRenderTargetOffset; // Offset: 128 Size: 16 +// float4 vTextureCoords; // Offset: 144 Size: 16 +// float4 vLayerQuad; // Offset: 160 Size: 16 +// float4 vMaskQuad; // Offset: 176 Size: 16 +// float4x4 mBackdropTransform; // Offset: 192 Size: 64 +// float4 fLayerColor; // Offset: 256 Size: 16 [unused] +// float fLayerOpacity; // Offset: 272 Size: 4 [unused] +// uint4 iBlendConfig; // Offset: 288 Size: 16 [unused] +// row_major float3x3 mYuvColorMatrix;// Offset: 304 Size: 44 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// $Globals cbuffer NA NA cb0 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// POSITION 0 xy 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 2 zw 1 NONE float zw +// TEXCOORD 1 xyz 2 NONE float xyz +// +// +// Constant buffer to DX9 shader constant mappings: +// +// Target Reg Buffer Start Reg # of Regs Data Conversion +// ---------- ------- --------- --------- ---------------------- +// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) +// c3 cb0 3 11 ( FLT, FLT, FLT, FLT) +// c14 cb0 15 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 c15, 1, 0.5, 0, 0 + dcl_texcoord v0 + mov r0.z, c15.x + rcp r0.w, c11.z + mad r1.xy, v0, c10.zwzw, c10 + mul r2, r1.y, c2 + mad r1, c1, r1.x, r2 + add r1, r1, c3 + add r2.xy, r1, -c11 + mul r0.x, r0.w, r2.x + rcp r0.w, c11.w + mul r0.y, r0.w, r2.y + mul oT1.xyz, r0, r1.w + mad oT0.xy, v0, c9.zwzw, c9 + rcp r0.x, r1.w + mul r1.xyz, r0.x, r1 + add r0, r1, -c8 + mul r0.xyz, r0.w, r0 + mul r1, r0.y, c5 + mad r1, c4, r0.x, r1 + mad r1, c6, r0.z, r1 + mad r0, c7, r0.w, r1 + add r1.xy, r0, c15.x + mad r1.y, r1.y, -c15.y, c15.x + mul r1.x, r1.x, c15.y + mul r1.yz, r1.y, c13.xyxw + mad r1.xy, c12.yxzw, r1.x, r1.yzzw + add oT0.zw, r1.xyxy, c14.xyyx + mad oPos.xy, r0.w, c0, r0 + mov oPos.zw, r0 + +// approximately 28 instruction slots used +vs_4_0 +dcl_constantbuffer CB0[16], immediateIndexed +dcl_input v0.xy +dcl_output_siv o0.xyzw, position +dcl_output o1.xy +dcl_output o1.zw +dcl_output o2.xyz +dcl_temps 4 +mad r0.xy, v0.xyxx, cb0[10].zwzz, cb0[10].xyxx +mul r1.xyzw, r0.yyyy, cb0[1].xyzw +mad r0.xyzw, cb0[0].xyzw, r0.xxxx, r1.xyzw +add r0.xyzw, r0.xyzw, cb0[3].xyzw +div r1.xyz, r0.xyzx, r0.wwww +mov r1.w, r0.w +add r2.xyzw, r1.xyzw, -cb0[8].xyzw +mul r1.xyz, r2.wwww, r2.xyzx +mul r3.xyzw, r1.yyyy, cb0[5].xyzw +mad r3.xyzw, cb0[4].xyzw, r1.xxxx, r3.xyzw +mad r3.xyzw, cb0[6].xyzw, r1.zzzz, r3.xyzw +mad r2.xyzw, cb0[7].xyzw, r2.wwww, r3.xyzw +mov o0.xyzw, r2.xyzw +add r0.zw, r2.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) +mad r0.w, -r0.w, l(0.500000), l(1.000000) +mul r0.z, r0.z, l(0.500000) +mul r1.xy, r0.wwww, cb0[13].xyxx +mad r0.zw, cb0[12].xxxy, r0.zzzz, r1.xxxy +add o1.zw, r0.zzzw, cb0[15].xxxy +mad o1.xy, v0.xyxx, cb0[9].zwzz, cb0[9].xyxx +add r0.xy, r0.xyxx, -cb0[11].xyxx +div r0.xy, r0.xyxx, cb0[11].zwzz +mov r0.z, l(1.000000) +mul o2.xyz, r1.wwww, r0.xyzx +ret +// Approximately 25 instruction slots used +#endif + +const BYTE LayerQuadBlendMaskVS[] = +{ + 68, 88, 66, 67, 206, 205, + 172, 45, 15, 157, 207, 85, + 247, 28, 223, 137, 10, 58, + 17, 237, 1, 0, 0, 0, + 236, 9, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 136, 2, 0, 0, 24, 6, + 0, 0, 148, 6, 0, 0, + 48, 9, 0, 0, 100, 9, + 0, 0, 65, 111, 110, 57, + 72, 2, 0, 0, 72, 2, + 0, 0, 0, 2, 254, 255, + 252, 1, 0, 0, 76, 0, + 0, 0, 3, 0, 36, 0, + 0, 0, 72, 0, 0, 0, + 72, 0, 0, 0, 36, 0, + 1, 0, 72, 0, 0, 0, + 0, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 11, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 1, 0, 14, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 254, 255, + 81, 0, 0, 5, 15, 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, + 1, 0, 0, 2, 0, 0, + 4, 128, 15, 0, 0, 160, + 6, 0, 0, 2, 0, 0, + 8, 128, 11, 0, 170, 160, + 4, 0, 0, 4, 1, 0, + 3, 128, 0, 0, 228, 144, + 10, 0, 238, 160, 10, 0, + 228, 160, 5, 0, 0, 3, + 2, 0, 15, 128, 1, 0, + 85, 128, 2, 0, 228, 160, + 4, 0, 0, 4, 1, 0, + 15, 128, 1, 0, 228, 160, + 1, 0, 0, 128, 2, 0, + 228, 128, 2, 0, 0, 3, + 1, 0, 15, 128, 1, 0, + 228, 128, 3, 0, 228, 160, + 2, 0, 0, 3, 2, 0, + 3, 128, 1, 0, 228, 128, + 11, 0, 228, 161, 5, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 255, 128, 2, 0, + 0, 128, 6, 0, 0, 2, + 0, 0, 8, 128, 11, 0, + 255, 160, 5, 0, 0, 3, + 0, 0, 2, 128, 0, 0, + 255, 128, 2, 0, 85, 128, + 5, 0, 0, 3, 1, 0, + 7, 224, 0, 0, 228, 128, + 1, 0, 255, 128, 4, 0, + 0, 4, 0, 0, 3, 224, + 0, 0, 228, 144, 9, 0, + 238, 160, 9, 0, 228, 160, + 6, 0, 0, 2, 0, 0, + 1, 128, 1, 0, 255, 128, + 5, 0, 0, 3, 1, 0, + 7, 128, 0, 0, 0, 128, + 1, 0, 228, 128, 2, 0, + 0, 3, 0, 0, 15, 128, + 1, 0, 228, 128, 8, 0, + 228, 161, 5, 0, 0, 3, + 0, 0, 7, 128, 0, 0, + 255, 128, 0, 0, 228, 128, + 5, 0, 0, 3, 1, 0, + 15, 128, 0, 0, 85, 128, + 5, 0, 228, 160, 4, 0, + 0, 4, 1, 0, 15, 128, + 4, 0, 228, 160, 0, 0, + 0, 128, 1, 0, 228, 128, + 4, 0, 0, 4, 1, 0, + 15, 128, 6, 0, 228, 160, + 0, 0, 170, 128, 1, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 15, 128, 7, 0, + 228, 160, 0, 0, 255, 128, + 1, 0, 228, 128, 2, 0, + 0, 3, 1, 0, 3, 128, + 0, 0, 228, 128, 15, 0, + 0, 160, 4, 0, 0, 4, + 1, 0, 2, 128, 1, 0, + 85, 128, 15, 0, 85, 161, + 15, 0, 0, 160, 5, 0, + 0, 3, 1, 0, 1, 128, + 1, 0, 0, 128, 15, 0, + 85, 160, 5, 0, 0, 3, + 1, 0, 6, 128, 1, 0, + 85, 128, 13, 0, 196, 160, + 4, 0, 0, 4, 1, 0, + 3, 128, 12, 0, 225, 160, + 1, 0, 0, 128, 1, 0, + 233, 128, 2, 0, 0, 3, + 0, 0, 12, 224, 1, 0, + 68, 128, 14, 0, 20, 160, + 4, 0, 0, 4, 0, 0, + 3, 192, 0, 0, 255, 128, + 0, 0, 228, 160, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 12, 192, 0, 0, + 228, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 136, 3, + 0, 0, 64, 0, 1, 0, + 226, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 16, 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, + 101, 0, 0, 3, 114, 32, + 16, 0, 2, 0, 0, 0, + 104, 0, 0, 2, 4, 0, + 0, 0, 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, + 10, 0, 0, 0, 70, 128, + 32, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 56, 0, + 0, 8, 242, 0, 16, 0, + 1, 0, 0, 0, 86, 5, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 50, 0, 0, 10, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 6, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 0, 0, + 0, 8, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 14, 0, 0, 7, 114, 0, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 130, 0, 16, 0, + 1, 0, 0, 0, 58, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 242, 0, + 16, 0, 2, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 70, 142, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 8, 0, 0, 0, + 56, 0, 0, 7, 114, 0, + 16, 0, 1, 0, 0, 0, + 246, 15, 16, 0, 2, 0, + 0, 0, 70, 2, 16, 0, + 2, 0, 0, 0, 56, 0, + 0, 8, 242, 0, 16, 0, + 3, 0, 0, 0, 86, 5, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 50, 0, 0, 10, 242, 0, + 16, 0, 3, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 6, 0, 16, 0, 1, 0, + 0, 0, 70, 14, 16, 0, + 3, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 3, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 166, 10, + 16, 0, 1, 0, 0, 0, + 70, 14, 16, 0, 3, 0, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 2, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 7, 0, + 0, 0, 246, 15, 16, 0, + 2, 0, 0, 0, 70, 14, + 16, 0, 3, 0, 0, 0, + 54, 0, 0, 5, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 2, 0, + 0, 0, 0, 0, 0, 10, + 194, 0, 16, 0, 0, 0, + 0, 0, 6, 4, 16, 0, + 2, 0, 0, 0, 2, 64, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 128, 63, 0, 0, 128, 63, + 50, 0, 0, 10, 130, 0, + 16, 0, 0, 0, 0, 0, + 58, 0, 16, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 0, 63, 1, 64, 0, 0, + 0, 0, 128, 63, 56, 0, + 0, 7, 66, 0, 16, 0, + 0, 0, 0, 0, 42, 0, + 16, 0, 0, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 0, 63, 56, 0, 0, 8, + 50, 0, 16, 0, 1, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 128, + 32, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 50, 0, + 0, 10, 194, 0, 16, 0, + 0, 0, 0, 0, 6, 132, + 32, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 166, 10, + 16, 0, 0, 0, 0, 0, + 6, 4, 16, 0, 1, 0, + 0, 0, 0, 0, 0, 8, + 194, 32, 16, 0, 1, 0, + 0, 0, 166, 14, 16, 0, + 0, 0, 0, 0, 6, 132, + 32, 0, 0, 0, 0, 0, + 15, 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, 9, 0, 0, 0, + 70, 128, 32, 0, 0, 0, + 0, 0, 9, 0, 0, 0, + 0, 0, 0, 9, 50, 0, + 16, 0, 0, 0, 0, 0, + 70, 0, 16, 0, 0, 0, + 0, 0, 70, 128, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, + 14, 0, 0, 8, 50, 0, + 16, 0, 0, 0, 0, 0, + 70, 0, 16, 0, 0, 0, + 0, 0, 230, 138, 32, 0, + 0, 0, 0, 0, 11, 0, + 0, 0, 54, 0, 0, 5, + 66, 0, 16, 0, 0, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 128, 63, 56, 0, + 0, 7, 114, 32, 16, 0, + 2, 0, 0, 0, 246, 15, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 83, 84, 65, 84, 116, 0, + 0, 0, 25, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 21, 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, 148, 2, 0, 0, + 1, 0, 0, 0, 72, 0, + 0, 0, 1, 0, 0, 0, + 28, 0, 0, 0, 0, 4, + 254, 255, 0, 1, 0, 0, + 108, 2, 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, + 36, 71, 108, 111, 98, 97, + 108, 115, 0, 171, 171, 171, + 60, 0, 0, 0, 11, 0, + 0, 0, 96, 0, 0, 0, + 96, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 104, 1, 0, 0, 0, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 136, 1, 0, 0, 64, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 148, 1, 0, 0, 128, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 168, 1, + 0, 0, 0, 0, 0, 0, + 184, 1, 0, 0, 144, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 216, 1, 0, 0, 160, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 227, 1, 0, 0, 176, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 237, 1, 0, 0, 192, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 168, 1, + 0, 0, 0, 0, 0, 0, + 12, 2, 0, 0, 16, 1, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 28, 2, + 0, 0, 0, 0, 0, 0, + 44, 2, 0, 0, 32, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 60, 2, + 0, 0, 0, 0, 0, 0, + 76, 2, 0, 0, 48, 1, + 0, 0, 44, 0, 0, 0, + 0, 0, 0, 0, 92, 2, + 0, 0, 0, 0, 0, 0, + 109, 76, 97, 121, 101, 114, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 0, 3, 0, + 3, 0, 4, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 80, 114, 111, + 106, 101, 99, 116, 105, 111, + 110, 0, 118, 82, 101, 110, + 100, 101, 114, 84, 97, 114, + 103, 101, 116, 79, 102, 102, + 115, 101, 116, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 118, 84, 101, 120, + 116, 117, 114, 101, 67, 111, + 111, 114, 100, 115, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 76, + 97, 121, 101, 114, 81, 117, + 97, 100, 0, 118, 77, 97, + 115, 107, 81, 117, 97, 100, + 0, 109, 66, 97, 99, 107, + 100, 114, 111, 112, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 0, 102, 76, 97, 121, + 101, 114, 67, 111, 108, 111, + 114, 0, 102, 76, 97, 121, + 101, 114, 79, 112, 97, 99, + 105, 116, 121, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 105, 66, + 108, 101, 110, 100, 67, 111, + 110, 102, 105, 103, 0, 171, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 89, 117, 118, 67, 111, + 108, 111, 114, 77, 97, 116, + 114, 105, 120, 0, 2, 0, + 3, 0, 3, 0, 3, 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, 49, 48, 46, 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, + 3, 3, 0, 0, 80, 79, + 83, 73, 84, 73, 79, 78, + 0, 171, 171, 171, 79, 83, + 71, 78, 128, 0, 0, 0, + 4, 0, 0, 0, 8, 0, + 0, 0, 104, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 116, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 3, 12, + 0, 0, 116, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 12, 3, + 0, 0, 116, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 2, 0, 0, 0, 7, 8, + 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 +}; ShaderBytes sLayerQuadBlendMaskVS = { LayerQuadBlendMaskVS, sizeof(LayerQuadBlendMaskVS) }; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 10.1 -// -// -// Buffer Definitions: -// -// cbuffer $Globals -// { -// -// float4 fLayerColor; // Offset: 0 Size: 16 -// float fLayerOpacity; // Offset: 16 Size: 4 -// uint4 iBlendConfig; // Offset: 32 Size: 16 -// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 -// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] -// float4x4 mProjection; // Offset: 160 Size: 64 [unused] -// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] -// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] -// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] -// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] -// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim HLSL Bind Count -// ------------------------------ ---------- ------- ----------- -------------- ------ -// sSampler sampler NA NA s0 1 -// tRGB texture float4 2d t0 1 -// tY texture float4 2d t1 1 -// tCb texture float4 2d t2 1 -// tCr texture float4 2d t3 1 -// tMask texture float4 2d t5 1 -// tBackdrop texture float4 2d t6 1 -// $Globals cbuffer NA NA cb0 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 2 zw 1 NONE float zw -// TEXCOORD 1 xyz 2 NONE float xyz -// -// -// 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 0 2 ( FLT, FLT, FLT, FLT) -// c2 cb0 2 1 (UINT,UINT,UINT,UINT) -// c3 cb0 3 3 ( FLT, FLT, FLT, FLT) -// -// -// Sampler/Resource to DX9 shader sampler mappings: -// -// Target Sampler Source Sampler Source Resource -// -------------- --------------- ---------------- -// s0 s0 t0 -// s1 s0 t1 -// s2 s0 t2 -// s3 s0 t3 -// s4 s0 t5 -// s5 s0 t6 -// -// -// Level9 shader bytecode: -// - ps_2_x - def c6, -1, -2, -0.0627499968, -0.50195998 - def c7, -2, -3, -4, -5 - def c8, -6, -7, -8, -9 - def c9, 0.5, 1, 0.25, -2 - def c10, 16, -12, -14, 0 - def c11, -10, -11, -12, -13 - def c12, 0.300000012, 0.589999974, 0.109999999, 0 - def c13, -1, -0, 0, 1 - dcl t0 - dcl t1.xyz - dcl_2d s0 - dcl_2d s1 - dcl_2d s2 - dcl_2d s3 - dcl_2d s4 - dcl_2d s5 - mov r0.x, c13.z - mov r1.x, c13.z - mov r2.z, c13.z - mov r3.w, -c6.x - texld r4, t0, s2 - texld r5, t0, s1 - add r5.x, r5.x, c6.z - add r5.y, r4.x, c6.w - rcp r0.w, t1.z - mul r4.xy, r0.w, t1 - texld r6, t0, s3 - texld r4, r4, s4 - add r5.z, r6.x, c6.w - dp3 r3.x, c3, r5 - dp3 r3.y, c4, r5 - dp3 r3.z, c5, r5 - mul r3, r3, c1.x - mul r5, r4.x, r3 - mov r6.xy, t0.wzzw - texld r7, t0, s0 - texld r6, r6, s5 - mul r7, r7, c1.x - mul r8, r4.x, r7 - mov r9.xy, c6 - add r10, r9.xyxx, c2.xxyz - mul r10, r10, r10 - cmp r5, -r10.x, r8, r5 - cmp r3, -r10.x, r7, r3 - mov r7.w, c1.x - mul r8, r4.x, r7 - cmp r3, -c2.x, r7, r3 - mul r4, r4.x, c0 - cmp r5, -c2.x, r8, r5 - cmp r7.xy, -r10.yzzw, c13.x, c13.y - cmp r0.w, -r10.x, c6.x, r7.x - cmp r1.w, -c2.y, r9.x, r7.y - cmp r0.w, -c2.x, r9.x, r0.w - cmp r4, r0.w, r4, r5 - cmp r3, r0.w, c0, r3 - cmp r3, -c2.y, r3, r4 - cmp r3, r1.w, c13.zzzw, r3 - rcp r0.w, r3.w - mul r4.xyz, r0.w, r3 - cmp r4.xyz, -c2.w, r3, r4 - add r5.xy, -r4.yzzw, r4 - cmp r5.zw, r5.x, r4.xyxy, r4.xyyx - max r0.w, r5.z, r4.z - min r1.w, r4.z, r5.w - add r7.w, r0.w, -r1.w - rcp r0.w, r6.w - mul r8.xyz, r0.w, r6 - mad r5.zw, r6.xyzy, r0.w, -r8.xyxz - mul r9.xy, r7.w, r5.zwzw - mad r11, r6.yxxz, r0.w, -r8.xzyy - rcp r1.w, r11.x - mul r7.y, r1.w, r9.x - cmp r1.yz, r11.z, c13.z, r7.xwyw - mul r12, r7.w, r11 - rcp r1.w, r5.w - mul r7.x, r1.w, r12.y - cmp r2.xy, r11.w, c13.z, r7.xwzw - cmp r1.xyz, r5.z, r1, r2 - rcp r1.w, r5.z - mul r7.z, r1.w, r12.x - cmp r0.yz, r11.y, c13.z, r7.xzww - cmp r0.xyz, r11.w, r0, r1 - mov r1.y, c13.z - mov r2.y, c13.z - mov r10.z, c13.z - rcp r1.w, r11.z - mul r7.y, r1.w, r12.w - cmp r2.xz, r11.x, c13.z, r7.wyyw - rcp r1.w, r11.y - mul r7.x, r1.w, r9.y - cmp r10.xy, r5.z, c13.z, r7.wxzw - cmp r2.xyz, r11.w, r2, r10 - rcp r1.w, r11.w - mul r7.z, r1.w, r12.z - cmp r1.xz, r5.w, c13.z, r7.zyww - cmp r1.xyz, r5.z, r1, r2 - cmp r0.xyz, r11.x, r0, r1 - cmp r1.xy, r11.z, r8, r8.yxzw - dp3 r4.w, c12, r0 - dp3 r8.w, c12, r8 - add r4.w, -r4.w, r8.w - add r0.xyz, r0, r4.w - add r4.w, -r0.y, r0.x - cmp r1.zw, r4.w, r0.xyyx, r0.xyxy - min r4.w, r0.z, r1.z - max r2.x, r1.w, r0.z - dp3 r1.z, c12, r0 - add r1.w, -r4.w, r1.z - rcp r1.w, r1.w - add r2.yzw, r0.xxyz, -r1.z - mul r2.yzw, r1.z, r2 - mad r2.yzw, r2, r1.w, r1.z - cmp r0.xyz, r4.w, r0, r2.yzww - add r2.yzw, -r1.z, r0.xxyz - add r1.w, -r1.z, -c6.x - mul r2.yzw, r1.w, r2 - add r1.w, -r1.z, r2.x - add r4.w, -r2.x, -c6.x - rcp r1.w, r1.w - mad r2.xyz, r2.yzww, r1.w, r1.z - cmp r0.xyz, r4.w, r0, r2 - mov r4.w, c2.z - add r1.z, r4.w, c10.z - mul r1.z, r1.z, r1.z - dp3 r1.w, c12, r4 - add r2.x, -r8.w, r1.w - add r1.w, -r1.w, r8.w - add r2.yzw, r1.w, r4.xxyz - mad r7.xyz, r6, r0.w, r2.x - add r1.w, -r7.y, r7.x - cmp r5.zw, r1.w, r7.xyyx, r7.xyxy - min r1.w, r7.z, r5.z - max r2.x, r5.w, r7.z - dp3 r7.w, c12, r7 - add r5.z, -r1.w, r7.w - rcp r5.z, r5.z - add r9.xyz, -r7.w, r7 - mul r9.xyz, r7.w, r9 - mad r9.xyz, r9, r5.z, r7.w - cmp r7.xyz, r1.w, r7, r9 - add r9.xyz, -r7.w, r7 - add r1.w, -r7.w, -c6.x - mul r9.xyz, r1.w, r9 - add r1.w, r2.x, -r7.w - add r9.w, -r2.x, -c6.x - rcp r1.w, r1.w - mad r9.xyz, r9, r1.w, r7.w - cmp r7.xyz, r9.w, r7, r9 - cmp r7.xyz, -r1.z, r7, c13.z - add r7.w, -r2.z, r2.y - cmp r1.zw, r7.w, r2.xyzy, r2.xyyz - min r7.w, r2.w, r1.z - max r5.z, r1.w, r2.w - dp3 r5.w, c12, r2.yzww - add r1.z, -r7.w, r5.w - rcp r1.z, r1.z - add r9.xyz, r2.yzww, -r5.w - mul r9.xyz, r5.w, r9 - mad r9.xyz, r9, r1.z, r5.w - cmp r2.xyz, r7.w, r2.yzww, r9 - add r9.xyz, -r5.w, r2 - add r2.w, -r5.w, -c6.x - mul r9.xyz, r2.w, r9 - add r2.w, -r5.w, r5.z - add r7.w, -r5.z, -c6.x - rcp r2.w, r2.w - mad r9.xyz, r9, r2.w, r5.w - cmp r2.xyz, r7.w, r2, r9 - add r9, r4.w, c11 - mul r9, r9, r9 - cmp r2.xyz, -r9.w, r2, r7 - cmp r0.xyz, -r9.z, r0, r2 - add r2, -r4.xxzy, r4.yzxz - mov r7.y, c13.z - mov r10.y, c13.z - mov r11.z, c13.z - rcp r7.w, r2.z - max r11.w, r1.x, r8.z - min r5.z, r8.z, r1.y - add r1.w, -r5.z, r11.w - mul r5.zw, r1.w, r5.xyxy - mul r1.x, r7.w, r5.w - cmp r11.xy, r2.y, c13.z, r1.wxzw - rcp r5.w, r5.x - mul r12, r1.w, r2 - mul r1.y, r5.w, r12.w - cmp r10.xz, r2.x, c13.z, r1.wyyw - cmp r10.xyz, r2.w, r10, r11 - rcp r5.w, r2.w - mul r1.z, r5.w, r5.z - cmp r7.xz, r5.y, c13.z, r1.zyww - cmp r7.xyz, r2.y, r7, r10 - mov r10.x, c13.z - mov r11.x, c13.z - mov r13.z, c13.z - rcp r7.w, r2.x - mul r1.y, r7.w, r12.y - cmp r11.yz, r5.x, c13.z, r1.xwyw - rcp r7.w, r5.y - mul r1.x, r7.w, r12.z - cmp r13.xy, r2.w, c13.z, r1.xwzw - cmp r5.xyz, r2.y, r11, r13 - rcp r5.w, r2.y - mul r1.z, r5.w, r12.x - cmp r10.yz, r2.z, c13.z, r1.xzww - cmp r1.xyz, r2.w, r10, r5 - cmp r1.xyz, r2.x, r1, r7 - dp3 r1.w, c12, r1 - add r1.w, -r1.w, r8.w - add r1.xyz, r1.w, r1 - add r1.w, -r1.y, r1.x - cmp r2.xy, r1.w, r1.yxzw, r1 - min r8.w, r1.z, r2.x - max r5.x, r2.y, r1.z - dp3 r1.w, c12, r1 - add r2.x, -r8.w, r1.w - rcp r2.x, r2.x - add r2.yzw, -r1.w, r1.xxyz - mul r2.yzw, r1.w, r2 - mad r2.xyz, r2.yzww, r2.x, r1.w - cmp r1.xyz, r8.w, r1, r2 - add r2.xyz, -r1.w, r1 - add r2.w, -r1.w, -c6.x - mul r2.xyz, r2.w, r2 - add r2.w, -r1.w, r5.x - add r8.w, -r5.x, -c6.x - rcp r2.w, r2.w - mad r2.xyz, r2, r2.w, r1.w - cmp r1.xyz, r8.w, r1, r2 - cmp r0.xyz, -r9.y, r1, r0 - mad r1.xyz, r6, r0.w, r4 - mul r2.xyz, r4, r8 - mad r5.xyz, r2, c6.y, r1 - mad r1.xyz, r8, -r4, r1 - cmp r0.xyz, -r9.x, r5, r0 - mad r5.xyz, r6, r0.w, -r4 - abs r5.xyz, r5 - add r7, r4.w, c8 - mul r7, r7, r7 - cmp r0.xyz, -r7.w, r5, r0 - add r5.xy, -r4.yzzw, c9.x - mad r9.xyz, r4, -c9.w, -c9.y - mad r1.w, r6.z, -r0.w, c9.z - mad r10.xyz, r8, c10.x, c10.y - mad r10.xyz, r10, r8, -c7.z - mul r10.xyz, r8, r10 - rsq r2.w, r8.z - rcp r2.w, r2.w - cmp r1.w, r1.w, r10.z, r2.w - mad r1.w, r6.z, -r0.w, r1.w - mad r1.w, r9.z, r1.w, r8.z - mad r11.xyz, r4, c6.y, -c6.x - mul r11.xyz, r8, r11 - mad r12, r6.yzxy, -r0.w, c9.yyzz - mad r5.zw, r11.xyyz, -r12.xyxy, r8.xyyz - cmp r13.z, r5.y, r5.w, r1.w - rsq r1.w, r8.y - rcp r1.w, r1.w - cmp r1.w, r12.w, r10.y, r1.w - mad r1.w, r6.y, -r0.w, r1.w - mad r1.w, r9.y, r1.w, r8.y - cmp r13.y, r5.x, r5.z, r1.w - add r14, -r4.xyzx, c9.yyyx - rsq r1.w, r8.x - rcp r1.w, r1.w - cmp r1.w, r12.z, r10.x, r1.w - mad r1.w, r6.x, -r0.w, r1.w - mad r1.w, r9.x, r1.w, r8.x - mad r9, r6.xyzx, -r0.w, c9.xxxy - mad r6.xyz, r6, r0.w, c6.x - mul r6.xyz, r6, r6 - mad r0.w, r11.x, -r9.w, r8.x - cmp r13.x, r14.w, r0.w, r1.w - cmp r0.xyz, -r7.z, r13, r0 - add r10.xyz, r8, r8 - mad r11.xyz, r4, -c6.y, r10 - add r11.xyz, r11, c6.x - mad r13.xyz, r4, -r10, r11 - mul r10.xyz, r4, r10 - add r15.xyz, r4, r4 - mul r16.xyz, r8, r15 - mad r11.xyz, r15, -r8, r11 - cmp r9.xyz, r9, r10, r11 - cmp r5.yz, r5.xxyw, r16, r13 - cmp r5.x, r14.w, r16.x, r13.x - cmp r0.xyz, -r7.y, r5, r0 - rcp r0.w, r4.x - mad r0.w, r9.w, -r0.w, -c6.x - max r1.w, r0.w, c13.z - mul r5.xyz, r4, r4 - cmp r0.w, -r5.x, c13.z, r1.w - cmp r10.x, -r6.x, -c6.x, r0.w - rcp r0.w, r4.y - mad r0.w, r12.x, -r0.w, -c6.x - max r1.w, r0.w, c13.z - cmp r0.w, -r5.y, c13.z, r1.w - cmp r10.y, -r6.y, -c6.x, r0.w - rcp r0.w, r4.z - mad r0.w, r12.y, -r0.w, -c6.x - max r1.w, r0.w, c13.z - cmp r0.w, -r5.z, c13.z, r1.w - cmp r10.z, -r6.z, -c6.x, r0.w - cmp r0.xyz, -r7.x, r10, r0 - add r5, r4.w, c7 - mul r5, r5, r5 - add r6.xyz, r4, c6.x - mul r6.xyz, r6, r6 - rcp r0.w, r14.x - mul r0.w, r0.w, r8.x - min r1.w, r0.w, -c6.x - cmp r0.w, -r6.x, -c6.x, r1.w - mul r7.xyz, r8, r8 - cmp r10.x, -r7.x, c13.z, r0.w - rcp r0.w, r14.y - rcp r1.w, r14.z - mul r1.w, r1.w, r8.z - min r2.w, r1.w, -c6.x - cmp r1.w, -r6.z, -c6.x, r2.w - cmp r10.z, -r7.z, c13.z, r1.w - mul r0.w, r0.w, r8.y - min r1.w, r0.w, -c6.x - cmp r0.w, -r6.y, -c6.x, r1.w - cmp r10.y, -r7.y, c13.z, r0.w - cmp r0.xyz, -r5.w, r10, r0 - max r6.xyz, r8, r4 - min r7.xyz, r4, r8 - cmp r0.xyz, -r5.z, r6, r0 - cmp r0.xyz, -r5.y, r7, r0 - cmp r0.xyz, -r5.x, r9, r0 - cmp r0.xyz, -r10.w, r1, r0 - cmp r0.xyz, -c2.z, r2, r0 - lrp r1.xyz, r6.w, r0, r4 - mul r1.w, r6.w, r6.w - mul r0.xyz, r3.w, r1 - mul r1.x, r3.w, r3.w - mov r0.w, r3.w - cmp r0, -r1.x, c13.z, r0 - cmp r0, -r1.w, r3, r0 - mov oC0, r0 - -// approximately 323 instruction slots used (6 texture, 317 arithmetic) -ps_4_0 -dcl_constantbuffer CB0[6], immediateIndexed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t0 -dcl_resource_texture2d (float,float,float,float) t1 -dcl_resource_texture2d (float,float,float,float) t2 -dcl_resource_texture2d (float,float,float,float) t3 -dcl_resource_texture2d (float,float,float,float) t5 -dcl_resource_texture2d (float,float,float,float) t6 -dcl_input_ps linear v1.xy -dcl_input_ps linear v1.zw -dcl_input_ps linear v2.xyz -dcl_output o0.xyzw -dcl_temps 22 -sample r0.xyzw, v1.zwzz, t6.xyzw, s0 -if_z cb0[2].y - if_z cb0[2].x - sample r1.xyzw, v1.xyxx, t0.xyzw, s0 - mul r1.xyz, r1.xyzx, cb0[1].xxxx - mov r1.w, cb0[1].x - mov r2.x, l(-1) - else - ieq r2.y, l(1), cb0[2].x - if_nz r2.y - sample r3.xyzw, v1.xyxx, t0.xyzw, s0 - mul r1.xyzw, r3.xyzw, cb0[1].xxxx - mov r2.x, l(-1) - else - ieq r2.x, l(2), cb0[2].x - if_nz r2.x - sample r3.xyzw, v1.xyxx, t1.xyzw, s0 - add r3.x, r3.x, l(-0.062750) - sample r4.xyzw, v1.xyxx, t2.xyzw, s0 - add r3.y, r4.x, l(-0.501960) - sample r4.xyzw, v1.xyxx, t3.xyzw, s0 - add r3.z, r4.x, l(-0.501960) - dp3 r4.x, cb0[3].xyzx, r3.xyzx - dp3 r4.y, cb0[4].xyzx, r3.xyzx - dp3 r4.z, cb0[5].xyzx, r3.xyzx - mov r4.w, l(1.000000) - mul r1.xyzw, r4.xyzw, cb0[1].xxxx - endif - endif - endif - movc r1.xyzw, r2.xxxx, r1.xyzw, cb0[0].xyzw - mov r2.x, l(-1) -else - ieq r2.x, l(1), cb0[2].y - if_nz r2.x - if_z cb0[2].x - sample r3.xyzw, v1.xyxx, t0.xyzw, s0 - mul r3.xyz, r3.xyzx, cb0[1].xxxx - div r2.yz, v2.xxyx, v2.zzzz - sample r4.xyzw, r2.yzyy, t5.xyzw, s0 - mov r3.w, cb0[1].x - mul r1.xyzw, r3.xyzw, r4.xxxx - mov r2.y, l(-1) - else - ieq r2.z, l(1), cb0[2].x - if_nz r2.z - div r2.zw, v2.xxxy, v2.zzzz - sample r3.xyzw, r2.zwzz, t5.xyzw, s0 - sample r4.xyzw, v1.xyxx, t0.xyzw, s0 - mul r4.xyzw, r4.xyzw, cb0[1].xxxx - mul r1.xyzw, r3.xxxx, r4.xyzw - mov r2.y, l(-1) - else - ieq r2.y, l(2), cb0[2].x - if_nz r2.y - div r2.zw, v2.xxxy, v2.zzzz - sample r3.xyzw, r2.zwzz, t5.xyzw, s0 - sample r4.xyzw, v1.xyxx, t1.xyzw, s0 - add r4.x, r4.x, l(-0.062750) - sample r5.xyzw, v1.xyxx, t2.xyzw, s0 - add r4.y, r5.x, l(-0.501960) - sample r5.xyzw, v1.xyxx, t3.xyzw, s0 - add r4.z, r5.x, l(-0.501960) - dp3 r5.x, cb0[3].xyzx, r4.xyzx - dp3 r5.y, cb0[4].xyzx, r4.xyzx - dp3 r5.z, cb0[5].xyzx, r4.xyzx - mov r5.w, l(1.000000) - mul r4.xyzw, r5.xyzw, cb0[1].xxxx - mul r1.xyzw, r3.xxxx, r4.xyzw - endif - endif - endif - if_z r2.y - div r2.yz, v2.xxyx, v2.zzzz - sample r3.xyzw, r2.yzyy, t5.xyzw, s0 - mul r1.xyzw, r3.xxxx, cb0[0].xyzw - endif - endif -endif -movc r1.xyzw, r2.xxxx, r1.xyzw, l(0,0,0,1.000000) -eq r2.x, r0.w, l(0.000000) -if_nz r2.x - mov o0.xyzw, r1.xyzw - ret -endif -eq r2.x, r1.w, l(0.000000) -if_nz r2.x - mov o0.xyzw, l(0,0,0,0) - ret -endif -div r0.xyz, r0.xyzx, r0.wwww -div r2.xyz, r1.xyzx, r1.wwww -movc r1.xyz, cb0[2].wwww, r2.xyzx, r1.xyzx -mul r2.xyz, r0.xyzx, r1.xyzx -add r3.xyz, r0.xyzx, r1.xyzx -mad r4.xyz, -r0.xyzx, r1.xyzx, r3.xyzx -ge r5.xyzw, l(0.500000, 0.500000, 0.500000, 0.250000), r0.xyzx -add r6.xyz, r0.xyzx, r0.xyzx -mul r7.xyz, r1.xyzx, r6.xyzx -add r8.xyz, r1.xyzx, r1.xyzx -mad r9.xyz, r1.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), r6.xyzx -add r9.xyz, r9.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) -mul r10.xyz, r0.xyzx, r8.xyzx -mad r8.xyz, -r8.xyzx, r0.xyzx, r9.xyzx -movc r5.xyz, r5.xyzx, r7.xyzx, r8.xyzx -min r7.xyz, r0.xyzx, r1.xyzx -ieq r8.xyzw, l(1, 2, 3, 4), cb0[2].zzzz -max r11.xyz, r0.xyzx, r1.xyzx -eq r12.xyzw, r0.xyzx, l(0.000000, 0.000000, 0.000000, 1.000000) -eq r13.xyzw, r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -add r14.xyz, -r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -div r14.xyz, r0.xyzx, r14.xyzx -min r14.xyz, r14.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -movc r13.xyz, r13.xyzx, l(1.000000,1.000000,1.000000,0), r14.xyzx -movc r12.xyz, r12.xyzx, l(0,0,0,0), r13.xyzx -add r13.xyz, -r0.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -div r14.xyz, r13.xyzx, r1.xyzx -min r14.xyz, r14.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -add r14.xyz, -r14.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -movc r2.w, r13.w, l(0), r14.x -movc r15.x, r12.w, l(1.000000), r2.w -eq r14.xw, r0.yyyz, l(1.000000, 0.000000, 0.000000, 1.000000) -eq r16.xy, r1.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) -movc r14.yz, r16.xxyx, l(0,0,0,0), r14.yyzy -movc r15.yz, r14.xxwx, l(0,1.000000,1.000000,0), r14.yyzy -ge r14.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), r1.xyzx -mad r6.xyz, -r1.xyzx, r6.xyzx, r9.xyzx -movc r6.xyz, r14.xyzx, r10.xyzx, r6.xyzx -ieq r9.xyzw, l(5, 6, 7, 8), cb0[2].zzzz -mad r10.xyz, -r1.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) -mul r10.xyz, r0.xyzx, r10.xyzx -mad r10.xyz, -r10.xyzx, r13.xyzx, r0.xyzx -mad r13.xyz, r1.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) -mad r16.xyz, r0.xyzx, l(16.000000, 16.000000, 16.000000, 0.000000), l(-12.000000, -12.000000, -12.000000, 0.000000) -mad r16.xyz, r16.xyzx, r0.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000) -mul r16.xyz, r0.xyzx, r16.xyzx -sqrt r17.xyz, r0.xyzx -movc r2.w, r5.w, r16.x, r17.x -add r2.w, -r0.x, r2.w -mad r2.w, r13.x, r2.w, r0.x -movc r18.x, r14.x, r10.x, r2.w -ge r10.xw, l(0.250000, 0.000000, 0.000000, 0.250000), r0.yyyz -movc r10.xw, r10.xxxw, r16.yyyz, r17.yyyz -add r10.xw, -r0.yyyz, r10.xxxw -mad r10.xw, r13.yyyz, r10.xxxw, r0.yyyz -movc r18.yz, r14.yyzy, r10.yyzy, r10.xxwx -add r10.xyz, r0.xyzx, -r1.xyzx -mad r3.xyz, -r2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), r3.xyzx -max r2.w, r0.y, r0.x -max r2.w, r0.z, r2.w -min r3.w, r0.y, r0.x -min r3.w, r0.z, r3.w -add r13.w, r2.w, -r3.w -ge r2.w, r1.y, r1.x -if_nz r2.w - lt r14.xyz, r1.xxzx, r1.zyyz - add r16.xyzw, -r1.xxzz, r1.yzxy - mul r17.xyz, r13.wwww, r16.xyzx - div r13.xyz, r17.xyzx, r16.yxwy - and r16.yz, r13.xxwx, r14.xxxx - ge r14.xw, r1.zzzz, r1.yyyx - and r17.yz, r13.wwyw, r14.yyyy - and r19.xy, r13.zwzz, r14.zzzz - mov r17.x, l(0) - mov r19.z, l(0) - movc r14.yzw, r14.wwww, r17.xxyz, r19.xxyz - mov r16.x, l(0) - movc r14.xyz, r14.xxxx, r16.xyzx, r14.yzwy -else - lt r16.xyz, r1.yyzy, r1.zxxz - add r17.xyzw, -r1.yyzz, r1.xzyx - mul r19.xyz, r13.wwww, r17.xyzx - div r13.xyz, r19.xyzx, r17.yxwy - and r17.xz, r13.xxwx, r16.xxxx - ge r16.xw, r1.zzzz, r1.xxxy - and r19.xz, r13.wwyw, r16.yyyy - and r13.xy, r13.wzww, r16.zzzz - mov r19.y, l(0) - mov r13.z, l(0) - movc r13.xyz, r16.wwww, r19.xyzx, r13.xyzx - mov r17.y, l(0) - movc r14.xyz, r16.xxxx, r17.xyzx, r13.xyzx -endif -dp3 r2.w, l(0.300000, 0.590000, 0.110000, 0.000000), r0.xyzx -dp3 r3.w, l(0.300000, 0.590000, 0.110000, 0.000000), r14.xyzx -add r3.w, r2.w, -r3.w -add r13.xyz, r3.wwww, r14.xyzx -dp3 r3.w, l(0.300000, 0.590000, 0.110000, 0.000000), r13.xyzx -min r4.w, r13.y, r13.x -min r4.w, r13.z, r4.w -max r5.w, r13.y, r13.x -max r5.w, r13.z, r5.w -lt r6.w, r4.w, l(0.000000) -add r14.xyz, -r3.wwww, r13.xyzx -mul r14.xyz, r3.wwww, r14.xyzx -add r4.w, r3.w, -r4.w -div r14.xyz, r14.xyzx, r4.wwww -add r14.xyz, r3.wwww, r14.xyzx -movc r13.xyz, r6.wwww, r14.xyzx, r13.xyzx -lt r4.w, l(1.000000), r5.w -add r14.xyz, -r3.wwww, r13.xyzx -add r6.w, -r3.w, l(1.000000) -mul r14.xyz, r6.wwww, r14.xyzx -add r5.w, -r3.w, r5.w -div r14.xyz, r14.xyzx, r5.wwww -add r14.xyz, r3.wwww, r14.xyzx -movc r13.xyz, r4.wwww, r14.xyzx, r13.xyzx -ieq r14.xyzw, l(9, 10, 11, 12), cb0[2].zzzz -max r3.w, r1.y, r1.x -max r3.w, r1.z, r3.w -min r4.w, r1.y, r1.x -min r4.w, r1.z, r4.w -add r16.w, r3.w, -r4.w -ge r3.w, r0.y, r0.x -if_nz r3.w - lt r17.xyz, r0.xxzx, r0.zyyz - add r19.xyzw, -r0.xxzz, r0.yzxy - mul r20.xyz, r16.wwww, r19.xyzx - div r16.xyz, r20.xyzx, r19.yxwy - and r19.yz, r16.xxwx, r17.xxxx - ge r17.xw, r0.zzzz, r0.yyyx - and r20.yz, r16.wwyw, r17.yyyy - and r21.xy, r16.zwzz, r17.zzzz - mov r20.x, l(0) - mov r21.z, l(0) - movc r17.yzw, r17.wwww, r20.xxyz, r21.xxyz - mov r19.x, l(0) - movc r17.xyz, r17.xxxx, r19.xyzx, r17.yzwy -else - lt r19.xyz, r0.yyzy, r0.zxxz - add r20.xyzw, -r0.yyzz, r0.xzyx - mul r21.xyz, r16.wwww, r20.xyzx - div r16.xyz, r21.xyzx, r20.yxwy - and r20.xz, r16.xxwx, r19.xxxx - ge r19.xw, r0.zzzz, r0.xxxy - and r21.xz, r16.wwyw, r19.yyyy - and r16.xy, r16.wzww, r19.zzzz - mov r21.y, l(0) - mov r16.z, l(0) - movc r16.xyz, r19.wwww, r21.xyzx, r16.xyzx - mov r20.y, l(0) - movc r17.xyz, r19.xxxx, r20.xyzx, r16.xyzx -endif -dp3 r3.w, l(0.300000, 0.590000, 0.110000, 0.000000), r17.xyzx -add r3.w, r2.w, -r3.w -add r16.xyz, r3.wwww, r17.xyzx -dp3 r3.w, l(0.300000, 0.590000, 0.110000, 0.000000), r16.xyzx -min r4.w, r16.y, r16.x -min r4.w, r16.z, r4.w -max r5.w, r16.y, r16.x -max r5.w, r16.z, r5.w -lt r6.w, r4.w, l(0.000000) -add r17.xyz, -r3.wwww, r16.xyzx -mul r17.xyz, r3.wwww, r17.xyzx -add r4.w, r3.w, -r4.w -div r17.xyz, r17.xyzx, r4.wwww -add r17.xyz, r3.wwww, r17.xyzx -movc r16.xyz, r6.wwww, r17.xyzx, r16.xyzx -lt r4.w, l(1.000000), r5.w -add r17.xyz, -r3.wwww, r16.xyzx -add r6.w, -r3.w, l(1.000000) -mul r17.xyz, r6.wwww, r17.xyzx -add r5.w, -r3.w, r5.w -div r17.xyz, r17.xyzx, r5.wwww -add r17.xyz, r3.wwww, r17.xyzx -movc r16.xyz, r4.wwww, r17.xyzx, r16.xyzx -dp3 r3.w, l(0.300000, 0.590000, 0.110000, 0.000000), r1.xyzx -add r4.w, r2.w, -r3.w -add r17.xyz, r1.xyzx, r4.wwww -dp3 r4.w, l(0.300000, 0.590000, 0.110000, 0.000000), r17.xyzx -min r5.w, r17.y, r17.x -min r5.w, r17.z, r5.w -max r6.w, r17.y, r17.x -max r6.w, r17.z, r6.w -lt r7.w, r5.w, l(0.000000) -add r19.xyz, -r4.wwww, r17.xyzx -mul r19.xyz, r4.wwww, r19.xyzx -add r5.w, r4.w, -r5.w -div r19.xyz, r19.xyzx, r5.wwww -add r19.xyz, r4.wwww, r19.xyzx -movc r17.xyz, r7.wwww, r19.xyzx, r17.xyzx -lt r5.w, l(1.000000), r6.w -add r19.xyz, -r4.wwww, r17.xyzx -add r7.w, -r4.w, l(1.000000) -mul r19.xyz, r7.wwww, r19.xyzx -add r6.w, -r4.w, r6.w -div r19.xyz, r19.xyzx, r6.wwww -add r19.xyz, r4.wwww, r19.xyzx -movc r17.xyz, r5.wwww, r19.xyzx, r17.xyzx -ieq r19.xy, l(13, 14, 0, 0), cb0[2].zzzz -add r2.w, -r2.w, r3.w -add r0.xyz, r0.xyzx, r2.wwww -dp3 r2.w, l(0.300000, 0.590000, 0.110000, 0.000000), r0.xyzx -min r3.w, r0.y, r0.x -min r3.w, r0.z, r3.w -max r4.w, r0.y, r0.x -max r4.w, r0.z, r4.w -lt r5.w, r3.w, l(0.000000) -add r20.xyz, r0.xyzx, -r2.wwww -mul r20.xyz, r2.wwww, r20.xyzx -add r3.w, r2.w, -r3.w -div r20.xyz, r20.xyzx, r3.wwww -add r20.xyz, r2.wwww, r20.xyzx -movc r0.xyz, r5.wwww, r20.xyzx, r0.xyzx -lt r3.w, l(1.000000), r4.w -add r20.xyz, -r2.wwww, r0.xyzx -add r5.w, -r2.w, l(1.000000) -mul r20.xyz, r5.wwww, r20.xyzx -add r4.w, -r2.w, r4.w -div r20.xyz, r20.xyzx, r4.wwww -add r20.xyz, r2.wwww, r20.xyzx -movc r0.xyz, r3.wwww, r20.xyzx, r0.xyzx -and r0.xyz, r0.xyzx, r19.yyyy -movc r0.xyz, r19.xxxx, r17.xyzx, r0.xyzx -movc r0.xyz, r14.wwww, r16.xyzx, r0.xyzx -movc r0.xyz, r14.zzzz, r13.xyzx, r0.xyzx -movc r0.xyz, r14.yyyy, r3.xyzx, r0.xyzx -movc r0.xyz, r14.xxxx, |r10.xyzx|, r0.xyzx -movc r0.xyz, r9.wwww, r18.xyzx, r0.xyzx -movc r0.xyz, r9.zzzz, r6.xyzx, r0.xyzx -movc r0.xyz, r9.yyyy, r15.xyzx, r0.xyzx -movc r0.xyz, r9.xxxx, r12.xyzx, r0.xyzx -movc r0.xyz, r8.wwww, r11.xyzx, r0.xyzx -movc r0.xyz, r8.zzzz, r7.xyzx, r0.xyzx -movc r0.xyz, r8.yyyy, r5.xyzx, r0.xyzx -movc r0.xyz, r8.xxxx, r4.xyzx, r0.xyzx -movc r0.xyz, cb0[2].zzzz, r0.xyzx, r2.xyzx -add r2.x, -r0.w, l(1.000000) -mul r0.xyz, r0.xyzx, r0.wwww -mad r0.xyz, r2.xxxx, r1.xyzx, r0.xyzx -mul o0.xyz, r1.wwww, r0.xyzx -mov o0.w, r1.w -ret -// Approximately 333 instruction slots used -#endif - -const BYTE BlendShader[] = -{ - 68, 88, 66, 67, 28, 114, - 244, 41, 206, 5, 116, 244, - 79, 130, 118, 154, 72, 188, - 36, 32, 1, 0, 0, 0, - 172, 66, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 16, 23, 0, 0, 208, 61, - 0, 0, 76, 62, 0, 0, - 240, 65, 0, 0, 120, 66, - 0, 0, 65, 111, 110, 57, - 208, 22, 0, 0, 208, 22, - 0, 0, 0, 2, 255, 255, - 112, 22, 0, 0, 96, 0, - 0, 0, 3, 0, 60, 0, - 0, 0, 96, 0, 0, 0, - 96, 0, 6, 0, 36, 0, - 0, 0, 96, 0, 0, 0, - 0, 0, 1, 0, 1, 0, - 2, 0, 2, 0, 3, 0, - 3, 0, 5, 0, 4, 0, - 6, 0, 5, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 1, 0, 2, 0, - 3, 3, 3, 3, 0, 0, - 3, 0, 3, 0, 3, 0, - 0, 0, 0, 0, 1, 2, - 255, 255, 81, 0, 0, 5, - 6, 0, 15, 160, 0, 0, - 128, 191, 0, 0, 0, 192, - 18, 131, 128, 189, 115, 128, - 0, 191, 81, 0, 0, 5, - 7, 0, 15, 160, 0, 0, - 0, 192, 0, 0, 64, 192, - 0, 0, 128, 192, 0, 0, - 160, 192, 81, 0, 0, 5, - 8, 0, 15, 160, 0, 0, - 192, 192, 0, 0, 224, 192, - 0, 0, 0, 193, 0, 0, - 16, 193, 81, 0, 0, 5, - 9, 0, 15, 160, 0, 0, - 0, 63, 0, 0, 128, 63, - 0, 0, 128, 62, 0, 0, - 0, 192, 81, 0, 0, 5, - 10, 0, 15, 160, 0, 0, - 128, 65, 0, 0, 64, 193, - 0, 0, 96, 193, 0, 0, - 0, 0, 81, 0, 0, 5, - 11, 0, 15, 160, 0, 0, - 32, 193, 0, 0, 48, 193, - 0, 0, 64, 193, 0, 0, - 80, 193, 81, 0, 0, 5, - 12, 0, 15, 160, 154, 153, - 153, 62, 61, 10, 23, 63, - 174, 71, 225, 61, 0, 0, - 0, 0, 81, 0, 0, 5, - 13, 0, 15, 160, 0, 0, - 128, 191, 0, 0, 0, 128, - 0, 0, 0, 0, 0, 0, - 128, 63, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 15, 176, 31, 0, 0, 2, - 0, 0, 0, 128, 1, 0, - 7, 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, 31, 0, 0, 2, - 0, 0, 0, 144, 2, 8, - 15, 160, 31, 0, 0, 2, - 0, 0, 0, 144, 3, 8, - 15, 160, 31, 0, 0, 2, - 0, 0, 0, 144, 4, 8, - 15, 160, 31, 0, 0, 2, - 0, 0, 0, 144, 5, 8, - 15, 160, 1, 0, 0, 2, - 0, 0, 1, 128, 13, 0, - 170, 160, 1, 0, 0, 2, - 1, 0, 1, 128, 13, 0, - 170, 160, 1, 0, 0, 2, - 2, 0, 4, 128, 13, 0, - 170, 160, 1, 0, 0, 2, - 3, 0, 8, 128, 6, 0, - 0, 161, 66, 0, 0, 3, - 4, 0, 15, 128, 0, 0, - 228, 176, 2, 8, 228, 160, - 66, 0, 0, 3, 5, 0, - 15, 128, 0, 0, 228, 176, - 1, 8, 228, 160, 2, 0, - 0, 3, 5, 0, 1, 128, - 5, 0, 0, 128, 6, 0, - 170, 160, 2, 0, 0, 3, - 5, 0, 2, 128, 4, 0, - 0, 128, 6, 0, 255, 160, - 6, 0, 0, 2, 0, 0, - 8, 128, 1, 0, 170, 176, - 5, 0, 0, 3, 4, 0, - 3, 128, 0, 0, 255, 128, - 1, 0, 228, 176, 66, 0, - 0, 3, 6, 0, 15, 128, - 0, 0, 228, 176, 3, 8, - 228, 160, 66, 0, 0, 3, - 4, 0, 15, 128, 4, 0, - 228, 128, 4, 8, 228, 160, - 2, 0, 0, 3, 5, 0, - 4, 128, 6, 0, 0, 128, - 6, 0, 255, 160, 8, 0, - 0, 3, 3, 0, 1, 128, - 3, 0, 228, 160, 5, 0, - 228, 128, 8, 0, 0, 3, - 3, 0, 2, 128, 4, 0, - 228, 160, 5, 0, 228, 128, - 8, 0, 0, 3, 3, 0, - 4, 128, 5, 0, 228, 160, - 5, 0, 228, 128, 5, 0, - 0, 3, 3, 0, 15, 128, - 3, 0, 228, 128, 1, 0, - 0, 160, 5, 0, 0, 3, - 5, 0, 15, 128, 4, 0, - 0, 128, 3, 0, 228, 128, - 1, 0, 0, 2, 6, 0, - 3, 128, 0, 0, 235, 176, - 66, 0, 0, 3, 7, 0, - 15, 128, 0, 0, 228, 176, - 0, 8, 228, 160, 66, 0, - 0, 3, 6, 0, 15, 128, - 6, 0, 228, 128, 5, 8, - 228, 160, 5, 0, 0, 3, - 7, 0, 15, 128, 7, 0, - 228, 128, 1, 0, 0, 160, - 5, 0, 0, 3, 8, 0, - 15, 128, 4, 0, 0, 128, - 7, 0, 228, 128, 1, 0, - 0, 2, 9, 0, 3, 128, - 6, 0, 228, 160, 2, 0, - 0, 3, 10, 0, 15, 128, - 9, 0, 4, 128, 2, 0, - 144, 160, 5, 0, 0, 3, - 10, 0, 15, 128, 10, 0, - 228, 128, 10, 0, 228, 128, - 88, 0, 0, 4, 5, 0, - 15, 128, 10, 0, 0, 129, - 8, 0, 228, 128, 5, 0, - 228, 128, 88, 0, 0, 4, - 3, 0, 15, 128, 10, 0, - 0, 129, 7, 0, 228, 128, - 3, 0, 228, 128, 1, 0, - 0, 2, 7, 0, 8, 128, - 1, 0, 0, 160, 5, 0, - 0, 3, 8, 0, 15, 128, - 4, 0, 0, 128, 7, 0, - 228, 128, 88, 0, 0, 4, - 3, 0, 15, 128, 2, 0, - 0, 161, 7, 0, 228, 128, - 3, 0, 228, 128, 5, 0, - 0, 3, 4, 0, 15, 128, - 4, 0, 0, 128, 0, 0, - 228, 160, 88, 0, 0, 4, - 5, 0, 15, 128, 2, 0, - 0, 161, 8, 0, 228, 128, - 5, 0, 228, 128, 88, 0, - 0, 4, 7, 0, 3, 128, - 10, 0, 233, 129, 13, 0, - 0, 160, 13, 0, 85, 160, - 88, 0, 0, 4, 0, 0, - 8, 128, 10, 0, 0, 129, - 6, 0, 0, 160, 7, 0, - 0, 128, 88, 0, 0, 4, - 1, 0, 8, 128, 2, 0, - 85, 161, 9, 0, 0, 128, - 7, 0, 85, 128, 88, 0, - 0, 4, 0, 0, 8, 128, - 2, 0, 0, 161, 9, 0, - 0, 128, 0, 0, 255, 128, - 88, 0, 0, 4, 4, 0, - 15, 128, 0, 0, 255, 128, - 4, 0, 228, 128, 5, 0, - 228, 128, 88, 0, 0, 4, - 3, 0, 15, 128, 0, 0, - 255, 128, 0, 0, 228, 160, - 3, 0, 228, 128, 88, 0, - 0, 4, 3, 0, 15, 128, - 2, 0, 85, 161, 3, 0, - 228, 128, 4, 0, 228, 128, - 88, 0, 0, 4, 3, 0, - 15, 128, 1, 0, 255, 128, - 13, 0, 234, 160, 3, 0, - 228, 128, 6, 0, 0, 2, - 0, 0, 8, 128, 3, 0, - 255, 128, 5, 0, 0, 3, - 4, 0, 7, 128, 0, 0, - 255, 128, 3, 0, 228, 128, - 88, 0, 0, 4, 4, 0, - 7, 128, 2, 0, 255, 161, - 3, 0, 228, 128, 4, 0, - 228, 128, 2, 0, 0, 3, - 5, 0, 3, 128, 4, 0, - 233, 129, 4, 0, 228, 128, - 88, 0, 0, 4, 5, 0, - 12, 128, 5, 0, 0, 128, - 4, 0, 68, 128, 4, 0, - 20, 128, 11, 0, 0, 3, - 0, 0, 8, 128, 5, 0, - 170, 128, 4, 0, 170, 128, - 10, 0, 0, 3, 1, 0, - 8, 128, 4, 0, 170, 128, - 5, 0, 255, 128, 2, 0, - 0, 3, 7, 0, 8, 128, - 0, 0, 255, 128, 1, 0, - 255, 129, 6, 0, 0, 2, - 0, 0, 8, 128, 6, 0, - 255, 128, 5, 0, 0, 3, - 8, 0, 7, 128, 0, 0, - 255, 128, 6, 0, 228, 128, - 4, 0, 0, 4, 5, 0, - 12, 128, 6, 0, 100, 128, - 0, 0, 255, 128, 8, 0, - 132, 129, 5, 0, 0, 3, - 9, 0, 3, 128, 7, 0, - 255, 128, 5, 0, 238, 128, - 4, 0, 0, 4, 11, 0, - 15, 128, 6, 0, 129, 128, - 0, 0, 255, 128, 8, 0, - 88, 129, 6, 0, 0, 2, - 1, 0, 8, 128, 11, 0, - 0, 128, 5, 0, 0, 3, - 7, 0, 2, 128, 1, 0, - 255, 128, 9, 0, 0, 128, - 88, 0, 0, 4, 1, 0, - 6, 128, 11, 0, 170, 128, - 13, 0, 170, 160, 7, 0, - 220, 128, 5, 0, 0, 3, - 12, 0, 15, 128, 7, 0, - 255, 128, 11, 0, 228, 128, - 6, 0, 0, 2, 1, 0, - 8, 128, 5, 0, 255, 128, - 5, 0, 0, 3, 7, 0, - 1, 128, 1, 0, 255, 128, - 12, 0, 85, 128, 88, 0, - 0, 4, 2, 0, 3, 128, - 11, 0, 255, 128, 13, 0, - 170, 160, 7, 0, 236, 128, - 88, 0, 0, 4, 1, 0, - 7, 128, 5, 0, 170, 128, - 1, 0, 228, 128, 2, 0, - 228, 128, 6, 0, 0, 2, - 1, 0, 8, 128, 5, 0, - 170, 128, 5, 0, 0, 3, - 7, 0, 4, 128, 1, 0, - 255, 128, 12, 0, 0, 128, - 88, 0, 0, 4, 0, 0, - 6, 128, 11, 0, 85, 128, - 13, 0, 170, 160, 7, 0, - 248, 128, 88, 0, 0, 4, - 0, 0, 7, 128, 11, 0, - 255, 128, 0, 0, 228, 128, - 1, 0, 228, 128, 1, 0, - 0, 2, 1, 0, 2, 128, - 13, 0, 170, 160, 1, 0, - 0, 2, 2, 0, 2, 128, - 13, 0, 170, 160, 1, 0, - 0, 2, 10, 0, 4, 128, - 13, 0, 170, 160, 6, 0, - 0, 2, 1, 0, 8, 128, - 11, 0, 170, 128, 5, 0, - 0, 3, 7, 0, 2, 128, - 1, 0, 255, 128, 12, 0, - 255, 128, 88, 0, 0, 4, - 2, 0, 5, 128, 11, 0, - 0, 128, 13, 0, 170, 160, - 7, 0, 215, 128, 6, 0, - 0, 2, 1, 0, 8, 128, - 11, 0, 85, 128, 5, 0, - 0, 3, 7, 0, 1, 128, - 1, 0, 255, 128, 9, 0, - 85, 128, 88, 0, 0, 4, - 10, 0, 3, 128, 5, 0, - 170, 128, 13, 0, 170, 160, - 7, 0, 227, 128, 88, 0, - 0, 4, 2, 0, 7, 128, - 11, 0, 255, 128, 2, 0, - 228, 128, 10, 0, 228, 128, - 6, 0, 0, 2, 1, 0, - 8, 128, 11, 0, 255, 128, - 5, 0, 0, 3, 7, 0, - 4, 128, 1, 0, 255, 128, - 12, 0, 170, 128, 88, 0, - 0, 4, 1, 0, 5, 128, - 5, 0, 255, 128, 13, 0, - 170, 160, 7, 0, 246, 128, - 88, 0, 0, 4, 1, 0, - 7, 128, 5, 0, 170, 128, - 1, 0, 228, 128, 2, 0, - 228, 128, 88, 0, 0, 4, - 0, 0, 7, 128, 11, 0, - 0, 128, 0, 0, 228, 128, - 1, 0, 228, 128, 88, 0, - 0, 4, 1, 0, 3, 128, - 11, 0, 170, 128, 8, 0, - 228, 128, 8, 0, 225, 128, - 8, 0, 0, 3, 4, 0, - 8, 128, 12, 0, 228, 160, - 0, 0, 228, 128, 8, 0, - 0, 3, 8, 0, 8, 128, - 12, 0, 228, 160, 8, 0, - 228, 128, 2, 0, 0, 3, - 4, 0, 8, 128, 4, 0, - 255, 129, 8, 0, 255, 128, - 2, 0, 0, 3, 0, 0, - 7, 128, 0, 0, 228, 128, - 4, 0, 255, 128, 2, 0, - 0, 3, 4, 0, 8, 128, - 0, 0, 85, 129, 0, 0, - 0, 128, 88, 0, 0, 4, - 1, 0, 12, 128, 4, 0, - 255, 128, 0, 0, 20, 128, - 0, 0, 68, 128, 10, 0, - 0, 3, 4, 0, 8, 128, - 0, 0, 170, 128, 1, 0, - 170, 128, 11, 0, 0, 3, - 2, 0, 1, 128, 1, 0, - 255, 128, 0, 0, 170, 128, - 8, 0, 0, 3, 1, 0, - 4, 128, 12, 0, 228, 160, - 0, 0, 228, 128, 2, 0, - 0, 3, 1, 0, 8, 128, - 4, 0, 255, 129, 1, 0, - 170, 128, 6, 0, 0, 2, - 1, 0, 8, 128, 1, 0, - 255, 128, 2, 0, 0, 3, - 2, 0, 14, 128, 0, 0, - 144, 128, 1, 0, 170, 129, - 5, 0, 0, 3, 2, 0, - 14, 128, 1, 0, 170, 128, - 2, 0, 228, 128, 4, 0, - 0, 4, 2, 0, 14, 128, - 2, 0, 228, 128, 1, 0, - 255, 128, 1, 0, 170, 128, - 88, 0, 0, 4, 0, 0, - 7, 128, 4, 0, 255, 128, - 0, 0, 228, 128, 2, 0, - 249, 128, 2, 0, 0, 3, - 2, 0, 14, 128, 1, 0, - 170, 129, 0, 0, 144, 128, - 2, 0, 0, 3, 1, 0, - 8, 128, 1, 0, 170, 129, - 6, 0, 0, 161, 5, 0, - 0, 3, 2, 0, 14, 128, - 1, 0, 255, 128, 2, 0, - 228, 128, 2, 0, 0, 3, - 1, 0, 8, 128, 1, 0, - 170, 129, 2, 0, 0, 128, - 2, 0, 0, 3, 4, 0, - 8, 128, 2, 0, 0, 129, - 6, 0, 0, 161, 6, 0, - 0, 2, 1, 0, 8, 128, - 1, 0, 255, 128, 4, 0, - 0, 4, 2, 0, 7, 128, - 2, 0, 249, 128, 1, 0, - 255, 128, 1, 0, 170, 128, - 88, 0, 0, 4, 0, 0, - 7, 128, 4, 0, 255, 128, - 0, 0, 228, 128, 2, 0, - 228, 128, 1, 0, 0, 2, - 4, 0, 8, 128, 2, 0, - 170, 160, 2, 0, 0, 3, - 1, 0, 4, 128, 4, 0, - 255, 128, 10, 0, 170, 160, - 5, 0, 0, 3, 1, 0, - 4, 128, 1, 0, 170, 128, - 1, 0, 170, 128, 8, 0, - 0, 3, 1, 0, 8, 128, - 12, 0, 228, 160, 4, 0, - 228, 128, 2, 0, 0, 3, - 2, 0, 1, 128, 8, 0, - 255, 129, 1, 0, 255, 128, - 2, 0, 0, 3, 1, 0, - 8, 128, 1, 0, 255, 129, - 8, 0, 255, 128, 2, 0, - 0, 3, 2, 0, 14, 128, - 1, 0, 255, 128, 4, 0, - 144, 128, 4, 0, 0, 4, - 7, 0, 7, 128, 6, 0, - 228, 128, 0, 0, 255, 128, - 2, 0, 0, 128, 2, 0, - 0, 3, 1, 0, 8, 128, - 7, 0, 85, 129, 7, 0, - 0, 128, 88, 0, 0, 4, - 5, 0, 12, 128, 1, 0, - 255, 128, 7, 0, 20, 128, - 7, 0, 68, 128, 10, 0, - 0, 3, 1, 0, 8, 128, - 7, 0, 170, 128, 5, 0, - 170, 128, 11, 0, 0, 3, - 2, 0, 1, 128, 5, 0, - 255, 128, 7, 0, 170, 128, - 8, 0, 0, 3, 7, 0, - 8, 128, 12, 0, 228, 160, - 7, 0, 228, 128, 2, 0, - 0, 3, 5, 0, 4, 128, - 1, 0, 255, 129, 7, 0, - 255, 128, 6, 0, 0, 2, - 5, 0, 4, 128, 5, 0, - 170, 128, 2, 0, 0, 3, - 9, 0, 7, 128, 7, 0, - 255, 129, 7, 0, 228, 128, - 5, 0, 0, 3, 9, 0, - 7, 128, 7, 0, 255, 128, - 9, 0, 228, 128, 4, 0, - 0, 4, 9, 0, 7, 128, - 9, 0, 228, 128, 5, 0, - 170, 128, 7, 0, 255, 128, - 88, 0, 0, 4, 7, 0, - 7, 128, 1, 0, 255, 128, - 7, 0, 228, 128, 9, 0, - 228, 128, 2, 0, 0, 3, - 9, 0, 7, 128, 7, 0, - 255, 129, 7, 0, 228, 128, - 2, 0, 0, 3, 1, 0, - 8, 128, 7, 0, 255, 129, - 6, 0, 0, 161, 5, 0, - 0, 3, 9, 0, 7, 128, - 1, 0, 255, 128, 9, 0, - 228, 128, 2, 0, 0, 3, - 1, 0, 8, 128, 2, 0, - 0, 128, 7, 0, 255, 129, - 2, 0, 0, 3, 9, 0, - 8, 128, 2, 0, 0, 129, - 6, 0, 0, 161, 6, 0, - 0, 2, 1, 0, 8, 128, - 1, 0, 255, 128, 4, 0, - 0, 4, 9, 0, 7, 128, - 9, 0, 228, 128, 1, 0, - 255, 128, 7, 0, 255, 128, - 88, 0, 0, 4, 7, 0, - 7, 128, 9, 0, 255, 128, - 7, 0, 228, 128, 9, 0, - 228, 128, 88, 0, 0, 4, - 7, 0, 7, 128, 1, 0, - 170, 129, 7, 0, 228, 128, - 13, 0, 170, 160, 2, 0, - 0, 3, 7, 0, 8, 128, - 2, 0, 170, 129, 2, 0, - 85, 128, 88, 0, 0, 4, - 1, 0, 12, 128, 7, 0, - 255, 128, 2, 0, 100, 128, - 2, 0, 148, 128, 10, 0, - 0, 3, 7, 0, 8, 128, - 2, 0, 255, 128, 1, 0, - 170, 128, 11, 0, 0, 3, - 5, 0, 4, 128, 1, 0, - 255, 128, 2, 0, 255, 128, - 8, 0, 0, 3, 5, 0, - 8, 128, 12, 0, 228, 160, - 2, 0, 249, 128, 2, 0, - 0, 3, 1, 0, 4, 128, - 7, 0, 255, 129, 5, 0, - 255, 128, 6, 0, 0, 2, - 1, 0, 4, 128, 1, 0, - 170, 128, 2, 0, 0, 3, - 9, 0, 7, 128, 2, 0, - 249, 128, 5, 0, 255, 129, - 5, 0, 0, 3, 9, 0, - 7, 128, 5, 0, 255, 128, - 9, 0, 228, 128, 4, 0, - 0, 4, 9, 0, 7, 128, - 9, 0, 228, 128, 1, 0, - 170, 128, 5, 0, 255, 128, - 88, 0, 0, 4, 2, 0, - 7, 128, 7, 0, 255, 128, - 2, 0, 249, 128, 9, 0, - 228, 128, 2, 0, 0, 3, - 9, 0, 7, 128, 5, 0, - 255, 129, 2, 0, 228, 128, - 2, 0, 0, 3, 2, 0, - 8, 128, 5, 0, 255, 129, - 6, 0, 0, 161, 5, 0, - 0, 3, 9, 0, 7, 128, - 2, 0, 255, 128, 9, 0, - 228, 128, 2, 0, 0, 3, - 2, 0, 8, 128, 5, 0, - 255, 129, 5, 0, 170, 128, - 2, 0, 0, 3, 7, 0, - 8, 128, 5, 0, 170, 129, - 6, 0, 0, 161, 6, 0, - 0, 2, 2, 0, 8, 128, - 2, 0, 255, 128, 4, 0, - 0, 4, 9, 0, 7, 128, - 9, 0, 228, 128, 2, 0, - 255, 128, 5, 0, 255, 128, - 88, 0, 0, 4, 2, 0, - 7, 128, 7, 0, 255, 128, - 2, 0, 228, 128, 9, 0, - 228, 128, 2, 0, 0, 3, - 9, 0, 15, 128, 4, 0, - 255, 128, 11, 0, 228, 160, - 5, 0, 0, 3, 9, 0, - 15, 128, 9, 0, 228, 128, - 9, 0, 228, 128, 88, 0, - 0, 4, 2, 0, 7, 128, - 9, 0, 255, 129, 2, 0, - 228, 128, 7, 0, 228, 128, - 88, 0, 0, 4, 0, 0, - 7, 128, 9, 0, 170, 129, - 0, 0, 228, 128, 2, 0, - 228, 128, 2, 0, 0, 3, - 2, 0, 15, 128, 4, 0, - 96, 129, 4, 0, 137, 128, - 1, 0, 0, 2, 7, 0, - 2, 128, 13, 0, 170, 160, - 1, 0, 0, 2, 10, 0, - 2, 128, 13, 0, 170, 160, - 1, 0, 0, 2, 11, 0, - 4, 128, 13, 0, 170, 160, - 6, 0, 0, 2, 7, 0, - 8, 128, 2, 0, 170, 128, - 11, 0, 0, 3, 11, 0, - 8, 128, 1, 0, 0, 128, - 8, 0, 170, 128, 10, 0, - 0, 3, 5, 0, 4, 128, - 8, 0, 170, 128, 1, 0, - 85, 128, 2, 0, 0, 3, - 1, 0, 8, 128, 5, 0, - 170, 129, 11, 0, 255, 128, - 5, 0, 0, 3, 5, 0, - 12, 128, 1, 0, 255, 128, - 5, 0, 68, 128, 5, 0, - 0, 3, 1, 0, 1, 128, - 7, 0, 255, 128, 5, 0, - 255, 128, 88, 0, 0, 4, - 11, 0, 3, 128, 2, 0, - 85, 128, 13, 0, 170, 160, - 1, 0, 227, 128, 6, 0, - 0, 2, 5, 0, 8, 128, - 5, 0, 0, 128, 5, 0, - 0, 3, 12, 0, 15, 128, - 1, 0, 255, 128, 2, 0, - 228, 128, 5, 0, 0, 3, - 1, 0, 2, 128, 5, 0, - 255, 128, 12, 0, 255, 128, - 88, 0, 0, 4, 10, 0, - 5, 128, 2, 0, 0, 128, - 13, 0, 170, 160, 1, 0, - 215, 128, 88, 0, 0, 4, - 10, 0, 7, 128, 2, 0, - 255, 128, 10, 0, 228, 128, - 11, 0, 228, 128, 6, 0, - 0, 2, 5, 0, 8, 128, - 2, 0, 255, 128, 5, 0, - 0, 3, 1, 0, 4, 128, - 5, 0, 255, 128, 5, 0, - 170, 128, 88, 0, 0, 4, - 7, 0, 5, 128, 5, 0, - 85, 128, 13, 0, 170, 160, - 1, 0, 246, 128, 88, 0, - 0, 4, 7, 0, 7, 128, - 2, 0, 85, 128, 7, 0, - 228, 128, 10, 0, 228, 128, - 1, 0, 0, 2, 10, 0, - 1, 128, 13, 0, 170, 160, - 1, 0, 0, 2, 11, 0, - 1, 128, 13, 0, 170, 160, - 1, 0, 0, 2, 13, 0, - 4, 128, 13, 0, 170, 160, - 6, 0, 0, 2, 7, 0, - 8, 128, 2, 0, 0, 128, - 5, 0, 0, 3, 1, 0, - 2, 128, 7, 0, 255, 128, - 12, 0, 85, 128, 88, 0, - 0, 4, 11, 0, 6, 128, - 5, 0, 0, 128, 13, 0, - 170, 160, 1, 0, 220, 128, - 6, 0, 0, 2, 7, 0, - 8, 128, 5, 0, 85, 128, - 5, 0, 0, 3, 1, 0, - 1, 128, 7, 0, 255, 128, - 12, 0, 170, 128, 88, 0, - 0, 4, 13, 0, 3, 128, - 2, 0, 255, 128, 13, 0, - 170, 160, 1, 0, 236, 128, - 88, 0, 0, 4, 5, 0, - 7, 128, 2, 0, 85, 128, - 11, 0, 228, 128, 13, 0, - 228, 128, 6, 0, 0, 2, - 5, 0, 8, 128, 2, 0, - 85, 128, 5, 0, 0, 3, - 1, 0, 4, 128, 5, 0, - 255, 128, 12, 0, 0, 128, - 88, 0, 0, 4, 10, 0, - 6, 128, 2, 0, 170, 128, - 13, 0, 170, 160, 1, 0, - 248, 128, 88, 0, 0, 4, - 1, 0, 7, 128, 2, 0, - 255, 128, 10, 0, 228, 128, - 5, 0, 228, 128, 88, 0, - 0, 4, 1, 0, 7, 128, - 2, 0, 0, 128, 1, 0, - 228, 128, 7, 0, 228, 128, - 8, 0, 0, 3, 1, 0, - 8, 128, 12, 0, 228, 160, - 1, 0, 228, 128, 2, 0, - 0, 3, 1, 0, 8, 128, - 1, 0, 255, 129, 8, 0, - 255, 128, 2, 0, 0, 3, - 1, 0, 7, 128, 1, 0, - 255, 128, 1, 0, 228, 128, - 2, 0, 0, 3, 1, 0, - 8, 128, 1, 0, 85, 129, - 1, 0, 0, 128, 88, 0, - 0, 4, 2, 0, 3, 128, - 1, 0, 255, 128, 1, 0, - 225, 128, 1, 0, 228, 128, - 10, 0, 0, 3, 8, 0, - 8, 128, 1, 0, 170, 128, - 2, 0, 0, 128, 11, 0, - 0, 3, 5, 0, 1, 128, - 2, 0, 85, 128, 1, 0, - 170, 128, 8, 0, 0, 3, - 1, 0, 8, 128, 12, 0, - 228, 160, 1, 0, 228, 128, - 2, 0, 0, 3, 2, 0, - 1, 128, 8, 0, 255, 129, - 1, 0, 255, 128, 6, 0, - 0, 2, 2, 0, 1, 128, - 2, 0, 0, 128, 2, 0, - 0, 3, 2, 0, 14, 128, - 1, 0, 255, 129, 1, 0, - 144, 128, 5, 0, 0, 3, - 2, 0, 14, 128, 1, 0, - 255, 128, 2, 0, 228, 128, - 4, 0, 0, 4, 2, 0, - 7, 128, 2, 0, 249, 128, - 2, 0, 0, 128, 1, 0, - 255, 128, 88, 0, 0, 4, - 1, 0, 7, 128, 8, 0, - 255, 128, 1, 0, 228, 128, - 2, 0, 228, 128, 2, 0, - 0, 3, 2, 0, 7, 128, - 1, 0, 255, 129, 1, 0, - 228, 128, 2, 0, 0, 3, - 2, 0, 8, 128, 1, 0, - 255, 129, 6, 0, 0, 161, - 5, 0, 0, 3, 2, 0, - 7, 128, 2, 0, 255, 128, - 2, 0, 228, 128, 2, 0, - 0, 3, 2, 0, 8, 128, - 1, 0, 255, 129, 5, 0, - 0, 128, 2, 0, 0, 3, - 8, 0, 8, 128, 5, 0, - 0, 129, 6, 0, 0, 161, - 6, 0, 0, 2, 2, 0, - 8, 128, 2, 0, 255, 128, - 4, 0, 0, 4, 2, 0, - 7, 128, 2, 0, 228, 128, - 2, 0, 255, 128, 1, 0, - 255, 128, 88, 0, 0, 4, - 1, 0, 7, 128, 8, 0, - 255, 128, 1, 0, 228, 128, - 2, 0, 228, 128, 88, 0, - 0, 4, 0, 0, 7, 128, - 9, 0, 85, 129, 1, 0, - 228, 128, 0, 0, 228, 128, - 4, 0, 0, 4, 1, 0, - 7, 128, 6, 0, 228, 128, - 0, 0, 255, 128, 4, 0, - 228, 128, 5, 0, 0, 3, - 2, 0, 7, 128, 4, 0, - 228, 128, 8, 0, 228, 128, - 4, 0, 0, 4, 5, 0, - 7, 128, 2, 0, 228, 128, - 6, 0, 85, 160, 1, 0, - 228, 128, 4, 0, 0, 4, - 1, 0, 7, 128, 8, 0, - 228, 128, 4, 0, 228, 129, - 1, 0, 228, 128, 88, 0, - 0, 4, 0, 0, 7, 128, - 9, 0, 0, 129, 5, 0, - 228, 128, 0, 0, 228, 128, - 4, 0, 0, 4, 5, 0, - 7, 128, 6, 0, 228, 128, - 0, 0, 255, 128, 4, 0, - 228, 129, 35, 0, 0, 2, - 5, 0, 7, 128, 5, 0, - 228, 128, 2, 0, 0, 3, - 7, 0, 15, 128, 4, 0, - 255, 128, 8, 0, 228, 160, - 5, 0, 0, 3, 7, 0, - 15, 128, 7, 0, 228, 128, - 7, 0, 228, 128, 88, 0, - 0, 4, 0, 0, 7, 128, - 7, 0, 255, 129, 5, 0, - 228, 128, 0, 0, 228, 128, - 2, 0, 0, 3, 5, 0, - 3, 128, 4, 0, 233, 129, - 9, 0, 0, 160, 4, 0, - 0, 4, 9, 0, 7, 128, - 4, 0, 228, 128, 9, 0, - 255, 161, 9, 0, 85, 161, - 4, 0, 0, 4, 1, 0, - 8, 128, 6, 0, 170, 128, - 0, 0, 255, 129, 9, 0, - 170, 160, 4, 0, 0, 4, - 10, 0, 7, 128, 8, 0, - 228, 128, 10, 0, 0, 160, - 10, 0, 85, 160, 4, 0, - 0, 4, 10, 0, 7, 128, - 10, 0, 228, 128, 8, 0, - 228, 128, 7, 0, 170, 161, - 5, 0, 0, 3, 10, 0, - 7, 128, 8, 0, 228, 128, - 10, 0, 228, 128, 7, 0, - 0, 2, 2, 0, 8, 128, - 8, 0, 170, 128, 6, 0, - 0, 2, 2, 0, 8, 128, - 2, 0, 255, 128, 88, 0, - 0, 4, 1, 0, 8, 128, - 1, 0, 255, 128, 10, 0, - 170, 128, 2, 0, 255, 128, - 4, 0, 0, 4, 1, 0, - 8, 128, 6, 0, 170, 128, - 0, 0, 255, 129, 1, 0, - 255, 128, 4, 0, 0, 4, - 1, 0, 8, 128, 9, 0, - 170, 128, 1, 0, 255, 128, - 8, 0, 170, 128, 4, 0, - 0, 4, 11, 0, 7, 128, - 4, 0, 228, 128, 6, 0, - 85, 160, 6, 0, 0, 161, - 5, 0, 0, 3, 11, 0, - 7, 128, 8, 0, 228, 128, - 11, 0, 228, 128, 4, 0, - 0, 4, 12, 0, 15, 128, - 6, 0, 73, 128, 0, 0, - 255, 129, 9, 0, 165, 160, - 4, 0, 0, 4, 5, 0, - 12, 128, 11, 0, 148, 128, - 12, 0, 68, 129, 8, 0, - 148, 128, 88, 0, 0, 4, - 13, 0, 4, 128, 5, 0, - 85, 128, 5, 0, 255, 128, - 1, 0, 255, 128, 7, 0, - 0, 2, 1, 0, 8, 128, - 8, 0, 85, 128, 6, 0, - 0, 2, 1, 0, 8, 128, - 1, 0, 255, 128, 88, 0, - 0, 4, 1, 0, 8, 128, - 12, 0, 255, 128, 10, 0, - 85, 128, 1, 0, 255, 128, - 4, 0, 0, 4, 1, 0, - 8, 128, 6, 0, 85, 128, - 0, 0, 255, 129, 1, 0, - 255, 128, 4, 0, 0, 4, - 1, 0, 8, 128, 9, 0, - 85, 128, 1, 0, 255, 128, - 8, 0, 85, 128, 88, 0, - 0, 4, 13, 0, 2, 128, - 5, 0, 0, 128, 5, 0, - 170, 128, 1, 0, 255, 128, - 2, 0, 0, 3, 14, 0, - 15, 128, 4, 0, 36, 129, - 9, 0, 21, 160, 7, 0, - 0, 2, 1, 0, 8, 128, - 8, 0, 0, 128, 6, 0, - 0, 2, 1, 0, 8, 128, - 1, 0, 255, 128, 88, 0, - 0, 4, 1, 0, 8, 128, - 12, 0, 170, 128, 10, 0, - 0, 128, 1, 0, 255, 128, - 4, 0, 0, 4, 1, 0, - 8, 128, 6, 0, 0, 128, - 0, 0, 255, 129, 1, 0, - 255, 128, 4, 0, 0, 4, - 1, 0, 8, 128, 9, 0, - 0, 128, 1, 0, 255, 128, - 8, 0, 0, 128, 4, 0, - 0, 4, 9, 0, 15, 128, - 6, 0, 36, 128, 0, 0, - 255, 129, 9, 0, 64, 160, - 4, 0, 0, 4, 6, 0, - 7, 128, 6, 0, 228, 128, - 0, 0, 255, 128, 6, 0, - 0, 160, 5, 0, 0, 3, - 6, 0, 7, 128, 6, 0, - 228, 128, 6, 0, 228, 128, - 4, 0, 0, 4, 0, 0, - 8, 128, 11, 0, 0, 128, - 9, 0, 255, 129, 8, 0, - 0, 128, 88, 0, 0, 4, - 13, 0, 1, 128, 14, 0, - 255, 128, 0, 0, 255, 128, - 1, 0, 255, 128, 88, 0, - 0, 4, 0, 0, 7, 128, - 7, 0, 170, 129, 13, 0, - 228, 128, 0, 0, 228, 128, - 2, 0, 0, 3, 10, 0, - 7, 128, 8, 0, 228, 128, - 8, 0, 228, 128, 4, 0, - 0, 4, 11, 0, 7, 128, - 4, 0, 228, 128, 6, 0, - 85, 161, 10, 0, 228, 128, - 2, 0, 0, 3, 11, 0, - 7, 128, 11, 0, 228, 128, - 6, 0, 0, 160, 4, 0, - 0, 4, 13, 0, 7, 128, - 4, 0, 228, 128, 10, 0, - 228, 129, 11, 0, 228, 128, - 5, 0, 0, 3, 10, 0, - 7, 128, 4, 0, 228, 128, - 10, 0, 228, 128, 2, 0, - 0, 3, 15, 0, 7, 128, - 4, 0, 228, 128, 4, 0, - 228, 128, 5, 0, 0, 3, - 16, 0, 7, 128, 8, 0, - 228, 128, 15, 0, 228, 128, - 4, 0, 0, 4, 11, 0, - 7, 128, 15, 0, 228, 128, - 8, 0, 228, 129, 11, 0, - 228, 128, 88, 0, 0, 4, - 9, 0, 7, 128, 9, 0, - 228, 128, 10, 0, 228, 128, - 11, 0, 228, 128, 88, 0, - 0, 4, 5, 0, 6, 128, - 5, 0, 208, 128, 16, 0, - 228, 128, 13, 0, 228, 128, - 88, 0, 0, 4, 5, 0, - 1, 128, 14, 0, 255, 128, - 16, 0, 0, 128, 13, 0, - 0, 128, 88, 0, 0, 4, - 0, 0, 7, 128, 7, 0, - 85, 129, 5, 0, 228, 128, - 0, 0, 228, 128, 6, 0, - 0, 2, 0, 0, 8, 128, - 4, 0, 0, 128, 4, 0, - 0, 4, 0, 0, 8, 128, - 9, 0, 255, 128, 0, 0, - 255, 129, 6, 0, 0, 161, - 11, 0, 0, 3, 1, 0, - 8, 128, 0, 0, 255, 128, - 13, 0, 170, 160, 5, 0, - 0, 3, 5, 0, 7, 128, - 4, 0, 228, 128, 4, 0, - 228, 128, 88, 0, 0, 4, - 0, 0, 8, 128, 5, 0, - 0, 129, 13, 0, 170, 160, - 1, 0, 255, 128, 88, 0, - 0, 4, 10, 0, 1, 128, - 6, 0, 0, 129, 6, 0, - 0, 161, 0, 0, 255, 128, - 6, 0, 0, 2, 0, 0, - 8, 128, 4, 0, 85, 128, - 4, 0, 0, 4, 0, 0, - 8, 128, 12, 0, 0, 128, - 0, 0, 255, 129, 6, 0, - 0, 161, 11, 0, 0, 3, - 1, 0, 8, 128, 0, 0, - 255, 128, 13, 0, 170, 160, - 88, 0, 0, 4, 0, 0, - 8, 128, 5, 0, 85, 129, - 13, 0, 170, 160, 1, 0, - 255, 128, 88, 0, 0, 4, - 10, 0, 2, 128, 6, 0, - 85, 129, 6, 0, 0, 161, - 0, 0, 255, 128, 6, 0, - 0, 2, 0, 0, 8, 128, - 4, 0, 170, 128, 4, 0, - 0, 4, 0, 0, 8, 128, - 12, 0, 85, 128, 0, 0, - 255, 129, 6, 0, 0, 161, - 11, 0, 0, 3, 1, 0, - 8, 128, 0, 0, 255, 128, - 13, 0, 170, 160, 88, 0, - 0, 4, 0, 0, 8, 128, - 5, 0, 170, 129, 13, 0, - 170, 160, 1, 0, 255, 128, - 88, 0, 0, 4, 10, 0, - 4, 128, 6, 0, 170, 129, - 6, 0, 0, 161, 0, 0, - 255, 128, 88, 0, 0, 4, - 0, 0, 7, 128, 7, 0, - 0, 129, 10, 0, 228, 128, - 0, 0, 228, 128, 2, 0, - 0, 3, 5, 0, 15, 128, - 4, 0, 255, 128, 7, 0, - 228, 160, 5, 0, 0, 3, - 5, 0, 15, 128, 5, 0, - 228, 128, 5, 0, 228, 128, - 2, 0, 0, 3, 6, 0, - 7, 128, 4, 0, 228, 128, - 6, 0, 0, 160, 5, 0, - 0, 3, 6, 0, 7, 128, - 6, 0, 228, 128, 6, 0, - 228, 128, 6, 0, 0, 2, - 0, 0, 8, 128, 14, 0, - 0, 128, 5, 0, 0, 3, - 0, 0, 8, 128, 0, 0, - 255, 128, 8, 0, 0, 128, - 10, 0, 0, 3, 1, 0, - 8, 128, 0, 0, 255, 128, - 6, 0, 0, 161, 88, 0, - 0, 4, 0, 0, 8, 128, - 6, 0, 0, 129, 6, 0, - 0, 161, 1, 0, 255, 128, - 5, 0, 0, 3, 7, 0, - 7, 128, 8, 0, 228, 128, - 8, 0, 228, 128, 88, 0, - 0, 4, 10, 0, 1, 128, - 7, 0, 0, 129, 13, 0, - 170, 160, 0, 0, 255, 128, - 6, 0, 0, 2, 0, 0, - 8, 128, 14, 0, 85, 128, - 6, 0, 0, 2, 1, 0, - 8, 128, 14, 0, 170, 128, - 5, 0, 0, 3, 1, 0, - 8, 128, 1, 0, 255, 128, - 8, 0, 170, 128, 10, 0, - 0, 3, 2, 0, 8, 128, - 1, 0, 255, 128, 6, 0, - 0, 161, 88, 0, 0, 4, - 1, 0, 8, 128, 6, 0, - 170, 129, 6, 0, 0, 161, - 2, 0, 255, 128, 88, 0, - 0, 4, 10, 0, 4, 128, - 7, 0, 170, 129, 13, 0, - 170, 160, 1, 0, 255, 128, - 5, 0, 0, 3, 0, 0, - 8, 128, 0, 0, 255, 128, - 8, 0, 85, 128, 10, 0, - 0, 3, 1, 0, 8, 128, - 0, 0, 255, 128, 6, 0, - 0, 161, 88, 0, 0, 4, - 0, 0, 8, 128, 6, 0, - 85, 129, 6, 0, 0, 161, - 1, 0, 255, 128, 88, 0, - 0, 4, 10, 0, 2, 128, - 7, 0, 85, 129, 13, 0, - 170, 160, 0, 0, 255, 128, - 88, 0, 0, 4, 0, 0, - 7, 128, 5, 0, 255, 129, - 10, 0, 228, 128, 0, 0, - 228, 128, 11, 0, 0, 3, - 6, 0, 7, 128, 8, 0, - 228, 128, 4, 0, 228, 128, - 10, 0, 0, 3, 7, 0, - 7, 128, 4, 0, 228, 128, - 8, 0, 228, 128, 88, 0, - 0, 4, 0, 0, 7, 128, - 5, 0, 170, 129, 6, 0, - 228, 128, 0, 0, 228, 128, - 88, 0, 0, 4, 0, 0, - 7, 128, 5, 0, 85, 129, - 7, 0, 228, 128, 0, 0, - 228, 128, 88, 0, 0, 4, - 0, 0, 7, 128, 5, 0, - 0, 129, 9, 0, 228, 128, - 0, 0, 228, 128, 88, 0, - 0, 4, 0, 0, 7, 128, - 10, 0, 255, 129, 1, 0, - 228, 128, 0, 0, 228, 128, - 88, 0, 0, 4, 0, 0, - 7, 128, 2, 0, 170, 161, - 2, 0, 228, 128, 0, 0, - 228, 128, 18, 0, 0, 4, - 1, 0, 7, 128, 6, 0, - 255, 128, 0, 0, 228, 128, - 4, 0, 228, 128, 5, 0, - 0, 3, 1, 0, 8, 128, - 6, 0, 255, 128, 6, 0, - 255, 128, 5, 0, 0, 3, - 0, 0, 7, 128, 3, 0, - 255, 128, 1, 0, 228, 128, - 5, 0, 0, 3, 1, 0, - 1, 128, 3, 0, 255, 128, - 3, 0, 255, 128, 1, 0, - 0, 2, 0, 0, 8, 128, - 3, 0, 255, 128, 88, 0, - 0, 4, 0, 0, 15, 128, - 1, 0, 0, 129, 13, 0, - 170, 160, 0, 0, 228, 128, - 88, 0, 0, 4, 0, 0, - 15, 128, 1, 0, 255, 129, - 3, 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, 184, 38, - 0, 0, 64, 0, 0, 0, - 174, 9, 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, 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, 88, 24, - 0, 4, 0, 112, 16, 0, - 2, 0, 0, 0, 85, 85, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 3, 0, - 0, 0, 85, 85, 0, 0, - 88, 24, 0, 4, 0, 112, - 16, 0, 5, 0, 0, 0, - 85, 85, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 6, 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, 98, 16, 0, 3, - 114, 16, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 104, 0, 0, 2, - 22, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 0, 0, 0, 0, 230, 26, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 6, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 31, 0, - 0, 4, 26, 128, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 31, 0, 0, 4, - 10, 128, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 69, 0, 0, 9, 242, 0, - 16, 0, 1, 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, - 56, 0, 0, 8, 114, 0, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 6, 128, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 6, - 130, 0, 16, 0, 1, 0, - 0, 0, 10, 128, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 5, - 18, 0, 16, 0, 2, 0, - 0, 0, 1, 64, 0, 0, - 255, 255, 255, 255, 18, 0, - 0, 1, 32, 0, 0, 8, - 34, 0, 16, 0, 2, 0, - 0, 0, 1, 64, 0, 0, - 1, 0, 0, 0, 10, 128, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 31, 0, - 4, 3, 26, 0, 16, 0, - 2, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 3, 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, 56, 0, - 0, 8, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 14, - 16, 0, 3, 0, 0, 0, - 6, 128, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 54, 0, 0, 5, 18, 0, - 16, 0, 2, 0, 0, 0, - 1, 64, 0, 0, 255, 255, - 255, 255, 18, 0, 0, 1, - 32, 0, 0, 8, 18, 0, - 16, 0, 2, 0, 0, 0, - 1, 64, 0, 0, 2, 0, - 0, 0, 10, 128, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 31, 0, 4, 3, - 10, 0, 16, 0, 2, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 3, 0, - 0, 0, 70, 16, 16, 0, - 1, 0, 0, 0, 70, 126, - 16, 0, 1, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 7, - 18, 0, 16, 0, 3, 0, - 0, 0, 10, 0, 16, 0, - 3, 0, 0, 0, 1, 64, - 0, 0, 18, 131, 128, 189, - 69, 0, 0, 9, 242, 0, - 16, 0, 4, 0, 0, 0, - 70, 16, 16, 0, 1, 0, - 0, 0, 70, 126, 16, 0, - 2, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 34, 0, - 16, 0, 3, 0, 0, 0, - 10, 0, 16, 0, 4, 0, - 0, 0, 1, 64, 0, 0, - 115, 128, 0, 191, 69, 0, - 0, 9, 242, 0, 16, 0, - 4, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 3, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 7, 66, 0, 16, 0, - 3, 0, 0, 0, 10, 0, - 16, 0, 4, 0, 0, 0, - 1, 64, 0, 0, 115, 128, - 0, 191, 16, 0, 0, 8, - 18, 0, 16, 0, 4, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 3, 0, 0, 0, 16, 0, - 0, 8, 34, 0, 16, 0, - 4, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 16, 0, 0, 8, 66, 0, - 16, 0, 4, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 54, 0, 0, 5, - 130, 0, 16, 0, 4, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 128, 63, 56, 0, - 0, 8, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 14, - 16, 0, 4, 0, 0, 0, - 6, 128, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 21, 0, 0, 1, 21, 0, - 0, 1, 21, 0, 0, 1, - 55, 0, 0, 10, 242, 0, - 16, 0, 1, 0, 0, 0, - 6, 0, 16, 0, 2, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 18, 0, 16, 0, - 2, 0, 0, 0, 1, 64, - 0, 0, 255, 255, 255, 255, - 18, 0, 0, 1, 32, 0, - 0, 8, 18, 0, 16, 0, - 2, 0, 0, 0, 1, 64, - 0, 0, 1, 0, 0, 0, - 26, 128, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 31, 0, 4, 3, 10, 0, - 16, 0, 2, 0, 0, 0, - 31, 0, 0, 4, 10, 128, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 3, 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, 56, 0, - 0, 8, 114, 0, 16, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 6, 128, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 14, 0, 0, 7, 98, 0, - 16, 0, 2, 0, 0, 0, - 6, 17, 16, 0, 2, 0, - 0, 0, 166, 26, 16, 0, - 2, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 4, 0, 0, 0, 150, 5, - 16, 0, 2, 0, 0, 0, - 70, 126, 16, 0, 5, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 54, 0, - 0, 6, 130, 0, 16, 0, - 3, 0, 0, 0, 10, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 14, - 16, 0, 3, 0, 0, 0, - 6, 0, 16, 0, 4, 0, - 0, 0, 54, 0, 0, 5, - 34, 0, 16, 0, 2, 0, - 0, 0, 1, 64, 0, 0, - 255, 255, 255, 255, 18, 0, - 0, 1, 32, 0, 0, 8, - 66, 0, 16, 0, 2, 0, - 0, 0, 1, 64, 0, 0, - 1, 0, 0, 0, 10, 128, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 31, 0, - 4, 3, 42, 0, 16, 0, - 2, 0, 0, 0, 14, 0, - 0, 7, 194, 0, 16, 0, - 2, 0, 0, 0, 6, 20, - 16, 0, 2, 0, 0, 0, - 166, 26, 16, 0, 2, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 3, 0, - 0, 0, 230, 10, 16, 0, - 2, 0, 0, 0, 70, 126, - 16, 0, 5, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 4, 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, 56, 0, 0, 8, - 242, 0, 16, 0, 4, 0, - 0, 0, 70, 14, 16, 0, - 4, 0, 0, 0, 6, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 242, 0, 16, 0, - 1, 0, 0, 0, 6, 0, - 16, 0, 3, 0, 0, 0, - 70, 14, 16, 0, 4, 0, - 0, 0, 54, 0, 0, 5, - 34, 0, 16, 0, 2, 0, - 0, 0, 1, 64, 0, 0, - 255, 255, 255, 255, 18, 0, - 0, 1, 32, 0, 0, 8, - 34, 0, 16, 0, 2, 0, - 0, 0, 1, 64, 0, 0, - 2, 0, 0, 0, 10, 128, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 31, 0, - 4, 3, 26, 0, 16, 0, - 2, 0, 0, 0, 14, 0, - 0, 7, 194, 0, 16, 0, - 2, 0, 0, 0, 6, 20, - 16, 0, 2, 0, 0, 0, - 166, 26, 16, 0, 2, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 3, 0, - 0, 0, 230, 10, 16, 0, - 2, 0, 0, 0, 70, 126, - 16, 0, 5, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 4, 0, - 0, 0, 70, 16, 16, 0, - 1, 0, 0, 0, 70, 126, - 16, 0, 1, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 7, - 18, 0, 16, 0, 4, 0, - 0, 0, 10, 0, 16, 0, - 4, 0, 0, 0, 1, 64, - 0, 0, 18, 131, 128, 189, - 69, 0, 0, 9, 242, 0, - 16, 0, 5, 0, 0, 0, - 70, 16, 16, 0, 1, 0, - 0, 0, 70, 126, 16, 0, - 2, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 34, 0, - 16, 0, 4, 0, 0, 0, - 10, 0, 16, 0, 5, 0, - 0, 0, 1, 64, 0, 0, - 115, 128, 0, 191, 69, 0, - 0, 9, 242, 0, 16, 0, - 5, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 3, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 7, 66, 0, 16, 0, - 4, 0, 0, 0, 10, 0, - 16, 0, 5, 0, 0, 0, - 1, 64, 0, 0, 115, 128, - 0, 191, 16, 0, 0, 8, - 18, 0, 16, 0, 5, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 4, 0, 0, 0, 16, 0, - 0, 8, 34, 0, 16, 0, - 5, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 4, 0, 0, 0, - 16, 0, 0, 8, 66, 0, - 16, 0, 5, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 70, 2, 16, 0, 4, 0, - 0, 0, 54, 0, 0, 5, - 130, 0, 16, 0, 5, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 128, 63, 56, 0, - 0, 8, 242, 0, 16, 0, - 4, 0, 0, 0, 70, 14, - 16, 0, 5, 0, 0, 0, - 6, 128, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 56, 0, 0, 7, 242, 0, - 16, 0, 1, 0, 0, 0, - 6, 0, 16, 0, 3, 0, - 0, 0, 70, 14, 16, 0, - 4, 0, 0, 0, 21, 0, - 0, 1, 21, 0, 0, 1, - 21, 0, 0, 1, 31, 0, - 0, 3, 26, 0, 16, 0, - 2, 0, 0, 0, 14, 0, - 0, 7, 98, 0, 16, 0, - 2, 0, 0, 0, 6, 17, - 16, 0, 2, 0, 0, 0, - 166, 26, 16, 0, 2, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 3, 0, - 0, 0, 150, 5, 16, 0, - 2, 0, 0, 0, 70, 126, - 16, 0, 5, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 242, 0, 16, 0, 1, 0, - 0, 0, 6, 0, 16, 0, - 3, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 21, 0, - 0, 1, 21, 0, 0, 1, - 21, 0, 0, 1, 55, 0, - 0, 12, 242, 0, 16, 0, - 1, 0, 0, 0, 6, 0, - 16, 0, 2, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 128, 63, 24, 0, - 0, 7, 18, 0, 16, 0, - 2, 0, 0, 0, 58, 0, - 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 31, 0, 4, 3, - 10, 0, 16, 0, 2, 0, - 0, 0, 54, 0, 0, 5, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 62, 0, - 0, 1, 21, 0, 0, 1, - 24, 0, 0, 7, 18, 0, - 16, 0, 2, 0, 0, 0, - 58, 0, 16, 0, 1, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 0, 0, 31, 0, - 4, 3, 10, 0, 16, 0, - 2, 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, 14, 0, 0, 7, - 114, 0, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 246, 15, - 16, 0, 0, 0, 0, 0, - 14, 0, 0, 7, 114, 0, - 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 246, 15, 16, 0, - 1, 0, 0, 0, 55, 0, - 0, 10, 114, 0, 16, 0, - 1, 0, 0, 0, 246, 143, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 2, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 0, 0, 0, 7, 114, 0, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 10, 114, 0, 16, 0, - 4, 0, 0, 0, 70, 2, - 16, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 3, 0, - 0, 0, 29, 0, 0, 10, - 242, 0, 16, 0, 5, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 0, 63, 0, 0, - 0, 63, 0, 0, 0, 63, - 0, 0, 128, 62, 70, 2, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 114, 0, - 16, 0, 6, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 7, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 6, 0, - 0, 0, 0, 0, 0, 7, - 114, 0, 16, 0, 8, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 50, 0, 0, 12, 114, 0, - 16, 0, 9, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 0, 64, 0, 0, - 0, 64, 0, 0, 0, 64, - 0, 0, 0, 0, 70, 2, - 16, 0, 6, 0, 0, 0, - 0, 0, 0, 10, 114, 0, - 16, 0, 9, 0, 0, 0, - 70, 2, 16, 0, 9, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 128, 191, 0, 0, - 128, 191, 0, 0, 128, 191, - 0, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 10, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 8, 0, - 0, 0, 50, 0, 0, 10, - 114, 0, 16, 0, 8, 0, - 0, 0, 70, 2, 16, 128, - 65, 0, 0, 0, 8, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 9, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 5, 0, 0, 0, - 70, 2, 16, 0, 5, 0, - 0, 0, 70, 2, 16, 0, - 7, 0, 0, 0, 70, 2, - 16, 0, 8, 0, 0, 0, - 51, 0, 0, 7, 114, 0, - 16, 0, 7, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 32, 0, - 0, 11, 242, 0, 16, 0, - 8, 0, 0, 0, 2, 64, - 0, 0, 1, 0, 0, 0, - 2, 0, 0, 0, 3, 0, - 0, 0, 4, 0, 0, 0, - 166, 138, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 52, 0, 0, 7, 114, 0, - 16, 0, 11, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 24, 0, - 0, 10, 242, 0, 16, 0, - 12, 0, 0, 0, 70, 2, - 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, 24, 0, 0, 10, - 242, 0, 16, 0, 13, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 11, 114, 0, - 16, 0, 14, 0, 0, 0, - 70, 2, 16, 128, 65, 0, - 0, 0, 1, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 0, 0, 14, 0, 0, 7, - 114, 0, 16, 0, 14, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 14, 0, 0, 0, - 51, 0, 0, 10, 114, 0, - 16, 0, 14, 0, 0, 0, - 70, 2, 16, 0, 14, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 128, 63, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 0, 0, 55, 0, - 0, 12, 114, 0, 16, 0, - 13, 0, 0, 0, 70, 2, - 16, 0, 13, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 0, 0, 70, 2, 16, 0, - 14, 0, 0, 0, 55, 0, - 0, 12, 114, 0, 16, 0, - 12, 0, 0, 0, 70, 2, - 16, 0, 12, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 13, 0, 0, 0, 0, 0, - 0, 11, 114, 0, 16, 0, - 13, 0, 0, 0, 70, 2, - 16, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 128, 63, 0, 0, 0, 0, - 14, 0, 0, 7, 114, 0, - 16, 0, 14, 0, 0, 0, - 70, 2, 16, 0, 13, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 51, 0, - 0, 10, 114, 0, 16, 0, - 14, 0, 0, 0, 70, 2, - 16, 0, 14, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 0, 0, 0, 0, 0, 11, - 114, 0, 16, 0, 14, 0, - 0, 0, 70, 2, 16, 128, - 65, 0, 0, 0, 14, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 128, 63, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 0, 0, 55, 0, - 0, 9, 130, 0, 16, 0, - 2, 0, 0, 0, 58, 0, - 16, 0, 13, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 14, 0, 0, 0, 55, 0, - 0, 9, 18, 0, 16, 0, - 15, 0, 0, 0, 58, 0, - 16, 0, 12, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 58, 0, 16, 0, - 2, 0, 0, 0, 24, 0, - 0, 10, 146, 0, 16, 0, - 14, 0, 0, 0, 86, 9, - 16, 0, 0, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 128, 63, 24, 0, 0, 10, - 50, 0, 16, 0, 16, 0, - 0, 0, 150, 5, 16, 0, - 1, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 55, 0, 0, 12, 98, 0, - 16, 0, 14, 0, 0, 0, - 6, 1, 16, 0, 16, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 6, - 16, 0, 14, 0, 0, 0, - 55, 0, 0, 12, 98, 0, - 16, 0, 15, 0, 0, 0, - 6, 3, 16, 0, 14, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 0, 0, 86, 6, - 16, 0, 14, 0, 0, 0, - 29, 0, 0, 10, 114, 0, - 16, 0, 14, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 0, 63, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 10, 114, 0, 16, 0, - 6, 0, 0, 0, 70, 2, - 16, 128, 65, 0, 0, 0, - 1, 0, 0, 0, 70, 2, - 16, 0, 6, 0, 0, 0, - 70, 2, 16, 0, 9, 0, - 0, 0, 55, 0, 0, 9, - 114, 0, 16, 0, 6, 0, - 0, 0, 70, 2, 16, 0, - 14, 0, 0, 0, 70, 2, - 16, 0, 10, 0, 0, 0, - 70, 2, 16, 0, 6, 0, - 0, 0, 32, 0, 0, 11, - 242, 0, 16, 0, 9, 0, - 0, 0, 2, 64, 0, 0, - 5, 0, 0, 0, 6, 0, - 0, 0, 7, 0, 0, 0, - 8, 0, 0, 0, 166, 138, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 50, 0, - 0, 16, 114, 0, 16, 0, - 10, 0, 0, 0, 70, 2, - 16, 128, 65, 0, 0, 0, - 1, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 64, - 0, 0, 0, 64, 0, 0, - 0, 64, 0, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 10, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 10, 0, 0, 0, - 50, 0, 0, 10, 114, 0, - 16, 0, 10, 0, 0, 0, - 70, 2, 16, 128, 65, 0, - 0, 0, 10, 0, 0, 0, - 70, 2, 16, 0, 13, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 15, 114, 0, 16, 0, - 13, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 0, 64, 0, 0, 0, 64, - 0, 0, 0, 64, 0, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 128, 191, 0, 0, - 128, 191, 0, 0, 128, 191, - 0, 0, 0, 0, 50, 0, - 0, 15, 114, 0, 16, 0, - 16, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 65, 0, 0, 128, 65, - 0, 0, 128, 65, 0, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 64, 193, 0, 0, - 64, 193, 0, 0, 64, 193, - 0, 0, 0, 0, 50, 0, - 0, 12, 114, 0, 16, 0, - 16, 0, 0, 0, 70, 2, - 16, 0, 16, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 128, 64, 0, 0, - 128, 64, 0, 0, 128, 64, - 0, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 16, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 16, 0, - 0, 0, 75, 0, 0, 5, - 114, 0, 16, 0, 17, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 55, 0, - 0, 9, 130, 0, 16, 0, - 2, 0, 0, 0, 58, 0, - 16, 0, 5, 0, 0, 0, - 10, 0, 16, 0, 16, 0, - 0, 0, 10, 0, 16, 0, - 17, 0, 0, 0, 0, 0, - 0, 8, 130, 0, 16, 0, - 2, 0, 0, 0, 10, 0, - 16, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 58, 0, - 16, 0, 2, 0, 0, 0, - 50, 0, 0, 9, 130, 0, - 16, 0, 2, 0, 0, 0, - 10, 0, 16, 0, 13, 0, - 0, 0, 58, 0, 16, 0, - 2, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 18, 0, - 16, 0, 18, 0, 0, 0, - 10, 0, 16, 0, 14, 0, - 0, 0, 10, 0, 16, 0, - 10, 0, 0, 0, 58, 0, - 16, 0, 2, 0, 0, 0, - 29, 0, 0, 10, 146, 0, - 16, 0, 10, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 128, 62, 86, 9, 16, 0, - 0, 0, 0, 0, 55, 0, - 0, 9, 146, 0, 16, 0, - 10, 0, 0, 0, 6, 12, - 16, 0, 10, 0, 0, 0, - 86, 9, 16, 0, 16, 0, - 0, 0, 86, 9, 16, 0, - 17, 0, 0, 0, 0, 0, - 0, 8, 146, 0, 16, 0, - 10, 0, 0, 0, 86, 9, - 16, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 6, 12, - 16, 0, 10, 0, 0, 0, - 50, 0, 0, 9, 146, 0, - 16, 0, 10, 0, 0, 0, - 86, 9, 16, 0, 13, 0, - 0, 0, 6, 12, 16, 0, - 10, 0, 0, 0, 86, 9, - 16, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 98, 0, - 16, 0, 18, 0, 0, 0, - 86, 6, 16, 0, 14, 0, - 0, 0, 86, 6, 16, 0, - 10, 0, 0, 0, 6, 3, - 16, 0, 10, 0, 0, 0, - 0, 0, 0, 8, 114, 0, - 16, 0, 10, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 128, - 65, 0, 0, 0, 1, 0, - 0, 0, 50, 0, 0, 13, - 114, 0, 16, 0, 3, 0, - 0, 0, 70, 2, 16, 128, - 65, 0, 0, 0, 2, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 0, 64, 0, 0, - 0, 64, 0, 0, 0, 64, - 0, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 52, 0, 0, 7, 130, 0, - 16, 0, 2, 0, 0, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 52, 0, - 0, 7, 130, 0, 16, 0, - 2, 0, 0, 0, 42, 0, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 2, 0, - 0, 0, 51, 0, 0, 7, - 130, 0, 16, 0, 3, 0, - 0, 0, 26, 0, 16, 0, - 0, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 51, 0, 0, 7, 130, 0, - 16, 0, 3, 0, 0, 0, - 42, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 3, 0, 0, 0, 0, 0, - 0, 8, 130, 0, 16, 0, - 13, 0, 0, 0, 58, 0, - 16, 0, 2, 0, 0, 0, - 58, 0, 16, 128, 65, 0, - 0, 0, 3, 0, 0, 0, - 29, 0, 0, 7, 130, 0, - 16, 0, 2, 0, 0, 0, - 26, 0, 16, 0, 1, 0, - 0, 0, 10, 0, 16, 0, - 1, 0, 0, 0, 31, 0, - 4, 3, 58, 0, 16, 0, - 2, 0, 0, 0, 49, 0, - 0, 7, 114, 0, 16, 0, - 14, 0, 0, 0, 6, 2, - 16, 0, 1, 0, 0, 0, - 102, 9, 16, 0, 1, 0, - 0, 0, 0, 0, 0, 8, - 242, 0, 16, 0, 16, 0, - 0, 0, 6, 10, 16, 128, - 65, 0, 0, 0, 1, 0, - 0, 0, 150, 4, 16, 0, - 1, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 17, 0, 0, 0, 246, 15, - 16, 0, 13, 0, 0, 0, - 70, 2, 16, 0, 16, 0, - 0, 0, 14, 0, 0, 7, - 114, 0, 16, 0, 13, 0, - 0, 0, 70, 2, 16, 0, - 17, 0, 0, 0, 22, 7, - 16, 0, 16, 0, 0, 0, - 1, 0, 0, 7, 98, 0, - 16, 0, 16, 0, 0, 0, - 6, 3, 16, 0, 13, 0, - 0, 0, 6, 0, 16, 0, - 14, 0, 0, 0, 29, 0, - 0, 7, 146, 0, 16, 0, - 14, 0, 0, 0, 166, 10, - 16, 0, 1, 0, 0, 0, - 86, 1, 16, 0, 1, 0, - 0, 0, 1, 0, 0, 7, - 98, 0, 16, 0, 17, 0, - 0, 0, 246, 13, 16, 0, - 13, 0, 0, 0, 86, 5, - 16, 0, 14, 0, 0, 0, - 1, 0, 0, 7, 50, 0, - 16, 0, 19, 0, 0, 0, - 230, 10, 16, 0, 13, 0, - 0, 0, 166, 10, 16, 0, - 14, 0, 0, 0, 54, 0, - 0, 5, 18, 0, 16, 0, - 17, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 66, 0, - 16, 0, 19, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 55, 0, 0, 9, - 226, 0, 16, 0, 14, 0, - 0, 0, 246, 15, 16, 0, - 14, 0, 0, 0, 6, 9, - 16, 0, 17, 0, 0, 0, - 6, 9, 16, 0, 19, 0, - 0, 0, 54, 0, 0, 5, - 18, 0, 16, 0, 16, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 14, 0, 0, 0, 6, 0, - 16, 0, 14, 0, 0, 0, - 70, 2, 16, 0, 16, 0, - 0, 0, 150, 7, 16, 0, - 14, 0, 0, 0, 18, 0, - 0, 1, 49, 0, 0, 7, - 114, 0, 16, 0, 16, 0, - 0, 0, 86, 6, 16, 0, - 1, 0, 0, 0, 38, 8, - 16, 0, 1, 0, 0, 0, - 0, 0, 0, 8, 242, 0, - 16, 0, 17, 0, 0, 0, - 86, 10, 16, 128, 65, 0, - 0, 0, 1, 0, 0, 0, - 134, 1, 16, 0, 1, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 19, 0, - 0, 0, 246, 15, 16, 0, - 13, 0, 0, 0, 70, 2, - 16, 0, 17, 0, 0, 0, - 14, 0, 0, 7, 114, 0, - 16, 0, 13, 0, 0, 0, - 70, 2, 16, 0, 19, 0, - 0, 0, 22, 7, 16, 0, - 17, 0, 0, 0, 1, 0, - 0, 7, 82, 0, 16, 0, - 17, 0, 0, 0, 6, 3, - 16, 0, 13, 0, 0, 0, - 6, 0, 16, 0, 16, 0, - 0, 0, 29, 0, 0, 7, - 146, 0, 16, 0, 16, 0, - 0, 0, 166, 10, 16, 0, - 1, 0, 0, 0, 6, 4, - 16, 0, 1, 0, 0, 0, - 1, 0, 0, 7, 82, 0, - 16, 0, 19, 0, 0, 0, - 246, 13, 16, 0, 13, 0, - 0, 0, 86, 5, 16, 0, - 16, 0, 0, 0, 1, 0, - 0, 7, 50, 0, 16, 0, - 13, 0, 0, 0, 182, 15, - 16, 0, 13, 0, 0, 0, - 166, 10, 16, 0, 16, 0, - 0, 0, 54, 0, 0, 5, - 34, 0, 16, 0, 19, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 66, 0, 16, 0, - 13, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 13, 0, 0, 0, - 246, 15, 16, 0, 16, 0, - 0, 0, 70, 2, 16, 0, - 19, 0, 0, 0, 70, 2, - 16, 0, 13, 0, 0, 0, - 54, 0, 0, 5, 34, 0, - 16, 0, 17, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 55, 0, 0, 9, - 114, 0, 16, 0, 14, 0, - 0, 0, 6, 0, 16, 0, - 16, 0, 0, 0, 70, 2, - 16, 0, 17, 0, 0, 0, - 70, 2, 16, 0, 13, 0, - 0, 0, 21, 0, 0, 1, - 16, 0, 0, 10, 130, 0, - 16, 0, 2, 0, 0, 0, - 2, 64, 0, 0, 154, 153, - 153, 62, 61, 10, 23, 63, - 174, 71, 225, 61, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 16, 0, - 0, 10, 130, 0, 16, 0, - 3, 0, 0, 0, 2, 64, - 0, 0, 154, 153, 153, 62, - 61, 10, 23, 63, 174, 71, - 225, 61, 0, 0, 0, 0, - 70, 2, 16, 0, 14, 0, - 0, 0, 0, 0, 0, 8, - 130, 0, 16, 0, 3, 0, - 0, 0, 58, 0, 16, 0, - 2, 0, 0, 0, 58, 0, - 16, 128, 65, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 7, 114, 0, 16, 0, - 13, 0, 0, 0, 246, 15, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 14, 0, - 0, 0, 16, 0, 0, 10, - 130, 0, 16, 0, 3, 0, - 0, 0, 2, 64, 0, 0, - 154, 153, 153, 62, 61, 10, - 23, 63, 174, 71, 225, 61, - 0, 0, 0, 0, 70, 2, - 16, 0, 13, 0, 0, 0, - 51, 0, 0, 7, 130, 0, - 16, 0, 4, 0, 0, 0, - 26, 0, 16, 0, 13, 0, - 0, 0, 10, 0, 16, 0, - 13, 0, 0, 0, 51, 0, - 0, 7, 130, 0, 16, 0, - 4, 0, 0, 0, 42, 0, - 16, 0, 13, 0, 0, 0, - 58, 0, 16, 0, 4, 0, - 0, 0, 52, 0, 0, 7, - 130, 0, 16, 0, 5, 0, - 0, 0, 26, 0, 16, 0, - 13, 0, 0, 0, 10, 0, - 16, 0, 13, 0, 0, 0, - 52, 0, 0, 7, 130, 0, - 16, 0, 5, 0, 0, 0, - 42, 0, 16, 0, 13, 0, - 0, 0, 58, 0, 16, 0, - 5, 0, 0, 0, 49, 0, - 0, 7, 130, 0, 16, 0, - 6, 0, 0, 0, 58, 0, - 16, 0, 4, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 8, - 114, 0, 16, 0, 14, 0, - 0, 0, 246, 15, 16, 128, - 65, 0, 0, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 13, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 14, 0, 0, 0, 246, 15, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 14, 0, - 0, 0, 0, 0, 0, 8, - 130, 0, 16, 0, 4, 0, - 0, 0, 58, 0, 16, 0, - 3, 0, 0, 0, 58, 0, - 16, 128, 65, 0, 0, 0, - 4, 0, 0, 0, 14, 0, - 0, 7, 114, 0, 16, 0, - 14, 0, 0, 0, 70, 2, - 16, 0, 14, 0, 0, 0, - 246, 15, 16, 0, 4, 0, - 0, 0, 0, 0, 0, 7, - 114, 0, 16, 0, 14, 0, - 0, 0, 246, 15, 16, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 14, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 13, 0, 0, 0, - 246, 15, 16, 0, 6, 0, - 0, 0, 70, 2, 16, 0, - 14, 0, 0, 0, 70, 2, - 16, 0, 13, 0, 0, 0, - 49, 0, 0, 7, 130, 0, - 16, 0, 4, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 58, 0, 16, 0, - 5, 0, 0, 0, 0, 0, - 0, 8, 114, 0, 16, 0, - 14, 0, 0, 0, 246, 15, - 16, 128, 65, 0, 0, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 13, 0, 0, 0, - 0, 0, 0, 8, 130, 0, - 16, 0, 6, 0, 0, 0, - 58, 0, 16, 128, 65, 0, - 0, 0, 3, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 56, 0, 0, 7, - 114, 0, 16, 0, 14, 0, - 0, 0, 246, 15, 16, 0, - 6, 0, 0, 0, 70, 2, - 16, 0, 14, 0, 0, 0, - 0, 0, 0, 8, 130, 0, - 16, 0, 5, 0, 0, 0, - 58, 0, 16, 128, 65, 0, - 0, 0, 3, 0, 0, 0, - 58, 0, 16, 0, 5, 0, - 0, 0, 14, 0, 0, 7, - 114, 0, 16, 0, 14, 0, - 0, 0, 70, 2, 16, 0, - 14, 0, 0, 0, 246, 15, - 16, 0, 5, 0, 0, 0, - 0, 0, 0, 7, 114, 0, - 16, 0, 14, 0, 0, 0, - 246, 15, 16, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 14, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 13, 0, 0, 0, 246, 15, - 16, 0, 4, 0, 0, 0, - 70, 2, 16, 0, 14, 0, - 0, 0, 70, 2, 16, 0, - 13, 0, 0, 0, 32, 0, - 0, 11, 242, 0, 16, 0, - 14, 0, 0, 0, 2, 64, - 0, 0, 9, 0, 0, 0, - 10, 0, 0, 0, 11, 0, - 0, 0, 12, 0, 0, 0, - 166, 138, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 52, 0, 0, 7, 130, 0, - 16, 0, 3, 0, 0, 0, - 26, 0, 16, 0, 1, 0, - 0, 0, 10, 0, 16, 0, - 1, 0, 0, 0, 52, 0, - 0, 7, 130, 0, 16, 0, - 3, 0, 0, 0, 42, 0, - 16, 0, 1, 0, 0, 0, - 58, 0, 16, 0, 3, 0, - 0, 0, 51, 0, 0, 7, - 130, 0, 16, 0, 4, 0, - 0, 0, 26, 0, 16, 0, - 1, 0, 0, 0, 10, 0, - 16, 0, 1, 0, 0, 0, - 51, 0, 0, 7, 130, 0, - 16, 0, 4, 0, 0, 0, - 42, 0, 16, 0, 1, 0, - 0, 0, 58, 0, 16, 0, - 4, 0, 0, 0, 0, 0, - 0, 8, 130, 0, 16, 0, - 16, 0, 0, 0, 58, 0, - 16, 0, 3, 0, 0, 0, - 58, 0, 16, 128, 65, 0, - 0, 0, 4, 0, 0, 0, - 29, 0, 0, 7, 130, 0, - 16, 0, 3, 0, 0, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 31, 0, - 4, 3, 58, 0, 16, 0, - 3, 0, 0, 0, 49, 0, - 0, 7, 114, 0, 16, 0, - 17, 0, 0, 0, 6, 2, - 16, 0, 0, 0, 0, 0, - 102, 9, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 8, - 242, 0, 16, 0, 19, 0, - 0, 0, 6, 10, 16, 128, - 65, 0, 0, 0, 0, 0, - 0, 0, 150, 4, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 20, 0, 0, 0, 246, 15, - 16, 0, 16, 0, 0, 0, - 70, 2, 16, 0, 19, 0, - 0, 0, 14, 0, 0, 7, - 114, 0, 16, 0, 16, 0, - 0, 0, 70, 2, 16, 0, - 20, 0, 0, 0, 22, 7, - 16, 0, 19, 0, 0, 0, - 1, 0, 0, 7, 98, 0, - 16, 0, 19, 0, 0, 0, - 6, 3, 16, 0, 16, 0, - 0, 0, 6, 0, 16, 0, - 17, 0, 0, 0, 29, 0, - 0, 7, 146, 0, 16, 0, - 17, 0, 0, 0, 166, 10, - 16, 0, 0, 0, 0, 0, - 86, 1, 16, 0, 0, 0, - 0, 0, 1, 0, 0, 7, - 98, 0, 16, 0, 20, 0, - 0, 0, 246, 13, 16, 0, - 16, 0, 0, 0, 86, 5, - 16, 0, 17, 0, 0, 0, - 1, 0, 0, 7, 50, 0, - 16, 0, 21, 0, 0, 0, - 230, 10, 16, 0, 16, 0, - 0, 0, 166, 10, 16, 0, - 17, 0, 0, 0, 54, 0, - 0, 5, 18, 0, 16, 0, - 20, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 66, 0, - 16, 0, 21, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 55, 0, 0, 9, - 226, 0, 16, 0, 17, 0, - 0, 0, 246, 15, 16, 0, - 17, 0, 0, 0, 6, 9, - 16, 0, 20, 0, 0, 0, - 6, 9, 16, 0, 21, 0, - 0, 0, 54, 0, 0, 5, - 18, 0, 16, 0, 19, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 17, 0, 0, 0, 6, 0, - 16, 0, 17, 0, 0, 0, - 70, 2, 16, 0, 19, 0, - 0, 0, 150, 7, 16, 0, - 17, 0, 0, 0, 18, 0, - 0, 1, 49, 0, 0, 7, - 114, 0, 16, 0, 19, 0, - 0, 0, 86, 6, 16, 0, - 0, 0, 0, 0, 38, 8, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 242, 0, - 16, 0, 20, 0, 0, 0, - 86, 10, 16, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 134, 1, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 21, 0, - 0, 0, 246, 15, 16, 0, - 16, 0, 0, 0, 70, 2, - 16, 0, 20, 0, 0, 0, - 14, 0, 0, 7, 114, 0, - 16, 0, 16, 0, 0, 0, - 70, 2, 16, 0, 21, 0, - 0, 0, 22, 7, 16, 0, - 20, 0, 0, 0, 1, 0, - 0, 7, 82, 0, 16, 0, - 20, 0, 0, 0, 6, 3, - 16, 0, 16, 0, 0, 0, - 6, 0, 16, 0, 19, 0, - 0, 0, 29, 0, 0, 7, - 146, 0, 16, 0, 19, 0, - 0, 0, 166, 10, 16, 0, - 0, 0, 0, 0, 6, 4, - 16, 0, 0, 0, 0, 0, - 1, 0, 0, 7, 82, 0, - 16, 0, 21, 0, 0, 0, - 246, 13, 16, 0, 16, 0, - 0, 0, 86, 5, 16, 0, - 19, 0, 0, 0, 1, 0, - 0, 7, 50, 0, 16, 0, - 16, 0, 0, 0, 182, 15, - 16, 0, 16, 0, 0, 0, - 166, 10, 16, 0, 19, 0, - 0, 0, 54, 0, 0, 5, - 34, 0, 16, 0, 21, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 66, 0, 16, 0, - 16, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 16, 0, 0, 0, - 246, 15, 16, 0, 19, 0, - 0, 0, 70, 2, 16, 0, - 21, 0, 0, 0, 70, 2, - 16, 0, 16, 0, 0, 0, - 54, 0, 0, 5, 34, 0, - 16, 0, 20, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 55, 0, 0, 9, - 114, 0, 16, 0, 17, 0, - 0, 0, 6, 0, 16, 0, - 19, 0, 0, 0, 70, 2, - 16, 0, 20, 0, 0, 0, - 70, 2, 16, 0, 16, 0, - 0, 0, 21, 0, 0, 1, - 16, 0, 0, 10, 130, 0, - 16, 0, 3, 0, 0, 0, - 2, 64, 0, 0, 154, 153, - 153, 62, 61, 10, 23, 63, - 174, 71, 225, 61, 0, 0, - 0, 0, 70, 2, 16, 0, - 17, 0, 0, 0, 0, 0, - 0, 8, 130, 0, 16, 0, - 3, 0, 0, 0, 58, 0, - 16, 0, 2, 0, 0, 0, - 58, 0, 16, 128, 65, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 7, 114, 0, - 16, 0, 16, 0, 0, 0, - 246, 15, 16, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 17, 0, 0, 0, 16, 0, - 0, 10, 130, 0, 16, 0, - 3, 0, 0, 0, 2, 64, - 0, 0, 154, 153, 153, 62, - 61, 10, 23, 63, 174, 71, - 225, 61, 0, 0, 0, 0, - 70, 2, 16, 0, 16, 0, - 0, 0, 51, 0, 0, 7, - 130, 0, 16, 0, 4, 0, - 0, 0, 26, 0, 16, 0, - 16, 0, 0, 0, 10, 0, - 16, 0, 16, 0, 0, 0, - 51, 0, 0, 7, 130, 0, - 16, 0, 4, 0, 0, 0, - 42, 0, 16, 0, 16, 0, - 0, 0, 58, 0, 16, 0, - 4, 0, 0, 0, 52, 0, - 0, 7, 130, 0, 16, 0, - 5, 0, 0, 0, 26, 0, - 16, 0, 16, 0, 0, 0, - 10, 0, 16, 0, 16, 0, - 0, 0, 52, 0, 0, 7, - 130, 0, 16, 0, 5, 0, - 0, 0, 42, 0, 16, 0, - 16, 0, 0, 0, 58, 0, - 16, 0, 5, 0, 0, 0, - 49, 0, 0, 7, 130, 0, - 16, 0, 6, 0, 0, 0, - 58, 0, 16, 0, 4, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 8, 114, 0, 16, 0, - 17, 0, 0, 0, 246, 15, - 16, 128, 65, 0, 0, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 16, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 17, 0, 0, 0, - 246, 15, 16, 0, 3, 0, - 0, 0, 70, 2, 16, 0, - 17, 0, 0, 0, 0, 0, - 0, 8, 130, 0, 16, 0, - 4, 0, 0, 0, 58, 0, - 16, 0, 3, 0, 0, 0, - 58, 0, 16, 128, 65, 0, - 0, 0, 4, 0, 0, 0, - 14, 0, 0, 7, 114, 0, - 16, 0, 17, 0, 0, 0, - 70, 2, 16, 0, 17, 0, - 0, 0, 246, 15, 16, 0, - 4, 0, 0, 0, 0, 0, - 0, 7, 114, 0, 16, 0, - 17, 0, 0, 0, 246, 15, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 17, 0, - 0, 0, 55, 0, 0, 9, - 114, 0, 16, 0, 16, 0, - 0, 0, 246, 15, 16, 0, - 6, 0, 0, 0, 70, 2, - 16, 0, 17, 0, 0, 0, - 70, 2, 16, 0, 16, 0, - 0, 0, 49, 0, 0, 7, - 130, 0, 16, 0, 4, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 128, 63, 58, 0, - 16, 0, 5, 0, 0, 0, - 0, 0, 0, 8, 114, 0, - 16, 0, 17, 0, 0, 0, - 246, 15, 16, 128, 65, 0, - 0, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 16, 0, - 0, 0, 0, 0, 0, 8, - 130, 0, 16, 0, 6, 0, - 0, 0, 58, 0, 16, 128, - 65, 0, 0, 0, 3, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 128, 63, 56, 0, - 0, 7, 114, 0, 16, 0, - 17, 0, 0, 0, 246, 15, - 16, 0, 6, 0, 0, 0, - 70, 2, 16, 0, 17, 0, - 0, 0, 0, 0, 0, 8, - 130, 0, 16, 0, 5, 0, - 0, 0, 58, 0, 16, 128, - 65, 0, 0, 0, 3, 0, - 0, 0, 58, 0, 16, 0, - 5, 0, 0, 0, 14, 0, - 0, 7, 114, 0, 16, 0, - 17, 0, 0, 0, 70, 2, - 16, 0, 17, 0, 0, 0, - 246, 15, 16, 0, 5, 0, - 0, 0, 0, 0, 0, 7, - 114, 0, 16, 0, 17, 0, - 0, 0, 246, 15, 16, 0, - 3, 0, 0, 0, 70, 2, - 16, 0, 17, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 16, 0, 0, 0, - 246, 15, 16, 0, 4, 0, - 0, 0, 70, 2, 16, 0, - 17, 0, 0, 0, 70, 2, - 16, 0, 16, 0, 0, 0, - 16, 0, 0, 10, 130, 0, - 16, 0, 3, 0, 0, 0, - 2, 64, 0, 0, 154, 153, - 153, 62, 61, 10, 23, 63, - 174, 71, 225, 61, 0, 0, - 0, 0, 70, 2, 16, 0, - 1, 0, 0, 0, 0, 0, - 0, 8, 130, 0, 16, 0, - 4, 0, 0, 0, 58, 0, - 16, 0, 2, 0, 0, 0, - 58, 0, 16, 128, 65, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 7, 114, 0, - 16, 0, 17, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 246, 15, 16, 0, - 4, 0, 0, 0, 16, 0, - 0, 10, 130, 0, 16, 0, - 4, 0, 0, 0, 2, 64, - 0, 0, 154, 153, 153, 62, - 61, 10, 23, 63, 174, 71, - 225, 61, 0, 0, 0, 0, - 70, 2, 16, 0, 17, 0, - 0, 0, 51, 0, 0, 7, - 130, 0, 16, 0, 5, 0, - 0, 0, 26, 0, 16, 0, - 17, 0, 0, 0, 10, 0, - 16, 0, 17, 0, 0, 0, - 51, 0, 0, 7, 130, 0, - 16, 0, 5, 0, 0, 0, - 42, 0, 16, 0, 17, 0, - 0, 0, 58, 0, 16, 0, - 5, 0, 0, 0, 52, 0, - 0, 7, 130, 0, 16, 0, - 6, 0, 0, 0, 26, 0, - 16, 0, 17, 0, 0, 0, - 10, 0, 16, 0, 17, 0, - 0, 0, 52, 0, 0, 7, - 130, 0, 16, 0, 6, 0, - 0, 0, 42, 0, 16, 0, - 17, 0, 0, 0, 58, 0, - 16, 0, 6, 0, 0, 0, - 49, 0, 0, 7, 130, 0, - 16, 0, 7, 0, 0, 0, - 58, 0, 16, 0, 5, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 8, 114, 0, 16, 0, - 19, 0, 0, 0, 246, 15, - 16, 128, 65, 0, 0, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 17, 0, 0, 0, - 56, 0, 0, 7, 114, 0, - 16, 0, 19, 0, 0, 0, - 246, 15, 16, 0, 4, 0, - 0, 0, 70, 2, 16, 0, - 19, 0, 0, 0, 0, 0, - 0, 8, 130, 0, 16, 0, - 5, 0, 0, 0, 58, 0, - 16, 0, 4, 0, 0, 0, - 58, 0, 16, 128, 65, 0, - 0, 0, 5, 0, 0, 0, - 14, 0, 0, 7, 114, 0, - 16, 0, 19, 0, 0, 0, - 70, 2, 16, 0, 19, 0, - 0, 0, 246, 15, 16, 0, - 5, 0, 0, 0, 0, 0, - 0, 7, 114, 0, 16, 0, - 19, 0, 0, 0, 246, 15, - 16, 0, 4, 0, 0, 0, - 70, 2, 16, 0, 19, 0, - 0, 0, 55, 0, 0, 9, - 114, 0, 16, 0, 17, 0, - 0, 0, 246, 15, 16, 0, - 7, 0, 0, 0, 70, 2, - 16, 0, 19, 0, 0, 0, - 70, 2, 16, 0, 17, 0, - 0, 0, 49, 0, 0, 7, - 130, 0, 16, 0, 5, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 128, 63, 58, 0, - 16, 0, 6, 0, 0, 0, - 0, 0, 0, 8, 114, 0, - 16, 0, 19, 0, 0, 0, - 246, 15, 16, 128, 65, 0, - 0, 0, 4, 0, 0, 0, - 70, 2, 16, 0, 17, 0, - 0, 0, 0, 0, 0, 8, - 130, 0, 16, 0, 7, 0, - 0, 0, 58, 0, 16, 128, - 65, 0, 0, 0, 4, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 128, 63, 56, 0, - 0, 7, 114, 0, 16, 0, - 19, 0, 0, 0, 246, 15, - 16, 0, 7, 0, 0, 0, - 70, 2, 16, 0, 19, 0, - 0, 0, 0, 0, 0, 8, - 130, 0, 16, 0, 6, 0, - 0, 0, 58, 0, 16, 128, - 65, 0, 0, 0, 4, 0, - 0, 0, 58, 0, 16, 0, - 6, 0, 0, 0, 14, 0, - 0, 7, 114, 0, 16, 0, - 19, 0, 0, 0, 70, 2, - 16, 0, 19, 0, 0, 0, - 246, 15, 16, 0, 6, 0, - 0, 0, 0, 0, 0, 7, - 114, 0, 16, 0, 19, 0, - 0, 0, 246, 15, 16, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 19, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 17, 0, 0, 0, - 246, 15, 16, 0, 5, 0, - 0, 0, 70, 2, 16, 0, - 19, 0, 0, 0, 70, 2, - 16, 0, 17, 0, 0, 0, - 32, 0, 0, 11, 50, 0, - 16, 0, 19, 0, 0, 0, - 2, 64, 0, 0, 13, 0, - 0, 0, 14, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 166, 138, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 8, - 130, 0, 16, 0, 2, 0, - 0, 0, 58, 0, 16, 128, - 65, 0, 0, 0, 2, 0, - 0, 0, 58, 0, 16, 0, - 3, 0, 0, 0, 0, 0, - 0, 7, 114, 0, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 2, 0, - 0, 0, 16, 0, 0, 10, - 130, 0, 16, 0, 2, 0, - 0, 0, 2, 64, 0, 0, - 154, 153, 153, 62, 61, 10, - 23, 63, 174, 71, 225, 61, - 0, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 51, 0, 0, 7, 130, 0, - 16, 0, 3, 0, 0, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 51, 0, - 0, 7, 130, 0, 16, 0, - 3, 0, 0, 0, 42, 0, - 16, 0, 0, 0, 0, 0, - 58, 0, 16, 0, 3, 0, - 0, 0, 52, 0, 0, 7, - 130, 0, 16, 0, 4, 0, - 0, 0, 26, 0, 16, 0, - 0, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 52, 0, 0, 7, 130, 0, - 16, 0, 4, 0, 0, 0, - 42, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 4, 0, 0, 0, 49, 0, - 0, 7, 130, 0, 16, 0, - 5, 0, 0, 0, 58, 0, - 16, 0, 3, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 8, - 114, 0, 16, 0, 20, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 246, 15, - 16, 128, 65, 0, 0, 0, - 2, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 20, 0, 0, 0, 246, 15, - 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 20, 0, - 0, 0, 0, 0, 0, 8, - 130, 0, 16, 0, 3, 0, - 0, 0, 58, 0, 16, 0, - 2, 0, 0, 0, 58, 0, - 16, 128, 65, 0, 0, 0, - 3, 0, 0, 0, 14, 0, - 0, 7, 114, 0, 16, 0, - 20, 0, 0, 0, 70, 2, - 16, 0, 20, 0, 0, 0, - 246, 15, 16, 0, 3, 0, - 0, 0, 0, 0, 0, 7, - 114, 0, 16, 0, 20, 0, - 0, 0, 246, 15, 16, 0, - 2, 0, 0, 0, 70, 2, - 16, 0, 20, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 5, 0, - 0, 0, 70, 2, 16, 0, - 20, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 49, 0, 0, 7, 130, 0, - 16, 0, 3, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 58, 0, 16, 0, - 4, 0, 0, 0, 0, 0, - 0, 8, 114, 0, 16, 0, - 20, 0, 0, 0, 246, 15, - 16, 128, 65, 0, 0, 0, - 2, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 130, 0, - 16, 0, 5, 0, 0, 0, - 58, 0, 16, 128, 65, 0, - 0, 0, 2, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 56, 0, 0, 7, - 114, 0, 16, 0, 20, 0, - 0, 0, 246, 15, 16, 0, - 5, 0, 0, 0, 70, 2, - 16, 0, 20, 0, 0, 0, - 0, 0, 0, 8, 130, 0, - 16, 0, 4, 0, 0, 0, - 58, 0, 16, 128, 65, 0, - 0, 0, 2, 0, 0, 0, - 58, 0, 16, 0, 4, 0, - 0, 0, 14, 0, 0, 7, - 114, 0, 16, 0, 20, 0, - 0, 0, 70, 2, 16, 0, - 20, 0, 0, 0, 246, 15, - 16, 0, 4, 0, 0, 0, - 0, 0, 0, 7, 114, 0, - 16, 0, 20, 0, 0, 0, - 246, 15, 16, 0, 2, 0, - 0, 0, 70, 2, 16, 0, - 20, 0, 0, 0, 55, 0, - 0, 9, 114, 0, 16, 0, - 0, 0, 0, 0, 246, 15, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 20, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 1, 0, - 0, 7, 114, 0, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 86, 5, 16, 0, 19, 0, - 0, 0, 55, 0, 0, 9, - 114, 0, 16, 0, 0, 0, - 0, 0, 6, 0, 16, 0, - 19, 0, 0, 0, 70, 2, - 16, 0, 17, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 55, 0, 0, 9, - 114, 0, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 14, 0, 0, 0, 70, 2, - 16, 0, 16, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 55, 0, 0, 9, - 114, 0, 16, 0, 0, 0, - 0, 0, 166, 10, 16, 0, - 14, 0, 0, 0, 70, 2, - 16, 0, 13, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 55, 0, 0, 9, - 114, 0, 16, 0, 0, 0, - 0, 0, 86, 5, 16, 0, - 14, 0, 0, 0, 70, 2, - 16, 0, 3, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 55, 0, 0, 10, - 114, 0, 16, 0, 0, 0, - 0, 0, 6, 0, 16, 0, - 14, 0, 0, 0, 70, 2, - 16, 128, 129, 0, 0, 0, - 10, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 9, 0, - 0, 0, 70, 2, 16, 0, - 18, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 0, 0, 0, 0, - 166, 10, 16, 0, 9, 0, - 0, 0, 70, 2, 16, 0, - 6, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 0, 0, 0, 0, - 86, 5, 16, 0, 9, 0, - 0, 0, 70, 2, 16, 0, - 15, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 0, 0, 0, 0, - 6, 0, 16, 0, 9, 0, - 0, 0, 70, 2, 16, 0, - 12, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 0, 0, 0, 0, - 246, 15, 16, 0, 8, 0, - 0, 0, 70, 2, 16, 0, - 11, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 0, 0, 0, 0, - 166, 10, 16, 0, 8, 0, - 0, 0, 70, 2, 16, 0, - 7, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 0, 0, 0, 0, - 86, 5, 16, 0, 8, 0, - 0, 0, 70, 2, 16, 0, - 5, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 55, 0, 0, 9, 114, 0, - 16, 0, 0, 0, 0, 0, - 6, 0, 16, 0, 8, 0, - 0, 0, 70, 2, 16, 0, - 4, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 55, 0, 0, 10, 114, 0, - 16, 0, 0, 0, 0, 0, - 166, 138, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 0, 0, - 0, 8, 18, 0, 16, 0, - 2, 0, 0, 0, 58, 0, - 16, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 128, 63, - 56, 0, 0, 7, 114, 0, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 9, 114, 0, 16, 0, - 0, 0, 0, 0, 6, 0, - 16, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 114, 32, 16, 0, - 0, 0, 0, 0, 246, 15, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 130, 32, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 1, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 116, 0, 0, 0, 77, 1, - 0, 0, 22, 0, 0, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 191, 0, 0, 0, - 9, 0, 0, 0, 13, 0, - 0, 0, 13, 0, 0, 0, - 10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 24, 0, 0, 0, - 45, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 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, 3, - 0, 0, 1, 0, 0, 0, - 80, 1, 0, 0, 8, 0, - 0, 0, 28, 0, 0, 0, - 0, 4, 255, 255, 0, 1, - 0, 0, 116, 3, 0, 0, - 28, 1, 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, 1, 0, - 0, 0, 37, 1, 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, - 13, 0, 0, 0, 42, 1, - 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, 13, 0, 0, 0, - 45, 1, 0, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 255, 255, - 255, 255, 2, 0, 0, 0, - 1, 0, 0, 0, 13, 0, - 0, 0, 49, 1, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 3, 0, - 0, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 53, 1, - 0, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 4, 0, - 0, 0, 255, 255, 255, 255, - 5, 0, 0, 0, 1, 0, - 0, 0, 13, 0, 0, 0, - 59, 1, 0, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 255, 255, - 255, 255, 6, 0, 0, 0, - 1, 0, 0, 0, 13, 0, - 0, 0, 69, 1, 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, 116, 82, 71, 66, 0, - 116, 89, 0, 116, 67, 98, - 0, 116, 67, 114, 0, 116, - 77, 97, 115, 107, 0, 116, - 66, 97, 99, 107, 100, 114, - 111, 112, 0, 36, 71, 108, - 111, 98, 97, 108, 115, 0, - 171, 171, 69, 1, 0, 0, - 11, 0, 0, 0, 104, 1, - 0, 0, 96, 1, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 112, 2, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 0, 2, 0, 0, 0, - 124, 2, 0, 0, 0, 0, - 0, 0, 140, 2, 0, 0, - 16, 0, 0, 0, 4, 0, - 0, 0, 2, 0, 0, 0, - 156, 2, 0, 0, 0, 0, - 0, 0, 172, 2, 0, 0, - 32, 0, 0, 0, 16, 0, - 0, 0, 2, 0, 0, 0, - 188, 2, 0, 0, 0, 0, - 0, 0, 204, 2, 0, 0, - 48, 0, 0, 0, 44, 0, - 0, 0, 2, 0, 0, 0, - 220, 2, 0, 0, 0, 0, - 0, 0, 236, 2, 0, 0, - 96, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 252, 2, 0, 0, 0, 0, - 0, 0, 12, 3, 0, 0, - 160, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 252, 2, 0, 0, 0, 0, - 0, 0, 24, 3, 0, 0, - 224, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 124, 2, 0, 0, 0, 0, - 0, 0, 44, 3, 0, 0, - 240, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 60, 3, 0, 0, 0, 0, - 0, 0, 76, 3, 0, 0, - 0, 1, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 60, 3, 0, 0, 0, 0, - 0, 0, 87, 3, 0, 0, - 16, 1, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 60, 3, 0, 0, 0, 0, - 0, 0, 97, 3, 0, 0, - 32, 1, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 252, 2, 0, 0, 0, 0, - 0, 0, 102, 76, 97, 121, - 101, 114, 67, 111, 108, 111, - 114, 0, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 79, 112, 97, 99, 105, 116, - 121, 0, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 105, 66, 108, 101, - 110, 100, 67, 111, 110, 102, - 105, 103, 0, 171, 171, 171, - 1, 0, 19, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 89, - 117, 118, 67, 111, 108, 111, - 114, 77, 97, 116, 114, 105, - 120, 0, 2, 0, 3, 0, - 3, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 76, 97, 121, 101, 114, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 80, 114, 111, - 106, 101, 99, 116, 105, 111, - 110, 0, 118, 82, 101, 110, - 100, 101, 114, 84, 97, 114, - 103, 101, 116, 79, 102, 102, - 115, 101, 116, 0, 118, 84, - 101, 120, 116, 117, 114, 101, - 67, 111, 111, 114, 100, 115, - 0, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 76, 97, 121, 101, 114, - 81, 117, 97, 100, 0, 118, - 77, 97, 115, 107, 81, 117, - 97, 100, 0, 109, 66, 97, - 99, 107, 100, 114, 111, 112, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 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, 49, 48, 46, - 49, 0, 73, 83, 71, 78, - 128, 0, 0, 0, 4, 0, - 0, 0, 8, 0, 0, 0, - 104, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 116, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 3, 0, 0, - 116, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 12, 12, 0, 0, - 116, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 7, 7, 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 -}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4x4 mLayerTransform; // Offset: 0 Size: 64 +// float4x4 mProjection; // Offset: 64 Size: 64 +// float4 vRenderTargetOffset; // Offset: 128 Size: 16 +// float4 vTextureCoords; // Offset: 144 Size: 16 [unused] +// float4 vLayerQuad; // Offset: 160 Size: 16 [unused] +// float4 vMaskQuad; // Offset: 176 Size: 16 [unused] +// float4x4 mBackdropTransform; // Offset: 192 Size: 64 +// float4 fLayerColor; // Offset: 256 Size: 16 [unused] +// float fLayerOpacity; // Offset: 272 Size: 4 [unused] +// uint4 iBlendConfig; // Offset: 288 Size: 16 [unused] +// row_major float3x3 mYuvColorMatrix;// Offset: 304 Size: 44 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// $Globals cbuffer NA NA cb0 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// POSITION 0 xy 0 NONE float xy +// TEXCOORD 0 xy 1 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 2 zw 1 NONE float zw +// TEXCOORD 1 xyz 2 NONE float xyz +// +// +// Constant buffer to DX9 shader constant mappings: +// +// Target Reg Buffer Start Reg # of Regs Data Conversion +// ---------- ------- --------- --------- ---------------------- +// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) +// c3 cb0 3 6 ( FLT, FLT, FLT, FLT) +// c9 cb0 12 2 ( FLT, FLT, FLT, FLT) +// c11 cb0 15 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 c12, 1, 0.5, 0, 0 + dcl_texcoord v0 + dcl_texcoord1 v1 + mul r0, v0.y, c2 + mad r0, c1, v0.x, r0 + add r0, r0, c3 + rcp r1.x, r0.w + mul r0.xyz, r0, r1.x + add r0, r0, -c8 + mul r0.xyz, r0.w, r0 + mul r1, r0.y, c5 + mad r1, c4, r0.x, r1 + mad r1, c6, r0.z, r1 + mad r0, c7, r0.w, r1 + add r1.xy, r0, c12.x + mad r1.y, r1.y, -c12.y, c12.x + mul r1.x, r1.x, c12.y + mul r1.yz, r1.y, c10.xyxw + mad r1.xy, c9.yxzw, r1.x, r1.yzzw + add oT0.zw, r1.xyxy, c11.xyyx + mad oPos.xy, r0.w, c0, r0 + mov oPos.zw, r0 + mov oT0.xy, v1 + mov oT1.xyz, c12.z + +// approximately 21 instruction slots used +vs_4_0 +dcl_constantbuffer CB0[16], immediateIndexed +dcl_input v0.xy +dcl_input v1.xy +dcl_output_siv o0.xyzw, position +dcl_output o1.xy +dcl_output o1.zw +dcl_output o2.xyz +dcl_temps 2 +mul r0.xyzw, v0.yyyy, cb0[1].xyzw +mad r0.xyzw, cb0[0].xyzw, v0.xxxx, r0.xyzw +add r0.xyzw, r0.xyzw, cb0[3].xyzw +div r0.xyz, r0.xyzx, r0.wwww +add r0.xyzw, r0.xyzw, -cb0[8].xyzw +mul r0.xyz, r0.wwww, r0.xyzx +mul r1.xyzw, r0.yyyy, cb0[5].xyzw +mad r1.xyzw, cb0[4].xyzw, r0.xxxx, r1.xyzw +mad r1.xyzw, cb0[6].xyzw, r0.zzzz, r1.xyzw +mad r0.xyzw, cb0[7].xyzw, r0.wwww, r1.xyzw +mov o0.xyzw, r0.xyzw +add r0.xy, r0.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) +mad r0.y, -r0.y, l(0.500000), l(1.000000) +mul r0.x, r0.x, l(0.500000) +mul r0.yz, r0.yyyy, cb0[13].xxyx +mad r0.xy, cb0[12].xyxx, r0.xxxx, r0.yzyy +add o1.zw, r0.xxxy, cb0[15].xxxy +mov o1.xy, v1.xyxx +mov o2.xyz, l(0,0,0,0) +ret +// Approximately 20 instruction slots used +#endif + +const BYTE LayerDynamicBlendVS[] = +{ + 68, 88, 66, 67, 102, 142, + 87, 11, 197, 201, 214, 112, + 186, 161, 39, 205, 41, 159, + 223, 170, 1, 0, 0, 0, + 16, 9, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 44, 2, 0, 0, 28, 5, + 0, 0, 152, 5, 0, 0, + 52, 8, 0, 0, 136, 8, + 0, 0, 65, 111, 110, 57, + 236, 1, 0, 0, 236, 1, + 0, 0, 0, 2, 254, 255, + 148, 1, 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, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 12, 0, 2, 0, 9, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 1, 0, 11, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 254, 255, + 81, 0, 0, 5, 12, 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, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 5, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 85, 144, + 2, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 15, 128, + 1, 0, 228, 160, 0, 0, + 0, 144, 0, 0, 228, 128, + 2, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 128, + 3, 0, 228, 160, 6, 0, + 0, 2, 1, 0, 1, 128, + 0, 0, 255, 128, 5, 0, + 0, 3, 0, 0, 7, 128, + 0, 0, 228, 128, 1, 0, + 0, 128, 2, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 128, 8, 0, 228, 161, + 5, 0, 0, 3, 0, 0, + 7, 128, 0, 0, 255, 128, + 0, 0, 228, 128, 5, 0, + 0, 3, 1, 0, 15, 128, + 0, 0, 85, 128, 5, 0, + 228, 160, 4, 0, 0, 4, + 1, 0, 15, 128, 4, 0, + 228, 160, 0, 0, 0, 128, + 1, 0, 228, 128, 4, 0, + 0, 4, 1, 0, 15, 128, + 6, 0, 228, 160, 0, 0, + 170, 128, 1, 0, 228, 128, + 4, 0, 0, 4, 0, 0, + 15, 128, 7, 0, 228, 160, + 0, 0, 255, 128, 1, 0, + 228, 128, 2, 0, 0, 3, + 1, 0, 3, 128, 0, 0, + 228, 128, 12, 0, 0, 160, + 4, 0, 0, 4, 1, 0, + 2, 128, 1, 0, 85, 128, + 12, 0, 85, 161, 12, 0, + 0, 160, 5, 0, 0, 3, + 1, 0, 1, 128, 1, 0, + 0, 128, 12, 0, 85, 160, + 5, 0, 0, 3, 1, 0, + 6, 128, 1, 0, 85, 128, + 10, 0, 196, 160, 4, 0, + 0, 4, 1, 0, 3, 128, + 9, 0, 225, 160, 1, 0, + 0, 128, 1, 0, 233, 128, + 2, 0, 0, 3, 0, 0, + 12, 224, 1, 0, 68, 128, + 11, 0, 20, 160, 4, 0, + 0, 4, 0, 0, 3, 192, + 0, 0, 255, 128, 0, 0, + 228, 160, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 12, 192, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 3, 224, 1, 0, 228, 144, + 1, 0, 0, 2, 1, 0, + 7, 224, 12, 0, 170, 160, + 255, 255, 0, 0, 83, 72, + 68, 82, 232, 2, 0, 0, + 64, 0, 1, 0, 186, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 95, 0, 0, 3, 50, 16, + 16, 0, 0, 0, 0, 0, + 95, 0, 0, 3, 50, 16, + 16, 0, 1, 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, 101, 0, + 0, 3, 114, 32, 16, 0, + 2, 0, 0, 0, 104, 0, + 0, 2, 2, 0, 0, 0, + 56, 0, 0, 8, 242, 0, + 16, 0, 0, 0, 0, 0, + 86, 21, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 6, 16, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 14, 0, 0, 7, + 114, 0, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 246, 15, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 8, 0, 0, 0, + 56, 0, 0, 7, 114, 0, + 16, 0, 0, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 8, 242, 0, 16, 0, + 1, 0, 0, 0, 86, 5, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 50, 0, 0, 10, 242, 0, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 6, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 166, 10, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 7, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 54, 0, 0, 5, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 10, + 50, 0, 16, 0, 0, 0, + 0, 0, 70, 0, 16, 0, + 0, 0, 0, 0, 2, 64, + 0, 0, 0, 0, 128, 63, + 0, 0, 128, 63, 0, 0, + 0, 0, 0, 0, 0, 0, + 50, 0, 0, 10, 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, + 0, 63, 1, 64, 0, 0, + 0, 0, 128, 63, 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, 56, 0, 0, 8, + 98, 0, 16, 0, 0, 0, + 0, 0, 86, 5, 16, 0, + 0, 0, 0, 0, 6, 129, + 32, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 50, 0, + 0, 10, 50, 0, 16, 0, + 0, 0, 0, 0, 70, 128, + 32, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 6, 0, + 16, 0, 0, 0, 0, 0, + 150, 5, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 8, + 194, 32, 16, 0, 1, 0, + 0, 0, 6, 4, 16, 0, + 0, 0, 0, 0, 6, 132, + 32, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 54, 0, + 0, 5, 50, 32, 16, 0, + 1, 0, 0, 0, 70, 16, + 16, 0, 1, 0, 0, 0, + 54, 0, 0, 8, 114, 32, + 16, 0, 2, 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, 20, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 16, 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, 148, 2, 0, 0, + 1, 0, 0, 0, 72, 0, + 0, 0, 1, 0, 0, 0, + 28, 0, 0, 0, 0, 4, + 254, 255, 0, 1, 0, 0, + 108, 2, 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, + 36, 71, 108, 111, 98, 97, + 108, 115, 0, 171, 171, 171, + 60, 0, 0, 0, 11, 0, + 0, 0, 96, 0, 0, 0, + 96, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 104, 1, 0, 0, 0, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 136, 1, 0, 0, 64, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 148, 1, 0, 0, 128, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 168, 1, + 0, 0, 0, 0, 0, 0, + 184, 1, 0, 0, 144, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 216, 1, 0, 0, 160, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 227, 1, 0, 0, 176, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 237, 1, 0, 0, 192, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 168, 1, + 0, 0, 0, 0, 0, 0, + 12, 2, 0, 0, 16, 1, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 28, 2, + 0, 0, 0, 0, 0, 0, + 44, 2, 0, 0, 32, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 60, 2, + 0, 0, 0, 0, 0, 0, + 76, 2, 0, 0, 48, 1, + 0, 0, 44, 0, 0, 0, + 0, 0, 0, 0, 92, 2, + 0, 0, 0, 0, 0, 0, + 109, 76, 97, 121, 101, 114, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 0, 3, 0, + 3, 0, 4, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 80, 114, 111, + 106, 101, 99, 116, 105, 111, + 110, 0, 118, 82, 101, 110, + 100, 101, 114, 84, 97, 114, + 103, 101, 116, 79, 102, 102, + 115, 101, 116, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 118, 84, 101, 120, + 116, 117, 114, 101, 67, 111, + 111, 114, 100, 115, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 76, + 97, 121, 101, 114, 81, 117, + 97, 100, 0, 118, 77, 97, + 115, 107, 81, 117, 97, 100, + 0, 109, 66, 97, 99, 107, + 100, 114, 111, 112, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 0, 102, 76, 97, 121, + 101, 114, 67, 111, 108, 111, + 114, 0, 102, 76, 97, 121, + 101, 114, 79, 112, 97, 99, + 105, 116, 121, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 105, 66, + 108, 101, 110, 100, 67, 111, + 110, 102, 105, 103, 0, 171, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 89, 117, 118, 67, 111, + 108, 111, 114, 77, 97, 116, + 114, 105, 120, 0, 2, 0, + 3, 0, 3, 0, 3, 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, 49, 48, 46, 49, 0, + 73, 83, 71, 78, 76, 0, + 0, 0, 2, 0, 0, 0, + 8, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 3, 3, 0, 0, 65, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 3, 3, 0, 0, 80, 79, + 83, 73, 84, 73, 79, 78, + 0, 84, 69, 88, 67, 79, + 79, 82, 68, 0, 171, 171, + 79, 83, 71, 78, 128, 0, + 0, 0, 4, 0, 0, 0, + 8, 0, 0, 0, 104, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 116, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 3, 12, 0, 0, 116, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 12, 3, 0, 0, 116, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 7, 8, 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 +}; +ShaderBytes sLayerDynamicBlendVS = { LayerDynamicBlendVS, sizeof(LayerDynamicBlendVS) }; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4x4 mLayerTransform; // Offset: 0 Size: 64 +// float4x4 mProjection; // Offset: 64 Size: 64 +// float4 vRenderTargetOffset; // Offset: 128 Size: 16 +// float4 vTextureCoords; // Offset: 144 Size: 16 [unused] +// float4 vLayerQuad; // Offset: 160 Size: 16 [unused] +// float4 vMaskQuad; // Offset: 176 Size: 16 +// float4x4 mBackdropTransform; // Offset: 192 Size: 64 +// float4 fLayerColor; // Offset: 256 Size: 16 [unused] +// float fLayerOpacity; // Offset: 272 Size: 4 [unused] +// uint4 iBlendConfig; // Offset: 288 Size: 16 [unused] +// row_major float3x3 mYuvColorMatrix;// Offset: 304 Size: 44 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// $Globals cbuffer NA NA cb0 1 +// +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// POSITION 0 xy 0 NONE float xy +// TEXCOORD 0 xy 1 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 2 zw 1 NONE float zw +// TEXCOORD 1 xyz 2 NONE float xyz +// +// +// Constant buffer to DX9 shader constant mappings: +// +// Target Reg Buffer Start Reg # of Regs Data Conversion +// ---------- ------- --------- --------- ---------------------- +// c1 cb0 0 2 ( FLT, FLT, FLT, FLT) +// c3 cb0 3 6 ( FLT, FLT, FLT, FLT) +// c9 cb0 11 3 ( FLT, FLT, FLT, FLT) +// c12 cb0 15 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 c13, 1, 0.5, 0, 0 + dcl_texcoord v0 + dcl_texcoord1 v1 + mov r0.z, c13.x + rcp r0.w, c9.z + mul r1, v0.y, c2 + mad r1, c1, v0.x, r1 + add r1, r1, c3 + add r2.xy, r1, -c9 + mul r0.x, r0.w, r2.x + rcp r0.w, c9.w + mul r0.y, r0.w, r2.y + mul oT1.xyz, r0, r1.w + rcp r0.x, r1.w + mul r1.xyz, r0.x, r1 + add r0, r1, -c8 + mul r0.xyz, r0.w, r0 + mul r1, r0.y, c5 + mad r1, c4, r0.x, r1 + mad r1, c6, r0.z, r1 + mad r0, c7, r0.w, r1 + add r1.xy, r0, c13.x + mad r1.y, r1.y, -c13.y, c13.x + mul r1.x, r1.x, c13.y + mul r1.yz, r1.y, c11.xyxw + mad r1.xy, c10.yxzw, r1.x, r1.yzzw + add oT0.zw, r1.xyxy, c12.xyyx + mad oPos.xy, r0.w, c0, r0 + mov oPos.zw, r0 + mov oT0.xy, v1 + +// approximately 27 instruction slots used +vs_4_0 +dcl_constantbuffer CB0[16], immediateIndexed +dcl_input v0.xy +dcl_input v1.xy +dcl_output_siv o0.xyzw, position +dcl_output o1.xy +dcl_output o1.zw +dcl_output o2.xyz +dcl_temps 4 +mul r0.xyzw, v0.yyyy, cb0[1].xyzw +mad r0.xyzw, cb0[0].xyzw, v0.xxxx, r0.xyzw +add r0.xyzw, r0.xyzw, cb0[3].xyzw +div r1.xyz, r0.xyzx, r0.wwww +mov r1.w, r0.w +add r2.xyzw, r1.xyzw, -cb0[8].xyzw +mul r1.xyz, r2.wwww, r2.xyzx +mul r3.xyzw, r1.yyyy, cb0[5].xyzw +mad r3.xyzw, cb0[4].xyzw, r1.xxxx, r3.xyzw +mad r3.xyzw, cb0[6].xyzw, r1.zzzz, r3.xyzw +mad r2.xyzw, cb0[7].xyzw, r2.wwww, r3.xyzw +mov o0.xyzw, r2.xyzw +add r0.zw, r2.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) +mad r0.w, -r0.w, l(0.500000), l(1.000000) +mul r0.z, r0.z, l(0.500000) +mul r1.xy, r0.wwww, cb0[13].xyxx +mad r0.zw, cb0[12].xxxy, r0.zzzz, r1.xxxy +add o1.zw, r0.zzzw, cb0[15].xxxy +mov o1.xy, v1.xyxx +add r0.xy, r0.xyxx, -cb0[11].xyxx +div r0.xy, r0.xyxx, cb0[11].zwzz +mov r0.z, l(1.000000) +mul o2.xyz, r1.wwww, r0.xyzx +ret +// Approximately 24 instruction slots used +#endif + +const BYTE LayerDynamicBlendMaskVS[] = +{ + 68, 88, 66, 67, 197, 216, + 152, 248, 157, 186, 16, 6, + 93, 110, 127, 119, 100, 35, + 212, 100, 1, 0, 0, 0, + 208, 9, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 132, 2, 0, 0, 220, 5, + 0, 0, 88, 6, 0, 0, + 244, 8, 0, 0, 72, 9, + 0, 0, 65, 111, 110, 57, + 68, 2, 0, 0, 68, 2, + 0, 0, 0, 2, 254, 255, + 236, 1, 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, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 6, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 11, 0, 3, 0, 9, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 1, 0, 12, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 254, 255, + 81, 0, 0, 5, 13, 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, + 31, 0, 0, 2, 5, 0, + 1, 128, 1, 0, 15, 144, + 1, 0, 0, 2, 0, 0, + 4, 128, 13, 0, 0, 160, + 6, 0, 0, 2, 0, 0, + 8, 128, 9, 0, 170, 160, + 5, 0, 0, 3, 1, 0, + 15, 128, 0, 0, 85, 144, + 2, 0, 228, 160, 4, 0, + 0, 4, 1, 0, 15, 128, + 1, 0, 228, 160, 0, 0, + 0, 144, 1, 0, 228, 128, + 2, 0, 0, 3, 1, 0, + 15, 128, 1, 0, 228, 128, + 3, 0, 228, 160, 2, 0, + 0, 3, 2, 0, 3, 128, + 1, 0, 228, 128, 9, 0, + 228, 161, 5, 0, 0, 3, + 0, 0, 1, 128, 0, 0, + 255, 128, 2, 0, 0, 128, + 6, 0, 0, 2, 0, 0, + 8, 128, 9, 0, 255, 160, + 5, 0, 0, 3, 0, 0, + 2, 128, 0, 0, 255, 128, + 2, 0, 85, 128, 5, 0, + 0, 3, 1, 0, 7, 224, + 0, 0, 228, 128, 1, 0, + 255, 128, 6, 0, 0, 2, + 0, 0, 1, 128, 1, 0, + 255, 128, 5, 0, 0, 3, + 1, 0, 7, 128, 0, 0, + 0, 128, 1, 0, 228, 128, + 2, 0, 0, 3, 0, 0, + 15, 128, 1, 0, 228, 128, + 8, 0, 228, 161, 5, 0, + 0, 3, 0, 0, 7, 128, + 0, 0, 255, 128, 0, 0, + 228, 128, 5, 0, 0, 3, + 1, 0, 15, 128, 0, 0, + 85, 128, 5, 0, 228, 160, + 4, 0, 0, 4, 1, 0, + 15, 128, 4, 0, 228, 160, + 0, 0, 0, 128, 1, 0, + 228, 128, 4, 0, 0, 4, + 1, 0, 15, 128, 6, 0, + 228, 160, 0, 0, 170, 128, + 1, 0, 228, 128, 4, 0, + 0, 4, 0, 0, 15, 128, + 7, 0, 228, 160, 0, 0, + 255, 128, 1, 0, 228, 128, + 2, 0, 0, 3, 1, 0, + 3, 128, 0, 0, 228, 128, + 13, 0, 0, 160, 4, 0, + 0, 4, 1, 0, 2, 128, + 1, 0, 85, 128, 13, 0, + 85, 161, 13, 0, 0, 160, + 5, 0, 0, 3, 1, 0, + 1, 128, 1, 0, 0, 128, + 13, 0, 85, 160, 5, 0, + 0, 3, 1, 0, 6, 128, + 1, 0, 85, 128, 11, 0, + 196, 160, 4, 0, 0, 4, + 1, 0, 3, 128, 10, 0, + 225, 160, 1, 0, 0, 128, + 1, 0, 233, 128, 2, 0, + 0, 3, 0, 0, 12, 224, + 1, 0, 68, 128, 12, 0, + 20, 160, 4, 0, 0, 4, + 0, 0, 3, 192, 0, 0, + 255, 128, 0, 0, 228, 160, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 12, 192, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 3, 224, + 1, 0, 228, 144, 255, 255, + 0, 0, 83, 72, 68, 82, + 80, 3, 0, 0, 64, 0, + 1, 0, 212, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 95, 0, + 0, 3, 50, 16, 16, 0, + 0, 0, 0, 0, 95, 0, + 0, 3, 50, 16, 16, 0, + 1, 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, 101, 0, 0, 3, + 114, 32, 16, 0, 2, 0, + 0, 0, 104, 0, 0, 2, + 4, 0, 0, 0, 56, 0, + 0, 8, 242, 0, 16, 0, + 0, 0, 0, 0, 86, 21, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 50, 0, 0, 10, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 6, 16, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 0, 0, + 0, 8, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 14, 0, 0, 7, 114, 0, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 130, 0, 16, 0, + 1, 0, 0, 0, 58, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 242, 0, + 16, 0, 2, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 70, 142, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 8, 0, 0, 0, + 56, 0, 0, 7, 114, 0, + 16, 0, 1, 0, 0, 0, + 246, 15, 16, 0, 2, 0, + 0, 0, 70, 2, 16, 0, + 2, 0, 0, 0, 56, 0, + 0, 8, 242, 0, 16, 0, + 3, 0, 0, 0, 86, 5, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 50, 0, 0, 10, 242, 0, + 16, 0, 3, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 6, 0, 16, 0, 1, 0, + 0, 0, 70, 14, 16, 0, + 3, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 3, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 166, 10, + 16, 0, 1, 0, 0, 0, + 70, 14, 16, 0, 3, 0, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 2, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 7, 0, + 0, 0, 246, 15, 16, 0, + 2, 0, 0, 0, 70, 14, + 16, 0, 3, 0, 0, 0, + 54, 0, 0, 5, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 2, 0, + 0, 0, 0, 0, 0, 10, + 194, 0, 16, 0, 0, 0, + 0, 0, 6, 4, 16, 0, + 2, 0, 0, 0, 2, 64, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 128, 63, 0, 0, 128, 63, + 50, 0, 0, 10, 130, 0, + 16, 0, 0, 0, 0, 0, + 58, 0, 16, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 0, 63, 1, 64, 0, 0, + 0, 0, 128, 63, 56, 0, + 0, 7, 66, 0, 16, 0, + 0, 0, 0, 0, 42, 0, + 16, 0, 0, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 0, 63, 56, 0, 0, 8, + 50, 0, 16, 0, 1, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 128, + 32, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 50, 0, + 0, 10, 194, 0, 16, 0, + 0, 0, 0, 0, 6, 132, + 32, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 166, 10, + 16, 0, 0, 0, 0, 0, + 6, 4, 16, 0, 1, 0, + 0, 0, 0, 0, 0, 8, + 194, 32, 16, 0, 1, 0, + 0, 0, 166, 14, 16, 0, + 0, 0, 0, 0, 6, 132, + 32, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 54, 0, + 0, 5, 50, 32, 16, 0, + 1, 0, 0, 0, 70, 16, + 16, 0, 1, 0, 0, 0, + 0, 0, 0, 9, 50, 0, + 16, 0, 0, 0, 0, 0, + 70, 0, 16, 0, 0, 0, + 0, 0, 70, 128, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, + 14, 0, 0, 8, 50, 0, + 16, 0, 0, 0, 0, 0, + 70, 0, 16, 0, 0, 0, + 0, 0, 230, 138, 32, 0, + 0, 0, 0, 0, 11, 0, + 0, 0, 54, 0, 0, 5, + 66, 0, 16, 0, 0, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 128, 63, 56, 0, + 0, 7, 114, 32, 16, 0, + 2, 0, 0, 0, 246, 15, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 83, 84, 65, 84, 116, 0, + 0, 0, 24, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 19, 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, + 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, 148, 2, 0, 0, + 1, 0, 0, 0, 72, 0, + 0, 0, 1, 0, 0, 0, + 28, 0, 0, 0, 0, 4, + 254, 255, 0, 1, 0, 0, + 108, 2, 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, + 36, 71, 108, 111, 98, 97, + 108, 115, 0, 171, 171, 171, + 60, 0, 0, 0, 11, 0, + 0, 0, 96, 0, 0, 0, + 96, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 104, 1, 0, 0, 0, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 136, 1, 0, 0, 64, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 148, 1, 0, 0, 128, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 168, 1, + 0, 0, 0, 0, 0, 0, + 184, 1, 0, 0, 144, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 216, 1, 0, 0, 160, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 227, 1, 0, 0, 176, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 200, 1, + 0, 0, 0, 0, 0, 0, + 237, 1, 0, 0, 192, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 168, 1, + 0, 0, 0, 0, 0, 0, + 12, 2, 0, 0, 16, 1, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 28, 2, + 0, 0, 0, 0, 0, 0, + 44, 2, 0, 0, 32, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 60, 2, + 0, 0, 0, 0, 0, 0, + 76, 2, 0, 0, 48, 1, + 0, 0, 44, 0, 0, 0, + 0, 0, 0, 0, 92, 2, + 0, 0, 0, 0, 0, 0, + 109, 76, 97, 121, 101, 114, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 0, 3, 0, + 3, 0, 4, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 80, 114, 111, + 106, 101, 99, 116, 105, 111, + 110, 0, 118, 82, 101, 110, + 100, 101, 114, 84, 97, 114, + 103, 101, 116, 79, 102, 102, + 115, 101, 116, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 118, 84, 101, 120, + 116, 117, 114, 101, 67, 111, + 111, 114, 100, 115, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 76, + 97, 121, 101, 114, 81, 117, + 97, 100, 0, 118, 77, 97, + 115, 107, 81, 117, 97, 100, + 0, 109, 66, 97, 99, 107, + 100, 114, 111, 112, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 0, 102, 76, 97, 121, + 101, 114, 67, 111, 108, 111, + 114, 0, 102, 76, 97, 121, + 101, 114, 79, 112, 97, 99, + 105, 116, 121, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 105, 66, + 108, 101, 110, 100, 67, 111, + 110, 102, 105, 103, 0, 171, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 89, 117, 118, 67, 111, + 108, 111, 114, 77, 97, 116, + 114, 105, 120, 0, 2, 0, + 3, 0, 3, 0, 3, 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, 49, 48, 46, 49, 0, + 73, 83, 71, 78, 76, 0, + 0, 0, 2, 0, 0, 0, + 8, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 3, 3, 0, 0, 65, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 3, 3, 0, 0, 80, 79, + 83, 73, 84, 73, 79, 78, + 0, 84, 69, 88, 67, 79, + 79, 82, 68, 0, 171, 171, + 79, 83, 71, 78, 128, 0, + 0, 0, 4, 0, 0, 0, + 8, 0, 0, 0, 104, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 116, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 3, 12, 0, 0, 116, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 12, 3, 0, 0, 116, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 7, 8, 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 +}; +ShaderBytes sLayerDynamicBlendMaskVS = { LayerDynamicBlendMaskVS, sizeof(LayerDynamicBlendMaskVS) }; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 10.1 +// +// +// Buffer Definitions: +// +// cbuffer $Globals +// { +// +// float4 fLayerColor; // Offset: 0 Size: 16 +// float fLayerOpacity; // Offset: 16 Size: 4 +// uint4 iBlendConfig; // Offset: 32 Size: 16 +// row_major float3x3 mYuvColorMatrix;// Offset: 48 Size: 44 +// float4x4 mLayerTransform; // Offset: 96 Size: 64 [unused] +// float4x4 mProjection; // Offset: 160 Size: 64 [unused] +// float4 vRenderTargetOffset; // Offset: 224 Size: 16 [unused] +// float4 vTextureCoords; // Offset: 240 Size: 16 [unused] +// float4 vLayerQuad; // Offset: 256 Size: 16 [unused] +// float4 vMaskQuad; // Offset: 272 Size: 16 [unused] +// float4x4 mBackdropTransform; // Offset: 288 Size: 64 [unused] +// +// } +// +// +// Resource Bindings: +// +// Name Type Format Dim HLSL Bind Count +// ------------------------------ ---------- ------- ----------- -------------- ------ +// sSampler sampler NA NA s0 1 +// tRGB texture float4 2d t0 1 +// tY texture float4 2d t1 1 +// tCb texture float4 2d t2 1 +// tCr texture float4 2d t3 1 +// tMask texture float4 2d t5 1 +// tBackdrop texture float4 2d t6 1 +// $Globals cbuffer NA NA cb0 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 2 zw 1 NONE float zw +// TEXCOORD 1 xyz 2 NONE float xyz +// +// +// 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 0 2 ( FLT, FLT, FLT, FLT) +// c2 cb0 2 1 (UINT,UINT,UINT,UINT) +// c3 cb0 3 3 ( FLT, FLT, FLT, FLT) +// +// +// Sampler/Resource to DX9 shader sampler mappings: +// +// Target Sampler Source Sampler Source Resource +// -------------- --------------- ---------------- +// s0 s0 t0 +// s1 s0 t1 +// s2 s0 t2 +// s3 s0 t3 +// s4 s0 t5 +// s5 s0 t6 +// +// +// Level9 shader bytecode: +// + ps_2_x + def c6, -1, -2, -0.0627499968, -0.50195998 + def c7, -2, -3, -4, -5 + def c8, -6, -7, -8, -9 + def c9, 0.5, 1, 0.25, -2 + def c10, 16, -12, -14, 0 + def c11, -10, -11, -12, -13 + def c12, 0.300000012, 0.589999974, 0.109999999, 0 + def c13, -1, -0, 0, 1 + dcl t0 + dcl t1.xyz + dcl_2d s0 + dcl_2d s1 + dcl_2d s2 + dcl_2d s3 + dcl_2d s4 + dcl_2d s5 + mov r0.x, c13.z + mov r1.x, c13.z + mov r2.z, c13.z + mov r3.w, -c6.x + texld r4, t0, s2 + texld r5, t0, s1 + add r5.x, r5.x, c6.z + add r5.y, r4.x, c6.w + rcp r0.w, t1.z + mul r4.xy, r0.w, t1 + texld r6, t0, s3 + texld r4, r4, s4 + add r5.z, r6.x, c6.w + dp3 r3.x, c3, r5 + dp3 r3.y, c4, r5 + dp3 r3.z, c5, r5 + mul r3, r3, c1.x + mul r5, r4.x, r3 + mov r6.xy, t0.wzzw + texld r7, t0, s0 + texld r6, r6, s5 + mul r7, r7, c1.x + mul r8, r4.x, r7 + mov r9.xy, c6 + add r10, r9.xyxx, c2.xxyz + mul r10, r10, r10 + cmp r5, -r10.x, r8, r5 + cmp r3, -r10.x, r7, r3 + mov r7.w, c1.x + mul r8, r4.x, r7 + cmp r3, -c2.x, r7, r3 + mul r4, r4.x, c0 + cmp r5, -c2.x, r8, r5 + cmp r7.xy, -r10.yzzw, c13.x, c13.y + cmp r0.w, -r10.x, c6.x, r7.x + cmp r1.w, -c2.y, r9.x, r7.y + cmp r0.w, -c2.x, r9.x, r0.w + cmp r4, r0.w, r4, r5 + cmp r3, r0.w, c0, r3 + cmp r3, -c2.y, r3, r4 + cmp r3, r1.w, c13.zzzw, r3 + rcp r0.w, r3.w + mul r4.xyz, r0.w, r3 + cmp r4.xyz, -c2.w, r3, r4 + add r5.xy, -r4.yzzw, r4 + cmp r5.zw, r5.x, r4.xyxy, r4.xyyx + max r0.w, r5.z, r4.z + min r1.w, r4.z, r5.w + add r7.w, r0.w, -r1.w + rcp r0.w, r6.w + mul r8.xyz, r0.w, r6 + mad r5.zw, r6.xyzy, r0.w, -r8.xyxz + mul r9.xy, r7.w, r5.zwzw + mad r11, r6.yxxz, r0.w, -r8.xzyy + rcp r1.w, r11.x + mul r7.y, r1.w, r9.x + cmp r1.yz, r11.z, c13.z, r7.xwyw + mul r12, r7.w, r11 + rcp r1.w, r5.w + mul r7.x, r1.w, r12.y + cmp r2.xy, r11.w, c13.z, r7.xwzw + cmp r1.xyz, r5.z, r1, r2 + rcp r1.w, r5.z + mul r7.z, r1.w, r12.x + cmp r0.yz, r11.y, c13.z, r7.xzww + cmp r0.xyz, r11.w, r0, r1 + mov r1.y, c13.z + mov r2.y, c13.z + mov r10.z, c13.z + rcp r1.w, r11.z + mul r7.y, r1.w, r12.w + cmp r2.xz, r11.x, c13.z, r7.wyyw + rcp r1.w, r11.y + mul r7.x, r1.w, r9.y + cmp r10.xy, r5.z, c13.z, r7.wxzw + cmp r2.xyz, r11.w, r2, r10 + rcp r1.w, r11.w + mul r7.z, r1.w, r12.z + cmp r1.xz, r5.w, c13.z, r7.zyww + cmp r1.xyz, r5.z, r1, r2 + cmp r0.xyz, r11.x, r0, r1 + cmp r1.xy, r11.z, r8, r8.yxzw + dp3 r4.w, c12, r0 + dp3 r8.w, c12, r8 + add r4.w, -r4.w, r8.w + add r0.xyz, r0, r4.w + add r4.w, -r0.y, r0.x + cmp r1.zw, r4.w, r0.xyyx, r0.xyxy + min r4.w, r0.z, r1.z + max r2.x, r1.w, r0.z + dp3 r1.z, c12, r0 + add r1.w, -r4.w, r1.z + rcp r1.w, r1.w + add r2.yzw, r0.xxyz, -r1.z + mul r2.yzw, r1.z, r2 + mad r2.yzw, r2, r1.w, r1.z + cmp r0.xyz, r4.w, r0, r2.yzww + add r2.yzw, -r1.z, r0.xxyz + add r1.w, -r1.z, -c6.x + mul r2.yzw, r1.w, r2 + add r1.w, -r1.z, r2.x + add r4.w, -r2.x, -c6.x + rcp r1.w, r1.w + mad r2.xyz, r2.yzww, r1.w, r1.z + cmp r0.xyz, r4.w, r0, r2 + mov r4.w, c2.z + add r1.z, r4.w, c10.z + mul r1.z, r1.z, r1.z + dp3 r1.w, c12, r4 + add r2.x, -r8.w, r1.w + add r1.w, -r1.w, r8.w + add r2.yzw, r1.w, r4.xxyz + mad r7.xyz, r6, r0.w, r2.x + add r1.w, -r7.y, r7.x + cmp r5.zw, r1.w, r7.xyyx, r7.xyxy + min r1.w, r7.z, r5.z + max r2.x, r5.w, r7.z + dp3 r7.w, c12, r7 + add r5.z, -r1.w, r7.w + rcp r5.z, r5.z + add r9.xyz, -r7.w, r7 + mul r9.xyz, r7.w, r9 + mad r9.xyz, r9, r5.z, r7.w + cmp r7.xyz, r1.w, r7, r9 + add r9.xyz, -r7.w, r7 + add r1.w, -r7.w, -c6.x + mul r9.xyz, r1.w, r9 + add r1.w, r2.x, -r7.w + add r9.w, -r2.x, -c6.x + rcp r1.w, r1.w + mad r9.xyz, r9, r1.w, r7.w + cmp r7.xyz, r9.w, r7, r9 + cmp r7.xyz, -r1.z, r7, c13.z + add r7.w, -r2.z, r2.y + cmp r1.zw, r7.w, r2.xyzy, r2.xyyz + min r7.w, r2.w, r1.z + max r5.z, r1.w, r2.w + dp3 r5.w, c12, r2.yzww + add r1.z, -r7.w, r5.w + rcp r1.z, r1.z + add r9.xyz, r2.yzww, -r5.w + mul r9.xyz, r5.w, r9 + mad r9.xyz, r9, r1.z, r5.w + cmp r2.xyz, r7.w, r2.yzww, r9 + add r9.xyz, -r5.w, r2 + add r2.w, -r5.w, -c6.x + mul r9.xyz, r2.w, r9 + add r2.w, -r5.w, r5.z + add r7.w, -r5.z, -c6.x + rcp r2.w, r2.w + mad r9.xyz, r9, r2.w, r5.w + cmp r2.xyz, r7.w, r2, r9 + add r9, r4.w, c11 + mul r9, r9, r9 + cmp r2.xyz, -r9.w, r2, r7 + cmp r0.xyz, -r9.z, r0, r2 + add r2, -r4.xxzy, r4.yzxz + mov r7.y, c13.z + mov r10.y, c13.z + mov r11.z, c13.z + rcp r7.w, r2.z + max r11.w, r1.x, r8.z + min r5.z, r8.z, r1.y + add r1.w, -r5.z, r11.w + mul r5.zw, r1.w, r5.xyxy + mul r1.x, r7.w, r5.w + cmp r11.xy, r2.y, c13.z, r1.wxzw + rcp r5.w, r5.x + mul r12, r1.w, r2 + mul r1.y, r5.w, r12.w + cmp r10.xz, r2.x, c13.z, r1.wyyw + cmp r10.xyz, r2.w, r10, r11 + rcp r5.w, r2.w + mul r1.z, r5.w, r5.z + cmp r7.xz, r5.y, c13.z, r1.zyww + cmp r7.xyz, r2.y, r7, r10 + mov r10.x, c13.z + mov r11.x, c13.z + mov r13.z, c13.z + rcp r7.w, r2.x + mul r1.y, r7.w, r12.y + cmp r11.yz, r5.x, c13.z, r1.xwyw + rcp r7.w, r5.y + mul r1.x, r7.w, r12.z + cmp r13.xy, r2.w, c13.z, r1.xwzw + cmp r5.xyz, r2.y, r11, r13 + rcp r5.w, r2.y + mul r1.z, r5.w, r12.x + cmp r10.yz, r2.z, c13.z, r1.xzww + cmp r1.xyz, r2.w, r10, r5 + cmp r1.xyz, r2.x, r1, r7 + dp3 r1.w, c12, r1 + add r1.w, -r1.w, r8.w + add r1.xyz, r1.w, r1 + add r1.w, -r1.y, r1.x + cmp r2.xy, r1.w, r1.yxzw, r1 + min r8.w, r1.z, r2.x + max r5.x, r2.y, r1.z + dp3 r1.w, c12, r1 + add r2.x, -r8.w, r1.w + rcp r2.x, r2.x + add r2.yzw, -r1.w, r1.xxyz + mul r2.yzw, r1.w, r2 + mad r2.xyz, r2.yzww, r2.x, r1.w + cmp r1.xyz, r8.w, r1, r2 + add r2.xyz, -r1.w, r1 + add r2.w, -r1.w, -c6.x + mul r2.xyz, r2.w, r2 + add r2.w, -r1.w, r5.x + add r8.w, -r5.x, -c6.x + rcp r2.w, r2.w + mad r2.xyz, r2, r2.w, r1.w + cmp r1.xyz, r8.w, r1, r2 + cmp r0.xyz, -r9.y, r1, r0 + mad r1.xyz, r6, r0.w, r4 + mul r2.xyz, r4, r8 + mad r5.xyz, r2, c6.y, r1 + mad r1.xyz, r8, -r4, r1 + cmp r0.xyz, -r9.x, r5, r0 + mad r5.xyz, r6, r0.w, -r4 + abs r5.xyz, r5 + add r7, r4.w, c8 + mul r7, r7, r7 + cmp r0.xyz, -r7.w, r5, r0 + add r5.xy, -r4.yzzw, c9.x + mad r9.xyz, r4, -c9.w, -c9.y + mad r1.w, r6.z, -r0.w, c9.z + mad r10.xyz, r8, c10.x, c10.y + mad r10.xyz, r10, r8, -c7.z + mul r10.xyz, r8, r10 + rsq r2.w, r8.z + rcp r2.w, r2.w + cmp r1.w, r1.w, r10.z, r2.w + mad r1.w, r6.z, -r0.w, r1.w + mad r1.w, r9.z, r1.w, r8.z + mad r11.xyz, r4, c6.y, -c6.x + mul r11.xyz, r8, r11 + mad r12, r6.yzxy, -r0.w, c9.yyzz + mad r5.zw, r11.xyyz, -r12.xyxy, r8.xyyz + cmp r13.z, r5.y, r5.w, r1.w + rsq r1.w, r8.y + rcp r1.w, r1.w + cmp r1.w, r12.w, r10.y, r1.w + mad r1.w, r6.y, -r0.w, r1.w + mad r1.w, r9.y, r1.w, r8.y + cmp r13.y, r5.x, r5.z, r1.w + add r14, -r4.xyzx, c9.yyyx + rsq r1.w, r8.x + rcp r1.w, r1.w + cmp r1.w, r12.z, r10.x, r1.w + mad r1.w, r6.x, -r0.w, r1.w + mad r1.w, r9.x, r1.w, r8.x + mad r9, r6.xyzx, -r0.w, c9.xxxy + mad r6.xyz, r6, r0.w, c6.x + mul r6.xyz, r6, r6 + mad r0.w, r11.x, -r9.w, r8.x + cmp r13.x, r14.w, r0.w, r1.w + cmp r0.xyz, -r7.z, r13, r0 + add r10.xyz, r8, r8 + mad r11.xyz, r4, -c6.y, r10 + add r11.xyz, r11, c6.x + mad r13.xyz, r4, -r10, r11 + mul r10.xyz, r4, r10 + add r15.xyz, r4, r4 + mul r16.xyz, r8, r15 + mad r11.xyz, r15, -r8, r11 + cmp r9.xyz, r9, r10, r11 + cmp r5.yz, r5.xxyw, r16, r13 + cmp r5.x, r14.w, r16.x, r13.x + cmp r0.xyz, -r7.y, r5, r0 + rcp r0.w, r4.x + mad r0.w, r9.w, -r0.w, -c6.x + max r1.w, r0.w, c13.z + mul r5.xyz, r4, r4 + cmp r0.w, -r5.x, c13.z, r1.w + cmp r10.x, -r6.x, -c6.x, r0.w + rcp r0.w, r4.y + mad r0.w, r12.x, -r0.w, -c6.x + max r1.w, r0.w, c13.z + cmp r0.w, -r5.y, c13.z, r1.w + cmp r10.y, -r6.y, -c6.x, r0.w + rcp r0.w, r4.z + mad r0.w, r12.y, -r0.w, -c6.x + max r1.w, r0.w, c13.z + cmp r0.w, -r5.z, c13.z, r1.w + cmp r10.z, -r6.z, -c6.x, r0.w + cmp r0.xyz, -r7.x, r10, r0 + add r5, r4.w, c7 + mul r5, r5, r5 + add r6.xyz, r4, c6.x + mul r6.xyz, r6, r6 + rcp r0.w, r14.x + mul r0.w, r0.w, r8.x + min r1.w, r0.w, -c6.x + cmp r0.w, -r6.x, -c6.x, r1.w + mul r7.xyz, r8, r8 + cmp r10.x, -r7.x, c13.z, r0.w + rcp r0.w, r14.y + rcp r1.w, r14.z + mul r1.w, r1.w, r8.z + min r2.w, r1.w, -c6.x + cmp r1.w, -r6.z, -c6.x, r2.w + cmp r10.z, -r7.z, c13.z, r1.w + mul r0.w, r0.w, r8.y + min r1.w, r0.w, -c6.x + cmp r0.w, -r6.y, -c6.x, r1.w + cmp r10.y, -r7.y, c13.z, r0.w + cmp r0.xyz, -r5.w, r10, r0 + max r6.xyz, r8, r4 + min r7.xyz, r4, r8 + cmp r0.xyz, -r5.z, r6, r0 + cmp r0.xyz, -r5.y, r7, r0 + cmp r0.xyz, -r5.x, r9, r0 + cmp r0.xyz, -r10.w, r1, r0 + cmp r0.xyz, -c2.z, r2, r0 + lrp r1.xyz, r6.w, r0, r4 + mul r1.w, r6.w, r6.w + mul r0.xyz, r3.w, r1 + mul r1.x, r3.w, r3.w + mov r0.w, r3.w + cmp r0, -r1.x, c13.z, r0 + cmp r0, -r1.w, r3, r0 + mov oC0, r0 + +// approximately 323 instruction slots used (6 texture, 317 arithmetic) +ps_4_0 +dcl_constantbuffer CB0[6], immediateIndexed +dcl_sampler s0, mode_default +dcl_resource_texture2d (float,float,float,float) t0 +dcl_resource_texture2d (float,float,float,float) t1 +dcl_resource_texture2d (float,float,float,float) t2 +dcl_resource_texture2d (float,float,float,float) t3 +dcl_resource_texture2d (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_input_ps linear v1.xy +dcl_input_ps linear v1.zw +dcl_input_ps linear v2.xyz +dcl_output o0.xyzw +dcl_temps 22 +sample r0.xyzw, v1.zwzz, t6.xyzw, s0 +if_z cb0[2].y + if_z cb0[2].x + sample r1.xyzw, v1.xyxx, t0.xyzw, s0 + mul r1.xyz, r1.xyzx, cb0[1].xxxx + mov r1.w, cb0[1].x + mov r2.x, l(-1) + else + ieq r2.y, l(1), cb0[2].x + if_nz r2.y + sample r3.xyzw, v1.xyxx, t0.xyzw, s0 + mul r1.xyzw, r3.xyzw, cb0[1].xxxx + mov r2.x, l(-1) + else + ieq r2.x, l(2), cb0[2].x + if_nz r2.x + sample r3.xyzw, v1.xyxx, t1.xyzw, s0 + add r3.x, r3.x, l(-0.062750) + sample r4.xyzw, v1.xyxx, t2.xyzw, s0 + add r3.y, r4.x, l(-0.501960) + sample r4.xyzw, v1.xyxx, t3.xyzw, s0 + add r3.z, r4.x, l(-0.501960) + dp3 r4.x, cb0[3].xyzx, r3.xyzx + dp3 r4.y, cb0[4].xyzx, r3.xyzx + dp3 r4.z, cb0[5].xyzx, r3.xyzx + mov r4.w, l(1.000000) + mul r1.xyzw, r4.xyzw, cb0[1].xxxx + endif + endif + endif + movc r1.xyzw, r2.xxxx, r1.xyzw, cb0[0].xyzw + mov r2.x, l(-1) +else + ieq r2.x, l(1), cb0[2].y + if_nz r2.x + if_z cb0[2].x + sample r3.xyzw, v1.xyxx, t0.xyzw, s0 + mul r3.xyz, r3.xyzx, cb0[1].xxxx + div r2.yz, v2.xxyx, v2.zzzz + sample r4.xyzw, r2.yzyy, t5.xyzw, s0 + mov r3.w, cb0[1].x + mul r1.xyzw, r3.xyzw, r4.xxxx + mov r2.y, l(-1) + else + ieq r2.z, l(1), cb0[2].x + if_nz r2.z + div r2.zw, v2.xxxy, v2.zzzz + sample r3.xyzw, r2.zwzz, t5.xyzw, s0 + sample r4.xyzw, v1.xyxx, t0.xyzw, s0 + mul r4.xyzw, r4.xyzw, cb0[1].xxxx + mul r1.xyzw, r3.xxxx, r4.xyzw + mov r2.y, l(-1) + else + ieq r2.y, l(2), cb0[2].x + if_nz r2.y + div r2.zw, v2.xxxy, v2.zzzz + sample r3.xyzw, r2.zwzz, t5.xyzw, s0 + sample r4.xyzw, v1.xyxx, t1.xyzw, s0 + add r4.x, r4.x, l(-0.062750) + sample r5.xyzw, v1.xyxx, t2.xyzw, s0 + add r4.y, r5.x, l(-0.501960) + sample r5.xyzw, v1.xyxx, t3.xyzw, s0 + add r4.z, r5.x, l(-0.501960) + dp3 r5.x, cb0[3].xyzx, r4.xyzx + dp3 r5.y, cb0[4].xyzx, r4.xyzx + dp3 r5.z, cb0[5].xyzx, r4.xyzx + mov r5.w, l(1.000000) + mul r4.xyzw, r5.xyzw, cb0[1].xxxx + mul r1.xyzw, r3.xxxx, r4.xyzw + endif + endif + endif + if_z r2.y + div r2.yz, v2.xxyx, v2.zzzz + sample r3.xyzw, r2.yzyy, t5.xyzw, s0 + mul r1.xyzw, r3.xxxx, cb0[0].xyzw + endif + endif +endif +movc r1.xyzw, r2.xxxx, r1.xyzw, l(0,0,0,1.000000) +eq r2.x, r0.w, l(0.000000) +if_nz r2.x + mov o0.xyzw, r1.xyzw + ret +endif +eq r2.x, r1.w, l(0.000000) +if_nz r2.x + mov o0.xyzw, l(0,0,0,0) + ret +endif +div r0.xyz, r0.xyzx, r0.wwww +div r2.xyz, r1.xyzx, r1.wwww +movc r1.xyz, cb0[2].wwww, r2.xyzx, r1.xyzx +mul r2.xyz, r0.xyzx, r1.xyzx +add r3.xyz, r0.xyzx, r1.xyzx +mad r4.xyz, -r0.xyzx, r1.xyzx, r3.xyzx +ge r5.xyzw, l(0.500000, 0.500000, 0.500000, 0.250000), r0.xyzx +add r6.xyz, r0.xyzx, r0.xyzx +mul r7.xyz, r1.xyzx, r6.xyzx +add r8.xyz, r1.xyzx, r1.xyzx +mad r9.xyz, r1.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), r6.xyzx +add r9.xyz, r9.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) +mul r10.xyz, r0.xyzx, r8.xyzx +mad r8.xyz, -r8.xyzx, r0.xyzx, r9.xyzx +movc r5.xyz, r5.xyzx, r7.xyzx, r8.xyzx +min r7.xyz, r0.xyzx, r1.xyzx +ieq r8.xyzw, l(1, 2, 3, 4), cb0[2].zzzz +max r11.xyz, r0.xyzx, r1.xyzx +eq r12.xyzw, r0.xyzx, l(0.000000, 0.000000, 0.000000, 1.000000) +eq r13.xyzw, r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +add r14.xyz, -r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +div r14.xyz, r0.xyzx, r14.xyzx +min r14.xyz, r14.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +movc r13.xyz, r13.xyzx, l(1.000000,1.000000,1.000000,0), r14.xyzx +movc r12.xyz, r12.xyzx, l(0,0,0,0), r13.xyzx +add r13.xyz, -r0.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +div r14.xyz, r13.xyzx, r1.xyzx +min r14.xyz, r14.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +add r14.xyz, -r14.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +movc r2.w, r13.w, l(0), r14.x +movc r15.x, r12.w, l(1.000000), r2.w +eq r14.xw, r0.yyyz, l(1.000000, 0.000000, 0.000000, 1.000000) +eq r16.xy, r1.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) +movc r14.yz, r16.xxyx, l(0,0,0,0), r14.yyzy +movc r15.yz, r14.xxwx, l(0,1.000000,1.000000,0), r14.yyzy +ge r14.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), r1.xyzx +mad r6.xyz, -r1.xyzx, r6.xyzx, r9.xyzx +movc r6.xyz, r14.xyzx, r10.xyzx, r6.xyzx +ieq r9.xyzw, l(5, 6, 7, 8), cb0[2].zzzz +mad r10.xyz, -r1.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) +mul r10.xyz, r0.xyzx, r10.xyzx +mad r10.xyz, -r10.xyzx, r13.xyzx, r0.xyzx +mad r13.xyz, r1.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000) +mad r16.xyz, r0.xyzx, l(16.000000, 16.000000, 16.000000, 0.000000), l(-12.000000, -12.000000, -12.000000, 0.000000) +mad r16.xyz, r16.xyzx, r0.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000) +mul r16.xyz, r0.xyzx, r16.xyzx +sqrt r17.xyz, r0.xyzx +movc r2.w, r5.w, r16.x, r17.x +add r2.w, -r0.x, r2.w +mad r2.w, r13.x, r2.w, r0.x +movc r18.x, r14.x, r10.x, r2.w +ge r10.xw, l(0.250000, 0.000000, 0.000000, 0.250000), r0.yyyz +movc r10.xw, r10.xxxw, r16.yyyz, r17.yyyz +add r10.xw, -r0.yyyz, r10.xxxw +mad r10.xw, r13.yyyz, r10.xxxw, r0.yyyz +movc r18.yz, r14.yyzy, r10.yyzy, r10.xxwx +add r10.xyz, r0.xyzx, -r1.xyzx +mad r3.xyz, -r2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), r3.xyzx +max r2.w, r0.y, r0.x +max r2.w, r0.z, r2.w +min r3.w, r0.y, r0.x +min r3.w, r0.z, r3.w +add r13.w, r2.w, -r3.w +ge r2.w, r1.y, r1.x +if_nz r2.w + lt r14.xyz, r1.xxzx, r1.zyyz + add r16.xyzw, -r1.xxzz, r1.yzxy + mul r17.xyz, r13.wwww, r16.xyzx + div r13.xyz, r17.xyzx, r16.yxwy + and r16.yz, r13.xxwx, r14.xxxx + ge r14.xw, r1.zzzz, r1.yyyx + and r17.yz, r13.wwyw, r14.yyyy + and r19.xy, r13.zwzz, r14.zzzz + mov r17.x, l(0) + mov r19.z, l(0) + movc r14.yzw, r14.wwww, r17.xxyz, r19.xxyz + mov r16.x, l(0) + movc r14.xyz, r14.xxxx, r16.xyzx, r14.yzwy +else + lt r16.xyz, r1.yyzy, r1.zxxz + add r17.xyzw, -r1.yyzz, r1.xzyx + mul r19.xyz, r13.wwww, r17.xyzx + div r13.xyz, r19.xyzx, r17.yxwy + and r17.xz, r13.xxwx, r16.xxxx + ge r16.xw, r1.zzzz, r1.xxxy + and r19.xz, r13.wwyw, r16.yyyy + and r13.xy, r13.wzww, r16.zzzz + mov r19.y, l(0) + mov r13.z, l(0) + movc r13.xyz, r16.wwww, r19.xyzx, r13.xyzx + mov r17.y, l(0) + movc r14.xyz, r16.xxxx, r17.xyzx, r13.xyzx +endif +dp3 r2.w, l(0.300000, 0.590000, 0.110000, 0.000000), r0.xyzx +dp3 r3.w, l(0.300000, 0.590000, 0.110000, 0.000000), r14.xyzx +add r3.w, r2.w, -r3.w +add r13.xyz, r3.wwww, r14.xyzx +dp3 r3.w, l(0.300000, 0.590000, 0.110000, 0.000000), r13.xyzx +min r4.w, r13.y, r13.x +min r4.w, r13.z, r4.w +max r5.w, r13.y, r13.x +max r5.w, r13.z, r5.w +lt r6.w, r4.w, l(0.000000) +add r14.xyz, -r3.wwww, r13.xyzx +mul r14.xyz, r3.wwww, r14.xyzx +add r4.w, r3.w, -r4.w +div r14.xyz, r14.xyzx, r4.wwww +add r14.xyz, r3.wwww, r14.xyzx +movc r13.xyz, r6.wwww, r14.xyzx, r13.xyzx +lt r4.w, l(1.000000), r5.w +add r14.xyz, -r3.wwww, r13.xyzx +add r6.w, -r3.w, l(1.000000) +mul r14.xyz, r6.wwww, r14.xyzx +add r5.w, -r3.w, r5.w +div r14.xyz, r14.xyzx, r5.wwww +add r14.xyz, r3.wwww, r14.xyzx +movc r13.xyz, r4.wwww, r14.xyzx, r13.xyzx +ieq r14.xyzw, l(9, 10, 11, 12), cb0[2].zzzz +max r3.w, r1.y, r1.x +max r3.w, r1.z, r3.w +min r4.w, r1.y, r1.x +min r4.w, r1.z, r4.w +add r16.w, r3.w, -r4.w +ge r3.w, r0.y, r0.x +if_nz r3.w + lt r17.xyz, r0.xxzx, r0.zyyz + add r19.xyzw, -r0.xxzz, r0.yzxy + mul r20.xyz, r16.wwww, r19.xyzx + div r16.xyz, r20.xyzx, r19.yxwy + and r19.yz, r16.xxwx, r17.xxxx + ge r17.xw, r0.zzzz, r0.yyyx + and r20.yz, r16.wwyw, r17.yyyy + and r21.xy, r16.zwzz, r17.zzzz + mov r20.x, l(0) + mov r21.z, l(0) + movc r17.yzw, r17.wwww, r20.xxyz, r21.xxyz + mov r19.x, l(0) + movc r17.xyz, r17.xxxx, r19.xyzx, r17.yzwy +else + lt r19.xyz, r0.yyzy, r0.zxxz + add r20.xyzw, -r0.yyzz, r0.xzyx + mul r21.xyz, r16.wwww, r20.xyzx + div r16.xyz, r21.xyzx, r20.yxwy + and r20.xz, r16.xxwx, r19.xxxx + ge r19.xw, r0.zzzz, r0.xxxy + and r21.xz, r16.wwyw, r19.yyyy + and r16.xy, r16.wzww, r19.zzzz + mov r21.y, l(0) + mov r16.z, l(0) + movc r16.xyz, r19.wwww, r21.xyzx, r16.xyzx + mov r20.y, l(0) + movc r17.xyz, r19.xxxx, r20.xyzx, r16.xyzx +endif +dp3 r3.w, l(0.300000, 0.590000, 0.110000, 0.000000), r17.xyzx +add r3.w, r2.w, -r3.w +add r16.xyz, r3.wwww, r17.xyzx +dp3 r3.w, l(0.300000, 0.590000, 0.110000, 0.000000), r16.xyzx +min r4.w, r16.y, r16.x +min r4.w, r16.z, r4.w +max r5.w, r16.y, r16.x +max r5.w, r16.z, r5.w +lt r6.w, r4.w, l(0.000000) +add r17.xyz, -r3.wwww, r16.xyzx +mul r17.xyz, r3.wwww, r17.xyzx +add r4.w, r3.w, -r4.w +div r17.xyz, r17.xyzx, r4.wwww +add r17.xyz, r3.wwww, r17.xyzx +movc r16.xyz, r6.wwww, r17.xyzx, r16.xyzx +lt r4.w, l(1.000000), r5.w +add r17.xyz, -r3.wwww, r16.xyzx +add r6.w, -r3.w, l(1.000000) +mul r17.xyz, r6.wwww, r17.xyzx +add r5.w, -r3.w, r5.w +div r17.xyz, r17.xyzx, r5.wwww +add r17.xyz, r3.wwww, r17.xyzx +movc r16.xyz, r4.wwww, r17.xyzx, r16.xyzx +dp3 r3.w, l(0.300000, 0.590000, 0.110000, 0.000000), r1.xyzx +add r4.w, r2.w, -r3.w +add r17.xyz, r1.xyzx, r4.wwww +dp3 r4.w, l(0.300000, 0.590000, 0.110000, 0.000000), r17.xyzx +min r5.w, r17.y, r17.x +min r5.w, r17.z, r5.w +max r6.w, r17.y, r17.x +max r6.w, r17.z, r6.w +lt r7.w, r5.w, l(0.000000) +add r19.xyz, -r4.wwww, r17.xyzx +mul r19.xyz, r4.wwww, r19.xyzx +add r5.w, r4.w, -r5.w +div r19.xyz, r19.xyzx, r5.wwww +add r19.xyz, r4.wwww, r19.xyzx +movc r17.xyz, r7.wwww, r19.xyzx, r17.xyzx +lt r5.w, l(1.000000), r6.w +add r19.xyz, -r4.wwww, r17.xyzx +add r7.w, -r4.w, l(1.000000) +mul r19.xyz, r7.wwww, r19.xyzx +add r6.w, -r4.w, r6.w +div r19.xyz, r19.xyzx, r6.wwww +add r19.xyz, r4.wwww, r19.xyzx +movc r17.xyz, r5.wwww, r19.xyzx, r17.xyzx +ieq r19.xy, l(13, 14, 0, 0), cb0[2].zzzz +add r2.w, -r2.w, r3.w +add r0.xyz, r0.xyzx, r2.wwww +dp3 r2.w, l(0.300000, 0.590000, 0.110000, 0.000000), r0.xyzx +min r3.w, r0.y, r0.x +min r3.w, r0.z, r3.w +max r4.w, r0.y, r0.x +max r4.w, r0.z, r4.w +lt r5.w, r3.w, l(0.000000) +add r20.xyz, r0.xyzx, -r2.wwww +mul r20.xyz, r2.wwww, r20.xyzx +add r3.w, r2.w, -r3.w +div r20.xyz, r20.xyzx, r3.wwww +add r20.xyz, r2.wwww, r20.xyzx +movc r0.xyz, r5.wwww, r20.xyzx, r0.xyzx +lt r3.w, l(1.000000), r4.w +add r20.xyz, -r2.wwww, r0.xyzx +add r5.w, -r2.w, l(1.000000) +mul r20.xyz, r5.wwww, r20.xyzx +add r4.w, -r2.w, r4.w +div r20.xyz, r20.xyzx, r4.wwww +add r20.xyz, r2.wwww, r20.xyzx +movc r0.xyz, r3.wwww, r20.xyzx, r0.xyzx +and r0.xyz, r0.xyzx, r19.yyyy +movc r0.xyz, r19.xxxx, r17.xyzx, r0.xyzx +movc r0.xyz, r14.wwww, r16.xyzx, r0.xyzx +movc r0.xyz, r14.zzzz, r13.xyzx, r0.xyzx +movc r0.xyz, r14.yyyy, r3.xyzx, r0.xyzx +movc r0.xyz, r14.xxxx, |r10.xyzx|, r0.xyzx +movc r0.xyz, r9.wwww, r18.xyzx, r0.xyzx +movc r0.xyz, r9.zzzz, r6.xyzx, r0.xyzx +movc r0.xyz, r9.yyyy, r15.xyzx, r0.xyzx +movc r0.xyz, r9.xxxx, r12.xyzx, r0.xyzx +movc r0.xyz, r8.wwww, r11.xyzx, r0.xyzx +movc r0.xyz, r8.zzzz, r7.xyzx, r0.xyzx +movc r0.xyz, r8.yyyy, r5.xyzx, r0.xyzx +movc r0.xyz, r8.xxxx, r4.xyzx, r0.xyzx +movc r0.xyz, cb0[2].zzzz, r0.xyzx, r2.xyzx +add r2.x, -r0.w, l(1.000000) +mul r0.xyz, r0.xyzx, r0.wwww +mad r0.xyz, r2.xxxx, r1.xyzx, r0.xyzx +mul o0.xyz, r1.wwww, r0.xyzx +mov o0.w, r1.w +ret +// Approximately 333 instruction slots used +#endif + +const BYTE BlendShader[] = +{ + 68, 88, 66, 67, 28, 114, + 244, 41, 206, 5, 116, 244, + 79, 130, 118, 154, 72, 188, + 36, 32, 1, 0, 0, 0, + 172, 66, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 16, 23, 0, 0, 208, 61, + 0, 0, 76, 62, 0, 0, + 240, 65, 0, 0, 120, 66, + 0, 0, 65, 111, 110, 57, + 208, 22, 0, 0, 208, 22, + 0, 0, 0, 2, 255, 255, + 112, 22, 0, 0, 96, 0, + 0, 0, 3, 0, 60, 0, + 0, 0, 96, 0, 0, 0, + 96, 0, 6, 0, 36, 0, + 0, 0, 96, 0, 0, 0, + 0, 0, 1, 0, 1, 0, + 2, 0, 2, 0, 3, 0, + 3, 0, 5, 0, 4, 0, + 6, 0, 5, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 2, 0, 1, 0, 2, 0, + 3, 3, 3, 3, 0, 0, + 3, 0, 3, 0, 3, 0, + 0, 0, 0, 0, 1, 2, + 255, 255, 81, 0, 0, 5, + 6, 0, 15, 160, 0, 0, + 128, 191, 0, 0, 0, 192, + 18, 131, 128, 189, 115, 128, + 0, 191, 81, 0, 0, 5, + 7, 0, 15, 160, 0, 0, + 0, 192, 0, 0, 64, 192, + 0, 0, 128, 192, 0, 0, + 160, 192, 81, 0, 0, 5, + 8, 0, 15, 160, 0, 0, + 192, 192, 0, 0, 224, 192, + 0, 0, 0, 193, 0, 0, + 16, 193, 81, 0, 0, 5, + 9, 0, 15, 160, 0, 0, + 0, 63, 0, 0, 128, 63, + 0, 0, 128, 62, 0, 0, + 0, 192, 81, 0, 0, 5, + 10, 0, 15, 160, 0, 0, + 128, 65, 0, 0, 64, 193, + 0, 0, 96, 193, 0, 0, + 0, 0, 81, 0, 0, 5, + 11, 0, 15, 160, 0, 0, + 32, 193, 0, 0, 48, 193, + 0, 0, 64, 193, 0, 0, + 80, 193, 81, 0, 0, 5, + 12, 0, 15, 160, 154, 153, + 153, 62, 61, 10, 23, 63, + 174, 71, 225, 61, 0, 0, + 0, 0, 81, 0, 0, 5, + 13, 0, 15, 160, 0, 0, + 128, 191, 0, 0, 0, 128, + 0, 0, 0, 0, 0, 0, + 128, 63, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 15, 176, 31, 0, 0, 2, + 0, 0, 0, 128, 1, 0, + 7, 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, 31, 0, 0, 2, + 0, 0, 0, 144, 2, 8, + 15, 160, 31, 0, 0, 2, + 0, 0, 0, 144, 3, 8, + 15, 160, 31, 0, 0, 2, + 0, 0, 0, 144, 4, 8, + 15, 160, 31, 0, 0, 2, + 0, 0, 0, 144, 5, 8, + 15, 160, 1, 0, 0, 2, + 0, 0, 1, 128, 13, 0, + 170, 160, 1, 0, 0, 2, + 1, 0, 1, 128, 13, 0, + 170, 160, 1, 0, 0, 2, + 2, 0, 4, 128, 13, 0, + 170, 160, 1, 0, 0, 2, + 3, 0, 8, 128, 6, 0, + 0, 161, 66, 0, 0, 3, + 4, 0, 15, 128, 0, 0, + 228, 176, 2, 8, 228, 160, + 66, 0, 0, 3, 5, 0, + 15, 128, 0, 0, 228, 176, + 1, 8, 228, 160, 2, 0, + 0, 3, 5, 0, 1, 128, + 5, 0, 0, 128, 6, 0, + 170, 160, 2, 0, 0, 3, + 5, 0, 2, 128, 4, 0, + 0, 128, 6, 0, 255, 160, + 6, 0, 0, 2, 0, 0, + 8, 128, 1, 0, 170, 176, + 5, 0, 0, 3, 4, 0, + 3, 128, 0, 0, 255, 128, + 1, 0, 228, 176, 66, 0, + 0, 3, 6, 0, 15, 128, + 0, 0, 228, 176, 3, 8, + 228, 160, 66, 0, 0, 3, + 4, 0, 15, 128, 4, 0, + 228, 128, 4, 8, 228, 160, + 2, 0, 0, 3, 5, 0, + 4, 128, 6, 0, 0, 128, + 6, 0, 255, 160, 8, 0, + 0, 3, 3, 0, 1, 128, + 3, 0, 228, 160, 5, 0, + 228, 128, 8, 0, 0, 3, + 3, 0, 2, 128, 4, 0, + 228, 160, 5, 0, 228, 128, + 8, 0, 0, 3, 3, 0, + 4, 128, 5, 0, 228, 160, + 5, 0, 228, 128, 5, 0, + 0, 3, 3, 0, 15, 128, + 3, 0, 228, 128, 1, 0, + 0, 160, 5, 0, 0, 3, + 5, 0, 15, 128, 4, 0, + 0, 128, 3, 0, 228, 128, + 1, 0, 0, 2, 6, 0, + 3, 128, 0, 0, 235, 176, + 66, 0, 0, 3, 7, 0, + 15, 128, 0, 0, 228, 176, + 0, 8, 228, 160, 66, 0, + 0, 3, 6, 0, 15, 128, + 6, 0, 228, 128, 5, 8, + 228, 160, 5, 0, 0, 3, + 7, 0, 15, 128, 7, 0, + 228, 128, 1, 0, 0, 160, + 5, 0, 0, 3, 8, 0, + 15, 128, 4, 0, 0, 128, + 7, 0, 228, 128, 1, 0, + 0, 2, 9, 0, 3, 128, + 6, 0, 228, 160, 2, 0, + 0, 3, 10, 0, 15, 128, + 9, 0, 4, 128, 2, 0, + 144, 160, 5, 0, 0, 3, + 10, 0, 15, 128, 10, 0, + 228, 128, 10, 0, 228, 128, + 88, 0, 0, 4, 5, 0, + 15, 128, 10, 0, 0, 129, + 8, 0, 228, 128, 5, 0, + 228, 128, 88, 0, 0, 4, + 3, 0, 15, 128, 10, 0, + 0, 129, 7, 0, 228, 128, + 3, 0, 228, 128, 1, 0, + 0, 2, 7, 0, 8, 128, + 1, 0, 0, 160, 5, 0, + 0, 3, 8, 0, 15, 128, + 4, 0, 0, 128, 7, 0, + 228, 128, 88, 0, 0, 4, + 3, 0, 15, 128, 2, 0, + 0, 161, 7, 0, 228, 128, + 3, 0, 228, 128, 5, 0, + 0, 3, 4, 0, 15, 128, + 4, 0, 0, 128, 0, 0, + 228, 160, 88, 0, 0, 4, + 5, 0, 15, 128, 2, 0, + 0, 161, 8, 0, 228, 128, + 5, 0, 228, 128, 88, 0, + 0, 4, 7, 0, 3, 128, + 10, 0, 233, 129, 13, 0, + 0, 160, 13, 0, 85, 160, + 88, 0, 0, 4, 0, 0, + 8, 128, 10, 0, 0, 129, + 6, 0, 0, 160, 7, 0, + 0, 128, 88, 0, 0, 4, + 1, 0, 8, 128, 2, 0, + 85, 161, 9, 0, 0, 128, + 7, 0, 85, 128, 88, 0, + 0, 4, 0, 0, 8, 128, + 2, 0, 0, 161, 9, 0, + 0, 128, 0, 0, 255, 128, + 88, 0, 0, 4, 4, 0, + 15, 128, 0, 0, 255, 128, + 4, 0, 228, 128, 5, 0, + 228, 128, 88, 0, 0, 4, + 3, 0, 15, 128, 0, 0, + 255, 128, 0, 0, 228, 160, + 3, 0, 228, 128, 88, 0, + 0, 4, 3, 0, 15, 128, + 2, 0, 85, 161, 3, 0, + 228, 128, 4, 0, 228, 128, + 88, 0, 0, 4, 3, 0, + 15, 128, 1, 0, 255, 128, + 13, 0, 234, 160, 3, 0, + 228, 128, 6, 0, 0, 2, + 0, 0, 8, 128, 3, 0, + 255, 128, 5, 0, 0, 3, + 4, 0, 7, 128, 0, 0, + 255, 128, 3, 0, 228, 128, + 88, 0, 0, 4, 4, 0, + 7, 128, 2, 0, 255, 161, + 3, 0, 228, 128, 4, 0, + 228, 128, 2, 0, 0, 3, + 5, 0, 3, 128, 4, 0, + 233, 129, 4, 0, 228, 128, + 88, 0, 0, 4, 5, 0, + 12, 128, 5, 0, 0, 128, + 4, 0, 68, 128, 4, 0, + 20, 128, 11, 0, 0, 3, + 0, 0, 8, 128, 5, 0, + 170, 128, 4, 0, 170, 128, + 10, 0, 0, 3, 1, 0, + 8, 128, 4, 0, 170, 128, + 5, 0, 255, 128, 2, 0, + 0, 3, 7, 0, 8, 128, + 0, 0, 255, 128, 1, 0, + 255, 129, 6, 0, 0, 2, + 0, 0, 8, 128, 6, 0, + 255, 128, 5, 0, 0, 3, + 8, 0, 7, 128, 0, 0, + 255, 128, 6, 0, 228, 128, + 4, 0, 0, 4, 5, 0, + 12, 128, 6, 0, 100, 128, + 0, 0, 255, 128, 8, 0, + 132, 129, 5, 0, 0, 3, + 9, 0, 3, 128, 7, 0, + 255, 128, 5, 0, 238, 128, + 4, 0, 0, 4, 11, 0, + 15, 128, 6, 0, 129, 128, + 0, 0, 255, 128, 8, 0, + 88, 129, 6, 0, 0, 2, + 1, 0, 8, 128, 11, 0, + 0, 128, 5, 0, 0, 3, + 7, 0, 2, 128, 1, 0, + 255, 128, 9, 0, 0, 128, + 88, 0, 0, 4, 1, 0, + 6, 128, 11, 0, 170, 128, + 13, 0, 170, 160, 7, 0, + 220, 128, 5, 0, 0, 3, + 12, 0, 15, 128, 7, 0, + 255, 128, 11, 0, 228, 128, + 6, 0, 0, 2, 1, 0, + 8, 128, 5, 0, 255, 128, + 5, 0, 0, 3, 7, 0, + 1, 128, 1, 0, 255, 128, + 12, 0, 85, 128, 88, 0, + 0, 4, 2, 0, 3, 128, + 11, 0, 255, 128, 13, 0, + 170, 160, 7, 0, 236, 128, + 88, 0, 0, 4, 1, 0, + 7, 128, 5, 0, 170, 128, + 1, 0, 228, 128, 2, 0, + 228, 128, 6, 0, 0, 2, + 1, 0, 8, 128, 5, 0, + 170, 128, 5, 0, 0, 3, + 7, 0, 4, 128, 1, 0, + 255, 128, 12, 0, 0, 128, + 88, 0, 0, 4, 0, 0, + 6, 128, 11, 0, 85, 128, + 13, 0, 170, 160, 7, 0, + 248, 128, 88, 0, 0, 4, + 0, 0, 7, 128, 11, 0, + 255, 128, 0, 0, 228, 128, + 1, 0, 228, 128, 1, 0, + 0, 2, 1, 0, 2, 128, + 13, 0, 170, 160, 1, 0, + 0, 2, 2, 0, 2, 128, + 13, 0, 170, 160, 1, 0, + 0, 2, 10, 0, 4, 128, + 13, 0, 170, 160, 6, 0, + 0, 2, 1, 0, 8, 128, + 11, 0, 170, 128, 5, 0, + 0, 3, 7, 0, 2, 128, + 1, 0, 255, 128, 12, 0, + 255, 128, 88, 0, 0, 4, + 2, 0, 5, 128, 11, 0, + 0, 128, 13, 0, 170, 160, + 7, 0, 215, 128, 6, 0, + 0, 2, 1, 0, 8, 128, + 11, 0, 85, 128, 5, 0, + 0, 3, 7, 0, 1, 128, + 1, 0, 255, 128, 9, 0, + 85, 128, 88, 0, 0, 4, + 10, 0, 3, 128, 5, 0, + 170, 128, 13, 0, 170, 160, + 7, 0, 227, 128, 88, 0, + 0, 4, 2, 0, 7, 128, + 11, 0, 255, 128, 2, 0, + 228, 128, 10, 0, 228, 128, + 6, 0, 0, 2, 1, 0, + 8, 128, 11, 0, 255, 128, + 5, 0, 0, 3, 7, 0, + 4, 128, 1, 0, 255, 128, + 12, 0, 170, 128, 88, 0, + 0, 4, 1, 0, 5, 128, + 5, 0, 255, 128, 13, 0, + 170, 160, 7, 0, 246, 128, + 88, 0, 0, 4, 1, 0, + 7, 128, 5, 0, 170, 128, + 1, 0, 228, 128, 2, 0, + 228, 128, 88, 0, 0, 4, + 0, 0, 7, 128, 11, 0, + 0, 128, 0, 0, 228, 128, + 1, 0, 228, 128, 88, 0, + 0, 4, 1, 0, 3, 128, + 11, 0, 170, 128, 8, 0, + 228, 128, 8, 0, 225, 128, + 8, 0, 0, 3, 4, 0, + 8, 128, 12, 0, 228, 160, + 0, 0, 228, 128, 8, 0, + 0, 3, 8, 0, 8, 128, + 12, 0, 228, 160, 8, 0, + 228, 128, 2, 0, 0, 3, + 4, 0, 8, 128, 4, 0, + 255, 129, 8, 0, 255, 128, + 2, 0, 0, 3, 0, 0, + 7, 128, 0, 0, 228, 128, + 4, 0, 255, 128, 2, 0, + 0, 3, 4, 0, 8, 128, + 0, 0, 85, 129, 0, 0, + 0, 128, 88, 0, 0, 4, + 1, 0, 12, 128, 4, 0, + 255, 128, 0, 0, 20, 128, + 0, 0, 68, 128, 10, 0, + 0, 3, 4, 0, 8, 128, + 0, 0, 170, 128, 1, 0, + 170, 128, 11, 0, 0, 3, + 2, 0, 1, 128, 1, 0, + 255, 128, 0, 0, 170, 128, + 8, 0, 0, 3, 1, 0, + 4, 128, 12, 0, 228, 160, + 0, 0, 228, 128, 2, 0, + 0, 3, 1, 0, 8, 128, + 4, 0, 255, 129, 1, 0, + 170, 128, 6, 0, 0, 2, + 1, 0, 8, 128, 1, 0, + 255, 128, 2, 0, 0, 3, + 2, 0, 14, 128, 0, 0, + 144, 128, 1, 0, 170, 129, + 5, 0, 0, 3, 2, 0, + 14, 128, 1, 0, 170, 128, + 2, 0, 228, 128, 4, 0, + 0, 4, 2, 0, 14, 128, + 2, 0, 228, 128, 1, 0, + 255, 128, 1, 0, 170, 128, + 88, 0, 0, 4, 0, 0, + 7, 128, 4, 0, 255, 128, + 0, 0, 228, 128, 2, 0, + 249, 128, 2, 0, 0, 3, + 2, 0, 14, 128, 1, 0, + 170, 129, 0, 0, 144, 128, + 2, 0, 0, 3, 1, 0, + 8, 128, 1, 0, 170, 129, + 6, 0, 0, 161, 5, 0, + 0, 3, 2, 0, 14, 128, + 1, 0, 255, 128, 2, 0, + 228, 128, 2, 0, 0, 3, + 1, 0, 8, 128, 1, 0, + 170, 129, 2, 0, 0, 128, + 2, 0, 0, 3, 4, 0, + 8, 128, 2, 0, 0, 129, + 6, 0, 0, 161, 6, 0, + 0, 2, 1, 0, 8, 128, + 1, 0, 255, 128, 4, 0, + 0, 4, 2, 0, 7, 128, + 2, 0, 249, 128, 1, 0, + 255, 128, 1, 0, 170, 128, + 88, 0, 0, 4, 0, 0, + 7, 128, 4, 0, 255, 128, + 0, 0, 228, 128, 2, 0, + 228, 128, 1, 0, 0, 2, + 4, 0, 8, 128, 2, 0, + 170, 160, 2, 0, 0, 3, + 1, 0, 4, 128, 4, 0, + 255, 128, 10, 0, 170, 160, + 5, 0, 0, 3, 1, 0, + 4, 128, 1, 0, 170, 128, + 1, 0, 170, 128, 8, 0, + 0, 3, 1, 0, 8, 128, + 12, 0, 228, 160, 4, 0, + 228, 128, 2, 0, 0, 3, + 2, 0, 1, 128, 8, 0, + 255, 129, 1, 0, 255, 128, + 2, 0, 0, 3, 1, 0, + 8, 128, 1, 0, 255, 129, + 8, 0, 255, 128, 2, 0, + 0, 3, 2, 0, 14, 128, + 1, 0, 255, 128, 4, 0, + 144, 128, 4, 0, 0, 4, + 7, 0, 7, 128, 6, 0, + 228, 128, 0, 0, 255, 128, + 2, 0, 0, 128, 2, 0, + 0, 3, 1, 0, 8, 128, + 7, 0, 85, 129, 7, 0, + 0, 128, 88, 0, 0, 4, + 5, 0, 12, 128, 1, 0, + 255, 128, 7, 0, 20, 128, + 7, 0, 68, 128, 10, 0, + 0, 3, 1, 0, 8, 128, + 7, 0, 170, 128, 5, 0, + 170, 128, 11, 0, 0, 3, + 2, 0, 1, 128, 5, 0, + 255, 128, 7, 0, 170, 128, + 8, 0, 0, 3, 7, 0, + 8, 128, 12, 0, 228, 160, + 7, 0, 228, 128, 2, 0, + 0, 3, 5, 0, 4, 128, + 1, 0, 255, 129, 7, 0, + 255, 128, 6, 0, 0, 2, + 5, 0, 4, 128, 5, 0, + 170, 128, 2, 0, 0, 3, + 9, 0, 7, 128, 7, 0, + 255, 129, 7, 0, 228, 128, + 5, 0, 0, 3, 9, 0, + 7, 128, 7, 0, 255, 128, + 9, 0, 228, 128, 4, 0, + 0, 4, 9, 0, 7, 128, + 9, 0, 228, 128, 5, 0, + 170, 128, 7, 0, 255, 128, + 88, 0, 0, 4, 7, 0, + 7, 128, 1, 0, 255, 128, + 7, 0, 228, 128, 9, 0, + 228, 128, 2, 0, 0, 3, + 9, 0, 7, 128, 7, 0, + 255, 129, 7, 0, 228, 128, + 2, 0, 0, 3, 1, 0, + 8, 128, 7, 0, 255, 129, + 6, 0, 0, 161, 5, 0, + 0, 3, 9, 0, 7, 128, + 1, 0, 255, 128, 9, 0, + 228, 128, 2, 0, 0, 3, + 1, 0, 8, 128, 2, 0, + 0, 128, 7, 0, 255, 129, + 2, 0, 0, 3, 9, 0, + 8, 128, 2, 0, 0, 129, + 6, 0, 0, 161, 6, 0, + 0, 2, 1, 0, 8, 128, + 1, 0, 255, 128, 4, 0, + 0, 4, 9, 0, 7, 128, + 9, 0, 228, 128, 1, 0, + 255, 128, 7, 0, 255, 128, + 88, 0, 0, 4, 7, 0, + 7, 128, 9, 0, 255, 128, + 7, 0, 228, 128, 9, 0, + 228, 128, 88, 0, 0, 4, + 7, 0, 7, 128, 1, 0, + 170, 129, 7, 0, 228, 128, + 13, 0, 170, 160, 2, 0, + 0, 3, 7, 0, 8, 128, + 2, 0, 170, 129, 2, 0, + 85, 128, 88, 0, 0, 4, + 1, 0, 12, 128, 7, 0, + 255, 128, 2, 0, 100, 128, + 2, 0, 148, 128, 10, 0, + 0, 3, 7, 0, 8, 128, + 2, 0, 255, 128, 1, 0, + 170, 128, 11, 0, 0, 3, + 5, 0, 4, 128, 1, 0, + 255, 128, 2, 0, 255, 128, + 8, 0, 0, 3, 5, 0, + 8, 128, 12, 0, 228, 160, + 2, 0, 249, 128, 2, 0, + 0, 3, 1, 0, 4, 128, + 7, 0, 255, 129, 5, 0, + 255, 128, 6, 0, 0, 2, + 1, 0, 4, 128, 1, 0, + 170, 128, 2, 0, 0, 3, + 9, 0, 7, 128, 2, 0, + 249, 128, 5, 0, 255, 129, + 5, 0, 0, 3, 9, 0, + 7, 128, 5, 0, 255, 128, + 9, 0, 228, 128, 4, 0, + 0, 4, 9, 0, 7, 128, + 9, 0, 228, 128, 1, 0, + 170, 128, 5, 0, 255, 128, + 88, 0, 0, 4, 2, 0, + 7, 128, 7, 0, 255, 128, + 2, 0, 249, 128, 9, 0, + 228, 128, 2, 0, 0, 3, + 9, 0, 7, 128, 5, 0, + 255, 129, 2, 0, 228, 128, + 2, 0, 0, 3, 2, 0, + 8, 128, 5, 0, 255, 129, + 6, 0, 0, 161, 5, 0, + 0, 3, 9, 0, 7, 128, + 2, 0, 255, 128, 9, 0, + 228, 128, 2, 0, 0, 3, + 2, 0, 8, 128, 5, 0, + 255, 129, 5, 0, 170, 128, + 2, 0, 0, 3, 7, 0, + 8, 128, 5, 0, 170, 129, + 6, 0, 0, 161, 6, 0, + 0, 2, 2, 0, 8, 128, + 2, 0, 255, 128, 4, 0, + 0, 4, 9, 0, 7, 128, + 9, 0, 228, 128, 2, 0, + 255, 128, 5, 0, 255, 128, + 88, 0, 0, 4, 2, 0, + 7, 128, 7, 0, 255, 128, + 2, 0, 228, 128, 9, 0, + 228, 128, 2, 0, 0, 3, + 9, 0, 15, 128, 4, 0, + 255, 128, 11, 0, 228, 160, + 5, 0, 0, 3, 9, 0, + 15, 128, 9, 0, 228, 128, + 9, 0, 228, 128, 88, 0, + 0, 4, 2, 0, 7, 128, + 9, 0, 255, 129, 2, 0, + 228, 128, 7, 0, 228, 128, + 88, 0, 0, 4, 0, 0, + 7, 128, 9, 0, 170, 129, + 0, 0, 228, 128, 2, 0, + 228, 128, 2, 0, 0, 3, + 2, 0, 15, 128, 4, 0, + 96, 129, 4, 0, 137, 128, + 1, 0, 0, 2, 7, 0, + 2, 128, 13, 0, 170, 160, + 1, 0, 0, 2, 10, 0, + 2, 128, 13, 0, 170, 160, + 1, 0, 0, 2, 11, 0, + 4, 128, 13, 0, 170, 160, + 6, 0, 0, 2, 7, 0, + 8, 128, 2, 0, 170, 128, + 11, 0, 0, 3, 11, 0, + 8, 128, 1, 0, 0, 128, + 8, 0, 170, 128, 10, 0, + 0, 3, 5, 0, 4, 128, + 8, 0, 170, 128, 1, 0, + 85, 128, 2, 0, 0, 3, + 1, 0, 8, 128, 5, 0, + 170, 129, 11, 0, 255, 128, + 5, 0, 0, 3, 5, 0, + 12, 128, 1, 0, 255, 128, + 5, 0, 68, 128, 5, 0, + 0, 3, 1, 0, 1, 128, + 7, 0, 255, 128, 5, 0, + 255, 128, 88, 0, 0, 4, + 11, 0, 3, 128, 2, 0, + 85, 128, 13, 0, 170, 160, + 1, 0, 227, 128, 6, 0, + 0, 2, 5, 0, 8, 128, + 5, 0, 0, 128, 5, 0, + 0, 3, 12, 0, 15, 128, + 1, 0, 255, 128, 2, 0, + 228, 128, 5, 0, 0, 3, + 1, 0, 2, 128, 5, 0, + 255, 128, 12, 0, 255, 128, + 88, 0, 0, 4, 10, 0, + 5, 128, 2, 0, 0, 128, + 13, 0, 170, 160, 1, 0, + 215, 128, 88, 0, 0, 4, + 10, 0, 7, 128, 2, 0, + 255, 128, 10, 0, 228, 128, + 11, 0, 228, 128, 6, 0, + 0, 2, 5, 0, 8, 128, + 2, 0, 255, 128, 5, 0, + 0, 3, 1, 0, 4, 128, + 5, 0, 255, 128, 5, 0, + 170, 128, 88, 0, 0, 4, + 7, 0, 5, 128, 5, 0, + 85, 128, 13, 0, 170, 160, + 1, 0, 246, 128, 88, 0, + 0, 4, 7, 0, 7, 128, + 2, 0, 85, 128, 7, 0, + 228, 128, 10, 0, 228, 128, + 1, 0, 0, 2, 10, 0, + 1, 128, 13, 0, 170, 160, + 1, 0, 0, 2, 11, 0, + 1, 128, 13, 0, 170, 160, + 1, 0, 0, 2, 13, 0, + 4, 128, 13, 0, 170, 160, + 6, 0, 0, 2, 7, 0, + 8, 128, 2, 0, 0, 128, + 5, 0, 0, 3, 1, 0, + 2, 128, 7, 0, 255, 128, + 12, 0, 85, 128, 88, 0, + 0, 4, 11, 0, 6, 128, + 5, 0, 0, 128, 13, 0, + 170, 160, 1, 0, 220, 128, + 6, 0, 0, 2, 7, 0, + 8, 128, 5, 0, 85, 128, + 5, 0, 0, 3, 1, 0, + 1, 128, 7, 0, 255, 128, + 12, 0, 170, 128, 88, 0, + 0, 4, 13, 0, 3, 128, + 2, 0, 255, 128, 13, 0, + 170, 160, 1, 0, 236, 128, + 88, 0, 0, 4, 5, 0, + 7, 128, 2, 0, 85, 128, + 11, 0, 228, 128, 13, 0, + 228, 128, 6, 0, 0, 2, + 5, 0, 8, 128, 2, 0, + 85, 128, 5, 0, 0, 3, + 1, 0, 4, 128, 5, 0, + 255, 128, 12, 0, 0, 128, + 88, 0, 0, 4, 10, 0, + 6, 128, 2, 0, 170, 128, + 13, 0, 170, 160, 1, 0, + 248, 128, 88, 0, 0, 4, + 1, 0, 7, 128, 2, 0, + 255, 128, 10, 0, 228, 128, + 5, 0, 228, 128, 88, 0, + 0, 4, 1, 0, 7, 128, + 2, 0, 0, 128, 1, 0, + 228, 128, 7, 0, 228, 128, + 8, 0, 0, 3, 1, 0, + 8, 128, 12, 0, 228, 160, + 1, 0, 228, 128, 2, 0, + 0, 3, 1, 0, 8, 128, + 1, 0, 255, 129, 8, 0, + 255, 128, 2, 0, 0, 3, + 1, 0, 7, 128, 1, 0, + 255, 128, 1, 0, 228, 128, + 2, 0, 0, 3, 1, 0, + 8, 128, 1, 0, 85, 129, + 1, 0, 0, 128, 88, 0, + 0, 4, 2, 0, 3, 128, + 1, 0, 255, 128, 1, 0, + 225, 128, 1, 0, 228, 128, + 10, 0, 0, 3, 8, 0, + 8, 128, 1, 0, 170, 128, + 2, 0, 0, 128, 11, 0, + 0, 3, 5, 0, 1, 128, + 2, 0, 85, 128, 1, 0, + 170, 128, 8, 0, 0, 3, + 1, 0, 8, 128, 12, 0, + 228, 160, 1, 0, 228, 128, + 2, 0, 0, 3, 2, 0, + 1, 128, 8, 0, 255, 129, + 1, 0, 255, 128, 6, 0, + 0, 2, 2, 0, 1, 128, + 2, 0, 0, 128, 2, 0, + 0, 3, 2, 0, 14, 128, + 1, 0, 255, 129, 1, 0, + 144, 128, 5, 0, 0, 3, + 2, 0, 14, 128, 1, 0, + 255, 128, 2, 0, 228, 128, + 4, 0, 0, 4, 2, 0, + 7, 128, 2, 0, 249, 128, + 2, 0, 0, 128, 1, 0, + 255, 128, 88, 0, 0, 4, + 1, 0, 7, 128, 8, 0, + 255, 128, 1, 0, 228, 128, + 2, 0, 228, 128, 2, 0, + 0, 3, 2, 0, 7, 128, + 1, 0, 255, 129, 1, 0, + 228, 128, 2, 0, 0, 3, + 2, 0, 8, 128, 1, 0, + 255, 129, 6, 0, 0, 161, + 5, 0, 0, 3, 2, 0, + 7, 128, 2, 0, 255, 128, + 2, 0, 228, 128, 2, 0, + 0, 3, 2, 0, 8, 128, + 1, 0, 255, 129, 5, 0, + 0, 128, 2, 0, 0, 3, + 8, 0, 8, 128, 5, 0, + 0, 129, 6, 0, 0, 161, + 6, 0, 0, 2, 2, 0, + 8, 128, 2, 0, 255, 128, + 4, 0, 0, 4, 2, 0, + 7, 128, 2, 0, 228, 128, + 2, 0, 255, 128, 1, 0, + 255, 128, 88, 0, 0, 4, + 1, 0, 7, 128, 8, 0, + 255, 128, 1, 0, 228, 128, + 2, 0, 228, 128, 88, 0, + 0, 4, 0, 0, 7, 128, + 9, 0, 85, 129, 1, 0, + 228, 128, 0, 0, 228, 128, + 4, 0, 0, 4, 1, 0, + 7, 128, 6, 0, 228, 128, + 0, 0, 255, 128, 4, 0, + 228, 128, 5, 0, 0, 3, + 2, 0, 7, 128, 4, 0, + 228, 128, 8, 0, 228, 128, + 4, 0, 0, 4, 5, 0, + 7, 128, 2, 0, 228, 128, + 6, 0, 85, 160, 1, 0, + 228, 128, 4, 0, 0, 4, + 1, 0, 7, 128, 8, 0, + 228, 128, 4, 0, 228, 129, + 1, 0, 228, 128, 88, 0, + 0, 4, 0, 0, 7, 128, + 9, 0, 0, 129, 5, 0, + 228, 128, 0, 0, 228, 128, + 4, 0, 0, 4, 5, 0, + 7, 128, 6, 0, 228, 128, + 0, 0, 255, 128, 4, 0, + 228, 129, 35, 0, 0, 2, + 5, 0, 7, 128, 5, 0, + 228, 128, 2, 0, 0, 3, + 7, 0, 15, 128, 4, 0, + 255, 128, 8, 0, 228, 160, + 5, 0, 0, 3, 7, 0, + 15, 128, 7, 0, 228, 128, + 7, 0, 228, 128, 88, 0, + 0, 4, 0, 0, 7, 128, + 7, 0, 255, 129, 5, 0, + 228, 128, 0, 0, 228, 128, + 2, 0, 0, 3, 5, 0, + 3, 128, 4, 0, 233, 129, + 9, 0, 0, 160, 4, 0, + 0, 4, 9, 0, 7, 128, + 4, 0, 228, 128, 9, 0, + 255, 161, 9, 0, 85, 161, + 4, 0, 0, 4, 1, 0, + 8, 128, 6, 0, 170, 128, + 0, 0, 255, 129, 9, 0, + 170, 160, 4, 0, 0, 4, + 10, 0, 7, 128, 8, 0, + 228, 128, 10, 0, 0, 160, + 10, 0, 85, 160, 4, 0, + 0, 4, 10, 0, 7, 128, + 10, 0, 228, 128, 8, 0, + 228, 128, 7, 0, 170, 161, + 5, 0, 0, 3, 10, 0, + 7, 128, 8, 0, 228, 128, + 10, 0, 228, 128, 7, 0, + 0, 2, 2, 0, 8, 128, + 8, 0, 170, 128, 6, 0, + 0, 2, 2, 0, 8, 128, + 2, 0, 255, 128, 88, 0, + 0, 4, 1, 0, 8, 128, + 1, 0, 255, 128, 10, 0, + 170, 128, 2, 0, 255, 128, + 4, 0, 0, 4, 1, 0, + 8, 128, 6, 0, 170, 128, + 0, 0, 255, 129, 1, 0, + 255, 128, 4, 0, 0, 4, + 1, 0, 8, 128, 9, 0, + 170, 128, 1, 0, 255, 128, + 8, 0, 170, 128, 4, 0, + 0, 4, 11, 0, 7, 128, + 4, 0, 228, 128, 6, 0, + 85, 160, 6, 0, 0, 161, + 5, 0, 0, 3, 11, 0, + 7, 128, 8, 0, 228, 128, + 11, 0, 228, 128, 4, 0, + 0, 4, 12, 0, 15, 128, + 6, 0, 73, 128, 0, 0, + 255, 129, 9, 0, 165, 160, + 4, 0, 0, 4, 5, 0, + 12, 128, 11, 0, 148, 128, + 12, 0, 68, 129, 8, 0, + 148, 128, 88, 0, 0, 4, + 13, 0, 4, 128, 5, 0, + 85, 128, 5, 0, 255, 128, + 1, 0, 255, 128, 7, 0, + 0, 2, 1, 0, 8, 128, + 8, 0, 85, 128, 6, 0, + 0, 2, 1, 0, 8, 128, + 1, 0, 255, 128, 88, 0, + 0, 4, 1, 0, 8, 128, + 12, 0, 255, 128, 10, 0, + 85, 128, 1, 0, 255, 128, + 4, 0, 0, 4, 1, 0, + 8, 128, 6, 0, 85, 128, + 0, 0, 255, 129, 1, 0, + 255, 128, 4, 0, 0, 4, + 1, 0, 8, 128, 9, 0, + 85, 128, 1, 0, 255, 128, + 8, 0, 85, 128, 88, 0, + 0, 4, 13, 0, 2, 128, + 5, 0, 0, 128, 5, 0, + 170, 128, 1, 0, 255, 128, + 2, 0, 0, 3, 14, 0, + 15, 128, 4, 0, 36, 129, + 9, 0, 21, 160, 7, 0, + 0, 2, 1, 0, 8, 128, + 8, 0, 0, 128, 6, 0, + 0, 2, 1, 0, 8, 128, + 1, 0, 255, 128, 88, 0, + 0, 4, 1, 0, 8, 128, + 12, 0, 170, 128, 10, 0, + 0, 128, 1, 0, 255, 128, + 4, 0, 0, 4, 1, 0, + 8, 128, 6, 0, 0, 128, + 0, 0, 255, 129, 1, 0, + 255, 128, 4, 0, 0, 4, + 1, 0, 8, 128, 9, 0, + 0, 128, 1, 0, 255, 128, + 8, 0, 0, 128, 4, 0, + 0, 4, 9, 0, 15, 128, + 6, 0, 36, 128, 0, 0, + 255, 129, 9, 0, 64, 160, + 4, 0, 0, 4, 6, 0, + 7, 128, 6, 0, 228, 128, + 0, 0, 255, 128, 6, 0, + 0, 160, 5, 0, 0, 3, + 6, 0, 7, 128, 6, 0, + 228, 128, 6, 0, 228, 128, + 4, 0, 0, 4, 0, 0, + 8, 128, 11, 0, 0, 128, + 9, 0, 255, 129, 8, 0, + 0, 128, 88, 0, 0, 4, + 13, 0, 1, 128, 14, 0, + 255, 128, 0, 0, 255, 128, + 1, 0, 255, 128, 88, 0, + 0, 4, 0, 0, 7, 128, + 7, 0, 170, 129, 13, 0, + 228, 128, 0, 0, 228, 128, + 2, 0, 0, 3, 10, 0, + 7, 128, 8, 0, 228, 128, + 8, 0, 228, 128, 4, 0, + 0, 4, 11, 0, 7, 128, + 4, 0, 228, 128, 6, 0, + 85, 161, 10, 0, 228, 128, + 2, 0, 0, 3, 11, 0, + 7, 128, 11, 0, 228, 128, + 6, 0, 0, 160, 4, 0, + 0, 4, 13, 0, 7, 128, + 4, 0, 228, 128, 10, 0, + 228, 129, 11, 0, 228, 128, + 5, 0, 0, 3, 10, 0, + 7, 128, 4, 0, 228, 128, + 10, 0, 228, 128, 2, 0, + 0, 3, 15, 0, 7, 128, + 4, 0, 228, 128, 4, 0, + 228, 128, 5, 0, 0, 3, + 16, 0, 7, 128, 8, 0, + 228, 128, 15, 0, 228, 128, + 4, 0, 0, 4, 11, 0, + 7, 128, 15, 0, 228, 128, + 8, 0, 228, 129, 11, 0, + 228, 128, 88, 0, 0, 4, + 9, 0, 7, 128, 9, 0, + 228, 128, 10, 0, 228, 128, + 11, 0, 228, 128, 88, 0, + 0, 4, 5, 0, 6, 128, + 5, 0, 208, 128, 16, 0, + 228, 128, 13, 0, 228, 128, + 88, 0, 0, 4, 5, 0, + 1, 128, 14, 0, 255, 128, + 16, 0, 0, 128, 13, 0, + 0, 128, 88, 0, 0, 4, + 0, 0, 7, 128, 7, 0, + 85, 129, 5, 0, 228, 128, + 0, 0, 228, 128, 6, 0, + 0, 2, 0, 0, 8, 128, + 4, 0, 0, 128, 4, 0, + 0, 4, 0, 0, 8, 128, + 9, 0, 255, 128, 0, 0, + 255, 129, 6, 0, 0, 161, + 11, 0, 0, 3, 1, 0, + 8, 128, 0, 0, 255, 128, + 13, 0, 170, 160, 5, 0, + 0, 3, 5, 0, 7, 128, + 4, 0, 228, 128, 4, 0, + 228, 128, 88, 0, 0, 4, + 0, 0, 8, 128, 5, 0, + 0, 129, 13, 0, 170, 160, + 1, 0, 255, 128, 88, 0, + 0, 4, 10, 0, 1, 128, + 6, 0, 0, 129, 6, 0, + 0, 161, 0, 0, 255, 128, + 6, 0, 0, 2, 0, 0, + 8, 128, 4, 0, 85, 128, + 4, 0, 0, 4, 0, 0, + 8, 128, 12, 0, 0, 128, + 0, 0, 255, 129, 6, 0, + 0, 161, 11, 0, 0, 3, + 1, 0, 8, 128, 0, 0, + 255, 128, 13, 0, 170, 160, + 88, 0, 0, 4, 0, 0, + 8, 128, 5, 0, 85, 129, + 13, 0, 170, 160, 1, 0, + 255, 128, 88, 0, 0, 4, + 10, 0, 2, 128, 6, 0, + 85, 129, 6, 0, 0, 161, + 0, 0, 255, 128, 6, 0, + 0, 2, 0, 0, 8, 128, + 4, 0, 170, 128, 4, 0, + 0, 4, 0, 0, 8, 128, + 12, 0, 85, 128, 0, 0, + 255, 129, 6, 0, 0, 161, + 11, 0, 0, 3, 1, 0, + 8, 128, 0, 0, 255, 128, + 13, 0, 170, 160, 88, 0, + 0, 4, 0, 0, 8, 128, + 5, 0, 170, 129, 13, 0, + 170, 160, 1, 0, 255, 128, + 88, 0, 0, 4, 10, 0, + 4, 128, 6, 0, 170, 129, + 6, 0, 0, 161, 0, 0, + 255, 128, 88, 0, 0, 4, + 0, 0, 7, 128, 7, 0, + 0, 129, 10, 0, 228, 128, + 0, 0, 228, 128, 2, 0, + 0, 3, 5, 0, 15, 128, + 4, 0, 255, 128, 7, 0, + 228, 160, 5, 0, 0, 3, + 5, 0, 15, 128, 5, 0, + 228, 128, 5, 0, 228, 128, + 2, 0, 0, 3, 6, 0, + 7, 128, 4, 0, 228, 128, + 6, 0, 0, 160, 5, 0, + 0, 3, 6, 0, 7, 128, + 6, 0, 228, 128, 6, 0, + 228, 128, 6, 0, 0, 2, + 0, 0, 8, 128, 14, 0, + 0, 128, 5, 0, 0, 3, + 0, 0, 8, 128, 0, 0, + 255, 128, 8, 0, 0, 128, + 10, 0, 0, 3, 1, 0, + 8, 128, 0, 0, 255, 128, + 6, 0, 0, 161, 88, 0, + 0, 4, 0, 0, 8, 128, + 6, 0, 0, 129, 6, 0, + 0, 161, 1, 0, 255, 128, + 5, 0, 0, 3, 7, 0, + 7, 128, 8, 0, 228, 128, + 8, 0, 228, 128, 88, 0, + 0, 4, 10, 0, 1, 128, + 7, 0, 0, 129, 13, 0, + 170, 160, 0, 0, 255, 128, + 6, 0, 0, 2, 0, 0, + 8, 128, 14, 0, 85, 128, + 6, 0, 0, 2, 1, 0, + 8, 128, 14, 0, 170, 128, + 5, 0, 0, 3, 1, 0, + 8, 128, 1, 0, 255, 128, + 8, 0, 170, 128, 10, 0, + 0, 3, 2, 0, 8, 128, + 1, 0, 255, 128, 6, 0, + 0, 161, 88, 0, 0, 4, + 1, 0, 8, 128, 6, 0, + 170, 129, 6, 0, 0, 161, + 2, 0, 255, 128, 88, 0, + 0, 4, 10, 0, 4, 128, + 7, 0, 170, 129, 13, 0, + 170, 160, 1, 0, 255, 128, + 5, 0, 0, 3, 0, 0, + 8, 128, 0, 0, 255, 128, + 8, 0, 85, 128, 10, 0, + 0, 3, 1, 0, 8, 128, + 0, 0, 255, 128, 6, 0, + 0, 161, 88, 0, 0, 4, + 0, 0, 8, 128, 6, 0, + 85, 129, 6, 0, 0, 161, + 1, 0, 255, 128, 88, 0, + 0, 4, 10, 0, 2, 128, + 7, 0, 85, 129, 13, 0, + 170, 160, 0, 0, 255, 128, + 88, 0, 0, 4, 0, 0, + 7, 128, 5, 0, 255, 129, + 10, 0, 228, 128, 0, 0, + 228, 128, 11, 0, 0, 3, + 6, 0, 7, 128, 8, 0, + 228, 128, 4, 0, 228, 128, + 10, 0, 0, 3, 7, 0, + 7, 128, 4, 0, 228, 128, + 8, 0, 228, 128, 88, 0, + 0, 4, 0, 0, 7, 128, + 5, 0, 170, 129, 6, 0, + 228, 128, 0, 0, 228, 128, + 88, 0, 0, 4, 0, 0, + 7, 128, 5, 0, 85, 129, + 7, 0, 228, 128, 0, 0, + 228, 128, 88, 0, 0, 4, + 0, 0, 7, 128, 5, 0, + 0, 129, 9, 0, 228, 128, + 0, 0, 228, 128, 88, 0, + 0, 4, 0, 0, 7, 128, + 10, 0, 255, 129, 1, 0, + 228, 128, 0, 0, 228, 128, + 88, 0, 0, 4, 0, 0, + 7, 128, 2, 0, 170, 161, + 2, 0, 228, 128, 0, 0, + 228, 128, 18, 0, 0, 4, + 1, 0, 7, 128, 6, 0, + 255, 128, 0, 0, 228, 128, + 4, 0, 228, 128, 5, 0, + 0, 3, 1, 0, 8, 128, + 6, 0, 255, 128, 6, 0, + 255, 128, 5, 0, 0, 3, + 0, 0, 7, 128, 3, 0, + 255, 128, 1, 0, 228, 128, + 5, 0, 0, 3, 1, 0, + 1, 128, 3, 0, 255, 128, + 3, 0, 255, 128, 1, 0, + 0, 2, 0, 0, 8, 128, + 3, 0, 255, 128, 88, 0, + 0, 4, 0, 0, 15, 128, + 1, 0, 0, 129, 13, 0, + 170, 160, 0, 0, 228, 128, + 88, 0, 0, 4, 0, 0, + 15, 128, 1, 0, 255, 129, + 3, 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, 184, 38, + 0, 0, 64, 0, 0, 0, + 174, 9, 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, 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, 88, 24, + 0, 4, 0, 112, 16, 0, + 2, 0, 0, 0, 85, 85, + 0, 0, 88, 24, 0, 4, + 0, 112, 16, 0, 3, 0, + 0, 0, 85, 85, 0, 0, + 88, 24, 0, 4, 0, 112, + 16, 0, 5, 0, 0, 0, + 85, 85, 0, 0, 88, 24, + 0, 4, 0, 112, 16, 0, + 6, 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, 98, 16, 0, 3, + 114, 16, 16, 0, 2, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 104, 0, 0, 2, + 22, 0, 0, 0, 69, 0, + 0, 9, 242, 0, 16, 0, + 0, 0, 0, 0, 230, 26, + 16, 0, 1, 0, 0, 0, + 70, 126, 16, 0, 6, 0, + 0, 0, 0, 96, 16, 0, + 0, 0, 0, 0, 31, 0, + 0, 4, 26, 128, 32, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 31, 0, 0, 4, + 10, 128, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 69, 0, 0, 9, 242, 0, + 16, 0, 1, 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, + 56, 0, 0, 8, 114, 0, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 6, 128, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 54, 0, 0, 6, + 130, 0, 16, 0, 1, 0, + 0, 0, 10, 128, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 54, 0, 0, 5, + 18, 0, 16, 0, 2, 0, + 0, 0, 1, 64, 0, 0, + 255, 255, 255, 255, 18, 0, + 0, 1, 32, 0, 0, 8, + 34, 0, 16, 0, 2, 0, + 0, 0, 1, 64, 0, 0, + 1, 0, 0, 0, 10, 128, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 31, 0, + 4, 3, 26, 0, 16, 0, + 2, 0, 0, 0, 69, 0, + 0, 9, 242, 0, 16, 0, + 3, 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, 56, 0, + 0, 8, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 14, + 16, 0, 3, 0, 0, 0, + 6, 128, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 54, 0, 0, 5, 18, 0, + 16, 0, 2, 0, 0, 0, + 1, 64, 0, 0, 255, 255, + 255, 255, 18, 0, 0, 1, + 32, 0, 0, 8, 18, 0, + 16, 0, 2, 0, 0, 0, + 1, 64, 0, 0, 2, 0, + 0, 0, 10, 128, 32, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 31, 0, 4, 3, + 10, 0, 16, 0, 2, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 3, 0, + 0, 0, 70, 16, 16, 0, + 1, 0, 0, 0, 70, 126, + 16, 0, 1, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 7, + 18, 0, 16, 0, 3, 0, + 0, 0, 10, 0, 16, 0, + 3, 0, 0, 0, 1, 64, + 0, 0, 18, 131, 128, 189, + 69, 0, 0, 9, 242, 0, + 16, 0, 4, 0, 0, 0, + 70, 16, 16, 0, 1, 0, + 0, 0, 70, 126, 16, 0, + 2, 0, 0, 0, 0, 96, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 34, 0, + 16, 0, 3, 0, 0, 0, + 10, 0, 16, 0, 4, 0, + 0, 0, 1, 64, 0, 0, + 115, 128, 0, 191, 69, 0, + 0, 9, 242, 0, 16, 0, + 4, 0, 0, 0, 70, 16, + 16, 0, 1, 0, 0, 0, + 70, 126, 16, 0, 3, 0, + 0, 0, 0, 96, 16, 0, + 0, 0, 0, 0, 0, 0, + 0, 7, 66, 0, 16, 0, + 3, 0, 0, 0, 10, 0, + 16, 0, 4, 0, 0, 0, + 1, 64, 0, 0, 115, 128, + 0, 191, 16, 0, 0, 8, + 18, 0, 16, 0, 4, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 70, 2, 16, 0, + 3, 0, 0, 0, 16, 0, + 0, 8, 34, 0, 16, 0, + 4, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 70, 2, + 16, 0, 3, 0, 0, 0, + 16, 0, 0, 8, 66, 0, + 16, 0, 4, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 70, 2, 16, 0, 3, 0, + 0, 0, 54, 0, 0, 5, + 130, 0, 16, 0, 4, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 128, 63, 56, 0, + 0, 8, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 14, + 16, 0, 4, 0, 0, 0, + 6, 128, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 21, 0, 0, 1, 21, 0, + 0, 1, 21, 0, 0, 1, + 55, 0, 0, 10, 242, 0, + 16, 0, 1, 0, 0, 0, + 6, 0, 16, 0, 2, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 18, 0, 16, 0, + 2, 0, 0, 0, 1, 64, + 0, 0, 255, 255, 255, 255, + 18, 0, 0, 1, 32, 0, + 0, 8, 18, 0, 16, 0, + 2, 0, 0, 0, 1, 64, + 0, 0, 1, 0, 0, 0, + 26, 128, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 31, 0, 4, 3, 10, 0, + 16, 0, 2, 0, 0, 0, + 31, 0, 0, 4, 10, 128, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 69, 0, + 0, 9, 242, 0, 16, 0, + 3, 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, 56, 0, + 0, 8, 114, 0, 16, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 3, 0, 0, 0, + 6, 128, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 14, 0, 0, 7, 98, 0, + 16, 0, 2, 0, 0, 0, + 6, 17, 16, 0, 2, 0, + 0, 0, 166, 26, 16, 0, + 2, 0, 0, 0, 69, 0, + 0, 9, 242, 0, 16, 0, + 4, 0, 0, 0, 150, 5, + 16, 0, 2, 0, 0, 0, + 70, 126, 16, 0, 5, 0, + 0, 0, 0, 96, 16, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 130, 0, 16, 0, + 3, 0, 0, 0, 10, 128, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 56, 0, + 0, 7, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 14, + 16, 0, 3, 0, 0, 0, + 6, 0, 16, 0, 4, 0, + 0, 0, 54, 0, 0, 5, + 34, 0, 16, 0, 2, 0, + 0, 0, 1, 64, 0, 0, + 255, 255, 255, 255, 18, 0, + 0, 1, 32, 0, 0, 8, + 66, 0, 16, 0, 2, 0, + 0, 0, 1, 64, 0, 0, + 1, 0, 0, 0, 10, 128, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 31, 0, + 4, 3, 42, 0, 16, 0, + 2, 0, 0, 0, 14, 0, + 0, 7, 194, 0, 16, 0, + 2, 0, 0, 0, 6, 20, + 16, 0, 2, 0, 0, 0, + 166, 26, 16, 0, 2, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 3, 0, + 0, 0, 230, 10, 16, 0, + 2, 0, 0, 0, 70, 126, + 16, 0, 5, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 4, 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, 56, 0, 0, 8, + 242, 0, 16, 0, 4, 0, + 0, 0, 70, 14, 16, 0, + 4, 0, 0, 0, 6, 128, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 56, 0, + 0, 7, 242, 0, 16, 0, + 1, 0, 0, 0, 6, 0, + 16, 0, 3, 0, 0, 0, + 70, 14, 16, 0, 4, 0, + 0, 0, 54, 0, 0, 5, + 34, 0, 16, 0, 2, 0, + 0, 0, 1, 64, 0, 0, + 255, 255, 255, 255, 18, 0, + 0, 1, 32, 0, 0, 8, + 34, 0, 16, 0, 2, 0, + 0, 0, 1, 64, 0, 0, + 2, 0, 0, 0, 10, 128, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 31, 0, + 4, 3, 26, 0, 16, 0, + 2, 0, 0, 0, 14, 0, + 0, 7, 194, 0, 16, 0, + 2, 0, 0, 0, 6, 20, + 16, 0, 2, 0, 0, 0, + 166, 26, 16, 0, 2, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 3, 0, + 0, 0, 230, 10, 16, 0, + 2, 0, 0, 0, 70, 126, + 16, 0, 5, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 4, 0, + 0, 0, 70, 16, 16, 0, + 1, 0, 0, 0, 70, 126, + 16, 0, 1, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 7, + 18, 0, 16, 0, 4, 0, + 0, 0, 10, 0, 16, 0, + 4, 0, 0, 0, 1, 64, + 0, 0, 18, 131, 128, 189, + 69, 0, 0, 9, 242, 0, + 16, 0, 5, 0, 0, 0, + 70, 16, 16, 0, 1, 0, + 0, 0, 70, 126, 16, 0, + 2, 0, 0, 0, 0, 96, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 34, 0, + 16, 0, 4, 0, 0, 0, + 10, 0, 16, 0, 5, 0, + 0, 0, 1, 64, 0, 0, + 115, 128, 0, 191, 69, 0, + 0, 9, 242, 0, 16, 0, + 5, 0, 0, 0, 70, 16, + 16, 0, 1, 0, 0, 0, + 70, 126, 16, 0, 3, 0, + 0, 0, 0, 96, 16, 0, + 0, 0, 0, 0, 0, 0, + 0, 7, 66, 0, 16, 0, + 4, 0, 0, 0, 10, 0, + 16, 0, 5, 0, 0, 0, + 1, 64, 0, 0, 115, 128, + 0, 191, 16, 0, 0, 8, + 18, 0, 16, 0, 5, 0, + 0, 0, 70, 130, 32, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 70, 2, 16, 0, + 4, 0, 0, 0, 16, 0, + 0, 8, 34, 0, 16, 0, + 5, 0, 0, 0, 70, 130, + 32, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 70, 2, + 16, 0, 4, 0, 0, 0, + 16, 0, 0, 8, 66, 0, + 16, 0, 5, 0, 0, 0, + 70, 130, 32, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 70, 2, 16, 0, 4, 0, + 0, 0, 54, 0, 0, 5, + 130, 0, 16, 0, 5, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 128, 63, 56, 0, + 0, 8, 242, 0, 16, 0, + 4, 0, 0, 0, 70, 14, + 16, 0, 5, 0, 0, 0, + 6, 128, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 56, 0, 0, 7, 242, 0, + 16, 0, 1, 0, 0, 0, + 6, 0, 16, 0, 3, 0, + 0, 0, 70, 14, 16, 0, + 4, 0, 0, 0, 21, 0, + 0, 1, 21, 0, 0, 1, + 21, 0, 0, 1, 31, 0, + 0, 3, 26, 0, 16, 0, + 2, 0, 0, 0, 14, 0, + 0, 7, 98, 0, 16, 0, + 2, 0, 0, 0, 6, 17, + 16, 0, 2, 0, 0, 0, + 166, 26, 16, 0, 2, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 3, 0, + 0, 0, 150, 5, 16, 0, + 2, 0, 0, 0, 70, 126, + 16, 0, 5, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 8, + 242, 0, 16, 0, 1, 0, + 0, 0, 6, 0, 16, 0, + 3, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 21, 0, + 0, 1, 21, 0, 0, 1, + 21, 0, 0, 1, 55, 0, + 0, 12, 242, 0, 16, 0, + 1, 0, 0, 0, 6, 0, + 16, 0, 2, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 128, 63, 24, 0, + 0, 7, 18, 0, 16, 0, + 2, 0, 0, 0, 58, 0, + 16, 0, 0, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 0, 0, 31, 0, 4, 3, + 10, 0, 16, 0, 2, 0, + 0, 0, 54, 0, 0, 5, + 242, 32, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 62, 0, + 0, 1, 21, 0, 0, 1, + 24, 0, 0, 7, 18, 0, + 16, 0, 2, 0, 0, 0, + 58, 0, 16, 0, 1, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 0, 0, 31, 0, + 4, 3, 10, 0, 16, 0, + 2, 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, 14, 0, 0, 7, + 114, 0, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 246, 15, + 16, 0, 0, 0, 0, 0, + 14, 0, 0, 7, 114, 0, + 16, 0, 2, 0, 0, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 246, 15, 16, 0, + 1, 0, 0, 0, 55, 0, + 0, 10, 114, 0, 16, 0, + 1, 0, 0, 0, 246, 143, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 70, 2, + 16, 0, 2, 0, 0, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 2, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 0, 0, 0, 7, 114, 0, + 16, 0, 3, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 10, 114, 0, 16, 0, + 4, 0, 0, 0, 70, 2, + 16, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 3, 0, + 0, 0, 29, 0, 0, 10, + 242, 0, 16, 0, 5, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 0, 63, 0, 0, + 0, 63, 0, 0, 0, 63, + 0, 0, 128, 62, 70, 2, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 114, 0, + 16, 0, 6, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 7, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 6, 0, + 0, 0, 0, 0, 0, 7, + 114, 0, 16, 0, 8, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 50, 0, 0, 12, 114, 0, + 16, 0, 9, 0, 0, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 0, 64, 0, 0, + 0, 64, 0, 0, 0, 64, + 0, 0, 0, 0, 70, 2, + 16, 0, 6, 0, 0, 0, + 0, 0, 0, 10, 114, 0, + 16, 0, 9, 0, 0, 0, + 70, 2, 16, 0, 9, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 128, 191, 0, 0, + 128, 191, 0, 0, 128, 191, + 0, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 10, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 8, 0, + 0, 0, 50, 0, 0, 10, + 114, 0, 16, 0, 8, 0, + 0, 0, 70, 2, 16, 128, + 65, 0, 0, 0, 8, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 9, 0, 0, 0, + 55, 0, 0, 9, 114, 0, + 16, 0, 5, 0, 0, 0, + 70, 2, 16, 0, 5, 0, + 0, 0, 70, 2, 16, 0, + 7, 0, 0, 0, 70, 2, + 16, 0, 8, 0, 0, 0, + 51, 0, 0, 7, 114, 0, + 16, 0, 7, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 32, 0, + 0, 11, 242, 0, 16, 0, + 8, 0, 0, 0, 2, 64, + 0, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 3, 0, + 0, 0, 4, 0, 0, 0, + 166, 138, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 52, 0, 0, 7, 114, 0, + 16, 0, 11, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 24, 0, + 0, 10, 242, 0, 16, 0, + 12, 0, 0, 0, 70, 2, + 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, 24, 0, 0, 10, + 242, 0, 16, 0, 13, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 2, 64, + 0, 0, 0, 0, 128, 63, + 0, 0, 128, 63, 0, 0, + 128, 63, 0, 0, 0, 0, + 0, 0, 0, 11, 114, 0, + 16, 0, 14, 0, 0, 0, + 70, 2, 16, 128, 65, 0, + 0, 0, 1, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 128, 63, 0, 0, 128, 63, + 0, 0, 128, 63, 0, 0, + 0, 0, 14, 0, 0, 7, + 114, 0, 16, 0, 14, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 14, 0, 0, 0, + 51, 0, 0, 10, 114, 0, + 16, 0, 14, 0, 0, 0, + 70, 2, 16, 0, 14, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 128, 63, 0, 0, + 128, 63, 0, 0, 128, 63, + 0, 0, 0, 0, 55, 0, + 0, 12, 114, 0, 16, 0, + 13, 0, 0, 0, 70, 2, + 16, 0, 13, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 128, 63, 0, 0, 128, 63, + 0, 0, 128, 63, 0, 0, + 0, 0, 70, 2, 16, 0, + 14, 0, 0, 0, 55, 0, + 0, 12, 114, 0, 16, 0, + 12, 0, 0, 0, 70, 2, + 16, 0, 12, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 13, 0, 0, 0, 0, 0, + 0, 11, 114, 0, 16, 0, + 13, 0, 0, 0, 70, 2, + 16, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 2, 64, + 0, 0, 0, 0, 128, 63, + 0, 0, 128, 63, 0, 0, + 128, 63, 0, 0, 0, 0, + 14, 0, 0, 7, 114, 0, + 16, 0, 14, 0, 0, 0, + 70, 2, 16, 0, 13, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 51, 0, + 0, 10, 114, 0, 16, 0, + 14, 0, 0, 0, 70, 2, + 16, 0, 14, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 128, 63, 0, 0, 128, 63, + 0, 0, 128, 63, 0, 0, + 0, 0, 0, 0, 0, 11, + 114, 0, 16, 0, 14, 0, + 0, 0, 70, 2, 16, 128, + 65, 0, 0, 0, 14, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 128, 63, 0, 0, + 128, 63, 0, 0, 128, 63, + 0, 0, 0, 0, 55, 0, + 0, 9, 130, 0, 16, 0, + 2, 0, 0, 0, 58, 0, + 16, 0, 13, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 14, 0, 0, 0, 55, 0, + 0, 9, 18, 0, 16, 0, + 15, 0, 0, 0, 58, 0, + 16, 0, 12, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 128, 63, 58, 0, 16, 0, + 2, 0, 0, 0, 24, 0, + 0, 10, 146, 0, 16, 0, + 14, 0, 0, 0, 86, 9, + 16, 0, 0, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 128, 63, 24, 0, 0, 10, + 50, 0, 16, 0, 16, 0, + 0, 0, 150, 5, 16, 0, + 1, 0, 0, 0, 2, 64, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 55, 0, 0, 12, 98, 0, + 16, 0, 14, 0, 0, 0, + 6, 1, 16, 0, 16, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 6, + 16, 0, 14, 0, 0, 0, + 55, 0, 0, 12, 98, 0, + 16, 0, 15, 0, 0, 0, + 6, 3, 16, 0, 14, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 0, 0, 0, 0, + 128, 63, 0, 0, 128, 63, + 0, 0, 0, 0, 86, 6, + 16, 0, 14, 0, 0, 0, + 29, 0, 0, 10, 114, 0, + 16, 0, 14, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 0, 63, 0, 0, 0, 63, + 0, 0, 0, 63, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 10, 114, 0, 16, 0, + 6, 0, 0, 0, 70, 2, + 16, 128, 65, 0, 0, 0, + 1, 0, 0, 0, 70, 2, + 16, 0, 6, 0, 0, 0, + 70, 2, 16, 0, 9, 0, + 0, 0, 55, 0, 0, 9, + 114, 0, 16, 0, 6, 0, + 0, 0, 70, 2, 16, 0, + 14, 0, 0, 0, 70, 2, + 16, 0, 10, 0, 0, 0, + 70, 2, 16, 0, 6, 0, + 0, 0, 32, 0, 0, 11, + 242, 0, 16, 0, 9, 0, + 0, 0, 2, 64, 0, 0, + 5, 0, 0, 0, 6, 0, + 0, 0, 7, 0, 0, 0, + 8, 0, 0, 0, 166, 138, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 50, 0, + 0, 16, 114, 0, 16, 0, + 10, 0, 0, 0, 70, 2, + 16, 128, 65, 0, 0, 0, + 1, 0, 0, 0, 2, 64, + 0, 0, 0, 0, 0, 64, + 0, 0, 0, 64, 0, 0, + 0, 64, 0, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 128, 63, 0, 0, 128, 63, + 0, 0, 128, 63, 0, 0, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 10, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 10, 0, 0, 0, + 50, 0, 0, 10, 114, 0, + 16, 0, 10, 0, 0, 0, + 70, 2, 16, 128, 65, 0, + 0, 0, 10, 0, 0, 0, + 70, 2, 16, 0, 13, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 15, 114, 0, 16, 0, + 13, 0, 0, 0, 70, 2, + 16, 0, 1, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 0, 64, 0, 0, 0, 64, + 0, 0, 0, 64, 0, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 128, 191, 0, 0, + 128, 191, 0, 0, 128, 191, + 0, 0, 0, 0, 50, 0, + 0, 15, 114, 0, 16, 0, + 16, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 128, 65, 0, 0, 128, 65, + 0, 0, 128, 65, 0, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 64, 193, 0, 0, + 64, 193, 0, 0, 64, 193, + 0, 0, 0, 0, 50, 0, + 0, 12, 114, 0, 16, 0, + 16, 0, 0, 0, 70, 2, + 16, 0, 16, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 128, 64, 0, 0, + 128, 64, 0, 0, 128, 64, + 0, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 16, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 16, 0, + 0, 0, 75, 0, 0, 5, + 114, 0, 16, 0, 17, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 55, 0, + 0, 9, 130, 0, 16, 0, + 2, 0, 0, 0, 58, 0, + 16, 0, 5, 0, 0, 0, + 10, 0, 16, 0, 16, 0, + 0, 0, 10, 0, 16, 0, + 17, 0, 0, 0, 0, 0, + 0, 8, 130, 0, 16, 0, + 2, 0, 0, 0, 10, 0, + 16, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 58, 0, + 16, 0, 2, 0, 0, 0, + 50, 0, 0, 9, 130, 0, + 16, 0, 2, 0, 0, 0, + 10, 0, 16, 0, 13, 0, + 0, 0, 58, 0, 16, 0, + 2, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 55, 0, 0, 9, 18, 0, + 16, 0, 18, 0, 0, 0, + 10, 0, 16, 0, 14, 0, + 0, 0, 10, 0, 16, 0, + 10, 0, 0, 0, 58, 0, + 16, 0, 2, 0, 0, 0, + 29, 0, 0, 10, 146, 0, + 16, 0, 10, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 128, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 128, 62, 86, 9, 16, 0, + 0, 0, 0, 0, 55, 0, + 0, 9, 146, 0, 16, 0, + 10, 0, 0, 0, 6, 12, + 16, 0, 10, 0, 0, 0, + 86, 9, 16, 0, 16, 0, + 0, 0, 86, 9, 16, 0, + 17, 0, 0, 0, 0, 0, + 0, 8, 146, 0, 16, 0, + 10, 0, 0, 0, 86, 9, + 16, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 6, 12, + 16, 0, 10, 0, 0, 0, + 50, 0, 0, 9, 146, 0, + 16, 0, 10, 0, 0, 0, + 86, 9, 16, 0, 13, 0, + 0, 0, 6, 12, 16, 0, + 10, 0, 0, 0, 86, 9, + 16, 0, 0, 0, 0, 0, + 55, 0, 0, 9, 98, 0, + 16, 0, 18, 0, 0, 0, + 86, 6, 16, 0, 14, 0, + 0, 0, 86, 6, 16, 0, + 10, 0, 0, 0, 6, 3, + 16, 0, 10, 0, 0, 0, + 0, 0, 0, 8, 114, 0, + 16, 0, 10, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 128, + 65, 0, 0, 0, 1, 0, + 0, 0, 50, 0, 0, 13, + 114, 0, 16, 0, 3, 0, + 0, 0, 70, 2, 16, 128, + 65, 0, 0, 0, 2, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 0, 64, 0, 0, + 0, 64, 0, 0, 0, 64, + 0, 0, 0, 0, 70, 2, + 16, 0, 3, 0, 0, 0, + 52, 0, 0, 7, 130, 0, + 16, 0, 2, 0, 0, 0, + 26, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 52, 0, + 0, 7, 130, 0, 16, 0, + 2, 0, 0, 0, 42, 0, + 16, 0, 0, 0, 0, 0, + 58, 0, 16, 0, 2, 0, + 0, 0, 51, 0, 0, 7, + 130, 0, 16, 0, 3, 0, + 0, 0, 26, 0, 16, 0, + 0, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 51, 0, 0, 7, 130, 0, + 16, 0, 3, 0, 0, 0, + 42, 0, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 3, 0, 0, 0, 0, 0, + 0, 8, 130, 0, 16, 0, + 13, 0, 0, 0, 58, 0, + 16, 0, 2, 0, 0, 0, + 58, 0, 16, 128, 65, 0, + 0, 0, 3, 0, 0, 0, + 29, 0, 0, 7, 130, 0, + 16, 0, 2, 0, 0, 0, + 26, 0, 16, 0, 1, 0, + 0, 0, 10, 0, 16, 0, + 1, 0, 0, 0, 31, 0, + 4, 3, 58, 0, 16, 0, + 2, 0, 0, 0, 49, 0, + 0, 7, 114, 0, 16, 0, + 14, 0, 0, 0, 6, 2, + 16, 0, 1, 0, 0, 0, + 102, 9, 16, 0, 1, 0, + 0, 0, 0, 0, 0, 8, + 242, 0, 16, 0, 16, 0, + 0, 0, 6, 10, 16, 128, + 65, 0, 0, 0, 1, 0, + 0, 0, 150, 4, 16, 0, + 1, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 17, 0, 0, 0, 246, 15, + 16, 0, 13, 0, 0, 0, + 70, 2, 16, 0, 16, 0, + 0, 0, 14, 0, 0, 7, + 114, 0, 16, 0, 13, 0, + 0, 0, 70, 2, 16, 0, + 17, 0, 0, 0, 22, 7, + 16, 0, 16, 0, 0, 0, + 1, 0, 0, 7, 98, 0, + 16, 0, 16, 0, 0, 0, + 6, 3, 16, 0, 13, 0, + 0, 0, 6, 0, 16, 0, + 14, 0, 0, 0, 29, 0, + 0, 7, 146, 0, 16, 0, + 14, 0, 0, 0, 166, 10, + 16, 0, 1, 0, 0, 0, + 86, 1, 16, 0, 1, 0, + 0, 0, 1, 0, 0, 7, + 98, 0, 16, 0, 17, 0, + 0, 0, 246, 13, 16, 0, + 13, 0, 0, 0, 86, 5, + 16, 0, 14, 0, 0, 0, + 1, 0, 0, 7, 50, 0, + 16, 0, 19, 0, 0, 0, + 230, 10, 16, 0, 13, 0, + 0, 0, 166, 10, 16, 0, + 14, 0, 0, 0, 54, 0, + 0, 5, 18, 0, 16, 0, + 17, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 0, 0, + 54, 0, 0, 5, 66, 0, + 16, 0, 19, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 0, 0, 55, 0, 0, 9, + 226, 0, 16, 0, 14, 0, + 0, 0, 246, 15, 16, 0, + 14, 0, 0, 0, 6, 9, + 16, 0, 17, 0, 0, 0, + 6, 9, 16, 0, 19, 0, + 0, 0, 54, 0, 0, 5, + 18, 0, 16, 0, 16, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 0, 0, 55, 0, + 0, 9, 114, 0, 16, 0, + 14, 0, 0, 0, 6, 0, + 16, 0, 14, 0, 0, 0, + 70, 2, 16, 0, 16, 0, + 0, 0, 150, 7, 16, 0, + 14, 0, 0, 0, 18, 0, + 0, 1, 49, 0, 0, 7, + 114, 0, 16, 0, 16, 0, + 0, 0, 86, 6, 16, 0, + 1, 0, 0, 0, 38, 8, + 16, 0, 1, 0, 0, 0, + 0, 0, 0, 8, 242, 0, + 16, 0, 17, 0, 0, 0, + 86, 10, 16, 128, 65, 0, + 0, 0, 1, 0, 0, 0, + 134, 1, 16, 0, 1, 0, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 19, 0, + 0, 0, 246, 15, 16, 0, + 13, 0, 0, 0, 70, 2, + 16, 0, 17, 0, 0, 0, + 14, 0, 0, 7, 114, 0, + 16, 0, 13, 0, 0, 0, + 70, 2, 16, 0, 19, 0, + 0, 0, 22, 7, 16, 0, + 17, 0, 0, 0, 1, 0, + 0, 7, 82, 0, 16, 0, + 17, 0, 0, 0, 6, 3, + 16, 0, 13, 0, 0, 0, + 6, 0, 16, 0, 16, 0, + 0, 0, 29, 0, 0, 7, + 146, 0, 16, 0, 16, 0, + 0, 0, 166, 10, 16, 0, + 1, 0, 0, 0, 6, 4, + 16, 0, 1, 0, 0, 0, + 1, 0, 0, 7, 82, 0, + 16, 0, 19, 0, 0, 0, + 246, 13, 16, 0, 13, 0, + 0, 0, 86, 5, 16, 0, + 16, 0, 0, 0, 1, 0, + 0, 7, 50, 0, 16, 0, + 13, 0, 0, 0, 182, 15, + 16, 0, 13, 0, 0, 0, + 166, 10, 16, 0, 16, 0, + 0, 0, 54, 0, 0, 5, + 34, 0, 16, 0, 19, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 66, 0, 16, 0, + 13, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 0, 0, + 55, 0, 0, 9, 114, 0, + 16, 0, 13, 0, 0, 0, + 246, 15, 16, 0, 16, 0, + 0, 0, 70, 2, 16, 0, + 19, 0, 0, 0, 70, 2, + 16, 0, 13, 0, 0, 0, + 54, 0, 0, 5, 34, 0, + 16, 0, 17, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 0, 0, 55, 0, 0, 9, + 114, 0, 16, 0, 14, 0, + 0, 0, 6, 0, 16, 0, + 16, 0, 0, 0, 70, 2, + 16, 0, 17, 0, 0, 0, + 70, 2, 16, 0, 13, 0, + 0, 0, 21, 0, 0, 1, + 16, 0, 0, 10, 130, 0, + 16, 0, 2, 0, 0, 0, + 2, 64, 0, 0, 154, 153, + 153, 62, 61, 10, 23, 63, + 174, 71, 225, 61, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 16, 0, + 0, 10, 130, 0, 16, 0, + 3, 0, 0, 0, 2, 64, + 0, 0, 154, 153, 153, 62, + 61, 10, 23, 63, 174, 71, + 225, 61, 0, 0, 0, 0, + 70, 2, 16, 0, 14, 0, + 0, 0, 0, 0, 0, 8, + 130, 0, 16, 0, 3, 0, + 0, 0, 58, 0, 16, 0, + 2, 0, 0, 0, 58, 0, + 16, 128, 65, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 7, 114, 0, 16, 0, + 13, 0, 0, 0, 246, 15, + 16, 0, 3, 0, 0, 0, + 70, 2, 16, 0, 14, 0, + 0, 0, 16, 0, 0, 10, + 130, 0, 16, 0, 3, 0, + 0, 0, 2, 64, 0, 0, + 154, 153, 153, 62, 61, 10, + 23, 63, 174, 71, 225, 61, + 0, 0, 0, 0, 70, 2, + 16, 0, 13, 0, 0, 0, + 51, 0, 0, 7, 130, 0, + 16, 0, 4, 0, 0, 0, + 26, 0, 16, 0, 13, 0, + 0, 0, 10, 0, 16, 0, + 13, 0, 0, 0, 51, 0, + 0, 7, 130, 0, 16, 0, + 4, 0, 0, 0, 42, 0, + 16, 0, 13, 0, 0, 0, + 58, 0, 16, 0, 4, 0, + 0, 0, 52, 0, 0, 7, + 130, 0, 16, 0, 5, 0, + 0, 0, 26, 0, 16, 0, + 13, 0, 0, 0, 10, 0, + 16, 0, 13, 0, 0, 0, + 52, 0, 0, 7, 130, 0, + 16, 0, 5, 0, 0, 0, + 42, 0, 16, 0, 13, 0, + 0, 0, 58, 0, 16, 0, + 5, 0, 0, 0, 49, 0, + 0, 7, 130, 0, 16, 0, + 6, 0, 0, 0, 58, 0, + 16, 0, 4, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 8, + 114, 0, 16, 0, 14, 0, + 0, 0, 246, 15, 16, 128, + 65, 0, 0, 0, 3, 0, + 0, 0, 70, 2, 16, 0, + 13, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 14, 0, 0, 0, 246, 15, + 16, 0, 3, 0, 0, 0, + 70, 2, 16, 0, 14, 0, + 0, 0, 0, 0, 0, 8, + 130, 0, 16, 0, 4, 0, + 0, 0, 58, 0, 16, 0, + 3, 0, 0, 0, 58, 0, + 16, 128, 65, 0, 0, 0, + 4, 0, 0, 0, 14, 0, + 0, 7, 114, 0, 16, 0, + 14, 0, 0, 0, 70, 2, + 16, 0, 14, 0, 0, 0, + 246, 15, 16, 0, 4, 0, + 0, 0, 0, 0, 0, 7, + 114, 0, 16, 0, 14, 0, + 0, 0, 246, 15, 16, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 14, 0, 0, 0, + 55, 0, 0, 9, 114, 0, + 16, 0, 13, 0, 0, 0, + 246, 15, 16, 0, 6, 0, + 0, 0, 70, 2, 16, 0, + 14, 0, 0, 0, 70, 2, + 16, 0, 13, 0, 0, 0, + 49, 0, 0, 7, 130, 0, + 16, 0, 4, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 128, 63, 58, 0, 16, 0, + 5, 0, 0, 0, 0, 0, + 0, 8, 114, 0, 16, 0, + 14, 0, 0, 0, 246, 15, + 16, 128, 65, 0, 0, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 13, 0, 0, 0, + 0, 0, 0, 8, 130, 0, + 16, 0, 6, 0, 0, 0, + 58, 0, 16, 128, 65, 0, + 0, 0, 3, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 128, 63, 56, 0, 0, 7, + 114, 0, 16, 0, 14, 0, + 0, 0, 246, 15, 16, 0, + 6, 0, 0, 0, 70, 2, + 16, 0, 14, 0, 0, 0, + 0, 0, 0, 8, 130, 0, + 16, 0, 5, 0, 0, 0, + 58, 0, 16, 128, 65, 0, + 0, 0, 3, 0, 0, 0, + 58, 0, 16, 0, 5, 0, + 0, 0, 14, 0, 0, 7, + 114, 0, 16, 0, 14, 0, + 0, 0, 70, 2, 16, 0, + 14, 0, 0, 0, 246, 15, + 16, 0, 5, 0, 0, 0, + 0, 0, 0, 7, 114, 0, + 16, 0, 14, 0, 0, 0, + 246, 15, 16, 0, 3, 0, + 0, 0, 70, 2, 16, 0, + 14, 0, 0, 0, 55, 0, + 0, 9, 114, 0, 16, 0, + 13, 0, 0, 0, 246, 15, + 16, 0, 4, 0, 0, 0, + 70, 2, 16, 0, 14, 0, + 0, 0, 70, 2, 16, 0, + 13, 0, 0, 0, 32, 0, + 0, 11, 242, 0, 16, 0, + 14, 0, 0, 0, 2, 64, + 0, 0, 9, 0, 0, 0, + 10, 0, 0, 0, 11, 0, + 0, 0, 12, 0, 0, 0, + 166, 138, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 52, 0, 0, 7, 130, 0, + 16, 0, 3, 0, 0, 0, + 26, 0, 16, 0, 1, 0, + 0, 0, 10, 0, 16, 0, + 1, 0, 0, 0, 52, 0, + 0, 7, 130, 0, 16, 0, + 3, 0, 0, 0, 42, 0, + 16, 0, 1, 0, 0, 0, + 58, 0, 16, 0, 3, 0, + 0, 0, 51, 0, 0, 7, + 130, 0, 16, 0, 4, 0, + 0, 0, 26, 0, 16, 0, + 1, 0, 0, 0, 10, 0, + 16, 0, 1, 0, 0, 0, + 51, 0, 0, 7, 130, 0, + 16, 0, 4, 0, 0, 0, + 42, 0, 16, 0, 1, 0, + 0, 0, 58, 0, 16, 0, + 4, 0, 0, 0, 0, 0, + 0, 8, 130, 0, 16, 0, + 16, 0, 0, 0, 58, 0, + 16, 0, 3, 0, 0, 0, + 58, 0, 16, 128, 65, 0, + 0, 0, 4, 0, 0, 0, + 29, 0, 0, 7, 130, 0, + 16, 0, 3, 0, 0, 0, + 26, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 31, 0, + 4, 3, 58, 0, 16, 0, + 3, 0, 0, 0, 49, 0, + 0, 7, 114, 0, 16, 0, + 17, 0, 0, 0, 6, 2, + 16, 0, 0, 0, 0, 0, + 102, 9, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 8, + 242, 0, 16, 0, 19, 0, + 0, 0, 6, 10, 16, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 150, 4, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 20, 0, 0, 0, 246, 15, + 16, 0, 16, 0, 0, 0, + 70, 2, 16, 0, 19, 0, + 0, 0, 14, 0, 0, 7, + 114, 0, 16, 0, 16, 0, + 0, 0, 70, 2, 16, 0, + 20, 0, 0, 0, 22, 7, + 16, 0, 19, 0, 0, 0, + 1, 0, 0, 7, 98, 0, + 16, 0, 19, 0, 0, 0, + 6, 3, 16, 0, 16, 0, + 0, 0, 6, 0, 16, 0, + 17, 0, 0, 0, 29, 0, + 0, 7, 146, 0, 16, 0, + 17, 0, 0, 0, 166, 10, + 16, 0, 0, 0, 0, 0, + 86, 1, 16, 0, 0, 0, + 0, 0, 1, 0, 0, 7, + 98, 0, 16, 0, 20, 0, + 0, 0, 246, 13, 16, 0, + 16, 0, 0, 0, 86, 5, + 16, 0, 17, 0, 0, 0, + 1, 0, 0, 7, 50, 0, + 16, 0, 21, 0, 0, 0, + 230, 10, 16, 0, 16, 0, + 0, 0, 166, 10, 16, 0, + 17, 0, 0, 0, 54, 0, + 0, 5, 18, 0, 16, 0, + 20, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 0, 0, + 54, 0, 0, 5, 66, 0, + 16, 0, 21, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 0, 0, 55, 0, 0, 9, + 226, 0, 16, 0, 17, 0, + 0, 0, 246, 15, 16, 0, + 17, 0, 0, 0, 6, 9, + 16, 0, 20, 0, 0, 0, + 6, 9, 16, 0, 21, 0, + 0, 0, 54, 0, 0, 5, + 18, 0, 16, 0, 19, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 0, 0, 55, 0, + 0, 9, 114, 0, 16, 0, + 17, 0, 0, 0, 6, 0, + 16, 0, 17, 0, 0, 0, + 70, 2, 16, 0, 19, 0, + 0, 0, 150, 7, 16, 0, + 17, 0, 0, 0, 18, 0, + 0, 1, 49, 0, 0, 7, + 114, 0, 16, 0, 19, 0, + 0, 0, 86, 6, 16, 0, + 0, 0, 0, 0, 38, 8, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 242, 0, + 16, 0, 20, 0, 0, 0, + 86, 10, 16, 128, 65, 0, + 0, 0, 0, 0, 0, 0, + 134, 1, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 7, + 114, 0, 16, 0, 21, 0, + 0, 0, 246, 15, 16, 0, + 16, 0, 0, 0, 70, 2, + 16, 0, 20, 0, 0, 0, + 14, 0, 0, 7, 114, 0, + 16, 0, 16, 0, 0, 0, + 70, 2, 16, 0, 21, 0, + 0, 0, 22, 7, 16, 0, + 20, 0, 0, 0, 1, 0, + 0, 7, 82, 0, 16, 0, + 20, 0, 0, 0, 6, 3, + 16, 0, 16, 0, 0, 0, + 6, 0, 16, 0, 19, 0, + 0, 0, 29, 0, 0, 7, + 146, 0, 16, 0, 19, 0, + 0, 0, 166, 10, 16, 0, + 0, 0, 0, 0, 6, 4, + 16, 0, 0, 0, 0, 0, + 1, 0, 0, 7, 82, 0, + 16, 0, 21, 0, 0, 0, + 246, 13, 16, 0, 16, 0, + 0, 0, 86, 5, 16, 0, + 19, 0, 0, 0, 1, 0, + 0, 7, 50, 0, 16, 0, + 16, 0, 0, 0, 182, 15, + 16, 0, 16, 0, 0, 0, + 166, 10, 16, 0, 19, 0, + 0, 0, 54, 0, 0, 5, + 34, 0, 16, 0, 21, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 5, 66, 0, 16, 0, + 16, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 0, 0, + 55, 0, 0, 9, 114, 0, + 16, 0, 16, 0, 0, 0, + 246, 15, 16, 0, 19, 0, + 0, 0, 70, 2, 16, 0, + 21, 0, 0, 0, 70, 2, + 16, 0, 16, 0, 0, 0, + 54, 0, 0, 5, 34, 0, + 16, 0, 20, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 0, 0, 55, 0, 0, 9, + 114, 0, 16, 0, 17, 0, + 0, 0, 6, 0, 16, 0, + 19, 0, 0, 0, 70, 2, + 16, 0, 20, 0, 0, 0, + 70, 2, 16, 0, 16, 0, + 0, 0, 21, 0, 0, 1, + 16, 0, 0, 10, 130, 0, + 16, 0, 3, 0, 0, 0, + 2, 64, 0, 0, 154, 153, + 153, 62, 61, 10, 23, 63, + 174, 71, 225, 61, 0, 0, + 0, 0, 70, 2, 16, 0, + 17, 0, 0, 0, 0, 0, + 0, 8, 130, 0, 16, 0, + 3, 0, 0, 0, 58, 0, + 16, 0, 2, 0, 0, 0, + 58, 0, 16, 128, 65, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 7, 114, 0, + 16, 0, 16, 0, 0, 0, + 246, 15, 16, 0, 3, 0, + 0, 0, 70, 2, 16, 0, + 17, 0, 0, 0, 16, 0, + 0, 10, 130, 0, 16, 0, + 3, 0, 0, 0, 2, 64, + 0, 0, 154, 153, 153, 62, + 61, 10, 23, 63, 174, 71, + 225, 61, 0, 0, 0, 0, + 70, 2, 16, 0, 16, 0, + 0, 0, 51, 0, 0, 7, + 130, 0, 16, 0, 4, 0, + 0, 0, 26, 0, 16, 0, + 16, 0, 0, 0, 10, 0, + 16, 0, 16, 0, 0, 0, + 51, 0, 0, 7, 130, 0, + 16, 0, 4, 0, 0, 0, + 42, 0, 16, 0, 16, 0, + 0, 0, 58, 0, 16, 0, + 4, 0, 0, 0, 52, 0, + 0, 7, 130, 0, 16, 0, + 5, 0, 0, 0, 26, 0, + 16, 0, 16, 0, 0, 0, + 10, 0, 16, 0, 16, 0, + 0, 0, 52, 0, 0, 7, + 130, 0, 16, 0, 5, 0, + 0, 0, 42, 0, 16, 0, + 16, 0, 0, 0, 58, 0, + 16, 0, 5, 0, 0, 0, + 49, 0, 0, 7, 130, 0, + 16, 0, 6, 0, 0, 0, + 58, 0, 16, 0, 4, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 8, 114, 0, 16, 0, + 17, 0, 0, 0, 246, 15, + 16, 128, 65, 0, 0, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 16, 0, 0, 0, + 56, 0, 0, 7, 114, 0, + 16, 0, 17, 0, 0, 0, + 246, 15, 16, 0, 3, 0, + 0, 0, 70, 2, 16, 0, + 17, 0, 0, 0, 0, 0, + 0, 8, 130, 0, 16, 0, + 4, 0, 0, 0, 58, 0, + 16, 0, 3, 0, 0, 0, + 58, 0, 16, 128, 65, 0, + 0, 0, 4, 0, 0, 0, + 14, 0, 0, 7, 114, 0, + 16, 0, 17, 0, 0, 0, + 70, 2, 16, 0, 17, 0, + 0, 0, 246, 15, 16, 0, + 4, 0, 0, 0, 0, 0, + 0, 7, 114, 0, 16, 0, + 17, 0, 0, 0, 246, 15, + 16, 0, 3, 0, 0, 0, + 70, 2, 16, 0, 17, 0, + 0, 0, 55, 0, 0, 9, + 114, 0, 16, 0, 16, 0, + 0, 0, 246, 15, 16, 0, + 6, 0, 0, 0, 70, 2, + 16, 0, 17, 0, 0, 0, + 70, 2, 16, 0, 16, 0, + 0, 0, 49, 0, 0, 7, + 130, 0, 16, 0, 4, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 128, 63, 58, 0, + 16, 0, 5, 0, 0, 0, + 0, 0, 0, 8, 114, 0, + 16, 0, 17, 0, 0, 0, + 246, 15, 16, 128, 65, 0, + 0, 0, 3, 0, 0, 0, + 70, 2, 16, 0, 16, 0, + 0, 0, 0, 0, 0, 8, + 130, 0, 16, 0, 6, 0, + 0, 0, 58, 0, 16, 128, + 65, 0, 0, 0, 3, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 128, 63, 56, 0, + 0, 7, 114, 0, 16, 0, + 17, 0, 0, 0, 246, 15, + 16, 0, 6, 0, 0, 0, + 70, 2, 16, 0, 17, 0, + 0, 0, 0, 0, 0, 8, + 130, 0, 16, 0, 5, 0, + 0, 0, 58, 0, 16, 128, + 65, 0, 0, 0, 3, 0, + 0, 0, 58, 0, 16, 0, + 5, 0, 0, 0, 14, 0, + 0, 7, 114, 0, 16, 0, + 17, 0, 0, 0, 70, 2, + 16, 0, 17, 0, 0, 0, + 246, 15, 16, 0, 5, 0, + 0, 0, 0, 0, 0, 7, + 114, 0, 16, 0, 17, 0, + 0, 0, 246, 15, 16, 0, + 3, 0, 0, 0, 70, 2, + 16, 0, 17, 0, 0, 0, + 55, 0, 0, 9, 114, 0, + 16, 0, 16, 0, 0, 0, + 246, 15, 16, 0, 4, 0, + 0, 0, 70, 2, 16, 0, + 17, 0, 0, 0, 70, 2, + 16, 0, 16, 0, 0, 0, + 16, 0, 0, 10, 130, 0, + 16, 0, 3, 0, 0, 0, + 2, 64, 0, 0, 154, 153, + 153, 62, 61, 10, 23, 63, + 174, 71, 225, 61, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 0, 0, + 0, 8, 130, 0, 16, 0, + 4, 0, 0, 0, 58, 0, + 16, 0, 2, 0, 0, 0, + 58, 0, 16, 128, 65, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 7, 114, 0, + 16, 0, 17, 0, 0, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 246, 15, 16, 0, + 4, 0, 0, 0, 16, 0, + 0, 10, 130, 0, 16, 0, + 4, 0, 0, 0, 2, 64, + 0, 0, 154, 153, 153, 62, + 61, 10, 23, 63, 174, 71, + 225, 61, 0, 0, 0, 0, + 70, 2, 16, 0, 17, 0, + 0, 0, 51, 0, 0, 7, + 130, 0, 16, 0, 5, 0, + 0, 0, 26, 0, 16, 0, + 17, 0, 0, 0, 10, 0, + 16, 0, 17, 0, 0, 0, + 51, 0, 0, 7, 130, 0, + 16, 0, 5, 0, 0, 0, + 42, 0, 16, 0, 17, 0, + 0, 0, 58, 0, 16, 0, + 5, 0, 0, 0, 52, 0, + 0, 7, 130, 0, 16, 0, + 6, 0, 0, 0, 26, 0, + 16, 0, 17, 0, 0, 0, + 10, 0, 16, 0, 17, 0, + 0, 0, 52, 0, 0, 7, + 130, 0, 16, 0, 6, 0, + 0, 0, 42, 0, 16, 0, + 17, 0, 0, 0, 58, 0, + 16, 0, 6, 0, 0, 0, + 49, 0, 0, 7, 130, 0, + 16, 0, 7, 0, 0, 0, + 58, 0, 16, 0, 5, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 8, 114, 0, 16, 0, + 19, 0, 0, 0, 246, 15, + 16, 128, 65, 0, 0, 0, + 4, 0, 0, 0, 70, 2, + 16, 0, 17, 0, 0, 0, + 56, 0, 0, 7, 114, 0, + 16, 0, 19, 0, 0, 0, + 246, 15, 16, 0, 4, 0, + 0, 0, 70, 2, 16, 0, + 19, 0, 0, 0, 0, 0, + 0, 8, 130, 0, 16, 0, + 5, 0, 0, 0, 58, 0, + 16, 0, 4, 0, 0, 0, + 58, 0, 16, 128, 65, 0, + 0, 0, 5, 0, 0, 0, + 14, 0, 0, 7, 114, 0, + 16, 0, 19, 0, 0, 0, + 70, 2, 16, 0, 19, 0, + 0, 0, 246, 15, 16, 0, + 5, 0, 0, 0, 0, 0, + 0, 7, 114, 0, 16, 0, + 19, 0, 0, 0, 246, 15, + 16, 0, 4, 0, 0, 0, + 70, 2, 16, 0, 19, 0, + 0, 0, 55, 0, 0, 9, + 114, 0, 16, 0, 17, 0, + 0, 0, 246, 15, 16, 0, + 7, 0, 0, 0, 70, 2, + 16, 0, 19, 0, 0, 0, + 70, 2, 16, 0, 17, 0, + 0, 0, 49, 0, 0, 7, + 130, 0, 16, 0, 5, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 128, 63, 58, 0, + 16, 0, 6, 0, 0, 0, + 0, 0, 0, 8, 114, 0, + 16, 0, 19, 0, 0, 0, + 246, 15, 16, 128, 65, 0, + 0, 0, 4, 0, 0, 0, + 70, 2, 16, 0, 17, 0, + 0, 0, 0, 0, 0, 8, + 130, 0, 16, 0, 7, 0, + 0, 0, 58, 0, 16, 128, + 65, 0, 0, 0, 4, 0, + 0, 0, 1, 64, 0, 0, + 0, 0, 128, 63, 56, 0, + 0, 7, 114, 0, 16, 0, + 19, 0, 0, 0, 246, 15, + 16, 0, 7, 0, 0, 0, + 70, 2, 16, 0, 19, 0, + 0, 0, 0, 0, 0, 8, + 130, 0, 16, 0, 6, 0, + 0, 0, 58, 0, 16, 128, + 65, 0, 0, 0, 4, 0, + 0, 0, 58, 0, 16, 0, + 6, 0, 0, 0, 14, 0, + 0, 7, 114, 0, 16, 0, + 19, 0, 0, 0, 70, 2, + 16, 0, 19, 0, 0, 0, + 246, 15, 16, 0, 6, 0, + 0, 0, 0, 0, 0, 7, + 114, 0, 16, 0, 19, 0, + 0, 0, 246, 15, 16, 0, + 4, 0, 0, 0, 70, 2, + 16, 0, 19, 0, 0, 0, + 55, 0, 0, 9, 114, 0, + 16, 0, 17, 0, 0, 0, + 246, 15, 16, 0, 5, 0, + 0, 0, 70, 2, 16, 0, + 19, 0, 0, 0, 70, 2, + 16, 0, 17, 0, 0, 0, + 32, 0, 0, 11, 50, 0, + 16, 0, 19, 0, 0, 0, + 2, 64, 0, 0, 13, 0, + 0, 0, 14, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 166, 138, 32, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 8, + 130, 0, 16, 0, 2, 0, + 0, 0, 58, 0, 16, 128, + 65, 0, 0, 0, 2, 0, + 0, 0, 58, 0, 16, 0, + 3, 0, 0, 0, 0, 0, + 0, 7, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 246, 15, 16, 0, 2, 0, + 0, 0, 16, 0, 0, 10, + 130, 0, 16, 0, 2, 0, + 0, 0, 2, 64, 0, 0, + 154, 153, 153, 62, 61, 10, + 23, 63, 174, 71, 225, 61, + 0, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 51, 0, 0, 7, 130, 0, + 16, 0, 3, 0, 0, 0, + 26, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 51, 0, + 0, 7, 130, 0, 16, 0, + 3, 0, 0, 0, 42, 0, + 16, 0, 0, 0, 0, 0, + 58, 0, 16, 0, 3, 0, + 0, 0, 52, 0, 0, 7, + 130, 0, 16, 0, 4, 0, + 0, 0, 26, 0, 16, 0, + 0, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 52, 0, 0, 7, 130, 0, + 16, 0, 4, 0, 0, 0, + 42, 0, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 4, 0, 0, 0, 49, 0, + 0, 7, 130, 0, 16, 0, + 5, 0, 0, 0, 58, 0, + 16, 0, 3, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 8, + 114, 0, 16, 0, 20, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 246, 15, + 16, 128, 65, 0, 0, 0, + 2, 0, 0, 0, 56, 0, + 0, 7, 114, 0, 16, 0, + 20, 0, 0, 0, 246, 15, + 16, 0, 2, 0, 0, 0, + 70, 2, 16, 0, 20, 0, + 0, 0, 0, 0, 0, 8, + 130, 0, 16, 0, 3, 0, + 0, 0, 58, 0, 16, 0, + 2, 0, 0, 0, 58, 0, + 16, 128, 65, 0, 0, 0, + 3, 0, 0, 0, 14, 0, + 0, 7, 114, 0, 16, 0, + 20, 0, 0, 0, 70, 2, + 16, 0, 20, 0, 0, 0, + 246, 15, 16, 0, 3, 0, + 0, 0, 0, 0, 0, 7, + 114, 0, 16, 0, 20, 0, + 0, 0, 246, 15, 16, 0, + 2, 0, 0, 0, 70, 2, + 16, 0, 20, 0, 0, 0, + 55, 0, 0, 9, 114, 0, + 16, 0, 0, 0, 0, 0, + 246, 15, 16, 0, 5, 0, + 0, 0, 70, 2, 16, 0, + 20, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 49, 0, 0, 7, 130, 0, + 16, 0, 3, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 128, 63, 58, 0, 16, 0, + 4, 0, 0, 0, 0, 0, + 0, 8, 114, 0, 16, 0, + 20, 0, 0, 0, 246, 15, + 16, 128, 65, 0, 0, 0, + 2, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 130, 0, + 16, 0, 5, 0, 0, 0, + 58, 0, 16, 128, 65, 0, + 0, 0, 2, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 128, 63, 56, 0, 0, 7, + 114, 0, 16, 0, 20, 0, + 0, 0, 246, 15, 16, 0, + 5, 0, 0, 0, 70, 2, + 16, 0, 20, 0, 0, 0, + 0, 0, 0, 8, 130, 0, + 16, 0, 4, 0, 0, 0, + 58, 0, 16, 128, 65, 0, + 0, 0, 2, 0, 0, 0, + 58, 0, 16, 0, 4, 0, + 0, 0, 14, 0, 0, 7, + 114, 0, 16, 0, 20, 0, + 0, 0, 70, 2, 16, 0, + 20, 0, 0, 0, 246, 15, + 16, 0, 4, 0, 0, 0, + 0, 0, 0, 7, 114, 0, + 16, 0, 20, 0, 0, 0, + 246, 15, 16, 0, 2, 0, + 0, 0, 70, 2, 16, 0, + 20, 0, 0, 0, 55, 0, + 0, 9, 114, 0, 16, 0, + 0, 0, 0, 0, 246, 15, + 16, 0, 3, 0, 0, 0, + 70, 2, 16, 0, 20, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 1, 0, + 0, 7, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 86, 5, 16, 0, 19, 0, + 0, 0, 55, 0, 0, 9, + 114, 0, 16, 0, 0, 0, + 0, 0, 6, 0, 16, 0, + 19, 0, 0, 0, 70, 2, + 16, 0, 17, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 55, 0, 0, 9, + 114, 0, 16, 0, 0, 0, + 0, 0, 246, 15, 16, 0, + 14, 0, 0, 0, 70, 2, + 16, 0, 16, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 55, 0, 0, 9, + 114, 0, 16, 0, 0, 0, + 0, 0, 166, 10, 16, 0, + 14, 0, 0, 0, 70, 2, + 16, 0, 13, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 55, 0, 0, 9, + 114, 0, 16, 0, 0, 0, + 0, 0, 86, 5, 16, 0, + 14, 0, 0, 0, 70, 2, + 16, 0, 3, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 55, 0, 0, 10, + 114, 0, 16, 0, 0, 0, + 0, 0, 6, 0, 16, 0, + 14, 0, 0, 0, 70, 2, + 16, 128, 129, 0, 0, 0, + 10, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 55, 0, 0, 9, 114, 0, + 16, 0, 0, 0, 0, 0, + 246, 15, 16, 0, 9, 0, + 0, 0, 70, 2, 16, 0, + 18, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 55, 0, 0, 9, 114, 0, + 16, 0, 0, 0, 0, 0, + 166, 10, 16, 0, 9, 0, + 0, 0, 70, 2, 16, 0, + 6, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 55, 0, 0, 9, 114, 0, + 16, 0, 0, 0, 0, 0, + 86, 5, 16, 0, 9, 0, + 0, 0, 70, 2, 16, 0, + 15, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 55, 0, 0, 9, 114, 0, + 16, 0, 0, 0, 0, 0, + 6, 0, 16, 0, 9, 0, + 0, 0, 70, 2, 16, 0, + 12, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 55, 0, 0, 9, 114, 0, + 16, 0, 0, 0, 0, 0, + 246, 15, 16, 0, 8, 0, + 0, 0, 70, 2, 16, 0, + 11, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 55, 0, 0, 9, 114, 0, + 16, 0, 0, 0, 0, 0, + 166, 10, 16, 0, 8, 0, + 0, 0, 70, 2, 16, 0, + 7, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 55, 0, 0, 9, 114, 0, + 16, 0, 0, 0, 0, 0, + 86, 5, 16, 0, 8, 0, + 0, 0, 70, 2, 16, 0, + 5, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 55, 0, 0, 9, 114, 0, + 16, 0, 0, 0, 0, 0, + 6, 0, 16, 0, 8, 0, + 0, 0, 70, 2, 16, 0, + 4, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 55, 0, 0, 10, 114, 0, + 16, 0, 0, 0, 0, 0, + 166, 138, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 2, 0, 0, 0, 0, 0, + 0, 8, 18, 0, 16, 0, + 2, 0, 0, 0, 58, 0, + 16, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 128, 63, + 56, 0, 0, 7, 114, 0, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 50, 0, + 0, 9, 114, 0, 16, 0, + 0, 0, 0, 0, 6, 0, + 16, 0, 2, 0, 0, 0, + 70, 2, 16, 0, 1, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 7, 114, 32, 16, 0, + 0, 0, 0, 0, 246, 15, + 16, 0, 1, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 54, 0, 0, 5, + 130, 32, 16, 0, 0, 0, + 0, 0, 58, 0, 16, 0, + 1, 0, 0, 0, 62, 0, + 0, 1, 83, 84, 65, 84, + 116, 0, 0, 0, 77, 1, + 0, 0, 22, 0, 0, 0, + 0, 0, 0, 0, 4, 0, + 0, 0, 191, 0, 0, 0, + 9, 0, 0, 0, 13, 0, + 0, 0, 13, 0, 0, 0, + 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 24, 0, 0, 0, + 45, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 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, 3, + 0, 0, 1, 0, 0, 0, + 80, 1, 0, 0, 8, 0, + 0, 0, 28, 0, 0, 0, + 0, 4, 255, 255, 0, 1, + 0, 0, 116, 3, 0, 0, + 28, 1, 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, 1, 0, + 0, 0, 37, 1, 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, + 13, 0, 0, 0, 42, 1, + 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, 13, 0, 0, 0, + 45, 1, 0, 0, 2, 0, + 0, 0, 5, 0, 0, 0, + 4, 0, 0, 0, 255, 255, + 255, 255, 2, 0, 0, 0, + 1, 0, 0, 0, 13, 0, + 0, 0, 49, 1, 0, 0, + 2, 0, 0, 0, 5, 0, + 0, 0, 4, 0, 0, 0, + 255, 255, 255, 255, 3, 0, + 0, 0, 1, 0, 0, 0, + 13, 0, 0, 0, 53, 1, + 0, 0, 2, 0, 0, 0, + 5, 0, 0, 0, 4, 0, + 0, 0, 255, 255, 255, 255, + 5, 0, 0, 0, 1, 0, + 0, 0, 13, 0, 0, 0, + 59, 1, 0, 0, 2, 0, + 0, 0, 5, 0, 0, 0, + 4, 0, 0, 0, 255, 255, + 255, 255, 6, 0, 0, 0, + 1, 0, 0, 0, 13, 0, + 0, 0, 69, 1, 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, 116, 82, 71, 66, 0, + 116, 89, 0, 116, 67, 98, + 0, 116, 67, 114, 0, 116, + 77, 97, 115, 107, 0, 116, + 66, 97, 99, 107, 100, 114, + 111, 112, 0, 36, 71, 108, + 111, 98, 97, 108, 115, 0, + 171, 171, 69, 1, 0, 0, + 11, 0, 0, 0, 104, 1, + 0, 0, 96, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 112, 2, 0, 0, + 0, 0, 0, 0, 16, 0, + 0, 0, 2, 0, 0, 0, + 124, 2, 0, 0, 0, 0, + 0, 0, 140, 2, 0, 0, + 16, 0, 0, 0, 4, 0, + 0, 0, 2, 0, 0, 0, + 156, 2, 0, 0, 0, 0, + 0, 0, 172, 2, 0, 0, + 32, 0, 0, 0, 16, 0, + 0, 0, 2, 0, 0, 0, + 188, 2, 0, 0, 0, 0, + 0, 0, 204, 2, 0, 0, + 48, 0, 0, 0, 44, 0, + 0, 0, 2, 0, 0, 0, + 220, 2, 0, 0, 0, 0, + 0, 0, 236, 2, 0, 0, + 96, 0, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, + 252, 2, 0, 0, 0, 0, + 0, 0, 12, 3, 0, 0, + 160, 0, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, + 252, 2, 0, 0, 0, 0, + 0, 0, 24, 3, 0, 0, + 224, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 124, 2, 0, 0, 0, 0, + 0, 0, 44, 3, 0, 0, + 240, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 60, 3, 0, 0, 0, 0, + 0, 0, 76, 3, 0, 0, + 0, 1, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 60, 3, 0, 0, 0, 0, + 0, 0, 87, 3, 0, 0, + 16, 1, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 60, 3, 0, 0, 0, 0, + 0, 0, 97, 3, 0, 0, + 32, 1, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, + 252, 2, 0, 0, 0, 0, + 0, 0, 102, 76, 97, 121, + 101, 114, 67, 111, 108, 111, + 114, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 102, 76, 97, 121, 101, 114, + 79, 112, 97, 99, 105, 116, + 121, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 105, 66, 108, 101, + 110, 100, 67, 111, 110, 102, + 105, 103, 0, 171, 171, 171, + 1, 0, 19, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 89, + 117, 118, 67, 111, 108, 111, + 114, 77, 97, 116, 114, 105, + 120, 0, 2, 0, 3, 0, + 3, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 76, 97, 121, 101, 114, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 0, 3, 0, + 3, 0, 4, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 80, 114, 111, + 106, 101, 99, 116, 105, 111, + 110, 0, 118, 82, 101, 110, + 100, 101, 114, 84, 97, 114, + 103, 101, 116, 79, 102, 102, + 115, 101, 116, 0, 118, 84, + 101, 120, 116, 117, 114, 101, + 67, 111, 111, 114, 100, 115, + 0, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 118, 76, 97, 121, 101, 114, + 81, 117, 97, 100, 0, 118, + 77, 97, 115, 107, 81, 117, + 97, 100, 0, 109, 66, 97, + 99, 107, 100, 114, 111, 112, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 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, 49, 48, 46, + 49, 0, 73, 83, 71, 78, + 128, 0, 0, 0, 4, 0, + 0, 0, 8, 0, 0, 0, + 104, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 116, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 3, 3, 0, 0, + 116, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 12, 12, 0, 0, + 116, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 7, 7, 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 +}; ShaderBytes sBlendShader = { BlendShader, sizeof(BlendShader) }; From 5202c134b29230d0dbecb71f73c388e845feece3 Mon Sep 17 00:00:00 2001 From: Miko Mynttinen Date: Mon, 20 Feb 2017 12:19:28 +0100 Subject: [PATCH 027/130] Bug 1323791 - Part 5: Add generalized DrawGeometry() method and use it with DrawQuad() and DrawTriangles() r=bas MozReview-Commit-ID: SKuxDDhdEE --HG-- extra : rebase_source : 4d323d81feaa61deddfa44fe40a5fa1aeed2a2a2 --- gfx/layers/d3d11/CompositorD3D11.cpp | 292 +++++++++++++++++++++++---- gfx/layers/d3d11/CompositorD3D11.h | 51 ++++- 2 files changed, 301 insertions(+), 42 deletions(-) diff --git a/gfx/layers/d3d11/CompositorD3D11.cpp b/gfx/layers/d3d11/CompositorD3D11.cpp index 2d21e666210f..688e673e2dac 100644 --- a/gfx/layers/d3d11/CompositorD3D11.cpp +++ b/gfx/layers/d3d11/CompositorD3D11.cpp @@ -47,6 +47,12 @@ struct Vertex float position[2]; }; +struct TexturedVertex +{ + float position[2]; + float texCoords[2]; +}; + // {1E4D7BEB-D8EC-4A0B-BF0A-63E6DE129425} static const GUID sDeviceAttachmentsD3D11 = { 0x1e4d7beb, 0xd8ec, 0x4a0b, { 0xbf, 0xa, 0x63, 0xe6, 0xde, 0x12, 0x94, 0x25 } }; @@ -56,6 +62,8 @@ static const GUID sLayerManagerCount = const FLOAT sBlendFactor[] = { 0, 0, 0, 0 }; +static const size_t kInitialMaximumTriangles = 64; + namespace TexSlot { static const int RGB = 0; static const int Y = 1; @@ -84,10 +92,17 @@ struct DeviceAttachmentsD3D11 PixelShaderArray; RefPtr mInputLayout; + RefPtr mDynamicInputLayout; + RefPtr mVertexBuffer; + RefPtr mDynamicVertexBuffer; VertexShaderArray mVSQuadShader; VertexShaderArray mVSQuadBlendShader; + + VertexShaderArray mVSDynamicShader; + VertexShaderArray mVSDynamicBlendShader; + PixelShaderArray mSolidColorShader; PixelShaderArray mRGBAShader; PixelShaderArray mRGBShader; @@ -99,6 +114,7 @@ struct DeviceAttachmentsD3D11 RefPtr mRasterizerState; RefPtr mLinearSamplerState; RefPtr mPointSamplerState; + RefPtr mPremulBlendState; RefPtr mNonPremulBlendState; RefPtr mComponentBlendState; @@ -150,6 +166,7 @@ CompositorD3D11::CompositorD3D11(CompositorBridgeParent* aParent, widget::Compos , mDisableSequenceForNextFrame(false) , mAllowPartialPresents(false) , mVerifyBuffersFailed(false) + , mMaximumTriangles(kInitialMaximumTriangles) { } @@ -178,6 +195,74 @@ CompositorD3D11::~CompositorD3D11() } } + +template +void +CompositorD3D11::SetVertexBuffer(ID3D11Buffer* aBuffer) +{ + UINT size = sizeof(VertexType); + UINT offset = 0; + mContext->IASetVertexBuffers(0, 1, &aBuffer, &size, &offset); +} + +bool +CompositorD3D11::SupportsLayerGeometry() const +{ + return gfxPrefs::D3D11LayerGeometry(); +} + +bool +CompositorD3D11::UpdateDynamicVertexBuffer(const nsTArray& aTriangles) +{ + HRESULT hr; + + // Resize the dynamic vertex buffer if needed. + if (aTriangles.Length() > mMaximumTriangles) { + CD3D11_BUFFER_DESC bufferDesc(sizeof(TexturedVertex) * aTriangles.Length() * 3, + D3D11_BIND_VERTEX_BUFFER, + D3D11_USAGE_DYNAMIC, + D3D11_CPU_ACCESS_WRITE); + + hr = mDevice->CreateBuffer(&bufferDesc, nullptr, + getter_AddRefs(mAttachments->mDynamicVertexBuffer)); + + if (Failed(hr, "resize dynamic vertex buffer")) { + return false; + } + + mMaximumTriangles = aTriangles.Length(); + } + + MOZ_ASSERT(mMaximumTriangles >= aTriangles.Length()); + + D3D11_MAPPED_SUBRESOURCE resource {}; + hr = mContext->Map(mAttachments->mDynamicVertexBuffer, 0, + D3D11_MAP_WRITE_DISCARD, 0, &resource); + + if (Failed(hr, "map dynamic vertex buffer")) { + return false; + } + + const auto vertexFromPoints = [](const gfx::Point& p, const gfx::Point& t) { + return TexturedVertex { { p.x, p.y }, { t.x, t.y } }; + }; + + nsTArray vertices; + + for (const gfx::TexturedTriangle& t : aTriangles) { + vertices.AppendElement(vertexFromPoints(t.p1, t.textureCoords.p1)); + vertices.AppendElement(vertexFromPoints(t.p2, t.textureCoords.p2)); + vertices.AppendElement(vertexFromPoints(t.p3, t.textureCoords.p3)); + } + + memcpy(resource.pData, vertices.Elements(), + vertices.Length() * sizeof(TexturedVertex)); + + mContext->Unmap(mAttachments->mDynamicVertexBuffer, 0); + + return true; +} + bool CompositorD3D11::Initialize(nsCString* const out_failureReason) { @@ -245,12 +330,41 @@ CompositorD3D11::Initialize(nsCString* const out_failureReason) data.pSysMem = (void*)vertices; hr = mDevice->CreateBuffer(&bufferDesc, &data, getter_AddRefs(mAttachments->mVertexBuffer)); - if (Failed(hr, "create vertex buffer")) { *out_failureReason = "FEATURE_FAILURE_D3D11_VERTEX_BUFFER"; return false; } + // Create a second input layout for layers with dynamic geometry. + D3D11_INPUT_ELEMENT_DESC dynamicLayout[] = + { + { "POSITION", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 }, + { "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 8, D3D11_INPUT_PER_VERTEX_DATA, 0 }, + }; + + hr = mDevice->CreateInputLayout(dynamicLayout, + sizeof(dynamicLayout) / sizeof(D3D11_INPUT_ELEMENT_DESC), + LayerDynamicVS, + sizeof(LayerDynamicVS), + getter_AddRefs(mAttachments->mDynamicInputLayout)); + + if (Failed(hr, "CreateInputLayout")) { + *out_failureReason = "FEATURE_FAILURE_D3D11_INPUT_LAYOUT"; + return false; + } + + // Allocate memory for the dynamic vertex buffer. + bufferDesc = CD3D11_BUFFER_DESC(sizeof(TexturedVertex) * mMaximumTriangles * 3, + D3D11_BIND_VERTEX_BUFFER, + D3D11_USAGE_DYNAMIC, + D3D11_CPU_ACCESS_WRITE); + + hr = mDevice->CreateBuffer(&bufferDesc, nullptr, getter_AddRefs(mAttachments->mDynamicVertexBuffer)); + if (Failed(hr, "create dynamic vertex buffer")) { + *out_failureReason = "FEATURE_FAILURE_D3D11_VERTEX_BUFFER"; + return false; + } + if (!mAttachments->CreateShaders()) { *out_failureReason = "FEATURE_FAILURE_D3D11_CREATE_SHADERS"; return false; @@ -633,8 +747,14 @@ CompositorD3D11::SetRenderTarget(CompositingRenderTarget* aRenderTarget) } ID3D11PixelShader* -CompositorD3D11::GetPSForEffect(Effect* aEffect, MaskType aMaskType) +CompositorD3D11::GetPSForEffect(Effect* aEffect, + const bool aUseBlendShader, + const MaskType aMaskType) { + if (aUseBlendShader) { + return mAttachments->mBlendShader[MaskType::MaskNone]; + } + switch (aEffect->mType) { case EffectTypes::SOLID_COLOR: return mAttachments->mSolidColorShader[aMaskType]; @@ -732,6 +852,116 @@ CompositorD3D11::DrawQuad(const gfx::Rect& aRect, gfx::Float aOpacity, const gfx::Matrix4x4& aTransform, const gfx::Rect& aVisibleRect) +{ + DrawGeometry(aRect, aRect, aClipRect, aEffectChain, + aOpacity, aTransform, aVisibleRect); +} + +void +CompositorD3D11::DrawTriangles(const nsTArray& aTriangles, + const gfx::Rect& aRect, + const gfx::IntRect& aClipRect, + const EffectChain& aEffectChain, + gfx::Float aOpacity, + const gfx::Matrix4x4& aTransform, + const gfx::Rect& aVisibleRect) +{ + DrawGeometry(aTriangles, aRect, aClipRect, aEffectChain, + aOpacity, aTransform, aVisibleRect); +} + +void +CompositorD3D11::PrepareDynamicVertexBuffer() +{ + mContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); + mContext->IASetInputLayout(mAttachments->mDynamicInputLayout); + SetVertexBuffer(mAttachments->mDynamicVertexBuffer); +} + +void +CompositorD3D11::PrepareStaticVertexBuffer() +{ + mContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); + mContext->IASetInputLayout(mAttachments->mInputLayout); + SetVertexBuffer(mAttachments->mVertexBuffer); +} + +void +CompositorD3D11::Draw(const nsTArray& aTriangles, + const gfx::Rect*) +{ + if (!UpdateConstantBuffers()) { + NS_WARNING("Failed to update shader constant buffers"); + return; + } + + PrepareDynamicVertexBuffer(); + + if (!UpdateDynamicVertexBuffer(aTriangles)) { + NS_WARNING("Failed to update shader dynamic buffers"); + return; + } + + mContext->Draw(3 * aTriangles.Length(), 0); + + PrepareStaticVertexBuffer(); +} + +void +CompositorD3D11::Draw(const gfx::Rect& aRect, + const gfx::Rect* aTexCoords) +{ + Rect layerRects[4] = { aRect }; + Rect textureRects[4] = { }; + size_t rects = 1; + + if (aTexCoords) { + rects = DecomposeIntoNoRepeatRects(aRect, *aTexCoords, + &layerRects, &textureRects); + } + + for (size_t i = 0; i < rects; i++) { + mVSConstants.layerQuad = layerRects[i]; + mVSConstants.textureCoords = textureRects[i]; + + if (!UpdateConstantBuffers()) { + NS_WARNING("Failed to update shader constant buffers"); + break; + } + + mContext->Draw(4, 0); + } +} + +ID3D11VertexShader* +CompositorD3D11::GetVSForGeometry(const nsTArray& aTriangles, + const bool aUseBlendShaders, + const MaskType aMaskType) +{ + return aUseBlendShaders + ? mAttachments->mVSDynamicBlendShader[aMaskType] + : mAttachments->mVSDynamicShader[aMaskType]; +} + +ID3D11VertexShader* +CompositorD3D11::GetVSForGeometry(const gfx::Rect& aRect, + const bool aUseBlendShaders, + const MaskType aMaskType) +{ + return aUseBlendShaders + ? mAttachments->mVSQuadBlendShader[aMaskType] + : mAttachments->mVSQuadShader[aMaskType]; +} + +template +void +CompositorD3D11::DrawGeometry(const Geometry& aGeometry, + const gfx::Rect& aRect, + const gfx::IntRect& aClipRect, + const EffectChain& aEffectChain, + gfx::Float aOpacity, + const gfx::Matrix4x4& aTransform, + const gfx::Rect& aVisibleRect) { if (mCurrentClip.IsEmpty()) { return; @@ -788,9 +1018,7 @@ CompositorD3D11::DrawQuad(const gfx::Rect& aRect, scissor.top = clipRect.y; scissor.bottom = clipRect.YMost(); - RefPtr vertexShader = mAttachments->mVSQuadShader[maskType]; - RefPtr pixelShader = GetPSForEffect(aEffectChain.mPrimaryEffect, maskType); - + bool useBlendShaders = false; RefPtr mixBlendBackdrop; gfx::CompositionOp blendMode = gfx::CompositionOp::OP_OVER; if (aEffectChain.mSecondaryEffects[EffectTypes::BLEND_MODE]) { @@ -808,8 +1036,7 @@ CompositorD3D11::DrawQuad(const gfx::Rect& aRect, if (CopyBackdrop(rect, &mixBlendBackdrop, &srv) && mAttachments->InitBlendShaders()) { - vertexShader = mAttachments->mVSQuadBlendShader[maskType]; - pixelShader = mAttachments->mBlendShader[MaskType::MaskNone]; + useBlendShaders = true; ID3D11ShaderResourceView* srView = srv.get(); mContext->PSSetShaderResources(TexSlot::Backdrop, 1, &srView); @@ -825,7 +1052,13 @@ CompositorD3D11::DrawQuad(const gfx::Rect& aRect, } mContext->RSSetScissorRects(1, &scissor); - mContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); + + RefPtr vertexShader = + GetVSForGeometry(aGeometry, useBlendShaders, maskType); + + RefPtr pixelShader = + GetPSForEffect(aEffectChain.mPrimaryEffect, useBlendShaders, maskType); + mContext->VSSetShader(vertexShader, nullptr, 0); mContext->PSSetShader(pixelShader, nullptr, 0); @@ -935,32 +1168,7 @@ CompositorD3D11::DrawQuad(const gfx::Rect& aRect, return; } - if (pTexCoordRect) { - Rect layerRects[4]; - Rect textureRects[4]; - size_t rects = DecomposeIntoNoRepeatRects(aRect, - *pTexCoordRect, - &layerRects, - &textureRects); - for (size_t i = 0; i < rects; i++) { - mVSConstants.layerQuad = layerRects[i]; - mVSConstants.textureCoords = textureRects[i]; - - if (!UpdateConstantBuffers()) { - NS_WARNING("Failed to update shader constant buffers"); - break; - } - mContext->Draw(4, 0); - } - } else { - mVSConstants.layerQuad = aRect; - - if (!UpdateConstantBuffers()) { - NS_WARNING("Failed to update shader constant buffers"); - } else { - mContext->Draw(4, 0); - } - } + Draw(aGeometry, pTexCoordRect); if (restoreBlendMode) { mContext->OMSetBlendState(mAttachments->mPremulBlendState, sBlendFactor, 0xFFFFFFFF); @@ -1034,12 +1242,7 @@ CompositorD3D11::BeginFrame(const nsIntRegion& aInvalidRegion, return; } - mContext->IASetInputLayout(mAttachments->mInputLayout); - - ID3D11Buffer* buffer = mAttachments->mVertexBuffer; - UINT size = sizeof(Vertex); - UINT offset = 0; - mContext->IASetVertexBuffers(0, 1, &buffer, &size, &offset); + PrepareStaticVertexBuffer(); mInvalidRect = IntRect(invalidRect.x, invalidRect.y, invalidRect.width, invalidRect.height); mInvalidRegion = invalidRegionSafe; @@ -1404,6 +1607,12 @@ DeviceAttachmentsD3D11::InitBlendShaders() InitVertexShader(sLayerQuadBlendVS, mVSQuadBlendShader, MaskType::MaskNone); InitVertexShader(sLayerQuadBlendMaskVS, mVSQuadBlendShader, MaskType::Mask); } + + if (!mVSDynamicBlendShader[MaskType::MaskNone]) { + InitVertexShader(sLayerDynamicBlendVS, mVSDynamicBlendShader, MaskType::MaskNone); + InitVertexShader(sLayerDynamicBlendMaskVS, mVSDynamicBlendShader, MaskType::Mask); + } + if (!mBlendShader[MaskType::MaskNone]) { InitPixelShader(sBlendShader, mBlendShader, MaskType::MaskNone); } @@ -1416,6 +1625,9 @@ DeviceAttachmentsD3D11::CreateShaders() InitVertexShader(sLayerQuadVS, mVSQuadShader, MaskType::MaskNone); InitVertexShader(sLayerQuadMaskVS, mVSQuadShader, MaskType::Mask); + InitVertexShader(sLayerDynamicVS, mVSDynamicShader, MaskType::MaskNone); + InitVertexShader(sLayerDynamicMaskVS, mVSDynamicShader, MaskType::Mask); + InitPixelShader(sSolidColorShader, mSolidColorShader, MaskType::MaskNone); InitPixelShader(sSolidColorShaderMask, mSolidColorShader, MaskType::Mask); InitPixelShader(sRGBShader, mRGBShader, MaskType::MaskNone); diff --git a/gfx/layers/d3d11/CompositorD3D11.h b/gfx/layers/d3d11/CompositorD3D11.h index 7fae3555d9ee..3152b800aaa2 100644 --- a/gfx/layers/d3d11/CompositorD3D11.h +++ b/gfx/layers/d3d11/CompositorD3D11.h @@ -101,7 +101,7 @@ public: /** * Start a new frame. If aClipRectIn is null, sets *aClipRectOut to the - * screen dimensions. + * screen dimensions. */ virtual void BeginFrame(const nsIntRegion& aInvalidRegion, const gfx::IntRect *aClipRectIn, @@ -127,6 +127,8 @@ public: virtual bool SupportsPartialTextureUpdate() override { return true; } + virtual bool SupportsLayerGeometry() const override; + #ifdef MOZ_DUMP_PAINTING virtual const char* Name() const override { return "Direct3D 11"; } #endif @@ -160,7 +162,10 @@ private: bool UpdateRenderTarget(); bool UpdateConstantBuffers(); void SetSamplerForSamplingFilter(gfx::SamplingFilter aSamplingFilter); - ID3D11PixelShader* GetPSForEffect(Effect *aEffect, MaskType aMaskType); + + ID3D11PixelShader* GetPSForEffect(Effect* aEffect, + const bool aUseBlendShader, + const MaskType aMaskType); void PaintToTarget(); RefPtr CreateTexture(const gfx::IntRect& aRect, const CompositingRenderTarget* aSource, @@ -169,6 +174,46 @@ private: RefPtr* aOutTexture, RefPtr* aOutView); + virtual void DrawTriangles(const nsTArray& aTriangles, + const gfx::Rect& aRect, + const gfx::IntRect& aClipRect, + const EffectChain& aEffectChain, + gfx::Float aOpacity, + const gfx::Matrix4x4& aTransform, + const gfx::Rect& aVisibleRect) override; + + template + void DrawGeometry(const Geometry& aGeometry, + const gfx::Rect& aRect, + const gfx::IntRect& aClipRect, + const EffectChain& aEffectChain, + gfx::Float aOpacity, + const gfx::Matrix4x4& aTransform, + const gfx::Rect& aVisibleRect); + + bool UpdateDynamicVertexBuffer(const nsTArray& aTriangles); + + void PrepareDynamicVertexBuffer(); + void PrepareStaticVertexBuffer(); + + // Overloads for rendering both rects and triangles with same rendering path + void Draw(const nsTArray& aGeometry, + const gfx::Rect* aTexCoords); + + void Draw(const gfx::Rect& aGeometry, + const gfx::Rect* aTexCoords); + + ID3D11VertexShader* GetVSForGeometry(const nsTArray& aTriangles, + const bool aUseBlendShader, + const MaskType aMaskType); + + ID3D11VertexShader* GetVSForGeometry(const gfx::Rect& aRect, + const bool aUseBlendShader, + const MaskType aMaskType); + + template + void SetVertexBuffer(ID3D11Buffer* aBuffer); + RefPtr mContext; RefPtr mDevice; RefPtr mSwapChain; @@ -196,6 +241,8 @@ private: nsIntRegion mInvalidRegion; bool mVerifyBuffersFailed; + + size_t mMaximumTriangles; }; } From a5dcfe58dc9fbbb7997e1db68ec64b3dfb994743 Mon Sep 17 00:00:00 2001 From: Miko Mynttinen Date: Wed, 8 Feb 2017 21:18:50 +0100 Subject: [PATCH 028/130] Bug 1323791 - Part 6: Expect plane intersections to work with D3D11 backend r=mattwoodrow MozReview-Commit-ID: 8oct8vDT3Ly --HG-- extra : rebase_source : 22855721a2eb364072c1d3949d22e556e476df4f --- layout/reftests/transform-3d/reftest.list | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/layout/reftests/transform-3d/reftest.list b/layout/reftests/transform-3d/reftest.list index fbea7291cc0f..7c4d111af335 100644 --- a/layout/reftests/transform-3d/reftest.list +++ b/layout/reftests/transform-3d/reftest.list @@ -82,9 +82,9 @@ fails-if(webrender) == snap-perspective-1.html snap-perspective-1-ref.html fails-if(webrender) == mask-layer-1.html mask-layer-ref.html skip-if(webrender) == mask-layer-2.html mask-layer-ref.html skip-if(webrender) == mask-layer-3.html mask-layer-ref.html -fails-if(winWidget&&layersGPUAccelerated) fails-if(webrender) == split-intersect1.html split-intersect1-ref.html # Bug 1323791: implement DirectX compositor polygon support -fuzzy(255,150) fails-if(winWidget&&layersGPUAccelerated) fails-if(webrender) == split-intersect2.html split-intersect2-ref.html # Bug 1323791 -fuzzy(255,100) fails-if(winWidget&&layersGPUAccelerated) fails-if(webrender) == split-non-ortho1.html split-non-ortho1-ref.html # Bug 1323791 +fails-if(webrender) == split-intersect1.html split-intersect1-ref.html +fuzzy(255,150) fails-if(webrender) == split-intersect2.html split-intersect2-ref.html +fuzzy(255,100) fails-if(webrender) == split-non-ortho1.html split-non-ortho1-ref.html fuzzy-if(winWidget,150,120) fails-if(webrender) == component-alpha-1.html component-alpha-1-ref.html fails-if(webrender) == nested-transform-1.html nested-transform-1-ref.html fails-if(webrender) == transform-geometry-1.html transform-geometry-1-ref.html From 793b540f8739f88d969b76db12425ed9269cb954 Mon Sep 17 00:00:00 2001 From: Johann Hofmann Date: Wed, 1 Mar 2017 15:23:46 +0100 Subject: [PATCH 029/130] Bug 1335016 - Add tooltip to identity popup expander button. r=florian,MarcoZ MozReview-Commit-ID: 7ulEwzyYFsW --HG-- extra : rebase_source : 3b3aa1bdd1882c1f959961a9cd04f274be845981 --- browser/base/content/browser.js | 27 ++++++++++++++++++- .../en-US/chrome/browser/browser.properties | 2 ++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js index a6c14e083a60..683034eb11d7 100755 --- a/browser/base/content/browser.js +++ b/browser/base/content/browser.js @@ -6855,6 +6855,10 @@ var gIdentityHandler = { delete this._permissionReloadHint; return this._permissionReloadHint = document.getElementById("identity-popup-permission-reload-hint"); }, + get _popupExpander() { + delete this._popupExpander; + return this._popupExpander = document.getElementById("identity-popup-security-expander"); + }, get _permissionAnchors() { delete this._permissionAnchors; let permissionAnchors = {}; @@ -6876,10 +6880,18 @@ var gIdentityHandler = { toggleSubView(name, anchor) { let view = this._identityPopupMultiView; + let id = `identity-popup-${name}View`; + let subView = document.getElementById(id); + + // Listen for the subview showing or hiding to change + // the tooltip on the expander button. + subView.addEventListener("ViewShowing", this); + subView.addEventListener("ViewHiding", this); + if (view.showingSubView) { view.showMainView(); } else { - view.showSubView(`identity-popup-${name}View`, anchor); + view.showSubView(id, anchor); } // If an element is focused that's not the anchor, clear the focus. @@ -7188,6 +7200,9 @@ var gIdentityHandler = { this._identityPopupInsecureLoginFormsLearnMore .setAttribute("href", baseURL + "insecure-password"); + // The expander switches its tooltip when toggled, change it to the default. + this._popupExpander.tooltipText = gNavigatorBundle.getString("identity.showDetails.tooltip"); + // Determine connection security information. let connection = "not-secure"; if (this._isSecureInternalUI) { @@ -7397,6 +7412,16 @@ var gIdentityHandler = { }, handleEvent(event) { + // If the subview is shown or hidden, change the tooltip on the expander button. + if (event.type == "ViewShowing") { + this._popupExpander.tooltipText = gNavigatorBundle.getString("identity.hideDetails.tooltip"); + return; + } + if (event.type == "ViewHiding") { + this._popupExpander.tooltipText = gNavigatorBundle.getString("identity.showDetails.tooltip"); + return; + } + let elem = document.activeElement; let position = elem.compareDocumentPosition(this._identityPopup); diff --git a/browser/locales/en-US/chrome/browser/browser.properties b/browser/locales/en-US/chrome/browser/browser.properties index c66e92a5faae..afb5f6fdb000 100644 --- a/browser/locales/en-US/chrome/browser/browser.properties +++ b/browser/locales/en-US/chrome/browser/browser.properties @@ -443,6 +443,8 @@ identity.identified.verified_by_you=You have added a security exception for this identity.identified.state_and_country=%S, %S identity.icon.tooltip=Show site information +identity.showDetails.tooltip=Show connection details +identity.hideDetails.tooltip=Hide connection details trackingProtection.intro.title=How Tracking Protection works # LOCALIZATION NOTE (trackingProtection.intro.description2): From 6b14135f9490771dda1724234f52850ebbad853f Mon Sep 17 00:00:00 2001 From: Chris H-C Date: Thu, 16 Feb 2017 13:13:38 -0500 Subject: [PATCH 030/130] bug 1338627 - Add crashTime to crash pings data-review=bsmedberg r=gsvelto crashDate having only per-day resolution was making client delay analysis rather inaccurate. crashTime is an ISO8601 string with per-hour resolution which should smooth things over on the analysis side. If per-hour is still too coarse, the use of an ISO string allows us to adapt later to increasing the resolution, if it passes data review. The underlying crash timestamp has per-second resolution. MozReview-Commit-ID: 2hwJHSi8Xje --HG-- extra : rebase_source : cb746ea817c3234f3919b305bc0b5e1829d68ea7 --- toolkit/components/crashes/CrashManager.jsm | 1 + .../components/crashes/tests/xpcshell/test_crash_manager.js | 6 ++++++ toolkit/components/telemetry/docs/data/crash-ping.rst | 1 + toolkit/crashreporter/client/ping.cpp | 2 ++ 4 files changed, 10 insertions(+) diff --git a/toolkit/components/crashes/CrashManager.jsm b/toolkit/components/crashes/CrashManager.jsm index 08231f10bd6b..6b0c3252afce 100644 --- a/toolkit/components/crashes/CrashManager.jsm +++ b/toolkit/components/crashes/CrashManager.jsm @@ -651,6 +651,7 @@ this.CrashManager.prototype = Object.freeze({ { version: 1, crashDate: date.toISOString().slice(0, 10), // YYYY-MM-DD + crashTime: date.toISOString().slice(0, 13) + ":00:00.000Z", // per-hour resolution sessionId, crashId, processType: type, diff --git a/toolkit/components/crashes/tests/xpcshell/test_crash_manager.js b/toolkit/components/crashes/tests/xpcshell/test_crash_manager.js index e2683f123e6d..08d5e3250e33 100644 --- a/toolkit/components/crashes/tests/xpcshell/test_crash_manager.js +++ b/toolkit/components/crashes/tests/xpcshell/test_crash_manager.js @@ -476,6 +476,12 @@ add_task(function* test_content_crash_ping() { [["payload", "stackTraces", "status"], "OK"], ]); Assert.ok(found, "Telemetry ping submitted for content crash"); + + let hoursOnly = new Date(DUMMY_DATE); + hoursOnly.setSeconds(0); + hoursOnly.setMinutes(0); + Assert.equal(new Date(found.payload.crashTime).getTime(), hoursOnly.getTime()); + Assert.equal(found.payload.metadata.ThisShouldNot, undefined, "Non-whitelisted fields should be filtered out"); }); diff --git a/toolkit/components/telemetry/docs/data/crash-ping.rst b/toolkit/components/telemetry/docs/data/crash-ping.rst index 58ce1858af01..5b191bbb5ff4 100644 --- a/toolkit/components/telemetry/docs/data/crash-ping.rst +++ b/toolkit/components/telemetry/docs/data/crash-ping.rst @@ -31,6 +31,7 @@ Structure: processType: , // Type of process that crashed, see below for a list of types payload: { crashDate: "YYYY-MM-DD", + crashTime: , // per-hour resolution version: 1, sessionId: , // may be missing for crashes that happen early // in startup. Added in Firefox 48 with the diff --git a/toolkit/crashreporter/client/ping.cpp b/toolkit/crashreporter/client/ping.cpp index e402cb704de8..5f800686fa34 100644 --- a/toolkit/crashreporter/client/ping.cpp +++ b/toolkit/crashreporter/client/ping.cpp @@ -94,6 +94,7 @@ GenerateUUID() } const char kISO8601Date[] = "%F"; +const char kISO8601DateHours[] = "%FT%H:00:00.000Z"; const char kISO8601FullDate[] = "%FT%T.000Z"; // Return the current date as a string in the specified format, the following @@ -170,6 +171,7 @@ CreatePayloadNode(StringTable& strings, const string& aSessionId) payload["sessionId"] = aSessionId; payload["version"] = 1; payload["crashDate"] = CurrentDate(kISO8601Date); + payload["crashTime"] = CurrentDate(kISO8601DateHours); payload["hasCrashEnvironment"] = true; payload["crashId"] = GetDumpLocalID(); payload["processType"] = "main"; // This is always a main crash From de24a7dde74b6c4683049711294052aa871a34e6 Mon Sep 17 00:00:00 2001 From: avinash Date: Mon, 6 Mar 2017 07:11:51 -0800 Subject: [PATCH 031/130] =?UTF-8?q?servo:=20Merge=20#15751=20-=20first=20s?= =?UTF-8?q?tab.=20added=20ServoUrl=20as=20a=20parameter=20to=20report=5Fer?= =?UTF-8?q?ror(...)=20of=20Par=E2=80=A6=20(from=20avinash-vijayaraghavan:t?= =?UTF-8?q?esting-csserror);=20r=3Dcbrewster?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @jdm @SimonSapin 1. Added ServoUrl as a parameter to report_error(...) of ParseErrorReporter trait. 2. I am not sure how to handle the case of impl ParseErrorReporter for CSSErrorReporter and MemoryHoleReporter, so have not made any changes (other than adding ServoUrl arg) to report_error implementations for these. 3. In StdoutErrorReporter i have added the ServoUrl arg to the info! function, 4. I would like to know if i am on the correct path and clarify what else needs to be done. --- - [ X] `./mach build -d` does not report any errors - [ ] `./mach test-tidy` does not report any errors - [ ] These changes fix #15708 (github issue number if applicable). - [ ] There are tests for these changes OR - [ ] These changes do not require tests because wanted to clarify before writing tests Source-Repo: https://github.com/servo/servo Source-Revision: 0dbee36915abd926e61ca8571e11abf1f97ec830 --HG-- extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear extra : subtree_revision : f16f3faea6a37ab983ca26ec8637c698a581b9e5 --- .../components/script_layout_interface/reporter.rs | 13 ++++++++----- servo/components/style/error_reporting.rs | 14 ++++++++------ servo/components/style/parser.rs | 3 ++- servo/components/style/stylesheets.rs | 3 ++- servo/tests/unit/style/media_queries.rs | 6 ++++-- servo/tests/unit/style/rule_tree/bench.rs | 5 +++-- servo/tests/unit/style/stylesheets.rs | 11 +++++++++-- 7 files changed, 36 insertions(+), 19 deletions(-) diff --git a/servo/components/script_layout_interface/reporter.rs b/servo/components/script_layout_interface/reporter.rs index 4561f2d63ca6..171f96d9d067 100644 --- a/servo/components/script_layout_interface/reporter.rs +++ b/servo/components/script_layout_interface/reporter.rs @@ -7,6 +7,7 @@ use ipc_channel::ipc::IpcSender; use log; use msg::constellation_msg::PipelineId; use script_traits::ConstellationControlMsg; +use servo_url::ServoUrl; use std::sync::{Mutex, Arc}; use style::error_reporting::ParseErrorReporter; @@ -21,11 +22,13 @@ pub struct CSSErrorReporter { } impl ParseErrorReporter for CSSErrorReporter { - fn report_error(&self, input: &mut Parser, position: SourcePosition, message: &str) { - let location = input.source_location(position); - if log_enabled!(log::LogLevel::Info) { - info!("{}:{} {}", location.line, location.column, message) - } + fn report_error(&self, input: &mut Parser, position: SourcePosition, message: &str, + url: &ServoUrl) { + let location = input.source_location(position); + if log_enabled!(log::LogLevel::Info) { + info!("Url:\t{}\n{}:{} {}", url.as_str(), location.line, location.column, message) + } + //TODO: report a real filename let _ = self.script_chan.lock().unwrap().send( ConstellationControlMsg::ReportCSSError(self.pipelineid, diff --git a/servo/components/style/error_reporting.rs b/servo/components/style/error_reporting.rs index 3a802bdd6c67..e815d0bf29e2 100644 --- a/servo/components/style/error_reporting.rs +++ b/servo/components/style/error_reporting.rs @@ -8,6 +8,7 @@ use cssparser::{Parser, SourcePosition}; use log; +use servo_url::ServoUrl; /// A generic trait for an error reporter. pub trait ParseErrorReporter { @@ -15,7 +16,7 @@ pub trait ParseErrorReporter { /// /// Returns the current input being parsed, the source position it was /// reported from, and a message. - fn report_error(&self, input: &mut Parser, position: SourcePosition, message: &str); + fn report_error(&self, input: &mut Parser, position: SourcePosition, message: &str, url: &ServoUrl); /// Clone this error reporter. /// /// TODO(emilio): I'm pretty sure all the box shenanigans can go away. @@ -27,11 +28,12 @@ pub trait ParseErrorReporter { /// TODO(emilio): The name of this reporter is a lie, and should be renamed! pub struct StdoutErrorReporter; impl ParseErrorReporter for StdoutErrorReporter { - fn report_error(&self, input: &mut Parser, position: SourcePosition, message: &str) { - if log_enabled!(log::LogLevel::Info) { - let location = input.source_location(position); - info!("{}:{} {}", location.line, location.column, message) - } + fn report_error(&self, input: &mut Parser, position: SourcePosition, message: &str, + url: &ServoUrl) { + if log_enabled!(log::LogLevel::Info) { + let location = input.source_location(position); + info!("Url:\t{}\n{}:{} {}", url.as_str(), location.line, location.column, message) + } } fn clone(&self) -> Box { diff --git a/servo/components/style/parser.rs b/servo/components/style/parser.rs index 4145650b2c86..b561fd6efea7 100644 --- a/servo/components/style/parser.rs +++ b/servo/components/style/parser.rs @@ -90,7 +90,8 @@ impl<'a> ParserContext<'a> { /// Set a `RUST_LOG=style::errors` environment variable /// to log CSS parse errors to stderr. pub fn log_css_error(input: &mut Parser, position: SourcePosition, message: &str, parsercontext: &ParserContext) { - parsercontext.error_reporter.report_error(input, position, message); + let servo_url = parsercontext.base_url; + parsercontext.error_reporter.report_error(input, position, message, servo_url); } // XXXManishearth Replace all specified value parse impls with impls of this diff --git a/servo/components/style/stylesheets.rs b/servo/components/style/stylesheets.rs index be88e22ea7ea..6ee7b6843a03 100644 --- a/servo/components/style/stylesheets.rs +++ b/servo/components/style/stylesheets.rs @@ -252,7 +252,8 @@ impl ParseErrorReporter for MemoryHoleReporter { fn report_error(&self, _: &mut Parser, _: SourcePosition, - _: &str) { + _: &str, + _: &ServoUrl) { // do nothing } fn clone(&self) -> Box { diff --git a/servo/tests/unit/style/media_queries.rs b/servo/tests/unit/style/media_queries.rs index 11e1987928ad..b2fe60ea91ec 100644 --- a/servo/tests/unit/style/media_queries.rs +++ b/servo/tests/unit/style/media_queries.rs @@ -18,8 +18,10 @@ use style_traits::ToCss; pub struct CSSErrorReporterTest; impl ParseErrorReporter for CSSErrorReporterTest { - fn report_error(&self, _input: &mut Parser, _position: SourcePosition, _message: &str) { - } + fn report_error(&self, _input: &mut Parser, _position: SourcePosition, _message: &str, + _url: &ServoUrl) { + } + fn clone(&self) -> Box { Box::new(CSSErrorReporterTest) } diff --git a/servo/tests/unit/style/rule_tree/bench.rs b/servo/tests/unit/style/rule_tree/bench.rs index de68d99b71d1..fccab1252f94 100644 --- a/servo/tests/unit/style/rule_tree/bench.rs +++ b/servo/tests/unit/style/rule_tree/bench.rs @@ -17,8 +17,9 @@ use test::{self, Bencher}; struct ErrorringErrorReporter; impl ParseErrorReporter for ErrorringErrorReporter { - fn report_error(&self, _: &mut Parser, position: SourcePosition, message: &str) { - panic!("CSS error: {:?} {}", position, message); + fn report_error(&self, input: &mut Parser, position: SourcePosition, message: &str, + url: &ServoUrl) { + panic!("CSS error: {}\t\n{:?} {}", url.as_str(), position, message); } fn clone(&self) -> Box { diff --git a/servo/tests/unit/style/stylesheets.rs b/servo/tests/unit/style/stylesheets.rs index 83166e019e58..586f2616ecfc 100644 --- a/servo/tests/unit/style/stylesheets.rs +++ b/servo/tests/unit/style/stylesheets.rs @@ -276,6 +276,7 @@ fn test_parse_stylesheet() { } struct CSSError { + pub url : ServoUrl, pub line: usize, pub column: usize, pub message: String @@ -294,7 +295,9 @@ impl CSSInvalidErrorReporterTest { } impl ParseErrorReporter for CSSInvalidErrorReporterTest { - fn report_error(&self, input: &mut CssParser, position: SourcePosition, message: &str) { + fn report_error(&self, input: &mut CssParser, position: SourcePosition, message: &str, + url: &ServoUrl) { + let location = input.source_location(position); let errors = self.errors.clone(); @@ -302,6 +305,7 @@ impl ParseErrorReporter for CSSInvalidErrorReporterTest { errors.push( CSSError{ + url: url.clone(), line: location.line, column: location.column, message: message.to_owned() @@ -333,7 +337,7 @@ fn test_report_error_stylesheet() { let errors = error_reporter.errors.clone(); - Stylesheet::from_str(css, url, Origin::UserAgent, Default::default(), + Stylesheet::from_str(css, url.clone(), Origin::UserAgent, Default::default(), None, error_reporter, ParserContextExtraData::default()); @@ -349,4 +353,7 @@ fn test_report_error_stylesheet() { assert_eq!("Unsupported property declaration: 'display: invalid;'", error.message); assert_eq!(4, error.line); assert_eq!(9, error.column); + + // testing for the url + assert_eq!(url, error.url); } From e3e94d68c59051ba8d94da67fab1a287d972b6ba Mon Sep 17 00:00:00 2001 From: Alastor Wu Date: Mon, 6 Mar 2017 18:16:04 +0800 Subject: [PATCH 032/130] Bug 1344661 - capture input sample for CheckForSPSChange(). r=jya When the SPS changed, we save the input sample in |mPendingSample|, and then call CreateDecoderAndInit(mPendingSample) after calling shutdown(). However, the |mPendingSample| has been clear in shutdown(), so actually we send the nullptr to CreateDecoderAndInit(). MozReview-Commit-ID: JTRVdKxyEy6 --HG-- extra : rebase_source : a0137105015475d1308ddd1a302c38eeccc24dff --- dom/media/platforms/wrappers/H264Converter.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/dom/media/platforms/wrappers/H264Converter.cpp b/dom/media/platforms/wrappers/H264Converter.cpp index 1ac8876d5671..cbfaf1415734 100644 --- a/dom/media/platforms/wrappers/H264Converter.cpp +++ b/dom/media/platforms/wrappers/H264Converter.cpp @@ -318,7 +318,7 @@ H264Converter::CheckForSPSChange(MediaRawData* aSample) return NS_OK; } - mPendingSample = aSample; + RefPtr sample = aSample; if (CanRecycleDecoder()) { // Do not recreate the decoder, reuse it. @@ -333,10 +333,9 @@ H264Converter::CheckForSPSChange(MediaRawData* aSample) mDecoder->Flush() ->Then(AbstractThread::GetCurrent()->AsTaskQueue(), __func__, - [self, this]() { + [self, sample, this]() { mFlushRequest.Complete(); - DecodeFirstSample(mPendingSample); - mPendingSample = nullptr; + DecodeFirstSample(sample); }, [self, this](const MediaResult& aError) { mFlushRequest.Complete(); @@ -355,17 +354,16 @@ H264Converter::CheckForSPSChange(MediaRawData* aSample) mDecoder->Flush() ->Then(AbstractThread::GetCurrent()->AsTaskQueue(), __func__, - [self, this]() { + [self, sample, this]() { mFlushRequest.Complete(); mShutdownPromise = Shutdown(); mShutdownPromise ->Then(AbstractThread::GetCurrent()->AsTaskQueue(), __func__, - [self, this]() { + [self, sample, this]() { mShutdownRequest.Complete(); mShutdownPromise = nullptr; mNeedAVCC.reset(); - RefPtr sample = mPendingSample.forget(); nsresult rv = CreateDecoderAndInit(sample); if (rv == NS_ERROR_DOM_MEDIA_INITIALIZING_DECODER) { // All good so far, will continue later. From 53cf8e265ccc0961c1638e11b25547015c70b15a Mon Sep 17 00:00:00 2001 From: Jan Henning Date: Fri, 3 Mar 2017 19:05:49 +0100 Subject: [PATCH 033/130] Bug 743662 - Restore session once when addons require a restart. r=sebastian MozReview-Commit-ID: C5Q9cYnxnhj --HG-- extra : rebase_source : 3f50c6a4a207e7950dd9eeaaf089fbeac078d627 --- mobile/android/app/mobile.js | 1 - .../base/java/org/mozilla/gecko/GeckoApp.java | 12 +++++++++++- .../mozilla/gecko/preferences/GeckoPreferences.java | 1 + mobile/android/chrome/content/browser.js | 1 + 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/mobile/android/app/mobile.js b/mobile/android/app/mobile.js index a591c5c9bcca..e59ebeaaa027 100644 --- a/mobile/android/app/mobile.js +++ b/mobile/android/app/mobile.js @@ -137,7 +137,6 @@ pref("browser.sessionhistory.contentViewerTimeout", 360); pref("browser.sessionhistory.bfcacheIgnoreMemoryPressure", false); /* session store */ -pref("browser.sessionstore.resume_session_once", false); pref("browser.sessionstore.resume_from_crash", true); pref("browser.sessionstore.interval", 10000); // milliseconds pref("browser.sessionstore.backupInterval", 120000); // milliseconds -> 2 minutes diff --git a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java index 47924bfc063d..09b7fe64f365 100644 --- a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java +++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java @@ -1891,7 +1891,9 @@ public abstract class GeckoApp boolean shouldRestore = false; final int versionCode = getVersionCode(); - if (mLastSessionCrashed) { + if (getSessionRestoreResumeOnce(prefs)) { + shouldRestore = true; + } else if (mLastSessionCrashed) { if (incrementCrashCount(prefs) <= getSessionStoreMaxCrashResumes(prefs) && getSessionRestoreAfterCrashPreference(prefs)) { shouldRestore = true; @@ -1914,6 +1916,14 @@ public abstract class GeckoApp return shouldRestore; } + private boolean getSessionRestoreResumeOnce(SharedPreferences prefs) { + boolean resumeOnce = prefs.getBoolean(GeckoPreferences.PREFS_RESTORE_SESSION_ONCE, false); + if (resumeOnce) { + prefs.edit().putBoolean(GeckoPreferences.PREFS_RESTORE_SESSION_ONCE, false).apply(); + } + return resumeOnce; + } + private int incrementCrashCount(SharedPreferences prefs) { final int crashCount = getSuccessiveCrashesCount(prefs) + 1; prefs.edit().putInt(PREFS_CRASHED_COUNT, crashCount).apply(); diff --git a/mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java b/mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java index 216a96885050..6b8ac04dd29d 100644 --- a/mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java +++ b/mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java @@ -184,6 +184,7 @@ public class GeckoPreferences public static final String PREFS_RESTORE_SESSION = NON_PREF_PREFIX + "restoreSession3"; public static final String PREFS_RESTORE_SESSION_FROM_CRASH = "browser.sessionstore.resume_from_crash"; public static final String PREFS_RESTORE_SESSION_MAX_CRASH_RESUMES = "browser.sessionstore.max_resumed_crashes"; + public static final String PREFS_RESTORE_SESSION_ONCE = "browser.sessionstore.resume_session_once"; public static final String PREFS_TAB_QUEUE = NON_PREF_PREFIX + "tab_queue"; public static final String PREFS_TAB_QUEUE_LAST_SITE = NON_PREF_PREFIX + "last_site"; public static final String PREFS_TAB_QUEUE_LAST_TIME = NON_PREF_PREFIX + "last_time"; diff --git a/mobile/android/chrome/content/browser.js b/mobile/android/chrome/content/browser.js index 086dd13e828e..b8537aeabd4f 100644 --- a/mobile/android/chrome/content/browser.js +++ b/mobile/android/chrome/content/browser.js @@ -5540,6 +5540,7 @@ var XPInstallObserver = { // If nothing aborted, quit the app if (cancelQuit.data == false) { Services.obs.notifyObservers(null, "quit-application-proceeding", null); + SharedPreferences.forApp().setBoolPref("browser.sessionstore.resume_session_once", true); let appStartup = Cc["@mozilla.org/toolkit/app-startup;1"].getService(Ci.nsIAppStartup); appStartup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit); } From 100766fec4067393a9dc471c9d6ec13e9f04b29b Mon Sep 17 00:00:00 2001 From: Zibi Braniecki Date: Mon, 6 Mar 2017 09:39:52 -0800 Subject: [PATCH 034/130] Bug 1335877 - Remove resource://services-common/stringbundle.js from gecko. r=gandalf MozReview-Commit-ID: FNoj7XH71E4 --HG-- extra : rebase_source : 294d3e425ca60e2aac6149998da7f39f62864ae5 --- browser/base/content/browser-syncui.js | 13 +- .../browser_misused_characters_in_strings.js | 8 +- services/cloudsync/CloudSyncLocal.jsm | 17 +- services/common/moz.build | 1 - services/common/stringbundle.js | 201 ------------------ .../common/tests/unit/test_load_modules.js | 1 - services/sync/modules/engines/clients.js | 6 +- services/sync/modules/util.js | 24 ++- .../sync/tests/unit/test_utils_lazyStrings.js | 14 -- services/sync/tests/unit/xpcshell.ini | 1 - tools/lint/eslint/modules.json | 1 - 11 files changed, 37 insertions(+), 250 deletions(-) delete mode 100644 services/common/stringbundle.js delete mode 100644 services/sync/tests/unit/test_utils_lazyStrings.js diff --git a/browser/base/content/browser-syncui.js b/browser/base/content/browser-syncui.js index 230e724bcd8c..1789eeb34bc7 100644 --- a/browser/base/content/browser-syncui.js +++ b/browser/base/content/browser-syncui.js @@ -3,6 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ Cu.import("resource://gre/modules/XPCOMUtils.jsm"); +Cu.import("resource://gre/modules/Services.jsm"); if (AppConstants.MOZ_SERVICES_CLOUDSYNC) { XPCOMUtils.defineLazyModuleGetter(this, "CloudSync", @@ -40,8 +41,6 @@ var gSyncUI = { _syncAnimationTimer: 0, init() { - Cu.import("resource://services-common/stringbundle.js"); - // Proceed to set up the UI if Sync has already started up. // Otherwise we'll do it when Sync is firing up. if (this.weaveService.ready) { @@ -224,8 +223,9 @@ var gSyncUI = { }, _getAppName() { - let brand = new StringBundle("chrome://branding/locale/brand.properties"); - return brand.get("brandShortName"); + let brand = Services.strings.createBundle( + "chrome://branding/locale/brand.properties"); + return brand.GetStringFromName("brandShortName"); }, // Commands @@ -475,9 +475,8 @@ var gSyncUI = { XPCOMUtils.defineLazyGetter(gSyncUI, "_stringBundle", function() { // XXXzpao these strings should probably be moved from /services to /browser... (bug 583381) // but for now just make it work - return Cc["@mozilla.org/intl/stringbundle;1"]. - getService(Ci.nsIStringBundleService). - createBundle("chrome://weave/locale/services/sync.properties"); + return Services.strings.createBundle( + "chrome://weave/locale/services/sync.properties"); }); XPCOMUtils.defineLazyGetter(gSyncUI, "log", function() { diff --git a/browser/base/content/test/general/browser_misused_characters_in_strings.js b/browser/base/content/test/general/browser_misused_characters_in_strings.js index d37e41d2e01a..28b0276fb462 100644 --- a/browser/base/content/test/general/browser_misused_characters_in_strings.js +++ b/browser/base/content/test/general/browser_misused_characters_in_strings.js @@ -192,9 +192,11 @@ add_task(function* checkAllTheProperties() { ok(uris.length, `Found ${uris.length} .properties files to scan for misused characters`); for (let uri of uris) { - let bundle = new StringBundle(uri.spec); - let entities = bundle.getAll(); - for (let entity of entities) { + let bundle = Services.strings.createBundle(uri.spec); + let enumerator = bundle.getSimpleEnumeration(); + + while (enumerator.hasMoreElements()) { + let entity = enumerator.getNext().QueryInterface(Ci.nsIPropertyElement); testForErrors(uri.spec, entity.key, entity.value); } } diff --git a/services/cloudsync/CloudSyncLocal.jsm b/services/cloudsync/CloudSyncLocal.jsm index c04717314fb7..8e586dcd6da6 100644 --- a/services/cloudsync/CloudSyncLocal.jsm +++ b/services/cloudsync/CloudSyncLocal.jsm @@ -11,14 +11,14 @@ const Cc = Components.classes; const Ci = Components.interfaces; Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://services-common/stringbundle.js"); +Cu.import("resource://gre/modules/Services.jsm"); Cu.import("resource://services-common/utils.js"); Cu.import("resource://services-crypto/utils.js"); Cu.import("resource://gre/modules/Preferences.jsm"); function lazyStrings(name) { - let bundle = "chrome://weave/locale/services/" + name + ".properties"; - return () => new StringBundle(bundle); + return () => Services.strings.createBundle( + `chrome://weave/locale/services//${name}.properties`); } this.Str = {}; @@ -58,12 +58,13 @@ Local.prototype = { .getService(Ci.nsIEnvironment); let user = env.get("USER") || env.get("USERNAME"); let appName; - let brand = new StringBundle("chrome://branding/locale/brand.properties"); - let brandName = brand.get("brandShortName"); + let brand = Services.strings.createBundle( + "chrome://branding/locale/brand.properties"); + let brandName = brand.GetStringFromName("brandShortName"); try { - let syncStrings = new StringBundle("chrome://browser/locale/sync.properties"); - appName = syncStrings.getFormattedString("sync.defaultAccountApplication", [brandName]); + let syncStrings = Services.strings.createBundle("chrome://browser/locale/sync.properties"); + appName = syncStrings.formatStringFromName("sync.defaultAccountApplication", [brandName], 1); } catch (ex) { } @@ -77,7 +78,7 @@ Local.prototype = { // fall back on ua info string Cc["@mozilla.org/network/protocol;1?name=http"].getService(Ci.nsIHttpProtocolHandler).oscpu; - return this.name = Str.sync.get("client.name2", [user, appName, system]); + return this.name = Str.sync.formatStringFromName("client.name2", [user, appName, system], 3); }, set name(value) { diff --git a/services/common/moz.build b/services/common/moz.build index 41e970e6f7bb..847bc6926d81 100644 --- a/services/common/moz.build +++ b/services/common/moz.build @@ -23,7 +23,6 @@ EXTRA_JS_MODULES['services-common'] += [ 'logmanager.js', 'observers.js', 'rest.js', - 'stringbundle.js', 'utils.js', ] diff --git a/services/common/stringbundle.js b/services/common/stringbundle.js deleted file mode 100644 index 748ba528b5f6..000000000000 --- a/services/common/stringbundle.js +++ /dev/null @@ -1,201 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -this.EXPORTED_SYMBOLS = ["StringBundle"]; - -var {classes: Cc, interfaces: Ci, results: Cr, utils: Cu} = Components; - -/** - * A string bundle. - * - * This object presents two APIs: a deprecated one that is equivalent to the API - * for the stringbundle XBL binding, to make it easy to switch from that binding - * to this module, and a new one that is simpler and easier to use. - * - * The benefit of this module over the XBL binding is that it can also be used - * in JavaScript modules and components, not only in chrome JS. - * - * To use this module, import it, create a new instance of StringBundle, - * and then use the instance's |get| and |getAll| methods to retrieve strings - * (you can get both plain and formatted strings with |get|): - * - * let strings = - * new StringBundle("chrome://example/locale/strings.properties"); - * let foo = strings.get("foo"); - * let barFormatted = strings.get("bar", [arg1, arg2]); - * for (let string of strings.getAll()) - * dump (string.key + " = " + string.value + "\n"); - * - * @param url {String} - * the URL of the string bundle - */ -this.StringBundle = function StringBundle(url) { - this.url = url; -} - -StringBundle.prototype = { - /** - * the locale associated with the application - * @type nsILocale - * @private - */ - get _appLocale() { - try { - return Cc["@mozilla.org/intl/nslocaleservice;1"]. - getService(Ci.nsILocaleService). - getApplicationLocale(); - } catch (ex) { - return null; - } - }, - - /** - * the wrapped nsIStringBundle - * @type nsIStringBundle - * @private - */ - get _stringBundle() { - let stringBundle = Cc["@mozilla.org/intl/stringbundle;1"]. - getService(Ci.nsIStringBundleService). - createBundle(this.url, this._appLocale); - this.__defineGetter__("_stringBundle", () => stringBundle); - return this._stringBundle; - }, - - - // the new API - - /** - * the URL of the string bundle - * @type String - */ - _url: null, - get url() { - return this._url; - }, - set url(newVal) { - this._url = newVal; - delete this._stringBundle; - }, - - /** - * Get a string from the bundle. - * - * @param key {String} - * the identifier of the string to get - * @param args {array} [optional] - * an array of arguments that replace occurrences of %S in the string - * - * @returns {String} the value of the string - */ - get(key, args) { - if (args) - return this.stringBundle.formatStringFromName(key, args, args.length); - return this.stringBundle.GetStringFromName(key); - }, - - /** - * Get all the strings in the bundle. - * - * @returns {Array} - * an array of objects with key and value properties - */ - getAll() { - let strings = []; - - // FIXME: for performance, return an enumerable array that wraps the string - // bundle's nsISimpleEnumerator (does JavaScript already support this?). - - let enumerator = this.stringBundle.getSimpleEnumeration(); - - while (enumerator.hasMoreElements()) { - // We could simply return the nsIPropertyElement objects, but I think - // it's better to return standard JS objects that behave as consumers - // expect JS objects to behave (f.e. you can modify them dynamically). - let string = enumerator.getNext().QueryInterface(Ci.nsIPropertyElement); - strings.push({ key: string.key, value: string.value }); - } - - return strings; - }, - - - // the deprecated XBL binding-compatible API - - /** - * the URL of the string bundle - * @deprecated because its name doesn't make sense outside of an XBL binding - * @type String - */ - get src() { - return this.url; - }, - set src(newVal) { - this.url = newVal; - }, - - /** - * the locale associated with the application - * @deprecated because it has never been used outside the XBL binding itself, - * and consumers should obtain it directly from the locale service anyway. - * @type nsILocale - */ - get appLocale() { - return this._appLocale; - }, - - /** - * the wrapped nsIStringBundle - * @deprecated because this module should provide all necessary functionality - * @type nsIStringBundle - * - * If you do ever need to use this, let the authors of this module know why - * so they can surface functionality for your use case in the module itself - * and you don't have to access this underlying XPCOM component. - */ - get stringBundle() { - return this._stringBundle; - }, - - /** - * Get a string from the bundle. - * @deprecated use |get| instead - * - * @param key {String} - * the identifier of the string to get - * - * @returns {String} - * the value of the string - */ - getString(key) { - return this.get(key); - }, - - /** - * Get a formatted string from the bundle. - * @deprecated use |get| instead - * - * @param key {string} - * the identifier of the string to get - * @param args {array} - * an array of arguments that replace occurrences of %S in the string - * - * @returns {String} - * the formatted value of the string - */ - getFormattedString(key, args) { - return this.get(key, args); - }, - - /** - * Get an enumeration of the strings in the bundle. - * @deprecated use |getAll| instead - * - * @returns {nsISimpleEnumerator} - * a enumeration of the strings in the bundle - */ - get strings() { - return this.stringBundle.getSimpleEnumeration(); - } -} diff --git a/services/common/tests/unit/test_load_modules.js b/services/common/tests/unit/test_load_modules.js index d9a404934d13..26b042bb23df 100644 --- a/services/common/tests/unit/test_load_modules.js +++ b/services/common/tests/unit/test_load_modules.js @@ -8,7 +8,6 @@ const shared_modules = [ "async.js", "logmanager.js", "rest.js", - "stringbundle.js", "utils.js", ]; diff --git a/services/sync/modules/engines/clients.js b/services/sync/modules/engines/clients.js index 61abc645b221..c7a8a45d7cf3 100644 --- a/services/sync/modules/engines/clients.js +++ b/services/sync/modules/engines/clients.js @@ -28,7 +28,6 @@ this.EXPORTED_SYMBOLS = [ var {classes: Cc, interfaces: Ci, utils: Cu} = Components; Cu.import("resource://services-common/async.js"); -Cu.import("resource://services-common/stringbundle.js"); Cu.import("resource://services-sync/constants.js"); Cu.import("resource://services-sync/engines.js"); Cu.import("resource://services-sync/record.js"); @@ -174,8 +173,9 @@ ClientEngine.prototype = { }, get brandName() { - let brand = new StringBundle("chrome://branding/locale/brand.properties"); - return brand.get("brandShortName"); + let brand = Services.strings.createBundle( + "chrome://branding/locale/brand.properties"); + return brand.GetStringFromName("brandShortName"); }, get localName() { diff --git a/services/sync/modules/util.js b/services/sync/modules/util.js index ec013229922b..799e6fcd7b46 100644 --- a/services/sync/modules/util.js +++ b/services/sync/modules/util.js @@ -8,7 +8,6 @@ var {classes: Cc, interfaces: Ci, results: Cr, utils: Cu} = Components; Cu.import("resource://gre/modules/Log.jsm"); Cu.import("resource://services-common/observers.js"); -Cu.import("resource://services-common/stringbundle.js"); Cu.import("resource://services-common/utils.js"); Cu.import("resource://services-common/async.js", this); Cu.import("resource://services-crypto/utils.js"); @@ -218,8 +217,8 @@ this.Utils = { }, lazyStrings: function Weave_lazyStrings(name) { - let bundle = "chrome://weave/locale/services/" + name + ".properties"; - return () => new StringBundle(bundle); + return () => Services.strings.createBundle( + `chrome://weave/locale/services/${name}.properties`); }, deepEquals: function eq(a, b) { @@ -461,11 +460,15 @@ this.Utils = { getErrorString: function Utils_getErrorString(error, args) { try { - return Str.errors.get(error, args || null); + if (args) { + return Str.errors.formatStringFromName(error, args, args.length); + } else { + return Str.errors.GetStringFromName(error); + } } catch (e) {} // basically returns "Unknown Error" - return Str.errors.get("error.reason.unknown"); + return Str.errors.GetStringFromName('error.reason.unknown'); }, /** @@ -683,13 +686,14 @@ this.Utils = { user = env.get("USERNAME"); } - let brand = new StringBundle("chrome://branding/locale/brand.properties"); - let brandName = brand.get("brandShortName"); + let brand = Services.strings.createBundle( + "chrome://branding/locale/brand.properties"); + let brandName = brand.GetStringFromName("brandShortName"); let appName; try { - let syncStrings = new StringBundle("chrome://browser/locale/sync.properties"); - appName = syncStrings.getFormattedString("sync.defaultAccountApplication", [brandName]); + let syncStrings = Services.strings.createBundle("chrome://browser/locale/sync.properties"); + appName = syncStrings.formatStringFromName("sync.defaultAccountApplication", [brandName], 1); } catch (ex) {} appName = appName || brandName; @@ -701,7 +705,7 @@ this.Utils = { // fall back on ua info string Cc["@mozilla.org/network/protocol;1?name=http"].getService(Ci.nsIHttpProtocolHandler).oscpu; - return Str.sync.get("client.name2", [user, appName, system]); + return Str.sync.formatStringFromName("client.name2", [user, appName, system], 3); }, getDeviceName() { diff --git a/services/sync/tests/unit/test_utils_lazyStrings.js b/services/sync/tests/unit/test_utils_lazyStrings.js deleted file mode 100644 index 68f9b35747ed..000000000000 --- a/services/sync/tests/unit/test_utils_lazyStrings.js +++ /dev/null @@ -1,14 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -Cu.import("resource://services-common/stringbundle.js"); -Cu.import("resource://services-sync/util.js"); - -function run_test() { - let fn = Utils.lazyStrings("sync"); - do_check_eq(typeof fn, "function"); - let bundle = fn(); - do_check_true(bundle instanceof StringBundle); - let url = bundle.url; - do_check_eq(url, "chrome://weave/locale/services/sync.properties"); -} diff --git a/services/sync/tests/unit/xpcshell.ini b/services/sync/tests/unit/xpcshell.ini index 521086f15d3d..750c62b2960c 100644 --- a/services/sync/tests/unit/xpcshell.ini +++ b/services/sync/tests/unit/xpcshell.ini @@ -30,7 +30,6 @@ support-files = [test_utils_keyEncoding.js] [test_utils_getErrorString.js] [test_utils_json.js] -[test_utils_lazyStrings.js] [test_utils_lock.js] [test_utils_makeGUID.js] [test_utils_notify.js] diff --git a/tools/lint/eslint/modules.json b/tools/lint/eslint/modules.json index c2f7c1b5bbfa..7ad3ceadca8f 100644 --- a/tools/lint/eslint/modules.json +++ b/tools/lint/eslint/modules.json @@ -205,7 +205,6 @@ "StateMachineHelper.jsm": ["State", "CommandType"], "status.js": ["Status"], "storageserver.js": ["ServerBSO", "StorageServerCallback", "StorageServerCollection", "StorageServer", "storageServerForUsers"], - "stringbundle.js": ["StringBundle"], "strings.js": ["trim", "vslice"], "StructuredLog.jsm": ["StructuredLogger", "StructuredFormatter"], "StyleEditorUtil.jsm": ["getString", "assert", "log", "text", "wire", "showFilePicker"], From f587b4fa3f2e9a8d403b7a0df7b73f79a2dac484 Mon Sep 17 00:00:00 2001 From: Nico Grunbaum Date: Sun, 5 Mar 2017 23:37:51 -0800 Subject: [PATCH 035/130] Bug 1325173 - read full RtpStreamId when parsing RTP header extensions. r=drno MozReview-Commit-ID: CHkqA0MM3fx --HG-- extra : rebase_source : 84c0e85c9f214f1bc7403256d8c2d80809305e13 --- .../modules/rtp_rtcp/source/rtp_utility.cc | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/rtp_utility.cc b/media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/rtp_utility.cc index 0d9773d21a82..12c57ba807af 100644 --- a/media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/rtp_utility.cc +++ b/media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/rtp_utility.cc @@ -430,10 +430,20 @@ void RtpHeaderParser::ParseOneByteExtensionHeader( // | ID | L=? |UTF-8 RID value...... |... // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - // TODO(jesup) - avoid allocating on each packet - high watermark the RID buffer? - char* ptrRID = new char[len+1]; - memcpy(ptrRID, ptr, len); - ptrRID[len] = '\0'; + // As per RFC 5285 section 4.2, len is the length of the header data + // - 1. E.G. a len of 0 indicates a header data length of 1 + if ( &ptr[len + 1] > ptrRTPDataExtensionEnd ) { + LOG(LS_WARNING) << "Extension RtpStreamId data length " << (len + 1) + << " is longer than remaining input parse buffer " + << static_cast(ptrRTPDataExtensionEnd - ptr); + return; + } + + // TODO(jesup) - avoid allocating on each packet - high watermark the + // RID buffer? + char* ptrRID = new char[len + 2]; + memcpy(ptrRID, ptr, len + 1); + ptrRID[len + 1] = '\0'; header->extension.rid = ptrRID; header->extension.hasRID = true; break; From eccd251f360c4cf842f41e1dd023ce07a0502efa Mon Sep 17 00:00:00 2001 From: Mark Banner Date: Mon, 6 Mar 2017 12:29:49 +0000 Subject: [PATCH 036/130] Bug 1344690 - Fix an issue with 'Environment key "mozilla/simpletest" is unknown' when running eslint on some mochitests. r=jaws MozReview-Commit-ID: Fs27kXDh4Ht --HG-- extra : rebase_source : 4a87cf04521bc7a59e993ddbd1eb4b5dcdae7988 --- testing/mochitest/mochitest.eslintrc.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/testing/mochitest/mochitest.eslintrc.js b/testing/mochitest/mochitest.eslintrc.js index 924aeb865832..fc61fb365a90 100644 --- a/testing/mochitest/mochitest.eslintrc.js +++ b/testing/mochitest/mochitest.eslintrc.js @@ -11,6 +11,10 @@ module.exports = { "mozilla/simpletest": true, }, + "plugins": [ + "mozilla" + ], + // All globals made available in the test environment. "globals": { // `$` is defined in SimpleTest.js From d0bfa17fb3cb63852b98f3b1c38ad5734e82cac3 Mon Sep 17 00:00:00 2001 From: Zibi Braniecki Date: Fri, 3 Mar 2017 13:31:26 -0800 Subject: [PATCH 037/130] Bug 1344141 - Do not BCP47 canonicalize languages from ChromeRegistry in LocaleService. r=jfkthame MozReview-Commit-ID: I6xMPhZRUUv --HG-- extra : rebase_source : 3ce24ccbaba2e51715c121e343b682cd6088bda4 --- intl/locale/LocaleService.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/intl/locale/LocaleService.cpp b/intl/locale/LocaleService.cpp index 071be34dcf2c..df7bebac5f35 100644 --- a/intl/locale/LocaleService.cpp +++ b/intl/locale/LocaleService.cpp @@ -29,7 +29,10 @@ ReadAppLocales(nsTArray& aRetVal) nsCOMPtr cr = mozilla::services::GetToolkitChromeRegistryService(); if (cr) { - cr->GetSelectedLocale(NS_LITERAL_CSTRING("global"), true, uaLangTag); + // We don't want to canonicalize the locale from ChromeRegistry into + // it's BCP47 form because we will use it for direct language + // negotiation and BCP47 changes `ja-JP-mac` into `ja-JP-x-variant-mac`. + cr->GetSelectedLocale(NS_LITERAL_CSTRING("global"), false, uaLangTag); } if (!uaLangTag.IsEmpty()) { aRetVal.AppendElement(uaLangTag); From 19159002e95ad716fcd5614eaeb7e08fa364bccd Mon Sep 17 00:00:00 2001 From: Jan Henning Date: Sat, 4 Mar 2017 21:59:35 +0100 Subject: [PATCH 038/130] Bug 1344464 - Part 0 - Remove unneeded code. r=jchen MozReview-Commit-ID: 2mPPx4fMTM2 --HG-- extra : rebase_source : 3a9fd58de214649dba8fd66b22ae4c5fbf0442cd --- .../org/mozilla/gecko/toolbar/ToolbarEditText.java | 2 -- .../main/java/org/mozilla/gecko/InputMethods.java | 12 ------------ 2 files changed, 14 deletions(-) diff --git a/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditText.java b/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditText.java index 902dcbbdaef7..7ca1c6ca47cf 100644 --- a/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditText.java +++ b/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditText.java @@ -6,10 +6,8 @@ package org.mozilla.gecko.toolbar; import org.mozilla.gecko.AboutPages; -import org.mozilla.gecko.AppConstants.Versions; import org.mozilla.gecko.CustomEditText; import org.mozilla.gecko.InputMethods; -import org.mozilla.gecko.R; import org.mozilla.gecko.toolbar.BrowserToolbar.OnCommitListener; import org.mozilla.gecko.toolbar.BrowserToolbar.OnDismissListener; import org.mozilla.gecko.toolbar.BrowserToolbar.OnFilterListener; diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/InputMethods.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/InputMethods.java index 68ffb573924c..b3d56e28f1ab 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/InputMethods.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/InputMethods.java @@ -60,16 +60,4 @@ final public class InputMethods { public static boolean shouldCommitCharAsKey(String inputMethod) { return METHOD_HTC_TOUCH_INPUT.equals(inputMethod); } - - public static boolean isGestureKeyboard(Context context) { - // SwiftKey is a gesture keyboard, but it doesn't seem to need any special-casing - // to do AwesomeBar auto-spacing. - String inputMethod = getCurrentInputMethod(context); - return (Build.VERSION.SDK_INT >= 17 && - (METHOD_ANDROID_LATINIME.equals(inputMethod) || - METHOD_GOOGLE_LATINIME.equals(inputMethod))) || - METHOD_SWYPE.equals(inputMethod) || - METHOD_SWYPE_BETA.equals(inputMethod) || - METHOD_TOUCHPAL_KEYBOARD.equals(inputMethod); - } } From 73b4249e96c0fbdcd707abd20c74eb94bafb4742 Mon Sep 17 00:00:00 2001 From: Jan Henning Date: Sat, 4 Mar 2017 21:09:15 +0100 Subject: [PATCH 039/130] Bug 1344464 - Part 1 - Restart input after removing autocomplete text for keyboards that require it. r=jchen When we detect text being deleted from the URL bar via setComposingText while we're displaying an autocomplete suggestion, we clear the autocomplete text and prevent the keyboard's delete from having any effect on the URL bar by returning false. Some keyboards might not handle this correctly and assume that they've in fact successfully set the new text, so the next time the user presses a key can lead to weird behaviour. As a workaround, we therefore additionally restart the input for affected keyboards. MozReview-Commit-ID: DucveafL3AB --HG-- extra : rebase_source : 3ba1701adf7e4e8a03d263a75c04717aadaab663 --- .../org/mozilla/gecko/toolbar/ToolbarEditText.java | 8 ++++---- .../main/java/org/mozilla/gecko/InputMethods.java | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditText.java b/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditText.java index 7ca1c6ca47cf..60686927e75d 100644 --- a/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditText.java +++ b/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditText.java @@ -439,10 +439,7 @@ public class ToolbarEditText extends CustomEditText // are deleting, we should delete the autocomplete text first. // Make the IME aware that we interrupted the deleteSurroundingText call, // by restarting the IME. - final InputMethodManager imm = InputMethods.getInputMethodManager(mContext); - if (imm != null) { - imm.restartInput(ToolbarEditText.this); - } + InputMethods.restartInput(mContext, ToolbarEditText.this); return false; } return super.deleteSurroundingText(beforeLength, afterLength); @@ -478,6 +475,9 @@ public class ToolbarEditText extends CustomEditText @Override public boolean setComposingText(final CharSequence text, final int newCursorPosition) { if (removeAutocompleteOnComposing(text)) { + if (InputMethods.needsRemoveAutocompleteHack(mContext)) { + InputMethods.restartInput(mContext, ToolbarEditText.this); + } return false; } return super.setComposingText(text, newCursorPosition); diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/InputMethods.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/InputMethods.java index b3d56e28f1ab..97b36c5070f3 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/InputMethods.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/InputMethods.java @@ -10,6 +10,7 @@ import java.util.Collection; import android.content.Context; import android.os.Build; import android.provider.Settings.Secure; +import android.view.View; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodManager; @@ -23,6 +24,7 @@ final public class InputMethods { public static final String METHOD_OPENWNN_PLUS = "com.owplus.ime.openwnnplus/.OpenWnnJAJP"; public static final String METHOD_SAMSUNG = "com.sec.android.inputmethod/.SamsungKeypad"; public static final String METHOD_SIMEJI = "com.adamrocker.android.input.simeji/.OpenWnnSimeji"; + public static final String METHOD_SONY = "com.sonyericsson.textinput.uxp/.glue.InputMethodServiceGlue"; public static final String METHOD_SWIFTKEY = "com.touchtype.swiftkey/com.touchtype.KeyboardService"; public static final String METHOD_SWYPE = "com.swype.android.inputmethod/.SwypeInputMethod"; public static final String METHOD_SWYPE_BETA = "com.nuance.swype.input/.IME"; @@ -50,6 +52,13 @@ final public class InputMethods { return (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); } + public static void restartInput(Context context, View view) { + final InputMethodManager imm = getInputMethodManager(context); + if (imm != null) { + imm.restartInput(view); + } + } + public static boolean needsSoftResetWorkaround(String inputMethod) { // Stock latin IME on Android 4.2 and above return Build.VERSION.SDK_INT >= 17 && @@ -60,4 +69,9 @@ final public class InputMethods { public static boolean shouldCommitCharAsKey(String inputMethod) { return METHOD_HTC_TOUCH_INPUT.equals(inputMethod); } + + public static boolean needsRemoveAutocompleteHack(Context context) { + String inputMethod = getCurrentInputMethod(context); + return METHOD_SONY.equals(inputMethod); + } } From a6c2851e3e931848d123d84c00aa4791a3bb33c6 Mon Sep 17 00:00:00 2001 From: Daniel Holbert Date: Mon, 6 Mar 2017 10:52:09 -0800 Subject: [PATCH 040/130] Bug 1344812: Remove variable "sessionId" from lambda-captures where it's not used, in ClearKeySessionManager.cpp. r=cpearce MozReview-Commit-ID: IMdIBFmgwmv --HG-- extra : rebase_source : c71f7910dcea9dbd9a16ef463c5983069c90f0b7 --- media/gmp-clearkey/0.1/ClearKeySessionManager.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/media/gmp-clearkey/0.1/ClearKeySessionManager.cpp b/media/gmp-clearkey/0.1/ClearKeySessionManager.cpp index b453c47b9cb9..7a09891bafc1 100644 --- a/media/gmp-clearkey/0.1/ClearKeySessionManager.cpp +++ b/media/gmp-clearkey/0.1/ClearKeySessionManager.cpp @@ -232,7 +232,7 @@ ClearKeySessionManager::LoadSession(uint32_t aPromiseId, size); }; - function failure = [self, sessionId, aPromiseId] { + function failure = [self, aPromiseId] { if (!self->mHost) { return; } @@ -586,7 +586,7 @@ ClearKeySessionManager::RemoveSession(uint32_t aPromiseId, vector emptyKeydata; - function resolve = [self, aPromiseId, sessionId] () + function resolve = [self, aPromiseId] () { if (!self->mHost) { return; @@ -594,7 +594,7 @@ ClearKeySessionManager::RemoveSession(uint32_t aPromiseId, self->mHost->OnResolvePromise(aPromiseId); }; - function reject = [self, aPromiseId, sessionId] () + function reject = [self, aPromiseId] () { if (!self->mHost) { return; From 17a88fd2c2a22726bbcd953574f7e6ab68b0b639 Mon Sep 17 00:00:00 2001 From: Daniel Holbert Date: Mon, 6 Mar 2017 11:05:46 -0800 Subject: [PATCH 041/130] Bug 1344816: Remove unused 'this' variable lambda-captures from U2F.cpp. r=jcj MozReview-Commit-ID: 8GL2Mb7n3GU --HG-- extra : rebase_source : 2ceb937215f8fe713eec989ce8d093a075cb3414 --- dom/u2f/U2F.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dom/u2f/U2F.cpp b/dom/u2f/U2F.cpp index 2b676aaffc71..5f2cfb7d9080 100644 --- a/dom/u2f/U2F.cpp +++ b/dom/u2f/U2F.cpp @@ -714,13 +714,13 @@ U2FRegisterRunnable::Run() status->WaitGroupAdd(); registerTask->Execute()->Then(mAbstractMainThread, __func__, - [&status, this] (nsString aResponse) { + [&status] (nsString aResponse) { if (!status->IsStopped()) { status->Stop(ErrorCode::OK, aResponse); } status->WaitGroupDone(); }, - [&status, this] (ErrorCode aErrorCode) { + [&status] (ErrorCode aErrorCode) { // Ignore the failing error code, as we only want the first success. // U2F devices don't provide much for error codes anyway, so if // they all fail we'll return DEVICE_INELIGIBLE. @@ -900,13 +900,13 @@ U2FSignRunnable::Run() status->WaitGroupAdd(); signTask->Execute()->Then(mAbstractMainThread, __func__, - [&status, this] (nsString aResponse) { + [&status] (nsString aResponse) { if (!status->IsStopped()) { status->Stop(ErrorCode::OK, aResponse); } status->WaitGroupDone(); }, - [&status, this] (ErrorCode aErrorCode) { + [&status] (ErrorCode aErrorCode) { // Ignore the failing error code, as we only want the first success. // U2F devices don't provide much for error codes anyway, so if // they all fail we'll return DEVICE_INELIGIBLE. From 9acea25eaf021bf877abf48f928e2e1d4d113113 Mon Sep 17 00:00:00 2001 From: Blake Kaplan Date: Wed, 1 Mar 2017 17:11:23 -0800 Subject: [PATCH 042/130] Bug 1335801 - Make these tests wait correctly. r=Felipe,krizsa --HG-- extra : rebase_source : 36d4d2378d879d92d25e4ed0439e31f3f9f068f6 --- .../browser_referrer_open_link_in_private.js | 2 +- .../browser_referrer_open_link_in_window.js | 2 +- ..._referrer_open_link_in_window_in_container.js | 2 +- browser/base/content/test/referrer/head.js | 16 +++------------- .../BrowserTestUtils/BrowserTestUtils.jsm | 5 +++-- 5 files changed, 9 insertions(+), 18 deletions(-) diff --git a/browser/base/content/test/referrer/browser_referrer_open_link_in_private.js b/browser/base/content/test/referrer/browser_referrer_open_link_in_private.js index b09118529436..8f12e38248a9 100644 --- a/browser/base/content/test/referrer/browser_referrer_open_link_in_private.js +++ b/browser/base/content/test/referrer/browser_referrer_open_link_in_private.js @@ -6,7 +6,7 @@ function startNewPrivateWindowTestCase(aTestNumber) { getReferrerTestDescription(aTestNumber)); contextMenuOpened(gTestWindow, "testlink").then(function(aContextMenu) { newWindowOpened().then(function(aNewWindow) { - someTabLoaded(aNewWindow).then(function() { + BrowserTestUtils.firstBrowserLoaded(aNewWindow, false).then(function() { checkReferrerAndStartNextTest(aTestNumber, aNewWindow, null, startNewPrivateWindowTestCase); }); diff --git a/browser/base/content/test/referrer/browser_referrer_open_link_in_window.js b/browser/base/content/test/referrer/browser_referrer_open_link_in_window.js index 7fb9a23e2d3e..81e7b2648e94 100644 --- a/browser/base/content/test/referrer/browser_referrer_open_link_in_window.js +++ b/browser/base/content/test/referrer/browser_referrer_open_link_in_window.js @@ -6,7 +6,7 @@ function startNewWindowTestCase(aTestNumber) { getReferrerTestDescription(aTestNumber)); contextMenuOpened(gTestWindow, "testlink").then(function(aContextMenu) { newWindowOpened().then(function(aNewWindow) { - someTabLoaded(aNewWindow).then(function() { + BrowserTestUtils.firstBrowserLoaded(aNewWindow, false).then(function() { checkReferrerAndStartNextTest(aTestNumber, aNewWindow, null, startNewWindowTestCase); }); diff --git a/browser/base/content/test/referrer/browser_referrer_open_link_in_window_in_container.js b/browser/base/content/test/referrer/browser_referrer_open_link_in_window_in_container.js index 3c45c4dd57c6..d5ce8795256b 100644 --- a/browser/base/content/test/referrer/browser_referrer_open_link_in_window_in_container.js +++ b/browser/base/content/test/referrer/browser_referrer_open_link_in_window_in_container.js @@ -9,7 +9,7 @@ function startNewWindowTestCase(aTestNumber) { getReferrerTestDescription(aTestNumber)); contextMenuOpened(gTestWindow, "testlink").then(function(aContextMenu) { newWindowOpened().then(function(aNewWindow) { - someTabLoaded(aNewWindow).then(function() { + BrowserTestUtils.firstBrowserLoaded(aNewWindow, false).then(function() { checkReferrerAndStartNextTest(aTestNumber, aNewWindow, null, startNewWindowTestCase, { userContextId: 1 }); diff --git a/browser/base/content/test/referrer/head.js b/browser/base/content/test/referrer/head.js index 5175cddf035f..f83bd9fd9fb8 100644 --- a/browser/base/content/test/referrer/head.js +++ b/browser/base/content/test/referrer/head.js @@ -140,18 +140,8 @@ function delayedStartupFinished(aWindow) { * @resolves With the tab once it's loaded. */ function someTabLoaded(aWindow) { - return new Promise(function(resolve) { - aWindow.gBrowser.addEventListener("load", function onLoad(aEvent) { - if (aWindow.location.href === "about:blank") { - return; - } - let tab = aWindow.gBrowser._getTabForContentWindow( - aEvent.target.defaultView.top); - if (tab) { - aWindow.gBrowser.removeEventListener("load", onLoad, true); - resolve(tab); - } - }, true); + return BrowserTestUtils.waitForNewTab(gTestWindow.gBrowser).then((tab) => { + return BrowserTestUtils.browserStopped(tab.linkedBrowser).then(() => tab); }); } @@ -209,7 +199,7 @@ function referrerTestCaseLoaded(aTestNumber, aParams) { let browser = gTestWindow.gBrowser; return BrowserTestUtils.openNewForegroundTab(browser, () => { browser.selectedTab = browser.addTab(url, aParams); - }); + }, false, true); } /** diff --git a/testing/mochitest/BrowserTestUtils/BrowserTestUtils.jsm b/testing/mochitest/BrowserTestUtils/BrowserTestUtils.jsm index 48eae9c9c104..b471ca3c6d08 100644 --- a/testing/mochitest/BrowserTestUtils/BrowserTestUtils.jsm +++ b/testing/mochitest/BrowserTestUtils/BrowserTestUtils.jsm @@ -226,11 +226,12 @@ this.BrowserTestUtils = { * @return {Promise} * @resolves Once the selected browser fires its load event. */ - firstBrowserLoaded(win) { + firstBrowserLoaded(win, aboutBlank = true) { let mm = win.messageManager; return this.waitForMessage(mm, "browser-test-utils:loadEvent", (msg) => { let selectedBrowser = win.gBrowser.selectedBrowser; - return msg.target == selectedBrowser; + return msg.target == selectedBrowser && + (aboutBlank || selectedBrowser.currentURI.spec != "about:blank") }); }, From 5e22220b1bb6cc01cdd29b6280f28ed68807c639 Mon Sep 17 00:00:00 2001 From: Jan Henning Date: Sat, 18 Feb 2017 20:54:09 +0100 Subject: [PATCH 043/130] Bug 1340828 - Part 1 - Move SessionHistory.jsm to toolkit. r=mikedeboer We want to use this for Android, too. Once again, moving the file necessitates fixing a few ESLint errors that weren't yet checked for under the old directory. MozReview-Commit-ID: IPxcizKwzAX --HG-- rename : browser/components/sessionstore/SessionHistory.jsm => toolkit/modules/sessionstore/SessionHistory.jsm extra : rebase_source : 77a85942443026620c77508d6ccb405e0a9864ff --- .../sessionstore/ContentRestore.jsm | 2 +- .../content/content-sessionStore.js | 2 +- browser/components/sessionstore/moz.build | 1 - toolkit/modules/moz.build | 1 + .../modules}/sessionstore/SessionHistory.jsm | 25 +++++++++---------- 5 files changed, 15 insertions(+), 16 deletions(-) rename {browser/components => toolkit/modules}/sessionstore/SessionHistory.jsm (96%) diff --git a/browser/components/sessionstore/ContentRestore.jsm b/browser/components/sessionstore/ContentRestore.jsm index 8d0bd7e335d1..e12cbf1f29f7 100644 --- a/browser/components/sessionstore/ContentRestore.jsm +++ b/browser/components/sessionstore/ContentRestore.jsm @@ -20,7 +20,7 @@ XPCOMUtils.defineLazyModuleGetter(this, "PageStyle", XPCOMUtils.defineLazyModuleGetter(this, "ScrollPosition", "resource://gre/modules/ScrollPosition.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "SessionHistory", - "resource:///modules/sessionstore/SessionHistory.jsm"); + "resource://gre/modules/sessionstore/SessionHistory.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "SessionStorage", "resource:///modules/sessionstore/SessionStorage.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "Utils", diff --git a/browser/components/sessionstore/content/content-sessionStore.js b/browser/components/sessionstore/content/content-sessionStore.js index 3c8f5488a713..26f3e9f2fca4 100644 --- a/browser/components/sessionstore/content/content-sessionStore.js +++ b/browser/components/sessionstore/content/content-sessionStore.js @@ -28,7 +28,7 @@ XPCOMUtils.defineLazyModuleGetter(this, "PageStyle", XPCOMUtils.defineLazyModuleGetter(this, "ScrollPosition", "resource://gre/modules/ScrollPosition.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "SessionHistory", - "resource:///modules/sessionstore/SessionHistory.jsm"); + "resource://gre/modules/sessionstore/SessionHistory.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "SessionStorage", "resource:///modules/sessionstore/SessionStorage.jsm"); diff --git a/browser/components/sessionstore/moz.build b/browser/components/sessionstore/moz.build index 0775053b4688..357db480d548 100644 --- a/browser/components/sessionstore/moz.build +++ b/browser/components/sessionstore/moz.build @@ -33,7 +33,6 @@ EXTRA_JS_MODULES.sessionstore = [ 'RunState.jsm', 'SessionCookies.jsm', 'SessionFile.jsm', - 'SessionHistory.jsm', 'SessionMigration.jsm', 'SessionSaver.jsm', 'SessionStorage.jsm', diff --git a/toolkit/modules/moz.build b/toolkit/modules/moz.build index bcc04f59f42c..e1cc1ce29387 100644 --- a/toolkit/modules/moz.build +++ b/toolkit/modules/moz.build @@ -102,6 +102,7 @@ EXTRA_JS_MODULES += [ EXTRA_JS_MODULES.third_party.jsesc += ['third_party/jsesc/jsesc.js'] EXTRA_JS_MODULES.sessionstore += [ 'sessionstore/PrivacyLevel.jsm', + 'sessionstore/SessionHistory.jsm', 'sessionstore/Utils.jsm', ] diff --git a/browser/components/sessionstore/SessionHistory.jsm b/toolkit/modules/sessionstore/SessionHistory.jsm similarity index 96% rename from browser/components/sessionstore/SessionHistory.jsm rename to toolkit/modules/sessionstore/SessionHistory.jsm index ede8dbf09fa8..fdb1a4f212f6 100644 --- a/browser/components/sessionstore/SessionHistory.jsm +++ b/toolkit/modules/sessionstore/SessionHistory.jsm @@ -26,15 +26,15 @@ function debug(msg) { * The external API exported by this module. */ this.SessionHistory = Object.freeze({ - isEmpty: function (docShell) { + isEmpty(docShell) { return SessionHistoryInternal.isEmpty(docShell); }, - collect: function (docShell, aFromIdx = -1) { + collect(docShell, aFromIdx = -1) { return SessionHistoryInternal.collect(docShell, aFromIdx); }, - restore: function (docShell, tabData) { + restore(docShell, tabData) { SessionHistoryInternal.restore(docShell, tabData); } }); @@ -54,7 +54,7 @@ var SessionHistoryInternal = { * @param docShell * The docShell that owns the session history. */ - isEmpty: function (docShell) { + isEmpty(docShell) { let webNavigation = docShell.QueryInterface(Ci.nsIWebNavigation); let history = webNavigation.sessionHistory; if (!webNavigation.currentURI) { @@ -73,7 +73,7 @@ var SessionHistoryInternal = { * The starting local index to collect the history from. * @return An object reprereseting a partial global history update. */ - collect: function (docShell, aFromIdx = -1) { + collect(docShell, aFromIdx = -1) { let loadContext = docShell.QueryInterface(Ci.nsILoadContext); let webNavigation = docShell.QueryInterface(Ci.nsIWebNavigation); let history = webNavigation.sessionHistory.QueryInterface(Ci.nsISHistoryInternal); @@ -141,7 +141,7 @@ var SessionHistoryInternal = { * nsISHEntry instance * @return object */ - serializeEntry: function (shEntry) { + serializeEntry(shEntry) { let entry = { url: shEntry.URI.spec }; // Save some bytes and don't include the title property @@ -276,7 +276,7 @@ var SessionHistoryInternal = { * @param tabData * The tabdata including all history entries. */ - restore: function (docShell, tabData) { + restore(docShell, tabData) { let webNavigation = docShell.QueryInterface(Ci.nsIWebNavigation); let history = webNavigation.sessionHistory; if (history.count > 0) { @@ -288,7 +288,7 @@ var SessionHistoryInternal = { let docIdentMap = {}; for (let i = 0; i < tabData.entries.length; i++) { let entry = tabData.entries[i]; - //XXXzpao Wallpaper patch for bug 514751 + // XXXzpao Wallpaper patch for bug 514751 if (!entry.url) continue; let persist = "persist" in entry ? entry.persist : true; @@ -313,7 +313,7 @@ var SessionHistoryInternal = { * Hash to ensure reuse of BFCache entries * @returns nsISHEntry */ - deserializeEntry: function (entry, idMap, docIdentMap) { + deserializeEntry(entry, idMap, docIdentMap) { var shEntry = Cc["@mozilla.org/browser/session-history-entry;1"]. createInstance(Ci.nsISHEntry); @@ -401,10 +401,9 @@ var SessionHistoryInternal = { // for the document identifier. let matchingEntry = docIdentMap[entry.docIdentifier]; if (!matchingEntry) { - matchingEntry = {shEntry: shEntry, childDocIdents: childDocIdents}; + matchingEntry = {shEntry, childDocIdents}; docIdentMap[entry.docIdentifier] = matchingEntry; - } - else { + } else { shEntry.adoptBFCacheEntry(matchingEntry.shEntry); childDocIdents = matchingEntry.childDocIdents; } @@ -435,7 +434,7 @@ var SessionHistoryInternal = { if (entry.children && shEntry instanceof Ci.nsISHContainer) { for (var i = 0; i < entry.children.length; i++) { - //XXXzpao Wallpaper patch for bug 514751 + // XXXzpao Wallpaper patch for bug 514751 if (!entry.children[i].url) continue; From 1f261001af50745d5f988c4a14514f73e541214e Mon Sep 17 00:00:00 2001 From: Jan Henning Date: Sat, 18 Feb 2017 22:50:58 +0100 Subject: [PATCH 044/130] Bug 1340828 - Part 2 - Make life easier for Fennec. r=mikedeboer Life would easier if the restore function could return a reference to the session history object retrieved from the DocShell, so that Fennec's main session store code can use that to trigger the needed reload afterwards instead of having to retrieve it again independently. MozReview-Commit-ID: 1J5k4Evbc8Y --HG-- extra : rebase_source : 57953eedf12b97555d81ca3debce64312f6f0542 --- toolkit/modules/sessionstore/SessionHistory.jsm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/toolkit/modules/sessionstore/SessionHistory.jsm b/toolkit/modules/sessionstore/SessionHistory.jsm index fdb1a4f212f6..58356a7cb5ee 100644 --- a/toolkit/modules/sessionstore/SessionHistory.jsm +++ b/toolkit/modules/sessionstore/SessionHistory.jsm @@ -35,7 +35,7 @@ this.SessionHistory = Object.freeze({ }, restore(docShell, tabData) { - SessionHistoryInternal.restore(docShell, tabData); + return SessionHistoryInternal.restore(docShell, tabData); } }); @@ -275,6 +275,7 @@ var SessionHistoryInternal = { * The docShell that owns the session history. * @param tabData * The tabdata including all history entries. + * @return A reference to the docShell's nsISHistoryInternal interface. */ restore(docShell, tabData) { let webNavigation = docShell.QueryInterface(Ci.nsIWebNavigation); @@ -300,6 +301,7 @@ var SessionHistoryInternal = { if (index < history.count && history.index != index) { history.getEntryAtIndex(index, true); } + return history; }, /** From 659b62bd26f88115bff3ba04960f407c0f6b7c3d Mon Sep 17 00:00:00 2001 From: Jan Henning Date: Sat, 18 Feb 2017 23:35:48 +0100 Subject: [PATCH 045/130] Bug 1340828 - Part 3 - Switch Fennec's session store over to SessionHistory.jsm. r=sebastian Fennec's session store code was forked from Desktop a few years ago. Since then, the Desktop session store code has been refactored and modularised, which allows us to pull in again the bits the are compatible with our session store architecture and don't require any mobile-specific handling. The handling of session history is such a case - with the exception of the "wyciwyg" filtering, any differences between SessionHistory.jsm and our equivalent in sessionstore.js seems to stem from Desktop bugfixes that were never ported over to our copy of the code. Switching Fennec's session store over to use SessionHistory.jsm will prevent those sort of errors from occurring again in the future and hopefully simplify the maintenance of the session history code going forward. MozReview-Commit-ID: Hm0TWTwtPsI --HG-- extra : rebase_source : 5935c7baeefbd2c75754fe609b684aaf40ee85e9 --- mobile/android/components/SessionStore.js | 352 ++-------------------- 1 file changed, 31 insertions(+), 321 deletions(-) diff --git a/mobile/android/components/SessionStore.js b/mobile/android/components/SessionStore.js index 2350bbd036b2..b3e588fde855 100644 --- a/mobile/android/components/SessionStore.js +++ b/mobile/android/components/SessionStore.js @@ -21,13 +21,7 @@ XPCOMUtils.defineLazyModuleGetter(this, "ScrollPosition", "resource://gre/module XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch", "resource://gre/modules/TelemetryStopwatch.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "Log", "resource://gre/modules/AndroidLog.jsm", "AndroidLog"); XPCOMUtils.defineLazyModuleGetter(this, "SharedPreferences", "resource://gre/modules/SharedPreferences.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "Utils", "resource://gre/modules/sessionstore/Utils.jsm"); -XPCOMUtils.defineLazyServiceGetter(this, "serializationHelper", - "@mozilla.org/network/serialization-helper;1", - "nsISerializationHelper"); -XPCOMUtils.defineLazyServiceGetter(this, "uuidGenerator", - "@mozilla.org/uuid-generator;1", - "nsIUUIDGenerator"); +XPCOMUtils.defineLazyModuleGetter(this, "SessionHistory", "resource://gre/modules/sessionstore/SessionHistory.jsm"); function dump(a) { Services.console.logStringMessage(a); @@ -98,9 +92,6 @@ SessionStore.prototype = { // The Java UI will tell us which tab to watch out for. _keepAsZombieTabId: -1, - // Mapping from legacy docshellIDs to docshellUUIDs. - _docshellUUIDMap: new Map(), - init: function ss_init() { loggingEnabled = Services.prefs.getBoolPref("browser.sessionstore.debug_logging"); @@ -708,25 +699,28 @@ SessionStore.prototype = { return; } - let history = aBrowser.sessionHistory; - - // Serialize the tab data - let entries = []; - let index = history.index + 1; - for (let i = 0; i < history.count; i++) { - let historyEntry = history.getEntryAtIndex(i, false); - // Don't try to restore wyciwyg URLs - if (historyEntry.URI.schemeIs("wyciwyg")) { - // Adjust the index to account for skipped history entries - if (i <= history.index) { - index--; - } - continue; - } - let entry = this._serializeHistoryEntry(historyEntry); - entries.push(entry); + // Serialize the tab's session history data. + let data = SessionHistory.collect(aBrowser.docShell); + if (!data.index) { + // Bail out if we couldn't collect even basic fallback data. + return; + } + + // Filter out any top level "wyciwyg" entries that might have come through. + // Once we can figure out a GroupedSHistory-compatible way of doing this, + // we should move this into SessionHistory.jsm (see bug 1340874). + let historyIndex = data.index - 1; + for (let i = 0; i < data.entries.length; i++) { + if (data.entries[i].url.startsWith("wyciwyg")) { + // Adjust the index to account for skipped history entries. + if (i <= historyIndex) { + data.index--; + historyIndex--; + } + data.entries.splice(i, 1); + i--; + } } - let data = { entries: entries, index: index }; let formdata; let scrolldata; @@ -736,6 +730,7 @@ SessionStore.prototype = { } delete aBrowser.__SS_data; + // Collect the rest of the tab data and merge it with the history collected above. this._collectTabData(aWindow, aBrowser, data); if (aBrowser.__SS_restoreDataOnLoad || aBrowser.__SS_restoreDataOnPageshow) { // If the tab has been freshly restored and the "load" or "pageshow" @@ -1073,8 +1068,6 @@ SessionStore.prototype = { return; } - aHistory = aHistory || { entries: [{ url: aBrowser.currentURI.spec, title: aBrowser.contentTitle }], index: 1 }; - let tabData = {}; let tab = aWindow.BrowserApp.getTabForBrowser(aBrowser); tabData.entries = aHistory.entries; @@ -1224,272 +1217,6 @@ SessionStore.prototype = { } }, - /** - * Determines whether a given session history entry has been added dynamically. - */ - isDynamic: function(aEntry) { - // aEntry.isDynamicallyAdded() is true for dynamically added - //