diff --git a/BUILDING_MIDDLEMAC.md b/BUILDING_MIDDLEMAC.md index 97c6a08..e13a14a 100644 --- a/BUILDING_MIDDLEMAC.md +++ b/BUILDING_MIDDLEMAC.md @@ -22,7 +22,7 @@ place. If a build step spawns a new shell, then that shell is likely to use what `rbenv global 3.4.4` Okay, and now we need to build and then install Middlemac. First, grab the source that has -been modified to work with +been modified to work with Ruby 3: `git clone git@github.com:sbeitzel/middlemac.git` diff --git a/Configuration/Project-Debug.xcconfig b/Configuration/Project-Debug.xcconfig new file mode 100644 index 0000000..f98aa58 --- /dev/null +++ b/Configuration/Project-Debug.xcconfig @@ -0,0 +1,138 @@ +// +// Project-Debug.xcconfig +// +// Generated by BuildSettingExtractor on 6/28/25 +// https://buildsettingextractor.com +// + +#include "Project-Shared.xcconfig" + +// Debug Information Format +// +// The type of debug information to produce. +// +// * DWARF: Object files and linked products will use DWARF as the debug information +// format. [dwarf] +// * DWARF with dSYM File: Object files and linked products will use DWARF as the debug +// information format, and Xcode will also produce a dSYM file containing the debug +// information from the individual object files (except that a dSYM file is not needed +// and will not be created for static library or object file products). [dwarf-with-dsym] + +DEBUG_INFORMATION_FORMAT = dwarf + + + +// Enable Testability +// +// Enabling this setting will build the target with options appropriate for running +// automated tests against its product. +// +// This setting can be enabled when building targets for debugging if their products will +// be tested. This may result in tests running slower than otherwise. +// +// When this setting is enabled: +// +// * `GCC_SYMBOLS_PRIVATE_EXTERN` is disabled (`-fvisibility=hidden` will not be passed +// to `clang`). +// * `-enable-testing` is passed to the Swift compiler. +// * `-rdynamic` is passed to the linker. +// * `STRIP_INSTALLED_PRODUCT` is disabled (`strip` will not be run on the produced +// binary). + +ENABLE_TESTABILITY = YES + + + +// Generate Position-Dependent Code +// +// Faster function calls for applications. Not appropriate for shared libraries, which +// need to be position-independent. + +GCC_DYNAMIC_NO_PIC = NO + + + +// Optimization Level +// +// Specifies the degree to which the generated code is optimized for speed and binary +// size. +// +// * None: Do not optimize. [-O0] +// With this setting, the compiler's goal is to reduce the cost of compilation and to +// make debugging produce the expected results. Statements are independent—if you stop +// the program with a breakpoint between statements, you can then assign a new value to +// any variable or change the program counter to any other statement in the function and +// get exactly the results you would expect from the source code. +// * Fast: Optimizing compilation takes somewhat more time, and a lot more memory for a +// large function. [-O1] +// With this setting, the compiler tries to reduce code size and execution time, +// without performing any optimizations that take a great deal of compilation time. In +// Apple's compiler, strict aliasing, block reordering, and inter-block scheduling are +// disabled by default when optimizing. +// * Faster: The compiler performs nearly all supported optimizations that do not +// involve a space-speed tradeoff. [-O2] +// With this setting, the compiler does not perform loop unrolling or function +// inlining, or register renaming. As compared to the `Fast` setting, this setting +// increases both compilation time and the performance of the generated code. +// * Fastest: Turns on all optimizations specified by the `Faster` setting and also +// turns on function inlining and register renaming options. This setting may result in a +// larger binary. [-O3] +// * Fastest, Smallest: Optimize for size. This setting enables all `Faster` +// optimizations that do not typically increase code size. It also performs further +// optimizations designed to reduce code size. [-Os] +// * Fastest, Aggressive Optimizations: This setting enables `Fastest` but also enables +// aggressive optimizations that may break strict standards compliance but should work +// well on well-behaved code. [-Ofast] +// * Smallest, Aggressive Size Optimizations: This setting enables additional size +// savings by isolating repetitive code patterns into a compiler generated function. +// [-Oz] + +GCC_OPTIMIZATION_LEVEL = 0 + + + +// Preprocessor Macros +// +// Space-separated list of preprocessor macros of the form `foo` or `foo=bar`. + +GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 $(inherited) + + + +// Produce Debugging Information +// +// Debugging information is required for shader debugging and profiling. + +MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE + + + +// Build Active Architecture Only +// +// If enabled, only the active architecture is built. This setting will be ignored when +// building with a run destination which does not define a specific architecture, such as +// a 'Generic Device' run destination, or if the 'Override Architectures' scheme option +// is set to 'Match Run Destination' or 'Universal'. + +ONLY_ACTIVE_ARCH = YES + + + +// Active Compilation Conditions +// +// A list of compilation conditions to enable for conditional compilation expressions. + +SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG $(inherited) + + + +// Swift Optimization Level +// +// * None: Compile without any optimization. [-Onone] +// * Optimize for Speed: [-O] +// * Optimize for Size: [-Osize] +// * Whole Module Optimization: [-O -whole-module-optimization] + +SWIFT_OPTIMIZATION_LEVEL = -Onone + +#include? "../../SharedXcodeSettings/DeveloperSettings.xcconfig" diff --git a/Configuration/Project-Release.xcconfig b/Configuration/Project-Release.xcconfig new file mode 100644 index 0000000..8f6aeb7 --- /dev/null +++ b/Configuration/Project-Release.xcconfig @@ -0,0 +1,54 @@ +// +// Project-Release.xcconfig +// +// Generated by BuildSettingExtractor on 6/28/25 +// https://buildsettingextractor.com +// + +#include "Project-Shared.xcconfig" + +// Debug Information Format +// +// The type of debug information to produce. +// +// * DWARF: Object files and linked products will use DWARF as the debug information +// format. [dwarf] +// * DWARF with dSYM File: Object files and linked products will use DWARF as the debug +// information format, and Xcode will also produce a dSYM file containing the debug +// information from the individual object files (except that a dSYM file is not needed +// and will not be created for static library or object file products). [dwarf-with-dsym] + +DEBUG_INFORMATION_FORMAT = dwarf-with-dsym + + + +// Enable Foundation Assertions +// +// Controls whether assertion logic provided by `NSAssert` is included in the +// preprocessed source code or is elided during preprocessing. Disabling assertions can +// improve code performance. + +ENABLE_NS_ASSERTIONS = NO + + + +// Produce Debugging Information +// +// Debugging information is required for shader debugging and profiling. + +MTL_ENABLE_DEBUG_INFO = NO + + + +// Swift Compilation Mode +// +// This setting controls the way the Swift files in a module are rebuilt. +// +// * Incremental: Only rebuild the Swift source files in the module that are out of +// date, running multiple compiler processes as needed. +// * Whole Module: Always rebuild all Swift source files in the module, in a single +// compiler process. + +SWIFT_COMPILATION_MODE = wholemodule + +#include? "../../SharedXcodeSettings/DeveloperSettings.xcconfig" diff --git a/Configuration/Project-Shared.xcconfig b/Configuration/Project-Shared.xcconfig new file mode 100644 index 0000000..ee614cb --- /dev/null +++ b/Configuration/Project-Shared.xcconfig @@ -0,0 +1,487 @@ +// +// Project-Shared.xcconfig +// +// Generated by BuildSettingExtractor on 6/28/25 +// https://buildsettingextractor.com +// + +// Always Search User Paths (Deprecated) +// +// This setting is deprecated as of Xcode 8.3 and may not be supported in future +// versions. It is recommended that you disable the setting. +// +// If enabled, both `#include `-style and `#include "header.h"`-style +// directives search the paths in `USER_HEADER_SEARCH_PATHS` before +// `HEADER_SEARCH_PATHS`. As a consequence, user headers, such as your own `String.h` +// header, have precedence over system headers when using `#include `. This is +// done using the `-iquote` flag for the paths provided in `USER_HEADER_SEARCH_PATHS`. If +// disabled and your compiler fully supports separate user paths, user headers are only +// accessible with `#include "header.h"`-style preprocessor directives. +// +// For backwards compatibility reasons, this setting is enabled by default. Disabling it +// is strongly recommended. + +ALWAYS_SEARCH_USER_PATHS = NO + + + +// Generate Swift Asset Symbol Extensions +// +// Generate asset symbol extensions on Apple framework color and image types. + +ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES + + + +// Misuse of 'nonnull' +// +// Check for misuses of `nonnull` parameter and return types. + +CLANG_ANALYZER_NONNULL = YES + + + +// Suspicious Conversions of NSNumber and CFNumberRef +// +// Warn when a number object, such as an instance of `NSNumber`, `CFNumberRef`, +// `OSNumber`, or `OSBoolean` is compared or converted to a primitive value instead of +// another object. + +CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE + + + +// C++ Language Dialect +// +// Choose a standard or non-standard C++ language dialect. Options include: +// +// * C++98: Accept ISO C++ 1998 with amendments, but not GNU extensions. [-std=c++98] +// * GNU++98: Accept ISO C++ 1998 with amendments and GNU extensions. [-std=gnu++98] +// * C++11: Accept the ISO C++ 2011 standard with amendments, but not GNU extensions. +// [-std=c++11] +// * GNU++11: Accept the ISO C++ 2011 standard with amendments and GNU extensions. +// [-std=gnu++11] +// * C++14: Accept the ISO C++ 2014 standard with amendments, but not GNU extensions. +// [-std=c++14] +// * GNU++14: Accept the ISO C++ 2014 standard with amendments and GNU extensions. +// [-std=gnu++14] +// * C++17: Accept the ISO C++ 2017 standard with amendments, but not GNU extensions. +// [-std=c++17] +// * GNU++17: Accept the ISO C++ 2017 standard with amendments and GNU extensions. +// [-std=gnu++17] +// * C++20: Accept the ISO C++ 2020 standard with amendments, but not GNU extensions. +// [-std=c++20] +// * GNU++20: Accept the ISO C++ 2020 standard with amendments and GNU extensions. +// [-std=gnu++20] +// * C++23: Accept the ISO C++ 2023 standard with amendments, but not GNU extensions. +// [-std=c++23] +// * GNU++23: Accept the ISO C++ 2023 standard with amendments and GNU extensions. +// [-std=gnu++23] +// * Compiler Default: Tells the compiler to use its default C++ language dialect. This +// is normally the best choice unless you have specific needs. (Currently equivalent to +// GNU++98.) + +CLANG_CXX_LANGUAGE_STANDARD = gnu++20 + + + +// Enable Modules (C and Objective-C) +// +// Enables the use of modules for system APIs. System headers are imported as semantic +// modules instead of raw headers. This can result in faster builds and project indexing. + +CLANG_ENABLE_MODULES = YES + + + +// Objective-C Automatic Reference Counting +// +// Compiles reference-counted Objective-C code to use Automatic Reference Counting. Code +// compiled using automated reference counting is compatible with other code (such as +// frameworks) compiled using either manual reference counting (for example, traditional +// `retain` and `release` messages) or automated reference counting. [-fobjc-arc] + +CLANG_ENABLE_OBJC_ARC = YES + + + +// Weak References in Manual Retain Release +// +// Compiles Objective-C code to enable weak references for code compiled with manual +// retain release (MRR) semantics. + +CLANG_ENABLE_OBJC_WEAK = YES + + + +// Duplicate Method Definitions +// +// Warn about declaring the same method more than once within the same `@interface`. + +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES + + + +// Block Capture of Autoreleasing +// +// Warn about block captures of implicitly autoreleasing parameters. + +CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES + + + +// Implicit Boolean Conversions +// +// Warn about implicit conversions to boolean values that are suspicious. For example, +// writing `if (foo)` where `foo` is the name a function will trigger a warning. + +CLANG_WARN_BOOL_CONVERSION = YES + + + +// Suspicious Commas +// +// Warn about suspicious uses of the comma operator. + +CLANG_WARN_COMMA = YES + + + +// Implicit Constant Conversions +// +// Warn about implicit conversions of constant values that cause the constant value to +// change, either through a loss of precision, or entirely in its meaning. + +CLANG_WARN_CONSTANT_CONVERSION = YES + + + +// Overriding Deprecated Objective-C Methods +// +// Warn if an Objective-C class either subclasses a deprecated class or overrides a +// method that has been marked deprecated or unavailable. + +CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES + + + +// Direct usage of 'isa' +// +// Warn about direct accesses to the Objective-C `isa` pointer instead of using a runtime +// API. + +CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR + + + +// Documentation Comments +// +// Warns about issues in documentation comments (`doxygen`-style) such as missing or +// incorrect documentation tags. + +CLANG_WARN_DOCUMENTATION_COMMENTS = YES + + + +// Empty Loop Bodies +// +// Warn about loop bodies that are suspiciously empty. + +CLANG_WARN_EMPTY_BODY = YES + + + +// Implicit Enum Conversions +// +// Warn about implicit conversions between different kinds of enum values. For example, +// this can catch issues when using the wrong enum flag as an argument to a function or +// method. + +CLANG_WARN_ENUM_CONVERSION = YES + + + +// Infinite Recursion +// +// Warn if all paths through a function call itself. + +CLANG_WARN_INFINITE_RECURSION = YES + + + +// Implicit Integer to Pointer Conversions +// +// Warn about implicit conversions between pointers and integers. For example, this can +// catch issues when one incorrectly intermixes using `NSNumber*`'s and raw integers. + +CLANG_WARN_INT_CONVERSION = YES + + + +// Implicit Non-Literal Null Conversions +// +// Warn about non-literal expressions that evaluate to zero being treated as a null +// pointer. + +CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES + + + +// Implicit retain of 'self' within blocks +// +// Warn about implicit retains of `self` within blocks, which can create a retain-cycle. + +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES + + + +// Implicit Objective-C Literal Conversions +// +// Warn about implicit conversions from Objective-C literals to values of incompatible +// type. + +CLANG_WARN_OBJC_LITERAL_CONVERSION = YES + + + +// Unintentional Root Class +// +// Warn about classes that unintentionally do not subclass a root class, such as +// `NSObject`. + +CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR + + + +// Quoted Include In Framework Header +// +// Warns when a quoted include is used instead of a framework style include in a +// framework header. + +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES + + + +// Range-based For Loops +// +// Warn about ranged-based for loops. + +CLANG_WARN_RANGE_LOOP_ANALYSIS = YES + + + +// Strict Prototypes +// +// Warn about non-prototype declarations. + +CLANG_WARN_STRICT_PROTOTYPES = YES + + + +// Suspicious Moves +// +// Warn about suspicious uses of `std::move`. + +CLANG_WARN_SUSPICIOUS_MOVE = YES + + + +// Unguarded availability +// +// Warn if an API that is newer than the deployment target is used without "if +// (@available(...))" guards. + +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE + + + +// Unreachable Code +// +// Warns about potentially unreachable code. + +CLANG_WARN_UNREACHABLE_CODE = YES + + + +// Strip Debug Symbols During Copy +// +// Specifies whether binary files that are copied during the build, such as in a Copy +// Bundle Resources or Copy Files build phase, should be stripped of debugging symbols. +// It does not cause the linked product of a target to be stripped—use +// `STRIP_INSTALLED_PRODUCT` for that. + +COPY_PHASE_STRIP = NO + + + +// Development Team +// +// The team ID of a development team to use for signing certificates and provisioning +// profiles. + +DEVELOPMENT_TEAM = B5C26XE59E + + + +// Enable Strict Checking of objc_msgSend Calls +// +// Controls whether `objc_msgSend` calls must be cast to the appropriate function pointer +// type before being called. + +ENABLE_STRICT_OBJC_MSGSEND = YES + + + +// User Script Sandboxing +// +// If enabled, the build system will sandbox user scripts to disallow undeclared +// input/output dependencies. + +ENABLE_USER_SCRIPT_SANDBOXING = YES + + + +// C Language Dialect +// +// Choose a standard or non-standard C language dialect. +// +// * ANSI C: Accept ISO C90 and ISO C++, turning off GNU extensions that are +// incompatible. [-ansi] +// Incompatible GNU extensions include the `asm`, `inline`, and `typeof` keywords (but +// not the equivalent `__asm__`, `__inline__`, and `__typeof__` forms), and the `//` +// syntax for comments. +// This setting also enables trigraphs. +// * C89: Accept ISO C90 (1990), but not GNU extensions. [-std=c89] +// * GNU89: Accept ISO C90 and GNU extensions. [-std=gnu89] +// * C99: Accept ISO C99 (1999), but not GNU extensions. [-std=c99] +// * GNU99: Accept ISO C99 and GNU extensions. [-std=gnu99] +// * C11: Accept ISO C11 (2011), but not GNU extensions. [-std=c11] +// * GNU11: Accept ISO C11 and GNU extensions. [-std=gnu11] +// * C17: Accept ISO C17 (2018), but not GNU extensions. [-std=c17] +// * GNU17: Accept ISO C17 and GNU extensions. [-std=gnu17] +// * C23: Accept ISO C23 (2024), but not GNU extensions. [-std=c23] +// * GNU23: Accept ISO C23 and GNU extensions. [-std=gnu23] +// * Compiler Default: Tells the compiler to use its default C language dialect. This +// is normally the best choice unless you have specific needs. (Currently equivalent to +// GNU99.) + +GCC_C_LANGUAGE_STANDARD = gnu17 + + + +// No Common Blocks +// +// In C, allocate even uninitialized global variables in the data section of the object +// file, rather than generating them as common blocks. This has the effect that if the +// same variable is declared (without `extern`) in two different compilations, you will +// get an error when you link them. + +GCC_NO_COMMON_BLOCKS = YES + + + +// Implicit Conversion to 32 Bit Type +// +// Warn if a value is implicitly converted from a 64-bit type to a 32-bit type. This is a +// subset of the warnings provided by -Wconversion. + +GCC_WARN_64_TO_32_BIT_CONVERSION = YES + + + +// Mismatched Return Type +// +// Causes warnings to be emitted when a function with a defined return type (not `void`) +// contains a return statement without a return-value or when it does not contain any +// return statements. Also emits a warning when a function with a void return type tries +// to return a value. + +GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR + + + +// Undeclared Selector +// +// Warn if a `@selector(...)` expression referring to an undeclared selector is found. A +// selector is considered undeclared if no method with that name has been declared before +// the `@selector(...)` expression, either explicitly in an `@interface` or `@protocol` +// declaration, or implicitly in an `@implementation` section. This option always +// performs its checks as soon as a `@selector(...)` expression is found, while +// `-Wselector` only performs its checks in the final stage of compilation. This also +// enforces the coding style convention that methods and selectors must be declared +// before being used. + +GCC_WARN_UNDECLARED_SELECTOR = YES + + + +// Uninitialized Variables +// +// Warn if a variable might be clobbered by a `setjmp` call or if an automatic variable +// is used without prior initialization. +// +// The compiler may not detect all cases where an automatic variable is initialized or +// all usage patterns that may lead to use prior to initialization. You can toggle +// between the normal uninitialized value checking or the more aggressive (conservative) +// checking, which finds more issues but the checking is much stricter. + +GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE + + + +// Unused Functions +// +// Warn whenever a static function is declared but not defined or a non-inline static +// function is unused. + +GCC_WARN_UNUSED_FUNCTION = YES + + + +// Unused Variables +// +// Warn whenever a local variable or nonconstant static variable is unused aside from its +// declaration. + +GCC_WARN_UNUSED_VARIABLE = YES + + + +// Localization Prefers String Catalogs +// +// When enabled, string tables generated in a localization export will prefer the String +// Catalog format. + +LOCALIZATION_PREFERS_STRING_CATALOGS = YES + + + +// macOS Deployment Target +// +// Code will load on this and later versions of macOS. Framework APIs that are +// unavailable in earlier versions will be weak-linked; your code should check for `null` +// function pointers or specific system versions before calling newer APIs. + +MACOSX_DEPLOYMENT_TARGET = 15.4 + + + +// Enable Fast Math +// +// Enable optimizations for floating-point arithmetic that may violate the IEEE 754 +// standard and disable the high precision variant of math functions for single and half +// precision floating-point. + +MTL_FAST_MATH = YES + + + +// Base SDK +// +// The name or path of the base SDK being used during the build. The product will be +// built against the headers and libraries located inside the indicated SDK. This path +// will be prepended to all search paths, and will be passed through the environment to +// the compiler and linker. Additional SDKs can be specified in the `ADDITIONAL_SDKS` +// setting. + +SDKROOT = macosx diff --git a/Configuration/ShipShape-Debug.xcconfig b/Configuration/ShipShape-Debug.xcconfig new file mode 100644 index 0000000..9bb0d6b --- /dev/null +++ b/Configuration/ShipShape-Debug.xcconfig @@ -0,0 +1,14 @@ +// +// ShipShape-Debug.xcconfig +// +// Generated by BuildSettingExtractor on 6/28/25 +// https://buildsettingextractor.com +// + +#include? "../../SharedXcodeSettings/DeveloperSettings.xcconfig" + +#include "ShipShape-Shared.xcconfig" + +//********************************************// +//* Currently no build settings in this file *// +//********************************************// diff --git a/Configuration/ShipShape-Release.xcconfig b/Configuration/ShipShape-Release.xcconfig new file mode 100644 index 0000000..ea4c6e7 --- /dev/null +++ b/Configuration/ShipShape-Release.xcconfig @@ -0,0 +1,14 @@ +// +// ShipShape-Release.xcconfig +// +// Generated by BuildSettingExtractor on 6/28/25 +// https://buildsettingextractor.com +// + +#include? "../../SharedXcodeSettings/DeveloperSettings.xcconfig" + +#include "ShipShape-Shared.xcconfig" + +//********************************************// +//* Currently no build settings in this file *// +//********************************************// diff --git a/Configuration/ShipShape-Shared.xcconfig b/Configuration/ShipShape-Shared.xcconfig new file mode 100644 index 0000000..ad32d1e --- /dev/null +++ b/Configuration/ShipShape-Shared.xcconfig @@ -0,0 +1,300 @@ +// +// ShipShape-Shared.xcconfig +// +// Generated by BuildSettingExtractor on 6/28/25 +// https://buildsettingextractor.com +// + +// Primary App Icon Set Name +// +// Name of an app icon set for the target's default app icon. The contents will be merged +// into the `Info.plist`. + +ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon + + + +// Global Accent Color Name +// +// The name of a color resource to use as a the target's accent color, used as the +// default tint color on iOS and watchOS, and accent color on macOS. + +ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor + + + +// Code Signing Entitlements +// +// The path to a file specifying code-signing entitlements. + +CODE_SIGN_ENTITLEMENTS = ShipShape/ShipShape.entitlements + + + +// Code Signing Style +// +// This setting specifies the method used to acquire and locate signing assets. Choose +// `Automatic` to let Xcode automatically create and update profiles, app IDs, and +// certificates. Choose `Manual` to create and update these yourself on the developer +// website. + +CODE_SIGN_STYLE = Automatic + + + +// Combine HiDPI Images +// +// Combines image files at different resolutions into one multi-page TIFF file that is +// HiDPI compliant for macOS 10.7 and later. Only image files in the same directory and +// with the same base name and extension are combined. The file names must conform to the +// naming convention used in HiDPI. + +COMBINE_HIDPI_IMAGES = YES + + + +// Current Project Version +// +// This setting defines the current version of the project. The value must be a integer +// or floating point number, such as `57` or `365.8`. +// +// When `GENERATE_INFOPLIST_FILE` is enabled, sets the value of the +// [CFBundleVersion](https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleversion) +// key in the `Info.plist` file to the value of this build setting. + +CURRENT_PROJECT_VERSION = 1 + + +// Enable Hardened Runtime +// +// Hardened Runtime defends your application by preventing modifications to its code and +// provides fine-grained controls over what can run in your process. Hardening the +// runtime also prevents access to sensitive resources unless your application +// pre-declares its intent to use them, which reduces the attack surface by eliminating +// unnecessary access. These properties help prevent exploitation of your application +// and this capability is required for your app to be notarized. + +ENABLE_HARDENED_RUNTIME = YES + + + +ENABLE_PREVIEWS = YES + + + +// User Script Sandboxing +// +// If enabled, the build system will sandbox user scripts to disallow undeclared +// input/output dependencies. + +ENABLE_USER_SCRIPT_SANDBOXING = NO + + + +// Generate Info.plist File +// +// If enabled, automatically generate an Info.plist file with content from build +// settings, and from content in the file pointed to by `INFOPLIST_FILE`, if defined. + +GENERATE_INFOPLIST_FILE = YES + + + +// Info.plist File +// +// The project-relative path to the property list file that contains the `Info.plist` +// information used by bundles. +// +// The build system merges the values you specify in this file with other values it +// generates during the build process. The product type, target platform, App Privacy +// manifests, input from other build tools, and other built-in logic impact the contents +// of the final `Info.plist` file it produces. When `GENERATE_INFOPLIST_FILE` is enabled, +// the build system also includes content from build settings in the merge process. +// +// For details on information property list files, see [Information Property +// List](https://developer.apple.com/documentation/bundleresources/information_property_list). + +INFOPLIST_FILE = ShipShape/Info.plist + + + +// Application Category +// +// When `GENERATE_INFOPLIST_FILE` is enabled, sets the value of the +// [LSApplicationCategoryType](https://developer.apple.com/documentation/bundleresources/information_property_list/lsapplicationcategorytype) +// key in the `Info.plist` file to the value of this build setting. + +INFOPLIST_KEY_LSApplicationCategoryType = public.app-category.developer-tools + + + +// Copyright (Human-Readable) +// +// When `GENERATE_INFOPLIST_FILE` is enabled, sets the value of the +// [NSHumanReadableCopyright](https://developer.apple.com/documentation/bundleresources/information_property_list/nshumanreadablecopyright) +// key in the `Info.plist` file to the value of this build setting. + +INFOPLIST_KEY_NSHumanReadableCopyright = + + + +// Application Scene Manifest (Generation) +// +// When `GENERATE_INFOPLIST_FILE` is enabled, sets the value of the +// [UIApplicationSceneManifest](https://developer.apple.com/documentation/bundleresources/information_property_list/uiapplicationscenemanifest) +// key in the Info.plist file to an entry suitable for a multi-window application. + +INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES + + + +// Launch Screen (Generation) +// +// When `GENERATE_INFOPLIST_FILE` is enabled, sets the value of the +// [UILaunchScreen](https://developer.apple.com/documentation/bundleresources/information_property_list/uilaunchscreen) +// key in the Info.plist file to an empty dictionary. + +INFOPLIST_KEY_UILaunchScreen_Generation = YES + + + +// Supported Interface Orientations +// +// When `GENERATE_INFOPLIST_FILE` is enabled, sets the value of the +// [UISupportedInterfaceOrientations](https://developer.apple.com/documentation/bundleresources/information_property_list/uisupportedinterfaceorientations) +// key in the `Info.plist` file to the value of this build setting. + +INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait + + + +// Supported Interface Orientations (iPad) +// +// When `GENERATE_INFOPLIST_FILE` is enabled, sets the value of the +// [UISupportedInterfaceOrientations~iPad](https://developer.apple.com/documentation/bundleresources/information_property_list/uisupportedinterfaceorientations) +// key in the `Info.plist` file to the value of this build setting. + +INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown + + + +// iOS Deployment Target +// +// Code will load on this and later versions of iOS. Framework APIs that are unavailable +// in earlier versions will be weak-linked; your code should check for null function +// pointers or specific system versions before calling newer APIs. + +IPHONEOS_DEPLOYMENT_TARGET = 17.6 + + + +// Runpath Search Paths +// +// This is a list of paths to be added to the `runpath` search path list for the image +// being created. At runtime, `dyld` uses the `runpath` when searching for dylibs whose +// load path begins with `@rpath/`. See [Dynamic Library Programming +// Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html). + +LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/../Frameworks + + + +// macOS Deployment Target +// +// Code will load on this and later versions of macOS. Framework APIs that are +// unavailable in earlier versions will be weak-linked; your code should check for `null` +// function pointers or specific system versions before calling newer APIs. + +MACOSX_DEPLOYMENT_TARGET = 14.6 + + + +// Marketing Version +// +// This setting defines the user-visible version of the project. +// +// When `GENERATE_INFOPLIST_FILE` is enabled, sets the value of the +// [CFBundleShortVersionString](https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring) +// key in the `Info.plist` file to the value of this build setting. + +MARKETING_VERSION = 1.0 + + + +// Product Bundle Identifier +// +// A string that uniquely identifies the bundle. The string should be in reverse DNS +// format using only alphanumeric characters (`A-Z`, `a-z`, `0-9`), the dot (`.`), and +// the hyphen (`-`). +// +// When `GENERATE_INFOPLIST_FILE` is enabled, sets the value of the +// [CFBundleIdentifier](https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleidentifier) +// key in the `Info.plist` file to the value of this build setting. + +PRODUCT_BUNDLE_IDENTIFIER = ${ORGANIZATION_IDENTIFIER}.ShipShape + + + +// Product Name +// +// This is the basename of the product generated by the target. +// +// When `GENERATE_INFOPLIST_FILE` is enabled, sets the value of the +// [CFBundleName](https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundlename) +// key in the `Info.plist` file to the value of this build setting. + +PRODUCT_NAME = $(TARGET_NAME) + + + +// Register App Groups +// +// When set, the app groups capability will require a provisioning profile. All app group +// identifiers prefixed with 'group.' will need to be registered on the developer website +// and set in the profile. This is only applicable to platforms supporting unregistered +// app groups. + +REGISTER_APP_GROUPS = YES + + + +// Supported Platforms +// +// The list of supported platforms from which a base SDK can be used. This setting is +// used if the product can be built for multiple platforms using different SDKs. + +SUPPORTED_PLATFORMS = iphoneos iphonesimulator macosx + + + +SUPPORTS_MACCATALYST = NO + + + +// Use Compiler to Extract Swift Strings +// +// When enabled, the Swift compiler will be used to extract Swift string literal and +// interpolation `LocalizedStringKey` and `LocalizationKey` types during localization +// export. + +SWIFT_EMIT_LOC_STRINGS = YES + + + +// Require Existential any +// +// Changes existential types to require explicit annotation with the `any` keyword. + +SWIFT_UPCOMING_FEATURE_EXISTENTIAL_ANY = YES + + + +// Swift Language Version +// +// The language version used to compile the target's Swift code. + +SWIFT_VERSION = 6.0 + + + +TARGETED_DEVICE_FAMILY = 1,2 diff --git a/Configuration/ShipShapeTests-Debug.xcconfig b/Configuration/ShipShapeTests-Debug.xcconfig new file mode 100644 index 0000000..2db5e51 --- /dev/null +++ b/Configuration/ShipShapeTests-Debug.xcconfig @@ -0,0 +1,14 @@ +// +// ShipShapeTests-Debug.xcconfig +// +// Generated by BuildSettingExtractor on 6/28/25 +// https://buildsettingextractor.com +// + +#include? "../../SharedXcodeSettings/DeveloperSettings.xcconfig" + +#include "ShipShapeTests-Shared.xcconfig" + +//********************************************// +//* Currently no build settings in this file *// +//********************************************// diff --git a/Configuration/ShipShapeTests-Release.xcconfig b/Configuration/ShipShapeTests-Release.xcconfig new file mode 100644 index 0000000..a7f8ab9 --- /dev/null +++ b/Configuration/ShipShapeTests-Release.xcconfig @@ -0,0 +1,16 @@ +// +// ShipShapeTests-Release.xcconfig +// +// Generated by BuildSettingExtractor on 6/28/25 +// https://buildsettingextractor.com +// + +#include? "../../SharedXcodeSettings/DeveloperSettings.xcconfig" + +#include "ShipShapeTests-Shared.xcconfig" + +// Validate Built Product +// +// If enabled, perform validation checks on the product as part of the build process. + +VALIDATE_PRODUCT = YES diff --git a/Configuration/ShipShapeTests-Shared.xcconfig b/Configuration/ShipShapeTests-Shared.xcconfig new file mode 100644 index 0000000..3ed29f7 --- /dev/null +++ b/Configuration/ShipShapeTests-Shared.xcconfig @@ -0,0 +1,196 @@ +// +// ShipShapeTests-Shared.xcconfig +// +// Generated by BuildSettingExtractor on 6/28/25 +// https://buildsettingextractor.com +// + +// Bundle Loader +// +// Specifies the executable that will load the bundle output file being linked. Undefined +// symbols from the bundle are checked against the specified executable as if it is one +// of the dynamic libraries the bundle was linked with. + +BUNDLE_LOADER = $(TEST_HOST) + + + +// Code Signing Style +// +// This setting specifies the method used to acquire and locate signing assets. Choose +// `Automatic` to let Xcode automatically create and update profiles, app IDs, and +// certificates. Choose `Manual` to create and update these yourself on the developer +// website. + +CODE_SIGN_STYLE = Automatic + + + +// Current Project Version +// +// This setting defines the current version of the project. The value must be a integer +// or floating point number, such as `57` or `365.8`. +// +// When `GENERATE_INFOPLIST_FILE` is enabled, sets the value of the +// [CFBundleVersion](https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleversion) +// key in the `Info.plist` file to the value of this build setting. + +CURRENT_PROJECT_VERSION = 1 + + + +// Development Team +// +// The team ID of a development team to use for signing certificates and provisioning +// profiles. + +DEVELOPMENT_TEAM = + + + +// User Script Sandboxing +// +// If enabled, the build system will sandbox user scripts to disallow undeclared +// input/output dependencies. + +ENABLE_USER_SCRIPT_SANDBOXING = NO + + + +// Generate Info.plist File +// +// If enabled, automatically generate an Info.plist file with content from build +// settings, and from content in the file pointed to by `INFOPLIST_FILE`, if defined. + +GENERATE_INFOPLIST_FILE = YES + + + +// iOS Deployment Target +// +// Code will load on this and later versions of iOS. Framework APIs that are unavailable +// in earlier versions will be weak-linked; your code should check for null function +// pointers or specific system versions before calling newer APIs. + +IPHONEOS_DEPLOYMENT_TARGET = 18.4 + + + +// Marketing Version +// +// This setting defines the user-visible version of the project. +// +// When `GENERATE_INFOPLIST_FILE` is enabled, sets the value of the +// [CFBundleShortVersionString](https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring) +// key in the `Info.plist` file to the value of this build setting. + +MARKETING_VERSION = 1.0 + + + +// Product Bundle Identifier +// +// A string that uniquely identifies the bundle. The string should be in reverse DNS +// format using only alphanumeric characters (`A-Z`, `a-z`, `0-9`), the dot (`.`), and +// the hyphen (`-`). +// +// When `GENERATE_INFOPLIST_FILE` is enabled, sets the value of the +// [CFBundleIdentifier](https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleidentifier) +// key in the `Info.plist` file to the value of this build setting. + +PRODUCT_BUNDLE_IDENTIFIER = ${ORGANIZATION_IDENTIFIER}.ShipShapeTests + + + +// Product Name +// +// This is the basename of the product generated by the target. +// +// When `GENERATE_INFOPLIST_FILE` is enabled, sets the value of the +// [CFBundleName](https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundlename) +// key in the `Info.plist` file to the value of this build setting. + +PRODUCT_NAME = $(TARGET_NAME) + + + +// Register App Groups +// +// When set, the app groups capability will require a provisioning profile. All app group +// identifiers prefixed with 'group.' will need to be registered on the developer website +// and set in the profile. This is only applicable to platforms supporting unregistered +// app groups. + +REGISTER_APP_GROUPS = YES + + + +// Base SDK +// +// The name or path of the base SDK being used during the build. The product will be +// built against the headers and libraries located inside the indicated SDK. This path +// will be prepended to all search paths, and will be passed through the environment to +// the compiler and linker. Additional SDKs can be specified in the `ADDITIONAL_SDKS` +// setting. + +SDKROOT = iphoneos + + + +// Supported Platforms +// +// The list of supported platforms from which a base SDK can be used. This setting is +// used if the product can be built for multiple platforms using different SDKs. + +SUPPORTED_PLATFORMS = iphoneos iphonesimulator macosx + + + +SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO + + + +SUPPORTS_MACCATALYST = NO + + + +SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO + + + +// Use Compiler to Extract Swift Strings +// +// When enabled, the Swift compiler will be used to extract Swift string literal and +// interpolation `LocalizedStringKey` and `LocalizationKey` types during localization +// export. + +SWIFT_EMIT_LOC_STRINGS = NO + + + +// Require Existential any +// +// Changes existential types to require explicit annotation with the `any` keyword. + +SWIFT_UPCOMING_FEATURE_EXISTENTIAL_ANY = YES + + + +// Swift Language Version +// +// The language version used to compile the target's Swift code. + +SWIFT_VERSION = 6.0 + + + +TARGETED_DEVICE_FAMILY = 1,2 + + + +// Test Host +// +// Path to the executable into which a bundle of tests is injected. Only specify this +// setting if testing an application or other executable. + +TEST_HOST = $(BUILT_PRODUCTS_DIR)/ShipShape.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ShipShape diff --git a/HELPBOOK.md b/HELPBOOK.md index 5ecb787..bf8b9c9 100644 --- a/HELPBOOK.md +++ b/HELPBOOK.md @@ -26,26 +26,19 @@ If the PR mentioned above has gotten merged, you should be able to just install middlemac and be happy: `bundle install middlemac`. If it hasn't, then you may need to clone the repo with the fix in it, build the middlemac gems locally, and install them. That is a kind of tiresome -process, which deserves its own separate [documentation](BUILDING_MIDDLEMAC.md). +process, which deserves its own separate [documentation](BUILDING_MIDDLEMAC.md). All of this +has been automated in an installation script that's located in the `helpbook_source` directory: -## Configuration - -A macOS application's help book has its own bundle ID. This is *different* from the bundle ID -for the application, but it must be unique. General practice is to use the application's -bundle ID followed by `.help`. For example, `com.hackingwithswift.ShipShape.help`. This ID gets -set in the `config.rb` file in the help book source directory. To tell the -operating system that the book is associated with our application, we need to add an entry to -`Info.plist`: `CFBundleHelpBookName`. This is the bundle ID of the help book. +`cd helpbook_source; ./install_middlemac.sh` -To have Xcode bundle the help book into the application, we need to add an entry to the -`Info.plist`: `CFBundleHelpBookFolder`. This is the name of the directory where the help book -has been packaged. +## Configuration -The help book directory also needs to be added to the Xcode project as a resource. In the -"Build Phases" tab for the application target, add a "Copy Bundle Resources" item that refers -to the built help book folder. +When you first set up this project, you should have run the `setup.sh` script in the project +root. This will have created a file, relative to the project directory, `../SharedXcodeSettings/DeveloperSettings.sh`. +Before you run `make` to build the helpbook, be sure to source this file, which will add the settings +to your environment. Make will then use them to configure the help book: -__TODO__ Add some screen shots here for clarity. +`source ../SharedXcodeSettings/DeveloperSettings.sh; cd helpbook_source; make TARGET=main` ## Development diff --git a/README.md b/README.md index c87f644..54cb72b 100644 --- a/README.md +++ b/README.md @@ -15,17 +15,21 @@ ShipShape was initially created in a [Hacking with Swift+ live stream](https://w Once ShipShape is stable, the plan is to merge it into another project called [Control Room](https://github.com/twostraws/ControlRoom), which gives users control over the iOS Simulator. +## Building the Application -## Running the app +This project uses `.xcconfig` files to configure build settings. It follows the example of [NetNewsWire](https://github.com/Ranchero-Software/NetNewsWire) +in using a file called `DeveloperSettings.xcconfig` to hold developer-specific settings. The script `setup.sh` included +at the root of this project will create this file at the well-known location `../SharedXcodeSettings`. If you've +already got that file, then you don't need to run the script; if you have not got such a file, open a Terminal +at the project root and run `./setup.sh` to create it. This will save your Developer ID and team prefix to the file, +which will be used to make sure the products you build do not collide with anyone else's. -You'll need Xcode 16 or later to build the code, along with an active App Store Connect account in order to connect to the API. +### Running the app -> [!CAUTION] -> You need to set the Team and Bundle Identifier values to something of your choosing. To avoid committing these changes to source control, we highly recommend you run `git update-index --assume-unchanged ShipShape.xcodeproj/project.pbxproj` after you clone the repository, which will stop Git from including this change in any commits you make. +You'll need Xcode 16 or later to build the code, along with an active App Store Connect account in order to connect to the API. When you run ShipShape for the first time, it will guide you through creating a private key to access the App Store Connect API. - ## Contribution guide This is an all-new project, so there are lots of opportunities to get involved: diff --git a/ShipShape.xcodeproj/project.pbxproj b/ShipShape.xcodeproj/project.pbxproj index 30b14c0..44f4045 100644 --- a/ShipShape.xcodeproj/project.pbxproj +++ b/ShipShape.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ 51616E862DD8F5FA007B8250 /* JWTKit in Frameworks */ = {isa = PBXBuildFile; productRef = 51616E852DD8F5FA007B8250 /* JWTKit */; }; + 7C9ED2652E17013400545BB5 /* ShipShape.help in Resources */ = {isa = PBXBuildFile; fileRef = 7C9ED2642E17013400545BB5 /* ShipShape.help */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -23,6 +24,115 @@ /* Begin PBXFileReference section */ 51616E6E2DD8EDE8007B8250 /* ShipShape.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ShipShape.app; sourceTree = BUILT_PRODUCTS_DIR; }; 517283BC2DDCD6D40064D974 /* ShipShapeTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ShipShapeTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 7C1EFDA42E10AA6800AAB949 /* setup.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = setup.sh; sourceTree = ""; }; + 7C1EFDA52E10ACD700AAB949 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 7C1EFDA62E10B33600AAB949 /* Project-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Project-Debug.xcconfig"; sourceTree = ""; }; + 7C1EFDA72E10B33600AAB949 /* Project-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Project-Release.xcconfig"; sourceTree = ""; }; + 7C1EFDA82E10B33600AAB949 /* Project-Shared.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Project-Shared.xcconfig"; sourceTree = ""; }; + 7C1EFDA92E10B33600AAB949 /* ShipShape-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "ShipShape-Debug.xcconfig"; sourceTree = ""; }; + 7C1EFDAA2E10B33600AAB949 /* ShipShape-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "ShipShape-Release.xcconfig"; sourceTree = ""; }; + 7C1EFDAB2E10B33600AAB949 /* ShipShape-Shared.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "ShipShape-Shared.xcconfig"; sourceTree = ""; }; + 7C1EFDAC2E10B33600AAB949 /* ShipShapeTests-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "ShipShapeTests-Debug.xcconfig"; sourceTree = ""; }; + 7C1EFDAD2E10B33600AAB949 /* ShipShapeTests-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "ShipShapeTests-Release.xcconfig"; sourceTree = ""; }; + 7C1EFDAE2E10B33600AAB949 /* ShipShapeTests-Shared.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "ShipShapeTests-Shared.xcconfig"; sourceTree = ""; }; + 7C9ED1082E16238600545BB5 /* locale-list.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = "locale-list.json"; sourceTree = ""; }; + 7C9ED10A2E16238600545BB5 /* layout-apple-modern.haml */ = {isa = PBXFileReference; lastKnownFileType = text; path = "layout-apple-modern.haml"; sourceTree = ""; }; + 7C9ED10B2E16238600545BB5 /* layout-apple-modern-aside.haml */ = {isa = PBXFileReference; lastKnownFileType = text; path = "layout-apple-modern-aside.haml"; sourceTree = ""; }; + 7C9ED10C2E16238600545BB5 /* layout-blank.haml */ = {isa = PBXFileReference; lastKnownFileType = text; path = "layout-blank.haml"; sourceTree = ""; }; + 7C9ED10D2E16238600545BB5 /* layout-hpd.haml */ = {isa = PBXFileReference; lastKnownFileType = text; path = "layout-hpd.haml"; sourceTree = ""; }; + 7C9ED10F2E16238600545BB5 /* _partials_dir_partial.erb */ = {isa = PBXFileReference; lastKnownFileType = text; path = _partials_dir_partial.erb; sourceTree = ""; }; + 7C9ED1112E16238600545BB5 /* icon_32x32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_32x32.png; sourceTree = ""; }; + 7C9ED1122E16238600545BB5 /* icon_32x32@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_32x32@2x.png"; sourceTree = ""; }; + 7C9ED1132E16238600545BB5 /* icon_256x256.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_256x256.png; sourceTree = ""; }; + 7C9ED1142E16238600545BB5 /* icon_256x256@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_256x256@2x.png"; sourceTree = ""; }; + 7C9ED1152E16238600545BB5 /* icon-webclip-57x57.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-webclip-57x57.png"; sourceTree = ""; }; + 7C9ED1162E16238600545BB5 /* icon-webclip-76x76.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-webclip-76x76.png"; sourceTree = ""; }; + 7C9ED1172E16238600545BB5 /* icon-webclip-120x120.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-webclip-120x120.png"; sourceTree = ""; }; + 7C9ED1182E16238600545BB5 /* icon-webclip-152x152.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-webclip-152x152.png"; sourceTree = ""; }; + 7C9ED1192E16238600545BB5 /* icon-webclip-ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-webclip-ipad.png"; sourceTree = ""; }; + 7C9ED11A2E16238600545BB5 /* icon-webclip-ipad_2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-webclip-ipad_2x.png"; sourceTree = ""; }; + 7C9ED11B2E16238600545BB5 /* icon-webclip-iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-webclip-iphone.png"; sourceTree = ""; }; + 7C9ED11C2E16238600545BB5 /* icon-webclip-iphone_2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-webclip-iphone_2x.png"; sourceTree = ""; }; + 7C9ED11E2E16238600545BB5 /* arrow.svg */ = {isa = PBXFileReference; lastKnownFileType = text; path = arrow.svg; sourceTree = ""; }; + 7C9ED11F2E16238600545BB5 /* arrow-blue.svg */ = {isa = PBXFileReference; lastKnownFileType = text; path = "arrow-blue.svg"; sourceTree = ""; }; + 7C9ED1202E16238600545BB5 /* ask-siri.svg */ = {isa = PBXFileReference; lastKnownFileType = text; path = "ask-siri.svg"; sourceTree = ""; }; + 7C9ED1212E16238600545BB5 /* button-clear-search.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button-clear-search.png"; sourceTree = ""; }; + 7C9ED1222E16238600545BB5 /* button-close.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button-close.png"; sourceTree = ""; }; + 7C9ED1232E16238600545BB5 /* button-close-2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button-close-2.png"; sourceTree = ""; }; + 7C9ED1242E16238600545BB5 /* button-close-learnmore.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button-close-learnmore.png"; sourceTree = ""; }; + 7C9ED1252E16238600545BB5 /* button-search.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button-search.png"; sourceTree = ""; }; + 7C9ED1262E16238600545BB5 /* button-search-small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button-search-small.png"; sourceTree = ""; }; + 7C9ED1272E16238600545BB5 /* button-toc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button-toc.png"; sourceTree = ""; }; + 7C9ED1282E16238600545BB5 /* button-toc-rtl.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button-toc-rtl.png"; sourceTree = ""; }; + 7C9ED1292E16238600545BB5 /* button-toc-small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button-toc-small.png"; sourceTree = ""; }; + 7C9ED12A2E16238600545BB5 /* button-toc-small-rtl.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button-toc-small-rtl.png"; sourceTree = ""; }; + 7C9ED12B2E16238600545BB5 /* button-toc-toggle.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button-toc-toggle.png"; sourceTree = ""; }; + 7C9ED12C2E16238600545BB5 /* button-toc-toggle-rtl.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button-toc-toggle-rtl.png"; sourceTree = ""; }; + 7C9ED12D2E16238600545BB5 /* changelanguage_icon2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = changelanguage_icon2x.png; sourceTree = ""; }; + 7C9ED12E2E16238600545BB5 /* force-click.svg */ = {isa = PBXFileReference; lastKnownFileType = text; path = "force-click.svg"; sourceTree = ""; }; + 7C9ED12F2E16238600545BB5 /* icon-arrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-arrow.png"; sourceTree = ""; }; + 7C9ED1302E16238600545BB5 /* icon-arrow-2.svg */ = {isa = PBXFileReference; lastKnownFileType = text; path = "icon-arrow-2.svg"; sourceTree = ""; }; + 7C9ED1312E16238600545BB5 /* icon-close.svg */ = {isa = PBXFileReference; lastKnownFileType = text; path = "icon-close.svg"; sourceTree = ""; }; + 7C9ED1322E16238600545BB5 /* icon-external-link.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-external-link.png"; sourceTree = ""; }; + 7C9ED1332E16238600545BB5 /* icon-external-link-lg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-external-link-lg.png"; sourceTree = ""; }; + 7C9ED1342E16238600545BB5 /* icon-pause.svg */ = {isa = PBXFileReference; lastKnownFileType = text; path = "icon-pause.svg"; sourceTree = ""; }; + 7C9ED1352E16238600545BB5 /* icon-play.svg */ = {isa = PBXFileReference; lastKnownFileType = text; path = "icon-play.svg"; sourceTree = ""; }; + 7C9ED1362E16238600545BB5 /* icon-replay.svg */ = {isa = PBXFileReference; lastKnownFileType = text; path = "icon-replay.svg"; sourceTree = ""; }; + 7C9ED1372E16238600545BB5 /* icon-warning.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-warning.png"; sourceTree = ""; }; + 7C9ED1382E16238600545BB5 /* icon-warning-black.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-warning-black.png"; sourceTree = ""; }; + 7C9ED1392E16238600545BB5 /* icon-warning-eu.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-warning-eu.png"; sourceTree = ""; }; + 7C9ED13A2E16238600545BB5 /* icon-webclip-57x57.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-webclip-57x57.png"; sourceTree = ""; }; + 7C9ED13B2E16238600545BB5 /* icon-webclip-76x76.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-webclip-76x76.png"; sourceTree = ""; }; + 7C9ED13C2E16238600545BB5 /* icon-webclip-120x120.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-webclip-120x120.png"; sourceTree = ""; }; + 7C9ED13D2E16238600545BB5 /* icon-webclip-152x152.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-webclip-152x152.png"; sourceTree = ""; }; + 7C9ED13E2E16238600545BB5 /* icon-webclip-ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-webclip-ipad.png"; sourceTree = ""; }; + 7C9ED13F2E16238600545BB5 /* icon-webclip-ipad_2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-webclip-ipad_2x.png"; sourceTree = ""; }; + 7C9ED1402E16238600545BB5 /* icon-webclip-iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-webclip-iphone.png"; sourceTree = ""; }; + 7C9ED1412E16238600545BB5 /* icon-webclip-iphone_2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-webclip-iphone_2x.png"; sourceTree = ""; }; + 7C9ED1422E16238600545BB5 /* L0200_LeftArrow_2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = L0200_LeftArrow_2x.png; sourceTree = ""; }; + 7C9ED1432E16238600545BB5 /* L0201_RightArrow_2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = L0201_RightArrow_2x.png; sourceTree = ""; }; + 7C9ED1442E16238600545BB5 /* movie-play_2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "movie-play_2x.png"; sourceTree = ""; }; + 7C9ED1452E16238600545BB5 /* nav-left.svg */ = {isa = PBXFileReference; lastKnownFileType = text; path = "nav-left.svg"; sourceTree = ""; }; + 7C9ED1462E16238600545BB5 /* nav-paddle-left.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "nav-paddle-left.png"; sourceTree = ""; }; + 7C9ED1472E16238600545BB5 /* nav-paddle-right.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "nav-paddle-right.png"; sourceTree = ""; }; + 7C9ED1482E16238600545BB5 /* nav-right.svg */ = {isa = PBXFileReference; lastKnownFileType = text; path = "nav-right.svg"; sourceTree = ""; }; + 7C9ED1492E16238600545BB5 /* search_image_large.svg */ = {isa = PBXFileReference; lastKnownFileType = text; path = search_image_large.svg; sourceTree = ""; }; + 7C9ED14A2E16238600545BB5 /* tip.svg */ = {isa = PBXFileReference; lastKnownFileType = text; path = tip.svg; sourceTree = ""; }; + 7C9ED14B2E16238600545BB5 /* toc_blue_large.svg */ = {isa = PBXFileReference; lastKnownFileType = text; path = toc_blue_large.svg; sourceTree = ""; }; + 7C9ED14C2E16238600545BB5 /* toc_large.svg */ = {isa = PBXFileReference; lastKnownFileType = text; path = toc_large.svg; sourceTree = ""; }; + 7C9ED14F2E16238600545BB5 /* apple.css */ = {isa = PBXFileReference; lastKnownFileType = text.css; path = apple.css; sourceTree = ""; }; + 7C9ED1512E16238600545BB5 /* github.css.scss */ = {isa = PBXFileReference; lastKnownFileType = text; path = github.css.scss; sourceTree = ""; }; + 7C9ED1522E16238600545BB5 /* middlemac.css.scss */ = {isa = PBXFileReference; lastKnownFileType = text; path = middlemac.css.scss; sourceTree = ""; }; + 7C9ED1532E16238600545BB5 /* note.svg */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = note.svg; sourceTree = ""; }; + 7C9ED1542E16238600545BB5 /* tip.svg */ = {isa = PBXFileReference; lastKnownFileType = text; path = tip.svg; sourceTree = ""; }; + 7C9ED1552E16238600545BB5 /* warning.svg */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = warning.svg; sourceTree = ""; }; + 7C9ED1582E16238600545BB5 /* _dummy.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = _dummy.txt; sourceTree = ""; }; + 7C9ED15A2E16238600545BB5 /* app.5.1.27.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; path = app.5.1.27.js; sourceTree = ""; }; + 7C9ED15B2E16238600545BB5 /* middlemac-debug.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; path = "middlemac-debug.js"; sourceTree = ""; }; + 7C9ED15C2E16238600545BB5 /* vendor.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; path = vendor.js; sourceTree = ""; }; + 7C9ED15F2E16238600545BB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text; name = en; path = en.lproj/10_app_store_api_key.html.md.erb; sourceTree = ""; }; + 7C9ED1612E16238600545BB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text; name = en; path = en.lproj/copyright.html.md.erb; sourceTree = ""; }; + 7C9ED1632E16238600545BB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = en; path = en.lproj/ExactMatch.plist.erb; sourceTree = ""; }; + 7C9ED1652E16238600545BB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text; name = en; path = en.lproj/index_hpd.html.md.erb; sourceTree = ""; }; + 7C9ED1672E16238600545BB5 /* index.html.erb */ = {isa = PBXFileReference; lastKnownFileType = text; path = index.html.erb; sourceTree = ""; }; + 7C9ED1682E16238600545BB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text; name = en; path = en.lproj/index.html.md.erb; sourceTree = ""; }; + 7C9ED16A2E16238600545BB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = en; path = en.lproj/InfoPlist.strings.erb; sourceTree = ""; }; + 7C9ED16C2E16238600545BB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text; name = en; path = "en.lproj/locale-info.json.erb"; sourceTree = ""; }; + 7C9ED16E2E16238600545BB5 /* locale-list.json.erb */ = {isa = PBXFileReference; lastKnownFileType = text; path = "locale-list.json.erb"; sourceTree = ""; }; + 7C9ED16F2E16238600545BB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text; name = en; path = en.lproj/navigation.json.erb; sourceTree = ""; }; + 7C9ED1712E16238600545BB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text; name = en; path = en.lproj/searchTree.json.erb; sourceTree = ""; }; + 7C9ED1742E16238600545BB5 /* Info.plist.erb */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = Info.plist.erb; sourceTree = ""; }; + 7C9ED1762E16238600545BB5 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; + 7C9ED1772E16238600545BB5 /* .ruby-version */ = {isa = PBXFileReference; lastKnownFileType = text; path = ".ruby-version"; sourceTree = ""; }; + 7C9ED1782E16238600545BB5 /* config.rb */ = {isa = PBXFileReference; lastKnownFileType = text.script.ruby; path = config.rb; sourceTree = ""; }; + 7C9ED1792E16238600545BB5 /* Gemfile */ = {isa = PBXFileReference; lastKnownFileType = text; path = Gemfile; sourceTree = ""; }; + 7C9ED17A2E16238600545BB5 /* Gemfile.lock */ = {isa = PBXFileReference; lastKnownFileType = text; path = Gemfile.lock; sourceTree = ""; }; + 7C9ED17B2E16238600545BB5 /* makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = makefile; sourceTree = ""; }; + 7C9ED17C2E16238600545BB5 /* middlemac.webloc */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = middlemac.webloc; sourceTree = ""; }; + 7C9ED2642E17013400545BB5 /* ShipShape.help */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = ShipShape.help; sourceTree = ""; }; + 7C9ED3BD2E1714C000545BB5 /* install_middlemac.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = install_middlemac.sh; sourceTree = ""; }; + 7C9ED3C22E17161A00545BB5 /* BUILDING_MIDDLEMAC.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = BUILDING_MIDDLEMAC.md; sourceTree = ""; }; + 7C9ED3C32E17161A00545BB5 /* HELPBOOK.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = HELPBOOK.md; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ @@ -73,9 +183,15 @@ 51616E652DD8EDE8007B8250 = { isa = PBXGroup; children = ( + 7C1EFDA52E10ACD700AAB949 /* README.md */, + 7C9ED3C32E17161A00545BB5 /* HELPBOOK.md */, + 7C9ED3C22E17161A00545BB5 /* BUILDING_MIDDLEMAC.md */, + 7C1EFDAF2E10B33600AAB949 /* Configuration */, 51616E702DD8EDE8007B8250 /* ShipShape */, 517283BD2DDCD6D40064D974 /* ShipShapeTests */, 51616E6F2DD8EDE8007B8250 /* Products */, + 7C1EFDA42E10AA6800AAB949 /* setup.sh */, + 7C9ED17D2E16238600545BB5 /* helpbook_source */, ); sourceTree = ""; }; @@ -88,6 +204,237 @@ name = Products; sourceTree = ""; }; + 7C1EFDAF2E10B33600AAB949 /* Configuration */ = { + isa = PBXGroup; + children = ( + 7C1EFDA62E10B33600AAB949 /* Project-Debug.xcconfig */, + 7C1EFDA72E10B33600AAB949 /* Project-Release.xcconfig */, + 7C1EFDA82E10B33600AAB949 /* Project-Shared.xcconfig */, + 7C1EFDA92E10B33600AAB949 /* ShipShape-Debug.xcconfig */, + 7C1EFDAA2E10B33600AAB949 /* ShipShape-Release.xcconfig */, + 7C1EFDAB2E10B33600AAB949 /* ShipShape-Shared.xcconfig */, + 7C1EFDAC2E10B33600AAB949 /* ShipShapeTests-Debug.xcconfig */, + 7C1EFDAD2E10B33600AAB949 /* ShipShapeTests-Release.xcconfig */, + 7C1EFDAE2E10B33600AAB949 /* ShipShapeTests-Shared.xcconfig */, + ); + path = Configuration; + sourceTree = ""; + }; + 7C9ED1092E16238600545BB5 /* _data */ = { + isa = PBXGroup; + children = ( + 7C9ED1082E16238600545BB5 /* locale-list.json */, + ); + path = _data; + sourceTree = ""; + }; + 7C9ED10E2E16238600545BB5 /* _layouts */ = { + isa = PBXGroup; + children = ( + 7C9ED10A2E16238600545BB5 /* layout-apple-modern.haml */, + 7C9ED10B2E16238600545BB5 /* layout-apple-modern-aside.haml */, + 7C9ED10C2E16238600545BB5 /* layout-blank.haml */, + 7C9ED10D2E16238600545BB5 /* layout-hpd.haml */, + ); + path = _layouts; + sourceTree = ""; + }; + 7C9ED1102E16238600545BB5 /* _partials */ = { + isa = PBXGroup; + children = ( + 7C9ED10F2E16238600545BB5 /* _partials_dir_partial.erb */, + ); + path = _partials; + sourceTree = ""; + }; + 7C9ED11D2E16238600545BB5 /* convention */ = { + isa = PBXGroup; + children = ( + 7C9ED1112E16238600545BB5 /* icon_32x32.png */, + 7C9ED1122E16238600545BB5 /* icon_32x32@2x.png */, + 7C9ED1132E16238600545BB5 /* icon_256x256.png */, + 7C9ED1142E16238600545BB5 /* icon_256x256@2x.png */, + 7C9ED1152E16238600545BB5 /* icon-webclip-57x57.png */, + 7C9ED1162E16238600545BB5 /* icon-webclip-76x76.png */, + 7C9ED1172E16238600545BB5 /* icon-webclip-120x120.png */, + 7C9ED1182E16238600545BB5 /* icon-webclip-152x152.png */, + 7C9ED1192E16238600545BB5 /* icon-webclip-ipad.png */, + 7C9ED11A2E16238600545BB5 /* icon-webclip-ipad_2x.png */, + 7C9ED11B2E16238600545BB5 /* icon-webclip-iphone.png */, + 7C9ED11C2E16238600545BB5 /* icon-webclip-iphone_2x.png */, + ); + path = convention; + sourceTree = ""; + }; + 7C9ED14D2E16238600545BB5 /* img */ = { + isa = PBXGroup; + children = ( + 7C9ED11E2E16238600545BB5 /* arrow.svg */, + 7C9ED11F2E16238600545BB5 /* arrow-blue.svg */, + 7C9ED1202E16238600545BB5 /* ask-siri.svg */, + 7C9ED1212E16238600545BB5 /* button-clear-search.png */, + 7C9ED1222E16238600545BB5 /* button-close.png */, + 7C9ED1232E16238600545BB5 /* button-close-2.png */, + 7C9ED1242E16238600545BB5 /* button-close-learnmore.png */, + 7C9ED1252E16238600545BB5 /* button-search.png */, + 7C9ED1262E16238600545BB5 /* button-search-small.png */, + 7C9ED1272E16238600545BB5 /* button-toc.png */, + 7C9ED1282E16238600545BB5 /* button-toc-rtl.png */, + 7C9ED1292E16238600545BB5 /* button-toc-small.png */, + 7C9ED12A2E16238600545BB5 /* button-toc-small-rtl.png */, + 7C9ED12B2E16238600545BB5 /* button-toc-toggle.png */, + 7C9ED12C2E16238600545BB5 /* button-toc-toggle-rtl.png */, + 7C9ED12D2E16238600545BB5 /* changelanguage_icon2x.png */, + 7C9ED12E2E16238600545BB5 /* force-click.svg */, + 7C9ED12F2E16238600545BB5 /* icon-arrow.png */, + 7C9ED1302E16238600545BB5 /* icon-arrow-2.svg */, + 7C9ED1312E16238600545BB5 /* icon-close.svg */, + 7C9ED1322E16238600545BB5 /* icon-external-link.png */, + 7C9ED1332E16238600545BB5 /* icon-external-link-lg.png */, + 7C9ED1342E16238600545BB5 /* icon-pause.svg */, + 7C9ED1352E16238600545BB5 /* icon-play.svg */, + 7C9ED1362E16238600545BB5 /* icon-replay.svg */, + 7C9ED1372E16238600545BB5 /* icon-warning.png */, + 7C9ED1382E16238600545BB5 /* icon-warning-black.png */, + 7C9ED1392E16238600545BB5 /* icon-warning-eu.png */, + 7C9ED13A2E16238600545BB5 /* icon-webclip-57x57.png */, + 7C9ED13B2E16238600545BB5 /* icon-webclip-76x76.png */, + 7C9ED13C2E16238600545BB5 /* icon-webclip-120x120.png */, + 7C9ED13D2E16238600545BB5 /* icon-webclip-152x152.png */, + 7C9ED13E2E16238600545BB5 /* icon-webclip-ipad.png */, + 7C9ED13F2E16238600545BB5 /* icon-webclip-ipad_2x.png */, + 7C9ED1402E16238600545BB5 /* icon-webclip-iphone.png */, + 7C9ED1412E16238600545BB5 /* icon-webclip-iphone_2x.png */, + 7C9ED1422E16238600545BB5 /* L0200_LeftArrow_2x.png */, + 7C9ED1432E16238600545BB5 /* L0201_RightArrow_2x.png */, + 7C9ED1442E16238600545BB5 /* movie-play_2x.png */, + 7C9ED1452E16238600545BB5 /* nav-left.svg */, + 7C9ED1462E16238600545BB5 /* nav-paddle-left.png */, + 7C9ED1472E16238600545BB5 /* nav-paddle-right.png */, + 7C9ED1482E16238600545BB5 /* nav-right.svg */, + 7C9ED1492E16238600545BB5 /* search_image_large.svg */, + 7C9ED14A2E16238600545BB5 /* tip.svg */, + 7C9ED14B2E16238600545BB5 /* toc_blue_large.svg */, + 7C9ED14C2E16238600545BB5 /* toc_large.svg */, + ); + path = img; + sourceTree = ""; + }; + 7C9ED14E2E16238600545BB5 /* css */ = { + isa = PBXGroup; + children = ( + 7C9ED14D2E16238600545BB5 /* img */, + ); + path = css; + sourceTree = ""; + }; + 7C9ED1502E16238600545BB5 /* apple */ = { + isa = PBXGroup; + children = ( + 7C9ED14E2E16238600545BB5 /* css */, + 7C9ED14F2E16238600545BB5 /* apple.css */, + ); + path = apple; + sourceTree = ""; + }; + 7C9ED1562E16238600545BB5 /* middlemac */ = { + isa = PBXGroup; + children = ( + 7C9ED1512E16238600545BB5 /* github.css.scss */, + 7C9ED1522E16238600545BB5 /* middlemac.css.scss */, + 7C9ED1532E16238600545BB5 /* note.svg */, + 7C9ED1542E16238600545BB5 /* tip.svg */, + 7C9ED1552E16238600545BB5 /* warning.svg */, + ); + path = middlemac; + sourceTree = ""; + }; + 7C9ED1572E16238600545BB5 /* css */ = { + isa = PBXGroup; + children = ( + 7C9ED1502E16238600545BB5 /* apple */, + 7C9ED1562E16238600545BB5 /* middlemac */, + ); + path = css; + sourceTree = ""; + }; + 7C9ED1592E16238600545BB5 /* fonts */ = { + isa = PBXGroup; + children = ( + 7C9ED1582E16238600545BB5 /* _dummy.txt */, + ); + path = fonts; + sourceTree = ""; + }; + 7C9ED15D2E16238600545BB5 /* js */ = { + isa = PBXGroup; + children = ( + 7C9ED15A2E16238600545BB5 /* app.5.1.27.js */, + 7C9ED15B2E16238600545BB5 /* middlemac-debug.js */, + 7C9ED15C2E16238600545BB5 /* vendor.js */, + ); + path = js; + sourceTree = ""; + }; + 7C9ED15E2E16238600545BB5 /* SharedGlobalAssets */ = { + isa = PBXGroup; + children = ( + 7C9ED1092E16238600545BB5 /* _data */, + 7C9ED10E2E16238600545BB5 /* _layouts */, + 7C9ED1102E16238600545BB5 /* _partials */, + 7C9ED11D2E16238600545BB5 /* convention */, + 7C9ED1572E16238600545BB5 /* css */, + 7C9ED1592E16238600545BB5 /* fonts */, + 7C9ED15D2E16238600545BB5 /* js */, + ); + path = SharedGlobalAssets; + sourceTree = ""; + }; + 7C9ED1732E16238600545BB5 /* Resources */ = { + isa = PBXGroup; + children = ( + 7C9ED15E2E16238600545BB5 /* SharedGlobalAssets */, + 7C9ED1602E16238600545BB5 /* 10_app_store_api_key.html.md.erb */, + 7C9ED1622E16238600545BB5 /* copyright.html.md.erb */, + 7C9ED1642E16238600545BB5 /* ExactMatch.plist.erb */, + 7C9ED1662E16238600545BB5 /* index_hpd.html.md.erb */, + 7C9ED1672E16238600545BB5 /* index.html.erb */, + 7C9ED1692E16238600545BB5 /* index.html.md.erb */, + 7C9ED16B2E16238600545BB5 /* InfoPlist.strings.erb */, + 7C9ED16D2E16238600545BB5 /* locale-info.json.erb */, + 7C9ED16E2E16238600545BB5 /* locale-list.json.erb */, + 7C9ED1702E16238600545BB5 /* navigation.json.erb */, + 7C9ED1722E16238600545BB5 /* searchTree.json.erb */, + ); + path = Resources; + sourceTree = ""; + }; + 7C9ED1752E16238600545BB5 /* Contents */ = { + isa = PBXGroup; + children = ( + 7C9ED1732E16238600545BB5 /* Resources */, + 7C9ED1742E16238600545BB5 /* Info.plist.erb */, + ); + path = Contents; + sourceTree = ""; + }; + 7C9ED17D2E16238600545BB5 /* helpbook_source */ = { + isa = PBXGroup; + children = ( + 7C9ED1752E16238600545BB5 /* Contents */, + 7C9ED1762E16238600545BB5 /* .gitignore */, + 7C9ED1772E16238600545BB5 /* .ruby-version */, + 7C9ED1782E16238600545BB5 /* config.rb */, + 7C9ED2642E17013400545BB5 /* ShipShape.help */, + 7C9ED1792E16238600545BB5 /* Gemfile */, + 7C9ED17A2E16238600545BB5 /* Gemfile.lock */, + 7C9ED3BD2E1714C000545BB5 /* install_middlemac.sh */, + 7C9ED17B2E16238600545BB5 /* makefile */, + 7C9ED17C2E16238600545BB5 /* middlemac.webloc */, + ); + path = helpbook_source; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -186,6 +533,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 7C9ED2652E17013400545BB5 /* ShipShape.help in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -264,259 +612,135 @@ }; /* End PBXTargetDependency section */ +/* Begin PBXVariantGroup section */ + 7C9ED1602E16238600545BB5 /* 10_app_store_api_key.html.md.erb */ = { + isa = PBXVariantGroup; + children = ( + 7C9ED15F2E16238600545BB5 /* en */, + ); + name = 10_app_store_api_key.html.md.erb; + sourceTree = ""; + }; + 7C9ED1622E16238600545BB5 /* copyright.html.md.erb */ = { + isa = PBXVariantGroup; + children = ( + 7C9ED1612E16238600545BB5 /* en */, + ); + name = copyright.html.md.erb; + sourceTree = ""; + }; + 7C9ED1642E16238600545BB5 /* ExactMatch.plist.erb */ = { + isa = PBXVariantGroup; + children = ( + 7C9ED1632E16238600545BB5 /* en */, + ); + name = ExactMatch.plist.erb; + sourceTree = ""; + }; + 7C9ED1662E16238600545BB5 /* index_hpd.html.md.erb */ = { + isa = PBXVariantGroup; + children = ( + 7C9ED1652E16238600545BB5 /* en */, + ); + name = index_hpd.html.md.erb; + sourceTree = ""; + }; + 7C9ED1692E16238600545BB5 /* index.html.md.erb */ = { + isa = PBXVariantGroup; + children = ( + 7C9ED1682E16238600545BB5 /* en */, + ); + name = index.html.md.erb; + sourceTree = ""; + }; + 7C9ED16B2E16238600545BB5 /* InfoPlist.strings.erb */ = { + isa = PBXVariantGroup; + children = ( + 7C9ED16A2E16238600545BB5 /* en */, + ); + name = InfoPlist.strings.erb; + sourceTree = ""; + }; + 7C9ED16D2E16238600545BB5 /* locale-info.json.erb */ = { + isa = PBXVariantGroup; + children = ( + 7C9ED16C2E16238600545BB5 /* en */, + ); + name = "locale-info.json.erb"; + sourceTree = ""; + }; + 7C9ED1702E16238600545BB5 /* navigation.json.erb */ = { + isa = PBXVariantGroup; + children = ( + 7C9ED16F2E16238600545BB5 /* en */, + ); + name = navigation.json.erb; + sourceTree = ""; + }; + 7C9ED1722E16238600545BB5 /* searchTree.json.erb */ = { + isa = PBXVariantGroup; + children = ( + 7C9ED1712E16238600545BB5 /* en */, + ); + name = searchTree.json.erb; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + /* Begin XCBuildConfiguration section */ 51616E782DD8EDEA007B8250 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 7C1EFDA62E10B33600AAB949 /* Project-Debug.xcconfig */; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = B5C26XE59E; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 15.4; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; name = Debug; }; 51616E792DD8EDEA007B8250 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 7C1EFDA72E10B33600AAB949 /* Project-Release.xcconfig */; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = B5C26XE59E; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 15.4; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; }; name = Release; }; 51616E7B2DD8EDEA007B8250 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 7C1EFDA92E10B33600AAB949 /* ShipShape-Debug.xcconfig */; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = ShipShape/ShipShape.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = ""; - ENABLE_HARDENED_RUNTIME = YES; - ENABLE_PREVIEWS = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = ShipShape/Info.plist; + INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INFOPLIST_KEY_NSHumanReadableCopyright = "© 2025 Paul Hudson"; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; - IPHONEOS_DEPLOYMENT_TARGET = 17.6; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 14.6; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.ShipShape; - PRODUCT_NAME = "$(TARGET_NAME)"; - REGISTER_APP_GROUPS = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SUPPORTS_MACCATALYST = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_UPCOMING_FEATURE_EXISTENTIAL_ANY = YES; - SWIFT_VERSION = 6.0; - TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; 51616E7C2DD8EDEA007B8250 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 7C1EFDAA2E10B33600AAB949 /* ShipShape-Release.xcconfig */; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = ShipShape/ShipShape.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = ""; - ENABLE_HARDENED_RUNTIME = YES; - ENABLE_PREVIEWS = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = ShipShape/Info.plist; + INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INFOPLIST_KEY_NSHumanReadableCopyright = "© 2025 Paul Hudson"; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; - IPHONEOS_DEPLOYMENT_TARGET = 17.6; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 14.6; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.ShipShape; - PRODUCT_NAME = "$(TARGET_NAME)"; - REGISTER_APP_GROUPS = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SUPPORTS_MACCATALYST = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_UPCOMING_FEATURE_EXISTENTIAL_ANY = YES; - SWIFT_VERSION = 6.0; - TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; }; 517283C32DDCD6D40064D974 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 7C1EFDAC2E10B33600AAB949 /* ShipShapeTests-Debug.xcconfig */; buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = ""; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 18.4; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.ShipShapeTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - REGISTER_APP_GROUPS = YES; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; - SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_UPCOMING_FEATURE_EXISTENTIAL_ANY = YES; - SWIFT_VERSION = 6.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ShipShape.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ShipShape"; }; name = Debug; }; 517283C42DDCD6D40064D974 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 7C1EFDAD2E10B33600AAB949 /* ShipShapeTests-Release.xcconfig */; buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = ""; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 18.4; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.ShipShapeTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - REGISTER_APP_GROUPS = YES; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; - SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_UPCOMING_FEATURE_EXISTENTIAL_ANY = YES; - SWIFT_VERSION = 6.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ShipShape.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ShipShape"; - VALIDATE_PRODUCT = YES; }; name = Release; }; diff --git a/ShipShape/Info.plist b/ShipShape/Info.plist index cf5848e..6be251d 100644 --- a/ShipShape/Info.plist +++ b/ShipShape/Info.plist @@ -3,8 +3,8 @@ CFBundleHelpBookFolder - ShipShape_(main).help + ShipShape.help CFBundleHelpBookName - com.hackingwithswift.ShipShape.help + ${PRODUCT_BUNDLE_IDENTIFIER}.help diff --git a/helpbook_source/.gitignore b/helpbook_source/.gitignore index 00fd651..7cc3f79 100644 --- a/helpbook_source/.gitignore +++ b/helpbook_source/.gitignore @@ -18,4 +18,3 @@ .tmp build* tmp -*.help diff --git a/helpbook_source/ShipShape.help/Contents/Info.plist b/helpbook_source/ShipShape.help/Contents/Info.plist new file mode 100644 index 0000000..46c9b49 --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Info.plist @@ -0,0 +1,44 @@ + + + + + CFBundleIdentifier + com.hackingwithswift.ShipShape.help + CFBundleName + ShipShape + HPDBookAccessPath + index_hpd.html + HPDBookIndexPath + ShipShape.helpindex + HPDBookCSIndexPath + ShipShape.cshelpindex + HPDBookTitle + ShipShape Help + CFBundleDevelopmentRegion + en-us + CFBundleShortVersionString + 1.0.0 + CFBundleVersion + 1.0.0 + HPDBookIconPath + SharedGlobalAssets/convention/icon_32x32@2x.png + HPDBookKBProduct + + HPDBookKBURL + https://github.com/twostraws/ShipShape + HPDBookRemoteURL + dummy_enables_share + HPDBookTopicListCSSPath + + HPDBookTopicListTemplatePath + + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleSignature + hbwr + HPDBookType + 3 + + diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-120x120.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-120x120.png new file mode 100644 index 0000000..e197cf6 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-120x120.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-152x152.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-152x152.png new file mode 100644 index 0000000..89025be Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-152x152.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-57x57.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-57x57.png new file mode 100644 index 0000000..120cd36 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-57x57.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-76x76.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-76x76.png new file mode 100644 index 0000000..7073d4e Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-76x76.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-ipad.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-ipad.png new file mode 100644 index 0000000..e03207c Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-ipad.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-ipad_2x.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-ipad_2x.png new file mode 100644 index 0000000..551cb43 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-ipad_2x.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-iphone.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-iphone.png new file mode 100644 index 0000000..bb92c96 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-iphone.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-iphone_2x.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-iphone_2x.png new file mode 100644 index 0000000..cfdf0a0 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon-webclip-iphone_2x.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon_256x256.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon_256x256.png new file mode 100644 index 0000000..d376b99 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon_256x256.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon_256x256@2x.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon_256x256@2x.png new file mode 100644 index 0000000..1397885 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon_256x256@2x.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon_32x32.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon_32x32.png new file mode 100644 index 0000000..c7c3b35 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon_32x32.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon_32x32@2x.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon_32x32@2x.png new file mode 100644 index 0000000..d5bf084 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/convention/icon_32x32@2x.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/apple.css b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/apple.css new file mode 100644 index 0000000..cc5d6d3 --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/apple.css @@ -0,0 +1,3831 @@ +/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ +img,legend{ + border:0 +} +.apd-topic table,table{ + border-collapse:collapse +} +nav,section,section article,ul.toc{ + -webkit-tap-highlight-color:transparent +} +#search,hr{ + box-sizing:content-box +} +article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{ + display:block +} +audio,canvas,video{ + display:inline-block +} +audio:not([controls]){ + display:none; + height:0 +} +[hidden]{ + display:none +} +li,ol,ul{ + margin:0; + padding:0; + list-style:none +} +a:focus{ + outline:dotted thin +} +a:active,a:hover{ + outline:0 +} +h1{ + font-size:2em; + margin:.67em 0 +} +abbr[title]{ + border-bottom:1px dotted +} +b,strong{ + font-weight:700 +} +dfn{ + font-style:italic +} +hr{ + height:0 +} +mark{ + background:#ff0; + color:#000 +} +.link-default,.link-default:visited{ + color:#007aff +} +code,kbd,pre,samp{ + font-family:monospace,serif; + font-size:1em +} +pre{ + white-space:pre-wrap +} +q{ + quotes:"\201C" "\201D" "\2018" "\2019" +} +small{ + font-size:80% +} +sub,sup{ + font-size:75%; + line-height:0; + position:relative; + vertical-align:baseline +} +sup{ + top:-.5em +} +sub{ + bottom:-.25em +} +svg:not(:root){ + overflow:hidden +} +figure{ + margin:0 +} +fieldset{ + border:1px solid silver; + margin:0 2px; + padding:.35em .625em .75em +} +legend{ + padding:0 +} +button,input,select,textarea{ + font-family:inherit; + font-size:100%; + margin:0 +} +button,input{ + line-height:normal +} +button,select{ + text-transform:none +} +button,html input[type=button],input[type=reset],input[type=submit]{ + -webkit-appearance:button; + cursor:pointer +} +button[disabled],html input[disabled]{ + cursor:default +} +input[type=checkbox],input[type=radio]{ + box-sizing:border-box; + padding:0 +} +input[type=search]{ + -webkit-appearance:textfield; + box-sizing:content-box +} +input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{ + -webkit-appearance:none +} +button::-moz-focus-inner,input::-moz-focus-inner{ + border:0; + padding:0 +} +textarea{ + overflow:auto; + vertical-align:top +} +table{ + border-spacing:0 +} +.link-default{ + position:relative; + outline:0; + text-decoration:none +} +.link-default:hover{ + text-decoration:underline +} +.no-hover .link-default:hover,header.app h1 a,nav .toc-more-help a{ + text-decoration:none +} +a,a:active,button,button:active{ + outline:0 +} +.scroll{ + -webkit-overflow-scrolling:touch +} +[role=application],body,html{ + padding:0; + margin:0; + height:100%; + width:100%; + overflow:hidden +} +@media print{ + [role=application],body,html{ + position:static; + height:auto; + overflow:auto + } +} +html{ + -webkit-text-size-adjust:100%; + -ms-text-size-adjust:100%; + font-family:-apple-system,-apple-system-font,HelveticaNeue,"Helvetica Neue",Helvetica,sans-serif; + line-height:1.5; + -webkit-font-smoothing:antialiased; + -ms-font-smoothing:antialiased; + -moz-font-smoothing:antialiased; + -o-font-smoothing:antialiased; + font-smoothing:antialiased +} +html.is-not-mobile{ + font-size:17px +} +html.is-mobile{ + font:-apple-system-body +} +html.is-hv{ + font-size:15px +} +[role=application],body{ + background:#fafafa; + -webkit-text-size-adjust:none; + color:#4b4b4b; + overflow-x:hidden; + overflow-y:visible +} +.centered{ + position:relative; + margin:0 auto; + padding:0; + max-width:1156px; + min-width:320px +} +@media print{ + [role=application],body{ + background:0 0; + width:100% + } + .centered{ + position:static; + height:auto; + overflow:auto + } + header.app{ + display:none + } +} +.is-hv .centered{ + max-width:956px +} +.content{ + width:100%; + height:calc(100% - 44px) +} +.is-hv .content{ + height:100% +} +@media all and (max-width:874px){ + html.modal-view{ + overflow-y:hidden!important + } + .content,[role=application],body,html{ + overflow-x:hidden; + overflow-y:visible!important + } + [role=application],body,html{ + min-height:100% + } + .content{ + min-height:calc(100% - 44px); + height:auto; + background-color:#fff + } + .is-hv .content{ + min-height:100% + } + .is-ie .content{ + min-height:initial; + height:calc(100% - 44px) + } + .is-mobile [role=application],.is-mobile body,.is-mobile html{ + height:auto + } + .is-mobile.panel-visible,.is-mobile.panel-visible [role=application],.is-mobile.panel-visible body{ + height:100% + } + .is-mobile.panel-visible .content{ + height:calc(100% - 44px) + } +} +@-webkit-keyframes header-searchshow{ + 0%{ + opacity:1; + -webkit-transform:scale(1); + transform:scale(1); + -webkit-animation-timing-function:cubic-bezier(.2727,.0986,.8333,1); + animation-timing-function:cubic-bezier(.2727,.0986,.8333,1) + } + 40%{ + opacity:1 + } + 100%{ + opacity:0; + -webkit-transform:scale(.7); + transform:scale(.7) + } +} +@keyframes header-searchshow{ + 0%{ + opacity:1; + -webkit-transform:scale(1); + transform:scale(1); + -webkit-animation-timing-function:cubic-bezier(.2727,.0986,.8333,1); + animation-timing-function:cubic-bezier(.2727,.0986,.8333,1) + } + 40%{ + opacity:1 + } + 100%{ + opacity:0; + -webkit-transform:scale(.7); + transform:scale(.7) + } +} +@-webkit-keyframes header-searchhide{ + 0%{ + opacity:0; + -webkit-transform:scale(.7); + transform:scale(.7) + } + 60%{ + opacity:1 + } + 100%{ + opacity:1; + -webkit-transform:scale(1); + transform:scale(1); + -webkit-animation-timing-function:cubic-bezier(.2727,.0986,.8333,1); + animation-timing-function:cubic-bezier(.2727,.0986,.8333,1) + } +} +@keyframes header-searchhide{ + 0%{ + opacity:0; + -webkit-transform:scale(.7); + transform:scale(.7) + } + 60%{ + opacity:1 + } + 100%{ + opacity:1; + -webkit-transform:scale(1); + transform:scale(1); + -webkit-animation-timing-function:cubic-bezier(.2727,.0986,.8333,1); + animation-timing-function:cubic-bezier(.2727,.0986,.8333,1) + } +} +header.app{ + position:relative; + z-index:100; + background:#333; + height:44px; + font-size:1.12rem; + line-height:1.9 +} +header.app h1{ + font-weight:400; + font-size:inherit; + margin:0 68px; + padding:.29rem; + overflow:hidden; + text-align:center; + white-space:nowrap; + text-overflow:ellipsis; + position:relative; + z-index:101; + color:#fff; + -webkit-animation:header-searchhide .4s both; + animation:header-searchhide .4s both +} +header.app h1.searchopen{ + -webkit-animation:header-searchshow .4s both; + animation:header-searchshow .4s both; + z-index:1 +} +header.app h1 a{ + color:#fff +} +header.app button{ + position:absolute; + height:30px; + top:7px; + display:block; + z-index:101; + padding:0; + width:36px; + border-radius:5px; + -ms-background-clip:padding-box; + background-clip:padding-box; + color:transparent; + border:none; + background:no-repeat; + background-size:44px 44px; + background-position:50% 50% +} +.single-page-book header.app button[name=toc],header.app button[name=find][aria-checked=false] span{ + display:none +} +header.app button[aria-checked=true]{ + background-color:#666 +} +header.app button[aria-checked=false]:hover{ + opacity:.65 +} +header.app button[name=toc]{ + background-image:url(css/img/toc_large.svg); + left:17px +} +[dir=rtl] header.app button[name=toc]{ + left:auto; + right:17px; + -webkit-transform:scaleX(-1); + transform:scaleX(-1); + -webkit-filter:FlipH; + filter:FlipH; + -ms-filter:"FlipH" +} +header.app button[name=find]{ + background-image:url(css/img/search_image_large.svg); + right:17px +} +[dir=rtl] header.app button[name=find]{ + right:auto; + left:17px +} +header.app button[name=find][aria-checked=true]{ + background:0 0 +} +nav{ + font-size:.76rem; + background:#fff; + box-sizing:border-box; + position:absolute; + top:0; + left:0; + height:100%; + width:290px +} +@media print{ + nav{ + display:none + } +} +.is-hv nav{ + font-size:.82rem; + width:190px!important +} +[dir=rtl] nav{ + left:auto; + right:0 +} +.is-not-hv nav{ + z-index:30; + border-right:1px solid #f2f2f2; + transition:-webkit-transform 0 ease-in-out; + transition:transform 0 ease-in-out +} +.toc-animating.is-not-hv nav{ + transition-duration:.3s +} +.is-not-hv [dir=rtl] nav{ + border-left:1px solid #f2f2f2; + border-right:none +} +@media all and (max-width:568px){ + .is-not-hv nav{ + transition:-webkit-transform 0 ease-in-out,width 0 linear .6s; + transition:transform 0 ease-in-out,width 0 linear .6s; + box-shadow:none!important; + width:100%!important + } + .toc-animating.is-not-hv nav{ + transition-duration:.3s + } + .is-mobile nav{ + position:fixed; + height:auto; + top:44px; + bottom:0 + } +} +nav[aria-hidden=true] ul.toc{ + pointer-events:none; + overflow-y:hidden +} +@media all and (max-width:874px){ + nav{ + box-shadow:0 0 2px 2px rgba(0,0,0,.1) + } + .is-not-hv nav[aria-hidden=true]{ + -webkit-transform:translateX(-292px); + transform:translateX(-292px) + } + .is-not-hv [dir=rtl] nav[aria-hidden=true]{ + -webkit-transform:translateX(292px); + transform:translateX(292px) + } +} +@media all and (max-width:568px){ + .is-not-hv nav[aria-hidden=true]{ + -webkit-transform:translate3d(-100%,0,0); + transform:translate3d(-100%,0,0) + } + .is-not-hv [dir=rtl] nav[aria-hidden=true]{ + -webkit-transform:translate3d(100%,0,0); + transform:translate3d(100%,0,0) + } +} +.show-more-help-link nav{ + display:-webkit-flex; + -webkit-flex-direction:column +} +@media print{ + .show-more-help-link nav{ + display:none + } +} +nav .toc-more-help{ + display:block; + padding:4px 5px 5px; + -webkit-align-self:flex-end; + width:180px; + border-top:1px solid #e4e4e4; + text-align:center +} +nav .toc-more-help a{ + display:inline-block; + line-height:1.25em; + color:#007aff +} +nav .toc-more-help a:hover{ + text-decoration:underline +} +.no-hover .topic-page .next:hover,.no-hover .topic-page .prev:hover,.topic-page .copyright-text a,.topic-page .next:hover,.topic-page .prev:hover,ul.toc a,ul.toc a.active{ + text-decoration:none +} +nav .toc-more-help .toc-more-help-icon{ + display:inline-block; + width:5px; + height:7px; + background-image:url(css/img/icon-arrow.png); + background-size:5px 7px; + margin-left:5px +} +[dir=rtl] nav .toc-more-help .toc-more-help-icon{ + -webkit-transform:rotate(180deg); + transform:rotate(180deg); + margin-left:0; + margin-right:5px +} +ul.toc{ + height:100%; + overflow-y:scroll; + -webkit-overflow-scrolling:touch +} +.is-hv ul.toc>li:first-child{ + margin-top:.714em +} +.is-hv ul.toc>li:last-child{ + margin-bottom:.714em +} +ul.toc .icon{ + position:absolute; + top:7px; + top:calc(1.6em - 1.7rem/2); + height:1.7rem; + width:1.7rem; + left:1.42rem +} +.is-not-mobile ul.toc .icon{ + -webkit-transform:translateZ(0); + transform:translateZ(0); + -webkit-backface-visibility:hidden; + -ms-backface-visibility:hidden; + -o-backface-visibility:hidden; + backface-visibility:hidden +} +.is-hv ul.toc .icon{ + display:none +} +[dir=rtl] ul.toc .icon{ + left:auto; + right:1.42rem +} +ul.toc ul{ + overflow:hidden +} +ul.toc ul.animating{ + transition:max-height .3s ease-in-out +} +ul.toc li[aria-expanded=true].first-toc-item-active>a{ + -o-border-image:none; + border-image:none +} +ul.toc li[aria-expanded=false]>a{ + transition:border-bottom 0s linear .3s,padding-bottom 0s linear .3s +} +ul.toc a{ + outline:0; + display:block; + position:relative; + border:0; + border-bottom:1px solid #f2f2f2; + padding:.95em .7rem; + padding-left:.47rem; + -o-border-image:linear-gradient(to right,#fff 0,#fff 1.42rem,#f2f2f2 .47rem,#f2f2f2 100%) 0 0 1 0; + border-image:linear-gradient(to right,#fff 0,#fff 1.42rem,#f2f2f2 .47rem,#f2f2f2 100%) 0 0 1 0; + border-image-width:0 0 1px 0; + color:#4a4a4a +} +.is-hv ul.toc a.active,ul.toc a.active{ + background-color:#f2f2f2; + border-top:1px solid #f2f2f2 +} +.is-hv ul.toc a{ + padding-top:6px; + padding-bottom:7px; + border-bottom:none; + -o-border-image:none!important; + border-image:none!important +} +[dir=rtl] ul.toc a{ + padding-left:.7rem; + padding-right:.47rem; + -o-border-image:linear-gradient(to left,#fff 0,#fff 1.42rem,#f2f2f2 .47rem,#f2f2f2 100%) 0 0 1 0; + border-image:linear-gradient(to left,#fff 0,#fff 1.42rem,#f2f2f2 .47rem,#f2f2f2 100%) 0 0 1 0; + border-image-width:0 0 1px 0 +} +.is-hv [dir=rtl] ul.toc a{ + -o-border-image:none!important; + border-image:none!important +} +ul.toc a.active{ + -o-border-image:none; + border-image:none; + top:-1px; + border-bottom:none +} +ul.toc a:hover{ + color:#007aff; + cursor:pointer +} +.no-hover ul.toc a:hover,ul.toc a:hover.active{ + color:#4a4a4a; + cursor:default +} +div.Task>.Name,ul.toc .section{ + cursor:pointer +} +ul.toc a.active .icon{ + margin-top:.01px +} +ul.toc a .name{ + pointer-events:none; + padding-left:.95rem; + word-wrap:break-word +} +[dir=rtl] ul.toc a .name{ + padding-right:.95rem +} +ul.toc ul a{ + padding-left:1.35rem; + -o-border-image:linear-gradient(to right,#fff 0,#fff 2.3rem,#f2f2f2 1.35rem,#f2f2f2 100%) 0 0 1 0; + border-image:linear-gradient(to right,#fff 0,#fff 2.3rem,#f2f2f2 1.35rem,#f2f2f2 100%) 0 0 1 0; + border-image-width:0 0 1px 0 +} +.is-hv ul.toc ul a{ + -o-border-image:none!important; + border-image:none!important +} +[dir=rtl] ul.toc ul a{ + padding-left:.7rem; + padding-right:1.35rem; + -o-border-image:linear-gradient(to left,#fff 0,#fff 2.3rem,#f2f2f2 1.35rem,#f2f2f2 100%) 0 0 1 0; + border-image:linear-gradient(to left,#fff 0,#fff 2.3rem,#f2f2f2 1.35rem,#f2f2f2 100%) 0 0 1 0; + border-image-width:0 0 1px 0 +} +.is-hv [dir=rtl] ul.toc ul a{ + -o-border-image:none!important; + border-image:none!important +} +ul.toc ul a.active{ + -o-border-image:none; + border-image:none +} +ul.toc ul ul a{ + padding-left:2.23rem; + -o-border-image:linear-gradient(to right,#fff 0,#fff 3.18rem,#f2f2f2 2.23rem,#f2f2f2 100%) 0 0 1 0; + border-image:linear-gradient(to right,#fff 0,#fff 3.18rem,#f2f2f2 2.23rem,#f2f2f2 100%) 0 0 1 0; + border-image-width:0 0 1px 0 +} +.is-hv ul.toc ul ul a{ + -o-border-image:none!important; + border-image:none!important +} +[dir=rtl] ul.toc ul ul a{ + padding-left:.7rem; + padding-right:2.23rem; + -o-border-image:linear-gradient(to left,#fff 0,#fff 3.18rem,#f2f2f2 2.23rem,#f2f2f2 100%) 0 0 1 0; + border-image:linear-gradient(to left,#fff 0,#fff 3.18rem,#f2f2f2 2.23rem,#f2f2f2 100%) 0 0 1 0; + border-image-width:0 0 1px 0 +} +.is-hv [dir=rtl] ul.toc ul ul a{ + -o-border-image:none!important; + border-image:none!important +} +ul.toc ul ul a.active{ + -o-border-image:none; + border-image:none +} +ul.toc ul ul ul a{ + padding-left:3.11rem; + -o-border-image:linear-gradient(to right,#fff 0,#fff 4.06rem,#f2f2f2 3.11rem,#f2f2f2 100%) 0 0 1 0; + border-image:linear-gradient(to right,#fff 0,#fff 4.06rem,#f2f2f2 3.11rem,#f2f2f2 100%) 0 0 1 0; + border-image-width:0 0 1px 0 +} +.is-hv ul.toc ul ul ul a{ + -o-border-image:none!important; + border-image:none!important +} +[dir=rtl] ul.toc ul ul ul a{ + padding-left:.7rem; + padding-right:3.11rem; + -o-border-image:linear-gradient(to left,#fff 0,#fff 4.06rem,#f2f2f2 3.11rem,#f2f2f2 100%) 0 0 1 0; + border-image:linear-gradient(to left,#fff 0,#fff 4.06rem,#f2f2f2 3.11rem,#f2f2f2 100%) 0 0 1 0; + border-image-width:0 0 1px 0 +} +.is-hv [dir=rtl] ul.toc ul ul ul a{ + -o-border-image:none!important; + border-image:none!important +} +ul.toc ul ul ul a.active{ + -o-border-image:none; + border-image:none +} +ul.toc .hasIcon a{ + padding-left:.47rem; + -o-border-image:linear-gradient(to right,#fff 0,#fff 3.47rem,#f2f2f2 .47rem,#f2f2f2 100%) 0 0 1 0; + border-image:linear-gradient(to right,#fff 0,#fff 3.47rem,#f2f2f2 .47rem,#f2f2f2 100%) 0 0 1 0; + border-image-width:0 0 1px 0 +} +.is-hv ul.toc .hasIcon a{ + -o-border-image:none!important; + border-image:none!important +} +[dir=rtl] ul.toc .hasIcon a{ + padding-left:.7rem; + padding-right:.47rem; + -o-border-image:linear-gradient(to left,#fff 0,#fff 3.47rem,#f2f2f2 .47rem,#f2f2f2 100%) 0 0 1 0; + border-image:linear-gradient(to left,#fff 0,#fff 3.47rem,#f2f2f2 .47rem,#f2f2f2 100%) 0 0 1 0; + border-image-width:0 0 1px 0 +} +.is-hv [dir=rtl] ul.toc .hasIcon a{ + -o-border-image:none!important; + border-image:none!important +} +ul.toc .hasIcon a.active{ + -o-border-image:none; + border-image:none +} +ul.toc .hasIcon a>.name{ + padding-left:3rem +} +[dir=rtl] ul.toc .hasIcon a>.name{ + padding-left:0; + padding-right:3rem +} +ul.toc .hasIcon ul a{ + padding-left:4.42rem; + -o-border-image:linear-gradient(to right,#fff 0,#fff 4.42rem,#f2f2f2 4.42rem,#f2f2f2 100%) 0 0 1 0; + border-image:linear-gradient(to right,#fff 0,#fff 4.42rem,#f2f2f2 4.42rem,#f2f2f2 100%) 0 0 1 0; + border-image-width:0 0 1px 0 +} +.is-hv ul.toc .hasIcon ul a{ + -o-border-image:none!important; + border-image:none!important +} +[dir=rtl] ul.toc .hasIcon ul a{ + padding-left:.7rem; + padding-right:4.42rem; + -o-border-image:linear-gradient(to left,#fff 0,#fff 4.42rem,#f2f2f2 4.42rem,#f2f2f2 100%) 0 0 1 0; + border-image:linear-gradient(to left,#fff 0,#fff 4.42rem,#f2f2f2 4.42rem,#f2f2f2 100%) 0 0 1 0; + border-image-width:0 0 1px 0 +} +.is-hv [dir=rtl] ul.toc .hasIcon ul a{ + -o-border-image:none!important; + border-image:none!important +} +ul.toc .hasIcon ul a.active{ + -o-border-image:none; + border-image:none +} +ul.toc .hasIcon ul a>.name{ + padding-left:0 +} +[dir=rtl] ul.toc .hasIcon ul a>.name{ + padding-right:0 +} +ul.toc .hasIcon ul a.section{ + padding-left:3.47rem +} +[dir=rtl] ul.toc .hasIcon ul a.section{ + padding-left:0; + padding-right:3.47rem +} +ul.toc .hasIcon ul a.section .name{ + padding-left:.95rem +} +[dir=rtl] ul.toc .hasIcon ul a.section .name{ + padding-left:0; + padding-right:.95rem +} +ul.toc .hasIcon ul ul a{ + padding-left:5.37rem; + -o-border-image:linear-gradient(to right,#fff 0,#fff 5.37rem,#f2f2f2 5.37rem,#f2f2f2 100%) 0 0 1 0; + border-image:linear-gradient(to right,#fff 0,#fff 5.37rem,#f2f2f2 5.37rem,#f2f2f2 100%) 0 0 1 0; + border-image-width:0 0 1px 0 +} +.is-hv ul.toc .hasIcon ul ul a{ + -o-border-image:none!important; + border-image:none!important +} +[dir=rtl] ul.toc .hasIcon ul ul a{ + padding-left:.7rem; + padding-right:5.37rem; + -o-border-image:linear-gradient(to left,#fff 0,#fff 5.37rem,#f2f2f2 5.37rem,#f2f2f2 100%) 0 0 1 0; + border-image:linear-gradient(to left,#fff 0,#fff 5.37rem,#f2f2f2 5.37rem,#f2f2f2 100%) 0 0 1 0; + border-image-width:0 0 1px 0 +} +.is-hv [dir=rtl] ul.toc .hasIcon ul ul a{ + -o-border-image:none!important; + border-image:none!important +} +ul.toc .hasIcon ul ul a.active{ + -o-border-image:none; + border-image:none +} +ul.toc .hasIcon ul ul a.section{ + padding-left:4.42rem +} +[dir=rtl] ul.toc .hasIcon ul ul a.section{ + padding-left:0; + padding-right:4.42rem +} +ul.toc .hasIcon ul ul ul a{ + padding-left:6.32rem; + -o-border-image:linear-gradient(to right,#fff 0,#fff 6.32rem,#f2f2f2 6.32rem,#f2f2f2 100%) 0 0 1 0; + border-image:linear-gradient(to right,#fff 0,#fff 6.32rem,#f2f2f2 6.32rem,#f2f2f2 100%) 0 0 1 0; + border-image-width:0 0 1px 0 +} +.is-hv ul.toc .hasIcon ul ul ul a{ + -o-border-image:none!important; + border-image:none!important +} +[dir=rtl] ul.toc .hasIcon ul ul ul a{ + padding-left:.7rem; + padding-right:6.32rem; + -o-border-image:linear-gradient(to left,#fff 0,#fff 6.32rem,#f2f2f2 6.32rem,#f2f2f2 100%) 0 0 1 0; + border-image:linear-gradient(to left,#fff 0,#fff 6.32rem,#f2f2f2 6.32rem,#f2f2f2 100%) 0 0 1 0; + border-image-width:0 0 1px 0 +} +.is-hv [dir=rtl] ul.toc .hasIcon ul ul ul a{ + -o-border-image:none!important; + border-image:none!important +} +ul.toc .hasIcon ul ul ul a.active{ + -o-border-image:none; + border-image:none +} +ul.toc .hasIcon ul ul ul a.section{ + padding-left:5.37rem +} +[dir=rtl] ul.toc .hasIcon ul ul ul a.section{ + padding-left:0; + padding-right:5.37rem +} +ul.toc ul li.hasIcon{ + padding-left:.88rem; + border-image-width:0 0 1px 0; + -o-border-image:none; + border-image:none +} +.is-hv ul.toc ul li.hasIcon{ + -o-border-image:none!important; + border-image:none!important +} +[dir=rtl] ul.toc ul li.hasIcon{ + padding-left:.7rem; + padding-right:.88rem; + -o-border-image:linear-gradient(to left,#fff 0,#fff 5.37rem,#f2f2f2 .88rem,#f2f2f2 100%) 0 0 1 0; + border-image:linear-gradient(to left,#fff 0,#fff 5.37rem,#f2f2f2 .88rem,#f2f2f2 100%) 0 0 1 0; + border-image-width:0 0 1px 0 +} +.is-hv [dir=rtl] ul.toc ul li.hasIcon{ + -o-border-image:none!important; + border-image:none!important +} +ul.toc ul li.hasIcon.active{ + -o-border-image:none; + border-image:none +} +ul.toc .section .disclosure-icon{ + background-image:url(css/img/arrow.svg); + background-size:1em 1em; + width:1em; + height:1em; + display:block; + float:left; + margin-top:.23em +} +[dir=rtl] ul.toc .section .disclosure-icon{ + float:right; + -webkit-transform:rotate(180deg); + transform:rotate(180deg); + -webkit-backface-visibility:hidden; + -ms-backface-visibility:hidden; + -o-backface-visibility:hidden; + backface-visibility:hidden +} +.is-not-mobile ul.toc .section .disclosure-icon{ + transition:-webkit-transform .1s linear; + transition:transform .1s linear +} +ul.toc .section:hover .disclosure-icon{ + background-image:url(css/img/arrow-blue.svg) +} +ul.toc li[aria-expanded=true]>.section .disclosure-icon{ + -webkit-transform:rotate(90deg); + transform:rotate(90deg); + -webkit-backface-visibility:hidden; + -ms-backface-visibility:hidden; + -o-backface-visibility:hidden; + backface-visibility:hidden +} +section{ + position:absolute; + left:0; + right:0; + background-color:#fff; + overflow-x:hidden; + overflow-y:auto; + -webkit-overflow-scrolling:touch; + transition:left .3s ease-in-out,right .3s ease-in-out +} +@media print{ + section{ + position:static; + height:auto; + overflow:auto + } +} +section,section article{ + height:100% +} +.is-mobile.panel-visible section{ + height:100%; + overflow:hidden!important +} +@media all and (min-width:875px){ + .is-not-hv section{ + left:0; + z-index:31 + } + .is-not-hv section.toc-visible{ + left:290px + } + .is-not-hv [dir=rtl] section{ + left:0; + right:0 + } + .is-not-hv [dir=rtl] section.toc-visible{ + right:290px + } + .single-page-book section{ + left:0!important; + right:0!important + } +} +.is-hv section{ + transition:left .3s ease-in-out,right .3s ease-in-out,box-shadow 0s linear .3s; + box-shadow:-2px 0 0 0 transparent +} +.is-hv [dir=rtl] section{ + box-shadow:2px 0 0 0 transparent +} +.is-hv section.toc-visible{ + transition:left .3s ease-in-out,right .3s ease-in-out,box-shadow 0s linear 0s; + box-shadow:-2px 0 0 0 #e4e4e4; + left:190px +} +.is-hv [dir=rtl] section.toc-visible{ + left:0; + right:190px; + box-shadow:2px 0 0 0 #e4e4e4 +} +@media print{ + section{ + left:0; + width:100%!important + } +} +@media all and (max-width:874px){ + .is-mobile section,.is-mobile section article{ + min-height:100%!important; + height:auto; + overflow-x:hidden; + overflow-y:visible!important; + position:relative + } +} +.topic-container{ + position:relative; + width:100%; + max-width:866px; + margin:0 auto; + min-height:100%; + font-size:.82rem; + background:#fff; + padding-bottom:2em +} +.topic-container .is-hv{ + position:absolute +} +@media print{ + .topic-container{ + position:static; + height:auto; + overflow:auto + } +} +.is-mobile.is-safari8 .landing-page .topic-container,.is-mobile.is-safari9 .landing-page .topic-container,.is-modern-hv .landing-page .topic-container{ + display:-moz-flex; + display:-ms-flex; + display:-webkit-box; + display:flex; + -moz-flex-direction:column; + -o-flex-direction:column; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + flex-direction:column; + -ms-justify-content:center; + -moz-justify-content:center; + -o-justify-content:center; + -webkit-box-pack:center; + justify-content:center; + min-height:100%; + padding:0 +} +@media all and (max-width:581px){ + .is-modern-hv .landing-page .apd-topic figure img{ + max-width:328px + } +} +div.Task>.Name{ + position:relative +} +div.Task>.Name:focus{ + outline:0 +} +div.Task>.Name .task-arrow{ + background-image:url(css/img/arrow.svg); + position:absolute; + background-size:1em 1em; + width:1em; + height:1em; + top:.95em; + left:-1.2em; + transition:-webkit-transform .1s linear; + transition:transform .1s linear +} +[dir=rtl] div.Task>.Name .task-arrow{ + left:auto; + right:-1.2em; + -webkit-transform:rotate(180deg); + transform:rotate(180deg) +} +div.Task>.Name:hover .task-arrow{ + background-image:url(css/img/arrow-blue.svg) +} +.no-hover div.Task>.Name:hover .task-arrow{ + background-image:url(css/img/arrow.svg) +} +div.Task>.Name[aria-expanded=true] .task-arrow{ + -webkit-transform:rotate(90deg); + transform:rotate(90deg) +} +.SoloTask.Task h2.Name{ + cursor:text +} +.SoloTask.Task h2.Name .task-arrow{ + display:none +} +.SoloTask.Task h2.Name:hover{ + color:#484848!important +} +.topic-page{ + padding:8% +} +.topic-page.passionpoints{ + padding:4% +} +@media all and (max-width:568px){ + .topic-page{ + padding:5%; + padding:calc(2% + .8em) + } + .topic-page.passionpoints{ + padding:0 + } +} +.topic-page .chapter-name{ + display:inline-block; + color:#999; + text-transform:uppercase; + font-size:11px; + font-weight:600; + margin-bottom:4px +} +.feedback a,.topic-page .chapter-name:lang(el){ + text-transform:none +} +.topic-page .apd-topic{ + margin-bottom:1.5em +} +.topic-page .apd-topic .topicIcon{ + float:left; + width:30px; + height:30px; + background-size:30px 30px; + padding-right:10px; + margin:0; + position:relative; + top:1px +} +.is-hv .topic-page .apd-topic .topicIcon{ + display:inline +} +@media all and (max-width:568px){ + .topic-page .apd-topic .topicIcon{ + width:24px; + height:24px; + background-size:24px 24px; + padding-right:8px + } + [dir=rtl] .topic-page .apd-topic .topicIcon{ + padding-right:0; + padding-left:8px + } +} +[dir=rtl] .topic-page .apd-topic .topicIcon{ + float:right; + padding-right:0; + padding-left:10px +} +@media print{ + .topic-page .apd-topic a[href^=x-help]{ + display:none + } +} +.is-not-hv .topic-page .apd-topic a[href^=x-help]{ + display:none +} +.topic-page .next,.topic-page .prev{ + position:relative; + outline:0; + text-decoration:none; + color:#007aff; + padding:19px; + margin-bottom:1.5em; + font-size:.87rem +} +.topic-page .next:visited,.topic-page .prev:visited{ + color:#007aff +} +.topic-page .prev,[dir=rtl] .topic-page .next{ + float:left; + background:url(css/img/nav-left.svg) left no-repeat; + background-size:10px 20px +} +.topic-page .next,[dir=rtl] .topic-page .prev{ + float:right; + background:url(css/img/nav-right.svg) right no-repeat; + background-size:10px 20px +} +.topic-page .copyright-text{ + display:none; + white-space:pre-line; + color:#b1b1b1; + font-size:.65rem; + clear:both +} +.is-not-hv .topic-page .copyright-text{ + display:block +} +@media print{ + .topic-page .copyright-text{ + display:block + } +} +.topic-page .copyright-text a{ + position:relative; + outline:0; + color:#007aff +} +.topic-page .copyright-text a:visited{ + color:#007aff +} +.topic-page .copyright-text a:hover{ + text-decoration:underline +} +.no-hover .topic-page .copyright-text a:hover{ + text-decoration:none +} +.topic-page .language{ + display:none; + color:#484848; + font-size:.65rem; + margin:5px 0 0; + text-align:center +} +.topic-page .language .cur-lang{ + color:#007aff; + cursor:pointer; + display:inline-block +} +.topic-page .language .cur-lang .lang-icon{ + background-image:url(css/img/changelanguage_icon2x.png); + background-size:13px 13px; + width:13px; + height:13px; + display:inline-block; + position:relative; + top:2px; + pointer-events:none +} +.landing-page .topic-page .language{ + display:block +} +.single-page-book .topic-page .language{ + display:block; + text-align:left +} +[dir=rtl].single-page-book .topic-page .language{ + text-align:right +} +.topic-page.landing .feedback{ + display:none +} +.topic-page.landing .copyright-text{ + text-align:center +} +.fka-styles nav a[tabindex="0"]:focus{ + text-decoration:underline!important; + text-decoration:underline +} +.fka-styles :focus{ + outline-width:1px; + outline-style:dotted +} +.video-container{ + position:relative; + display:inline-block +} +.video-container video{ + height:auto +} +.video-container .thumbnail{ + overflow:hidden; + position:absolute; + left:0; + top:0; + width:100%; + height:100%; + display:inline-block; + vertical-align:top; + z-index:1; + background-color:transparent; + border:none +} +.video-container .thumbnail:active{ + border:none +} +.video-container .thumbnail .thumbnail-button{ + position:absolute; + top:50%; + left:50%; + -webkit-transform:translate(-50%,-50%); + transform:translate(-50%,-50%); + display:block; + background:url(css/img/icon-play.svg) center center no-repeat rgba(242,242,242,.75); + color:transparent; + cursor:pointer; + pointer-events:none; + width:90px; + height:90px; + border-radius:90px; + background-size:45px 45px +} +.apd-topic.PassionPoints .hide-me,[data-state=playing].video-container .thumbnail .thumbnail-button{ + display:none +} +[data-state=paused].video-container .thumbnail .thumbnail-button{ + background-image:url(css/img/icon-pause.svg) +} +[data-state=ended].video-container .thumbnail .thumbnail-button{ + background-image:url(css/img/icon-replay.svg) +} +@media all and (max-width:568px){ + .video-container .thumbnail .thumbnail-button{ + width:45px!important; + height:45px!important; + border-radius:45px!important; + background-size:23px 23px!important + } +} +.video-container .thumbnail .thumbnail-button.dark{ + background:rgba(34,34,34,.3) +} +.video-container .thumbnail,.video-container .thumbnail image{ + background-position:center; + background-size:cover +} +.apd-topic{ + color:#484848 +} +.apd-topic.PassionPoints{ + padding-bottom:2em; + margin:auto 0; + color:#333 +} +.apd-topic.PassionPoints .bordered-section{ + border-top:1px solid #e4e4e4 +} +.apd-topic.PassionPoints .Hero{ + display:-webkit-box; + display:flex; + -webkit-box-pack:center; + justify-content:center; + -webkit-box-align:center; + align-items:center; + padding:5% 0 10%; + margin-bottom:0 +} +@media all and (max-width:568px){ + .apd-topic.PassionPoints{ + margin-left:0; + margin-right:0 + } + .apd-topic.PassionPoints .Hero{ + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + flex-direction:column; + padding:1em 2em + } +} +.apd-topic.PassionPoints .Hero:lang(de),.apd-topic.PassionPoints .Hero:lang(ja),.apd-topic.PassionPoints .Hero:lang(ko),.apd-topic.PassionPoints .Hero:lang(nl),.apd-topic.PassionPoints .Hero:lang(sv){ + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + flex-direction:column; + padding:1em 2em +} +.apd-topic.PassionPoints .Hero figure{ + margin:0 2.5em 0 0; + text-align:center; + flex-basis:auto +} +[dir=rtl] .apd-topic.PassionPoints .Hero figure{ + margin-right:0; + margin-left:2.5em +} +@media all and (max-width:568px){ + .apd-topic.PassionPoints .Hero figure{ + margin-right:0; + width:-webkit-max-content; + width:-moz-max-content; + width:max-content + } + .apd-topic.PassionPoints .Hero figure img{ + max-width:50% + } +} +.apd-topic.PassionPoints .Hero div .Name{ + margin:.25em 0 0; + text-align:left; + font-weight:400; + font-size:3.25rem; + line-height:1; + color:#333; + letter-spacing:-.014em; + overflow:visible +} +[dir=rtl] .apd-topic.PassionPoints .Hero div .Name{ + text-align:right +} +@media all and (max-width:568px){ + .apd-topic.PassionPoints .Hero div .Name{ + text-align:center; + font-size:1.4rem + } + [dir=rtl] .apd-topic.PassionPoints .Hero div .Name{ + text-align:center + } + .apd-topic.PassionPoints .Hero div .Name:lang(nl){ + font-size:1.9rem + } +} +.apd-topic.PassionPoints .Hero div .Name:lang(de),.apd-topic.PassionPoints .Hero div .Name:lang(ja),.apd-topic.PassionPoints .Hero div .Name:lang(ko),.apd-topic.PassionPoints .Hero div .Name:lang(nl),.apd-topic.PassionPoints .Hero div .Name:lang(sv){ + text-align:center +} +.apd-topic.PassionPoints .Hero div p{ + text-align:left; + font-weight:300; + font-size:1.5rem; + line-height:1.3; + letter-spacing:.005em; + color:#666 +} +[dir=rtl] .apd-topic.PassionPoints .Hero div p{ + text-align:right +} +@media all and (max-width:568px){ + .apd-topic.PassionPoints .Hero div p{ + font-size:1rem; + text-align:center; + padding-left:2%; + padding-right:2%; + margin:.7em 0 + } + [dir=rtl] .apd-topic.PassionPoints .Hero div p{ + text-align:center + } +} +.apd-topic.PassionPoints .Hero div p:lang(de),.apd-topic.PassionPoints .Hero div p:lang(ja),.apd-topic.PassionPoints .Hero div p:lang(ko),.apd-topic.PassionPoints .Hero div p:lang(nl),.apd-topic.PassionPoints .Hero div p:lang(sv){ + text-align:center +} +.apd-topic.PassionPoints div.Feature{ + border-bottom:1px solid #e4e4e4; + position:relative; + padding:1em 2em; + letter-spacing:.02rem; + margin:0; + cursor:pointer; + transition:background-color .2s linear,border-color .2s linear +} +@media all and (max-width:568px){ + .apd-topic.PassionPoints div.Feature{ + padding:.8em 2em; + letter-spacing:0 + } + .apd-topic.PassionPoints div.Feature>figure{ + margin:.2em 0 + } +} +.apd-topic.PassionPoints div.Feature figure img{ + pointer-events:none +} +.apd-topic.PassionPoints div.Feature>.Name{ + font-weight:400; + font-size:1.59rem; + line-height:1.08; + margin:0 0 .3em +} +@media all and (max-width:568px){ + .apd-topic.PassionPoints div.Feature>.Name{ + font-size:1.1rem + } +} +.apd-topic.PassionPoints div.Feature>.Name+p{ + font-weight:300; + font-size:1.125rem; + color:#999; + margin-bottom:.5em; + line-height:1.3 +} +@media all and (max-width:568px){ + .apd-topic.PassionPoints div.Feature>.Name+p{ + font-size:.9rem + } +} +.apd-topic.PassionPoints div.Feature .FeatureBody{ + overflow:hidden; + padding:0 2em 2em +} +.apd-topic.PassionPoints div.Feature .FeatureBody.animating{ + transition:max-height .5s ease-in-out +} +@media screen{ + .apd-topic.PassionPoints div.Feature .FeatureBody{ + display:none + } +} +@media print{ + .apd-topic.PassionPoints div.Feature .FeatureBody{ + display:block!important + } +} +@media screen{ + .apd-topic.PassionPoints div.Feature .FeatureBody[aria-hidden=false]{ + display:block + } + .apd-topic.PassionPoints div.Feature .FeatureBody[aria-hidden=true]{ + max-height:0!important + } +} +.apd-topic.PassionPoints div.Feature .FeatureBody p{ + font-weight:200; + font-size:.8rem; + line-height:1.5 +} +@media all and (max-width:568px){ + .apd-topic.PassionPoints div.Feature .FeatureBody p{ + font-size:.9rem + } + .apd-topic.PassionPoints div.Feature .FeatureBody .Subhead{ + -webkit-box-orient:vertical!important; + -webkit-box-direction:normal!important; + flex-direction:column!important + } +} +.apd-topic.PassionPoints div.Feature .FeatureBody:last-child{ + padding-bottom:0 +} +.apd-topic.PassionPoints div.Feature .FeatureBody>p:first-child{ + text-align:left; + padding-bottom:1em +} +[dir=rtl] .apd-topic.PassionPoints div.Feature .FeatureBody>p:first-child{ + text-align:right +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Name{ + margin-top:0; + font-size:1.125rem; + font-weight:400; + text-align:left; + line-height:1.3 +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead{ + padding:3em 0; + display:-webkit-box; + display:flex +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead>div{ + width:100% +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead>div p:last-child{ + margin-bottom:0 +} +[dir=rtl] .apd-topic.PassionPoints div.Feature .FeatureBody .Subhead h2,[dir=rtl] .apd-topic.PassionPoints div.Feature .FeatureBody .Subhead p{ + text-align:right +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead figure{ + max-width:900px; + align-self:flex-start +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead figure figcaption{ + font-size:.65rem; + color:#999 +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead.figure-left figure,.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead:nth-child(even) figure{ + padding-right:2em +} +[dir=rtl] .apd-topic.PassionPoints div.Feature .FeatureBody .Subhead.figure-left figure,[dir=rtl] .apd-topic.PassionPoints div.Feature .FeatureBody .Subhead:nth-child(even) figure{ + padding-left:2em; + padding-right:0 +} +@media all and (max-width:568px){ + .apd-topic.PassionPoints div.Feature .FeatureBody .Subhead figure{ + align-self:center + } + .apd-topic.PassionPoints div.Feature .FeatureBody .Subhead.figure-left figure,.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead:nth-child(even) figure{ + padding-right:0; + padding-left:0; + padding-bottom:1em + } +} +[dir=rtl] .apd-topic.PassionPoints div.Feature .FeatureBody .Subhead.figure-right figure{ + padding-right:2em!important; + padding-left:0!important +} +[dir=ltr] .apd-topic.PassionPoints div.Feature .FeatureBody .Subhead.figure-left figure{ + padding-left:0!important +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead.figure-right,.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead:nth-child(odd){ + -webkit-box-orient:horizontal; + -webkit-box-direction:reverse; + flex-direction:row-reverse +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead.figure-right figure,.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead:nth-child(odd) figure{ + padding-left:2em +} +[dir=rtl] .apd-topic.PassionPoints div.Feature .FeatureBody .Subhead.figure-right figure,[dir=rtl] .apd-topic.PassionPoints div.Feature .FeatureBody .Subhead:nth-child(odd) figure{ + padding-left:0; + padding-right:2em +} +@media all and (max-width:568px){ + .apd-topic.PassionPoints div.Feature .FeatureBody .Subhead.figure-right figure,.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead:nth-child(odd) figure{ + padding-left:0; + padding-right:0; + padding-bottom:1em + } +} +[dir=rtl] .apd-topic.PassionPoints div.Feature .FeatureBody .Subhead.figure-left figure{ + padding-left:2em!important; + padding-right:0!important +} +[dir=ltr] .apd-topic.PassionPoints div.Feature .FeatureBody .Subhead.figure-right figure{ + padding-right:0!important +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead.figure-left{ + -webkit-box-orient:horizontal; + -webkit-box-direction:normal; + flex-direction:row +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead.figure-right{ + -webkit-box-orient:horizontal; + -webkit-box-direction:reverse; + flex-direction:row-reverse +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead.figure-top{ + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + flex-direction:column +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead.figure-bottom{ + -webkit-box-orient:vertical; + -webkit-box-direction:reverse; + flex-direction:column-reverse +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead.figure-top figure{ + padding-left:0; + padding-right:0; + padding-bottom:1em +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead.figure-bottom figure{ + padding-left:0; + padding-right:0; + padding-top:1em +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Triptych{ + padding:3em 0; + min-width:460px +} +@media all and (max-width:568px){ + .apd-topic.PassionPoints div.Feature .FeatureBody .Subhead.figure-bottom{ + -webkit-box-orient:vertical!important; + -webkit-box-direction:reverse!important; + flex-direction:column-reverse!important + } + .apd-topic.PassionPoints div.Feature .FeatureBody .Triptych{ + min-width:auto + } +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Triptych .panel-container{ + display:-webkit-box; + display:flex; + flex-wrap:wrap; + -webkit-box-orient:horizontal; + -webkit-box-direction:normal; + flex-direction:row; + margin:10px -10px +} +@media all and (max-width:568px){ + .apd-topic.PassionPoints div.Feature .FeatureBody .Triptych .panel-container{ + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + flex-direction:column; + -webkit-box-align:start; + align-items:flex-start + } +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Triptych .panel-container .Panel{ + -webkit-box-flex:1; + flex:1 120px; + padding:0; + text-align:left; + margin:10px +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Triptych .panel-container .Panel figure{ + padding-bottom:1em +} +@media all and (max-width:568px){ + .apd-topic.PassionPoints div.Feature .FeatureBody .Triptych .panel-container .Panel{ + display:-webkit-box; + display:flex; + text-align:left; + -webkit-box-orient:horizontal; + -webkit-box-direction:normal; + flex-direction:row; + padding-bottom:2em; + width:95% + } + .apd-topic.PassionPoints div.Feature .FeatureBody .Triptych .panel-container .Panel figure{ + padding-right:.6em; + min-width:30%; + max-width:30% + } +} +.Copyright.apd-topic h1,.apd-topic .topicIcon{ + display:none +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Triptych .panel-container .Panel p{ + font-size:.8rem; + padding-bottom:1em; + vertical-align:top +} +[dir=rtl] .apd-topic.PassionPoints div.Feature .FeatureBody .Triptych .panel-container .Panel p{ + text-align:right +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead figure,.apd-topic.PassionPoints div.Feature .FeatureBody .Triptych figure,.apd-topic.PassionPoints div.Feature .FeatureBody .Triptych+figure figure,.apd-topic.PassionPoints div.Feature .FeatureBody .Triptych+figure+p figure{ + margin:0 +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Subhead p,.apd-topic.PassionPoints div.Feature .FeatureBody .Triptych p,.apd-topic.PassionPoints div.Feature .FeatureBody .Triptych+figure p,.apd-topic.PassionPoints div.Feature .FeatureBody .Triptych+figure+p p{ + text-align:left; + padding:0 +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Triptych .Panel p{ + padding:0 .3em +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Triptych+figure+p{ + width:60%; + margin:0 auto +} +@media all and (max-width:568px){ + .apd-topic.PassionPoints div.Feature .FeatureBody .Triptych+figure+p{ + width:90% + } +} +.apd-topic.PassionPoints div.Feature .FeatureBody>figure.hide-me:last-of-type+p,.apd-topic.PassionPoints div.Feature .FeatureBody>figure:last-of-type{ + padding-top:2em; + border-top:1px solid #e4e4e4; + margin-top:0 +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Outro{ + padding-top:1em; + text-align:left; + margin-bottom:2em +} +[dir=rtl] .apd-topic.PassionPoints div.Feature .FeatureBody .Outro{ + text-align:right +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Outro figure{ + margin:1em 0 1.25em +} +.apd-topic.PassionPoints div.Feature .FeatureBody .Outro.outro-center footer,.apd-topic.PassionPoints div.Feature .FeatureBody .Outro.outro-center p{ + text-align:center +} +.apd-topic.PassionPoints div.Feature .FeatureBody+.toggle-feature-btn{ + width:24px; + height:24px; + background:url(css/img/icon-arrow-2.svg) center 97% no-repeat; + background-size:24px 24px; + padding:3px; + border:0 +} +.apd-topic.PassionPoints div.Feature .FeatureBody[aria-hidden=false]+.toggle-feature-btn{ + position:absolute; + background:url(css/img/icon-close.svg) center 97% no-repeat; + top:20px; + right:20px +} +[dir=rtl] .apd-topic.PassionPoints div.Feature .FeatureBody[aria-hidden=false]+.toggle-feature-btn{ + right:auto; + left:20px +} +.apd-topic.PassionPoints div.Feature .FeatureBody[aria-hidden=false].animating+.toggle-feature-btn{ + position:relative!important; + width:24px; + height:24px; + background-size:24px 24px; + background:url(css/img/icon-arrow-2.svg) center 97% no-repeat; + margin:0 auto; + top:initial; + right:initial +} +[dir=rtl] .apd-topic.PassionPoints div.Feature .FeatureBody[aria-hidden=false].animating+.toggle-feature-btn{ + right:initial; + left:initial +} +.apd-topic.PassionPoints div.Feature[aria-expanded=true]{ + cursor:default +} +.apd-topic.PassionPoints div.Feature[aria-expanded=true].FeatureSingle{ + background-color:inherit +} +.apd-topic.PassionPoints div.Feature[aria-expanded=true] .Triptych+figure+p figure{ + float:left +} +.apd-topic h1{ + position:relative; + bottom:0; + outline:0; + overflow:auto; + text-overflow:ellipsis; + font-family:-apple-system,-apple-system-font,HelveticaNeue,"Helvetica Neue",Helvetica,sans-serif; + font-size:1.59rem; + line-height:1.2; + font-weight:400; + color:#4b4b4b; + margin:0 0 1em; + padding:0 +} +[lang=hi] .apd-topic h1,[lang=th] .apd-topic h1,[lang=vi] .apd-topic h1{ + line-height:1.5 +} +.is-mobile .apd-topic h1,.modal-content .apd-topic h1{ + font-size:1.24rem; + margin-bottom:.7em +} +.apd-topic figure{ + margin:1.25em 0 .9em +} +.apd-topic figure img{ + max-width:100%; + height:auto +} +.apd-topic video{ + max-width:100% +} +.apd-topic div.ParaLines,.apd-topic p{ + margin:.3em 0 1em; + white-space:pre-line; + word-wrap:break-word; + widows:3; + orphans:3 +} +.apd-topic div.ParaLines img,.apd-topic p img{ + height:1em!important; + width:auto!important; + position:relative; + top:-.1em; + vertical-align:text-bottom; + pointer-events:none +} +.apd-topic h1 img,.apd-topic h2 img,.apd-topic h3 img,.apd-topic h4 img,.apd-topic h5 img,.apd-topic h6 img{ + height:1.2em!important; + width:auto!important; + vertical-align:-.2em; + pointer-events:none +} +.apd-topic div.ParaLines p{ + margin:0 +} +.apd-topic strong.BlackIcon,.apd-topic strong.EUIcon,.apd-topic strong.Icon,.apd-topic strong.YellowIcon,.apd-topic strong.force-click,.apd-topic strong.siri,.apd-topic strong.tip,.apd-topic strong[class="3d-touch"]{ + background:url(css/img/icon-warning.png) left top no-repeat; + background-size:1rem .82rem; + padding:0 0 0 1.5em +} +[dir=rtl] .apd-topic strong.BlackIcon,[dir=rtl] .apd-topic strong.EUIcon,[dir=rtl] .apd-topic strong.Icon,[dir=rtl] .apd-topic strong.YellowIcon,[dir=rtl] .apd-topic strong.force-click,[dir=rtl] .apd-topic strong.siri,[dir=rtl] .apd-topic strong.tip,[dir=rtl] .apd-topic strong[class="3d-touch"]{ + padding:0 1.5em 0 0; + background-position:right top +} +.apd-topic strong.EUIcon{ + background-image:url(css/img/icon-warning-eu.png) +} +.apd-topic strong.BlackIcon{ + background-image:url(css/img/icon-warning-black.png) +} +.apd-topic strong.force-click,.apd-topic strong.siri,.apd-topic strong.tip,.apd-topic strong[class="3d-touch"]{ + background-image:url(css/img/ask-siri.svg); + background-size:1.4em 1.4em; + padding:.15em 0 .15em 1.7em +} +[dir=rtl] .apd-topic strong.force-click,[dir=rtl] .apd-topic strong.siri,[dir=rtl] .apd-topic strong.tip,[dir=rtl] .apd-topic strong[class="3d-touch"]{ + padding:.15em 1.7em .15em 0 +} +.apd-topic strong.tip{ + background-image:url(css/img/tip.svg) +} +.apd-topic strong.force-click,.apd-topic strong[class="3d-touch"]{ + background-image:url(css/img/force-click.svg) +} +.apd-topic sup{ + top:-.4em +} +.apd-topic span.NoBreak{ + white-space:nowrap +} +.Copyright.apd-topic{ + font-size:.65rem +} +.Copyright.apd-topic p:nth-of-type(1){ + margin-bottom:.1em +} +.Copyright.apd-topic p:nth-of-type(2){ + margin-top:.1em +} +.apd-topic .Alert+.Alert,.apd-topic li p.Caution,.apd-topic li p.Important,.apd-topic li p.Note,.apd-topic li p.Notice,.apd-topic li p.Tip{ + margin-top:.75em +} +.apd-topic .TaskBody .Alert,.apd-topic div.note{ + margin-top:.75em; + margin-bottom:.75em +} +.apd-topic p.Caution,.apd-topic p.Warning{ + margin-bottom:.75em +} +.apd-topic .yNote{ + font-style:italic; + font-weight:700 +} +.apd-topic code{ + font-family:Menlo,monospace; + font-size:.76rem +} +.apd-topic .CodeLine,.apd-topic .CodeLines{ + display:block; + font-weight:400; + white-space:pre-wrap; + word-break:break-word; + overflow:hidden; + text-overflow:ellipsis +} +.client-env a,.feedback button,.nb{ + white-space:nowrap +} +.apd-topic .CodeLines{ + margin-top:.3em; + margin-bottom:1em +} +.apd-topic .CodeLines>.CodeLine{ + margin-top:.25em; + margin-bottom:.25em +} +.apd-topic .Comment{ + color:red +} +.apd-topic .Comment:before{ + content:"COMMENT: "; + font-weight:700 +} +.apd-topic .HIStrings{ + margin-top:1.25em; + margin-bottom:.25em +} +.apd-topic .HIStrings p{ + margin-bottom:.9em +} +.apd-topic .HIStrings>p{ + margin-bottom:0 +} +.apd-topic .HIStrings:first-child{ + padding-top:0; + margin-top:.65em +} +.apd-topic .HIStrings+.HIStrings{ + margin-top:.5em +} +.apd-topic .HIStrings em.Term{ + color:#555 +} +.apd-topic .HIStrings strong.Term{ + color:#000 +} +.apd-topic a,.apd-topic a:visited{ + color:#007aff +} +.apd-topic .HISubString{ + margin-top:.3em; + margin-bottom:.7em; + display:list-item; + margin-left:1.5em; + padding-left:.25em +} +[dir=rtl] .apd-topic .HISubString{ + margin-left:0; + margin-right:1.5em; + padding-left:0; + padding-right:.25em +} +.apd-topic .HISubString>.HISubString{ + margin-top:.85em; + display:block; + margin-left:0; + padding-left:0 +} +[dir=rtl] .apd-topic .HISubString>.HISubString{ + margin-left:0; + margin-right:0; + padding-left:0; + padding-right:0 +} +.apd-topic a{ + position:relative; + outline:0; + text-decoration:none +} +.apd-topic a:hover{ + text-decoration:underline +} +#search .searchresults-item a,.feedback button:hover,.landing li a:hover,.landing ul a:hover,.no-hover .apd-topic a:hover,.toc-toggle a{ + text-decoration:none +} +.apd-topic a.xRef.Aside{ + cursor:pointer; + border-bottom:1px dotted #007aff +} +.apd-topic a.xRef.Aside:hover{ + border-bottom-style:solid; + text-decoration:none +} +.no-hover .apd-topic a.xRef.Aside:hover{ + border-bottom:1px dotted #007aff +} +.apd-topic a.xRef.Aside *{ + pointer-events:none +} +.apd-topic em:lang(ja),.apd-topic em:lang(ko),.apd-topic em:lang(zh){ + font-style:normal; + font-weight:700 +} +.apd-topic .LinkExternal strong,.apd-topic .LinkUniversal strong{ + display:block; + margin:2.86em 0 .5em +} +.apd-topic .LinkExternal a,.apd-topic .LinkUniversal a{ + display:table; + margin:.2em 0 0 +} +.apd-topic .link-external{ + background-image:url(css/img/icon-external-link.png); + width:7px; + height:7px; + background-size:7px 7px; + display:inline-block; + margin-left:3px; + margin-right:2px; + position:relative +} +.apd-topic .itunes-link{ + width:430px; + text-align:left +} +.apd-topic table[data-type="1 column"]>tbody,.apd-topic table[data-type=Data]>tbody,.apd-topic table[data-type="Full Width"]>tbody{ + width:100% +} +[dir=rtl] .apd-topic .itunes-link{ + text-align:right +} +.apd-topic ol,.apd-topic ul{ + margin-top:.3em; + margin-bottom:1em +} +.apd-topic ol>li,.apd-topic ul>li{ + margin-top:.3em; + margin-bottom:.7em +} +.apd-topic ul>li{ + list-style:disc +} +.apd-topic ol.decimal>li,.apd-topic ol>li{ + list-style:decimal +} +.apd-topic .ListDescriptor+.Alert{ + margin-top:-.25em!important +} +.is-chrome .apd-topic ol>li,.is-ff .apd-topic ol>li,.is-ie .apd-topic ol>li{ + padding-left:3px +} +.is-chrome body[dir=rtl] .apd-topic ol>li,.is-ff body[dir=rtl] .apd-topic ol>li,.is-ie body[dir=rtl] .apd-topic ol>li{ + padding-left:0; + padding-right:3px +} +.apd-topic ol>li:lang(ar){ + list-style-type:arabic-indic +} +.apd-topic ol>li:lang(he){ + list-style-type:hebrew +} +.apd-topic ul.ListSingle{ + font-weight:400 +} +.apd-topic ul.ListSingle>li{ + font-weight:400; + list-style-type:square; + list-style-position:outside; + list-style-image:-webkit-gradient(radial,50% 50%,3,50% 50%,6,from(#aaa),color-stop(.8,#aaa),to(#aaa)) +} +.apd-topic ul.ListSingle li>p{ + margin-top:.25em +} +.apd-topic address p,.apd-topic ol.alpha>li,.apd-topic ol.decimal>li{ + margin-top:0; + margin-bottom:0 +} +.apd-topic ol.decimal>li:lang(ar){ + list-style-type:arabic-indic +} +.apd-topic ol.decimal>li:lang(he){ + list-style-type:hebrew +} +.apd-topic ol.alpha>li{ + list-style:lower-alpha!important +} +.apd-topic dl dd,.apd-topic dl dt{ + display:inline; + margin:0 +} +.apd-topic dl dt{ + float:left; + font-weight:700 +} +.apd-topic dl dt:after{ + content:'\00a0\00a0' +} +.apd-topic address{ + font-style:normal +} +.apd-topic address+p{ + margin-top:1em +} +.apd-topic .Subhead .Name{ + font-size:.82rem; + margin-top:1.7em; + margin-bottom:.3em; + font-weight:700; + color:#4b4b4b +} +.apd-topic .Subhead .Name+p{ + margin-top:0 +} +.apd-topic .Subhead ul+.Alert{ + margin-left:0 +} +[dir=rtl] .apd-topic .Subhead ul+.Alert{ + margin-right:0 +} +.apd-topic .Example{ + margin-left:4.36em; + margin-right:4.36em +} +.apd-topic div.Task{ + margin:2em 0; + background-color:none; + border-top:1px solid #e4e4e4; + border-bottom:1px solid #e4e4e4 +} +.apd-topic div.Task+.Task{ + margin-top:-2.1em; + border-top-color:transparent +} +.apd-topic div.Task.no-header .TaskBody{ + margin-top:1em +} +.apd-topic div.Task:first-child{ + margin-top:1.4em +} +.apd-topic div.Task>.Name{ + font-size:.82rem; + font-weight:700; + line-height:1.43; + margin:0; + padding-top:.79em; + padding-bottom:.79em +} +.apd-topic div.Task>.Name:hover{ + color:#007aff +} +.no-hover .apd-topic div.Task>.Name:hover{ + color:#484848 +} +.apd-topic .TaskBody{ + padding-bottom:0; + margin-top:-.214em; + margin-right:0; + margin-bottom:.125em; + overflow:hidden; + opacity:1 +} +@media screen{ + .apd-topic .TaskBody{ + display:none + } +} +@media print{ + .apd-topic .TaskBody{ + display:block!important; + opacity:1 + } +} +@media screen{ + .apd-topic .TaskBody[aria-hidden=false]{ + display:block + } + .apd-topic .TaskBody[aria-hidden=true]{ + opacity:0; + max-height:0!important + } +} +.apd-topic .TaskBody>.Alert,.apd-topic .TaskBody>.Alert:first-child,.apd-topic .TaskBody>figure,.apd-topic .TaskBody>p,.apd-topic .TaskBody>p+p,.apd-topic .TaskBody>p:first-child{ + margin-top:.3em +} +.apd-topic table,.apd-topic td,.apd-topic th,.apd-topic tr{ + border:none; + page-break-inside:avoid +} +.apd-topic table tbody tr,.apd-topic table tbody>tr:last-child,.msie.apd-topic table tbody>tr>td{ + border-bottom:1px solid #e4e4e4 +} +.apd-topic table{ + width:100%; + font-size:.71rem; + line-height:1.065rem; + table-layout:fixed; + text-align:left; + margin-top:1em; + margin-bottom:2em +} +.is-hv .apd-topic table{ + font-size:.95em; + line-height:1.52em +} +[dir=rtl] .apd-topic table{ + text-align:right +} +.apd-topic table:first-child>tbody:first-child{ + border-top-color:#fff!important +} +.apd-topic table>tbody{ + border-top:1px solid #e4e4e4 +} +.apd-topic table>thead+tbody{ + border-top:none +} +.apd-topic thead>tr{ + background:#97a6b2 +} +.msie.apd-topic table tbody>tr>td{ + border-top:1px solid #e4e4e4 +} +.apd-topic thead+tbody tr.TableDisplayRow:first-child,.apd-topic thead+tbody>tr{ + border-top:none!important +} +.apd-topic p.TableHead{ + font-weight:700; + color:#fff +} +.apd-topic td,.apd-topic th{ + vertical-align:top; + text-align:left +} +[dir=rtl] .apd-topic td,[dir=rtl] .apd-topic th{ + text-align:right +} +.apd-topic td code,.apd-topic th code{ + font-size:.65rem; + padding-top:.05em +} +.apd-topic table tbody>tr td>p.TableDisplay{ + font-weight:700; + vertical-align:top +} +.apd-topic table tbody>tr td>.TableDisplay+p{ + vertical-align:top +} +.apd-topic table[data-type="1 column"]{ + background-color:transparent; + table-layout:fixed +} +.apd-topic table[data-type="1 column"] thead tr{ + background:0 0; + border-top:3px solid #e4e4e4 +} +.apd-topic table[data-type="1 column"] tr.TableDisplayRow,.apd-topic table[data-type=Data],.apd-topic table[data-type="Full Width"]{ + background-color:transparent +} +.apd-topic table[data-type="1 column"] tr{ + border-top:1px solid #e4e4e4; + border-bottom:1px solid #e4e4e4 +} +.apd-topic table[data-type="1 column"] .TableDisplay,.apd-topic table[data-type="1 column"] .TableHead,.apd-topic table[data-type="1 column"] .TableSubhead{ + overflow:hidden; + font-weight:700; + color:#000!important; + text-overflow:ellipsis; + vertical-align:top +} +.apd-topic table[data-type=Data]>tbody>tr>td,.apd-topic table[data-type="Full Width"]>tbody>tr>td{ + border:1px solid #e4e4e4 +} +.apd-topic table[data-type=Data] tr,.apd-topic table[data-type="Full Width"] tr{ + background:0 0 +} +.apd-topic table[data-type=Data] thead p.TableHead,.apd-topic table[data-type="Full Width"] thead p.TableHead{ + color:#666!important +} +.apd-topic table[data-type=Data] td>p,.apd-topic table[data-type="Full Width"] td>p{ + display:block; + text-align:left +} +.apd-topic table[data-type=Data] .TableDisplay,.apd-topic table[data-type=Data] .TableSubhead,.apd-topic table[data-type="Full Width"] .TableDisplay,.apd-topic table[data-type="Full Width"] .TableSubhead{ + display:block; + font-weight:700; + color:#555; + text-align:left +} +.feedback button,.landing{ + text-align:center +} +.apd-topic .Heiti:lang(zh-cn),.apd-topic .Heiti:lang(zh-sg){ + font-family:"Heiti SC" +} +.apd-topic .Heiti:lang(zh-hk),.apd-topic .Heiti:lang(zh-tw){ + font-family:"Heiti TC" +} +.apd-topic table:first-child{ + margin-top:1.25em +} +.apd-topic table th{ + padding:.25em .6em .3em .5em +} +[dir=rtl] .apd-topic table th{ + padding:.25em .5em .3em .6em +} +.apd-topic table td{ + padding:.65em .6em .6em .5em +} +[dir=rtl] .apd-topic table td{ + padding:.65em .5em .6em .6em +} +.apd-topic table td ol,.apd-topic table td p,.apd-topic table td ul{ + margin-top:.4em; + margin-bottom:.6em +} +.apd-topic table td>figure{ + padding-left:.15em; + margin-top:1em!important; + margin-bottom:.25em!important +} +[dir=rtl] .apd-topic table td>figure{ + padding-left:0; + padding-right:.15em +} +.apd-topic table td>.TableDisplay,.apd-topic table td>ol li>p,.apd-topic table td>ul li>p,.apd-topic table td>ul>li{ + margin-top:.25em!important; + margin-bottom:.25em!important +} +.apd-topic table td ol>li{ + margin-bottom:0 +} +.apd-topic table figure{ + min-width:16px +} +.apd-topic table td>:first-child,.apd-topic table td>:first-child>:first-child,.apd-topic table td>:first-child>:first-child>:first-child,.apd-topic table th>:first-child,.apd-topic table th>:first-child>:first-child,.apd-topic table th>:first-child>:first-child>:first-child{ + margin-top:0!important +} +.apd-topic table td>:last-child,.apd-topic table td>:last-child>:last-child,.apd-topic table td>:last-child>:last-child>:last-child,.apd-topic table th>:last-child,.apd-topic table th>:last-child>:last-child,.apd-topic table th>:last-child>:last-child>:last-child{ + margin-bottom:0!important +} +.apd-topic table[data-type=Data] tr>th,.apd-topic table[data-type="Full Width"] tr>th{ + border:1px solid #e4e4e4; + padding:.4em +} +.apd-topic ol{ + margin-left:1.65em +} +[dir=rtl] .apd-topic ol{ + margin-left:0; + margin-right:1.65em +} +.apd-topic ul{ + margin-left:1.45em +} +[dir=rtl] .apd-topic ul{ + margin-left:0; + margin-right:1.45em +} +.apd-topic ul>li{ + padding-left:.25em +} +[dir=rtl] .apd-topic ul>li{ + padding-left:0; + padding-right:.25em +} +.apd-topic ul .Example{ + margin-left:3em +} +[dir=rtl] .apd-topic ul .Example{ + margin-left:0; + margin-right:3em +} +.apd-topic ol ol,.apd-topic ul ol{ + margin-left:1.5em +} +[dir=rtl] .apd-topic ol ol,[dir=rtl] .apd-topic ul ol{ + margin-left:0; + margin-right:1.5em +} +.apd-topic ol ul,.apd-topic ul ul{ + margin-left:1.3em +} +[dir=rtl] .apd-topic ol ul,[dir=rtl] .apd-topic ul ul{ + margin-left:0; + margin-right:1.3em +} +.apd-topic ul.ListSingle{ + margin-left:0 +} +[dir=rtl] .apd-topic ul.ListSingle{ + margin-left:0; + margin-right:0 +} +.apd-topic ul.ListSingle>li{ + padding-left:.5em; + margin-left:1.15em +} +[dir=rtl] .apd-topic ul.ListSingle>li{ + padding-left:0; + padding-right:.5em; + margin-left:0; + margin-right:1.15em +} +.apd-topic ul.ListSingle>li>ul{ + margin-left:1.25em +} +[dir=rtl] .apd-topic ul.ListSingle>li>ul{ + margin-left:0; + margin-right:1.25em +} +.apd-topic .TaskBody{ + margin-left:-1.25em; + padding-left:1.25em +} +[dir=rtl] .apd-topic .TaskBody{ + margin-left:0; + margin-right:-1.25em; + padding-left:0; + padding-right:1.25em +} +.apd-topic .TaskBody p{ + margin-left:0 +} +[dir=rtl] .apd-topic .TaskBody p{ + margin-left:0; + margin-right:0 +} +.apd-topic .TaskBody .ListSingle table,.apd-topic .TaskBody ol table{ + margin-left:-.5em +} +.apd-topic .TaskBody table{ + margin-left:1em; + width:calc(99%); + width:-webkit-calc(99%) +} +[dir=rtl] .apd-topic .TaskBody table{ + margin-left:0; + margin-right:1em +} +.apd-topic .footer,.apd-topic footer{ + font-size:.65rem!important; + color:#999!important +} +.apd-topic .footer a,.apd-topic footer a{ + color:#666 +} +.is-mac-os .apd-topic{ + -webkit-transform:translateZ(0); + transform:translateZ(0) +} +.landing h1{ + font-size:2.06rem; + color:#474747; + margin:5px 0 12px +} +@media all and (max-width:568px){ + .is-mobile .landing h1{ + font-size:1.24rem; + margin-bottom:0 + } +} +.landing li,.landing ul{ + display:none; + margin:0 +} +.is-mobile .landing li,.is-mobile .landing ul,.is-modern-hv .landing li,.is-modern-hv .landing ul{ + display:inline-block +} +.landing li{ + list-style:none; + padding:0 1em!important; + border-right:1px solid #e5e6e7 +} +[dir=rtl] .landing li{ + border-right:0; + border-left:1px solid #e5e6e7 +} +.landing li:last-child{ + border:0 +} +.landing li p{ + margin:0 +} +.landing .landing-toc-btn{ + border-top:1px solid #e4e4e4; + border-bottom:1px solid #e4e4e4; + display:block; + text-align:center; + padding:.3em 0 .6em; + color:#007aff; + cursor:pointer; + font-size:.9rem; + font-weight:200 +} +.landing .landing-toc-btn .toggle-toc-btn{ + background:url(css/img/toc_blue_large.svg) center center no-repeat; + background-size:50px 40px; + width:32px; + height:22px; + border:none; + position:relative; + top:3px; + pointer-events:none +} +.is-mobile .landing .landing-toc-btn .toggle-toc-btn{ + top:5px +} +[dir=rtl] .landing .landing-toc-btn .toggle-toc-btn{ + -webkit-transform:scaleX(-1); + transform:scaleX(-1); + -webkit-filter:FlipH; + filter:FlipH; + -ms-filter:"FlipH" +} +.landing .landing-toc-btn .toggle-toc-btn-label{ + pointer-events:none +} +.landing .Feature[aria-expanded=false]:hover{ + background-color:#f2f2f2 +} +.feedback{ + display:inline-block; + position:relative; + padding-top:1.6em +} +@media print{ + .feedback{ + display:none + } +} +@media all and (max-width:568px){ + .feedback{ + padding-top:2.4em + } +} +.feedback a{ + color:#007aff; + cursor:pointer +} +.feedback a:hover{ + text-transform:underline +} +.no-hover .feedback a:hover{ + text-transform:none +} +.feedback .choices-label,.feedback .confirm,.feedback .solicit{ + transition:opacity .3s ease-in-out; + position:absolute; + top:0; + left:0; + right:0; + margin:0; + opacity:1; + z-index:2 +} +.feedback .choices-label[aria-hidden=true],.feedback .confirm[aria-hidden=true],.feedback .solicit[aria-hidden=true]{ + overflow:hidden; + opacity:0; + z-index:1 +} +.feedback .choices-label,.feedback .confirm{ + font-weight:700 +} +.feedback .solicit{ + font-style:italic +} +.feedback form{ + transition:max-height 0s linear .4s,opacity .3s linear,padding-top 0s linear .4s,padding-bottom 0s linear .4s; + padding-top:1em; + padding-bottom:1em; + opacity:1; + max-height:800px +} +.feedback form[aria-hidden=true]{ + overflow:hidden; + opacity:0; + padding-top:0; + padding-bottom:0; + max-height:0 +} +.feedback form[aria-hidden=false] .choices label{ + margin-top:.4em; + margin-bottom:.4em +} +.feedback .choices-label[aria-hidden=false],.feedback .confirm[aria-hidden=false],.feedback .solicit[aria-hidden=false],.feedback form[aria-hidden=false]{ + transition-delay:.4s +} +.feedback .choices label{ + position:relative; + display:block; + padding:0 0 0 1.5em; + transition:margin-top 0s linear .4s,margin-bottom 0s linear .4s +} +[dir=rtl] .feedback .choices label{ + padding:0 1.5em 0 0 +} +.feedback .choices input{ + position:absolute; + top:.25em; + left:1px +} +[dir=rtl] .feedback .choices input{ + left:auto; + right:0 +} +.feedback textarea{ + resize:none; + height:6em; + width:100% +} +.feedback button{ + font-size:16px; + line-height:1.9375; + font-weight:500; + letter-spacing:0; + background-color:#0070c9; + background:linear-gradient(#42a1ec,#0070c9); + border-color:#07c; + border-width:1px; + border-style:solid; + border-radius:4px; + color:#fff; + cursor:pointer; + display:inline-block; + min-width:30px; + padding-left:15px; + padding-right:15px; + padding-top:1px; + margin-right:8px +} +.feedback button:hover{ + background-color:#147bcd; + background:linear-gradient(#51a9ee,#147bcd); + border-color:#1482d0 +} +.feedback button:focus{ + box-shadow:0 0 0 3px rgba(131,192,253,.5); + outline:0 +} +.is-ie .feedback button:focus{ + outline:#c1e0fe solid 3px +} +.feedback button:active{ + background-color:#0067b9; + background:linear-gradient(#3d94d9,#0067b9); + border-color:#006dbc; + outline:0 +} +.feedback button:disabled{ + border-color:#07c; + color:#fff; + cursor:default; + opacity:.3 +} +.feedback button[name=cancel]{ + border-color:#6a6a6a; + background-color:#595959; + background:linear-gradient(#888,#595959) +} +@-webkit-keyframes searchform-slide{ + 0%{ + -webkit-transform:translate3d(100px,0,0); + transform:translate3d(100px,0,0); + -webkit-animation-timing-function:cubic-bezier(.11393,.8644,.14684,1); + animation-timing-function:cubic-bezier(.11393,.8644,.14684,1) + } + 100%{ + -webkit-transform:translateZ(0); + transform:translateZ(0) + } +} +@keyframes searchform-slide{ + 0%{ + -webkit-transform:translate3d(100px,0,0); + transform:translate3d(100px,0,0); + -webkit-animation-timing-function:cubic-bezier(.11393,.8644,.14684,1); + animation-timing-function:cubic-bezier(.11393,.8644,.14684,1) + } + 100%{ + -webkit-transform:translateZ(0); + transform:translateZ(0) + } +} +@-webkit-keyframes searchform-fade{ + 0%{ + opacity:0; + -webkit-animation-timing-function:cubic-bezier(.67,0,.33,1); + animation-timing-function:cubic-bezier(.67,0,.33,1) + } + 100%{ + opacity:1 + } +} +@keyframes searchform-fade{ + 0%{ + opacity:0; + -webkit-animation-timing-function:cubic-bezier(.67,0,.33,1); + animation-timing-function:cubic-bezier(.67,0,.33,1) + } + 100%{ + opacity:1 + } +} +@-webkit-keyframes searchresults-show{ + 0%{ + opacity:0; + -webkit-animation-timing-function:ease; + animation-timing-function:ease + } + 100%{ + opacity:1 + } +} +@keyframes searchresults-show{ + 0%{ + opacity:0; + -webkit-animation-timing-function:ease; + animation-timing-function:ease + } + 100%{ + opacity:1 + } +} +@-webkit-keyframes searchresults-items-show{ + 0%{ + opacity:0; + -webkit-transform:translateX(100px); + transform:translateX(100px); + -webkit-animation-timing-function:ease; + animation-timing-function:ease + } + 100%{ + opacity:1; + -webkit-transform:none; + transform:none + } +} +@keyframes searchresults-items-show{ + 0%{ + opacity:0; + -webkit-transform:translateX(100px); + transform:translateX(100px); + -webkit-animation-timing-function:ease; + animation-timing-function:ease + } + 100%{ + opacity:1; + -webkit-transform:none; + transform:none + } +} +@-webkit-keyframes searchview-close-left-searchshow{ + 0%{ + opacity:0; + -webkit-transform:scale3d(1,.65,1); + transform:scale3d(1,.65,1); + -webkit-animation-timing-function:ease; + animation-timing-function:ease + } + 100%{ + opacity:1; + -webkit-transform:rotate(-45deg); + transform:rotate(-45deg) + } +} +@keyframes searchview-close-left-searchshow{ + 0%{ + opacity:0; + -webkit-transform:scale3d(1,.65,1); + transform:scale3d(1,.65,1); + -webkit-animation-timing-function:ease; + animation-timing-function:ease + } + 100%{ + opacity:1; + -webkit-transform:rotate(-45deg); + transform:rotate(-45deg) + } +} +@-webkit-keyframes searchview-close-left-searchhide{ + 0%{ + opacity:1; + -webkit-transform:rotate(-45deg); + transform:rotate(-45deg); + -webkit-animation-timing-function:ease; + animation-timing-function:ease + } + 100%{ + opacity:0; + -webkit-transform:scale3d(1,.65,1); + transform:scale3d(1,.65,1) + } +} +@keyframes searchview-close-left-searchhide{ + 0%{ + opacity:1; + -webkit-transform:rotate(-45deg); + transform:rotate(-45deg); + -webkit-animation-timing-function:ease; + animation-timing-function:ease + } + 100%{ + opacity:0; + -webkit-transform:scale3d(1,.65,1); + transform:scale3d(1,.65,1) + } +} +@-webkit-keyframes searchview-close-right-searchshow{ + 0%{ + opacity:0; + -webkit-transform:scale3d(1,.65,1); + transform:scale3d(1,.65,1); + -webkit-animation-timing-function:ease; + animation-timing-function:ease + } + 100%{ + opacity:1; + -webkit-transform:rotate(45deg); + transform:rotate(45deg) + } +} +@keyframes searchview-close-right-searchshow{ + 0%{ + opacity:0; + -webkit-transform:scale3d(1,.65,1); + transform:scale3d(1,.65,1); + -webkit-animation-timing-function:ease; + animation-timing-function:ease + } + 100%{ + opacity:1; + -webkit-transform:rotate(45deg); + transform:rotate(45deg) + } +} +@-webkit-keyframes searchview-close-right-searchhide{ + 0%{ + opacity:1; + -webkit-transform:rotate(45deg); + transform:rotate(45deg); + -webkit-animation-timing-function:ease; + animation-timing-function:ease + } + 100%{ + opacity:0; + -webkit-transform:scale3d(1,.65,1); + transform:scale3d(1,.65,1) + } +} +@keyframes searchview-close-right-searchhide{ + 0%{ + opacity:1; + -webkit-transform:rotate(45deg); + transform:rotate(45deg); + -webkit-animation-timing-function:ease; + animation-timing-function:ease + } + 100%{ + opacity:0; + -webkit-transform:scale3d(1,.65,1); + transform:scale3d(1,.65,1) + } +} +#search-curtain{ + background:rgba(0,0,0,.2); + display:none; + position:fixed; + top:0; + right:0; + bottom:0; + left:0; + width:100%; + height:100%; + z-index:99 +} +header.app button.searchview-close[aria-checked=true]{ + opacity:1; + position:absolute; + width:38px; + height:44px; + top:0; + color:#fff; + cursor:pointer; + transition:opacity .2s cubic-bezier(.645,.045,.355,1); + -webkit-tap-highlight-color:transparent +} +header.app button.searchview-close[aria-checked=true]:-moz-focusring{ + outline:#fff dotted 1px +} +header.app button.searchview-close[aria-checked=true]::-moz-focus-inner{ + border:0 +} +header.app button.searchview-close[aria-checked=true]:active,header.app button.searchview-close[aria-checked=true]:hover{ + opacity:.65 +} +header.app button.searchview-close[aria-checked=true]:focus{ + outline-offset:-7px +} +header.app button.searchview-close[aria-checked=true]:focus:active{ + outline:0 +} +.searchview-close-wrapper{ + display:block; + width:100%; + height:100% +} +.searchview-close-left,.searchview-close-right{ + height:18px; + width:1px; + background:#fff; + top:11px; + z-index:1; + position:absolute; + display:block +} +.searchview-close-left{ + right:12px; + -webkit-transform:scale3d(1,.65,1); + transform:scale3d(1,.65,1); + -webkit-transform-origin:0 100%; + transform-origin:0 100% +} +.searchview-close-right{ + left:12px; + -webkit-transform:scale3d(1,.65,1); + transform:scale3d(1,.65,1); + -webkit-transform-origin:100% 100%; + transform-origin:100% 100% +} +#search .searchform-input,#search button{ + border:none; + background-color:transparent +} +#search{ + padding:0; + position:absolute; + top:0; + right:0; + left:0; + z-index:100; + display:block; + margin:0; + width:100%; + height:48px; + max-height:44px; + font-size:18px; + font-weight:400; + -webkit-user-select:none; + -ms-user-select:none; + -moz-user-select:none; + -o-user-select:none; + user-select:none +} +#search .search-content{ + margin:0 auto; + max-width:980px; + position:relative; + z-index:2 +} +#search .searchview{ + display:none +} +#search .searchview-content{ + position:absolute; + top:0; + left:16.66667%; + width:66.66667%; + height:100vh; + z-index:3 +} +#search .searchform{ + height:44px; + line-height:44px +} +@media all and (max-width:568px){ + #search .searchview-content{ + left:auto; + width:100% + } + #search .searchform{ + margin-left:16.66667%; + width:66.66667% + } + [dir=rtl] #search .searchform{ + margin-left:0; + margin-right:16.66667% + } +} +#search .searchform-wrapper{ + padding-left:40px; + position:relative; + z-index:2 +} +[dir=rtl] #search .searchform-wrapper{ + padding-left:0; + padding-right:40px +} +#search .searchform-input{ + font-size:16px; + line-height:1.375; + letter-spacing:normal; + color:#fff; + outline:0; + width:100%; + height:1.375em +} +#search .searchform-input::-webkit-input-placeholder{ + color:#999; + opacity:1 +} +#search .searchform-input:-ms-input-placeholder{ + color:#999; + opacity:1 +} +#search .searchform-input::placeholder{ + color:#999; + opacity:1 +} +#search .searchform-input::-ms-clear{ + display:none; + width:0; + height:0 +} +#search .searchform-icon{ + position:absolute; + z-index:1; + top:0; + left:0; + width:40px; + height:44px; + background-size:20px 44px; + background-image:url(css/img/search_image_large.svg); + background-position:10px 50%; + background-repeat:no-repeat; + transition:opacity .2s cubic-bezier(.645,.045,.355,1) +} +.modal .modal-footer,.modal .modal-header{ + height:50px; + min-height:50px; + text-align:center +} +[dir=rtl] #search .searchform-icon{ + left:auto; + right:0 +} +#search .searchresults{ + font-size:.8235rem; + line-height:2; + letter-spacing:normal; + display:none; + background:#fff; + border-top:none; + color:#999; + max-height:calc(56%); + overflow-x:hidden; + overflow-y:auto; + -webkit-overflow-scrolling:touch; + white-space:nowrap +} +#search .searchresults-item a,#search .searchresults-item a b,#search .searchresults-noresults,#search .searchresults.with-content,.searchhide #search .searchview,.searchopen #search .searchview,.searchopen #search~#search-curtain,.searchshow #search .searchview{ + display:block +} +#search .searchresults.with-content-initial{ + -webkit-animation:searchresults-show .2s both; + animation:searchresults-show .2s both +} +#search .searchresults-section{ + border-top:1px solid #d6d6d6; + margin:0; + padding:24px 40px 15px; + left:auto; + position:static +} +.modal,html.modal-view{ + position:fixed +} +#search .searchresults-section:first-child{ + border-top:none +} +#search .searchresults-header{ + font-size:12px; + line-height:1; + font-weight:400; + letter-spacing:normal; + color:#999 +} +#search .searchresults-list{ + list-style:none; + padding-top:5px +} +#search .searchresults-item{ + margin:4px -32px +} +#search .searchresults-item a{ + color:#333; + padding:0 48px +} +#search .searchresults-item a b{ + color:#999; + font-weight:400; + font-size:12px; + line-height:1em; + padding-bottom:7px; + pointer-events:none +} +#search .searchresults-item a:hover{ + background-color:#f2f2f2; + color:#08c +} +#search .searchresults-item a:hover b{ + color:#08c +} +#search .searchresults-animated{ + -webkit-animation:searchresults-items-show .4s both; + animation:searchresults-items-show .4s both +} +#search .searchresults-animated:nth-child(1){ + -webkit-animation-delay:20ms; + animation-delay:20ms +} +#search .searchresults-animated:nth-child(2){ + -webkit-animation-delay:40ms; + animation-delay:40ms +} +#search .searchresults-animated:nth-child(3){ + -webkit-animation-delay:60ms; + animation-delay:60ms +} +#search .searchresults-animated:nth-child(4){ + -webkit-animation-delay:80ms; + animation-delay:80ms +} +#search .searchresults-animated:nth-child(5){ + -webkit-animation-delay:.1s; + animation-delay:.1s +} +#search .searchresults-animated:nth-child(6){ + -webkit-animation-delay:120ms; + animation-delay:120ms +} +#search .searchresults-animated:nth-child(7){ + -webkit-animation-delay:140ms; + animation-delay:140ms +} +#search .searchresults-animated:nth-child(8){ + -webkit-animation-delay:160ms; + animation-delay:160ms +} +#search .searchresults-animated:nth-child(9){ + -webkit-animation-delay:180ms; + animation-delay:180ms +} +#search .searchresults-animated:nth-child(10){ + -webkit-animation-delay:.2s; + animation-delay:.2s +} +#search .searchresults-animated.searchresults-header{ + -webkit-animation-delay:0; + animation-delay:0 +} +#search .searchresults-noresults{ + padding:0 32px; + color:#999; + line-height:1.25; + white-space:normal +} +.searchopen #search .search-item-menu{ + pointer-events:none; + visibility:hidden +} +.searchopen .searchview-close-wrapper{ + -webkit-transform:none; + transform:none +} +.searchopen .searchview-close-left{ + -webkit-transform:rotate(-45deg); + transform:rotate(-45deg) +} +.searchopen .searchview-close-right{ + -webkit-transform:rotate(45deg); + transform:rotate(45deg) +} +@-webkit-keyframes searchshow-curtain{ + 0%{ + opacity:0; + -webkit-animation-timing-function:ease; + animation-timing-function:ease + } + 100%{ + opacity:1 + } +} +@keyframes searchshow-curtain{ + 0%{ + opacity:0; + -webkit-animation-timing-function:ease; + animation-timing-function:ease + } + 100%{ + opacity:1 + } +} +@-webkit-keyframes searchshow{ + 0%{ + -webkit-transform:none; + transform:none; + -webkit-animation-timing-function:cubic-bezier(1,0,0,1); + animation-timing-function:cubic-bezier(1,0,0,1) + } + 100%{ + -webkit-transform:translate3d(0,-100%,0); + transform:translate3d(0,-100%,0) + } +} +@keyframes searchshow{ + 0%{ + -webkit-transform:none; + transform:none; + -webkit-animation-timing-function:cubic-bezier(1,0,0,1); + animation-timing-function:cubic-bezier(1,0,0,1) + } + 100%{ + -webkit-transform:translate3d(0,-100%,0); + transform:translate3d(0,-100%,0) + } +} +@-webkit-keyframes search-list-searchshow{ + 0%{ + -webkit-transform:translateY(0); + transform:translateY(0); + -webkit-animation-timing-function:cubic-bezier(1,0,0,1); + animation-timing-function:cubic-bezier(1,0,0,1) + } + 100%{ + -webkit-transform:translateY(-100%) translateY(106px); + transform:translateY(-100%) translateY(106px) + } +} +@keyframes search-list-searchshow{ + 0%{ + -webkit-transform:translateY(0); + transform:translateY(0); + -webkit-animation-timing-function:cubic-bezier(1,0,0,1); + animation-timing-function:cubic-bezier(1,0,0,1) + } + 100%{ + -webkit-transform:translateY(-100%) translateY(106px); + transform:translateY(-100%) translateY(106px) + } +} +@-webkit-keyframes search-item-searchshow{ + 0%{ + opacity:1; + -webkit-transform:scale(1); + transform:scale(1); + -webkit-animation-timing-function:cubic-bezier(.2727,.0986,.8333,1); + animation-timing-function:cubic-bezier(.2727,.0986,.8333,1) + } + 40%{ + opacity:1 + } + 100%{ + opacity:0; + -webkit-transform:scale(.7); + transform:scale(.7) + } +} +@keyframes search-item-searchshow{ + 0%{ + opacity:1; + -webkit-transform:scale(1); + transform:scale(1); + -webkit-animation-timing-function:cubic-bezier(.2727,.0986,.8333,1); + animation-timing-function:cubic-bezier(.2727,.0986,.8333,1) + } + 40%{ + opacity:1 + } + 100%{ + opacity:0; + -webkit-transform:scale(.7); + transform:scale(.7) + } +} +.searchshow #search~#search-curtain{ + display:block; + -webkit-animation:searchshow-curtain .2s both; + animation:searchshow-curtain .2s both +} +.searchshow #search .search-item-menu{ + -webkit-animation:search-item-searchshow .4s both; + animation:search-item-searchshow .4s both; + pointer-events:none +} +.searchshow #search .search-item-menu:nth-child(2){ + -webkit-animation-delay:280ms; + animation-delay:280ms +} +.searchshow #search .search-item-menu:nth-child(3){ + -webkit-animation-delay:245ms; + animation-delay:245ms +} +.searchshow #search .search-item-menu:nth-child(4){ + -webkit-animation-delay:210ms; + animation-delay:210ms +} +.searchshow #search .search-item-menu:nth-child(5){ + -webkit-animation-delay:175ms; + animation-delay:175ms +} +.searchshow #search .search-item-menu:nth-child(6){ + -webkit-animation-delay:140ms; + animation-delay:140ms +} +.searchshow #search .search-item-menu:nth-child(7){ + -webkit-animation-delay:105ms; + animation-delay:105ms +} +.searchshow #search .search-item-menu:nth-child(8){ + -webkit-animation-delay:70ms; + animation-delay:70ms +} +.searchshow #search .search-item-menu:nth-child(9){ + -webkit-animation-delay:35ms; + animation-delay:35ms +} +.searchshow #search .searchform{ + -webkit-animation:searchform-fade .4s .4s both; + animation:searchform-fade .4s .4s both +} +.searchshow #search .searchform-wrapper{ + -webkit-animation:searchform-slide 1s .4s both; + animation:searchform-slide 1s .4s both +} +.searchshow .searchview-close{ + -webkit-transform:translateZ(0); + transform:translateZ(0) +} +.searchshow .searchview-close-left{ + -webkit-animation:searchview-close-left-searchshow .3s both; + animation:searchview-close-left-searchshow .3s both +} +.searchshow .searchview-close-right{ + -webkit-animation:searchview-close-right-searchshow .3s both; + animation:searchview-close-right-searchshow .3s both +} +@-webkit-keyframes searchhide{ + 0%{ + -webkit-transform:translate3d(0,-100%,0); + transform:translate3d(0,-100%,0); + -webkit-animation-timing-function:cubic-bezier(1,0,0,1); + animation-timing-function:cubic-bezier(1,0,0,1) + } + 100%{ + -webkit-transform:none; + transform:none + } +} +@keyframes searchhide{ + 0%{ + -webkit-transform:translate3d(0,-100%,0); + transform:translate3d(0,-100%,0); + -webkit-animation-timing-function:cubic-bezier(1,0,0,1); + animation-timing-function:cubic-bezier(1,0,0,1) + } + 100%{ + -webkit-transform:none; + transform:none + } +} +@-webkit-keyframes search-item-searchhide{ + 0%{ + opacity:0; + -webkit-transform:scale(.7); + transform:scale(.7) + } + 60%{ + opacity:1 + } + 100%{ + opacity:1; + -webkit-transform:scale(1); + transform:scale(1); + -webkit-animation-timing-function:cubic-bezier(.2727,.0986,.8333,1); + animation-timing-function:cubic-bezier(.2727,.0986,.8333,1) + } +} +@keyframes search-item-searchhide{ + 0%{ + opacity:0; + -webkit-transform:scale(.7); + transform:scale(.7) + } + 60%{ + opacity:1 + } + 100%{ + opacity:1; + -webkit-transform:scale(1); + transform:scale(1); + -webkit-animation-timing-function:cubic-bezier(.2727,.0986,.8333,1); + animation-timing-function:cubic-bezier(.2727,.0986,.8333,1) + } +} +@-webkit-keyframes searchview-searchhide{ + 0%{ + opacity:1; + -webkit-animation-timing-function:ease; + animation-timing-function:ease + } + 100%{ + opacity:0 + } +} +@keyframes searchview-searchhide{ + 0%{ + opacity:1; + -webkit-animation-timing-function:ease; + animation-timing-function:ease + } + 100%{ + opacity:0 + } +} +.searchhide #search .search-item-menu{ + pointer-events:none; + -webkit-animation:search-item-searchhide .4s both; + animation:search-item-searchhide .4s both +} +.searchhide #search .search-item-menu:nth-child(2){ + -webkit-animation-delay:0; + animation-delay:0 +} +.searchhide #search .search-item-menu:nth-child(3){ + -webkit-animation-delay:35ms; + animation-delay:35ms +} +.searchhide #search .search-item-menu:nth-child(4){ + -webkit-animation-delay:70ms; + animation-delay:70ms +} +.searchhide #search .search-item-menu:nth-child(5){ + -webkit-animation-delay:105ms; + animation-delay:105ms +} +.searchhide #search .search-item-menu:nth-child(6){ + -webkit-animation-delay:140ms; + animation-delay:140ms +} +.searchhide #search .search-item-menu:nth-child(7){ + -webkit-animation-delay:175ms; + animation-delay:175ms +} +.searchhide #search .search-item-menu:nth-child(8){ + -webkit-animation-delay:210ms; + animation-delay:210ms +} +.searchhide #search .search-item-menu:nth-child(9){ + -webkit-animation-delay:245ms; + animation-delay:245ms +} +.searchhide #search .searchview-content{ + -webkit-animation:searchview-searchhide .2s both; + animation:searchview-searchhide .2s both +} +.searchhide #search .searchresults-animated{ + -webkit-animation:none; + animation:none +} +.searchhide .searchview-close-wrapper{ + -webkit-animation:searchview-close-searchhide-small .6s .2s both; + animation:searchview-close-searchhide-small .6s .2s both +} +.searchhide .searchview-close-left{ + -webkit-animation:searchview-close-left-searchhide-small .6s 150ms both; + animation:searchview-close-left-searchhide-small .6s 150ms both +} +.searchhide .searchview-close-right{ + -webkit-animation:searchview-close-right-searchhide-small .6s 150ms both; + animation:searchview-close-right-searchhide-small .6s 150ms both +} +.modal{ + display:-webkit-box; + display:flex; + -webkit-box-direction:normal; + -webkit-box-orient:vertical; + flex-direction:column; + flex-wrap:nowrap; + -webkit-box-pack:center; + justify-content:center; + align-content:center; + -webkit-box-align:center; + align-items:center; + z-index:1000; + transition:padding .3s ease-in-out; + background:rgba(0,0,0,.6); + top:0; + right:0; + bottom:0; + left:0; + padding:2%; + -webkit-animation:show-modal .2s .3s ease 0s 1 forwards; + animation:show-modal .2s .3s ease 0s 1 forwards +} +@media all and (max-width:568px){ + .modal{ + padding:2% + } +} +.modal.dismiss{ + -webkit-animation:show-modal .2s reverse .3s ease 0s 1 forwards; + animation:show-modal .2s reverse .3s ease 0s 1 forwards; + opacity:0 +} +.modal .hv-close-btn,.modal .modal-content,.modal .modal-footer,.modal .modal-header{ + width:90%; + margin:0 auto; + max-width:740px; + position:relative +} +.modal .modal-content{ + overflow-y:auto; + overflow-x:hidden; + border-radius:4px 4px 0 0; + background:#fff; + transition:max-height .3s ease-in-out; + max-height:70%; + max-height:calc(96% - 45px); + -webkit-box-ordinal-group:1; + order:0; + -webkit-box-flex:0; + flex:0 1 auto; + align-self:auto; + border-top:1px solid #fff; + border-bottom:1px solid #fff +} +.is-hv .modal .modal-content{ + border-radius:4px +} +.modal .apd-topic{ + font-size:.82rem +} +.is-not-hv .modal .apd-topic{ + padding:7% 8% calc(8% - 45px) +} +.is-hv .modal .apd-topic,.is-safari5 .modal .apd-topic{ + padding:7% 8%!important +} +@media all and (max-width:568px){ + .modal .apd-topic{ + padding:5% 5% 5px + } +} +.modal .apd-topic h1{ + pointer-events:none +} +.modal .modal-header{ + background-color:#f3f5f6; + border-bottom:1px solid #fafbfb; + display:none +} +.modal .modal-header h2{ + color:#545454; + font-size:1.06rem; + line-height:1.06rem; + padding:15px; + margin:0 +} +.modal .modal-footer{ + border-radius:0 0 4px 4px; + border-top:1px solid #e4e4e4; + background:#fff +} +.modal .modal-footer button[name=close]{ + border:none; + background:0 0; + margin:0; + padding:15px; + width:100%; + color:#2f2f2f; + font-size:1.06rem; + line-height:1.06rem +} +.is-hv .modal .modal-footer{ + display:none +} +.modal .hv-close-btn{ + z-index:1010; + height:15px; + top:25px; + right:12px +} +.modal .hv-close-btn button[name=close]{ + display:block; + border:none; + margin:0; + padding:10px; + color:transparent; + background:url(css/img/button-close.png) center no-repeat; + background-size:15px 15px; + width:15px; + height:15px; + position:absolute; + top:9px; + right:9px +} +[dir=rtl] .modal .hv-close-btn button[name=close]{ + right:initial; + left:32px +} +.is-not-hv .modal .hv-close-btn{ + display:none +} +.modal.has-modal-header .modal-header{ + display:block; + border-radius:4px 4px 0 0 +} +.modal.has-modal-header .modal-content{ + border-radius:0; + max-height:calc(96% - 45px - 50px) +} +.is-hv .modal.has-modal-header .modal-content{ + border-radius:0 0 4px 4px +} +@-webkit-keyframes show-modal{ + from{ + opacity:0 + } + to{ + opacity:1 + } +} +@keyframes show-modal{ + from{ + opacity:0 + } + to{ + opacity:1 + } +} +.development body::after,.review body::after,.staging body::after{ + position:fixed; + bottom:0; + right:0; + font-weight:700; + font-size:12px; + background-color:grey; + color:#fff; + padding:2px 6px; + border-top-left-radius:6px; + z-index:100 +} +.development body::after{ + content:"dev" +} +.review body::after{ + content:"review" +} +.staging body::after{ + content:"staging" +} +.loading-error{ + background-image:none; + width:600px; + position:relative; + margin:0 auto; + text-align:center; + left:inherit +} +.loading-error h1{ + margin-bottom:.5em +} +.loading-error p{ + margin:0 +} +.language-picker{ + min-height:150px +} +.language-picker.modal .modal-content,.language-picker.modal .modal-footer,.language-picker.modal .modal-header{ + width:300px +} +.language-picker.modal .modal-content{ + max-height:500px; + border-radius:0!important +} +.language-picker.modal .modal-content button{ + display:none +} +.language-picker.modal .modal-footer{ + display:block!important +} +.language-picker ul{ + background-color:#fff; + width:300px; + overflow:auto; + padding:0; + margin:0 +} +.language-picker ul li{ + list-style:none; + margin:0 20px; + padding:13px 0; + border-bottom:1px solid #f2f2f2; + cursor:pointer +} +.language-picker ul li:last-of-type{ + border-bottom:none +} +[dir=rtl] .language-picker ul li{ + text-align:right +} +.language-picker ul li[data-value^=en]{ + direction:ltr +} +.toc-button{ + opacity:0; + color:transparent; + position:absolute; + top:42%; + top:calc(50% - 65px/2); + top:-webkit-calc(50% - 65px/2); + -webkit-backface-visibility:hidden; + background:url(css/img/button-toc-toggle.png) center center no-repeat; + background-size:17px 16px; + width:25px; + height:65px; + border:1px solid #b7babe; + border-radius:0 9px 9px 0; + z-index:21; + background-color:#b7babe; + transition:opacity .5s ease-in-out; + pointer-events:none +} +.toc-toggle a,.toc-toggle a:visited{ + color:#007aff +} +@media print{ + .toc-button{ + display:none + } +} +[dir=rtl] .toc-button{ + border-radius:9px 0 0 9px; + background-image:url(css/img/button-toc-toggle-rtl.png) +} +.toc-button.toc-button-pin{ + pointer-events:auto; + opacity:.5; + left:0 +} +.toc-button.toc-button-pin:hover{ + opacity:.9; + transition:opacity .5s ease-in-out +} +[dir=rtl] .toc-button.toc-button-pin{ + left:auto; + right:0 +} +.loaded-timer .toc-button.toc-button-pin{ + opacity:.9 +} +.is-older-hv .toc-button{ + display:block +} +.toc-toggle{ + margin:10px auto; + text-align:center +} +.toc-toggle a{ + position:relative; + outline:0; + cursor:pointer +} +.toc-toggle a:hover{ + text-decoration:underline +} +.no-hover .toc-toggle a:hover{ + text-decoration:none +} +[data-change-bar=true]{ + border-left:2px solid red; + background-color:#ffc8c8; + padding-left:2px; + padding-right:4px +} +[data-change-bar=true] [data-change-bar=true]{ + border:0; + padding:0; + background-color:inherit +} +.client-env{ + position:relative; + display:-webkit-box; + display:flex; + justify-content:space-around; + color:#fff; + font-size:.6em; + font-family:Menlo; + padding:.2em 0 +} +.review .client-env,.review .client-env button{ + background-color:#007aff +} +.development .client-env,.development .client-env button{ + background-color:#5f27ff +} +.client-env a{ + color:#fff +} +.client-env li{ + padding:0 2em; + border-right:1px solid rgba(255,255,255,.5); + -webkit-box-flex:1; + flex-grow:1; + text-align:center +} +.client-env li:nth-of-type(3){ + border-right:none +} +.client-env li:last-of-type{ + -webkit-box-flex:0; + flex-grow:0; + border-right:none +} +.client-env li:last-of-type button{ + position:absolute; + top:0; + right:-5px; + font-size:20px; + padding-right:20px; + padding-left:9px; + border:none; + border-radius:20px; + height:30px; + width:30px; + text-align:center; + z-index:10000; + color:#fff; + font-weight:700; + font-family:Courier +} diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/L0200_LeftArrow_2x.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/L0200_LeftArrow_2x.png new file mode 100644 index 0000000..0514f1a Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/L0200_LeftArrow_2x.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/L0201_RightArrow_2x.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/L0201_RightArrow_2x.png new file mode 100644 index 0000000..7a86a20 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/L0201_RightArrow_2x.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/arrow-blue.svg b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/arrow-blue.svg new file mode 100644 index 0000000..fcb287c --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/arrow-blue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/arrow.svg b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/arrow.svg new file mode 100644 index 0000000..7c003fd --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/ask-siri.svg b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/ask-siri.svg new file mode 100644 index 0000000..c49f517 --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/ask-siri.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-clear-search.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-clear-search.png new file mode 100644 index 0000000..73a6f96 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-clear-search.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close-2.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close-2.png new file mode 100644 index 0000000..3971e71 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close-2.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close-learnmore.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close-learnmore.png new file mode 100644 index 0000000..1586c83 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close-learnmore.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close.png new file mode 100644 index 0000000..445c821 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-close.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-search-small.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-search-small.png new file mode 100644 index 0000000..c8ded6b Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-search-small.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-search.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-search.png new file mode 100644 index 0000000..ddc5637 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-search.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-rtl.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-rtl.png new file mode 100644 index 0000000..40f9299 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-rtl.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-small-rtl.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-small-rtl.png new file mode 100644 index 0000000..bb1152d Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-small-rtl.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-small.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-small.png new file mode 100644 index 0000000..444265b Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-small.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-toggle-rtl.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-toggle-rtl.png new file mode 100644 index 0000000..8d3ca51 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-toggle-rtl.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-toggle.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-toggle.png new file mode 100644 index 0000000..e73a5cb Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc-toggle.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc.png new file mode 100644 index 0000000..d7c3c4c Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/button-toc.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/changelanguage_icon2x.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/changelanguage_icon2x.png new file mode 100644 index 0000000..97b7ffb Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/changelanguage_icon2x.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/force-click.svg b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/force-click.svg new file mode 100644 index 0000000..17d2fba --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/force-click.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-arrow-2.svg b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-arrow-2.svg new file mode 100644 index 0000000..9d7e686 --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-arrow-2.svg @@ -0,0 +1 @@ +arrow \ No newline at end of file diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-arrow.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-arrow.png new file mode 100644 index 0000000..ce0e370 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-arrow.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-close.svg b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-close.svg new file mode 100644 index 0000000..2fefc3f --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-external-link-lg.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-external-link-lg.png new file mode 100644 index 0000000..b14b544 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-external-link-lg.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-external-link.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-external-link.png new file mode 100644 index 0000000..6b23301 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-external-link.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-pause.svg b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-pause.svg new file mode 100644 index 0000000..7237e91 --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-pause.svg @@ -0,0 +1 @@ +icon-pause-01-01 \ No newline at end of file diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-play.svg b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-play.svg new file mode 100644 index 0000000..26c3ceb --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-play.svg @@ -0,0 +1 @@ +icon-play \ No newline at end of file diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-replay.svg b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-replay.svg new file mode 100644 index 0000000..c98699a --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-replay.svg @@ -0,0 +1 @@ +icon-replay \ No newline at end of file diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning-black.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning-black.png new file mode 100644 index 0000000..5929da7 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning-black.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning-eu.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning-eu.png new file mode 100644 index 0000000..29b1f3d Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning-eu.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning.png new file mode 100644 index 0000000..4de85c6 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-warning.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-120x120.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-120x120.png new file mode 100644 index 0000000..9165c9f Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-120x120.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-152x152.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-152x152.png new file mode 100644 index 0000000..3c031c4 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-152x152.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-57x57.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-57x57.png new file mode 100644 index 0000000..09d1eac Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-57x57.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-76x76.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-76x76.png new file mode 100644 index 0000000..fb4ff2c Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-76x76.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-ipad.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-ipad.png new file mode 100644 index 0000000..254c231 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-ipad.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-ipad_2x.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-ipad_2x.png new file mode 100644 index 0000000..48c0d83 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-ipad_2x.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-iphone.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-iphone.png new file mode 100644 index 0000000..32b0fc7 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-iphone.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-iphone_2x.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-iphone_2x.png new file mode 100644 index 0000000..55358e1 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/icon-webclip-iphone_2x.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/movie-play_2x.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/movie-play_2x.png new file mode 100644 index 0000000..bff8bb3 Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/movie-play_2x.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-left.svg b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-left.svg new file mode 100644 index 0000000..aab8c25 --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-paddle-left.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-paddle-left.png new file mode 100644 index 0000000..9950d3e Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-paddle-left.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-paddle-right.png b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-paddle-right.png new file mode 100644 index 0000000..7a3f54a Binary files /dev/null and b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-paddle-right.png differ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-right.svg b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-right.svg new file mode 100644 index 0000000..6e43d7f --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/nav-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/search_image_large.svg b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/search_image_large.svg new file mode 100644 index 0000000..d161806 --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/search_image_large.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/tip.svg b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/tip.svg new file mode 100644 index 0000000..a21fc48 --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/tip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/toc_blue_large.svg b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/toc_blue_large.svg new file mode 100644 index 0000000..0dff9e8 --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/toc_blue_large.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/toc_large.svg b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/toc_large.svg new file mode 100644 index 0000000..1a1f288 --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/apple/css/img/toc_large.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/middlemac/github.css b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/middlemac/github.css new file mode 100644 index 0000000..6af3553 --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/middlemac/github.css @@ -0,0 +1,329 @@ +.hll { + background-color: #ffffcc; +} + +.c { + color: #999988; + font-style: italic; +} + +/* Comment */ +.err { + color: #a61717; + background-color: #e3d2d2; +} + +/* Error */ +.k { + color: #000000; + font-weight: bold; +} + +/* Keyword */ +.o { + color: #000000; + font-weight: bold; +} + +/* Operator */ +.cm { + color: #999988; + font-style: italic; +} + +/* Comment.Multiline */ +.cp { + color: #999999; + font-weight: bold; + font-style: italic; +} + +/* Comment.Preproc */ +.c1 { + color: #999988; + font-style: italic; +} + +/* Comment.Single */ +.cs { + color: #999999; + font-weight: bold; + font-style: italic; +} + +/* Comment.Special */ +.gd { + color: #000000; + background-color: #ffdddd; +} + +/* Generic.Deleted */ +.ge { + color: #000000; + font-style: italic; +} + +/* Generic.Emph */ +.gr { + color: #aa0000; +} + +/* Generic.Error */ +.gh { + color: #999999; +} + +/* Generic.Heading */ +.gi { + color: #000000; + background-color: #ddffdd; +} + +/* Generic.Inserted */ +.go { + color: #888888; +} + +/* Generic.Output */ +.gp { + color: #555555; +} + +/* Generic.Prompt */ +.gs { + font-weight: bold; +} + +/* Generic.Strong */ +.gu { + color: #aaaaaa; +} + +/* Generic.Subheading */ +.gt { + color: #aa0000; +} + +/* Generic.Traceback */ +.kc { + color: #000000; + font-weight: bold; +} + +/* Keyword.Constant */ +.kd { + color: #000000; + font-weight: bold; +} + +/* Keyword.Declaration */ +.kn { + color: #000000; + font-weight: bold; +} + +/* Keyword.Namespace */ +.kp { + color: #000000; + font-weight: bold; +} + +/* Keyword.Pseudo */ +.kr { + color: #000000; + font-weight: bold; +} + +/* Keyword.Reserved */ +.kt { + color: #445588; + font-weight: bold; +} + +/* Keyword.Type */ +.m { + color: #009999; +} + +/* Literal.Number */ +.s { + color: #d01040; +} + +/* Literal.String */ +.na { + color: #008080; +} + +/* Name.Attribute */ +.nb { + color: #0086B3; +} + +/* Name.Builtin */ +.nc { + color: #445588; + font-weight: bold; +} + +/* Name.Class */ +.no { + color: #008080; +} + +/* Name.Constant */ +.nd { + color: #3c5d5d; + font-weight: bold; +} + +/* Name.Decorator */ +.ni { + color: #800080; +} + +/* Name.Entity */ +.ne { + color: #990000; + font-weight: bold; +} + +/* Name.Exception */ +.nf { + color: #990000; + font-weight: bold; +} + +/* Name.Function */ +.nl { + color: #990000; + font-weight: bold; +} + +/* Name.Label */ +.nn { + color: #555555; +} + +/* Name.Namespace */ +.nt { + color: #000080; +} + +/* Name.Tag */ +.nv { + color: #008080; +} + +/* Name.Variable */ +.ow { + color: #000000; + font-weight: bold; +} + +/* Operator.Word */ +.w { + color: #bbbbbb; +} + +/* Text.Whitespace */ +.mf { + color: #009999; +} + +/* Literal.Number.Float */ +.mh { + color: #009999; +} + +/* Literal.Number.Hex */ +.mi { + color: #009999; +} + +/* Literal.Number.Integer */ +.mo { + color: #009999; +} + +/* Literal.Number.Oct */ +.sb { + color: #d01040; +} + +/* Literal.String.Backtick */ +.sc { + color: #d01040; +} + +/* Literal.String.Char */ +.sd { + color: #d01040; +} + +/* Literal.String.Doc */ +.s2 { + color: #d01040; +} + +/* Literal.String.Double */ +.se { + color: #d01040; +} + +/* Literal.String.Escape */ +.sh { + color: #d01040; +} + +/* Literal.String.Heredoc */ +.si { + color: #d01040; +} + +/* Literal.String.Interpol */ +.sx { + color: #d01040; +} + +/* Literal.String.Other */ +.sr { + color: #009926; +} + +/* Literal.String.Regex */ +.s1 { + color: #d01040; +} + +/* Literal.String.Single */ +.ss { + color: #990073; +} + +/* Literal.String.Symbol */ +.bp { + color: #999999; +} + +/* Name.Builtin.Pseudo */ +.vc { + color: #008080; +} + +/* Name.Variable.Class */ +.vg { + color: #008080; +} + +/* Name.Variable.Global */ +.vi { + color: #008080; +} + +/* Name.Variable.Instance */ +.il { + color: #009999; +} + +/* Literal.Number.Integer.Long */ diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/middlemac/middlemac.css b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/middlemac/middlemac.css new file mode 100644 index 0000000..5a5d6b3 --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/middlemac/middlemac.css @@ -0,0 +1,131 @@ +.middlemac-debug { + text-align: left; + font-size: 75%; + white-space: pre-wrap; +} + +p.note, p.tip, p.warning { + background-repeat: no-repeat; + background-size: 1.4em; + background-position: top left; + text-indent: 2em; + display: block; +} + +p.note::before, p.tip::before, p.warning::before { + font-weight: bold; +} + +p.note.callout, p.tip.callout, p.warning.callout { + margin-left: 2em; + margin-right: 2em; +} + +p.note { + background-image: url("note.svg"); +} + +p.tip { + background-image: url("tip.svg"); +} + +p.warning { + background-image: url("warning.svg"); +} + +p.note::before { + content: "Note "; +} + +p.tip::before { + content: "Tip "; +} + +p.warning::before { + content: "Warning "; +} + +.apd-topic dl { + overflow: hidden; + position: relative; + border-top: 1px solid #e4e4e4; + border-bottom: 1px solid #e4e4e4; +} + +.apd-topic dl dt { + float: left; + width: 33%; + clear: both; + position: relative; + font-weight: initial; + margin: initial; +} + +.apd-topic dl dd { + float: right; + width: 62%; + margin: initial; +} + +.apd-topic dl.width50 dt, .apd-topic dl.width50 dd { + width: 50%; +} + +.apd-topic dl.width25 dt { + width: 25%; +} + +.apd-topic dl.width25 dd { + width: 74%; +} + +.apd-topic dl.nontabular dt, .apd-topic dl.nontabular dd { + position: initial; + float: none; + display: block; + width: initial; +} + +.apd-topic dl.nontabular dt:first-child { + margin-top: 1.0em; +} + +.apd-topic dl.nontabular dd { + margin-left: 2em; +} + +.apd-topic div.ParaLines, .apd-topic p { + white-space: initial; +} + +.apd-topic h2 code, +.apd-topic h3 code { + font-size: 1em; +} + +.method_details_list .inline, +.method_details_list .inline p, .attr_details .inline, +.attr_details .inline p { + display: inline; +} + +.method_details_list span.name, .attr_details span.name { + font-weight: bold; +} + +.method_details_list p.tag_title, .attr_details p.tag_title { + font-weight: bold; +} + +.method_details_list .note, .attr_details .note { + background-image: url("note.svg"); + background-repeat: no-repeat; + background-size: 1.4em; + background-position: top left; + text-indent: 2em; + display: block; +} + +div.highlight pre.shrink_code code { + font-size: 8pt; +} diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/middlemac/note.svg b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/middlemac/note.svg new file mode 100644 index 0000000..2cc6a88 --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/middlemac/note.svg @@ -0,0 +1,19 @@ + + + + + + + + + + diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/middlemac/tip.svg b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/middlemac/tip.svg new file mode 100644 index 0000000..a21fc48 --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/middlemac/tip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/middlemac/warning.svg b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/middlemac/warning.svg new file mode 100644 index 0000000..6cb0b10 --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/css/middlemac/warning.svg @@ -0,0 +1,19 @@ + + + + + + + + + + diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/js/app.5.1.27.js b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/js/app.5.1.27.js new file mode 100644 index 0000000..eac76f2 --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/js/app.5.1.27.js @@ -0,0 +1,6295 @@ +/* Modified by Jim Derry on 2018-May-03. + * Support non-flat file structure and srcset by modifying the regexes in + * _htmlLoadSuccess. + */ +var APP_VERSION = "5.1.27"; +/*! built 2018-03-08 */ +define("shared/mixin/toc-item", [], function() { + return Em.Mixin.create({ + id: null, + name: null, + icon: null, + parent: null, + book: null, + path: function() { + for (var a = [], b = this.get("parent"); b; ) + a.push(b), + b = b.get("parent"); + return a.reverse() + } + .property("parent"), + breadcrumb: function() { + return this.get("path").map(function(a) { + return a.name + }).join(" > ") + } + .property("path") + }) +}), +define("shared/browser", [], function() { + var a = "unknown" + , b = "ActiveXObject"in window && !window.ActiveXObject + , c = Em.Object.extend({ + isInHelpViewer: "HelpViewer"in window, + isInModernHelpViewer: "HelpViewer"in window && "showTOCButton"in window.HelpViewer, + isInOldHelpViewer: "HelpViewer"in window && !("showTOCButton"in window.HelpViewer), + all: function() { + var a = this.get("name") + " " + this.get("version") + ", OS " + this.get("os"); + return a + } + .property(), + name: function() { + var c = Em.get(window, "iTunes.platform"); + return c ? "itunes-%@".fmt(c.toLowerCase()) : b ? "msie" : (c = a, + $.each([/edge/i, /chrome/i, /safari/i, /opera/i, /webkit/i, /firefox/i, /msie/i], function() { + var a = navigator.userAgent.match(this); + return a ? (c = a[0].toLowerCase(), + !1) : void 0 + }), + c) + } + .property(), + version: function() { + var c = Em.get(window, "iTunes.version"); + return c ? c : b ? "11" : (c = a, + $.each([/Version\/([_\.\d]+)/, /Edge\/([_\.\d]+)/, /Chrome\/([_\.\d]+)/, /WebKit\/([_\.\d]+)/, /MSIE ([_\.\d]+)/, /Firefox\/([_\.\d]+)/], function() { + var a = navigator.userAgent.match(this); + return a ? (c = a[0].replace(this, "$1").replace(/_/g, "."), + !1) : void 0 + }), + c) + } + .property(), + os: function() { + var b = a; + return $.each([/Mac OS X ([_\.\d]+)/, /iPhone OS ([_\.\d]+)/, /CPU OS ([_\.\d]+)/, /Windows NT ([_\.\d]+)/], function() { + var a = navigator.userAgent.match(this); + return a ? (b = a[0].replace(this, "$1").replace(/_/g, "."), + !1) : void 0 + }), + b + } + .property(), + isMac: function() { + return /mac/i.test(navigator.appVersion) && !/mobile/i.test(navigator.appVersion) + } + .property(), + isMobile: function() { + return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) + } + .property(), + canHandleHelpOpenBookLinks: function() { + var a = !!this.get("name").match(/safari/i) + , b = !!this.get("name").match(/webkit/i) + , c = !!this.get("name").match(/chrome/i) + , d = this.get("isMac"); + return this.get("isInHelpViewer") || d && (a || c || b) + } + .property(), + canHandleHelpAnchorLinks: function() { + var a = !!this.get("name").match(/safari/i) + , b = !!this.get("name").match(/webkit/i) + , c = this.get("isMac"); + return this.get("isInHelpViewer") || c && (a || b) + } + .property(), + isTablet: function() { + return /iPad/i.test(navigator.userAgent) + } + .property(), + params: function() { + var a = {}; + return location.search && $.each(location.search.substring(1).split("&"), function() { + var b = this.split("="); + a[decodeURIComponent(b[0])] = decodeURIComponent(b[1]) + }), + a + } + .property(), + classNames: function() { + var b = [] + , c = "is-" + this.get("name").replace("firefox", "ff").replace("msie", "ie").replace("edge", "ie") + , d = this.get("version"); + if (b.push(c), + c.match(/itunes/) && b.push("is-webkit"), + navigator.userAgent.match(/AppleWebKit\/(534|536)/) && b.push("is-safari6", "is-applewebkit-534"), + d !== a) { + var e = c + this.get("version").split(".")[0]; + b.push(e) + } + return this.get("isInHelpViewer") ? (b.push("is-hv"), + b.push(this.isInModernHelpViewer ? "is-modern-hv" : "is-older-hv")) : b.push("is-not-hv"), + b.push(this.get("isMac") ? "is-mac-os" : "is-not-mac-os"), + b.push(this.get("isMobile") ? "is-mobile" : "is-not-mobile"), + b.push("ontouchstart"in document.documentElement ? "is-touch" : "is-not-touch"), + b.join(" ") + } + .property(), + queryLocale: function() { + return this.get("params.lang") + } + .property(), + currentLocale: function() { + return navigator.browserLanguage || navigator.systemLanguage || navigator.userLanguage || navigator.language + } + .property(), + locales: function() { + var a = []; + if ("HelpViewer"in window && "preferredLanguages"in HelpViewer) + try { + var b = Array.prototype.concat.apply([], HelpViewer.preferredLanguages()); + a = b.concat(a) + } catch (c) {} + if ("iTunes"in window) + try { + a = $.map(iTunes.acceptedLanguages.split(","), function(a) { + return a.replace(/\+?([^;]+);.*/, "$1") + }).concat(a) + } catch (c) {} + var d = [this.get("queryLocale"), this.get("currentLocale")].concat(a); + return $.map(d, function(a) { + if (!a) + return null; + a = a.toLowerCase().replace(/_/g, "-"); + var b = []; + if (a.length > 2) { + var c = ""; + a.split("-").map(function(d, e) { + e > 0 && (c += "-"), + c += d, + c !== a && b.unshift(c) + }) + } + return [a].concat(b) + }) + } + .property(), + has3dTransformSupport: null, + _has3dTransform: function() { + var a, b = document.createElement("p"), c = { + webkitTransform: "-webkit-transform", + OTransform: "-o-transform", + msTransform: "-ms-transform", + MozTransform: "-moz-transform", + transform: "transform" + }; + document.body.insertBefore(b, null); + for (var d in c) + void 0 !== b.style[d] && (b.style[d] = "translate3d(1px,1px,1px)", + a = window.getComputedStyle(b).getPropertyValue(c[d])); + return document.body.removeChild(b), + void 0 !== a && a.length > 0 && "none" !== a + }, + has3dTransform: function() { + return null === this.has3dTransformSupport && (this.has3dTransformSupport = this._has3dTransform()), + this.has3dTransformSupport + }, + scrollTo: function(a, b, c) { + if (this.get("isMobile")) { + var d = function(b, c) { + var d = a.scrollTop() + , e = b - d + , f = 0 + , g = 20 + , h = function() { + f += g; + var a = Math.easeInOutQuad(f, d, e, c); + window.scrollTo(0, a), + c > f && setTimeout(h, g) + }; + h() + }; + Math.easeInOutQuad = function(a, b, c, d) { + return a /= d / 2, + 1 > a ? c / 2 * a * a + b : (a--, + -c / 2 * (a * (a - 2) - 1) + b) + } + , + d(b, c) + } else + a.animate({ + scrollTop: b + }, c) + } + }); + return c.create() +}), +define("shared/topic/model", ["shared/mixin/toc-item", "shared/browser"], function(a, b) { + var c = "HTML_LOADED" + , d = "HTML_FAILED"; + return Em.Object.extend(a, Ember.Evented, { + href: null, + prev: null, + next: null, + subtopic: 0, + template: null, + templatePromise: null, + isLoaded: !1, + isAsync: !1, + isError: !1, + init: function() { + var a = Em.RSVP.defer(); + this.set("templatePromise", a.promise), + this.on("HTML_LOADED", this, a.resolve), + this.on("HTML_FAILED", this, a.reject) + }, + routeSlug: function() { + return this.get("id") + } + .property("id", "name"), + iconHref: function() { + if (!(b.isInHelpViewer || this.get("parent") && !this.get("parent.allChildrenHaveIcons"))) { + var a = this.get("icon") + , c = this.get("app.bundle.path"); + return a ? c + a : void 0 + } + } + .property("icon", "app.bundle.path"), + categories: [], + chapterName: function() { + return this.get("parent.name") || this.get("parent.parent.name") || null + } + .property("parent"), + isLanding: function() { + return this.get("categories").contains("landing") + } + .property("categories"), + isPassionPoints: function() { + return this.get("categories").contains("passionpoints") + } + .property("categories"), + isAside: function() { + return this.get("categories").contains("aside") + } + .property("categories"), + isCopyright: function() { + return this.get("categories").contains("copyright") + } + .property("categories"), + isCurrentTopic: function() { + return this.get("app.currentTopic.id") === this.get("id") + } + .property("app.currentTopic", "id"), + crossReferences: Em.Object.create({}), + fetchTopicHTML: function() { + var a = this.get("templatePromise") + , b = this.get("href"); + return this.get("isLoaded") ? a : b ? ($.ajax({ + context: this, + async: this.get("isAsync"), + url: this.get("app.bundle.path") + b, + success: this._htmlLoadSuccess, + error: this._htmlLoadFailure + }), + a) : this._htmlLoadFailure() + }, + _htmlLoadSuccess: function(a) { + if (!a) + return this._htmlLoadFailure(); + var b = this.get("app.bundle.path"); + return a = a.replace(/[\W\w]*[\W\w]*/, "/div>") + .replace(/\u2028/g, "").replace(/\u2029/g, "") + .replace(/((?:src|poster|xlink:href)=["'](?!data:|https?:))(?:\/Resources\/)+/g, "$1") + .replace(/(?:\/Resources\/)(.+?\s[0-9]x)/g, "$1"), + a = this.preProcessAsDOM($(a)).prop("outerHTML"), + a = a.replace(/<\/track>/g, ""), + this.set("isError", !1), + this.set("template", a), + this.set("isLoaded", !0), + this.trigger(c), + this.get("templatePromise") + }, + _htmlLoadFailureMessage: function() { + return '

%@

%@
'.fmt("$TOPIC_LOAD_ERROR$".loc(), "$CONNECT_TO_INTERNET$".loc()) + } + .property(), + _htmlLoadFailure: function(a, b, c) { + (a || c) && Em.Logger.warn(c.message || "%@ %@".fmt(a.statusText, a.status)); + var e = this.get("_htmlLoadFailureMessage"); + return this.set("isError", !0), + this.set("template", e), + this.set("isLoaded", !0), + this.trigger(d), + "HelpViewer"in window && "mtStatisticsIncrement"in window.HelpViewer && HelpViewer.mtStatisticsIncrement(1, 0, 0, 0), + this.get("templatePromise") + }, + preProcessAsDOM: function(a) { + var c = this; + a.addClass("apd-topic").removeAttr("id"), + a.find("h1").attr({ + id: this.get("id"), + tabindex: "-1" + }); + var d = a.find(".Task > .Name") + , e = d.parent(".Task") + , f = e.length; + d.attr("tabindex", "1"), + 1 === f && e.addClass("SoloTask"); + var g = this.get("crossReferences"); + if (a.find(".xRef").replaceWith(function(a, b) { + if (!$(this).attr("href")) + return void console.warn('Found a link without an href attribute: "%@"'.fmt(b)); + var d = $(this).attr("href").split(".")[0] + , e = $(this).attr("href").split("#")[1] + , f = d ? f = c.get("app.book").modelForID(d) : null + , h = $(this).attr("class"); + return f ? f instanceof c.constructor ? $(this).hasClass("Section") ? b : (g.set(d, f), + $(this).hasClass("Aside") && f.get("isAside") ? $(this).attr("aside", d).attr("href", "#/" + d) : d !== e ? '{{#link-to "topic" "%@" (query-params sub="%@") class="%@ subTopicLink"}}%@{{/link-to}}'.fmt(d, e, h, b) : '{{#link-to "topic" model.crossReferences.%@.routeSlug class="%@"}}%@{{/link-to}}'.fmt(d, h, b)) : (console.warn('Found cross-reference to non-Topic item "%@" (%@)'.fmt(f.name, d)), + b) : void console.warn("Found cross-reference to missing model %@".fmt(d)) + }), + a.find("a[href]").each(function() { + var a = $(this).attr("href"); + a.match(/^(http|help)/) && ($(this).attr("target", "_blank"), + a.match(/\.mov(\?|")/) && $(this).addClass("video")) + }), + "apd-schema" === this.get("app.book.source_schema")) { + var h = 1 === f; + e.each(function() { + var a = $(this); + $name = a.find("> .Name"), + $name.html('' + $name.text()), + $name.attr("aria-expanded", h), + a.find(".TaskBody").attr("aria-hidden", !h) + }), + b.isInModernHelpViewer && this.get("isLanding") && !this.get("app.book.isSingleTopicBook") && a.find("ul").append('
  • ') + } + return a + } + }) +}), +define("shared/section", ["shared/mixin/toc-item", "shared/browser"], function(a, b) { + return Em.Object.extend(a, { + children: [], + isExpanded: !1, + hasCurrentTopic: function() { + return this.get("children").filter(function(a) { + return a.get("isCurrentTopic") || a.get("hasCurrentTopic") + }).length > 0 + } + .property("app.currentTopic"), + totalDescendants: function() { + var a = this.get("children") + , b = a.length; + return a.forEach(function(a) { + b += a.children ? a.get("totalDescendants") : 0 + }), + b + } + .property("children"), + iconHref: function() { + if (!b.isInHelpViewer) { + var a = this.get("icon") + , c = this.get("app.bundle.path"); + return a ? c + a : void 0 + } + } + .property("icon", "app.bundle.path"), + allChildrenHaveIcons: function() { + return this.get("children").reduce(function(a, b) { + return a && (a = null !== b.get("icon")), + a + }, !0) + } + .property() + }) +}), +define("shared/url", ["shared/mixin/toc-item"], function(a) { + return Em.Object.extend(a, { + href: null, + isUrl: !0, + url: function() { + return encodeURI(this.get("href")) + } + .property("href") + }) +}), +define("shared/book", ["shared/topic/model", "shared/section", "shared/url"], function(a, b, c) { + return Em.Object.extend({ + id: null, + framework: null, + source_schema: null, + birdseed_version: null, + locale: null, + collect_feedback: !1, + enable_tracking: !1, + product: null, + platform: null, + version: null, + title: null, + icon: null, + landing: null, + firstTopic: null, + lastTopic: null, + toc: [], + quick_links: [], + sections: {}, + topics: {}, + copyright: null, + copyright_text: null, + isSingleTopicBook: !1, + Topic: a, + init: function() { + this.rewriteObjectAsModels("topics", this.get("Topic")), + this.rewriteObjectAsModels("urls", c), + this.rewriteObjectAsModels("sections", b), + this.get("sections").forEach(function(a, b) { + a.children && a.set("children", a.get("children").map(function(b) { + var c = this.modelForID(b); + return c && c.set("parent", a), + c + }, this).filter(function(a) { + return !!a + })) + }, this), + this.set("toc", this.get("toc").map(this.modelForID, this).filter(this.filterTopics)), + this.set("quick_links", this.get("quick_links").filter(function(a) { + if (!a.href) + return !1; + var b = a.href.split(".html")[0] + , c = this.topics.get(b); + return c && (a.href = "#/" + b, + a.title = a.title || c.get("name")), + c + }, this)); + var a = this.get("landing"); + this.set("landing", null !== a ? this.modelForID(a) : null), + this.set("copyright", this.modelForID(this.get("copyright"))); + var d = 0; + this.topics.forEach(function(a, b) { + a.get("isAside") || d++ + }), + this.set("isSingleTopicBook", 1 === d), + this.createLinkedTopicList() + }, + rewriteObjectAsModels: function(a, b) { + var c, d, e = this.get(a), f = Em.Map.create({}), g = this.get("app"); + for (c in e) + d = b.create($.extend({ + app: g + }, e[c])), + d.setProperties({ + id: d.get("isUrl") ? d.get("url") : c, + book: this + }), + f.set(c, d); + this.set(a, f) + }, + modelForID: function(a) { + var b = this.topics.get(a) || this.sections.get(a) || this.urls.get(a); + return b || console.warn("Could not find topic id: %@ in topics, sections or urls.".fmt(a)), + b + }, + filterTopics: function(a) { + return a + }, + createLinkedTopicList: function() { + var a = this.topicsInList(this.get("toc")); + return a = a.filter(function(a) { + return !a.isUrl + }), + this.set("firstTopic", a[0]), + this.set("lastTopic", a[a.length - 1]), + a.forEach(function(b, c) { + c > 0 && b.set("prev", a[c - 1]), + c + 1 < a.length && b.set("next", a[c + 1]) + }), + a + }, + topicsInList: function(a) { + var b = this; + return $.map(a, function(a) { + if (!a) { + var c = "Error building TOC. navigation.json file has an id in the toc list that is not found in the topics list."; + return Em.isEmpty(b.get("app.ENVIRONMENT")) ? Em.Logger.error(c) : $("body").append('

    Hmmm.

    ' + c + "

    "), + !1 + } + return "string" == typeof a && (a = b.modelForID(a)), + a.children ? b.topicsInList(a.children) : a + }) + } + }) +}), +define("shared/tracking/event", ["shared/browser"], function(a) { + return Em.Object.extend({ + init: function() { + this._super(); + var b, c, d, e = "appleproductdocumentation", f = "metrics.apple.com", g = "securemetrics.apple.com", h = Em.computed.oneWay, i = this.getProperties(Ember.keys(this)), j = this.get("app"); + d = { + events: "", + eVar1: null, + prop1: h("eVar1"), + eVar2: navigator.userAgent, + prop2: h("eVar2"), + eVar3: "%@:%@".fmt(a.get("name"), a.get("version")), + prop3: h("eVar3"), + eVar4: a.get("os"), + prop4: h("eVar4"), + eVar5: "%@:%@".fmt(a.get("name"), a.get("os")), + prop5: h("eVar5"), + eVar6: function() { + return "%@:%@".fmt(j.get("NAME"), j.get("VERSION")) + } + .property(), + prop6: h("eVar6"), + eVar7: function() { + return "help:%@".fmt(this.get("eVar10")) + } + .property("eVar10"), + prop7: h("eVar7"), + eVar8: function() { + return "%@:%@".fmt(this.get("eVar7"), this.get("eVar11")) + } + .property("eVar7", "eVar11"), + prop8: h("eVar8"), + eVar9: function() { + return "%@:%@".fmt(this.get("eVar8"), this.get("eVar12")) + } + .property("eVar8", "eVar12"), + prop9: h("eVar9"), + eVar10: function() { + return j.get("book.product") + } + .property(), + prop10: h("eVar10"), + eVar11: function() { + return j.get("book.platform") + } + .property(), + prop11: h("eVar11"), + eVar12: function() { + return j.get("book.version") + } + .property(), + prop12: h("eVar12"), + eVar13: a.get("currentLocale"), + prop13: h("eVar13"), + eVar14: function() { + return j.get("bundle.currentLocale.isoCode") + } + .property(), + prop14: h("eVar14"), + eVar15: navigator.language, + prop15: h("eVar15"), + eVar16: null, + prop16: h("eVar16"), + eVar17: null, + prop17: h("eVar17"), + eVar18: null, + prop18: h("eVar18"), + eVar20: null, + prop20: h("eVar20"), + eVar21: null, + prop21: h("eVar21"), + eVar22: null, + prop22: h("eVar22"), + eVar23: null, + prop23: h("eVar23"), + eVar24: null, + prop24: h("eVar24"), + eVar28: null, + prop28: h("eVar28"), + eVar29: null, + prop29: h("eVar29"), + eVar30: null, + prop30: h("eVar30"), + eVar31: null, + prop31: h("eVar31"), + eVar32: null, + prop32: h("eVar32"), + eVar33: null, + prop33: h("eVar33") + }, + c = { + event1: "view", + event2: "searchWithResults", + event3: "searchNoResults", + event4: "searchClickthrough", + event5: "submitFeedback", + event7: "playMedia", + event16: "passionPoint", + event17: "task-learnmore", + event18: "pp-clickthrough", + event14: "exit", + event15: "stopAutoAdvance", + event20: "task1", + event21: "task2", + event22: "task3", + event23: "task4", + event24: "task5", + event25: "task6", + event26: "task7", + event27: "task8", + event28: "task9", + event29: "task10" + }, + b = { + visitorNamespace: e, + useLocalhostForTrackingServer: function() { + return !Em.isEmpty(j.get("ENVIRONMENT")) && !j.get("USE_OMNITURE_TEST_SERVER") + }, + trackingServer: function() { + return this.useLocalhostForTrackingServer() ? "localhost" : f + } + .property(), + trackingServerSecure: function() { + return this.useLocalhostForTrackingServer() ? "localhost" : g + } + .property(), + server: function() { + return j.get("book.title").toLowerCase() + } + .property(), + pageName: function() { + return "%@:%@".fmt(this.get("server"), this.get("name")).toLowerCase() + } + .property(), + channel: h("pageName"), + trackDownloadLinks: !1, + trackExternalLinks: !1, + trackInlineStats: !1, + useForcedLinkTracking: !1, + linkDownloadFileTypes: "exe,zip,wav,mp3,mov,mpg,avi,wmv,pdf,doc,docx,xls,xlsx,ppt,pptx", + linkInternalFilters: "help.apple.com", + linkLeaveQueryString: !1, + linkTrackVars: Em.keys(d), + linkTrackEvents: Em.keys(c), + usePlugins: !1, + doPlugins: $.noop, + campaign: a.get("params.o") || null + }, + this.set("TRACKING_VARS", d), + this.set("EVENTS", c), + this.set("CONFIG", b), + this.setProperties(b), + this.setProperties(d), + this.setProperties(i) + }, + name: "", + eventName: function() { + return this.get("EVENTS")[this.get("events")] + } + .property("events"), + resolvedProperties: function() { + var a = Em.keys(this.get("CONFIG")).concat(Em.keys(this.get("TRACKING_VARS"))); + return this.getProperties(a) + } + .property() + }) +}), +define("shared/tracking/controller", ["shared/tracking/event"], function(a) { + return Ember.Controller.extend({ + isProduction: !1, + isEnabled: !1, + originId: null, + topicEventName: function(a) { + var b = "%@:%@".fmt(a.name, a.id); + return a.get("isAside") && (b = "aside:" + b), + b + }, + account: function() { + return this.get("isProduction") ? "aaplpdglobal" : "aaplpdglobaldev" + } + .property("isProduction"), + siteCatalyst: function() { + return s_gi ? s_gi(this.get("account")) : void 0 + } + .property("account"), + track: function(a, b) { + if (this.isEnabled && "s_gi"in window) { + var c = this.get("siteCatalyst"); + $.extend(c, this.get("model.resolvedProperties")), + c.t(!0, "o", this.get("model.eventName")) + } + } + .observes("model"), + topicLoaded: function(b) { + var c = b.id; + b.get("subtopics") && (c += ":" + (b.subtopic + 1)), + this.set("model", a.create({ + events: "event1", + name: b.name, + eVar1: this.topicEventName(b), + eVar28: c, + eVar29: window.location.href, + eVar30: b.get("chapterName"), + app: this.get("app") + })) + }, + quickTourExit: function(b, c) { + this.set("model", a.create({ + events: "event14", + name: "quick-tour-session-path", + eVar28: c, + eVar29: window.location.href, + eVar31: b, + app: this.get("app") + })) + }, + quickTourStopAutoAdvance: function(b, c) { + if (b && b.get && ("dot" === c || "paddle" === c || "keyboard" === c || "click" === c)) { + var d = b.get("id"); + b.get("subtopics") && (d += ":" + (b.get("subtopic") + 1)), + this.set("model", a.create({ + events: "event15", + name: "quick-tour-stop-auto-advance", + eVar28: d, + eVar29: window.location.href, + eVar32: c, + app: this.get("app") + })) + } + }, + quickTourLearnMore: function(b, c) { + if (b && b.get) { + var d = b.get("id"); + b.get("subtopics") && (d += ":" + (b.get("subtopic") + 1)), + this.set("model", a.create({ + events: "event17", + name: "quick-tour-learn-more-opened", + eVar22: c, + eVar28: d, + eVar29: window.location.href, + app: this.get("app") + })) + } + }, + toggleTOC: function(b) { + this.set("model", a.create({ + events: b, + app: this.get("app") + })) + }, + tocSelect: function(b) { + this.set("model", a.create({ + events: "event33", + eVar28: b, + app: this.get("app") + })) + }, + nextPrev: function(b) { + this.set("model", a.create({ + events: "event34", + eVar33: b, + app: this.get("app") + })) + }, + expansion: function(b, c, d, e, f) { + this.set("model", a.create({ + events: f, + name: c.name, + eVar1: this.topicEventName(c), + eVar22: d, + eVar23: e + 1, + eVar24: b + ":" + (e + 1), + eVar28: c.id, + app: this.get("app") + })) + }, + performSearch: function(b) { + var c = b.matches.length ? "search" : "search: no results"; + this.set("model", a.create({ + events: b.matches.length ? "event2" : "event3", + name: c, + eVar16: b.query, + app: this.get("app") + })) + }, + searchResultSelect: function(b, c) { + var d = b.get("sortedTopics"); + if (d && d[c]) { + var e = d[c]; + this.set("model", a.create({ + events: "event4", + eVar1: "search: result click-through", + eVar16: b.query, + eVar17: e.name, + eVar18: e.id, + app: this.get("app") + })) + } + }, + searchQuickLinkSelect: function(b, c) { + this.set("model", a.create({ + events: "event19", + eVar1: "search: quicklink click-through", + eVar17: b, + eVar18: c, + app: this.get("app") + })) + }, + feedbackSubmit: function(b) { + var c = this.get("app.currentTopic"); + this.set("model", a.create({ + events: "event5", + name: "feedback", + eVar1: this.topicEventName(c), + eVar21: b, + eVar28: c.id, + app: this.get("app") + })) + }, + setDefaultBrowser: function(a, b) { + this.trackClick(a.name, "event6") + }, + mediaStart: function(b) { + var c = b.tagName.toLowerCase() + , d = $("source", b).attr("src"); + this.set("model", a.create({ + events: "event7", + eVar18: d, + eVar20: c, + app: this.get("app") + })) + }, + media25: function(b) { + var c = b.tagName.toLowerCase() + , d = $("source", b).attr("src"); + this.set("model", a.create({ + events: "event8", + eVar18: d, + eVar20: c, + app: this.get("app") + })) + }, + media50: function(b) { + var c = b.tagName.toLowerCase() + , d = $("source", b).attr("src"); + this.set("model", a.create({ + events: "event9", + eVar18: d, + eVar20: c, + app: this.get("app") + })) + }, + media75: function(b) { + var c = b.tagName.toLowerCase() + , d = $("source", b).attr("src"); + this.set("model", a.create({ + events: "event10", + eVar18: d, + eVar20: c, + app: this.get("app") + })) + }, + mediaEnd: function(b) { + var c = b.tagName.toLowerCase() + , d = $("source", b).attr("src"); + this.set("model", a.create({ + events: "event11", + eVar18: d, + eVar20: c, + app: this.get("app") + })) + }, + mediaError: function(b) { + var c = b.tagName.toLowerCase() + , d = $("source", b).attr("src"); + this.set("model", a.create({ + events: "event12", + eVar18: d, + eVar20: c, + app: this.get("app") + })) + }, + trackClick: function(b, c) { + var d = { + events: "event13", + pageName: b, + eVar1: b, + app: this.get("app") + }; + c && (d.eVar29 = c), + this.set("model", a.create(d)) + }, + trackPassionPointClick: function(b, c, d) { + if (null !== b && null !== d) { + var e = { + events: "event18", + pageName: "pp-link-clicked:" + c, + eVar1: this.topicEventName(b), + eVar28: d, + app: this.get("app") + }; + this.set("model", a.create(e)) + } + } + }) +}), +define("shared/app/controller", ["shared/book", "shared/tracking/controller", "shared/browser"], function(a, b, c) { + return Ember.Controller.extend({ + NAVIGATION_FILE: "navigation.json", + SEARCH_FILE: "searchTree.json", + VERSION: APP_VERSION, + NAME: "base", + ENVIRONMENT: null, + USE_OMNITURE_TEST_SERVER: !1, + book: null, + Book: a, + currentTopic: null, + addLanguageAndDirection: function() { + var a = this.get("bundle.currentLocale"); + this.get("$html").attr("lang", a.get("isoCode")), + this.get("$body").attr("dir", a.get("text-direction")) + } + .observes("bundle.currentLocale").on("init"), + loadBook: function() { + var a = this + , b = Ember.RSVP.defer(); + $.ajax({ + url: this.get("bundle.path") + this.get("NAVIGATION_FILE"), + dataType: "json" + }).done(function(c, d, e) { + var f = arguments; + (a.bookDidLoad.apply(a, f) || Ember.RSVP.resolve())["finally"](function() { + b.resolve.apply(b, f) + }) + }).fail(function(c, d, e) { + var f = "development" === a.get("VERSION") ? a.get("VERSION") : e.getResponseHeader("x-server-type"); + Em.isEmpty(f) || $(".loading").addClass("loading-error").html("

    Hmmm.

    This book exists...but I couldn’t find any .lproj folders.

    Please contact your build engineer for assistance.

    "), + b.reject.apply(b, arguments) + }), + this.set("bookPromise", b.promise) + } + .observes("bundle.currentLocale").on("init"), + removeInitialLoading: function() { + $(".loading").remove() + }, + bookDidLoad: function(a, b, c) { + var d = "development" === this.get("VERSION") ? this.get("VERSION") : c.getResponseHeader("x-server-type"); + this.set("ENVIRONMENT", d), + $("html").addClass(d); + var e = a; + e.app = this, + this.set("book", this.get("Book").create(e)), + document.title = this.get("book.title"), + this.get("USE_OMNITURE_TEST_SERVER") === !1 && !Em.isEmpty(d) && this.get("trackingController.isEnabled") && (Em.Logger.warn("Omniture data collection turned OFF for non-production environments."), + Em.Logger.warn('Use "TOGGLE_OMNITURE_TEST_SERVER()" to enable data collection to the test server')) + }, + isOnLandingPage: function() { + return this.get("currentTopic.id") === this.get("book.landing.id") && !this.get("book.isSingleTopicBook") + } + .property("currentTopic", "book"), + updateLandingPageClassNameOnBody: function() { + $("body").toggleClass("landing-page", this.get("isOnLandingPage")) + } + .observes("isOnLandingPage"), + trackingController: function() { + return b.create({ + isProduction: "development" !== this.get("VERSION") && Em.isEmpty(this.get("ENVIRONMENT")), + isEnabled: this.book.enable_tracking && !c.isInHelpViewer, + app: this + }) + } + .property("ENVIRONMENT", "book"), + trackingControllerUpdatedLog: function() { + Em.Logger.log("Omniture data collection is " + (this.get("USE_OMNITURE_TEST_SERVER") ? "ON" : "OFF")) + } + .observes("USE_OMNITURE_TEST_SERVER"), + hidePanels: $.noop, + isTOCAlwaysExpanded: !1, + changeLanguage: function(a) { + location.search = "lang=%@".fmt(this.get("value")) + }, + debugInfo: function() { + Em.Logger.log("app_version: %@".fmt(APP_VERSION)), + Em.Logger.log("framework: %@".fmt(this.get("framework"))), + Em.Logger.log("schema: %@".fmt(this.get("book.source_schema"))), + Em.Logger.log("build: %@".fmt(this.get("book.build_id"))), + Em.Logger.log("locale: %@".fmt(this.get("bundle.currentLocale.isoCode"))), + Em.Logger.log("title: %@".fmt(this.get("book.title"))), + this.get("book.enable_tracking") ? Em.Logger.log('tracking product: "%@", platform: "%@", version: "%@"'.fmt(this.get("book.product"), this.get("book.platform"), this.get("book.version"))) : Em.Logger.log("tracking: disabled"), + Em.Logger.log("feedback: %@".fmt(this.get("book.collect_feedback") ? "collect" : "do not collect")) + }, + init: function() { + this.set("$html", $("html")), + this.set("$body", $("body")), + this.get("$html").addClass(c.get("classNames")); + var a = "1" === c.get("params.omniture"); + return a && this.set("USE_OMNITURE_TEST_SERVER", !0), + this.updateLandingPageClassNameOnBody(), + this._super() + } + }) +}), +define("shared/app/view", [], function() { + return Ember.View.extend({ + ariaRole: "application", + template: Ember.HTMLBars.compile("{{outlet}}"), + willInsertElement: function() { + this.get("controller").removeInitialLoading() + } + }) +}), +define("shared/topic/view", ["shared/browser"], function(a) { + return Em.View.extend({ + tagName: "article", + classNames: ["instapaper_ignore"], + template: Em.HTMLBars.compile('
    '), + contentBinding: "controller.model", + waitForTemplateLoad: function() { + this.get("content") && this.get("content.templatePromise")["finally"](Em.run.bind(this, this.setTemplateFromModel)) + } + .observes("content.templatePromise").on("init"), + setTemplateFromModel: function() { + if (!this.get("isDestroying")) { + var a = this.get("content.template"); + this.set("template", Em.HTMLBars.compile(a)), + this.rerender() + } + }, + click: function(a) { + function b(b) { + b || (c = window.open(b, "helpexternal"), + c && a.preventDefault()) + } + var c, d, e = $(a.target), f = this.get("controller.app") || this.get("app"); + if (e.is("a[aside]")) { + var g = this.get("content"); + d = g.crossReferences[e.attr("aside")], + this.showAside(d), + a.preventDefault() + } else + e.is(".LinkAppleWebMovie") ? b(e.find("a[href]").attr("href")) : e.is("a[href]") && "_blank" === e.attr("target") ? b(e.attr("href")) : e.is(".cur-lang") ? this.showLocalePicker() : e.hasClass("subTopicLink") && f.scrollToSubtopic(); + f.hidePanels() + }, + updateDocumentTitle: function() { + var a, b, c, d, e = this.get("controller.app.currentTopic"); + d = this.$ ? this.$().find("h1").text() : null, + a = d || e.get("name"), + b = this.get("controller.app.book.title"), + c = e === this.get("controller.app.book.landing") ? b : a === b ? b : "%@ - %@".fmt(a, b), + document.title = c + }, + showAside: function(a) { + this.get("controller.target").transitionTo("topic", a) + }, + showLocalePicker: function() { + return !1 + }, + didInsertElement: function() { + this._super(), + "HelpViewer"in window && "mtContentAccessed"in HelpViewer && ("mtContentAccessedJSON"in HelpViewer ? HelpViewer.mtContentAccessedJSON({ + mtAccessContent: { + topicID: this.get("content.id"), + topicTitle: this.get("content.name"), + bookName: this.get("controller.app.book.title"), + bookVersion: this.get("controller.app.book.version"), + bookBuild: this.get("controller.app.book.build_id"), + bookLocale: this.get("controller.app.book.locale") + } + }) : HelpViewer.mtContentAccessed(this.get("content.id") + " " + this.get("content.name"), this.get("controller.app.book.title"))), + a.get("isMobile") && this.$().on("click", $.noop); + var b = this.get("controller.app") || this.get("app") + , c = b.get("trackingController"); + this.$("video, audio").on("timeupdate", function(a) { + var b = a.target.currentTime / a.target.duration; + b > .75 ? $(this).trigger("passed75") : b > .5 ? $(this).trigger("passed50") : b > .25 && $(this).trigger("passed25") + }).one("play", function(a) { + c.mediaStart(a.target) + }).one("passed25", function(a) { + c.media25(a.target) + }).one("passed50", function(a) { + c.media50(a.target) + }).one("passed75", function(a) { + c.media75(a.target) + }).one("ended", function(a) { + c.mediaEnd(a.target) + }).one("error", function(a) { + c.mediaError(a.target) + }) + }, + willDestroyElement: function() { + this.$().off("click") + } + }) +}), +define("shared/topic/route", [], function() { + return Em.Route.extend({ + model: function(a) { + var b = a.topic_id ? a.topic_id.split(":")[0] : "" + , c = this.controllerFor("application"); + return c.get("book").modelForID(b) || c.get("book.landing") + }, + setupController: function(a, b) { + var c = this.controllerFor("application"); + c.set("currentTopic", b), + b.fetchTopicHTML()["finally"](function() { + a.set("model", b), + c.get("trackingController").topicLoaded(b) + }) + } + }) +}), +define("shared/base/controller", [], function() { + return Ember.Controller.extend({ + needs: ["application"], + app: Ember.computed.alias("controllers.application") + }) +}), +define("shared/locale/model", [], function() { + return Em.Object.extend({ + isoCodes: [], + isoName: "", + name: "", + folder: "", + isoCode: function() { + return this.get("isoCodes")[0] + } + .property("isoCodes"), + strings: function() { + var a = this.get("isoCode") + , b = App.TRANSLATIONS || {} + , c = b[a]; + return c || (c = b[a.substr(0, 2)]), + c || (console.warn("Could not find translations for %@ - %@".fmt(this.get("isoCode"), this.get("name"))), + c = b.en), + c + } + .property("isoCodes"), + noWordBoundaries: function() { + return !!this.get("strings").$NO_WORD_BREAKS$ + } + .property("strings"), + searchDepthLimit: function() { + return this.get("strings").$SEARCH_DEPTH_LIMIT$ + } + .property("strings"), + fields: function() { + var a = this.get("isoCodes"); + return a.push(this.get("isoName")), + a.push(this.get("name")), + a.push(this.get("folder")), + a + } + .property(), + matches: function(a) { + return -1 !== this.get("fields").indexOf(a) + } + }) +}), +define("shared/config", { + baseUrl: "" +}), +define("shared/bundle", ["shared/locale/model", "shared/browser", "shared/config"], function(a, b, c) { + function d(a) { + var b = /[a-z]{2}(_[a-z0-9]*)?(_[a-z0-9]{2})?\.lproj/gi.exec(a) || []; + return b[0] + } + var e = Em.RSVP.Promise + , f = c.baseUrl + "locale-list.json" + , g = "locale-info.json"; + return Em.Object.extend({ + locales: null, + currentLocale: null, + init: function() { + var a = e.cast($.getJSON(f)).then(null, function() { + var a = Em.get("window.HelpViewer.localeList"); + return a ? e.resolve(JSON.parse(a())) : e.reject() + }).then(null, function() { + var a = d(b.get("params.localePath")); + if (!a) + return e.reject(); + var f = c.baseUrl ? c.baseUrl + "/" : ""; + return e.cast($.getJSON("%@%@/%@".fmt(f, a, g))).then(function(b) { + var c = Em.merge(b.meta || b, { + folder: a + }); + return e.resolve([c]) + }, e.reject) + }).then(null, function() { + return e.resolve([{ + name: "English", + isoName: "English", + isoCodes: ["en"], + folder: "en.lproj", + "text-direction": "ltr" + }]) + }).then($.proxy(this.setLocales, this)); + this.set("localePromise", a) + }, + setLocales: function(b) { + this.set("locales", b.map(function(b) { + return a.create(b) + })) + }, + localeForKey: function(a) { + var b = a.toLowerCase().replace("_", "-"); + return this.locales.find(function(a) { + return a.matches(b) + }) + }, + hasMultipleLocales: function() { + return this.locales.length > 1 + } + .property("locales"), + setCurrentLocale: function() { + this.set("currentLocale", b.get("locales").map(this.localeForKey, this).compact().get(0) || this.get("locales.0")) + } + .observes("locales"), + path: function() { + return c.baseUrl + this.get("currentLocale").folder + "/" + } + .property("currentLocale"), + setStrings: function() { + Em.STRINGS = this.get("currentLocale.strings") + } + .observes("currentLocale") + }) +}), +define("shared/slash-optional-location", [], function() { + var a = function(a) { + if ("string" != typeof a) + throw new Error("route is not a string"); + return a.replace(/^[#\/]{1,2}/, "") + }; + return Em.HashLocation.extend({ + getURL: function() { + return a(this.get("location.hash")) + }, + setURL: function(b) { + b = "/" + a(b), + this.set("location.hash", b), + this.set("lastSetURL", b) + } + }) +}), +define("shared/app", ["shared/app/controller", "shared/app/view", "shared/topic/view", "shared/topic/route", "shared/base/controller", "shared/bundle", "shared/slash-optional-location"], function(a, b, c, d, e, f, g) { + return navigator.userAgent.indexOf("WebKit") >= 0 && navigator.userAgent.indexOf("Mobile") >= 0 && $("body").addClass("no-hover"), + Ember.Application.initializer({ + name: "bundleBookLoader", + initialize: function(a, b) { + b.deferReadiness(); + var c = f.create() + , d = c.get("localePromise"); + d["finally"](function() { + b.register("bundle:main", c, { + instantiate: !1 + }), + b.inject("controller:application", "bundle", "bundle:main"); + var d = a.lookup("controller:application"); + d.get("bookPromise")["finally"](function() { + b.advanceReadiness() + }), + window.TOGGLE_OMNITURE_TEST_SERVER = function() { + var b = a.lookup("controller:application"); + b.set("USE_OMNITURE_TEST_SERVER", !b.get("USE_OMNITURE_TEST_SERVER")); + var c = b.get("USE_OMNITURE_TEST_SERVER"); + return c + } + }) + } + }), + Em.Application.extend({ + init: function() { + this._super(), + this.register("location:slash-optional", g), + this.Router.reopen({ + location: "slash-optional" + }), + this.Router.map(function() { + this.resource("index", { + path: "/" + }), + this.resource("topic", { + path: "/*topic_id" + }) + }) + }, + ApplicationController: a, + ApplicationView: b, + IndexView: c, + IndexRoute: d, + TopicView: c, + TopicRoute: d, + TopicController: e, + IndexController: e + }) +}), +define("shared/computed", [], function() { + function a(a, b, c) { + return Em.computed(a, function() { + return Em.get(this, a) ? b : c + }) + } + return { + loc: function() { + var a = Array.prototype.shift.apply(arguments) + , b = arguments; + return Em.computed("Em.STRINGS", function() { + return String.prototype.loc.apply(a, b) + }) + }, + ternaryValue: a, + truthString: function(b) { + return a(b, "true", "false") + }, + invertedTruthString: function(b) { + return a(b, "false", "true") + } + } +}), +define("topic/model", ["shared/browser", "shared/topic/model", "shared/computed"], function(a, b, c) { + return b.extend({ + preProcessAsDOM: function(b) { + b.find("a[href]").each(function() { + var b = $(this).attr("href"); + if (!a.get("canHandleHelpAnchorLinks") && b.match(/^help:anchor/i) && $(this).replaceWith(function(a, b) { + return b + }), + !a.get("canHandleHelpOpenBookLinks") && b.match(/^help:openbook/i)) { + var c = $(this).parent().get(0); + "p" === c.tagName.toLowerCase() && c.children && 1 === c.children.length && $(this).parent().remove() + } + }); + var c = b.find("div.Feature"); + return 1 === c.length ? c.addClass("FeatureSingle") : c.length > 1 && c.each(function() { + var a = $(this).find(".FeatureBody"); + $(this).attr("aria-expanded", "false"), + a.attr("aria-hidden", !0), + $(this).append('') + }), + b.find(".itunes-link").each(function() { + var a = $(this).find("em").text() + , b = $(this).find("a").text(); + a && b && ($(this).find("em").remove(), + $(this).find("a")[0].innerHTML = "" + a + " " + b + '') + }), + b.find("video").wrap('
    '), + b.find(".video-container").append(''), + this._super(b) + } + }) +}), +define("book", ["shared/book", "topic/model"], function(a, b) { + var c = 5; + return a.extend({ + Topic: b, + init: function() { + var b = { + 4: "e3" + }; + if (this.birdseed_version < c) { + var d = b[this.birdseed_version]; + if (d) + return void window.location.replace(d + location.search + location.hash); + var e = "The book you are trying to open uses too old of a birdseed revision. Expected %@, got %@".fmt(c, this.birdseed_version); + throw $("body").css({ + background: "#fdd", + "text-align": "center" + }).text(e), + new Error(e) + } + return a.prototype.init.apply(this, arguments) + }, + createLinkedTopicList: function() { + var a = this.topicsInList(this.get("toc")); + return a[0] !== this.get("landing") && a.splice(0, 0, this.get("landing")), + a = a.filter(function(a) { + return !a.isUrl + }), + this.set("firstTopic", a[0]), + this.set("lastTopic", a[a.length - 1]), + a.forEach(function(b, c) { + c > 0 && b.set("prev", a[c - 1]), + c + 1 < a.length && b.set("next", a[c + 1]) + }), + a + } + }) +}), +define("precompiled/topic/layout", [], function() { + return Ember.HTMLBars.template(function() { + var a = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createElement("span"); + a.setAttribute(c, "class", "chapter-name"); + var d = a.createComment(""); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.content; + d.detectNamespace(c); + var g; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (g = this.build(d), + this.hasRendered ? this.cachedFragment = g : this.hasRendered = !0), + this.cachedFragment && (g = d.cloneNode(this.cachedFragment, !0))) : g = this.build(d); + var h = d.createMorphAt(d.childAt(g, [1]), 0, 0); + return f(b, h, a, "content.chapterName"), + g + } + } + }() + , b = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createElement("div"); + a.setAttribute(c, "class", "landing-toc-btn"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("button"); + a.setAttribute(d, "class", "toggle-toc-btn"), + a.appendChild(c, d); + var d = a.createElement("span"); + a.setAttribute(d, "class", "toggle-toc-btn-label"); + var e = a.createComment(""); + a.appendChild(d, e), + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.subexpr + , g = e.concat + , h = e.attribute + , i = e.inline; + d.detectNamespace(c); + var j; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (j = this.build(d), + this.hasRendered ? this.cachedFragment = j : this.hasRendered = !0), + this.cachedFragment && (j = d.cloneNode(this.cachedFragment, !0))) : j = this.build(d); + var k = d.childAt(j, [1]) + , l = d.childAt(k, [1]) + , m = d.createAttrMorph(l, "aria-label") + , n = d.createMorphAt(d.childAt(k, [2]), 0, 0); + return h(b, m, l, "aria-label", g(b, [f(b, a, "loc", ["$TOC_LABEL$"], {})])), + i(b, n, a, "loc", ["$TOC_LABEL$"], {}), + j + } + } + }() + , c = function() { + var a = function() { + var a = function() { + var a = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.inline; + d.detectNamespace(c); + var g; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (g = this.build(d), + this.hasRendered ? this.cachedFragment = g : this.hasRendered = !0), + this.cachedFragment && (g = d.cloneNode(this.cachedFragment, !0))) : g = this.build(d); + var h = d.createMorphAt(g, 0, 0, c); + return d.insertBoundary(g, null), + d.insertBoundary(g, 0), + f(b, h, a, "loc", ["$PREV_TOPIC_BUTTON_LABEL_SHORT$"], {}), + g + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(b, c, d) { + var e = c.dom + , f = c.hooks + , g = f.get + , h = f.block; + e.detectNamespace(d); + var i; + c.useFragmentCache && e.canClone ? (null === this.cachedFragment && (i = this.build(e), + this.hasRendered ? this.cachedFragment = i : this.hasRendered = !0), + this.cachedFragment && (i = e.cloneNode(this.cachedFragment, !0))) : i = this.build(e); + var j = e.createMorphAt(i, 0, 0, d); + return e.insertBoundary(i, null), + e.insertBoundary(i, 0), + h(c, j, b, "link-to", ["topic", g(c, b, "content.prev")], { + classNames: "prev" + }, a, null), + i + } + } + }() + , b = function() { + var a = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.inline; + d.detectNamespace(c); + var g; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (g = this.build(d), + this.hasRendered ? this.cachedFragment = g : this.hasRendered = !0), + this.cachedFragment && (g = d.cloneNode(this.cachedFragment, !0))) : g = this.build(d); + var h = d.createMorphAt(g, 0, 0, c); + return d.insertBoundary(g, null), + d.insertBoundary(g, 0), + f(b, h, a, "loc", ["$NEXT_TOPIC_BUTTON_LABEL_SHORT$"], {}), + g + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(b, c, d) { + var e = c.dom + , f = c.hooks + , g = f.get + , h = f.block; + e.detectNamespace(d); + var i; + c.useFragmentCache && e.canClone ? (null === this.cachedFragment && (i = this.build(e), + this.hasRendered ? this.cachedFragment = i : this.hasRendered = !0), + this.cachedFragment && (i = e.cloneNode(this.cachedFragment, !0))) : i = this.build(e); + var j = e.createMorphAt(i, 0, 0, d); + return e.insertBoundary(i, null), + e.insertBoundary(i, 0), + h(c, j, b, "link-to", ["topic", g(c, b, "content.next")], { + classNames: "next" + }, a, null), + i + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createComment(""); + a.appendChild(b, c); + var c = a.createTextNode("\n "); + a.appendChild(b, c); + var c = a.createComment(""); + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(c, d, e) { + var f = d.dom + , g = d.hooks + , h = g.get + , i = g.block; + f.detectNamespace(e); + var j; + d.useFragmentCache && f.canClone ? (null === this.cachedFragment && (j = this.build(f), + this.hasRendered ? this.cachedFragment = j : this.hasRendered = !0), + this.cachedFragment && (j = f.cloneNode(this.cachedFragment, !0))) : j = this.build(f); + var k = f.createMorphAt(j, 1, 1, e) + , l = f.createMorphAt(j, 3, 3, e); + return i(d, k, c, "if", [h(d, c, "content.prev")], {}, a, null), + i(d, l, c, "if", [h(d, c, "content.next")], {}, b, null), + j + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(b, c, d) { + var e = c.dom + , f = c.hooks + , g = f.get + , h = f.block; + e.detectNamespace(d); + var i; + c.useFragmentCache && e.canClone ? (null === this.cachedFragment && (i = this.build(e), + this.hasRendered ? this.cachedFragment = i : this.hasRendered = !0), + this.cachedFragment && (i = e.cloneNode(this.cachedFragment, !0))) : i = this.build(e); + var j = e.createMorphAt(i, 0, 0, d); + return e.insertBoundary(i, null), + e.insertBoundary(i, 0), + h(c, j, b, "if", [g(c, b, "app.book.show_previous_next")], {}, a, null), + i + } + } + }() + , d = function() { + var a = function() { + var a = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createComment(""); + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.inline; + d.detectNamespace(c); + var g; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (g = this.build(d), + this.hasRendered ? this.cachedFragment = g : this.hasRendered = !0), + this.cachedFragment && (g = d.cloneNode(this.cachedFragment, !0))) : g = this.build(d); + var h = d.createMorphAt(g, 1, 1, c); + return f(b, h, a, "view", ["feedback"], {}), + g + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(b, c, d) { + var e = c.dom + , f = c.hooks + , g = f.get + , h = f.block; + e.detectNamespace(d); + var i; + c.useFragmentCache && e.canClone ? (null === this.cachedFragment && (i = this.build(e), + this.hasRendered ? this.cachedFragment = i : this.hasRendered = !0), + this.cachedFragment && (i = e.cloneNode(this.cachedFragment, !0))) : i = this.build(e); + var j = e.createMorphAt(i, 0, 0, d); + return e.insertBoundary(i, null), + e.insertBoundary(i, 0), + h(c, j, b, "if", [g(c, b, "app.doShowFeedbackForm")], {}, a, null), + i + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(b, c, d) { + var e = c.dom + , f = c.hooks + , g = f.get + , h = f.block; + e.detectNamespace(d); + var i; + c.useFragmentCache && e.canClone ? (null === this.cachedFragment && (i = this.build(e), + this.hasRendered ? this.cachedFragment = i : this.hasRendered = !0), + this.cachedFragment && (i = e.cloneNode(this.cachedFragment, !0))) : i = this.build(e); + var j = e.createMorphAt(i, 0, 0, d); + return e.insertBoundary(i, null), + e.insertBoundary(i, 0), + h(c, j, b, "unless", [g(c, b, "content.isCopyright")], {}, a, null), + i + } + } + }() + , e = function() { + var a = function() { + var a = function() { + var a = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.content; + d.detectNamespace(c); + var g; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (g = this.build(d), + this.hasRendered ? this.cachedFragment = g : this.hasRendered = !0), + this.cachedFragment && (g = d.cloneNode(this.cachedFragment, !0))) : g = this.build(d); + var h = d.createMorphAt(g, 0, 0, c); + return d.insertBoundary(g, null), + d.insertBoundary(g, 0), + f(b, h, a, "app.book.copyright_text"), + g + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(b, c, d) { + var e = c.dom + , f = c.hooks + , g = f.get + , h = f.block; + e.detectNamespace(d); + var i; + c.useFragmentCache && e.canClone ? (null === this.cachedFragment && (i = this.build(e), + this.hasRendered ? this.cachedFragment = i : this.hasRendered = !0), + this.cachedFragment && (i = e.cloneNode(this.cachedFragment, !0))) : i = this.build(e); + var j = e.createMorphAt(i, 0, 0, d); + return e.insertBoundary(i, null), + e.insertBoundary(i, 0), + h(c, j, b, "link-to", ["topic", g(c, b, "app.book.copyright")], {}, a, null), + i + } + } + }() + , b = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.content; + d.detectNamespace(c); + var g; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (g = this.build(d), + this.hasRendered ? this.cachedFragment = g : this.hasRendered = !0), + this.cachedFragment && (g = d.cloneNode(this.cachedFragment, !0))) : g = this.build(d); + var h = d.createMorphAt(g, 0, 0, c); + return d.insertBoundary(g, null), + d.insertBoundary(g, 0), + f(b, h, a, "app.book.copyright_text"), + g + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(c, d, e) { + var f = d.dom + , g = d.hooks + , h = g.get + , i = g.block; + f.detectNamespace(e); + var j; + d.useFragmentCache && f.canClone ? (null === this.cachedFragment && (j = this.build(f), + this.hasRendered ? this.cachedFragment = j : this.hasRendered = !0), + this.cachedFragment && (j = f.cloneNode(this.cachedFragment, !0))) : j = this.build(f); + var k = f.createMorphAt(j, 0, 0, e); + return f.insertBoundary(j, null), + f.insertBoundary(j, 0), + i(d, k, c, "if", [h(d, c, "app.book.copyright")], {}, a, b), + j + } + } + }() + , b = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.content; + d.detectNamespace(c); + var g; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (g = this.build(d), + this.hasRendered ? this.cachedFragment = g : this.hasRendered = !0), + this.cachedFragment && (g = d.cloneNode(this.cachedFragment, !0))) : g = this.build(d); + var h = d.createMorphAt(g, 0, 0, c); + return d.insertBoundary(g, null), + d.insertBoundary(g, 0), + f(b, h, a, "app.book.copyright_text"), + g + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createElement("div"); + a.setAttribute(c, "class", "copyright-text"); + var d = a.createComment(""); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(c, d, e) { + var f = d.dom + , g = d.hooks + , h = g.get + , i = g.block; + f.detectNamespace(e); + var j; + d.useFragmentCache && f.canClone ? (null === this.cachedFragment && (j = this.build(f), + this.hasRendered ? this.cachedFragment = j : this.hasRendered = !0), + this.cachedFragment && (j = f.cloneNode(this.cachedFragment, !0))) : j = this.build(f); + var k = f.createMorphAt(f.childAt(j, [1]), 0, 0); + return i(d, k, c, "if", [h(d, c, "content.isLanding")], {}, a, b), + j + } + } + }() + , f = function() { + var a = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createElement("div"); + a.setAttribute(c, "class", "language"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("div"); + a.setAttribute(d, "class", "cur-lang"); + var e = a.createElement("span"); + a.setAttribute(e, "class", "lang-icon"), + a.appendChild(d, e); + var e = a.createTextNode(" "); + a.appendChild(d, e); + var e = a.createComment(""); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.content; + d.detectNamespace(c); + var g; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (g = this.build(d), + this.hasRendered ? this.cachedFragment = g : this.hasRendered = !0), + this.cachedFragment && (g = d.cloneNode(this.cachedFragment, !0))) : g = this.build(d); + var h = d.createMorphAt(d.childAt(g, [1, 1]), 2, 2); + return f(b, h, a, "app.bundle.currentLocale.name"), + g + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(b, c, d) { + var e = c.dom + , f = c.hooks + , g = f.get + , h = f.block; + e.detectNamespace(d); + var i; + c.useFragmentCache && e.canClone ? (null === this.cachedFragment && (i = this.build(e), + this.hasRendered ? this.cachedFragment = i : this.hasRendered = !0), + this.cachedFragment && (i = e.cloneNode(this.cachedFragment, !0))) : i = this.build(e); + var j = e.createMorphAt(i, 0, 0, d); + return e.insertBoundary(i, null), + e.insertBoundary(i, 0), + h(c, j, b, "if", [g(c, b, "app.bundle.hasMultipleLocales")], {}, a, null), + i + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createElement("article"); + a.setAttribute(c, "class", "instapaper_ignore"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("div"); + a.setAttribute(d, "class", "topic-container"); + var e = a.createTextNode("\n "); + a.appendChild(d, e); + var e = a.createElement("div") + , f = a.createTextNode("\n"); + a.appendChild(e, f); + var f = a.createComment(""); + a.appendChild(e, f); + var f = a.createTextNode("\n "); + a.appendChild(e, f); + var f = a.createComment(""); + a.appendChild(e, f); + var f = a.createTextNode("\n\n"); + a.appendChild(e, f); + var f = a.createComment(""); + a.appendChild(e, f); + var f = a.createTextNode("\n"); + a.appendChild(e, f); + var f = a.createComment(""); + a.appendChild(e, f); + var f = a.createTextNode("\n"); + a.appendChild(e, f); + var f = a.createComment(""); + a.appendChild(e, f); + var f = a.createTextNode("\n"); + a.appendChild(e, f); + var f = a.createComment(""); + a.appendChild(e, f); + var f = a.createTextNode("\n"); + a.appendChild(e, f); + var f = a.createComment(""); + a.appendChild(e, f); + var f = a.createTextNode(" "); + a.appendChild(e, f), + a.appendChild(d, e); + var e = a.createTextNode("\n "); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n"); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(g, h, i) { + var j = h.dom + , k = h.hooks + , l = k.get + , m = k.concat + , n = k.attribute + , o = k.block + , p = k.content; + j.detectNamespace(i); + var q; + h.useFragmentCache && j.canClone ? (null === this.cachedFragment && (q = this.build(j), + this.hasRendered ? this.cachedFragment = q : this.hasRendered = !0), + this.cachedFragment && (q = j.cloneNode(this.cachedFragment, !0))) : q = this.build(j); + var r = j.childAt(q, [0, 1, 1]) + , s = j.createMorphAt(r, 1, 1) + , t = j.createMorphAt(r, 3, 3) + , u = j.createMorphAt(r, 5, 5) + , v = j.createMorphAt(r, 7, 7) + , w = j.createMorphAt(r, 9, 9) + , x = j.createMorphAt(r, 11, 11) + , y = j.createMorphAt(r, 13, 13) + , z = j.createAttrMorph(r, "class"); + return n(h, z, r, "class", m(h, ["topic-page ", l(h, g, "view.categories")])), + o(h, s, g, "unless", [l(h, g, "content.isLanding")], {}, a, null), + p(h, t, g, "yield"), + o(h, u, g, "if", [l(h, g, "content.isLanding")], {}, b, null), + o(h, v, g, "unless", [l(h, g, "content.isLanding")], {}, c, null), + o(h, w, g, "unless", [l(h, g, "content.isError")], {}, d, null), + o(h, x, g, "unless", [l(h, g, "content.isCopyright")], {}, e, null), + o(h, y, g, "unless", [l(h, g, "app.isInHelpViewer")], {}, f, null), + q + } + } + }()) +}), +define("shared/mixin/space-click", [], function() { + return Em.Mixin.create({ + keyDown: function(a) { + 32 === a.keyCode && $(a.target).click(), + this._super(a) + } + }) +}), +define("topic/view", ["shared/topic/view", "precompiled/topic/layout", "shared/browser", "shared/computed", "shared/mixin/space-click"], function(a, b, c, d, e) { + return a.extend(e, { + layout: b, + tagName: "section", + ariaRole: "main", + classNameBindings: ["controller.app.isTOCVisible:toc-visible"], + attributeBindings: ["ariaHidden:aria-hidden"], + ariaHidden: d.truthString("controller.app.isTopicConcealed"), + TYPE_TASK: "task", + TYPE_PP: "pp", + STRING_PAUSE: "Pause video", + STRING_PLAY: "Play video", + STRING_REPLAY: "Replay video", + categories: function() { + return this.get("content.categories").join(" ") + } + .property("content"), + click: function(a) { + var b = $(a.target) + , c = this.get("controller.app") + , d = !1; + (b.is(".toc-toggle a") || b.is(".landing-toc-btn")) && (c.manuallyToggleTOC(), + c.get("trackingController").toggleTOC("event31"), + d = !0); + var e; + if (b.is(".task-arrow, .Task > .Name") && (e = b.parents(".Task")), + e && !e.hasClass("SoloTask")) { + var f; + a.altKey && (f = "false" === e.find(".Name").attr("aria-expanded"), + e = $(".AppleTopic div.Task")); + var g = this; + e.each(function() { + g.toggleDisclosableElement(g.TYPE_TASK, $(this), !0, f) + }) + } + var h; + b.is(".toggle-feature-btn") ? h = b.parents(".Feature") : b.parent().is(".Feature[aria-expanded=false]") ? h = b.parent() : b.is(".Feature[aria-expanded=false]") && (h = b), + h && this.toggleDisclosableElement(this.TYPE_PP, h, !0), + b.is(".next, .prev") && c.get("trackingController").nextPrev("ui"), + b.is(".video-container .thumbnail") && (this.handleVideoPlayerEvents(b.parent().find("video")[0]), + d = !0), + d || this._super(a) + }, + touchMove: function() { + var a = this.get("controller.app"); + a.get("isTOCVisible") && a.hidePanels() + }, + aside: function() { + return this.get("controller.app.aside") + } + .property(), + localePicker: function() { + return this.get("controller.app.localePicker") + } + .property(), + showAside: function(a) { + this.get("controller.app.aside").showTopic(a) + }, + hideAside: function() { + this.get("controller.app.aside").dismiss() + } + .observes("content"), + showLocalePicker: function() { + this.get("controller.app.localePicker").show() + }, + toggleDisclosableElement: function(a, b, c, d) { + var e = a === this.TYPE_TASK ? this.$().find(".Task > .Name") : this.$().find(".Feature > .Name") + , f = b.find(".Name") + , g = a === this.TYPE_TASK ? b.find(".TaskBody") : b.find(".FeatureBody") + , h = void 0 !== d ? !d : "true" === f.attr("aria-expanded"); + h || g.css("display", "block"); + var i = g[0].scrollHeight + , j = i * (a === this.TYPE_TASK ? .75 : .375); + g.css("max-height", i); + var k = function() { + c && (g.css("transition", "max-height " + j + "ms ease-in-out, opacity 200ms " + j / 2 + "ms ease-in-out"), + g.addClass("animating")), + g.attr("aria-hidden", h), + f.attr("aria-expanded", !h), + a === this.TYPE_PP && b.attr("aria-expanded", !h) + } + .bind(this); + c ? requestAnimationFrame(k) : k(), + setTimeout(function() { + g.removeClass("animating"), + g.css("max-height", "unset"), + h && g.css("display", "none") + }, j); + var l = b.attr("id") + "-is-expanded"; + if (h) + try { + window.sessionStorage.removeItem(l) + } catch (m) {} + else { + window.sessionStorage.setItem(l, "true"); + var n = this.get("controller.app"); + n.get("trackingController").expansion(b.attr("id"), n.get("currentTopic"), f.text(), e.index(f), a === this.TYPE_TASK ? "event17" : "event16") + } + }, + restoreTaskState: function() { + var a = this.$().find(".Task > .Name").parent(".Task") + , b = this; + a.length > 1 && a.each(function() { + var a = $(this) + , c = !1; + try { + c = "true" === window.sessionStorage.getItem(a.attr("id") + "-is-expanded") + } catch (d) {} + b.toggleDisclosableElement(b.TYPE_TASK, a, !1, c) + }) + }, + restoreFeatureState: function() { + var a = this.$(".Feature") + , b = this; + a.length > 1 && a.each(function() { + var a = $(this) + , c = !1; + try { + c = "true" === window.sessionStorage.getItem(a.attr("id") + "-is-expanded") + } catch (d) {} + b.toggleDisclosableElement(b.TYPE_PP, a, !1, c) + }) + }, + handleVideoPlayerEvents: function(a, b) { + var c = $(a).parent() + , d = c.find("button .thumbnail-button"); + a && (b ? (d.text(this.STRING_REPLAY), + c.attr("data-state", "ended")) : a.paused ? (a.play(), + d.text(this.STRING_PAUSE), + c.attr("data-state", "playing")) : (a.pause(), + d.text(this.STRING_PLAY), + c.attr("data-state", "paused"))) + }, + didInsertElement: function() { + this._super(); + var a = this.get("controller.app"); + a.get("book.isSingleTopicBook") && this.$(".landing").removeClass("landing"); + var b = Math.floor(569 * .8) + , d = parseInt(this.$(".landing img").width(), 10); + this.$(".AppleTopic.landing figure").css("min-width", "%@px".fmt(Math.min(b, d))), + this.updateDocumentTitle(), + this.restoreTaskState(), + this.restoreFeatureState(), + this.$() && this.$().find("h1").focus(), + c.isTablet && this.set("scrollFix", new ScrollFix(this.get("element"))), + this.$(".PassionPoints .Feature a[href].xRef").one("click", function(b) { + var c = $(b.target); + a.get("trackingController").trackPassionPointClick(a.get("currentTopic"), c.text(), c.attr("href").split("#/")[1]) + }), + this.$(".landing-toc-btn").detach().insertAfter(".PassionPoints .Hero"), + this.$("video").attr("controls", !1); + var e = this; + this.$("video").bind("ended", function(a) { + e.handleVideoPlayerEvents(a.target, !0) + }) + }, + willDestroyElement: function() { + this._super(); + var a = this.get("scrollFix"); + a && a.destroy(), + this.$(".PassionPoints .Feature a[href].xRef").off() + } + }) +}), +define("precompiled/component/modal", [], function() { + return Ember.HTMLBars.template(function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createElement("div"); + a.setAttribute(c, "class", "modal-header"); + var d = a.createElement("h2") + , e = a.createComment(""); + a.appendChild(d, e), + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + a.appendChild(b, c); + var c = a.createElement("div"); + a.setAttribute(c, "class", "modal-content scroll"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("button"); + a.setAttribute(d, "name", "close"); + var e = a.createComment(""); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createComment(""); + a.appendChild(c, d); + var d = a.createTextNode("\n"); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + a.appendChild(b, c); + var c = a.createElement("div"); + a.setAttribute(c, "class", "modal-footer"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("button"); + a.setAttribute(d, "name", "close"); + var e = a.createComment(""); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n"); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.content + , g = e.inline; + d.detectNamespace(c); + var h; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (h = this.build(d), + this.hasRendered ? this.cachedFragment = h : this.hasRendered = !0), + this.cachedFragment && (h = d.cloneNode(this.cachedFragment, !0))) : h = this.build(d); + var i = d.childAt(h, [2]) + , j = d.createMorphAt(d.childAt(h, [0, 0]), 0, 0) + , k = d.createMorphAt(d.childAt(i, [1]), 0, 0) + , l = d.createMorphAt(i, 3, 3) + , m = d.createMorphAt(d.childAt(h, [4, 1]), 0, 0); + return f(b, j, a, "view.headerLabel"), + g(b, k, a, "loc", ["$MODAL_CLOSE_BUTTON$"], {}), + f(b, l, a, "yield"), + g(b, m, a, "loc", ["$MODAL_CLOSE_BUTTON$"], {}), + h + } + } + }()) +}), +define("component/modal", ["precompiled/component/modal", "shared/computed"], function(a, b) { + return Em.Mixin.create({ + layout: a, + tagName: "div", + classNames: ["modal"], + ariaRole: "dialog", + isVisible: !1, + ariaHidden: b.invertedTruthString("isVisible"), + attributeBindings: ["ariaHidden:aria-hidden"], + headerLabel: null, + $previousFocus: null, + click: function(a) { + var b = $(a.target); + (this.$().is(a.target) || b.is("[name=close]")) && this.dismiss(), + this._super(a) + }, + show: function() { + this.$().toggleClass("has-modal-header", !Em.isEmpty(this.get("headerLabel"))), + this.set("$previousFocus", $(":focus")), + this.set("isVisible", !0), + $("html").addClass("modal-view") + }, + dismiss: function() { + var a = this.$(); + a && this.get("isVisible") && (a.addClass("dismiss"), + Em.run.later(this, function() { + this.set("isVisible", !1), + this.get("$previousFocus") && this.get("$previousFocus").focus(), + this.set("$previousFocus", null), + a.removeClass("dismiss"), + $("html").removeClass("modal-view") + }, 250)) + }, + touchEnabled: function() { + return !!("ontouchstart"in window) + } + .property() + }) +}), +define("precompiled/aside/layout", [], function() { + return Ember.HTMLBars.template(function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createElement("div"); + a.setAttribute(c, "class", "hv-close-btn"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("button"); + a.setAttribute(d, "name", "close"); + var e = a.createComment(""); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n"); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + a.appendChild(b, c); + var c = a.createElement("div"); + a.setAttribute(c, "class", "modal-content scroll"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createComment(""); + a.appendChild(c, d); + var d = a.createTextNode("\n"); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + a.appendChild(b, c); + var c = a.createElement("div"); + a.setAttribute(c, "class", "modal-footer"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("button"); + a.setAttribute(d, "name", "close"); + var e = a.createComment(""); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n"); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.inline + , g = e.content; + d.detectNamespace(c); + var h; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (h = this.build(d), + this.hasRendered ? this.cachedFragment = h : this.hasRendered = !0), + this.cachedFragment && (h = d.cloneNode(this.cachedFragment, !0))) : h = this.build(d); + var i = d.createMorphAt(d.childAt(h, [0, 1]), 0, 0) + , j = d.createMorphAt(d.childAt(h, [2]), 1, 1) + , k = d.createMorphAt(d.childAt(h, [4, 1]), 0, 0); + return f(b, i, a, "loc", ["$MODAL_CLOSE_BUTTON$"], {}), + g(b, j, a, "yield"), + f(b, k, a, "loc", ["$MODAL_CLOSE_BUTTON$"], {}), + h + } + } + }()) +}), +define("aside/view", ["topic/view", "component/modal", "precompiled/aside/layout", "shared/base/controller", "shared/browser"], function(a, b, c, d, e) { + return a.extend(b, { + tagName: "aside", + classNameBindings: ["controller.app.isTOCVisible:toc-visible"], + attributeBindings: ["controller.model.id:aria-labelledby"], + layout: c, + didInsertElement: function() { + this._super(), + e.get("isMobile") && this.set("scrollFix", new ScrollFix(this.$(".modal-content")[0])) + }, + willDestroyElement: function() { + e.get("isMobile") && this.get("scrollFix").destroy() + }, + dismiss: function() { + this.set("controller.content", null), + this._super() + }, + showTopic: function(a) { + var b = this; + a.fetchTopicHTML()["finally"](function() { + b.set("template", Em.Handlebars.compile(a.template)), + b.set("content", a), + b.rerender(), + b.show(), + b.get("controller.app.trackingController").topicLoaded(a) + }) + }, + updateDocumentTitle: function() { + return !1 + } + }) +}), +define("precompiled/locale/select-view", [], function() { + return Ember.HTMLBars.template(function() { + var a = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createElement("li"); + a.setAttribute(c, "role", "link"); + var d = a.createComment(""); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.get + , g = e.concat + , h = e.attribute + , i = e.content; + d.detectNamespace(c); + var j; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (j = this.build(d), + this.hasRendered ? this.cachedFragment = j : this.hasRendered = !0), + this.cachedFragment && (j = d.cloneNode(this.cachedFragment, !0))) : j = this.build(d); + var k = d.childAt(j, [1]) + , l = d.createMorphAt(k, 0, 0) + , m = d.createAttrMorph(k, "data-value"); + return h(b, m, k, "data-value", g(b, [f(b, a, "locale.isoCode")])), + i(b, l, a, "locale.name"), + j + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createElement("ul"); + a.setAttribute(c, "role", "group"); + var d = a.createTextNode("\n"); + a.appendChild(c, d); + var d = a.createComment(""); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(b, c, d) { + var e = c.dom + , f = c.hooks + , g = f.get + , h = f.block; + e.detectNamespace(d); + var i; + c.useFragmentCache && e.canClone ? (null === this.cachedFragment && (i = this.build(e), + this.hasRendered ? this.cachedFragment = i : this.hasRendered = !0), + this.cachedFragment && (i = e.cloneNode(this.cachedFragment, !0))) : i = this.build(e); + var j = e.createMorphAt(e.childAt(i, [0]), 1, 1); + return h(c, j, b, "each", [g(c, b, "view.locales")], { + keyword: "locale" + }, a, null), + i + } + } + }()) +}), +define("locale/select-view", ["component/modal", "precompiled/locale/select-view", "shared/computed"], function(a, b, c) { + return Em.View.extend(a, { + template: b, + classNames: ["language-picker"], + headerLabel: c.loc("$LANGUAGE_MENU_LABEL$"), + locales: function() { + return this.get("app.bundle.locales") + } + .property("app.bundle"), + click: function(a) { + this._super(a); + var b = $(a.target) + , c = b.attr("data-value"); + c && (location.search = "lang=%@".fmt(c), + this.dismiss()) + } + }) +}), +define("search/term-match-model", [], function() { + return Em.Object.extend({ + topic: null, + weight: null + }) +}), +define("search/weighted-topic-model", ["require", "exports", "module"], function(a, b) { + return Em.Object.extend({ + topic: null, + weight: null, + addMatch: function(a) { + this.weight += a.weight + } + }) +}), +define("search/result-model", ["search/weighted-topic-model"], function(a) { + return Em.Object.extend({ + query: "", + matches: [], + sortedTopics: function() { + var b, c, d = {}; + return this.get("matches").forEach(function(b) { + var c = b.topic.get("id") + , e = d[c]; + e ? e.addMatch(b) : d[c] = a.create({ + topic: b.topic, + weight: b.weight + }) + }, this), + b = $.map(d, function(a, b) { + return a + }), + c = b.sort(function(a, b) { + return b.weight - a.weight + }), + $.map(c, function(a) { + return a.topic + }) + } + .property("matches") + }) +}); +var idKey = "$" + , childrenKey = "_"; +define("search/index-model", ["search/term-match-model", "search/result-model"], function(a, b) { + function c(a) { + return a && a.length > 0 + } + var d = function(b) { + if (!b.matches || b.matches.length < 1) { + b.matches = []; + var c = b[idKey]; + for (var d in c) + b.matches.push(a.create({ + topic: this.get("app.book").modelForID(d), + weight: c[d] + })); + delete b[idKey] + } + return b.matches + } + , e = function(a, b) { + return (b || []).concat(d.call(this, a)) + } + , f = function(a, b, c) { + if (c && !(0 >= a)) { + var d = f.bind(this, a - 1, b) + , e = c[childrenKey] || []; + return b.call(this, c, $.map(e, d)) + } + } + , g = {} + , h = /[\u0901-\u0903\u093c\u093e-\u0949\u094a-\u094d\u0951-\u0954\u0962\u0963]+/ + , i = Em.Object.extend({ + searchTree: {}, + minimumTermLength: 3, + searchDepthLimit: 8, + noWordBoundaries: !1, + shouldIgnoreString: function(a) { + return a && !!a.match(h) + }, + nodesForQuery: function(a) { + function b() { + var a = f.get("searchTree." + childrenKey); + return a ? a[e] : void 0 + } + var c = a.length - 1 + , d = a.substring(0, c) + , e = a.substring(c) + , f = this; + if (0 >= c) + return [b()]; + var h = [].concat(f.nodesForQuery(d)) + , i = h[h.length - 1]; + return i && i[childrenKey] && i[childrenKey][e] ? h[h.length - 1] = i[childrenKey][e] : f.noWordBoundaries ? h.push(b()) : "." === e ? h.push(f.get("searchTree")) : f.shouldIgnoreString(e) || (h[h.length - 1] = g), + h + }, + resultForQuery: function(a) { + var d = a.toLocaleLowerCase().split(/\s+/).filter(c) + , g = $.map(d, this.nodesForQuery.bind(this)) + , h = f.bind(this, this.searchDepthLimit, e) + , i = $.map(g, h); + return b.create({ + query: a, + matches: i + }) + } + }); + return i +}), +define("app/controller", ["shared/app/controller", "book", "aside/view", "locale/select-view", "search/index-model", "shared/browser", "shared/base/controller"], function(a, b, c, d, e, f, g) { + return a.extend({ + NAME: "eagle", + Book: b, + isTOCVisible: !1, + disablePersistentTOC: !1, + isSearchVisible: !1, + queryParams: ["sub"], + sub: null, + windowSize: Em.Object.create({ + height: $(window).height(), + width: $(window).width() + }), + updateWindowSize: function() { + this.set("windowSize", Em.Object.create({ + height: $(window).height(), + width: $(window).width() + })) + }, + isFullWidthPanels: function() { + return !f.isInModernHelpViewer && this.get("windowSize.width") < 568 + } + .property("windowSize"), + isPersistentTOC: function() { + return !f.isInModernHelpViewer && this.get("windowSize.width") >= 875 && !this.get("disablePersistentTOC") + } + .property("windowSize"), + updateTOCVisibility: function() { + this.set("isTOCVisible", this.get("isPersistentTOC")) + } + .observes("isPersistentTOC"), + isTopicConcealed: function() { + var a = this.get("isFullWidthPanels") && this.get("isTOCVisible") + , b = this.get("isFullWidthPanels") && this.get("isSearchVisible"); + return a || b || this.get("aside.isVisible") || this.get("localePicker.isVisible") + } + .property("isFullWidthPanels", "isTOCVisible", "isSearchVisible", "aside.isVisible", "localePicker.isVisible"), + isInHelpViewer: f.isInHelpViewer, + isInOlderHelpViewer: f.isInOldHelpViewer, + isInModernHelpViewer: f.isInModernHelpViewer, + doShowMoreHelpLink: function() { + var a = f.isInModernHelpViewer && "machelp" !== this.get("book.product"); + return $("body").toggleClass("show-more-help-link", a), + a + } + .property("book.product"), + doShowAlternateTOCButton: function() { + return this.get("isInOlderHelpViewer") && !this.get("isTOCDisabled") + } + .property("isTOCDisabled"), + isOnLine: navigator.onLine, + doShowFeedbackForm: function() { + return this.get("book.collect_feedback") && this.get("isOnLine") + } + .property("book.collect_feedback", "isOnLine"), + isHeaderDisabled: f.isInHelpViewer, + isTOCDisabled: function() { + return this.get("book.isSingleTopicBook") + } + .property("book.isSingleTopicBook"), + isSearchDisabled: function() { + return f.isInHelpViewer || this.get("book.isSingleTopicBook") || !this.get("searchIndex") + } + .property("book.isSingleTopicBook", "searchIndex"), + isOnPassionPointsPage: function() { + return this.get("currentTopic.isPassionPoints") + } + .property("currentTopic", "book"), + updateSingleTopicBookClassNameOnBody: function() { + this.get("book.isSingleTopicBook") && $("body").addClass("single-page-book") + } + .observes("book").on("init"), + updateHelpViewerTOCButton: function() { + if (f.isInModernHelpViewer) + if (this.get("book.isSingleTopicBook")) + HelpViewer.showTOCButton(!1), + this.set("isTOCVisible", !1); + else { + HelpViewer.showTOCButton(!0, function() { + this.helpViewerTOCButtonCallback() + } + .bind(this), function() { + this.helpViewerTOCButtonCallback() + } + .bind(this)); + try { + var a = window.sessionStorage.getItem("toc"); + "true" === a && this.set("isTOCVisible", !0) + } catch (b) {} + } + } + .observes("book").on("init"), + showTOCOnLandingPage: function() { + !this.get("isOnLandingPage") || this.get("isOnPassionPointsPage") || this.get("isTOCVisible") || this.get("isTOCDisabled") || f.get("isMobile") || f.isInModernHelpViewer || Em.run.later(this, function() { + this.get("isTOCVisible") || this.get("isSearchVisible") || this.toggleTOC() + }, 1250) + } + .observes("isOnLandingPage"), + aside: function() { + return c.create({ + controller: g.create({ + container: App.__container__ + }) + }) + } + .property(), + localePicker: function() { + return d.create({ + app: this + }) + } + .property(), + hidePanels: function() { + this._super(), + f.isInModernHelpViewer || (!this.get("isPersistentTOC") && this.get("isTOCVisible") && this.toggleTOC(), + this.set("isSearchVisible", !1)) + }, + manuallyToggleTOC: function() { + this.toggleTOC(), + this.set("disablePersistentTOC", !this.get("isTOCVisible")) + }, + toggleTOC: function() { + if (!this.get("book.isSingleTopicBook")) { + $("html").addClass("toc-animating"); + var a = this.toggleProperty("isTOCVisible"); + if (Em.run.later(function() { + $("html").removeClass("toc-animating") + }, 300), + f.isInModernHelpViewer) { + try { + window.sessionStorage.setItem("toc", a) + } catch (b) {} + var c = 390 + , d = c + 190; + document.width <= d && ("resizeTo"in HelpViewer ? HelpViewer.resizeTo(a ? d : c, 0, .3, "easeInEaseOut") : window.resizeTo(a ? d : c)) + } + } + }, + helpViewerTOCButtonCallback: function() { + this.toggleTOC(), + this.get("aside").dismiss() + }, + toggleSearch: function() { + this.toggleProperty("isSearchVisible") + }, + searchVisibleChanged: function() { + this.get("isSearchVisible") ? (this.get("isPersistentTOC") || this.set("isTOCVisible", !1), + this.focusSearch(), + this.animateTransitionClass("#header-content", "searchshow")) : (this.blurSearch(), + this.animateTransitionClass("#header-content", "searchhide"), + this.clearSearch()) + } + .observes("isSearchVisible"), + animateTransitionClass: function(a, b, c) { + c = c || 1e3, + Ember.run.later(this, function() { + $(a).addClass(b) + }, 0), + Ember.run.later(this, function() { + $(a + "." + b).removeClass(b) + }, c) + }, + panelObserver: function() { + this.get("$html").toggleClass("panel-visible", this.get("isTOCVisible") && !this.get("isPersistentTOC") || this.get("isSearchVisible")) + } + .observes("isTOCVisible", "isSearchVisible", "isPersistentTOC"), + scrollToSubtopic: function() { + var a = "?sub="; + if (window.location.hash.indexOf(a) >= 0) { + var b = window.location.hash.split(a)[1]; + b && this.scrollToEl(b) + } + }, + scrollToEl: function(a) { + var b = $("#" + a); + if (b && b.get(0) && ("msie" === f.get("name") ? b.scrollintoview() : b.get(0).scrollIntoView(), + b.hasClass("Task"))) { + var c = b.children().first(); + c && "false" === c.attr("aria-expanded") && Em.run.next(function() { + b.children().first().trigger("click") + }) + } + }, + searchIndex: null, + searchString: "", + searchResult: null, + loadSearchIndex: function() { + if (!this.get("isInHelpViewer")) { + var a = this; + $.ajax({ + url: a.get("bundle.path") + a.get("SEARCH_FILE"), + dataType: "json", + success: function(b) { + Em.run.later(function() { + a.set("searchIndex", e.create({ + noWordBoundaries: a.get("bundle.currentLocale.noWordBoundaries"), + searchTree: b, + app: a, + searchDepthLimit: a.get("bundle.currentLocale.searchDepthLimit") || 5 + })) + }, 100) + } + }) + } + } + .observes("book"), + performSearch: function() { + if (this.get("searchIndex")) { + var a, b; + a = this.get("searchString"), + prevSearch = this.get("searchResult.query"), + a !== prevSearch && (a && a.length > 1 && (b = this.get("searchIndex").resultForQuery(a), + this.get("trackingController").performSearch(b)), + this.set("searchResult", b)) + } + }, + debounceSearch: function() { + Em.run.debounce(this, "performSearch", 500) + } + .observes("searchString"), + commitSearch: function() { + var a = this.get("app") || this; + a.debounceSearch(), + a.blurSearch() + }, + clearSearch: function() { + this.set("searchResult", null), + this.set("searchString", "") + }, + resetSearch: function() { + this.clearSearch(), + this.focusSearch() + }, + focusSearch: function() { + Ember.run.later(this, function() { + $(".searchform input").focus() + }, 0) + }, + blurSearch: function() { + $(".searchform input").blur() + }, + moreHelpLabel: function() { + return "$TOC_MORE_HELP$".loc('') + } + .property(), + useFKAStyles: !1, + updateFKAClassname: function() { + $("html").toggleClass("fka-styles", this.get("useFKAStyles")) + } + .observes("useFKAStyles"), + init: function() { + this._super(); + var a = this; + $(window).on("orientationchange", function() { + a.blurSearch(), + a.hidePanels(), + a.get("aside").dismiss() + }), + f.isInHelpViewer || f.get("isMobile") || $(window).on("resize", function() { + a.updateWindowSize() + }), + $(window).on("online", function() { + a.set("isOnLine", !0) + }), + $(window).on("offline", function() { + a.set("isOnLine", !1) + }), + $(document).keydown(function(b) { + if (!$(b.target).is("input, textarea")) { + var c = "rtl" === a.get("bundle.currentLocale.text-direction") + , d = a.get("currentTopic.prev") + , e = a.get("currentTopic.next") + , f = 27 + , g = 36 + , h = 9 + , i = c ? 39 : 37 + , j = c ? 37 : 39 + , k = a.get("aside") + , l = a.get("localePicker") + , m = k.get(".isVisible") || l.get("isVisible"); + switch ((b.metaKey || b.ctrlKey) && (m = !0), + b.keyCode || b.which) { + case f: + a.hidePanels(), + k.dismiss(), + l.dismiss(); + break; + case g: + break; + case i: + d && !m && (a.transitionToRoute("topic", d.get("routeSlug")), + a.get("trackingController").nextPrev("key")); + break; + case j: + e && !m && (a.transitionToRoute("topic", e.get("routeSlug")), + a.get("trackingController").nextPrev("key")); + break; + case h: + a.set("useFKAStyles", !0) + } + } + }), + f.isInModernHelpViewer || this.updateTOCVisibility(); + var b = this.get("$body"); + b.addClass("loaded-timer"), + Em.run.later(this, function() { + b.removeClass("loaded-timer") + }, 500) + }, + doShowDebugPane: function() { + var a = this.get("ENVIRONMENT"); + return "development" === a || "review" === a + } + .property(), + currentUrl: function() { + return escape(window.location.href) + } + .property("currentTopic"), + currentBrowser: function() { + return f.get("all") + } + .property(), + actions: { + toggleTOC: function() { + this.toggleTOC() + }, + hideClientEnv: function() { + this.get("$body").find(".client-env").hide() + } + } + }) +}), +define("precompiled/app/template", [], function() { + return Ember.HTMLBars.template(function() { + var a = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createElement("ul"); + a.setAttribute(c, "class", "client-env"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("li") + , e = a.createElement("b") + , f = a.createTextNode("Client:"); + a.appendChild(e, f), + a.appendChild(d, e); + var e = a.createTextNode(" "); + a.appendChild(d, e); + var e = a.createElement("a") + , f = a.createTextNode("eagle "); + a.appendChild(e, f); + var f = a.createComment(""); + a.appendChild(e, f), + a.appendChild(d, e); + var e = a.createTextNode(" ("); + a.appendChild(d, e); + var e = a.createComment(""); + a.appendChild(d, e); + var e = a.createTextNode(")"); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("li") + , e = a.createElement("b") + , f = a.createTextNode("Build:"); + a.appendChild(e, f), + a.appendChild(d, e); + var e = a.createTextNode(" "); + a.appendChild(d, e); + var e = a.createElement("a") + , f = a.createComment(""); + a.appendChild(e, f), + a.appendChild(d, e); + var e = a.createTextNode(" ("); + a.appendChild(d, e); + var e = a.createComment(""); + a.appendChild(d, e); + var e = a.createTextNode(")"); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("li") + , e = a.createElement("b") + , f = a.createTextNode("Build code:"); + a.appendChild(e, f), + a.appendChild(d, e); + var e = a.createTextNode(" "); + a.appendChild(d, e); + var e = a.createElement("a") + , f = a.createComment(""); + a.appendChild(e, f), + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("li") + , e = a.createElement("button"); + a.setAttribute(e, "title", "Hide "); + var f = a.createTextNode("x"); + a.appendChild(e, f), + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.get + , g = e.concat + , h = e.attribute + , i = e.content + , j = e.element; + d.detectNamespace(c); + var k; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (k = this.build(d), + this.hasRendered ? this.cachedFragment = k : this.hasRendered = !0), + this.cachedFragment && (k = d.cloneNode(this.cachedFragment, !0))) : k = this.build(d); + var l = d.childAt(k, [1]) + , m = d.childAt(l, [1]) + , n = d.childAt(m, [2]) + , o = d.childAt(l, [3]) + , p = d.childAt(o, [2]) + , q = d.childAt(l, [5, 2]) + , r = d.childAt(l, [7, 0]) + , s = d.createMorphAt(n, 1, 1) + , t = d.createAttrMorph(n, "href") + , u = d.createMorphAt(m, 4, 4) + , v = d.createMorphAt(p, 0, 0) + , w = d.createAttrMorph(p, "href") + , x = d.createMorphAt(o, 4, 4) + , y = d.createMorphAt(q, 0, 0) + , z = d.createAttrMorph(q, "href"); + return h(b, t, n, "href", g(b, ["rdar://new/problem/component=APD:Eng:Eagle&version=All&description=URL:%20", f(b, a, "currentUrl"), "%0ALocale:%20", f(b, a, "book.locale"), "%0AEagle version:%20", f(b, a, "APP_VERSION"), "%0ABuild%20code:%20", f(b, a, "book.framework"), "%0ABuild%20id:%20", f(b, a, "book.build_id"), "%0ABrowser:%20", f(b, a, "currentBrowser")])), + i(b, s, a, "APP_VERSION"), + i(b, u, a, "ENVIRONMENT"), + h(b, w, p, "href", g(b, ["apdbuild://sba_build/search/", f(b, a, "book.build_id")])), + i(b, v, a, "book.build_id"), + i(b, x, a, "book.build_date"), + h(b, z, q, "href", g(b, ["rdar://new/problem/component=APD:Eng:Duck&version=All&description=URL:%20", f(b, a, "currentUrl"), "%0ALocale:%20", f(b, a, "book.locale"), "%0AEagle version:%20", f(b, a, "APP_VERSION"), "%0ABuild%20code:%20", f(b, a, "book.framework"), "%0ABuild%20id:%20", f(b, a, "book.build_id")])), + i(b, y, a, "book.framework"), + j(b, r, a, "action", ["hideClientEnv"], {}), + k + } + } + }() + , b = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createComment(""); + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.inline; + d.detectNamespace(c); + var g; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (g = this.build(d), + this.hasRendered ? this.cachedFragment = g : this.hasRendered = !0), + this.cachedFragment && (g = d.cloneNode(this.cachedFragment, !0))) : g = this.build(d); + var h = d.createMorphAt(g, 1, 1, c); + return f(b, h, a, "view", ["header"], {}), + g + } + } + }() + , c = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createComment(""); + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.inline; + d.detectNamespace(c); + var g; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (g = this.build(d), + this.hasRendered ? this.cachedFragment = g : this.hasRendered = !0), + this.cachedFragment && (g = d.cloneNode(this.cachedFragment, !0))) : g = this.build(d); + var h = d.createMorphAt(g, 1, 1, c); + return f(b, h, a, "view", ["toc-nav"], {}), + g + } + } + }() + , d = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createElement("button") + , d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createComment(""); + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.get + , g = e.subexpr + , h = e.concat + , i = e.attribute + , j = e.element + , k = e.inline; + d.detectNamespace(c); + var l; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (l = this.build(d), + this.hasRendered ? this.cachedFragment = l : this.hasRendered = !0), + this.cachedFragment && (l = d.cloneNode(this.cachedFragment, !0))) : l = this.build(d); + var m = d.childAt(l, [1]) + , n = d.createMorphAt(m, 1, 1) + , o = d.createAttrMorph(m, "class"); + return i(b, o, m, "class", h(b, ["toc-button ", g(b, a, "if", [f(b, a, "isTOCVisible"), "", "toc-button-pin"], {})])), + j(b, m, a, "action", ["toggleTOC"], {}), + k(b, n, a, "loc", ["$TOC_BUTTON_LABEL_SHOW$"], {}), + l + } + } + }() + , e = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createComment(""); + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.get + , g = e.inline; + d.detectNamespace(c); + var h; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (h = this.build(d), + this.hasRendered ? this.cachedFragment = h : this.hasRendered = !0), + this.cachedFragment && (h = d.cloneNode(this.cachedFragment, !0))) : h = this.build(d); + var i = d.createMorphAt(h, 1, 1, c); + return g(b, i, a, "view", [f(b, a, "localePicker")], {}), + h + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + a.appendChild(b, c); + var c = a.createTextNode("\n"); + a.appendChild(b, c); + var c = a.createComment(""); + a.appendChild(b, c); + var c = a.createTextNode("\n"); + a.appendChild(b, c); + var c = a.createElement("div"); + a.setAttribute(c, "class", "content centered"); + var d = a.createTextNode("\n"); + a.appendChild(c, d); + var d = a.createComment(""); + a.appendChild(c, d); + var d = a.createTextNode("\n"); + a.appendChild(c, d); + var d = a.createComment(""); + a.appendChild(c, d); + var d = a.createTextNode("\n\n"); + a.appendChild(c, d); + var d = a.createComment(""); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n\n"); + a.appendChild(b, c); + var c = a.createComment(""); + a.appendChild(b, c); + var c = a.createTextNode("\n\n"); + a.appendChild(b, c); + var c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(f, g, h) { + var i = g.dom + , j = g.hooks + , k = j.get + , l = j.block + , m = j.content + , n = j.inline; + i.detectNamespace(h); + var o; + g.useFragmentCache && i.canClone ? (null === this.cachedFragment && (o = this.build(i), + this.hasRendered ? this.cachedFragment = o : this.hasRendered = !0), + this.cachedFragment && (o = i.cloneNode(this.cachedFragment, !0))) : o = this.build(i); + var p = i.childAt(o, [4]) + , q = i.createMorphAt(o, 0, 0, h) + , r = i.createMorphAt(o, 2, 2, h) + , s = i.createMorphAt(p, 1, 1) + , t = i.createMorphAt(p, 3, 3) + , u = i.createMorphAt(p, 5, 5) + , v = i.createMorphAt(o, 6, 6, h) + , w = i.createMorphAt(o, 8, 8, h); + return i.insertBoundary(o, null), + i.insertBoundary(o, 0), + l(g, q, f, "if", [k(g, f, "doShowDebugPane")], {}, a, null), + l(g, r, f, "unless", [k(g, f, "isHeaderDisabled")], {}, b, null), + l(g, s, f, "unless", [k(g, f, "isTOCDisabled")], {}, c, null), + m(g, t, f, "outlet"), + l(g, u, f, "if", [k(g, f, "doShowAlternateTOCButton")], {}, d, null), + n(g, v, f, "view", [k(g, f, "aside")], {}), + l(g, w, f, "unless", [k(g, f, "isInHelpViewer")], {}, e, null), + o + } + } + }()) +}), +define("app/view", ["shared/app/view", "precompiled/app/template"], function(a, b) { + return a.extend({ + template: b + }) +}), +define("precompiled/header/template", [], function() { + return Ember.HTMLBars.template(function() { + var a = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createComment(""); + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.inline; + d.detectNamespace(c); + var g; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (g = this.build(d), + this.hasRendered ? this.cachedFragment = g : this.hasRendered = !0), + this.cachedFragment && (g = d.cloneNode(this.cachedFragment, !0))) : g = this.build(d); + var h = d.createMorphAt(g, 1, 1, c); + return f(b, h, a, "loc", ["$TOC_BUTTON_LABEL_HIDE$"], {}), + g + } + } + }() + , b = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createComment(""); + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.inline; + d.detectNamespace(c); + var g; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (g = this.build(d), + this.hasRendered ? this.cachedFragment = g : this.hasRendered = !0), + this.cachedFragment && (g = d.cloneNode(this.cachedFragment, !0))) : g = this.build(d); + var h = d.createMorphAt(g, 1, 1, c); + return f(b, h, a, "loc", ["$TOC_BUTTON_LABEL_SHOW$"], {}), + g + } + } + }() + , c = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createComment(""); + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.content; + d.detectNamespace(c); + var g; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (g = this.build(d), + this.hasRendered ? this.cachedFragment = g : this.hasRendered = !0), + this.cachedFragment && (g = d.cloneNode(this.cachedFragment, !0))) : g = this.build(d); + var h = d.createMorphAt(g, 1, 1, c); + return f(b, h, a, "book.title"), + g + } + } + }() + , d = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createComment(""); + a.appendChild(b, c); + var c = a.createTextNode("\n "); + a.appendChild(b, c); + var c = a.createElement("button"); + a.setAttribute(c, "class", "searchview-close"), + a.setAttribute(c, "name", "find"), + a.setAttribute(c, "type", "button"), + a.setAttribute(c, "role", "checkbox"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("span"); + a.setAttribute(d, "class", "searchview-close-wrapper"); + var e = a.createTextNode("\n "); + a.appendChild(d, e); + var e = a.createElement("span"); + a.setAttribute(e, "class", "searchview-close-left"), + a.appendChild(d, e); + var e = a.createTextNode("\n "); + a.appendChild(d, e); + var e = a.createElement("span"); + a.setAttribute(e, "class", "searchview-close-right"), + a.appendChild(d, e); + var e = a.createTextNode("\n "); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.get + , g = e.inline + , h = e.subexpr + , i = e.concat + , j = e.attribute; + d.detectNamespace(c); + var k; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (k = this.build(d), + this.hasRendered ? this.cachedFragment = k : this.hasRendered = !0), + this.cachedFragment && (k = d.cloneNode(this.cachedFragment, !0))) : k = this.build(d); + var l = d.childAt(k, [3]) + , m = d.createMorphAt(k, 1, 1, c) + , n = d.createAttrMorph(l, "aria-checked") + , o = d.createAttrMorph(l, "aria-label"); + return g(b, m, a, "view", ["search"], { + app: f(b, a, "controller") + }), + j(b, n, l, "aria-checked", i(b, [h(b, a, "if", [f(b, a, "isSearchVisible"), "true", "false"], {})])), + j(b, o, l, "aria-label", i(b, [h(b, a, "loc", ["$SEARCH_BUTTON_LABEL$"], {})])), + k + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createElement("div"); + a.setAttribute(c, "id", "header-content"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("button"); + a.setAttribute(d, "name", "toc"), + a.setAttribute(d, "type", "button"), + a.setAttribute(d, "role", "checkbox"); + var e = a.createTextNode("\n"); + a.appendChild(d, e); + var e = a.createComment(""); + a.appendChild(d, e); + var e = a.createTextNode(" "); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("h1") + , e = a.createTextNode("\n"); + a.appendChild(d, e); + var e = a.createComment(""); + a.appendChild(d, e); + var e = a.createTextNode(" "); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n"); + a.appendChild(c, d); + var d = a.createComment(""); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(e, f, g) { + var h = f.dom + , i = f.hooks + , j = i.get + , k = i.subexpr + , l = i.concat + , m = i.attribute + , n = i.block; + h.detectNamespace(g); + var o; + f.useFragmentCache && h.canClone ? (null === this.cachedFragment && (o = this.build(h), + this.hasRendered ? this.cachedFragment = o : this.hasRendered = !0), + this.cachedFragment && (o = h.cloneNode(this.cachedFragment, !0))) : o = this.build(h); + var p = h.childAt(o, [0]) + , q = h.childAt(p, [1]) + , r = h.childAt(p, [3]) + , s = h.createAttrMorph(p, "class") + , t = h.createMorphAt(q, 1, 1) + , u = h.createAttrMorph(q, "disabled") + , v = h.createAttrMorph(q, "aria-checked") + , w = h.createMorphAt(r, 1, 1) + , x = h.createAttrMorph(r, "class") + , y = h.createMorphAt(p, 5, 5); + return m(f, s, p, "class", l(f, ["centered ", k(f, e, "if", [j(f, e, "isSearchVisible"), "searchopen", ""], {})])), + m(f, u, q, "disabled", l(f, [k(f, e, "if", [j(f, e, "isSearchVisible"), "disabled", ""], {})])), + m(f, v, q, "aria-checked", l(f, [k(f, e, "if", [j(f, e, "isTOCVisible"), "true", "false"], {})])), + n(f, t, e, "if", [j(f, e, "isTOCVisible")], {}, a, b), + m(f, x, r, "class", l(f, [k(f, e, "if", [j(f, e, "isSearchVisible"), "searchopen", ""], {})])), + n(f, w, e, "link-to", ["index"], {}, c, null), + n(f, y, e, "unless", [j(f, e, "isSearchDisabled")], {}, d, null), + o + } + } + }()) +}), +define("header/view", ["precompiled/header/template", "shared/computed"], function(a, b) { + return Em.View.extend({ + tagName: "header", + template: a, + attributeBindings: ["ariaHidden:aria-hidden"], + ariaHidden: b.truthString("controller.aside.isVisible"), + classNames: ["app"], + click: function(a) { + var b = $(a.target); + b.is("[name=toc]") ? (this.get("controller").manuallyToggleTOC(), + this.get("controller.trackingController").toggleTOC("event32")) : b.is("[name=find]") || b.is('[class^="searchview-close"]') ? this.get("controller").toggleSearch() : b.is("a[href]") && (location.href = b.attr("href"), + a.preventDefault()), + this._super(a) + }, + touchMove: function(a) { + $.contains(this.$(".searchresults")[0], a.target) || a.preventDefault() + } + }) +}), +define("topic/route", ["shared/topic/route"], function(a) { + return a.extend({ + actions: { + willTransition: function() { + var a = this.controllerFor("application") + , b = a.get("aside"); + b && b.dismiss() + }, + didTransition: function() { + Ember.run.schedule("afterRender", this, function() { + this.controllerFor("application").scrollToSubtopic() + }) + } + } + }) +}), +define("precompiled/search/template", [], function() { + return Ember.HTMLBars.template(function() { + var a = function() { + var a = function() { + var a = function() { + var a = function() { + var a = function() { + var a = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createComment(""); + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.content; + d.detectNamespace(c); + var g; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (g = this.build(d), + this.hasRendered ? this.cachedFragment = g : this.hasRendered = !0), + this.cachedFragment && (g = d.cloneNode(this.cachedFragment, !0))) : g = this.build(d); + var h = d.createMorphAt(g, 1, 1, c); + return f(b, h, a, "topic.searchName"), + g + } + } + }() + , b = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createComment(""); + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.content; + d.detectNamespace(c); + var g; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (g = this.build(d), + this.hasRendered ? this.cachedFragment = g : this.hasRendered = !0), + this.cachedFragment && (g = d.cloneNode(this.cachedFragment, !0))) : g = this.build(d); + var h = d.createMorphAt(g, 1, 1, c); + return f(b, h, a, "topic.name"), + g + } + } + }() + , c = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createElement("b") + , d = a.createComment(""); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.content; + d.detectNamespace(c); + var g; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (g = this.build(d), + this.hasRendered ? this.cachedFragment = g : this.hasRendered = !0), + this.cachedFragment && (g = d.cloneNode(this.cachedFragment, !0))) : g = this.build(d); + var h = d.createMorphAt(d.childAt(g, [1]), 0, 0); + return f(b, h, a, "topic.breadcrumb"), + g + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + a.appendChild(b, c); + var c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(d, e, f) { + var g = e.dom + , h = e.hooks + , i = h.get + , j = h.block; + g.detectNamespace(f); + var k; + e.useFragmentCache && g.canClone ? (null === this.cachedFragment && (k = this.build(g), + this.hasRendered ? this.cachedFragment = k : this.hasRendered = !0), + this.cachedFragment && (k = g.cloneNode(this.cachedFragment, !0))) : k = this.build(g); + var l = g.createMorphAt(k, 0, 0, f) + , m = g.createMorphAt(k, 1, 1, f); + return g.insertBoundary(k, null), + g.insertBoundary(k, 0), + j(e, l, d, "if", [i(e, d, "topic.searchName")], {}, a, b), + j(e, m, d, "if", [i(e, d, "topic.breadcrumb")], {}, c, null), + k + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createElement("li"); + a.setAttribute(c, "role", "option"), + a.setAttribute(c, "class", "searchresults-item searchresults-animated"); + var d = a.createTextNode("\n"); + a.appendChild(c, d); + var d = a.createComment(""); + a.appendChild(c, d); + var d = a.createTextNode(" "); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(b, c, d) { + var e = c.dom + , f = c.hooks + , g = f.get + , h = f.block; + e.detectNamespace(d); + var i; + c.useFragmentCache && e.canClone ? (null === this.cachedFragment && (i = this.build(e), + this.hasRendered ? this.cachedFragment = i : this.hasRendered = !0), + this.cachedFragment && (i = e.cloneNode(this.cachedFragment, !0))) : i = this.build(e); + var j = e.createMorphAt(e.childAt(i, [1]), 1, 1); + return h(c, j, b, "link-to", ["topic", g(c, b, "topic.routeSlug")], { + "class": "searchresults-link" + }, a, null), + i + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(b, c, d) { + var e = c.dom + , f = c.hooks + , g = f.get + , h = f.block; + e.detectNamespace(d); + var i; + c.useFragmentCache && e.canClone ? (null === this.cachedFragment && (i = this.build(e), + this.hasRendered ? this.cachedFragment = i : this.hasRendered = !0), + this.cachedFragment && (i = e.cloneNode(this.cachedFragment, !0))) : i = this.build(e); + var j = e.createMorphAt(i, 0, 0, d); + return e.insertBoundary(i, null), + e.insertBoundary(i, 0), + h(c, j, b, "if", [g(c, b, "topic.name")], {}, a, null), + i + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(b, c, d) { + var e = c.dom + , f = c.hooks + , g = f.get + , h = f.block; + e.detectNamespace(d); + var i; + c.useFragmentCache && e.canClone ? (null === this.cachedFragment && (i = this.build(e), + this.hasRendered ? this.cachedFragment = i : this.hasRendered = !0), + this.cachedFragment && (i = e.cloneNode(this.cachedFragment, !0))) : i = this.build(e); + var j = e.createMorphAt(i, 0, 0, d); + return e.insertBoundary(i, null), + e.insertBoundary(i, 0), + h(c, j, b, "each", [g(c, b, "view.app.searchResult.sortedTopics")], { + keyword: "topic" + }, a, null), + i + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createElement("section"); + a.setAttribute(c, "class", "searchresults-section"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("h3"); + a.setAttribute(d, "class", "searchresults-header searchresults-animated"), + a.setAttribute(d, "role", "status"); + var e = a.createComment(""); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("ul"); + a.setAttribute(d, "class", "searchresults-list"), + a.setAttribute(d, "role", "listbox"); + var e = a.createTextNode("\n"); + a.appendChild(d, e); + var e = a.createComment(""); + a.appendChild(d, e); + var e = a.createTextNode(" "); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(b, c, d) { + var e = c.dom + , f = c.hooks + , g = f.content + , h = f.get + , i = f.block; + e.detectNamespace(d); + var j; + c.useFragmentCache && e.canClone ? (null === this.cachedFragment && (j = this.build(e), + this.hasRendered ? this.cachedFragment = j : this.hasRendered = !0), + this.cachedFragment && (j = e.cloneNode(this.cachedFragment, !0))) : j = this.build(e); + var k = e.childAt(j, [1]) + , l = e.createMorphAt(e.childAt(k, [1]), 0, 0) + , m = e.createMorphAt(e.childAt(k, [3]), 1, 1); + return g(c, l, b, "view.searchCountSummary"), + i(c, m, b, "if", [h(c, b, "view.app.searchResult.sortedTopics")], {}, a, null), + j + } + } + }() + , b = function() { + var a = function() { + var a = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createElement("li"); + a.setAttribute(c, "role", "option"), + a.setAttribute(c, "class", "searchresults-item searchresults-animated searchresults-quicklink"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("a") + , e = a.createComment(""); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.get + , g = e.concat + , h = e.attribute + , i = e.content; + d.detectNamespace(c); + var j; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (j = this.build(d), + this.hasRendered ? this.cachedFragment = j : this.hasRendered = !0), + this.cachedFragment && (j = d.cloneNode(this.cachedFragment, !0))) : j = this.build(d); + var k = d.childAt(j, [1, 1]) + , l = d.createMorphAt(k, 0, 0) + , m = d.createAttrMorph(k, "href"); + return h(b, m, k, "href", g(b, [f(b, a, "quickLink.href")])), + i(b, l, a, "quickLink.title"), + j + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createElement("section"); + a.setAttribute(c, "class", "searchresults-section"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("h3"); + a.setAttribute(d, "class", "searchresults-header searchresults-animated"); + var e = a.createComment(""); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("ul"); + a.setAttribute(d, "class", "searchresults-list"); + var e = a.createTextNode("\n"); + a.appendChild(d, e); + var e = a.createComment(""); + a.appendChild(d, e); + var e = a.createTextNode(" "); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n "); + return a.appendChild(b, c), + b + }, + render: function(b, c, d) { + var e = c.dom + , f = c.hooks + , g = f.inline + , h = f.get + , i = f.block; + e.detectNamespace(d); + var j; + c.useFragmentCache && e.canClone ? (null === this.cachedFragment && (j = this.build(e), + this.hasRendered ? this.cachedFragment = j : this.hasRendered = !0), + this.cachedFragment && (j = e.cloneNode(this.cachedFragment, !0))) : j = this.build(e); + var k = e.childAt(j, [1]) + , l = e.createMorphAt(e.childAt(k, [1]), 0, 0) + , m = e.createMorphAt(e.childAt(k, [3]), 1, 1); + return g(c, l, b, "loc", ["$QUICK_LINKS_LABEL$"], {}), + i(c, m, b, "each", [h(c, b, "view.app.book.quick_links")], { + keyword: "quickLink" + }, a, null), + j + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(b, c, d) { + var e = c.dom + , f = c.hooks + , g = f.get + , h = f.block; + e.detectNamespace(d); + var i; + c.useFragmentCache && e.canClone ? (null === this.cachedFragment && (i = this.build(e), + this.hasRendered ? this.cachedFragment = i : this.hasRendered = !0), + this.cachedFragment && (i = e.cloneNode(this.cachedFragment, !0))) : i = this.build(e); + var j = e.createMorphAt(i, 0, 0, d); + return e.insertBoundary(i, null), + e.insertBoundary(i, 0), + h(c, j, b, "if", [g(c, b, "view.app.book.quick_links")], {}, a, null), + i + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createElement("div"); + a.setAttribute(c, "id", "search"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("div"); + a.setAttribute(d, "class", "search-content"); + var e = a.createTextNode("\n "); + a.appendChild(d, e); + var e = a.createElement("aside"); + a.setAttribute(e, "class", "searchview"), + a.setAttribute(e, "role", "search"); + var f = a.createTextNode("\n "); + a.appendChild(e, f); + var f = a.createElement("div"); + a.setAttribute(f, "class", "searchview-content"); + var g = a.createTextNode("\n "); + a.appendChild(f, g); + var g = a.createElement("form"); + a.setAttribute(g, "class", "searchform"); + var h = a.createTextNode("\n "); + a.appendChild(g, h); + var h = a.createElement("div"); + a.setAttribute(h, "class", "searchform-wrapper"); + var i = a.createTextNode("\n "); + a.appendChild(h, i); + var i = a.createComment(""); + a.appendChild(h, i); + var i = a.createTextNode("\n "); + a.appendChild(h, i); + var i = a.createElement("span"); + a.setAttribute(i, "class", "searchform-icon"), + a.appendChild(h, i); + var i = a.createTextNode("\n "); + a.appendChild(h, i), + a.appendChild(g, h); + var h = a.createTextNode("\n "); + a.appendChild(g, h), + a.appendChild(f, g); + var g = a.createTextNode("\n "); + a.appendChild(f, g); + var g = a.createElement("aside") + , h = a.createTextNode("\n"); + a.appendChild(g, h); + var h = a.createComment(""); + a.appendChild(g, h); + var h = a.createTextNode(" "); + a.appendChild(g, h), + a.appendChild(f, g); + var g = a.createTextNode("\n "); + a.appendChild(f, g), + a.appendChild(e, f); + var f = a.createTextNode("\n "); + a.appendChild(e, f), + a.appendChild(d, e); + var e = a.createTextNode("\n "); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n"); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + a.appendChild(b, c); + var c = a.createElement("div"); + a.setAttribute(c, "id", "search-curtain"), + a.setAttribute(c, "class", "search-curtain"), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(c, d, e) { + var f = d.dom + , g = d.hooks + , h = g.get + , i = g.inline + , j = g.subexpr + , k = g.concat + , l = g.attribute + , m = g.block; + f.detectNamespace(e); + var n; + d.useFragmentCache && f.canClone ? (null === this.cachedFragment && (n = this.build(f), + this.hasRendered ? this.cachedFragment = n : this.hasRendered = !0), + this.cachedFragment && (n = f.cloneNode(this.cachedFragment, !0))) : n = this.build(f); + var o = f.childAt(n, [0, 1, 1, 1]) + , p = f.childAt(o, [3]) + , q = f.createMorphAt(f.childAt(o, [1, 1]), 1, 1) + , r = f.createMorphAt(p, 1, 1) + , s = f.createAttrMorph(p, "class"); + return i(d, q, c, "view", [h(d, c, "view.searchField")], { + ariaOwns: "searchList", + app: h(d, c, "view.app") + }), + l(d, s, p, "class", k(d, ["searchresults ", j(d, c, "if", [h(d, c, "isSearchVisible"), "with-content with-content-initial", ""], {})])), + m(d, r, c, "if", [h(d, c, "view.app.searchResult")], {}, a, b), + n + } + } + }()) +}), +define("shared/ax/tabindex-manager", [], function() { + return Em.Object.extend({ + axFocus: void 0, + rootNode: void 0, + domReady: function() { + var a = this.get("rootNode"); + a && a.find("a").attr("tabindex", "-1") + }, + updateCurrentFocus: function() { + var a = this.get("axFocus"); + if (a && a.setAttribute) { + a.setAttribute("tabIndex", 0), + a.setAttribute("aria-selected", "true"), + a.focus(); + var b = a.getAttribute("id") + , c = this.get("rootNode"); + c && c.setAttribute && c.setAttribute("aria-activedescendant", b) + } else + Em.Logger.warn("couldn't set the tabindex prop of axFocus ", a) + } + .observes("axFocus"), + clearPreviousFocus: function() { + var a = this.get("axFocus"); + a && a.setAttribute && (a.setAttribute("tabIndex", -1), + a.setAttribute("aria-selected", "false"), + a.blur()) + } + .observesBefore("axFocus") + }) +}), +define("search/view", ["precompiled/search/template", "shared/ax/tabindex-manager", "shared/computed", "shared/browser"], function(a, b, c, d) { + var e = Em.TextField.extend({ + classNames: ["searchform-input"], + type: "msie" === d.get("name") && "9.0" === d.get("version") ? "text" : "search", + ariaRole: "combobox", + attributeBindings: ["ariaOwns:aria-owns"], + valueBinding: "app.searchString", + changeBinding: "app.commitSearch", + init: function() { + this._super(), + this.set("placeholder", c.loc("$SEARCH_BOOK_LABEL$", this.get("app.book.title"))) + } + }); + return Em.View.extend({ + template: a, + ariaRole: "search", + classNameBindings: [":search-results", ":scroll", "app.searchResult::no-result"], + attributeBindings: ["ariaHidden:aria-hidden"], + ariaHidden: c.invertedTruthString("app.isSearchVisible"), + searchField: e, + init: function() { + this._super(), + this.set("tabIndexManager", b.create()), + this.set("tabIndexManager.rootNode", this.$()) + }, + searchCountSummary: function() { + var a = this.get("app.searchResult") + , b = a ? a.get("sortedTopics").length : 0 + , c = a ? a.get("query") : "" + , d = 1 === b ? "$SEARCH_RESULT_COUNT_SINGLE$" : "$SEARCH_RESULTS_COUNT_MULTIPLE$" + , e = d.loc(b, c); + if ("Arabic" === this.get("app.bundle.currentLocale.isoName")) { + var f = ["٠", "١", "٢", "٣", "٤", "٥", "٦", "٧", "٨", "٩"]; + e = e.replace(/[0-9]/g, function(a) { + return f[+a] + }) + } + return e + } + .property("Em.STRINGS", "app.searchResult"), + didInsertElement: function() { + if (this._super(), + d.get("isMobile")) { + this.set("scrollFix", new ScrollFix(this.get("element"))); + var a = this; + $(window).on("orientationchange", function() { + a.get("ariaHidden") === !1 && a.rerender() + }) + } + }, + willDestroyElement: function() { + d.get("isMobile") && this.get("scrollFix").destroy() + }, + keyPress: function(a) { + 13 === a.charCode && (this.get("app").commitSearch(), + a.preventDefault()) + }, + touchMove: function(a) { + var b = $(a.target); + b.is("input") || Em.run.debounce(this, function() { + this.get("app").blurSearch() + }, 500, !0) + }, + keyDown: function(a) { + var b = (this.get("tabIndexManager.axFocus"), + "rtl" === this.get("controller.bundle.currentLocale.text-direction")) + , c = 38 + , d = 40 + , e = b ? 39 : 37 + , f = b ? 37 : 39 + , g = a.keyCode || a.which; + if (!$(a.target).is("input") || g !== e && g !== f) { + switch (g) { + case e: + case c: + this.tabFocusToPrevious(), + a.preventDefault(); + break; + case f: + case d: + this.tabFocusToNext(), + a.preventDefault(); + break; + default: + this._super(a) + } + a.stopPropagation() + } + }, + tabFocusedResultIndex: -1, + tabFocusToNext: function() { + var a = this.get("tabFocusedResultIndex") + 1 + , b = this.$("a[href]").get(a); + b && (this.set("tabFocusedResultIndex", a), + this.set("tabIndexManager.axFocus", b)) + }, + tabFocusToPrevious: function() { + var a = this.get("tabFocusedResultIndex") - 1 + , b = this.$("a[href]").get(a); + b && (this.set("tabFocusedResultIndex", a), + this.set("tabIndexManager.axFocus", b)) + }, + clearFocusedResultIndex: function() { + this.get("tabIndexManager").domReady(); + var a = this.$("a[href].active") + , b = this.$("a[href]").index(a); + this.set("tabFocusedResultIndex", b || -1), + this.set("tabIndexManager.axFocus", a || void 0) + } + .property("app.searchResult"), + click: function(a) { + var b, c, d = $(a.target); + if (d.is("a[href]")) { + if (this.$(".search-results .list a").removeClass("active"), + d.addClass("active"), + d.parent().is(".searchresults-item")) { + var e = this.get("app.trackingController") + , f = d.parent().is(".searchresults-quicklink"); + f ? e.searchQuickLinkSelect(d.text(), d.attr("href").split("#/")[1]) : (b = this.get("app.searchResult"), + c = this.$("a[href]").index(d), + e.searchResultSelect(b, c)) + } + Em.run.later(this, function() { + location.href = d.attr("href"), + this.get("app").hidePanels() + }, 50), + a.preventDefault() + } else + d.is("#search-curtain") && this.get("app").toggleSearch(); + this._super(a) + } + }) +}), +define("precompiled/toc/template", [], function() { + return Ember.HTMLBars.template(function() { + var a = function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createTextNode(" "); + a.appendChild(b, c); + var c = a.createElement("div"); + a.setAttribute(c, "class", "toc-more-help"); + var d = a.createElement("a"); + a.setAttribute(d, "href", "help:openbook=com.apple.machelp"); + var e = a.createComment(""); + a.appendChild(d, e), + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.content; + d.detectNamespace(c); + var g; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (g = this.build(d), + this.hasRendered ? this.cachedFragment = g : this.hasRendered = !0), + this.cachedFragment && (g = d.cloneNode(this.cachedFragment, !0))) : g = this.build(d); + var h = d.createUnsafeMorphAt(d.childAt(g, [1, 0]), 0, 0); + return f(b, h, a, "moreHelpLabel"), + g + } + } + }(); + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createComment(""); + return a.appendChild(b, c), + b + }, + render: function(b, c, d) { + var e = c.dom + , f = c.hooks + , g = f.get + , h = f.block; + e.detectNamespace(d); + var i; + c.useFragmentCache && e.canClone ? (null === this.cachedFragment && (i = this.build(e), + this.hasRendered ? this.cachedFragment = i : this.hasRendered = !0), + this.cachedFragment && (i = e.cloneNode(this.cachedFragment, !0))) : i = this.build(e); + var j = e.createMorphAt(i, 0, 0, d); + return e.insertBoundary(i, null), + e.insertBoundary(i, 0), + h(c, j, b, "if", [g(c, b, "doShowMoreHelpLink")], {}, a, null), + i + } + } + }()) +}), +define("toc/helpers/elementClass", [], function() { + return { + add: function(a, b) { + a.classList ? a.classList.add.apply(a.classList, b.split(" ")) : a.className += " " + b + }, + remove: function(a, b) { + a.classList ? a.classList.remove.apply(a.classList, b.split(" ")) : a.className = a.className.replace(new RegExp("(^|\\b)" + b.split(" ").join("|") + "(\\b|$)","gi"), " ") + }, + contains: function(a, b) { + return a.classList ? a.classList.contains(b) : new RegExp("(^| )" + b + "( |$)","gi").test(a.className) + } + } +}), +define("toc/helpers/createSection", ["toc/helpers/elementClass"], function(a) { + var b = document.createElement.bind(document); + return function(c, d) { + var e = b("li") + , f = b("a") + , g = b("span") + , h = b("div") + , i = d(c.get("children")) + , j = c.get("iconHref"); + if (j) { + var k = b("img"); + k.setAttribute("src", j), + k.setAttribute("alt", ""), + a.add(k, "icon"), + h.appendChild(k), + a.add(e, "hasIcon") + } + return e.setAttribute("aria-expanded", "false"), + e.setAttribute("role", "treeitem"), + a.add(f, "section"), + a.add(g, "disclosure-icon"), + a.add(h, "name"), + i.setAttribute("aria-hidden", "true"), + i.setAttribute("role", "group"), + i.setAttribute("role", "group"), + i.style.maxHeight = "0", + c.get("allChildrenHaveIcons") && a.add(i, "hasIcons"), + h.appendChild(document.createTextNode(c.get("name"))), + [g, h].forEach(f.appendChild.bind(f)), + [f, i].forEach(e.appendChild.bind(e)), + e + } +}), +define("toc/helpers/createItem", ["toc/helpers/elementClass"], function(a) { + function b() { + return "HelpViewer"in window && "mtStatisticsIncrement"in HelpViewer && HelpViewer.mtStatisticsIncrement(0, 0, 1, 0), + !0 + } + var c = document.createElement.bind(document) + , d = /^(http|help)/; + return function(e) { + var f = c("li") + , g = c("a") + , h = c("div") + , i = e.get("iconHref"); + if (i) { + var j = c("img"); + j.setAttribute("src", i), + j.setAttribute("alt", ""), + a.add(j, "icon"), + h.appendChild(j), + a.add(f, "hasIcon") + } + f.setAttribute("aria-selected", "false"), + f.setAttribute("role", "treeitem"); + var k = e.get("id") + , l = e.get("href"); + return g.setAttribute("href", d.test(l) ? l : "#/" + k), + g.id = "toc-item-" + k, + a.add(h, "name"), + g.onClick = b, + h.appendChild(document.createTextNode(e.get("name"))), + g.appendChild(h), + f.appendChild(g), + f + } +}), +define("toc/helpers/createList", ["toc/helpers/createSection", "toc/helpers/createItem", "shared/browser"], function(a, b, c) { + var d = document.createElement.bind(document) + , e = function(f) { + var g = d("ul"); + return f.forEach(function(d) { + var f, h = d.get("children"); + if (h) + f = a(d, e); + else { + if (!c.get("canHandleHelpAnchorLinks") && d.href && d.href.match(/^help:anchor/i)) + return; + if (!c.get("canHandleHelpOpenBookLinks") && d.href && d.href.match(/^help:openbook/i)) + return; + f = b(d) + } + g.appendChild(f) + }), + g + }; + return e +}), +define("toc/helpers/navigation", ["toc/helpers/elementClass"], function(a) { + function b(b, c) { + for (var d = []; !(c && b === c.parentElement || "UL" === b.tagName && a.contains(b, "toc")); ) + d.push(b), + b = b.parentElement; + return d + } + function c(a, c) { + var d = c ? "false" : "true" + , e = c ? "true" : "false" + , f = b(a, c ? null : a.parentElement) + , g = 0; + f.forEach(function(b) { + var f = "LI" === b.tagName + , h = "UL" === b.tagName; + if (f) + b.setAttribute("aria-expanded", e); + else if (h) { + var i = !1; + c && a !== b && "false" === b.getAttribute("aria-hidden") && (i = !0), + i || (b.setAttribute("aria-hidden", d), + g += b.scrollHeight, + $(b).css("max-height", c ? "0px" : g), + setTimeout(function() { + $(b).addClass("animating"), + $(b).css("max-height", c ? g : "0px") + }, 0), + setTimeout(function() { + $(b).removeClass("animating"), + $(b).css("max-height", c ? "" : "0px") + }, 300)) + } + }) + } + function d(a) { + var c = b(a); + return c.reduce(function(a, b) { + return a ? a = "UL" === b.tagName && "false" === b.getAttribute("aria-hidden") || "LI" === b.tagName && "true" === b.getAttribute("aria-expanded") : a + }, !0) + } + var e = function(a) { + var b = "UL" === a.tagName ? a : a.parentElement.querySelector("ul") + , d = "false" === b.getAttribute("aria-hidden"); + c(b, !d) + } + , f = function(b) { + if (b && !a.contains(b, "active")) { + var c = b.parentElement.parentElement; + d(c) || e(c), + c.firstChild === b.parentElement && a.add(c.parentElement, "first-toc-item-active"), + a.add(b, "active") + } + } + , g = function(b) { + if (b && a.contains(b, "active")) { + var c = b.parentElement.parentElement; + c.firstChild === b.parentElement && a.remove(c.parentElement, "first-toc-item-active"), + a.remove(b, "active") + } + }; + return { + toggleSection: e, + selectItem: f, + deselectItem: g + } +}), +define("toc/view", ["precompiled/toc/template", "shared/ax/tabindex-manager", "shared/computed", "toc/helpers/createList", "toc/helpers/navigation", "toc/helpers/elementClass", "shared/browser"], function(a, b, c, d, e, f, g) { + function h(a) { + return $(a).siblings("ul").children("li").children("a") + } + function i(a) { + return $(a).hasClass("section") + } + function j(a) { + return $(a).closest("ul").siblings("a.section").get(0) + } + function k(a) { + if (a) { + var b = a.getElementsByTagName("a"); + return b.length > -1 ? b[0] : void 0 + } + } + function l(a) { + var b = Em.get(a, "parentElement.previousElementSibling"); + return k(b) + } + function m(a) { + var b = Em.get(a, "parentElement.nextElementSibling"); + return k(b) + } + function n(a) { + var b = $(a); + return b.hasClass("section") && b.siblings("ul").hasClass("expanded") + } + function o(a, b) { + for (var c = a; n(c) && h(c); ) + c = b(c); + return c + } + function p(a) { + return a[a.length - 1] + } + function q(a) { + return a[0] + } + function r(a) { + return document.getElementById("toc-item-" + a) + } + return Em.View.extend({ + tabIndexManager: void 0, + tagName: "nav", + attributeBindings: ["ariaHidden:aria-hidden", "ariaLabel:aria-label"], + ariaHidden: c.invertedTruthString("controller.isTOCVisible"), + ariaLabel: c.loc("$TOC_LABEL$"), + ariaRole: "navigation", + template: a, + init: function() { + this._super(), + this.set("tabIndexManager", b.create()), + this.set("tabIndexManager.rootNode", this.$()) + }, + willInsertElement: function() { + var a = this + , b = a.get("controller.book.toc") + , c = d(b); + f.add(c, "toc scroll hasIcons"), + c.setAttribute("aria-hidden", "false"), + c.setAttribute("role", "tree"); + var e = this.get("element"); + e.insertBefore(c, e.firstChild), + this.set("tocEl", c) + }, + didInsertElement: function() { + var a = g.get("isMobile") + , b = this.$() + , c = b[0].querySelector("ul.toc") + , d = 20 + , h = 0 + , i = 0 + , j = this; + this.set("isMobile", a), + this.set("scrollDuration", a ? 400 : 200), + this.set("scrollTimeout", 400 + this.get("scrollDuration")), + this.currentTopicObserver(), + a && (this.set("scrollFix", new ScrollFix(this.get("tocEl"))), + b.on("touchstart", function(a) { + h = a.originalEvent.changedTouches[0].pageX, + i = a.originalEvent.changedTouches[0].pageY + }), + b.on("touchmove", function(a) { + c.scrollHeight <= c.offsetHeight && a.preventDefault() + })); + var k = function(b) { + if (a) { + var c = Math.abs(b.originalEvent.changedTouches[0].pageX - h) < d && Math.abs(b.originalEvent.changedTouches[0].pageY - i) < d; + if (!c) + return + } + var g = b.target + , k = f.contains(g, "disclosure-icon") && "SPAN" === g.tagName + , l = f.contains(g, "name") && "DIV" === g.tagName + , m = f.contains(g, "icon") && "IMG" === g.tagName; + g = k || l || m ? g.parentElement : g, + g = m ? g.parentElement : g; + var n = f.contains(g, "section") && "A" === g.tagName + , o = !n && "A" === g.tagName; + if (n) + e.toggleSection(g); + else if (o && g.getAttribute("href")) { + j.get("controller").hidePanels(); + var p = g.getAttribute("href"); + p.match(/^help:/) ? window.location = p : (e.selectItem(g), + window.location.hash = p), + p && -1 !== p.indexOf("#/") && (p = p.split("#/")[1]), + j.get("controller.trackingController").tocSelect(p) + } + return !1 + }; + b.on("touchend", k), + b.on("click", k), + this.get("tabIndexManager").domReady() + }, + willDestroyElement: function() { + var a = this.$(); + g.get("isMobile") && (this.get("scrollFix").destroy(), + a.off("touchstart"), + a.off("click")), + a.off("touchend"), + a.off("click") + }, + scrollActiveItemIntoView: function() { + var a = this.get("activeItem").offsetTop + , b = this.get("activeItem").offsetHeight + , c = this.get("tocEl") + , d = c.offsetHeight + , e = c.scrollTop + , f = a - e + , g = d >= f + b && f > 0; + g || $(c).animate({ + scrollTop: a + }, this.get("scrollDuration"), "linear") + }, + currentTopicObserver: function() { + var a = this.get("controller.currentTopic") + , b = r(a.get("id")) + , c = this.get("activeItem"); + c && e.deselectItem(c), + b && (e.selectItem(b), + this.set("activeItem", b), + this.set("tabIndexManager.axFocus", b), + b.blur(), + Ember.run.debounce(this, this.scrollActiveItemIntoView, this.get("scrollTimeout"))) + } + .observes("controller.currentTopic"), + keyDown: function(a) { + var b = this.get("tabIndexManager.axFocus") + , c = "rtl" === this.get("controller.bundle.currentLocale.text-direction") + , d = 38 + , e = 40 + , f = c ? 39 : 37 + , g = c ? 37 : 39; + switch (a.keyCode) { + case d: + this.tabIndexToPrevious(), + a.preventDefault(); + break; + case e: + this.tabIndexToNext(), + a.preventDefault(); + break; + case f: + i(b) ? b.click(a) : this.tabIndexToSection(), + a.preventDefault(); + break; + case g: + b && b.click(a), + a.preventDefault(); + break; + default: + this._super(a) + } + a.stopPropagation() + }, + tabIndexToSection: function() { + var a = this.get("tabIndexManager") + , b = a.get("axFocus"); + b && a.set("axFocus", j(b) || b) + }, + tabIndexToPrevious: function() { + var a = this.get("tabIndexManager") + , b = a.get("axFocus") + , c = l(b); + if (!c) + return void this.tabIndexToSection(); + var d = o(c, function(a) { + return p(h(a)) + }); + a.set("axFocus", d) + }, + tabIndexToNext: function() { + var a = this.get("tabIndexManager") + , b = a.get("axFocus"); + if (n(b)) { + var c = q(h(b)); + return void a.set("axFocus", c) + } + var d = m(b); + for (candidate = j(b); !d && candidate; ) + d = m(candidate), + candidate = j(candidate); + d && a.set("axFocus", d) + } + }) +}), +define("precompiled/feedback/template", [], function() { + return Ember.HTMLBars.template(function() { + return { + isHTMLBars: !0, + revision: "Ember@1.11.3", + blockParams: 0, + cachedFragment: null, + hasRendered: !1, + build: function(a) { + var b = a.createDocumentFragment() + , c = a.createElement("p"); + a.setAttribute(c, "class", "solicit"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createComment(""); + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("a"); + a.setAttribute(d, "role", "button"); + var e = a.createComment(""); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n"); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + a.appendChild(b, c); + var c = a.createElement("p"); + a.setAttribute(c, "class", "choices-label"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createComment(""); + a.appendChild(c, d); + var d = a.createTextNode("\n"); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + a.appendChild(b, c); + var c = a.createElement("form"); + a.setAttribute(c, "action", "//wsidecar.apple.com/cgi-bin/fb_hlp/nph-sub/"), + a.setAttribute(c, "method", "post"), + a.setAttribute(c, "name", "feedback"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("input"); + a.setAttribute(d, "type", "hidden"), + a.setAttribute(d, "name", "topicID"), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("input"); + a.setAttribute(d, "type", "hidden"), + a.setAttribute(d, "name", "topicName"), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("div"); + a.setAttribute(d, "class", "choices"); + var e = a.createTextNode("\n "); + a.appendChild(d, e); + var e = a.createElement("label") + , f = a.createElement("input"); + a.setAttribute(f, "type", "radio"), + a.setAttribute(f, "name", "choice"), + a.setAttribute(f, "value", "yes"), + a.appendChild(e, f); + var f = a.createTextNode(" "); + a.appendChild(e, f); + var f = a.createComment(""); + a.appendChild(e, f), + a.appendChild(d, e); + var e = a.createTextNode("\n "); + a.appendChild(d, e); + var e = a.createElement("label") + , f = a.createElement("input"); + a.setAttribute(f, "type", "radio"), + a.setAttribute(f, "name", "choice"), + a.setAttribute(f, "value", "somewhat"), + a.appendChild(e, f); + var f = a.createTextNode(" "); + a.appendChild(e, f); + var f = a.createComment(""); + a.appendChild(e, f), + a.appendChild(d, e); + var e = a.createTextNode("\n "); + a.appendChild(d, e); + var e = a.createElement("label") + , f = a.createElement("input"); + a.setAttribute(f, "type", "radio"), + a.setAttribute(f, "name", "choice"), + a.setAttribute(f, "value", "no"), + a.appendChild(e, f); + var f = a.createTextNode(" "); + a.appendChild(e, f); + var f = a.createComment(""); + a.appendChild(e, f), + a.appendChild(d, e); + var e = a.createTextNode("\n "); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("label") + , e = a.createElement("strong") + , f = a.createComment(""); + a.appendChild(e, f), + a.appendChild(d, e); + var e = a.createElement("br"); + a.appendChild(d, e); + var e = a.createElement("textarea"); + a.setAttribute(e, "name", "comments"), + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("p") + , e = a.createElement("em") + , f = a.createComment(""); + a.appendChild(e, f), + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("button"); + a.setAttribute(d, "name", "cancel"); + var e = a.createComment(""); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createElement("button"); + a.setAttribute(d, "name", "submit"); + var e = a.createComment(""); + a.appendChild(d, e), + a.appendChild(c, d); + var d = a.createTextNode("\n"); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + a.appendChild(b, c); + var c = a.createElement("p"); + a.setAttribute(c, "class", "confirm"); + var d = a.createTextNode("\n "); + a.appendChild(c, d); + var d = a.createComment(""); + a.appendChild(c, d); + var d = a.createTextNode("\n"); + a.appendChild(c, d), + a.appendChild(b, c); + var c = a.createTextNode("\n"); + return a.appendChild(b, c), + b + }, + render: function(a, b, c) { + var d = b.dom + , e = b.hooks + , f = e.get + , g = e.subexpr + , h = e.concat + , i = e.attribute + , j = e.inline + , k = e.element + , l = e.content; + d.detectNamespace(c); + var m; + b.useFragmentCache && d.canClone ? (null === this.cachedFragment && (m = this.build(d), + this.hasRendered ? this.cachedFragment = m : this.hasRendered = !0), + this.cachedFragment && (m = d.cloneNode(this.cachedFragment, !0))) : m = this.build(d); + var n = d.childAt(m, [0]) + , o = d.childAt(n, [3]) + , p = d.childAt(m, [2]) + , q = d.childAt(m, [4]) + , r = d.childAt(q, [1]) + , s = d.childAt(q, [3]) + , t = d.childAt(q, [5]) + , u = d.childAt(q, [7]) + , v = d.childAt(u, [2]) + , w = d.childAt(q, [11]) + , x = d.childAt(q, [13]) + , y = d.childAt(m, [6]) + , z = d.createMorphAt(n, 1, 1) + , A = d.createAttrMorph(n, "aria-hidden") + , B = d.createMorphAt(o, 0, 0) + , C = d.createMorphAt(p, 1, 1) + , D = d.createAttrMorph(p, "aria-hidden") + , E = d.createAttrMorph(q, "aria-hidden") + , F = d.createAttrMorph(r, "value") + , G = d.createAttrMorph(s, "value") + , H = d.createMorphAt(d.childAt(t, [1]), 2, 2) + , I = d.createMorphAt(d.childAt(t, [3]), 2, 2) + , J = d.createMorphAt(d.childAt(t, [5]), 2, 2) + , K = d.createMorphAt(d.childAt(u, [0]), 0, 0) + , L = d.createAttrMorph(v, "disabled") + , M = d.createUnsafeMorphAt(d.childAt(q, [9, 0]), 0, 0) + , N = d.createMorphAt(w, 0, 0) + , O = d.createMorphAt(x, 0, 0) + , P = d.createAttrMorph(x, "disabled") + , Q = d.createMorphAt(y, 1, 1) + , R = d.createAttrMorph(y, "aria-hidden"); + return i(b, A, n, "aria-hidden", h(b, [g(b, a, "if", [f(b, a, "view.isSolicitHidden"), "true", "false"], {})])), + j(b, z, a, "loc", ["$FEEDBACK_CHOICES_LABEL$"], {}), + k(b, o, a, "action", ["showForm"], { + target: f(b, a, "view") + }), + j(b, B, a, "loc", ["$FEEDBACK_LINK$"], {}), + i(b, D, p, "aria-hidden", h(b, [g(b, a, "if", [f(b, a, "view.isExpanded"), "false", "true"], {})])), + j(b, C, a, "loc", ["$FEEDBACK_CHOICES_LABEL$"], {}), + i(b, E, q, "aria-hidden", h(b, [g(b, a, "if", [f(b, a, "view.isExpanded"), "false", "true"], {})])), + i(b, F, r, "value", h(b, [f(b, a, "view.topicID")])), + i(b, G, s, "value", h(b, [f(b, a, "view.topicName")])), + l(b, H, a, "view.choiceAffirmativeText"), + l(b, I, a, "view.choiceTentativeText"), + l(b, J, a, "view.choiceNegativeText"), + j(b, K, a, "loc", ["$FEEDBACK_COMMENT_LABEL$"], {}), + i(b, L, v, "disabled", h(b, [g(b, a, "if", [f(b, a, "view.isExpanded"), "", "disabled"], {})])), + j(b, M, a, "loc", ["$FEEDBACK_POLICY_NOTICE$"], {}), + k(b, w, a, "action", ["hideForm"], { + target: f(b, a, "view") + }), + j(b, N, a, "loc", ["$FEEDBACK_CANCEL_BUTTON_LABEL$"], {}), + i(b, P, x, "disabled", h(b, [g(b, a, "if", [f(b, a, "view.canSubmit"), "", "disabled"], {})])), + k(b, x, a, "action", ["submitForm"], { + target: f(b, a, "view") + }), + j(b, O, a, "loc", ["$FEEDBACK_SEND_BUTTON_LABEL$"], {}), + i(b, R, y, "aria-hidden", h(b, [g(b, a, "if", [f(b, a, "view.isSubmitted"), "false", "true"], {})])), + j(b, Q, a, "loc", ["$FEEDBACK_CONFIRMATION$"], {}), + m + } + } + }()) +}), +define("feedback/view", ["precompiled/feedback/template", "shared/browser", "shared/computed"], function(a, b, c) { + return Em.View.extend({ + classNames: ["instapaper_ignore"], + classNameBindings: [":feedback"], + template: a, + app: Ember.computed.alias("controller.app"), + isExpanded: !1, + isSubmitted: !1, + isSolicitHidden: Em.computed.or("isExpanded", "isSubmitted"), + isSolicitHiddenString: c.truthString("isSolicitHidden"), + isFormHiddenString: c.invertedTruthString("isExpanded"), + isConfirmHiddenString: c.invertedTruthString("isSubmitted"), + cancelButtonLabel: c.loc("$FEEDBACK_CANCEL_BUTTON_LABEL$"), + choicesLabel: c.loc("$FEEDBACK_CHOICES_LABEL$"), + choiceAffirmativeText: c.loc("$FEEDBACK_CHOICE_AFFIRMATIVE$"), + choiceTentativeText: c.loc("$FEEDBACK_CHOICE_TENTATIVE$"), + choiceNegativeText: c.loc("$FEEDBACK_CHOICE_NEGATIVE$"), + commentLabel: c.loc("$FEEDBACK_COMMENT_LABEL$"), + confirmationLabel: c.loc("$FEEDBACK_CONFIRMATION$"), + linkText: c.loc("$FEEDBACK_LINK$"), + policyNoticeText: c.loc("$FEEDBACK_POLICY_NOTICE$"), + promptText: c.loc("$FEEDBACK_PROMPT$"), + sendButtonLabel: c.loc("$FEEDBACK_SEND_BUTTON_LABEL$"), + selectedChoice: void 0, + canSubmit: function() { + return Boolean(Em.get(this, "selectedChoice")) + } + .property("selectedChoice"), + topicID: Em.computed.alias("parentView.content.id"), + topicName: function() { + return $("h1", this.get("parentView.content.template")).text() + } + .property("parentView.content.template"), + click: function(a) { + a.stopPropagation(), + this.set("selectedChoice", this.$("input[name=choice]:checked").val()) + }, + actions: { + showForm: function() { + this.set("isExpanded", !0), + this.$("button[name=submit]").focus() + }, + hideForm: function() { + this.set("isExpanded", !1), + this.$(".solicit a").focus() + }, + submitForm: function() { + var a, c, d = this.get("selectedChoice"); + a = null === this.get("app.ENVIRONMENT") ? this.$("form").attr("action") : "localhost", + c = { + helpValue: d, + comments: this.$("textarea").val().replace(/&/g, "&").replace(/>/g, ">").replace(/الخاص بك%@", + $LANDING_HIDE_TOC$: "إخفاء الموضوعات", + $LANDING_SHOW_TOC$: "إظهار الموضوعات", + $QUICK_LINKS_LABEL$: "روابط سريعة", + $CONNECT_TO_INTERNET$: "

    لعرض المساعدة، يجب أن تكون متصلاً بالإنترنت.

    ", + $VIDEO_PLAY$: "تشغيل الفيديو", + $VIDEO_PAUSE$: "إيقاف الفيديو مؤقتًا", + $VIDEO_REPLAY: "إعادة تشغيل الفيديو" + }, + bg: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Следващ", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Предишен", + $MODAL_CLOSE_BUTTON$: "Затвори", + $LANGUAGE_MENU_LABEL$: "Промени езика", + $SEARCH_BUTTON_LABEL$: "Търси", + $SEARCH_BOOK_LABEL$: "Търси %@", + $SEARCH_FIELD_PLACEHOLDER$: "Търси в Помощ", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ резултата за “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ резултат за „%@“", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Изчисти", + $TOC_BUTTON_LABEL_HIDE$: "Скрий съдържание", + $TOC_BUTTON_LABEL_SHOW$: "Покажи съдържание", + $TOC_LABEL$: "Съдържание", + $TOPIC_LOAD_ERROR$: "Избраната тема не е достъпна в момента", + $TOC_MORE_HELP$: "Още помощ за Вашия Mac%@", + $LANDING_HIDE_TOC$: "Скриване на теми", + $LANDING_SHOW_TOC$: "Показване на теми", + $QUICK_LINKS_LABEL$: "Бързи връзки", + $CONNECT_TO_INTERNET$: "

    За да преглеждате помощта, трябва да сте свързани в Интернет.

    ", + $VIDEO_PLAY$: "Възпроизвеждане на видео", + $VIDEO_PAUSE$: "Спиране на видео", + $VIDEO_REPLAY: "Повторно възпроизвеждане на видео" + }, + ca: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Següent", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Anterior", + $MODAL_CLOSE_BUTTON$: "Tancar", + $LANGUAGE_MENU_LABEL$: "Canviar idioma", + $SEARCH_BUTTON_LABEL$: "Buscar", + $SEARCH_BOOK_LABEL$: "Buscar a %@", + $SEARCH_FIELD_PLACEHOLDER$: "Buscar a l’ajuda", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ resultats per a “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ resultat per a “%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Restablir", + $TOC_BUTTON_LABEL_HIDE$: "Ocultar la taula de contingut", + $TOC_BUTTON_LABEL_SHOW$: "Mostrar la taula de contingut", + $TOC_LABEL$: "Taula de contingut", + $TOPIC_LOAD_ERROR$: "El tema seleccionat no està disponible en aquest moment", + $TOC_MORE_HELP$: "Ajuda addicional per al teu Mac%@", + $LANDING_HIDE_TOC$: "Ocultar els temes", + $LANDING_SHOW_TOC$: "Mostrar els temes", + $QUICK_LINKS_LABEL$: "Enllaços ràpids", + $CONNECT_TO_INTERNET$: "

    Per veure l’ajuda, t’has de connectar a Internet.

    ", + $VIDEO_PLAY$: "Reproduir vídeo", + $VIDEO_PAUSE$: "Aturar vídeo", + $VIDEO_REPLAY: "Tornar a reproduir vídeo" + }, + cs: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Další", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Předchozí", + $MODAL_CLOSE_BUTTON$: "Zavřít", + $LANGUAGE_MENU_LABEL$: "Změnit jazyk", + $SEARCH_BUTTON_LABEL$: "Hledat", + $SEARCH_BOOK_LABEL$: "Prohledat: %@", + $SEARCH_FIELD_PLACEHOLDER$: "Hledat v nápovědě", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "Výsledky (%@) pro dotaz „%@“", + $SEARCH_RESULT_COUNT_SINGLE$: "Výsledky (%@) pro dotaz „%@“", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Vynulovat", + $TOC_BUTTON_LABEL_HIDE$: "Skrýt obsah", + $TOC_BUTTON_LABEL_SHOW$: "Zobrazit obsah", + $TOC_LABEL$: "Obsah", + $TOPIC_LOAD_ERROR$: "Vybrané téma není k dispozici", + $TOC_MORE_HELP$: "Další nápověda pro váš Mac%@", + $LANDING_HIDE_TOC$: "Skrýt témata", + $LANDING_SHOW_TOC$: "Zobrazit témata", + $QUICK_LINKS_LABEL$: "Rychlé odkazy", + $CONNECT_TO_INTERNET$: "

    Chcete-li zobrazit nápovědu, musíte být připojeni k internetu.

    ", + $VIDEO_PLAY$: "Přehrát video", + $VIDEO_PAUSE$: "Pozastavit video", + $VIDEO_REPLAY: "Přehrát video znovu" + }, + da: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Næste", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Forrige", + $MODAL_CLOSE_BUTTON$: "Luk", + $LANGUAGE_MENU_LABEL$: "Skift sprog", + $SEARCH_BUTTON_LABEL$: "Søg", + $SEARCH_BOOK_LABEL$: "Søg i %@", + $SEARCH_FIELD_PLACEHOLDER$: "Søg", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ resultater for “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ resultat for “%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Nulstil", + $TOC_BUTTON_LABEL_HIDE$: "Skjul indholdsfortegnelse", + $TOC_BUTTON_LABEL_SHOW$: "Vis indholdsfortegnelse", + $TOC_LABEL$: "Indholdsfortegnelse", + $TOPIC_LOAD_ERROR$: "Det valgte emne er ikke tilgængeligt", + $TOC_MORE_HELP$: "Mere hjælp til din Mac%@", + $LANDING_HIDE_TOC$: "Skjul emner", + $LANDING_SHOW_TOC$: "Vis emner", + $QUICK_LINKS_LABEL$: "Links", + $CONNECT_TO_INTERNET$: "

    Der skal være en aktiv internetforbindelse, før du kan se hjælp.

    ", + $VIDEO_PLAY$: "Afspil video", + $VIDEO_PAUSE$: "Sæt video på pause", + $VIDEO_REPLAY: "Afspil video igen" + }, + de: { + $SEARCH_DEPTH_LIMIT$: 10, + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Weiter", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Zurück", + $MODAL_CLOSE_BUTTON$: "Schließen", + $LANGUAGE_MENU_LABEL$: "Sprache wechseln", + $SEARCH_BUTTON_LABEL$: "Suchen", + $SEARCH_BOOK_LABEL$: "%@ suchen", + $SEARCH_FIELD_PLACEHOLDER$: "Suchen", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ Ergebnisse für „%@“", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ Ergebnis für „%@“", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Zurücksetzen", + $TOC_BUTTON_LABEL_HIDE$: "Inhaltsverzeichnis ausblenden", + $TOC_BUTTON_LABEL_SHOW$: "Inhaltsverzeichnis einblenden", + $TOC_LABEL$: "Inhaltsverzeichnis", + $TOPIC_LOAD_ERROR$: "Das gewählte Thema ist derzeit nicht verfügbar", + $TOC_MORE_HELP$: "Mehr Hilfe für den Mac%@", + $LANDING_HIDE_TOC$: "Themen ausblenden", + $LANDING_SHOW_TOC$: "Themen anzeigen", + $QUICK_LINKS_LABEL$: "Alles auf einen Klick", + $CONNECT_TO_INTERNET$: "

    Zum Anzeigen der Hilfe musst du mit dem Internet verbunden sein.

    ", + $VIDEO_PLAY$: "Video wiedergeben", + $VIDEO_PAUSE$: "Video anhalten", + $VIDEO_REPLAY: "Video erneut wiedergeben" + }, + el: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Επόμενο", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Προηγούμενο", + $MODAL_CLOSE_BUTTON$: "Κλείσιμο", + $LANGUAGE_MENU_LABEL$: "Αλλαγή γλώσσας", + $SEARCH_BUTTON_LABEL$: "Αναζήτηση", + $SEARCH_BOOK_LABEL$: "Αναζήτηση σε: %@", + $SEARCH_FIELD_PLACEHOLDER$: "Αναζήτηση", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ αποτελέσματα για «%@»", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ αποτέλεσμα για «%@»", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Επαναφορά", + $TOC_BUTTON_LABEL_HIDE$: "Απόκρυψη πίνακα περιεχομένων", + $TOC_BUTTON_LABEL_SHOW$: "Εμφάνιση πίνακα περιεχομένων", + $TOC_LABEL$: "Πίνακας περιεχομένων", + $TOPIC_LOAD_ERROR$: "Tο επιλεγμένο θέμα δεν είναι διαθέσιμο τώρα", + $TOC_MORE_HELP$: "Περισσότερη βοήθεια για το Mac %@", + $LANDING_HIDE_TOC$: "Απόκρυψη θεμάτων", + $LANDING_SHOW_TOC$: "Εμφάνιση θεμάτων", + $QUICK_LINKS_LABEL$: "Γρήγοροι σύνδεσμοι", + $CONNECT_TO_INTERNET$: "

    Για προβολή βοήθειας, πρέπει να είστε συνδεδεμένοι στο Διαδίκτυο.

    ", + $VIDEO_PLAY$: "Αναπαραγωγή βίντεο", + $VIDEO_PAUSE$: "Παύση βίντεο", + $VIDEO_REPLAY: "Επανάληψη βίντεο" + }, + en: { + $FEEDBACK_CANCEL_BUTTON_LABEL$: "Cancel", + $FEEDBACK_CHOICES_LABEL$: "Was this help page useful?", + $FEEDBACK_CHOICE_AFFIRMATIVE$: "Yes. I found the information I was looking for.", + $FEEDBACK_CHOICE_TENTATIVE$: "Somewhat. I found some of the information I was looking for.", + $FEEDBACK_CHOICE_NEGATIVE$: "No. I did not find the information I was looking for.", + $FEEDBACK_COMMENT_LABEL$: "Comments:", + $FEEDBACK_CONFIRMATION$: "Thanks, your feedback has been sent.", + $FEEDBACK_LINK$: "Send feedback.", + $FEEDBACK_POLICY_NOTICE$: "Thank you for your comments; we regret that we can’t respond directly to you. Please read Apple's Unsolicited Idea Submission Policy.", + $FEEDBACK_PROMPT$: "Was this page helpful?", + $FEEDBACK_SEND_BUTTON_LABEL$: "Send feedback", + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Next", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Previous", + $MODAL_CLOSE_BUTTON$: "Close", + $LANGUAGE_MENU_LABEL$: "Change Language", + $SEARCH_BUTTON_LABEL$: "Search", + $SEARCH_BOOK_LABEL$: "Search %@", + $SEARCH_FIELD_PLACEHOLDER$: "Search Help", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ results for “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ result for “%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Reset", + $TOC_BUTTON_LABEL_HIDE$: "Hide table of contents", + $TOC_BUTTON_LABEL_SHOW$: "Show table of contents", + $TOC_LABEL$: "Table of contents", + $TOPIC_LOAD_ERROR$: "The selected topic is currently unavailable", + $CONNECT_TO_INTERNET$: "

    To view help, you must be connected to the Internet.

    ", + $TOC_MORE_HELP$: "More help for your Mac%@", + $LANDING_HIDE_TOC$: "Hide topics", + $LANDING_SHOW_TOC$: "Show topics", + $QUICK_LINKS_LABEL$: "Quick Links", + $VIDEO_PLAY$: "Play video", + $VIDEO_PAUSE$: "Pause video", + $VIDEO_REPLAY$: "Replay video" + }, + es: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Siguiente", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Anterior", + $MODAL_CLOSE_BUTTON$: "Cerrar", + $LANGUAGE_MENU_LABEL$: "Cambiar de idioma", + $SEARCH_BUTTON_LABEL$: "Buscar", + $SEARCH_BOOK_LABEL$: "Buscar en %@", + $SEARCH_FIELD_PLACEHOLDER$: "Buscar en la ayuda", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ resultados para “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ resultado para “%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Restablecer", + $TOC_BUTTON_LABEL_HIDE$: "Ocultar tabla de contenido", + $TOC_BUTTON_LABEL_SHOW$: "Mostrar tabla de contenido", + $TOC_LABEL$: "Tabla de contenido", + $TOPIC_LOAD_ERROR$: "El tema seleccionado no está disponible en estos momentos", + $TOC_MORE_HELP$: "Más ayuda para tu Mac%@", + $LANDING_HIDE_TOC$: "Ocultar temas", + $LANDING_SHOW_TOC$: "Mostrar temas", + $QUICK_LINKS_LABEL$: "Enlaces rápidos", + $CONNECT_TO_INTERNET$: "

    Para ver la ayuda, debes estar conectado a Internet.

    ", + $VIDEO_PLAY$: "Reproducir vídeo", + $VIDEO_PAUSE$: "Poner vídeo en pausa", + $VIDEO_REPLAY: "Volver a reproducir vídeo" + }, + "es-mx": { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Siguiente", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Anterior", + $MODAL_CLOSE_BUTTON$: "Cerrar", + $LANGUAGE_MENU_LABEL$: "Cambiar idioma", + $SEARCH_BUTTON_LABEL$: "Buscar", + $SEARCH_BOOK_LABEL$: "Buscar en %@", + $SEARCH_FIELD_PLACEHOLDER$: "Buscar en Ayuda", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ resultados de “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ resultado de “%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Restablecer", + $TOC_BUTTON_LABEL_HIDE$: "Ocultar tabla de contenido", + $TOC_BUTTON_LABEL_SHOW$: "Mostrar tabla de contenido", + $TOC_LABEL$: "Tabla de contenido", + $TOPIC_LOAD_ERROR$: "El tema seleccionado no está disponible por ahora", + $TOC_MORE_HELP$: "Obtén más ayuda para tu Mac%@", + $LANDING_HIDE_TOC$: "Ocultar temas", + $LANDING_SHOW_TOC$: "Mostrar temas", + $QUICK_LINKS_LABEL$: "Enlaces rápidos", + $CONNECT_TO_INTERNET$: "

    Debes estar conectado a Internet para ver la ayuda.

    ", + $VIDEO_PLAY$: "Reproducir video", + $VIDEO_PAUSE$: "Pausar video", + $VIDEO_REPLAY: "Repetir video" + }, + et: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Järgmine", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Eelmine", + $MODAL_CLOSE_BUTTON$: "Sule", + $LANGUAGE_MENU_LABEL$: "Muuda keelt", + $SEARCH_BUTTON_LABEL$: "Otsi", + $SEARCH_BOOK_LABEL$: "Otsi: %@", + $SEARCH_FIELD_PLACEHOLDER$: "Abi otsing", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ tulemust päringule “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ tulemus päringule “%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Lähtesta", + $TOC_BUTTON_LABEL_HIDE$: "Peida sisukord", + $TOC_BUTTON_LABEL_SHOW$: "Kuva sisukord", + $TOC_LABEL$: "Sisukord", + $TOPIC_LOAD_ERROR$: "Valitud teema pole hetkel saadaval", + $TOC_MORE_HELP$: "Rohkem abi teie Mac%@-seadme jaoks", + $LANDING_HIDE_TOC$: "Peida teemad", + $LANDING_SHOW_TOC$: "Kuva teemad", + $QUICK_LINKS_LABEL$: "Kiirlingid", + $CONNECT_TO_INTERNET$: "

    Abi vaatamiseks peab teil olema Interneti-ühendus.

    ", + $VIDEO_PLAY$: "Esita video", + $VIDEO_PAUSE$: "Peata video", + $VIDEO_REPLAY: "Esita video uuesti" + }, + fi: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Seuraava", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Edellinen", + $MODAL_CLOSE_BUTTON$: "Sulje", + $LANGUAGE_MENU_LABEL$: "Vaihda kieltä", + $SEARCH_BUTTON_LABEL$: "Etsi", + $SEARCH_BOOK_LABEL$: "Etsi sisällöstä %@", + $SEARCH_FIELD_PLACEHOLDER$: "Etsi", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ tulosta haulla ”%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ tulos haulla ”%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Nollaa", + $TOC_BUTTON_LABEL_HIDE$: "Kätke sisällysluettelo", + $TOC_BUTTON_LABEL_SHOW$: "Näytä sisällysluettelo", + $TOC_LABEL$: "Sisällysluettelo", + $TOPIC_LOAD_ERROR$: "Valittu aihe ei ole tällä hetkellä käytettävissä", + $TOC_MORE_HELP$: "Lisää ohjeita tuotteelle Mac%@", + $LANDING_HIDE_TOC$: "Kätke aiheet", + $LANDING_SHOW_TOC$: "Näytä aiheet", + $QUICK_LINKS_LABEL$: "Pikalinkit", + $CONNECT_TO_INTERNET$: "

    Sinun on oltava yhteydessä internetiin, jotta voit käyttää ohjetta.

    ", + $VIDEO_PLAY$: "Toista video", + $VIDEO_PAUSE$: "Keskeytä video", + $VIDEO_REPLAY: "Toista video uudelleen" + }, + fr: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Suivant", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Précédent", + $MODAL_CLOSE_BUTTON$: "Fermer", + $LANGUAGE_MENU_LABEL$: "Changer de langue", + $SEARCH_BUTTON_LABEL$: "Rechercher", + $SEARCH_BOOK_LABEL$: "Rechercher dans %@", + $SEARCH_FIELD_PLACEHOLDER$: "Rechercher dans l’aide", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ résultats pour « %@ »", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ résultat pour « %@ »", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Réinitialiser", + $TOC_BUTTON_LABEL_HIDE$: "Masquer la table des matières", + $TOC_BUTTON_LABEL_SHOW$: "Afficher la table des matières", + $TOC_LABEL$: "Table des matières", + $TOPIC_LOAD_ERROR$: "La rubrique sélectionnée est actuellement indisponible.", + $TOC_MORE_HELP$: "Plus d’aide pour votre Mac%@", + $LANDING_HIDE_TOC$: "Masquer les rubriques", + $LANDING_SHOW_TOC$: "Afficher les rubriques", + $QUICK_LINKS_LABEL$: "Raccourcis", + $CONNECT_TO_INTERNET$: "

    Pour consulter l’aide, vous devez être connecté à Internet.

    ", + $VIDEO_PLAY$: "Lire la vidéo", + $VIDEO_PAUSE$: "Suspendre la vidéo", + $VIDEO_REPLAY: "Relire la vidéo" + }, + "fr-ca": { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Suivant", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Retour", + $MODAL_CLOSE_BUTTON$: "Fermer", + $LANGUAGE_MENU_LABEL$: "Changer de langue", + $SEARCH_BUTTON_LABEL$: "Rechercher", + $SEARCH_BOOK_LABEL$: "Recherche %@", + $SEARCH_FIELD_PLACEHOLDER$: "Rechercher dans l’aide", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ résultats pour « %@ »", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ résultat pour « %@ »", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Réinitialiser", + $TOC_BUTTON_LABEL_HIDE$: "Masquer la table des matières", + $TOC_BUTTON_LABEL_SHOW$: "Afficher la table des matières", + $TOC_LABEL$: "Table des matières", + $TOPIC_LOAD_ERROR$: "Le sujet sélectionné est actuellement indisponible.", + $TOC_MORE_HELP$: "Plus d’aide pour votre Mac%@", + $LANDING_HIDE_TOC$: "Masquer les sujets", + $LANDING_SHOW_TOC$: "Afficher les sujets", + $QUICK_LINKS_LABEL$: "Liens rapides", + $CONNECT_TO_INTERNET$: "

    Vous devez être connecté à Internet pour consulter l’aide.

    ", + $VIDEO_PLAY$: "Lire la vidéo", + $VIDEO_PAUSE$: "Suspendre la vidéo", + $VIDEO_REPLAY: "Relire la vidéo" + }, + he: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "הבא", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "הקודם", + $MODAL_CLOSE_BUTTON$: "סגור", + $LANGUAGE_MENU_LABEL$: "החלף שפה", + $SEARCH_BUTTON_LABEL$: "חיפוש", + $SEARCH_BOOK_LABEL$: "חפש ב-%@", + $SEARCH_FIELD_PLACEHOLDER$: "חיפוש", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ תוצאות עבור ״%@״", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ תוצאות עבור ״%@״", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "אפס", + $TOC_BUTTON_LABEL_HIDE$: "הסתר את תוכן העניינים", + $TOC_BUTTON_LABEL_SHOW$: "הצג את תוכן העניינים", + $TOC_LABEL$: "תוכן העניינים", + $TOPIC_LOAD_ERROR$: "הנושא שנבחר אינו זמין כעת.", + $TOC_MORE_HELP$: "עזרה נוספת עבור ה-Mac שלך%@", + $LANDING_HIDE_TOC$: "הסתר נושאים", + $LANDING_SHOW_TOC$: "הצג נושאים", + $QUICK_LINKS_LABEL$: "קישורים מהירים", + $CONNECT_TO_INTERNET$: "

    להצגת עזרה, עליך להיות מחובר/ת לאינטרנט.

    ", + $VIDEO_PLAY$: "נגן וידאו", + $VIDEO_PAUSE$: "השהה וידאו", + $VIDEO_REPLAY: "נגן שוב וידאו" + }, + hi: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "अगला", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "पिछला", + $MODAL_CLOSE_BUTTON$: "बंद करें", + $LANGUAGE_MENU_LABEL$: "भाषा बदलें", + $SEARCH_BUTTON_LABEL$: "खोजें", + $SEARCH_BOOK_LABEL$: "%@ खोजें", + $SEARCH_FIELD_PLACEHOLDER$: "सहायता खोजें", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "“%@2” के लिए %@1 परिणाम", + $SEARCH_RESULT_COUNT_SINGLE$: "“%@2” के लिए %@1 परिणाम", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "रीसेट करें", + $TOC_BUTTON_LABEL_HIDE$: "कॉन्टेंट तालिका छिपाएँ", + $TOC_BUTTON_LABEL_SHOW$: "कॉन्टेंट तालिका दिखाएँ", + $TOC_LABEL$: "कॉन्टेंट तालिका", + $TOPIC_LOAD_ERROR$: "चयनित विषय वर्तमान में अनुपलब्ध है", + $TOC_MORE_HELP$: "आपके Mac%@ के लिए अधिक सहायता", + $LANDING_HIDE_TOC$: "विषय छिपाएँ", + $LANDING_SHOW_TOC$: "विषय दिखाएँ", + $QUICK_LINKS_LABEL$: "त्वरित लिंक", + $CONNECT_TO_INTERNET$: "

    सहायता देखने के लिए आपका इंटरनेट से कनेक्टेड होना आवश्यक है।

    ", + $VIDEO_PLAY$: "वीडियो चलाएँ", + $VIDEO_PAUSE$: "वीडियो को विराम दें", + $VIDEO_REPLAY: "वीडियो पुनः चलाएँ" + }, + hr: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Sljedeće", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Prethodno", + $MODAL_CLOSE_BUTTON$: "Zatvori", + $LANGUAGE_MENU_LABEL$: "Promijeni jezik", + $SEARCH_BUTTON_LABEL$: "Pretraži", + $SEARCH_BOOK_LABEL$: "Pretraži %@", + $SEARCH_FIELD_PLACEHOLDER$: "Pretraži Pomoć", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ rezultata za “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ rezultat za “%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Resetiraj", + $TOC_BUTTON_LABEL_HIDE$: "Sakrij kazalo sadržaja", + $TOC_BUTTON_LABEL_SHOW$: "Prikaži kazalo sadržaja", + $TOC_LABEL$: "Kazalo sadržaja", + $TOPIC_LOAD_ERROR$: "Odabrana tema trenutačno nije dostupna", + $TOC_MORE_HELP$: "Dodatna pomoć za vaš Mac%@", + $LANDING_HIDE_TOC$: "Sakrij teme", + $LANDING_SHOW_TOC$: "Prikaži teme", + $QUICK_LINKS_LABEL$: "Brzi linkovi", + $CONNECT_TO_INTERNET$: "

    Za prikaz pomoći morate biti spojeni na Internet.

    ", + $VIDEO_PLAY$: "Reprodukcija videozapisa", + $VIDEO_PAUSE$: "Pauziranje videozapisa", + $VIDEO_REPLAY: "Ponovna reprodukcija videozapisa" + }, + hu: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Következő", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Előző", + $MODAL_CLOSE_BUTTON$: "Bezárás", + $LANGUAGE_MENU_LABEL$: "Nyelv módosítása", + $SEARCH_BUTTON_LABEL$: "Keresés", + $SEARCH_BOOK_LABEL$: "A(z) %@ keresése", + $SEARCH_FIELD_PLACEHOLDER$: "Keresés a súgóban", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ eredmény a következőre: „%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ találat a következőre: „ %@ ”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Alaphelyzetbe állítás", + $TOC_BUTTON_LABEL_HIDE$: "Tartalomjegyzék elrejtése", + $TOC_BUTTON_LABEL_SHOW$: "Tartalomjegyzék megjelenítése", + $TOC_LABEL$: "Tartalomjegyzék", + $TOPIC_LOAD_ERROR$: "A kijelölt témakör jelenleg nem érhető el.", + $TOC_MORE_HELP$: "További segítség Mac gépéhez%@", + $LANDING_HIDE_TOC$: "Témakörök elrejtése", + $LANDING_SHOW_TOC$: "Témakörök megjelenítése", + $QUICK_LINKS_LABEL$: "Gyorshivatkozások", + $CONNECT_TO_INTERNET$: "

    A súgó megtekintéséhez csatlakoznia kell az internethez.

    ", + $VIDEO_PLAY$: "Videó lejátszása", + $VIDEO_PAUSE$: "Videó szüneteltetése", + $VIDEO_REPLAY: "Videó ismételt lejátszása" + }, + id: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Berikutnya", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Sebelumnya", + $MODAL_CLOSE_BUTTON$: "Tutup", + $LANGUAGE_MENU_LABEL$: "Ubah Bahasa", + $SEARCH_BUTTON_LABEL$: "Cari", + $SEARCH_BOOK_LABEL$: "Cari di %@", + $SEARCH_FIELD_PLACEHOLDER$: "Cari di Bantuan", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ hasil untuk “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ hasil untuk “%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Atur Ulang", + $TOC_BUTTON_LABEL_HIDE$: "Sembunyikan daftar isi", + $TOC_BUTTON_LABEL_SHOW$: "Tampilkan daftar isi", + $TOC_LABEL$: "Daftar isi", + $TOPIC_LOAD_ERROR$: "Topik yang dipilih saat ini tidak tersedia", + $TOC_MORE_HELP$: "Bantuan lainnya untuk Mac%@ Anda", + $LANDING_HIDE_TOC$: "Sembunyikan topik", + $LANDING_SHOW_TOC$: "Tampilkan topik", + $QUICK_LINKS_LABEL$: "Tautan Cepat", + $CONNECT_TO_INTERNET$: "

    Untuk melihat bantuan, Anda harus terhubung ke Internet.

    ", + $VIDEO_PLAY$: "Putar video", + $VIDEO_PAUSE$: "Jeda video", + $VIDEO_REPLAY: "Putar ulang video" + }, + it: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Avanti", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Indietro", + $MODAL_CLOSE_BUTTON$: "Chiudi", + $LANGUAGE_MENU_LABEL$: "Cambia lingua", + $SEARCH_BUTTON_LABEL$: "Cerca", + $SEARCH_BOOK_LABEL$: "Cerca in %@", + $SEARCH_FIELD_PLACEHOLDER$: "Cerca", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ risultati per “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ risultato per “%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Inizializza", + $TOC_BUTTON_LABEL_HIDE$: "Nascondi indice", + $TOC_BUTTON_LABEL_SHOW$: "Mostra indice", + $TOC_LABEL$: "Indice", + $TOPIC_LOAD_ERROR$: "L'argomento selezionato non è al momento disponibile.", + $TOC_MORE_HELP$: "Altro aiuto per il tuo Mac%@", + $LANDING_HIDE_TOC$: "Nascondi argomenti", + $LANDING_SHOW_TOC$: "Mostra argomenti", + $QUICK_LINKS_LABEL$: "Link veloci", + $CONNECT_TO_INTERNET$: "

    Per visualizzare l'aiuto, devi essere connesso a Internet.

    ", + $VIDEO_PLAY$: "Riproduzione del video", + $VIDEO_PAUSE$: "Pausa del video", + $VIDEO_REPLAY: "Nuova riproduzione del video" + }, + ja: { + $NO_WORD_BREAKS$: !0, + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "次へ", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "前へ", + $MODAL_CLOSE_BUTTON$: "閉じる", + $LANGUAGE_MENU_LABEL$: "言語を変更", + $SEARCH_BUTTON_LABEL$: "検索", + $SEARCH_BOOK_LABEL$: "%@を検索", + $SEARCH_FIELD_PLACEHOLDER$: "ヘルプを検索", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "“%@2”の結果 %@1 件", + $SEARCH_RESULT_COUNT_SINGLE$: "“%@2”の結果 %@1 件", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "リセット", + $TOC_BUTTON_LABEL_HIDE$: "目次を隠す", + $TOC_BUTTON_LABEL_SHOW$: "目次を表示", + $TOC_LABEL$: "目次", + $TOPIC_LOAD_ERROR$: "選択したトピックは現在利用できません", + $TOC_MORE_HELP$: "Mac%@のその他のヘルプ", + $LANDING_HIDE_TOC$: "トピックを隠す", + $LANDING_SHOW_TOC$: "トピックを表示", + $QUICK_LINKS_LABEL$: "クイックリンク", + $CONNECT_TO_INTERNET$: "

    ヘルプを見るには、インターネットに接続する必要があります。

    ", + $VIDEO_PLAY$: "ビデオを再生", + $VIDEO_PAUSE$: "ビデオを一時停止", + $VIDEO_REPLAY: "ビデオをもう一度再生" + }, + kk: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Келесі", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Алдыңғы", + $MODAL_CLOSE_BUTTON$: "Жабу", + $LANGUAGE_MENU_LABEL$: "Тілді өзгерту", + $SEARCH_BUTTON_LABEL$: "Іздеу", + $SEARCH_BOOK_LABEL$: "%@ ішінен іздеу", + $SEARCH_FIELD_PLACEHOLDER$: "Анықтама іздеу", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "“%@” үшін %@ нәтиже", + $SEARCH_RESULT_COUNT_SINGLE$: "“%@” үшін %@ нәтиже", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Қайта орнату", + $TOC_BUTTON_LABEL_HIDE$: "Мазмұнды жасыру", + $TOC_BUTTON_LABEL_SHOW$: "Мазмұнды көрсету", + $TOC_LABEL$: "Мазмұны", + $TOPIC_LOAD_ERROR$: "Таңдалған тақырып қазір қолжетімді емес", + $TOC_MORE_HELP$: "Mac компьютеріңіз үшін қосымша анықтама%@", + $LANDING_HIDE_TOC$: "Тақырыптарды жасыру", + $LANDING_SHOW_TOC$: "Тақырыптарды көрсету", + $QUICK_LINKS_LABEL$: "Жылдам сілтемелер", + $CONNECT_TO_INTERNET$: "

    Анықтаманы қарау үшін Интернетке қосылуыңыз керек.

    ", + $VIDEO_PLAY$: "Бейнені ойнату", + $VIDEO_PAUSE$: "Бейнені уақытша тоқтату", + $VIDEO_REPLAY: "Бейнені қайта ойнату" + }, + ko: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "다음", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "이전", + $MODAL_CLOSE_BUTTON$: "닫기", + $LANGUAGE_MENU_LABEL$: "언어 변경", + $SEARCH_BUTTON_LABEL$: "검색", + $SEARCH_BOOK_LABEL$: "%@ 검색", + $SEARCH_FIELD_PLACEHOLDER$: "도움말 검색", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@개의 ‘%@’에 대한 결과", + $SEARCH_RESULT_COUNT_SINGLE$: "%@개의 ‘%@’에 대한 결과", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "재설정", + $TOC_BUTTON_LABEL_HIDE$: "목차 가리기", + $TOC_BUTTON_LABEL_SHOW$: "목차 보기", + $TOC_LABEL$: "목차", + $TOPIC_LOAD_ERROR$: "선택한 주제를 지금 사용할 수 없습니다.", + $TOC_MORE_HELP$: "추가 Mac 도움말%@", + $LANDING_HIDE_TOC$: "주제 가리기", + $LANDING_SHOW_TOC$: "주제 보기", + $QUICK_LINKS_LABEL$: "빠른 링크", + $CONNECT_TO_INTERNET$: "

    도움말을 보려면 인터넷에 연결되어 있어야 합니다.

    ", + $VIDEO_PLAY$: "비디오 재생", + $VIDEO_PAUSE$: "비디오 일시 정지", + $VIDEO_REPLAY: "비디오 다시 재생" + }, + lt: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Kitas", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Ankstesnis", + $MODAL_CLOSE_BUTTON$: "Uždaryti", + $LANGUAGE_MENU_LABEL$: "Keisti kalbą", + $SEARCH_BUTTON_LABEL$: "Ieškoti", + $SEARCH_BOOK_LABEL$: "Paieska %@", + $SEARCH_FIELD_PLACEHOLDER$: "Ieškoti žinyne", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "Rezultatų pagal „%@“: %@", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ rezultatas pagal „%@“", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Nustatyti iš naujo", + $TOC_BUTTON_LABEL_HIDE$: "Slėpti turinį", + $TOC_BUTTON_LABEL_SHOW$: "Rodyti turinį", + $TOC_LABEL$: "Turinys", + $TOPIC_LOAD_ERROR$: "Pasirinkta tema šiuo metu negalima", + $TOC_MORE_HELP$: "Pagalba jūsų „Mac“%@", + $LANDING_HIDE_TOC$: "Slėpti temas", + $LANDING_SHOW_TOC$: "Rodyti temas", + $QUICK_LINKS_LABEL$: "Sparčiosios nuorodos", + $CONNECT_TO_INTERNET$: "

    Norėdami peržiūrėti pagalbos puslapį, turite prisijungti prie interneto.

    ", + $VIDEO_PLAY$: "Paleisti vaizdo įrašą", + $VIDEO_PAUSE$: "Pristabdyti vaizdo įrašą", + $VIDEO_REPLAY: "Vėl paleisti vaizdo įrašą" + }, + lv: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Nākamā", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Iepriekšējā", + $MODAL_CLOSE_BUTTON$: "Aizvērt", + $LANGUAGE_MENU_LABEL$: "Mainīt valodu", + $SEARCH_BUTTON_LABEL$: "Meklēt", + $SEARCH_BOOK_LABEL$: "Meklēt: %@", + $SEARCH_FIELD_PLACEHOLDER$: "Meklēt palīdzībā", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ rezultāti, meklējot “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ rezultāts, meklējot “%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Atiestatīt", + $TOC_BUTTON_LABEL_HIDE$: "Paslēpt satura rādītāju", + $TOC_BUTTON_LABEL_SHOW$: "Parādīt satura rādītāju", + $TOC_LABEL$: "Satura rādītājs", + $TOPIC_LOAD_ERROR$: "Atlasītā tēma patlaban nav pieejama", + $TOC_MORE_HELP$: "Papildu palīdzība jūsu Mac%@ datoram", + $LANDING_HIDE_TOC$: "Slēpt tēmas", + $LANDING_SHOW_TOC$: "Rādīt tēmas", + $QUICK_LINKS_LABEL$: "Ātrās saites", + $CONNECT_TO_INTERNET$: "

    Lai skatītu palīdzību, nepieciešams interneta savienojums.

    ", + $VIDEO_PLAY$: "Atskaņot video", + $VIDEO_PAUSE$: "Pauzēt video", + $VIDEO_REPLAY: "Atkārtot video" + }, + ms: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Seterusnya", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Sebelumnya", + $MODAL_CLOSE_BUTTON$: "Tutup", + $LANGUAGE_MENU_LABEL$: "Tukar Bahasa", + $SEARCH_BUTTON_LABEL$: "Cari", + $SEARCH_BOOK_LABEL$: "Cari %@", + $SEARCH_FIELD_PLACEHOLDER$: "Cari Bantuan", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ hasil untuk “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ hasil untuk “%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Reset", + $TOC_BUTTON_LABEL_HIDE$: "Sembunyikan senarai kandungan", + $TOC_BUTTON_LABEL_SHOW$: "Tunjukkan senarai kandungan", + $TOC_LABEL$: "Senarai kandungan", + $TOPIC_LOAD_ERROR$: "Topik yang dipilih tidak tersedia sekarang", + $TOC_MORE_HELP$: "Bantuan lanjut untuk Mac%@ anda", + $LANDING_HIDE_TOC$: "Sembunyikan topik", + $LANDING_SHOW_TOC$: "Tunjukkan topik", + $QUICK_LINKS_LABEL$: "Pautan Cepat", + $CONNECT_TO_INTERNET$: "

    Untuk melihat bantuan, anda mesti bersambung ke Internet.

    ", + $VIDEO_PLAY$: "Main video", + $VIDEO_PAUSE$: "Jeda video", + $VIDEO_REPLAY: "Main semula video" + }, + nb: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Neste", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Forrige", + $MODAL_CLOSE_BUTTON$: "Lukk", + $LANGUAGE_MENU_LABEL$: "Bytt språk", + $SEARCH_BUTTON_LABEL$: "Søk", + $SEARCH_BOOK_LABEL$: "Søk i %@", + $SEARCH_FIELD_PLACEHOLDER$: "Søk i hjelp", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ treff for “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ treff for «%@»", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Nullstill", + $TOC_BUTTON_LABEL_HIDE$: "Skjul innholdsfortegnelse", + $TOC_BUTTON_LABEL_SHOW$: "Vis innholdsfortegnelse", + $TOC_LABEL$: "Innholdsfortegnelse", + $TOPIC_LOAD_ERROR$: "Det valgte emnet er ikke tilgjengelig for øyeblikket", + $TOC_MORE_HELP$: "Mer hjelp for Mac%@", + $LANDING_HIDE_TOC$: "Skjul emner", + $LANDING_SHOW_TOC$: "Vis emner", + $QUICK_LINKS_LABEL$: "Hurtigkoblinger", + $CONNECT_TO_INTERNET$: "

    Du må være koblet til Internett for å vise hjelp.

    ", + $VIDEO_PLAY$: "Spill av video", + $VIDEO_PAUSE$: "Sett video på pause", + $VIDEO_REPLAY: "Spill av video på nytt" + }, + nl: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Volgende", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Vorige", + $MODAL_CLOSE_BUTTON$: "Sluit", + $LANGUAGE_MENU_LABEL$: "Wijzig taal", + $SEARCH_BUTTON_LABEL$: "Zoek", + $SEARCH_BOOK_LABEL$: "Zoek in %@", + $SEARCH_FIELD_PLACEHOLDER$: "Zoek in Help", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ resultaten voor “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ resultaat voor '%@'", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Herstel", + $TOC_BUTTON_LABEL_HIDE$: "Verberg inhoudsopgave", + $TOC_BUTTON_LABEL_SHOW$: "Toon inhoudsopgave", + $TOC_LABEL$: "Inhoudsopgave", + $TOPIC_LOAD_ERROR$: "Het geselecteerde onderwerp is momenteel niet beschikbaar", + $TOC_MORE_HELP$: "Meer Help voor de Mac%@", + $LANDING_HIDE_TOC$: "Verberg onderwerpen", + $LANDING_SHOW_TOC$: "Toon onderwerpen", + $QUICK_LINKS_LABEL$: "Snelkoppelingen", + $CONNECT_TO_INTERNET$: "

    Om helpinformatie weer te geven, heb je verbinding met het internet nodig.

    ", + $VIDEO_PLAY$: "Speel video af", + $VIDEO_PAUSE$: "Pauzeer video", + $VIDEO_REPLAY: "Speel video opnieuw af" + }, + pl: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Dalej", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Wstecz", + $MODAL_CLOSE_BUTTON$: "Zamknij", + $LANGUAGE_MENU_LABEL$: "Zmień język", + $SEARCH_BUTTON_LABEL$: "Szukaj", + $SEARCH_BOOK_LABEL$: "Szukaj %@", + $SEARCH_FIELD_PLACEHOLDER$: "Szukaj w Pomocy", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "Wyniki (%@) z „%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ wynik z „%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Wyzeruj", + $TOC_BUTTON_LABEL_HIDE$: "Ukryj spis treści", + $TOC_BUTTON_LABEL_SHOW$: "Pokaż spis treści", + $TOC_LABEL$: "Spis treści", + $TOPIC_LOAD_ERROR$: "Wybrany temat jest aktualnie niedostępny", + $TOC_MORE_HELP$: "Więcej tematów pomocy Maca%@", + $LANDING_HIDE_TOC$: "Ukryj tematy", + $LANDING_SHOW_TOC$: "Pokaż tematy", + $QUICK_LINKS_LABEL$: "Użyteczne łącza", + $CONNECT_TO_INTERNET$: "

    Aby wyświetlić Pomoc, komputer musi być połączony z Internetem.

    ", + $VIDEO_PLAY$: "Odtwórz wideo", + $VIDEO_PAUSE$: "Wstrzymaj wideo", + $VIDEO_REPLAY: "Odtwórz ponownie wideo" + }, + pt: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Seguinte", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Anterior", + $MODAL_CLOSE_BUTTON$: "Fechar", + $LANGUAGE_MENU_LABEL$: "Alterar Idioma", + $SEARCH_BUTTON_LABEL$: "Buscar", + $SEARCH_BOOK_LABEL$: "Buscar em %@", + $SEARCH_FIELD_PLACEHOLDER$: "Buscar na Ajuda", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ resultados para “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ resultado para “%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Redefinir", + $TOC_BUTTON_LABEL_HIDE$: "Ocultar índice", + $TOC_BUTTON_LABEL_SHOW$: "Mostrar índice", + $TOC_LABEL$: "Índice", + $TOPIC_LOAD_ERROR$: "O tema selecionado está indisponível no momento", + $TOC_MORE_HELP$: "Mais ajuda sobre o Mac%@", + $LANDING_HIDE_TOC$: "Ocultar temas", + $LANDING_SHOW_TOC$: "Mostrar temas", + $QUICK_LINKS_LABEL$: "Links Rápidos", + $CONNECT_TO_INTERNET$: "

    Para visualizar a ajuda, é preciso ter uma conexão à Internet.

    ", + $VIDEO_PLAY$: "Reproduzir vídeo", + $VIDEO_PAUSE$: "Pausar vídeo", + $VIDEO_REPLAY: "Reproduzir vídeo" + }, + "pt-pt": { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Seguinte", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Anterior", + $MODAL_CLOSE_BUTTON$: "Fechar", + $LANGUAGE_MENU_LABEL$: "Alterar idioma", + $RESET_SEARCH_BUTTON_LABEL$: "Repor", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ resultados para “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ resultado para “%@”", + $SEARCH_BUTTON_LABEL$: "Pesquisar", + $SEARCH_BOOK_LABEL$: "Pesquisar %@", + $SEARCH_FIELD_PLACEHOLDER$: "Pesquisar", + $TOC_BUTTON_LABEL_HIDE$: "Ocultar índice", + $TOC_BUTTON_LABEL_SHOW$: "Mostrar índice", + $TOC_LABEL$: "Índice", + $TOPIC_LOAD_ERROR$: "O tópico selecionado não está disponível atualmente", + $TOC_MORE_HELP$: "Mais ajuda para o seu Mac%@", + $LANDING_HIDE_TOC$: "Ocultar tópicos", + $LANDING_SHOW_TOC$: "Mostrar tópicos", + $QUICK_LINKS_LABEL$: "Ligações rápidas", + $CONNECT_TO_INTERNET$: "

    Necessita de uma ligação ativa à Internet para visualizar a ajuda.

    ", + $VIDEO_PLAY$: "Reproduzir vídeo", + $VIDEO_PAUSE$: "Pausar vídeo", + $VIDEO_REPLAY: "Repetir vídeo" + }, + ro: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Înainte", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Înapoi", + $MODAL_CLOSE_BUTTON$: "Închideți", + $LANGUAGE_MENU_LABEL$: "Schimbați limba", + $SEARCH_BUTTON_LABEL$: "Căutați", + $SEARCH_BOOK_LABEL$: "Căutați în %@", + $SEARCH_FIELD_PLACEHOLDER$: "Căutare", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ rezultate pentru “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ rezultat pentru “%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Resetați", + $TOC_BUTTON_LABEL_HIDE$: "Ascundeți tabla de materii", + $TOC_BUTTON_LABEL_SHOW$: "Afișați tabla de materii", + $TOC_LABEL$: "Tablă de materii", + $TOPIC_LOAD_ERROR$: "Subiectul selectat este momentan indisponibil", + $TOC_MORE_HELP$: "Ajutor suplimentar pentru Mac-ul dvs%@", + $LANDING_HIDE_TOC$: "Ascundeți subiectele", + $LANDING_SHOW_TOC$: "Afișați subiectele", + $QUICK_LINKS_LABEL$: "Linkuri rapide", + $CONNECT_TO_INTERNET$: "

    Pentru a vizualiza ajutorul, trebuie să vă conectați la Internet.

    ", + $VIDEO_PLAY$: "Redare video", + $VIDEO_PAUSE$: "Suspendare video", + $VIDEO_REPLAY: "Reluare video" + }, + ru: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Вперед", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Назад", + $MODAL_CLOSE_BUTTON$: "Закрыть", + $LANGUAGE_MENU_LABEL$: "Сменить язык", + $SEARCH_BUTTON_LABEL$: "Искать", + $SEARCH_BOOK_LABEL$: "Искать %@", + $SEARCH_FIELD_PLACEHOLDER$: "Искать в Справке", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "Результатов поиска «%@2»: %@1", + $SEARCH_RESULT_COUNT_SINGLE$: "Результатов поиска «%@2»: %@1", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Сбросить", + $TOC_BUTTON_LABEL_HIDE$: "Скрыть оглавление", + $TOC_BUTTON_LABEL_SHOW$: "Показать оглавление", + $TOC_LABEL$: "Оглавление", + $TOPIC_LOAD_ERROR$: "Выбранная тема сейчас недоступна", + $TOC_MORE_HELP$: "Другие темы Справки для Mac%@", + $LANDING_HIDE_TOC$: "Скрыть темы", + $LANDING_SHOW_TOC$: "Показать темы", + $QUICK_LINKS_LABEL$: "Быстрые ссылки", + $CONNECT_TO_INTERNET$: "

    Чтобы посмотреть Справку, требуется подключение к сети Интернет.

    ", + $VIDEO_PLAY$: "Воспроизвести видео", + $VIDEO_PAUSE$: "Остановить видео", + $VIDEO_REPLAY: "Снова воспроизвести видео" + }, + sk: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Ďalšie", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Predošlé", + $MODAL_CLOSE_BUTTON$: "Zatvoriť", + $LANGUAGE_MENU_LABEL$: "Zmeniť jazyk", + $SEARCH_BUTTON_LABEL$: "Vyhľadať", + $SEARCH_BOOK_LABEL$: "Prehľadať: %@", + $SEARCH_FIELD_PLACEHOLDER$: "Prehľadať pomocníka", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "Výsledky pre „%@2“: %@1", + $SEARCH_RESULT_COUNT_SINGLE$: "Výsledky pre „%@2“: %@1", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Resetovať", + $TOC_BUTTON_LABEL_HIDE$: "Skryť obsah", + $TOC_BUTTON_LABEL_SHOW$: "Zobraziť obsah", + $TOC_LABEL$: "Obsah", + $TOPIC_LOAD_ERROR$: "Vybraná téma je momentálne nedostupná", + $TOC_MORE_HELP$: "Ďalšia pomoc pre váš Mac%@", + $LANDING_HIDE_TOC$: "Skryť témy", + $LANDING_SHOW_TOC$: "Zobraziť témy", + $QUICK_LINKS_LABEL$: "Rýchle odkazy", + $CONNECT_TO_INTERNET$: "

    Ak chcete zobraziť pomocníka, musíte mať pripojenie na internet.

    ", + $VIDEO_PLAY$: "Prehrať video", + $VIDEO_PAUSE$: "Pozastaviť video", + $VIDEO_REPLAY: "Znovu prehrať video" + }, + sl: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Naprej", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Nazaj", + $MODAL_CLOSE_BUTTON$: "Zapri", + $LANGUAGE_MENU_LABEL$: "Spremeni jezik", + $SEARCH_BUTTON_LABEL$: "Išči", + $SEARCH_BOOK_LABEL$: "Išči v %@", + $SEARCH_FIELD_PLACEHOLDER$: "Išči po pomoči", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ rezultatov za “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ rezultat za “%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Ponastavi", + $TOC_BUTTON_LABEL_HIDE$: "Skrij kazalo vsebine ", + $TOC_BUTTON_LABEL_SHOW$: "Prikaži kazalo vsebine", + $TOC_LABEL$: "Kazalo vsebine", + $TOPIC_LOAD_ERROR$: "Izbrana tema trenutno ni na voljo", + $TOC_MORE_HELP$: "Več pomoči za vaš Mac%@", + $LANDING_HIDE_TOC$: "Skrij teme", + $LANDING_SHOW_TOC$: "Prikaži teme", + $QUICK_LINKS_LABEL$: "Hitre povezave", + $CONNECT_TO_INTERNET$: "

    Za ogled pomoči morate biti povezani z internetom.

    ", + $VIDEO_PLAY$: "Predvajaj video", + $VIDEO_PAUSE$: "Začasno ustavi video", + $VIDEO_REPLAY: "Znova predvajaj video" + }, + sq: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Përpara", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Prapa", + $MODAL_CLOSE_BUTTON$: "Mbylle", + $LANGUAGE_MENU_LABEL$: "Ndrysho gjuhën", + $SEARCH_BUTTON_LABEL$: "Kërko", + $SEARCH_BOOK_LABEL$: "Kerko te %@", + $SEARCH_FIELD_PLACEHOLDER$: "Kërko", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ rezultate për “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ rezultat për “%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Rivendos", + $TOC_BUTTON_LABEL_HIDE$: "Fshih tabelën e përmbajtjes", + $TOC_BUTTON_LABEL_SHOW$: "Shfaq tabelën e përmbajtjes", + $TOC_LABEL$: "Përmbajtja", + $TOPIC_LOAD_ERROR$: "Tema e zgjedhur është aktualisht e padisponueshme", + $TOC_MORE_HELP$: "Më shumë ndihmë për kompjuterin tënd Mac%@", + $LANDING_HIDE_TOC$: "Fshih temat", + $LANDING_SHOW_TOC$: "Shfaq temat", + $QUICK_LINKS_LABEL$: "Lidhjet e shpejta", + $CONNECT_TO_INTERNET$: "

    Për të parë ndihmën, duhet të jesh i lidhur me internetin.

    ", + $VIDEO_PLAY$: "Luaj videon", + $VIDEO_PAUSE$: "Vendos videon në pauzë", + $VIDEO_REPLAY: "Luaje videon sërish" + }, + sr: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Следеће", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Претходно", + $MODAL_CLOSE_BUTTON$: "Затвори", + $LANGUAGE_MENU_LABEL$: "Промени језик", + $SEARCH_BUTTON_LABEL$: "Претрага", + $SEARCH_BOOK_LABEL$: "Тражи %@", + $SEARCH_FIELD_PLACEHOLDER$: "Претрага помоћи", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ резултата за “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ резултат за „%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Ресетуј", + $TOC_BUTTON_LABEL_HIDE$: "Сакриј садржај", + $TOC_BUTTON_LABEL_SHOW$: "Прикажи садржај", + $TOC_LABEL$: "Садржај", + $TOPIC_LOAD_ERROR$: "Одабрана тема тренутно није доступна", + $TOC_MORE_HELP$: "Више помоћи за ваш Mac%@", + $LANDING_HIDE_TOC$: "Сакриј теме", + $LANDING_SHOW_TOC$: "Прикажи теме", + $QUICK_LINKS_LABEL$: "Брзе везе", + $CONNECT_TO_INTERNET$: "

    Да бисте приказали помоћ, морате бити повезани на интернет.

    ", + $VIDEO_PLAY$: "Репродукуј видео-запис", + $VIDEO_PAUSE$: "Паузирај видео-запис", + $VIDEO_REPLAY: "Поново репродукуј видео-запис" + }, + sv: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Nästa", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Föregående", + $MODAL_CLOSE_BUTTON$: "Stäng", + $LANGUAGE_MENU_LABEL$: "Byt språk", + $SEARCH_BUTTON_LABEL$: "Sök", + $SEARCH_BOOK_LABEL$: "Sök i %@", + $SEARCH_FIELD_PLACEHOLDER$: "Sök", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ träffar för ”%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ träff för ”%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Nollställ", + $TOC_BUTTON_LABEL_HIDE$: "Göm innehållsförteckning", + $TOC_BUTTON_LABEL_SHOW$: "Visa innehållsförteckning", + $TOC_LABEL$: "Innehållsförteckning", + $TOPIC_LOAD_ERROR$: "Det valda ämnet är inte tillgängligt just nu", + $TOC_MORE_HELP$: "Mer hjälp för Mac%@", + $LANDING_HIDE_TOC$: "Göm ämnen", + $LANDING_SHOW_TOC$: "Visa ämnen", + $QUICK_LINKS_LABEL$: "Snabblänkar", + $CONNECT_TO_INTERNET$: "

    Du måste vara ansluten till internet för att använda hjälpen.

    ", + $VIDEO_PLAY$: "Spela video", + $VIDEO_PAUSE$: "Pausa video", + $VIDEO_REPLAY: "Spela video igen" + }, + th: { + $NO_WORD_BREAKS$: !0, + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "ถัดไป", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "ก่อนหน้า", + $MODAL_CLOSE_BUTTON$: "ปิด", + $LANGUAGE_MENU_LABEL$: "เปลี่ยนภาษา", + $SEARCH_BUTTON_LABEL$: "ค้นหา", + $SEARCH_BOOK_LABEL$: "ค้นหา %@", + $SEARCH_FIELD_PLACEHOLDER$: "ค้นหาวิธีใช้", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ ผลลัพธ์สำหรับ “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ ผลลัพธ์สำหรับ “%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "รีเซ็ต", + $TOC_BUTTON_LABEL_HIDE$: "ซ่อนสารบัญ", + $TOC_BUTTON_LABEL_SHOW$: "แสดงสารบัญ", + $TOC_LABEL$: "สารบัญ", + $TOPIC_LOAD_ERROR$: "หัวข้อที่เลือกไม่สามารถใช้งานได้ในขณะนี้", + $TOC_MORE_HELP$: "ความช่วยเหลือเพิ่มเติมสำหรับ Mac ของคุณ%@", + $LANDING_HIDE_TOC$: "ซ่อนหัวข้อ", + $LANDING_SHOW_TOC$: "แสดงหัวข้อ", + $QUICK_LINKS_LABEL$: "ลิงก์ด่วน", + $CONNECT_TO_INTERNET$: "

    คุณต้องเชื่อมต่ออินเทอร์เน็ตเพื่อดูวิธีใช้

    ", + $VIDEO_PLAY$: "เล่นวิดีโอ", + $VIDEO_PAUSE$: "หยุดพักวิดีโอ", + $VIDEO_REPLAY: "เล่นวิดีโอซ้ำ" + }, + tr: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Sonraki", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Önceki", + $MODAL_CLOSE_BUTTON$: "Kapat", + $LANGUAGE_MENU_LABEL$: "Dili Değiştir", + $SEARCH_BUTTON_LABEL$: "Ara", + $SEARCH_BOOK_LABEL$: "Şurada Ara: %@", + $SEARCH_FIELD_PLACEHOLDER$: "Yardım’da Ara", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "“%@2” için %@1 sonuç", + $SEARCH_RESULT_COUNT_SINGLE$: "“%@2” için %@1 sonuç", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Sıfırla", + $TOC_BUTTON_LABEL_HIDE$: "İçindekiler’i gizle", + $TOC_BUTTON_LABEL_SHOW$: "İçindekiler’i göster", + $TOC_LABEL$: "İçindekiler", + $TOPIC_LOAD_ERROR$: "Seçilen konu şu anda yok", + $TOC_MORE_HELP$: "Mac’iniz için daha fazla yardım%@", + $LANDING_HIDE_TOC$: "Konuları gizle", + $LANDING_SHOW_TOC$: "Konuları göster", + $QUICK_LINKS_LABEL$: "Hızlı Bağlantılar", + $CONNECT_TO_INTERNET$: "

    Yardımı görüntülemek için İnternet'e bağlı olmanız gerekir.

    ", + $VIDEO_PLAY$: "Videoyu oynat", + $VIDEO_PAUSE$: "Videoyu duraklat", + $VIDEO_REPLAY: "Videoyu yeniden oynat" + }, + uk: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Вперед", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Назад", + $MODAL_CLOSE_BUTTON$: "Закрити", + $LANGUAGE_MENU_LABEL$: "Змінити мову", + $SEARCH_BUTTON_LABEL$: "Шукати", + $SEARCH_BOOK_LABEL$: "Шукати %@", + $SEARCH_FIELD_PLACEHOLDER$: "Шукати", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "Збігів: %@ для запиту «%@»", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ результат для запиту «%@»", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Скинути", + $TOC_BUTTON_LABEL_HIDE$: "Згорнути зміст", + $TOC_BUTTON_LABEL_SHOW$: "Показати зміст", + $TOC_LABEL$: "Зміст", + $TOPIC_LOAD_ERROR$: "Вибрана тема зараз недоступна.", + $TOC_MORE_HELP$: "Інші розділи довідки для Mac%@", + $LANDING_HIDE_TOC$: "Приховати теми", + $LANDING_SHOW_TOC$: "Показати теми", + $QUICK_LINKS_LABEL$: "Швидкі посилання", + $CONNECT_TO_INTERNET$: "

    Для перегляду довідки потрібне підключення до Інтернету.

    ", + $VIDEO_PLAY$: "Відтворити відео", + $VIDEO_PAUSE$: "Призупинити відео", + $VIDEO_REPLAY: "Ще раз відтворити відео" + }, + vi: { + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "Tiếp", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "Trước", + $MODAL_CLOSE_BUTTON$: "Đóng", + $LANGUAGE_MENU_LABEL$: "Thay đổi ngôn ngữ", + $SEARCH_BUTTON_LABEL$: "Tìm kiếm", + $SEARCH_BOOK_LABEL$: "Tìm kiếm %@", + $SEARCH_FIELD_PLACEHOLDER$: "Tìm kiếm trợ giúp", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ kết quả cho “%@”", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ kết quả cho “%@”", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "Đặt lại", + $TOC_BUTTON_LABEL_HIDE$: "Ẩn bảng mục lục", + $TOC_BUTTON_LABEL_SHOW$: "Hiển thị bảng mục lục", + $TOC_LABEL$: "Bảng mục lục", + $TOPIC_LOAD_ERROR$: "Chủ đề đã chọn hiện không có sẵn", + $TOC_MORE_HELP$: "Trợ giúp khác cho máy Mac%@ của bạn", + $LANDING_HIDE_TOC$: "Ẩn chủ đề", + $LANDING_SHOW_TOC$: "Hiển thị chủ đề", + $QUICK_LINKS_LABEL$: "Liên kết nhanh", + $CONNECT_TO_INTERNET$: "

    Để xem trợ giúp, thiết bị của bạn phải được kết nối vào Internet.

    ", + $VIDEO_PLAY$: "Phát video", + $VIDEO_PAUSE$: "Tạm dừng video", + $VIDEO_REPLAY: "Phát lại video" + }, + zh: { + $NO_WORD_BREAKS$: !0, + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "下一页", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "上一页", + $MODAL_CLOSE_BUTTON$: "关闭", + $LANGUAGE_MENU_LABEL$: "更改语言", + $SEARCH_BUTTON_LABEL$: "搜索", + $SEARCH_BOOK_LABEL$: "搜索 %@", + $SEARCH_FIELD_PLACEHOLDER$: "搜索帮助", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "%@ 个关于“%@”的结果", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ 个关于“%@”的结果", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "还原", + $TOC_BUTTON_LABEL_HIDE$: "隐藏目录", + $TOC_BUTTON_LABEL_SHOW$: "显示目录", + $TOC_LABEL$: "目录", + $TOPIC_LOAD_ERROR$: "所选主题当前不可用", + $TOC_MORE_HELP$: "有关 Mac%@ 的更多帮助", + $LANDING_HIDE_TOC$: "隐藏主题", + $LANDING_SHOW_TOC$: "显示主题", + $QUICK_LINKS_LABEL$: "快速链接", + $CONNECT_TO_INTERNET$: "

    必须接入互联网才能查看帮助。

    ", + $VIDEO_PLAY$: "播放视频", + $VIDEO_PAUSE$: "暂停播放视频", + $VIDEO_REPLAY: "重新播放视频" + }, + "zh-hk": { + $NO_WORD_BREAKS$: !0, + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "下一頁", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "上一頁", + $MODAL_CLOSE_BUTTON$: "關閉", + $LANGUAGE_MENU_LABEL$: "更改語言", + $SEARCH_BUTTON_LABEL$: "搜尋", + $SEARCH_BOOK_LABEL$: "搜尋 %@", + $SEARCH_FIELD_PLACEHOLDER$: "搜尋輔助說明", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "找到 %@ 項「%@」的結果", + $SEARCH_RESULT_COUNT_SINGLE$: "%@ 項「%@」的搜尋結果", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "重置", + $TOC_BUTTON_LABEL_HIDE$: "隱藏目錄", + $TOC_BUTTON_LABEL_SHOW$: "顯示目錄", + $TOC_LABEL$: "目錄", + $TOPIC_LOAD_ERROR$: "目前無法顯示所選的主題", + $TOC_MORE_HELP$: "更多 Mac%@ 的輔助說明", + $LANDING_HIDE_TOC$: "隱藏主題", + $LANDING_SHOW_TOC$: "顯示主題", + $QUICK_LINKS_LABEL$: "快速連結", + $CONNECT_TO_INTERNET$: "

    如要查看輔助說明,你必須已連接互聯網。

    ", + $VIDEO_PLAY$: "播放影片", + $VIDEO_PAUSE$: "暫停影片", + $VIDEO_REPLAY: "重新播放影片" + }, + "zh-tw": { + $NO_WORD_BREAKS$: !0, + $NEXT_TOPIC_BUTTON_LABEL_SHORT$: "下一頁", + $PREV_TOPIC_BUTTON_LABEL_SHORT$: "上一頁", + $MODAL_CLOSE_BUTTON$: "關閉", + $LANGUAGE_MENU_LABEL$: "更改語言", + $SEARCH_BUTTON_LABEL$: "搜尋", + $SEARCH_BOOK_LABEL$: "搜尋「%@」", + $SEARCH_FIELD_PLACEHOLDER$: "搜尋輔助說明", + $SEARCH_RESULTS_COUNT_MULTIPLE$: "找到 %@ 項「%@」的搜尋結果", + $SEARCH_RESULT_COUNT_SINGLE$: "找到 %@ 項「%@」的搜尋結果", + $SEARCH_STRING_RESET_BUTTON_LABEL$: "重置", + $TOC_BUTTON_LABEL_HIDE$: "隱藏目錄", + $TOC_BUTTON_LABEL_SHOW$: "顯示目錄", + $TOC_LABEL$: "目錄", + $TOPIC_LOAD_ERROR$: "目前無法取得所選的主題", + $TOC_MORE_HELP$: "更多 Mac%@ 的輔助說明", + $LANDING_HIDE_TOC$: "隱藏主題", + $LANDING_SHOW_TOC$: "顯示主題", + $QUICK_LINKS_LABEL$: "快速連結", + $CONNECT_TO_INTERNET$: "

    若要檢視輔助說明,您必須連接 Internet。

    ", + $VIDEO_PLAY$: "播放影片", + $VIDEO_PAUSE$: "暫停影片", + $VIDEO_REPLAY: "重新播放影片" + } + }; + return a["en-au"] = a.en, + a["es-us"] = a["es-mx"], + a +}), +define("app", ["shared/app", "app/controller", "app/view", "header/view", "topic/view", "topic/route", "search/view", "toc/view", "shared/computed", "locale/select-view", "feedback/view", "shared/browser", "translations", "shared/base/controller"], function(a, b, c, d, e, f, g, h, i, j, k, l, m, n) { + var o = a.extend({ + TRANSLATIONS: m, + IndexView: e, + TopicView: e, + FeedbackView: k, + FeedbackController: n, + HeaderView: d, + HeaderController: n, + SearchView: g, + LocaleSelectView: j, + LocaleSelectController: n, + TocNavController: n, + TocNavView: h, + ApplicationController: b, + ApplicationView: c, + IndexRoute: f, + TopicRoute: f + }); + return window.App = o.create(), + window.App +}), +require(["app"]); diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/js/middlemac-debug.js b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/js/middlemac-debug.js new file mode 100644 index 0000000..935755a --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/js/middlemac-debug.js @@ -0,0 +1,20 @@ +/* Highlight text that looks like broken markdown reference links. */ + +/* Courtesy Dimitar Nikovski */ +function runAfterElementExists(jquery_selector, callback) { + var checker = window.setInterval(function() { + + if ($(jquery_selector).length) { + + clearInterval(checker); + callback(); + }}, 200); +} + +runAfterElementExists(".topic-page", function() { + var pattern = /(\[.*?\]\[.*?\])/g; + var element = document.getElementsByClassName('topic-page')[0]; + var inner = element.innerHTML; + var newString = inner.replace(pattern, "$&"); + element.innerHTML = newString; +}); \ No newline at end of file diff --git a/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/js/vendor.js b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/js/vendor.js new file mode 100644 index 0000000..94efcb4 --- /dev/null +++ b/helpbook_source/ShipShape.help/Contents/Resources/SharedGlobalAssets/js/vendor.js @@ -0,0 +1,226 @@ +/*! SiteCatalyst code version: H.25. +Copyright 1996-2012 Adobe, Inc. All Rights Reserved +More info available at http://www.omniture.com */ +/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/ +var s_code='',s_objectID;function s_gi(un,pg,ss){var c="s.version='H.25';s.an=s_an;s.logDebug=function(m){var s=this,tcf=new Function('var e;try{console.log(\"'+s.rep(s.rep(s.rep(m,\"\\\\\",\"\\\\\\" ++"\\\"),\"\\n\",\"\\\\n\"),\"\\\"\",\"\\\\\\\"\")+'\");}catch(e){}');tcf()};s.cls=function(x,c){var i,y='';if(!c)c=this.an;for(i=0;i=0)y+=n}return " ++"y};s.fl=function(x,l){return x?(''+x).substring(0,l):x};s.co=function(o){return o};s.num=function(x){x=''+x;for(var p=0;p127){l=0;e='';while(n||l<4){e=h.substring(n%16,n%16+1)+e;n=(n-n%16)/16;l++}y+='%u'+e}else if(c=='+')y+='%2B" ++"';else y+=escape(c)}x=y}else x=escape(''+x);x=s.rep(x,'+','%2B');if(c&&c!='AUTO'&&s.em==1&&x.indexOf('%u')<0&&x.indexOf('%U')<0){i=x.indexOf('%');while(i>=0){i++;if(h.substring(8).indexOf(x.substri" ++"ng(i,i+1).toUpperCase())>=0)return x.substring(0,i)+'u00'+x.substring(i);i=x.indexOf('%',i)}}}return x};s.epa=function(x){var s=this;if(x){x=s.rep(''+x,'+',' ');return s.em==3?decodeURIComponent(x)" ++":unescape(x)}return x};s.pt=function(x,d,f,a){var s=this,t=x,z=0,y,r;while(t){y=t.indexOf(d);y=y<0?t.length:y;t=t.substring(0,y);r=s[f](t,a);if(r)return r;z+=y+d.length;t=x.substring(z,x.length);t=" ++"z=0)a=a.substring(0,c);c=a.indexOf('=');if(c>=0)a=a.substring(0,c);if(t.substring(0,2)=='s_')t=t.substring(2);return (t!=''&&" ++"t==a)};s.fsf=function(t,a){var s=this;if(s.pt(a,',','isf',t))s.fsg+=(s.fsg!=''?',':'')+t;return 0};s.fs=function(x,f){var s=this;s.fsg='';s.pt(x,',','fsf',f);return s.fsg};s.mpc=function(m,a){var s" ++"=this,c,l,n,v;v=s.d.visibilityState;if(!v)v=s.d.webkitVisibilityState;if(v&&v=='prerender'){if(!s.mpq){s.mpq=new Array;l=s.sp('webkitvisibilitychange,visibilitychange',',');for(n=0;n0){c=s.mpq.shift();s[c.m].ap" ++"ply(s,c.a)}s.mpq=0}'),false)}}c=new Object;c.m=m;c.a=a;s.mpq.push(c);return 1}return 0};s.si=function(){var s=this,i,k,v,c=s_gi+'var s=s_gi(\"'+s.oun+'\");s.sa(\"'+s.un+'\");';for(i=0;i2?n:2;p=d.lastIndexOf('.');if(p>=0){while(p>=0&&n>1){p=d.lastIndexOf('.',p-1);n--}s.c_d=p>0&&s.pt(d,'.','c_gdf',0)?d.substring(p):d}}return s.c_" ++"d};s.c_r=function(k){var s=this;k=s.ape(k);var c=' '+s.d.cookie,i=c.indexOf(' '+k+'='),e=i<0?i:c.indexOf(';',i),v=i<0?'':s.epa(c.substring(i+2+k.length,e<0?c.length:e));return v!='[[B]]'?v:''};s.c_" ++"w=function(k,v,e){var s=this,d=s.c_gd(),l=s.cookieLifetime,t;v=''+v;l=l?(''+l).toUpperCase():'';if(e&&l!='SESSION'&&l!='NONE'){t=(v!=''?parseInt(l?l:0):-60);if(t){e=new Date;e.setTime(e.getTime()+(" ++"t*1000))}}if(k&&l!='NONE'){s.d.cookie=k+'='+s.ape(v!=''?v:'[[B]]')+'; path=/;'+(e&&l!='SESSION'?' expires='+e.toGMTString()+';':'')+(d?' domain='+d+';':'');return s.c_r(k)==v}return 0};s.eh=functio" ++"n(o,e,r,f){var s=this,b='s_'+e+'_'+s._in,n=-1,l,i,x;if(!s.ehl)s.ehl=new Array;l=s.ehl;for(i=0;i=5&&(!s.isopera||s.apv>=7)){tcf=new Function('s','f','a','t','var e,r;try" ++"{r=s[f](a)}catch(e){r=s[t](e)}return r');r=tcf(s,f,a,t)}else{if(s.ismac&&s.u.indexOf('MSIE 4')>=0)r=s[b](a);else{s.eh(s.wd,'onerror',0,o);r=s[f](a);s.eh(s.wd,'onerror',1)}}return r};s.gtfset=functi" ++"on(e){var s=this;return s.tfs};s.gtfsoe=new Function('e','var s=s_c_il['+s._in+'],c;s.eh(window,\"onerror\",1);s.etfs=1;c=s.t();if(c)s.d.write(c);s.etfs=0;return true');s.gtfsfb=function(a){return " ++"window};s.gtfsf=function(w){var s=this,p=w.parent,l=w.location;s.tfs=w;if(p&&p.location!=l&&p.location.host==l.host){s.tfs=p;return s.gtfsf(s.tfs)}return s.tfs};s.gtfs=function(){var s=this;if(!s.t" ++"fs){s.tfs=s.wd;if(!s.etfs)s.tfs=s.cet('gtfsf',s.tfs,'gtfset',s.gtfsoe,'gtfsfb')}return s.tfs};s.mrq=function(u){var s=this,l=s.rl[u],n,r;s.rl[u]=0;if(l)for(n=0;n=3&&(!s.isopera||s.apv>=7)&&(s.ns6<0||s.apv>=6.1)){if(!s.rc)s.rc=new Object;if(!s.rc[un]){s.rc[un]=1;if(!s.rl)s.rl=new Object;s.r" ++"l[un]=new Array;setTimeout('if(window.s_c_il)window.s_c_il['+s._in+'].mrq(\"'+un+'\")',750)}else{l=s.rl[un];if(l){r.t=ta;r.u=un;r.r=rs;l[l.length]=r;return ''}imn+='_'+s.rc[un];s.rc[un]++}if(s.debu" ++"gTracking){var d='AppMeasurement Debug: '+rs,dl=s.sp(rs,'&'),dln;for(dln=0;dln'};s.gg=function(v){var s=this;if(!s.wd['s_'+v])s.wd['s_'+v]='';return s.wd['s_'+v]};s.glf=function(t,a){if(t.substring(0,2)=='s_')t=t.substring(2);var s=t" ++"his,v=s.gg(t);if(v)s[t]=v};s.gl=function(v){var s=this;if(s.pg)s.pt(v,',','glf',0)};s.rf=function(x){var s=this,y,i,j,h,p,l=0,q,a,b='',c='',t;if(x&&x.length>255){y=''+x;i=y.indexOf('?');if(i>0){q=y" ++".substring(i+1);y=y.substring(0,i);h=y.toLowerCase();j=0;if(h.substring(0,7)=='http://')j+=7;else if(h.substring(0,8)=='https://')j+=8;i=h.indexOf(\"/\",j);if(i>0){h=h.substring(j,i);p=y.substring(" ++"i);y=y.substring(0,i);if(h.indexOf('google')>=0)l=',q,ie,start,search_key,word,kw,cd,';else if(h.indexOf('yahoo.co')>=0)l=',p,ei,';if(l&&q){a=s.sp(q,'&');if(a&&a.length>1){for(j=0;j0&&l.indexOf(','+t.substring(0,i)+',')>=0)b+=(b?'&':'')+t;else c+=(c?'&':'')+t}if(b&&c)q=b+'&'+c;else c=''}i=253-(q.length-c.length)-y.length;x=y+(i>0?p.substring(0,i):'" ++"')+'?'+q}}}}return x};s.s2q=function(k,v,vf,vfp,f){var s=this,qs='',sk,sv,sp,ss,nke,nk,nf,nfl=0,nfn,nfm;if(k==\"contextData\")k=\"c\";if(v){for(sk in v)if((!f||sk.substring(0,f.length)==f)&&v[sk]&&" ++"(!vf||vf.indexOf(','+(vfp?vfp+'.':'')+sk+',')>=0)&&(!Object||!Object.prototype||!Object.prototype[sk])){nfm=0;if(nfl)for(nfn=0;nfn0){nke=sk.indexOf('.');if(nke>0){nk=sk.substring(0,nke);nf=(f?f:'')+nk+'.';if(!nfl)nfl=new Array;nfl[nfl.leng" ++"th]=nf;qs+=s.s2q(nk,v,vf,vfp,nf)}else{if(typeof(sv)=='boolean'){if(sv)sv='true';else sv='false'}if(sv){if(vfp=='retrieveLightData'&&f.indexOf('.contextData.')<0){sp=sk.substring(0,4);ss=sk.substrin" ++"g(4);if(sk=='transactionID')sk='xact';else if(sk=='channel')sk='ch';else if(sk=='campaign')sk='v0';else if(s.num(ss)){if(sp=='prop')sk='c'+ss;else if(sp=='eVar')sk='v'+ss;else if(sp=='list')sk='l'+" ++"ss;else if(sp=='hier'){sk='h'+ss;sv=sv.substring(0,255)}}}qs+='&'+s.ape(sk)+'='+s.ape(sv)}}}}}if(qs!='')qs+='&.'+k}return qs};s.hav=function(){var s=this,qs='',l,fv='',fe='',mn,i,e;if(s.lightProfil" ++"eID){l=s.va_m;fv=s.lightTrackVars;if(fv)fv=','+fv+','+s.vl_mr+','}else{l=s.va_t;if(s.pe||s.linkType){fv=s.linkTrackVars;fe=s.linkTrackEvents;if(s.pe){mn=s.pe.substring(0,1).toUpperCase()+s.pe.subst" ++"ring(1);if(s[mn]){fv=s[mn].trackVars;fe=s[mn].trackEvents}}}if(fv)fv=','+fv+','+s.vl_l+','+s.vl_l2;if(fe){fe=','+fe+',';if(fv)fv+=',events,'}if (s.events2)e=(e?',':'')+s.events2}for(i=0;i=0)&&k!='linkName'&&k!='linkType'){if(k=='timestamp'" ++")q='ts';else if(k=='dynamicVariablePrefix')q='D';else if(k=='visitorID')q='vid';else if(k=='pageURL'){q='g';v=s.fl(v,255)}else if(k=='referrer'){q='r';v=s.fl(s.rf(v),255)}else if(k=='vmk'||k=='visi" ++"torMigrationKey')q='vmt';else if(k=='visitorMigrationServer'){q='vmf';if(s.ssl&&s.visitorMigrationServerSecure)v=''}else if(k=='visitorMigrationServerSecure'){q='vmf';if(!s.ssl&&s.visitorMigrationS" ++"erver)v=''}else if(k=='charSet'){q='ce';if(v.toUpperCase()=='AUTO')v='ISO8859-1';else if(s.em==2||s.em==3)v='UTF-8'}else if(k=='visitorNamespace')q='ns';else if(k=='cookieDomainPeriods')q='cdp';els" ++"e if(k=='cookieLifetime')q='cl';else if(k=='variableProvider')q='vvp';else if(k=='currencyCode')q='cc';else if(k=='channel')q='ch';else if(k=='transactionID')q='xact';else if(k=='campaign')q='v0';e" ++"lse if(k=='resolution')q='s';else if(k=='colorDepth')q='c';else if(k=='javascriptVersion')q='j';else if(k=='javaEnabled')q='v';else if(k=='cookiesEnabled')q='k';else if(k=='browserWidth')q='bw';els" ++"e if(k=='browserHeight')q='bh';else if(k=='connectionType')q='ct';else if(k=='homepage')q='hp';else if(k=='plugins')q='p';else if(k=='events'){if(e)v+=(v?',':'')+e;if(fe)v=s.fs(v,fe)}else if(k=='ev" ++"ents2')v='';else if(k=='contextData'){qs+=s.s2q('c',s[k],fv,k,0);v=''}else if(k=='lightProfileID')q='mtp';else if(k=='lightStoreForSeconds'){q='mtss';if(!s.lightProfileID)v=''}else if(k=='lightIncr" ++"ementBy'){q='mti';if(!s.lightProfileID)v=''}else if(k=='retrieveLightProfiles')q='mtsr';else if(k=='deleteLightProfiles')q='mtsd';else if(k=='retrieveLightData'){if(s.retrieveLightProfiles)qs+=s.s2" ++"q('mts',s[k],fv,k,0);v=''}else if(s.num(x)){if(b=='prop')q='c'+n;else if(b=='eVar')q='v'+n;else if(b=='list')q='l'+n;else if(b=='hier'){q='h'+n;v=s.fl(v,255)}}if(v)qs+='&'+s.ape(q)+'='+(k.substring" ++"(0,3)!='pev'?s.ape(v):v)}}return qs};s.ltdf=function(t,h){t=t?t.toLowerCase():'';h=h?h.toLowerCase():'';var qi=h.indexOf('?');h=qi>=0?h.substring(0,qi):h;if(t&&h.substring(h.length-(t.length+1))=='" ++".'+t)return 1;return 0};s.ltef=function(t,h){t=t?t.toLowerCase():'';h=h?h.toLowerCase():'';if(t&&h.indexOf(t)>=0)return 1;return 0};s.lt=function(h){var s=this,lft=s.linkDownloadFileTypes,lef=s.lin" ++"kExternalFilters,lif=s.linkInternalFilters;lif=lif?lif:s.wd.location.hostname;h=h.toLowerCase();if(s.trackDownloadLinks&&lft&&s.pt(lft,',','ltdf',h))return 'd';if(s.trackExternalLinks&&h.substring(" ++"0,1)!='#'&&(lef||lif)&&(!lef||s.pt(lef,',','ltef',h))&&(!lif||!s.pt(lif,',','ltef',h)))return 'e';return ''};s.lc=new Function('e','var s=s_c_il['+s._in+'],b=s.eh(this,\"onclick\");s.lnk=this;s.t()" ++";s.lnk=0;if(b)return this[b](e);return true');s.bcr=function(){var s=this;if(s.bct&&s.bce)s.bct.dispatchEvent(s.bce);if(s.bcf){if(typeof(s.bcf)=='function')s.bcf();else if(s.bct&&s.bct.href)s.d.loc" ++"ation=s.bct.href}s.bct=s.bce=s.bcf=0};s.bc=new Function('e','if(e&&e.s_fe)return;var s=s_c_il['+s._in+'],f,tcf,t,n;if(s.d&&s.d.all&&s.d.all.cppXYctnr)return;if(!s.bbc)s.useForcedLinkTracking=0;else" ++" if(!s.useForcedLinkTracking){s.b.removeEventListener(\"click\",s.bc,true);s.bbc=s.useForcedLinkTracking=0;return}else s.b.removeEventListener(\"click\",s.bc,false);s.eo=e.srcElement?e.srcElement:e" ++".target;s.t();s.eo=0;if(s.nrs>0&&s.useForcedLinkTracking&&e.target){t=e.target.target;if(e.target.dispatchEvent&&(!t||t==\\'_self\\'||t==\\'_top\\'||(s.wd.name&&t==s.wd.name))){e.stopPropagation();" ++"e.stopImmediatePropagation();e.preventDefault();n=s.d.createEvent(\"MouseEvents\");n.initMouseEvent(\"click\",e.bubbles,e.cancelable,e.view,e.detail,e.screenX,e.screenY,e.clientX,e.clientY,e.ctrlKe" ++"y,e.altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget);n.s_fe=1;s.bct=e.target;s.bce=n;}}');s.oh=function(o){var s=this,l=s.wd.location,h=o.href?o.href:'',i,j,k,p;i=h.indexOf(':');j=h.indexOf('?" ++"');k=h.indexOf('/');if(h&&(i<0||(j>=0&&i>j)||(k>=0&&i>k))){p=o.protocol&&o.protocol.length>1?o.protocol:(l.protocol?l.protocol:'');i=l.pathname.lastIndexOf('/');h=(p?p+'//':'')+(o.host?o.host:(l.ho" ++"st?l.host:''))+(h.substring(0,1)!='/'?l.pathname.substring(0,i<0?0:i)+'/':'')+h}return h};s.ot=function(o){var t=o.tagName;if(o.tagUrn||(o.scopeName&&o.scopeName.toUpperCase()!='HTML'))return '';t=" ++"t&&t.toUpperCase?t.toUpperCase():'';if(t=='SHAPE')t='';if(t){if((t=='INPUT'||t=='BUTTON')&&o.type&&o.type.toUpperCase)t=o.type.toUpperCase();else if(!t&&o.href)t='A';}return t};s.oid=function(o){va" ++"r s=this,t=s.ot(o),p,c,n='',x=0;if(t&&!o.s_oid){p=o.protocol;c=o.onclick;if(o.href&&(t=='A'||t=='AREA')&&(!c||!p||p.toLowerCase().indexOf('javascript')<0))n=s.oh(o);else if(c){n=s.rep(s.rep(s.rep(s" ++".rep(''+c,\"\\r\",''),\"\\n\",''),\"\\t\",''),' ','');x=2}else if(t=='INPUT'||t=='SUBMIT'){if(o.value)n=o.value;else if(o.innerText)n=o.innerText;else if(o.textContent)n=o.textContent;x=3}else if(o" ++".src&&t=='IMAGE')n=o.src;if(n){o.s_oid=s.fl(n,100);o.s_oidt=x}}return o.s_oid};s.rqf=function(t,un){var s=this,e=t.indexOf('='),u=e>=0?t.substring(0,e):'',q=e>=0?s.epa(t.substring(e+1)):'';if(u&&q&" ++"&(','+u+',').indexOf(','+un+',')>=0){if(u!=s.un&&s.un.indexOf(',')>=0)q='&u='+u+q+'&u=0';return q}return ''};s.rq=function(un){if(!un)un=this.un;var s=this,c=un.indexOf(','),v=s.c_r('s_sq'),q='';if" ++"(c<0)return s.pt(v,'&','rqf',un);return s.pt(un,',','rq',0)};s.sqp=function(t,a){var s=this,e=t.indexOf('='),q=e<0?'':s.epa(t.substring(e+1));s.sqq[q]='';if(e>=0)s.pt(t.substring(0,e),',','sqs',q);" ++"return 0};s.sqs=function(un,q){var s=this;s.squ[un]=q;return 0};s.sq=function(q){var s=this,k='s_sq',v=s.c_r(k),x,c=0;s.sqq=new Object;s.squ=new Object;s.sqq[q]='';s.pt(v,'&','sqp',0);s.pt(s.un,','" ++",'sqs',q);v='';for(x in s.squ)if(x&&(!Object||!Object.prototype||!Object.prototype[x]))s.sqq[s.squ[x]]+=(s.sqq[s.squ[x]]?',':'')+x;for(x in s.sqq)if(x&&(!Object||!Object.prototype||!Object.prototyp" ++"e[x])&&s.sqq[x]&&(x==q||c<2)){v+=(v?'&':'')+s.sqq[x]+'='+s.ape(x);c++}return s.c_w(k,v,0)};s.wdl=new Function('e','var s=s_c_il['+s._in+'],r=true,b=s.eh(s.wd,\"onload\"),i,o,oc;if(b)r=this[b](e);fo" ++"r(i=0;i=0)&&oc.indexOf(\".tl(\")<0)s.eh(o,\"onclick\",0,s.lc);}return r');" ++"s.wds=function(){var s=this;if(s.apv>3&&(!s.isie||!s.ismac||s.apv>=5)){if(s.b&&s.b.attachEvent)s.b.attachEvent('onclick',s.bc);else if(s.b&&s.b.addEventListener){if(s.n&&s.n.userAgent.indexOf('WebK" ++"it')>=0&&s.d.createEvent){s.bbc=1;s.useForcedLinkTracking=1;s.b.addEventListener('click',s.bc,true)}s.b.addEventListener('click',s.bc,false)}else s.eh(s.wd,'onload',0,s.wdl)}};s.vs=function(x){var " ++"s=this,v=s.visitorSampling,g=s.visitorSamplingGroup,k='s_vsn_'+s.un+(g?'_'+g:''),n=s.c_r(k),e=new Date,y=e.getYear();e.setYear(y+10+(y<1900?1900:0));if(v){v*=100;if(!n){if(!s.c_w(k,x,e))return 0;n=" ++"x}if(n%10000>v)return 0}return 1};s.dyasmf=function(t,m){if(t&&m&&m.indexOf(t)>=0)return 1;return 0};s.dyasf=function(t,m){var s=this,i=t?t.indexOf('='):-1,n,x;if(i>=0&&m){var n=t.substring(0,i),x=" ++"t.substring(i+1);if(s.pt(x,',','dyasmf',m))return n}return 0};s.uns=function(){var s=this,x=s.dynamicAccountSelection,l=s.dynamicAccountList,m=s.dynamicAccountMatch,n,i;s.un=s.un.toLowerCase();if(x" ++"&&l){if(!m)m=s.wd.location.host;if(!m.toLowerCase)m=''+m;l=l.toLowerCase();m=m.toLowerCase();n=s.pt(l,';','dyasf',m);if(n)s.un=n}i=s.un.indexOf(',');s.fun=i<0?s.un:s.un.substring(0,i)};s.sa=functio" ++"n(un){var s=this;if(s.un&&s.mpc('sa',arguments))return;s.un=un;if(!s.oun)s.oun=un;else if((','+s.oun+',').indexOf(','+un+',')<0)s.oun+=','+un;s.uns()};s.m_i=function(n,a){var s=this,m,f=n.substring" ++"(0,1),r,l,i;if(!s.m_l)s.m_l=new Object;if(!s.m_nl)s.m_nl=new Array;m=s.m_l[n];if(!a&&m&&m._e&&!m._i)s.m_a(n);if(!m){m=new Object,m._c='s_m';m._in=s.wd.s_c_in;m._il=s._il;m._il[m._in]=m;s.wd.s_c_in+" ++"+;m.s=s;m._n=n;m._l=new Array('_c','_in','_il','_i','_e','_d','_dl','s','n','_r','_g','_g1','_t','_t1','_x','_x1','_rs','_rr','_l');s.m_l[n]=m;s.m_nl[s.m_nl.length]=n}else if(m._r&&!m._m){r=m._r;r." ++"_m=m;l=m._l;for(i=0;i=0)x(s);else s.m_m(\"x\",n,x,e)}m=s.m_i(n,1);if(m._dl)m._dl=m._d=0;s.dlt();return f');s.m_m=function(t,n,d,e){t='_'+t;var " ++"s=this,i,x,m,f='_'+t,r=0,u;if(s.m_l&&s.m_nl)for(i=0;i=0){if(d&&e)u=m[t](d,e);else if(d)u=m[t](d);e" ++"lse u=m[t]()}}if(u)r=1;u=m[t+1];if(u&&!m[f]){if((''+u).indexOf('function')>=0){if(d&&e)u=m[t+1](d,e);else if(d)u=m[t+1](d);else u=m[t+1]()}}m[f]=1;if(u)r=1}}return r};s.m_ll=function(){var s=this,g" ++"=s.m_dl,i,o;if(g)for(i=0;i=0){g=n.substring(i+1);n=n.substring(0,i)}else g=\"m_\"+n;m=s.m_i(n)}if((l||(n&&!s.m_a(n,g)))&&u&&s.d&&c&&s.d.createElement){if(d){m._d=1;m._dl=1}if(ln){if(s.ssl)u=s.rep(u,'http:','ht" ++"tps:');i='s_s:'+s._in+':'+n+':'+g;b='var s=s_c_il['+s._in+'],o=s.d.getElementById(\"'+i+'\");if(s&&o){if(!o.l&&s.wd.'+g+'){o.l=1;if(o.i)clearTimeout(o.i);o.i=0;s.m_a(\"'+n+'\",\"'+g+'\"'+(e?',\"'+e" ++"+'\"':'')+')}';f2=b+'o.c++;if(!s.maxDelay)s.maxDelay=250;if(!o.l&&o.c<(s.maxDelay*2)/100)o.i=setTimeout(o.f2,100)}';f1=new Function('e',b+'}');tcf=new Function('s','c','i','u','f1','f2','var e,o=0;" ++"try{o=s.d.createElement(\"script\");if(o){o.type=\"text/javascript\";'+(n?'o.id=i;o.defer=true;o.onload=o.onreadystatechange=f1;o.f2=f2;o.l=0;':'')+'o.src=u;c.appendChild(o);'+(n?'o.c=0;o.i=setTime" ++"out(f2,100)':'')+'}}catch(e){o=0}return o');o=tcf(s,c,i,u,f1,f2)}else{o=new Object;o.n=n+':'+g;o.u=u;o.d=d;o.l=l;o.e=e;g=s.m_dl;if(!g)g=s.m_dl=new Array;i=0;while(i=s.maxDelay){s.dll[i]=0;s.t(vo)}else f=1}}if(s.dli)clearTimeout(s.dli);s.dli=0;if" ++"(f){if(!s.dli)s.dli=setTimeout(s.dlt,s.maxDelay)}else s.dll=0');s.dl=function(vo){var s=this,d=new Date;if(!vo)vo=new Object;s.vob(vo);vo._t=d.getTime();if(!s.dll)s.dll=new Array;s.dll[s.dll.length" ++"]=vo;if(!s.maxDelay)s.maxDelay=250;s.dlt()};s.track=s.t=function(vo){var s=this,trk=1,tm=new Date,sed=Math&&Math.random?Math.floor(Math.random()*10000000000000):tm.getTime(),sess='s'+Math.floor(tm." ++"getTime()/10800000)%10+sed,y=tm.getYear(),vt=tm.getDate()+'/'+tm.getMonth()+'/'+(y<1900?y+1900:y)+' '+tm.getHours()+':'+tm.getMinutes()+':'+tm.getSeconds()+' '+tm.getDay()+' '+tm.getTimezoneOffset(" ++"),tcf,tfs=s.gtfs(),ta=-1,q='',qs='',code='',vb=new Object;if(s.mpc('t',arguments))return;s.gl(s.vl_g);s.uns();s.m_ll();if(!s.td){var tl=tfs.location,a,o,i,x='',c='',v='',p='',bw='',bh='',j='1.0',k=" ++"s.c_w('s_cc','true',0)?'Y':'N',hp='',ct='',pn=0,ps;if(String&&String.prototype){j='1.1';if(j.match){j='1.2';if(tm.setUTCDate){j='1.3';if(s.isie&&s.ismac&&s.apv>=5)j='1.4';if(pn.toPrecision){j='1.5'" ++";a=new Array;if(a.forEach){j='1.6';i=0;o=new Object;tcf=new Function('o','var e,i=0;try{i=new Iterator(o)}catch(e){}return i');i=tcf(o);if(i&&i.next)j='1.7'}}}}}if(s.apv>=4)x=screen.width+'x'+scree" ++"n.height;if(s.isns||s.isopera){if(s.apv>=3){v=s.n.javaEnabled()?'Y':'N';if(s.apv>=4){c=screen.pixelDepth;bw=s.wd.innerWidth;bh=s.wd.innerHeight}}s.pl=s.n.plugins}else if(s.isie){if(s.apv>=4){v=s.n." ++"javaEnabled()?'Y':'N';c=screen.colorDepth;if(s.apv>=5){bw=s.d.documentElement.offsetWidth;bh=s.d.documentElement.offsetHeight;if(!s.ismac&&s.b){tcf=new Function('s','tl','var e,hp=0;try{s.b.addBeha" ++"vior(\"#default#homePage\");hp=s.b.isHomePage(tl)?\"Y\":\"N\"}catch(e){}return hp');hp=tcf(s,tl);tcf=new Function('s','var e,ct=0;try{s.b.addBehavior(\"#default#clientCaps\");ct=s.b.connectionType}" ++"catch(e){}return ct');ct=tcf(s)}}}else r=''}if(s.pl)while(pn=0&&oc.indexOf('.s_oc(')<0)||oc.indexOf('.tl(')>=0)o=0}}if(o){if(n)ta=o.target;h=s.oh(o);i=h.indexOf('?');h=s.linkLeav" ++"eQueryString||i<0?h:h.substring(0,i);l=s.linkName;t=s.linkType?s.linkType.toLowerCase():s.lt(h);if(t&&(h||l)){s.pe='lnk_'+(t=='d'||t=='e'?t:'o');s.pev1=(h?s.ape(h):'');s.pev2=(l?s.ape(l):'')}else t" ++"rk=0;if(s.trackInlineStats){if(!p){p=s.pageURL;w=0}t=s.ot(o);i=o.sourceIndex;if(o.dataset&&o.dataset.sObjectId){s.wd.s_objectID=o.dataset.sObjectId;}else if(o.getAttribute&&o.getAttribute('data-s-o" ++"bject-id')){s.wd.s_objectID=o.getAttribute('data-s-object-id');}else if(s.useForcedLinkTracking){s.wd.s_objectID='';oc=o.onclick?''+o.onclick:'';if(oc){var ocb=oc.indexOf('s_objectID'),oce,ocq,ocx;" ++"if(ocb>=0){ocb+=10;while(ocb=0)ocb++;if(ocb=0);s.d=document;s.b=s.d.body;if(s.d.getElementsByTagName){s.h=s.d.getElementsByTagName('HEAD');if(s.h)" ++"s.h=s.h[0]}s.n=navigator;s.u=s.n.userAgent;s.ns6=s.u.indexOf('Netscape6/');var apn=s.n.appName,v=s.n.appVersion,ie=v.indexOf('MSIE '),o=s.u.indexOf('Opera '),i;if(v.indexOf('Opera')>=0||o>0)apn='Op" ++"era';s.isie=(apn=='Microsoft Internet Explorer');s.isns=(apn=='Netscape');s.isopera=(apn=='Opera');s.ismac=(s.u.indexOf('Mac')>=0);if(o>0)s.apv=parseFloat(s.u.substring(o+6));else if(ie>0){s.apv=pa" ++"rseInt(i=v.substring(ie+5));if(s.apv>3)s.apv=parseFloat(i)}else if(s.ns6>0)s.apv=parseFloat(s.u.substring(s.ns6+10));else s.apv=parseFloat(v);s.em=0;if(s.em.toPrecision)s.em=3;else if(String.fromCh" ++"arCode){i=escape(String.fromCharCode(256)).toUpperCase();s.em=(i=='%C4%80'?2:(i=='%U0100'?1:0))}if(s.oun)s.sa(s.oun);s.sa(un);s.vl_l='timestamp,dynamicVariablePrefix,visitorID,vmk,visitorMigrationK" ++"ey,visitorMigrationServer,visitorMigrationServerSecure,ppu,charSet,visitorNamespace,cookieDomainPeriods,cookieLifetime,pageName,pageURL,referrer,contextData,currencyCode,lightProfileID,lightStoreFo" ++"rSeconds,lightIncrementBy,retrieveLightProfiles,deleteLightProfiles,retrieveLightData';s.va_l=s.sp(s.vl_l,',');s.vl_mr=s.vl_m='timestamp,charSet,visitorNamespace,cookieDomainPeriods,cookieLifetime," ++"contextData,lightProfileID,lightStoreForSeconds,lightIncrementBy';s.vl_t=s.vl_l+',variableProvider,channel,server,pageType,transactionID,purchaseID,campaign,state,zip,events,events2,products,linkNa" ++"me,linkType';var n;for(n=1;n<=75;n++){s.vl_t+=',prop'+n+',eVar'+n;s.vl_m+=',prop'+n+',eVar'+n}for(n=1;n<=5;n++)s.vl_t+=',hier'+n;for(n=1;n<=3;n++)s.vl_t+=',list'+n;s.va_m=s.sp(s.vl_m,',');s.vl_l2='" ++",tnt,pe,pev1,pev2,pev3,resolution,colorDepth,javascriptVersion,javaEnabled,cookiesEnabled,browserWidth,browserHeight,connectionType,homepage,plugins';s.vl_t+=s.vl_l2;s.va_t=s.sp(s.vl_t,',');s.vl_g=" ++"s.vl_t+',trackingServer,trackingServerSecure,trackingServerBase,fpCookieDomainPeriods,disableBufferedRequests,mobile,visitorSampling,visitorSamplingGroup,dynamicAccountSelection,dynamicAccountList," ++"dynamicAccountMatch,trackDownloadLinks,trackExternalLinks,trackInlineStats,linkLeaveQueryString,linkDownloadFileTypes,linkExternalFilters,linkInternalFilters,linkTrackVars,linkTrackEvents,linkNames" ++",lnk,eo,lightTrackVars,_1_referrer,un';s.va_g=s.sp(s.vl_g,',');s.pg=pg;s.gl(s.vl_g);s.contextData=new Object;s.retrieveLightData=new Object;if(!ss)s.wds();if(pg){s.wd.s_co=function(o){return o};s.w" ++"d.s_gs=function(un){s_gi(un,1,1).t()};s.wd.s_dc=function(un){s_gi(un,1).t()}}", +w=window,l=w.s_c_il,n=navigator,u=n.userAgent,v=n.appVersion,e=v.indexOf('MSIE '),m=u.indexOf('Netscape6/'),a,i,j,x,s;if(un){un=un.toLowerCase();if(l)for(j=0;j<2;j++)for(i=0;i0&&x=='s_l'))&&(s.oun==un||(s.fs&&s.sa&&s.fs(s.oun,un)))){if(s.sa)s.sa(un);if(x=='s_c')return s}else s=0}}w.s_an='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; +w.s_sp=new Function("x","d","var a=new Array,i=0,j;if(x){if(x.split)a=x.split(d);else if(!d)for(i=0;i=0){j=x.indexOf(d,i);a[a.length]=x.subst" ++"ring(i,j<0?x.length:j);i=j;if(i>=0)i+=d.length}}return a"); +w.s_jn=new Function("a","d","var x='',i,j=a.length;if(a&&j>0){x=a[0];if(j>1){if(a.join)x=a.join(d);else for(i=1;i0){d=x.substring(0,i);x=x.substring(i+2);l=s_sp(l,'');for(i=0;i<62;i++)l2[l[i]]=i;t=s_sp(t,'');d" ++"=s_sp(d,'~');i=0;while(i<5){v=0;if(x.indexOf(t[i])>=0) {x2=s_sp(x,t[i]);for(j=1;j=0)x=s_rep(x,w,t[i]);i++;b+=62}}}return x"); +w.s_fe=new Function("c","return s_rep(s_rep(s_rep(c,'\\\\','\\\\\\\\'),'\"','\\\\\"'),\"\\n\",\"\\\\n\")"); +w.s_fa=new Function("f","var s=f.indexOf('(')+1,e=f.indexOf(')'),a='',c;while(s>=0&&s=0){s++;d=1;q='';x=0;f=c.substring(s);a=s_fa(f);e=o=c.indexOf('{',s);e++;while(d>0){h=c.substring(e,e+1);if(q){i" ++"f(h==q&&!x)q='';if(h=='\\\\')x=x?0:1;else x=0}else{if(h=='\"'||h==\"'\")q=h;if(h=='{')d++;if(h=='}')d--}if(d>0)e++}c=c.substring(0,s)+'new Function('+(a?a+',':'')+'\"'+s_fe(c.substring(o+1,e))+'\")" ++"'+c.substring(e+1);s=c.indexOf('=function(')}return c;"); +c=s_d(c);if(e>0){a=parseInt(i=v.substring(e+5));if(a>3)a=parseFloat(i)}else if(m>0)a=parseFloat(u.substring(m+10));else a=parseFloat(v);if(a<5||v.indexOf('Opera')>=0||u.indexOf('Opera')>=0)c=s_ft(c);if(!s){s=new Object;if(!w.s_c_in){w.s_c_il=new Array;w.s_c_in=0}s._il=w.s_c_il;s._in=w.s_c_in;s._il[s._in]=s;w.s_c_in++;}s._c='s_c';(new Function("s","un","pg","ss",c))(s,un,pg,ss);return s} +function s_giqf(){var w=window,q=w.s_giq,i,t,s;if(q)for(i=0;i-1&&(!a[c]||!b(a[c],c,a));c-=1);}}function s(a,b){return ga.call(a,b)}function m(a,b){return s(a,b)&&a[b]}function G(a,b){for(var c in a)if(s(a,c)&&b(a[c],c))break}function R(a,b,c,d){return b&&G(b,function(b,e){(c||!s(a,e))&&(d&&"string"!=typeof b?(a[e]||(a[e]={}),R(a[e],b,c,d)):a[e]=b)}),a}function u(a,b){return function(){return b.apply(a,arguments)}}function ba(a){if(!a)return a;var b=aa;return y(a.split("."),function(a){b=b[a]}),b}function B(a,b,c,d){return b=Error(b+"\nhttp://requirejs.org/docs/errors.html#"+a),b.requireType=a,b.requireModules=d,c&&(b.originalError=c),b}function ha(a){function b(a,b,c){var d,e,f,g,h,i,j,k=b&&b.split("/");d=k;var l=C.map,n=l&&l["*"];if(a&&"."===a.charAt(0))if(b){for(d=m(C.pkgs,b)?k=[b]:k.slice(0,k.length-1),b=a=d.concat(a.split("/")),d=0;b[d];d+=1)if(e=b[d],"."===e)b.splice(d,1),d-=1;else if(".."===e){if(1===d&&(".."===b[2]||".."===b[0]))break;d>0&&(b.splice(d-1,2),d-=2)}d=m(C.pkgs,b=a[0]),a=a.join("/"),d&&a===b+"/"+d.main&&(a=b)}else 0===a.indexOf("./")&&(a=a.substring(2));if(c&&l&&(k||n)){for(b=a.split("/"),d=b.length;d>0;d-=1){if(f=b.slice(0,d).join("/"),k)for(e=k.length;e>0;e-=1)if((c=m(l,k.slice(0,e).join("/")))&&(c=m(c,f))){g=c,h=d;break}if(g)break;!i&&n&&m(n,f)&&(i=m(n,f),j=d)}!g&&i&&(g=i,h=j),g&&(b.splice(0,h,g),a=b.join("/"))}return a}function c(a){A&&y(document.getElementsByTagName("script"),function(b){return b.getAttribute("data-requiremodule")===a&&b.getAttribute("data-requirecontext")===w.contextName?(b.parentNode.removeChild(b),!0):void 0})}function d(a){var b=m(C.paths,a);return b&&J(b)&&1-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function f(a,c,d,f){var g,h,i=null,j=c?c.name:null,k=a,l=!0,n="";return a||(l=!1,a="_@r"+(M+=1)),a=e(a),i=a[0],a=a[1],i&&(i=b(i,j,f),h=m(K,i)),a&&(i?n=h&&h.normalize?h.normalize(a,function(a){return b(a,j,f)}):b(a,j,f):(n=b(a,j,f),a=e(n),i=a[0],n=a[1],d=!0,g=w.nameToUrl(n))),d=!i||h||d?"":"_unnormalized"+(N+=1),{prefix:i,name:n,parentMap:c,unnormalized:!!d,url:g,originalName:k,isDefine:l,id:(i?i+"!"+n:n)+d}}function g(a){var b=a.id,c=m(D,b);return c||(c=D[b]=new w.Module(a)),c}function h(a,b,c){var d=a.id,e=m(D,d);!s(K,d)||e&&!e.defineEmitComplete?g(a).on(b,c):"defined"===b&&c(K[d])}function i(a,b){var c=a.requireModules,d=!1;b?b(a):(y(c,function(b){(b=m(D,b))&&(b.error=a,b.events.error&&(d=!0,b.emit("error",a)))}),d||l.onError(a))}function j(){T.length&&(ia.apply(H,[H.length-1,0].concat(T)),T=[])}function k(a){delete D[a],delete E[a]}function n(a,b,c){var d=a.map.id;a.error?a.emit("error",a.error):(b[d]=!0,y(a.depMaps,function(d,e){var f=d.id,g=m(D,f);g&&!a.depMatched[e]&&!c[f]&&(m(b,f)?(a.defineDep(e,K[f]),a.check()):n(g,b,c))}),c[d]=!0)}function o(){var a,b,e,f,g=(e=1e3*C.waitSeconds)&&w.startTime+e<(new Date).getTime(),h=[],j=[],k=!1,l=!0;if(!t){if(t=!0,G(E,function(e){if(a=e.map,b=a.id,e.enabled&&(a.isDefine||j.push(e),!e.error))if(!e.inited&&g)d(b)?k=f=!0:(h.push(b),c(b));else if(!e.inited&&e.fetched&&a.isDefine&&(k=!0,!a.prefix))return l=!1}),g&&h.length)return e=B("timeout","Load timeout for modules: "+h,null,h),e.contextName=w.contextName,i(e);l&&y(j,function(a){n(a,{},{})}),g&&!f||!k||!A&&!da||z||(z=setTimeout(function(){z=0,o()},50)),t=!1}}function p(a){s(K,a[0])||g(f(a[0],null,!0)).init(a[1],a[2])}function q(a){var a=a.currentTarget||a.srcElement,b=w.onScriptLoad;return a.detachEvent&&!Y?a.detachEvent("onreadystatechange",b):a.removeEventListener("load",b,!1),b=w.onScriptError,(!a.detachEvent||Y)&&a.removeEventListener("error",b,!1),{node:a,id:a&&a.getAttribute("data-requiremodule")}}function r(){var a;for(j();H.length;){if(a=H.shift(),null===a[0])return i(B("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));p(a)}}var t,v,w,x,z,C={waitSeconds:7,baseUrl:"./",paths:{},pkgs:{},shim:{},config:{}},D={},E={},F={},H=[],K={},L={},M=1,N=1;return x={require:function(a){return a.require?a.require:a.require=w.makeRequire(a.map)},exports:function(a){return a.usingExports=!0,a.map.isDefine?a.exports?a.exports:a.exports=K[a.map.id]={}:void 0},module:function(a){return a.module?a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return C.config&&m(C.config,a.map.id)||{}},exports:K[a.map.id]}}},v=function(a){this.events=m(F,a.id)||{},this.map=a,this.shim=m(C.shim,a.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},v.prototype={init:function(a,b,c,d){d=d||{},this.inited||(this.factory=b,c?this.on("error",c):this.events.error&&(c=u(this,function(a){this.emit("error",a)})),this.depMaps=a&&a.slice(0),this.errback=c,this.inited=!0,this.ignore=d.ignore,d.enabled||this.enabled?this.enable():this.check())},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=b)},fetch:function(){if(!this.fetched){this.fetched=!0,w.startTime=(new Date).getTime();var a=this.map;if(!this.shim)return a.prefix?this.callPlugin():this.load();w.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],u(this,function(){return a.prefix?this.callPlugin():this.load()}))}},load:function(){var a=this.map.url;L[a]||(L[a]=!0,w.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id;b=this.depExports;var d=this.exports,e=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,1>this.depCount&&!this.defined){if(I(e)){if(this.events.error)try{d=w.execCb(c,e,b,d)}catch(f){a=f}else d=w.execCb(c,e,b,d);if(this.map.isDefine&&((b=this.module)&&void 0!==b.exports&&b.exports!==this.exports?d=b.exports:void 0===d&&this.usingExports&&(d=this.exports)),a)return a.requireMap=this.map,a.requireModules=[this.map.id],a.requireType="define",i(this.error=a)}else d=e;this.exports=d,this.map.isDefine&&!this.ignore&&(K[c]=d,l.onResourceLoad)&&l.onResourceLoad(w,this.map,this.depMaps),k(c),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var a=this.map,c=a.id,d=f(a.prefix);this.depMaps.push(d),h(d,"defined",u(this,function(d){var e,j;j=this.map.name;var n=this.map.parentMap?this.map.parentMap.name:null,o=w.makeRequire(a.parentMap,{enableBuildCallback:!0});this.map.unnormalized?(d.normalize&&(j=d.normalize(j,function(a){return b(a,n,!0)})||""),d=f(a.prefix+"!"+j,this.map.parentMap),h(d,"defined",u(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),(j=m(D,d.id))&&(this.depMaps.push(d),this.events.error&&j.on("error",u(this,function(a){this.emit("error",a)})),j.enable())):(e=u(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),e.error=u(this,function(a){this.inited=!0,this.error=a,a.requireModules=[c],G(D,function(a){0===a.map.id.indexOf(c+"_unnormalized")&&k(a.map.id)}),i(a)}),e.fromText=u(this,function(b,d){var h=a.name,j=f(h),k=O;d&&(b=d),k&&(O=!1),g(j),s(C.config,c)&&(C.config[h]=C.config[c]);try{l.exec(b)}catch(m){return i(B("fromtexteval","fromText eval for "+c+" failed: "+m,m,[c]))}k&&(O=!0),this.depMaps.push(j),w.completeLoad(h),o([h],e)}),d.load(a.name,o,e,C))})),w.enable(d,this),this.pluginMaps[d.id]=d},enable:function(){E[this.map.id]=this,this.enabling=this.enabled=!0,y(this.depMaps,u(this,function(a,b){var c,d;if("string"==typeof a){if(a=f(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[b]=a,c=m(x,a.id))return void(this.depExports[b]=c(this));this.depCount+=1,h(a,"defined",u(this,function(a){this.defineDep(b,a),this.check()})),this.errback&&h(a,"error",this.errback)}c=a.id,d=D[c],!s(x,c)&&d&&!d.enabled&&w.enable(a,this)})),G(this.pluginMaps,u(this,function(a){var b=m(D,a.id);b&&!b.enabled&&w.enable(a,this)})),this.enabling=!1,this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=[]),c.push(b)},emit:function(a,b){y(this.events[a],function(a){a(b)}),"error"===a&&delete this.events[a]}},w={config:C,contextName:a,registry:D,defined:K,urlFetched:L,defQueue:H,Module:v,makeModuleMap:f,nextTick:l.nextTick,onError:i,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=C.pkgs,c=C.shim,d={paths:!0,config:!0,map:!0};G(a,function(a,b){d[b]?"map"===b?(C.map||(C.map={}),R(C[b],a,!0,!0)):R(C[b],a,!0):C[b]=a}),a.shim&&(G(a.shim,function(a,b){J(a)&&(a={deps:a}),!a.exports&&!a.init||a.exportsFn||(a.exportsFn=w.makeShimExports(a)),c[b]=a}),C.shim=c),a.packages&&(y(a.packages,function(a){a="string"==typeof a?{name:a}:a,b[a.name]={name:a.name,location:a.location||a.name,main:(a.main||"main").replace(ja,"").replace(ea,"")}}),C.pkgs=b),G(D,function(a,b){!a.inited&&!a.map.unnormalized&&(a.map=f(b))}),(a.deps||a.callback)&&w.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;return a.init&&(b=a.init.apply(aa,arguments)),b||a.exports&&ba(a.exports)}},makeRequire:function(c,d){function e(b,h,j){var k,m;return d.enableBuildCallback&&h&&I(h)&&(h.__requireJsBuild=!0),"string"==typeof b?I(h)?i(B("requireargs","Invalid require call"),j):c&&s(x,b)?x[b](D[c.id]):l.get?l.get(w,b,c,e):(k=f(b,c,!1,!0),k=k.id,s(K,k)?K[k]:i(B("notloaded",'Module name "'+k+'" has not been loaded yet for context: '+a+(c?"":". Use require([])")))):(r(),w.nextTick(function(){r(),m=g(f(null,c)),m.skipMap=d.skipMap,m.init(b,h,j,{enabled:!0}),o()}),e)}return d=d||{},R(e,{isBrowser:A,toUrl:function(a){var d,e=a.lastIndexOf("."),f=a.split("/")[0];return-1!==e&&("."!==f&&".."!==f||e>1)&&(d=a.substring(e,a.length),a=a.substring(0,e)),w.nameToUrl(b(a,c&&c.id,!0),d,!0)},defined:function(a){return s(K,f(a,c,!1,!0).id)},specified:function(a){return a=f(a,c,!1,!0).id,s(K,a)||s(D,a)}}),c||(e.undef=function(a){j();var b=f(a,c,!0),d=m(D,a);delete K[a],delete L[b.url],delete F[a],d&&(d.events.defined&&(F[a]=d.events),k(a))}),e},enable:function(a){m(D,a.id)&&g(a).enable()},completeLoad:function(a){var b,c,e=m(C.shim,a)||{},f=e.exports;for(j();H.length;){if(c=H.shift(),null===c[0]){if(c[0]=a,b)break;b=!0}else c[0]===a&&(b=!0);p(c)}if(c=m(D,a),!b&&!s(K,a)&&c&&!c.inited){if(C.enforceDefine&&(!f||!ba(f)))return d(a)?void 0:i(B("nodefine","No define call for "+a,null,[a]));p([a,e.deps||[],e.exportsFn])}o()},nameToUrl:function(a,b,c){var d,e,f,g,h,i;if(l.jsExtRegExp.test(a))g=a+(b||"");else{for(d=C.paths,e=C.pkgs,g=a.split("/"),h=g.length;h>0;h-=1){if(i=g.slice(0,h).join("/"),f=m(e,i),i=m(d,i)){J(i)&&(i=i[0]),g.splice(0,h,i);break}if(f){a=a===f.name?f.location+"/"+f.main:f.location,g.splice(0,h,a);break}}g=g.join("/"),g+=b||(/\?/.test(g)||c?"":".js"),g=("/"===g.charAt(0)||g.match(/^[\w\+\.\-]+:/)?"":C.baseUrl)+g}return C.urlArgs?g+((-1===g.indexOf("?")?"?":"&")+C.urlArgs):g},load:function(a,b){l.load(w,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){("load"===a.type||ka.test((a.currentTarget||a.srcElement).readyState))&&(P=null,a=q(a),w.completeLoad(a.id))},onScriptError:function(a){var b=q(a);return d(b.id)?void 0:i(B("scripterror","Script error",a,[b.id]))}},w.require=w.makeRequire(),w}var l,w,x,D,t,E,P,K,Q,fa,la=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,ma=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,ea=/\.js$/,ja=/^\.\//;w=Object.prototype;var L=w.toString,ga=w.hasOwnProperty,ia=Array.prototype.splice,A=!("undefined"==typeof window||!navigator||!document),da=!A&&"undefined"!=typeof importScripts,ka=A&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,Y="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),F={},r={},T=[],O=!1;if("undefined"==typeof define){if("undefined"!=typeof requirejs){if(I(requirejs))return;r=requirejs,requirejs=void 0}"undefined"!=typeof require&&!I(require)&&(r=require,require=void 0),l=requirejs=function(a,b,c,d){var e,f="_";return!J(a)&&"string"!=typeof a&&(e=a,J(b)?(a=b,b=c,c=d):a=[]),e&&e.context&&(f=e.context),(d=m(F,f))||(d=F[f]=l.s.newContext(f)),e&&d.configure(e),d.require(a,b,c)},l.config=function(a){return l(a)},l.nextTick="undefined"!=typeof setTimeout?function(a){setTimeout(a,4)}:function(a){a()},require||(require=l),l.version="2.1.5",l.jsExtRegExp=/^\/|:|\?|\.js$/,l.isBrowser=A,w=l.s={contexts:F,newContext:ha},l({}),y(["toUrl","undef","defined","specified"],function(a){l[a]=function(){var b=F._;return b.require[a].apply(b,arguments)}}),A&&(x=w.head=document.getElementsByTagName("head")[0],D=document.getElementsByTagName("base")[0])&&(x=w.head=D.parentNode),l.onError=function(a){throw a},l.load=function(a,b,c){var d,e=a&&a.config||{};if(A)return d=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script"),d.type=e.scriptType||"text/javascript",d.charset="utf-8",d.async=!0,d.setAttribute("data-requirecontext",a.contextName),d.setAttribute("data-requiremodule",b),!d.attachEvent||d.attachEvent.toString&&0>d.attachEvent.toString().indexOf("[native code")||Y?(d.addEventListener("load",a.onScriptLoad,!1),d.addEventListener("error",a.onScriptError,!1)):(O=!0,d.attachEvent("onreadystatechange",a.onScriptLoad)),d.src=c,K=d,D?x.insertBefore(d,D):x.appendChild(d),K=null,d;if(da)try{importScripts(c),a.completeLoad(b)}catch(f){a.onError(B("importscripts","importScripts failed for "+b+" at "+c,f,[b]))}},A&&M(document.getElementsByTagName("script"),function(a){return x||(x=a.parentNode),(t=a.getAttribute("data-main"))?(r.baseUrl||(E=t.split("/"),Q=E.pop(),fa=E.length?E.join("/")+"/":"./",r.baseUrl=fa,t=Q),t=t.replace(ea,""),r.deps=r.deps?r.deps.concat(t):[t],!0):void 0}),define=function(a,b,c){var d,e;"string"!=typeof a&&(c=b,b=a,a=null),J(b)||(c=b,b=[]),!b.length&&I(c)&&c.length&&(c.toString().replace(la,"").replace(ma,function(a,c){b.push(c)}),b=(1===c.length?["require"]:["require","exports","module"]).concat(b)),O&&((d=K)||(P&&"interactive"===P.readyState||M(document.getElementsByTagName("script"),function(a){return"interactive"===a.readyState?P=a:void 0}),d=P),d&&(a||(a=d.getAttribute("data-requiremodule")),e=F[d.getAttribute("data-requirecontext")])),(e?e.defQueue:T).push([a,b,c])},define.amd={jQuery:!0},l.exec=function(b){return eval(b)},l(r)}}(this),/*! jQuery v2.1.0 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){function c(a){var b=a.length,c=aa.type(a);return"function"===c||aa.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}function d(a,b,c){if(aa.isFunction(b))return aa.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return aa.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(ha.test(b))return aa.filter(b,a,c);b=aa.filter(b,a)}return aa.grep(a,function(a){return U.call(b,a)>=0!==c})}function e(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function f(a){var b=oa[a]={};return aa.each(a.match(na)||[],function(a,c){b[c]=!0}),b}function g(){$.removeEventListener("DOMContentLoaded",g,!1),a.removeEventListener("load",g,!1),aa.ready()}function h(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=aa.expando+Math.random()}function i(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(ua,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:ta.test(c)?aa.parseJSON(c):c}catch(e){}sa.set(a,b,c)}else c=void 0;return c}function j(){return!0}function k(){return!1}function l(){try{return $.activeElement}catch(a){}}function m(a,b){return aa.nodeName(a,"table")&&aa.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function n(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function o(a){var b=Ka.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function p(a,b){for(var c=0,d=a.length;d>c;c++)ra.set(a[c],"globalEval",!b||ra.get(b[c],"globalEval"))}function q(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(ra.hasData(a)&&(f=ra.access(a),g=ra.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)aa.event.add(b,e,j[e][c])}sa.hasData(a)&&(h=sa.access(a),i=aa.extend({},h),sa.set(b,i))}}function r(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&aa.nodeName(a,b)?aa.merge([a],c):c}function s(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ya.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}function t(b,c){var d=aa(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:aa.css(d[0],"display");return d.detach(),e}function u(a){var b=$,c=Oa[a];return c||(c=t(a,b),"none"!==c&&c||(Na=(Na||aa("