diff --git a/Cargo.lock b/Cargo.lock index 4b5a827..7bd3ac5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1865,8 +1865,6 @@ dependencies = [ [[package]] name = "i-slint-backend-android-activity" version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70d538003a566d7312572ac1435be0704934e46a63d55abdabede513f72332cb" dependencies = [ "android-activity 0.5.2", "android-activity 0.6.1", @@ -1875,6 +1873,8 @@ dependencies = [ "i-slint-core", "i-slint-renderer-skia", "jni 0.22.4", + "libc", + "log", "ndk 0.9.0", "raw-window-handle", ] @@ -2037,8 +2037,6 @@ dependencies = [ [[package]] name = "i-slint-core" version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2ea15059d70bc31b1a8b1eb4c34f2c5df04cb7e53f36179b43c0261231d646" dependencies = [ "accesskit", "async-channel", @@ -2125,8 +2123,6 @@ dependencies = [ [[package]] name = "i-slint-renderer-skia" version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc9c1cf02385f1d26fc1f423544e52390a8e5c2d89420a8042aa94b4fe109d1f" dependencies = [ "bytemuck", "cfg-if", @@ -2138,6 +2134,7 @@ dependencies = [ "i-slint-common", "i-slint-core", "i-slint-core-macros", + "log", "lyon_path", "objc2 0.6.5", "objc2-app-kit 0.3.2", @@ -5426,8 +5423,6 @@ dependencies = [ [[package]] name = "wgpu-hal" version = "30.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b7fb58561a792bc237628ba0792e332de418fefe145f13b5ed8201e6d52f58" dependencies = [ "android_system_properties", "arrayvec", diff --git a/Cargo.toml b/Cargo.toml index e48568a..6a90e19 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,6 +42,10 @@ perf = [] # instrumentation, display locked to 60 Hz via JNI (src/baseline60.rs). # Build: `./scripts/build.sh baseline`. baseline60 = [] # marker; the 60Hz lock is a device setting (peak_refresh_rate) +# Public-API per-frame logger (FR line: frame gap + render cost). Works in +# stock AND vendored builds — the A/B measurement tool for the 60 Hz +# baseline-vs-vendored comparison. +framelog = [] [build-dependencies] slint-build = "1.18.1" diff --git a/harnesses/egtest/Cargo.lock b/harnesses/egtest/Cargo.lock deleted file mode 100644 index b03e342..0000000 --- a/harnesses/egtest/Cargo.lock +++ /dev/null @@ -1,2670 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "ab_glyph" -version = "0.2.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01c0457472c38ea5bd1c3b5ada5e368271cb550be7a4ca4a0b4634e9913f6cc2" -dependencies = [ - "ab_glyph_rasterizer", - "owned_ttf_parser", -] - -[[package]] -name = "ab_glyph_rasterizer" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618" - -[[package]] -name = "adler2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" - -[[package]] -name = "ahash" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" -dependencies = [ - "cfg-if", - "getrandom 0.3.4", - "once_cell", - "version_check", - "zerocopy", -] - -[[package]] -name = "android-activity" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f2a1bb052857d5dd49572219344a7332b31b76405648eabac5bc68978251bcd" -dependencies = [ - "android-properties", - "bitflags 2.13.2", - "cc", - "jni", - "libc 0.2.191", - "log", - "ndk", - "ndk-context", - "ndk-sys", - "num_enum", - "thiserror 2.0.21", -] - -[[package]] -name = "android-properties" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" - -[[package]] -name = "arboard" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aeb9553e62312c8756a5979254fc6d7da8bbeb5986a1e17037fab932f7037917" -dependencies = [ - "clipboard-win", - "image", - "log", - "objc2 0.6.5", - "objc2-app-kit 0.3.2", - "objc2-core-foundation", - "objc2-core-graphics", - "objc2-foundation 0.3.2", - "parking_lot", - "percent-encoding", - "windows-sys 0.61.2", - "x11rb", -] - -[[package]] -name = "arrayref" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" - -[[package]] -name = "arrayvec" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" - -[[package]] -name = "as-raw-xcb-connection" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "autocfg" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" - -[[package]] -name = "block2" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" -dependencies = [ - "objc2 0.5.3", -] - -[[package]] -name = "bumpalo" -version = "3.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" - -[[package]] -name = "bytemuck" -version = "1.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" -dependencies = [ - "bytemuck_derive", -] - -[[package]] -name = "bytemuck_derive" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a1f896587b6f2c069c73d2f0913e2d590c3990285cd2f0b6aa02b786b4c679c" -dependencies = [ - "proc-macro2", - "quote", - "syn 3.0.9", -] - -[[package]] -name = "byteorder-lite" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" - -[[package]] -name = "bytes" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" - -[[package]] -name = "calloop" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" -dependencies = [ - "bitflags 2.13.2", - "log", - "polling", - "rustix 0.38.44", - "slab", - "thiserror 1.0.69", -] - -[[package]] -name = "calloop" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43b32313e937c8721c9d17ee9bf60699a6402b4b7c2cb6ac1bee0ffcaa4b4e5e" -dependencies = [ - "bitflags 2.13.2", - "polling", - "rustix 1.1.6", - "tracing", -] - -[[package]] -name = "calloop-wayland-source" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20" -dependencies = [ - "calloop 0.13.0", - "rustix 0.38.44", - "wayland-backend", - "wayland-client", -] - -[[package]] -name = "calloop-wayland-source" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138efcf0940a02ebf0cc8d1eff41a1682a46b431630f4c52450d6265876021fa" -dependencies = [ - "calloop 0.14.5", - "rustix 1.1.6", - "wayland-backend", - "wayland-client", -] - -[[package]] -name = "cc" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86e055fa6e3e40ad6187ba25b6855eeb635d5271f8e0f0e1e9a5826b8d75bea0" -dependencies = [ - "find-msvc-tools", - "jobserver", - "libc 0.2.191", - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600" - -[[package]] -name = "cfg_aliases" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" - -[[package]] -name = "clipboard-win" -version = "5.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052af7878466feccda12ba7a6a67d019d712f296809559b47c12c8cc196d3a9a" -dependencies = [ - "error-code", -] - -[[package]] -name = "combine" -version = "4.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4356eba6976435498d05a311ee9fc486da3bc81c200d3f0d7dd9703b41913f92" -dependencies = [ - "bytes", - "memchr", -] - -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc 0.2.191", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "core-graphics" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-graphics-types", - "foreign-types", - "libc 0.2.191", -] - -[[package]] -name = "core-graphics-types" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "libc 0.2.191", -] - -[[package]] -name = "crc32fast" -version = "1.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ba106e844045ddc02c20768ac4b0b7cb45f2cc2ecbd833ac9f5dacb183c2055" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31eee39dddec8330830986fcd7625edb5a24ec90ea038215273bbc3adb08ac6" - -[[package]] -name = "crunchy" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" - -[[package]] -name = "cursor-icon" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f" - -[[package]] -name = "dispatch" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" - -[[package]] -name = "dispatch2" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" -dependencies = [ - "bitflags 2.13.2", - "objc2 0.6.5", -] - -[[package]] -name = "displaydoc" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8" -dependencies = [ - "proc-macro2", - "quote", - "syn 3.0.9", -] - -[[package]] -name = "dlib" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab8ecd87370524b461f8557c119c405552c396ed91fc0a8eec68679eab26f94a" -dependencies = [ - "libloading", -] - -[[package]] -name = "downcast-rs" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" - -[[package]] -name = "dpi" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" - -[[package]] -name = "ecolor" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc4feb366740ded31a004a0e4452fbf84e80ef432ecf8314c485210229672fd1" -dependencies = [ - "bytemuck", - "emath", -] - -[[package]] -name = "egl" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a373bc9844200b1ff15bd1b245931d1c20d09d06e4ec09f361171f29a4b0752d" -dependencies = [ - "khronos", - "libc 0.2.191", -] - -[[package]] -name = "egtest" -version = "0.1.0" -dependencies = [ - "android-activity", - "egl", - "egui", - "egui-winit", - "egui_glow", - "glow", - "libc 0.2.191", - "log", - "winit", -] - -[[package]] -name = "egui" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd34cec49ab55d85ebf70139cb1ccd29c977ef6b6ba4fe85489d6877ee9ef3" -dependencies = [ - "ahash", - "bitflags 2.13.2", - "emath", - "epaint", - "log", - "nohash-hasher", - "profiling", -] - -[[package]] -name = "egui-winit" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d9dfbb78fe4eb9c3a39ad528b90ee5915c252e77bbab9d4ebc576541ab67e13" -dependencies = [ - "ahash", - "arboard", - "bytemuck", - "egui", - "log", - "profiling", - "raw-window-handle", - "smithay-clipboard", - "web-time", - "webbrowser", - "winit", -] - -[[package]] -name = "egui_glow" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "910906e3f042ea6d2378ec12a6fd07698e14ddae68aed2d819ffe944a73aab9e" -dependencies = [ - "ahash", - "bytemuck", - "egui", - "egui-winit", - "glow", - "log", - "memoffset", - "profiling", - "wasm-bindgen", - "web-sys", - "winit", -] - -[[package]] -name = "emath" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e4cadcff7a5353ba72b7fea76bf2122b5ebdbc68e8155aa56dfdea90083fe1b" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "epaint" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fcc0f5a7c613afd2dee5e4b30c3e6acafb8ad6f0edb06068811f708a67c562" -dependencies = [ - "ab_glyph", - "ahash", - "bytemuck", - "ecolor", - "emath", - "epaint_default_fonts", - "log", - "nohash-hasher", - "parking_lot", - "profiling", -] - -[[package]] -name = "epaint_default_fonts" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7e7a64c02cf7a5b51e745a9e45f60660a286f151c238b9d397b3e923f5082f" - -[[package]] -name = "equivalent" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00d174d5400e5e8fd687ad1049e2f578285fa914201b1af7e8b112a4546bd826" - -[[package]] -name = "errno" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" -dependencies = [ - "libc 0.2.191", - "windows-sys 0.61.2", -] - -[[package]] -name = "error-code" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5343afd4a8365a643ac588dab4cf234a190c7f6c88c9f6dd6ffe00837661b7" - -[[package]] -name = "fax" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf1079563223d5d59d83c85886a56e586cfd5c1a26292e971a0fa266531ac5a" - -[[package]] -name = "fdeflate" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" -dependencies = [ - "simd-adler32", -] - -[[package]] -name = "find-msvc-tools" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c66915cc5391097de7a2b0b972e8505aa33c0df401fd3a6811dbdb32881ba48" - -[[package]] -name = "flate2" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" -dependencies = [ - "crc32fast", - "miniz_oxide 0.9.1", - "zlib-rs", -] - -[[package]] -name = "foreign-types" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" -dependencies = [ - "foreign-types-macros", - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-macros" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea5190182e6915eb873ddbc16e23b711b6eb1f9c00a0d0a3a91b5f6228475225" -dependencies = [ - "proc-macro2", - "quote", - "syn 3.0.9", -] - -[[package]] -name = "foreign-types-shared" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" - -[[package]] -name = "form_urlencoded" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-core" -version = "0.3.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" - -[[package]] -name = "futures-task" -version = "0.3.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" - -[[package]] -name = "futures-util" -version = "0.3.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "slab", -] - -[[package]] -name = "gethostname" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" -dependencies = [ - "rustix 1.1.6", - "windows-link", -] - -[[package]] -name = "getrandom" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" -dependencies = [ - "cfg-if", - "libc 0.2.191", - "r-efi 5.3.0", - "wasip2", -] - -[[package]] -name = "getrandom" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" -dependencies = [ - "cfg-if", - "libc 0.2.191", - "r-efi 6.0.0", -] - -[[package]] -name = "glow" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08" -dependencies = [ - "js-sys", - "slotmap", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "half" -version = "2.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" -dependencies = [ - "cfg-if", - "crunchy", - "zerocopy", -] - -[[package]] -name = "hashbrown" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" - -[[package]] -name = "hermit-abi" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" - -[[package]] -name = "icu_collections" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe090a42a0d3140fed8c63263ed1fecc02422cb2f4bfe55cd8de2de1b8e105dd" -dependencies = [ - "displaydoc", - "potential_utf", - "utf8_iter", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locale_core" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25d29b57c17c6528d0dc4c2141cfa2d08200465acb537a3909c8b9b8a4a984c0" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_normalizer" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "404a3b8c486f205c87fe7f23ab6894d84a4ad76d6e4671ae1981ba7def87c599" -dependencies = [ - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20f0088bfb7441f7a37fa0c9e20cb1e9cba1cac6b9ce8cd2a6dc44294f8e8cbc" - -[[package]] -name = "icu_properties" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ea83d991c56158f7cf898bf86436c1dfe7c07ee82fe88951f2695c9f37a379f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locale_core", - "icu_properties_data", - "icu_provider", - "zerotrie", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98f29af82d02b163fe50161388350e743bb3107cc8e8c2f7314cb505faddfcf" - -[[package]] -name = "icu_provider" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413099315636c588ee8f011190b329b971a09a8fae9d157e01dcae8379468514" -dependencies = [ - "displaydoc", - "icu_locale_core", - "writeable", - "yoke", - "zerofrom", - "zerotrie", - "zerovec", -] - -[[package]] -name = "idna" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "image" -version = "0.25.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85ab80394333c02fe689eaf900ab500fbd0c2213da414687ebf995a65d5a6104" -dependencies = [ - "bytemuck", - "byteorder-lite", - "moxcms", - "num-traits", - "png", - "tiff", -] - -[[package]] -name = "indexmap" -version = "2.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "jni" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" -dependencies = [ - "cfg-if", - "combine", - "jni-macros", - "jni-sys 0.4.1", - "log", - "simd_cesu8", - "thiserror 2.0.21", - "walkdir", - "windows-link", -] - -[[package]] -name = "jni-macros" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" -dependencies = [ - "proc-macro2", - "quote", - "rustc_version", - "simd_cesu8", - "syn 2.0.119", -] - -[[package]] -name = "jni-sys" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" -dependencies = [ - "jni-sys 0.4.1", -] - -[[package]] -name = "jni-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" -dependencies = [ - "jni-sys-macros", -] - -[[package]] -name = "jni-sys-macros" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" -dependencies = [ - "quote", - "syn 2.0.119", -] - -[[package]] -name = "jobserver" -version = "0.1.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3" -dependencies = [ - "getrandom 0.4.3", - "libc 0.2.191", -] - -[[package]] -name = "js-sys" -version = "0.3.107" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dc09d2154098bbf4ef54eab6b117a3c24cbbffe94046b16ee6d6d4510584d3a" -dependencies = [ - "cfg-if", - "futures-util", - "wasm-bindgen", -] - -[[package]] -name = "khronos" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0711aaa80e6ba6eb1fa8978f1f46bfcb38ceb2f3f33f3736efbff39dac89f50" -dependencies = [ - "libc 0.1.12", -] - -[[package]] -name = "libc" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e32a70cf75e5846d53a673923498228bbec6a8624708a9ea5645f075d6276122" - -[[package]] -name = "libc" -version = "0.2.191" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65cd87c9a6d60536580b316ad985726104730a5151c99845f2490428ef91240a" - -[[package]] -name = "libloading" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" -dependencies = [ - "cfg-if", - "windows-link", -] - -[[package]] -name = "libredox" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61ff90caf6077a803a240f62fdbe88645a890bbca49ef8174c3cb0404362171d" -dependencies = [ - "bitflags 2.13.2", - "libc 0.2.191", - "plain", - "redox_syscall 0.9.5", -] - -[[package]] -name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - -[[package]] -name = "linux-raw-sys" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" - -[[package]] -name = "litemap" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47d9d19d1d6efa0109d2f65ff4c85cddd50bd572e5a00127ab10987290bcefae" - -[[package]] -name = "lock_api" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" -dependencies = [ - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d15f86d12da44cd8d4ec3c73984537eb7f4cadcb9776a575a0a8a05ca11005c" - -[[package]] -name = "memchr" -version = "2.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" - -[[package]] -name = "memmap2" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b0ca1155a9ecc25aa12e8313a119f32edf0255fea2f44839c4ac0a12b2ac157" -dependencies = [ - "libc 0.2.191", -] - -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", - "simd-adler32", -] - -[[package]] -name = "miniz_oxide" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b63fbc4a50860e98e7b2aa7804ded1db5cbc3aff9193adaff57a6931bf7c4b4c" -dependencies = [ - "adler2", - "simd-adler32", -] - -[[package]] -name = "moxcms" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb85c154ba489f01b25c0d36ae69a87e4a1c73a72631fc6c0eb6dde34a73e44b" -dependencies = [ - "num-traits", - "pxfm", -] - -[[package]] -name = "ndk" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" -dependencies = [ - "bitflags 2.13.2", - "jni-sys 0.3.1", - "log", - "ndk-sys", - "num_enum", - "raw-window-handle", - "thiserror 1.0.69", -] - -[[package]] -name = "ndk-context" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" - -[[package]] -name = "ndk-sys" -version = "0.6.0+11769913" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" -dependencies = [ - "jni-sys 0.3.1", -] - -[[package]] -name = "nohash-hasher" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_enum" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" -dependencies = [ - "num_enum_derive", - "rustversion", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.119", -] - -[[package]] -name = "objc-sys" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" - -[[package]] -name = "objc2" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d5490aaf8f1d7cf7688dfa9b0ce07900e168852c45cd2c03f534dfd27cfd0b" -dependencies = [ - "objc-sys", - "objc2-encode", -] - -[[package]] -name = "objc2" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08849bbd4767dfae9457696856ae1c84fe4e0281bbe4a7abff2d0e06fb7981f8" -dependencies = [ - "objc2-encode", -] - -[[package]] -name = "objc2-app-kit" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" -dependencies = [ - "bitflags 2.13.2", - "block2", - "libc 0.2.191", - "objc2 0.5.3", - "objc2-core-data", - "objc2-core-image", - "objc2-foundation 0.2.2", - "objc2-quartz-core", -] - -[[package]] -name = "objc2-app-kit" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" -dependencies = [ - "bitflags 2.13.2", - "objc2 0.6.5", - "objc2-core-graphics", - "objc2-foundation 0.3.2", -] - -[[package]] -name = "objc2-cloud-kit" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" -dependencies = [ - "bitflags 2.13.2", - "block2", - "objc2 0.5.3", - "objc2-core-location", - "objc2-foundation 0.2.2", -] - -[[package]] -name = "objc2-contacts" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" -dependencies = [ - "block2", - "objc2 0.5.3", - "objc2-foundation 0.2.2", -] - -[[package]] -name = "objc2-core-data" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" -dependencies = [ - "bitflags 2.13.2", - "block2", - "objc2 0.5.3", - "objc2-foundation 0.2.2", -] - -[[package]] -name = "objc2-core-foundation" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" -dependencies = [ - "bitflags 2.13.2", - "dispatch2", - "objc2 0.6.5", -] - -[[package]] -name = "objc2-core-graphics" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" -dependencies = [ - "bitflags 2.13.2", - "dispatch2", - "objc2 0.6.5", - "objc2-core-foundation", - "objc2-io-surface", -] - -[[package]] -name = "objc2-core-image" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" -dependencies = [ - "block2", - "objc2 0.5.3", - "objc2-foundation 0.2.2", - "objc2-metal", -] - -[[package]] -name = "objc2-core-location" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" -dependencies = [ - "block2", - "objc2 0.5.3", - "objc2-contacts", - "objc2-foundation 0.2.2", -] - -[[package]] -name = "objc2-encode" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" - -[[package]] -name = "objc2-foundation" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" -dependencies = [ - "bitflags 2.13.2", - "block2", - "dispatch", - "libc 0.2.191", - "objc2 0.5.3", -] - -[[package]] -name = "objc2-foundation" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" -dependencies = [ - "bitflags 2.13.2", - "objc2 0.6.5", - "objc2-core-foundation", -] - -[[package]] -name = "objc2-io-surface" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" -dependencies = [ - "bitflags 2.13.2", - "objc2 0.6.5", - "objc2-core-foundation", -] - -[[package]] -name = "objc2-link-presentation" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" -dependencies = [ - "block2", - "objc2 0.5.3", - "objc2-app-kit 0.2.2", - "objc2-foundation 0.2.2", -] - -[[package]] -name = "objc2-metal" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" -dependencies = [ - "bitflags 2.13.2", - "block2", - "objc2 0.5.3", - "objc2-foundation 0.2.2", -] - -[[package]] -name = "objc2-quartz-core" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" -dependencies = [ - "bitflags 2.13.2", - "block2", - "objc2 0.5.3", - "objc2-foundation 0.2.2", - "objc2-metal", -] - -[[package]] -name = "objc2-symbols" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" -dependencies = [ - "objc2 0.5.3", - "objc2-foundation 0.2.2", -] - -[[package]] -name = "objc2-ui-kit" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" -dependencies = [ - "bitflags 2.13.2", - "block2", - "objc2 0.5.3", - "objc2-cloud-kit", - "objc2-core-data", - "objc2-core-image", - "objc2-core-location", - "objc2-foundation 0.2.2", - "objc2-link-presentation", - "objc2-quartz-core", - "objc2-symbols", - "objc2-uniform-type-identifiers", - "objc2-user-notifications", -] - -[[package]] -name = "objc2-uniform-type-identifiers" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" -dependencies = [ - "block2", - "objc2 0.5.3", - "objc2-foundation 0.2.2", -] - -[[package]] -name = "objc2-user-notifications" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" -dependencies = [ - "bitflags 2.13.2", - "block2", - "objc2 0.5.3", - "objc2-core-location", - "objc2-foundation 0.2.2", -] - -[[package]] -name = "once_cell" -version = "1.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" - -[[package]] -name = "orbclient" -version = "0.3.55" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5df339f526ea9a60e371768d50efc2f2508c7203290731565d1f7a6f71d21747" -dependencies = [ - "libc 0.2.191", - "libredox", -] - -[[package]] -name = "owned_ttf_parser" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b" -dependencies = [ - "ttf-parser", -] - -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if", - "libc 0.2.191", - "redox_syscall 0.5.18", - "smallvec", - "windows-link", -] - -[[package]] -name = "percent-encoding" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" - -[[package]] -name = "pin-project" -version = "1.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" - -[[package]] -name = "pkg-config" -version = "0.3.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" - -[[package]] -name = "plain" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" - -[[package]] -name = "png" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" -dependencies = [ - "bitflags 2.13.2", - "crc32fast", - "fdeflate", - "flate2", - "miniz_oxide 0.8.9", -] - -[[package]] -name = "polling" -version = "3.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" -dependencies = [ - "cfg-if", - "concurrent-queue", - "hermit-abi", - "pin-project-lite", - "rustix 1.1.6", - "windows-sys 0.61.2", -] - -[[package]] -name = "potential_utf" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d83eb9bc6d8e5cf568e7a1101d60ee05e81ed50ea106026f3d18deeb046d7661" -dependencies = [ - "zerovec", -] - -[[package]] -name = "proc-macro-crate" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" -dependencies = [ - "toml_edit", -] - -[[package]] -name = "proc-macro2" -version = "1.0.107" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "profiling" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d595e54a326bc53c1c197b32d295e14b169e3cfeaa8dc82b529f947fba6bcf5" - -[[package]] -name = "pxfm" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d55d956fa96f5ec02be2e13af0e20391a5aa83d6a074e3ad368959d0fab299ea" - -[[package]] -name = "quick-error" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" - -[[package]] -name = "quick-xml" -version = "0.41.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e660451e55124f798a69a5af3f49ccfbefbd41910eefd25caf2393e1f3473ec1" -dependencies = [ - "memchr", -] - -[[package]] -name = "quote" -version = "1.0.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - -[[package]] -name = "r-efi" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" - -[[package]] -name = "raw-window-handle" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" - -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" -dependencies = [ - "bitflags 2.13.2", -] - -[[package]] -name = "redox_syscall" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "580c875845b41ecb1564ad1ae4703044cef774145e3d7a94dc2b3fa7c97868fd" -dependencies = [ - "bitflags 2.13.2", -] - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags 2.13.2", - "errno", - "libc 0.2.191", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", -] - -[[package]] -name = "rustix" -version = "1.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5e76742e5294153d4dde1207dbec5bdd81eef6fabdc0d2118babadabfd858aa" -dependencies = [ - "bitflags 2.13.2", - "errno", - "libc 0.2.191", - "linux-raw-sys 0.12.1", - "windows-sys 0.61.2", -] - -[[package]] -name = "rustversion" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "sctk-adwaita" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec" -dependencies = [ - "ab_glyph", - "log", - "memmap2", - "smithay-client-toolkit 0.19.2", - "tiny-skia", -] - -[[package]] -name = "semver" -version = "1.0.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" - -[[package]] -name = "serde" -version = "1.0.229" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" -dependencies = [ - "serde_core", -] - -[[package]] -name = "serde_core" -version = "1.0.229" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.229" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" -dependencies = [ - "proc-macro2", - "quote", - "syn 3.0.9", -] - -[[package]] -name = "shlex" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" - -[[package]] -name = "simd-adler32" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" - -[[package]] -name = "simd_cesu8" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11031e251abf8611c80f460e19dbdeb54a66db918e49c65a7065b46ac7aec520" -dependencies = [ - "rustc_version", - "simdutf8", -] - -[[package]] -name = "simdutf8" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" - -[[package]] -name = "slab" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" - -[[package]] -name = "slotmap" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdd58c3c93c3d278ca835519292445cb4b0d4dc59ccfdf7ceadaab3f8aeb4038" -dependencies = [ - "version_check", -] - -[[package]] -name = "smallvec" -version = "1.16.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0d5d4b1981b8bbbb7aed204cae5726d683d5d6ac7e74ec54122ea28f315e7c8" - -[[package]] -name = "smithay-client-toolkit" -version = "0.19.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" -dependencies = [ - "bitflags 2.13.2", - "calloop 0.13.0", - "calloop-wayland-source 0.3.0", - "cursor-icon", - "libc 0.2.191", - "log", - "memmap2", - "rustix 0.38.44", - "thiserror 1.0.69", - "wayland-backend", - "wayland-client", - "wayland-csd-frame", - "wayland-cursor", - "wayland-protocols", - "wayland-protocols-wlr", - "wayland-scanner", - "xkeysym", -] - -[[package]] -name = "smithay-client-toolkit" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0512da38f5e2b31201a93524adb8d3136276fa4fe4aafab4e1f727a82b534cc0" -dependencies = [ - "bitflags 2.13.2", - "calloop 0.14.5", - "calloop-wayland-source 0.4.1", - "cursor-icon", - "libc 0.2.191", - "log", - "memmap2", - "rustix 1.1.6", - "thiserror 2.0.21", - "wayland-backend", - "wayland-client", - "wayland-csd-frame", - "wayland-cursor", - "wayland-protocols", - "wayland-protocols-experimental", - "wayland-protocols-misc", - "wayland-protocols-wlr", - "wayland-scanner", - "xkeysym", -] - -[[package]] -name = "smithay-clipboard" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71704c03f739f7745053bde45fa203a46c58d25bc5c4efba1d9a60e9dba81226" -dependencies = [ - "libc 0.2.191", - "smithay-client-toolkit 0.20.0", - "wayland-backend", -] - -[[package]] -name = "smol_str" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" -dependencies = [ - "serde", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" - -[[package]] -name = "strict-num" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" - -[[package]] -name = "syn" -version = "2.0.119" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "3.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d78c8dee4c7bf0e14673097256fed6142ce9d3b85a408189d07482442145823b" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "901704edd0dfe137f1987838ee4f259e4e063c31371bdb423f7ae38ec6f77f02" -dependencies = [ - "proc-macro2", - "quote", - "syn 3.0.9", -] - -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09e52cb86a36cede5cb101bf8908837b3e4c6e5e59fe7fd85c23fb56200d189e" -dependencies = [ - "thiserror-impl 2.0.21", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe5197923287db20a58125f0bc85c062f7f2c892de97b18c356f9efb14b28524" -dependencies = [ - "proc-macro2", - "quote", - "syn 3.0.9", -] - -[[package]] -name = "tiff" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b63feaf3343d35b6ca4d50483f94843803b0f51634937cc2ec519fc32232bc52" -dependencies = [ - "fax", - "flate2", - "half", - "quick-error", - "weezl", - "zune-jpeg", -] - -[[package]] -name = "tiny-skia" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab" -dependencies = [ - "arrayref", - "arrayvec", - "bytemuck", - "cfg-if", - "log", - "tiny-skia-path", -] - -[[package]] -name = "tiny-skia-path" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93" -dependencies = [ - "arrayref", - "bytemuck", - "strict-num", -] - -[[package]] -name = "tinystr" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abc840c238154d58f9e86b2792261edfde565a17696e1cda1a449de27979801a" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.54.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b52fd3255258d26fac7264ab5a76b53c13367136dc011d3d6ad4f8ed070396a3" -dependencies = [ - "pin-project-lite", -] - -[[package]] -name = "toml_datetime" -version = "1.1.2+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b86d767906c6c42421dcba507eb9d203e779497710a47782a224bb871653053" -dependencies = [ - "serde_core", -] - -[[package]] -name = "toml_edit" -version = "0.25.17+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3641d5bbb5349a79e1020a242d251efbc546ad8048d133958323ce9c40a9c9c" -dependencies = [ - "indexmap", - "toml_datetime", - "toml_parser", - "winnow", -] - -[[package]] -name = "toml_parser" -version = "1.1.5+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baa693a8032d7e1cada7d0041e96126df243179ff061456783ac7f12bda4744c" -dependencies = [ - "winnow", -] - -[[package]] -name = "tracing" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" -dependencies = [ - "log", - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" - -[[package]] -name = "ttf-parser" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" - -[[package]] -name = "unicode-ident" -version = "1.0.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2c754d6c33795a1c324727428e5a7dedb5b06195f9890bdbcba760d3e246563" - -[[package]] -name = "unicode-segmentation" -version = "1.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" - -[[package]] -name = "url" -version = "2.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[package]] -name = "utf8_iter" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af3bd9d3e571c26fcce9d033b87ea5ab061b8d2ffe9b7a5675d810d68f03edf0" -dependencies = [ - "utf_types", -] - -[[package]] -name = "utf_types" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3b425286980a367278453f3b6d28cdcb134b574e5a35824a6ff5eebad50bb6" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "wasip2" -version = "1.0.4+wasi-0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasm-bindgen" -version = "0.2.130" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0181c14ddd6c7b8b0b0132a5f1ea2f32be0d893cd3ea97b6e3b28886b8a3d1c" -dependencies = [ - "cfg-if", - "rustversion", - "wasm-bindgen-macro", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.80" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e14e0327cb5368ad60ccb22d04a9827a693c95a926d8d125e9fa39e0baec501" -dependencies = [ - "js-sys", - "tokio", - "wasm-bindgen", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.130" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e931a02a39abdbf66966fc35902b5ed58344750a70885bed4ebb3d8eaf28ed9" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.130" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ca4b54280e455bd831e33a6b8e734baf432fe63fbc35c42ac14ce67a043a53a" -dependencies = [ - "bumpalo", - "proc-macro2", - "quote", - "syn 3.0.9", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.130" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b1f9c3798725016c6ee5f2f57869ec0831e8bbc0ab0310a86e787e97f41389e" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "wayland-backend" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38a91b4eaddff87b1cd1074985e3713da4af2c49742d1b356b2c01670a67a078" -dependencies = [ - "cc", - "downcast-rs", - "rustix 1.1.6", - "scoped-tls", - "smallvec", - "wayland-sys", -] - -[[package]] -name = "wayland-client" -version = "0.31.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c36a0f861ad76d0901f2800b46321410d9f73f2ea88aac0650d86c32688073" -dependencies = [ - "bitflags 2.13.2", - "rustix 1.1.6", - "wayland-backend", - "wayland-scanner", -] - -[[package]] -name = "wayland-csd-frame" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" -dependencies = [ - "bitflags 2.13.2", - "cursor-icon", - "wayland-backend", -] - -[[package]] -name = "wayland-cursor" -version = "0.31.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a52d18780be9b1314328a3de5f930b73d2200112e3849ca6cb11822793fb34d" -dependencies = [ - "rustix 1.1.6", - "wayland-client", - "xcursor", -] - -[[package]] -name = "wayland-protocols" -version = "0.32.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d0c813de3daa2ed6520af85a3bd49b0e722a3078506899aa9686fea58dc4b6" -dependencies = [ - "bitflags 2.13.2", - "wayland-backend", - "wayland-client", - "wayland-scanner", -] - -[[package]] -name = "wayland-protocols-experimental" -version = "20250721.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40a1f863128dcaaec790d7b4b396cc9b9a7a079e878e18c47e6c2d2c5a8dcbb1" -dependencies = [ - "bitflags 2.13.2", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "wayland-scanner", -] - -[[package]] -name = "wayland-protocols-misc" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e9567599ef23e09b8dad6e429e5738d4509dfc46b3b21f32841a304d16b29c8" -dependencies = [ - "bitflags 2.13.2", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "wayland-scanner", -] - -[[package]] -name = "wayland-protocols-plasma" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b6d8cf1eb2c1c31ed1f5643c88a6e53538129d4af80030c8cabd1f9fa884d91" -dependencies = [ - "bitflags 2.13.2", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "wayland-scanner", -] - -[[package]] -name = "wayland-protocols-wlr" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234" -dependencies = [ - "bitflags 2.13.2", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "wayland-scanner", -] - -[[package]] -name = "wayland-scanner" -version = "0.31.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "338e30461b3a2b67d70eb30a6d89f8e0c93a833e07d2ae89085cd070c4a00ac0" -dependencies = [ - "proc-macro2", - "quick-xml", - "quote", -] - -[[package]] -name = "wayland-sys" -version = "0.31.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8eab23fefc9e41f8e841df4a9c707e8a8c4ed26e944ef69297184de2785e3be" -dependencies = [ - "dlib", - "log", - "once_cell", - "pkg-config", -] - -[[package]] -name = "web-sys" -version = "0.3.107" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7d179596ff5ec0f6de4db64d54011bde6289cc49603d3a6e4ce3f329207ab88" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "web-time" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webbrowser" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c8ddfbbf66e501434657400268cefe51b95140a0266236415cda7627732df7" -dependencies = [ - "jni", - "log", - "ndk-context", - "objc2 0.6.5", - "objc2-app-kit 0.3.2", - "objc2-foundation 0.3.2", - "url", - "web-sys", -] - -[[package]] -name = "weezl" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" - -[[package]] -name = "winapi-util" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "windows-link" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-sys" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winit" -version = "0.30.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6755fa58a9f8350bd1e472d4c3fcc25f824ec358933bba33306d0b63df5978d" -dependencies = [ - "ahash", - "android-activity", - "atomic-waker", - "bitflags 2.13.2", - "block2", - "bytemuck", - "calloop 0.13.0", - "cfg_aliases", - "concurrent-queue", - "core-foundation", - "core-graphics", - "cursor-icon", - "dpi", - "js-sys", - "libc 0.2.191", - "memmap2", - "ndk", - "objc2 0.5.3", - "objc2-app-kit 0.2.2", - "objc2-foundation 0.2.2", - "objc2-ui-kit", - "orbclient", - "percent-encoding", - "pin-project", - "raw-window-handle", - "redox_syscall 0.4.1", - "rustix 0.38.44", - "sctk-adwaita", - "smithay-client-toolkit 0.19.2", - "smol_str", - "tracing", - "unicode-segmentation", - "wasm-bindgen", - "wasm-bindgen-futures", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "wayland-protocols-plasma", - "web-sys", - "web-time", - "windows-sys 0.52.0", - "x11-dl", - "x11rb", - "xkbcommon-dl", -] - -[[package]] -name = "winnow" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" -dependencies = [ - "memchr", -] - -[[package]] -name = "wit-bindgen" -version = "0.57.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" - -[[package]] -name = "writeable" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc" - -[[package]] -name = "x11-dl" -version = "2.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" -dependencies = [ - "libc 0.2.191", - "once_cell", - "pkg-config", -] - -[[package]] -name = "x11rb" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414" -dependencies = [ - "as-raw-xcb-connection", - "gethostname", - "libc 0.2.191", - "libloading", - "once_cell", - "rustix 1.1.6", - "x11rb-protocol", -] - -[[package]] -name = "x11rb-protocol" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" - -[[package]] -name = "xcursor" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "163b33ed8786455e2fa5d72f554057ce3f3182425434f756cd39c99839d88e23" - -[[package]] -name = "xkbcommon-dl" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" -dependencies = [ - "bitflags 2.13.2", - "dlib", - "log", - "once_cell", - "xkeysym", -] - -[[package]] -name = "xkeysym" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" - -[[package]] -name = "yoke" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "417ef3fcf6c300b7dbd25c85531a746931c02ad536f3cf4786ed1e88223340b3" -dependencies = [ - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8ebde2db3681e8c9980cc27822030e68752690ddfa9473e739aeb4dbde6d71" -dependencies = [ - "proc-macro2", - "quote", - "syn 3.0.9", - "synstructure", -] - -[[package]] -name = "zerocopy" -version = "0.8.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5fe1f8f1b06191a00962174c61aa5005e0bb391a6d80d07e24d115c01a92ed8" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "863ad3ac83293fb4d740aedbfdc9240dd8d1a50c1099acd76ce80ce7c7230c7f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", -] - -[[package]] -name = "zerofrom" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f75b4683f6c7f45248d4d64056a24298c6281e0993356d7d1b4a1a962ef10d4a" -dependencies = [ - "proc-macro2", - "quote", - "syn 3.0.9", - "synstructure", -] - -[[package]] -name = "zerotrie" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea269c3bd32f0a32c321907a2ae912ba6f4649bb0fc764a15627e99a7095a3f" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - -[[package]] -name = "zerovec" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f58a2799cfe9a1670c7ea8edbd52ef8edb93cb37a7f83bf31ba9e35d9dae6a40" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.11.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3743ddbf47738d929cd1ae2e199d40d0162979dfe31aef8ae646d2bf00bf97a" -dependencies = [ - "proc-macro2", - "quote", - "syn 3.0.9", -] - -[[package]] -name = "zlib-rs" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b268e58e7c693d7c271f93ffc4ba3b380412554231c85bf61ca7af91042a4112" - -[[package]] -name = "zune-core" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d56377fd46368984a170bc5aac5567e52ca5da874caa60bea39fcbca78fb658b" - -[[package]] -name = "zune-jpeg" -version = "0.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296" -dependencies = [ - "zune-core", -] diff --git a/harnesses/egtest/Cargo.toml b/harnesses/egtest/Cargo.toml deleted file mode 100644 index d349f52..0000000 --- a/harnesses/egtest/Cargo.toml +++ /dev/null @@ -1,45 +0,0 @@ -[package] -name = "egtest" -version = "0.1.0" -edition = "2021" - -[lib] -crate-type = ["cdylib", "lib"] - -# egui stack — all stock crates.io, nothing vendored: -# egui/egui_glow/egui_winit are released in lockstep (same version). -[dependencies] -egui = "0.31" -egui_glow = { version = "0.31", features = ["winit"] } -egui-winit = "0.31" -glow = "0.16" -winit = { version = "0.30", features = ["android-native-activity"] } -android-activity = "0.6" -egl = "0.2" -libc = "0.2" -log = "0.4" - -[build-dependencies] - -[package.metadata.android] -package = "wow.gmp.egtest" -build_targets = ["x86_64-linux-android", "aarch64-linux-android"] - -[package.metadata.android.sdk] -min_sdk_version = 26 -target_sdk_version = 35 - -[package.metadata.android.application] -label = "Egtest" - -[[package.metadata.android.application.activity]] -name = "android.app.NativeActivity" -config_changes = "orientation|screenSize|screenLayout|smallestScreenSize|keyboard|keyboardHidden|navigation|uiMode|touchscreen" - -[[package.metadata.android.application.activity.meta_data]] -name = "android.app.lib_name" -value = "egtest" - -[[package.metadata.android.application.activity.intent_filter]] -actions = ["android.intent.action.MAIN"] -categories = ["android.intent.category.LAUNCHER"] diff --git a/harnesses/egtest/scripts/build.sh b/harnesses/egtest/scripts/build.sh deleted file mode 100755 index dec2965..0000000 --- a/harnesses/egtest/scripts/build.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env bash -# Build + install egtest (egui grid, no textures) on the emulator or phone. -# ./build.sh # x86_64 (emulator) + install -# ./build.sh aarch64 # phone + install -# ./build.sh no-install -set -euo pipefail -cd "$(dirname "$0")/.." - -export ANDROID_HOME=$HOME/android-sdk -export ANDROID_NDK_ROOT=$HOME/android-sdk/ndk/27.0.12077973 -export PATH="$HOME/.cargo/bin:$ANDROID_HOME/platform-tools:$PATH" - -SDK_PLATFORM=android-35 -export ANDROID_JAR=$HOME/android-sdk/platforms/$SDK_PLATFORM/android.jar - -NDK_BIN=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin -arg1=${1:-x86_64} -arg2=${2:-install} -case $arg1 in - x86_64) export ANDROID_ABI=x86_64; export CC_x86_64_linux_android=$NDK_BIN/x86_64-linux-android26-clang CXX_x86_64_linux_android=$NDK_BIN/x86_64-linux-android26-clang++ AR_x86_64_linux_android=$NDK_BIN/llvm-ar; target=x86_64-linux-android ;; - aarch64) export ANDROID_ABI=arm64-v8a; export CC_aarch64_linux_android=$NDK_BIN/aarch64-linux-android26-clang CXX_aarch64_linux_android=$NDK_BIN/aarch64-linux-android26-clang++ AR_aarch64_linux_android=$NDK_BIN/llvm-ar; target=aarch64-linux-android ;; - *) echo "unknown: $arg1"; exit 1 ;; -esac - -# 16KB-page kernel (Pixel 9 Pro) rejects .so with p_align that the segment -# offsets don't satisfy — pin max-page-size to 4 KB (sltest-verified layout). -export RUSTFLAGS="-C link-arg=-Wl,-z,max-page-size=4096" - -export CARGO_APK_RELEASE_KEYSTORE=$HOME/.android/debug.keystore -export CARGO_APK_RELEASE_KEYSTORE_PASSWORD=android - -adb=(); [ -n "${ADB_SERIAL:-}" ] && adb=(adb -s "$ADB_SERIAL") - -cargo apk2 build --release --target "$target" --lib -apk=target/release/apk/egtest.apk -echo "APK: $apk ($(du -h "$apk" | cut -f1))" -if [ "$arg2" = install ] && command -v adb >/dev/null; then - "${adb[@]}" install -r "$apk" - "${adb[@]}" shell am start -n wow.gmp.egtest/android.app.NativeActivity || true -fi diff --git a/harnesses/egtest/src/lib.rs b/harnesses/egtest/src/lib.rs deleted file mode 100644 index d9ed795..0000000 --- a/harnesses/egtest/src/lib.rs +++ /dev/null @@ -1,352 +0,0 @@ -//! egtest — the egui port of sltest: 8,580 full-width rows (148 px color -//! band + 2 px white separator), vertical flickable with momentum, on a -//! 120 Hz panel. The CONTROL experiment for the Slint jank verdict: -//! if this is smooth to the user's finger where sltest (identical scene) -//! is janky, the Slint render path is the cause and the gallery gets -//! ported to egui. -//! -//! Architecture (idiomatic egui for a long list — what the gallery port -//! will use): NO 8,580 live widgets. The scroll offset is app state; each -//! frame we paint only the visible rows (+ margin) with the painter. -//! -//! Loop: winit 0.30 ApplicationHandler. about_to_wait requests a redraw -//! every idle tick → we render at the panel rate continuously (also -//! measures idle cost; the FR log distinguishes drew=0 vs drew=1). -//! -//! Instrumentation: FR lines (t, frame gap, cost, drew) via a -//! non-blocking file logger (sltest pattern). - -use std::sync::{mpsc, Arc, OnceLock}; -use std::time::Instant; - -use egui::{Color32, Pos2, Rect, Sense, Ui, Vec2}; -use winit::application::ApplicationHandler; -use winit::event::WindowEvent; -use winit::event_loop::{ActiveEventLoop, EventLoop}; -use winit::platform::android::{ActiveEventLoopExtAndroid, EventLoopBuilderExtAndroid}; -use winit::window::WindowId; - -const ROWS: usize = 8580; -const ROW_PX: f32 = 150.0; // 148 color + 2 separator -const COLOR_PX: f32 = 148.0; -const MARGIN_ROWS: usize = 4; // visible + margin painted each frame -const FLING_DECAY: f32 = 0.94; -const FLING_MIN: f32 = 8.0; // px/frame — below this the fling ends - -// --------------------------------------------------------------------------- -// Instrumentation (sltest pattern: non-blocking, batch-flush) -// --------------------------------------------------------------------------- - -static T0: OnceLock = OnceLock::new(); -static LAST_FRAME_US: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(0); - -fn now_us() -> u64 { - T0.get_or_init(Instant::now).elapsed().as_micros() as u64 -} - -fn now_ms() -> f64 { - now_us() as f64 / 1000.0 -} - -struct LogTx(mpsc::Sender); -static LOG: OnceLock = OnceLock::new(); - -fn init_log(path: &str) { - let path = path.to_string(); - let (tx, rx) = mpsc::channel::(); - std::thread::Builder::new() - .name("log-drain".into()) - .spawn(move || { - let mut f = match std::fs::File::create(&path) { - Ok(f) => f, - Err(e) => { - eprintln!("log: cannot create {path}: {e}"); - return; - } - }; - use std::io::Write as _; - loop { - match rx.recv() { - Ok(line) => { - let _ = writeln!(f, "{line}"); - let _ = f.flush(); - } - Err(_) => break, - } - } - }) - .ok(); - let _ = LOG.set(LogTx(tx)); -} - -fn log_line(s: String) { - if let Some(l) = LOG.get() { - let _ = l.0.send(s); - } -} - -// --------------------------------------------------------------------------- -// Scroll state (the flickable) -// --------------------------------------------------------------------------- - -struct Flick { - offset: f32, // px scrolled up (0 = top) - velocity: Option, // px per frame while flinging - last_delta: f32, -} - -impl Flick { - fn new() -> Self { - Self { offset: 0.0, velocity: None, last_delta: 0.0 } - } - fn max_offset(&self, view_h: f32) -> f32 { - (ROWS as f32 * ROW_PX - view_h).max(0.0) - } - /// One physics step, called once per rendered frame. - fn step(&mut self, view_h: f32) { - if let Some(v) = self.velocity { - if v.abs() < FLING_MIN { - self.velocity = None; - } else { - self.offset += v; - self.velocity = Some(v * FLING_DECAY); - } - } - self.offset = self.offset.clamp(0.0, self.max_offset(view_h)); - } -} - -struct App { - flick: Flick, -} - -impl App { - fn new() -> Self { - Self { flick: Flick::new() } - } - - fn ui(&mut self, ui: &mut Ui) { - let (rect, resp) = - ui.allocate_exact_size(ui.available_rect_before_wrap().size(), Sense::drag()); - let view_h = rect.height(); - - let d = resp.drag_delta(); - if d != Vec2::ZERO { - self.flick.offset -= d.y; - self.flick.last_delta = d.y; - self.flick.velocity = None; - } - if resp.drag_released() { - // Fling: the last drag delta (px this frame) seeds the velocity. - if self.flick.last_delta.abs() > 1.0 { - self.flick.velocity = Some(self.flick.last_delta * 1.5); - } - self.flick.last_delta = 0.0; - } - - self.flick.step(view_h); - // While flinging we need the next frame. - if self.flick.velocity.is_some() { - ui.ctx().request_repaint(); - } - - let min_y = self.flick.offset; - let max_y = self.flick.offset + view_h; - let first = ((min_y / ROW_PX).floor() as usize).saturating_sub(MARGIN_ROWS); - let last = ((max_y / ROW_PX).ceil() as usize).saturating_add(MARGIN_ROWS).min(ROWS); - let painter = ui.painter_at(rect); - painter.rect_filled(rect, 0.0, Color32::WHITE); - for r in first..last { - let y = r as f32 * ROW_PX - self.flick.offset; - if y + ROW_PX < rect.min.y || y > rect.max.y { - continue; - } - let band = Rect::from_min_max( - Pos2::new(rect.min.x, y), - Pos2::new(rect.max.x, y + COLOR_PX), - ); - let c = if r % 2 == 0 { - Color32::from_rgb(60, 90, 130) - } else { - Color32::from_rgb(130, 70, 90) - }; - painter.rect_filled(band, 0.0, c); - } - } -} - -// --------------------------------------------------------------------------- -// EGL (Android) -// --------------------------------------------------------------------------- - -struct Egl { - display: *mut std::ffi::c_void, - surface: *mut std::ffi::c_void, -} - -fn init_gl(native_window: *mut libc::c_void) -> (Arc, Egl) { - unsafe { - let display = egl::get_display(egl::EGL_DEFAULT_DISPLAY).expect("get_display"); - let (mut maj, mut min) = (0i32, 0i32); - assert!(egl::initialize(display, &mut maj, &mut min), "eglInitialize"); - assert!(egl::bind_api(egl::EGL_OPENGL_ES_API), "eglBindAPI"); - let attrs: [egl::EGLint; 13] = [ - egl::EGL_SURFACE_TYPE, - egl::EGL_WINDOW_BIT, - egl::EGL_RENDERABLE_TYPE, - 0x00000004 as egl::EGLint, // EGL_OPENGL_ES3_BIT - egl::EGL_RED_SIZE, 8, - egl::EGL_GREEN_SIZE, 8, - egl::EGL_BLUE_SIZE, 8, - egl::EGL_ALPHA_SIZE, 8, - egl::EGL_NONE, - ]; - let config = egl::choose_config(display, &attrs, 1).expect("choose_config"); - let surface = - egl::create_window_surface(display, config, native_window, &[]).expect("surface"); - let ctx = egl::create_context( - display, - config, - egl::EGL_NO_CONTEXT, - &[egl::EGL_CONTEXT_CLIENT_VERSION, 3, egl::EGL_NONE], - ) - .expect("context"); - assert!(egl::make_current(display, surface, surface, ctx), "make_current"); - let gl = Arc::new(glow::Context::from_loader_function(|name| { - egl::get_proc_address(name) as *mut libc::c_void - })); - (gl, Egl { display, surface }) - } -} - -// --------------------------------------------------------------------------- -// The app / event loop -// --------------------------------------------------------------------------- - -struct Harness { - egui_glow: Option, - window: Option, - egl: Option, - app: App, -} - -impl ApplicationHandler for Harness { - fn resumed(&mut self, ael: &ActiveEventLoop) { - if self.window.is_none() { - let w = ael - .create_window(winit::window::WindowAttributes::new().with_title("egtest")) - .expect("window"); - let nw = ael.android_app().native_window().expect("surface").ptr().as_ptr() - as *mut libc::c_void; - let (gl, e) = init_gl(nw); - self.egl = Some(e); - self.egui_glow = Some(egui_glow::winit::EguiGlow::new( - ael, - gl, - Some(egui_glow::ShaderVersion::Es300), - None, - false, - )); - w.request_redraw(); - self.window = Some(w); - } - } - - fn window_event(&mut self, ael: &ActiveEventLoop, _id: WindowId, event: WindowEvent) { - if matches!(event, WindowEvent::RedrawRequested) { - self.render(); - return; - } - if matches!(event, WindowEvent::CloseRequested) { - ael.exit(); - return; - } - if self.window.is_none() { - return; - } - let w = self.window.as_ref().unwrap(); - let eg = self.egui_glow.as_mut().unwrap(); - let repaint = eg.on_window_event(w, &event).repaint; - if repaint { - w.request_redraw(); - } - } - - fn about_to_wait(&mut self, ael: &ActiveEventLoop) { - // winit's RedrawRequested dispatch is dead on this device - // (MainEvent::Resume never arrives -> running=false -> the - // dispatch is suppressed), so we drive frames ourselves: - // render now, then pace the next poll at ~120 Hz. - if self.window.is_some() { - self.render(); - ael.set_control_flow(winit::event_loop::ControlFlow::WaitUntil( - std::time::Instant::now() + std::time::Duration::from_micros(8333), - )); - } - } -} - -impl Harness { - fn render(&mut self) { - let Some(w) = self.window.as_ref() else { return }; - let Some(eg) = self.egui_glow.as_mut() else { return }; - let egl = self.egl.as_ref().unwrap(); - let app = &mut self.app; - - let t_enter = now_ms(); - eg.run(w, |ctx| { - egui::CentralPanel::default() - .frame(egui::Frame::none().fill(Color32::WHITE)) - .show(ctx, |ui| { - app.ui(ui); - }); - }); - eg.paint(w); - unsafe { - egl::swap_buffers(egl.display, egl.surface); - } - - let t_exit = now_ms(); - let prev = LAST_FRAME_US.swap( - (t_exit * 1000.0) as u64, - std::sync::atomic::Ordering::Relaxed, - ); - let gap = if prev == 0 { 0.0 } else { t_exit - (prev as f64 / 1000.0) }; - log_line(format!( - "FR {:11.2} gap={:7.2} cost={:6.2} drew=1", - t_enter, - gap, - t_exit - t_enter - )); - } -} - -#[cfg(target_os = "android")] -#[unsafe(no_mangle)] -pub fn android_main(app: android_activity::AndroidApp) { - init_log("/sdcard/Android/data/wow.gmp.egtest/files/fr.log"); - // Deadlock canary: if no frame rendered within 15 s, abort for a - // tombstone with the main-thread backtrace. - std::thread::Builder::new() - .name("canary".into()) - .spawn(move || { - std::thread::sleep(std::time::Duration::from_secs(15)); - if std::sync::atomic::AtomicBool::new(false).load(std::sync::atomic::Ordering::Relaxed) - || LAST_FRAME_US.load(std::sync::atomic::Ordering::Relaxed) == 0 - { - eprintln!("canary: no frame after 15s — aborting for tombstone"); - std::process::abort(); - } - }) - .ok(); - let mut builder = EventLoop::with_user_event(); - builder.with_android_app(app); - let event_loop = builder.build().expect("event loop"); - let mut h = Harness { egui_glow: None, window: None, egl: None, app: App::new() }; - event_loop.run_app(&mut h).expect("run"); -} - -#[cfg(not(target_os = "android"))] -fn main() { - eprintln!("egtest is Android-only"); -} diff --git a/scripts/build.sh b/scripts/build.sh index 495235f..369764b 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -66,7 +66,7 @@ case $arg1 in # 60 Hz (src/baseline60.rs). Answers: does the grid jank WITHOUT our # vendored stack? Run: ./scripts/build.sh baseline baseline) target=aarch64-linux-android; export ANDROID_ABI=arm64-v8a - features=baseline60 + features="baseline60,framelog" cp Cargo.toml Cargo.toml.vendored.bak python3 - Cargo.toml <<'PY' import re, sys diff --git a/src/lib.rs b/src/lib.rs index 294546e..5299354 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1358,18 +1358,18 @@ fn install_render_notifier(window: &Main, wid: u32) { w.window().request_redraw(); } } - // Jank-hunt instrumentation (`perf` feature; see - // docs/BUGS/scroll-jank-120hz.md). FR = app-side render cost - // (BeforeRendering->AfterRendering) + frame gap; STG = event-loop - // stage costs. With `perf` off these arms are empty — zero - // overhead. + // Jank-hunt instrumentation. FR (frame gap + app-side render + // cost) is on the PUBLIC-API `framelog` feature — it works in + // BOTH the vendored and the stock baseline builds (the A/B + // tool). STG (event-loop stage costs) is vendor-internal and + // stays on `perf`. slint::RenderingState::BeforeRendering => { - #[cfg(feature = "perf")] + #[cfg(any(feature = "perf", feature = "framelog"))] FR_BEFORE_US.store(now_us(), std::sync::atomic::Ordering::Relaxed); } slint::RenderingState::AfterRendering => { LAST_PRESENT_US.store(now_us(), std::sync::atomic::Ordering::Relaxed); - #[cfg(feature = "perf")] + #[cfg(any(feature = "perf", feature = "framelog"))] { let now = now_us(); let before = FR_BEFORE_US.load(std::sync::atomic::Ordering::Relaxed); @@ -1401,16 +1401,16 @@ fn install_render_notifier(window: &Main, wid: u32) { }); } -// Jank-hunt instrumentation (`perf` feature) — per-frame clock + frame -// bookkeeping. See docs/BUGS/scroll-jank-120hz.md. -#[cfg(feature = "perf")] +// Per-frame clock + frame bookkeeping for the FR line. On `framelog` +// (public-API only — works in stock AND vendored builds) or `perf`. +#[cfg(any(feature = "perf", feature = "framelog"))] static FR_BEFORE_US: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(0); -#[cfg(feature = "perf")] +#[cfg(any(feature = "perf", feature = "framelog"))] static FR_LAST_US: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(0); /// Monotonic µs since process start (wall clock could jump on NTP). static NOW_T0: std::sync::OnceLock = std::sync::OnceLock::new(); -#[cfg(feature = "perf")] +#[cfg(any(feature = "perf", feature = "framelog"))] #[inline] fn now_ms() -> f64 { let t0 = NOW_T0.get_or_init(std::time::Instant::now); diff --git a/tools/.fr_wow_gmp_egtest.log b/tools/.fr_wow_gmp_egtest.log new file mode 100644 index 0000000..51baeeb --- /dev/null +++ b/tools/.fr_wow_gmp_egtest.log @@ -0,0 +1,4002 @@ +PRI self nice=-10 rc=0 +FR 8.36 gap= 0.00 cost=239.95 drew=1 +FR 249.99 gap= 12.34 cost= 10.66 drew=1 +FR 266.66 gap= 14.51 cost= 8.50 drew=1 +FR 283.32 gap= 10.83 cost= 2.67 drew=1 +FR 291.65 gap= 8.75 cost= 3.09 drew=1 +FR 299.99 gap= 8.15 cost= 2.91 drew=1 +FR 308.32 gap= 8.07 cost= 2.64 drew=1 +FR 316.65 gap= 8.50 cost= 2.81 drew=1 +FR 324.99 gap= 8.64 cost= 3.11 drew=1 +FR 333.32 gap= 8.32 cost= 3.10 drew=1 +FR 341.65 gap= 8.40 cost= 3.16 drew=1 +FR 349.99 gap= 8.36 cost= 3.19 drew=1 +FR 358.32 gap= 7.47 cost= 2.33 drew=1 +FR 366.65 gap= 9.00 cost= 3.00 drew=1 +FR 374.99 gap= 8.12 cost= 2.79 drew=1 +FR 383.32 gap= 8.50 cost= 2.96 drew=1 +FR 391.65 gap= 7.59 cost= 2.22 drew=1 +FR 399.99 gap= 8.86 cost= 2.74 drew=1 +FR 408.32 gap= 7.75 cost= 2.16 drew=1 +FR 416.65 gap= 8.93 cost= 2.75 drew=1 +FR 424.98 gap= 8.39 cost= 2.81 drew=1 +FR 433.32 gap= 8.23 cost= 2.71 drew=1 +FR 441.65 gap= 8.35 cost= 2.72 drew=1 +FR 449.98 gap= 8.42 cost= 2.80 drew=1 +FR 458.32 gap= 7.98 cost= 2.45 drew=1 +FR 466.65 gap= 8.60 cost= 2.72 drew=1 +FR 474.98 gap= 8.36 cost= 2.75 drew=1 +FR 483.31 gap= 8.37 cost= 2.78 drew=1 +FR 491.65 gap= 8.34 cost= 2.78 drew=1 +FR 499.98 gap= 8.22 cost= 2.67 drew=1 +FR 508.31 gap= 8.23 cost= 2.57 drew=1 +FR 516.65 gap= 8.51 cost= 2.75 drew=1 +FR 524.98 gap= 8.00 cost= 2.41 drew=1 +FR 533.31 gap= 8.40 cost= 2.48 drew=1 +FR 541.65 gap= 8.41 cost= 2.56 drew=1 +FR 549.98 gap= 8.12 cost= 2.35 drew=1 +FR 558.31 gap= 8.63 cost= 2.65 drew=1 +FR 566.64 gap= 8.21 cost= 2.53 drew=1 +FR 574.98 gap= 8.14 cost= 2.33 drew=1 +FR 583.31 gap= 8.16 cost= 2.17 drew=1 +FR 591.64 gap= 8.37 cost= 2.20 drew=1 +FR 599.98 gap= 8.83 cost= 2.70 drew=1 +FR 608.31 gap= 8.14 cost= 2.51 drew=1 +FR 616.64 gap= 8.64 cost= 2.82 drew=1 +FR 624.98 gap= 8.87 cost= 3.35 drew=1 +FR 633.31 gap= 7.47 cost= 2.49 drew=1 +FR 641.64 gap= 9.74 cost= 3.89 drew=1 +FR 649.97 gap= 7.73 cost= 3.29 drew=1 +FR 658.31 gap= 10.00 cost= 4.95 drew=1 +FR 666.64 gap= 7.03 cost= 3.65 drew=1 +FR 674.97 gap= 9.19 cost= 4.50 drew=1 +FR 683.31 gap= 6.53 cost= 2.70 drew=1 +FR 691.64 gap= 9.01 cost= 3.38 drew=1 +FR 699.97 gap= 7.58 cost= 2.62 drew=1 +FR 708.30 gap= 8.52 cost= 2.81 drew=1 +FR 716.64 gap= 7.96 cost= 2.45 drew=1 +FR 724.97 gap= 8.79 cost= 2.91 drew=1 +FR 733.30 gap= 8.30 cost= 2.88 drew=1 +FR 741.64 gap= 8.13 cost= 2.67 drew=1 +FR 749.97 gap= 8.46 cost= 2.80 drew=1 +FR 758.30 gap= 8.53 cost= 3.00 drew=1 +FR 766.64 gap= 8.35 cost= 3.02 drew=1 +FR 774.97 gap= 8.44 cost= 3.13 drew=1 +FR 783.30 gap= 7.93 cost= 2.73 drew=1 +FR 791.63 gap= 8.13 cost= 2.53 drew=1 +FR 799.97 gap= 8.60 cost= 2.79 drew=1 +FR 808.30 gap= 8.18 cost= 2.63 drew=1 +FR 816.63 gap= 8.39 cost= 2.69 drew=1 +FR 824.97 gap= 8.55 cost= 2.91 drew=1 +FR 833.30 gap= 8.00 cost= 2.57 drew=1 +FR 841.63 gap= 8.80 cost= 3.03 drew=1 +FR 849.97 gap= 8.10 cost= 2.80 drew=1 +FR 858.30 gap= 8.12 cost= 2.59 drew=1 +FR 866.63 gap= 8.23 cost= 2.49 drew=1 +FR 874.97 gap= 8.47 cost= 2.62 drew=1 +FR 883.30 gap= 8.21 cost= 2.50 drew=1 +FR 891.63 gap= 8.19 cost= 2.36 drew=1 +FR 899.97 gap= 8.44 cost= 2.46 drew=1 +FR 908.30 gap= 8.50 cost= 2.62 drew=1 +FR 916.63 gap= 8.17 cost= 2.47 drew=1 +FR 924.96 gap= 8.45 cost= 2.58 drew=1 +FR 933.30 gap= 8.28 cost= 2.53 drew=1 +FR 941.63 gap= 7.92 cost= 2.11 drew=1 +FR 949.96 gap= 8.59 cost= 2.37 drew=1 +FR 958.30 gap= 8.76 cost= 2.79 drew=1 +FR 966.63 gap= 7.70 cost= 2.16 drew=1 +FR 974.96 gap= 8.78 cost= 2.61 drew=1 +FR 983.29 gap= 8.42 cost= 2.70 drew=1 +FR 991.63 gap= 8.39 cost= 2.75 drew=1 +FR 999.96 gap= 8.12 cost= 2.54 drew=1 +FR 1008.29 gap= 8.62 cost= 2.84 drew=1 +FR 1016.63 gap= 8.02 cost= 2.52 drew=1 +FR 1024.96 gap= 8.20 cost= 2.39 drew=1 +FR 1033.29 gap= 8.72 cost= 2.77 drew=1 +FR 1041.62 gap= 8.40 cost= 2.84 drew=1 +FR 1049.96 gap= 7.99 cost= 2.50 drew=1 +FR 1058.29 gap= 7.88 cost= 2.04 drew=1 +FR 1066.62 gap= 8.16 cost= 1.87 drew=1 +FR 1074.96 gap= 9.05 cost= 2.58 drew=1 +FR 1083.29 gap= 7.78 cost= 2.03 drew=1 +FR 1091.62 gap= 8.70 cost= 2.39 drew=1 +FR 1099.96 gap= 8.19 cost= 2.26 drew=1 +FR 1108.29 gap= 8.38 cost= 2.30 drew=1 +FR 1116.62 gap= 8.55 cost= 2.53 drew=1 +FR 1124.96 gap= 8.04 cost= 2.23 drew=1 +FR 1133.29 gap= 8.94 cost= 2.84 drew=1 +FR 1141.62 gap= 7.92 cost= 2.43 drew=1 +FR 1149.95 gap= 8.31 cost= 2.41 drew=1 +FR 1158.29 gap= 8.35 cost= 2.42 drew=1 +FR 1166.62 gap= 8.82 cost= 2.91 drew=1 +FR 1174.95 gap= 7.66 cost= 2.23 drew=1 +FR 1183.29 gap= 8.91 cost= 2.80 drew=1 +FR 1191.62 gap= 8.13 cost= 2.60 drew=1 +FR 1199.95 gap= 8.71 cost= 2.97 drew=1 +FR 1208.29 gap= 7.73 cost= 2.37 drew=1 +FR 1216.62 gap= 8.18 cost= 2.22 drew=1 +FR 1224.95 gap= 9.16 cost= 3.05 drew=1 +FR 1233.28 gap= 7.95 cost= 2.67 drew=1 +FR 1241.62 gap= 8.00 cost= 2.33 drew=1 +FR 1249.95 gap= 8.23 cost= 2.23 drew=1 +FR 1258.28 gap= 8.56 cost= 2.46 drew=1 +FR 1266.62 gap= 7.99 cost= 2.12 drew=1 +FR 1274.95 gap= 8.71 cost= 2.49 drew=1 +FR 1283.28 gap= 8.19 cost= 2.34 drew=1 +FR 1291.62 gap= 8.38 cost= 2.38 drew=1 +FR 1299.95 gap= 8.52 cost= 2.58 drew=1 +FR 1308.28 gap= 8.62 cost= 2.86 drew=1 +FR 1316.61 gap= 8.27 cost= 2.79 drew=1 +FR 1324.95 gap= 8.04 cost= 2.50 drew=1 +FR 1333.28 gap= 8.52 cost= 2.69 drew=1 +FR 1341.61 gap= 8.03 cost= 2.40 drew=1 +FR 1349.95 gap= 8.62 cost= 2.69 drew=1 +FR 1358.28 gap= 8.05 cost= 2.40 drew=1 +FR 1366.61 gap= 8.48 cost= 2.55 drew=1 +FR 1374.94 gap= 8.23 cost= 2.44 drew=1 +FR 1383.29 gap= 8.47 cost= 2.57 drew=1 +FR 1391.61 gap= 8.14 cost= 2.38 drew=1 +FR 1399.94 gap= 8.79 cost= 2.84 drew=1 +FR 1408.28 gap= 7.81 cost= 2.32 drew=1 +FR 1416.61 gap= 8.33 cost= 2.32 drew=1 +FR 1424.94 gap= 8.41 cost= 2.40 drew=1 +FR 1433.28 gap= 8.38 cost= 2.44 drew=1 +FR 1441.61 gap= 8.25 cost= 2.35 drew=1 +FR 1449.94 gap= 8.64 cost= 2.66 drew=1 +FR 1458.28 gap= 8.01 cost= 2.33 drew=1 +FR 1466.61 gap= 8.21 cost= 2.21 drew=1 +FR 1474.94 gap= 8.58 cost= 2.45 drew=1 +FR 1483.27 gap= 8.21 cost= 2.33 drew=1 +FR 1491.61 gap= 8.62 cost= 2.61 drew=1 +FR 1499.94 gap= 8.09 cost= 2.37 drew=1 +FR 1508.27 gap= 7.93 cost= 1.97 drew=1 +FR 1516.61 gap= 8.58 cost= 2.22 drew=1 +FR 1524.94 gap= 8.79 cost= 2.68 drew=1 +FR 1533.27 gap= 8.12 cost= 2.47 drew=1 +FR 1541.61 gap= 8.55 cost= 2.69 drew=1 +FR 1549.94 gap= 7.87 cost= 2.22 drew=1 +FR 1558.27 gap= 8.64 cost= 2.53 drew=1 +FR 1566.60 gap= 8.64 cost= 2.85 drew=1 +FR 1574.94 gap= 8.32 cost= 2.83 drew=1 +FR 1583.27 gap= 7.81 cost= 2.31 drew=1 +FR 1591.60 gap= 8.30 cost= 2.27 drew=1 +FR 1599.94 gap= 8.44 cost= 2.38 drew=1 +FR 1608.27 gap= 8.21 cost= 2.26 drew=1 +FR 1616.60 gap= 8.46 cost= 2.38 drew=1 +FR 1624.93 gap= 8.20 cost= 2.25 drew=1 +FR 1633.27 gap= 8.17 cost= 2.09 drew=1 +FR 1641.60 gap= 8.56 cost= 2.31 drew=1 +FR 1649.93 gap= 8.33 cost= 2.31 drew=1 +FR 1658.27 gap= 8.18 cost= 2.15 drew=1 +FR 1666.60 gap= 8.51 cost= 2.33 drew=1 +FR 1674.93 gap= 8.43 cost= 2.43 drew=1 +FR 1683.27 gap= 8.11 cost= 2.21 drew=1 +FR 1691.60 gap= 8.36 cost= 2.23 drew=1 +FR 1699.93 gap= 8.40 cost= 2.30 drew=1 +FR 1708.27 gap= 8.21 cost= 2.18 drew=1 +FR 1716.60 gap= 8.68 cost= 2.53 drew=1 +FR 1724.93 gap= 8.28 cost= 2.47 drew=1 +FR 1733.26 gap= 8.46 cost= 2.60 drew=1 +FR 1741.60 gap= 8.07 cost= 2.33 drew=1 +FR 1749.93 gap= 8.50 cost= 2.50 drew=1 +FR 1758.26 gap= 8.19 cost= 2.36 drew=1 +FR 1766.60 gap= 8.26 cost= 2.29 drew=1 +FR 1774.93 gap= 8.07 cost= 2.03 drew=1 +FR 1783.26 gap= 8.35 cost= 2.04 drew=1 +FR 1791.60 gap= 8.29 cost= 2.00 drew=1 +FR 1799.93 gap= 8.31 cost= 1.97 drew=1 +FR 1808.26 gap= 8.61 cost= 2.25 drew=1 +FR 1816.59 gap= 8.33 cost= 2.24 drew=1 +FR 1824.93 gap= 8.49 cost= 2.40 drew=1 +FR 1833.26 gap= 8.59 cost= 2.65 drew=1 +FR 1841.59 gap= 8.20 cost= 2.53 drew=1 +FR 1849.93 gap= 8.41 cost= 2.61 drew=1 +FR 1858.26 gap= 8.06 cost= 2.33 drew=1 +FR 1866.59 gap= 8.21 cost= 2.21 drew=1 +FR 1874.92 gap= 8.51 cost= 2.38 drew=1 +FR 1883.26 gap= 7.92 cost= 1.97 drew=1 +FR 1891.59 gap= 8.78 cost= 2.42 drew=1 +FR 1899.92 gap= 8.35 cost= 2.43 drew=1 +FR 1908.26 gap= 7.82 cost= 1.92 drew=1 +FR 1916.59 gap= 8.50 cost= 2.09 drew=1 +FR 1924.92 gap= 8.62 cost= 2.38 drew=1 +FR 1933.26 gap= 8.41 cost= 2.45 drew=1 +FR 1941.59 gap= 8.16 cost= 2.28 drew=1 +FR 1949.92 gap= 8.39 cost= 2.34 drew=1 +FR 1958.26 gap= 8.38 cost= 2.38 drew=1 +FR 1966.59 gap= 8.31 cost= 2.36 drew=1 +FR 1974.92 gap= 8.48 cost= 2.51 drew=1 +FR 1983.27 gap= 7.81 cost= 1.97 drew=1 +FR 1991.59 gap= 8.66 cost= 2.31 drew=1 +FR 1999.92 gap= 8.51 cost= 2.49 drew=1 +FR 2008.25 gap= 8.20 cost= 2.35 drew=1 +FR 2016.59 gap= 8.25 cost= 2.27 drew=1 +FR 2024.92 gap= 8.84 cost= 2.77 drew=1 +FR 2033.25 gap= 7.67 cost= 2.11 drew=1 +FR 2041.59 gap= 8.59 cost= 2.36 drew=1 +FR 2049.92 gap= 8.43 cost= 2.46 drew=1 +FR 2058.25 gap= 8.20 cost= 2.33 drew=1 +FR 2066.58 gap= 8.57 cost= 2.57 drew=1 +FR 2074.92 gap= 8.47 cost= 2.70 drew=1 +FR 2083.25 gap= 8.01 cost= 2.38 drew=1 +FR 2091.58 gap= 8.30 cost= 2.34 drew=1 +FR 2099.92 gap= 8.39 cost= 2.40 drew=1 +FR 2108.25 gap= 8.35 cost= 2.42 drew=1 +FR 2116.58 gap= 8.34 cost= 2.42 drew=1 +FR 2124.91 gap= 8.13 cost= 2.21 drew=1 +FR 2133.25 gap= 8.53 cost= 2.41 drew=1 +FR 2141.58 gap= 8.18 cost= 2.26 drew=1 +FR 2149.91 gap= 8.18 cost= 2.11 drew=1 +FR 2158.25 gap= 8.68 cost= 2.47 drew=1 +FR 2166.58 gap= 8.41 cost= 2.55 drew=1 +FR 2174.91 gap= 8.28 cost= 2.49 drew=1 +FR 2183.27 gap= 7.84 cost= 1.97 drew=1 +FR 2191.58 gap= 8.56 cost= 2.22 drew=1 +FR 2199.91 gap= 8.94 cost= 2.83 drew=1 +FR 2208.24 gap= 7.82 cost= 2.32 drew=1 +FR 2216.58 gap= 8.38 cost= 2.36 drew=1 +FR 2224.91 gap= 9.04 cost= 3.07 drew=1 +FR 2233.24 gap= 8.42 cost= 3.16 drew=1 +FR 2241.58 gap= 7.72 cost= 2.55 drew=1 +FR 2249.91 gap= 8.22 cost= 2.43 drew=1 +FR 2258.24 gap= 8.38 cost= 2.48 drew=1 +FR 2266.58 gap= 8.42 cost= 2.57 drew=1 +FR 2274.91 gap= 8.24 cost= 2.47 drew=1 +FR 2283.27 gap= 8.19 cost= 2.30 drew=1 +FR 2291.58 gap= 8.63 cost= 2.63 drew=1 +FR 2299.91 gap= 8.04 cost= 2.34 drew=1 +FR 2308.24 gap= 8.37 cost= 2.37 drew=1 +FR 2316.57 gap= 8.49 cost= 2.53 drew=1 +FR 2324.91 gap= 8.23 cost= 2.43 drew=1 +FR 2333.24 gap= 8.45 cost= 2.55 drew=1 +FR 2341.57 gap= 8.30 cost= 2.51 drew=1 +FR 2349.91 gap= 8.22 cost= 2.40 drew=1 +FR 2358.24 gap= 8.32 cost= 2.39 drew=1 +FR 2366.57 gap= 8.34 cost= 2.40 drew=1 +FR 2374.91 gap= 8.68 cost= 2.75 drew=1 +FR 2383.26 gap= 8.28 cost= 2.67 drew=1 +FR 2391.57 gap= 7.98 cost= 2.34 drew=1 +FR 2399.90 gap= 8.27 cost= 2.28 drew=1 +FR 2408.24 gap= 8.40 cost= 2.35 drew=1 +FR 2416.57 gap= 8.46 cost= 2.47 drew=1 +FR 2424.90 gap= 8.39 cost= 2.53 drew=1 +FR 2433.24 gap= 7.97 cost= 2.17 drew=1 +FR 2441.57 gap= 8.55 cost= 2.39 drew=1 +FR 2449.90 gap= 8.34 cost= 2.39 drew=1 +FR 2458.24 gap= 8.34 cost= 2.40 drew=1 +FR 2466.57 gap= 8.62 cost= 2.69 drew=1 +FR 2474.90 gap= 8.22 cost= 2.58 drew=1 +FR 2483.28 gap= 8.28 cost= 2.48 drew=1 +FR 2491.57 gap= 8.17 cost= 2.36 drew=1 +FR 2499.90 gap= 8.46 cost= 2.48 drew=1 +FR 2508.23 gap= 8.22 cost= 2.36 drew=1 +FR 2516.57 gap= 8.29 cost= 2.32 drew=1 +FR 2524.90 gap= 8.23 cost= 2.21 drew=1 +FR 2533.23 gap= 8.20 cost= 2.08 drew=1 +FR 2541.57 gap= 8.53 cost= 2.28 drew=1 +FR 2549.90 gap= 8.34 cost= 2.29 drew=1 +FR 2558.23 gap= 8.84 cost= 2.79 drew=1 +FR 2566.56 gap= 7.86 cost= 2.32 drew=1 +FR 2574.90 gap= 8.42 cost= 2.41 drew=1 +FR 2583.28 gap= 8.67 cost= 2.69 drew=1 +FR 2591.56 gap= 7.93 cost= 2.34 drew=1 +FR 2599.90 gap= 8.30 cost= 2.32 drew=1 +FR 2608.23 gap= 8.34 cost= 2.33 drew=1 +FR 2616.56 gap= 8.15 cost= 2.15 drew=1 +FR 2624.89 gap= 8.36 cost= 2.18 drew=1 +FR 2633.23 gap= 8.10 cost= 1.94 drew=1 +FR 2641.56 gap= 8.70 cost= 2.31 drew=1 +FR 2649.89 gap= 8.35 cost= 2.32 drew=1 +FR 2658.23 gap= 8.20 cost= 2.19 drew=1 +FR 2666.56 gap= 8.50 cost= 2.36 drew=1 +FR 2674.89 gap= 8.41 cost= 2.43 drew=1 +FR 2683.25 gap= 8.04 cost= 2.11 drew=1 +FR 2691.56 gap= 8.52 cost= 2.32 drew=1 +FR 2699.89 gap= 8.34 cost= 2.32 drew=1 +FR 2708.22 gap= 8.36 cost= 2.35 drew=1 +FR 2716.56 gap= 8.11 cost= 2.12 drew=1 +FR 2724.89 gap= 8.81 cost= 2.60 drew=1 +FR 2733.22 gap= 7.97 cost= 2.24 drew=1 +FR 2741.56 gap= 8.45 cost= 2.35 drew=1 +FR 2749.89 gap= 8.38 cost= 2.39 drew=1 +FR 2758.22 gap= 8.39 cost= 2.45 drew=1 +FR 2766.56 gap= 8.24 cost= 2.36 drew=1 +FR 2774.89 gap= 8.30 cost= 2.33 drew=1 +FR 2783.27 gap= 8.26 cost= 2.20 drew=1 +FR 2791.55 gap= 8.39 cost= 2.31 drew=1 +FR 2799.89 gap= 8.33 cost= 2.31 drew=1 +FR 2808.22 gap= 8.39 cost= 2.37 drew=1 +FR 2816.55 gap= 8.12 cost= 2.16 drew=1 +FR 2824.89 gap= 8.53 cost= 2.36 drew=1 +FR 2833.22 gap= 8.03 cost= 2.06 drew=1 +FR 2841.55 gap= 8.63 cost= 2.36 drew=1 +FR 2849.89 gap= 8.46 cost= 2.49 drew=1 +FR 2858.22 gap= 8.16 cost= 2.31 drew=1 +FR 2866.55 gap= 8.43 cost= 2.41 drew=1 +FR 2874.89 gap= 8.34 cost= 2.41 drew=1 +FR 2883.28 gap= 8.23 cost= 2.25 drew=1 +FR 2891.55 gap= 8.17 cost= 2.14 drew=1 +FR 2899.88 gap= 8.48 cost= 2.28 drew=1 +FR 2908.22 gap= 8.20 cost= 2.15 drew=1 +FR 2916.55 gap= 8.65 cost= 2.47 drew=1 +FR 2924.88 gap= 8.24 cost= 2.38 drew=1 +FR 2933.22 gap= 8.11 cost= 2.16 drew=1 +FR 2941.55 gap= 8.71 cost= 2.53 drew=1 +FR 2949.88 gap= 8.14 cost= 2.34 drew=1 +FR 2958.22 gap= 8.61 cost= 2.62 drew=1 +FR 2966.55 gap= 8.21 cost= 2.49 drew=1 +FR 2974.88 gap= 8.60 cost= 2.76 drew=1 +FR 2983.24 gap= 7.83 cost= 2.22 drew=1 +FR 2991.55 gap= 8.34 cost= 2.26 drew=1 +FR 2999.88 gap= 8.31 cost= 2.23 drew=1 +FR 3008.21 gap= 8.40 cost= 2.30 drew=1 +FR 3016.55 gap= 8.50 cost= 2.47 drew=1 +FR 3024.88 gap= 8.13 cost= 2.26 drew=1 +FR 3033.21 gap= 8.48 cost= 2.41 drew=1 +FR 3041.55 gap= 8.39 cost= 2.47 drew=1 +FR 3049.88 gap= 8.15 cost= 2.29 drew=1 +FR 3058.21 gap= 8.39 cost= 2.35 drew=1 +FR 3066.55 gap= 8.31 cost= 2.33 drew=1 +FR 3074.88 gap= 8.41 cost= 2.40 drew=1 +FR 3083.25 gap= 8.23 cost= 2.26 drew=1 +FR 3091.54 gap= 8.74 cost= 2.71 drew=1 +FR 3099.88 gap= 8.01 cost= 2.39 drew=1 +FR 3108.21 gap= 8.14 cost= 2.20 drew=1 +FR 3116.54 gap= 8.68 cost= 2.55 drew=1 +FR 3124.88 gap= 8.23 cost= 2.44 drew=1 +FR 3133.21 gap= 8.48 cost= 2.59 drew=1 +FR 3141.54 gap= 8.03 cost= 2.28 drew=1 +FR 3149.87 gap= 8.39 cost= 2.33 drew=1 +FR 3158.21 gap= 8.32 cost= 2.32 drew=1 +FR 3166.54 gap= 8.28 cost= 2.27 drew=1 +FR 3174.87 gap= 8.54 cost= 2.48 drew=1 +FR 3183.31 gap= 16.81 cost= 10.86 drew=1 +FR 3199.87 gap= 8.44 cost= 2.74 drew=1 +FR 3208.20 gap= 8.23 cost= 2.64 drew=1 +FR 3216.54 gap= 8.24 cost= 2.55 drew=1 +FR 3224.87 gap= 8.34 cost= 2.56 drew=1 +FR 3233.20 gap= 8.12 cost= 2.34 drew=1 +FR 3241.54 gap= 8.44 cost= 2.45 drew=1 +FR 3249.87 gap= 8.49 cost= 2.61 drew=1 +FR 3258.20 gap= 8.19 cost= 2.47 drew=1 +FR 3266.54 gap= 8.52 cost= 2.66 drew=1 +FR 3274.87 gap= 8.39 cost= 2.72 drew=1 +FR 3283.23 gap= 8.12 cost= 2.47 drew=1 +FR 3291.53 gap= 8.39 cost= 2.57 drew=1 +FR 3299.87 gap= 8.18 cost= 2.41 drew=1 +FR 3308.20 gap= 8.26 cost= 2.34 drew=1 +FR 3316.53 gap= 8.34 cost= 2.35 drew=1 +FR 3324.87 gap= 8.38 cost= 2.40 drew=1 +FR 3333.20 gap= 8.33 cost= 2.40 drew=1 +FR 3341.53 gap= 8.41 cost= 2.48 drew=1 +FR 3349.87 gap= 8.05 cost= 2.20 drew=1 +FR 3358.20 gap= 8.81 cost= 2.68 drew=1 +FR 3366.53 gap= 8.12 cost= 2.46 drew=1 +FR 3374.86 gap= 8.36 cost= 2.49 drew=1 +FR 3383.27 gap= 8.42 cost= 2.51 drew=1 +FR 3391.53 gap= 8.80 cost= 3.04 drew=1 +FR 3399.86 gap= 7.79 cost= 2.50 drew=1 +FR 3408.20 gap= 8.20 cost= 2.37 drew=1 +FR 3416.53 gap= 8.40 cost= 2.43 drew=1 +FR 3424.86 gap= 8.21 cost= 2.31 drew=1 +FR 3433.20 gap= 8.50 cost= 2.47 drew=1 +FR 3441.53 gap= 8.51 cost= 2.65 drew=1 +FR 3449.86 gap= 8.29 cost= 2.60 drew=1 +FR 3458.20 gap= 8.21 cost= 2.48 drew=1 +FR 3466.53 gap= 8.39 cost= 2.54 drew=1 +FR 3474.86 gap= 8.15 cost= 2.36 drew=1 +FR 3483.27 gap= 8.80 cost= 2.75 drew=1 +FR 3491.53 gap= 7.96 cost= 2.45 drew=1 +FR 3499.86 gap= 8.29 cost= 2.41 drew=1 +FR 3508.19 gap= 8.25 cost= 2.33 drew=1 +FR 3516.53 gap= 8.35 cost= 2.34 drew=1 +FR 3524.86 gap= 8.31 cost= 2.32 drew=1 +FR 3533.19 gap= 8.38 cost= 2.37 drew=1 +FR 3541.53 gap= 8.32 cost= 2.36 drew=1 +FR 3549.86 gap= 8.26 cost= 2.28 drew=1 +FR 3558.19 gap= 8.55 cost= 2.49 drew=1 +FR 3566.52 gap= 8.25 cost= 2.41 drew=1 +FR 3574.86 gap= 8.34 cost= 2.42 drew=1 +FR 3583.19 gap= 8.41 cost= 2.49 drew=1 +FR 3591.52 gap= 8.20 cost= 2.36 drew=1 +FR 3599.86 gap= 8.33 cost= 2.36 drew=1 +FR 3608.19 gap= 8.40 cost= 2.43 drew=1 +FR 3616.52 gap= 8.31 cost= 2.41 drew=1 +FR 3624.86 gap= 8.18 cost= 2.25 drew=1 +FR 3633.19 gap= 8.22 cost= 2.14 drew=1 +FR 3641.52 gap= 8.64 cost= 2.44 drew=1 +FR 3649.85 gap= 8.61 cost= 2.73 drew=1 +FR 3658.19 gap= 8.04 cost= 2.43 drew=1 +FR 3666.52 gap= 8.38 cost= 2.48 drew=1 +FR 3674.85 gap= 8.30 cost= 2.45 drew=1 +FR 3683.19 gap= 8.31 cost= 2.43 drew=1 +FR 3691.52 gap= 8.28 cost= 2.38 drew=1 +FR 3699.85 gap= 8.30 cost= 2.35 drew=1 +FR 3708.18 gap= 8.31 cost= 2.33 drew=1 +FR 3716.52 gap= 8.51 cost= 2.51 drew=1 +FR 3724.85 gap= 8.25 cost= 2.42 drew=1 +FR 3733.18 gap= 8.08 cost= 2.16 drew=1 +FR 3741.52 gap= 8.53 cost= 2.36 drew=1 +FR 3749.85 gap= 8.41 cost= 2.44 drew=1 +FR 3758.18 gap= 8.86 cost= 2.97 drew=1 +FR 3766.52 gap= 8.49 cost= 3.12 drew=1 +FR 3774.85 gap= 7.56 cost= 2.35 drew=1 +FR 3783.18 gap= 8.40 cost= 2.41 drew=1 +FR 3791.51 gap= 8.61 cost= 2.68 drew=1 +FR 3799.85 gap= 8.21 cost= 2.56 drew=1 +FR 3808.18 gap= 8.52 cost= 2.75 drew=1 +FR 3816.51 gap= 8.10 cost= 2.51 drew=1 +FR 3824.85 gap= 8.45 cost= 2.63 drew=1 +FR 3833.18 gap= 8.83 cost= 3.13 drew=1 +FR 3841.51 gap= 7.76 cost= 2.56 drew=1 +FR 3849.85 gap= 8.31 cost= 2.53 drew=1 +FR 3858.18 gap= 8.29 cost= 2.49 drew=1 +FR 3866.51 gap= 8.35 cost= 2.51 drew=1 +FR 3874.84 gap= 8.48 cost= 2.66 drew=1 +FR 3883.18 gap= 8.16 cost= 2.48 drew=1 +FR 3891.51 gap= 8.25 cost= 2.40 drew=1 +FR 3899.84 gap= 8.43 cost= 2.50 drew=1 +FR 3908.18 gap= 8.26 cost= 2.42 drew=1 +FR 3916.51 gap= 8.55 cost= 2.64 drew=1 +FR 3924.84 gap= 8.29 cost= 2.60 drew=1 +FR 3933.18 gap= 7.97 cost= 2.23 drew=1 +FR 3941.51 gap= 8.55 cost= 2.44 drew=1 +FR 3949.84 gap= 8.39 cost= 2.50 drew=1 +FR 3958.18 gap= 8.16 cost= 2.33 drew=1 +FR 3966.51 gap= 8.45 cost= 2.44 drew=1 +FR 3974.84 gap= 8.56 cost= 2.67 drew=1 +FR 3983.17 gap= 8.20 cost= 2.54 drew=1 +FR 3991.51 gap= 8.36 cost= 2.56 drew=1 +FR 3999.84 gap= 8.19 cost= 2.42 drew=1 +FR 4008.18 gap= 8.70 cost= 2.79 drew=1 +FR 4016.51 gap= 8.42 cost= 2.88 drew=1 +FR 4024.86 gap= 8.07 cost= 2.59 drew=1 +FR 4033.17 gap= 7.84 cost= 2.11 drew=1 +FR 4041.51 gap= 8.90 cost= 2.68 drew=1 +FR 4049.84 gap= 8.10 cost= 2.45 drew=1 +FR 4058.17 gap= 8.35 cost= 2.47 drew=1 +FR 4066.51 gap= 8.23 cost= 2.37 drew=1 +FR 4074.84 gap= 8.14 cost= 2.18 drew=1 +FR 4083.17 gap= 8.55 cost= 2.39 drew=1 +FR 4091.50 gap= 8.28 cost= 2.34 drew=1 +FR 4099.84 gap= 8.43 cost= 2.43 drew=1 +FR 4108.17 gap= 8.21 cost= 2.31 drew=1 +FR 4116.50 gap= 8.37 cost= 2.35 drew=1 +FR 4124.84 gap= 8.31 cost= 2.32 drew=1 +FR 4133.17 gap= 7.94 cost= 1.93 drew=1 +FR 4141.50 gap= 8.80 cost= 2.39 drew=1 +FR 4149.83 gap= 8.31 cost= 2.37 drew=1 +FR 4158.17 gap= 8.33 cost= 2.36 drew=1 +FR 4166.50 gap= 8.58 cost= 2.60 drew=1 +FR 4174.83 gap= 8.22 cost= 2.49 drew=1 +FR 4183.17 gap= 8.62 cost= 2.77 drew=1 +FR 4191.50 gap= 8.01 cost= 2.45 drew=1 +FR 4199.83 gap= 8.16 cost= 2.27 drew=1 +FR 4208.16 gap= 8.42 cost= 2.36 drew=1 +FR 4216.50 gap= 8.35 cost= 2.38 drew=1 +FR 4224.83 gap= 8.32 cost= 2.36 drew=1 +FR 4233.16 gap= 8.17 cost= 2.20 drew=1 +FR 4241.50 gap= 8.61 cost= 2.47 drew=1 +FR 4249.83 gap= 8.25 cost= 2.39 drew=1 +FR 4258.16 gap= 8.34 cost= 2.39 drew=1 +FR 4266.50 gap= 8.16 cost= 2.22 drew=1 +FR 4274.83 gap= 8.53 cost= 2.42 drew=1 +FR 4283.16 gap= 8.35 cost= 2.44 drew=1 +FR 4291.49 gap= 8.44 cost= 2.55 drew=1 +FR 4299.83 gap= 8.31 cost= 2.52 drew=1 +FR 4308.16 gap= 8.39 cost= 2.57 drew=1 +FR 4316.49 gap= 8.28 cost= 2.52 drew=1 +FR 4324.83 gap= 8.72 cost= 2.91 drew=1 +FR 4333.16 gap= 7.67 cost= 2.24 drew=1 +FR 4341.49 gap= 9.30 cost= 3.21 drew=1 +FR 4349.83 gap= 7.73 cost= 2.61 drew=1 +FR 4358.16 gap= 8.24 cost= 2.52 drew=1 +FR 4366.49 gap= 8.35 cost= 2.53 drew=1 +FR 4374.82 gap= 8.34 cost= 2.54 drew=1 +FR 4383.16 gap= 8.32 cost= 2.53 drew=1 +FR 4391.49 gap= 8.19 cost= 2.38 drew=1 +FR 4399.82 gap= 8.39 cost= 2.44 drew=1 +FR 4408.16 gap= 8.23 cost= 2.34 drew=1 +FR 4416.49 gap= 8.34 cost= 2.35 drew=1 +FR 4424.82 gap= 8.48 cost= 2.49 drew=1 +FR 4433.16 gap= 8.29 cost= 2.45 drew=1 +FR 4441.49 gap= 8.38 cost= 2.49 drew=1 +FR 4449.82 gap= 8.76 cost= 2.92 drew=1 +FR 4458.15 gap= 7.92 cost= 2.51 drew=1 +FR 4466.49 gap= 8.13 cost= 2.31 drew=1 +FR 4474.82 gap= 8.27 cost= 2.24 drew=1 +FR 4483.15 gap= 8.45 cost= 2.36 drew=1 +FR 4491.49 gap= 8.34 cost= 2.37 drew=1 +FR 4499.82 gap= 8.38 cost= 2.42 drew=1 +FR 4508.15 gap= 8.40 cost= 2.49 drew=1 +FR 4516.49 gap= 8.29 cost= 2.44 drew=1 +FR 4524.82 gap= 8.69 cost= 2.80 drew=1 +FR 4533.15 gap= 8.06 cost= 2.53 drew=1 +FR 4541.49 gap= 8.36 cost= 2.56 drew=1 +FR 4549.82 gap= 8.27 cost= 2.50 drew=1 +FR 4558.15 gap= 8.25 cost= 2.41 drew=1 +FR 4566.48 gap= 8.34 cost= 2.42 drew=1 +FR 4574.82 gap= 8.33 cost= 2.42 drew=1 +FR 4583.15 gap= 8.33 cost= 2.41 drew=1 +FR 4591.48 gap= 8.34 cost= 2.41 drew=1 +FR 4599.82 gap= 8.14 cost= 2.22 drew=1 +FR 4608.15 gap= 8.25 cost= 2.14 drew=1 +FR 4616.48 gap= 8.46 cost= 2.27 drew=1 +FR 4624.81 gap= 8.31 cost= 2.24 drew=1 +FR 4633.15 gap= 8.61 cost= 2.52 drew=1 +FR 4641.48 gap= 8.12 cost= 2.32 drew=1 +FR 4649.81 gap= 8.59 cost= 2.58 drew=1 +FR 4658.15 gap= 8.26 cost= 2.50 drew=1 +FR 4666.48 gap= 8.18 cost= 2.35 drew=1 +FR 4674.81 gap= 8.42 cost= 2.43 drew=1 +FR 4683.15 gap= 8.34 cost= 2.44 drew=1 +FR 4691.48 gap= 8.24 cost= 2.34 drew=1 +FR 4699.81 gap= 8.47 cost= 2.48 drew=1 +FR 4708.15 gap= 8.18 cost= 2.33 drew=1 +FR 4716.48 gap= 8.59 cost= 2.59 drew=1 +FR 4724.81 gap= 8.42 cost= 2.67 drew=1 +FR 4733.14 gap= 7.80 cost= 2.14 drew=1 +FR 4741.48 gap= 8.69 cost= 2.49 drew=1 +FR 4749.81 gap= 8.23 cost= 2.39 drew=1 +FR 4758.14 gap= 8.34 cost= 2.40 drew=1 +FR 4766.48 gap= 8.46 cost= 2.53 drew=1 +FR 4774.81 gap= 8.18 cost= 2.37 drew=1 +FR 4783.14 gap= 8.40 cost= 2.44 drew=1 +FR 4791.48 gap= 8.24 cost= 2.34 drew=1 +FR 4799.81 gap= 8.32 cost= 2.33 drew=1 +FR 4808.14 gap= 8.27 cost= 2.27 drew=1 +FR 4816.47 gap= 8.33 cost= 2.27 drew=1 +FR 4824.81 gap= 8.35 cost= 2.28 drew=1 +FR 4833.14 gap= 8.04 cost= 1.99 drew=1 +FR 4841.47 gap= 8.72 cost= 2.37 drew=1 +FR 4849.81 gap= 8.36 cost= 2.41 drew=1 +FR 4858.14 gap= 8.31 cost= 2.39 drew=1 +FR 4866.47 gap= 8.32 cost= 2.38 drew=1 +FR 4874.81 gap= 8.50 cost= 2.54 drew=1 +FR 4883.14 gap= 8.12 cost= 2.33 drew=1 +FR 4891.47 gap= 8.25 cost= 2.25 drew=1 +FR 4899.80 gap= 8.33 cost= 2.25 drew=1 +FR 4908.14 gap= 8.43 cost= 2.34 drew=1 +FR 4916.47 gap= 8.30 cost= 2.31 drew=1 +FR 4924.80 gap= 8.77 cost= 2.74 drew=1 +FR 4933.14 gap= 7.54 cost= 1.95 drew=1 +FR 4941.47 gap= 8.59 cost= 2.21 drew=1 +FR 4949.80 gap= 8.45 cost= 2.33 drew=1 +FR 4958.14 gap= 8.44 cost= 2.44 drew=1 +FR 4966.47 gap= 8.52 cost= 2.63 drew=1 +FR 4974.80 gap= 8.23 cost= 2.53 drew=1 +FR 4983.13 gap= 8.95 cost= 3.15 drew=1 +FR 4991.47 gap= 8.07 cost= 2.89 drew=1 +FR 4999.80 gap= 8.25 cost= 2.81 drew=1 +FR 5008.13 gap= 8.26 cost= 2.74 drew=1 +FR 5016.47 gap= 8.73 cost= 3.13 drew=1 +FR 5024.80 gap= 8.10 cost= 2.90 drew=1 +FR 5033.13 gap= 8.00 cost= 2.57 drew=1 +FR 5041.47 gap= 8.52 cost= 2.75 drew=1 +FR 5049.80 gap= 7.88 cost= 2.30 drew=1 +FR 5058.13 gap= 8.87 cost= 2.83 drew=1 +FR 5066.46 gap= 7.96 cost= 2.46 drew=1 +FR 5074.80 gap= 8.29 cost= 2.42 drew=1 +FR 5083.13 gap= 8.56 cost= 2.64 drew=1 +FR 5091.46 gap= 8.07 cost= 2.38 drew=1 +FR 5099.80 gap= 8.45 cost= 2.49 drew=1 +FR 5108.13 gap= 8.26 cost= 2.42 drew=1 +FR 5116.46 gap= 8.25 cost= 2.33 drew=1 +FR 5124.80 gap= 8.33 cost= 2.33 drew=1 +FR 5133.13 gap= 8.05 cost= 2.05 drew=1 +FR 5141.46 gap= 8.69 cost= 2.40 drew=1 +FR 5149.79 gap= 8.31 cost= 2.38 drew=1 +FR 5158.13 gap= 8.41 cost= 2.46 drew=1 +FR 5166.46 gap= 8.24 cost= 2.37 drew=1 +FR 5174.79 gap= 8.40 cost= 2.44 drew=1 +FR 5183.13 gap= 8.31 cost= 2.41 drew=1 +FR 5191.46 gap= 8.24 cost= 2.32 drew=1 +FR 5199.79 gap= 8.32 cost= 2.31 drew=1 +FR 5208.12 gap= 8.33 cost= 2.30 drew=1 +FR 5216.46 gap= 8.38 cost= 2.35 drew=1 +FR 5224.79 gap= 8.22 cost= 2.24 drew=1 +FR 5233.12 gap= 8.05 cost= 1.96 drew=1 +FR 5241.46 gap= 8.44 cost= 2.06 drew=1 +FR 5249.79 gap= 8.74 cost= 2.47 drew=1 +FR 5258.12 gap= 8.39 cost= 2.52 drew=1 +FR 5266.46 gap= 8.26 cost= 2.45 drew=1 +FR 5274.79 gap= 8.53 cost= 2.64 drew=1 +FR 5283.12 gap= 8.26 cost= 2.57 drew=1 +FR 5291.45 gap= 8.54 cost= 2.77 drew=1 +FR 5299.79 gap= 8.24 cost= 2.68 drew=1 +FR 5308.12 gap= 8.41 cost= 2.76 drew=1 +FR 5316.45 gap= 8.27 cost= 2.69 drew=1 +FR 5324.79 gap= 8.26 cost= 2.62 drew=1 +FR 5333.12 gap= 7.95 cost= 2.24 drew=1 +FR 5341.45 gap= 7.70 cost= 1.61 drew=1 +FR 5349.79 gap= 8.08 cost= 1.35 drew=1 +FR 5358.12 gap= 8.48 cost= 1.49 drew=1 +FR 5366.45 gap= 9.26 cost= 2.42 drew=1 +FR 5374.78 gap= 8.10 cost= 2.19 drew=1 +FR 5383.12 gap= 8.78 cost= 2.64 drew=1 +FR 5391.45 gap= 8.09 cost= 2.40 drew=1 +FR 5399.78 gap= 8.39 cost= 2.45 drew=1 +FR 5408.12 gap= 8.33 cost= 2.45 drew=1 +FR 5416.45 gap= 8.25 cost= 2.36 drew=1 +FR 5424.78 gap= 8.30 cost= 2.33 drew=1 +FR 5433.12 gap= 8.81 cost= 2.81 drew=1 +FR 5441.45 gap= 8.13 cost= 2.61 drew=1 +FR 5449.78 gap= 8.81 cost= 3.08 drew=1 +FR 5458.11 gap= 7.49 cost= 2.23 drew=1 +FR 5466.45 gap= 9.64 cost= 3.54 drew=1 +FR 5474.78 gap= 7.95 cost= 3.16 drew=1 +FR 5483.11 gap= 8.03 cost= 2.86 drew=1 +FR 5491.45 gap= 8.41 cost= 2.94 drew=1 +FR 5499.78 gap= 7.96 cost= 2.56 drew=1 +FR 5508.11 gap= 10.98 cost= 5.21 drew=1 +FR 5516.45 gap= 6.87 cost= 3.74 drew=1 +FR 5524.78 gap= 6.73 cost= 2.13 drew=1 +FR 5533.11 gap= 8.24 cost= 2.04 drew=1 +FR 5541.44 gap= 9.02 cost= 2.72 drew=1 +FR 5549.78 gap= 8.30 cost= 2.69 drew=1 +FR 5558.11 gap= 8.72 cost= 3.08 drew=1 +FR 5566.44 gap= 8.45 cost= 3.19 drew=1 +FR 5574.78 gap= 8.54 cost= 3.40 drew=1 +FR 5583.11 gap= 7.55 cost= 2.62 drew=1 +FR 5591.44 gap= 7.81 cost= 2.10 drew=1 +FR 5599.78 gap= 8.13 cost= 1.90 drew=1 +FR 5608.11 gap= 8.32 cost= 1.88 drew=1 +FR 5616.44 gap= 8.03 cost= 1.58 drew=1 +FR 5624.77 gap= 8.68 cost= 1.93 drew=1 +FR 5633.11 gap= 8.36 cost= 1.96 drew=1 +FR 5641.44 gap= 8.66 cost= 2.28 drew=1 +FR 5649.77 gap= 8.50 cost= 2.44 drew=1 +FR 5658.11 gap= 8.18 cost= 2.29 drew=1 +FR 5666.44 gap= 8.62 cost= 2.57 drew=1 +FR 5674.77 gap= 8.08 cost= 2.32 drew=1 +FR 5683.11 gap= 8.70 cost= 2.69 drew=1 +FR 5691.88 gap= 9.01 cost= 2.92 drew=1 +FR 5699.77 gap= 7.76 cost= 2.79 drew=1 +FR 5708.10 gap= 8.39 cost= 2.85 drew=1 +FR 5716.44 gap= 7.57 cost= 2.09 drew=1 +FR 5724.77 gap= 9.02 cost= 2.78 drew=1 +FR 5733.10 gap= 8.17 cost= 2.61 drew=1 +FR 5741.44 gap= 8.17 cost= 2.45 drew=1 +FR 5749.77 gap= 8.48 cost= 2.60 drew=1 +FR 5758.10 gap= 8.44 cost= 2.70 drew=1 +FR 5766.44 gap= 8.94 cost= 3.32 drew=1 +FR 5774.77 gap= 8.22 cost= 3.21 drew=1 +FR 5783.10 gap= 8.30 cost= 3.18 drew=1 +FR 5791.44 gap= 8.21 cost= 3.05 drew=1 +FR 5799.77 gap= 8.01 cost= 2.73 drew=1 +FR 5808.10 gap= 8.26 cost= 2.66 drew=1 +FR 5816.43 gap= 8.41 cost= 2.74 drew=1 +FR 5824.77 gap= 8.34 cost= 2.74 drew=1 +FR 5833.10 gap= 8.26 cost= 2.67 drew=1 +FR 5841.43 gap= 8.33 cost= 2.66 drew=1 +FR 5849.77 gap= 8.27 cost= 2.60 drew=1 +FR 5858.10 gap= 8.30 cost= 2.56 drew=1 +FR 5866.43 gap= 8.51 cost= 2.74 drew=1 +FR 5874.77 gap= 8.67 cost= 3.08 drew=1 +FR 5883.10 gap= 7.91 cost= 2.66 drew=1 +FR 5891.43 gap= 8.24 cost= 2.57 drew=1 +FR 5899.76 gap= 8.65 cost= 2.89 drew=1 +FR 5908.10 gap= 7.98 cost= 2.53 drew=1 +FR 5916.43 gap= 8.16 cost= 2.37 drew=1 +FR 5924.76 gap= 8.66 cost= 2.69 drew=1 +FR 5933.10 gap= 7.99 cost= 2.35 drew=1 +FR 5941.43 gap= 8.61 cost= 2.63 drew=1 +FR 5949.76 gap= 8.22 cost= 2.52 drew=1 +FR 5958.10 gap= 8.38 cost= 2.57 drew=1 +FR 5966.43 gap= 8.08 cost= 2.32 drew=1 +FR 5974.76 gap= 8.57 cost= 2.56 drew=1 +FR 5983.10 gap= 8.28 cost= 2.50 drew=1 +FR 5991.43 gap= 8.16 cost= 2.34 drew=1 +FR 5999.76 gap= 8.42 cost= 2.43 drew=1 +FR 6008.09 gap= 8.40 cost= 2.49 drew=1 +FR 6016.43 gap= 8.29 cost= 2.45 drew=1 +FR 6024.76 gap= 8.75 cost= 2.86 drew=1 +FR 6033.09 gap= 8.23 cost= 2.76 drew=1 +FR 6041.43 gap= 8.23 cost= 2.65 drew=1 +FR 6049.76 gap= 8.33 cost= 2.65 drew=1 +FR 6058.09 gap= 8.16 cost= 2.48 drew=1 +FR 6066.42 gap= 8.06 cost= 2.20 drew=1 +FR 6074.76 gap= 8.54 cost= 2.41 drew=1 +FR 6083.09 gap= 8.44 cost= 2.51 drew=1 +FR 6091.42 gap= 8.17 cost= 2.35 drew=1 +FR 6099.76 gap= 8.35 cost= 2.37 drew=1 +FR 6108.09 gap= 8.29 cost= 2.33 drew=1 +FR 6116.42 gap= 8.21 cost= 2.20 drew=1 +FR 6124.76 gap= 8.63 cost= 2.50 drew=1 +FR 6133.09 gap= 8.42 cost= 2.59 drew=1 +FR 6141.42 gap= 8.31 cost= 2.56 drew=1 +FR 6149.75 gap= 8.20 cost= 2.43 drew=1 +FR 6158.09 gap= 8.76 cost= 2.85 drew=1 +FR 6166.42 gap= 8.32 cost= 2.85 drew=1 +FR 6174.75 gap= 8.18 cost= 2.69 drew=1 +FR 6183.09 gap= 8.22 cost= 2.58 drew=1 +FR 6191.42 gap= 8.32 cost= 2.57 drew=1 +FR 6199.75 gap= 8.32 cost= 2.56 drew=1 +FR 6208.09 gap= 8.19 cost= 2.41 drew=1 +FR 6216.42 gap= 8.43 cost= 2.51 drew=1 +FR 6224.75 gap= 8.45 cost= 2.62 drew=1 +FR 6233.08 gap= 7.93 cost= 2.22 drew=1 +FR 6241.42 gap= 8.66 cost= 2.55 drew=1 +FR 6249.75 gap= 8.68 cost= 2.89 drew=1 +FR 6258.08 gap= 8.03 cost= 2.59 drew=1 +FR 6266.42 gap= 8.14 cost= 2.39 drew=1 +FR 6274.75 gap= 8.58 cost= 2.64 drew=1 +FR 6283.08 gap= 8.15 cost= 2.46 drew=1 +FR 6291.41 gap= 8.33 cost= 2.45 drew=1 +FR 6299.75 gap= 8.23 cost= 2.36 drew=1 +FR 6308.08 gap= 8.39 cost= 2.41 drew=1 +FR 6316.41 gap= 8.31 cost= 2.39 drew=1 +FR 6324.75 gap= 8.26 cost= 2.32 drew=1 +FR 6333.08 gap= 8.31 cost= 2.30 drew=1 +FR 6341.41 gap= 8.57 cost= 2.53 drew=1 +FR 6349.75 gap= 8.24 cost= 2.44 drew=1 +FR 6358.08 gap= 8.31 cost= 2.41 drew=1 +FR 6366.41 gap= 8.58 cost= 2.66 drew=1 +FR 6374.74 gap= 8.19 cost= 2.52 drew=1 +FR 6383.08 gap= 8.29 cost= 2.48 drew=1 +FR 6391.41 gap= 8.25 cost= 2.39 drew=1 +FR 6399.74 gap= 8.31 cost= 2.37 drew=1 +FR 6408.08 gap= 8.21 cost= 2.24 drew=1 +FR 6416.41 gap= 8.05 cost= 1.96 drew=1 +FR 6424.74 gap= 8.50 cost= 2.12 drew=1 +FR 6433.08 gap= 8.16 cost= 1.95 drew=1 +FR 6441.41 gap= 8.59 cost= 2.21 drew=1 +FR 6449.74 gap= 8.45 cost= 2.33 drew=1 +FR 6458.07 gap= 8.40 cost= 2.39 drew=1 +FR 6466.41 gap= 8.37 cost= 2.43 drew=1 +FR 6474.74 gap= 8.42 cost= 2.52 drew=1 +FR 6483.07 gap= 8.39 cost= 2.57 drew=1 +FR 6491.41 gap= 8.04 cost= 2.28 drew=1 +FR 6499.74 gap= 8.79 cost= 2.74 drew=1 +FR 6508.07 gap= 8.00 cost= 2.40 drew=1 +FR 6516.41 gap= 8.35 cost= 2.42 drew=1 +FR 6524.74 gap= 8.27 cost= 2.36 drew=1 +FR 6533.07 gap= 8.03 cost= 2.06 drew=1 +FR 6541.40 gap= 8.74 cost= 2.47 drew=1 +FR 6549.74 gap= 8.26 cost= 2.40 drew=1 +FR 6558.07 gap= 8.49 cost= 2.55 drew=1 +FR 6566.40 gap= 8.25 cost= 2.47 drew=1 +FR 6574.74 gap= 8.42 cost= 2.56 drew=1 +FR 6583.07 gap= 8.31 cost= 2.54 drew=1 +FR 6591.40 gap= 8.14 cost= 2.34 drew=1 +FR 6599.74 gap= 8.35 cost= 2.36 drew=1 +FR 6608.07 gap= 8.31 cost= 2.34 drew=1 +FR 6616.40 gap= 8.32 cost= 2.33 drew=1 +FR 6624.73 gap= 8.39 cost= 2.39 drew=1 +FR 6633.07 gap= 8.38 cost= 2.43 drew=1 +FR 6641.40 gap= 8.54 cost= 2.63 drew=1 +FR 6649.73 gap= 8.16 cost= 2.46 drew=1 +FR 6658.07 gap= 8.31 cost= 2.44 drew=1 +FR 6666.40 gap= 8.32 cost= 2.43 drew=1 +FR 6674.73 gap= 8.33 cost= 2.43 drew=1 +FR 6683.07 gap= 8.29 cost= 2.39 drew=1 +FR 6691.40 gap= 8.24 cost= 2.29 drew=1 +FR 6699.73 gap= 8.32 cost= 2.28 drew=1 +FR 6708.06 gap= 8.39 cost= 2.34 drew=1 +FR 6716.40 gap= 7.95 cost= 1.96 drew=1 +FR 6724.73 gap= 8.98 cost= 2.60 drew=1 +FR 6733.06 gap= 8.27 cost= 2.54 drew=1 +FR 6741.40 gap= 8.19 cost= 2.40 drew=1 +FR 6749.73 gap= 8.36 cost= 2.42 drew=1 +FR 6758.06 gap= 8.34 cost= 2.42 drew=1 +FR 6766.40 gap= 8.59 cost= 2.68 drew=1 +FR 6774.73 gap= 8.13 cost= 2.48 drew=1 +FR 6783.06 gap= 8.43 cost= 2.57 drew=1 +FR 6791.40 gap= 8.36 cost= 2.60 drew=1 +FR 6799.73 gap= 8.41 cost= 2.68 drew=1 +FR 6808.06 gap= 8.60 cost= 2.94 drew=1 +FR 6816.39 gap= 7.99 cost= 2.60 drew=1 +FR 6824.73 gap= 8.19 cost= 2.46 drew=1 +FR 6833.06 gap= 8.45 cost= 2.58 drew=1 +FR 6841.39 gap= 8.53 cost= 2.77 drew=1 +FR 6849.73 gap= 8.04 cost= 2.48 drew=1 +FR 6858.06 gap= 8.64 cost= 2.79 drew=1 +FR 6866.39 gap= 7.50 cost= 1.96 drew=1 +FR 6874.73 gap= 8.27 cost= 1.89 drew=1 +FR 6883.06 gap= 8.72 cost= 2.27 drew=1 +FR 6891.39 gap= 8.41 cost= 2.36 drew=1 +FR 6899.72 gap= 8.49 cost= 2.51 drew=1 +FR 6908.06 gap= 8.26 cost= 2.44 drew=1 +FR 6916.39 gap= 8.31 cost= 2.41 drew=1 +FR 6924.72 gap= 8.28 cost= 2.36 drew=1 +FR 6933.06 gap= 8.40 cost= 2.43 drew=1 +FR 6941.39 gap= 8.33 cost= 2.43 drew=1 +FR 6949.72 gap= 8.38 cost= 2.47 drew=1 +FR 6958.06 gap= 8.34 cost= 2.47 drew=1 +FR 6966.39 gap= 8.19 cost= 2.33 drew=1 +FR 6974.72 gap= 8.53 cost= 2.52 drew=1 +FR 6983.05 gap= 8.27 cost= 2.46 drew=1 +FR 6991.39 gap= 8.32 cost= 2.44 drew=1 +FR 6999.72 gap= 8.34 cost= 2.45 drew=1 +FR 7008.05 gap= 8.43 cost= 2.55 drew=1 +FR 7016.39 gap= 8.19 cost= 2.41 drew=1 +FR 7024.72 gap= 8.36 cost= 2.43 drew=1 +FR 7033.05 gap= 8.40 cost= 2.50 drew=1 +FR 7041.39 gap= 8.62 cost= 2.78 drew=1 +FR 7049.72 gap= 7.92 cost= 2.37 drew=1 +FR 7058.05 gap= 8.50 cost= 2.54 drew=1 +FR 7066.38 gap= 8.26 cost= 2.46 drew=1 +FR 7074.72 gap= 8.38 cost= 2.51 drew=1 +FR 7083.05 gap= 8.17 cost= 2.35 drew=1 +FR 7091.38 gap= 8.40 cost= 2.41 drew=1 +FR 7099.72 gap= 8.27 cost= 2.35 drew=1 +FR 7108.05 gap= 8.36 cost= 2.37 drew=1 +FR 7116.38 gap= 8.25 cost= 2.29 drew=1 +FR 7124.72 gap= 8.42 cost= 2.37 drew=1 +FR 7133.05 gap= 8.47 cost= 2.51 drew=1 +FR 7141.38 gap= 7.98 cost= 2.16 drew=1 +FR 7149.71 gap= 8.47 cost= 2.30 drew=1 +FR 7158.05 gap= 8.51 cost= 2.48 drew=1 +FR 7166.38 gap= 8.26 cost= 2.40 drew=1 +FR 7174.71 gap= 8.40 cost= 2.47 drew=1 +FR 7183.05 gap= 8.32 cost= 2.46 drew=1 +FR 7191.38 gap= 8.74 cost= 2.87 drew=1 +FR 7199.71 gap= 7.76 cost= 2.29 drew=1 +FR 7208.05 gap= 8.37 cost= 2.33 drew=1 +FR 7216.38 gap= 8.35 cost= 2.34 drew=1 +FR 7224.71 gap= 8.23 cost= 2.24 drew=1 +FR 7233.04 gap= 8.45 cost= 2.36 drew=1 +FR 7241.38 gap= 8.37 cost= 2.40 drew=1 +FR 7249.71 gap= 8.34 cost= 2.41 drew=1 +FR 7258.04 gap= 8.51 cost= 2.59 drew=1 +FR 7266.38 gap= 8.59 cost= 2.84 drew=1 +FR 7274.71 gap= 7.93 cost= 2.44 drew=1 +FR 7283.04 gap= 8.36 cost= 2.47 drew=1 +FR 7291.38 gap= 8.20 cost= 2.34 drew=1 +FR 7299.71 gap= 8.33 cost= 2.34 drew=1 +FR 7308.04 gap= 8.38 cost= 2.38 drew=1 +FR 7316.37 gap= 8.28 cost= 2.32 drew=1 +FR 7324.71 gap= 8.41 cost= 2.40 drew=1 +FR 7333.04 gap= 8.36 cost= 2.43 drew=1 +FR 7341.37 gap= 8.43 cost= 2.52 drew=1 +FR 7349.71 gap= 8.27 cost= 2.46 drew=1 +FR 7358.04 gap= 8.29 cost= 2.41 drew=1 +FR 7366.37 gap= 8.33 cost= 2.41 drew=1 +FR 7374.70 gap= 8.38 cost= 2.46 drew=1 +FR 7383.04 gap= 8.31 cost= 2.43 drew=1 +FR 7391.37 gap= 8.31 cost= 2.40 drew=1 +FR 7399.70 gap= 8.31 cost= 2.38 drew=1 +FR 7408.04 gap= 8.30 cost= 2.35 drew=1 +FR 7416.37 gap= 8.28 cost= 2.30 drew=1 +FR 7424.70 gap= 8.42 cost= 2.38 drew=1 +FR 7433.04 gap= 8.30 cost= 2.35 drew=1 +FR 7441.37 gap= 8.42 cost= 2.44 drew=1 +FR 7449.70 gap= 8.22 cost= 2.32 drew=1 +FR 7458.04 gap= 8.36 cost= 2.35 drew=1 +FR 7466.37 gap= 8.37 cost= 2.39 drew=1 +FR 7474.70 gap= 8.26 cost= 2.31 drew=1 +FR 7483.03 gap= 8.52 cost= 2.50 drew=1 +FR 7491.37 gap= 8.10 cost= 2.27 drew=1 +FR 7499.70 gap= 8.42 cost= 2.36 drew=1 +FR 7508.03 gap= 8.32 cost= 2.34 drew=1 +FR 7516.37 gap= 8.32 cost= 2.32 drew=1 +FR 7524.70 gap= 8.40 cost= 2.39 drew=1 +FR 7533.03 gap= 8.55 cost= 2.61 drew=1 +FR 7541.36 gap= 8.32 cost= 2.60 drew=1 +FR 7549.70 gap= 8.22 cost= 2.49 drew=1 +FR 7558.03 gap= 8.32 cost= 2.48 drew=1 +FR 7566.36 gap= 8.62 cost= 2.77 drew=1 +FR 7574.70 gap= 8.12 cost= 2.56 drew=1 +FR 7583.03 gap= 8.21 cost= 2.44 drew=1 +FR 7591.36 gap= 8.32 cost= 2.43 drew=1 +FR 7599.70 gap= 8.52 cost= 2.62 drew=1 +FR 7608.03 gap= 8.03 cost= 2.31 drew=1 +FR 7616.36 gap= 8.38 cost= 2.36 drew=1 +FR 7624.69 gap= 8.37 cost= 2.40 drew=1 +FR 7633.03 gap= 8.29 cost= 2.36 drew=1 +FR 7641.36 gap= 8.36 cost= 2.39 drew=1 +FR 7649.73 gap= 8.37 cost= 2.40 drew=1 +FR 7658.03 gap= 8.36 cost= 2.46 drew=1 +FR 7666.36 gap= 8.59 cost= 2.72 drew=1 +FR 7674.69 gap= 8.09 cost= 2.48 drew=1 +FR 7683.03 gap= 8.36 cost= 2.50 drew=1 +FR 7691.36 gap= 8.26 cost= 2.43 drew=1 +FR 7699.69 gap= 8.25 cost= 2.35 drew=1 +FR 7708.02 gap= 8.34 cost= 2.36 drew=1 +FR 7716.36 gap= 8.33 cost= 2.35 drew=1 +FR 7724.69 gap= 8.37 cost= 2.39 drew=1 +FR 7733.02 gap= 8.37 cost= 2.42 drew=1 +FR 7741.36 gap= 8.27 cost= 2.36 drew=1 +FR 7749.69 gap= 8.38 cost= 2.41 drew=1 +FR 7758.02 gap= 8.27 cost= 2.35 drew=1 +FR 7766.36 gap= 8.44 cost= 2.45 drew=1 +FR 7774.69 gap= 8.42 cost= 2.54 drew=1 +FR 7783.02 gap= 8.30 cost= 2.51 drew=1 +FR 7791.35 gap= 8.16 cost= 2.33 drew=1 +FR 7799.69 gap= 8.41 cost= 2.41 drew=1 +FR 7808.02 gap= 8.26 cost= 2.34 drew=1 +FR 7816.35 gap= 8.33 cost= 2.34 drew=1 +FR 7824.69 gap= 8.22 cost= 2.23 drew=1 +FR 7833.02 gap= 8.44 cost= 2.34 drew=1 +FR 7841.35 gap= 8.30 cost= 2.31 drew=1 +FR 7849.69 gap= 8.46 cost= 2.44 drew=1 +FR 7858.02 gap= 8.32 cost= 2.43 drew=1 +FR 7866.35 gap= 8.24 cost= 2.34 drew=1 +FR 7874.69 gap= 8.40 cost= 2.40 drew=1 +FR 7883.02 gap= 8.20 cost= 2.26 drew=1 +FR 7891.35 gap= 8.33 cost= 2.26 drew=1 +FR 7899.68 gap= 8.32 cost= 2.24 drew=1 +FR 7908.02 gap= 8.34 cost= 2.25 drew=1 +FR 7916.35 gap= 8.32 cost= 2.24 drew=1 +FR 7924.68 gap= 8.75 cost= 2.65 drew=1 +FR 7933.02 gap= 7.98 cost= 2.30 drew=1 +FR 7941.35 gap= 8.28 cost= 2.24 drew=1 +FR 7949.68 gap= 8.51 cost= 2.42 drew=1 +FR 7958.02 gap= 8.34 cost= 2.42 drew=1 +FR 7966.35 gap= 8.27 cost= 2.37 drew=1 +FR 7974.68 gap= 8.36 cost= 2.39 drew=1 +FR 7983.01 gap= 8.34 cost= 2.40 drew=1 +FR 7991.35 gap= 8.12 cost= 2.19 drew=1 +FR 7999.68 gap= 8.45 cost= 2.31 drew=1 +FR 8008.01 gap= 8.56 cost= 2.53 drew=1 +FR 8016.35 gap= 8.09 cost= 2.29 drew=1 +FR 8024.68 gap= 8.15 cost= 2.11 drew=1 +FR 8033.01 gap= 8.78 cost= 2.56 drew=1 +FR 8041.35 gap= 8.26 cost= 2.48 drew=1 +FR 8049.68 gap= 8.29 cost= 2.44 drew=1 +FR 8058.01 gap= 8.25 cost= 2.36 drew=1 +FR 8066.34 gap= 8.37 cost= 2.39 drew=1 +FR 8074.68 gap= 8.44 cost= 2.49 drew=1 +FR 8083.01 gap= 8.28 cost= 2.44 drew=1 +FR 8091.34 gap= 8.18 cost= 2.28 drew=1 +FR 8099.68 gap= 8.36 cost= 2.31 drew=1 +FR 8108.01 gap= 8.41 cost= 2.39 drew=1 +FR 8116.34 gap= 8.27 cost= 2.32 drew=1 +FR 8124.68 gap= 8.24 cost= 2.22 drew=1 +FR 8133.01 gap= 8.47 cost= 2.36 drew=1 +FR 8141.34 gap= 8.23 cost= 2.25 drew=1 +FR 8149.68 gap= 8.57 cost= 2.49 drew=1 +FR 8158.01 gap= 8.25 cost= 2.41 drew=1 +FR 8166.34 gap= 8.21 cost= 2.28 drew=1 +FR 8174.67 gap= 8.97 cost= 2.92 drew=1 +FR 8183.01 gap= 7.32 cost= 1.90 drew=1 +FR 8191.34 gap= 9.09 cost= 2.67 drew=1 +FR 8199.67 gap= 8.40 cost= 2.73 drew=1 +FR 8208.00 gap= 8.30 cost= 2.70 drew=1 +FR 8216.34 gap= 7.93 cost= 2.30 drew=1 +FR 8224.67 gap= 8.20 cost= 2.16 drew=1 +FR 8233.00 gap= 7.87 cost= 1.70 drew=1 +FR 8241.34 gap= 8.06 cost= 1.43 drew=1 +FR 8249.67 gap= 8.54 cost= 1.64 drew=1 +FR 8258.00 gap= 8.83 cost= 2.13 drew=1 +FR 8266.34 gap= 8.52 cost= 2.32 drew=1 +FR 8274.67 gap= 8.25 cost= 2.24 drew=1 +FR 8283.00 gap= 8.87 cost= 2.78 drew=1 +FR 8291.33 gap= 7.92 cost= 2.37 drew=1 +FR 8299.67 gap= 7.64 cost= 1.67 drew=1 +FR 8308.00 gap= 8.43 cost= 1.77 drew=1 +FR 8316.33 gap= 8.37 cost= 1.80 drew=1 +FR 8324.71 gap= 8.28 cost= 1.70 drew=1 +FR 8343.51 gap= 19.49 cost= 2.40 drew=1 +FR 8349.67 gap= 6.10 cost= 2.35 drew=1 +FR 8358.00 gap= 9.04 cost= 3.06 drew=1 +FR 8366.33 gap= 8.04 cost= 2.76 drew=1 +FR 8374.67 gap= 8.29 cost= 2.71 drew=1 +FR 8383.02 gap= 8.64 cost= 3.00 drew=1 +FR 8391.33 gap= 7.75 cost= 2.44 drew=1 +FR 8399.67 gap= 8.95 cost= 3.05 drew=1 +FR 8408.00 gap= 8.05 cost= 2.77 drew=1 +FR 8416.33 gap= 8.68 cost= 3.12 drew=1 +FR 8424.66 gap= 7.59 cost= 2.37 drew=1 +FR 8433.00 gap= 8.62 cost= 2.66 drew=1 +FR 8441.33 gap= 8.33 cost= 2.66 drew=1 +FR 8449.66 gap= 8.35 cost= 2.67 drew=1 +FR 8458.00 gap= 8.27 cost= 2.61 drew=1 +FR 8466.33 gap= 8.33 cost= 2.61 drew=1 +FR 8474.66 gap= 8.25 cost= 2.52 drew=1 +FR 8482.99 gap= 8.33 cost= 2.52 drew=1 +FR 8491.33 gap= 8.30 cost= 2.48 drew=1 +FR 8499.66 gap= 8.31 cost= 2.46 drew=1 +FR 8507.99 gap= 8.30 cost= 2.42 drew=1 +FR 8516.33 gap= 8.38 cost= 2.47 drew=1 +FR 8524.66 gap= 8.26 cost= 2.40 drew=1 +FR 8532.99 gap= 8.20 cost= 2.26 drew=1 +FR 8541.33 gap= 8.55 cost= 2.48 drew=1 +FR 8549.66 gap= 8.33 cost= 2.48 drew=1 +FR 8557.99 gap= 8.37 cost= 2.52 drew=1 +FR 8566.32 gap= 8.64 cost= 2.83 drew=1 +FR 8574.66 gap= 7.99 cost= 2.48 drew=1 +FR 8582.99 gap= 8.38 cost= 2.52 drew=1 +FR 8591.32 gap= 8.25 cost= 2.44 drew=1 +FR 8599.66 gap= 8.34 cost= 2.45 drew=1 +FR 8607.99 gap= 8.30 cost= 2.43 drew=1 +FR 8616.32 gap= 8.26 cost= 2.35 drew=1 +FR 8624.66 gap= 8.44 cost= 2.46 drew=1 +FR 8632.99 gap= 8.34 cost= 2.47 drew=1 +FR 8641.32 gap= 8.34 cost= 2.47 drew=1 +FR 8649.66 gap= 8.77 cost= 2.90 drew=1 +FR 8657.99 gap= 8.03 cost= 2.60 drew=1 +FR 8666.32 gap= 8.32 cost= 2.59 drew=1 +FR 8674.65 gap= 8.33 cost= 2.59 drew=1 +FR 8682.99 gap= 8.30 cost= 2.55 drew=1 +FR 8691.32 gap= 8.30 cost= 2.52 drew=1 +FR 8699.65 gap= 8.21 cost= 2.40 drew=1 +FR 8707.99 gap= 8.36 cost= 2.43 drew=1 +FR 8716.32 gap= 8.45 cost= 2.54 drew=1 +FR 8724.65 gap= 8.19 cost= 2.40 drew=1 +FR 8732.98 gap= 8.47 cost= 2.54 drew=1 +FR 8741.32 gap= 8.31 cost= 2.52 drew=1 +FR 8749.65 gap= 8.21 cost= 2.40 drew=1 +FR 8757.98 gap= 8.53 cost= 2.59 drew=1 +FR 8766.32 gap= 8.38 cost= 2.64 drew=1 +FR 8774.65 gap= 8.39 cost= 2.70 drew=1 +FR 8782.98 gap= 8.33 cost= 2.70 drew=1 +FR 8791.32 gap= 8.20 cost= 2.56 drew=1 +FR 8799.69 gap= 8.96 cost= 3.14 drew=1 +FR 8807.98 gap= 7.97 cost= 2.82 drew=1 +FR 8816.32 gap= 8.66 cost= 3.15 drew=1 +FR 8824.65 gap= 8.02 cost= 2.84 drew=1 +FR 8832.98 gap= 8.40 cost= 2.90 drew=1 +FR 8841.31 gap= 8.09 cost= 2.65 drew=1 +FR 8849.65 gap= 8.07 cost= 2.39 drew=1 +FR 8857.98 gap= 8.46 cost= 2.52 drew=1 +FR 8866.31 gap= 8.81 cost= 3.00 drew=1 +FR 8874.65 gap= 7.83 cost= 2.50 drew=1 +FR 8882.98 gap= 8.34 cost= 2.50 drew=1 +FR 8891.31 gap= 8.15 cost= 2.32 drew=1 +FR 8899.64 gap= 8.61 cost= 2.59 drew=1 +FR 8907.98 gap= 8.26 cost= 2.52 drew=1 +FR 8916.31 gap= 8.23 cost= 2.41 drew=1 +FR 8924.64 gap= 8.14 cost= 2.22 drew=1 +FR 8932.98 gap= 8.72 cost= 2.60 drew=1 +FR 8941.31 gap= 8.79 cost= 3.06 drew=1 +FR 8949.64 gap= 7.84 cost= 2.57 drew=1 +FR 8957.98 gap= 8.53 cost= 2.77 drew=1 +FR 8966.31 gap= 8.60 cost= 3.04 drew=1 +FR 8974.64 gap= 7.81 cost= 2.51 drew=1 +FR 8982.98 gap= 8.87 cost= 3.05 drew=1 +FR 8991.31 gap= 8.05 cost= 2.77 drew=1 +FR 8999.64 gap= 8.38 cost= 2.82 drew=1 +FR 9007.97 gap= 8.46 cost= 2.94 drew=1 +FR 9016.31 gap= 8.12 cost= 2.73 drew=1 +FR 9024.64 gap= 8.43 cost= 2.83 drew=1 +FR 9032.97 gap= 8.12 cost= 2.62 drew=1 +FR 9041.31 gap= 8.25 cost= 2.53 drew=1 +FR 9049.72 gap= 8.77 cost= 2.89 drew=1 +FR 9057.97 gap= 8.51 cost= 3.14 drew=1 +FR 9066.30 gap= 7.96 cost= 2.76 drew=1 +FR 9074.64 gap= 8.40 cost= 2.83 drew=1 +FR 9082.97 gap= 8.24 cost= 2.74 drew=1 +FR 9091.30 gap= 8.25 cost= 2.66 drew=1 +FR 9099.64 gap= 8.09 cost= 2.41 drew=1 +FR 9107.97 gap= 8.32 cost= 2.40 drew=1 +FR 9116.30 gap= 8.31 cost= 2.37 drew=1 +FR 9124.64 gap= 8.18 cost= 2.22 drew=1 +FR 9132.97 gap= 8.88 cost= 2.76 drew=1 +FR 9141.30 gap= 7.65 cost= 2.08 drew=1 +FR 9149.63 gap= 7.87 cost= 1.62 drew=1 +FR 9157.97 gap= 8.86 cost= 2.15 drew=1 +FR 9166.30 gap= 7.87 cost= 1.69 drew=1 +FR 9174.63 gap= 8.73 cost= 2.08 drew=1 +FR 9182.97 gap= 8.20 cost= 1.94 drew=1 +FR 9191.31 gap= 8.99 cost= 2.59 drew=1 +FR 9199.63 gap= 9.08 cost= 3.35 drew=1 +FR 9207.97 gap= 7.85 cost= 2.87 drew=1 +FR 9216.31 gap= 8.71 cost= 3.23 drew=1 +FR 9224.63 gap= 8.43 cost= 3.34 drew=1 +FR 9232.97 gap= 19.13 cost= 14.13 drew=1 +FR 9249.63 gap= 5.51 cost= 2.98 drew=1 +FR 9257.96 gap= 8.44 cost= 3.09 drew=1 +FR 9266.30 gap= 8.35 cost= 3.10 drew=1 +FR 9274.63 gap= 8.37 cost= 3.14 drew=1 +FR 9282.96 gap= 8.17 cost= 2.97 drew=1 +FR 9291.30 gap= 8.17 cost= 2.81 drew=1 +FR 9299.63 gap= 8.46 cost= 2.94 drew=1 +FR 9307.96 gap= 7.98 cost= 2.58 drew=1 +FR 9316.29 gap= 8.85 cost= 3.10 drew=1 +FR 9324.63 gap= 8.16 cost= 2.92 drew=1 +FR 9332.96 gap= 8.60 cost= 3.19 drew=1 +FR 9341.29 gap= 7.88 cost= 2.74 drew=1 +FR 9349.63 gap= 8.66 cost= 3.06 drew=1 +FR 9357.96 gap= 7.72 cost= 2.45 drew=1 +FR 9366.29 gap= 8.70 cost= 2.82 drew=1 +FR 9374.62 gap= 8.60 cost= 3.08 drew=1 +FR 9382.96 gap= 8.15 cost= 2.90 drew=1 +FR 9391.29 gap= 8.15 cost= 2.72 drew=1 +FR 9399.62 gap= 8.38 cost= 2.76 drew=1 +FR 9407.96 gap= 8.25 cost= 2.68 drew=1 +FR 9416.32 gap= 8.43 cost= 2.75 drew=1 +FR 9424.62 gap= 8.50 cost= 2.94 drew=1 +FR 9432.96 gap= 8.16 cost= 2.77 drew=1 +FR 9441.29 gap= 8.05 cost= 2.49 drew=1 +FR 9449.62 gap= 8.83 cost= 2.99 drew=1 +FR 9457.96 gap= 7.97 cost= 2.63 drew=1 +FR 9466.29 gap= 7.97 cost= 2.27 drew=1 +FR 9474.62 gap= 8.71 cost= 2.65 drew=1 +FR 9482.95 gap= 8.12 cost= 2.43 drew=1 +FR 9491.29 gap= 8.24 cost= 2.34 drew=1 +FR 9499.62 gap= 8.36 cost= 2.37 drew=1 +FR 9507.95 gap= 8.35 cost= 2.38 drew=1 +FR 9516.31 gap= 8.75 cost= 2.78 drew=1 +FR 9524.62 gap= 8.39 cost= 2.86 drew=1 +FR 9532.95 gap= 8.42 cost= 2.94 drew=1 +FR 9541.29 gap= 8.53 cost= 3.14 drew=1 +FR 9549.62 gap= 7.97 cost= 2.77 drew=1 +FR 9558.04 gap= 8.50 cost= 2.85 drew=1 +FR 9566.28 gap= 7.94 cost= 2.54 drew=1 +FR 9574.62 gap= 8.30 cost= 2.51 drew=1 +FR 9582.95 gap= 8.28 cost= 2.45 drew=1 +FR 9591.28 gap= 8.12 cost= 2.24 drew=1 +FR 9599.62 gap= 8.47 cost= 2.38 drew=1 +FR 9607.95 gap= 8.36 cost= 2.40 drew=1 +FR 9616.28 gap= 8.23 cost= 2.30 drew=1 +FR 9624.61 gap= 8.33 cost= 2.29 drew=1 +FR 9632.95 gap= 8.50 cost= 2.46 drew=1 +FR 9641.28 gap= 8.40 cost= 2.52 drew=1 +FR 9649.61 gap= 8.32 cost= 2.51 drew=1 +FR 9657.95 gap= 8.32 cost= 2.49 drew=1 +FR 9666.28 gap= 8.64 cost= 2.79 drew=1 +FR 9674.61 gap= 7.97 cost= 2.42 drew=1 +FR 9682.95 gap= 8.42 cost= 2.51 drew=1 +FR 9691.33 gap= 9.02 cost= 3.14 drew=1 +FR 9699.61 gap= 7.96 cost= 2.83 drew=1 +FR 9707.94 gap= 8.22 cost= 2.71 drew=1 +FR 9716.28 gap= 8.94 cost= 3.32 drew=1 +FR 9724.61 gap= 7.83 cost= 2.82 drew=1 +FR 9732.94 gap= 7.94 cost= 2.43 drew=1 +FR 9741.28 gap= 8.25 cost= 2.34 drew=1 +FR 9749.61 gap= 8.59 cost= 2.59 drew=1 +FR 9757.94 gap= 8.37 cost= 2.63 drew=1 +FR 9766.28 gap= 8.27 cost= 2.57 drew=1 +FR 9774.61 gap= 8.33 cost= 2.57 drew=1 +FR 9782.94 gap= 8.60 cost= 2.84 drew=1 +FR 9791.27 gap= 8.00 cost= 2.50 drew=1 +FR 9799.61 gap= 8.40 cost= 2.58 drew=1 +FR 9807.94 gap= 8.23 cost= 2.48 drew=1 +FR 9816.27 gap= 8.36 cost= 2.50 drew=1 +FR 9824.61 gap= 8.33 cost= 2.49 drew=1 +FR 9832.94 gap= 8.44 cost= 2.59 drew=1 +FR 9841.27 gap= 8.28 cost= 2.54 drew=1 +FR 9849.61 gap= 8.39 cost= 2.59 drew=1 +FR 9857.94 gap= 8.46 cost= 2.72 drew=1 +FR 9866.27 gap= 8.19 cost= 2.57 drew=1 +FR 9874.61 gap= 8.32 cost= 2.56 drew=1 +FR 9882.94 gap= 8.36 cost= 2.58 drew=1 +FR 9891.27 gap= 8.19 cost= 2.44 drew=1 +FR 9899.60 gap= 8.35 cost= 2.45 drew=1 +FR 9907.94 gap= 8.02 cost= 2.15 drew=1 +FR 9916.27 gap= 8.66 cost= 2.47 drew=1 +FR 9924.60 gap= 8.35 cost= 2.49 drew=1 +FR 9932.94 gap= 8.26 cost= 2.41 drew=1 +FR 9941.27 gap= 8.44 cost= 2.52 drew=1 +FR 9949.60 gap= 8.30 cost= 2.48 drew=1 +FR 9957.93 gap= 8.23 cost= 2.38 drew=1 +FR 9966.27 gap= 8.23 cost= 2.28 drew=1 +FR 9974.60 gap= 8.66 cost= 2.60 drew=1 +FR 9982.93 gap= 8.36 cost= 2.64 drew=1 +FR 9991.27 gap= 8.20 cost= 2.51 drew=1 +FR 9999.60 gap= 8.25 cost= 2.42 drew=1 +FR 10007.93 gap= 8.16 cost= 2.25 drew=1 +FR 10016.27 gap= 8.41 cost= 2.33 drew=1 +FR 10024.60 gap= 8.46 cost= 2.45 drew=1 +FR 10032.93 gap= 8.44 cost= 2.56 drew=1 +FR 10041.27 gap= 8.22 cost= 2.45 drew=1 +FR 10049.60 gap= 8.40 cost= 2.52 drew=1 +FR 10057.93 gap= 7.80 cost= 1.98 drew=1 +FR 10066.26 gap= 8.95 cost= 2.61 drew=1 +FR 10074.60 gap= 9.09 cost= 3.36 drew=1 +FR 10082.93 gap= 7.58 cost= 2.62 drew=1 +FR 10091.28 gap= 8.27 cost= 2.54 drew=1 +FR 10099.60 gap= 8.27 cost= 2.50 drew=1 +FR 10107.93 gap= 8.22 cost= 2.38 drew=1 +FR 10116.26 gap= 8.35 cost= 2.40 drew=1 +FR 10124.59 gap= 8.33 cost= 2.40 drew=1 +FR 10132.93 gap= 8.57 cost= 2.63 drew=1 +FR 10141.26 gap= 8.58 cost= 2.87 drew=1 +FR 10149.59 gap= 8.05 cost= 2.59 drew=1 +FR 10157.93 gap= 8.22 cost= 2.48 drew=1 +FR 10166.26 gap= 8.69 cost= 2.84 drew=1 +FR 10174.59 gap= 8.20 cost= 2.71 drew=1 +FR 10182.93 gap= 8.36 cost= 2.74 drew=1 +FR 10191.26 gap= 7.97 cost= 2.37 drew=1 +FR 10199.59 gap= 8.65 cost= 2.69 drew=1 +FR 10207.92 gap= 8.28 cost= 2.64 drew=1 +FR 10216.26 gap= 8.31 cost= 2.62 drew=1 +FR 10224.59 gap= 8.58 cost= 2.86 drew=1 +FR 10232.92 gap= 8.14 cost= 2.67 drew=1 +FR 10241.26 gap= 8.16 cost= 2.50 drew=1 +FR 10249.59 gap= 8.36 cost= 2.52 drew=1 +FR 10257.92 gap= 8.44 cost= 2.63 drew=1 +FR 10266.26 gap= 8.23 cost= 2.53 drew=1 +FR 10274.59 gap= 8.35 cost= 2.55 drew=1 +FR 10282.92 gap= 8.23 cost= 2.45 drew=1 +FR 10291.26 gap= 8.29 cost= 2.39 drew=1 +FR 10299.59 gap= 8.31 cost= 2.38 drew=1 +FR 10307.92 gap= 8.29 cost= 2.33 drew=1 +FR 10316.25 gap= 8.30 cost= 2.30 drew=1 +FR 10324.59 gap= 8.43 cost= 2.40 drew=1 +FR 10332.92 gap= 8.43 cost= 2.49 drew=1 +FR 10341.25 gap= 8.33 cost= 2.49 drew=1 +FR 10349.59 gap= 8.30 cost= 2.46 drew=1 +FR 10357.92 gap= 8.26 cost= 2.39 drew=1 +FR 10366.25 gap= 8.35 cost= 2.40 drew=1 +FR 10374.59 gap= 8.49 cost= 2.55 drew=1 +FR 10382.92 gap= 8.17 cost= 2.39 drew=1 +FR 10391.28 gap= 8.28 cost= 2.30 drew=1 +FR 10399.58 gap= 8.30 cost= 2.30 drew=1 +FR 10407.92 gap= 8.40 cost= 2.37 drew=1 +FR 10416.25 gap= 8.25 cost= 2.29 drew=1 +FR 10424.58 gap= 8.26 cost= 2.22 drew=1 +FR 10432.92 gap= 8.37 cost= 2.26 drew=1 +FR 10441.25 gap= 8.50 cost= 2.43 drew=1 +FR 10449.58 gap= 8.25 cost= 2.34 drew=1 +FR 10457.92 gap= 8.41 cost= 2.42 drew=1 +FR 10466.25 gap= 8.67 cost= 2.76 drew=1 +FR 10474.58 gap= 7.99 cost= 2.41 drew=1 +FR 10482.92 gap= 8.44 cost= 2.52 drew=1 +FR 10491.25 gap= 8.14 cost= 2.32 drew=1 +FR 10499.58 gap= 8.42 cost= 2.42 drew=1 +FR 10507.91 gap= 8.29 cost= 2.37 drew=1 +FR 10516.25 gap= 8.24 cost= 2.28 drew=1 +FR 10524.58 gap= 8.40 cost= 2.34 drew=1 +FR 10532.91 gap= 8.38 cost= 2.39 drew=1 +FR 10541.25 gap= 8.34 cost= 2.40 drew=1 +FR 10549.58 gap= 8.26 cost= 2.33 drew=1 +FR 10557.91 gap= 8.43 cost= 2.43 drew=1 +FR 10566.24 gap= 8.20 cost= 2.30 drew=1 +FR 10574.58 gap= 8.42 cost= 2.39 drew=1 +FR 10582.91 gap= 8.31 cost= 2.36 drew=1 +FR 10591.27 gap= 8.40 cost= 2.40 drew=1 +FR 10599.58 gap= 8.22 cost= 2.31 drew=1 +FR 10607.91 gap= 8.30 cost= 2.28 drew=1 +FR 10616.24 gap= 8.42 cost= 2.37 drew=1 +FR 10624.58 gap= 8.38 cost= 2.42 drew=1 +FR 10632.91 gap= 8.37 cost= 2.46 drew=1 +FR 10641.24 gap= 8.35 cost= 2.48 drew=1 +FR 10649.57 gap= 8.35 cost= 2.49 drew=1 +FR 10657.91 gap= 8.32 cost= 2.48 drew=1 +FR 10666.24 gap= 8.36 cost= 2.51 drew=1 +FR 10674.57 gap= 8.30 cost= 2.48 drew=1 +FR 10682.91 gap= 8.45 cost= 2.59 drew=1 +FR 10691.28 gap= 8.22 cost= 2.44 drew=1 +FR 10699.57 gap= 8.22 cost= 2.37 drew=1 +FR 10707.91 gap= 8.31 cost= 2.34 drew=1 +FR 10716.24 gap= 8.43 cost= 2.44 drew=1 +FR 10724.57 gap= 8.25 cost= 2.36 drew=1 +FR 10732.90 gap= 8.45 cost= 2.47 drew=1 +FR 10741.24 gap= 8.33 cost= 2.48 drew=1 +FR 10749.57 gap= 8.20 cost= 2.34 drew=1 +FR 10757.90 gap= 8.43 cost= 2.44 drew=1 +FR 10766.24 gap= 8.27 cost= 2.38 drew=1 +FR 10774.57 gap= 8.49 cost= 2.53 drew=1 +FR 10782.90 gap= 9.10 cost= 3.30 drew=1 +FR 10791.26 gap= 7.83 cost= 2.76 drew=1 +FR 10799.57 gap= 8.27 cost= 2.73 drew=1 +FR 10807.90 gap= 8.47 cost= 2.87 drew=1 +FR 10816.23 gap= 8.90 cost= 3.44 drew=1 +FR 10824.57 gap= 7.97 cost= 3.08 drew=1 +FR 10832.90 gap= 7.96 cost= 2.70 drew=1 +FR 10841.23 gap= 8.07 cost= 2.44 drew=1 +FR 10849.57 gap= 7.46 cost= 1.56 drew=1 +FR 10857.90 gap= 8.38 cost= 1.61 drew=1 +FR 10866.23 gap= 8.72 cost= 2.00 drew=1 +FR 10874.57 gap= 8.90 cost= 2.56 drew=1 +FR 10882.90 gap= 8.21 cost= 2.43 drew=1 +FR 10891.27 gap= 8.29 cost= 2.35 drew=1 +FR 10899.56 gap= 8.23 cost= 2.29 drew=1 +FR 10907.90 gap= 8.41 cost= 2.37 drew=1 +FR 10916.23 gap= 8.24 cost= 2.28 drew=1 +FR 10924.56 gap= 8.47 cost= 2.41 drew=1 +FR 10932.90 gap= 9.79 cost= 3.87 drew=1 +FR 10941.23 gap= 6.74 cost= 2.27 drew=1 +FR 10949.56 gap= 8.19 cost= 2.13 drew=1 +FR 10957.90 gap= 8.69 cost= 2.48 drew=1 +FR 10966.23 gap= 8.51 cost= 2.66 drew=1 +FR 10974.56 gap= 8.10 cost= 2.42 drew=1 +FR 10982.90 gap= 8.46 cost= 2.55 drew=1 +FR 10991.30 gap= 11.07 cost= 5.21 drew=1 +FR 10999.56 gap= 5.57 cost= 2.53 drew=1 +FR 11007.89 gap= 8.53 cost= 2.72 drew=1 +FR 11016.23 gap= 8.23 cost= 2.61 drew=1 +FR 11024.56 gap= 8.29 cost= 2.57 drew=1 +FR 11032.89 gap= 8.37 cost= 2.61 drew=1 +FR 11041.23 gap= 8.23 cost= 2.51 drew=1 +FR 11049.56 gap= 8.44 cost= 2.61 drew=1 +FR 11057.89 gap= 8.27 cost= 2.56 drew=1 +FR 11066.22 gap= 8.37 cost= 2.59 drew=1 +FR 11074.56 gap= 8.19 cost= 2.45 drew=1 +FR 11082.89 gap= 8.74 cost= 2.86 drew=1 +FR 11091.25 gap= 8.00 cost= 2.50 drew=1 +FR 11099.56 gap= 8.44 cost= 2.63 drew=1 +FR 11107.93 gap= 8.20 cost= 2.45 drew=1 +FR 11116.22 gap= 8.31 cost= 2.48 drew=1 +FR 11124.56 gap= 8.29 cost= 2.44 drew=1 +FR 11132.89 gap= 8.46 cost= 2.57 drew=1 +FR 11141.22 gap= 8.62 cost= 2.86 drew=1 +FR 11149.55 gap= 7.77 cost= 2.29 drew=1 +FR 11157.89 gap= 8.30 cost= 2.26 drew=1 +FR 11166.22 gap= 8.70 cost= 2.63 drew=1 +FR 11174.55 gap= 8.25 cost= 2.55 drew=1 +FR 11182.89 gap= 8.72 cost= 2.94 drew=1 +FR 11191.26 gap= 7.91 cost= 2.48 drew=1 +FR 11199.55 gap= 8.26 cost= 2.44 drew=1 +FR 11207.89 gap= 8.34 cost= 2.44 drew=1 +FR 11216.22 gap= 8.25 cost= 2.36 drew=1 +FR 11224.55 gap= 8.49 cost= 2.51 drew=1 +FR 11232.89 gap= 8.38 cost= 2.56 drew=1 +FR 11241.22 gap= 8.26 cost= 2.49 drew=1 +FR 11249.55 gap= 8.36 cost= 2.51 drew=1 +FR 11257.88 gap= 8.20 cost= 2.38 drew=1 +FR 11266.22 gap= 8.38 cost= 2.42 drew=1 +FR 11274.55 gap= 8.42 cost= 2.51 drew=1 +FR 11282.88 gap= 8.33 cost= 2.51 drew=1 +FR 11291.34 gap= 8.35 cost= 2.41 drew=1 +FR 11299.55 gap= 8.21 cost= 2.41 drew=1 +FR 11307.88 gap= 8.30 cost= 2.38 drew=1 +FR 11316.21 gap= 8.45 cost= 2.50 drew=1 +FR 11324.55 gap= 8.14 cost= 2.31 drew=1 +FR 11332.88 gap= 8.50 cost= 2.48 drew=1 +FR 11341.21 gap= 8.47 cost= 2.61 drew=1 +FR 11349.55 gap= 8.23 cost= 2.50 drew=1 +FR 11357.88 gap= 8.27 cost= 2.44 drew=1 +FR 11366.21 gap= 8.47 cost= 2.58 drew=1 +FR 11374.55 gap= 8.79 cost= 3.03 drew=1 +FR 11382.88 gap= 8.32 cost= 3.02 drew=1 +FR 11391.30 gap= 7.75 cost= 2.35 drew=1 +FR 11399.54 gap= 8.48 cost= 2.59 drew=1 +FR 11407.88 gap= 8.24 cost= 2.49 drew=1 +FR 11416.21 gap= 8.32 cost= 2.48 drew=1 +FR 11424.54 gap= 8.41 cost= 2.55 drew=1 +FR 11432.88 gap= 8.27 cost= 2.49 drew=1 +FR 11441.21 gap= 8.37 cost= 2.52 drew=1 +FR 11449.54 gap= 8.36 cost= 2.55 drew=1 +FR 11457.88 gap= 8.26 cost= 2.48 drew=1 +FR 11466.21 gap= 8.50 cost= 2.64 drew=1 +FR 11474.54 gap= 8.25 cost= 2.56 drew=1 +FR 11482.87 gap= 7.64 cost= 1.87 drew=1 +FR 11491.27 gap= 9.05 cost= 2.53 drew=1 +FR 11499.54 gap= 8.29 cost= 2.54 drew=1 +FR 11507.87 gap= 8.27 cost= 2.48 drew=1 +FR 11516.21 gap= 8.37 cost= 2.52 drew=1 +FR 11524.54 gap= 8.24 cost= 2.43 drew=1 +FR 11532.87 gap= 8.44 cost= 2.53 drew=1 +FR 11541.20 gap= 8.27 cost= 2.47 drew=1 +FR 11549.54 gap= 8.27 cost= 2.41 drew=1 +FR 11557.87 gap= 8.50 cost= 2.58 drew=1 +FR 11566.20 gap= 8.18 cost= 2.42 drew=1 +FR 11574.54 gap= 8.41 cost= 2.50 drew=1 +FR 11582.87 gap= 8.29 cost= 2.46 drew=1 +FR 11591.27 gap= 8.24 cost= 2.30 drew=1 +FR 11599.54 gap= 8.30 cost= 2.33 drew=1 +FR 11607.87 gap= 8.34 cost= 2.34 drew=1 +FR 11616.20 gap= 8.34 cost= 2.35 drew=1 +FR 11624.54 gap= 8.32 cost= 2.34 drew=1 +FR 11632.87 gap= 8.40 cost= 2.40 drew=1 +FR 11641.20 gap= 8.28 cost= 2.35 drew=1 +FR 11649.53 gap= 8.60 cost= 2.61 drew=1 +FR 11657.87 gap= 8.03 cost= 2.32 drew=1 +FR 11666.20 gap= 8.42 cost= 2.40 drew=1 +FR 11674.53 gap= 8.52 cost= 2.59 drew=1 +FR 11682.87 gap= 8.08 cost= 2.34 drew=1 +FR 11691.26 gap= 8.31 cost= 2.26 drew=1 +FR 11699.53 gap= 8.75 cost= 2.73 drew=1 +FR 11707.86 gap= 8.21 cost= 2.61 drew=1 +FR 11716.20 gap= 8.11 cost= 2.39 drew=1 +FR 11724.53 gap= 8.31 cost= 2.37 drew=1 +FR 11732.86 gap= 8.50 cost= 2.54 drew=1 +FR 11741.20 gap= 7.92 cost= 2.13 drew=1 +FR 11749.53 gap= 8.65 cost= 2.45 drew=1 +FR 11757.86 gap= 8.49 cost= 2.61 drew=1 +FR 11766.20 gap= 8.07 cost= 2.34 drew=1 +FR 11774.53 gap= 8.39 cost= 2.40 drew=1 +FR 11782.86 gap= 8.31 cost= 2.39 drew=1 +FR 11791.27 gap= 8.34 cost= 2.32 drew=1 +FR 11799.53 gap= 8.22 cost= 2.28 drew=1 +FR 11807.86 gap= 8.32 cost= 2.27 drew=1 +FR 11816.19 gap= 8.30 cost= 2.24 drew=1 +FR 11824.53 gap= 8.37 cost= 2.27 drew=1 +FR 11832.86 gap= 8.31 cost= 2.24 drew=1 +FR 11841.19 gap= 8.37 cost= 2.28 drew=1 +FR 11849.53 gap= 8.94 cost= 2.88 drew=1 +FR 11857.86 gap= 7.79 cost= 2.34 drew=1 +FR 11866.19 gap= 9.04 cost= 3.04 drew=1 +FR 11874.52 gap= 8.22 cost= 2.93 drew=1 +FR 11882.86 gap= 8.11 cost= 2.71 drew=1 +FR 11891.19 gap= 8.01 cost= 2.38 drew=1 +FR 11899.52 gap= 8.59 cost= 2.64 drew=1 +FR 11907.86 gap= 8.05 cost= 2.35 drew=1 +FR 11916.19 gap= 8.34 cost= 2.35 drew=1 +FR 11924.52 gap= 8.30 cost= 2.32 drew=1 +FR 11932.86 gap= 8.30 cost= 2.29 drew=1 +FR 11941.19 gap= 8.11 cost= 2.06 drew=1 +FR 11949.52 gap= 8.63 cost= 2.36 drew=1 +FR 11957.86 gap= 8.38 cost= 2.41 drew=1 +FR 11966.19 gap= 8.29 cost= 2.37 drew=1 +FR 11974.52 gap= 8.33 cost= 2.36 drew=1 +FR 11982.85 gap= 8.01 cost= 2.05 drew=1 +FR 11991.19 gap= 8.97 cost= 2.68 drew=1 +FR 11999.52 gap= 7.94 cost= 2.29 drew=1 +FR 12007.85 gap= 8.41 cost= 2.37 drew=1 +FR 12016.19 gap= 8.40 cost= 2.44 drew=1 +FR 12024.52 gap= 8.89 cost= 3.00 drew=1 +FR 12032.85 gap= 8.18 cost= 2.85 drew=1 +FR 12041.19 gap= 7.90 cost= 2.41 drew=1 +FR 12049.52 gap= 8.35 cost= 2.43 drew=1 +FR 12057.85 gap= 8.38 cost= 2.48 drew=1 +FR 12066.18 gap= 8.25 cost= 2.40 drew=1 +FR 12074.52 gap= 8.39 cost= 2.46 drew=1 +FR 12082.85 gap= 8.27 cost= 2.40 drew=1 +FR 12091.18 gap= 8.29 cost= 2.36 drew=1 +FR 12099.52 gap= 8.43 cost= 2.45 drew=1 +FR 12107.85 gap= 8.42 cost= 2.54 drew=1 +FR 12116.18 gap= 8.65 cost= 2.86 drew=1 +FR 12124.51 gap= 7.92 cost= 2.44 drew=1 +FR 12132.85 gap= 8.36 cost= 2.47 drew=1 +FR 12141.18 gap= 8.03 cost= 2.16 drew=1 +FR 12149.51 gap= 8.53 cost= 2.36 drew=1 +FR 12157.85 gap= 8.37 cost= 2.40 drew=1 +FR 12166.18 gap= 8.43 cost= 2.49 drew=1 +FR 12174.51 gap= 8.27 cost= 2.43 drew=1 +FR 12182.85 gap= 8.25 cost= 2.35 drew=1 +FR 12191.31 gap= 8.47 cost= 2.36 drew=1 +FR 12199.51 gap= 8.16 cost= 2.32 drew=1 +FR 12207.84 gap= 8.74 cost= 2.73 drew=1 +FR 12216.18 gap= 7.89 cost= 2.29 drew=1 +FR 12224.51 gap= 8.38 cost= 2.33 drew=1 +FR 12232.84 gap= 8.24 cost= 2.24 drew=1 +FR 12241.18 gap= 8.43 cost= 2.34 drew=1 +FR 12249.51 gap= 8.46 cost= 2.46 drew=1 +FR 12257.84 gap= 8.04 cost= 2.17 drew=1 +FR 12266.18 gap= 8.64 cost= 2.48 drew=1 +FR 12274.51 gap= 8.26 cost= 2.40 drew=1 +FR 12282.84 gap= 8.32 cost= 2.39 drew=1 +FR 12291.17 gap= 8.36 cost= 2.41 drew=1 +FR 12299.51 gap= 8.20 cost= 2.28 drew=1 +FR 12307.84 gap= 8.38 cost= 2.33 drew=1 +FR 12316.17 gap= 8.34 cost= 2.33 drew=1 +FR 12324.51 gap= 8.35 cost= 2.35 drew=1 +FR 12332.84 gap= 8.57 cost= 2.58 drew=1 +FR 12341.17 gap= 7.91 cost= 2.16 drew=1 +FR 12349.51 gap= 8.89 cost= 2.71 drew=1 +FR 12357.84 gap= 8.38 cost= 2.76 drew=1 +FR 12366.17 gap= 8.39 cost= 2.81 drew=1 +FR 12374.50 gap= 7.93 cost= 2.41 drew=1 +FR 12382.84 gap= 8.33 cost= 2.41 drew=1 +FR 12391.17 gap= 8.44 cost= 2.52 drew=1 +FR 12399.50 gap= 8.03 cost= 2.21 drew=1 +FR 12407.84 gap= 8.40 cost= 2.28 drew=1 +FR 12416.17 gap= 8.40 cost= 2.35 drew=1 +FR 12424.50 gap= 8.26 cost= 2.28 drew=1 +FR 12432.84 gap= 8.38 cost= 2.33 drew=1 +FR 12441.17 gap= 8.21 cost= 2.20 drew=1 +FR 12449.50 gap= 8.39 cost= 2.26 drew=1 +FR 12457.83 gap= 8.35 cost= 2.27 drew=1 +FR 12466.17 gap= 8.62 cost= 2.56 drew=1 +FR 12474.50 gap= 7.97 cost= 2.20 drew=1 +FR 12482.83 gap= 8.39 cost= 2.25 drew=1 +FR 12491.17 gap= 8.34 cost= 2.26 drew=1 +FR 12499.50 gap= 8.19 cost= 2.12 drew=1 +FR 12507.83 gap= 8.60 cost= 2.38 drew=1 +FR 12516.17 gap= 8.27 cost= 2.32 drew=1 +FR 12524.50 gap= 8.35 cost= 2.34 drew=1 +FR 12532.83 gap= 8.33 cost= 2.33 drew=1 +FR 12541.17 gap= 8.13 cost= 2.13 drew=1 +FR 12549.50 gap= 8.54 cost= 2.34 drew=1 +FR 12557.83 gap= 8.40 cost= 2.40 drew=1 +FR 12566.16 gap= 8.27 cost= 2.34 drew=1 +FR 12574.50 gap= 8.29 cost= 2.30 drew=1 +FR 12582.83 gap= 8.43 cost= 2.40 drew=1 +FR 12591.16 gap= 8.59 cost= 2.66 drew=1 +FR 12599.50 gap= 7.99 cost= 2.31 drew=1 +FR 12607.83 gap= 8.29 cost= 2.27 drew=1 +FR 12616.16 gap= 8.43 cost= 2.37 drew=1 +FR 12624.50 gap= 8.41 cost= 2.44 drew=1 +FR 12632.83 gap= 8.40 cost= 2.51 drew=1 +FR 12641.16 gap= 8.23 cost= 2.40 drew=1 +FR 12649.49 gap= 8.44 cost= 2.51 drew=1 +FR 12657.83 gap= 8.31 cost= 2.48 drew=1 +FR 12666.16 gap= 8.30 cost= 2.45 drew=1 +FR 12674.49 gap= 8.34 cost= 2.46 drew=1 +FR 12682.83 gap= 8.40 cost= 2.52 drew=1 +FR 12691.16 gap= 8.29 cost= 2.48 drew=1 +FR 12699.49 gap= 8.24 cost= 2.39 drew=1 +FR 12707.83 gap= 8.30 cost= 2.36 drew=1 +FR 12716.16 gap= 8.43 cost= 2.45 drew=1 +FR 12724.49 gap= 8.32 cost= 2.44 drew=1 +FR 12732.82 gap= 8.10 cost= 2.20 drew=1 +FR 12741.16 gap= 8.90 cost= 2.77 drew=1 +FR 12749.49 gap= 7.77 cost= 2.20 drew=1 +FR 12757.82 gap= 8.68 cost= 2.55 drew=1 +FR 12766.16 gap= 8.84 cost= 3.06 drew=1 +FR 12774.49 gap= 7.79 cost= 2.52 drew=1 +FR 12782.82 gap= 8.19 cost= 2.38 drew=1 +FR 12791.16 gap= 8.34 cost= 2.39 drew=1 +FR 12799.49 gap= 8.44 cost= 2.50 drew=1 +FR 12807.82 gap= 8.27 cost= 2.43 drew=1 +FR 12816.16 gap= 8.27 cost= 2.36 drew=1 +FR 12824.49 gap= 8.32 cost= 2.35 drew=1 +FR 12832.82 gap= 8.48 cost= 2.50 drew=1 +FR 12841.15 gap= 8.22 cost= 2.38 drew=1 +FR 12849.49 gap= 8.42 cost= 2.47 drew=1 +FR 12857.82 gap= 8.34 cost= 2.48 drew=1 +FR 12866.15 gap= 8.25 cost= 2.39 drew=1 +FR 12874.49 gap= 8.34 cost= 2.40 drew=1 +FR 12882.82 gap= 8.45 cost= 2.51 drew=1 +FR 12891.15 gap= 8.24 cost= 2.41 drew=1 +FR 12899.48 gap= 8.30 cost= 2.38 drew=1 +FR 12907.82 gap= 8.29 cost= 2.34 drew=1 +FR 12916.15 gap= 8.58 cost= 2.58 drew=1 +FR 12924.48 gap= 8.13 cost= 2.38 drew=1 +FR 12932.82 gap= 8.29 cost= 2.33 drew=1 +FR 12941.15 gap= 8.33 cost= 2.33 drew=1 +FR 12949.48 gap= 8.28 cost= 2.27 drew=1 +FR 12957.82 gap= 8.47 cost= 2.41 drew=1 +FR 12966.15 gap= 8.61 cost= 2.69 drew=1 +FR 12974.48 gap= 8.00 cost= 2.36 drew=1 +FR 12982.81 gap= 8.09 cost= 2.12 drew=1 +FR 12991.15 gap= 8.57 cost= 2.36 drew=1 +FR 12999.48 gap= 8.29 cost= 2.32 drew=1 +FR 13007.81 gap= 8.30 cost= 2.29 drew=1 +FR 13016.15 gap= 8.36 cost= 2.32 drew=1 +FR 13024.48 gap= 8.27 cost= 2.26 drew=1 +FR 13032.81 gap= 8.39 cost= 2.32 drew=1 +FR 13041.15 gap= 8.05 cost= 2.04 drew=1 +FR 13049.48 gap= 8.61 cost= 2.32 drew=1 +FR 13057.81 gap= 8.39 cost= 2.38 drew=1 +FR 13066.14 gap= 8.40 cost= 2.45 drew=1 +FR 13074.48 gap= 8.30 cost= 2.41 drew=1 +FR 13082.81 gap= 8.24 cost= 2.31 drew=1 +FR 13091.14 gap= 8.32 cost= 2.30 drew=1 +FR 13099.48 gap= 8.32 cost= 2.28 drew=1 +FR 13107.81 gap= 8.47 cost= 2.42 drew=1 +FR 13116.14 gap= 8.24 cost= 2.32 drew=1 +FR 13124.48 gap= 8.34 cost= 2.32 drew=1 +FR 13132.81 gap= 8.26 cost= 2.25 drew=1 +FR 13141.14 gap= 8.37 cost= 2.28 drew=1 +FR 13149.47 gap= 8.43 cost= 2.38 drew=1 +FR 13157.81 gap= 8.36 cost= 2.41 drew=1 +FR 13166.14 gap= 8.25 cost= 2.33 drew=1 +FR 13174.47 gap= 8.34 cost= 2.34 drew=1 +FR 13182.81 gap= 8.34 cost= 2.34 drew=1 +FR 13191.14 gap= 8.33 cost= 2.34 drew=1 +FR 13199.47 gap= 8.32 cost= 2.33 drew=1 +FR 13207.81 gap= 8.32 cost= 2.31 drew=1 +FR 13216.14 gap= 8.19 cost= 2.17 drew=1 +FR 13224.47 gap= 8.43 cost= 2.27 drew=1 +FR 13232.81 gap= 8.53 cost= 2.46 drew=1 +FR 13241.14 gap= 8.21 cost= 2.34 drew=1 +FR 13249.47 gap= 8.26 cost= 2.27 drew=1 +FR 13257.80 gap= 8.45 cost= 2.39 drew=1 +FR 13266.14 gap= 8.33 cost= 2.38 drew=1 +FR 13274.47 gap= 8.31 cost= 2.36 drew=1 +FR 13282.80 gap= 8.28 cost= 2.31 drew=1 +FR 13291.14 gap= 8.41 cost= 2.38 drew=1 +FR 13299.47 gap= 8.20 cost= 2.25 drew=1 +FR 13307.80 gap= 8.08 cost= 1.99 drew=1 +FR 13316.14 gap= 8.37 cost= 2.03 drew=1 +FR 13324.47 gap= 8.64 cost= 2.33 drew=1 +FR 13332.80 gap= 8.27 cost= 2.28 drew=1 +FR 13341.13 gap= 8.01 cost= 1.95 drew=1 +FR 13349.47 gap= 8.66 cost= 2.28 drew=1 +FR 13357.80 gap= 8.35 cost= 2.29 drew=1 +FR 13366.13 gap= 8.42 cost= 2.38 drew=1 +FR 13383.51 gap= 17.40 cost= 2.40 drew=1 +FR 13391.13 gap= 8.10 cost= 2.88 drew=1 +FR 13399.46 gap= 8.72 cost= 3.27 drew=1 +FR 13407.80 gap= 7.67 cost= 2.60 drew=1 +FR 13416.13 gap= 8.29 cost= 2.57 drew=1 +FR 13424.46 gap= 8.31 cost= 2.54 drew=1 +FR 13432.80 gap= 8.50 cost= 2.71 drew=1 +FR 13441.13 gap= 8.76 cost= 3.14 drew=1 +FR 13449.46 gap= 7.83 cost= 2.64 drew=1 +FR 13457.80 gap= 7.78 cost= 2.08 drew=1 +FR 13466.13 gap= 7.84 cost= 1.59 drew=1 +FR 13474.46 gap= 8.35 cost= 1.61 drew=1 +FR 13482.79 gap= 8.48 cost= 1.75 drew=1 +FR 13491.13 gap= 8.74 cost= 2.16 drew=1 +FR 13499.46 gap= 8.83 cost= 2.65 drew=1 +FR 13507.79 gap= 7.72 cost= 2.04 drew=1 +FR 13516.13 gap= 8.34 cost= 2.05 drew=1 +FR 13524.46 gap= 8.62 cost= 2.34 drew=1 +FR 13532.79 gap= 8.99 cost= 3.00 drew=1 +FR 13541.12 gap= 7.73 cost= 2.40 drew=1 +FR 13549.46 gap= 9.09 cost= 3.16 drew=1 +FR 13557.79 gap= 7.98 cost= 2.81 drew=1 +FR 13566.12 gap= 8.33 cost= 2.81 drew=1 +FR 13574.46 gap= 8.34 cost= 2.81 drew=1 +FR 13582.79 gap= 8.56 cost= 3.04 drew=1 +FR 13591.12 gap= 7.77 cost= 2.47 drew=1 +FR 13599.46 gap= 8.68 cost= 2.82 drew=1 +FR 13607.79 gap= 7.89 cost= 2.38 drew=1 +FR 13616.12 gap= 8.75 cost= 2.79 drew=1 +FR 13624.45 gap= 8.11 cost= 2.57 drew=1 +FR 13632.79 gap= 8.76 cost= 3.00 drew=1 +FR 13641.12 gap= 8.20 cost= 2.87 drew=1 +FR 13649.45 gap= 8.30 cost= 2.83 drew=1 +FR 13657.79 gap= 8.29 cost= 2.79 drew=1 +FR 13666.12 gap= 8.37 cost= 2.82 drew=1 +FR 13674.45 gap= 8.33 cost= 2.82 drew=1 +FR 13682.79 gap= 8.26 cost= 2.75 drew=1 +FR 13691.12 gap= 8.22 cost= 2.63 drew=1 +FR 13699.45 gap= 8.34 cost= 2.64 drew=1 +FR 13707.78 gap= 8.08 cost= 2.39 drew=1 +FR 13716.12 gap= 8.41 cost= 2.47 drew=1 +FR 13724.45 gap= 8.48 cost= 2.61 drew=1 +FR 13732.78 gap= 8.36 cost= 2.63 drew=1 +FR 13741.12 gap= 8.78 cost= 3.08 drew=1 +FR 13749.45 gap= 8.35 cost= 3.09 drew=1 +FR 13757.78 gap= 8.22 cost= 2.98 drew=1 +FR 13766.12 gap= 8.63 cost= 3.28 drew=1 +FR 13774.45 gap= 7.50 cost= 2.45 drew=1 +FR 13782.78 gap= 8.37 cost= 2.49 drew=1 +FR 13791.11 gap= 8.82 cost= 2.98 drew=1 +FR 13799.49 gap= 8.89 cost= 3.49 drew=1 +FR 13807.78 gap= 7.72 cost= 2.92 drew=1 +FR 13816.11 gap= 8.36 cost= 2.94 drew=1 +FR 13824.45 gap= 8.34 cost= 2.95 drew=1 +FR 13832.78 gap= 8.11 cost= 2.73 drew=1 +FR 13841.11 gap= 8.40 cost= 2.80 drew=1 +FR 13849.45 gap= 8.67 cost= 3.13 drew=1 +FR 13857.78 gap= 8.31 cost= 3.11 drew=1 +FR 13866.11 gap= 7.92 cost= 2.69 drew=1 +FR 13874.44 gap= 8.49 cost= 2.85 drew=1 +FR 13882.78 gap= 8.17 cost= 2.68 drew=1 +FR 13891.11 gap= 8.31 cost= 2.66 drew=1 +FR 13899.44 gap= 8.21 cost= 2.54 drew=1 +FR 13907.78 gap= 8.26 cost= 2.46 drew=1 +FR 13916.11 gap= 8.44 cost= 2.57 drew=1 +FR 13924.44 gap= 8.27 cost= 2.50 drew=1 +FR 13932.78 gap= 8.52 cost= 2.69 drew=1 +FR 13941.11 gap= 8.23 cost= 2.59 drew=1 +FR 13949.44 gap= 8.26 cost= 2.52 drew=1 +FR 13957.77 gap= 7.91 cost= 2.09 drew=1 +FR 13966.11 gap= 8.75 cost= 2.51 drew=1 +FR 13974.44 gap= 8.63 cost= 2.81 drew=1 +FR 13982.77 gap= 8.16 cost= 2.64 drew=1 +FR 13991.11 gap= 8.37 cost= 2.67 drew=1 +FR 13999.44 gap= 8.29 cost= 2.64 drew=1 +FR 14007.77 gap= 8.06 cost= 2.36 drew=1 +FR 14016.11 gap= 8.50 cost= 2.53 drew=1 +FR 14024.44 gap= 8.26 cost= 2.45 drew=1 +FR 14032.77 gap= 8.30 cost= 2.42 drew=1 +FR 14041.10 gap= 7.93 cost= 2.02 drew=1 +FR 14049.44 gap= 9.00 cost= 2.68 drew=1 +FR 14057.77 gap= 8.30 cost= 2.65 drew=1 +FR 14066.10 gap= 8.21 cost= 2.52 drew=1 +FR 14074.44 gap= 8.56 cost= 2.75 drew=1 +FR 14082.77 gap= 8.02 cost= 2.44 drew=1 +FR 14091.10 gap= 8.44 cost= 2.55 drew=1 +FR 14099.44 gap= 8.31 cost= 2.52 drew=1 +FR 14107.77 gap= 8.20 cost= 2.39 drew=1 +FR 14116.10 gap= 8.47 cost= 2.53 drew=1 +FR 14124.44 gap= 8.34 cost= 2.53 drew=1 +FR 14132.77 gap= 8.36 cost= 2.56 drew=1 +FR 14141.10 gap= 8.04 cost= 2.26 drew=1 +FR 14149.43 gap= 8.69 cost= 2.62 drew=1 +FR 14157.77 gap= 8.20 cost= 2.49 drew=1 +FR 14166.10 gap= 8.35 cost= 2.50 drew=1 +FR 14174.43 gap= 8.34 cost= 2.50 drew=1 +FR 14182.77 gap= 8.25 cost= 2.43 drew=1 +FR 14191.10 gap= 8.45 cost= 2.54 drew=1 +FR 14199.43 gap= 8.25 cost= 2.46 drew=1 +FR 14207.76 gap= 8.26 cost= 2.39 drew=1 +FR 14216.10 gap= 8.54 cost= 2.59 drew=1 +FR 14224.43 gap= 8.16 cost= 2.42 drew=1 +FR 14232.76 gap= 8.25 cost= 2.33 drew=1 +FR 14241.10 gap= 8.15 cost= 2.15 drew=1 +FR 14249.43 gap= 8.70 cost= 2.51 drew=1 +FR 14257.76 gap= 8.28 cost= 2.46 drew=1 +FR 14266.10 gap= 8.35 cost= 2.47 drew=1 +FR 14274.43 gap= 8.28 cost= 2.42 drew=1 +FR 14282.76 gap= 8.35 cost= 2.44 drew=1 +FR 14291.09 gap= 8.42 cost= 2.53 drew=1 +FR 14299.43 gap= 8.17 cost= 2.36 drew=1 +FR 14307.76 gap= 8.88 cost= 2.91 drew=1 +FR 14316.09 gap= 7.74 cost= 2.32 drew=1 +FR 14324.43 gap= 8.32 cost= 2.31 drew=1 +FR 14332.76 gap= 8.33 cost= 2.31 drew=1 +FR 14341.09 gap= 8.07 cost= 2.05 drew=1 +FR 14349.43 gap= 8.66 cost= 2.38 drew=1 +FR 14357.76 gap= 8.29 cost= 2.34 drew=1 +FR 14366.09 gap= 8.41 cost= 2.42 drew=1 +FR 14374.42 gap= 8.36 cost= 2.44 drew=1 +FR 14382.76 gap= 8.31 cost= 2.42 drew=1 +FR 14391.09 gap= 8.25 cost= 2.33 drew=1 +FR 14399.42 gap= 8.38 cost= 2.38 drew=1 +FR 14407.76 gap= 8.25 cost= 2.30 drew=1 +FR 14416.09 gap= 8.04 cost= 2.01 drew=1 +FR 14424.42 gap= 8.59 cost= 2.27 drew=1 +FR 14432.76 gap= 8.40 cost= 2.34 drew=1 +FR 14441.09 gap= 8.52 cost= 2.52 drew=1 +FR 14449.42 gap= 8.47 cost= 2.65 drew=1 +FR 14457.76 gap= 8.10 cost= 2.42 drew=1 +FR 14466.09 gap= 8.48 cost= 2.57 drew=1 +FR 14474.42 gap= 8.25 cost= 2.49 drew=1 +FR 14482.75 gap= 8.26 cost= 2.42 drew=1 +FR 14491.09 gap= 8.31 cost= 2.39 drew=1 +FR 14499.42 gap= 8.27 cost= 2.33 drew=1 +FR 14507.75 gap= 8.41 cost= 2.41 drew=1 +FR 14516.09 gap= 8.37 cost= 2.44 drew=1 +FR 14524.42 gap= 8.26 cost= 2.37 drew=1 +FR 14532.75 gap= 8.38 cost= 2.42 drew=1 +FR 14541.08 gap= 8.02 cost= 2.11 drew=1 +FR 14549.42 gap= 8.57 cost= 2.34 drew=1 +FR 14557.75 gap= 8.32 cost= 2.32 drew=1 +FR 14566.08 gap= 8.33 cost= 2.32 drew=1 +FR 14574.42 gap= 8.15 cost= 2.14 drew=1 +FR 14582.75 gap= 8.58 cost= 2.38 drew=1 +FR 14591.08 gap= 8.23 cost= 2.28 drew=1 +FR 14599.42 gap= 8.35 cost= 2.30 drew=1 +FR 14607.75 gap= 8.33 cost= 2.29 drew=1 +FR 14616.08 gap= 8.36 cost= 2.32 drew=1 +FR 14624.42 gap= 8.40 cost= 2.39 drew=1 +FR 14632.75 gap= 8.18 cost= 2.24 drew=1 +FR 14641.08 gap= 8.44 cost= 2.34 drew=1 +FR 14649.41 gap= 8.43 cost= 2.43 drew=1 +FR 14657.75 gap= 8.25 cost= 2.35 drew=1 +FR 14666.08 gap= 8.07 cost= 2.09 drew=1 +FR 14674.41 gap= 8.56 cost= 2.32 drew=1 +FR 14682.75 gap= 8.46 cost= 2.45 drew=1 +FR 14691.08 gap= 8.38 cost= 2.49 drew=1 +FR 14699.41 gap= 8.14 cost= 2.29 drew=1 +FR 14707.75 gap= 8.40 cost= 2.36 drew=1 +FR 14716.08 gap= 8.32 cost= 2.35 drew=1 +FR 14724.41 gap= 8.38 cost= 2.40 drew=1 +FR 14732.74 gap= 8.33 cost= 2.40 drew=1 +FR 14741.08 gap= 8.30 cost= 2.37 drew=1 +FR 14749.41 gap= 8.32 cost= 2.35 drew=1 +FR 14757.74 gap= 8.38 cost= 2.40 drew=1 +FR 14766.08 gap= 8.64 cost= 2.71 drew=1 +FR 14774.41 gap= 8.13 cost= 2.51 drew=1 +FR 14782.74 gap= 8.32 cost= 2.49 drew=1 +FR 14791.08 gap= 8.31 cost= 2.47 drew=1 +FR 14799.41 gap= 8.37 cost= 2.51 drew=1 +FR 14807.74 gap= 8.26 cost= 2.44 drew=1 +FR 14816.07 gap= 8.30 cost= 2.41 drew=1 +FR 14824.41 gap= 8.49 cost= 2.57 drew=1 +FR 14832.74 gap= 8.21 cost= 2.44 drew=1 +FR 14841.07 gap= 8.14 cost= 2.25 drew=1 +FR 14849.41 gap= 8.63 cost= 2.55 drew=1 +FR 14857.74 gap= 8.32 cost= 2.54 drew=1 +FR 14866.07 gap= 8.39 cost= 2.59 drew=1 +FR 14874.41 gap= 8.19 cost= 2.45 drew=1 +FR 14882.74 gap= 8.34 cost= 2.46 drew=1 +FR 14891.07 gap= 8.32 cost= 2.44 drew=1 +FR 14899.40 gap= 8.31 cost= 2.41 drew=1 +FR 14907.74 gap= 8.30 cost= 2.38 drew=1 +FR 14916.07 gap= 8.41 cost= 2.45 drew=1 +FR 14924.40 gap= 8.33 cost= 2.45 drew=1 +FR 14932.77 gap= 8.30 cost= 2.39 drew=1 +FR 14941.07 gap= 8.33 cost= 2.41 drew=1 +FR 14949.40 gap= 8.35 cost= 2.43 drew=1 +FR 14957.74 gap= 8.36 cost= 2.46 drew=1 +FR 14966.07 gap= 8.30 cost= 2.43 drew=1 +FR 14974.40 gap= 8.98 cost= 3.08 drew=1 +FR 14982.73 gap= 8.11 cost= 2.85 drew=1 +FR 14991.07 gap= 7.91 cost= 2.43 drew=1 +FR 14999.40 gap= 8.21 cost= 2.31 drew=1 +FR 15007.73 gap= 8.35 cost= 2.33 drew=1 +FR 15016.07 gap= 8.42 cost= 2.41 drew=1 +FR 15024.40 gap= 8.29 cost= 2.37 drew=1 +FR 15032.73 gap= 8.31 cost= 2.34 drew=1 +FR 15041.07 gap= 8.42 cost= 2.43 drew=1 +FR 15049.40 gap= 8.14 cost= 2.25 drew=1 +FR 15057.73 gap= 8.61 cost= 2.52 drew=1 +FR 15066.06 gap= 8.21 cost= 2.40 drew=1 +FR 15074.40 gap= 8.20 cost= 2.26 drew=1 +FR 15082.73 gap= 8.35 cost= 2.28 drew=1 +FR 15091.06 gap= 8.67 cost= 2.62 drew=1 +FR 15099.40 gap= 8.16 cost= 2.45 drew=1 +FR 15107.73 gap= 8.74 cost= 2.85 drew=1 +FR 15116.06 gap= 7.87 cost= 2.39 drew=1 +FR 15124.40 gap= 8.29 cost= 2.35 drew=1 +FR 15132.73 gap= 8.42 cost= 2.44 drew=1 +FR 15141.06 gap= 8.31 cost= 2.42 drew=1 +FR 15149.39 gap= 8.33 cost= 2.41 drew=1 +FR 15157.73 gap= 8.36 cost= 2.44 drew=1 +FR 15166.06 gap= 8.62 cost= 2.73 drew=1 +FR 15174.39 gap= 7.97 cost= 2.36 drew=1 +FR 15182.73 gap= 8.53 cost= 2.56 drew=1 +FR 15191.06 gap= 8.21 cost= 2.44 drew=1 +FR 15199.39 gap= 8.27 cost= 2.38 drew=1 +FR 15207.73 gap= 8.27 cost= 2.32 drew=1 +FR 15216.09 gap= 8.41 cost= 2.36 drew=1 +FR 15224.39 gap= 7.84 cost= 1.90 drew=1 +FR 15232.72 gap= 8.85 cost= 2.42 drew=1 +FR 15241.06 gap= 8.33 cost= 2.42 drew=1 +FR 15249.39 gap= 8.37 cost= 2.45 drew=1 +FR 15257.72 gap= 8.31 cost= 2.42 drew=1 +FR 15266.06 gap= 8.36 cost= 2.45 drew=1 +FR 15274.39 gap= 8.30 cost= 2.42 drew=1 +FR 15282.72 gap= 8.28 cost= 2.36 drew=1 +FR 15291.06 gap= 8.37 cost= 2.39 drew=1 +FR 15299.39 gap= 8.33 cost= 2.39 drew=1 +FR 15307.72 gap= 8.19 cost= 2.26 drew=1 +FR 15316.05 gap= 8.42 cost= 2.34 drew=1 +FR 15324.39 gap= 8.33 cost= 2.34 drew=1 +FR 15332.72 gap= 8.39 cost= 2.40 drew=1 +FR 15341.05 gap= 8.36 cost= 2.42 drew=1 +FR 15349.39 gap= 8.03 cost= 2.12 drew=1 +FR 15357.72 gap= 8.55 cost= 2.33 drew=1 +FR 15366.05 gap= 8.41 cost= 2.41 drew=1 +FR 15374.39 gap= 8.30 cost= 2.38 drew=1 +FR 15382.72 gap= 8.41 cost= 2.45 drew=1 +FR 15391.05 gap= 8.37 cost= 2.49 drew=1 +FR 15399.39 gap= 8.36 cost= 2.51 drew=1 +FR 15407.72 gap= 8.25 cost= 2.43 drew=1 +FR 15416.05 gap= 8.35 cost= 2.45 drew=1 +FR 15424.38 gap= 8.25 cost= 2.37 drew=1 +FR 15432.72 gap= 8.34 cost= 2.37 drew=1 +FR 15441.05 gap= 8.41 cost= 2.45 drew=1 +FR 15449.38 gap= 8.49 cost= 2.61 drew=1 +FR 15457.72 gap= 8.13 cost= 2.41 drew=1 +FR 15466.05 gap= 8.35 cost= 2.42 drew=1 +FR 15474.38 gap= 8.31 cost= 2.40 drew=1 +FR 15482.71 gap= 8.40 cost= 2.46 drew=1 +FR 15491.05 gap= 8.25 cost= 2.38 drew=1 +FR 15499.38 gap= 7.94 cost= 1.98 drew=1 +FR 15507.71 gap= 8.63 cost= 2.28 drew=1 +FR 15516.05 gap= 8.44 cost= 2.38 drew=1 +FR 15524.38 gap= 8.21 cost= 2.26 drew=1 +FR 15532.71 gap= 8.09 cost= 2.01 drew=1 +FR 15541.05 gap= 8.76 cost= 2.44 drew=1 +FR 15549.38 gap= 8.23 cost= 2.33 drew=1 +FR 15557.71 gap= 8.38 cost= 2.38 drew=1 +FR 15566.04 gap= 8.00 cost= 2.05 drew=1 +FR 15574.38 gap= 8.70 cost= 2.41 drew=1 +FR 15582.71 gap= 8.27 cost= 2.35 drew=1 +FR 15591.04 gap= 8.34 cost= 2.35 drew=1 +FR 15599.38 gap= 8.27 cost= 2.29 drew=1 +FR 15607.71 gap= 8.33 cost= 2.29 drew=1 +FR 15616.04 gap= 8.42 cost= 2.37 drew=1 +FR 15624.38 gap= 8.24 cost= 2.28 drew=1 +FR 15632.71 gap= 8.35 cost= 2.30 drew=1 +FR 15641.04 gap= 8.36 cost= 2.33 drew=1 +FR 15649.37 gap= 8.30 cost= 2.30 drew=1 +FR 15657.71 gap= 8.51 cost= 2.48 drew=1 +FR 15666.04 gap= 8.26 cost= 2.40 drew=1 +FR 15674.37 gap= 8.42 cost= 2.49 drew=1 +FR 15682.71 gap= 8.20 cost= 2.36 drew=1 +FR 15691.04 gap= 8.37 cost= 2.40 drew=1 +FR 15699.37 gap= 8.20 cost= 2.26 drew=1 +FR 15707.70 gap= 8.36 cost= 2.29 drew=1 +FR 15716.04 gap= 8.04 cost= 2.00 drew=1 +FR 15724.37 gap= 8.66 cost= 2.33 drew=1 +FR 15732.70 gap= 8.22 cost= 2.22 drew=1 +FR 15741.04 gap= 8.48 cost= 2.36 drew=1 +FR 15749.37 gap= 8.28 cost= 2.31 drew=1 +FR 15757.70 gap= 8.38 cost= 2.35 drew=1 +FR 15766.04 gap= 8.34 cost= 2.35 drew=1 +FR 15774.37 gap= 8.41 cost= 2.43 drew=1 +FR 15782.70 gap= 8.21 cost= 2.31 drew=1 +FR 15791.03 gap= 8.36 cost= 2.34 drew=1 +FR 15799.37 gap= 8.33 cost= 2.33 drew=1 +FR 15807.70 gap= 8.32 cost= 2.32 drew=1 +FR 15816.03 gap= 8.32 cost= 2.31 drew=1 +FR 15824.37 gap= 8.51 cost= 2.49 drew=1 +FR 15832.70 gap= 8.12 cost= 2.28 drew=1 +FR 15841.06 gap= 8.41 cost= 2.33 drew=1 +FR 15849.37 gap= 7.75 cost= 1.77 drew=1 +FR 15857.70 gap= 9.12 cost= 2.56 drew=1 +FR 15866.03 gap= 8.18 cost= 2.41 drew=1 +FR 15874.36 gap= 8.75 cost= 2.82 drew=1 +FR 15882.70 gap= 8.21 cost= 2.70 drew=1 +FR 15891.03 gap= 8.28 cost= 2.64 drew=1 +FR 15899.36 gap= 8.16 cost= 2.47 drew=1 +FR 15907.70 gap= 8.31 cost= 2.44 drew=1 +FR 15916.03 gap= 8.31 cost= 2.42 drew=1 +FR 15924.36 gap= 8.34 cost= 2.43 drew=1 +FR 15932.70 gap= 8.28 cost= 2.37 drew=1 +FR 15941.03 gap= 8.41 cost= 2.44 drew=1 +FR 15949.36 gap= 7.97 cost= 2.08 drew=1 +FR 15957.69 gap= 8.53 cost= 2.28 drew=1 +FR 15966.03 gap= 8.49 cost= 2.43 drew=1 +FR 15974.36 gap= 8.50 cost= 2.59 drew=1 +FR 15982.69 gap= 7.67 cost= 1.93 drew=1 +FR 15991.03 gap= 9.38 cost= 2.97 drew=1 +FR 15999.36 gap= 8.57 cost= 3.21 drew=1 +FR 16007.69 gap= 7.52 cost= 2.39 drew=1 +FR 16016.03 gap= 8.53 cost= 2.59 drew=1 +FR 16024.36 gap= 8.42 cost= 2.68 drew=1 +FR 16032.69 gap= 8.34 cost= 2.69 drew=1 +FR 16041.02 gap= 9.11 cost= 3.46 drew=1 +FR 16057.84 gap= 15.98 cost= 2.62 drew=1 +FR 16066.02 gap= 8.24 cost= 2.68 drew=1 +FR 16074.36 gap= 8.18 cost= 2.52 drew=1 +FR 16082.69 gap= 8.82 cost= 3.01 drew=1 +FR 16091.02 gap= 8.36 cost= 3.04 drew=1 +FR 16099.36 gap= 7.85 cost= 2.56 drew=1 +FR 16107.69 gap= 8.60 cost= 2.83 drew=1 +FR 16116.02 gap= 8.29 cost= 2.79 drew=1 +FR 16124.35 gap= 8.22 cost= 2.68 drew=1 +FR 16132.69 gap= 7.84 cost= 2.18 drew=1 +FR 16141.02 gap= 7.61 cost= 1.46 drew=1 +FR 16149.35 gap= 8.24 cost= 1.37 drew=1 +FR 16157.69 gap= 8.15 cost= 1.18 drew=1 +FR 16166.02 gap= 9.01 cost= 1.86 drew=1 +FR 16174.35 gap= 8.92 cost= 2.45 drew=1 +FR 16182.69 gap= 8.27 cost= 2.39 drew=1 +FR 16191.02 gap= 8.28 cost= 2.34 drew=1 +FR 16199.35 gap= 8.33 cost= 2.33 drew=1 +FR 16207.68 gap= 8.26 cost= 2.26 drew=1 +FR 16216.41 gap= 9.22 cost= 2.76 drew=1 +FR 16224.35 gap= 7.63 cost= 2.45 drew=1 +FR 16232.68 gap= 8.27 cost= 2.38 drew=1 +FR 16241.02 gap= 8.29 cost= 2.34 drew=1 +FR 16249.35 gap= 8.29 cost= 2.30 drew=1 +FR 16257.68 gap= 8.85 cost= 2.81 drew=1 +FR 16266.02 gap= 8.06 cost= 2.53 drew=1 +FR 16274.35 gap= 8.93 cost= 3.13 drew=1 +FR 16282.68 gap= 7.86 cost= 2.66 drew=1 +FR 16291.02 gap= 8.09 cost= 2.42 drew=1 +FR 16299.35 gap= 8.80 cost= 2.89 drew=1 +FR 16307.68 gap= 8.15 cost= 2.70 drew=1 +FR 16316.01 gap= 8.29 cost= 2.66 drew=1 +FR 16324.35 gap= 8.22 cost= 2.55 drew=1 +FR 16332.68 gap= 8.39 cost= 2.61 drew=1 +FR 16341.01 gap= 8.28 cost= 2.56 drew=1 +FR 16349.35 gap= 8.36 cost= 2.59 drew=1 +FR 16357.68 gap= 8.40 cost= 2.66 drew=1 +FR 16366.01 gap= 8.20 cost= 2.52 drew=1 +FR 16374.34 gap= 8.38 cost= 2.56 drew=1 +FR 16382.68 gap= 8.27 cost= 2.50 drew=1 +FR 16391.01 gap= 9.09 cost= 3.26 drew=1 +FR 16399.34 gap= 7.90 cost= 2.82 drew=1 +FR 16407.68 gap= 8.57 cost= 3.06 drew=1 +FR 16416.01 gap= 8.34 cost= 3.07 drew=1 +FR 16424.34 gap= 8.06 cost= 2.79 drew=1 +FR 16432.68 gap= 8.63 cost= 3.09 drew=1 +FR 16441.01 gap= 8.32 cost= 3.07 drew=1 +FR 16449.34 gap= 8.27 cost= 3.01 drew=1 +FR 16457.67 gap= 8.11 cost= 2.79 drew=1 +FR 16466.01 gap= 8.55 cost= 3.01 drew=1 +FR 16474.34 gap= 7.89 cost= 2.56 drew=1 +FR 16482.67 gap= 8.74 cost= 2.97 drew=1 +FR 16491.01 gap= 8.02 cost= 2.66 drew=1 +FR 16499.34 gap= 8.46 cost= 2.78 drew=1 +FR 16507.67 gap= 8.31 cost= 2.75 drew=1 +FR 16516.01 gap= 8.35 cost= 2.78 drew=1 +FR 16524.34 gap= 8.34 cost= 2.78 drew=1 +FR 16532.67 gap= 8.43 cost= 2.88 drew=1 +FR 16541.01 gap= 7.99 cost= 2.54 drew=1 +FR 16549.34 gap= 8.22 cost= 2.43 drew=1 +FR 16557.67 gap= 8.93 cost= 3.03 drew=1 +FR 16566.00 gap= 8.05 cost= 2.74 drew=1 +FR 16574.34 gap= 8.37 cost= 2.77 drew=1 +FR 16582.67 gap= 8.45 cost= 2.89 drew=1 +FR 16591.00 gap= 7.86 cost= 2.42 drew=1 +FR 16599.34 gap= 8.26 cost= 2.35 drew=1 +FR 16607.67 gap= 8.40 cost= 2.42 drew=1 +FR 16616.00 gap= 8.52 cost= 2.60 drew=1 +FR 16624.33 gap= 8.26 cost= 2.53 drew=1 +FR 16632.67 gap= 7.88 cost= 2.08 drew=1 +FR 16641.00 gap= 8.81 cost= 2.56 drew=1 +FR 16649.33 gap= 8.39 cost= 2.62 drew=1 +FR 16657.67 gap= 8.40 cost= 2.68 drew=1 +FR 16666.00 gap= 8.26 cost= 2.60 drew=1 +FR 16674.33 gap= 8.66 cost= 2.93 drew=1 +FR 16682.67 gap= 8.22 cost= 2.81 drew=1 +FR 16691.00 gap= 8.12 cost= 2.60 drew=1 +FR 16699.33 gap= 8.26 cost= 2.53 drew=1 +FR 16707.67 gap= 8.38 cost= 2.58 drew=1 +FR 16716.00 gap= 8.30 cost= 2.54 drew=1 +FR 16724.33 gap= 8.36 cost= 2.57 drew=1 +FR 16732.66 gap= 8.24 cost= 2.47 drew=1 +FR 16741.00 gap= 8.64 cost= 2.78 drew=1 +FR 16749.33 gap= 7.79 cost= 2.24 drew=1 +FR 16757.66 gap= 8.79 cost= 2.69 drew=1 +FR 16766.00 gap= 8.10 cost= 2.46 drew=1 +FR 16774.33 gap= 8.48 cost= 2.61 drew=1 +FR 16782.66 gap= 8.14 cost= 2.42 drew=1 +FR 16790.99 gap= 8.35 cost= 2.44 drew=1 +FR 16799.33 gap= 8.32 cost= 2.42 drew=1 +FR 16807.66 gap= 8.30 cost= 2.38 drew=1 +FR 16815.99 gap= 8.30 cost= 2.35 drew=1 +FR 16824.33 gap= 8.37 cost= 2.39 drew=1 +FR 16832.66 gap= 8.26 cost= 2.32 drew=1 +FR 16840.99 gap= 8.52 cost= 2.51 drew=1 +FR 16849.33 gap= 8.35 cost= 2.52 drew=1 +FR 16857.66 gap= 8.21 cost= 2.40 drew=1 +FR 16865.99 gap= 8.81 cost= 2.88 drew=1 +FR 16874.33 gap= 7.97 cost= 2.51 drew=1 +FR 16882.66 gap= 7.98 cost= 2.16 drew=1 +FR 16890.99 gap= 8.76 cost= 2.59 drew=1 +FR 16899.32 gap= 8.13 cost= 2.38 drew=1 +FR 16907.66 gap= 8.38 cost= 2.43 drew=1 +FR 16915.99 gap= 8.35 cost= 2.45 drew=1 +FR 16924.32 gap= 8.41 cost= 2.53 drew=1 +FR 16932.66 gap= 8.32 cost= 2.51 drew=1 +FR 16940.99 gap= 8.31 cost= 2.49 drew=1 +FR 16949.32 gap= 8.42 cost= 2.58 drew=1 +FR 16957.66 gap= 8.15 cost= 2.40 drew=1 +FR 16965.99 gap= 8.35 cost= 2.42 drew=1 +FR 16974.32 gap= 8.40 cost= 2.48 drew=1 +FR 16982.65 gap= 8.33 cost= 2.47 drew=1 +FR 16990.99 gap= 8.31 cost= 2.44 drew=1 +FR 16999.32 gap= 8.20 cost= 2.32 drew=1 +FR 17007.65 gap= 8.36 cost= 2.34 drew=1 +FR 17015.99 gap= 8.31 cost= 2.32 drew=1 +FR 17024.32 gap= 8.41 cost= 2.40 drew=1 +FR 17032.65 gap= 8.25 cost= 2.32 drew=1 +FR 17040.99 gap= 8.49 cost= 2.47 drew=1 +FR 17049.32 gap= 8.18 cost= 2.32 drew=1 +FR 17057.65 gap= 8.34 cost= 2.32 drew=1 +FR 17065.98 gap= 8.40 cost= 2.39 drew=1 +FR 17074.32 gap= 8.34 cost= 2.40 drew=1 +FR 17082.65 gap= 8.39 cost= 2.46 drew=1 +FR 17090.98 gap= 8.26 cost= 2.39 drew=1 +FR 17099.32 gap= 8.26 cost= 2.31 drew=1 +FR 17107.65 gap= 8.35 cost= 2.33 drew=1 +FR 17115.98 gap= 8.29 cost= 2.29 drew=1 +FR 17124.31 gap= 8.33 cost= 2.29 drew=1 +FR 17132.65 gap= 8.32 cost= 2.28 drew=1 +FR 17140.98 gap= 9.10 cost= 3.05 drew=1 +FR 17149.31 gap= 7.69 cost= 2.40 drew=1 +FR 17157.65 gap= 8.37 cost= 2.44 drew=1 +FR 17165.98 gap= 8.59 cost= 2.69 drew=1 +FR 17174.31 gap= 8.48 cost= 2.84 drew=1 +FR 17182.65 gap= 8.31 cost= 2.81 drew=1 +FR 17190.98 gap= 8.22 cost= 2.70 drew=1 +FR 17199.31 gap= 8.28 cost= 2.65 drew=1 +FR 17207.65 gap= 8.39 cost= 2.71 drew=1 +FR 17215.98 gap= 8.35 cost= 2.73 drew=1 +FR 17224.15 gap= 8.35 cost= 2.91 drew=1 +FR 17232.64 gap= 7.85 cost= 2.26 drew=1 +FR 17240.98 gap= 9.26 cost= 3.20 drew=1 +FR 17249.31 gap= 7.94 cost= 2.80 drew=1 +FR 17257.64 gap= 8.28 cost= 2.75 drew=1 +FR 17265.98 gap= 8.66 cost= 3.08 drew=1 +FR 17274.31 gap= 8.12 cost= 2.86 drew=1 +FR 17282.64 gap= 8.33 cost= 2.86 drew=1 +FR 17290.97 gap= 8.22 cost= 2.75 drew=1 +FR 17299.31 gap= 8.26 cost= 2.67 drew=1 +FR 17307.64 gap= 8.36 cost= 2.70 drew=1 +FR 17315.97 gap= 8.35 cost= 2.72 drew=1 +FR 17324.31 gap= 8.28 cost= 2.66 drew=1 +FR 17332.64 gap= 8.58 cost= 2.90 drew=1 +FR 17340.97 gap= 8.17 cost= 2.75 drew=1 +FR 17349.31 gap= 8.58 cost= 3.00 drew=1 +FR 17357.64 gap= 8.28 cost= 2.94 drew=1 +FR 17365.97 gap= 7.89 cost= 2.49 drew=1 +FR 17374.31 gap= 8.79 cost= 2.96 drew=1 +FR 17382.64 gap= 8.19 cost= 2.81 drew=1 +FR 17390.97 gap= 8.47 cost= 2.95 drew=1 +FR 17399.30 gap= 8.06 cost= 2.67 drew=1 +FR 17407.64 gap= 8.40 cost= 2.74 drew=1 +FR 17415.97 gap= 8.33 cost= 2.74 drew=1 +FR 17424.30 gap= 8.27 cost= 2.68 drew=1 +FR 17432.64 gap= 8.39 cost= 2.73 drew=1 +FR 17440.97 gap= 8.51 cost= 2.91 drew=1 +FR 17449.30 gap= 8.08 cost= 2.66 drew=1 +FR 17457.63 gap= 8.39 cost= 2.72 drew=1 +FR 17465.97 gap= 8.32 cost= 2.70 drew=1 +FR 17474.30 gap= 8.35 cost= 2.72 drew=1 +FR 17482.63 gap= 8.61 cost= 2.99 drew=1 +FR 17490.97 gap= 7.97 cost= 2.63 drew=1 +FR 17499.30 gap= 8.16 cost= 2.46 drew=1 +FR 17507.63 gap= 8.18 cost= 2.30 drew=1 +FR 17515.97 gap= 8.31 cost= 2.27 drew=1 +FR 17524.30 gap= 8.43 cost= 2.37 drew=1 +FR 17532.63 gap= 8.80 cost= 2.83 drew=1 +FR 17540.97 gap= 7.97 cost= 2.47 drew=1 +FR 17549.30 gap= 8.36 cost= 2.50 drew=1 +FR 17557.63 gap= 8.33 cost= 2.49 drew=1 +FR 17565.96 gap= 8.30 cost= 2.46 drew=1 +FR 17574.30 gap= 8.29 cost= 2.42 drew=1 +FR 17582.63 gap= 8.42 cost= 2.50 drew=1 +FR 17590.96 gap= 7.93 cost= 2.10 drew=1 +FR 17599.30 gap= 8.52 cost= 2.29 drew=1 +FR 17607.63 gap= 8.47 cost= 2.42 drew=1 +FR 17615.96 gap= 7.94 cost= 2.03 drew=1 +FR 17624.29 gap= 8.65 cost= 2.35 drew=1 +FR 17632.63 gap= 8.36 cost= 2.37 drew=1 +FR 17640.96 gap= 8.39 cost= 2.43 drew=1 +FR 17649.29 gap= 8.04 cost= 2.13 drew=1 +FR 17657.63 gap= 8.57 cost= 2.37 drew=1 +FR 17665.96 gap= 8.32 cost= 2.35 drew=1 +FR 17674.29 gap= 8.55 cost= 2.57 drew=1 +FR 17682.63 gap= 8.21 cost= 2.45 drew=1 +FR 17690.96 gap= 8.29 cost= 2.42 drew=1 +FR 17699.29 gap= 8.34 cost= 2.42 drew=1 +FR 17707.63 gap= 8.36 cost= 2.44 drew=1 +FR 17715.96 gap= 8.27 cost= 2.38 drew=1 +FR 17724.29 gap= 8.32 cost= 2.37 drew=1 +FR 17732.62 gap= 8.25 cost= 2.29 drew=1 +FR 17740.96 gap= 8.42 cost= 2.37 drew=1 +FR 17749.29 gap= 8.00 cost= 2.04 drew=1 +FR 17757.62 gap= 8.73 cost= 2.44 drew=1 +FR 17765.96 gap= 8.30 cost= 2.41 drew=1 +FR 17774.29 gap= 8.24 cost= 2.31 drew=1 +FR 17782.62 gap= 8.43 cost= 2.41 drew=1 +FR 17790.96 gap= 8.32 cost= 2.40 drew=1 +FR 17799.29 gap= 8.34 cost= 2.40 drew=1 +FR 17807.62 gap= 8.26 cost= 2.33 drew=1 +FR 17815.95 gap= 8.30 cost= 2.30 drew=1 +FR 17824.29 gap= 8.37 cost= 2.33 drew=1 +FR 17832.62 gap= 8.32 cost= 2.32 drew=1 +FR 17840.95 gap= 8.42 cost= 2.40 drew=1 +FR 17849.29 gap= 8.48 cost= 2.55 drew=1 +FR 17857.62 gap= 8.31 cost= 2.53 drew=1 +FR 17865.95 gap= 8.31 cost= 2.51 drew=1 +FR 17874.28 gap= 8.32 cost= 2.49 drew=1 +FR 17882.62 gap= 8.93 cost= 3.09 drew=1 +FR 17890.95 gap= 7.49 cost= 2.25 drew=1 +FR 17899.30 gap= 8.55 cost= 2.44 drew=1 +FR 17907.62 gap= 8.35 cost= 2.47 drew=1 +FR 17915.95 gap= 8.22 cost= 2.36 drew=1 +FR 17924.28 gap= 8.63 cost= 2.66 drew=1 +FR 17932.62 gap= 8.20 cost= 2.52 drew=1 +FR 17940.95 gap= 8.27 cost= 2.46 drew=1 +FR 17949.28 gap= 8.32 cost= 2.44 drew=1 +FR 17957.62 gap= 8.31 cost= 2.42 drew=1 +FR 17965.95 gap= 8.44 cost= 2.52 drew=1 +FR 17974.28 gap= 8.45 cost= 2.64 drew=1 +FR 17982.62 gap= 8.77 cost= 3.08 drew=1 +FR 17990.95 gap= 8.03 cost= 2.77 drew=1 +FR 17999.28 gap= 8.24 cost= 2.68 drew=1 +FR 18007.61 gap= 8.33 cost= 2.67 drew=1 +FR 18015.95 gap= 8.37 cost= 2.71 drew=1 +FR 18024.28 gap= 8.31 cost= 2.68 drew=1 +FR 18032.61 gap= 8.02 cost= 2.37 drew=1 +FR 18040.94 gap= 9.00 cost= 3.03 drew=1 +FR 18049.28 gap= 7.55 cost= 2.25 drew=1 +FR 18057.61 gap= 8.40 cost= 2.32 drew=1 +FR 18065.94 gap= 8.48 cost= 2.47 drew=1 +FR 18074.28 gap= 8.40 cost= 2.54 drew=1 +FR 18082.61 gap= 8.27 cost= 2.47 drew=1 +FR 18090.94 gap= 8.36 cost= 2.49 drew=1 +FR 18099.28 gap= 8.24 cost= 2.40 drew=1 +FR 18107.61 gap= 8.34 cost= 2.41 drew=1 +FR 18115.94 gap= 8.23 cost= 2.31 drew=1 +FR 18124.28 gap= 8.40 cost= 2.37 drew=1 +FR 18132.61 gap= 8.32 cost= 2.36 drew=1 +FR 18140.94 gap= 8.51 cost= 2.54 drew=1 +FR 18149.28 gap= 8.35 cost= 2.55 drew=1 +FR 18157.61 gap= 8.43 cost= 2.65 drew=1 +FR 18165.94 gap= 8.17 cost= 2.48 drew=1 +FR 18174.27 gap= 8.21 cost= 2.36 drew=1 +FR 18182.61 gap= 8.41 cost= 2.44 drew=1 +FR 18190.94 gap= 8.33 cost= 2.44 drew=1 +FR 18199.27 gap= 8.17 cost= 2.28 drew=1 +FR 18207.61 gap= 8.39 cost= 2.33 drew=1 +FR 18215.94 gap= 8.40 cost= 2.40 drew=1 +FR 18224.27 gap= 8.27 cost= 2.34 drew=1 +FR 18232.60 gap= 8.39 cost= 2.39 drew=1 +FR 18240.94 gap= 8.39 cost= 2.45 drew=1 +FR 18249.27 gap= 8.32 cost= 2.44 drew=1 +FR 18257.60 gap= 8.42 cost= 2.52 drew=1 +FR 18265.94 gap= 8.29 cost= 2.48 drew=1 +FR 18274.27 gap= 8.40 cost= 2.54 drew=1 +FR 18282.60 gap= 8.49 cost= 2.70 drew=1 +FR 18290.94 gap= 8.10 cost= 2.47 drew=1 +FR 18299.30 gap= 8.29 cost= 2.39 drew=1 +FR 18307.60 gap= 8.25 cost= 2.34 drew=1 +FR 18315.93 gap= 8.32 cost= 2.33 drew=1 +FR 18324.27 gap= 8.38 cost= 2.37 drew=1 +FR 18332.60 gap= 8.30 cost= 2.33 drew=1 +FR 18340.93 gap= 8.40 cost= 2.40 drew=1 +FR 18349.27 gap= 8.27 cost= 2.34 drew=1 +FR 18357.60 gap= 9.06 cost= 3.07 drew=1 +FR 18365.93 gap= 8.15 cost= 2.89 drew=1 +FR 18374.27 gap= 8.46 cost= 3.01 drew=1 +FR 18382.60 gap= 8.11 cost= 2.79 drew=1 +FR 18390.93 gap= 8.27 cost= 2.72 drew=1 +FR 18399.26 gap= 8.29 cost= 2.68 drew=1 +FR 18407.60 gap= 7.98 cost= 2.32 drew=1 +FR 18415.93 gap= 8.30 cost= 2.29 drew=1 +FR 18424.26 gap= 8.39 cost= 2.34 drew=1 +FR 18432.60 gap= 8.33 cost= 2.34 drew=1 +FR 18440.93 gap= 8.42 cost= 2.43 drew=1 +FR 18449.26 gap= 7.73 cost= 1.83 drew=1 +FR 18457.60 gap= 8.64 cost= 2.14 drew=1 +FR 18465.93 gap= 8.67 cost= 2.48 drew=1 +FR 18474.26 gap= 8.16 cost= 2.30 drew=1 +FR 18482.59 gap= 8.43 cost= 2.40 drew=1 +FR 18490.93 gap= 8.21 cost= 2.27 drew=1 +FR 18499.29 gap= 8.42 cost= 2.32 drew=1 +FR 18507.59 gap= 8.37 cost= 2.40 drew=1 +FR 18515.93 gap= 8.23 cost= 2.30 drew=1 +FR 18524.26 gap= 8.44 cost= 2.41 drew=1 +FR 18532.59 gap= 8.15 cost= 2.22 drew=1 +FR 18540.92 gap= 8.61 cost= 2.50 drew=1 +FR 18549.26 gap= 8.15 cost= 2.31 drew=1 +FR 18557.59 gap= 8.64 cost= 2.62 drew=1 +FR 18565.92 gap= 8.27 cost= 2.56 drew=1 +FR 18574.26 gap= 8.26 cost= 2.49 drew=1 +FR 18582.59 gap= 8.34 cost= 2.49 drew=1 +FR 18590.92 gap= 8.30 cost= 2.46 drew=1 +FR 18599.26 gap= 8.24 cost= 2.37 drew=1 +FR 18607.59 gap= 8.34 cost= 2.38 drew=1 +FR 18615.92 gap= 8.27 cost= 2.32 drew=1 +FR 18624.26 gap= 8.31 cost= 2.29 drew=1 +FR 18632.59 gap= 8.36 cost= 2.32 drew=1 +FR 18640.92 gap= 8.28 cost= 2.27 drew=1 +FR 18649.25 gap= 8.41 cost= 2.34 drew=1 +FR 18657.59 gap= 8.35 cost= 2.36 drew=1 +FR 18665.92 gap= 8.32 cost= 2.35 drew=1 +FR 18674.25 gap= 8.33 cost= 2.35 drew=1 +FR 18682.59 gap= 8.36 cost= 2.38 drew=1 +FR 18690.92 gap= 8.33 cost= 2.38 drew=1 +FR 18699.25 gap= 8.20 cost= 2.25 drew=1 +FR 18707.58 gap= 8.41 cost= 2.33 drew=1 +FR 18715.92 gap= 8.38 cost= 2.38 drew=1 +FR 18724.25 gap= 8.22 cost= 2.26 drew=1 +FR 18732.58 gap= 8.38 cost= 2.31 drew=1 +FR 18740.92 gap= 8.36 cost= 2.34 drew=1 +FR 18749.25 gap= 8.28 cost= 2.29 drew=1 +FR 18757.58 gap= 7.95 cost= 1.91 drew=1 +FR 18765.92 gap= 8.82 cost= 2.40 drew=1 +FR 18774.25 gap= 8.53 cost= 2.59 drew=1 +FR 18782.58 gap= 8.28 cost= 2.53 drew=1 +FR 18790.92 gap= 8.32 cost= 2.52 drew=1 +FR 18799.26 gap= 8.49 cost= 2.67 drew=1 +FR 18807.58 gap= 8.17 cost= 2.51 drew=1 +FR 18815.91 gap= 8.24 cost= 2.42 drew=1 +FR 18824.25 gap= 8.17 cost= 2.26 drew=1 +FR 18832.58 gap= 7.76 cost= 1.69 drew=1 +FR 18840.91 gap= 7.87 cost= 1.22 drew=1 +FR 18849.25 gap= 8.27 cost= 1.16 drew=1 +FR 18857.58 gap= 9.04 cost= 1.86 drew=1 +FR 18865.91 gap= 8.90 cost= 2.43 drew=1 +FR 18874.24 gap= 8.26 cost= 2.36 drew=1 +FR 18882.58 gap= 8.35 cost= 2.38 drew=1 +FR 18890.91 gap= 7.95 cost= 1.99 drew=1 +FR 18899.27 gap= 8.68 cost= 2.31 drew=1 +FR 18908.53 gap= 9.23 cost= 2.28 drew=1 +FR 18915.91 gap= 7.62 cost= 2.53 drew=1 +FR 18924.32 gap= 8.90 cost= 3.02 drew=1 +FR 18932.58 gap= 8.61 cost= 3.37 drew=1 +FR 18940.91 gap= 7.61 cost= 2.65 drew=1 +FR 18949.24 gap= 7.52 cost= 1.85 drew=1 +FR 18957.58 gap= 9.68 cost= 3.19 drew=1 +FR 18965.91 gap= 7.37 cost= 2.23 drew=1 +FR 18974.24 gap= 8.96 cost= 2.86 drew=1 +FR 18982.58 gap= 8.41 cost= 2.94 drew=1 +FR 18990.91 gap= 7.71 cost= 2.31 drew=1 +FR 18999.25 gap= 8.75 cost= 2.72 drew=1 +FR 19007.57 gap= 8.36 cost= 2.76 drew=1 +FR 19015.91 gap= 8.25 cost= 2.68 drew=1 +FR 19024.24 gap= 8.35 cost= 2.69 drew=1 +FR 19032.57 gap= 8.32 cost= 2.69 drew=1 +FR 19040.90 gap= 8.45 cost= 2.81 drew=1 +FR 19049.24 gap= 8.26 cost= 2.73 drew=1 +FR 19057.57 gap= 8.17 cost= 2.57 drew=1 +FR 19065.90 gap= 8.37 cost= 2.61 drew=1 +FR 19074.24 gap= 8.34 cost= 2.61 drew=1 +FR 19082.57 gap= 8.25 cost= 2.53 drew=1 +FR 19090.90 gap= 8.42 cost= 2.62 drew=1 +FR 19099.27 gap= 8.28 cost= 2.53 drew=1 +FR 19107.57 gap= 8.21 cost= 2.44 drew=1 +FR 19115.90 gap= 8.32 cost= 2.44 drew=1 +FR 19124.24 gap= 8.34 cost= 2.44 drew=1 +FR 19132.57 gap= 8.38 cost= 2.49 drew=1 +FR 19140.90 gap= 8.35 cost= 2.51 drew=1 +FR 19149.23 gap= 8.32 cost= 2.50 drew=1 +FR 19157.57 gap= 8.37 cost= 2.54 drew=1 +FR 19165.90 gap= 8.34 cost= 2.55 drew=1 +FR 19174.23 gap= 8.23 cost= 2.44 drew=1 +FR 19182.57 gap= 8.37 cost= 2.48 drew=1 +FR 19190.90 gap= 8.27 cost= 2.42 drew=1 +FR 19199.27 gap= 8.41 cost= 2.46 drew=1 +FR 19207.56 gap= 8.35 cost= 2.51 drew=1 +FR 19215.90 gap= 8.22 cost= 2.40 drew=1 +FR 19224.23 gap= 8.33 cost= 2.39 drew=1 +FR 19232.56 gap= 8.35 cost= 2.41 drew=1 +FR 19240.90 gap= 8.43 cost= 2.50 drew=1 +FR 19249.23 gap= 8.23 cost= 2.40 drew=1 +FR 19257.56 gap= 8.32 cost= 2.39 drew=1 +FR 19265.90 gap= 8.37 cost= 2.43 drew=1 +FR 19274.23 gap= 8.39 cost= 2.49 drew=1 +FR 19282.56 gap= 8.28 cost= 2.43 drew=1 +FR 19290.90 gap= 8.29 cost= 2.39 drew=1 +FR 19299.29 gap= 8.40 cost= 2.40 drew=1 +FR 19307.56 gap= 8.29 cost= 2.42 drew=1 +FR 19315.89 gap= 8.34 cost= 2.43 drew=1 +FR 19324.23 gap= 8.32 cost= 2.41 drew=1 +FR 19332.56 gap= 8.26 cost= 2.34 drew=1 +FR 19340.89 gap= 8.43 cost= 2.44 drew=1 +FR 19349.23 gap= 8.16 cost= 2.27 drew=1 +FR 19357.56 gap= 8.53 cost= 2.47 drew=1 +FR 19365.89 gap= 8.28 cost= 2.42 drew=1 +FR 19374.23 gap= 8.34 cost= 2.43 drew=1 +FR 19382.56 gap= 8.33 cost= 2.42 drew=1 +FR 19390.89 gap= 8.44 cost= 2.53 drew=1 +FR 19399.27 gap= 8.28 cost= 2.43 drew=1 +FR 19407.56 gap= 8.38 cost= 2.52 drew=1 +FR 19415.89 gap= 8.26 cost= 2.45 drew=1 +FR 19424.22 gap= 8.40 cost= 2.52 drew=1 +FR 19432.56 gap= 8.27 cost= 2.46 drew=1 +FR 19440.89 gap= 8.44 cost= 2.57 drew=1 +FR 19449.22 gap= 8.16 cost= 2.40 drew=1 +FR 19457.56 gap= 8.45 cost= 2.52 drew=1 +FR 19465.89 gap= 8.29 cost= 2.48 drew=1 +FR 19474.22 gap= 8.36 cost= 2.51 drew=1 +FR 19482.55 gap= 8.33 cost= 2.50 drew=1 +FR 19490.89 gap= 8.35 cost= 2.52 drew=1 +FR 19499.30 gap= 8.29 cost= 2.40 drew=1 +FR 19507.55 gap= 8.28 cost= 2.42 drew=1 +FR 19515.89 gap= 8.33 cost= 2.42 drew=1 +FR 19524.22 gap= 8.34 cost= 2.43 drew=1 +FR 19532.55 gap= 8.30 cost= 2.40 drew=1 +FR 19540.89 gap= 8.42 cost= 2.48 drew=1 +FR 19549.22 gap= 8.26 cost= 2.41 drew=1 +FR 19557.55 gap= 8.34 cost= 2.42 drew=1 +FR 19565.88 gap= 8.45 cost= 2.54 drew=1 +FR 19574.22 gap= 8.26 cost= 2.47 drew=1 +FR 19582.55 gap= 8.25 cost= 2.39 drew=1 +FR 19590.88 gap= 8.29 cost= 2.35 drew=1 +FR 19599.25 gap= 8.42 cost= 2.40 drew=1 +FR 19607.55 gap= 8.18 cost= 2.29 drew=1 +FR 19615.88 gap= 8.37 cost= 2.32 drew=1 +FR 19624.22 gap= 8.43 cost= 2.42 drew=1 +FR 19632.55 gap= 8.30 cost= 2.39 drew=1 +FR 19640.88 gap= 8.38 cost= 2.43 drew=1 +FR 19649.21 gap= 7.95 cost= 2.05 drew=1 +FR 19657.55 gap= 8.75 cost= 2.47 drew=1 +FR 19665.88 gap= 8.19 cost= 2.32 drew=1 +FR 19674.21 gap= 8.44 cost= 2.43 drew=1 +FR 19682.55 gap= 8.34 cost= 2.44 drew=1 +FR 19690.88 gap= 7.92 cost= 2.03 drew=1 +FR 19699.32 gap= 8.85 cost= 2.44 drew=1 +FR 19707.55 gap= 8.18 cost= 2.40 drew=1 +FR 19715.88 gap= 8.28 cost= 2.34 drew=1 +FR 19724.21 gap= 8.39 cost= 2.40 drew=1 +FR 19732.54 gap= 8.39 cost= 2.45 drew=1 +FR 19740.88 gap= 8.36 cost= 2.48 drew=1 +FR 19749.21 gap= 7.96 cost= 2.10 drew=1 +FR 19757.54 gap= 8.76 cost= 2.53 drew=1 +FR 19765.88 gap= 8.25 cost= 2.46 drew=1 +FR 19774.21 gap= 8.31 cost= 2.43 drew=1 +FR 19782.54 gap= 8.50 cost= 2.60 drew=1 +FR 19790.88 gap= 8.14 cost= 2.40 drew=1 +FR 19799.28 gap= 8.53 cost= 2.52 drew=1 +FR 19807.54 gap= 8.15 cost= 2.41 drew=1 +FR 19815.87 gap= 8.32 cost= 2.40 drew=1 +FR 19824.21 gap= 8.30 cost= 2.37 drew=1 +FR 19832.54 gap= 8.27 cost= 2.31 drew=1 +FR 19840.87 gap= 8.49 cost= 2.47 drew=1 +FR 19849.21 gap= 8.36 cost= 2.49 drew=1 +FR 19857.54 gap= 8.26 cost= 2.42 drew=1 +FR 19865.87 gap= 8.32 cost= 2.42 drew=1 +FR 19874.21 gap= 8.29 cost= 2.37 drew=1 +FR 19882.54 gap= 8.37 cost= 2.41 drew=1 +FR 19890.87 gap= 8.43 cost= 2.51 drew=1 +FR 19899.28 gap= 8.29 cost= 2.39 drew=1 +FR 19907.54 gap= 8.17 cost= 2.31 drew=1 +FR 19915.87 gap= 8.31 cost= 2.28 drew=1 +FR 19924.20 gap= 8.39 cost= 2.34 drew=1 +FR 19932.54 gap= 8.42 cost= 2.42 drew=1 +FR 19940.87 gap= 8.32 cost= 2.41 drew=1 +FR 19949.20 gap= 8.32 cost= 2.39 drew=1 +FR 19957.53 gap= 8.32 cost= 2.38 drew=1 +FR 19965.87 gap= 8.65 cost= 2.70 drew=1 +FR 19974.20 gap= 8.15 cost= 2.52 drew=1 +FR 19982.53 gap= 8.25 cost= 2.44 drew=1 +FR 19990.87 gap= 8.99 cost= 3.09 drew=1 +FR 19999.32 gap= 8.04 cost= 2.68 drew=1 +FR 20007.53 gap= 8.11 cost= 2.58 drew=1 +FR 20015.87 gap= 8.17 cost= 2.42 drew=1 +FR 20024.20 gap= 8.43 cost= 2.51 drew=1 +FR 20032.53 gap= 8.27 cost= 2.45 drew=1 +FR 20040.87 gap= 8.35 cost= 2.46 drew=1 +FR 20049.20 gap= 8.43 cost= 2.56 drew=1 +FR 20057.53 gap= 8.28 cost= 2.51 drew=1 +FR 20065.86 gap= 8.38 cost= 2.56 drew=1 +FR 20074.20 gap= 8.28 cost= 2.50 drew=1 +FR 20082.53 gap= 8.43 cost= 2.61 drew=1 +FR 20090.86 gap= 8.26 cost= 2.53 drew=1 +FR 20099.26 gap= 8.28 cost= 2.42 drew=1 +FR 20107.53 gap= 8.32 cost= 2.46 drew=1 +FR 20115.86 gap= 8.28 cost= 2.40 drew=1 +FR 20124.19 gap= 8.37 cost= 2.45 drew=1 +FR 20132.53 gap= 8.29 cost= 2.40 drew=1 +FR 20140.86 gap= 8.48 cost= 2.55 drew=1 +FR 20149.19 gap= 8.26 cost= 2.48 drew=1 +FR 20157.53 gap= 8.36 cost= 2.50 drew=1 +FR 20165.86 gap= 8.36 cost= 2.53 drew=1 +FR 20174.19 gap= 8.27 cost= 2.47 drew=1 +FR 20182.53 gap= 8.39 cost= 2.53 drew=1 +FR 20190.86 gap= 8.28 cost= 2.47 drew=1 +FR 20199.19 gap= 8.56 cost= 2.70 drew=1 +FR 20207.53 gap= 8.16 cost= 2.52 drew=1 +FR 20215.86 gap= 8.48 cost= 2.66 drew=1 +FR 20224.19 gap= 8.24 cost= 2.57 drew=1 +FR 20232.52 gap= 8.61 cost= 2.85 drew=1 +FR 20240.86 gap= 8.17 cost= 2.69 drew=1 +FR 20249.19 gap= 8.16 cost= 2.52 drew=1 +FR 20257.52 gap= 8.44 cost= 2.62 drew=1 +FR 20265.86 gap= 8.19 cost= 2.48 drew=1 +FR 20274.19 gap= 8.40 cost= 2.55 drew=1 +FR 20282.52 gap= 8.33 cost= 2.55 drew=1 +FR 20290.85 gap= 8.48 cost= 2.70 drew=1 +FR 20299.19 gap= 8.05 cost= 2.41 drew=1 +FR 20307.52 gap= 8.34 cost= 2.42 drew=1 +FR 20315.85 gap= 8.22 cost= 2.31 drew=1 +FR 20324.19 gap= 8.41 cost= 2.38 drew=1 +FR 20332.52 gap= 8.47 cost= 2.52 drew=1 +FR 20340.85 gap= 8.30 cost= 2.49 drew=1 +FR 20349.19 gap= 7.99 cost= 2.14 drew=1 +FR 20357.52 gap= 8.67 cost= 2.48 drew=1 +FR 20365.85 gap= 8.38 cost= 2.52 drew=1 +FR 20374.19 gap= 8.39 cost= 2.57 drew=1 +FR 20382.52 gap= 8.18 cost= 2.42 drew=1 +FR 20390.85 gap= 8.24 cost= 2.33 drew=1 +FR 20399.18 gap= 8.48 cost= 2.48 drew=1 +FR 20407.52 gap= 8.29 cost= 2.43 drew=1 +FR 20415.85 gap= 8.27 cost= 2.38 drew=1 +FR 20424.18 gap= 8.40 cost= 2.44 drew=1 +FR 20432.52 gap= 8.26 cost= 2.37 drew=1 +FR 20440.85 gap= 8.45 cost= 2.48 drew=1 +FR 20449.18 gap= 8.16 cost= 2.31 drew=1 +FR 20457.51 gap= 8.45 cost= 2.42 drew=1 +FR 20465.85 gap= 8.43 cost= 2.52 drew=1 +FR 20474.18 gap= 8.27 cost= 2.46 drew=1 +FR 20482.51 gap= 9.00 cost= 3.12 drew=1 +FR 20490.85 gap= 8.04 cost= 2.83 drew=1 +FR 20499.18 gap= 8.49 cost= 2.99 drew=1 +FR 20507.51 gap= 8.12 cost= 2.77 drew=1 +FR 20515.85 gap= 8.34 cost= 2.77 drew=1 +FR 20524.18 gap= 8.27 cost= 2.71 drew=1 +FR 20532.51 gap= 8.72 cost= 3.10 drew=1 +FR 20540.85 gap= 8.36 cost= 3.12 drew=1 +FR 20549.18 gap= 8.20 cost= 2.99 drew=1 +FR 20557.51 gap= 8.31 cost= 2.97 drew=1 +FR 20565.84 gap= 8.10 cost= 2.74 drew=1 +FR 20574.18 gap= 8.62 cost= 3.02 drew=1 +FR 20582.51 gap= 8.10 cost= 2.79 drew=1 +FR 20590.84 gap= 8.27 cost= 2.73 drew=1 +FR 20599.18 gap= 8.31 cost= 2.70 drew=1 +FR 20607.51 gap= 8.37 cost= 2.74 drew=1 +FR 20615.84 gap= 8.38 cost= 2.79 drew=1 +FR 20624.17 gap= 8.49 cost= 2.94 drew=1 +FR 20632.51 gap= 8.41 cost= 3.02 drew=1 +FR 20640.84 gap= 8.35 cost= 3.04 drew=1 +FR 20649.17 gap= 8.28 cost= 2.99 drew=1 +FR 20657.51 gap= 8.13 cost= 2.78 drew=1 +FR 20665.84 gap= 8.36 cost= 2.81 drew=1 +FR 20674.17 gap= 8.43 cost= 2.91 drew=1 +FR 20682.51 gap= 7.85 cost= 2.42 drew=1 +FR 20690.89 gap= 8.71 cost= 2.75 drew=1 +FR 20699.17 gap= 8.56 cost= 3.03 drew=1 +FR 20707.51 gap= 7.98 cost= 2.68 drew=1 +FR 20715.84 gap= 8.38 cost= 2.73 drew=1 +FR 20724.17 gap= 8.28 cost= 2.68 drew=1 +FR 20732.51 gap= 8.56 cost= 2.90 drew=1 +FR 20740.84 gap= 8.16 cost= 2.73 drew=1 +FR 20749.17 gap= 8.31 cost= 2.70 drew=1 +FR 20757.50 gap= 8.38 cost= 2.75 drew=1 +FR 20765.84 gap= 8.44 cost= 2.86 drew=1 +FR 20774.17 gap= 7.91 cost= 2.43 drew=1 +FR 20782.50 gap= 8.24 cost= 2.34 drew=1 +FR 20790.83 gap= 8.35 cost= 2.36 drew=1 +FR 20799.17 gap= 8.27 cost= 2.29 drew=1 +FR 20807.50 gap= 8.38 cost= 2.34 drew=1 +FR 20815.83 gap= 8.30 cost= 2.31 drew=1 +FR 20824.17 gap= 8.32 cost= 2.30 drew=1 +FR 20832.50 gap= 8.36 cost= 2.32 drew=1 +FR 20840.83 gap= 8.29 cost= 2.28 drew=1 +FR 20849.17 gap= 9.01 cost= 2.96 drew=1 +FR 20857.50 gap= 7.96 cost= 2.58 drew=1 +FR 20865.83 gap= 8.10 cost= 2.35 drew=1 +FR 20874.17 gap= 8.39 cost= 2.40 drew=1 +FR 20882.50 gap= 8.66 cost= 2.73 drew=1 +FR 20890.83 gap= 8.05 cost= 2.44 drew=1 +FR 20899.16 gap= 8.65 cost= 2.76 drew=1 +FR 20907.50 gap= 8.62 cost= 3.04 drew=1 +FR 20915.83 gap= 8.38 cost= 3.10 drew=1 +FR 20924.16 gap= 8.14 cost= 2.90 drew=1 +FR 20932.50 gap= 8.47 cost= 3.04 drew=1 +FR 20940.83 gap= 8.17 cost= 2.87 drew=1 +FR 20949.16 gap= 7.95 cost= 2.49 drew=1 +FR 20957.49 gap= 8.83 cost= 2.99 drew=1 +FR 20965.83 gap= 7.87 cost= 2.53 drew=1 +FR 20974.16 gap= 8.62 cost= 2.81 drew=1 +FR 20982.49 gap= 8.00 cost= 2.48 drew=1 +FR 20990.83 gap= 8.60 cost= 2.74 drew=1 +FR 20999.16 gap= 8.31 cost= 2.73 drew=1 +FR 21007.49 gap= 8.25 cost= 2.64 drew=1 +FR 21015.83 gap= 8.60 cost= 2.91 drew=1 +FR 21024.16 gap= 8.34 cost= 2.91 drew=1 +FR 21032.49 gap= 8.44 cost= 3.01 drew=1 +FR 21040.83 gap= 8.08 cost= 2.76 drew=1 +FR 21049.16 gap= 8.69 cost= 3.12 drew=1 +FR 21057.49 gap= 8.18 cost= 2.96 drew=1 +FR 21065.82 gap= 8.20 cost= 2.83 drew=1 +FR 21074.16 gap= 8.26 cost= 2.76 drew=1 +FR 21082.49 gap= 8.36 cost= 2.78 drew=1 +FR 21090.82 gap= 8.08 cost= 2.52 drew=1 +FR 21099.16 gap= 8.28 cost= 2.47 drew=1 +FR 21107.49 gap= 8.26 cost= 2.40 drew=1 +FR 21115.82 gap= 8.33 cost= 2.39 drew=1 +FR 21124.15 gap= 8.29 cost= 2.35 drew=1 +FR 21132.49 gap= 8.36 cost= 2.38 drew=1 +FR 21140.82 gap= 8.40 cost= 2.45 drew=1 +FR 21149.15 gap= 7.98 cost= 2.09 drew=1 +FR 21157.49 gap= 8.70 cost= 2.46 drew=1 +FR 21165.82 gap= 8.71 cost= 2.84 drew=1 +FR 21174.15 gap= 7.91 cost= 2.42 drew=1 +FR 21182.49 gap= 8.68 cost= 2.77 drew=1 +FR 21190.82 gap= 7.96 cost= 2.39 drew=1 +FR 21199.15 gap= 8.33 cost= 2.39 drew=1 +FR 21207.49 gap= 8.24 cost= 2.29 drew=1 +FR 21215.82 gap= 8.22 cost= 2.18 drew=1 +FR 21224.15 gap= 8.61 cost= 2.46 drew=1 +FR 21232.48 gap= 8.28 cost= 2.41 drew=1 +FR 21240.82 gap= 8.46 cost= 2.54 drew=1 +FR 21249.15 gap= 7.82 cost= 2.03 drew=1 +FR 21257.48 gap= 8.80 cost= 2.50 drew=1 +FR 21265.82 gap= 8.35 cost= 2.51 drew=1 +FR 21274.15 gap= 8.23 cost= 2.41 drew=1 +FR 21282.48 gap= 8.30 cost= 2.37 drew=1 +FR 21290.81 gap= 8.36 cost= 2.39 drew=1 +FR 21299.15 gap= 8.41 cost= 2.47 drew=1 +FR 21307.48 gap= 8.19 cost= 2.33 drew=1 +FR 21315.81 gap= 8.27 cost= 2.27 drew=1 +FR 21324.15 gap= 8.48 cost= 2.42 drew=1 +FR 21332.48 gap= 8.31 cost= 2.39 drew=1 +FR 21340.81 gap= 8.30 cost= 2.36 drew=1 +FR 21349.15 gap= 7.91 cost= 1.93 drew=1 +FR 21357.48 gap= 8.87 cost= 2.47 drew=1 +FR 21365.81 gap= 8.26 cost= 2.39 drew=1 +FR 21374.15 gap= 8.12 cost= 2.19 drew=1 +FR 21382.48 gap= 8.84 cost= 2.69 drew=1 +FR 21390.81 gap= 7.69 cost= 2.05 drew=1 +FR 21399.14 gap= 8.82 cost= 2.54 drew=1 +FR 21407.48 gap= 8.37 cost= 2.59 drew=1 +FR 21415.81 gap= 8.21 cost= 2.47 drew=1 +FR 21424.14 gap= 8.29 cost= 2.42 drew=1 +FR 21432.48 gap= 8.38 cost= 2.47 drew=1 +FR 21440.81 gap= 8.37 cost= 2.50 drew=1 +FR 21449.14 gap= 8.33 cost= 2.50 drew=1 +FR 21457.47 gap= 8.52 cost= 2.68 drew=1 +FR 21465.81 gap= 8.67 cost= 3.02 drew=1 +FR 21474.14 gap= 7.79 cost= 2.48 drew=1 +FR 21482.47 gap= 8.33 cost= 2.47 drew=1 +FR 21490.81 gap= 8.39 cost= 2.52 drew=1 +FR 21499.14 gap= 8.39 cost= 2.58 drew=1 +FR 21507.47 gap= 8.24 cost= 2.49 drew=1 +FR 21515.81 gap= 8.23 cost= 2.39 drew=1 +FR 21524.14 gap= 8.52 cost= 2.58 drew=1 +FR 21532.47 gap= 8.31 cost= 2.56 drew=1 +FR 21540.81 gap= 8.49 cost= 2.71 drew=1 +FR 21549.14 gap= 7.92 cost= 2.30 drew=1 +FR 21557.47 gap= 8.55 cost= 2.52 drew=1 +FR 21565.80 gap= 8.32 cost= 2.50 drew=1 +FR 21574.14 gap= 8.31 cost= 2.48 drew=1 +FR 21582.47 gap= 8.35 cost= 2.49 drew=1 +FR 21590.80 gap= 8.27 cost= 2.43 drew=1 +FR 21599.14 gap= 8.37 cost= 2.47 drew=1 +FR 21607.47 gap= 8.40 cost= 2.53 drew=1 +FR 21615.80 gap= 7.83 cost= 2.04 drew=1 +FR 21624.13 gap= 8.64 cost= 2.35 drew=1 +FR 21632.47 gap= 8.33 cost= 2.35 drew=1 +FR 21640.80 gap= 8.30 cost= 2.32 drew=1 +FR 21649.13 gap= 8.16 cost= 2.15 drew=1 +FR 21657.47 gap= 8.74 cost= 2.56 drew=1 +FR 21665.80 gap= 8.16 cost= 2.39 drew=1 +FR 21674.13 gap= 8.04 cost= 2.10 drew=1 +FR 21682.47 gap= 8.34 cost= 2.11 drew=1 +FR 21690.80 gap= 8.63 cost= 2.40 drew=1 +FR 21699.13 gap= 7.99 cost= 2.06 drew=1 +FR 21707.47 gap= 8.60 cost= 2.33 drew=1 +FR 21715.80 gap= 8.09 cost= 2.09 drew=1 +FR 21724.13 gap= 8.31 cost= 2.06 drew=1 +FR 21732.46 gap= 8.34 cost= 2.07 drew=1 +FR 21740.80 gap= 8.72 cost= 2.45 drew=1 +FR 21749.13 gap= 8.00 cost= 2.12 drew=1 +FR 21757.46 gap= 8.64 cost= 2.43 drew=1 +FR 21765.80 gap= 8.23 cost= 2.33 drew=1 +FR 21774.13 gap= 8.10 cost= 2.10 drew=1 +FR 21782.46 gap= 8.67 cost= 2.43 drew=1 +FR 21790.79 gap= 7.99 cost= 2.09 drew=1 +FR 21799.13 gap= 8.30 cost= 2.05 drew=1 +FR 21807.46 gap= 8.51 cost= 2.23 drew=1 +FR 21815.79 gap= 8.42 cost= 2.32 drew=1 +FR 21824.13 gap= 8.01 cost= 1.99 drew=1 +FR 21832.46 gap= 8.36 cost= 2.02 drew=1 +FR 21840.79 gap= 8.69 cost= 2.37 drew=1 +FR 21849.13 gap= 8.00 cost= 2.04 drew=1 +FR 21857.46 gap= 8.62 cost= 2.33 drew=1 +FR 21865.79 gap= 8.31 cost= 2.30 drew=1 +FR 21874.12 gap= 8.45 cost= 2.42 drew=1 +FR 21882.46 gap= 8.18 cost= 2.26 drew=1 +FR 21890.79 gap= 8.49 cost= 2.42 drew=1 +FR 21899.12 gap= 8.77 cost= 2.86 drew=1 +FR 21907.46 gap= 7.74 cost= 2.27 drew=1 +FR 21915.79 gap= 8.37 cost= 2.31 drew=1 +FR 21924.12 gap= 8.32 cost= 2.30 drew=1 +FR 21932.46 gap= 8.30 cost= 2.27 drew=1 +FR 21940.79 gap= 8.29 cost= 2.23 drew=1 +FR 21949.12 gap= 8.08 cost= 1.98 drew=1 +FR 21957.46 gap= 8.65 cost= 2.29 drew=1 +FR 21965.79 gap= 8.35 cost= 2.31 drew=1 +FR 21974.12 gap= 8.27 cost= 2.25 drew=1 +FR 21982.45 gap= 8.41 cost= 2.33 drew=1 +FR 21990.79 gap= 8.35 cost= 2.35 drew=1 +FR 21999.12 gap= 8.18 cost= 2.19 drew=1 +FR 22007.47 gap= 8.59 cost= 2.43 drew=1 +FR 22015.79 gap= 8.25 cost= 2.36 drew=1 +FR 22024.12 gap= 8.36 cost= 2.39 drew=1 +FR 22032.45 gap= 8.38 cost= 2.43 drew=1 +FR 22040.79 gap= 8.29 cost= 2.38 drew=1 +FR 22049.12 gap= 8.20 cost= 2.26 drew=1 +FR 22057.45 gap= 8.50 cost= 2.42 drew=1 +FR 22065.78 gap= 8.40 cost= 2.49 drew=1 +FR 22074.12 gap= 8.33 cost= 2.49 drew=1 +FR 22082.45 gap= 8.93 cost= 3.09 drew=1 +FR 22093.22 gap= 10.00 cost= 2.32 drew=1 +FR 22099.12 gap= 6.24 cost= 2.66 drew=1 +FR 22107.45 gap= 8.12 cost= 2.45 drew=1 +FR 22115.78 gap= 8.29 cost= 2.40 drew=1 +FR 22124.12 gap= 8.42 cost= 2.49 drew=1 +FR 22132.45 gap= 7.94 cost= 2.09 drew=1 +FR 22140.78 gap= 8.40 cost= 2.16 drew=1 +FR 22149.11 gap= 8.57 cost= 2.39 drew=1 +FR 22157.45 gap= 8.64 cost= 2.70 drew=1 +FR 22165.78 gap= 8.13 cost= 2.50 drew=1 +FR 22174.11 gap= 8.35 cost= 2.51 drew=1 +FR 22182.45 gap= 8.47 cost= 2.65 drew=1 +FR 22190.78 gap= 8.26 cost= 2.57 drew=1 +FR 22199.11 gap= 8.22 cost= 2.46 drew=1 +FR 22207.44 gap= 8.28 cost= 2.40 drew=1 +FR 22215.78 gap= 8.44 cost= 2.51 drew=1 +FR 22224.11 gap= 8.28 cost= 2.45 drew=1 +FR 22232.44 gap= 8.34 cost= 2.46 drew=1 +FR 22240.78 gap= 8.44 cost= 2.57 drew=1 +FR 22249.11 gap= 7.96 cost= 2.19 drew=1 +FR 22257.44 gap= 8.68 cost= 2.54 drew=1 +FR 22265.78 gap= 8.45 cost= 2.66 drew=1 +FR 22274.11 gap= 8.13 cost= 2.46 drew=1 +FR 22282.44 gap= 8.29 cost= 2.42 drew=1 +FR 22290.78 gap= 8.36 cost= 2.44 drew=1 +FR 22299.11 gap= 8.30 cost= 2.41 drew=1 +FR 22307.44 gap= 8.35 cost= 2.42 drew=1 +FR 22315.77 gap= 8.33 cost= 2.42 drew=1 +FR 22324.11 gap= 8.29 cost= 2.38 drew=1 +FR 22332.44 gap= 8.33 cost= 2.37 drew=1 +FR 22340.77 gap= 8.34 cost= 2.38 drew=1 +FR 22349.11 gap= 8.28 cost= 2.33 drew=1 +FR 22357.44 gap= 8.38 cost= 2.38 drew=1 +FR 22365.77 gap= 8.36 cost= 2.40 drew=1 +FR 22374.11 gap= 8.47 cost= 2.54 drew=1 +FR 22382.44 gap= 8.17 cost= 2.38 drew=1 +FR 22390.77 gap= 8.33 cost= 2.38 drew=1 +FR 22399.10 gap= 8.25 cost= 2.30 drew=1 +FR 22407.44 gap= 8.32 cost= 2.29 drew=1 +FR 22415.77 gap= 8.31 cost= 2.26 drew=1 +FR 22424.10 gap= 8.05 cost= 1.98 drew=1 +FR 22432.44 gap= 8.64 cost= 2.28 drew=1 +FR 22440.77 gap= 8.33 cost= 2.28 drew=1 +FR 22449.10 gap= 8.48 cost= 2.43 drew=1 +FR 22457.44 gap= 8.43 cost= 2.52 drew=1 +FR 22465.77 gap= 8.24 cost= 2.43 drew=1 +FR 22474.10 gap= 8.23 cost= 2.33 drew=1 +FR 22482.43 gap= 8.42 cost= 2.42 drew=1 +FR 22490.77 gap= 8.24 cost= 2.32 drew=1 +FR 22499.10 gap= 8.41 cost= 2.40 drew=1 +FR 22507.43 gap= 8.23 cost= 2.29 drew=1 +FR 22515.77 gap= 8.32 cost= 2.27 drew=1 +FR 22524.10 gap= 8.39 cost= 2.33 drew=1 +FR 22532.43 gap= 8.42 cost= 2.41 drew=1 +FR 22540.76 gap= 8.26 cost= 2.34 drew=1 +FR 22549.10 gap= 9.10 cost= 3.10 drew=1 +FR 22557.43 gap= 7.91 cost= 2.68 drew=1 +FR 22565.76 gap= 8.14 cost= 2.49 drew=1 +FR 22574.10 gap= 8.62 cost= 2.77 drew=1 +FR 22582.43 gap= 7.92 cost= 2.36 drew=1 +FR 22590.76 gap= 8.28 cost= 2.31 drew=1 +FR 22599.10 gap= 8.48 cost= 2.45 drew=1 +FR 22607.43 gap= 8.23 cost= 2.35 drew=1 +FR 22615.76 gap= 8.30 cost= 2.31 drew=1 +FR 22624.10 gap= 8.35 cost= 2.33 drew=1 +FR 22632.43 gap= 8.24 cost= 2.24 drew=1 +FR 22640.76 gap= 8.32 cost= 2.22 drew=1 +FR 22649.09 gap= 8.18 cost= 2.07 drew=1 +FR 22657.43 gap= 8.58 cost= 2.32 drew=1 +FR 22665.76 gap= 8.35 cost= 2.34 drew=1 +FR 22674.09 gap= 8.41 cost= 2.41 drew=1 +FR 22682.43 gap= 8.26 cost= 2.34 drew=1 +FR 22690.76 gap= 8.34 cost= 2.35 drew=1 +FR 22699.09 gap= 8.31 cost= 2.33 drew=1 +FR 22707.42 gap= 8.76 cost= 2.76 drew=1 +FR 22715.76 gap= 7.91 cost= 2.34 drew=1 +FR 22724.09 gap= 8.33 cost= 2.33 drew=1 +FR 22732.42 gap= 8.29 cost= 2.29 drew=1 +FR 22740.76 gap= 8.39 cost= 2.35 drew=1 +FR 22749.09 gap= 7.97 cost= 1.98 drew=1 +FR 22757.42 gap= 8.78 cost= 2.43 drew=1 +FR 22765.76 gap= 8.46 cost= 2.56 drew=1 +FR 22774.09 gap= 8.17 cost= 2.39 drew=1 +FR 22782.42 gap= 8.41 cost= 2.46 drew=1 +FR 22790.76 gap= 8.30 cost= 2.42 drew=1 +FR 22799.09 gap= 8.36 cost= 2.45 drew=1 +FR 22807.42 gap= 8.28 cost= 2.40 drew=1 +FR 22815.75 gap= 8.29 cost= 2.35 drew=1 +FR 22824.09 gap= 8.33 cost= 2.36 drew=1 +FR 22832.42 gap= 8.33 cost= 2.35 drew=1 +FR 22840.75 gap= 8.24 cost= 2.26 drew=1 +FR 22849.09 gap= 8.09 cost= 2.02 drew=1 +FR 22857.42 gap= 8.78 cost= 2.47 drew=1 +FR 22865.75 gap= 8.14 cost= 2.28 drew=1 +FR 22874.08 gap= 8.38 cost= 2.32 drew=1 +FR 22882.42 gap= 8.50 cost= 2.49 drew=1 +FR 22890.75 gap= 8.20 cost= 2.35 drew=1 +FR 22899.08 gap= 8.32 cost= 2.34 drew=1 +FR 22907.42 gap= 8.33 cost= 2.34 drew=1 +FR 22915.75 gap= 8.34 cost= 2.35 drew=1 +FR 22924.08 gap= 8.32 cost= 2.34 drew=1 +FR 22932.42 gap= 8.29 cost= 2.29 drew=1 +FR 22940.75 gap= 8.27 cost= 2.23 drew=1 +FR 22949.08 gap= 8.37 cost= 2.26 drew=1 +FR 22957.42 gap= 8.51 cost= 2.44 drew=1 +FR 22965.75 gap= 8.17 cost= 2.28 drew=1 +FR 22974.08 gap= 8.39 cost= 2.34 drew=1 +FR 22982.41 gap= 8.26 cost= 2.26 drew=1 +FR 22990.75 gap= 8.35 cost= 2.28 drew=1 +FR 22999.08 gap= 8.27 cost= 2.22 drew=1 +FR 23007.41 gap= 8.36 cost= 2.25 drew=1 +FR 23015.75 gap= 8.39 cost= 2.30 drew=1 +FR 23024.08 gap= 8.25 cost= 2.22 drew=1 +FR 23032.41 gap= 8.38 cost= 2.26 drew=1 +FR 23040.74 gap= 8.34 cost= 2.27 drew=1 +FR 23049.08 gap= 8.35 cost= 2.29 drew=1 +FR 23057.41 gap= 8.73 cost= 2.68 drew=1 +FR 23065.74 gap= 8.59 cost= 2.94 drew=1 +FR 23074.08 gap= 8.63 cost= 3.24 drew=1 +FR 23082.41 gap= 7.83 cost= 2.74 drew=1 +FR 23090.74 gap= 8.53 cost= 2.93 drew=1 +FR 23099.08 gap= 8.79 cost= 3.39 drew=1 +FR 23107.41 gap= 7.73 cost= 2.78 drew=1 +FR 23115.74 gap= 8.42 cost= 2.87 drew=1 +FR 23124.08 gap= 8.23 cost= 2.76 drew=1 +FR 23132.41 gap= 8.29 cost= 2.71 drew=1 +FR 23140.74 gap= 8.34 cost= 2.72 drew=1 +FR 23149.07 gap= 8.56 cost= 2.95 drew=1 +FR 23157.41 gap= 8.06 cost= 2.68 drew=1 +FR 23165.74 gap= 8.19 cost= 2.54 drew=1 +FR 23174.07 gap= 8.88 cost= 3.08 drew=1 +FR 23182.41 gap= 8.11 cost= 2.86 drew=1 +FR 23190.74 gap= 8.32 cost= 2.85 drew=1 +FR 23199.07 gap= 8.33 cost= 2.85 drew=1 +FR 23207.40 gap= 8.25 cost= 2.77 drew=1 +FR 23215.74 gap= 8.38 cost= 2.81 drew=1 +FR 23224.07 gap= 8.27 cost= 2.74 drew=1 +FR 23232.40 gap= 8.15 cost= 2.56 drew=1 +FR 23240.74 gap= 8.91 cost= 3.13 drew=1 +FR 23249.07 gap= 7.52 cost= 2.32 drew=1 +FR 23257.40 gap= 9.15 cost= 3.14 drew=1 +FR 23265.74 gap= 8.40 cost= 3.20 drew=1 +FR 23274.07 gap= 7.88 cost= 2.75 drew=1 +FR 23282.40 gap= 8.28 cost= 2.69 drew=1 +FR 23290.74 gap= 8.22 cost= 2.58 drew=1 +FR 23299.07 gap= 8.16 cost= 2.41 drew=1 +FR 23307.40 gap= 7.80 cost= 1.87 drew=1 +FR 23315.73 gap= 7.99 cost= 1.53 drew=1 +FR 23324.07 gap= 8.81 cost= 2.01 drew=1 +FR 23332.40 gap= 8.16 cost= 1.83 drew=1 +FR 23340.73 gap= 8.75 cost= 2.25 drew=1 +FR 23349.07 gap= 8.40 cost= 2.31 drew=1 +FR 23357.40 gap= 8.17 cost= 2.15 drew=1 +FR 23365.73 gap= 8.62 cost= 2.43 drew=1 +FR 23374.07 gap= 8.15 cost= 2.25 drew=1 +FR 23382.40 gap= 8.64 cost= 2.56 drew=1 +FR 23390.73 gap= 8.60 cost= 2.82 drew=1 +FR 23399.06 gap= 8.28 cost= 2.78 drew=1 +FR 23407.40 gap= 7.93 cost= 2.37 drew=1 +FR 23415.73 gap= 8.25 cost= 2.28 drew=1 +FR 23424.06 gap= 8.81 cost= 2.76 drew=1 +FR 23432.40 gap= 8.26 cost= 2.68 drew=1 +FR 23440.73 gap= 8.06 cost= 2.40 drew=1 +FR 23449.06 gap= 8.45 cost= 2.52 drew=1 +FR 23457.40 gap= 8.68 cost= 2.86 drew=1 +FR 23465.73 gap= 8.29 cost= 2.83 drew=1 +FR 23474.06 gap= 8.44 cost= 2.93 drew=1 +FR 23482.39 gap= 8.16 cost= 2.76 drew=1 +FR 23490.73 gap= 8.92 cost= 3.35 drew=1 +FR 23499.06 gap= 8.16 cost= 3.18 drew=1 +FR 23507.39 gap= 7.92 cost= 2.77 drew=1 +FR 23515.73 gap= 8.18 cost= 2.62 drew=1 +FR 23524.06 gap= 8.45 cost= 2.73 drew=1 +FR 23532.39 gap= 8.87 cost= 3.27 drew=1 +FR 23540.72 gap= 7.77 cost= 2.71 drew=1 +FR 23549.06 gap= 8.12 cost= 2.49 drew=1 +FR 23557.39 gap= 8.34 cost= 2.50 drew=1 +FR 23565.72 gap= 8.32 cost= 2.49 drew=1 +FR 23574.06 gap= 8.53 cost= 2.69 drew=1 +FR 23582.39 gap= 8.38 cost= 2.73 drew=1 +FR 23590.72 gap= 8.24 cost= 2.64 drew=1 +FR 23599.06 gap= 8.42 cost= 2.73 drew=1 +FR 23607.39 gap= 8.17 cost= 2.57 drew=1 +FR 23615.72 gap= 8.29 cost= 2.52 drew=1 +FR 23624.06 gap= 8.32 cost= 2.51 drew=1 +FR 23632.39 gap= 8.20 cost= 2.38 drew=1 +FR 23640.72 gap= 8.41 cost= 2.45 drew=1 +FR 23649.06 gap= 8.33 cost= 2.45 drew=1 +FR 23657.39 gap= 8.35 cost= 2.46 drew=1 +FR 23665.72 gap= 8.42 cost= 2.54 drew=1 +FR 23674.05 gap= 8.16 cost= 2.37 drew=1 +FR 23682.39 gap= 8.49 cost= 2.52 drew=1 +FR 23690.72 gap= 8.17 cost= 2.36 drew=1 +FR 23699.05 gap= 8.53 cost= 2.56 drew=1 +FR 23707.39 gap= 8.16 cost= 2.39 drew=1 +FR 23715.72 gap= 8.42 cost= 2.47 drew=1 +FR 23724.05 gap= 8.28 cost= 2.42 drew=1 +FR 23732.38 gap= 8.32 cost= 2.41 drew=1 +FR 23740.72 gap= 8.60 cost= 2.68 drew=1 +FR 23749.05 gap= 8.21 cost= 2.56 drew=1 +FR 23757.38 gap= 8.22 cost= 2.44 drew=1 +FR 23765.72 gap= 8.95 cost= 3.06 drew=1 +FR 23774.05 gap= 7.73 cost= 2.46 drew=1 +FR 23782.38 gap= 8.35 cost= 2.47 drew=1 +FR 23790.72 gap= 8.30 cost= 2.44 drew=1 +FR 23799.05 gap= 8.35 cost= 2.45 drew=1 +FR 23807.38 gap= 8.74 cost= 2.86 drew=1 +FR 23815.71 gap= 7.68 cost= 2.21 drew=1 +FR 23824.05 gap= 9.04 cost= 2.91 drew=1 +FR 23832.38 gap= 7.78 cost= 2.35 drew=1 +FR 23840.71 gap= 9.02 cost= 3.04 drew=1 +FR 23849.05 gap= 7.85 cost= 2.56 drew=1 +FR 23857.38 gap= 8.55 cost= 2.78 drew=1 +FR 23865.71 gap= 8.16 cost= 2.61 drew=1 +FR 23874.04 gap= 8.35 cost= 2.62 drew=1 +FR 23882.38 gap= 8.30 cost= 2.59 drew=1 +FR 23890.71 gap= 8.34 cost= 2.59 drew=1 +FR 23899.04 gap= 8.33 cost= 2.59 drew=1 +FR 23907.38 gap= 8.28 cost= 2.54 drew=1 +FR 23915.71 gap= 8.32 cost= 2.53 drew=1 +FR 23924.04 gap= 8.26 cost= 2.45 drew=1 +FR 23932.38 gap= 8.44 cost= 2.56 drew=1 +FR 23940.71 gap= 8.19 cost= 2.41 drew=1 +FR 23949.04 gap= 8.37 cost= 2.46 drew=1 +FR 23957.38 gap= 8.32 cost= 2.44 drew=1 +FR 23965.71 gap= 8.13 cost= 2.24 drew=1 +FR 23974.04 gap= 8.52 cost= 2.43 drew=1 +FR 23982.37 gap= 8.41 cost= 2.51 drew=1 +FR 23990.71 gap= 8.40 cost= 2.58 drew=1 +FR 23999.04 gap= 8.18 cost= 2.42 drew=1 +FR 24007.37 gap= 8.29 cost= 2.38 drew=1 +FR 24015.71 gap= 8.33 cost= 2.37 drew=1 +FR 24024.04 gap= 8.75 cost= 2.79 drew=1 +FR 24032.37 gap= 8.02 cost= 2.48 drew=1 +FR 24040.71 gap= 8.23 cost= 2.37 drew=1 +FR 24049.04 gap= 8.38 cost= 2.42 drew=1 +FR 24057.37 gap= 8.37 cost= 2.46 drew=1 +FR 24065.70 gap= 8.38 cost= 2.50 drew=1 +FR 24074.04 gap= 8.25 cost= 2.42 drew=1 +FR 24082.37 gap= 8.45 cost= 2.54 drew=1 +FR 24090.70 gap= 8.30 cost= 2.50 drew=1 +FR 24099.04 gap= 8.29 cost= 2.46 drew=1 +FR 24107.37 gap= 8.30 cost= 2.43 drew=1 +FR 24115.70 gap= 8.26 cost= 2.35 drew=1 +FR 24124.04 gap= 8.50 cost= 2.52 drew=1 +FR 24132.37 gap= 8.31 cost= 2.50 drew=1 +FR 24140.70 gap= 8.26 cost= 2.43 drew=1 +FR 24149.03 gap= 8.35 cost= 2.44 drew=1 +FR 24157.37 gap= 8.53 cost= 2.64 drew=1 +FR 24165.70 gap= 8.29 cost= 2.60 drew=1 +FR 24174.03 gap= 8.96 cost= 3.23 drew=1 +FR 24182.37 gap= 7.80 cost= 2.70 drew=1 +FR 24190.70 gap= 8.55 cost= 2.92 drew=1 +FR 24199.03 gap= 8.24 cost= 2.82 drew=1 +FR 24207.37 gap= 8.26 cost= 2.74 drew=1 +FR 24215.70 gap= 8.36 cost= 2.77 drew=1 +FR 24224.03 gap= 8.27 cost= 2.71 drew=1 +FR 24232.36 gap= 8.27 cost= 2.65 drew=1 +FR 24240.70 gap= 8.61 cost= 2.93 drew=1 +FR 24249.03 gap= 7.95 cost= 2.55 drew=1 +FR 24257.36 gap= 8.20 cost= 2.42 drew=1 +FR 24265.70 gap= 8.40 cost= 2.48 drew=1 +FR 24274.03 gap= 8.39 cost= 2.53 drew=1 +FR 24282.36 gap= 8.28 cost= 2.48 drew=1 +FR 24290.69 gap= 8.65 cost= 2.80 drew=1 +FR 24299.03 gap= 8.11 cost= 2.59 drew=1 +FR 24307.36 gap= 8.26 cost= 2.51 drew=1 +FR 24315.69 gap= 8.30 cost= 2.47 drew=1 +FR 24324.03 gap= 8.72 cost= 2.85 drew=1 +FR 24332.36 gap= 8.18 cost= 2.70 drew=1 +FR 24340.69 gap= 8.13 cost= 2.49 drew=1 +FR 24349.03 gap= 8.22 cost= 2.38 drew=1 +FR 24357.36 gap= 8.37 cost= 2.41 drew=1 +FR 24365.69 gap= 8.28 cost= 2.37 drew=1 +FR 24374.03 gap= 8.41 cost= 2.44 drew=1 +FR 24382.36 gap= 7.95 cost= 2.06 drew=1 +FR 24390.69 gap= 8.81 cost= 2.54 drew=1 +FR 24399.03 gap= 8.24 cost= 2.44 drew=1 +FR 24407.36 gap= 8.27 cost= 2.37 drew=1 +FR 24415.69 gap= 8.38 cost= 2.42 drew=1 +FR 24424.02 gap= 8.30 cost= 2.40 drew=1 +FR 24432.36 gap= 8.29 cost= 2.36 drew=1 +FR 24440.69 gap= 8.37 cost= 2.40 drew=1 +FR 24449.02 gap= 8.28 cost= 2.35 drew=1 +FR 24457.36 gap= 8.37 cost= 2.38 drew=1 +FR 24465.69 gap= 8.13 cost= 2.18 drew=1 +FR 24474.02 gap= 8.67 cost= 2.51 drew=1 +FR 24482.35 gap= 8.22 cost= 2.40 drew=1 +FR 24490.69 gap= 8.31 cost= 2.38 drew=1 +FR 24499.02 gap= 8.37 cost= 2.42 drew=1 +FR 24507.35 gap= 7.98 cost= 2.07 drew=1 +FR 24515.69 gap= 8.58 cost= 2.31 drew=1 +FR 24524.02 gap= 8.46 cost= 2.45 drew=1 +FR 24532.35 gap= 8.19 cost= 2.31 drew=1 +FR 24540.69 gap= 8.34 cost= 2.31 drew=1 +FR 24549.02 gap= 8.52 cost= 2.50 drew=1 +FR 24557.35 gap= 7.99 cost= 2.15 drew=1 +FR 24565.69 gap= 8.55 cost= 2.37 drew=1 +FR 24574.02 gap= 8.42 cost= 2.45 drew=1 +FR 24582.35 gap= 8.29 cost= 2.41 drew=1 +FR 24590.68 gap= 8.30 cost= 2.38 drew=1 +FR 24599.02 gap= 8.43 cost= 2.48 drew=1 +FR 24607.35 gap= 8.18 cost= 2.32 drew=1 +FR 24615.68 gap= 8.33 cost= 2.32 drew=1 +FR 24624.01 gap= 8.30 cost= 2.28 drew=1 +FR 24632.35 gap= 8.41 cost= 2.36 drew=1 +FR 24640.68 gap= 8.27 cost= 2.29 drew=1 +FR 24649.01 gap= 8.46 cost= 2.42 drew=1 +FR 24657.35 gap= 8.26 cost= 2.34 drew=1 +FR 24665.68 gap= 8.45 cost= 2.46 drew=1 +FR 24674.01 gap= 8.24 cost= 2.37 drew=1 +FR 24682.35 gap= 8.37 cost= 2.40 drew=1 +FR 24690.68 gap= 8.20 cost= 2.26 drew=1 +FR 24699.01 gap= 8.67 cost= 2.60 drew=1 +FR 24707.35 gap= 8.06 cost= 2.32 drew=1 +FR 24715.68 gap= 8.39 cost= 2.38 drew=1 +FR 24724.01 gap= 8.35 cost= 2.40 drew=1 +FR 24732.34 gap= 8.39 cost= 2.46 drew=1 +FR 24740.68 gap= 8.26 cost= 2.40 drew=1 +FR 24749.01 gap= 8.28 cost= 2.35 drew=1 +FR 24757.34 gap= 8.29 cost= 2.30 drew=1 +FR 24765.68 gap= 8.41 cost= 2.38 drew=1 +FR 24774.01 gap= 8.36 cost= 2.41 drew=1 +FR 24782.34 gap= 8.31 cost= 2.39 drew=1 +FR 24790.67 gap= 8.36 cost= 2.41 drew=1 +FR 24799.01 gap= 8.26 cost= 2.34 drew=1 +FR 24807.34 gap= 8.34 cost= 2.34 drew=1 +FR 24815.67 gap= 8.32 cost= 2.33 drew=1 +FR 24824.01 gap= 8.32 cost= 2.31 drew=1 +FR 24832.34 gap= 8.33 cost= 2.31 drew=1 +FR 24840.67 gap= 8.35 cost= 2.33 drew=1 +FR 24849.01 gap= 8.35 cost= 2.35 drew=1 +FR 24857.34 gap= 8.33 cost= 2.35 drew=1 +FR 24865.67 gap= 8.39 cost= 2.41 drew=1 +FR 24874.01 gap= 8.34 cost= 2.41 drew=1 +FR 24882.34 gap= 8.33 cost= 2.41 drew=1 +FR 24890.67 gap= 8.25 cost= 2.33 drew=1 +FR 24899.00 gap= 8.19 cost= 2.18 drew=1 +FR 24907.34 gap= 8.86 cost= 2.71 drew=1 +FR 24915.67 gap= 8.14 cost= 2.52 drew=1 +FR 24924.00 gap= 8.30 cost= 2.49 drew=1 +FR 24932.34 gap= 8.26 cost= 2.42 drew=1 +FR 24940.67 gap= 8.20 cost= 2.29 drew=1 +FR 24949.00 gap= 8.15 cost= 2.10 drew=1 +FR 24957.34 gap= 8.57 cost= 2.34 drew=1 +FR 24965.67 gap= 8.40 cost= 2.41 drew=1 +FR 24974.00 gap= 8.40 cost= 2.48 drew=1 +FR 24982.33 gap= 8.27 cost= 2.42 drew=1 +FR 24990.67 gap= 8.36 cost= 2.45 drew=1 +FR 24999.00 gap= 8.36 cost= 2.48 drew=1 +FR 25007.33 gap= 8.27 cost= 2.41 drew=1 +FR 25015.67 gap= 8.24 cost= 2.31 drew=1 +FR 25024.00 gap= 8.57 cost= 2.55 drew=1 +FR 25032.33 gap= 8.17 cost= 2.38 drew=1 +FR 25040.67 gap= 8.28 cost= 2.32 drew=1 +FR 25049.00 gap= 8.50 cost= 2.49 drew=1 +FR 25057.33 gap= 8.06 cost= 2.21 drew=1 +FR 25065.66 gap= 8.51 cost= 2.38 drew=1 +FR 25074.00 gap= 8.38 cost= 2.42 drew=1 +FR 25082.33 gap= 8.30 cost= 2.39 drew=1 +FR 25090.66 gap= 8.37 cost= 2.42 drew=1 +FR 25099.00 gap= 8.30 cost= 2.39 drew=1 +FR 25107.33 gap= 7.95 cost= 2.00 drew=1 +FR 25115.66 gap= 8.73 cost= 2.40 drew=1 +FR 25123.99 gap= 8.35 cost= 2.41 drew=1 +FR 25132.33 gap= 8.23 cost= 2.31 drew=1 +FR 25140.66 gap= 8.36 cost= 2.34 drew=1 +FR 25148.99 gap= 8.35 cost= 2.35 drew=1 +FR 25157.33 gap= 8.12 cost= 2.14 drew=1 +FR 25165.66 gap= 8.59 cost= 2.40 drew=1 +FR 25173.99 gap= 8.42 cost= 2.48 drew=1 +FR 25182.33 gap= 8.27 cost= 2.42 drew=1 +FR 25190.66 gap= 8.47 cost= 2.55 drew=1 +FR 25198.99 gap= 8.39 cost= 2.61 drew=1 +FR 25207.33 gap= 8.03 cost= 2.30 drew=1 +FR 25215.66 gap= 8.43 cost= 2.40 drew=1 +FR 25223.99 gap= 8.43 cost= 2.50 drew=1 +FR 25232.33 gap= 8.22 cost= 2.38 drew=1 +FR 25240.66 gap= 8.41 cost= 2.46 drew=1 +FR 25248.99 gap= 8.24 cost= 2.37 drew=1 +FR 25257.32 gap= 8.46 cost= 2.50 drew=1 +FR 25265.66 gap= 8.20 cost= 2.37 drew=1 +FR 25273.99 gap= 8.49 cost= 2.52 drew=1 +FR 25282.32 gap= 8.32 cost= 2.50 drew=1 +FR 25290.66 gap= 8.30 cost= 2.47 drew=1 +FR 25298.99 gap= 8.28 cost= 2.42 drew=1 +FR 25307.32 gap= 8.21 cost= 2.30 drew=1 +FR 25315.65 gap= 8.42 cost= 2.38 drew=1 +FR 25323.99 gap= 8.37 cost= 2.42 drew=1 +FR 25332.32 gap= 8.33 cost= 2.41 drew=1 +FR 25340.65 gap= 8.26 cost= 2.34 drew=1 +FR 25348.99 gap= 8.44 cost= 2.45 drew=1 +FR 25357.32 gap= 8.22 cost= 2.33 drew=1 +FR 25365.65 gap= 8.22 cost= 2.22 drew=1 +FR 25373.99 gap= 8.57 cost= 2.46 drew=1 +FR 25382.32 gap= 8.24 cost= 2.36 drew=1 +FR 25390.65 gap= 8.43 cost= 2.46 drew=1 +FR 25398.99 gap= 8.38 cost= 2.51 drew=1 +FR 25407.32 gap= 8.16 cost= 2.34 drew=1 +FR 25415.65 gap= 8.28 cost= 2.29 drew=1 +FR 25423.98 gap= 8.43 cost= 2.39 drew=1 +FR 25432.32 gap= 8.25 cost= 2.31 drew=1 +FR 25440.65 gap= 8.38 cost= 2.35 drew=1 +FR 25448.98 gap= 8.30 cost= 2.32 drew=1 +FR 25457.31 gap= 9.01 cost= 3.00 drew=1 +FR 25465.65 gap= 8.14 cost= 2.80 drew=1 +FR 25473.98 gap= 8.01 cost= 2.48 drew=1 +FR 25482.31 gap= 8.27 cost= 2.41 drew=1 +FR 25490.65 gap= 8.35 cost= 2.43 drew=1 +FR 25498.98 gap= 8.31 cost= 2.41 drew=1 +FR 25507.31 gap= 8.27 cost= 2.34 drew=1 +FR 25515.65 gap= 8.59 cost= 2.60 drew=1 +FR 25523.86 gap= 8.17 cost= 2.56 drew=1 +FR 25532.31 gap= 8.26 cost= 2.36 drew=1 +FR 25540.65 gap= 8.38 cost= 2.40 drew=1 +FR 25548.98 gap= 8.70 cost= 2.77 drew=1 +FR 25557.31 gap= 7.76 cost= 2.20 drew=1 +FR 25565.64 gap= 8.26 cost= 2.13 drew=1 +FR 25573.98 gap= 8.59 cost= 2.39 drew=1 +FR 25582.31 gap= 8.30 cost= 2.35 drew=1 +FR 25590.64 gap= 8.35 cost= 2.38 drew=1 +FR 25598.98 gap= 8.32 cost= 2.36 drew=1 +FR 25607.31 gap= 8.24 cost= 2.26 drew=1 +FR 25615.64 gap= 8.34 cost= 2.27 drew=1 +FR 25623.98 gap= 8.44 cost= 2.38 drew=1 +FR 25632.31 gap= 8.25 cost= 2.30 drew=1 +FR 25640.64 gap= 8.36 cost= 2.33 drew=1 +FR 25648.97 gap= 8.32 cost= 2.32 drew=1 +FR 25657.31 gap= 8.31 cost= 2.29 drew=1 +FR 25665.64 gap= 8.14 cost= 2.10 drew=1 +FR 25673.97 gap= 8.56 cost= 2.33 drew=1 +FR 25682.31 gap= 8.78 cost= 2.78 drew=1 +FR 25690.64 gap= 8.27 cost= 2.71 drew=1 +FR 25698.97 gap= 8.41 cost= 2.79 drew=1 +FR 25707.31 gap= 8.24 cost= 2.69 drew=1 +FR 25715.64 gap= 7.63 cost= 1.99 drew=1 +FR 25723.97 gap= 8.63 cost= 2.29 drew=1 +FR 25732.30 gap= 8.28 cost= 2.24 drew=1 +FR 25740.64 gap= 8.39 cost= 2.29 drew=1 +FR 25748.97 gap= 8.44 cost= 2.40 drew=1 +FR 25757.30 gap= 8.61 cost= 2.68 drew=1 +FR 25765.64 gap= 8.06 cost= 2.41 drew=1 +FR 25773.97 gap= 8.27 cost= 2.35 drew=1 +FR 25782.30 gap= 8.42 cost= 2.44 drew=1 +FR 25790.63 gap= 8.30 cost= 2.40 drew=1 +FR 25798.97 gap= 8.26 cost= 2.33 drew=1 +FR 25807.30 gap= 8.26 cost= 2.26 drew=1 +FR 25815.63 gap= 8.32 cost= 2.25 drew=1 +FR 25823.97 gap= 8.30 cost= 2.22 drew=1 +FR 25832.30 gap= 8.61 cost= 2.49 drew=1 +FR 25840.63 gap= 8.26 cost= 2.42 drew=1 +FR 25848.97 gap= 8.32 cost= 2.40 drew=1 +FR 25857.30 gap= 8.01 cost= 2.08 drew=1 +FR 25865.63 gap= 8.73 cost= 2.48 drew=1 +FR 25873.97 gap= 8.31 cost= 2.45 drew=1 +FR 25882.30 gap= 8.99 cost= 3.11 drew=1 +FR 25890.63 gap= 7.80 cost= 2.57 drew=1 +FR 25898.96 gap= 8.34 cost= 2.58 drew=1 +FR 25907.30 gap= 8.25 cost= 2.49 drew=1 +FR 25915.63 gap= 8.75 cost= 2.91 drew=1 +FR 25923.96 gap= 7.93 cost= 2.50 drew=1 +FR 25932.30 gap= 8.00 cost= 2.17 drew=1 +FR 25940.63 gap= 7.71 cost= 1.55 drew=1 +FR 25948.96 gap= 8.13 cost= 1.35 drew=1 +FR 25957.29 gap= 8.66 cost= 1.68 drew=1 +FR 25965.63 gap= 8.32 cost= 1.67 drew=1 +FR 25973.96 gap= 9.04 cost= 2.38 drew=1 +FR 25982.29 gap= 8.39 cost= 2.43 drew=1 +FR 25990.63 gap= 8.22 cost= 2.32 drew=1 +FR 25998.96 gap= 8.51 cost= 2.49 drew=1 +FR 26007.29 gap= 8.27 cost= 2.43 drew=1 +FR 26015.63 gap= 8.65 cost= 2.75 drew=1 +FR 26023.96 gap= 8.12 cost= 2.53 drew=1 +FR 26032.29 gap= 8.00 cost= 2.20 drew=1 +FR 26040.62 gap= 8.27 cost= 2.14 drew=1 +FR 26048.96 gap= 8.92 cost= 2.73 drew=1 +FR 26057.29 gap= 8.03 cost= 2.42 drew=1 +FR 26065.62 gap= 8.36 cost= 2.46 drew=1 +FR 26073.96 gap= 8.31 cost= 2.43 drew=1 +FR 26082.29 gap= 8.62 cost= 2.72 drew=1 +FR 26090.62 gap= 8.46 cost= 2.85 drew=1 +FR 26098.96 gap= 8.18 cost= 2.69 drew=1 +FR 26107.29 gap= 8.17 cost= 2.53 drew=1 +FR 26115.62 gap= 8.34 cost= 2.54 drew=1 +FR 26123.96 gap= 8.34 cost= 2.55 drew=1 +FR 26132.29 gap= 8.34 cost= 2.56 drew=1 +FR 26140.62 gap= 8.65 cost= 2.87 drew=1 +FR 26148.95 gap= 8.12 cost= 2.66 drew=1 +FR 26157.29 gap= 8.24 cost= 2.57 drew=1 +FR 26165.62 gap= 8.36 cost= 2.60 drew=1 +FR 26173.95 gap= 8.30 cost= 2.57 drew=1 +FR 26182.29 gap= 8.31 cost= 2.54 drew=1 +FR 26190.62 gap= 8.39 cost= 2.60 drew=1 +FR 26198.95 gap= 8.36 cost= 2.63 drew=1 +FR 26207.28 gap= 8.24 cost= 2.54 drew=1 +FR 26215.62 gap= 8.27 cost= 2.48 drew=1 +FR 26223.95 gap= 8.27 cost= 2.41 drew=1 +FR 26232.28 gap= 8.48 cost= 2.56 drew=1 +FR 26240.62 gap= 8.25 cost= 2.48 drew=1 +FR 26248.95 gap= 8.43 cost= 2.58 drew=1 +FR 26257.28 gap= 7.97 cost= 2.22 drew=1 +FR 26265.62 gap= 8.43 cost= 2.32 drew=1 +FR 26273.95 gap= 8.20 cost= 2.19 drew=1 +FR 26282.28 gap= 8.67 cost= 2.52 drew=1 +FR 26290.62 gap= 8.39 cost= 2.58 drew=1 +FR 26298.95 gap= 8.26 cost= 2.51 drew=1 +FR 26307.28 gap= 8.19 cost= 2.37 drew=1 +FR 26315.61 gap= 8.31 cost= 2.35 drew=1 +FR 26323.95 gap= 8.40 cost= 2.42 drew=1 +FR 26332.28 gap= 8.32 cost= 2.40 drew=1 +FR 26340.61 gap= 8.41 cost= 2.48 drew=1 +FR 26348.95 gap= 8.30 cost= 2.45 drew=1 +FR 26357.28 gap= 8.26 cost= 2.38 drew=1 +FR 26365.61 gap= 8.42 cost= 2.47 drew=1 +FR 26373.94 gap= 8.35 cost= 2.48 drew=1 +FR 26382.28 gap= 8.31 cost= 2.46 drew=1 +FR 26390.61 gap= 8.32 cost= 2.45 drew=1 +FR 26398.94 gap= 8.32 cost= 2.44 drew=1 +FR 26407.28 gap= 8.24 cost= 2.35 drew=1 +FR 26415.61 gap= 8.34 cost= 2.35 drew=1 +FR 26423.94 gap= 8.08 cost= 2.10 drew=1 +FR 26432.72 gap= 8.87 cost= 2.19 drew=1 +FR 26440.61 gap= 8.24 cost= 2.54 drew=1 +FR 26448.94 gap= 8.72 cost= 2.93 drew=1 +FR 26457.28 gap= 7.95 cost= 2.54 drew=1 +FR 26465.61 gap= 8.95 cost= 3.16 drew=1 +FR 26473.94 gap= 8.11 cost= 2.94 drew=1 +FR 26482.27 gap= 8.09 cost= 2.69 drew=1 +FR 26490.61 gap= 8.24 cost= 2.60 drew=1 +FR 26498.94 gap= 8.47 cost= 2.73 drew=1 +FR 26507.28 gap= 8.22 cost= 2.61 drew=1 +FR 26515.61 gap= 8.31 cost= 2.59 drew=1 +FR 26523.94 gap= 8.30 cost= 2.56 drew=1 +FR 26532.27 gap= 8.26 cost= 2.48 drew=1 +FR 26540.60 gap= 8.32 cost= 2.46 drew=1 +FR 26548.94 gap= 8.50 cost= 2.63 drew=1 +FR 26557.27 gap= 8.42 cost= 2.72 drew=1 +FR 26565.60 gap= 8.29 cost= 2.68 drew=1 +FR 26573.94 gap= 8.21 cost= 2.55 drew=1 +FR 26582.27 gap= 8.33 cost= 2.55 drew=1 +FR 26590.60 gap= 8.28 cost= 2.50 drew=1 +FR 26598.94 gap= 8.67 cost= 2.84 drew=1 +FR 26607.27 gap= 7.91 cost= 2.42 drew=1 +FR 26615.60 gap= 8.38 cost= 2.47 drew=1 +FR 26623.94 gap= 8.29 cost= 2.42 drew=1 +FR 26632.27 gap= 8.34 cost= 2.43 drew=1 +FR 26640.60 gap= 8.47 cost= 2.56 drew=1 +FR 26648.93 gap= 8.30 cost= 2.53 drew=1 +FR 26657.27 gap= 8.31 cost= 2.51 drew=1 +FR 26665.60 gap= 8.39 cost= 2.56 drew=1 +FR 26673.93 gap= 8.36 cost= 2.59 drew=1 +FR 26682.27 gap= 8.24 cost= 2.51 drew=1 +FR 26690.60 gap= 8.37 cost= 2.54 drew=1 +FR 26698.93 gap= 8.26 cost= 2.47 drew=1 +FR 26707.28 gap= 8.29 cost= 2.41 drew=1 +FR 26715.60 gap= 7.95 cost= 2.03 drew=1 +FR 26723.93 gap= 8.74 cost= 2.45 drew=1 +FR 26732.26 gap= 8.20 cost= 2.31 drew=1 +FR 26740.60 gap= 8.31 cost= 2.29 drew=1 +FR 26748.93 gap= 8.64 cost= 2.60 drew=1 +FR 26757.26 gap= 8.21 cost= 2.47 drew=1 +FR 26765.60 gap= 8.03 cost= 2.17 drew=1 +FR 26773.93 gap= 8.72 cost= 2.56 drew=1 +FR 26782.26 gap= 8.38 cost= 2.60 drew=1 +FR 26790.60 gap= 8.20 cost= 2.47 drew=1 +FR 26798.93 gap= 8.37 cost= 2.51 drew=1 +FR 26807.30 gap= 8.22 cost= 2.36 drew=1 +FR 26815.59 gap= 8.33 cost= 2.40 drew=1 +FR 26823.93 gap= 8.37 cost= 2.43 drew=1 +FR 26832.26 gap= 8.29 cost= 2.38 drew=1 +FR 26840.59 gap= 8.33 cost= 2.38 drew=1 +FR 26848.93 gap= 8.38 cost= 2.43 drew=1 +FR 26857.26 gap= 8.35 cost= 2.44 drew=1 +FR 26865.59 gap= 8.40 cost= 2.51 drew=1 +FR 26873.93 gap= 8.25 cost= 2.43 drew=1 +FR 26882.26 gap= 8.37 cost= 2.47 drew=1 +FR 26890.59 gap= 8.35 cost= 2.49 drew=1 +FR 26898.92 gap= 8.27 cost= 2.43 drew=1 +FR 26907.27 gap= 8.26 cost= 2.34 drew=1 +FR 26915.59 gap= 8.40 cost= 2.42 drew=1 +FR 26923.92 gap= 8.32 cost= 2.40 drew=1 +FR 26932.26 gap= 8.07 cost= 2.14 drew=1 +FR 26940.59 gap= 8.54 cost= 2.35 drew=1 +FR 26948.92 gap= 8.45 cost= 2.47 drew=1 +FR 26957.26 gap= 8.01 cost= 2.15 drew=1 +FR 26965.59 gap= 8.31 cost= 2.13 drew=1 +FR 26973.92 gap= 8.61 cost= 2.40 drew=1 +FR 26982.25 gap= 8.06 cost= 2.13 drew=1 +FR 26990.59 gap= 8.62 cost= 2.42 drew=1 +FR 26998.92 gap= 8.35 cost= 2.44 drew=1 +FR 27007.25 gap= 8.24 cost= 2.34 drew=1 +FR 27015.59 gap= 8.32 cost= 2.33 drew=1 +FR 27023.92 gap= 8.35 cost= 2.34 drew=1 +FR 27032.25 gap= 7.97 cost= 1.97 drew=1 +FR 27040.58 gap= 8.57 cost= 2.22 drew=1 +FR 27048.92 gap= 8.45 cost= 2.33 drew=1 +FR 27057.25 gap= 8.12 cost= 2.12 drew=1 +FR 27065.58 gap= 8.88 cost= 2.66 drew=1 +FR 27073.92 gap= 8.20 cost= 2.53 drew=1 +FR 27082.25 gap= 8.19 cost= 2.39 drew=1 +FR 27090.58 gap= 8.77 cost= 2.83 drew=1 +FR 27098.92 gap= 8.08 cost= 2.57 drew=1 +FR 27107.29 gap= 8.23 cost= 2.43 drew=1 +FR 27115.58 gap= 8.46 cost= 2.59 drew=1 +FR 27123.92 gap= 8.28 cost= 2.54 drew=1 +FR 27132.25 gap= 8.28 cost= 2.48 drew=1 +FR 27140.58 gap= 8.22 cost= 2.37 drew=1 +FR 27148.92 gap= 8.54 cost= 2.58 drew=1 +FR 27157.25 gap= 8.19 cost= 2.43 drew=1 +FR 27165.58 gap= 8.03 cost= 2.13 drew=1 +FR 27173.91 gap= 8.79 cost= 2.59 drew=1 +FR 27182.25 gap= 8.31 cost= 2.56 drew=1 +FR 27190.58 gap= 8.32 cost= 2.54 drew=1 +FR 27198.91 gap= 8.44 cost= 2.65 drew=1 +FR 27207.27 gap= 8.14 cost= 2.44 drew=1 +FR 27215.58 gap= 8.17 cost= 2.30 drew=1 +FR 27223.91 gap= 8.50 cost= 2.47 drew=1 +FR 27232.24 gap= 8.19 cost= 2.32 drew=1 +FR 27240.58 gap= 8.34 cost= 2.33 drew=1 +FR 27248.91 gap= 8.35 cost= 2.35 drew=1 +FR 27257.24 gap= 8.10 cost= 2.12 drew=1 +FR 27265.58 gap= 8.90 cost= 2.68 drew=1 +FR 27273.91 gap= 8.03 cost= 2.39 drew=1 +FR 27282.24 gap= 8.43 cost= 2.49 drew=1 +FR 27290.58 gap= 8.24 cost= 2.40 drew=1 +FR 27298.91 gap= 8.20 cost= 2.27 drew=1 +FR 27307.29 gap= 8.74 cost= 2.62 drew=1 +FR 27315.57 gap= 8.07 cost= 2.41 drew=1 +FR 27323.91 gap= 8.33 cost= 2.41 drew=1 +FR 27332.24 gap= 8.41 cost= 2.48 drew=1 +FR 27340.57 gap= 8.27 cost= 2.42 drew=1 +FR 27348.91 gap= 8.40 cost= 2.49 drew=1 +FR 27357.24 gap= 7.79 cost= 1.94 drew=1 +FR 27365.57 gap= 8.78 cost= 2.39 drew=1 +FR 27373.91 gap= 8.47 cost= 2.53 drew=1 +FR 27382.24 gap= 8.21 cost= 2.40 drew=1 +FR 27390.57 gap= 8.47 cost= 2.54 drew=1 +FR 27398.90 gap= 8.28 cost= 2.48 drew=1 +FR 27407.25 gap= 8.23 cost= 2.37 drew=1 +FR 27415.57 gap= 8.32 cost= 2.37 drew=1 +FR 27423.90 gap= 8.35 cost= 2.39 drew=1 +FR 27432.24 gap= 8.05 cost= 2.10 drew=1 +FR 27440.57 gap= 8.66 cost= 2.42 drew=1 +FR 27448.90 gap= 8.37 cost= 2.46 drew=1 +FR 27457.24 gap= 8.20 cost= 2.32 drew=1 +FR 27465.57 gap= 8.17 cost= 2.16 drew=1 +FR 27473.90 gap= 8.55 cost= 2.38 drew=1 +FR 27482.24 gap= 8.35 cost= 2.39 drew=1 +FR 27490.57 gap= 8.28 cost= 2.34 drew=1 +FR 27498.90 gap= 8.45 cost= 2.46 drew=1 +FR 27507.27 gap= 8.21 cost= 2.30 drew=1 +FR 27515.57 gap= 8.19 cost= 2.20 drew=1 +FR 27523.90 gap= 8.69 cost= 2.56 drew=1 +FR 27532.23 gap= 8.17 cost= 2.40 drew=1 +FR 27540.56 gap= 8.37 cost= 2.43 drew=1 +FR 27548.90 gap= 8.27 cost= 2.37 drew=1 +FR 27557.23 gap= 8.30 cost= 2.33 drew=1 +FR 27565.56 gap= 8.50 cost= 2.49 drew=1 +FR 27573.90 gap= 8.25 cost= 2.41 drew=1 +FR 27582.23 gap= 8.18 cost= 2.26 drew=1 +FR 27590.56 gap= 8.49 cost= 2.41 drew=1 +FR 27598.90 gap= 8.21 cost= 2.29 drew=1 +FR 27607.26 gap= 8.45 cost= 2.38 drew=1 +FR 27615.56 gap= 8.30 cost= 2.38 drew=1 +FR 27623.90 gap= 8.22 cost= 2.27 drew=1 +FR 27632.23 gap= 8.29 cost= 2.22 drew=1 +FR 27640.56 gap= 8.45 cost= 2.34 drew=1 +FR 27648.89 gap= 8.21 cost= 2.21 drew=1 +FR 27657.23 gap= 8.38 cost= 2.26 drew=1 +FR 27665.56 gap= 8.53 cost= 2.45 drew=1 +FR 27673.89 gap= 8.24 cost= 2.36 drew=1 +FR 27682.23 gap= 8.69 cost= 2.72 drew=1 +FR 27690.56 gap= 8.01 cost= 2.40 drew=1 +FR 27698.89 gap= 8.60 cost= 2.67 drew=1 +FR 27707.28 gap= 8.23 cost= 2.52 drew=1 +FR 27715.56 gap= 8.05 cost= 2.28 drew=1 +FR 27723.89 gap= 8.49 cost= 2.44 drew=1 +FR 27732.22 gap= 8.28 cost= 2.39 drew=1 +FR 27740.56 gap= 8.19 cost= 2.25 drew=1 +FR 27748.89 gap= 8.57 cost= 2.49 drew=1 +FR 27757.22 gap= 7.81 cost= 1.97 drew=1 +FR 27765.56 gap= 8.84 cost= 2.47 drew=1 +FR 27773.89 gap= 8.20 cost= 2.34 drew=1 +FR 27782.22 gap= 8.43 cost= 2.44 drew=1 +FR 27790.56 gap= 8.20 cost= 2.31 drew=1 +FR 27798.89 gap= 8.28 cost= 2.25 drew=1 +FR 27807.29 gap= 8.50 cost= 2.35 drew=1 +FR 27815.58 gap= 8.27 cost= 2.33 drew=1 +FR 27823.89 gap= 8.20 cost= 2.24 drew=1 +FR 27832.22 gap= 8.36 cost= 2.27 drew=1 +FR 27840.55 gap= 8.31 cost= 2.24 drew=1 +FR 27848.89 gap= 8.65 cost= 2.56 drew=1 +FR 27857.22 gap= 7.84 cost= 2.06 drew=1 +FR 27865.55 gap= 8.37 cost= 2.10 drew=1 +FR 27873.88 gap= 8.58 cost= 2.34 drew=1 +FR 27882.22 gap= 8.26 cost= 2.27 drew=1 +FR 27890.55 gap= 8.46 cost= 2.39 drew=1 +FR 27898.88 gap= 8.32 cost= 2.38 drew=1 +FR 27907.23 gap= 8.13 cost= 2.17 drew=1 +FR 27915.55 gap= 8.43 cost= 2.28 drew=1 +FR 27923.88 gap= 8.33 cost= 2.27 drew=1 +FR 27932.22 gap= 8.22 cost= 2.16 drew=1 +FR 27940.55 gap= 8.28 cost= 2.11 drew=1 +FR 27948.88 gap= 8.47 cost= 2.25 drew=1 +FR 27957.22 gap= 8.05 cost= 1.97 drew=1 +FR 27965.55 gap= 8.47 cost= 2.10 drew=1 +FR 27973.88 gap= 8.50 cost= 2.26 drew=1 +FR 27982.21 gap= 8.52 cost= 2.46 drew=1 +FR 27990.55 gap= 8.08 cost= 2.21 drew=1 +FR 27998.88 gap= 8.18 cost= 2.06 drew=1 +FR 28007.27 gap= 8.58 cost= 2.25 drew=1 +FR 28015.55 gap= 8.37 cost= 2.34 drew=1 +FR 28023.88 gap= 7.98 cost= 1.99 drew=1 +FR 28032.21 gap= 8.33 cost= 1.99 drew=1 +FR 28040.54 gap= 8.53 cost= 2.19 drew=1 +FR 28048.88 gap= 8.52 cost= 2.38 drew=1 +FR 28057.21 gap= 7.93 cost= 1.97 drew=1 +FR 28065.54 gap= 8.62 cost= 2.26 drew=1 +FR 28073.88 gap= 8.45 cost= 2.37 drew=1 +FR 28082.21 gap= 8.31 cost= 2.35 drew=1 +FR 28090.54 gap= 8.42 cost= 2.44 drew=1 +FR 28098.88 gap= 8.94 cost= 3.05 drew=1 +FR 28107.23 gap= 7.29 cost= 1.99 drew=1 +FR 28115.54 gap= 8.60 cost= 2.28 drew=1 +FR 28123.88 gap= 8.36 cost= 2.31 drew=1 +FR 28132.21 gap= 8.27 cost= 2.24 drew=1 +FR 28140.54 gap= 8.36 cost= 2.27 drew=1 +FR 28148.87 gap= 8.09 cost= 2.03 drew=1 +FR 28157.21 gap= 8.29 cost= 1.98 drew=1 +FR 28165.54 gap= 8.42 cost= 2.07 drew=1 +FR 28173.88 gap= 8.72 cost= 2.45 drew=1 +FR 28182.21 gap= 8.29 cost= 2.42 drew=1 +FR 28190.54 gap= 8.04 cost= 2.12 drew=1 +FR 28198.87 gap= 8.33 cost= 2.12 drew=1 +FR 28207.25 gap= 8.58 cost= 2.31 drew=1 +FR 28215.54 gap= 8.34 cost= 2.37 drew=1 +FR 28223.87 gap= 8.01 cost= 2.05 drew=1 +FR 28232.20 gap= 8.60 cost= 2.31 drew=1 +FR 28240.54 gap= 8.33 cost= 2.31 drew=1 +FR 28248.87 gap= 8.35 cost= 2.32 drew=1 +FR 28257.20 gap= 7.96 cost= 1.95 drew=1 +FR 28265.54 gap= 8.50 cost= 2.12 drew=1 +FR 28273.87 gap= 8.65 cost= 2.44 drew=1 +FR 28282.20 gap= 8.38 cost= 2.48 drew=1 +FR 28290.53 gap= 8.33 cost= 2.48 drew=1 +FR 28298.87 gap= 8.46 cost= 2.60 drew=1 +FR 28307.27 gap= 8.19 cost= 2.39 drew=1 +FR 28315.53 gap= 7.99 cost= 2.11 drew=1 +FR 28323.87 gap= 8.65 cost= 2.43 drew=1 +FR 28332.20 gap= 8.32 cost= 2.42 drew=1 +FR 28340.53 gap= 8.32 cost= 2.40 drew=1 +FR 28348.87 gap= 8.25 cost= 2.32 drew=1 +FR 28357.20 gap= 8.43 cost= 2.42 drew=1 +FR 28365.53 gap= 8.35 cost= 2.43 drew=1 +FR 28373.87 gap= 8.27 cost= 2.37 drew=1 +FR 28382.20 gap= 8.46 cost= 2.50 drew=1 +FR 28390.53 gap= 8.17 cost= 2.34 drew=1 +FR 28398.86 gap= 8.35 cost= 2.35 drew=1 +FR 28407.25 gap= 8.37 cost= 2.34 drew=1 +FR 28415.53 gap= 8.31 cost= 2.36 drew=1 +FR 28423.86 gap= 8.21 cost= 2.24 drew=1 +FR 28432.20 gap= 8.42 cost= 2.33 drew=1 +FR 28440.53 gap= 8.21 cost= 2.21 drew=1 +FR 28448.86 gap= 8.66 cost= 2.53 drew=1 +FR 28457.19 gap= 7.96 cost= 2.16 drew=1 +FR 28465.53 gap= 8.31 cost= 2.13 drew=1 +FR 28473.86 gap= 8.60 cost= 2.39 drew=1 +FR 28482.19 gap= 8.25 cost= 2.31 drew=1 +FR 28490.53 gap= 8.97 cost= 2.94 drew=1 +FR 28498.86 gap= 7.75 cost= 2.36 drew=1 +FR 28507.19 gap= 8.33 cost= 2.35 drew=1 +FR 28515.53 gap= 8.31 cost= 2.32 drew=1 +FR 28523.86 gap= 8.31 cost= 2.30 drew=1 +FR 28532.19 gap= 8.14 cost= 2.11 drew=1 +FR 28540.53 gap= 8.52 cost= 2.30 drew=1 +FR 28548.86 gap= 8.87 cost= 2.84 drew=1 +FR 28557.19 gap= 8.21 cost= 2.71 drew=1 +FR 28565.52 gap= 8.23 cost= 2.61 drew=1 +FR 28573.86 gap= 8.39 cost= 2.67 drew=1 +FR 28582.19 gap= 8.17 cost= 2.51 drew=1 +FR 28590.52 gap= 8.42 cost= 2.60 drew=1 +FR 28598.86 gap= 8.40 cost= 2.67 drew=1 +FR 28607.19 gap= 8.25 cost= 2.59 drew=1 +FR 28615.52 gap= 8.32 cost= 2.57 drew=1 +FR 28623.85 gap= 8.30 cost= 2.54 drew=1 +FR 28632.19 gap= 8.45 cost= 2.66 drew=1 +FR 28640.52 gap= 8.02 cost= 2.35 drew=1 +FR 28648.85 gap= 7.74 cost= 1.76 drew=1 +FR 28657.19 gap= 8.18 cost= 1.61 drew=1 +FR 28665.52 gap= 8.07 cost= 1.34 drew=1 +FR 28673.85 gap= 8.49 cost= 1.50 drew=1 +FR 28682.19 gap= 8.81 cost= 1.97 drew=1 +FR 28690.52 gap= 8.73 cost= 2.37 drew=1 +FR 28698.85 gap= 8.34 cost= 2.38 drew=1 +FR 28707.19 gap= 8.28 cost= 2.32 drew=1 +FR 28715.52 gap= 8.32 cost= 2.31 drew=1 +FR 28723.85 gap= 8.43 cost= 2.41 drew=1 +FR 28732.18 gap= 8.86 cost= 2.94 drew=1 +FR 28740.52 gap= 8.41 cost= 3.02 drew=1 +FR 28748.85 gap= 8.08 cost= 2.77 drew=1 +FR 28757.18 gap= 8.20 cost= 2.64 drew=1 +FR 28765.52 gap= 7.87 cost= 2.18 drew=1 +FR 28773.85 gap= 9.00 cost= 2.84 drew=1 +FR 28782.18 gap= 8.18 cost= 2.69 drew=1 +FR 28790.51 gap= 8.32 cost= 2.68 drew=1 +FR 28798.85 gap= 8.33 cost= 2.68 drew=1 +FR 28807.18 gap= 8.25 cost= 2.60 drew=1 +FR 28815.51 gap= 8.35 cost= 2.62 drew=1 +FR 28823.85 gap= 8.28 cost= 2.56 drew=1 +FR 28832.18 gap= 8.28 cost= 2.52 drew=1 +FR 28840.51 gap= 8.40 cost= 2.58 drew=1 +FR 28848.85 gap= 8.38 cost= 2.63 drew=1 +FR 28857.18 gap= 7.83 cost= 2.13 drew=1 +FR 28865.51 gap= 8.71 cost= 2.51 drew=1 +FR 28873.85 gap= 8.82 cost= 2.99 drew=1 +FR 28882.18 gap= 8.03 cost= 2.69 drew=1 +FR 28890.51 gap= 8.27 cost= 2.63 drew=1 +FR 28898.85 gap= 8.28 cost= 2.58 drew=1 +FR 28907.18 gap= 8.37 cost= 2.61 drew=1 +FR 28915.51 gap= 8.25 cost= 2.53 drew=1 +FR 28923.84 gap= 8.31 cost= 2.50 drew=1 +FR 28932.18 gap= 8.33 cost= 2.50 drew=1 +FR 28940.51 gap= 8.32 cost= 2.49 drew=1 +FR 28948.84 gap= 8.37 cost= 2.52 drew=1 +FR 28957.17 gap= 7.99 cost= 2.18 drew=1 +FR 28965.51 gap= 8.75 cost= 2.60 drew=1 +FR 28973.84 gap= 8.28 cost= 2.55 drew=1 +FR 28982.17 gap= 8.35 cost= 2.56 drew=1 +FR 28990.51 gap= 8.32 cost= 2.55 drew=1 +FR 28998.84 gap= 8.32 cost= 2.54 drew=1 +FR 29007.17 gap= 8.35 cost= 2.56 drew=1 +FR 29015.51 gap= 8.15 cost= 2.38 drew=1 +FR 29023.84 gap= 8.39 cost= 2.43 drew=1 +FR 29032.17 gap= 8.31 cost= 2.40 drew=1 +FR 29040.51 gap= 8.35 cost= 2.42 drew=1 +FR 29048.84 gap= 8.56 cost= 2.65 drew=1 +FR 29057.17 gap= 7.90 cost= 2.22 drew=1 +FR 29065.50 gap= 8.60 cost= 2.48 drew=1 +FR 29073.84 gap= 8.24 cost= 2.39 drew=1 +FR 29082.17 gap= 8.55 cost= 2.60 drew=1 +FR 29090.50 gap= 8.17 cost= 2.44 drew=1 +FR 29098.84 gap= 8.37 cost= 2.48 drew=1 +FR 29107.17 gap= 8.31 cost= 2.46 drew=1 +FR 29115.50 gap= 8.23 cost= 2.36 drew=1 +FR 29123.83 gap= 8.35 cost= 2.38 drew=1 +FR 29132.17 gap= 8.37 cost= 2.42 drew=1 +FR 29140.50 gap= 8.29 cost= 2.37 drew=1 +FR 29148.83 gap= 8.39 cost= 2.42 drew=1 +FR 29157.17 gap= 8.44 cost= 2.53 drew=1 +FR 29165.50 gap= 8.45 cost= 2.64 drew=1 +FR 29173.83 gap= 8.41 cost= 2.72 drew=1 +FR 29182.17 gap= 8.03 cost= 2.42 drew=1 +FR 29190.50 gap= 8.77 cost= 2.86 drew=1 +FR 29198.83 gap= 8.10 cost= 2.62 drew=1 +FR 29207.17 gap= 8.26 cost= 2.54 drew=1 +FR 29215.50 gap= 8.62 cost= 2.83 drew=1 +FR 29223.83 gap= 8.11 cost= 2.61 drew=1 +FR 29232.16 gap= 8.40 cost= 2.68 drew=1 +FR 29240.50 gap= 8.04 cost= 2.39 drew=1 +FR 29248.83 gap= 8.57 cost= 2.63 drew=1 +FR 29257.16 gap= 8.00 cost= 2.29 drew=1 +FR 29265.50 gap= 8.51 cost= 2.47 drew=1 +FR 29273.83 gap= 8.46 cost= 2.60 drew=1 +FR 29282.16 gap= 8.19 cost= 2.45 drew=1 +FR 29290.49 gap= 8.28 cost= 2.40 drew=1 +FR 29298.83 gap= 8.52 cost= 2.58 drew=1 +FR 29307.16 gap= 8.35 cost= 2.60 drew=1 +FR 29315.49 gap= 8.16 cost= 2.43 drew=1 +FR 29323.83 gap= 8.26 cost= 2.36 drew=1 +FR 29332.16 gap= 8.42 cost= 2.45 drew=1 +FR 29340.49 gap= 8.33 cost= 2.45 drew=1 +FR 29348.83 gap= 8.49 cost= 2.60 drew=1 +FR 29357.16 gap= 7.95 cost= 2.23 drew=1 +FR 29365.49 gap= 8.59 cost= 2.48 drew=1 +FR 29373.83 gap= 8.03 cost= 2.18 drew=1 +FR 29382.16 gap= 8.61 cost= 2.46 drew=1 +FR 29390.49 gap= 8.39 cost= 2.52 drew=1 +FR 29398.82 gap= 8.32 cost= 2.50 drew=1 +FR 29407.16 gap= 8.32 cost= 2.49 drew=1 +FR 29415.49 gap= 8.17 cost= 2.33 drew=1 +FR 29423.82 gap= 8.09 cost= 2.08 drew=1 +FR 29432.16 gap= 8.63 cost= 2.38 drew=1 +FR 29440.49 gap= 8.03 cost= 2.08 drew=1 +FR 29448.82 gap= 8.68 cost= 2.43 drew=1 +FR 29457.15 gap= 8.41 cost= 2.50 drew=1 +FR 29465.49 gap= 8.07 cost= 2.24 drew=1 +FR 29473.82 gap= 8.56 cost= 2.47 drew=1 +FR 29482.15 gap= 8.28 cost= 2.41 drew=1 +FR 29490.49 gap= 8.33 cost= 2.41 drew=1 +FR 29498.82 gap= 8.32 cost= 2.40 drew=1 +FR 29507.15 gap= 8.29 cost= 2.35 drew=1 +FR 29515.49 gap= 8.45 cost= 2.47 drew=1 +FR 29523.82 gap= 8.33 cost= 2.46 drew=1 +FR 29532.15 gap= 7.98 cost= 2.11 drew=1 +FR 29540.49 gap= 8.70 cost= 2.47 drew=1 +FR 29548.82 gap= 8.22 cost= 2.36 drew=1 +FR 29557.15 gap= 8.00 cost= 2.02 drew=1 +FR 29565.48 gap= 8.69 cost= 2.38 drew=1 +FR 29573.82 gap= 8.29 cost= 2.33 drew=1 +FR 29582.15 gap= 8.44 cost= 2.44 drew=1 +FR 29590.48 gap= 7.98 cost= 2.09 drew=1 +FR 29598.82 gap= 8.63 cost= 2.39 drew=1 +FR 29607.15 gap= 8.36 cost= 2.41 drew=1 +FR 29615.48 gap= 8.22 cost= 2.30 drew=1 +FR 29623.81 gap= 8.41 cost= 2.37 drew=1 +FR 29632.15 gap= 8.33 cost= 2.37 drew=1 +FR 29640.48 gap= 7.99 cost= 2.03 drew=1 +FR 29648.81 gap= 8.64 cost= 2.34 drew=1 +FR 29657.15 gap= 8.00 cost= 2.00 drew=1 +FR 29665.48 gap= 8.69 cost= 2.36 drew=1 +FR 29673.81 gap= 8.34 cost= 2.38 drew=1 +FR 29682.15 gap= 8.31 cost= 2.36 drew=1 +FR 29690.48 gap= 8.28 cost= 2.30 drew=1 +FR 29698.81 gap= 8.43 cost= 2.40 drew=1 +FR 29707.15 gap= 8.24 cost= 2.31 drew=1 +FR 29715.48 gap= 8.37 cost= 2.35 drew=1 +FR 29723.81 gap= 8.34 cost= 2.35 drew=1 +FR 29732.14 gap= 8.31 cost= 2.33 drew=1 +FR 29740.48 gap= 8.26 cost= 2.26 drew=1 +FR 29748.81 gap= 8.37 cost= 2.29 drew=1 +FR 29757.14 gap= 8.05 cost= 2.01 drew=1 +FR 29765.48 gap= 8.17 cost= 1.85 drew=1 +FR 29773.81 gap= 8.80 cost= 2.32 drew=1 +FR 29782.14 gap= 8.42 cost= 2.41 drew=1 +FR 29790.47 gap= 8.39 cost= 2.47 drew=1 +FR 29798.81 gap= 8.37 cost= 2.50 drew=1 +FR 29807.14 gap= 8.48 cost= 2.64 drew=1 +FR 29815.47 gap= 8.06 cost= 2.37 drew=1 +FR 29823.81 gap= 8.47 cost= 2.51 drew=1 +FR 29832.14 gap= 8.26 cost= 2.43 drew=1 +FR 29840.47 gap= 8.26 cost= 2.36 drew=1 +FR 29848.81 gap= 8.33 cost= 2.35 drew=1 +FR 29857.14 gap= 8.10 cost= 2.12 drew=1 +FR 29865.47 gap= 8.35 cost= 2.14 drew=1 +FR 29873.81 gap= 8.53 cost= 2.33 drew=1 +FR 29882.14 gap= 8.54 cost= 2.54 drew=1 +FR 29890.47 gap= 8.28 cost= 2.49 drew=1 +FR 29898.80 gap= 8.36 cost= 2.51 drew=1 +FR 29907.14 gap= 8.31 cost= 2.49 drew=1 +FR 29915.47 gap= 8.25 cost= 2.41 drew=1 +FR 29923.80 gap= 8.24 cost= 2.31 drew=1 +FR 29932.14 gap= 8.34 cost= 2.32 drew=1 +FR 29940.47 gap= 8.27 cost= 2.26 drew=1 +FR 29948.80 gap= 8.33 cost= 2.26 drew=1 +FR 29957.13 gap= 8.09 cost= 2.02 drew=1 +FR 29965.47 gap= 8.38 cost= 2.06 drew=1 +FR 29973.80 gap= 8.70 cost= 2.43 drew=1 +FR 29982.13 gap= 8.66 cost= 2.76 drew=1 +FR 29990.47 gap= 8.05 cost= 2.47 drew=1 +FR 29998.80 gap= 8.65 cost= 2.79 drew=1 +FR 30007.13 gap= 8.63 cost= 3.09 drew=1 +FR 30015.47 gap= 8.40 cost= 3.16 drew=1 +FR 30023.80 gap= 8.53 cost= 3.36 drew=1 +FR 30032.13 gap= 8.22 cost= 3.25 drew=1 +FR 30040.47 gap= 7.58 cost= 2.50 drew=1 +FR 30048.80 gap= 8.57 cost= 2.74 drew=1 +FR 30057.13 gap= 7.62 cost= 2.03 drew=1 +FR 30065.46 gap= 7.95 cost= 1.64 drew=1 +FR 30073.80 gap= 9.36 cost= 2.67 drew=1 +FR 30082.13 gap= 7.63 cost= 1.97 drew=1 +FR 30090.46 gap= 8.41 cost= 2.05 drew=1 +FR 30098.80 gap= 9.12 cost= 2.83 drew=1 +FR 30107.13 gap= 7.95 cost= 2.45 drew=1 +FR 30115.46 gap= 8.38 cost= 2.50 drew=1 +FR 30123.80 gap= 8.42 cost= 2.58 drew=1 +FR 30132.13 gap= 8.67 cost= 2.91 drew=1 +FR 30140.46 gap= 8.29 cost= 2.87 drew=1 +FR 30148.79 gap= 8.27 cost= 2.80 drew=1 +FR 30157.13 gap= 8.07 cost= 2.54 drew=1 +FR 30165.46 gap= 8.49 cost= 2.70 drew=1 +FR 30173.79 gap= 8.28 cost= 2.64 drew=1 +FR 30182.13 gap= 8.39 cost= 2.70 drew=1 +FR 30190.46 gap= 8.17 cost= 2.54 drew=1 +FR 30198.79 gap= 8.45 cost= 2.66 drew=1 +FR 30207.12 gap= 8.17 cost= 2.50 drew=1 +FR 30215.46 gap= 8.35 cost= 2.52 drew=1 +FR 30223.79 gap= 8.33 cost= 2.51 drew=1 +FR 30232.12 gap= 8.27 cost= 2.45 drew=1 +FR 30240.46 gap= 8.06 cost= 2.17 drew=1 +FR 30248.79 gap= 8.82 cost= 2.66 drew=1 +FR 30257.12 gap= 8.03 cost= 2.36 drew=1 +FR 30265.46 gap= 8.55 cost= 2.57 drew=1 +FR 30273.79 gap= 8.22 cost= 2.45 drew=1 +FR 30282.12 gap= 8.40 cost= 2.52 drew=1 +FR 30290.46 gap= 8.26 cost= 2.45 drew=1 +FR 30298.79 gap= 8.33 cost= 2.45 drew=1 +FR 30307.12 gap= 8.43 cost= 2.54 drew=1 +FR 30315.45 gap= 8.17 cost= 2.38 drew=1 +FR 30323.79 gap= 8.51 cost= 2.56 drew=1 +FR 30332.12 gap= 8.27 cost= 2.50 drew=1 +FR 30340.45 gap= 8.39 cost= 2.56 drew=1 +FR 30348.79 gap= 8.35 cost= 2.57 drew=1 +FR 30357.12 gap= 7.78 cost= 2.02 drew=1 +FR 30365.45 gap= 8.76 cost= 2.44 drew=1 +FR 30373.78 gap= 8.43 cost= 2.54 drew=1 +FR 30382.12 gap= 8.24 cost= 2.45 drew=1 +FR 30390.45 gap= 8.44 cost= 2.56 drew=1 +FR 30398.78 gap= 8.36 cost= 2.59 drew=1 +FR 30407.12 gap= 8.18 cost= 2.43 drew=1 +FR 30415.45 gap= 8.26 cost= 2.35 drew=1 +FR 30423.78 gap= 8.07 cost= 2.09 drew=1 +FR 30432.12 gap= 8.70 cost= 2.46 drew=1 +FR 30440.45 gap= 8.86 cost= 2.99 drew=1 +FR 30448.78 gap= 8.05 cost= 2.71 drew=1 +FR 30457.12 gap= 8.24 cost= 2.61 drew=1 +FR 30465.45 gap= 9.04 cost= 3.32 drew=1 +FR 30473.78 gap= 7.65 cost= 2.64 drew=1 +FR 30482.11 gap= 8.24 cost= 2.54 drew=1 +FR 30490.45 gap= 8.38 cost= 2.59 drew=1 +FR 30498.78 gap= 8.45 cost= 2.71 drew=1 +FR 30507.11 gap= 8.23 cost= 2.60 drew=1 +FR 30515.45 gap= 8.14 cost= 2.41 drew=1 +FR 30523.78 gap= 8.32 cost= 2.40 drew=1 +FR 30532.11 gap= 8.27 cost= 2.34 drew=1 +FR 30540.44 gap= 8.30 cost= 2.30 drew=1 +FR 30548.78 gap= 8.38 cost= 2.35 drew=1 +FR 30557.11 gap= 8.14 cost= 2.15 drew=1 +FR 30565.44 gap= 8.62 cost= 2.44 drew=1 +FR 30573.78 gap= 8.39 cost= 2.49 drew=1 +FR 30582.11 gap= 8.23 cost= 2.39 drew=1 +FR 30590.44 gap= 8.57 cost= 2.63 drew=1 +FR 30598.78 gap= 8.17 cost= 2.47 drew=1 +FR 30607.11 gap= 8.34 cost= 2.48 drew=1 +FR 30615.44 gap= 8.20 cost= 2.35 drew=1 +FR 30623.78 gap= 8.29 cost= 2.31 drew=1 +FR 30632.11 gap= 8.42 cost= 2.40 drew=1 +FR 30640.44 gap= 8.27 cost= 2.33 drew=1 +FR 30648.77 gap= 8.33 cost= 2.33 drew=1 +FR 30657.11 gap= 7.94 cost= 1.94 drew=1 +FR 30665.44 gap= 8.81 cost= 2.42 drew=1 +FR 30673.77 gap= 8.27 cost= 2.35 drew=1 +FR 30682.11 gap= 8.39 cost= 2.41 drew=1 +FR 30690.44 gap= 8.30 cost= 2.38 drew=1 +FR 30698.77 gap= 8.28 cost= 2.33 drew=1 +FR 30707.10 gap= 8.35 cost= 2.35 drew=1 +FR 30715.44 gap= 8.37 cost= 2.39 drew=1 +FR 30723.77 gap= 8.31 cost= 2.37 drew=1 +FR 30732.10 gap= 8.25 cost= 2.29 drew=1 +FR 30740.44 gap= 8.48 cost= 2.43 drew=1 +FR 30748.77 gap= 8.41 cost= 2.51 drew=1 +FR 30757.10 gap= 7.86 cost= 2.03 drew=1 +FR 30765.44 gap= 8.76 cost= 2.46 drew=1 +FR 30773.77 gap= 8.24 cost= 2.37 drew=1 +FR 30782.10 gap= 8.43 cost= 2.47 drew=1 +FR 30790.44 gap= 8.27 cost= 2.41 drew=1 +FR 30798.77 gap= 8.39 cost= 2.46 drew=1 +FR 30807.10 gap= 8.30 cost= 2.43 drew=1 +FR 30815.44 gap= 8.27 cost= 2.37 drew=1 +FR 30823.77 gap= 8.30 cost= 2.34 drew=1 +FR 30832.10 gap= 8.31 cost= 2.32 drew=1 +FR 30840.43 gap= 8.38 cost= 2.36 drew=1 +FR 30848.77 gap= 8.29 cost= 2.32 drew=1 +FR 30857.10 gap= 8.41 cost= 2.39 drew=1 +FR 30865.43 gap= 8.04 cost= 2.10 drew=1 +FR 30873.76 gap= 8.57 cost= 2.34 drew=1 +FR 30882.10 gap= 8.08 cost= 2.09 drew=1 +FR 30890.43 gap= 8.67 cost= 2.42 drew=1 +FR 30898.76 gap= 8.27 cost= 2.36 drew=1 +FR 30907.10 gap= 8.37 cost= 2.40 drew=1 +FR 30915.43 gap= 8.26 cost= 2.32 drew=1 +FR 30923.76 gap= 8.30 cost= 2.29 drew=1 +FR 30932.10 gap= 8.33 cost= 2.28 drew=1 +FR 30940.43 gap= 8.35 cost= 2.30 drew=1 +FR 30948.76 gap= 8.33 cost= 2.30 drew=1 +FR 30957.10 gap= 8.11 cost= 2.07 drew=1 +FR 30965.43 gap= 8.58 cost= 2.33 drew=1 +FR 30973.76 gap= 8.43 cost= 2.43 drew=1 +FR 30982.10 gap= 8.33 cost= 2.43 drew=1 +FR 30990.43 gap= 8.35 cost= 2.45 drew=1 +FR 30998.76 gap= 8.33 cost= 2.45 drew=1 +FR 31007.09 gap= 8.32 cost= 2.43 drew=1 +FR 31015.43 gap= 8.29 cost= 2.39 drew=1 +FR 31023.76 gap= 8.30 cost= 2.36 drew=1 +FR 31032.09 gap= 8.33 cost= 2.36 drew=1 +FR 31040.42 gap= 8.29 cost= 2.32 drew=1 +FR 31048.76 gap= 8.29 cost= 2.27 drew=1 +FR 31057.12 gap= 8.40 cost= 2.31 drew=1 +FR 31065.42 gap= 8.35 cost= 2.35 drew=1 +FR 31073.76 gap= 9.09 cost= 3.11 drew=1 +FR 31082.09 gap= 8.54 cost= 3.32 drew=1 +FR 31090.42 gap= 8.57 cost= 3.55 drew=1 +FR 31098.76 gap= 8.03 cost= 3.25 drew=1 +FR 31107.09 gap= 8.47 cost= 3.38 drew=1 +FR 31115.42 gap= 7.87 cost= 2.92 drew=1 +FR 31123.76 gap= 8.16 cost= 2.75 drew=1 +FR 31132.09 gap= 8.15 cost= 2.57 drew=1 +FR 31140.42 gap= 8.74 cost= 2.97 drew=1 +FR 31148.76 gap= 8.13 cost= 2.76 drew=1 +FR 31157.09 gap= 8.23 cost= 2.66 drew=1 +FR 31165.42 gap= 8.16 cost= 2.49 drew=1 +FR 31173.76 gap= 8.44 cost= 2.60 drew=1 +FR 31182.09 gap= 8.35 cost= 2.62 drew=1 +FR 31190.42 gap= 8.32 cost= 2.60 drew=1 +FR 31198.75 gap= 8.28 cost= 2.55 drew=1 +FR 31207.08 gap= 8.40 cost= 2.62 drew=1 +FR 31215.42 gap= 8.42 cost= 2.70 drew=1 +FR 31223.75 gap= 8.06 cost= 2.42 drew=1 +FR 31232.08 gap= 8.47 cost= 2.56 drew=1 +FR 31240.42 gap= 8.25 cost= 2.48 drew=1 +FR 31248.75 gap= 8.39 cost= 2.53 drew=1 +FR 31257.08 gap= 8.23 cost= 2.43 drew=1 +FR 31265.42 gap= 8.23 cost= 2.33 drew=1 +FR 31273.75 gap= 8.44 cost= 2.43 drew=1 +FR 31282.08 gap= 8.46 cost= 2.56 drew=1 +FR 31290.42 gap= 8.73 cost= 2.96 drew=1 +FR 31298.75 gap= 7.97 cost= 2.60 drew=1 +FR 31307.08 gap= 8.33 cost= 2.60 drew=1 +FR 31315.41 gap= 8.17 cost= 2.43 drew=1 +FR 31323.75 gap= 8.26 cost= 2.36 drew=1 +FR 31332.08 gap= 8.37 cost= 2.40 drew=1 +FR 31340.41 gap= 8.29 cost= 2.36 drew=1 +FR 31348.75 gap= 8.37 cost= 2.40 drew=1 +FR 31357.08 gap= 7.94 cost= 2.01 drew=1 +FR 31365.41 gap= 8.81 cost= 2.48 drew=1 +FR 31373.74 gap= 8.17 cost= 2.32 drew=1 +FR 31382.08 gap= 8.39 cost= 2.38 drew=1 +FR 31390.41 gap= 8.45 cost= 2.50 drew=1 +FR 31398.74 gap= 8.04 cost= 2.20 drew=1 +FR 31407.08 gap= 8.88 cost= 2.74 drew=1 +FR 31415.41 gap= 7.94 cost= 2.35 drew=1 +FR 31423.74 gap= 8.42 cost= 2.44 drew=1 +FR 31432.08 gap= 8.33 cost= 2.43 drew=1 +FR 31440.41 gap= 8.42 cost= 2.52 drew=1 +FR 31448.74 gap= 8.23 cost= 2.42 drew=1 +FR 31457.08 gap= 8.98 cost= 3.06 drew=1 +FR 31465.41 gap= 8.14 cost= 2.87 drew=1 +FR 31473.74 gap= 8.49 cost= 3.03 drew=1 +FR 31482.07 gap= 7.87 cost= 2.56 drew=1 +FR 31490.41 gap= 8.64 cost= 2.86 drew=1 +FR 31498.74 gap= 8.28 cost= 2.81 drew=1 +FR 31507.07 gap= 8.36 cost= 2.84 drew=1 +FR 31515.41 gap= 8.31 cost= 2.82 drew=1 +FR 31523.74 gap= 8.27 cost= 2.75 drew=1 +FR 31532.07 gap= 8.28 cost= 2.71 drew=1 +FR 31540.40 gap= 8.29 cost= 2.66 drew=1 +FR 31548.74 gap= 8.72 cost= 3.05 drew=1 +FR 31557.07 gap= 8.00 cost= 2.72 drew=1 +FR 31565.40 gap= 8.01 cost= 2.39 drew=1 +FR 31573.74 gap= 8.85 cost= 2.90 drew=1 +FR 31582.07 gap= 8.13 cost= 2.71 drew=1 +FR 31590.40 gap= 8.32 cost= 2.69 drew=1 +FR 31598.74 gap= 8.08 cost= 2.44 drew=1 +FR 31607.07 gap= 8.64 cost= 2.74 drew=1 +FR 31615.40 gap= 8.26 cost= 2.67 drew=1 +FR 31623.74 gap= 8.30 cost= 2.64 drew=1 +FR 31632.07 gap= 8.38 cost= 2.69 drew=1 +FR 31640.40 gap= 8.28 cost= 2.64 drew=1 +FR 31648.73 gap= 8.02 cost= 2.33 drew=1 +FR 31657.07 gap= 8.38 cost= 2.38 drew=1 +FR 31665.40 gap= 8.60 cost= 2.65 drew=1 +FR 31673.73 gap= 8.01 cost= 2.33 drew=1 +FR 31682.07 gap= 8.54 cost= 2.53 drew=1 +FR 31690.40 gap= 8.20 cost= 2.40 drew=1 +FR 31698.73 gap= 8.32 cost= 2.39 drew=1 +FR 31707.06 gap= 8.47 cost= 2.52 drew=1 +FR 31715.40 gap= 8.12 cost= 2.31 drew=1 +FR 31723.73 gap= 8.37 cost= 2.34 drew=1 +FR 31732.06 gap= 8.35 cost= 2.36 drew=1 +FR 31740.40 gap= 8.28 cost= 2.31 drew=1 +FR 31748.73 gap= 8.36 cost= 2.33 drew=1 +FR 31757.06 gap= 8.39 cost= 2.39 drew=1 +FR 31765.40 gap= 8.00 cost= 2.06 drew=1 +FR 31773.73 gap= 8.64 cost= 2.37 drew=1 +FR 31782.06 gap= 8.31 cost= 2.35 drew=1 +FR 31790.40 gap= 8.39 cost= 2.40 drew=1 +FR 31798.73 gap= 8.27 cost= 2.34 drew=1 +FR 31807.06 gap= 8.35 cost= 2.35 drew=1 +FR 31815.39 gap= 8.28 cost= 2.30 drew=1 +FR 31823.73 gap= 8.36 cost= 2.33 drew=1 +FR 31832.06 gap= 8.33 cost= 2.32 drew=1 +FR 31840.39 gap= 8.31 cost= 2.29 drew=1 +FR 31848.73 gap= 8.38 cost= 2.33 drew=1 +FR 31857.06 gap= 8.34 cost= 2.34 drew=1 +FR 31865.39 gap= 8.33 cost= 2.34 drew=1 +FR 31873.72 gap= 8.44 cost= 2.44 drew=1 +FR 31882.06 gap= 8.21 cost= 2.31 drew=1 +FR 31890.39 gap= 8.42 cost= 2.41 drew=1 +FR 31898.72 gap= 8.31 cost= 2.38 drew=1 +FR 31907.06 gap= 8.33 cost= 2.38 drew=1 +FR 31915.39 gap= 8.22 cost= 2.27 drew=1 +FR 31923.72 gap= 8.35 cost= 2.28 drew=1 +FR 31932.06 gap= 8.38 cost= 2.33 drew=1 +FR 31940.39 gap= 8.31 cost= 2.30 drew=1 +FR 31948.72 gap= 8.31 cost= 2.28 drew=1 +FR 31957.06 gap= 8.36 cost= 2.31 drew=1 +FR 31965.39 gap= 7.97 cost= 1.94 drew=1 +FR 31973.73 gap= 8.89 cost= 2.50 drew=1 +FR 31982.05 gap= 8.26 cost= 2.42 drew=1 +FR 31990.39 gap= 8.28 cost= 2.37 drew=1 +FR 31998.72 gap= 8.40 cost= 2.44 drew=1 +FR 32007.05 gap= 8.25 cost= 2.36 drew=1 +FR 32015.39 gap= 8.17 cost= 2.19 drew=1 +FR 32023.72 gap= 8.38 cost= 2.24 drew=1 +FR 32032.05 gap= 8.43 cost= 2.33 drew=1 +FR 32040.38 gap= 8.32 cost= 2.32 drew=1 +FR 32048.72 gap= 8.34 cost= 2.33 drew=1 +FR 32057.05 gap= 8.35 cost= 2.35 drew=1 +FR 32065.38 gap= 8.05 cost= 2.06 drew=1 +FR 32073.72 gap= 8.58 cost= 2.31 drew=1 +FR 32082.05 gap= 8.46 cost= 2.44 drew=1 +FR 32090.38 gap= 8.27 cost= 2.38 drew=1 +FR 32098.72 gap= 8.41 cost= 2.46 drew=1 +FR 32107.05 gap= 8.25 cost= 2.38 drew=1 +FR 32115.38 gap= 8.26 cost= 2.31 drew=1 +FR 32123.72 gap= 8.33 cost= 2.31 drew=1 +FR 32132.05 gap= 8.31 cost= 2.28 drew=1 +FR 32140.38 gap= 8.10 cost= 2.05 drew=1 +FR 32148.71 gap= 8.65 cost= 2.37 drew=1 +FR 32157.05 gap= 8.34 cost= 2.38 drew=1 +FR 32165.38 gap= 7.86 cost= 1.90 drew=1 +FR 32173.71 gap= 8.90 cost= 2.47 drew=1 +FR 32182.05 gap= 8.28 cost= 2.41 drew=1 +FR 32190.38 gap= 8.28 cost= 2.36 drew=1 +FR 32198.71 gap= 8.34 cost= 2.37 drew=1 +FR 32207.05 gap= 8.34 cost= 2.38 drew=1 +FR 32215.38 gap= 8.32 cost= 2.37 drew=1 +FR 32223.71 gap= 8.48 cost= 2.51 drew=1 +FR 32232.04 gap= 8.22 cost= 2.39 drew=1 +FR 32240.38 gap= 8.35 cost= 2.41 drew=1 +FR 32248.71 gap= 8.37 cost= 2.44 drew=1 +FR 32257.04 gap= 8.37 cost= 2.48 drew=1 +FR 32265.38 gap= 8.25 cost= 2.40 drew=1 +FR 32273.71 gap= 8.26 cost= 2.33 drew=1 +FR 32282.04 gap= 8.43 cost= 2.43 drew=1 +FR 32290.38 gap= 8.37 cost= 2.46 drew=1 +FR 32298.71 gap= 8.35 cost= 2.48 drew=1 +FR 32307.04 gap= 8.40 cost= 2.54 drew=1 +FR 32315.37 gap= 8.23 cost= 2.44 drew=1 +FR 32323.71 gap= 8.28 cost= 2.39 drew=1 +FR 32332.04 gap= 8.39 cost= 2.45 drew=1 +FR 32340.37 gap= 8.25 cost= 2.36 drew=1 +FR 32348.71 gap= 8.39 cost= 2.42 drew=1 +FR 32357.04 gap= 8.46 cost= 2.54 drew=1 +FR 32365.37 gap= 8.29 cost= 2.51 drew=1 +FR 32373.71 gap= 8.22 cost= 2.39 drew=1 +FR 32382.04 gap= 8.52 cost= 2.58 drew=1 +FR 32390.37 gap= 8.24 cost= 2.49 drew=1 +FR 32398.70 gap= 8.23 cost= 2.39 drew=1 +FR 32407.04 gap= 8.39 cost= 2.44 drew=1 +FR 32415.37 gap= 8.23 cost= 2.34 drew=1 +FR 32423.71 gap= 7.99 cost= 2.00 drew=1 +FR 32432.04 gap= 8.79 cost= 2.45 drew=1 +FR 32440.37 gap= 8.33 cost= 2.45 drew=1 +FR 32448.70 gap= 8.26 cost= 2.38 drew=1 +FR 32457.03 gap= 8.12 cost= 2.16 drew=1 +FR 32465.37 gap= 8.09 cost= 1.92 drew=1 +FR 32473.70 gap= 8.96 cost= 2.55 drew=1 +FR 32482.03 gap= 8.22 cost= 2.43 drew=1 +FR 32490.37 gap= 8.41 cost= 2.51 drew=1 +FR 32498.70 gap= 8.39 cost= 2.57 drew=1 +FR 32507.03 gap= 8.17 cost= 2.40 drew=1 +FR 32515.37 gap= 8.42 cost= 2.49 drew=1 +FR 32523.70 gap= 8.27 cost= 2.43 drew=1 +FR 32532.03 gap= 8.32 cost= 2.41 drew=1 +FR 32540.37 gap= 7.95 cost= 2.03 drew=1 +FR 32548.70 gap= 8.69 cost= 2.38 drew=1 +FR 32557.03 gap= 8.43 cost= 2.48 drew=1 +FR 32565.36 gap= 8.28 cost= 2.42 drew=1 +FR 32573.70 gap= 8.25 cost= 2.34 drew=1 +FR 32582.03 gap= 8.48 cost= 2.50 drew=1 +FR 32590.36 gap= 8.14 cost= 2.31 drew=1 +FR 32598.70 gap= 8.59 cost= 2.56 drew=1 +FR 32607.03 gap= 8.26 cost= 2.49 drew=1 +FR 32615.36 gap= 8.15 cost= 2.31 drew=1 +FR 32623.69 gap= 8.41 cost= 2.38 drew=1 +FR 32632.03 gap= 8.27 cost= 2.32 drew=1 +FR 32640.36 gap= 8.29 cost= 2.27 drew=1 +FR 32648.69 gap= 8.44 cost= 2.38 drew=1 +FR 32657.03 gap= 8.24 cost= 2.29 drew=1 +FR 32665.36 gap= 7.78 cost= 1.73 drew=1 +FR 32673.69 gap= 9.03 cost= 2.43 drew=1 +FR 32682.03 gap= 7.89 cost= 1.99 drew=1 +FR 32690.36 gap= 8.78 cost= 2.43 drew=1 +FR 32698.69 gap= 8.28 cost= 2.38 drew=1 +FR 32707.03 gap= 8.58 cost= 2.63 drew=1 +FR 32715.36 gap= 8.02 cost= 2.32 drew=1 +FR 32723.69 gap= 8.39 cost= 2.38 drew=1 +FR 32732.02 gap= 8.43 cost= 2.47 drew=1 +FR 32740.36 gap= 8.25 cost= 2.39 drew=1 +FR 32748.69 gap= 8.24 cost= 2.29 drew=1 +FR 32757.02 gap= 8.02 cost= 1.98 drew=1 +FR 32765.36 gap= 8.18 cost= 1.83 drew=1 +FR 32773.69 gap= 8.83 cost= 2.33 drew=1 +FR 32782.02 gap= 8.36 cost= 2.36 drew=1 +FR 32790.36 gap= 8.41 cost= 2.43 drew=1 +FR 32798.69 gap= 8.28 cost= 2.37 drew=1 +FR 32807.02 gap= 8.39 cost= 2.43 drew=1 +FR 32815.35 gap= 8.15 cost= 2.24 drew=1 +FR 32823.69 gap= 8.43 cost= 2.34 drew=1 +FR 32832.02 gap= 8.29 cost= 2.29 drew=1 +FR 32840.35 gap= 8.40 cost= 2.36 drew=1 +FR 32848.69 gap= 8.21 cost= 2.24 drew=1 +FR 32857.02 gap= 8.38 cost= 2.29 drew=1 +FR 32865.35 gap= 8.10 cost= 2.06 drew=1 +FR 32873.68 gap= 8.57 cost= 2.29 drew=1 +FR 32882.02 gap= 8.10 cost= 2.06 drew=1 +FR 32890.35 gap= 8.82 cost= 2.55 drew=1 +FR 32898.68 gap= 8.20 cost= 2.41 drew=1 +FR 32907.02 gap= 7.86 cost= 1.94 drew=1 +FR 32915.35 gap= 8.75 cost= 2.36 drew=1 +FR 32923.68 gap= 8.23 cost= 2.26 drew=1 +FR 32932.02 gap= 8.40 cost= 2.33 drew=1 +FR 32940.35 gap= 8.35 cost= 2.34 drew=1 +FR 32948.68 gap= 8.31 cost= 2.32 drew=1 +FR 32957.01 gap= 8.07 cost= 2.06 drew=1 +FR 32965.35 gap= 8.57 cost= 2.29 drew=1 +FR 32973.68 gap= 8.42 cost= 2.38 drew=1 +FR 32982.01 gap= 8.32 cost= 2.36 drew=1 +FR 32990.35 gap= 8.32 cost= 2.35 drew=1 +FR 32998.68 gap= 8.29 cost= 2.30 drew=1 +FR 33007.01 gap= 8.30 cost= 2.27 drew=1 +FR 33015.35 gap= 8.12 cost= 2.06 drew=1 +FR 33023.68 gap= 8.48 cost= 2.20 drew=1 +FR 33032.01 gap= 8.30 cost= 2.17 drew=1 +FR 33040.35 gap= 8.48 cost= 2.32 drew=1 +FR 33048.68 gap= 8.33 cost= 2.32 drew=1 +FR 33057.01 gap= 7.91 cost= 1.90 drew=1 +FR 33065.34 gap= 8.79 cost= 2.35 drew=1 +FR 33073.68 gap= 8.32 cost= 2.34 drew=1 +FR 33082.01 gap= 8.35 cost= 2.35 drew=1 +FR 33090.34 gap= 8.05 cost= 2.07 drew=1 +FR 33098.68 gap= 8.62 cost= 2.36 drew=1 +FR 33107.01 gap= 8.67 cost= 2.69 drew=1 +FR 33115.34 gap= 7.92 cost= 2.28 drew=1 +FR 33123.68 gap= 8.46 cost= 2.41 drew=1 +FR 33132.01 gap= 8.19 cost= 2.27 drew=1 +FR 33140.34 gap= 8.33 cost= 2.27 drew=1 +FR 33148.67 gap= 8.29 cost= 2.22 drew=1 +FR 33157.01 gap= 8.07 cost= 1.96 drew=1 +FR 33165.34 gap= 8.68 cost= 2.31 drew=1 +FR 33173.67 gap= 8.46 cost= 2.44 drew=1 +FR 33182.01 gap= 8.29 cost= 2.39 drew=1 +FR 33190.34 gap= 8.28 cost= 2.34 drew=1 +FR 33198.67 gap= 8.26 cost= 2.26 drew=1 +FR 33207.00 gap= 8.42 cost= 2.35 drew=1 +FR 33215.34 gap= 8.86 cost= 2.88 drew=1 +FR 33223.67 gap= 8.01 cost= 2.56 drew=1 +FR 33232.00 gap= 8.89 cost= 3.11 drew=1 +FR 33240.34 gap= 7.74 cost= 2.52 drew=1 +FR 33248.67 gap= 8.34 cost= 2.52 drew=1 +FR 33257.00 gap= 8.22 cost= 2.41 drew=1 +FR 33265.34 gap= 7.42 cost= 1.49 drew=1 +FR 33273.67 gap= 8.19 cost= 1.35 drew=1 +FR 33282.00 gap= 8.85 cost= 1.86 drew=1 +FR 33290.33 gap= 9.11 cost= 2.64 drew=1 +FR 33298.67 gap= 8.35 cost= 2.66 drew=1 +FR 33307.00 gap= 8.06 cost= 2.38 drew=1 +FR 33315.33 gap= 8.19 cost= 2.24 drew=1 +FR 33323.67 gap= 8.28 cost= 2.18 drew=1 +FR 33332.00 gap= 8.50 cost= 2.35 drew=1 +FR 33340.33 gap= 8.32 cost= 2.33 drew=1 +FR 33348.67 gap= 8.21 cost= 2.21 drew=1 +FR 33357.00 gap= 9.09 cost= 2.96 drew=1 +FR 33365.33 gap= 7.14 cost= 1.76 drew=1 +FR 33373.67 gap= 9.51 cost= 2.95 drew=1 +FR 33382.00 gap= 8.23 cost= 2.85 drew=1 +FR 33390.33 gap= 8.52 cost= 3.03 drew=1 +FR 33398.66 gap= 8.06 cost= 2.76 drew=1 +FR 33407.00 gap= 8.63 cost= 3.06 drew=1 +FR 33415.33 gap= 8.17 cost= 2.90 drew=1 +FR 33423.66 gap= 8.67 cost= 3.23 drew=1 +FR 33432.00 gap= 8.05 cost= 2.95 drew=1 +FR 33440.33 gap= 8.21 cost= 2.83 drew=1 +FR 33448.66 gap= 8.24 cost= 2.74 drew=1 +FR 33457.00 gap= 8.23 cost= 2.63 drew=1 +FR 33465.33 gap= 7.47 cost= 1.77 drew=1 +FR 33473.66 gap= 8.74 cost= 2.18 drew=1 +FR 33481.99 gap= 8.38 cost= 2.23 drew=1 +FR 33490.33 gap= 8.75 cost= 2.65 drew=1 +FR 33498.66 gap= 7.86 cost= 2.17 drew=1 +FR 33506.99 gap= 8.19 cost= 2.03 drew=1 +FR 33515.33 gap= 8.26 cost= 1.96 drew=1 +FR 33523.66 gap= 8.09 cost= 1.72 drew=1 +FR 33531.99 gap= 8.47 cost= 1.86 drew=1 +FR 33540.32 gap= 8.89 cost= 2.42 drew=1 +FR 33548.66 gap= 8.43 cost= 2.51 drew=1 +FR 33556.99 gap= 8.52 cost= 2.70 drew=1 +FR 33565.33 gap= 8.26 cost= 2.62 drew=1 +FR 33573.66 gap= 8.10 cost= 2.39 drew=1 +FR 33581.99 gap= 9.03 cost= 3.09 drew=1 +FR 33590.32 gap= 8.20 cost= 2.96 drew=1 +FR 33598.66 gap= 8.10 cost= 2.72 drew=1 +FR 33606.99 gap= 8.38 cost= 2.77 drew=1 +FR 33615.32 gap= 8.00 cost= 2.43 drew=1 +FR 33623.65 gap= 8.15 cost= 2.25 drew=1 +FR 33631.99 gap= 8.49 cost= 2.40 drew=1 diff --git a/tools/fr_capture.py b/tools/fr_capture.py new file mode 100644 index 0000000..d4cede3 --- /dev/null +++ b/tools/fr_capture.py @@ -0,0 +1,215 @@ +#!/usr/bin/env python3 +""" +fr_capture.py — end-to-end 120 Hz scroll-jank capture for FR-line apps +(egtest / sltest family). + +The jank_eval/jank_capture pair needs Slint's vendored PRES/VSYNC lines; +FR-line harnesses (sltest, egtest) log app-side frame gaps instead. This +tool runs the same disciplined capture pipeline and the same referee that +produced the sltest reference numbers (drops = present gaps > 1.8x the +median, within one process's log): + + fr_capture.py capture --app wow.gmp.egtest --flicks 5 [--tag egui031] + + 1. device + build identity (apk sha256, versionName) -> PROVENANCE + 2. force-stop, DELETE fr.log (one process per file) + 3. cold launch, verify ResumedActivity + 4. scripted flicks: N fast swipes (350 ms, 1600 px) with 2 s settles, + one slow drag (1200 ms) in the middle + 5. verify still ResumedActivity, force-stop + 6. pull the complete log (exactly one process) + 7. report: provenance + gap verdict + per-drop context + (t, gap, neighbours — isolated vs chain) + render-cost stats + +Exit: 0 = no drops, 1 = drops found / invalid capture. +fr_capture.py report FILE.log re-analyze a pulled log +fr_capture.py --selftest offline validation + +Note (honesty): the gap clock is the APP's clock (swap-completion to +swap-completion), not the display slot grid. That is the same referee +used for all sltest A/B numbers, which keeps egtest-vs-sltest +apples-to-apples; jank_eval's slot grid remains the stricter referee +for builds that emit PRES/VSYNC. +""" +import argparse, hashlib, os, re, subprocess, sys, time + +ADB_SERIAL = os.environ.get("ADB_SERIAL", "") +FR_RE = re.compile(r"^FR\s+([\d.]+)\s+gap=\s*([\d.]+)\s+cost=\s*([\d.]+)\s+drew=(\d)") + +def adb(*args, timeout=120): + cmd = ["adb"] + if ADB_SERIAL: cmd += ["-s", ADB_SERIAL] + cmd += list(args) + return subprocess.run(cmd, capture_output=True, text=True, timeout=timeout) + +def adb_shell(cmd, timeout=120): + return adb("shell", cmd, timeout=timeout) + +# ------------------------------------------------------------------ analysis +def analyze(lines, label="log"): + frames = [] + for ln in lines: + m = FR_RE.match(ln.strip()) + if m: + frames.append((float(m.group(1)), float(m.group(2)), + float(m.group(3)), int(m.group(4)))) + if len(frames) < 30: + print(f" {label}: only {len(frames)} FR lines — nothing to judge"); + return None + # drop the first frame (gap=0) and process-suspend artifacts + gaps = [(t, g, c) for (t, g, c, d) in frames[1:] if 0 < g < 200] + if len(gaps) < 20: + print(f" {label}: only {len(gaps)} usable gaps — nothing to judge"); + return None + gs = sorted(g for (_, g, _) in gaps) + med = gs[len(gs) // 2] + p90 = gs[int(len(gs) * 0.90)] + p99 = gs[int(len(gs) * 0.99)] + mx = gs[-1] + thr = 1.8 * med + drops = [(t, g) for (t, g, _) in gaps if g > thr] + cs = sorted(c for (_, _, c) in gaps) + return { + "n": len(gaps), "med": med, "p90": p90, "p99": p99, "max": mx, + "thr": thr, "drops": drops, + "fps": 1000.0 / med, + "cost_med": cs[len(cs) // 2], "cost_p99": cs[int(len(cs) * 0.99)], + "cost_max": cs[-1], + "frames": frames, + } + +def print_report(res, title=""): + if res is None: + return 1 + drops = res["drops"] + pct = 100.0 * len(drops) / res["n"] + print(f"\n=== JANK (gap referee, {title}) ===") + print(f"frames={res['n']} median gap={res['med']:.2f} ms (~{res['fps']:.0f} fps)") + print(f"p90={res['p90']:.2f} p99={res['p99']:.2f} max={res['max']:.2f} " + f"threshold={res['thr']:.2f} ms (1.8x med)") + print(f"render cost: med={res['cost_med']:.2f} ms p99={res['cost_p99']:.2f} " + f"max={res['cost_max']:.2f}") + print(f"DROPS: {len(drops)} of {res['n']} ({pct:.2f}%)") + if drops: + print(f"{'t(ms)':>10} {'gap(ms)':>9} context (prev, next gap)") + shown = 0 + for i, (t, g, c, d) in enumerate(res["frames"][1:], start=1): + if g > res["thr"]: + p = res["frames"][i - 1][1] if i >= 1 else 0.0 + n = res["frames"][i + 1][1] if i + 1 < len(res["frames"]) else 0.0 + kind = "chain" if (p > res["thr"] or n > res["thr"]) else "isolated" + print(f"{t:10.1f} {g:9.2f} prev={p:7.2f} next={n:7.2f} {kind}") + shown += 1 + if shown >= 25: + print(f"... {len(drops) - 25} more") + break + return 0 if not drops else 1 + +# -------------------------------------------------------------------- capture +def capture(app, flicks, tag=""): + ok = True + r = adb_shell("getprop ro.boot.cpu; getprop ro.product.model") + print("=== CAPTURE ===") + print(f"device: serial={ADB_SERIAL or '(default)'} model={r.stdout.strip()!r}") + + # build identity + path = adb_shell(f"pm path {app}").stdout.strip().replace("package:", "").strip() + sha = adb_shell(f"sha256sum {path}").stdout.split()[0] if path else "?" + ver = adb_shell(f"dumpsys package {app} | grep versionName | head -1").stdout.strip() + print(f"app: {app} {ver} apk sha256={sha[:16]}… tag={tag or '-'}") + if not path: + print("INVALID: package not installed"); return 1 + + log = f"/sdcard/Android/data/{app}/files/fr.log" + + adb_shell(f"am force-stop {app}"); time.sleep(1.5) + adb_shell(f"rm -f {log}"); time.sleep(0.5) + adb_shell(f"am start -n {app}/android.app.NativeActivity") + time.sleep(6) + r = adb_shell("dumpsys activity activities | grep ResumedActivity") + if app not in r.stdout: + print("INVALID: app not ResumedActivity after cold launch"); return 1 + print("launched (ResumedActivity verified)") + + # scripted drags + H = 2856 + flick = f"input swipe 640 {int(H*0.77)} 640 {int(H*0.21)} 350" + slow = f"input swipe 640 {int(H*0.77)} 640 {int(H*0.21)} 1200" + for i in range(flicks): + if i == flicks // 2: + adb_shell(slow); time.sleep(3.0) + else: + adb_shell(flick); time.sleep(2.0) + if i % 2 == 0: # flip direction to cover up-scrolls too + adb_shell("input swipe 640 600 640 2200 350"); time.sleep(2.0) + time.sleep(2.0) + + r = adb_shell("dumpsys activity activities | grep ResumedActivity") + adb_shell(f"am force-stop {app}"); time.sleep(1.0) + if app not in r.stdout: + print("WARNING: app not resumed right before stop (backgrounded?)") + + dest = os.path.join(os.path.dirname(os.path.abspath(__file__)), f".fr_{app.replace('.','_')}.log") + r = adb("pull", log, dest, timeout=300) + if r.returncode != 0: + print(f"INVALID: log pull failed: {r.stderr.strip()}"); return 1 + with open(dest) as f: + lines = f.readlines() + print(f"pulled {len(lines)} lines -> {dest}") + res = analyze(lines, label="capture") + rc = print_report(res, title=tag or app) + return rc + +# -------------------------------------------------------------------- selftest +def selftest(): + # synthetic: 1200 frames at 8.33 ms, 4 injected drops (two chains) + lines, t, prev = [], 0.0, None + import random; random.seed(7) + for i in range(1200): + gap = 8.33 + random.uniform(-0.15, 0.15) + if i in (300, 301, 700, 1100): + gap = 25.0 + t += gap + lines.append(f"FR {t:11.2f} gap={gap:7.2f} cost={2.0:6.2f} drew=1") + lines.insert(0, "FR 0.00 gap= 0.00 cost=180.00 drew=1") + res = analyze(lines) + assert res is not None + assert res["n"] == 1200, res["n"] + assert len(res["drops"]) == 4, res["drops"] + assert abs(res["med"] - 8.33) < 0.05 + # no-drop case + lines2, t = [], 0.0 + for i in range(1200): + gap = 8.33 + random.uniform(-0.1, 0.1) + t += gap + lines2.append(f"FR {t:11.2f} gap={gap:7.2f} cost=2.00 drew=1") + res2 = analyze(lines2) + assert len(res2["drops"]) == 0 + # too-small case + assert analyze(["FR 0 0 0 1"] * 5) is None + print("selftest OK (drop detection, clean case, short-log case)") + return 0 + +def main(): + ap = argparse.ArgumentParser() + sub = ap.add_subparsers(dest="cmd") + c = sub.add_parser("capture") + c.add_argument("--app", required=True) + c.add_argument("--flicks", type=int, default=6) + c.add_argument("--tag", default="") + r = sub.add_parser("report") + r.add_argument("file") + ap.add_argument("--selftest", action="store_true") + a = ap.parse_args() + if a.selftest: + return selftest() + if a.cmd == "capture": + return capture(a.app, a.flicks, a.tag) + if a.cmd == "report": + with open(a.file) as f: + return print_report(analyze(f.readlines()), title=a.file) + ap.print_help() + return 2 + +if __name__ == "__main__": + sys.exit(main())