From d58e0c53baa4f1580735928427bd65e49d670524 Mon Sep 17 00:00:00 2001 From: facelessuser Date: Mon, 24 Aug 2026 21:05:09 -0600 Subject: [PATCH 1/6] Make special gamuts a plugin --- coloraide/__meta__.py | 2 +- coloraide/color.py | 38 ++- coloraide/gamut/__init__.py | 32 +- coloraide/gamut/macadam_limits.py | 156 +++++++++ coloraide/gamut/pointer.py | 237 ++++++------- coloraide/gamut/rosch_macadam_solid.py | 4 +- coloraide/gamut/visible_spectrum.py | 320 ++++++------------ docs/src/markdown/about/changelog.md | 5 + docs/src/markdown/examples/3d_models.html | 8 +- docs/src/markdown/examples/colorpicker.html | 2 +- docs/src/markdown/gamut.md | 14 +- docs/src/markdown/plugins/gamut.md | 44 +++ docs/src/zensical.yml | 13 +- ...79e55.js => playground-config-40d8f59a.js} | 4 +- pyproject.toml | 3 +- tests/test_gamut.py | 8 +- tools/calc_visible_spectrum_lut.py | 2 + tools/cie_diagrams.py | 4 +- tools/gamut_3d_diagram.py | 6 +- tools/in_pointer_gamut_diagram.py | 6 +- tools/slice_diagram.py | 2 +- zensical.yml | 11 +- 22 files changed, 518 insertions(+), 403 deletions(-) create mode 100644 coloraide/gamut/macadam_limits.py create mode 100644 docs/src/markdown/plugins/gamut.md rename docs/theme/{playground-config-23379e55.js => playground-config-40d8f59a.js} (71%) diff --git a/coloraide/__meta__.py b/coloraide/__meta__.py index a737ffb15..702db4620 100644 --- a/coloraide/__meta__.py +++ b/coloraide/__meta__.py @@ -204,5 +204,5 @@ def parse_version(ver: str) -> Version: return Version(major, minor, micro, release, pre, post, dev) -__version_info__ = Version(8, 12, 1, "final") +__version_info__ = Version(8, 13, 0, "final") __version__ = __version_info__._get_canonical() diff --git a/coloraide/color.py b/coloraide/color.py index e2128e09f..f4b2ebbe4 100644 --- a/coloraide/color.py +++ b/coloraide/color.py @@ -63,13 +63,16 @@ from .distance.delta_e_z import DEZ from .contrast import ColorContrast from .contrast.wcag21 import WCAG21Contrast -from .gamut import Fit +from .gamut import Fit, Gamut from .gamut.fit_minde_chroma import MINDEChroma from .gamut.fit_lch_chroma import LChChroma from .gamut.fit_oklch_chroma import OkLChChroma from .gamut.fit_raytrace import RayTrace from .gamut.fit_scale import Scale from .gamut.fit_scale_luminance import ScaleLuminance +from .gamut.pointer import PointerGamut +from .gamut.macadam_limits import MacAdamLimits +from .gamut.visible_spectrum import VisibleSpectrum from .cat import CAT, Bradford from .filters import Filter from .filters.w3c_filter_effects import Sepia, Brightness, Contrast, Saturate, Opacity, HueRotate, Grayscale, Invert @@ -138,6 +141,7 @@ def __init__(cls, name: str, bases: tuple[object, ...], clsdict: dict[str, Any]) cls.CONTRAST_MAP = cls.CONTRAST_MAP.copy() # type: dict[str, ColorContrast] cls.INTERPOLATE_MAP = cls.INTERPOLATE_MAP.copy() # type: dict[str, Interpolate] cls.CCT_MAP = cls.CCT_MAP.copy() # type: dict[str, CCT] + cls.GAMUT_MAP = cls.GAMUT_MAP.copy() # type: dict[str, Gamut] # Ensure each derived class tracks its own conversion paths for color spaces # relative to the installed color space plugins. @@ -166,6 +170,7 @@ class Color(metaclass=ColorMeta): FILTER_MAP = {} # type: dict[str, Filter] INTERPOLATE_MAP = {} # type: dict[str, Interpolate] CCT_MAP = {} # type: dict[str, CCT] + GAMUT_MAP = {} # type: dict[str, Gamut] PRECISION = util.DEF_PREC ROUNDING = util.DEF_ROUND_MODE FIT = util.DEF_FIT @@ -377,8 +382,13 @@ def register( mapping = cls.CS_MAP reset_convert_cache = True p = i - if p.NAME in gamut.SPECIAL_GAMUTS: - raise ValueError(f"Color space name '{p.NAME}' conflicts with the an internal, special gamut") + if p.NAME in cls.GAMUT_MAP: + raise ValueError(f"Color space '{p.NAME}' conflicts with gamut {p.NAME}") + elif isinstance(i, Gamut): + mapping = cls.GAMUT_MAP + p = i + if p.NAME in cls.CS_MAP: + raise ValueError(f"Gamut {p.NAME} conflicts with color space {p.NAME}") elif isinstance(i, DeltaE): mapping = cls.DE_MAP p = i @@ -441,12 +451,15 @@ def deregister(cls, plugin: str | Sequence[str], *, silent: bool = False) -> Non cls.INTERPOLATE_MAP.clear() cls.CCT_MAP.clear() cls.FIT_MAP.clear() + cls.GAMUT_MAP.clear() return ptype, name = p.split(':', 1) if ptype == 'space': mapping = cls.CS_MAP reset_convert_cache = True + elif ptype == 'gamut': + mapping = cls.GAMUT_MAP elif ptype == "delta-e": mapping = cls.DE_MAP elif ptype == 'cat': @@ -1038,8 +1051,9 @@ def fit( return self.clip(space) # Handle special gamut requests - if space in gamut.SPECIAL_GAMUTS: - return cast('Self', gamut.SPECIAL_GAMUTS[space]['fit'](self, **kwargs)) + if space in self.GAMUT_MAP: + cast('Self', self.GAMUT_MAP[space].fit(self, method=method, **kwargs)) + return self # If within gamut, just normalize hue range by calling clip. if self.in_gamut(space, tolerance=0): @@ -1072,8 +1086,8 @@ def in_gamut(self, space: str | None = None, *, tolerance: float | None = None, tolerance = util.DEF_FIT_TOLERANCE # Handle special gamut requests - if space in gamut.SPECIAL_GAMUTS: - return cast('bool', gamut.SPECIAL_GAMUTS[space]['check'](self, tolerance=tolerance, **kwargs)) + if space in self.GAMUT_MAP: + return cast('bool', self.GAMUT_MAP[space].in_gamut(self, tolerance=tolerance, **kwargs)) # Check if gamut is in the provided space c = self.convert(space, norm=False) if space is not None and space != self.space() else self @@ -1093,13 +1107,14 @@ def in_gamut(self, space: str | None = None, *, tolerance: float | None = None, def in_pointer_gamut(self, *, tolerance: float = util.DEF_FIT_TOLERANCE) -> bool: # pragma: no cover """Check if in pointer gamut.""" - return gamut.pointer.in_pointer_gamut(self, tolerance) + return self.GAMUT_MAP['pointer-gamut'].in_gamut(self, tolerance) @deprecated("`color.fit_pointer_gamut()` has been deprecated in favor of using `color.fit('pointer-gamut')`") def fit_pointer_gamut(self) -> Self: # pragma: no cover """Check if in pointer gamut.""" - return gamut.pointer.fit_pointer_gamut(self) + self.GAMUT_MAP['pointer-gamut'].fit(self) + return self def mask(self, channel: str | Sequence[str], *, invert: bool = False, in_place: bool = False) -> Self: """Mask color channels.""" @@ -1689,6 +1704,11 @@ def alpha( ProPhotoRGB(), ProPhotoRGBLinear(), + # Gamuts + PointerGamut(), + VisibleSpectrum(), + MacAdamLimits(), + # CAT Bradford(), diff --git a/coloraide/gamut/__init__.py b/coloraide/gamut/__init__.py index 7ab6b34df..e7e5425e3 100644 --- a/coloraide/gamut/__init__.py +++ b/coloraide/gamut/__init__.py @@ -3,8 +3,6 @@ import math from abc import ABCMeta, abstractmethod from functools import lru_cache -from . import pointer -from . import visible_spectrum from .. import util from .. import algebra as alg from ..channels import FLG_ANGLE @@ -19,22 +17,7 @@ if TYPE_CHECKING: #pragma: no cover from ..color import Color -__all__ = ('clip_channels', 'verify', 'Fit', 'pointer', 'visible_spectrum', 'scale_rgb', 'coerce_to_rgb') - -SPECIAL_GAMUTS = { - 'pointer-gamut': { - 'check': pointer.in_pointer_gamut, - 'fit': pointer.fit_pointer_gamut - }, - 'macadam-limits': { - 'check': visible_spectrum.in_macadam_limits, - 'fit': visible_spectrum.fit_macadam_limits - }, - 'visible-spectrum': { - 'check': visible_spectrum.in_visible_spectrum, - 'fit': visible_spectrum.fit_visible_spectrum - } -} # type: dict[str, dict[str, Callable[..., Any]]] +__all__ = ('clip_channels', 'verify', 'Fit', 'Gamut', 'scale_rgb', 'coerce_to_rgb') def hwb_to_srgb(coords: Vector) -> Vector: # pragma: no cover @@ -267,3 +250,16 @@ class Fit(Plugin, metaclass=ABCMeta): @abstractmethod def fit(self, color: Color, space: str, **kwargs: Any) -> None: """Get coordinates of the new gamut mapped color.""" + + +class Gamut(Plugin, metaclass=ABCMeta): + """Gamut plugin class.""" + + @abstractmethod + def in_gamut(self, color: Color, tolerance: float, **kwargs: Any) -> bool: + """Check if in gamut.""" + + + @abstractmethod + def fit(self, color: Color, **kwargs: Any) -> None: + """Check if in gamut.""" diff --git a/coloraide/gamut/macadam_limits.py b/coloraide/gamut/macadam_limits.py new file mode 100644 index 000000000..3e820b581 --- /dev/null +++ b/coloraide/gamut/macadam_limits.py @@ -0,0 +1,156 @@ +"""Check if color is in Rösch-MacAdam color solid (MacAdam limits).""" +from __future__ import annotations +import bisect +from . import Gamut +from .. import util +from .. import algebra as alg +from ..cat import WHITES +from ..types import Matrix +from .rosch_macadam_solid import LUT, LUMINANCE, HUE +from typing import TYPE_CHECKING, Any + +if TYPE_CHECKING: #pragma: no cover + from ..color import Color + +XYw = WHITES['2deg']['D65'] +XYZ_D65 = util.xy_to_xyz(WHITES['2deg']['D65']) + + +def macadam_limits(luminance: float | None = None) -> Matrix: + """ + Calculate the visible Macadam limit boundary points for the given lightness. + + If no lightness is provided, calculate the maximum boundary. + Result is returned as xyY coordinates (in the D65 illuminant). + """ + + # Maximum Pointer gamut boundary + # For each hue, find the lightness/chroma point that is furthest away from the white point. + if luminance is None: + return [[*alg.add(alg.polar_to_rect(LUT[i][1], h), XYw), 1] for i, h in enumerate(HUE[:-1])] + + # Pointer gamut boundary at a given lightness + # Return all the points for a given lightness + elif LUMINANCE[0] <= luminance <= LUMINANCE[-1]: + # Handle too low lightness inside tolerance + if luminance <= LUMINANCE[0]: + li = 0 + lf = 0.0 + + # Handle too high lightness inside tolerance + elif luminance >= LUMINANCE[-1]: + li = len(LUMINANCE) - 2 + lf = 1.0 + + # Handle lightness within gamut + else: + li = bisect.bisect(LUMINANCE, luminance) - 1 + l1, l2 = LUMINANCE[li:li + 2] + lf = 1 - (l2 - luminance) / (l2 - l1) + chroma = [alg.lerp(row[li], row[li + 1], lf) for row in LUT[:-1]] + return [[*alg.add(alg.polar_to_rect(c, h), XYw, dims=alg.D1), luminance] for c, h in zip(chroma, HUE[:-1])] + + # Luminance exceeds threshold + else: + raise ValueError(f'Luminance must be between {LUMINANCE[0]} and {LUMINANCE[-1]}, but was {luminance}') + + +class MacAdamLimits(Gamut): + """The Rösch-MacAdam color solid (MacAdam limits).""" + + NAME = 'macadam-limits' + LIGHTNESS = LUMINANCE + HUE = HUE + + def closest_lightness(self, l: float) -> tuple[int, float]: + """Calculate the two closest lightness values and return the first index and interpolation factor.""" + + # Handle too low lightness inside tolerance + if l <= self.LIGHTNESS[0]: + li = 0 + lf = 0.0 + + # Handle too high lightness inside tolerance + elif l >= self.LIGHTNESS[-1]: + li = len(self.LIGHTNESS) - 2 + lf = 1.0 + + # Handle lightness within gamut + else: + li = bisect.bisect(self.LIGHTNESS, l) - 1 + l1, l2 = self.LIGHTNESS[li:li + 2] + lf = 1 - (l2 - l) / (l2 - l1) + + return li, lf + + def closest_hue(self, h: float) -> tuple[int, float]: + """Calculate the two closest hues and return the first index and interpolation factor.""" + + # Handle hue at the start + if h == self.HUE[0]: # pragma: no cover + hi = 0 + hf = 0.0 + + # Handle hue at the end + elif h == self.HUE[-1]: # pragma: no cover + hi = len(self.HUE) - 2 + hf = 1.0 + + # Handle all other hues + else: + hi = bisect.bisect(self.HUE, h) - 1 + h1, h2 = self.HUE[hi:hi + 2] + hf = 1 - (h2 - h) / (h2 - h1) + + return hi, hf + + def get_chroma_limit(self, l: float, h: float) -> float: + """Get the chroma limit.""" + + # Find the two closest lightness columns and calculate the needed interpolation factor. + li, lf = self.closest_lightness(l) + + # Find the two closest hue rows and calculate the needed interpolation factor. + hi, hf = self.closest_hue(h) + + # Interpolate the chroma limit by interpolating chroma values for the closest lightness values and hues. + row1, row2 = LUT[hi:hi + 2] + return alg.lerp(alg.lerp(row1[li], row1[li + 1], lf), alg.lerp(row2[li], row2[li + 1], lf), hf) + + def in_gamut(self, color: Color, tolerance: float, **kwargs: Any) -> bool: + """Test if in gamut.""" + + # Convert to xyY + xyz = (color.convert('xyz-d65', norm=False) if color.space() != 'xyz-d65' else color.normalize(nans=False))[:-1] + x, y, Y = util.xyz_to_xyY(xyz, WHITES['2deg']['D65']) + # Operate in a polar configuration + c, h = alg.rect_to_polar(*alg.subtract((x, y), WHITES['2deg']['D65'], dims=alg.D1)) + + # If lightness exceeds the acceptable range, then we are not in gamut + if (Y < (self.LIGHTNESS[0] - tolerance)) or (Y > (self.LIGHTNESS[-1] + tolerance)): + return False + + # Test that the color does not exceed the max chroma + return c <= (self.get_chroma_limit(Y, h) + tolerance) + + def fit(self, color, **kwargs: Any) -> None: + """Fit to gamut.""" + + # Convert to xyY + xyz = (color.convert('xyz-d65', norm=False) if color.space() != 'xyz-d65' else color.normalize(nans=False))[:-1] + x, y, Y = util.xyz_to_xyY(xyz, WHITES['2deg']['D65']) + # Operate in a polar configuration + c, h = alg.rect_to_polar(*alg.subtract((x, y), WHITES['2deg']['D65'], dims=alg.D1)) + + # Clamp lightness + new_Y = min(self.LIGHTNESS[-1], max(self.LIGHTNESS[0], Y)) + + # Get optimal chromaticity points + new_c = min(c, self.get_chroma_limit(Y, h)) + x, y = alg.add(alg.polar_to_rect(new_c, h), WHITES['2deg']['D65'], dims=alg.D1) + + # Check if we made any changes + adjusted = Y != new_Y or c != new_c + + # Adjust original color only if a modification was made + color.update(color.new('xyz-d65', util.xy_to_xyz((x, y), new_Y), color[-1])) if adjusted else color diff --git a/coloraide/gamut/pointer.py b/coloraide/gamut/pointer.py index ee84a9397..b7f9408e9 100644 --- a/coloraide/gamut/pointer.py +++ b/coloraide/gamut/pointer.py @@ -12,6 +12,7 @@ from .. import util from ..types import Vector, Matrix, AnyColor, VectorLike # noqa: F401 from typing import TYPE_CHECKING, Any +from . import Gamut if TYPE_CHECKING: #pragma: no cover from ..color import Color @@ -64,156 +65,162 @@ ] -def lch_sc_to_xyY(lch: Vector) -> Vector: - """Convert from LCh to xy coordinates.""" - - return util.xyz_to_xyY(lab_to_xyz(lch_to_lab(lch), XYZ_W), XYZ_W) - - -def to_lch_sc(color: Color) -> Vector: - """Convert a color to LCh with an SC illuminant.""" - - xyz = color.convert('xyz-d65').normalize(nans=False) - xyz_sc = color.chromatic_adaptation(xyz._space.WHITE, WHITE_POINT_SC, xyz[:-1]) - return lab_to_lch(xyz_to_lab(xyz_sc, XYZ_W)) - - -def from_lch_sc(color: AnyColor, lch: Vector) -> AnyColor: - """Convert a color from LCh with an SC illuminant.""" +def pointer_gamut_boundary(lightness: float | None = None) -> Matrix: + """ + Calculate the Pointer gamut boundary points for the given lightness. - xyz_sc = lab_to_xyz(lch_to_lab(lch), XYZ_W) - xyz_d65 = color.chromatic_adaptation(WHITE_POINT_SC, color.CS_MAP['xyz-d65'].WHITE, xyz_sc) - return color.update('xyz-d65', xyz_d65, color[-1]) + If no lightness is provided, calculate the maximum pointer boundary. + Result is returned as xyY coordinates (C illuminant). + """ + # Maximum Pointer gamut boundary + # For each hue, find the lightness/chroma point that is furthest away from the white point. + if lightness is None: + max_gamut = [] # type: Matrix + for i, h in enumerate(HUE[:-1]): + max_dxy = 0.0 + max_xyy = [0.0, 0.0, 0.0] + for j, l in enumerate(LIGHTNESS): + xyy = util.xyz_to_xyY(lab_to_xyz(lch_to_lab([l, LUT[i][j], h]), XYZ_W), XYZ_W) + dxy = math.sqrt((WHITE_POINT_SC[0] - xyy[0]) ** 2 + (WHITE_POINT_SC[1] - xyy[1]) ** 2) + if dxy > max_dxy: + max_dxy = dxy + max_xyy = xyy + max_gamut.append(max_xyy) + return max_gamut -def closest_lightness(l: float) -> tuple[int, float]: - """Calculate the two closest lightness values and return the first index and interpolation factor.""" + # Pointer gamut boundary at a given lightness + # Return all the points for a given lightness + elif LIGHTNESS[0] <= lightness <= LIGHTNESS[-1]: + # Handle too low lightness inside tolerance + if lightness <= LIGHTNESS[0]: + li = 0 + lf = 0.0 + + # Handle too high lightness inside tolerance + elif lightness >= LIGHTNESS[-1]: + li = len(LIGHTNESS) - 2 + lf = 1.0 + + # Handle lightness within gamut + else: + li = bisect.bisect(LIGHTNESS, lightness) - 1 + l1, l2 = LIGHTNESS[li:li + 2] + lf = 1 - (l2 - lightness) / (l2 - l1) - # Handle too low lightness inside tolerance - if l <= LIGHTNESS[0]: - li = 0 - lf = 0.0 + chroma = [alg.lerp(row[li], row[li + 1], lf) for row in LUT[:-1]] - # Handle too high lightness inside tolerance - elif l >= LIGHTNESS[-1]: - li = len(LIGHTNESS) - 2 - lf = 1.0 + return [util.xyz_to_xyY(lab_to_xyz(lch_to_lab([lightness, c, h]), XYZ_W), XYZ_W) for c, h in zip(chroma, HUE)] - # Handle lightness within gamut + # Lightness exceeds threshold else: - li = bisect.bisect(LIGHTNESS, l) - 1 - l1, l2 = LIGHTNESS[li:li + 2] - lf = 1 - (l2 - l) / (l2 - l1) + raise ValueError(f'Lightness must be between {LIGHTNESS[0]} and {LIGHTNESS[-1]}, but was {lightness}') - return li, lf +class PointerGamut(Gamut): + """The Pointer gamut.""" -def closest_hue(h: float) -> tuple[int, float]: - """Calculate the two closest hues and return the first index and interpolation factor.""" + NAME = 'pointer-gamut' + LIGHTNESS = LIGHTNESS + GAMUT_WHITE = WHITE_POINT_SC + HUE = HUE + LUT = LUT - # Handle hue at the start - if h == HUE[0]: # pragma: no cover - hi = 0 - hf = 0.0 + def to_lch(self, color: Color) -> Vector: + """Convert a color to LCh with an SC illuminant.""" - # Handle hue at the end - elif h == HUE[-1]: # pragma: no cover - hi = len(HUE) - 2 - hf = 1.0 + xyz = color.convert('xyz-d65').normalize(nans=False) + xyz_gamut = color.chromatic_adaptation(xyz._space.WHITE, self.GAMUT_WHITE, xyz[:-1]) + return lab_to_lch(xyz_to_lab(xyz_gamut, util.xy_to_xyz(self.GAMUT_WHITE))) - # Handle all other hues - else: - hi = bisect.bisect(HUE, h) - 1 - h1, h2 = HUE[hi:hi + 2] - hf = 1 - (h2 - h) / (h2 - h1) + def from_lch(self, color: AnyColor, lch: Vector) -> AnyColor: + """Convert a color from LCh with an SC illuminant.""" - return hi, hf + xyz_gamut = lab_to_xyz(lch_to_lab(lch), util.xy_to_xyz(self.GAMUT_WHITE)) + xyz_d65 = color.chromatic_adaptation(self.GAMUT_WHITE, color.CS_MAP['xyz-d65'].WHITE, xyz_gamut) + return color.update('xyz-d65', xyz_d65, color[-1]) + def closest_lightness(self, l: float) -> tuple[int, float]: + """Calculate the two closest lightness values and return the first index and interpolation factor.""" -def get_chroma_limit(l: float, h: float) -> float: - """Get the chroma limit.""" + # Handle too low lightness inside tolerance + if l <= self.LIGHTNESS[0]: + li = 0 + lf = 0.0 - # Find the two closest lightness columns and calculate the needed interpolation factor. - li, lf = closest_lightness(l) + # Handle too high lightness inside tolerance + elif l >= self.LIGHTNESS[-1]: + li = len(self.LIGHTNESS) - 2 + lf = 1.0 - # Find the two closest hue rows and calculate the needed interpolation factor. - hi, hf = closest_hue(h) + # Handle lightness within gamut + else: + li = bisect.bisect(self.LIGHTNESS, l) - 1 + l1, l2 = self.LIGHTNESS[li:li + 2] + lf = 1 - (l2 - l) / (l2 - l1) - # Interpolate the chroma limit by interpolating chroma values for the closest lightness values and hues. - row1, row2 = LUT[hi:hi + 2] - return alg.lerp(alg.lerp(row1[li], row1[li + 1], lf), alg.lerp(row2[li], row2[li + 1], lf), hf) + return li, lf + def closest_hue(self, h: float) -> tuple[int, float]: + """Calculate the two closest hues and return the first index and interpolation factor.""" -def fit_pointer_gamut(color: AnyColor, **kwargs: Any) -> AnyColor: - """Fit a color to the Pointer gamut.""" + # Handle hue at the start + if h == self.HUE[0]: # pragma: no cover + hi = 0 + hf = 0.0 - # Convert to CIE LCh with the SC illuminant - l, c, h = to_lch_sc(color) + # Handle hue at the end + elif h == self.HUE[-1]: # pragma: no cover + hi = len(self.HUE) - 2 + hf = 1.0 - # Clamp lightness - new_l = max(LIGHTNESS[0], l) - new_l = min(LIGHTNESS[-1], new_l) + # Handle all other hues + else: + hi = bisect.bisect(self.HUE, h) - 1 + h1, h2 = self.HUE[hi:hi + 2] + hf = 1 - (h2 - h) / (h2 - h1) - new_c = min(c, get_chroma_limit(l, h)) + return hi, hf - adjusted = l != new_l or c != new_c + def get_chroma_limit(self, l: float, h: float) -> float: + """Get the chroma limit.""" - # Adjust original color only if a modification was made - return from_lch_sc(color, [new_l, new_c, h]) if adjusted else color + # Find the two closest lightness columns and calculate the needed interpolation factor. + li, lf = self.closest_lightness(l) + # Find the two closest hue rows and calculate the needed interpolation factor. + hi, hf = self.closest_hue(h) -def in_pointer_gamut(color: Color, tolerance: float, **kwargs: Any) -> bool: - """ - See if color is within the pointer gamut. + # Interpolate the chroma limit by interpolating chroma values for the closest lightness values and hues. + row1, row2 = self.LUT[hi:hi + 2] + return alg.lerp(alg.lerp(row1[li], row1[li + 1], lf), alg.lerp(row2[li], row2[li + 1], lf), hf) - Convert to CIE LCh using the SC illuminant. - Find the closest hues and lightness (rows and columns) so we can interpolate - the an appropriate max chroma for a given hue and lightness. Test that the - color's chroma does not exceed the limit. - """ + def in_gamut(self, color: Color, tolerance: float, **kwargs: Any) -> bool: + """Test if in gamut.""" - # Convert to CIE LCh with the SC illuminant - l, c, h = to_lch_sc(color) + # Convert to CIE LCh with the SC illuminant + l, c, h = self.to_lch(color) - # If lightness exceeds the acceptable range, then we are not in gamut - if (l < (LIGHTNESS[0] - tolerance)) or (l > (LIGHTNESS[-1] + tolerance)): - return False + # If lightness exceeds the acceptable range, then we are not in gamut + if (l < (self.LIGHTNESS[0] - tolerance)) or (l > (self.LIGHTNESS[-1] + tolerance)): + return False - # Test that the color does not exceed the max chroma - return c <= (get_chroma_limit(l, h) + tolerance) + # Test that the color does not exceed the max chroma + return c <= (self.get_chroma_limit(l, h) + tolerance) + def fit(self, color, **kwargs: Any) -> None: + """Fit to gamut.""" -def pointer_gamut_boundary(lightness: float | None = None) -> Matrix: - """ - Calculate the Pointer gamut boundary points for the given lightness. + # Convert to CIE LCh with the SC illuminant + l, c, h = self.to_lch(color) - If no lightness is provided, calculate the maximum pointer boundary. - Result is returned as xyY coordinates (C illuminant). - """ + # Clamp lightness + new_l = max(self.LIGHTNESS[0], l) + new_l = min(self.LIGHTNESS[-1], new_l) - # Maximum Pointer gamut boundary - # For each hue, find the lightness/chroma point that is furthest away from the white point. - if lightness is None: - max_gamut = [] # type: Matrix - for i, h in enumerate(HUE[:-1]): - max_dxy = 0.0 - max_xyy = [0.0, 0.0, 0.0] - for j, l in enumerate(LIGHTNESS): - xyy = lch_sc_to_xyY([l, LUT[i][j], h]) - dxy = math.sqrt((WHITE_POINT_SC[0] - xyy[0]) ** 2 + (WHITE_POINT_SC[1] - xyy[1]) ** 2) - if dxy > max_dxy: - max_dxy = dxy - max_xyy = xyy - max_gamut.append(max_xyy) - return max_gamut + new_c = min(c, self.get_chroma_limit(l, h)) - # Pointer gamut boundary at a given lightness - # Return all the points for a given lightness - elif LIGHTNESS[0] <= lightness <= LIGHTNESS[-1]: - li, lf = closest_lightness(lightness) - chroma = [alg.lerp(row[li], row[li + 1], lf) for row in LUT[:-1]] - return [lch_sc_to_xyY([lightness, c, h]) for c, h in zip(chroma, HUE)] + adjusted = l != new_l or c != new_c - # Lightness exceeds threshold - else: - raise ValueError(f'Lightness must be between {LIGHTNESS[0]} and {LIGHTNESS[-1]}, but was {lightness}') + # Adjust original color only if a modification was made + self.from_lch(color, [new_l, new_c, h]) if adjusted else color diff --git a/coloraide/gamut/rosch_macadam_solid.py b/coloraide/gamut/rosch_macadam_solid.py index da66f04fa..85323211d 100644 --- a/coloraide/gamut/rosch_macadam_solid.py +++ b/coloraide/gamut/rosch_macadam_solid.py @@ -14,6 +14,7 @@ the solid, and if not, bisection is used to reduce the distance until we are close to the surface. """ +# ruff: disable[E501] LUMINANCE = [0, 1e-10, 0.01, 0.06210526315789473, 0.11421052631578947, 0.16631578947368417, 0.21842105263157893, 0.27052631578947367, 0.3226315789473684, 0.37473684210526315, 0.42684210526315786, 0.4789473684210526, 0.5310526315789473, 0.5831578947368421, 0.6352631578947368, 0.6873684210526316, 0.7394736842105263, 0.791578947368421, 0.8436842105263157, 0.8957894736842106, 0.9478947368421052, 1.0] HUE = [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 12.999999999999998, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 25.999999999999996, 27.0, 28.0, 29.000000000000004, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 48.99999999999999, 50.0, 51.0, 51.99999999999999, 53.0, 54.0, 55.00000000000001, 56.0, 57.0, 58.00000000000001, 59.0, 60.0, 61.0, 62.0, 62.99999999999999, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, 80.0, 81.0, 82.0, 83.0, 84.0, 85.0, 86.0, 87.0, 88.0, 89.0, 90.0, 91.0, 92.0, 93.00000000000001, 94.0, 95.0, 96.0, 97.0, 97.99999999999999, 99.00000000000001, 100.0, 101.0, 102.0, 103.0, 103.99999999999999, 105.0, 106.0, 107.0, 108.0, 108.99999999999999, 110.00000000000001, 111.0, 112.0, 113.0, 114.0, 114.99999999999999, 116.00000000000001, 117.0, 118.0, 119.0, 120.0, 121.00000000000001, 122.0, 123.0, 124.0, 125.0, 125.99999999999999, 127.00000000000001, 128.0, 129.0, 130.0, 131.0, 132.0, 133.0, 134.0, 135.0, 136.0, 137.0, 138.0, 139.0, 140.0, 141.0, 142.0, 143.0, 144.0, 145.0, 146.0, 147.0, 148.0, 149.0, 150.0, 151.0, 152.0, 153.0, 154.0, 155.0, 156.0, 157.0, 158.0, 159.0, 160.0, 161.0, 162.0, 163.0, 164.0, 165.0, 166.0, 167.0, 168.0, 169.0, 170.0, 171.0, 172.0, 173.0, 174.0, 175.0, 176.0, 177.0, 178.0, 179.0, 180.0, 181.0, 182.0, 183.0, 184.0, 184.99999999999997, 186.00000000000003, 187.00000000000003, 188.0, 189.0, 190.0, 191.0, 192.0, 193.0, 194.0, 195.0, 195.99999999999997, 197.00000000000003, 198.00000000000003, 199.0, 200.0, 201.0, 202.0, 203.0, 204.0, 205.0, 206.0, 206.99999999999997, 207.99999999999997, 209.00000000000003, 210.0, 211.0, 212.0, 213.0, 214.0, 215.0, 216.0, 217.0, 217.99999999999997, 218.99999999999997, 220.00000000000003, 221.0, 222.0, 223.0, 224.0, 225.0, 226.0, 227.0, 228.0, 229.0, 229.99999999999997, 231.00000000000003, 232.00000000000003, 233.0, 234.0, 235.0, 236.0, 237.0, 238.0, 239.0, 240.0, 240.99999999999997, 242.00000000000003, 243.00000000000003, 244.0, 245.0, 246.0, 247.0, 248.0, 249.0, 250.0, 251.0, 251.99999999999997, 252.99999999999997, 254.00000000000003, 255.0, 256.0, 257.0, 258.0, 259.0, 260.0, 261.0, 262.0, 263.0, 264.0, 265.0, 266.0, 267.0, 268.0, 269.0, 270.0, 271.0, 272.0, 273.0, 274.0, 275.0, 276.0, 277.0, 278.0, 279.0, 280.0, 281.0, 282.0, 283.0, 284.0, 285.0, 286.0, 287.0, 288.0, 289.0, 290.0, 291.0, 292.0, 293.0, 294.0, 295.0, 296.0, 297.0, 298.0, 299.0, 300.0, 301.0, 302.0, 303.0, 304.0, 305.0, 306.0, 307.0, 308.0, 309.0, 310.0, 311.0, 312.0, 313.0, 314.0, 315.0, 316.0, 317.0, 318.0, 319.0, 320.0, 321.0, 322.0, 323.0, 324.0, 325.0, 326.0, 327.0, 328.0, 329.0, 330.0, 331.0, 332.0, 333.0, 334.0, 335.0, 336.0, 337.0, 338.0, 339.0, 340.0, 341.0, 342.0, 343.0, 344.0, 345.0, 346.0, 347.0, 348.0, 349.0, 350.0, 351.0, 352.0, 353.0, 354.0, 355.0, 356.0, 357.0, 358.0, 359.0, 360.0] @@ -377,4 +378,5 @@ [0, 0.3785031882597422, 0.37850317774825704, 0.3784938720247054, 0.3784877406286569, 0.3581551070863042, 0.3180731422372673, 0.2817227015088973, 0.2487158681856272, 0.2193020124514079, 0.19279357926450283, 0.16876408377413554, 0.1468707797010892, 0.12679756402860679, 0.10816303445608348, 0.09072891289633833, 0.07433580159784005, 0.05875584532589065, 0.043747529606434944, 0.02894094434282134, 0.014324387448141317, 5.684362811144216e-13], [0, 0.3713328244401739, 0.3713328138991303, 0.3713238436245096, 0.3713165191089734, 0.3674766995845858, 0.3256719278402901, 0.28791611109738835, 0.2537372985000275, 0.22340206532021487, 0.19614622556446215, 0.17150698870409542, 0.1491155213665252, 0.12862065382250884, 0.10957827909123818, 0.09185317611070339, 0.07521351556533777, 0.05942030282312774, 0.044224611429513096, 0.029262008856676423, 0.014467188827325245, 5.684466703485532e-13], [0, 0.36453805785299687, 0.3645380472886473, 0.36452804647865394, 0.36452076010107265, 0.3645086678750434, 0.3337334915698875, 0.29445850749937136, 0.25904620025869457, 0.22772903764860095, 0.1996794400588443, 0.17439452689757223, 0.15147680179211426, 0.13048452705447752, 0.11106532999690452, 0.0930343461601524, 0.07613567303337754, 0.06011848277353239, 0.044725987641527354, 0.02959939433310418, 0.014616536184348607, 5.684100239385295e-13], - [0, 0.35809460747373123, 0.35809459689119194, 0.3580836411367727, 0.35807639271752123, 0.3580672931832396, 0.34230958306011416, 0.301379735732894, 0.26466434607357314, 0.23229909298720486, 0.20340537404649695, 0.17743593514694567, 0.15396172119835683, 0.13243240001997947, 0.11262807630316729, 0.09427538133365942, 0.07710450177057737, 0.06085202132339873, 0.0452528049686407, 0.029953881210644795, 0.014773546288893158, 5.684341886080801e-13]] \ No newline at end of file + [0, 0.35809460747373123, 0.35809459689119194, 0.3580836411367727, 0.35807639271752123, 0.3580672931832396, 0.34230958306011416, 0.301379735732894, 0.26466434607357314, 0.23229909298720486, 0.20340537404649695, 0.17743593514694567, 0.15396172119835683, 0.13243240001997947, 0.11262807630316729, 0.09427538133365942, 0.07710450177057737, 0.06085202132339873, 0.0452528049686407, 0.029953881210644795, 0.014773546288893158, 5.684341886080801e-13]] +# ruff: enable[E501] diff --git a/coloraide/gamut/visible_spectrum.py b/coloraide/gamut/visible_spectrum.py index da044c6b8..6af1c2ece 100644 --- a/coloraide/gamut/visible_spectrum.py +++ b/coloraide/gamut/visible_spectrum.py @@ -1,12 +1,10 @@ """Check if color is in visible gamut.""" from __future__ import annotations import math -import bisect from ..cat import WHITES from .. import algebra as alg from .. import util -from ..types import Matrix, AnyColor # noqa: F401 -from .rosch_macadam_solid import LUT, LUMINANCE, HUE +from . import Gamut from typing import TYPE_CHECKING, Any if TYPE_CHECKING: #pragma: no cover @@ -16,224 +14,100 @@ XYZ_D65 = util.xy_to_xyz(WHITES['2deg']['D65']) -def closest_luminance(l: float) -> tuple[int, float]: - """Calculate the two closest lightness values and return the first index and interpolation factor.""" - - # Handle too low lightness inside tolerance - if l <= LUMINANCE[0]: - li = 0 - lf = 0.0 - - # Handle too high lightness inside tolerance - elif l >= LUMINANCE[-1]: - li = len(LUMINANCE) - 2 - lf = 1.0 - - # Handle lightness within gamut - else: - li = bisect.bisect(LUMINANCE, l) - 1 - l1, l2 = LUMINANCE[li:li + 2] - lf = 1 - (l2 - l) / (l2 - l1) - - return li, lf - - -def closest_hue(h: float) -> tuple[int, float]: - """Calculate the two closest hues and return the first index and interpolation factor.""" - - # Handle hue at the start - if h == HUE[0]: # pragma: no cover - hi = 0 - hf = 0.0 - - # Handle hue at the end - elif h == HUE[-1]: # pragma: no cover - hi = len(HUE) - 2 - hf = 1.0 - - # Handle all other hues - else: - hi = bisect.bisect(HUE, h) - 1 - h1, h2 = HUE[hi:hi + 2] - hf = 1 - (h2 - h) / (h2 - h1) - - return hi, hf - - -def get_chroma_limit(l: float, h: float) -> float: - """Get the chroma limit.""" - - # Find the two closest lightness columns and calculate the needed interpolation factor. - li, lf = closest_luminance(l) - - # Find the two closest hue rows and calculate the needed interpolation factor. - hi, hf = closest_hue(h) - - # Interpolate the chroma limit by interpolating chroma values for the closest lightness values and hues. - row1, row2 = LUT[hi:hi + 2] - return alg.lerp(alg.lerp(row1[li], row1[li + 1], lf), alg.lerp(row2[li], row2[li + 1], lf), hf) - - -def fit_macadam_limits(color: AnyColor, **kwargs: Any) -> AnyColor: - """Fit a color to the approximation of the Macadam limits at the color's given luminance.""" - - # Convert to xyY - xyz = (color.convert('xyz-d65', norm=False) if color.space() != 'xyz-d65' else color.normalize(nans=False))[:-1] - x, y, Y = util.xyz_to_xyY(xyz, WHITES['2deg']['D65']) - # Operate in a polar configuration - c, h = alg.rect_to_polar(*alg.subtract((x, y), WHITES['2deg']['D65'], dims=alg.D1)) - - # Clamp lightness - new_Y = min(LUMINANCE[-1], max(LUMINANCE[0], Y)) - - # Get optimal chromaticity points - new_c = min(c, get_chroma_limit(Y, h)) - x, y = alg.add(alg.polar_to_rect(new_c, h), WHITES['2deg']['D65'], dims=alg.D1) - - # Check if we made any changes - adjusted = Y != new_Y or c != new_c - - # Adjust original color only if a modification was made - return color.update(color.new('xyz-d65', util.xy_to_xyz((x, y), new_Y), color[-1])) if adjusted else color - - -def in_macadam_limits(color: Color, tolerance: float, **kwargs: Any) -> bool: - """ - See if color is within the approximation of the Macadam limits for the color's luminance. - - Find the closest hues and lightness (rows and columns) so we can interpolate - an appropriate max chroma for a given hue and lightness. Test that the - color's chroma does not exceed the limit. - """ - - # Convert to xyY - xyz = (color.convert('xyz-d65', norm=False) if color.space() != 'xyz-d65' else color.normalize(nans=False))[:-1] - x, y, Y = util.xyz_to_xyY(xyz, WHITES['2deg']['D65']) - # Operate in a polar configuration - c, h = alg.rect_to_polar(*alg.subtract((x, y), WHITES['2deg']['D65'], dims=alg.D1)) - - # If lightness exceeds the acceptable range, then we are not in gamut - if (Y < (LUMINANCE[0] - tolerance)) or (Y > (LUMINANCE[-1] + tolerance)): - return False - - # Test that the color does not exceed the max chroma - return c <= (get_chroma_limit(Y, h) + tolerance) - - -def macadam_limits(luminance: float | None = None) -> Matrix: - """ - Calculate the visible Macadam limit boundary points for the given lightness. - - If no lightness is provided, calculate the maximum boundary. - Result is returned as xyY coordinates (in the D65 illuminant). - """ - - # Maximum Pointer gamut boundary - # For each hue, find the lightness/chroma point that is furthest away from the white point. - if luminance is None: - return [[*alg.add(alg.polar_to_rect(LUT[i][1], h), XYw), 1] for i, h in enumerate(HUE[:-1])] - - # Pointer gamut boundary at a given lightness - # Return all the points for a given lightness - elif LUMINANCE[0] <= luminance <= LUMINANCE[-1]: - li, lf = closest_luminance(luminance) - chroma = [alg.lerp(row[li], row[li + 1], lf) for row in LUT[:-1]] - return [[*alg.add(alg.polar_to_rect(c, h), XYw, dims=alg.D1), luminance] for c, h in zip(chroma, HUE[:-1])] - - # Luminance exceeds threshold - else: - raise ValueError(f'Luminance must be between {LUMINANCE[0]} and {LUMINANCE[-1]}, but was {luminance}') - - -def in_visible_spectrum( - color: Color, - tolerance: float, - xy_tolerance: float | None = 1e-3, - ignore_luminance: bool = False, - **kwargs: Any -) -> bool: - """See if color is within the spectral locus.""" - - if xy_tolerance is None: - xy_tolerance = tolerance - - # Get white and xyY coordinates - white = color.white('xy-1931') - xyY = color.split_chromaticity('xy-1931') - xy = xyY[:2] - l = xyY[-1] - - # Get the dominant wavelength which will yield the point on the spectral locus in our direction - wave, dominant = color.wavelength()[:2] - - # See if we have an achromatic color - if math.isnan(wave): - oog_chroma = False - else: - # Calculate magnitude with vector normalized such that white is the origin - xy_temp = alg.subtract(xy, white, dims=alg.D1) - m1 = math.sqrt(xy_temp[0] ** 2 + xy_temp[1] ** 2) - xy_temp = alg.subtract(dominant, white, dims=alg.D1) - m2 = math.sqrt(xy_temp[0] ** 2 + xy_temp[1] ** 2) - oog_chroma = m1 > (m2 + xy_tolerance) - - oog_lum = False if ignore_luminance else (l > (1 + tolerance) or l < (0 - tolerance)) - - # See if we are within tolerance - return not oog_lum and not oog_chroma - - -def fit_visible_spectrum( - color: AnyColor, - xy_tolerance: float | None = 1e-3, - ignore_luminance: bool = False, - **kwargs: Any -) -> AnyColor: - """Fit color to the visible spectrum.""" - - if xy_tolerance is None: - xy_tolerance = 0.0 - - # Get white and xyY coordinates - white = color.white('xy-1931') - xyY = color.split_chromaticity('xy-1931') - xy = xyY[:2] - l = xyY[-1] - - # Get the dominant wavelength which will yield the point on the spectral locus in our direction - wave, dominant = color.wavelength()[:2] - - # See if we have an achromatic color - if math.isnan(wave): - dominant = white - oog_chroma = False - else: - # Calculate magnitude with vector normalized such that white is the origin - xy_temp = alg.subtract(xy, white, dims=alg.D1) - m1 = math.sqrt(xy_temp[0] ** 2 + xy_temp[1] ** 2) - xy_temp = alg.subtract(dominant, white, dims=alg.D1) - m2 = math.sqrt(xy_temp[0] ** 2 + xy_temp[1] ** 2) - - # Adjust range to pull in color relative to the spectral locus - if xy_tolerance: - m2 += xy_tolerance - h = math.degrees(math.atan2(xy_temp[1], xy_temp[0])) % 360 - dominant = list(alg.add(alg.polar_to_rect(m2, h), white, dims=alg.D1)) - - # Check if color is outside the spectral locus - oog_chroma = m1 > m2 - - oog_lum = False if ignore_luminance else (l > 1 or l < 0) - - # Adjust color is out of luminance range or outside the spectral locus limits - if oog_lum or l < 0 or oog_chroma: - color.update( - color.chromaticity( - color.space(), - [*(dominant if oog_chroma else xy), alg.clamp(l, 0, 1)], - 'xy-1931', - white=white, - scale=False +class VisibleSpectrum(Gamut): + """The visible spectrum.""" + + NAME = 'visible-spectrum' + + def in_gamut( + self, + color: Color, + tolerance: float, + xy_tolerance: float | None = 1e-3, + ignore_luminance: bool = False, + **kwargs: Any + ) -> bool: + """See if color is within the spectral locus.""" + + if xy_tolerance is None: + xy_tolerance = tolerance + + # Get white and xyY coordinates + white = color.white('xy-1931') + xyY = color.split_chromaticity('xy-1931') + xy = xyY[:2] + l = xyY[-1] + + # Get the dominant wavelength which will yield the point on the spectral locus in our direction + wave, dominant = color.wavelength()[:2] + + # See if we have an achromatic color + if math.isnan(wave): + oog_chroma = False + else: + # Calculate magnitude with vector normalized such that white is the origin + xy_temp = alg.subtract(xy, white, dims=alg.D1) + m1 = math.sqrt(xy_temp[0] ** 2 + xy_temp[1] ** 2) + xy_temp = alg.subtract(dominant, white, dims=alg.D1) + m2 = math.sqrt(xy_temp[0] ** 2 + xy_temp[1] ** 2) + oog_chroma = m1 > (m2 + xy_tolerance) + + oog_lum = False if ignore_luminance else (l > (1 + tolerance) or l < (0 - tolerance)) + + # See if we are within tolerance + return not oog_lum and not oog_chroma + + def fit( + self, + color: Color, + xy_tolerance: float | None = 1e-3, + ignore_luminance: bool = False, + **kwargs: Any + ) -> None: + """Fit color to the visible spectrum.""" + + if xy_tolerance is None: + xy_tolerance = 0.0 + + # Get white and xyY coordinates + white = color.white('xy-1931') + xyY = color.split_chromaticity('xy-1931') + xy = xyY[:2] + l = xyY[-1] + + # Get the dominant wavelength which will yield the point on the spectral locus in our direction + wave, dominant = color.wavelength()[:2] + + # See if we have an achromatic color + if math.isnan(wave): + dominant = white + oog_chroma = False + else: + # Calculate magnitude with vector normalized such that white is the origin + xy_temp = alg.subtract(xy, white, dims=alg.D1) + m1 = math.sqrt(xy_temp[0] ** 2 + xy_temp[1] ** 2) + xy_temp = alg.subtract(dominant, white, dims=alg.D1) + m2 = math.sqrt(xy_temp[0] ** 2 + xy_temp[1] ** 2) + + # Adjust range to pull in color relative to the spectral locus + if xy_tolerance: + m2 += xy_tolerance + h = math.degrees(math.atan2(xy_temp[1], xy_temp[0])) % 360 + dominant = list(alg.add(alg.polar_to_rect(m2, h), white, dims=alg.D1)) + + # Check if color is outside the spectral locus + oog_chroma = m1 > m2 + + oog_lum = False if ignore_luminance else (l > 1 or l < 0) + + # Adjust color is out of luminance range or outside the spectral locus limits + if oog_lum or l < 0 or oog_chroma: + color.update( + color.chromaticity( + color.space(), + [*(dominant if oog_chroma else xy), alg.clamp(l, 0, 1)], + 'xy-1931', + white=white, + scale=False + ) ) - ) - return color diff --git a/docs/src/markdown/about/changelog.md b/docs/src/markdown/about/changelog.md index 8a2527644..d1be022f2 100644 --- a/docs/src/markdown/about/changelog.md +++ b/docs/src/markdown/about/changelog.md @@ -3,6 +3,11 @@ icon: lucide/scroll-text --- # Changelog +## 8.13 + +- **NEW**: Implement special gamuts (`visible-spectrum`, `pointer-gamut`, etc.) as `Gamut` plugins allowing the + expansion of _special_ gamuts in the future. + ## 8.12.1 - **FIX**: Revert recent `algebra.ilerp()` change. diff --git a/docs/src/markdown/examples/3d_models.html b/docs/src/markdown/examples/3d_models.html index a8b6f7392..6c540cfb4 100644 --- a/docs/src/markdown/examples/3d_models.html +++ b/docs/src/markdown/examples/3d_models.html @@ -230,7 +230,7 @@

ColorAide Color Space Models

from coloraide.spaces import HSLish, HSVish, HWBish, Labish, LChish, RGBish from coloraide import algebra as alg from coloraide.color import POSTFIX -from coloraide.gamut import pointer, visible_spectrum, SPECIAL_GAMUTS +from coloraide.gamut import pointer, visible_spectrum from coloraide.spectrum import wavelength_to_color from coloraide.cmfs import CIE_1931_2DEG as cmfs from coloraide import util @@ -739,7 +739,7 @@

ColorAide Color Space Models

u.append(_l) v.append(h) color = Color('xyz-d65', [0, 0, 0]) - pointer.from_lch_sc(color, [_l, c, h]) + color.GAMUT_MAP['pointer-gamut'].from_lch(color, [_l, c, h]) elif gtype == 'macadam-limits': color = Color('white').convert('xyy', in_place=True) if l == -1: @@ -918,7 +918,7 @@

ColorAide Color Space Models

fcolor = c.to_string(hex=True, alpha=False) faces = True - if gamut in SPECIAL_GAMUTS: + if gamut in Color.GAMUT_MAP: render_special_gamut( gamut, fig, space, resolution, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit ) @@ -1265,7 +1265,7 @@

ColorAide Color Space Models

let colorSpaces = null let colorGamuts = null let lastModel = null -let package = 'coloraide-8.12.1-py3-none-any.whl' +let package = 'coloraide-8.13-py3-none-any.whl' const defaultSpace = 'lab' const defaultGamut = 'srgb' const exceptions = new Set(['hwb', 'ryb', 'ryb-biased']) diff --git a/docs/src/markdown/examples/colorpicker.html b/docs/src/markdown/examples/colorpicker.html index c8b9746f5..e32a951ce 100644 --- a/docs/src/markdown/examples/colorpicker.html +++ b/docs/src/markdown/examples/colorpicker.html @@ -421,7 +421,7 @@

ColorAide Color Picker

let pyodide = null let webspace = '' let initial = 'oklab(0.69 0.13 -0.1 / 0.85)' - let package = 'coloraide-8.12.1-py3-none-any.whl' + let package = 'coloraide-8.13-py3-none-any.whl' const base = `${window.location.origin}/${window.location.pathname.split('/')[1]}/playground/` package = base + package diff --git a/docs/src/markdown/gamut.md b/docs/src/markdown/gamut.md index d3bc00fbb..a9efcd73f 100644 --- a/docs/src/markdown/gamut.md +++ b/docs/src/markdown/gamut.md @@ -1056,7 +1056,11 @@ Steps( > ``` > /// -## Pointer's Gamut +## Special Gamuts + +### Pointer's Gamut + +> [!success] The `pointer-gamut` gamut is registered in `Color` by default The Pointer's gamut is (an approximation of) the gamut of real surface colors as can be seen by the human eye, based on the research by Michael R. Pointer (1980). What this means is that every color that can be reflected by the surface of @@ -1101,7 +1105,9 @@ color.in_gamut('pointer-gamut') > When gamut mapping in the `pointer-gamut` gamut, the `method` parameter is ignored as its own handling will be > applied. -## MacAdam Limits +### MacAdam Limits + +> [!success] The `macadam-limits` gamut is registered in `Color` by default > [!new] New in 8.1 @@ -1143,7 +1149,9 @@ color.in_gamut('macadam-limits') > When gamut mapping in the `macadam-limits` gamut, the `method` parameter is ignored as its own handling will be > applied. -## Visible Spectrum +### Visible Spectrum + +> [!success] The `visible-spectrum` gamut is registered in `Color` by default > [!new] New in 8.6 diff --git a/docs/src/markdown/plugins/gamut.md b/docs/src/markdown/plugins/gamut.md new file mode 100644 index 000000000..394a24256 --- /dev/null +++ b/docs/src/markdown/plugins/gamut.md @@ -0,0 +1,44 @@ +--- +icon: lucide/scaling +--- +# Contrast + +## Description + +Gamut provides an interface for _special_ gamuts. These gamuts aren't specific to a color space, but usually some +calculated limit. These are often awkward to easily convert to or work directly in. As an example, the Visible Spectrum +is treated as one of these _special_ gamuts in ColorAide. + +The Gamut plugin mainly provides two functions: to check if a color is within a _special_ gamut and to force a color +into that _special_ gamut. The logic to check and gamut map the color is often specific to the the _special_ gamut. + +## Plugin Class + +```py +class Gamut(Plugin, metaclass=ABCMeta): + """Gamut plugin class.""" + + NAME = "" + + @abstractmethod + def in_gamut(self, color: Color, tolerance: float, **kwargs: Any) -> bool: + """Check if in gamut.""" + + @abstractmethod + def fit(self, color: Color, **kwargs: Any) -> None: + """Check if in gamut.""" +``` + +Once registered, the plugin can then be used via `in_gamut()` by passing its `NAME` as if it were a color space along +with an optional `tolerance` and gamut specific options. + +```py +color.in_gamut(NAME, tolerance=0, **kwargs) +``` + +Additionally the plugin is used via the `fit()` method and allows passing `NAME` as if it were a color space. Any other +specified options, are passed to the the plugin. + +```py +color.fit(NAME, **kwargs) +``` diff --git a/docs/src/zensical.yml b/docs/src/zensical.yml index d7c3274a8..bcd223e68 100644 --- a/docs/src/zensical.yml +++ b/docs/src/zensical.yml @@ -169,14 +169,15 @@ nav: - Plugins: - plugins/index.md - - Delta E: plugins/delta_e.md - - Fit/Gamut Mapping: plugins/fit.md + - CCT: plugins/cct.md - Chromatic Adaptation: plugins/cat.md - - Filters: plugins/filter.md - - Contrast: plugins/contrast.md - Color Spaces: plugins/space.md + - Contrast: plugins/contrast.md + - Delta E: plugins/delta_e.md + - Filters: plugins/filter.md + - Fit/Gamut Mapping: plugins/fit.md + - Gamut: plugins/gamut.md - Interpolation: plugins/interpolate.md - - CCT: plugins/cct.md - Demos: - demos/index.md @@ -357,7 +358,7 @@ extra_javascript: - assets/pymdownx-extras/extra-loader-Ccztcqfq.js - https://cdn.jsdelivr.net/npm/ace-builds@1.44.0/src-min-noconflict/ace.js - https://cdn.jsdelivr.net/npm/mermaid@11.15.0/dist/mermaid.min.js - - playground-config-23379e55.js + - playground-config-40d8f59a.js - https://cdn.jsdelivr.net/npm/pyodide@314.0.0/pyodide.min.js - assets/coloraide-extras/extra-notebook.js - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js diff --git a/docs/theme/playground-config-23379e55.js b/docs/theme/playground-config-40d8f59a.js similarity index 71% rename from docs/theme/playground-config-23379e55.js rename to docs/theme/playground-config-40d8f59a.js index 4272d7f7c..7f63b5bc5 100644 --- a/docs/theme/playground-config-23379e55.js +++ b/docs/theme/playground-config-40d8f59a.js @@ -1,5 +1,5 @@ var colorNotebook = { - "playgroundWheels": ['micropip', 'pygments-2.20.0-py3-none-any.whl', 'coloraide-8.12.1-py3-none-any.whl'], - "notebookWheels": ['pyyaml', 'markdown-3.10.2-py3-none-any.whl', 'pymdown_extensions-10.21.3-py3-none-any.whl', 'micropip', 'pygments-2.20.0-py3-none-any.whl', 'coloraide-8.12.1-py3-none-any.whl'], + "playgroundWheels": ['micropip', 'pygments-2.20.0-py3-none-any.whl', 'coloraide-8.13-py3-none-any.whl'], + "notebookWheels": ['pyyaml', 'markdown-3.10.2-py3-none-any.whl', 'pymdown_extensions-10.21.3-py3-none-any.whl', 'micropip', 'pygments-2.20.0-py3-none-any.whl', 'coloraide-8.13-py3-none-any.whl'], "defaultPlayground": "import coloraide\ncoloraide.__version__\nColor('red')" } diff --git a/pyproject.toml b/pyproject.toml index 4562b1333..0a0aa1893 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -87,8 +87,7 @@ line-length = 120 target-version = "py311" extend-exclude = [ - "tools/oklab_srgb_gamut_approximation.py", - "coloraide/gamut/rosch_macadam_solid.py" + "tools/oklab_srgb_gamut_approximation.py" ] lint.select = [ diff --git a/tests/test_gamut.py b/tests/test_gamut.py index 24ba895ed..482e244bd 100644 --- a/tests/test_gamut.py +++ b/tests/test_gamut.py @@ -681,18 +681,18 @@ def test_macadam_limits_too_light(self): """Test when pointer boundary is request is too light.""" with self.assertRaises(ValueError): - gamut.visible_spectrum.macadam_limits(-0.01) + gamut.macadam_limits.macadam_limits(-0.01) def test_macadam_limits_too_dark(self): """Test when pointer boundary is request is too dark.""" with self.assertRaises(ValueError): - gamut.visible_spectrum.macadam_limits(1.01) + gamut.macadam_limits.macadam_limits(1.01) def test_macadam_limits_mid(self): """Test when pointer boundary request.""" - boundary = gamut.visible_spectrum.macadam_limits(0.5) + boundary = gamut.macadam_limits.macadam_limits(0.5) # Test a sample of the values test = [boundary[0], boundary[5], boundary[8]] expected = [[0.4806514042586269, 0.329, 0.5], @@ -705,7 +705,7 @@ def test_macadam_limits_mid(self): def test_macadam_limits_max(self): """Test pointer boundary max request.""" - boundary = gamut.visible_spectrum.macadam_limits() + boundary = gamut.macadam_limits.macadam_limits() # Test a sample of the values test = [boundary[0], boundary[5], boundary[8]] expected = [[0.6707946074737312, 0.329, 1], diff --git a/tools/calc_visible_spectrum_lut.py b/tools/calc_visible_spectrum_lut.py index 049c3396f..27d1af6a9 100644 --- a/tools/calc_visible_spectrum_lut.py +++ b/tools/calc_visible_spectrum_lut.py @@ -140,12 +140,14 @@ def build_lut(location): the solid, and if not, bisection is used to reduce the distance until we are close to the surface. """ + # ruff: disable[E501] LUMINANCE = {alg.pretty(luminance)} HUE = {alg.pretty(hues)} ''' ).strip() ) f.write('\n\nLUT = ' + alg.pretty(table)) + f.write('\n# ruff: enable[E501]\n') if __name__ == "__main__": diff --git a/tools/cie_diagrams.py b/tools/cie_diagrams.py index 2fde58013..baa2dd9ed 100644 --- a/tools/cie_diagrams.py +++ b/tools/cie_diagrams.py @@ -371,11 +371,11 @@ def cie_diagram( sy = [] xy = [] if bounds == 'max': - pts = gamut.visible_spectrum.macadam_limits() + pts = gamut.macadam_limits.macadam_limits() label = 'visible spectrum' else: l = min(1, max(0, float(bounds))) - pts = gamut.visible_spectrum.macadam_limits(l) + pts = gamut.macadam_limits.macadam_limits(l) label = f'MacAdam Limit Y={round(l, 2)}' pts.append(pts[0]) for pt in pts: diff --git a/tools/gamut_3d_diagram.py b/tools/gamut_3d_diagram.py index 43046e7b8..1b7c58480 100644 --- a/tools/gamut_3d_diagram.py +++ b/tools/gamut_3d_diagram.py @@ -18,7 +18,7 @@ from coloraide.spaces import HSLish, HSVish, HWBish, Labish, LChish, RGBish from coloraide import algebra as alg from coloraide.color import POSTFIX -from coloraide.gamut import pointer, visible_spectrum, SPECIAL_GAMUTS +from coloraide.gamut import pointer, visible_spectrum from coloraide.spectrum import wavelength_to_color from coloraide.cmfs import CIE_1931_2DEG as cmfs from coloraide import util @@ -527,7 +527,7 @@ def render_special_gamut(gtype, fig, space, resolution, opacity, edges, faces, e u.append(_l) v.append(h) color = Color('xyz-d65', [0, 0, 0]) - pointer.from_lch_sc(color, [_l, c, h]) + color.GAMUT_MAP['pointer-gamut'].from_lch(color, [_l, c, h]) elif gtype == 'macadam-limits': color = Color('white').convert('xyy', in_place=True) if l == -1: @@ -705,7 +705,7 @@ def plot_gamut_in_space( fcolor = c.to_string(hex=True, alpha=False) faces = True - if gamut in SPECIAL_GAMUTS: + if gamut in Color.GAMUT_MAP: render_special_gamut( gamut, fig, space, resolution, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit ) diff --git a/tools/in_pointer_gamut_diagram.py b/tools/in_pointer_gamut_diagram.py index 065b74f4e..ff14fb4ed 100644 --- a/tools/in_pointer_gamut_diagram.py +++ b/tools/in_pointer_gamut_diagram.py @@ -66,8 +66,8 @@ def plot_pointer_gamut(target, space_gamut, fit, title, height, width): original = Color(target) colors.append(original.convert('lch-pointer', norm=False)) lightness = colors[0]['l'] - if fit and not colors[0].in_pointer_gamut(): - colors.append(colors[0].clone().fit_pointer_gamut()) + if fit and not colors[0].in_gamut('pointer-gamut'): + colors.append(colors[0].clone().fit('pointer-gamut')) color = colors[0] l, c, h = color[:-1] li, lf = gamut.pointer.closest_lightness(l) @@ -109,7 +109,7 @@ def plot_pointer_gamut(target, space_gamut, fit, title, height, width): for color in colors: c, h = color[1:-1] - if color.in_pointer_gamut(): + if color.in_gamut('pointer-gamut'): inside.append([c, h]) else: outside.append([c, h]) diff --git a/tools/slice_diagram.py b/tools/slice_diagram.py index 13b72cb89..ee2210902 100644 --- a/tools/slice_diagram.py +++ b/tools/slice_diagram.py @@ -167,7 +167,7 @@ def plot_slice( if ( allow_oog or ( r.in_gamut(gamut, tolerance=0) and - (not pointer or r.in_pointer_gamut(tolerance=0)) and + (not pointer or r.in_gamut('pointer-gamut', tolerance=0)) and (not is_lchish or not ignore_LCh_high_chroma_black(r)) ) ): diff --git a/zensical.yml b/zensical.yml index a2cc317c5..3884e2db3 100644 --- a/zensical.yml +++ b/zensical.yml @@ -169,14 +169,15 @@ nav: - Plugins: - plugins/index.md - - Delta E: plugins/delta_e.md - - Fit/Gamut Mapping: plugins/fit.md + - CCT: plugins/cct.md - Chromatic Adaptation: plugins/cat.md - - Filters: plugins/filter.md - - Contrast: plugins/contrast.md - Color Spaces: plugins/space.md + - Contrast: plugins/contrast.md + - Delta E: plugins/delta_e.md + - Filters: plugins/filter.md + - Fit/Gamut Mapping: plugins/fit.md + - Gamut: plugins/gamut.md - Interpolation: plugins/interpolate.md - - CCT: plugins/cct.md - Demos: - demos/index.md From 00ddf35e6b9896f501c5cee428a8de34c2629a17 Mon Sep 17 00:00:00 2001 From: facelessuser Date: Tue, 25 Aug 2026 08:18:09 -0600 Subject: [PATCH 2/6] Mypy fixes --- coloraide/color.py | 2 +- coloraide/gamut/macadam_limits.py | 2 +- coloraide/gamut/pointer.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/coloraide/color.py b/coloraide/color.py index f4b2ebbe4..768c54cbe 100644 --- a/coloraide/color.py +++ b/coloraide/color.py @@ -1087,7 +1087,7 @@ def in_gamut(self, space: str | None = None, *, tolerance: float | None = None, # Handle special gamut requests if space in self.GAMUT_MAP: - return cast('bool', self.GAMUT_MAP[space].in_gamut(self, tolerance=tolerance, **kwargs)) + return self.GAMUT_MAP[space].in_gamut(self, tolerance=tolerance, **kwargs) # Check if gamut is in the provided space c = self.convert(space, norm=False) if space is not None and space != self.space() else self diff --git a/coloraide/gamut/macadam_limits.py b/coloraide/gamut/macadam_limits.py index 3e820b581..f455c657b 100644 --- a/coloraide/gamut/macadam_limits.py +++ b/coloraide/gamut/macadam_limits.py @@ -133,7 +133,7 @@ def in_gamut(self, color: Color, tolerance: float, **kwargs: Any) -> bool: # Test that the color does not exceed the max chroma return c <= (self.get_chroma_limit(Y, h) + tolerance) - def fit(self, color, **kwargs: Any) -> None: + def fit(self, color: Color, **kwargs: Any) -> None: """Fit to gamut.""" # Convert to xyY diff --git a/coloraide/gamut/pointer.py b/coloraide/gamut/pointer.py index b7f9408e9..cf7cc0694 100644 --- a/coloraide/gamut/pointer.py +++ b/coloraide/gamut/pointer.py @@ -208,7 +208,7 @@ def in_gamut(self, color: Color, tolerance: float, **kwargs: Any) -> bool: # Test that the color does not exceed the max chroma return c <= (self.get_chroma_limit(l, h) + tolerance) - def fit(self, color, **kwargs: Any) -> None: + def fit(self, color: Color, **kwargs: Any) -> None: """Fit to gamut.""" # Convert to CIE LCh with the SC illuminant From 906ea46f71f5e459e03acee66961d2215e0690f9 Mon Sep 17 00:00:00 2001 From: facelessuser Date: Tue, 25 Aug 2026 21:02:40 -0600 Subject: [PATCH 3/6] Tweak MacAdam limits --- coloraide/gamut/rosch_macadam_solid.py | 726 +++++++++++----------- docs/src/markdown/about/changelog.md | 1 + docs/src/markdown/examples/3d_models.html | 124 ++-- tests/test_gamut.py | 14 +- tools/calc_visible_spectrum_lut.py | 12 +- tools/gamut_3d_diagram.py | 111 ++-- zensical.yml | 2 +- 7 files changed, 506 insertions(+), 484 deletions(-) diff --git a/coloraide/gamut/rosch_macadam_solid.py b/coloraide/gamut/rosch_macadam_solid.py index 85323211d..ad9324e0a 100644 --- a/coloraide/gamut/rosch_macadam_solid.py +++ b/coloraide/gamut/rosch_macadam_solid.py @@ -15,368 +15,368 @@ we are close to the surface. """ # ruff: disable[E501] -LUMINANCE = [0, 1e-10, 0.01, 0.06210526315789473, 0.11421052631578947, 0.16631578947368417, 0.21842105263157893, 0.27052631578947367, 0.3226315789473684, 0.37473684210526315, 0.42684210526315786, 0.4789473684210526, 0.5310526315789473, 0.5831578947368421, 0.6352631578947368, 0.6873684210526316, 0.7394736842105263, 0.791578947368421, 0.8436842105263157, 0.8957894736842106, 0.9478947368421052, 1.0] -HUE = [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 12.999999999999998, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 25.999999999999996, 27.0, 28.0, 29.000000000000004, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 48.99999999999999, 50.0, 51.0, 51.99999999999999, 53.0, 54.0, 55.00000000000001, 56.0, 57.0, 58.00000000000001, 59.0, 60.0, 61.0, 62.0, 62.99999999999999, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, 80.0, 81.0, 82.0, 83.0, 84.0, 85.0, 86.0, 87.0, 88.0, 89.0, 90.0, 91.0, 92.0, 93.00000000000001, 94.0, 95.0, 96.0, 97.0, 97.99999999999999, 99.00000000000001, 100.0, 101.0, 102.0, 103.0, 103.99999999999999, 105.0, 106.0, 107.0, 108.0, 108.99999999999999, 110.00000000000001, 111.0, 112.0, 113.0, 114.0, 114.99999999999999, 116.00000000000001, 117.0, 118.0, 119.0, 120.0, 121.00000000000001, 122.0, 123.0, 124.0, 125.0, 125.99999999999999, 127.00000000000001, 128.0, 129.0, 130.0, 131.0, 132.0, 133.0, 134.0, 135.0, 136.0, 137.0, 138.0, 139.0, 140.0, 141.0, 142.0, 143.0, 144.0, 145.0, 146.0, 147.0, 148.0, 149.0, 150.0, 151.0, 152.0, 153.0, 154.0, 155.0, 156.0, 157.0, 158.0, 159.0, 160.0, 161.0, 162.0, 163.0, 164.0, 165.0, 166.0, 167.0, 168.0, 169.0, 170.0, 171.0, 172.0, 173.0, 174.0, 175.0, 176.0, 177.0, 178.0, 179.0, 180.0, 181.0, 182.0, 183.0, 184.0, 184.99999999999997, 186.00000000000003, 187.00000000000003, 188.0, 189.0, 190.0, 191.0, 192.0, 193.0, 194.0, 195.0, 195.99999999999997, 197.00000000000003, 198.00000000000003, 199.0, 200.0, 201.0, 202.0, 203.0, 204.0, 205.0, 206.0, 206.99999999999997, 207.99999999999997, 209.00000000000003, 210.0, 211.0, 212.0, 213.0, 214.0, 215.0, 216.0, 217.0, 217.99999999999997, 218.99999999999997, 220.00000000000003, 221.0, 222.0, 223.0, 224.0, 225.0, 226.0, 227.0, 228.0, 229.0, 229.99999999999997, 231.00000000000003, 232.00000000000003, 233.0, 234.0, 235.0, 236.0, 237.0, 238.0, 239.0, 240.0, 240.99999999999997, 242.00000000000003, 243.00000000000003, 244.0, 245.0, 246.0, 247.0, 248.0, 249.0, 250.0, 251.0, 251.99999999999997, 252.99999999999997, 254.00000000000003, 255.0, 256.0, 257.0, 258.0, 259.0, 260.0, 261.0, 262.0, 263.0, 264.0, 265.0, 266.0, 267.0, 268.0, 269.0, 270.0, 271.0, 272.0, 273.0, 274.0, 275.0, 276.0, 277.0, 278.0, 279.0, 280.0, 281.0, 282.0, 283.0, 284.0, 285.0, 286.0, 287.0, 288.0, 289.0, 290.0, 291.0, 292.0, 293.0, 294.0, 295.0, 296.0, 297.0, 298.0, 299.0, 300.0, 301.0, 302.0, 303.0, 304.0, 305.0, 306.0, 307.0, 308.0, 309.0, 310.0, 311.0, 312.0, 313.0, 314.0, 315.0, 316.0, 317.0, 318.0, 319.0, 320.0, 321.0, 322.0, 323.0, 324.0, 325.0, 326.0, 327.0, 328.0, 329.0, 330.0, 331.0, 332.0, 333.0, 334.0, 335.0, 336.0, 337.0, 338.0, 339.0, 340.0, 341.0, 342.0, 343.0, 344.0, 345.0, 346.0, 347.0, 348.0, 349.0, 350.0, 351.0, 352.0, 353.0, 354.0, 355.0, 356.0, 357.0, 358.0, 359.0, 360.0] +LUMINANCE = [0, 1e-12, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0] +HUE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360] -LUT = [[0, 0.35809460747373123, 0.35809459689119194, 0.3580836411367727, 0.35807639271752123, 0.3580672931832396, 0.34230958306011416, 0.301379735732894, 0.26466434607357314, 0.23229909298720486, 0.20340537404649695, 0.17743593514694567, 0.15396172119835683, 0.13243240001997947, 0.11262807630316729, 0.09427538133365942, 0.07710450177057737, 0.06085202132339873, 0.0452528049686407, 0.029953881210644795, 0.014773546288893158, 5.684341886080801e-13], - [0, 0.3519800897538518, 0.3519800886857638, 0.3519684863073282, 0.3519612174324041, 0.35195416786564265, 0.351431803395599, 0.3087304677637805, 0.2706008847593466, 0.23713003927923648, 0.2073373585255924, 0.18064131125129293, 0.15653270353311668, 0.13448089494659138, 0.11427073224012926, 0.09557948187705283, 0.07812240861994738, 0.06162268432774451, 0.04580630009513699, 0.0303169210150146, 0.01493856605407021, 5.684100239385295e-13], - [0, 0.34617355426974, 0.3461735532005155, 0.3461623609314305, 0.3461550728451359, 0.34614857445660646, 0.3461399899083518, 0.3165475707879749, 0.27688440083295524, 0.2422250781313553, 0.2114900479722337, 0.1840080166755342, 0.15921199823139895, 0.13663603330257956, 0.11599786995702749, 0.09695011362907739, 0.07919199649904847, 0.062432379350525535, 0.04638780781988312, 0.03068195050161656, 0.015111969239001299, 5.684466703485532e-13], - [0, 0.34065757139160274, 0.34065757032180954, 0.34064676469199606, 0.3406394602313865, 0.3406330560619608, 0.3406268343553619, 0.3248586006600361, 0.2835550951289177, 0.24760330729918673, 0.21584345889209527, 0.18751866680361212, 0.16203076128135746, 0.1389043721962934, 0.117814456493761, 0.09839103455590244, 0.08031608343003423, 0.06328316908081882, 0.0469987701478656, 0.031065455521570456, 0.015294158805545396, 5.684362811144216e-13], - [0, 0.33541518474976306, 0.3354151836794016, 0.33540474305823365, 0.33539742436005293, 0.33539106701994087, 0.3353869403889575, 0.33370751720894964, 0.290638128637397, 0.2533047012417453, 0.2204380940639793, 0.19120979949320827, 0.16500229981488693, 0.1412930631823883, 0.11972589550339299, 0.0999063245984643, 0.0814977238917434, 0.06417728634403362, 0.04764074645265725, 0.0314683759353328, 0.015485569543898266, 5.68429908703892e-13], - [0, 0.33043083008010415, 0.3304308290097428, 0.3304206798412679, 0.33041321859059314, 0.33040709017541325, 0.3304035822151266, 0.33039822766227234, 0.2981625191375772, 0.25932974185082, 0.22527970401313283, 0.19510978877690383, 0.1681370396846662, 0.14380991907501087, 0.12173807446231433, 0.10150041933002289, 0.08274023282865528, 0.065117150943479, 0.04828912063203473, 0.03189172766667529, 0.01568667099491003, 5.684300279670163e-13], - [0, 0.325690199545647, 0.3256901984752852, 0.32568015467745653, 0.3256727306393256, 0.32566681882883564, 0.3256633803266592, 0.3256599634806886, 0.3061739186705376, 0.265730024428876, 0.2304105296394706, 0.199234134151993, 0.1714464304137661, 0.14646349007364265, 0.12385741822413374, 0.10317814799179811, 0.08404721269982911, 0.06610538858922155, 0.04896784322454547, 0.03233661000763274, 0.015897970719720465, 5.684373219437229e-13], - [0, 0.3211801218031947, 0.3211801207322649, 0.32117017744951665, 0.32116278927958297, 0.3211570826812247, 0.32115364418132203, 0.3211513430716191, 0.31471375284581876, 0.2725393392444175, 0.23585403279923836, 0.20359996845741057, 0.17494307157335218, 0.14926315073864757, 0.12609094992058092, 0.10494477658880873, 0.08542258402826518, 0.06714485221721138, 0.049681266368111064, 0.03280421380338777, 0.01612001794910617, 5.684526197462031e-13], - [0, 0.31688845573683055, 0.3168884546659006, 0.3168786072211565, 0.3168712535142508, 0.3168657415784543, 0.316862303316157, 0.3168601895254146, 0.31685781817486774, 0.27979331319386375, 0.24163635347065357, 0.20822627606378333, 0.17864085845985767, 0.15221919967075356, 0.12844636042018465, 0.1068060568348984, 0.08687061998955423, 0.06821070105672791, 0.0504313738929341, 0.033292930278889826, 0.016353407680185363, 5.684141982790215e-13], - [0, 0.31280399608306214, 0.3128039950127007, 0.3127942388988461, 0.3127869181997769, 0.31278159114378956, 0.3127781532560905, 0.31277603969613244, 0.312774511794487, 0.28751001365662904, 0.2477866998714266, 0.2131341471135787, 0.18255515058911012, 0.1553429740886259, 0.13093208776808765, 0.10876828190305346, 0.08839598566964933, 0.06932415715482433, 0.05122032088081604, 0.03379234362228092, 0.016598785277892703, 5.684390674969185e-13], - [0, 0.3089163894384224, 0.3089163883680606, 0.3089067192371427, 0.3088994300480857, 0.30889427879060294, 0.30889084132581884, 0.30888872802563516, 0.3088872973273734, 0.2957428621886034, 0.25433780893194996, 0.21834707494463138, 0.186702967281462, 0.15864698199152355, 0.13355740832423607, 0.11083835010197135, 0.08997714452618734, 0.07049639834633563, 0.05205045174932352, 0.03431758078704648, 0.01685685165000446, 5.684090887736317e-13], - [0, 0.3052160593466623, 0.3052160582763008, 0.30520647192986433, 0.30519920487677155, 0.3051942288169583, 0.3051907917438259, 0.3051886786852264, 0.3051872351215934, 0.30454127589735, 0.2612989488403627, 0.22389130550266167, 0.19110321556411236, 0.16214505510674826, 0.13633254164631128, 0.11302383781526268, 0.09162794881490305, 0.07173119145079457, 0.05292432070746142, 0.03487019284989403, 0.017128369090073745, 5.684429163685655e-13], - [0, 0.30169413935311695, 0.3016941382827557, 0.30168463066218, 0.301677364222428, 0.301672575466796, 0.3016691386835647, 0.3016670258040223, 0.3016655454888452, 0.3016642462023357, 0.2687079707544626, 0.22979268809024234, 0.1957769567815149, 0.16585252654920182, 0.13926877160542983, 0.11528793987565689, 0.09336943240157339, 0.07303265530197231, 0.05384471496256544, 0.03545186921144262, 0.01741416788377135, 5.684214409580984e-13], - [0, 0.2983424130712822, 0.2983424120009206, 0.29833297917946333, 0.2983257130040331, 0.2983211029993528, 0.29831766634174545, 0.2983155535389417, 0.29831403804337264, 0.29831286478042823, 0.276636138278832, 0.23602496182491003, 0.20074429843305136, 0.16978330140148054, 0.14234187778811253, 0.11767947826001558, 0.09520795903881664, 0.0744053017842818, 0.05481468110872349, 0.03606445283423911, 0.017714777667379125, 5.684523297314515e-13], - [0, 0.29515326042371715, 0.2951532593533556, 0.29514389752762316, 0.2951366311469882, 0.295132191936318, 0.29512875518150833, 0.2951266423201558, 0.29512509305675383, 0.2951223002560252, 0.28512436066307606, 0.2426760287380602, 0.20596781840367848, 0.17391250241018968, 0.14558725877236614, 0.12020973156893447, 0.09715053185857414, 0.07585408279737742, 0.055837555215134595, 0.03670995755612701, 0.018031476865303438, 5.68439677355079e-13], - [0, 0.29211960934617337, 0.2921196082758118, 0.2921103137589398, 0.2921030465944342, 0.2920987707682346, 0.2920953336428059, 0.2920932205535112, 0.2920916387921582, 0.292086661410167, 0.2920742319406602, 0.24979110763581508, 0.21152825902618136, 0.17827055984184886, 0.14900148821027429, 0.1228752031556725, 0.09920487438989778, 0.07738444415906537, 0.056916997241955904, 0.03739058782912252, 0.01836540199803946, 5.684254634241334e-13], - [0, 0.28923489232681726, 0.28923489125588736, 0.2892256604695833, 0.28921839184363324, 0.28921427249770215, 0.2892108346810572, 0.2892087211671426, 0.2892071080430015, 0.2891998315800493, 0.2891879259203733, 0.25741678611495894, 0.21746533613224986, 0.18290979571645496, 0.1526189375260856, 0.12567458805961, 0.10135853185147425, 0.07900238768229438, 0.058057030518625666, 0.0381087612743159, 0.01871773760626641, 5.684090697992556e-13], - [0, 0.28649300723941434, 0.28649300616848433, 0.28648383563449903, 0.28647656477915007, 0.28647259547710735, 0.286469156606017, 0.28646702280980196, 0.2864652562237777, 0.28645588647066217, 0.28644066513948024, 0.2655943292012354, 0.22381546108647402, 0.18785569362648855, 0.15646525250076576, 0.12864459972036002, 0.10361949418893344, 0.0807145428927924, 0.05926208716800838, 0.03886713454903638, 0.019089785258188326, 5.684593550939067e-13], - [0, 0.283888281998656, 0.2838882809271575, 0.28387916726330714, 0.28387189332818186, 0.28386806806452036, 0.28386462773710175, 0.2838624642851065, 0.2838598932987673, 0.2838489256606631, 0.2838305929958546, 0.2743599344000811, 0.23061995837906546, 0.1931369665805958, 0.16056062280028952, 0.13179950625612938, 0.10601665707611092, 0.08251896004992425, 0.06053706056093225, 0.039668633088467575, 0.019482978102018895, 5.684380293813006e-13], - [0, 0.28141544261927764, 0.281415441547211, 0.28140638145885105, 0.28139910351797004, 0.2813954166884971, 0.2813919744664876, 0.28138978209312904, 0.28138569574707645, 0.28137385796981135, 0.28135241987172344, 0.28132197230036166, 0.2379259201489963, 0.19878608272449613, 0.16492773124127796, 0.135155250935668, 0.10856121186407112, 0.08439762213754427, 0.061887366087489855, 0.04051648542713339, 0.019898897653547416, 5.684316949376137e-13], - [0, 0.2790695843219741, 0.27906958324933856, 0.27906057352538527, 0.2790532905822831, 0.2790497369539938, 0.27904629236559275, 0.27904407170353845, 0.2790379596052623, 0.27902582673561976, 0.279001354482489, 0.27896620475985423, 0.24575306339045253, 0.20483989731872052, 0.1695921486947329, 0.13872970364900555, 0.11126564257210715, 0.08639074643554075, 0.0633190118344374, 0.041414262942680566, 0.02033929323204135, 5.684051529323283e-13], - [0, 0.27684614536667573, 0.2768461442929037, 0.27683718179787326, 0.2768298927907154, 0.27682646747678064, 0.2768230200200606, 0.2768207716076177, 0.2768123029852632, 0.27680026629241183, 0.276772574218853, 0.2767328204788555, 0.2541614182018748, 0.21134041688412714, 0.17458280658502198, 0.14254295914497547, 0.11414391658661316, 0.08850789890914254, 0.06483868109512513, 0.04236592603945147, 0.0208041695827888, 5.684474699295357e-13], - [0, 0.2747408833266718, 0.27474088225233123, 0.2747319639223634, 0.2747246677279237, 0.27472136616324855, 0.2747179153072923, 0.2747155068851728, 0.27470488550818584, 0.2746929398682596, 0.2746620031825843, 0.27461758527181246, 0.26324737657432745, 0.21830802947704375, 0.1799325653706775, 0.1466176925129047, 0.11721171020667506, 0.09075976800602367, 0.0664538290925521, 0.04337587802638158, 0.0212718036334536, 5.684161146705253e-13], - [0, 0.27274985357166803, 0.272749852495622, 0.2727409753327951, 0.2727336707715725, 0.2727304886911956, 0.27272703387780023, 0.272723776246267, 0.2727117568042565, 0.27269859292857773, 0.27266565085483335, 0.27261674097360383, 0.2725538394645359, 0.22576550815358612, 0.1856789025515582, 0.1509795851359286, 0.12048667668580045, 0.0931583330668673, 0.06817279685321868, 0.04444902823252068, 0.021767727094470515, 5.684338552158143e-13], - [0, 0.2708693897250214, 0.27086938864783855, 0.2708605497144843, 0.27085323555127144, 0.2708501689721744, 0.27084670961755825, 0.27084210791883845, 0.2708292451256967, 0.27081260457521267, 0.2707797299979121, 0.27072650185743896, 0.27065677764881, 0.2338221077775415, 0.19181394842632907, 0.1556578379745588, 0.12398876641725566, 0.09571706402994101, 0.06996449260498133, 0.04557065513608902, 0.022294279251013984, 5.684495027574777e-13], - [0, 0.2690960859195, 0.2690960848406121, 0.26908728125647485, 0.2690799562049051, 0.269076989208088, 0.269073536900919, 0.26906751284741404, 0.2690537346455813, 0.26903391155997264, 0.26900106688174213, 0.2689433705734244, 0.2688668736919907, 0.24255161490032126, 0.19839793949074633, 0.16063443525695212, 0.1277290137858244, 0.0984511594492685, 0.07185864002053673, 0.046737417732174505, 0.0228540711856339, 5.684135450238638e-13], - [0, 0.26742678067137166, 0.2674267795907783, 0.2674180085256242, 0.2674106712481718, 0.2674077931527565, 0.26740435446925004, 0.26739668776428965, 0.26738216558896966, 0.2673592451532158, 0.2673265170341213, 0.26726426724906094, 0.2671809250449543, 0.25201182366799935, 0.20549353230819653, 0.16598192751644106, 0.1316885293198311, 0.10132278614548802, 0.0738305278719055, 0.04798049570467824, 0.023450026126283788, 5.684535331561828e-13], - [0, 0.26585854222446414, 0.26585854114159696, 0.2658497998118037, 0.2658424489243316, 0.26583965206782534, 0.26583623077385704, 0.265826419533255, 0.26581170732526976, 0.2657852953706197, 0.26574936241956965, 0.26568604509577676, 0.2655961600447654, 0.2622825073945025, 0.21318283635992002, 0.17173569118256207, 0.1359441175713982, 0.10438994309822656, 0.07593747517603347, 0.04930693464643804, 0.0240845992908589, 5.684422577254769e-13], - [0, 0.2643886552328928, 0.26438865414832013, 0.2643799398134665, 0.26437257388408886, 0.2643697873202204, 0.26436644626642236, 0.26435440439684077, 0.26433963962802015, 0.2643098090140942, 0.26426929050103387, 0.2642063600058013, 0.26410972665019045, 0.26398712411037234, 0.22154006427797468, 0.1779189610209643, 0.1405281699811671, 0.1076824143990508, 0.07819272752442451, 0.05072468908281293, 0.02476102683374399, 5.684542812297317e-13], - [0, 0.2630146086681861, 0.2630146075807712, 0.2630059175390894, 0.2629985350881725, 0.2629957579182472, 0.2629924781268752, 0.26297826664915647, 0.262963446837716, 0.2629302632510641, 0.26288486057524096, 0.26282268018690036, 0.26271915893062187, 0.26258677241401074, 0.23063031144886262, 0.184622450897791, 0.14547802079789549, 0.1112243228618581, 0.08061134316733391, 0.05224277325623912, 0.02548453508211419, 5.684169278474288e-13], - [0, 0.26173408483145977, 0.26173408374120294, 0.2617254153238946, 0.26171801482746554, 0.2617152461658634, 0.2617120255888495, 0.26169568432067064, 0.26167958422661286, 0.26164421411124295, 0.26159380640365276, 0.26153231391845105, 0.2614220225927965, 0.2612799463315696, 0.2405150377603606, 0.19191160258912987, 0.1507827864463707, 0.11504339323664688, 0.08321051299617467, 0.05387144297515081, 0.026259837023303565, 5.684293747300507e-13], - [0, 0.26054494939558054, 0.26054494830248165, 0.26053629887144375, 0.26052887876005604, 0.26052610799013143, 0.26052290127495364, 0.26050451901085153, 0.26048555244017313, 0.26044936013477143, 0.2603943022427303, 0.26032626604319403, 0.260216507190876, 0.2600643791464564, 0.2513490497091197, 0.19986336721672154, 0.15652628278530764, 0.11917164898591187, 0.08600995082076696, 0.05562241627330883, 0.027092303802760526, 5.684157704252857e-13], - [0, 0.2594452423829805, 0.259445241286471, 0.2594366082297481, 0.25942916688734374, 0.25942638819060443, 0.25942240516030773, 0.2594028068432406, 0.2593801235013868, 0.25934400923063095, 0.25928436823903644, 0.25920887724282665, 0.2591001751193288, 0.25893827228060184, 0.2587323907755489, 0.20851581634360603, 0.16277620600192197, 0.1236462773721313, 0.08903237265087677, 0.05750914288455529, 0.027988083404579676, 5.684226200531804e-13], - [0, 0.25843317000635585, 0.25843316890700396, 0.25842454963481026, 0.2584170854004242, 0.25841429815613987, 0.2584091512892428, 0.25838875029137415, 0.25836228432751795, 0.2583262063677696, 0.25826219154907903, 0.25817934751216853, 0.25807088560554803, 0.25789969163724896, 0.2576799164040722, 0.2179793035958255, 0.16959980229160002, 0.1284717600543672, 0.09230408959069798, 0.05954713561550307, 0.02895424598364105, 5.684316759639922e-13], - [0, 0.25750709731482907, 0.25750709621206674, 0.2574984881533742, 0.25749099931829356, 0.25748820288868096, 0.2574814536899345, 0.2574607108010702, 0.25743040593454286, 0.25739431578983907, 0.2573258630786774, 0.2572360102249154, 0.2571276796550144, 0.25694707527748123, 0.2567132692479396, 0.2283816433481439, 0.17704828134697015, 0.133682137375786, 0.09585574705681682, 0.06175438087154837, 0.02999896310655012, 5.684141223821952e-13], - [0, 0.25666554157567123, 0.25666554046892975, 0.25665694106805825, 0.2566494258769581, 0.256646619606613, 0.256637993957156, 0.2566172021602141, 0.2565830748551431, 0.256543072099475, 0.25647307355654897, 0.2563773521046639, 0.25625958456771497, 0.2560785853501099, 0.2558308494525362, 0.23988085531868814, 0.1851833408852597, 0.13937726033475423, 0.09971321662760604, 0.06409802836174085, 0.031131730501670084, 5.684154126268629e-13], - [0, 0.25590716635292693, 0.25590716524220647, 0.2558985719537079, 0.25589102860351454, 0.25588821181884236, 0.2558777180718154, 0.25585688455976224, 0.25581897273809806, 0.2557734131238478, 0.2557035502309192, 0.2556010570009451, 0.25547352974228954, 0.2552926682824366, 0.2550312931185776, 0.2526025028015513, 0.1941639811900588, 0.14559144603140356, 0.10392523797293066, 0.06662893490783973, 0.03236364716372012, 5.684217662259515e-13], - [0, 0.2552307762294957, 0.25523077511365955, 0.25522218540061203, 0.25521461203766177, 0.2552117840463097, 0.2551994400454305, 0.25517855160956066, 0.25513689450292537, 0.25508582766519783, 0.25501607884905286, 0.2549064452392713, 0.25476965046891575, 0.2545888734465508, 0.2543135235725914, 0.25395804472793776, 0.20404311638515074, 0.15237149208246578, 0.10854331811344758, 0.0693899286426358, 0.03370776816950632, 5.684468004499422e-13], - [0, 0.25463531213574686, 0.25463531101536313, 0.25462672234425554, 0.25461911706372575, 0.2546162771551507, 0.25460209768539244, 0.25458113761089846, 0.25453577166899755, 0.2544792381263506, 0.2544095819860104, 0.254292848680393, 0.25414546129979937, 0.2539659183526055, 0.25367604382722675, 0.2533014212241369, 0.2150460414310371, 0.15986493652519557, 0.11349641286244598, 0.07241264753247358, 0.03508491797560966, 5.684455346705804e-13], - [0, 0.2541198472528093, 0.2541198461278781, 0.25411125596633605, 0.25410361681053906, 0.2541007642525982, 0.2540847611209072, 0.2540625170036037, 0.25401466821847396, 0.2539526995985851, 0.2538802591914187, 0.2537593109832414, 0.2536013733413254, 0.25340791945609437, 0.25311796833250344, 0.2527240977497058, 0.22729782397391304, 0.16818742059058406, 0.1188569198319554, 0.07563539483101066, 0.036560228349458206, 5.684268701963047e-13], - [0, 0.25368358345644954, 0.253683582325834, 0.2536749881375041, 0.2536673130941833, 0.2536640461272551, 0.2536451119243565, 0.25362020913064476, 0.253572777002091, 0.253505396229343, 0.25342563586718814, 0.25330500506242964, 0.25313606464010246, 0.25292697641361883, 0.25263913032574653, 0.25222540441063734, 0.24104188678791136, 0.1774727194822388, 0.12478878448860074, 0.07916490411218985, 0.03817709647307751, 5.684164616261464e-13], - [0, 0.25332584827651766, 0.2533258471402179, 0.2533172463813571, 0.25330937169428597, 0.2533056538470646, 0.25328367851216177, 0.2532556892634829, 0.25320815405848424, 0.25313629706204216, 0.2530495813908828, 0.25292922993060096, 0.25274874822798693, 0.2525238740787474, 0.2522387898909529, 0.25180421968116207, 0.25124588067797066, 0.18778730171447924, 0.1313859652816519, 0.08306648653046986, 0.03995632742203265, 5.684230971116449e-13], - [0, 0.25304609235320186, 0.2530460912112176, 0.25303748132898835, 0.253028975210441, 0.25302407593073895, 0.2530002303495848, 0.2529689634405941, 0.2529213815500953, 0.2528441583683617, 0.2527505379390505, 0.25263082002879855, 0.252439393258328, 0.2521987545310367, 0.25190212443533255, 0.2514600899360176, 0.2508756959133507, 0.19934667651284588, 0.13876425298178668, 0.08740058112437049, 0.04192290044727559, 5.684461255486632e-13], - [0, 0.2528438873730464, 0.25284388622480936, 0.25283526465102546, 0.2528261269327457, 0.252817940540808, 0.25279433341268026, 0.2527593502463788, 0.25271076184139907, 0.25262955790026353, 0.25252807929120974, 0.2524084636951329, 0.25220752558084303, 0.25195111914570134, 0.25163243709869193, 0.25119331100881936, 0.2505816499370894, 0.21246110073036537, 0.14706800057126634, 0.09224149031069813, 0.04410720721693907, 5.684444260949054e-13], - [0, 0.25271892445971395, 0.2527189233046556, 0.25271028745407875, 0.2527005169991981, 0.2526890496255873, 0.2526656731572531, 0.2526269730526565, 0.2525731135312981, 0.25249216774398076, 0.2523828225406533, 0.25225197004601807, 0.25205133048757505, 0.2517805891653779, 0.25143983569989803, 0.2510020658081657, 0.25036364472157413, 0.22740956064865267, 0.15647950617449166, 0.0976815950320998, 0.04654660096775862, 5.684209747405177e-13], - [0, 0.2526710130240416, 0.2526710118621621, 0.2526621344492242, 0.25265195383212813, 0.2526372065915437, 0.2526140533433363, 0.25257162993852933, 0.2525124909675469, 0.2524317783127116, 0.2523145460713748, 0.25217108233675817, 0.25197057264449535, 0.2516861443939433, 0.2513240260935845, 0.2508710065364994, 0.25022048656751383, 0.24453618966219878, 0.16699338403782343, 0.10383720746119703, 0.04928751006445964, 5.684519746664607e-13], - [0, 0.25270008005350053, 0.2527000788842315, 0.25269060758716916, 0.2526803634236782, 0.25266233243314684, 0.25263939530532287, 0.25259323656143784, 0.2525288017585578, 0.25244829757070875, 0.25232314582126486, 0.2521670343850244, 0.25196659341702327, 0.25166603034392665, 0.2512848316746385, 0.250801982272719, 0.25015362196256746, 0.24924982112509006, 0.17896954873322077, 0.11075881230681255, 0.052388371386768925, 5.684209747405177e-13], - [0, 0.2528061698393455, 0.2528061686626869, 0.25279609996289315, 0.2527857890652286, 0.25276446543614384, 0.25274025268458905, 0.25269182584509053, 0.2526220707579796, 0.2525417506893746, 0.2524080765391543, 0.25223982002273704, 0.2520393867416713, 0.2517225905205575, 0.25131964126728673, 0.25080937393113345, 0.25015882950413015, 0.24922049890449188, 0.19285948391768662, 0.11840722415684005, 0.05592378016956434, 5.684444260949054e-13], - [0, 0.25298944414316793, 0.25298944295855114, 0.2529787724256494, 0.2529683915025771, 0.25294376132023894, 0.25291630200683807, 0.25286754809997086, 0.2527924401556447, 0.2527078892666168, 0.2525697059695631, 0.25238955018892284, 0.2521742554478124, 0.2518559111223338, 0.25143031036407143, 0.25089309445945707, 0.25020196589991883, 0.2492655605942673, 0.20904026167784215, 0.12717865669458206, 0.059782760913549365, 5.684461255486632e-13], - [0, 0.2532501858644308, 0.2532501816045851, 0.2532389038850624, 0.2532284431089237, 0.2532004938194632, 0.2531697684770507, 0.25312067158267837, 0.2530401700084896, 0.2529477444375061, 0.25280859982387943, 0.2526164533446717, 0.2523848056580392, 0.25206619551340737, 0.2516177559431297, 0.25104960302314794, 0.250321380643186, 0.24933986856979135, 0.2279812416259121, 0.1373988109844504, 0.0641936654568553, 5.684230971116449e-13], - [0, 0.25358546193615467, 0.25358546193331244, 0.25357418650287405, 0.25356228236489636, 0.25353337778142304, 0.2534984208421065, 0.2534498337030301, 0.253364630143551, 0.25326527570257434, 0.25312512338587095, 0.2529208763223779, 0.2526727386356242, 0.25235376498358175, 0.25188226423836113, 0.2512828979541836, 0.2505172244440246, 0.2494741228645128, 0.2478673893313043, 0.1494545988703066, 0.06933011344528948, 5.684164616261464e-13], - [0, 0.253999025826488, 0.2539990258236458, 0.2539878008423103, 0.2539731492691999, 0.2539443820853647, 0.2539044600882788, 0.25385550406383567, 0.2537639931358625, 0.25365687951079974, 0.2535170908947748, 0.2533022712697175, 0.2530384953513475, 0.2527157515163482, 0.252223759777621, 0.251592227459696, 0.2507854452431957, 0.2496815374684047, 0.2479658923493842, 0.16369066998720436, 0.07538499744214278, 5.684268701963047e-13], - [0, 0.25449158808953604, 0.25449158808669387, 0.2544804105554022, 0.25446298754843616, 0.2544343501278945, 0.25438941595950837, 0.25433432620388896, 0.25424218399393794, 0.2541270741107837, 0.2539861946200972, 0.2537586781716075, 0.2534785605416803, 0.25313578015811794, 0.2526414826991187, 0.2519776460928827, 0.25113061029742323, 0.24996550252240027, 0.24813660205666138, 0.18043843329394346, 0.08236340732082681, 5.684455346705804e-13], - [0, 0.255063910345825, 0.2550639103429828, 0.25505277733941495, 0.25503255448995793, 0.25500403940668526, 0.25495403798743155, 0.25489166389263573, 0.254799941515671, 0.25467673618322806, 0.2545219058731619, 0.2542943331144442, 0.25399637173222794, 0.253629466274674, 0.25313483909542345, 0.25244126142979445, 0.25155042144490364, 0.25032240429879954, 0.24837987174066709, 0.20107206610077788, 0.0906044279230399, 5.684468004499422e-13], - [0, 0.25571688198624565, 0.25571688198340353, 0.2557057906579988, 0.255682735041774, 0.25565123361388964, 0.2555992031540202, 0.25552945729032256, 0.25543813164119933, 0.25530671865794846, 0.2551376196129244, 0.2549100665794415, 0.2545940133956039, 0.25420019448972675, 0.25370270801090566, 0.25298034580032464, 0.2520485435155707, 0.25075583626744447, 0.24869685080432227, 0.2264169414314668, 0.1003608821179114, 5.684217662259515e-13], - [0, 0.2564515235786757, 0.25645152357526496, 0.2564397080794834, 0.25641454519814044, 0.25637782912156126, 0.25632591924534154, 0.2562487021242533, 0.2561577507651691, 0.2560180045327344, 0.25583443814639395, 0.25560683838705245, 0.2552724159829722, 0.2548507631638587, 0.25432024332644687, 0.25359579045186803, 0.2526230969067455, 0.2512653613939618, 0.2490855133947888, 0.24494069795025541, 0.11251049428096847, 5.684154126268629e-13], - [0, 0.2572689908055283, 0.257268990802686, 0.25725452908147894, 0.25722913592005636, 0.2571871315507226, 0.2571353287396506, 0.25705052843420645, 0.2569569267780025, 0.25681171065741665, 0.256613454346848, 0.2563857413883853, 0.2560326420268667, 0.25558272308501273, 0.25501866295030606, 0.2542918855579046, 0.253273107633163, 0.25185169814619723, 0.24954779991560389, 0.24490915085891635, 0.12800494766054277, 5.684141223821952e-13], - [0, 0.2581705789691568, 0.2581705789663146, 0.25815343136741836, 0.25812779761679394, 0.25808042231687983, 0.2580287132531111, 0.25793620496642683, 0.2578340414282821, 0.25768799455477176, 0.2574758984491155, 0.2572311844608066, 0.2568758902577884, 0.25639722569849255, 0.25579906261100405, 0.25504735103652365, 0.2540040436900883, 0.25250966317344137, 0.2500465505391959, 0.2449438168520148, 0.14688729865042668, 5.684316759639922e-13], - [0, 0.2591577280861658, 0.25915772808275517, 0.25913785027910297, 0.25911196522372393, 0.2590591270239882, 0.25900749857953537, 0.2589071441570922, 0.2587962664580345, 0.2586488055891321, 0.25842314286933277, 0.25815977723596, 0.25780350028696813, 0.2572955615835325, 0.25666267516100993, 0.2558653593320058, 0.25480992794882695, 0.2532483752582946, 0.2504569123800591, 0.24504426438113538, 0.1722800588987637, 5.684226200531804e-13], - [0, 0.2602320286234772, 0.2602320286200666, 0.2602093714216381, 0.2601832239156465, 0.26012482113742397, 0.2600732603605138, 0.2599649077433242, 0.25984514819754184, 0.2596962104036037, 0.259456707640311, 0.25917433169581755, 0.25881652795078486, 0.25827916553453184, 0.257610875406158, 0.25676709707965983, 0.2556393553260249, 0.2539450201828686, 0.25093000816866606, 0.24521449133033008, 0.20666953494185228, 5.684157704252857e-13], - [0, 0.26139205922163455, 0.26139205920515, 0.2613667180088441, 0.2613398283142486, 0.26127589718328176, 0.261219578516716, 0.2611079228239532, 0.26097882590022425, 0.2608289924722839, 0.2605750207754909, 0.260272967424271, 0.2599107342928163, 0.25934640333218784, 0.2586434514222446, 0.2577540052863013, 0.25655260366477245, 0.25472331361072514, 0.2514803829365063, 0.24544071989168983, 0.2293159133387234, 5.684293747300507e-13], - [0, 0.2626299507363681, 0.26262995071988343, 0.2626047257268736, 0.26257619333591703, 0.2625112485532099, 0.26244962979092146, 0.2623367776487838, 0.26219706133474535, 0.2620375410117502, 0.26177600100027093, 0.2614535326455323, 0.26105958482503383, 0.26049365116818973, 0.2597528098181101, 0.2588144435827643, 0.2575407266073169, 0.2555785601197157, 0.2521101413287849, 0.24530065405201618, 0.22743664944812267, 5.684169278474288e-13], - [0, 0.2639604102574821, 0.26396041024099753, 0.2639352972033747, 0.2639037852628688, 0.2638390870077954, 0.26377108912924985, 0.26365794643936613, 0.263507366761928, 0.26333014325018667, 0.26306860731551746, 0.26272524976491224, 0.26229889020385133, 0.2617311741551018, 0.2609515563756305, 0.2599622312959579, 0.2586105084083102, 0.2565051816623052, 0.25280118533430584, 0.24520330640427765, 0.22540081364184056, 5.684542812297317e-13], - [0, 0.26538566904321226, 0.2653856690267276, 0.26536066395806307, 0.2653261016979514, 0.26526163879395886, 0.26518677282069814, 0.26507246540120405, 0.264911934255565, 0.2647165962116561, 0.26445499762473923, 0.26409023632709266, 0.263630705707101, 0.2630550959526091, 0.2622416702553212, 0.26120016327524825, 0.2597686727852989, 0.2575172744326439, 0.253568112787548, 0.24514873008172386, 0.22202247349468987, 5.684422577254769e-13], - [0, 0.2669081469917955, 0.26690814697474247, 0.26688324615633974, 0.2668455566282544, 0.26678131850132997, 0.2666994123160292, 0.2665736440502542, 0.2664131423642856, 0.2661992420615887, 0.26593751442135277, 0.2655507923134336, 0.2650572657989866, 0.2644426755750827, 0.26362530566018444, 0.26253029355700597, 0.2610171233197886, 0.2586164748180407, 0.25438423917421454, 0.24516884223430682, 0.21877100308529387, 5.684535331561828e-13], - [0, 0.26853046313476614, 0.2685304631177131, 0.26850566310713453, 0.2684647628387891, 0.2683991245640981, 0.2683116063434452, 0.2681740764018058, 0.26801356639111845, 0.26778061769789463, 0.2675006841303684, 0.2671094100094251, 0.2665809936593178, 0.2659264047173337, 0.26510480096078454, 0.2639548549791469, 0.262357934637407, 0.2598045774396948, 0.25498128661695296, 0.2451779844955124, 0.21506844375323897, 5.684135450238638e-13], - [0, 0.2702554472028851, 0.27025544718526356, 0.27022974428859925, 0.27018654343748966, 0.27011478081647056, 0.2700261631150624, 0.26987654544370776, 0.2697159897206802, 0.2694634658706717, 0.26916116754819086, 0.2687687848924722, 0.26820451170408427, 0.26750882311148405, 0.26665564701261246, 0.26547626871433766, 0.26378670538804255, 0.2610809158204571, 0.2556343069261402, 0.24452398231176162, 0.20977777068196676, 5.684495027574777e-13], - [0, 0.27208615235963396, 0.27208615234201255, 0.27205770671628204, 0.2720139445551695, 0.27193587895169474, 0.2718461129444447, 0.2716840547321907, 0.27152341629459914, 0.2712507474319637, 0.27092543628043597, 0.27053182761846983, 0.26993065316673914, 0.26919267643904743, 0.26828474318165274, 0.2670971547837553, 0.26530103929530924, 0.26224084816306004, 0.2563375084321254, 0.24393964188277556, 0.20475539457947897, 5.684338552158143e-13], - [0, 0.2740258692159614, 0.2740258691983397, 0.2739945978106562, 0.2739502493204782, 0.2738656876243795, 0.2737747221260634, 0.2735998421161412, 0.2734339134843821, 0.2731456548139023, 0.2727966308538045, 0.2724016772191359, 0.27176247486067934, 0.2709761040915737, 0.27000258352700274, 0.26871490054873004, 0.26677816112169234, 0.26341231647677443, 0.2571231275970831, 0.24343206258492964, 0.19832430161500236, 5.684161146705253e-13], - [0, 0.27607814125303787, 0.2760781412354166, 0.2760439543095573, 0.27599899323320204, 0.2759077269121235, 0.27581550821309986, 0.2756273948426726, 0.2754438097031198, 0.2751478796483299, 0.27476911134556326, 0.2743389400450272, 0.2736813404794704, 0.2728459977203103, 0.271812351107883, 0.2704252301447244, 0.2683195342154933, 0.2646752824199439, 0.2579924056510663, 0.24264309986449484, 0.19120924970764042, 5.684474699295357e-13], - [0, 0.2782400024420895, 0.27824000239832014, 0.27820248325099306, 0.27815560559645264, 0.2780554254434264, 0.2779584796405743, 0.2777540044195347, 0.27754881185444435, 0.27724794121922947, 0.2768413292830019, 0.27637281397687724, 0.27570932980950114, 0.2748261737974644, 0.27373048695835656, 0.27224092960523183, 0.26996153288109787, 0.26603184391831275, 0.2587441481728092, 0.24101947539463686, 0.18427476629540232, 5.684051529323283e-13], - [0, 0.2804989605914439, 0.28049896054653767, 0.280461452286431, 0.2804118853117639, 0.28030922976142825, 0.28019960423705426, 0.2799946910408831, 0.2797712792801117, 0.27946608953243357, 0.2790306820293147, 0.27851958150563366, 0.2778395923513694, 0.2769202714569016, 0.27576048345622395, 0.2741652538691138, 0.2717070261138584, 0.2674842809051366, 0.25916147522536864, 0.2394899012136871, 0.17529761253058462, 5.684316949376137e-13], - [0, 0.2828817725918498, 0.28288177254694324, 0.2828442691412647, 0.2827891412596272, 0.28268668226701243, 0.2825639334133712, 0.28235853227897667, 0.2821162557808065, 0.2817830434349844, 0.2813413214931871, 0.28078616055381606, 0.2800574127360278, 0.2791322062387279, 0.2779060993566417, 0.27620170845807485, 0.27355910898791075, 0.2690125718737591, 0.25962526671378305, 0.2380516743397722, 0.16718467440398382, 5.684380293813006e-13], - [0, 0.28539309328550627, 0.2853930932400315, 0.28535558894361635, 0.2852946958802247, 0.28519242413153706, 0.2850560723942406, 0.2848501334585758, 0.2845882957223007, 0.2842217614085026, 0.28377771232385374, 0.2831768990563431, 0.28239763821773045, 0.28146618942855617, 0.28017137812128073, 0.27835406620397407, 0.2755189220988539, 0.27048657804186876, 0.26017011358305775, 0.234851871513797, 0.15835153627619988, 5.684593550939067e-13], - [0, 0.2880379275762834, 0.28803792753024027, 0.28800041690601585, 0.2879335379793702, 0.287831445553479, 0.2876809727160893, 0.28746096911675095, 0.28719229595367335, 0.28679118216359756, 0.28634465493269107, 0.2856964720524504, 0.2848648080026804, 0.283878491038081, 0.2825606681011552, 0.2806248333916985, 0.2775187050190198, 0.2717456569433806, 0.2607968603967949, 0.23171639829172383, 0.14927656345662396, 5.684090697992556e-13], - [0, 0.29082165729960285, 0.2908216572524228, 0.29078413519812357, 0.29071103204387344, 0.2906060498429501, 0.2904439587047137, 0.2902032886078133, 0.2899335218887703, 0.2894964707610374, 0.28902891394352537, 0.2883499061732666, 0.28746380264294674, 0.2864085587731327, 0.28505639028594504, 0.28295945534353023, 0.2795054629291372, 0.27310009032817123, 0.26071811233237, 0.2287103547814696, 0.14122605421277956, 5.684254634241334e-13], - [0, 0.29375007089470273, 0.2937500708463859, 0.2937086056795124, 0.29363294778079335, 0.2935155691034197, 0.29335075671042427, 0.2930885719098342, 0.29281763630649504, 0.29234318169073964, 0.29183268119368216, 0.2911426066640387, 0.2901958269933403, 0.2890413745393515, 0.28754147196764274, 0.28526727054838835, 0.281438849166875, 0.2745521430301779, 0.26038875086783264, 0.2239420097953369, 0.13307781090986726, 5.68439677355079e-13], - [0, 0.2968293962146619, 0.29682939616520815, 0.29678246428602506, 0.29670549278023395, 0.29657519049067116, 0.2964075274326208, 0.29612291168803023, 0.29585073117630173, 0.29533728985256863, 0.29476960319811973, 0.2940478930156588, 0.2930207134721742, 0.29178716300123164, 0.29015942657736116, 0.28766580225067173, 0.28348612291722514, 0.27610427278148114, 0.26013936150093303, 0.2188768071556523, 0.1255844083436842, 5.684523297314515e-13], - [0, 0.30006633684479284, 0.30006633679477074, 0.3000136970030095, 0.2999353486677589, 0.2997915524622381, 0.2996209016879445, 0.29930346020648785, 0.2990019860902746, 0.2984420743138116, 0.29781945543618354, 0.29705237295956965, 0.29599218620205653, 0.29467624190147007, 0.2929155348743959, 0.2901941552278231, 0.28565104960136967, 0.2775037961401947, 0.25958127937883535, 0.21388304757238064, 0.1186025189167593, 5.684214409580984e-13], - [0, 0.303435267641135, 0.3034352675399537, 0.30337728051506524, 0.3032937824229978, 0.30313080563303196, 0.30294810729344596, 0.30260434930539765, 0.30226426838226, 0.30169864219828957, 0.3010257324632452, 0.3001876435553191, 0.2991165899794628, 0.29771469802028633, 0.2958154759812717, 0.2928573449094076, 0.2879173435343322, 0.2784471384785551, 0.2583834778323537, 0.20770283232877806, 0.11208826924644212, 5.684429163685655e-13], - [0, 0.3069482449302534, 0.3069482448273668, 0.30688998595621764, 0.30679511902633283, 0.3066285339656357, 0.30641954682948824, 0.3060731310324625, 0.3056926667665037, 0.3051186881515375, 0.30439552827431227, 0.30348323327700627, 0.3023655914370237, 0.3009090818176214, 0.2988653592024091, 0.2956607642619244, 0.29013745028578314, 0.279482339676633, 0.2566650601107764, 0.20192952735158057, 0.10603908620282697, 5.684090887736317e-13], - [0, 0.31063924898092016, 0.31063924887576, 0.3105807033449542, 0.3104707124992962, 0.31030354771587626, 0.3100670102838878, 0.30971779792309956, 0.3092950249748588, 0.30866761558968464, 0.30793648610995233, 0.3069465237928173, 0.30573975218374055, 0.30426644629244515, 0.3020717592312397, 0.2984990756829125, 0.29215320495438846, 0.2806110626858076, 0.2546078135975453, 0.19553220913508085, 0.10063848112110943, 5.684390674969185e-13], - [0, 0.31451707192502487, 0.3145170718181591, 0.3144582248370399, 0.3143323553609891, 0.3141645802952555, 0.31389912355336985, 0.3135409084336517, 0.31307980216013215, 0.312396350668678, 0.3116568467612526, 0.31058547098098216, 0.3092853431962797, 0.3077070830499907, 0.30534176883691116, 0.3012828263234724, 0.29414017123770025, 0.28183027595730464, 0.2517639188488373, 0.18859108327717433, 0.09577724537621184, 5.684141982790215e-13], - [0, 0.31859120804028823, 0.31859120793058043, 0.31853204476078617, 0.31838947653682204, 0.31822106182119086, 0.31792519915029493, 0.31752650152213807, 0.3170561286827929, 0.31631380471196735, 0.3155560244402974, 0.3144086560058668, 0.3129925572761749, 0.31118322761187717, 0.30850553495895394, 0.30399775785610905, 0.2962452068385345, 0.28162806098407583, 0.24905788066973844, 0.18197372227461958, 0.09116455023104196, 5.684526197462031e-13], - [0, 0.32287191963121115, 0.3228719195192297, 0.3228018836779253, 0.32265226669949215, 0.32245833388344614, 0.3221553002379094, 0.3217139843258109, 0.32123386834200574, 0.3204296017827343, 0.31959244601011916, 0.3183638023858748, 0.3167893851713183, 0.3148110352935868, 0.3118315309620809, 0.30685638549016403, 0.29847216216012357, 0.28144103433476153, 0.24543388046311032, 0.17554441382060287, 0.08662765126473451, 5.684373219437229e-13], - [0, 0.3273703107237225, 0.3273703106094673, 0.32728461350018295, 0.32713175120363785, 0.3269098790713088, 0.3266003122246276, 0.32611405576176383, 0.32560000924945603, 0.3246836944794042, 0.3237224324203681, 0.3224565694512196, 0.3207783728856841, 0.31862262784613893, 0.3153271221452771, 0.30986456913808536, 0.3003178051881149, 0.28133989791001596, 0.24067744367300759, 0.16899995893368222, 0.08252515484059579, 5.684300279670163e-13], - [0, 0.3320606490325414, 0.33206064880346253, 0.3319569933336192, 0.3317915512394617, 0.33152842965876, 0.3311926915267801, 0.3306291471426443, 0.33004847874678905, 0.3291110553033143, 0.3280617962144558, 0.32668077091614045, 0.32496935091501167, 0.3226271295545755, 0.31900024424317047, 0.312947829345944, 0.3016871327463375, 0.2804296385090763, 0.2355629618455167, 0.16228726936617446, 0.07881658190115093, 5.68429908703892e-13], - [0, 0.3368895870102049, 0.33688958677601, 0.33678470819211254, 0.3366042951824964, 0.3363281727234836, 0.33595107142048153, 0.33536989103879444, 0.3347175635309441, 0.33376390081059515, 0.33262177174378804, 0.3311193170753764, 0.32926422712648656, 0.3268343950293228, 0.32285945363639695, 0.3156272442259934, 0.3031617736621683, 0.27851449096090164, 0.2305163680648546, 0.15588018473863477, 0.07544898529374675, 5.684362811144216e-13], - [0, 0.3419667492232748, 0.3419667489833956, 0.3418605869779869, 0.34165486322308425, 0.34137444868747496, 0.3409454200414075, 0.34035374667894314, 0.33962558566713585, 0.3385820433692289, 0.33741452759443336, 0.33578382764801507, 0.3337365762411084, 0.3310407615725809, 0.3263247961803018, 0.31814357068185517, 0.3046276750848164, 0.27633094839700323, 0.2249314401376526, 0.15000374497901706, 0.07237851520130789, 5.684466703485532e-13], - [0, 0.3473066975783468, 0.3473066973327834, 0.34719918871076083, 0.3469666015354279, 0.34668167138931943, 0.34619755100550276, 0.3455695988395749, 0.34478627227883857, 0.34364294044678473, 0.3424532602008415, 0.3406868941539186, 0.33839065549102576, 0.33506941081213887, 0.32977811482112457, 0.32079884597578767, 0.3052039945760042, 0.27334533380496884, 0.21828979151621308, 0.14450469910116237, 0.0694964816023003, 5.684100239385295e-13], - [0, 0.35292527213414354, 0.35292527188289563, 0.3528126399396569, 0.35255520007524405, 0.3522477061682138, 0.3517228421304707, 0.3510166857483909, 0.35021453914396256, 0.34896533826838544, 0.34768921045269957, 0.34573062693993956, 0.3430670981430239, 0.3392967860560247, 0.33338995078622696, 0.32359821774775804, 0.304682347152152, 0.270505063384121, 0.21202529355775818, 0.13942180278604605, 0.0668479538268229, 5.683786774568489e-13], - [0, 0.35883972904343875, 0.3588397287853697, 0.35870172334114153, 0.35843774823376856, 0.3580761000779378, 0.3575380362349282, 0.3567486530869247, 0.3558864873315319, 0.35443896856577345, 0.3529323322317167, 0.35084758882874223, 0.3479820898400024, 0.3437382368161934, 0.3371174148264803, 0.3256074733030799, 0.3042550007467073, 0.2668794741305192, 0.20588628708651438, 0.1347239777498999, 0.06441278762110872, 5.684100239385295e-13], - [0, 0.3649974058174626, 0.3649974053320196, 0.3648239942918966, 0.3645297945138284, 0.36408457094580654, 0.36348994695060816, 0.36255954066859886, 0.3615917863669436, 0.3600884830819948, 0.3584248550424725, 0.3561079857865936, 0.3529359143300324, 0.34829681596761464, 0.3406791348925252, 0.3267098604038666, 0.3031426172287865, 0.2619369532101247, 0.20014401021740016, 0.1303708376832446, 0.062167075182628664, 5.684466703485532e-13], - [0, 0.37126396918893056, 0.3712639686904137, 0.37108392378740956, 0.3707601237499603, 0.37028915056112044, 0.36962340770969604, 0.36866031735257815, 0.3675803795511003, 0.36600473391672483, 0.36420372938266593, 0.3616403622311281, 0.35799288897180753, 0.35263747430064984, 0.3431860417850885, 0.3279199643469604, 0.3014025364507232, 0.2561349206803242, 0.19477107170814628, 0.12632748195528615, 0.06009036545663078, 5.684362811144216e-13], - [0, 0.3778665825586809, 0.37786658204709006, 0.37767948242276295, 0.377313239344516, 0.37682564303111055, 0.3760786460435379, 0.3750861334435734, 0.37388648390105994, 0.372147102071949, 0.37028664392664684, 0.3674610483130889, 0.36323393399072706, 0.3564467335513654, 0.34583624261927026, 0.3287016426145322, 0.2982344094402831, 0.25065245755342863, 0.1897353526123876, 0.12209413615096298, 0.058165061823842776, 5.68429908703892e-13], - [0, 0.3848276364203686, 0.3848276358945669, 0.3846330225059096, 0.3842213165296474, 0.38370898598998376, 0.3828820680564605, 0.3817677734036807, 0.3805306731311476, 0.37861645297937224, 0.37655966021361575, 0.3733935596915219, 0.3682214831331978, 0.3604501838424315, 0.3484321969273196, 0.3284035474854365, 0.29479293287579383, 0.2450434283173312, 0.1834569242248563, 0.11793297951101082, 0.056317299977308846, 5.684300279670163e-13], - [0, 0.39217167787626256, 0.39217167733511316, 0.3919358021977355, 0.3915085472254982, 0.39090731595706496, 0.3900571829188944, 0.3888066322275563, 0.3875054590298529, 0.38522957109932987, 0.3826559359464449, 0.3789763121397983, 0.3731222424374889, 0.3642049034766617, 0.35061548660507924, 0.32709214694193617, 0.29151776220999154, 0.23900755158081216, 0.17744572713922935, 0.1140797164526929, 0.05457493572407646, 5.684373219437229e-13], - [0, 0.39979606937663487, 0.39979606841257026, 0.3994908232482436, 0.39900507630704884, 0.3982613234489923, 0.39731218044380556, 0.39582747047006733, 0.39433687202631573, 0.39193577615037645, 0.3889911113259363, 0.3847410395985664, 0.3779288014351327, 0.36785743892835426, 0.3512675114518516, 0.3253244046010196, 0.2876728389458101, 0.23241048710701764, 0.1718666521566093, 0.11050287973830573, 0.0529527936731712, 5.684526197462031e-13], - [0, 0.4074003099879062, 0.40740030899655716, 0.40707819410044976, 0.40655161293329883, 0.40575995507538204, 0.40471347476398006, 0.403159222833551, 0.40151885664613485, 0.39881849944151754, 0.39566213730097377, 0.3908047358248722, 0.382978994175005, 0.37056295202205525, 0.35156295196259174, 0.32367373095951274, 0.2806851737597071, 0.2262348859147778, 0.16667693055069305, 0.10717517352588858, 0.051425288891664325, 5.684141982790215e-13], - [0, 0.41542842621709014, 0.41542842519675094, 0.4150882404132968, 0.41451085749258704, 0.4136748076155074, 0.4125237960460025, 0.41084122410893537, 0.4090942283363573, 0.40601843978151875, 0.4022836019328224, 0.3970974966881614, 0.3871572950788497, 0.3726088134533256, 0.3516596958684205, 0.32065439551388386, 0.27408728952877937, 0.2204443966485314, 0.16183929495070967, 0.1040728054636019, 0.049960163981950315, 5.684390674969185e-13], - [0, 0.4239110253769235, 0.4239110243258887, 0.42353299325554816, 0.4229193662888514, 0.4219796098999489, 0.42077219619500245, 0.41888791868871017, 0.4170904355123635, 0.4134953926455861, 0.408518176835741, 0.4016211419485666, 0.39056694138992015, 0.3744764212882496, 0.3515467387001076, 0.3149073942614674, 0.2678721882955408, 0.2150067841608911, 0.15732112406112694, 0.10117494316318686, 0.04859060150010908, 5.684090887736317e-13], - [0, 0.4328818648878045, 0.4328818638038004, 0.4324430757384337, 0.4317595538702794, 0.43059217348968576, 0.4292386802381997, 0.4269438874530354, 0.42460364107682863, 0.4205046359913922, 0.41460313073969274, 0.40625587498539084, 0.39415830920347666, 0.3764781018332998, 0.34836312147092496, 0.309125579302077, 0.2620107413770256, 0.20989336523655325, 0.1530937421875934, 0.09846326885224259, 0.04730814945219213, 5.684429163685655e-13], - [0, 0.44143974181565726, 0.4414397400347531, 0.4409304780955385, 0.44020258305749893, 0.43894049277184877, 0.4374903358626626, 0.43501655407510537, 0.4321735998934176, 0.4273239376362884, 0.4204940678613414, 0.4109386541966843, 0.39724598068119155, 0.3750355883528308, 0.3438365981378414, 0.3036430740053222, 0.25647676871074077, 0.2044636503228504, 0.1491318418300126, 0.09592161211401176, 0.04610533518530252, 5.684214409580984e-13], - [0, 0.45042873757438484, 0.45042873574061615, 0.44988948968466536, 0.44911042534124623, 0.4477580147425899, 0.44619614050247963, 0.4433218512684793, 0.44015488633476746, 0.4345025971844053, 0.42625964298963526, 0.4142613236945185, 0.39687344851415723, 0.37252032931178314, 0.3395222768762099, 0.29844097383715973, 0.25055095936693306, 0.1988809512380387, 0.14541300485177552, 0.09353564520893094, 0.04497552802490651, 5.684523297314515e-13], - [0, 0.45993443960242036, 0.4599344377123767, 0.4593430107286163, 0.45852878490961724, 0.4570109243394425, 0.45539699565154024, 0.45202933003110946, 0.44812503091122796, 0.44148107616138077, 0.43066348263153, 0.41617369811603977, 0.3966223162115052, 0.36997605056171756, 0.3350743713787095, 0.2915592177481584, 0.24413857082151894, 0.1933149280728229, 0.14170506308914788, 0.09129262886631291, 0.04391282441872587, 5.68439677355079e-13], - [0, 0.4697514226864999, 0.46975141983750796, 0.46905283717421786, 0.4681588934016651, 0.46629582090190586, 0.46437146742164326, 0.4601069059191338, 0.4544368950161025, 0.4466305974432322, 0.4341761734576728, 0.41771648790074817, 0.39596097538719766, 0.3664617979734435, 0.3282711327096879, 0.2848165462557975, 0.23811694072037476, 0.18810771184689687, 0.1380982553769173, 0.0891811990692305, 0.0429119513984234, 5.684254634241334e-13], - [0, 0.4789211500389, 0.4789211471097588, 0.4781686253488716, 0.47721365101097024, 0.4751605410666571, 0.4728454324754236, 0.4676564313035668, 0.461050175879336, 0.4517875992780772, 0.4375993200454786, 0.41917275944570065, 0.3935133380110754, 0.360736179973742, 0.3218347410745538, 0.27846159574949053, 0.23187223943864393, 0.18322801421220436, 0.13471051350620658, 0.08718154101927664, 0.04196818504283327, 5.684090697992556e-13], - [0, 0.4886077956683727, 0.48860779265396603, 0.4877897903395486, 0.486772623910952, 0.48428572548914434, 0.4815717938987522, 0.47527290947584844, 0.4669859272013358, 0.4563526733358006, 0.44031330746236125, 0.4177175849434889, 0.38946622119283403, 0.35529328516929626, 0.3157402197967942, 0.27246522875316265, 0.2258565819255411, 0.17864812543166408, 0.13152410811017043, 0.08518705087510642, 0.041077281288153356, 5.684593550939067e-13], - [0, 0.49884946521615386, 0.49884946211079784, 0.49792433872539765, 0.49687681936632117, 0.49379107864183464, 0.49033144491488695, 0.4826597989313091, 0.4714666483687328, 0.457396841936202, 0.43942244590368773, 0.4156303590451672, 0.3856177698332888, 0.35011726088441736, 0.3099435923843433, 0.265912974699063, 0.22021055170284864, 0.17433837852422587, 0.12839727249058794, 0.08330658576539918, 0.040235416960285826, 5.684380293813006e-13], - [0, 0.5083284423238864, 0.508328437945238, 0.5071983172535963, 0.5057225406005728, 0.5017448160407411, 0.4961423425555716, 0.48742218555958045, 0.47441925747591507, 0.4580183944796086, 0.4375268130576157, 0.4119417849210547, 0.38061228999652, 0.3439234441611916, 0.30308221682332703, 0.2596108143887929, 0.21490378455098375, 0.17024272900130202, 0.125408314706874, 0.08153164734324023, 0.03943913931607323, 5.684316949376137e-13], - [0, 0.5176442134848003, 0.517644208993602, 0.5163644638912501, 0.514268913565843, 0.5090150918397285, 0.5022474456649206, 0.49202655264139183, 0.47676692205925525, 0.4582028360454162, 0.4355390560641582, 0.40729043048543195, 0.37335521475824873, 0.33581507103633623, 0.29557098275688554, 0.25341694547648785, 0.20990920584438325, 0.16638461584932437, 0.12259184404967978, 0.07985458213397578, 0.03868532268370477, 5.684051529323283e-13], - [0, 0.5274714782717638, 0.5274714736617625, 0.5254173418842356, 0.5232712413356921, 0.5162583540874266, 0.5076253448117996, 0.49671699394480107, 0.4791149731545378, 0.45681986634861, 0.43047252919620865, 0.39982109406764726, 0.3652178237251746, 0.32772199039698097, 0.2880861777282462, 0.24693811285430942, 0.20512473987594154, 0.16274597140693448, 0.1199348323842742, 0.07826706662513058, 0.037971131076233275, 5.684474699295357e-13], - [0, 0.5367772841987066, 0.5367772769534445, 0.5336869982374997, 0.5309301977058573, 0.5218489783118232, 0.5101635182558087, 0.49609693936190546, 0.4772781953067809, 0.45284765648204967, 0.42467728328063026, 0.39273826305759496, 0.3575341656636513, 0.3201050260076955, 0.281054586352525, 0.2408538339136614, 0.2001991044073749, 0.15931055623241264, 0.1174255618309416, 0.07670573355937906, 0.03729398583402605, 5.684161146705253e-13], - [0, 0.5429645177656537, 0.5429645104180735, 0.539515930560128, 0.5356045838840373, 0.5247132794835349, 0.511277798281071, 0.49452000549138075, 0.4746241117334193, 0.44905388430152005, 0.41916198659578136, 0.38601754658600346, 0.35020279319041936, 0.3128489155739089, 0.2744396750381385, 0.2351320662631906, 0.19556265246080787, 0.15606373533387344, 0.11505346539308889, 0.07522794249439352, 0.03665153752763205, 5.684338552158143e-13], - [0, 0.5494653747433641, 0.5494653672889183, 0.5446789937008137, 0.5397430636202215, 0.5274194588906771, 0.511613530709383, 0.49287276561926807, 0.4706390350196444, 0.44469726951888355, 0.41391257330360554, 0.3795586593321333, 0.34323792668715203, 0.30598992404918596, 0.26820880159561966, 0.22974420333468984, 0.1911930136537876, 0.15283930555767708, 0.1128089903454566, 0.07382808023635319, 0.03604164148043755, 5.684495027574777e-13], - [0, 0.5562952926197806, 0.5562952850522159, 0.5500473517435016, 0.5436261675060907, 0.5303160738100136, 0.5121057992352012, 0.4906309523431678, 0.4655962581597355, 0.43728208309914873, 0.4060990563249337, 0.3723321414162231, 0.33664523950449166, 0.29951451486567765, 0.2622968282861394, 0.22466462838224288, 0.18707011490619163, 0.14969787537381773, 0.1106834806779491, 0.07250104535160071, 0.03546233638076047, 5.684135450238638e-13], - [0, 0.5575354840186725, 0.5575354722867591, 0.5504289597854495, 0.5420730494273585, 0.5284425286146188, 0.5077758252701868, 0.48429491355989257, 0.4577292099855865, 0.42834510690965977, 0.3965656064508493, 0.3634391165053327, 0.32887016122288065, 0.2933950122428543, 0.2566789395052639, 0.219870336282497, 0.18317589498565215, 0.14658026296899607, 0.10866907556760451, 0.07124219199965859, 0.03491182553716499, 5.684535331561828e-13], - [0, 0.5566721541458719, 0.5566721425049082, 0.5490438370065933, 0.539228857635976, 0.5252214531822119, 0.5034431364259717, 0.47826426290498614, 0.4502584731164919, 0.4198365569311591, 0.38758485213634264, 0.35458223871216893, 0.3210472397978493, 0.2865533822813407, 0.25137161775091954, 0.21534061142119776, 0.17949406066065868, 0.14363009255475842, 0.10675862139237334, 0.07004728103652276, 0.034376365680373076, 5.684422577254769e-13], - [0, 0.5559805890635517, 0.5559805775084214, 0.5477855998537962, 0.5365752914138966, 0.5206891259740586, 0.4993345762119361, 0.4725241226771006, 0.4431605074313439, 0.4117115965527773, 0.3791147770414229, 0.3462497309539003, 0.31322442148621116, 0.2799294616181669, 0.2460677784318935, 0.21105675219473582, 0.17600987755429293, 0.14083838762360304, 0.10493307564331646, 0.06891243732184198, 0.03386337733786605, 5.684542812297317e-13], - [0, 0.5554597286158014, 0.5554597171430942, 0.5466992656192817, 0.5341096121600234, 0.5163903034616626, 0.49429585857183195, 0.46706071889730105, 0.4363260020102192, 0.40401587582209714, 0.3711176143036712, 0.33840056464725876, 0.30586471841900226, 0.27330683196112204, 0.24058295088252654, 0.20700183444773781, 0.17260269549012727, 0.13819442977592195, 0.10311832346531004, 0.06783411232504477, 0.03337549124694321, 5.684169278474288e-13], - [0, 0.5518309022409085, 0.5518308874934521, 0.5429634374985424, 0.5293196222987709, 0.5099261623223583, 0.48603667022177865, 0.45885727931704395, 0.4284361534655545, 0.39662633252987695, 0.3635593266733394, 0.3309979671337259, 0.29893189833501294, 0.2670697911196384, 0.23519563462627918, 0.202915212093444, 0.16928820613372855, 0.13568848306874756, 0.10139563520908726, 0.06680905128405361, 0.032911346638684356, 5.684293747300507e-13], - [0, 0.5444897079223674, 0.5444896935728145, 0.5357559628259891, 0.5216658393584344, 0.5014254720089191, 0.4765912840821336, 0.448655987090661, 0.41911915362902724, 0.3876811920957843, 0.3561288999856069, 0.32400888742756756, 0.29239348705061774, 0.2611888511876266, 0.23011286705241243, 0.19875082775229228, 0.1661482714473553, 0.1333116855647634, 0.09975944781331267, 0.06583426428449006, 0.03246968937219221, 5.684157704252857e-13], - [0, 0.5375028530949068, 0.5375028391233627, 0.5288963265405755, 0.5143846969559718, 0.4933513702752635, 0.4674763015157171, 0.43902924333451665, 0.4093640415425171, 0.3792436067260497, 0.3479973845225007, 0.31740354059763826, 0.2862202967395434, 0.2556375221854523, 0.225312318240185, 0.19479152045846593, 0.16317149235590017, 0.13105595500007888, 0.09820466610960916, 0.06490700072561137, 0.03204936214387985, 5.684226200531804e-13], - [0, 0.5308526904184425, 0.5308526768067177, 0.522367233095339, 0.5074564579143728, 0.4855074577733384, 0.4588405750337194, 0.4299351521194696, 0.4001718297786289, 0.3705535725310945, 0.3403302681931568, 0.3103787272158346, 0.2803860236463155, 0.2503919433485182, 0.2207738472412761, 0.19104393568682132, 0.16034748586378136, 0.12891390647666898, 0.09672661588922463, 0.06402472672448313, 0.03164929577167197, 5.684316759639922e-13], - [0, 0.524522894824031, 0.5245228815545033, 0.516152681876747, 0.5006368921988266, 0.4779268149661672, 0.45065290177831197, 0.42133590529772347, 0.3915000070816176, 0.36211209786529236, 0.3330929904512913, 0.3036308580817602, 0.2748669035963756, 0.24543056763093285, 0.2164792427504378, 0.1874938626525588, 0.15763476003939988, 0.12687878043095674, 0.09532100256137693, 0.06318510506389419, 0.0312685014301905, 5.684141223821952e-13], - [0, 0.5184983498685369, 0.5184983369247219, 0.5100361141461462, 0.4940026687404492, 0.47072044050196354, 0.4428848536747407, 0.4131973005769394, 0.3833103371493959, 0.3541521377530898, 0.32585509303430604, 0.2972587745801996, 0.2691432168228399, 0.2407338906766652, 0.212411999895039, 0.18412838509448168, 0.15494515576847315, 0.12494437941427329, 0.09398387464159441, 0.06238597737137744, 0.030906063709039647, 5.684154126268629e-13], - [0, 0.5099418362209462, 0.509941821806592, 0.5012705337264833, 0.4849474512752744, 0.4616270968114122, 0.434185088248, 0.40548832638592086, 0.3755683387106498, 0.3466379207821999, 0.3187712680067989, 0.2912355359967476, 0.2636834945667487, 0.23628421713056, 0.20855712739319177, 0.18093573932503643, 0.15239143435735505, 0.12310501245451627, 0.0927115914288379, 0.0616253482348838, 0.030561134399249495, 5.684217662259515e-13], - [0, 0.5003181419289149, 0.5003181280341095, 0.49194835498894884, 0.47572751897462184, 0.4524329157089821, 0.4250688416504996, 0.3965972694203398, 0.3682428398406044, 0.3395372218676581, 0.31208192367103016, 0.2855088708321314, 0.25851805679110373, 0.2320473648143204, 0.2049009803869239, 0.17787877926082246, 0.1499654664002035, 0.12135544597413157, 0.09150079432401975, 0.06088924140499326, 0.03023017082398382, 5.684468004499422e-13], - [0, 0.4911978111346119, 0.4911977977275232, 0.48311105030507, 0.46699122462882814, 0.44373034695979646, 0.4164517827240391, 0.38817305475049607, 0.36043590848862567, 0.33282093721254574, 0.30575878058300554, 0.27970322430576305, 0.2536268806380805, 0.22774018514553543, 0.20143111504864927, 0.17497449137749768, 0.14765980142612992, 0.11969086036458529, 0.09031631407140159, 0.06017345369286888, 0.029910554794128064, 5.684455346705804e-13], - [0, 0.48254839508615543, 0.4825483821366562, 0.4747277021402852, 0.45870721895880723, 0.4354863986515057, 0.4082990552547014, 0.38021268530201235, 0.3528283229786664, 0.32645782218594366, 0.299776278941408, 0.27421084346656227, 0.24899178734870017, 0.22365687478327334, 0.19813616172598353, 0.17221513416927803, 0.14546760036068923, 0.11810681149313486, 0.08917588452845841, 0.059492210775715614, 0.029606550587004784, 5.684268701963047e-13], - [0, 0.47434030849615294, 0.4743402959775267, 0.4667700985703505, 0.45084693092746875, 0.4271199365740585, 0.40055765758609146, 0.3726834875834583, 0.3456383487991841, 0.3197239160499519, 0.2941112627388521, 0.26901037547872864, 0.24455488544219847, 0.2197831791386306, 0.19500571393052726, 0.16959231365660793, 0.14338257597046317, 0.11656718888445994, 0.08809039498771659, 0.05884394409690689, 0.029317504407231198, 5.684164616261464e-13], - [0, 0.46654652624340587, 0.4665465141306414, 0.45921244934675104, 0.44276957476540724, 0.4187174514356687, 0.3923539783647815, 0.36555588441558506, 0.33883671018145395, 0.3133557205848093, 0.2887427070652395, 0.26408243698085715, 0.24014343862461385, 0.21610608970092943, 0.19199599372370826, 0.16709832149444998, 0.14139894021525384, 0.11505882994072193, 0.08705721334990822, 0.05822719840296038, 0.029042808711778844, 5.684230971116449e-13], - [0, 0.4591423180579569, 0.45914230632831743, 0.4520311372220933, 0.4347653279359066, 0.41076189078580694, 0.3845943883709425, 0.35853104995055685, 0.33239689461765953, 0.30732803876219367, 0.28336556444173755, 0.2594093952217236, 0.23595892690991613, 0.21261371343257457, 0.18899571973179266, 0.16472606855870714, 0.13951135759896274, 0.11362317671739686, 0.08607390140809926, 0.0576406226599603, 0.028781898715806175, 5.684461255486632e-13], - [0, 0.452105015764914, 0.4521050043973672, 0.44520449952983626, 0.42717314937874507, 0.40322353766896385, 0.3772484540712637, 0.3514930840674423, 0.3262948381870954, 0.3016180180753735, 0.2781124047294268, 0.25497517787471213, 0.23198720355821928, 0.20926987810923936, 0.18614360078288408, 0.16246902620537168, 0.13771490373414963, 0.11225668193105764, 0.0851381986734622, 0.05708296188004152, 0.028534249241829512, 5.684444260949054e-13], - [0, 0.44426181657115676, 0.4442617723242394, 0.43726315034803054, 0.41904251384096375, 0.3960526415102096, 0.37028856130177695, 0.3448291253096161, 0.32050865306814563, 0.29620488755654145, 0.2731321553102362, 0.2507651072403405, 0.22821533893932158, 0.20596592036497435, 0.1834313285655753, 0.16032117418205868, 0.13600502846657042, 0.11095606162825794, 0.08424800784553092, 0.056553049743683866, 0.028299371859930058, 5.684209747405177e-13], - [0, 0.4358445273697953, 0.43584448472302023, 0.4287734637563289, 0.4108114713193343, 0.3881440484462926, 0.363689600493444, 0.33851434526070534, 0.3145828444053221, 0.2910697295499175, 0.2684074550961668, 0.24663971455652225, 0.22463149522650383, 0.20282548938951098, 0.18085125935613178, 0.15827695433927147, 0.13437752298443673, 0.10971144006248318, 0.08340138175526594, 0.056049801942208446, 0.028076812301947043, 5.684519746664607e-13], - [0, 0.42786817612011424, 0.4278681349740056, 0.42060894336373195, 0.40301795437756005, 0.3806588002771605, 0.356879550169538, 0.3325261574491378, 0.30894938663720956, 0.28619528100819014, 0.2639224595662882, 0.24258863056900287, 0.22122481637097743, 0.19983934534366196, 0.17833454042886387, 0.15628797042836598, 0.13282849042013822, 0.1084891209762871, 0.0825965115984673, 0.05557221015806124, 0.02786614811782331, 5.684209747405177e-13], - [0, 0.420304254740245, 0.4203042150049898, 0.4128729586722105, 0.39563290411251756, 0.37356843132386086, 0.3501748295741435, 0.32684397383434327, 0.3036049979630209, 0.28156575996206357, 0.2596626819331505, 0.23874002240290806, 0.21798533124467687, 0.19699899103670762, 0.17589952641060344, 0.1543342948224336, 0.13135431953401167, 0.1073260703748247, 0.08183171632765603, 0.05511649053630675, 0.02766698654511403, 5.684444260949054e-13], - [0, 0.41312677657515445, 0.41312673816548795, 0.4055377001924399, 0.3886298865586467, 0.36684707269500905, 0.34382018708811296, 0.3211279069364535, 0.29853175528387516, 0.276924708016395, 0.2556148539906644, 0.2350821115788903, 0.2149038681380944, 0.19429660142066035, 0.17358227557110706, 0.15241859247453252, 0.1299246239830155, 0.10621970445754417, 0.08110543307054739, 0.0546728110714411, 0.02747896257574213, 5.684461255486632e-13], - [0, 0.4063120086522077, 0.4063119714925279, 0.39857782517458423, 0.3819441096601395, 0.3604711670999451, 0.337793131047306, 0.31549375051213263, 0.29371327136630054, 0.27246155636248687, 0.25176680386891814, 0.2316040845352064, 0.2119009200845312, 0.19172496108978967, 0.17137680877624464, 0.1505822132332924, 0.12852863648333823, 0.10516762386430403, 0.08039681709817609, 0.05425261157313352, 0.02730173720351562, 5.684230971116449e-13], - [0, 0.39983823755733305, 0.3998382015760172, 0.3919701948393593, 0.3755240055033937, 0.35441922060783765, 0.3320731494534355, 0.3101467313933881, 0.2891345374359845, 0.26822039330056663, 0.24810734834716178, 0.2282959988326638, 0.20895928876711864, 0.18927740872982202, 0.16927759907161993, 0.1488343542217763, 0.1272006633922729, 0.10416759933832498, 0.07971582267771288, 0.05385510154042099, 0.027134995825122177, 5.684164616261464e-13], - [0, 0.3936855640978363, 0.39368552923008315, 0.38569364470049533, 0.3694268353871164, 0.3486715858980458, 0.32664150088692123, 0.3050693137225834, 0.28452429491096576, 0.2641884840568309, 0.24462619775420066, 0.2251487002172325, 0.20616014981783323, 0.1869477876618929, 0.16727953223607983, 0.14717092092951123, 0.12593782079591162, 0.10321755878237568, 0.07907015120281347, 0.05347954616240707, 0.026978446791758922, 5.684268701963047e-13], - [0, 0.38783572273359845, 0.38783568891858544, 0.37972878320943, 0.363633491087967, 0.3432102724508472, 0.32148103153531354, 0.3002454478138364, 0.2800601092513944, 0.26035412750559317, 0.24116137016449118, 0.22215374910842914, 0.203496179504441, 0.1847304016996533, 0.16537787150639371, 0.14558811646168143, 0.12471696349962265, 0.10231557556892316, 0.078458562352921, 0.05312526274224186, 0.026831820092638636, 5.684455346705804e-13], - [0, 0.38227192236149676, 0.3822718895435173, 0.37405781475911204, 0.3581264480237679, 0.3380187798495626, 0.3165760146163165, 0.295660419754995, 0.2758165642660515, 0.256706556822337, 0.23783612644763258, 0.2193033553038504, 0.20096061138985985, 0.1826199756879987, 0.16356822597231263, 0.14408241735566205, 0.12352747831812391, 0.10145985796157217, 0.07787990276540314, 0.05279161744851985, 0.02669486615673123, 5.684468004499422e-13], - [0, 0.37697870557849456, 0.3769786737052527, 0.36866438367269444, 0.35288960914556355, 0.33308195100289595, 0.3119120090747175, 0.2913007190687722, 0.2717812499525962, 0.25321295999276566, 0.23467184658045434, 0.21659031984313518, 0.19854718725468956, 0.18053651663137768, 0.16184652220658785, 0.14265055182420378, 0.12239739935978378, 0.10064873953922425, 0.07733310026935662, 0.05247802236567618, 0.026567354768189923, 5.684217662259515e-13], - [0, 0.3719418239796824, 0.37194179300342967, 0.36353343635084906, 0.3479081671264339, 0.32838584255387127, 0.3074757349116908, 0.2871539219614761, 0.267942750854786, 0.24970449593297422, 0.23166029870139945, 0.21400798314914482, 0.19625011324365005, 0.1785285110395307, 0.16020897876842358, 0.14128948015184054, 0.12132443135669757, 0.09988067051324377, 0.07681715865544454, 0.05218393280927101, 0.02644907408068773, 5.684154126268629e-13], - [0, 0.36669055209586054, 0.36669042033906823, 0.3584887487738796, 0.3431684824164448, 0.323917610202784, 0.3032549629182312, 0.28320858806807775, 0.264290551998556, 0.246365948046332, 0.22879387575528648, 0.21149665101120257, 0.1940640206100851, 0.17661788964062447, 0.15865208323702967, 0.13999637700976553, 0.12030643976629551, 0.09915420985123544, 0.07633115292151152, 0.05190884488968086, 0.026339829726111805, 5.684141223821952e-13], - [0, 0.36127711136828145, 0.3612769835706334, 0.3531277441766182, 0.3385381141492876, 0.3196190536334602, 0.29923841691811537, 0.27945416891157066, 0.2608149554572493, 0.24318859532002102, 0.22606554067920145, 0.20904339760875276, 0.19198393051283363, 0.1748004124453929, 0.1571725715086814, 0.1387686154748738, 0.11934143933785898, 0.09846801812557278, 0.07587422495078054, 0.051652293300321624, 0.026236924147724505, 5.684316759639922e-13], - [0, 0.3561280840779092, 0.356127960029653, 0.34802916995829514, 0.3336444466964395, 0.31551891503227125, 0.29541568690262926, 0.27588092657197194, 0.2575070061845963, 0.240164379887915, 0.22346877741256332, 0.2067086480582248, 0.19000522238741277, 0.17307214203242452, 0.1557674091020545, 0.13760375257788837, 0.1184275837545102, 0.09782085102131081, 0.07544557958908638, 0.05141384930766437, 0.02614164511783204, 5.684226200531804e-13], - [0, 0.3512292496890268, 0.3512291291957583, 0.3431787777611818, 0.3289890273316587, 0.3116163580097009, 0.29177715168145824, 0.2724798612621271, 0.2543584259370846, 0.23728584868877087, 0.2208885632876446, 0.2044870755884177, 0.18812360549191007, 0.17142942004397813, 0.1544089367126844, 0.13649951621516723, 0.1175631562273339, 0.097211553434704, 0.07504448107511053, 0.05119311893508892, 0.026054963469732812, 5.684157704252857e-13], - [0, 0.3465674968492749, 0.3465673797302315, 0.33856343673278383, 0.3245592398809549, 0.3074682488386315, 0.2883139098594256, 0.26924264671094983, 0.25136155429947843, 0.23454610134194803, 0.21841026563606641, 0.2023737369739819, 0.18630773099403078, 0.16986884597997678, 0.15308062098370095, 0.13545379328604662, 0.11674656096886332, 0.09662619733433075, 0.07467024980201134, 0.05098974131556134, 0.02597674138371533, 5.684293747300507e-13], - [0, 0.3421307221708503, 0.3421306082577758, 0.33417103078079435, 0.32034344362216416, 0.30349823720825947, 0.2849451901897737, 0.2661615723917522, 0.24850929592503226, 0.23193874347214208, 0.21605204370189313, 0.2003640420275588, 0.18452752537541536, 0.16838725803097532, 0.15182081587056473, 0.13446461893238396, 0.11597631543622816, 0.09606230845236044, 0.07431849952240549, 0.05080060656041495, 0.02590685542600112, 5.684169278474288e-13], - [0, 0.3379077401081077, 0.33790762924525075, 0.32999036715636965, 0.3163308853538637, 0.29959736587272795, 0.28154375642373, 0.26322949177654204, 0.24579507327416636, 0.2294578448555739, 0.213808634733823, 0.19845372611257509, 0.18283618471173207, 0.1669817157414854, 0.1506270850512692, 0.13353016677115193, 0.1152510432950748, 0.09553389455504646, 0.07397967062786388, 0.050621339805729686, 0.02584519606557479, 5.684542812297317e-13], - [0, 0.3338882025536802, 0.3338880945943854, 0.32601109496056324, 0.3125116210048872, 0.29578816155549226, 0.27809535576409417, 0.2603951456831055, 0.24321278418199183, 0.2270979018089746, 0.21167515218053257, 0.1966141118589347, 0.1812302704922785, 0.16564948431209808, 0.1494971628454777, 0.13264874002004476, 0.1145694680172937, 0.09504005393637271, 0.07366625486724827, 0.050458649951678924, 0.025791667249563843, 5.684422577254769e-13], - [0, 0.3300625269542933, 0.33006242176270456, 0.32222363233813656, 0.3088764456146008, 0.2921624829252776, 0.27477170752206337, 0.25754589627752, 0.24075676371751334, 0.22485380335695013, 0.20964705632707126, 0.19480063799221614, 0.1797065850087164, 0.16434350836277636, 0.14842894279695423, 0.13181876343935517, 0.11393040706593631, 0.09457995446325634, 0.07337774076006547, 0.05031227898314222, 0.025746186033757095, 5.684535331561828e-13], - [0, 0.32642183193672725, 0.32642172938494685, 0.31861910131794946, 0.3054168306636028, 0.288711492207767, 0.2716083233781319, 0.2548351101455637, 0.23842174982974026, 0.22272080073093997, 0.2077201278024176, 0.1930785877055996, 0.17826215421109726, 0.16309401077648994, 0.14742046731328168, 0.13101372957351026, 0.1133327666116201, 0.09415283000350883, 0.07311366201406594, 0.05018199645633113, 0.025708682268259495, 5.684135450238638e-13], - [0, 0.3229578795458106, 0.3229577795156042, 0.3151892693881563, 0.30212486788968795, 0.28542700404784654, 0.26859783512520596, 0.25223896374200183, 0.23620285237939226, 0.22069447985359122, 0.20589044364669457, 0.19144452156240263, 0.1768942121628924, 0.16191231750383386, 0.14646710374734068, 0.13024099549909346, 0.11277553673835422, 0.09375797719371799, 0.07287359563633798, 0.05006759859895732, 0.025679098329192154, 5.684495027574777e-13], - [0, 0.3196630233384212, 0.31966292571723914, 0.31192649701836217, 0.29899321882396657, 0.28230143085465914, 0.2657334089951746, 0.24962383729075574, 0.2339857161155123, 0.21877073647146988, 0.20415435567031198, 0.189895240707756, 0.1756001869460988, 0.16079625267252617, 0.14553173093304395, 0.1295165439915991, 0.11225778708933379, 0.09338052282771511, 0.0726571602427839, 0.04996890752522624, 0.0256554628896311, 5.684338552158143e-13], - [0, 0.31653016165705594, 0.3165300663403059, 0.3088236904579844, 0.29599597253195487, 0.2793277337570998, 0.2630087024317617, 0.2471368876916812, 0.2318555791958942, 0.21694575365756913, 0.2025084708549229, 0.1884277700912661, 0.1743440150551122, 0.15974379501699323, 0.14465201211862666, 0.12883002054422835, 0.11177866292655374, 0.09302998540363192, 0.07246401455006439, 0.049885770552009316, 0.025639453033363575, 5.684161146705253e-13], - [0, 0.3135526955128396, 0.31355260240218275, 0.3058655209514426, 0.2929520710478072, 0.2764993785075375, 0.26041782517950185, 0.24477282785085183, 0.22983325449729353, 0.21521598143976894, 0.2009496335949733, 0.18703934324776114, 0.17312883820636657, 0.15875306831276242, 0.14382641263125595, 0.12817049787770415, 0.11131737338303067, 0.09271020468588623, 0.07228814308405167, 0.049818059619610666, 0.025631265808101513, 5.684474699295357e-13], - [0, 0.310724490565235, 0.3107243995680163, 0.3030283963238388, 0.2900575917936975, 0.27381029578521054, 0.2579508390152795, 0.2425267436797184, 0.22791472829965181, 0.2135781183312701, 0.19947490958656988, 0.18572738848263265, 0.17198250858314162, 0.15782233267714213, 0.14305351204825456, 0.1275563504412958, 0.1108863927316861, 0.09242067065486019, 0.07212828375770634, 0.04976241401379851, 0.02563088873557707, 5.684051529323283e-13], - [0, 0.30803984276019486, 0.30803975378944415, 0.30033406463303436, 0.2873064101589762, 0.2712548453956743, 0.2555951210609919, 0.24039406625718127, 0.22602064468173924, 0.21194432925767612, 0.19808157120621675, 0.18448951632592525, 0.17090297565857776, 0.1569499766696936, 0.14233199792101914, 0.12698655736187445, 0.11047991645227741, 0.09216092513497635, 0.07199101067442379, 0.04971931309682984, 0.025638321239398378, 5.684316949376137e-13], - [0, 0.30549344723397087, 0.30549336020897033, 0.2977771295934416, 0.28469283318372607, 0.26882778395247436, 0.25335851761838046, 0.2383705466485252, 0.22418867657620456, 0.21038830467716693, 0.19676708422878147, 0.18332350813693649, 0.1698883374632486, 0.15613451011176943, 0.14166066008272074, 0.1264601818547817, 0.11010043353792287, 0.09193055999560318, 0.07187611167978497, 0.04969141016374568, 0.0256535746495956, 5.684380293813006e-13], - [0, 0.30308037015004174, 0.303080284992916, 0.2953525724217343, 0.2822115674928227, 0.26652423565565186, 0.25123658297331986, 0.23645223310268199, 0.22245338369373266, 0.20891813588718844, 0.19552909576304967, 0.18222730574393614, 0.16893683191256062, 0.15534129686045614, 0.14103838548919612, 0.12597636733573842, 0.10975686720030353, 0.09172921556341863, 0.07178340994187239, 0.04967866264621539, 0.025676672239569535, 5.684593550939067e-13], - [0, 0.3007396685592313, 0.3007396057375901, 0.29305572542057234, 0.2798576902830519, 0.26433966584875185, 0.24922518234632218, 0.23463545039192027, 0.22081149262760405, 0.2075311485674548, 0.1943654232843529, 0.18119900203203093, 0.168046828919728, 0.15459216818214827, 0.14046415354755484, 0.12553433392383795, 0.10944867379350866, 0.09155657923713535, 0.07171276328392653, 0.04968105111515798, 0.025707649315904833, 5.684090697992556e-13], - [0, 0.29818450547622866, 0.2981844440529354, 0.290882248019102, 0.2776266230500824, 0.2622698570570492, 0.24732047033751303, 0.2329167810637499, 0.21925996039044543, 0.20620489586406157, 0.19320453298178097, 0.18023683239221086, 0.16721682324259735, 0.15389688362347442, 0.13993703189669304, 0.1251333752901473, 0.10917536908777944, 0.09141238429208447, 0.07166406365001869, 0.049698579210826155, 0.025746553347971688, 5.684254634241334e-13], - [0, 0.29576172816746293, 0.29576166808737997, 0.2886260020255803, 0.2755141077705048, 0.26031088726540474, 0.24551887136340148, 0.2312930484299613, 0.21779595955933923, 0.20489444817371802, 0.19211235560760542, 0.17933916695426433, 0.16644542798758263, 0.15325429893096043, 0.13945617261015286, 0.12477285585077877, 0.10893652638856108, 0.09129640886669681, 0.07163723670259967, 0.04973127365303765, 0.025792511024747073, 5.68439677355079e-13], - [0, 0.2934666764582513, 0.29346661766794546, 0.28636007986506207, 0.2735161852956479, 0.25845911019814594, 0.24381706190808908, 0.22976130110976084, 0.21641686477778416, 0.20366219700520094, 0.19109033766198974, 0.17850450354217168, 0.16573136872864316, 0.15266336743138698, 0.13901621841739578, 0.12445220825668436, 0.10873177489088441, 0.09119763156661509, 0.07163224154169251, 0.04977850987131652, 0.025846308660106742, 5.684523297314515e-13], - [0, 0.29129501681779896, 0.2912949592678163, 0.2842153591814167, 0.2716291757337788, 0.2567111374190745, 0.2422119543939517, 0.2283187989917225, 0.2151202404911602, 0.20250599546557183, 0.19013674724419632, 0.1777129794203348, 0.16507347818389942, 0.15212313575204917, 0.1385954939689782, 0.12417093118813231, 0.10856079826396589, 0.09112338635532073, 0.07164257682632069, 0.049837610388863134, 0.025908239580871968, 5.684214409580984e-13], - [0, 0.28924272067399637, 0.28924266431829404, 0.28218690969538285, 0.2697400586566797, 0.2550638220662901, 0.24070068252854043, 0.22696300047243734, 0.21390382979802752, 0.20142385676479052, 0.18923701409505583, 0.17694596722606074, 0.16447069141463524, 0.15163273996790838, 0.13821928432776065, 0.12392858741407038, 0.10842333344669425, 0.09107698229740885, 0.0716731336012798, 0.04991207318255412, 0.02597818335971158, 5.684429163685655e-13], - [0, 0.28730604472457316, 0.28730598951824476, 0.28025467649058533, 0.267833129448149, 0.2535142440723346, 0.23928058799299343, 0.22569155086273412, 0.21276554432631606, 0.20041394545728475, 0.18835490189189805, 0.17623900085482064, 0.16392204150406522, 0.1511914021568824, 0.13788699957046885, 0.12372480212093227, 0.10831916965969388, 0.09105834861486506, 0.07172557408068754, 0.0500020127094558, 0.026056036726913378, 5.684090887736317e-13], - [0, 0.28548151304221364, 0.2854814589437635, 0.27843296127116424, 0.266033440564115, 0.252059696733795, 0.23794920833722683, 0.2245022718528842, 0.21170345503321616, 0.19947456949296322, 0.1875378361040701, 0.1755909350521277, 0.16340544205831967, 0.15079842733371146, 0.13759812183423037, 0.12355660586251789, 0.10824814761065212, 0.09106485280653928, 0.07179993497800281, 0.05010692749920044, 0.026142345278117218, 5.684390674969185e-13], - [0, 0.2837659008201854, 0.2837658477903915, 0.2767185229470215, 0.2643377584615792, 0.25069767450759173, 0.23670426599153432, 0.22339315194756196, 0.21071578386340667, 0.1986041730100398, 0.18678447902345868, 0.17500072953623663, 0.1629216104799981, 0.1504532007368198, 0.13735220332478093, 0.12340728294134364, 0.10821015889973748, 0.09109223719860893, 0.07189080211276176, 0.050226083649818086, 0.026236808305952954, 5.684141982790215e-13], - [0, 0.2821562195953217, 0.28215616759723605, 0.27510835639702663, 0.2627430829994637, 0.24927999436272305, 0.23554365828374535, 0.22236233778869507, 0.20980089618603864, 0.19780132981850312, 0.18609360945390552, 0.17444160685158736, 0.16248998552441654, 0.1501393687448171, 0.1371488646105944, 0.12329583227995038, 0.10820243851753714, 0.09114741080168177, 0.07200386040040026, 0.05036118493876526, 0.02633969771693489, 5.684526197462031e-13], - [0, 0.28064970382729365, 0.280649652825673, 0.27359967885331565, 0.2612466336813668, 0.24792130223545417, 0.2344654483869135, 0.22140812629288564, 0.2089572939519257, 0.19706473751398335, 0.18546411774025265, 0.17391957275606265, 0.16210989128410347, 0.14985844148782235, 0.13697656622014165, 0.12321588839597554, 0.10821130160252324, 0.09123045780427219, 0.07213928378519081, 0.050511204410668205, 0.025538293095905894, 5.684373219437229e-13], - [0, 0.279243798704556, 0.27924374866586277, 0.272189917537844, 0.25984583714262044, 0.2466520661499772, 0.2334678571190807, 0.22052895753972734, 0.2081836095169365, 0.19639321217255196, 0.18489500132091047, 0.1734533317392106, 0.16178073608898555, 0.14962405537573886, 0.1368353240957276, 0.12316347954310924, 0.10824518688309578, 0.09134150515933462, 0.07229628032234818, 0.050676567930167865, 0.024304794592922035, 5.684300279670163e-13], - [0, 0.2779361490848941, 0.27793609997843305, 0.2708766984324029, 0.25853831579752296, 0.24547015134714895, 0.23254925552350855, 0.2197121146292601, 0.20747860007872976, 0.19578568360032006, 0.1843853607493883, 0.17304215321132682, 0.16148940309165025, 0.14943584982574976, 0.13673598115303767, 0.12314861156653467, 0.10831209663990643, 0.09147838560863866, 0.07247377180590317, 0.04939012823456322, 0.02319165246944971, 5.68429908703892e-13], - [0, 0.2767245894699499, 0.27672454126616225, 0.269657836104784, 0.25732187753192176, 0.24437359316323162, 0.23158047215531485, 0.21896753255475668, 0.20684114269215553, 0.19524119108211824, 0.18393439616829707, 0.1726853967511487, 0.16122832213454785, 0.1492935362784919, 0.13667838570825092, 0.12317126180960249, 0.10841213297794632, 0.09163922963864472, 0.07267260466505826, 0.047167096882389944, 0.022182436501338908, 5.684362811144216e-13], - [0, 0.275607134932443, 0.2756070876029071, 0.268531324485366, 0.25619450635815616, 0.24336058875803718, 0.23068771959458456, 0.2182942500235186, 0.2062702298138675, 0.19475887961334593, 0.18354140420228765, 0.17238250964283, 0.16101705218432016, 0.14919689711518916, 0.13666244994169574, 0.12323146478991039, 0.10854544883329725, 0.09182700246640257, 0.07212571949423827, 0.045148534244958884, 0.021263599454073315, 5.684466703485532e-13], - [0, 0.27458197292389747, 0.2745819264424654, 0.2674953285384164, 0.25515435396414443, 0.24242948963660652, 0.22987157600937286, 0.21769120280680473, 0.20576496534943095, 0.1943379965752003, 0.18320577525230428, 0.17213302477216536, 0.16085526914764614, 0.14912713118746979, 0.13668814957213726, 0.12332931232435851, 0.10871224854895455, 0.09204152618337959, 0.06908429405655171, 0.04330830457604415, 0.020423763789949735, 5.684100239385295e-13], - [0, 0.2736474559009139, 0.27364741024257455, 0.26654817674739206, 0.25419973207590374, 0.24157879491099266, 0.22913073627421454, 0.21709445972192043, 0.20532456117621223, 0.19397788883850353, 0.18292699116898348, 0.17193655885648695, 0.1607427255339644, 0.14909706304251813, 0.1367541114194637, 0.12346495387305367, 0.10891278863937259, 0.09228251092736173, 0.06630818061069021, 0.0416243960552265, 0.019653434859492336, 5.684341886080801e-13], - [0, 0.2728020947068899, 0.2728020498483375, 0.26568835436592053, 0.2533291055812015, 0.24080714524529886, 0.22840084644371944, 0.21647426302820358, 0.2049483341079395, 0.19367800026827822, 0.1827046232864405, 0.17179281100140997, 0.16067924952949397, 0.14911241895106286, 0.13684498591203476, 0.12363539713533105, 0.10913842379238756, 0.09049644698905022, 0.06376494614357857, 0.04007828501698899, 0.018944664276432488, 5.684100239385295e-13], - [0, 0.2720445526631466, 0.2720445085822121, 0.26486048294202647, 0.25254108635976996, 0.24011331744191036, 0.22772429542328618, 0.21590980013343153, 0.2045880860424632, 0.19343786961314907, 0.182538330807347, 0.171701561575901, 0.16066474435660894, 0.14917322231212893, 0.13697773374872219, 0.1238353358581891, 0.10939496616742879, 0.08706495677472512, 0.061427511130887076, 0.038654271773452806, 0.01829061323519464, 5.684466703485532e-13], - [0, 0.2713736403228492, 0.27137359699906927, 0.26405386131386877, 0.2518344277700635, 0.23949621962401568, 0.22712071946614276, 0.21541371974194576, 0.20421669942436418, 0.19324967255499792, 0.18242785952395468, 0.1716626713874801, 0.16069918791345109, 0.14927956583278484, 0.13715255794579662, 0.12406722777484434, 0.1096841327120046, 0.08390881902073484, 0.05927279515674392, 0.03733896263611298, 0.017685423728153103, 5.684362811144216e-13], - [0, 0.27078831085077576, 0.2707882682642546, 0.26333210779966976, 0.25120801975390344, 0.23895206736654, 0.2265891733708258, 0.21498525021229373, 0.2038933433055944, 0.19306994914302295, 0.1823730408676737, 0.17167608116778865, 0.1607826326909389, 0.14943161187147766, 0.13736712263778364, 0.12433617215663151, 0.10776100615032641, 0.08099709072553186, 0.0572809770619641, 0.03612086192561033, 0.017124048992513997, 5.68429908703892e-13], - [0, 0.27028765599141014, 0.27028761412339, 0.2626940901905071, 0.2506608845203572, 0.23838244269484193, 0.2261288296944029, 0.21462372848418437, 0.20363294007552207, 0.19293485891751033, 0.18233936025751507, 0.17174181134919292, 0.16091520596830816, 0.14962856969987098, 0.13761417798320946, 0.12464433542504583, 0.10405302930394092, 0.0783035172901236, 0.055435010888231696, 0.03499004765615139, 0.016602117960928798, 5.684300279670163e-13], - [0, 0.26987090260035984, 0.26987086143321903, 0.26213881379135273, 0.25019217277701955, 0.2378878179627009, 0.2257389755777694, 0.2143285975586195, 0.2034350904045823, 0.19282413070811794, 0.1823503665428915, 0.17183506991727882, 0.1610848006504284, 0.14985335872381714, 0.1379042062330882, 0.12498560133565208, 0.1006213439166004, 0.0758056311349265, 0.05372016108026396, 0.033937892149538115, 0.01611582586576787, 5.684373219437229e-13], - [0, 0.2695374097112334, 0.2695373692290559, 0.26166541759664597, 0.24980116048880058, 0.23746742669516138, 0.22541901002966816, 0.2140994043878663, 0.2032994917061614, 0.19277221612639994, 0.18239821674569612, 0.17197212497478626, 0.16129050524625654, 0.15012462238814797, 0.1382359891618989, 0.12448561605367567, 0.09743719378263899, 0.07348387569038548, 0.052123624445812464, 0.03295691090102078, 0.01566183066927349, 5.684526197462031e-13], - [0, 0.269080790142766, 0.26908076002143844, 0.26127317100360864, 0.24948724612556783, 0.2371206204435337, 0.2251684416529541, 0.21393579817527084, 0.20322593700711866, 0.1927790360480229, 0.1824844507723354, 0.17215276287458872, 0.1615460072798669, 0.15043974878324207, 0.13860394363632617, 0.12056868402623863, 0.09447617187902306, 0.07132119357663665, 0.050634224010650444, 0.03204053303647922, 0.015237227665920706, 5.684141982790215e-13], - [0, 0.26863768237603847, 0.26863765277596513, 0.2609614710462439, 0.24924994839580009, 0.23684686633146163, 0.22498688679547754, 0.21383752905990155, 0.20321431417471564, 0.19284460086339572, 0.18262642246668298, 0.17236788596164854, 0.1618329293700072, 0.15079115195590026, 0.13901294761183192, 0.1169248955903869, 0.09171690780533481, 0.06930267733650905, 0.049242159304298976, 0.031182978586912328, 0.014839440464129388, 5.684390674969185e-13], - [0, 0.2682776171923251, 0.2682775881021369, 0.26072984011932465, 0.24908890443839463, 0.2366457450460756, 0.22487406811308114, 0.21380444718545272, 0.20326460549881623, 0.19296901051973225, 0.18282434866705438, 0.1726361998123592, 0.16216806594115946, 0.15119036249075166, 0.13946156629970113, 0.11352835072614195, 0.08914062637586534, 0.06741524179290069, 0.04793880130591777, 0.03037914444462327, 0.014466188754909036, 5.684090887736317e-13], - [0, 0.2680000420707529, 0.2680000134790817, 0.2604234953099649, 0.24900386846752542, 0.2365169492674113, 0.22482981353334702, 0.21383650213977032, 0.20337688762595002, 0.19315245489110555, 0.18307853234830415, 0.17295811715598575, 0.16255421178982482, 0.1516380054243882, 0.13701261223047823, 0.110356215963634, 0.08673082065456582, 0.06564735457857296, 0.04671652300260118, 0.02962450842460374, 0.01411544712084377, 5.684429163685655e-13], - [0, 0.2678045322846855, 0.26780450418073076, 0.2601363931046307, 0.2489947108540489, 0.23646028252073825, 0.22485405561553745, 0.21393374276954072, 0.20355043181268673, 0.19339521448500807, 0.18338936375585024, 0.17333413520645985, 0.1629919684029346, 0.15212557360712245, 0.1331951976192158, 0.10738833613174838, 0.08447293151846218, 0.06398881312918547, 0.045568558546733626, 0.02891504920512493, 0.013785409430511163, 5.684214409580984e-13], - [0, 0.2676907893095404, 0.26769076168420725, 0.2599290129336395, 0.2490479132717382, 0.23647565844328253, 0.22494683129878004, 0.2140963173604859, 0.2037797539378516, 0.1936976614945251, 0.1837573218750776, 0.17376483755356276, 0.16348202180495264, 0.15265661326282043, 0.12962308282283175, 0.1046069395312089, 0.08235406948870154, 0.0624305590622498, 0.04448888554009044, 0.028247179165532422, 0.01347446072713856, 5.684523297314515e-13], - [0, 0.26765863971377246, 0.26765861255739753, 0.25980103801941806, 0.249070149997692, 0.2365631004630583, 0.22510828204076438, 0.2143244741910165, 0.2040718257256911, 0.19406026119270306, 0.18418297624179994, 0.17425089638891209, 0.16401658599193056, 0.15323171476723013, 0.12627500133476127, 0.10199626847736444, 0.08036277963356035, 0.06096452282577034, 0.04347212612685769, 0.02761768775769723, 0.01318115687183763, 5.68439677355079e-13], - [0, 0.26770803450745007, 0.26770800781207527, 0.2597522731815616, 0.24902685837616914, 0.23672274188811565, 0.22533865434184014, 0.21461856245764468, 0.20442709580493093, 0.19448357369014957, 0.1846669891097008, 0.17479307509688624, 0.1645932516839821, 0.14974118388863641, 0.12313168951436644, 0.09954231484016415, 0.07848884726570311, 0.05958349301181444, 0.042513463484397225, 0.02702369353698949, 0.012904196915428682, 5.684254634241334e-13], - [0, 0.2678390489631965, 0.26783902272200066, 0.2597826441058259, 0.24902706910268074, 0.23695482639993753, 0.2256383006681516, 0.21497903358294929, 0.20484611195399788, 0.19496825605756374, 0.18521011799123224, 0.17537636033750909, 0.16521765605602917, 0.14601409184763264, 0.12017645750177045, 0.09723257289977025, 0.07672315576201064, 0.05828100588701091, 0.041608570990661085, 0.026462603343588822, 0.012642408046303967, 5.684090697992556e-13], - [0, 0.26805188289642945, 0.2680504967912611, 0.25989219707128086, 0.24910315912904926, 0.23714311024718873, 0.22600768076813438, 0.21540644291349048, 0.20532952317921613, 0.19551506483878706, 0.18580904261739295, 0.17599900201162194, 0.16589551316883433, 0.14251032070205838, 0.11739461598665456, 0.09505584730220555, 0.07505751894711919, 0.05705125158272043, 0.04075355186955677, 0.025932077426773427, 0.012394730337632684, 5.684593550939067e-13], - [0, 0.26834686140773556, 0.26832375661228985, 0.2600810991202708, 0.24925524443574454, 0.23740344439204383, 0.22639373420076936, 0.21590145181789916, 0.20587808218294879, 0.19612388500320327, 0.18643530845110953, 0.17667373736003372, 0.16661767362279536, 0.13921116145638734, 0.1147728186754194, 0.09300211813581435, 0.07348456946203906, 0.055888994085648944, 0.03994488756347897, 0.02542999951742791, 0.01216020362221574, 5.684380293813006e-13], - [0, 0.2687244360987505, 0.2686795000386155, 0.2603496386819869, 0.24948355709625475, 0.2377368472849637, 0.2268068300861612, 0.21640226781698851, 0.20646136031359663, 0.19673790456408805, 0.18710394591721505, 0.17740791428877847, 0.1629619478859466, 0.13610150658280418, 0.11229902347395176, 0.09106236349964537, 0.0719976675941324, 0.05478950272220114, 0.03917939338123231, 0.024954451062058132, 0.011937956169845108, 5.684316949376137e-13], - [0, 0.26918518676268377, 0.26911827286710377, 0.26069822664680947, 0.24978844613826823, 0.2381438308736962, 0.2272907978033346, 0.21695807601531675, 0.20704422400910977, 0.1974009041862247, 0.18783481893763118, 0.17820272729181857, 0.1593125558531483, 0.1331673887028728, 0.1099624030342739, 0.08922840999730404, 0.07059076758366699, 0.05374848618316709, 0.03845418026912741, 0.02450368894756139, 0.011727194872150968, 5.684051529323283e-13], - [0, 0.26972982356539876, 0.2696407506709872, 0.2611273979061933, 0.25017037885334037, 0.23862502242991443, 0.22784638797986617, 0.21754480679817312, 0.207693832666109, 0.19812894355538876, 0.18862910786083356, 0.1790419668895992, 0.155868100194425, 0.1303959736162596, 0.10775315593832588, 0.08749294060862656, 0.06925848973480683, 0.0527620628827207, 0.03776662173095239, 0.024076126183558668, 0.011527196714382588, 5.684474699295357e-13], - [0, 0.2703591897318347, 0.2702477413538418, 0.2616371775684456, 0.2506299425454017, 0.2391811669201615, 0.22847446705611674, 0.21818405558803988, 0.20841121437911164, 0.1989231912421019, 0.18948810788799614, 0.17993619357639545, 0.15261426802226194, 0.12777558475022494, 0.10566247857354935, 0.08584901614653974, 0.06799589774573174, 0.051826696295051954, 0.0371143251095418, 0.023670315095500917, 0.011337301338585355, 5.684161146705253e-13], - [0, 0.27107426475765795, 0.27094018821856014, 0.26222751633781616, 0.2511678467482169, 0.23981312984062675, 0.22915363746790246, 0.2188939459983883, 0.2091975134470657, 0.19978493379085174, 0.1904132343832997, 0.17691904580942708, 0.14953808882353295, 0.12529584321100629, 0.10368235145051571, 0.08429092777873849, 0.06679849919919417, 0.05093915593533877, 0.036495106575671156, 0.02328493265281391, 0.011156904539575359, 5.684338552158143e-13], - [0, 0.2718761681654768, 0.2717191735774802, 0.26290078835188513, 0.2517849259140802, 0.24052190053964725, 0.22985444059713678, 0.21967560467658104, 0.21005399492025828, 0.20071558094798533, 0.19137852568348968, 0.17333284394908322, 0.1466271938443241, 0.12294721018008646, 0.10180548081393669, 0.08281316331078857, 0.06566219812839331, 0.05009647840893195, 0.0359069692785852, 0.02291876762512852, 0.01098545256070339, 5.684495027574777e-13], - [0, 0.2727661638368772, 0.27258592293264877, 0.26365804606143683, 0.25248214260045637, 0.2413085960432681, 0.2306300109421499, 0.22053028228526722, 0.21098204969007378, 0.201716671464851, 0.19240570330111945, 0.16993767756105171, 0.14387035511333568, 0.12072109209896098, 0.10002447548288265, 0.08141069278622126, 0.0645832530233292, 0.04929599135721226, 0.03534808420283757, 0.022570706515807625, 0.010822437077422297, 5.684135450238638e-13], - [0, 0.27374566494984265, 0.27353502158575793, 0.2645004809244256, 0.2532605911756036, 0.2421744654208167, 0.23148158309197675, 0.22145935849493967, 0.21198320015741942, 0.2027808945439346, 0.19349508622497053, 0.16672263168857165, 0.14125739327596418, 0.11860961380648397, 0.09833412384807602, 0.08007892045668537, 0.06355819518716997, 0.04853523556505472, 0.034816773343209165, 0.02223972486717692, 0.010667390771459307, 5.684535331561828e-13], - [0, 0.2748162395567987, 0.2745260223701961, 0.26542942804553593, 0.2541215020670505, 0.24312089471152362, 0.23241052405808185, 0.22246434756084443, 0.21305910652756652, 0.20387554561750665, 0.19183129131022253, 0.16367586028536601, 0.1387791706031293, 0.1166056363052803, 0.09672892946696264, 0.07881363990918547, 0.06258385421006092, 0.0478119461450887, 0.0343114948901756, 0.021924892113247545, 0.010519883421693476, 5.684422577254769e-13], - [0, 0.27587464920372895, 0.27557121257132167, 0.2664463714381782, 0.255066246587603, 0.24410664231368165, 0.23341833875747395, 0.22354690452345943, 0.21421157377801595, 0.20504487676703317, 0.188292909048755, 0.16078638540079737, 0.1364271061385125, 0.11470222168668434, 0.09520383357710219, 0.07761099468609697, 0.061657249646600534, 0.047124041284973994, 0.033830830137162655, 0.021625344022595507, 0.01037951843670725, 5.684542812297317e-13], - [0, 0.2767363155766134, 0.27643910503741154, 0.26755294992995, 0.2560963423758267, 0.24511178795933114, 0.23450667612280535, 0.2247088320945067, 0.21538759494205797, 0.2062908994196277, 0.184936369515185, 0.15804439360692862, 0.13419362333308976, 0.11289284810004567, 0.09375414127759994, 0.07646744236012633, 0.06077592585995716, 0.04646960474815386, 0.03337347189471973, 0.02134028358341319, 0.010245929776715477, 5.684169278474288e-13], - [0, 0.2776882330198305, 0.2773972463592145, 0.26875096377125374, 0.257213459485115, 0.2462005506583865, 0.23567733589743517, 0.2259331165384993, 0.21662520568838778, 0.20759575178999512, 0.18175169538892533, 0.15544083344934734, 0.132071674713643, 0.11117301053502612, 0.09237550930720317, 0.0753797154669655, 0.059937442385944444, 0.045846870361856425, 0.03293821420641051, 0.02106897489113633, 0.010118779215986225, 5.684293747300507e-13], - [0, 0.2787319193822668, 0.2784471653467335, 0.2699480454435843, 0.25841942717647726, 0.24737471780724724, 0.2369276158447065, 0.22720293863358165, 0.2179438926668809, 0.2079065544518245, 0.17872814659313005, 0.1529673398772502, 0.13005478774857693, 0.10953746933751062, 0.09106417171722121, 0.07434482829012269, 0.059139549347833054, 0.04525420824904802, 0.03252394237847516, 0.020810737707961484, 0.009997753896300332, 5.684157704252857e-13], - [0, 0.2798690531443526, 0.27957309888222426, 0.2710822648720068, 0.25971624146222894, 0.24861576624630283, 0.23818813821662843, 0.22852682909331173, 0.21934595688321676, 0.20440039723894188, 0.1758561595528363, 0.15061649413041778, 0.12813647592224697, 0.10798173241425954, 0.08981651982765014, 0.07335983316181671, 0.058380164421691944, 0.04469011257583591, 0.0321296178731246, 0.020564942603868958, 0.009882564143595115, 5.684226200531804e-13], - [0, 0.2811014801619649, 0.28078993365113547, 0.27230935369004783, 0.26094026370344636, 0.24985725232170358, 0.23953550010901395, 0.22992353838105833, 0.22082504881836945, 0.20107051835111636, 0.17312677847712618, 0.14838128836629494, 0.12630998167765034, 0.10650154733752978, 0.08862922596051712, 0.07242191097986965, 0.05765736995840606, 0.044153190624456426, 0.031754282941278765, 0.020331006613218836, 0.009772941513119877, 5.684316759639922e-13], - [0, 0.2824312211890857, 0.28210371438319737, 0.2736236798568827, 0.262251075345148, 0.2511880979039917, 0.24097201198571863, 0.2314083481485342, 0.22235573062062045, 0.19790653798963842, 0.17053183483426448, 0.14625522385358658, 0.12457223900355542, 0.10509284204772494, 0.0874992178574986, 0.07152918256451815, 0.05696939540541739, 0.04364215303212403, 0.03139706516094523, 0.02010838934268125, 0.009668637036384016, 5.684141223821952e-13], - [0, 0.2838604802246891, 0.28351661482076906, 0.2750337899681199, 0.26365584058339664, 0.2526105563725879, 0.24247693161498793, 0.2329838903347082, 0.223966387044925, 0.1948987709874928, 0.16806387195174466, 0.1442323204321383, 0.12291859639617551, 0.10375210773304394, 0.08642365589423666, 0.07067946256313462, 0.05631459155779339, 0.04315577528814177, 0.031057124388098687, 0.019896589478776316, 0.009569419642048157, 5.684154126268629e-13], - [0, 0.28539165375718767, 0.2850309996034639, 0.27654318337170025, 0.26515694065437856, 0.25412706756242187, 0.24403647159544997, 0.23464020711855937, 0.22186067417806035, 0.19203855973785255, 0.16571594640026888, 0.14230670367226134, 0.12134475996731442, 0.10247597360034885, 0.08539991274744799, 0.0698706884861622, 0.05569141603473333, 0.0426929184857271, 0.030733727464280495, 0.019695141647275705, 0.009475074740521455, 5.684217662259515e-13], - [0, 0.2870273409814672, 0.28664943432374923, 0.27815443148085706, 0.2666941220445551, 0.2557402684919907, 0.24569152692322427, 0.23635130704462887, 0.21854492813986334, 0.18931775468217912, 0.1634815538528757, 0.1404716243052917, 0.119846761464828, 0.10126132092182169, 0.08442461193908465, 0.06910099171022935, 0.05509848147937652, 0.04225246743033041, 0.030426168768258346, 0.019503613584674923, 0.009385402943848873, 5.684468004499422e-13], - [0, 0.28877035506525317, 0.2883746966188028, 0.2798433110382348, 0.26826302581923755, 0.257453005183379, 0.24744507355478598, 0.23814346343044668, 0.2153911882703595, 0.1867287826661367, 0.16135502131987772, 0.1387249889916119, 0.11842092974802641, 0.1001051034938881, 0.08349625559162634, 0.0683686669890448, 0.0545344763423826, 0.0418336244024429, 0.030133792786273303, 0.019321603590469676, 0.009300218914063397, 5.684455346705804e-13], - [0, 0.29062373556826054, 0.2902097883958277, 0.28151189080858785, 0.26993320870928983, 0.2592683456657596, 0.24926708552868596, 0.24002184840128385, 0.21239072877449416, 0.18426491019340566, 0.15933101190455545, 0.13706249364190623, 0.11706360559969638, 0.09900475651022578, 0.08261298510831233, 0.06767209909185103, 0.0539981825755831, 0.04143550150274685, 0.02985599027852007, 0.01914873679879743, 0.009219350318403445, 5.684268701963047e-13], - [0, 0.29259076211644697, 0.29215794929712047, 0.2832872975761802, 0.2717076020070408, 0.26111924080282733, 0.2511675118569201, 0.24088962223288488, 0.2095353953973244, 0.18191953937048308, 0.1574032454914231, 0.135480041897722, 0.1157717001143509, 0.09795785085998437, 0.08177285453712116, 0.06700978784067498, 0.05348838810107284, 0.04105727343585385, 0.029592194814540604, 0.018984665453558553, 0.009142636888554989, 5.684164616261464e-13], - [0, 0.2946749694530125, 0.29422267151858245, 0.2851726580036028, 0.2735893668608469, 0.2630228218140473, 0.25314863595383486, 0.23757482057703752, 0.20681768618771904, 0.1796871696507195, 0.15556528702973071, 0.13397362858086112, 0.11454250803694759, 0.09696084301197055, 0.08097405648982203, 0.06638033922229164, 0.05300372370300013, 0.04069817284744199, 0.0293418761015118, 0.01882906862419984, 0.009069929564020588, 5.684230971116449e-13], - [0, 0.29672406083136593, 0.29629998749101105, 0.28717134307044034, 0.2755819089134093, 0.26497468335605845, 0.25521670817397535, 0.23442007295727763, 0.20423071149025426, 0.17756235499348355, 0.1538156560576454, 0.13254027580785532, 0.11337331513345826, 0.09601246525164706, 0.08021491144631916, 0.06578245736307055, 0.05254362520702218, 0.04035748611386224, 0.02910454350285366, 0.01868164593020082, 0.009001089720754932, 5.684461255486632e-13], - [0, 0.2986921656577124, 0.2982503249648971, 0.2892869837643275, 0.2776050476148839, 0.2670376809624031, 0.25736470852905313, 0.23141724514402984, 0.2017680893413853, 0.17554005152817348, 0.1521504754447278, 0.1311768033446014, 0.112261600568786, 0.0951111511761837, 0.07949385810491083, 0.06521493727802856, 0.052107181491578544, 0.040034549520555615, 0.02887974590748849, 0.018542118031632502, 0.008935988465168496, 5.684444260949054e-13], - [0, 0.30077878469967345, 0.30031859409405115, 0.29128877610730797, 0.2796629725889943, 0.26921570333627187, 0.2595906111690738, 0.228558800523615, 0.19942417118329564, 0.17361004514725667, 0.15056602425374876, 0.12988025788502, 0.11120502195240085, 0.09425504582225133, 0.07880944465114234, 0.06467665830712127, 0.051693545161129034, 0.0397287458059737, 0.02866705961309887, 0.018410225230240915, 0.008874505588210041, 5.684209747405177e-13], - [0, 0.30298770472825276, 0.3025085395904628, 0.2933700354640226, 0.2818381286078877, 0.271512672620702, 0.25839536333933244, 0.22583764724061003, 0.19719332552426766, 0.17177206928920466, 0.14905916989562248, 0.12864770283613333, 0.11020103993644186, 0.09344242432007381, 0.07816032086282126, 0.06416633484661814, 0.051301735391575724, 0.039439346007839056, 0.028465850797942928, 0.018285723262465685, 0.008816529601745123, 5.684519746664607e-13], - [0, 0.3053230018412023, 0.30482419264785676, 0.29557193205960175, 0.28413461421052943, 0.2738250200144421, 0.25522701516194957, 0.22324746955121103, 0.1950697389349898, 0.17002385068735748, 0.1476267006080434, 0.12747667400958562, 0.10924605530021833, 0.09267155036354788, 0.07754489981323333, 0.06368226884262637, 0.050931077245763845, 0.03916595614498412, 0.02827598200951799, 0.01816837510205001, 0.008761957852812021, 5.684209747405177e-13], - [0, 0.30778906124680794, 0.3072600257524981, 0.2978985604067928, 0.2864316198792948, 0.27623010066804443, 0.2522109011647443, 0.22078252260484965, 0.19304378133654132, 0.16836162661491003, 0.146265631353799, 0.12636491645594103, 0.10833973376747952, 0.09194070575460946, 0.07696227061842363, 0.06322456628538474, 0.05058103368639871, 0.03890810060966032, 0.0280971312588463, 0.01805798905877516, 0.00871069455342876, 5.684444260949054e-13], - [0, 0.31039059904571786, 0.3098047458695419, 0.30035432474335266, 0.28884946502557796, 0.27873482048846654, 0.2493398752449139, 0.21843642500357427, 0.1911144666701148, 0.16678190058087253, 0.14497314799086794, 0.12530952523320593, 0.10748057271314349, 0.09124887620942006, 0.07641143332250527, 0.06279238673300822, 0.05025097135103353, 0.038665173240701754, 0.027928982780167685, 0.017954372313511185, 0.008662650993187547, 5.684461255486632e-13], - [0, 0.3131326862290962, 0.31248795038948174, 0.30294396114186384, 0.29131246620806905, 0.2812550879275477, 0.24660729633183107, 0.21620218095335986, 0.18928042036691295, 0.165281422223984, 0.1437456858815267, 0.1243087007389931, 0.10666711683597885, 0.09059477051721382, 0.07589131199551956, 0.06238494954743587, 0.049940302354229915, 0.038436604409071075, 0.027771243978236264, 0.017857346376217685, 0.00861774514078202, 5.684230971116449e-13], - [0, 0.3160207751307098, 0.31531492630676894, 0.30567256187566727, 0.29387419736565334, 0.27805738311144523, 0.2440074834959205, 0.214069167872708, 0.1875378234643676, 0.16385601643719383, 0.14258190186012598, 0.12335765163641102, 0.10589764808401012, 0.08997718867419734, 0.07539977762462516, 0.0620015302115463, 0.04964848156760128, 0.03822229652030267, 0.0276236441135325, 0.017766746298661953, 0.008575901288168108, 5.684164616261464e-13], - [0, 0.31848491310711285, 0.3177885184942394, 0.30809832269028425, 0.29652418635123445, 0.2749887444042541, 0.24151968779051425, 0.21204179046378585, 0.18588223985886973, 0.1625040372698547, 0.1414795607320228, 0.12245806312762386, 0.10517100797926544, 0.0893950161093924, 0.07493724915889276, 0.06164145698335226, 0.049375004144849244, 0.038021882796215226, 0.027485933113666643, 0.01768228719072333, 0.008537049724282077, 5.684268701963047e-13], - [0, 0.32107906894339067, 0.32038043886018386, 0.310585684252942, 0.299213931885447, 0.27206625671851725, 0.23915187707586938, 0.21011562857324861, 0.18431091091485996, 0.16122289410134272, 0.14043658400851203, 0.12160827504658309, 0.1044858824280936, 0.08884721842889572, 0.07450291666032177, 0.06130410785317513, 0.049119403276449675, 0.037835024597256954, 0.027357880489375926, 0.017603943733206374, 0.008501126439455118, 5.684455346705804e-13], - [0, 0.323815279495534, 0.3231142199928172, 0.31320971821571675, 0.3019767846041077, 0.26928596195546106, 0.23690150459913178, 0.2082858290782496, 0.18282114756971166, 0.16001015276742692, 0.13944857127910382, 0.12080674506137247, 0.10384105172875027, 0.0883328366433033, 0.07409603019311806, 0.060988907782188954, 0.04888119564782289, 0.03766140996958703, 0.02723927435624769, 0.017531608174863284, 0.008468072861091984, 5.684468004499422e-13], - [0, 0.3266988974326068, 0.3259926650781609, 0.315975538454154, 0.3029668286529841, 0.26664136858300935, 0.23476331105143794, 0.20654999813473304, 0.18141009048463275, 0.15886355012810327, 0.1385135889211142, 0.12005204135391517, 0.10323538492571063, 0.08785064211281216, 0.0737158964943774, 0.06069532619676467, 0.04865953233263552, 0.03750075231835119, 0.02712992054682672, 0.0174651629316714, 0.00843783561322196, 5.684217662259515e-13], - [0, 0.32973567798421755, 0.32901141072670725, 0.3186888473516092, 0.2998450214948889, 0.2641269548070113, 0.23273265922341577, 0.20490426389017102, 0.18007454641917775, 0.15778098291605142, 0.13763270593130983, 0.11934283596019662, 0.10266783468466659, 0.08739851851657925, 0.07336173625617455, 0.06042265854659945, 0.04845428276951218, 0.0373525872021219, 0.02702941728216494, 0.017404361364015183, 0.008410253389570315, 5.684154126268629e-13], - [0, 0.3323330252101185, 0.3316310265068977, 0.3213674005161238, 0.2968750138188625, 0.2617376931976878, 0.23080653852844074, 0.20334562251377974, 0.17881236821665422, 0.15675962100090143, 0.1368037253877219, 0.11867697512116133, 0.10213640494043827, 0.08697628118397915, 0.07303230222419185, 0.060170196815647586, 0.048265099617310576, 0.03721672124584068, 0.026937543626672795, 0.017349143959108887, 0.008385299803990099, 5.684141223821952e-13], - [0, 0.33493516184819344, 0.33427437003183536, 0.32412267872189227, 0.29399565102266934, 0.25946861464547055, 0.22898043156772038, 0.20187154211214428, 0.1776205310721935, 0.15578967064129767, 0.13602473228104378, 0.11805372094727333, 0.10164104794057506, 0.0865843504908527, 0.07272786821715736, 0.05993801774195632, 0.04809198030841353, 0.03709309806936288, 0.02685436050683168, 0.017299528752232743, 0.008363033781506627, 5.684316759639922e-13], - [0, 0.33768204201066976, 0.3370636887410684, 0.32683378283252296, 0.29125885323310285, 0.25731624788249974, 0.22725141453122438, 0.2004775232722978, 0.17649665825729255, 0.15487833584870714, 0.1352955394770561, 0.11747257518720756, 0.10118022843130364, 0.08622204521088869, 0.07244793846496123, 0.05972473218321299, 0.047934647637362125, 0.03698152108995606, 0.026779821824902746, 0.01725543770078282, 0.008343420450955829, 5.684226200531804e-13], - [0, 0.34012995231194026, 0.33951552805547136, 0.3268385392959769, 0.2886577133858736, 0.25526324197471695, 0.22561417328517988, 0.19916238039797896, 0.17543291798233426, 0.1540242456752594, 0.13461490936890635, 0.11693256734872638, 0.10075167819479681, 0.08588847659211736, 0.0721920614353165, 0.05953081694656234, 0.04779285172901368, 0.03688181421523493, 0.026713810548244538, 0.017216801898598512, 0.008326429277758533, 5.684157704252857e-13], - [0, 0.34227031346347303, 0.34182475860973227, 0.32368830245843583, 0.2861876064179114, 0.25328617682191634, 0.22406313714895987, 0.19791934351189866, 0.17443207602354957, 0.15322594187921362, 0.13398170090056283, 0.11643280577004589, 0.10035718374581394, 0.08558344807227052, 0.07195982801192717, 0.059356178801976904, 0.04766636905628722, 0.03679360204785094, 0.02665622367999272, 0.017183561310503134, 0.008312033948527649, 5.684293747300507e-13], - [0, 0.34427713311970365, 0.3439102388642824, 0.32063851371674457, 0.2838420595020353, 0.25141426836285063, 0.22257832334105396, 0.196741189785712, 0.17349513737144664, 0.15248207861475302, 0.13339486470840714, 0.1159724739028434, 0.09999610752686304, 0.08530647168981895, 0.07175086985967039, 0.05920054260116109, 0.047554987143598716, 0.036716643303407175, 0.02660697186513516, 0.01715566454208783, 0.00830021226988729, 5.684169278474288e-13], - [0, 0.34603247572533746, 0.3457321119321932, 0.3176549795705341, 0.28161609605888316, 0.24964531205171178, 0.2211799890466183, 0.19563621949089338, 0.17262051117825203, 0.15179141665100818, 0.1328531152728374, 0.11554796594452917, 0.09966787119140019, 0.08505710793826894, 0.07156444389693216, 0.05906366475755933, 0.0474584571793458, 0.0366511468178032, 0.02656597904717725, 0.017133016510229013, 0.00829094608604921, 5.684542812297317e-13], - [0, 0.34762291998163175, 0.34749453854942663, 0.31481802123209945, 0.2794344337343091, 0.24797608280607625, 0.21986567003807525, 0.19460253846034462, 0.17180673060067875, 0.1511528181356425, 0.13235553105459993, 0.11515964528825874, 0.09937195329655436, 0.08483496402618598, 0.07139928725962374, 0.058945332306166213, 0.04737672048008791, 0.03659701153992503, 0.026533182179378043, 0.017115542178203196, 0.008284221208327777, 5.684422577254769e-13], - [0, 0.34927744700837593, 0.34920689843943364, 0.3120996867727399, 0.2773647727036632, 0.24639944363116212, 0.2186297421235395, 0.19363600010535706, 0.17105083516355535, 0.150564195324705, 0.13190111954259007, 0.11480869802767302, 0.0991078872391426, 0.08463969235037885, 0.0712565466227487, 0.05884536208554873, 0.0473096510438608, 0.0365541542737445, 0.026508530989417425, 0.017103307980050945, 0.008280027363412039, 5.684535331561828e-13], - [0, 0.35105524517064157, 0.3478879544991285, 0.3093321082639021, 0.27540588228305296, 0.2449149621031664, 0.21747165386557282, 0.19273538921993338, 0.1703509952119474, 0.1500232432954362, 0.13148461743753606, 0.1144918576937925, 0.09887308128838855, 0.08446952272322505, 0.07113483674686438, 0.058762829065699344, 0.04725648386397547, 0.03652216801015132, 0.02649179498177997, 0.017096223722319302, 0.008278338859781784, 5.684135450238638e-13], - [0, 0.3528449792315769, 0.3435451608083896, 0.3067007925352528, 0.2735572109668283, 0.2435022284754496, 0.21639133740166022, 0.19190130150150259, 0.16970834275923607, 0.14953155014666214, 0.1311060606650472, 0.11421145550002623, 0.09866905345234048, 0.08432440520437012, 0.07103452798958189, 0.058697809060959165, 0.047216283708735304, 0.03650069577645348, 0.02648242397640383, 0.017093817382374213, 0.0082788128491985, 5.684495027574777e-13], - [0, 0.3517343073372102, 0.3390489482148948, 0.30414201159317145, 0.2717848802450362, 0.242137540374756, 0.21538698573863252, 0.19113237182352794, 0.16912184345699183, 0.14908790285289797, 0.13076939670668253, 0.11396705407264558, 0.09849580691138717, 0.08420279284166546, 0.07095608520501168, 0.05865077863290921, 0.047190514360408865, 0.036490357560978716, 0.02648090146976747, 0.01709661878237505, 0.008281809756454086, 5.684338552158143e-13], - [0, 0.3452068990816315, 0.33457142539077733, 0.3014806583354357, 0.27001521522151967, 0.24086102329135892, 0.21445521942951024, 0.19042735412426737, 0.16859056144141962, 0.14868307561130223, 0.13047409922080536, 0.1137582742813947, 0.09835307447644931, 0.08410711369776892, 0.07089938829381029, 0.058621665940563554, 0.047179136508361794, 0.03649113760673106, 0.026487397143455337, 0.017104632191262535, 0.008287334151191266, 5.684161146705253e-13], - [0, 0.3389297022539493, 0.329812720841005, 0.29893385983257303, 0.26834965975524483, 0.23965836966169707, 0.21355383494721986, 0.18978116541120457, 0.1681060327786098, 0.14832549995162478, 0.130219709199082, 0.11358479379282464, 0.09824063686380663, 0.08403722124398881, 0.07086435065048136, 0.05860949119778516, 0.047182132811371916, 0.03650303710230671, 0.026501970742174297, 0.017117869830371977, 0.008295394464994516, 5.684474699295357e-13], - [0, 0.3329763322608413, 0.32522289194957915, 0.29634117843613694, 0.26678529304888343, 0.23853856396442535, 0.21271418864102992, 0.18917341941858007, 0.1676680050570667, 0.14801461858610312, 0.13000583320831538, 0.11344634584872891, 0.09815409753059612, 0.08399300869427855, 0.07085091883652682, 0.058614301804027484, 0.04719950783623967, 0.03652607418700878, 0.026524644498522397, 0.017136351916065006, 0.008306003024927193, 5.684051529323283e-13], - [0, 0.3273264820370516, 0.32050022189082483, 0.2936807258180353, 0.26524110707839554, 0.23750118290081446, 0.2119438347256164, 0.1886173988390284, 0.16728088303352717, 0.14774994960532695, 0.12983214189546288, 0.11334271825944611, 0.09809713905326599, 0.08397440860960624, 0.07085907238320038, 0.058636976057755474, 0.047231288069724625, 0.03655988802108826, 0.02655545306026847, 0.01716010673987971, 0.008319176100144368, 5.684316949376137e-13], - [0, 0.3219615993731395, 0.31592818233036724, 0.2911188612250726, 0.26366462726457485, 0.2364808098565164, 0.2112431549363691, 0.18812177298457303, 0.16694078170758075, 0.14752654882045135, 0.12969724303331986, 0.11327316165932191, 0.09807010242127494, 0.08398139264272692, 0.07088882371363071, 0.05867754852715745, 0.04727752202313696, 0.036604562746447224, 0.02659444361881937, 0.017189170770848156, 0.008334933960440938, 5.684380293813006e-13], - [0, 0.3168647053399809, 0.3115777169711009, 0.2883314982409501, 0.26218616914377435, 0.23551737213040258, 0.2106110355009604, 0.18768576606419157, 0.1666527215400037, 0.14734657771043658, 0.12959728465773424, 0.11322976880478555, 0.09807069487578692, 0.08401336383428772, 0.07093986240420219, 0.05873608114939083, 0.04733828040855312, 0.03666052760138424, 0.026641676088843158, 0.017223418161052044, 0.008353300955263763, 5.684593550939067e-13], - [0, 0.3120202349617789, 0.3071581349189503, 0.28561999565397433, 0.26075959668787657, 0.2346031180576349, 0.21004647916527158, 0.18730869963519614, 0.1664162584535236, 0.14721183268079607, 0.1295369080503408, 0.11321660724945588, 0.09809863993552898, 0.08406764404242056, 0.07100721263668676, 0.0588110981954061, 0.04741307427821109, 0.03672778469137964, 0.026697223331098134, 0.01726305744512053, 0.008374305604093062, 5.684090697992556e-13], - [0, 0.30741389703223376, 0.30291040872953084, 0.28296717091393475, 0.25920290963142634, 0.2337668669167669, 0.2095081474425342, 0.18698999000434924, 0.16623102928747358, 0.14712210774291626, 0.12951090072760965, 0.11323793811754969, 0.09815650887162512, 0.084147643194683, 0.07109567204963695, 0.058902835606318, 0.0475002143656411, 0.03680449185765143, 0.026759704403502827, 0.01730731221414324, 0.008397525546115527, 5.684254634241334e-13], - [0, 0.3030325504556686, 0.29886836100217806, 0.2800221973865291, 0.2577013543867679, 0.23296147998735262, 0.2089846736947721, 0.18672914600244894, 0.16609675042730032, 0.14707726598260243, 0.12951989345879156, 0.11329379391497699, 0.09824438997952717, 0.08425130825230558, 0.07120585301663603, 0.059012863634393474, 0.04760101366514387, 0.03689278152364744, 0.02683030202035759, 0.017356841609625917, 0.008423253908063064, 5.68439677355079e-13], - [0, 0.29886409488653953, 0.2950214502214975, 0.27720861000148034, 0.25622654412188695, 0.23215480816872963, 0.20852717039645077, 0.18647350784249273, 0.16600332646930835, 0.14706192340213423, 0.12956835795648652, 0.1133842598306955, 0.09836241758591767, 0.08437832193749267, 0.071337928795856, 0.059141352230085265, 0.0477168075946109, 0.03699279126067248, 0.026909107878054693, 0.01741197437979729, 0.008451722795825753, 5.684523297314515e-13], - [0, 0.2948973737875349, 0.2913024664479736, 0.2744980435369372, 0.25464081399036337, 0.23139323263251313, 0.20813492725437763, 0.18625798115976994, 0.16593179092353694, 0.14709116554854523, 0.129656368106339, 0.11350947405446737, 0.09851077255120802, 0.08453150715411097, 0.07149231316532233, 0.059288345565278094, 0.047847776694425255, 0.037104677855381844, 0.02699662569455102, 0.017472797860023134, 0.008482977534640576, 5.684214409580984e-13], - [0, 0.2911220883078159, 0.28767851779548426, 0.2717212832101268, 0.25308384000140904, 0.230669120558673, 0.2078073382568845, 0.18609957440332892, 0.16590331877978315, 0.14715640876602265, 0.12978405825379014, 0.1136696282907223, 0.0986863973253094, 0.08471110033724467, 0.07166924569332878, 0.059451623645827616, 0.047994126431944964, 0.03722861791743511, 0.027092994362760615, 0.017539409169557988, 0.008517068304740838, 5.684429163685655e-13], - [0, 0.2875287205921492, 0.28422914377301794, 0.26908128238346735, 0.2514714299360319, 0.22988562088073602, 0.20748857688545252, 0.18599804552081844, 0.16592539021644354, 0.14726208120123357, 0.12994075668132132, 0.11386129915592817, 0.09888919748163953, 0.0849173799917933, 0.07186900246381346, 0.059634018798533237, 0.04815608799731293, 0.037364395591339306, 0.027198368068184084, 0.01761191559580771, 0.008554050343718624, 5.684090887736317e-13], - [0, 0.2841084653658754, 0.2809460731975832, 0.2664452415581309, 0.24977114352054725, 0.22914796341979113, 0.20714145778185858, 0.1859532396315443, 0.16599803886435893, 0.14741284115871167, 0.1301370978058003, 0.1140800841261579, 0.09911504629599206, 0.08514716664421929, 0.07209189714046707, 0.059835819217255275, 0.04833391921124524, 0.037511760226038846, 0.02731291690508893, 0.017690372339984516, 0.008593984170488445, 5.684390674969185e-13], - [0, 0.2808531687719551, 0.2778160101246385, 0.2638727571928712, 0.24816878207957416, 0.22845825345882526, 0.2068547148923016, 0.18594985920856288, 0.16612137550282569, 0.1476089192993868, 0.13037380639445928, 0.11432694436507512, 0.09937121647169536, 0.08539976072029273, 0.07232863281274152, 0.06005341147613303, 0.048526263948929296, 0.037671400078806955, 0.027436827562610216, 0.017774633413978325, 0.008636935834829232, 5.684141982790215e-13], - [0, 0.2777552735892642, 0.2748174819942051, 0.26136634427359706, 0.246597290527575, 0.22760960781511147, 0.20663161975733152, 0.18589870556411375, 0.16629090377364275, 0.147848392222727, 0.13063678607124987, 0.11460986227632479, 0.09965915006603154, 0.08568003454968227, 0.07258703124364282, 0.060288768663099374, 0.0487312421842034, 0.03784023889068073, 0.027567322846380176, 0.017863471558712325, 0.008682049313506551, 5.684526197462031e-13], - [0, 0.27480777008690904, 0.27196494878865013, 0.2589852451268371, 0.24465933884869198, 0.2267502069577179, 0.20637293451329702, 0.18590419270026368, 0.16644094802074963, 0.1481036868733554, 0.13093847386869586, 0.11492927932067691, 0.09997930028077932, 0.08598507049612189, 0.07286955893960122, 0.060544492901613206, 0.04895068099813228, 0.038022232030812196, 0.027706971102361526, 0.017958275286105278, 0.008729966528449078, 5.684373219437229e-13], - [0, 0.2720041518534801, 0.2692477213622624, 0.25665555851901445, 0.24280189652643008, 0.2259083555748021, 0.20611007774732576, 0.18596632897811105, 0.16662583024128713, 0.14838940656886734, 0.1312816405288686, 0.11528569705262737, 0.10033217470720508, 0.08631525488056016, 0.07317667199458817, 0.06082100135472512, 0.0491871556931755, 0.038217681964738494, 0.027855972692236858, 0.018059621140196217, 0.008781105254343075, 5.684300279670163e-13], - [0, 0.2693383760413326, 0.26662902700650193, 0.25443082446656723, 0.24104531643274618, 0.22498472631070843, 0.2058290407757112, 0.1860831906304838, 0.16686200795845704, 0.14870784158233616, 0.13165201314848213, 0.11567967906898953, 0.10071768085936125, 0.08667448853259428, 0.07350887098198192, 0.06111669601409622, 0.0494410595723594, 0.03842691735883371, 0.028015165369197254, 0.018167682818557178, 0.008835553888957213, 5.68429908703892e-13], - [0, 0.26680482752567514, 0.26414046539684927, 0.2522460663817583, 0.23928361855553246, 0.22386862918835948, 0.20551863466380377, 0.1861513072213938, 0.16714984388158882, 0.14907315300206386, 0.13205719860991394, 0.11609507955370194, 0.10112378549138158, 0.08706335603278605, 0.07386670300547847, 0.06143185156645356, 0.04971281993505272, 0.038650258607049126, 0.028184822745060952, 0.01828264807386409, 0.008893407891719161, 5.684362811144216e-13], - [0, 0.26439828655384195, 0.26177693024976634, 0.2501255306981421, 0.2375963457143372, 0.22279457399122304, 0.2052218186855726, 0.1861842638851386, 0.1674584023578518, 0.14948591066115569, 0.1325035409075781, 0.1165343442869471, 0.10155066300114873, 0.0874705614978666, 0.07424635250799831, 0.06176887766685017, 0.050002899906189696, 0.03888593957753976, 0.028365240471544012, 0.0184046925488702, 0.008954770216860279, 5.684466703485532e-13], - [0, 0.262113899507881, 0.2595336732588294, 0.24802587582598795, 0.23600408713150517, 0.22169470319340703, 0.204953385913882, 0.18627398312787596, 0.1677329275946704, 0.14989753263421335, 0.13295930422600577, 0.11700811118600993, 0.10201236546038221, 0.08790501108080666, 0.07463829413836731, 0.0621171108991801, 0.05030443444752578, 0.03913247797072479, 0.02855460150101411, 0.018532642690161097, 0.009019498575071314, 5.684100239385295e-13], - [0, 0.25994715244337385, 0.25739269047676316, 0.2460354991302438, 0.23431949022665322, 0.22064181913094671, 0.20447229505464293, 0.18633844754788242, 0.16801679799812064, 0.15033189911719091, 0.13345900690239887, 0.11752169035617044, 0.10250965342606833, 0.08836947878990031, 0.07505623659540106, 0.062488435351042426, 0.05062025302436268, 0.03939015123137324, 0.028751094343419936, 0.01866455041977133, 0.009085717568950713, 5.684341886080801e-13], - [0, 0.2578938471242509, 0.2553607020666959, 0.2441505917403221, 0.2326899425270313, 0.2196654845744207, 0.20393418559308435, 0.18642917880470136, 0.16835299976378337, 0.15076595726327469, 0.13399235292354206, 0.11807592350407971, 0.1030433552449494, 0.08885804916246802, 0.07550201415938329, 0.06288349603153166, 0.05095421477903986, 0.03966340229396808, 0.028957769613953147, 0.018804118317916656, 0.009155725631444496, 5.684100239385295e-13], - [0, 0.2559500792943936, 0.2534371401844737, 0.24236761199517814, 0.23115282840024082, 0.21851447218409714, 0.20339144602985473, 0.1863927893856501, 0.168666727374216, 0.15124873444733572, 0.1345341127228039, 0.11865853813503696, 0.10360618482820885, 0.08937942911018128, 0.07597639994855859, 0.06330035569249048, 0.05130834516762675, 0.039952725946932305, 0.02917637358791596, 0.018951605571260372, 0.009229654209548488, 5.684466703485532e-13], - [0, 0.2541122189609268, 0.2516184133389743, 0.24067605268612607, 0.22964673494470828, 0.21728724813613093, 0.20279874518394067, 0.18630685088396598, 0.1689956130348945, 0.15171730733868566, 0.13508981589836822, 0.11923343056764675, 0.10417418117754094, 0.0899287937994586, 0.07648022856358233, 0.06373883656465291, 0.05168328580907641, 0.0402578847086943, 0.029407329070636364, 0.01910729097915009, 0.009307644667728727, 5.684362811144216e-13], - [0, 0.2523768924919523, 0.2499011837034007, 0.2390751772628621, 0.22814391169617937, 0.2159895013346615, 0.20200849318882794, 0.18626017160215733, 0.1692304253128896, 0.15222118526139664, 0.1356603921112765, 0.11983724593505947, 0.10476945071673084, 0.09049013414426106, 0.07699306656263617, 0.06419281796411272, 0.05207565152716158, 0.04057760100806725, 0.029651074212324716, 0.019271061343033666, 0.00938984900869867, 5.68429908703892e-13], - [0, 0.25074096635648857, 0.24828235102631868, 0.23756734496487292, 0.2267292446197188, 0.21477219735061223, 0.20119419637410368, 0.1862518028235626, 0.16944400905515522, 0.15268082909926758, 0.1362774961512514, 0.12048409547332989, 0.10540385385581896, 0.0910828332723668, 0.07752526546426003, 0.06466185473300355, 0.05247424093738569, 0.040899819161950304, 0.029897655570607685, 0.01943730192522248, 0.00947357186475984, 5.684300279670163e-13], - [0, 0.24920153234688766, 0.2467590380206276, 0.23614989578106818, 0.22540024945044487, 0.21363324782839754, 0.2004253160413328, 0.18576526356980602, 0.16969408243710404, 0.15311056873144935, 0.13688369889621302, 0.12117507737173125, 0.10607090631083338, 0.09169754443632881, 0.07808882518759222, 0.06515778994298681, 0.05289202043229582, 0.04123985822047866, 0.03015459020957677, 0.019609921250776048, 0.009560007378581795, 5.684373219437229e-13], - [0, 0.2477558941507139, 0.24532857707811206, 0.23482036505299664, 0.2241546253293335, 0.21257072395030713, 0.19971948448471707, 0.18529097384373472, 0.16994900585359574, 0.15355068827261675, 0.13743240492715358, 0.12182294165540947, 0.10674246160590421, 0.09234893077575626, 0.07868478201032754, 0.06567729877303909, 0.053332881803953534, 0.041598376317324395, 0.030424912277453444, 0.019791716822510342, 0.009651001524275511, 5.684526197462031e-13], - [0, 0.24640155514930506, 0.24398849820158858, 0.23357647242903595, 0.2229902445503741, 0.2115828481021255, 0.1990790354852835, 0.18485846024020713, 0.16984385313719494, 0.1540404028401099, 0.13801266572670562, 0.1224329991561037, 0.10738990874074272, 0.09301003183679775, 0.07931127434119405, 0.06622208584076371, 0.05379767924580396, 0.041974080000954955, 0.03070956386011413, 0.019983058631965134, 0.009746742001084465, 5.684141982790215e-13], - [0, 0.24513620733216632, 0.24273341702098616, 0.23241611183607358, 0.22184017605525247, 0.2105140960429708, 0.19845053464734985, 0.18446500919651507, 0.16969983220462842, 0.1543409714491873, 0.13863913729721844, 0.12308622983653106, 0.10807838062248726, 0.09367415445922236, 0.07991794657243646, 0.06676653990723494, 0.0542703764170938, 0.042358735623224536, 0.031004827819742835, 0.02018239577523683, 0.009847430729905633, 5.684390674969185e-13], - [0, 0.24395772123966708, 0.24155507149657757, 0.23133734238342635, 0.2206992196767033, 0.20946263155224187, 0.19745020197149182, 0.18404046971625126, 0.1695847395853889, 0.1544671974789935, 0.13907579110309598, 0.12374593877723339, 0.10875936782724695, 0.09434592705815711, 0.08055354543444082, 0.06733270893960243, 0.05474920252254374, 0.04274623036053532, 0.03129830358318485, 0.020378526403419563, 0.009945601786398556, 5.684090887736317e-13], - [0, 0.2428641368368287, 0.24046100411567278, 0.23031938763381263, 0.219636500528395, 0.20848480932556862, 0.19649835959228307, 0.18340564091261052, 0.16945589418412504, 0.15462559555544428, 0.13943058065365221, 0.12428046894513041, 0.10945471469199207, 0.09505656862017986, 0.08121955811532186, 0.06791996721631241, 0.055252853908882404, 0.043154146632673515, 0.03160613019531418, 0.02058483827113378, 0.0100488097473317, 5.684429163685655e-13], - [0, 0.24185365525511293, 0.23944941243712486, 0.22930157703910922, 0.21865025063732438, 0.20757901087392833, 0.19561495056450426, 0.18283067716026827, 0.16904881702998864, 0.15479675479696198, 0.13980553724081796, 0.12480909153339326, 0.11006860392683386, 0.09575664022463565, 0.08189708113093272, 0.06853317531181355, 0.055783007566105706, 0.0435812184474571, 0.031929894820450576, 0.02080177148684472, 0.010157308657880912, 5.684214409580984e-13], - [0, 0.24092463132490133, 0.23851864712071344, 0.22832714288142594, 0.21773884728020226, 0.2067437528938853, 0.19479852111487617, 0.18226762680114916, 0.16869495396974798, 0.15463516651436754, 0.14018606569266012, 0.12531918368779316, 0.11066616821153727, 0.09638513676918582, 0.0825053414939702, 0.0691281399087984, 0.056315030617497513, 0.04401637983733055, 0.03226559324332341, 0.02102795899361352, 0.010271339007772344, 5.684523297314515e-13], - [0, 0.2400755668458035, 0.23766720516675843, 0.22742993974816292, 0.21690080624694033, 0.20597768115351306, 0.19404774147858478, 0.1816016979233838, 0.16839375648999075, 0.1545196246161141, 0.14027625908170205, 0.12582526732444427, 0.11128674691519805, 0.09704722250603497, 0.08314822199793079, 0.06972565704131746, 0.056836598528775574, 0.044444162243166926, 0.032590503835763174, 0.02124471476633967, 0.01038009545595748, 5.68439677355079e-13], - [0, 0.23930510454249548, 0.23689372383728374, 0.22660851704245033, 0.2161347757675003, 0.20521074417615637, 0.19336140045368214, 0.18099554967591305, 0.16807334981479016, 0.15445126747749782, 0.14038983487296264, 0.12611812501006625, 0.11184924076019356, 0.09773002581823682, 0.08378785997820161, 0.07032958419529216, 0.05738556147889552, 0.044892063523320785, 0.03293148728914718, 0.021472594594342906, 0.010494095619151234, 5.684254634241334e-13], - [0, 0.23861202265038617, 0.23619697521780825, 0.22586155857368329, 0.2154395310543577, 0.20447638041105165, 0.19273840051255314, 0.1804482177777799, 0.1676496820527973, 0.15435178362793067, 0.14054641835514303, 0.12642872745061595, 0.11227803768292684, 0.0981704101519654, 0.08435858221105261, 0.07094697555885436, 0.05796306060403824, 0.04535421042476167, 0.03328992902709145, 0.02171175443663752, 0.010613896617428481, 5.684090697992556e-13], - [0, 0.2379952301049568, 0.2355758613663282, 0.22518695051758156, 0.2148139694196513, 0.20380911472443575, 0.19217775342326573, 0.17977732965562132, 0.16704665155600634, 0.15395352501570864, 0.1405330373700052, 0.12666793727589715, 0.112609782330537, 0.09862096122617445, 0.0848850713441606, 0.07147738085848214, 0.05844397531689068, 0.045794183720317815, 0.03364225030907166, 0.02194958414008844, 0.010734456234899914, 5.684593550939067e-13], - [0, 0.23745376228362142, 0.23502298208370567, 0.22458276533370736, 0.21425710592723135, 0.2032078875885191, 0.19152812016329784, 0.17913301555381625, 0.1664659986744255, 0.1534783535561246, 0.14019786467940773, 0.12667172695557838, 0.11294911958600554, 0.09906961052990934, 0.08538372157204327, 0.07200126876909965, 0.058930857886707634, 0.04622866101612993, 0.033981018827944375, 0.022182043437055612, 0.010851210527107457, 5.684380293813006e-13], - [0, 0.23698677728191347, 0.23454112565787008, 0.2240498787199386, 0.21373410386104302, 0.20267175139906618, 0.19093332907118576, 0.17854749641799134, 0.16593974026079658, 0.15304670550790433, 0.13990113255829337, 0.12654068713970906, 0.11299763083286507, 0.09940638961040807, 0.08590272529374945, 0.0725551571605365, 0.0594282935827551, 0.04665826816903977, 0.03433724521812561, 0.022424324284315882, 0.010973912041549743, 5.684316949376137e-13], - [0, 0.2365935526870545, 0.23413241412299612, 0.22358746065719984, 0.21324378212568726, 0.20212608300028037, 0.19040003893508134, 0.17801984239952168, 0.16546704276663604, 0.15265520056459533, 0.13964189209843889, 0.12644449097876992, 0.11306488111074488, 0.09961669833558075, 0.08622216937169479, 0.07296847312375115, 0.059839686747977905, 0.0470781146594846, 0.034702010989349226, 0.02267128281459927, 0.01110284093385875, 5.684051529323283e-13], - [0, 0.23627348283071128, 0.23379621725837307, 0.22319479470411357, 0.21282038368156017, 0.20162167780142692, 0.18992741212457534, 0.17754922175356588, 0.1650471628420292, 0.15231197082925974, 0.13942600257735194, 0.1263810730682735, 0.11316659010105928, 0.09985138604065476, 0.08655152624044163, 0.0732659696751625, 0.06019480975510305, 0.047426405104715894, 0.03499300323767318, 0.02288393295032158, 0.011213152549771564, 5.684474699295357e-13], - [0, 0.23602607650047966, 0.23353201863244524, 0.22287127527079068, 0.21246325335312125, 0.2011809129277253, 0.18942923962413263, 0.17713489758989456, 0.16467031337413107, 0.1520164828798442, 0.13925313194135922, 0.12633657334845338, 0.11329936757931591, 0.10011775101588677, 0.08681959891021049, 0.07358161400247805, 0.06054016670248084, 0.04776421972223943, 0.03529412844272893, 0.023100163554659086, 0.011327280535056071, 5.684161146705253e-13], - [0, 0.23585095509190543, 0.23333941365820038, 0.22261640532292418, 0.21217184093188748, 0.20080310410776303, 0.18899070382076408, 0.17677622502162654, 0.1643385012704358, 0.15172644859092096, 0.13891658403792922, 0.12606472264053542, 0.11312444282680191, 0.10005720974049838, 0.08693695422380186, 0.07385647074499968, 0.06089578879880261, 0.04812164479744749, 0.035594195564385776, 0.023312749629553715, 0.011447278415630657, 5.684338552158143e-13], - [0, 0.23574785119478753, 0.2332181080754481, 0.2224297945116405, 0.21193050126498741, 0.2004876676573985, 0.18861151397686618, 0.17647264869026458, 0.16404897300958507, 0.15131878260660878, 0.13858167570333535, 0.12575010531747918, 0.11284529922704675, 0.09990594923351624, 0.08692332463681389, 0.07394977706894679, 0.06107853480784798, 0.048361040325630815, 0.03578920824679701, 0.023484239681010845, 0.011547389026986741, 5.684495027574777e-13], - [0, 0.23571660758989288, 0.23316791685488159, 0.22231115770921386, 0.2117084637808374, 0.20023411826400647, 0.18829108313639137, 0.17613401180881277, 0.16364472410373296, 0.15093042048306402, 0.13818243830939986, 0.12540049501694736, 0.11260174500762321, 0.09978549511686195, 0.08693334122028766, 0.07406590917923941, 0.061260871287913694, 0.048572647864375464, 0.03595723550972689, 0.023626126630915577, 0.011625229255969254, 5.684135450238638e-13], - [0, 0.23575717666915363, 0.23318876350572287, 0.22226031394723128, 0.21155126418364045, 0.20004206715668724, 0.1880289174948757, 0.17583662681829537, 0.16321278941575207, 0.15050272938026416, 0.13779745066415222, 0.12509082153144394, 0.11239340223824004, 0.09969566280176424, 0.08696634384193658, 0.0742050457438381, 0.061463077985877294, 0.04874164872489921, 0.03613324269224448, 0.023767928068423337, 0.011707716526529991, 5.684535331561828e-13], - [0, 0.23586962025490255, 0.23328067979321068, 0.22227718573901706, 0.2114586624281855, 0.1999112206459584, 0.18782461453383778, 0.1755081817998416, 0.1628325986916933, 0.1501230550428545, 0.13745635647978813, 0.12482060164359146, 0.11221994917434584, 0.09963631497328139, 0.087012173698895, 0.07435238204948287, 0.06166163376917662, 0.0489123891782128, 0.036309735404529385, 0.023918771819353448, 0.01179500129239841, 5.684422577254769e-13], - [0, 0.2360541098306612, 0.2334438058556997, 0.22236179879257628, 0.2114305173108732, 0.19984137902383725, 0.18767786150817742, 0.1752275851333706, 0.1625035602171464, 0.14979080441435133, 0.13715862344952257, 0.12458941602972101, 0.1120366691952767, 0.0994320815124183, 0.08687006429170191, 0.07428431125163112, 0.06159842437000408, 0.04894503506250195, 0.03639156241433749, 0.024002947379244632, 0.01184526141855713, 5.684542812297317e-13], - [0, 0.23631092717948818, 0.23367839072648158, 0.22251428210608987, 0.21146678594391224, 0.19983243582259996, 0.18758843427121963, 0.17500110619494075, 0.16222516455115954, 0.14950546144916632, 0.1369037895102565, 0.12436660085882066, 0.11174932646952124, 0.09922428428296826, 0.08674244746259759, 0.07414224044737243, 0.061545741670556715, 0.04896676150565324, 0.036448938404873794, 0.024059416181785316, 0.011876319206862643, 5.684169278474288e-13], - [0, 0.23664046543785838, 0.2339847932643124, 0.2227348684488106, 0.21156752359559045, 0.19988437741403683, 0.18754315225578466, 0.1748283976235143, 0.16199698258731127, 0.14926658513900293, 0.13669146107815777, 0.12405973682632515, 0.11149733016395655, 0.0990474616639858, 0.08653430348090295, 0.07402321718132039, 0.061511870109711736, 0.04899934887646392, 0.03651763679329175, 0.024123516890313085, 0.0119111780861658, 5.684293747300507e-13], - [0, 0.23704323056620072, 0.2343634834932118, 0.2230238952273567, 0.21173288389775283, 0.1999972829639774, 0.1874937520864251, 0.17470919525180761, 0.1618186639302622, 0.14907380784109137, 0.13645146208830283, 0.12379199881763721, 0.11128028859957337, 0.0988349969594537, 0.08635339713180198, 0.07392705825395757, 0.06149675801452773, 0.04904477188347312, 0.03659603483413324, 0.02419534990053763, 0.0119498929694828, 5.684157704252857e-13], - [0, 0.23751984325144823, 0.23481504436972514, 0.22338180575218314, 0.21196311941594115, 0.20017132472162308, 0.18750147766013484, 0.1746433171194895, 0.16168993557641903, 0.1489268338872309, 0.13620120090649832, 0.12356297137500856, 0.11109786612109931, 0.098608728895897, 0.08619944800955187, 0.07385361617139109, 0.06150038235432474, 0.04910525099774083, 0.036680330832723436, 0.024273423197200862, 0.01199252529431758, 5.684226200531804e-13], - [0, 0.23807104125751258, 0.23534017398674212, 0.2238091508962724, 0.2122585825918575, 0.20037931351907895, 0.18756634074975403, 0.17463066279105988, 0.16161060089359575, 0.14882022333665634, 0.135993205046816, 0.12337230081357109, 0.11088517429584485, 0.0984134036832528, 0.08607221859847414, 0.07376644319947447, 0.061414930184469016, 0.049057079885983484, 0.03667212393338549, 0.024283905286779366, 0.012001129395002773, 5.684316759639922e-13], - [0, 0.23869768222994037, 0.2359396882195598, 0.2243065911812892, 0.212619727065544, 0.20062199209121456, 0.1876884402327051, 0.17467121298466287, 0.1615805388843228, 0.14867243101491584, 0.13582715466895937, 0.12321969387699044, 0.11067335303266655, 0.0982487190941584, 0.08593076976865185, 0.07359859228301965, 0.06131037222758103, 0.04900756636061494, 0.036657579719871984, 0.02428227831501319, 0.011998940702255871, 5.684141223821952e-13], - [0, 0.23940074698714386, 0.2366145238551098, 0.2248748992803939, 0.2130471093812502, 0.20092653757330922, 0.18786796246331497, 0.17476502949989475, 0.16159970373792004, 0.14857014295102994, 0.13570279527300486, 0.12306762529760805, 0.11049593345830984, 0.0981144214233608, 0.0857315825334127, 0.07345382745143066, 0.06122478764837075, 0.04897305530903393, 0.03665420783818262, 0.0242844931284479, 0.011999510259670412, 5.684154126268629e-13], - [0, 0.240181343311292, 0.23736574219981327, 0.22551496297978707, 0.21354139109007528, 0.201291995789461, 0.18810518196346485, 0.17491225544745242, 0.16166812465655772, 0.1485132029984016, 0.13561993674557016, 0.12290750932152146, 0.11035264249642304, 0.09791441730953916, 0.08555931851788043, 0.07333192475641691, 0.06115804503906468, 0.048930579362149715, 0.03661817499050814, 0.024272267237961293, 0.011997493661510766, 5.684217662259515e-13], - [0, 0.24104071027863955, 0.2381945332177794, 0.22621378463327355, 0.21410334127040215, 0.2016727613658987, 0.1884004624537285, 0.17511311578232389, 0.1617486008831293, 0.14850152434632952, 0.1355765876019177, 0.12278516239064198, 0.11024326036533703, 0.0977340987566322, 0.08541371105877733, 0.0732326964350706, 0.06109342739023304, 0.048861549560115396, 0.0365899489349886, 0.024267442029213288, 0.011999132178743764, 5.684468004499422e-13], - [0, 0.2419802231435143, 0.23910222021015679, 0.22696653862226418, 0.21473383947522964, 0.20211665356214328, 0.18875425821534011, 0.17536791814336541, 0.16184459424607667, 0.14853508920054992, 0.13551077546480886, 0.12270039735767575, 0.1100884129607493, 0.09758411355448988, 0.08529453575704342, 0.0731559902010305, 0.06099256266679741, 0.04880756056479638, 0.036572898239342094, 0.0242700101495074, 0.01200442830850082, 5.684455346705804e-13], - [0, 0.24300139883393965, 0.24009026508110753, 0.22779393900862022, 0.21543387913652612, 0.2026243616234069, 0.1891671158045937, 0.1756732652893333, 0.16199007466298096, 0.14861394871388697, 0.1354862775986021, 0.12265308482199075, 0.10995859819331598, 0.09746423104786554, 0.0852016096297346, 0.07307534924962045, 0.060910553810913384, 0.048768529717335675, 0.03656699689997816, 0.024273231456959338, 0.012013390126526274, 5.684268701963047e-13], - [0, 0.24410590207935462, 0.24116027422792294, 0.22867905529267324, 0.21620457144081234, 0.20319667833575758, 0.18959476425038713, 0.17602564405422083, 0.16218526450757062, 0.14869697706728857, 0.1355030566719507, 0.12263695504373123, 0.10986251498820818, 0.09737426748301926, 0.08513479042221667, 0.0729729685025404, 0.060847274974094034, 0.04870704094798844, 0.036500736987363724, 0.024234398873090895, 0.011995542197951207, 5.684164616261464e-13], - [0, 0.2452955522380763, 0.24231400510018392, 0.2296360460206871, 0.21704714971747316, 0.20383450308145262, 0.19007967185132224, 0.17643329062480015, 0.16242444395061295, 0.14881263996301197, 0.13556113825188743, 0.12259578274608894, 0.1098000165023905, 0.09731408532161373, 0.08509397607610938, 0.07289304709445342, 0.06077406870758756, 0.048619256212418825, 0.036445131154891876, 0.024203051048061742, 0.011980578805719263, 5.684230971116449e-13], - [0, 0.2465723308586119, 0.24355130420417476, 0.23067164026201675, 0.21796297436026169, 0.20453884533992547, 0.190625281410348, 0.1768165792645959, 0.16267202701442313, 0.14897389715144982, 0.13566061090216405, 0.12259196825311834, 0.10977100738557513, 0.09728359272685334, 0.08502394214190197, 0.07283546267274235, 0.06067138337982665, 0.04854654848145394, 0.03640076564579427, 0.024179139902571516, 0.011968338934025114, 5.684461255486632e-13], - [0, 0.24793839004985363, 0.24487273211718755, 0.2317875418776795, 0.2189486829593081, 0.20531082865147723, 0.19123245119374144, 0.17723395727159647, 0.16297008406183977, 0.14918099547571734, 0.13580162650953304, 0.12262550575201214, 0.10977544342438247, 0.09728274321901151, 0.08496943768534487, 0.07276261766151056, 0.06058746886537851, 0.04848880599183756, 0.03636757246567876, 0.024162628862427565, 0.011957735862324594, 5.684444260949054e-13], - [0, 0.24939606172210915, 0.24628400725760008, 0.23298560725777412, 0.21997897101300626, 0.20615169508516837, 0.19190214322350135, 0.17770756992149478, 0.16331907524090644, 0.14943425289175147, 0.13596684253400323, 0.1226964463597825, 0.10981333137806369, 0.09731153550319499, 0.08494086029770642, 0.07268011508017484, 0.060522196338865804, 0.048445940271903985, 0.036345500871561874, 0.024152412389071315, 0.011950788664876198, 5.684209747405177e-13], - [0, 0.2509478677728793, 0.24778755991746962, 0.2342678531493903, 0.2210866647237708, 0.2070628102330829, 0.19263542706198675, 0.17823815911469876, 0.16371954189935434, 0.14973405966316028, 0.13613586682708967, 0.12280489830970964, 0.10988472900351104, 0.09733270451931723, 0.08493644094187411, 0.07261989504911535, 0.06047546588831658, 0.048417885803928515, 0.03633451718542342, 0.024145049577555217, 0.011947486742087675, 5.684519746664607e-13], - [0, 0.25259653131456616, 0.24938601559313156, 0.23563646529680687, 0.222273619727389, 0.20804566877870911, 0.193433484072898, 0.17882656163351385, 0.16417210865427018, 0.15008087983858337, 0.1363468961613989, 0.12295102735890848, 0.10998974527069558, 0.09736249516322454, 0.08489926538231887, 0.07258186556384778, 0.060447206144544866, 0.048404599786522264, 0.0363346046646029, 0.024145043826706618, 0.011947825061611055, 5.684209747405177e-13], - [0, 0.2543449890242756, 0.25108220681772775, 0.237093807976976, 0.2235236210958648, 0.20910190067525072, 0.19429761217907074, 0.17947371241120916, 0.1646774857920265, 0.15047525301611137, 0.13660025512251667, 0.1231350574056479, 0.11012854076739154, 0.09742198881610893, 0.0848879687356432, 0.07256596861566326, 0.06043737401000743, 0.04840606196864885, 0.03634576344211384, 0.02415239512743024, 0.011951804138447987, 5.684444260949054e-13], - [0, 0.25619640474417343, 0.2528791861834636, 0.23864243449565958, 0.22484318455269664, 0.21023327798900496, 0.19522091875103353, 0.18018064822797453, 0.16523647202916442, 0.15091779641352338, 0.136896334997232, 0.123357271327791, 0.11030132830228474, 0.09751127626145724, 0.08490253378909089, 0.07257217997789679, 0.060445954502483794, 0.04842227457857011, 0.03636236200748049, 0.024167114685269497, 0.011959430038359583, 5.684461255486632e-13], - [0, 0.2581541844403999, 0.25478024067126637, 0.2402850987488137, 0.2262477470424074, 0.21144172245783474, 0.1961784758958627, 0.1809485118582188, 0.16584995764389987, 0.15137557850323446, 0.13723559525772094, 0.12361801205145183, 0.11047340026323138, 0.09759008336686749, 0.08494298273660651, 0.07260050911440881, 0.06047296069652924, 0.04845326233009924, 0.036389312977007794, 0.024189224961332863, 0.011968393584424994, 5.684230971116449e-13], - [0, 0.26022199266833457, 0.2567889074214236, 0.24202476794414446, 0.22773977585643465, 0.21272931383066404, 0.19720583987293586, 0.1817785566959173, 0.16651892800666696, 0.151867017632412, 0.1376185653180073, 0.12391768384759422, 0.1106661538420894, 0.09768958383119752, 0.0850093772663741, 0.07265099921767165, 0.06051843377463228, 0.04849907251582399, 0.03642740829945979, 0.02418658056228652, 0.011963724562633622, 5.684164616261464e-13], - [0, 0.2624037707010984, 0.25890899109242566, 0.24386463660050584, 0.22932193157942043, 0.21409829905621797, 0.19830474441903334, 0.18267215190121547, 0.16724446753187294, 0.15240823429223843, 0.1380458465695256, 0.12425675387760306, 0.11089341947922556, 0.09781911445941213, 0.08510181878648385, 0.07272372736451874, 0.06058244317841857, 0.0485597751821843, 0.03643669160794612, 0.024188239133877618, 0.011962701715901919, 5.684268701963047e-13], - [0, 0.264703756493532, 0.2611445829739978, 0.24580814195019263, 0.2309970804242316, 0.21555110240115052, 0.19947706774132748, 0.18363078810580225, 0.16802776409065273, 0.15300009426823669, 0.13851811472250133, 0.12463575398612668, 0.11115554920252196, 0.0979788739834932, 0.08522044880578518, 0.0728188048088897, 0.060665086867288824, 0.04863172428031249, 0.03645102985274212, 0.024197269161732017, 0.011965323486151643, 5.684455346705804e-13], - [0, 0.26712650669026067, 0.2635000820566802, 0.2478589809015828, 0.23276830781014715, 0.21709033658567026, 0.20072484074091787, 0.1846560837208244, 0.1688701139056548, 0.1536435527776803, 0.1390361224542858, 0.12502838622253873, 0.11141833678266262, 0.09816910838367215, 0.08536544946309738, 0.07293637739394399, 0.06076649168846868, 0.04867107918244056, 0.03647649485458251, 0.024213684411051834, 0.011971593868338473, 5.684468004499422e-13], - [0, 0.26967692089840517, 0.2659802182569139, 0.25002112871561644, 0.23463893329790173, 0.21871881503784635, 0.20205025606571803, 0.18574979189963872, 0.16976344081001576, 0.1543396583235792, 0.13960070239932068, 0.1254461749579151, 0.11170837675365432, 0.09839011181895808, 0.085537044212174, 0.07307662610344336, 0.06088681385165276, 0.048694513511122806, 0.03650167875321126, 0.02423750994012171, 0.011981522427504356, 5.684217662259515e-13], - [0, 0.2723602684915252, 0.2685900780574003, 0.25229885959220155, 0.23661252704016544, 0.22043956537572754, 0.2034556780773758, 0.18691380821792344, 0.17068414556774775, 0.1550895569943125, 0.1402127704932356, 0.12590524572090092, 0.11203414646274727, 0.09864222774297121, 0.08573549866866875, 0.073239767742166, 0.06100698681279946, 0.04873282205778659, 0.03652754573238326, 0.024268782190119926, 0.011995124332884292, 5.684154126268629e-13], - [0, 0.27518221823299877, 0.2713351328361569, 0.2546967693768919, 0.23869292789811433, 0.22224789431618314, 0.2049436538197824, 0.18815017912686474, 0.171667468310943, 0.15589449722085655, 0.1408733297006394, 0.12640633478724803, 0.11239615887689071, 0.09892585022157623, 0.08596112161683309, 0.07342605576127433, 0.06108580852981042, 0.048786063335342134, 0.03656459522744621, 0.024307549122113414, 0.012012420414180255, 5.684141223821952e-13], - [0, 0.278148871057624, 0.2742212701991775, 0.2572198006254212, 0.24088426341108946, 0.22412600317807096, 0.20651692508693023, 0.1894611112635402, 0.17271510222428776, 0.15675583504901164, 0.14154635737611437, 0.12694121088884444, 0.11279498822091226, 0.09924142545173696, 0.08621426619811233, 0.0736357812274946, 0.06118349538326118, 0.04885431884815707, 0.03661288391867855, 0.024353870398954213, 0.012033437241711816, 5.684316759639922e-13], - [0, 0.2812667963939925, 0.27725482868618156, 0.2598732703108906, 0.2431909718274024, 0.2260817849486325, 0.2081784417106289, 0.19084898169523923, 0.1738288765085369, 0.1576750399578938, 0.14226639541789143, 0.1274889071981988, 0.11323127224443388, 0.09958945350035704, 0.0864953312748184, 0.07385266915775886, 0.06129746099588823, 0.048937693399011425, 0.036672485889539495, 0.02440781760810748, 0.012058207223617463, 5.684226200531804e-13], - [0, 0.28454307246477134, 0.2804399885991415, 0.2626629004714687, 0.2456178264259277, 0.22813455583047923, 0.20993137617779203, 0.19231634918980947, 0.17501076462451698, 0.15865370127130515, 0.1430375899070668, 0.12808053376375025, 0.11370571476447815, 0.09997049027390394, 0.08680476298764007, 0.07405428891274823, 0.06143058524514801, 0.04903631548131669, 0.03674349290236031, 0.024468758581974802, 0.012086768732047002, 5.684157704252857e-13], - [0, 0.2879853310707859, 0.2837854339759361, 0.26559485216978374, 0.24816996240815573, 0.23029573876215184, 0.211779139745545, 0.19386505463785383, 0.17626289336419634, 0.15966061750930288, 0.14386125128623914, 0.12871706821385942, 0.11421908850536511, 0.10038514973018667, 0.08714305651722049, 0.07426031833858819, 0.0615830886192726, 0.04915033776626385, 0.036826014745656686, 0.024523078284346356, 0.012119166245270215, 5.684293747300507e-13], - [0, 0.2916018074279233, 0.28730023150103506, 0.2686757631624912, 0.2508529066540177, 0.23256978083793448, 0.21371661536306852, 0.19545888983031987, 0.17758755283352906, 0.16072545912550126, 0.1447387976656954, 0.12939957439414224, 0.11477223826489076, 0.10083410635502324, 0.08751075805889742, 0.07449025112464369, 0.06175520911654071, 0.04927993768262687, 0.03692017965249743, 0.024585145234255004, 0.012153992780667955, 5.684169278474288e-13], - [0, 0.29540139573327956, 0.29099293612659993, 0.271912789756357, 0.2536726106944799, 0.2349614659073045, 0.2157306926960704, 0.1971396977171483, 0.17896031596933468, 0.16185423322497214, 0.14566246804577104, 0.13012920688026972, 0.11536608441872451, 0.1013180979163054, 0.08789363715436609, 0.07474445081754763, 0.06194721705071527, 0.049425318099452074, 0.037026134789926016, 0.024655056384403858, 0.01219270016463264, 5.684542812297317e-13], - [0, 0.29939371121770336, 0.29487279290890456, 0.27531365337608815, 0.25663548730278796, 0.23747594209226036, 0.21785008330766678, 0.19888809107897037, 0.18040264313583534, 0.16304899178464904, 0.14661512848761066, 0.13090721596086038, 0.11600162680508687, 0.10183792852217284, 0.08828496560454378, 0.07502332245962866, 0.062159416096392195, 0.049586708109359307, 0.03714404682739307, 0.024732921644386004, 0.012235393809305637, 5.684422577254769e-13], - [0, 0.30358915957663163, 0.2989498029137396, 0.278885873354966, 0.2597484511557013, 0.24011875226676704, 0.22007923330249932, 0.20072259956577926, 0.1819242741618154, 0.16431194342089836, 0.1476255963513041, 0.13173495312798872, 0.11667994900676613, 0.1023944720066085, 0.08867403332828888, 0.07532731419530593, 0.06239214448442006, 0.04976436392325934, 0.037274102586479944, 0.024818864306439484, 0.012282141900072954, 5.684535331561828e-13], - [0, 0.30799901481088887, 0.30323479704577505, 0.28261738647927337, 0.2630189640939305, 0.24289586786949266, 0.22242292707915115, 0.2026535704067101, 0.18352817235495425, 0.16564546413292194, 0.1486956975958265, 0.13261387712702802, 0.11740222308276323, 0.10298867566291393, 0.08909378563487291, 0.07565691907132077, 0.06264577634340183, 0.04995856988216468, 0.03741650977588054, 0.024913021532597772, 0.012324661012712665, 5.684135450238638e-13], - [0, 0.3126355066763153, 0.3077395189262688, 0.2865385757394276, 0.2664550855882907, 0.24581372646423455, 0.22488631555404473, 0.20468500904769363, 0.1852175238633433, 0.1670521091369892, 0.14982739803031106, 0.1335455606107416, 0.11816971476946482, 0.1036215643711101, 0.08954493675389578, 0.07600982103781453, 0.06292072320263735, 0.05016963959235456, 0.03757149781790757, 0.025015544898110347, 0.012366102185978854, 5.684495027574777e-13], - [0, 0.3175119191399746, 0.31247671812934646, 0.2906580782627088, 0.2700535368461488, 0.2488792735306334, 0.22747494746681687, 0.20682122481161969, 0.18699575470748195, 0.16853462589836005, 0.15102281279837365, 0.13453169746810542, 0.11898378921898715, 0.1042591644880986, 0.09002824323260938, 0.07638921333750666, 0.06321743566786606, 0.05039791719184446, 0.03773931877276487, 0.0251075560856862, 0.012411616442591304, 5.684338552158143e-13], - [0, 0.32264270148289154, 0.31746025530196703, 0.2949751915264187, 0.27381547882669116, 0.25210000903655333, 0.23017299968330482, 0.20906685595321076, 0.18886654958862448, 0.17006177170287637, 0.15228421681911183, 0.13557411088129362, 0.11984591730140425, 0.10492227375436883, 0.0905445255949644, 0.07679592213207803, 0.06353640528288904, 0.050643778764651926, 0.03792024837025574, 0.025204560232055095, 0.012461276821227336, 5.684161146705253e-13], - [0, 0.32804359397232447, 0.3227052209615521, 0.2995150922674838, 0.2777480223409156, 0.25548403943446374, 0.2329971163760543, 0.21142689741793672, 0.19083387268210555, 0.17166812548964563, 0.15361405628993882, 0.1366747622012098, 0.12075768255044746, 0.10560752751246119, 0.09109467189432502, 0.077230635999399, 0.06387816658673255, 0.05090763390171558, 0.03811458714949368, 0.02531005643504617, 0.012515163745092555, 5.684474699295357e-13], - [0, 0.3337317703767438, 0.32822807008471966, 0.30429106159829195, 0.2818810197891252, 0.2590401358213511, 0.2359641649701415, 0.2139067316568342, 0.19290199064926117, 0.1733584251576302, 0.15501496136153028, 0.13783576071489279, 0.12172078880155353, 0.1063343944036887, 0.09167964163736991, 0.0776941005051413, 0.06424329939420663, 0.051189927432915186, 0.038302168227915, 0.02542421649422974, 0.012573365348202937, 5.684051529323283e-13], - [0, 0.3397259999871953, 0.33404677497685503, 0.3093175589697239, 0.2862273809893169, 0.26277779911311, 0.23908152056776555, 0.2165121628729594, 0.19507549813738487, 0.1751362210006847, 0.15648976011675605, 0.1390593744065428, 0.1227094586232626, 0.10710418735584439, 0.09230047010134973, 0.07818712147695818, 0.0646324313049717, 0.05149114133530476, 0.03849546814024067, 0.025547228241293858, 0.012635977836907794, 5.684316949376137e-13], - [0, 0.346046832347611, 0.3401770307021938, 0.3146103511062394, 0.2907998431714988, 0.26670733323953766, 0.24235715924533008, 0.21924945514854263, 0.19735934608434047, 0.17700533353774978, 0.15804149400821665, 0.14034804182301747, 0.12374176905041194, 0.10791831988058237, 0.09295827308449144, 0.07871056861972647, 0.06504624047295238, 0.0518117968431399, 0.038702577984395234, 0.025679296321072822, 0.012703105892342022, 5.684380293813006e-13], - [0, 0.35271680845653464, 0.346643558247024, 0.3201866584481648, 0.2956122747298195, 0.27083992751670394, 0.2457997164145809, 0.2221253749644346, 0.19973658173455527, 0.17896987608651208, 0.15967343491638533, 0.14170438516259762, 0.1247992658124985, 0.10877831288610189, 0.0936542521350246, 0.07926537948719677, 0.0654854586537113, 0.05214925985853832, 0.0389238491464993, 0.02582064305443053, 0.012774863117215325, 5.684593550939067e-13], - [0, 0.3597607029820437, 0.3534704550196466, 0.3260653219371077, 0.30067979914861054, 0.2751877495592224, 0.24941855230053983, 0.22514723870244768, 0.20222214739533206, 0.18103427980236117, 0.16138910402389678, 0.14312840090610732, 0.12591367822949448, 0.10968580218388961, 0.09438970030487313, 0.07985256385438778, 0.06595087456048518, 0.05247829982408799, 0.03915966197155281, 0.025971509392093094, 0.01285137252182266, 5.684090697992556e-13], - [0, 0.36720580291671495, 0.36068373069838344, 0.33226699349768307, 0.30601893576942985, 0.279733276602201, 0.2532238255605535, 0.22832296581043493, 0.20483353493375475, 0.18320332149130542, 0.1631922927282404, 0.14459221226104557, 0.12708723337311767, 0.11064254675090973, 0.09516290848978319, 0.08047320853108902, 0.0664433375538921, 0.05282771237318693, 0.039410427437474145, 0.026132155962841387, 0.012932767069173696, 5.684254634241334e-13], - [0, 0.3750822292221307, 0.36831172719303157, 0.338814354233819, 0.3116477601389535, 0.284491163496341, 0.2572265762432837, 0.23166113843331027, 0.20757730615685036, 0.18548215454814007, 0.16508708584012796, 0.14613124750155745, 0.12832232609810038, 0.11165043783933029, 0.09597775927375109, 0.0811284826585279, 0.06696376170623372, 0.05319812232926343, 0.03967658900535296, 0.026302864233684876, 0.013019190266163487, 5.68439677355079e-13], - [0, 0.3834233093942883, 0.3763847584281164, 0.3457323651520025, 0.3175860871664327, 0.28950341281415615, 0.2614388194837148, 0.23517106842689386, 0.21046056042678174, 0.18787634343595983, 0.1670672514291027, 0.14772516384084608, 0.12962153229011622, 0.11271150902246051, 0.09683643728806153, 0.0818196435409389, 0.06751049384376995, 0.0535902027030489, 0.039958624652740506, 0.026483937783154915, 0.013110796822388653, 5.684523297314515e-13], - [0, 0.39226601059454036, 0.38493951064595044, 0.35304855619358494, 0.32385568096174233, 0.29478684949765505, 0.26586431083387674, 0.23883520059143867, 0.21349098730752308, 0.19039190217313295, 0.16912232982633688, 0.14939159209859587, 0.13098762352626658, 0.113827947286609, 0.09774066008560574, 0.08254804307057387, 0.06805646898271801, 0.05400467789399966, 0.04025704910930027, 0.026675703702494644, 0.013207753369783899, 5.684214409580984e-13], - [0, 0.4016514451501505, 0.3940149967951356, 0.3607810308534454, 0.33048049599187823, 0.3003599097667118, 0.27050276066574946, 0.2426827844840316, 0.21667692567746127, 0.1930211351918842, 0.1712814202943491, 0.1511426107055057, 0.13242358329875967, 0.11500210528708962, 0.0986922746272967, 0.0833151348109596, 0.06863242356303083, 0.054442327212882446, 0.04057241631926443, 0.026878514141799335, 0.013310239255019913, 5.684429163685655e-13], - [0, 0.4116254629144569, 0.4036542236218561, 0.3689680334542795, 0.3374845437571134, 0.3062428344287578, 0.2753913119079239, 0.24671645297871667, 0.22001011810061755, 0.19576528368077092, 0.1735499000631076, 0.15298231607800955, 0.1339326250035808, 0.11623651491220224, 0.09969326751956921, 0.0841224818145745, 0.06923948086296133, 0.05490398875679144, 0.04090532215286653, 0.027092748004520096, 0.013418447414892296, 5.684090887736317e-13], - [0, 0.42223934840535554, 0.4139040479441292, 0.377652209858752, 0.34487020509232047, 0.3124578908898456, 0.280546837940392, 0.2509523581773008, 0.2235026310626155, 0.19864996701414836, 0.1759092682880236, 0.154915129131723, 0.13551821191356334, 0.11753390230580855, 0.1007457763273579, 0.08497057121473955, 0.06987884863008267, 0.055390563685477734, 0.04125640738948284, 0.02731881282159049, 0.013532585336974946, 5.684390674969185e-13], - [0, 0.42098735722390734, 0.4209870972852058, 0.38687571456193837, 0.3526921553401507, 0.319029628937528, 0.2859659631747035, 0.2554154190079316, 0.22717813209510487, 0.20168328931902124, 0.17838160575024625, 0.15694582527203235, 0.1371840793854064, 0.11889720453666526, 0.10185210210579497, 0.08582833670175205, 0.07054665703606135, 0.05588994032734727, 0.041626361004318935, 0.027556831431638767, 0.013652876118612763, 5.684141982790215e-13], - [0, 0.41150200454978864, 0.41149783842570314, 0.39667820958072786, 0.36098966973838764, 0.3259851764522637, 0.29168513828267373, 0.2601207707272124, 0.23104809782637425, 0.20487405815458706, 0.18098034360093618, 0.1590795678987434, 0.13893425959338407, 0.12032676368619392, 0.10301472329388171, 0.08673028512816938, 0.0712302838689994, 0.05640648354528825, 0.04201592379615712, 0.027806171201518754, 0.013774897523149112, 5.684526197462031e-13], - [0, 0.4025429373467655, 0.40254142677895255, 0.4025310779809389, 0.3698023682090933, 0.3333545401756053, 0.297730285434454, 0.2650850064105723, 0.23512506037093298, 0.20822272324608068, 0.1837127078476894, 0.16132194590056742, 0.14077310912170998, 0.12182653443687728, 0.1042363111372423, 0.08767118301136612, 0.07194942056230497, 0.05695017316895686, 0.04242589238856441, 0.028068692388387696, 0.013901965277796087, 5.684373219437229e-13], - [0, 0.39408017710513865, 0.39408016667493967, 0.3940671333458574, 0.3791632709089757, 0.34113435343499565, 0.30412590602850315, 0.2703263530190724, 0.23942272805641118, 0.21172515909938744, 0.1865865482579921, 0.16367901571300092, 0.14270533980777603, 0.12340222774582808, 0.10550638050631275, 0.08864035924375459, 0.07270559877667913, 0.05752213814105315, 0.04285712364776371, 0.02834493423904412, 0.014035714376063955, 5.684300279670163e-13], - [0, 0.3860758392369233, 0.38607582876181795, 0.3860653345003582, 0.38606057753725026, 0.34938455542032887, 0.31089911245373975, 0.2758648737687961, 0.243956123254634, 0.2154141769256056, 0.18961040422141184, 0.16615734857850833, 0.1447360532779385, 0.12505780787023463, 0.10681547747140027, 0.08965881908693514, 0.07350046722592651, 0.05812359307526533, 0.04329367808679754, 0.028635476819545078, 0.014176422266132258, 5.68429908703892e-13], - [0, 0.3785031882597422, 0.37850317774825704, 0.3784938720247054, 0.3784877406286569, 0.3581551070863042, 0.3180731422372673, 0.2817227015088973, 0.2487158681856272, 0.2193020124514079, 0.19279357926450283, 0.16876408377413554, 0.1468707797010892, 0.12679756402860679, 0.10816303445608348, 0.09072891289633833, 0.07433580159784005, 0.05875584532589065, 0.043747529606434944, 0.02894094434282134, 0.014324387448141317, 5.684362811144216e-13], - [0, 0.3713328244401739, 0.3713328138991303, 0.3713238436245096, 0.3713165191089734, 0.3674766995845858, 0.3256719278402901, 0.28791611109738835, 0.2537372985000275, 0.22340206532021487, 0.19614622556446215, 0.17150698870409542, 0.1491155213665252, 0.12862065382250884, 0.10957827909123818, 0.09185317611070339, 0.07521351556533777, 0.05942030282312774, 0.044224611429513096, 0.029262008856676423, 0.014467188827325245, 5.684466703485532e-13], - [0, 0.36453805785299687, 0.3645380472886473, 0.36452804647865394, 0.36452076010107265, 0.3645086678750434, 0.3337334915698875, 0.29445850749937136, 0.25904620025869457, 0.22772903764860095, 0.1996794400588443, 0.17439452689757223, 0.15147680179211426, 0.13048452705447752, 0.11106532999690452, 0.0930343461601524, 0.07613567303337754, 0.06011848277353239, 0.044725987641527354, 0.02959939433310418, 0.014616536184348607, 5.684100239385295e-13], - [0, 0.35809460747373123, 0.35809459689119194, 0.3580836411367727, 0.35807639271752123, 0.3580672931832396, 0.34230958306011416, 0.301379735732894, 0.26466434607357314, 0.23229909298720486, 0.20340537404649695, 0.17743593514694567, 0.15396172119835683, 0.13243240001997947, 0.11262807630316729, 0.09427538133365942, 0.07710450177057737, 0.06085202132339873, 0.0452528049686407, 0.029953881210644795, 0.014773546288893158, 5.684341886080801e-13]] +LUT = [[0.0, 0.358095655121, 0.358085118456, 0.358078664952, 0.358071042569, 0.358054780033, 0.31679014236, 0.280391982172, 0.247438940698, 0.217876063763, 0.191373978171, 0.167447565685, 0.145694019201, 0.125715227636, 0.107259751625, 0.090036893557, 0.073784602127, 0.058327812965, 0.0434425292, 0.028703326684, 0.01417673001, 0.0], + [0.0, 0.351980195511, 0.351969965509, 0.351963251555, 0.351956279004, 0.35194687047, 0.324794677848, 0.286923731019, 0.252758299856, 0.222225384554, 0.194938855571, 0.170373336396, 0.148058432321, 0.127643307569, 0.108823737413, 0.091261560649, 0.074745343623, 0.059058499867, 0.043969981401, 0.029043524003, 0.014334624476, 0.0], + [0.0, 0.346173660125, 0.346163841509, 0.346156885901, 0.346150185956, 0.346143348513, 0.333304479103, 0.293858700113, 0.258391829182, 0.226822387391, 0.198700740653, 0.173445565799, 0.150547468451, 0.1296715646, 0.110456458974, 0.092548582518, 0.075754814698, 0.059826180828, 0.044523742089, 0.029391191912, 0.014500542434, 0.0], + [0.0, 0.340657677316, 0.340648246229, 0.34064106581, 0.340634622705, 0.340629938427, 0.340622201922, 0.301230122425, 0.264364569456, 0.231685661274, 0.202673625899, 0.176660176784, 0.153169077309, 0.131806118274, 0.112152197599, 0.093901436692, 0.076815644958, 0.06063279484, 0.045105543706, 0.029756458164, 0.0146748687, 0.0], + [0.0, 0.335415290718, 0.335406225217, 0.335398835092, 0.335392634319, 0.335388563438, 0.33538249678, 0.309043582802, 0.270704374006, 0.236833958947, 0.206845283076, 0.180052077352, 0.155931949009, 0.134047994567, 0.113936061459, 0.095323896356, 0.07793068337, 0.061480440148, 0.045706215968, 0.030140214074, 0.014858018457, 0.0], + [0.0, 0.330430936074, 0.330422215944, 0.33041462966, 0.330408657849, 0.330404662812, 0.330400648157, 0.317369556557, 0.277409746652, 0.242258442541, 0.211249204683, 0.183633809295, 0.158845600026, 0.136380531555, 0.115813437956, 0.096820060933, 0.079103020349, 0.062371389912, 0.046320791245, 0.030543422944, 0.015050440044, 0.0], + [0.0, 0.325690305551, 0.32568191214, 0.325674115996, 0.325668386661, 0.32566439122, 0.325661718664, 0.325655921133, 0.284526804454, 0.248014555987, 0.215911932248, 0.187419182967, 0.161906240808, 0.138838722469, 0.117790200904, 0.098394390607, 0.080336012616, 0.063308109791, 0.046966620674, 0.030967126952, 0.015252618063, 0.0], + [0.0, 0.321180227808, 0.321172143883, 0.32116413877, 0.321158650513, 0.321154655074, 0.321152257815, 0.321149227725, 0.292109982198, 0.25410413647, 0.22084504761, 0.19141055356, 0.165118284821, 0.141431027307, 0.119872764926, 0.100051745385, 0.081633311257, 0.064285978705, 0.047645432221, 0.031412454869, 0.01546507686, 0.0], + [0.0, 0.316888561734, 0.316880771349, 0.316872568959, 0.316867309302, 0.316863314139, 0.316860917047, 0.316859109203, 0.300199192935, 0.260581072937, 0.22605534876, 0.195615038344, 0.168512724914, 0.144166727717, 0.122068147389, 0.101797429421, 0.082998893449, 0.065288109815, 0.04835910001, 0.031880630728, 0.015688384427, 0.0], + [0.0, 0.312804102069, 0.31279659045, 0.312788201293, 0.312783158697, 0.312779163968, 0.312776767138, 0.312775169253, 0.308822552342, 0.267480439123, 0.231589688001, 0.200070693447, 0.172103182218, 0.147056027192, 0.124384039141, 0.103637241425, 0.084437098444, 0.066342507994, 0.049109659331, 0.032372983573, 0.015923156775, 0.0], + [0.0, 0.308916495412, 0.308909248855, 0.308900682373, 0.308895846152, 0.308891851914, 0.308889455378, 0.30888785769, 0.308886471115, 0.274840037749, 0.237475966933, 0.204797896092, 0.175904721167, 0.150110166362, 0.126828885503, 0.105577532169, 0.085912481143, 0.067452406055, 0.04989932357, 0.032890958456, 0.016170062865, 0.0], + [0.0, 0.305216165308, 0.305209171088, 0.305200435752, 0.305195796, 0.305191802216, 0.305189405954, 0.305187808449, 0.305186576212, 0.28267854265, 0.243745454304, 0.209819349694, 0.179934043468, 0.153341556123, 0.129411979327, 0.107610889637, 0.087467396197, 0.068621331135, 0.050730503355, 0.033436128866, 0.01642983017, 0.0], + [0.0, 0.301694245305, 0.301687491591, 0.301678594993, 0.301674142518, 0.301670149071, 0.301667753012, 0.301666155642, 0.301664886635, 0.291055821915, 0.25041829431, 0.215160422744, 0.184209714307, 0.156763931897, 0.132140561669, 0.109728991314, 0.089107276231, 0.069853137946, 0.051605828253, 0.034010210819, 0.016703250956, 0.0], + [0.0, 0.298342519019, 0.298335994802, 0.29832694373, 0.298322669993, 0.298318676692, 0.29831628072, 0.298314673645, 0.298313379214, 0.298306695701, 0.257531377695, 0.22082971478, 0.188750093531, 0.160381307003, 0.134986754898, 0.111966939189, 0.09083802046, 0.071152046693, 0.052528171444, 0.034604091649, 0.016991189413, 0.0], + [0.0, 0.295153366375, 0.295147061399, 0.295137861908, 0.295133758975, 0.29512976556, 0.295127369521, 0.295125728676, 0.295124434209, 0.2951159745, 0.265125284095, 0.226857951932, 0.193541229264, 0.164188998576, 0.138001218097, 0.114333626788, 0.092666115567, 0.07252268641, 0.05350067782, 0.03522020795, 0.017294362395, 0.0], + [0.0, 0.292119715309, 0.292113620016, 0.292104277488, 0.292100337975, 0.292096344131, 0.292093947833, 0.29209227448, 0.292090918987, 0.292080532295, 0.273259958275, 0.233297603788, 0.198644016155, 0.168234379634, 0.141197384357, 0.116838884801, 0.09459870939, 0.07397014467, 0.054526796116, 0.035869785872, 0.017613792133, 0.0], + [0.0, 0.289234998311, 0.289229103781, 0.289219622984, 0.289215833201, 0.289211845372, 0.289209448593, 0.289207743859, 0.289205775215, 0.289193934804, 0.281978498454, 0.240162822762, 0.204087013472, 0.172538025475, 0.144590197731, 0.119493606275, 0.096643696064, 0.075500024761, 0.055610315734, 0.036555119042, 0.017950814644, 0.0], + [0.0, 0.286493113256, 0.286487411162, 0.286477796297, 0.286474130758, 0.286470167607, 0.286467770093, 0.286466034982, 0.286461644313, 0.286450178605, 0.286425981197, 0.247516309144, 0.20988799001, 0.177123006903, 0.148196329885, 0.12230989247, 0.098809814691, 0.077118511682, 0.05675540909, 0.037278727104, 0.018306671099, 0.0], + [0.0, 0.283888388061, 0.283882870622, 0.283873125367, 0.28386957905, 0.283865639166, 0.283863240637, 0.28386147604, 0.283854578058, 0.283843638059, 0.283816333027, 0.255410367573, 0.216070390614, 0.181997437087, 0.152034435192, 0.125301223514, 0.101106764171, 0.078832448586, 0.057966073145, 0.038043383727, 0.018682727923, 0.0], + [0.0, 0.28141554874, 0.281410208685, 0.281400336235, 0.281396904446, 0.281392986452, 0.281390586603, 0.281388569599, 0.281379475163, 0.28136870746, 0.281338457308, 0.263882214874, 0.222697953802, 0.187180855953, 0.156084691234, 0.128461454778, 0.103545337315, 0.080649425641, 0.059244364658, 0.038852148924, 0.019080492743, 0.0], + [0.0, 0.279069690516, 0.279064438437, 0.279054524146, 0.279051138052, 0.279047305047, 0.279044898618, 0.279041929106, 0.279031423993, 0.279018182724, 0.278987536536, 0.273000414453, 0.229817179068, 0.192728613501, 0.160402182869, 0.131798569588, 0.106106416084, 0.082577883732, 0.060599181652, 0.039708406443, 0.019501632855, 0.0], + [0.0, 0.276846251649, 0.276841049929, 0.276831127381, 0.276827757998, 0.276824033544, 0.276821599211, 0.276817202699, 0.276805856433, 0.276789128193, 0.27675912957, 0.276707877666, 0.23744913752, 0.1986776374, 0.165017019303, 0.135356019093, 0.108812047332, 0.084627235971, 0.062036752769, 0.040615907204, 0.019942758798, 0.0], + [0.0, 0.274740989714, 0.274735835869, 0.274725903536, 0.274722549744, 0.274718929832, 0.274716468014, 0.274710545573, 0.274698524115, 0.27467836587, 0.274648717792, 0.274593160641, 0.24567507231, 0.205069847367, 0.169958567869, 0.139154401791, 0.111694185493, 0.086780793469, 0.06356401982, 0.041578819934, 0.020389742872, 0.0], + [0.0, 0.27274996008, 0.272744851721, 0.272734907996, 0.272731568698, 0.272728049565, 0.272725560602, 0.272717765644, 0.272705476854, 0.272681726514, 0.272652195591, 0.272592599225, 0.254543434956, 0.21190530691, 0.175260242802, 0.143217006075, 0.114769068887, 0.089048385389, 0.065188742014, 0.042601790452, 0.020863724159, 0.0], + [0.0, 0.270869496374, 0.2708644312, 0.270854474402, 0.270851148521, 0.27084772664, 0.27084521079, 0.270835161581, 0.270823008645, 0.270795766605, 0.270761672211, 0.270702651795, 0.264139898329, 0.219281261451, 0.180929634786, 0.147570262225, 0.11805502358, 0.091466270875, 0.066919619055, 0.043662693535, 0.02136692977, 0.0], + [0.0, 0.269096192728, 0.269091168521, 0.2690811969, 0.269077873069, 0.269074555437, 0.269071834411, 0.269059553398, 0.269047693865, 0.269017048997, 0.268978031852, 0.268919812744, 0.268828125573, 0.227241419408, 0.187013064451, 0.152205792613, 0.121568365043, 0.094048571989, 0.068754713886, 0.044774042274, 0.021901845006, 0.0], + [0.0, 0.267426887658, 0.267421902279, 0.267411914014, 0.267408584636, 0.267405374706, 0.26740170216, 0.267387993982, 0.267376062931, 0.267342449548, 0.267298251169, 0.267241132843, 0.267142736147, 0.235853680048, 0.193580834268, 0.15717140642, 0.125277773555, 0.09675960639, 0.070662906038, 0.045957807868, 0.022471251597, 0.0], + [0.0, 0.265858649409, 0.265853700789, 0.265843693995, 0.265840358442, 0.265837252902, 0.265832287145, 0.265817546459, 0.265802079748, 0.265768843042, 0.265719759366, 0.26566257202, 0.265558392134, 0.245203326964, 0.200685106557, 0.162523122439, 0.129261290086, 0.099652874451, 0.072681959494, 0.047220642144, 0.023078272958, 0.0], + [0.0, 0.264388762637, 0.264383848775, 0.264373821502, 0.264370479125, 0.264367474882, 0.264361157636, 0.26434549064, 0.264326214014, 0.26429332352, 0.26423981871, 0.264175074987, 0.26407229186, 0.25537424408, 0.208345173237, 0.168305214108, 0.133548474149, 0.10275676801, 0.074815065183, 0.048570050861, 0.023725607177, 0.0], + [0.0, 0.263014716313, 0.263009835269, 0.262999785505, 0.262996435631, 0.262993529796, 0.262985339101, 0.262969310902, 0.262946300979, 0.262913741283, 0.26285569745, 0.262783743555, 0.262682174626, 0.262530364377, 0.216681831615, 0.174569039264, 0.138173331076, 0.106093587962, 0.077101359403, 0.050014534634, 0.02441667102, 0.0], + [0.0, 0.261734192739, 0.261729342632, 0.2617192683, 0.261715910239, 0.261713100116, 0.261703017843, 0.261686685176, 0.261660011011, 0.26162776731, 0.261565030059, 0.261486224734, 0.261385409394, 0.261224063203, 0.22575128748, 0.181322886566, 0.143175178607, 0.109688928224, 0.079556791102, 0.051563758745, 0.025157093342, 0.0], + [0.0, 0.26054505759, 0.26054023659, 0.260530135555, 0.260526768594, 0.260524051669, 0.26051187189, 0.260495474963, 0.260465198411, 0.26042977685, 0.260365897993, 0.260280074528, 0.260179800429, 0.260009065482, 0.235669054771, 0.188664897707, 0.148599724453, 0.113572305358, 0.082199625059, 0.053228758986, 0.025951978249, 0.0], + [0.0, 0.259445350886, 0.259440557217, 0.259430427278, 0.259427050684, 0.259424424618, 0.259410147062, 0.259393716292, 0.259359892329, 0.259319942367, 0.259256322072, 0.259163054556, 0.25905331257, 0.25888332164, 0.246529939756, 0.196679594035, 0.154471658543, 0.117777938448, 0.085050876923, 0.05502219279, 0.026807165975, 0.0], + [0.0, 0.258433278844, 0.258428510771, 0.258418349668, 0.258414962687, 0.258412425306, 0.258396075156, 0.258379129842, 0.25834199459, 0.258297873131, 0.258234490092, 0.258133875308, 0.258014433386, 0.25784509709, 0.257601834671, 0.205409286127, 0.160826352155, 0.122345722787, 0.088134850199, 0.056958647696, 0.027729370198, 0.0], + [0.0, 0.257507206511, 0.257502462346, 0.257492267753, 0.25748886961, 0.257486418897, 0.257468022551, 0.257448780324, 0.257410155531, 0.257360702466, 0.257298668635, 0.25719048065, 0.257060781999, 0.256892598968, 0.256635746121, 0.21501845148, 0.167779619271, 0.127322456012, 0.091479804163, 0.059055023045, 0.028726347281, 0.0], + [0.0, 0.256665651157, 0.256660929248, 0.256650698776, 0.256647288674, 0.256644920898, 0.256624503014, 0.256601513334, 0.256562885257, 0.256508033377, 0.256444995315, 0.256331666752, 0.256191093415, 0.256024812744, 0.255753811592, 0.22559826456, 0.175341330748, 0.132741163769, 0.09511879154, 0.061331006004, 0.029807106476, 0.0], + [0.0, 0.255907276344, 0.255902575079, 0.255892306271, 0.255888883393, 0.255886580549, 0.255864176722, 0.255837479729, 0.255798837468, 0.255738638861, 0.255667602055, 0.255556097667, 0.255404792752, 0.255225937594, 0.254954842282, 0.237298083608, 0.183667262613, 0.138594781747, 0.09909071849, 0.063809670305, 0.030982173121, 0.0], + [0.0, 0.255230886658, 0.255226204454, 0.255215894788, 0.255212458292, 0.255209282635, 0.255185844962, 0.255155474547, 0.255116807172, 0.255051304891, 0.254972340082, 0.254861311743, 0.254700650835, 0.254506281511, 0.254237195387, 0.250299689097, 0.192884994875, 0.14494612338, 0.103441698939, 0.066483729621, 0.032263921115, 0.0], + [0.0, 0.25463542303, 0.254630758338, 0.254620405221, 0.254616954242, 0.254612052738, 0.254588445451, 0.254554429435, 0.25451572596, 0.254444608688, 0.254358119061, 0.254247529712, 0.254077191136, 0.253867785571, 0.253600563735, 0.253200130305, 0.203108775499, 0.151956055394, 0.108144321175, 0.069357742349, 0.033609628242, 0.0], + [0.0, 0.254119958641, 0.254115309937, 0.254104910705, 0.254101444356, 0.254094760415, 0.254071048222, 0.254033408502, 0.253991625453, 0.253917918093, 0.253823981646, 0.253713794922, 0.253532810378, 0.253309452705, 0.253038986479, 0.252623315004, 0.214455628515, 0.159729606244, 0.113280925552, 0.072425883124, 0.035054664334, 0.0], + [0.0, 0.253683695368, 0.253679061155, 0.253668613067, 0.253664928171, 0.253654858137, 0.253631746094, 0.253591432606, 0.253544502571, 0.253470453518, 0.253369099796, 0.253252323461, 0.253067679446, 0.252829897413, 0.252538516202, 0.252124878115, 0.227158071544, 0.168395434239, 0.118928825831, 0.075777552827, 0.036625571171, 0.0], + [0.0, 0.253325960742, 0.253321339544, 0.253310839782, 0.25330654025, 0.253293472732, 0.253270246853, 0.253226771511, 0.253175104761, 0.253101524801, 0.25299277162, 0.252865562603, 0.252681080202, 0.252427595578, 0.252116667302, 0.251704377618, 0.241475110855, 0.178112866172, 0.125130279839, 0.079479871977, 0.038325119131, 0.0], + [0.0, 0.253046205403, 0.253041595765, 0.253030670355, 0.25302612906, 0.253010075276, 0.252985143853, 0.252940095033, 0.25288316509, 0.252809304756, 0.252694251224, 0.252556795186, 0.252372418159, 0.252103243083, 0.251772639111, 0.251360464165, 0.25075146501, 0.188965062169, 0.132056491782, 0.083589318369, 0.040202913851, 0.0], + [0.0, 0.252844001039, 0.252839401525, 0.252827831315, 0.252823265272, 0.252804231827, 0.252775618237, 0.252730964156, 0.252668774631, 0.252594516703, 0.252471492141, 0.252325072545, 0.252141220238, 0.251856252409, 0.251504002862, 0.251070321445, 0.250457865412, 0.20113578666, 0.139839484146, 0.088175209608, 0.042287744392, 0.0], + [0.0, 0.252719038775, 0.252714447961, 0.252702231112, 0.252697471382, 0.25267562792, 0.252643333319, 0.252599059368, 0.252531605792, 0.252449933563, 0.252325918676, 0.252168054737, 0.251984809479, 0.2516852055, 0.251311734497, 0.250851739804, 0.250239895997, 0.215052220917, 0.148645456522, 0.093323570276, 0.044614963837, 0.0], + [0.0, 0.252671128023, 0.252666544502, 0.252653678184, 0.252645678506, 0.252624067402, 0.25258808732, 0.252544179469, 0.252471095644, 0.252381160501, 0.252257308728, 0.25208797291, 0.251887204741, 0.251590975802, 0.251195209389, 0.25070829631, 0.250097183845, 0.230985620511, 0.158554277639, 0.099129226818, 0.047228472382, 0.0], + [0.0, 0.252700195771, 0.252695618145, 0.252682098539, 0.252670857076, 0.252649133391, 0.252609796046, 0.252566240825, 0.252487150896, 0.252389284183, 0.252265557725, 0.252084704998, 0.251866366817, 0.251570843149, 0.251155261158, 0.250638991108, 0.249991679058, 0.249106552166, 0.16985306238, 0.105733972384, 0.050183465634, 0.0], + [0.0, 0.252806740118, 0.252801571824, 0.252787535483, 0.252773045457, 0.252751180656, 0.252708492575, 0.252662516889, 0.252580151444, 0.252474316986, 0.252350678236, 0.252158246018, 0.251922263955, 0.251626810031, 0.251190827524, 0.250645412763, 0.249962372103, 0.249056188784, 0.182785093882, 0.113116784005, 0.053550316252, 0.0], + [0.0, 0.252990616156, 0.252984281449, 0.252970149781, 0.252952399454, 0.252930386567, 0.252884327381, 0.252833158238, 0.252750239069, 0.252636388532, 0.252512800018, 0.25230840611, 0.252054981341, 0.251753390285, 0.251300674921, 0.250728210946, 0.250006197642, 0.249042828563, 0.197895939123, 0.121365125493, 0.057219014151, 0.0], + [0.0, 0.253250259961, 0.253244451876, 0.253230219456, 0.253209192891, 0.253187024722, 0.253137568895, 0.253081173313, 0.252997673395, 0.25287574617, 0.252741314384, 0.252534750633, 0.252264721418, 0.251940730506, 0.251487257402, 0.25088543521, 0.25012438498, 0.249102957121, 0.21554868871, 0.130954027445, 0.061412406034, 0.0], + [0.0, 0.253585462222, 0.253579793022, 0.253565411267, 0.253542069865, 0.253518152791, 0.253466555578, 0.25340541278, 0.253322362253, 0.2531927559, 0.253046633135, 0.252838587863, 0.252551804637, 0.252205231117, 0.251750859881, 0.251117619703, 0.25031896976, 0.249237832994, 0.23652301283, 0.142235170969, 0.066290834383, 0.0], + [0.0, 0.253999026114, 0.253993450169, 0.253977271385, 0.253953140411, 0.253923765137, 0.253872352882, 0.253805083971, 0.253721405905, 0.253584547858, 0.253427874924, 0.253220083211, 0.252916670659, 0.252547296886, 0.252091885747, 0.25142689236, 0.250587754137, 0.249446274946, 0.247674408431, 0.155657404369, 0.072035037161, 0.0], + [0.0, 0.254491588379, 0.254486104687, 0.254467142294, 0.254443177789, 0.254408296886, 0.254357055491, 0.254283597483, 0.254195087437, 0.254054177885, 0.253885253111, 0.253675854959, 0.253356872245, 0.252967452794, 0.252490607098, 0.251813727233, 0.250931724991, 0.249728651347, 0.247845121272, 0.171451238436, 0.0788954846, 0.0], + [0.0, 0.255063910638, 0.255058518345, 0.255036743373, 0.255012939607, 0.254972496895, 0.254921412535, 0.254841692621, 0.254743692042, 0.254603249128, 0.254421924709, 0.254203313307, 0.253873718741, 0.25346010757, 0.252956661429, 0.252278719233, 0.251353311345, 0.250085769782, 0.248088784797, 0.190686359375, 0.086775029799, 0.0], + [0.0, 0.255716882281, 0.255711580681, 0.255686959625, 0.255663311129, 0.255617241463, 0.255565721239, 0.255480235866, 0.255372626992, 0.255232613577, 0.255038721815, 0.254800296469, 0.254470350861, 0.254031936034, 0.253496461685, 0.252818512009, 0.251852892912, 0.250517471457, 0.248404490579, 0.21447274422, 0.096029797106, 0.0], + [0.0, 0.256451523876, 0.256446312413, 0.256418807101, 0.256395308667, 0.256343537682, 0.256285283971, 0.25620022418, 0.256082873563, 0.255943253233, 0.255736605961, 0.25547809449, 0.255147697436, 0.254684105192, 0.254114774199, 0.253401322975, 0.252427550071, 0.251027263689, 0.248795205729, 0.244377568365, 0.107471374835, 0.0], + [0.0, 0.257268991106, 0.257263869377, 0.257233436824, 0.25720948206, 0.257152527326, 0.257087442538, 0.257002788857, 0.256875546859, 0.25673628389, 0.25651611091, 0.256237768859, 0.255906819285, 0.2554176345, 0.254811444498, 0.254053505113, 0.25307545144, 0.251615872405, 0.249172438047, 0.244347960939, 0.12201346041, 0.0], + [0.0, 0.258170579272, 0.258165547028, 0.258132139268, 0.258102983934, 0.258045491288, 0.257973466238, 0.257889199914, 0.257751900149, 0.257604054232, 0.257377651999, 0.257080517313, 0.256737871546, 0.256233678077, 0.255590014447, 0.254786863781, 0.253738407116, 0.252209235962, 0.249509060947, 0.244383313481, 0.140026771366, 0.0], + [0.0, 0.259159653631, 0.259151587676, 0.259116349437, 0.25908190916, 0.259023854624, 0.258944768091, 0.258860871086, 0.258713329783, 0.258552530043, 0.258323952929, 0.258007678517, 0.25763939307, 0.257133529195, 0.256451713875, 0.255602552991, 0.254482566721, 0.252822030411, 0.249918746245, 0.244483687321, 0.163920578216, 0.0], + [0.0, 0.260237806025, 0.260223248116, 0.260187652578, 0.260147833581, 0.260089192211, 0.260002910458, 0.259919365443, 0.259761380728, 0.259587381123, 0.259356532123, 0.259020737352, 0.258626325885, 0.258117652719, 0.257397914377, 0.256501865661, 0.255309102459, 0.253515221212, 0.250396164046, 0.244652828142, 0.196326405778, 0.0], + [0.0, 0.261392060825, 0.261380988618, 0.261344382678, 0.261299432871, 0.261239458237, 0.261146347938, 0.261058177302, 0.260894554609, 0.260707053832, 0.260473803535, 0.260117743302, 0.259696551628, 0.259183502098, 0.258429026412, 0.257486238696, 0.25621932592, 0.254289895792, 0.250948371912, 0.244537493047, 0.228167500059, 0.0], + [0.0, 0.262629952357, 0.262619149886, 0.262582150089, 0.262535037174, 0.262474418055, 0.262375614442, 0.262275399252, 0.26211189215, 0.261909429725, 0.261671649423, 0.261296685463, 0.260847404626, 0.260301912331, 0.259536222686, 0.258544897698, 0.257205296595, 0.255142813584, 0.251574158254, 0.244368726495, 0.226303504794, 0.0], + [0.0, 0.263960411896, 0.263949881687, 0.263910760519, 0.263863139722, 0.263795926636, 0.26369721309, 0.263584691897, 0.26342126, 0.263203493483, 0.262942181515, 0.262566707525, 0.262088693227, 0.261501357742, 0.260732710422, 0.259689946847, 0.258271810117, 0.256065527087, 0.252262889824, 0.244270330551, 0.22356128508, 0.0], + [0.0, 0.265385670701, 0.265375415836, 0.2653331569, 0.26528596725, 0.26521189417, 0.265113357981, 0.264988245199, 0.264824848513, 0.264591405676, 0.264306014794, 0.263929923949, 0.263422476802, 0.262792327829, 0.262018142474, 0.260925017408, 0.259426558043, 0.257073530035, 0.252942023065, 0.244212678673, 0.22021804128, 0.0], + [0.0, 0.266908148669, 0.266898172813, 0.266852695304, 0.266805934866, 0.266724830037, 0.266626450888, 0.266488435506, 0.266319195059, 0.266075511637, 0.265765446565, 0.265388631428, 0.264850994055, 0.264176977684, 0.263351431382, 0.262252158248, 0.260671437887, 0.258168451765, 0.253453184901, 0.244229431099, 0.21699699139, 0.0], + [0.0, 0.268530464832, 0.268520772264, 0.268471988675, 0.268425656525, 0.268337333531, 0.268239091656, 0.268087835823, 0.267902012665, 0.267658351572, 0.267322966354, 0.266933885702, 0.266376672571, 0.265657646764, 0.264779425559, 0.26365876448, 0.262008517811, 0.259301448249, 0.25404395785, 0.243633837815, 0.212345208456, 0.0], + [0.0, 0.270255448922, 0.270246044562, 0.270193860294, 0.270147956566, 0.270052213473, 0.269949537187, 0.269789227119, 0.269586366706, 0.269342671697, 0.268981266773, 0.268561679115, 0.268002139359, 0.267236868977, 0.266304551651, 0.265101841826, 0.26336160587, 0.260344571494, 0.254686532097, 0.24298639935, 0.207145391118, 0.0], + [0.0, 0.272086154101, 0.272077043557, 0.272021356474, 0.271975882416, 0.271872500825, 0.271757987675, 0.271595610794, 0.271375221029, 0.27113143651, 0.270743255494, 0.270292286087, 0.269730232468, 0.268917383787, 0.267929435663, 0.266641961364, 0.26473177247, 0.261431079751, 0.255383042461, 0.242416039367, 0.202180428515, 0.0], + [0.0, 0.274025870981, 0.274017060581, 0.273957760538, 0.273907173278, 0.273801462574, 0.273674758211, 0.273510222394, 0.273271771275, 0.273027842288, 0.272612068421, 0.272128772409, 0.271559474276, 0.270694819037, 0.2696397791, 0.268252148524, 0.266177612836, 0.262605333192, 0.256161616158, 0.241908564809, 0.194636402139, 0.0], + [0.0, 0.276082894261, 0.27606781665, 0.276006608197, 0.275949784227, 0.275842617015, 0.275703338102, 0.275536546698, 0.275277705047, 0.27501594143, 0.274579952707, 0.274056572952, 0.273443197412, 0.272561075248, 0.271444963824, 0.269964634355, 0.267721331276, 0.263870923163, 0.256752159627, 0.240233023144, 0.187690225835, 0.0], + [0.0, 0.278240006777, 0.2782273629, 0.278163545147, 0.278099348436, 0.277987427766, 0.277832843292, 0.277659693319, 0.277379574038, 0.27709156266, 0.276649564411, 0.276089660254, 0.275424420504, 0.274537450551, 0.273358310968, 0.271782444691, 0.269365590014, 0.265229953741, 0.257182190338, 0.238602232296, 0.179585329963, 0.0], + [0.0, 0.280498964989, 0.280486693556, 0.280421948282, 0.280353790189, 0.280240245439, 0.280074669418, 0.279886752415, 0.279599611477, 0.279280584738, 0.278836193195, 0.278238525499, 0.277519715054, 0.27661372461, 0.275383302895, 0.273708841054, 0.271111541878, 0.26668471109, 0.257562388326, 0.237065158431, 0.170776899687, 0.0], + [0.0, 0.282881777056, 0.282869888505, 0.282801160694, 0.282731909164, 0.282609387254, 0.282439702039, 0.282230375607, 0.281942047445, 0.281590627213, 0.281127821259, 0.28050721877, 0.279732996528, 0.278763665127, 0.277523687627, 0.275747335912, 0.272956230851, 0.268013614818, 0.258018114399, 0.234364699642, 0.162658158494, 0.0], + [0.0, 0.285393097818, 0.285381603754, 0.2853069005, 0.285238348078, 0.285102223767, 0.284932549235, 0.28470103373, 0.284411430455, 0.284026441793, 0.283523645058, 0.282900095526, 0.282068476175, 0.281033563757, 0.279750516744, 0.277901709449, 0.27489337596, 0.269166627249, 0.258541688706, 0.231134564777, 0.153071382152, 0.0], + [0.0, 0.288037932181, 0.288026845461, 0.28794593635, 0.287878098794, 0.287727853863, 0.287558165618, 0.287303618729, 0.287012651067, 0.286592825326, 0.286048537274, 0.285421838879, 0.284530682311, 0.28342777585, 0.28204270893, 0.28007744517, 0.276628998527, 0.270412329325, 0.25837162799, 0.228060783255, 0.144378558415, 0.0], + [0.0, 0.29082166198, 0.290810996812, 0.290723633207, 0.290656529098, 0.290491603653, 0.290321878828, 0.290043390734, 0.289722151234, 0.289294935536, 0.28870753725, 0.288076446823, 0.287124483782, 0.285950984414, 0.284433880545, 0.282226346558, 0.278439661776, 0.271752778628, 0.258123851607, 0.223632921167, 0.136158497711, 0.0], + [0.0, 0.293750075654, 0.293739847709, 0.293645761291, 0.293579412262, 0.293399201414, 0.293224494055, 0.292926006805, 0.292572590511, 0.292138319009, 0.291506063919, 0.290822340932, 0.289843402486, 0.288564907136, 0.286917168373, 0.284495808128, 0.280360147517, 0.273190214451, 0.257794147205, 0.218823710106, 0.128149601769, 0.0], + [0.0, 0.296829401056, 0.29681962759, 0.296718528746, 0.296651668101, 0.296456809924, 0.296261170763, 0.295957552717, 0.295570603615, 0.295127301736, 0.294428004003, 0.29366739978, 0.292662567822, 0.291303133462, 0.289533170842, 0.286888621385, 0.282393926992, 0.274544422511, 0.257125257909, 0.213910278567, 0.120954849966, 0.0], + [0.0, 0.300082797049, 0.300055282356, 0.299948617794, 0.299869393328, 0.299671062243, 0.299450321658, 0.299127817693, 0.298689013208, 0.298208674969, 0.297472030028, 0.296649706331, 0.295587940576, 0.294184294199, 0.292287168448, 0.289405575452, 0.284544737266, 0.275316487948, 0.255856699393, 0.207700853754, 0.114186242821, 0.0], + [0.0, 0.303435277674, 0.30342159975, 0.303307923626, 0.303213187789, 0.303003288107, 0.302753853431, 0.302425547549, 0.301949979787, 0.301416552948, 0.300672201092, 0.299785461734, 0.298632935105, 0.297214455822, 0.295184840076, 0.292056835043, 0.286742161722, 0.276177271504, 0.254495364789, 0.201756945498, 0.107697822025, 0.0], + [0.0, 0.306948255151, 0.306935134843, 0.306818515661, 0.306712453224, 0.306498637827, 0.306225407078, 0.305866451257, 0.305376983728, 0.304788047674, 0.30403559444, 0.303081526689, 0.301834217181, 0.300302701158, 0.298232294844, 0.294847764296, 0.288495435609, 0.277128135133, 0.252426418392, 0.195996056985, 0.101935817543, 0.0], + [0.0, 0.310639259399, 0.310626723106, 0.310494558798, 0.310389080363, 0.310150861821, 0.309872983163, 0.309472096803, 0.308977868875, 0.308330802281, 0.307528100514, 0.306545290914, 0.305198851017, 0.303533954795, 0.30125650856, 0.297341416535, 0.290348592707, 0.277967606619, 0.249517136092, 0.18880640084, 0.096629212466, 0.0], + [0.0, 0.31451708255, 0.31450515933, 0.314356673939, 0.314251807483, 0.313984625565, 0.31370521191, 0.31326032569, 0.312761094609, 0.312053057323, 0.311178041841, 0.310184719174, 0.308734447229, 0.306918035118, 0.304257199655, 0.299899034285, 0.292315329059, 0.277964113296, 0.246748455807, 0.18160491371, 0.091823990322, 0.0], + [0.0, 0.318591218883, 0.318579940709, 0.318414291481, 0.318310069992, 0.318012435611, 0.317731410644, 0.317240278878, 0.31670603274, 0.315963704484, 0.315012772007, 0.314008402479, 0.312404954812, 0.310356056834, 0.307399223557, 0.302592441147, 0.29438016041, 0.277692360474, 0.243759618432, 0.174983946868, 0.087237854274, 0.0], + [0.0, 0.322871930703, 0.322861332757, 0.322677603704, 0.322574065717, 0.322244360694, 0.321958341283, 0.321421831703, 0.320829852766, 0.320072346468, 0.319010676134, 0.317871708871, 0.316190576622, 0.31396869626, 0.310702449681, 0.305411845648, 0.296199982016, 0.277492500376, 0.238266758114, 0.168314444285, 0.082931042031, 0.0], + [0.0, 0.327370322036, 0.327360443034, 0.327157637713, 0.327051127018, 0.326691292302, 0.326363634708, 0.325802996624, 0.325114264381, 0.324299408283, 0.323128917048, 0.321882015255, 0.320100283167, 0.317764364759, 0.314174178069, 0.308379102617, 0.297250772032, 0.276354085603, 0.233085429226, 0.161956108775, 0.079035632939, 0.0], + [0.0, 0.332060671716, 0.332044822955, 0.33181956767, 0.331681627107, 0.331291360656, 0.330898741972, 0.330306844037, 0.32955075255, 0.328660344578, 0.327455927456, 0.326095404557, 0.324134718771, 0.321608810097, 0.317755459076, 0.310870121918, 0.29840026331, 0.275075975616, 0.227938994879, 0.15545060189, 0.075511723205, 0.0], + [0.0, 0.336889610205, 0.336874513818, 0.336644191452, 0.336484801048, 0.336085796756, 0.335645464486, 0.335010568264, 0.334213208906, 0.333228967582, 0.332002900429, 0.330522577961, 0.328373452332, 0.325516825474, 0.32103962461, 0.31309905448, 0.299650310172, 0.272801486079, 0.222290544474, 0.149393240808, 0.072309723413, 0.0], + [0.0, 0.341966772955, 0.341952476489, 0.34169641785, 0.34153469478, 0.341092503034, 0.340635622881, 0.339925201687, 0.339114266546, 0.338030814542, 0.336713227619, 0.335175117988, 0.332827241048, 0.329524176835, 0.324213488804, 0.31545696587, 0.300206885658, 0.26976964895, 0.216577580837, 0.14374204919, 0.069317035654, 0.0], + [0.0, 0.347306721879, 0.347293277918, 0.347009146375, 0.346845735833, 0.346348106039, 0.345883350931, 0.345092861839, 0.344267634201, 0.34307910776, 0.341637058664, 0.340065575527, 0.337389988533, 0.333519719288, 0.327551506169, 0.317948246055, 0.299864565142, 0.266884863178, 0.21020662323, 0.138523773474, 0.066569658742, 0.0], + [0.0, 0.352925297035, 0.352912763774, 0.352598791046, 0.352433615429, 0.351877064298, 0.351404014591, 0.350528491231, 0.349612345016, 0.34838820499, 0.346772201683, 0.344916808711, 0.342033985847, 0.337717479083, 0.331060866694, 0.319931079139, 0.299355394371, 0.263903781339, 0.203974761548, 0.133710406532, 0.064050529909, 0.0], + [0.0, 0.358839754579, 0.358828196478, 0.358482445552, 0.3583154245, 0.357696135526, 0.357167324429, 0.35623003301, 0.355143354075, 0.353810743674, 0.351973278352, 0.349871947453, 0.346582443681, 0.341772771985, 0.334186009319, 0.320984278036, 0.298051376288, 0.257998424644, 0.198146466829, 0.129258363581, 0.061733225892, 0.0], + [0.0, 0.364997453894, 0.364980220178, 0.364579607934, 0.364356036566, 0.363664656096, 0.3630176718, 0.362012145881, 0.360809850288, 0.359359821157, 0.357443286398, 0.35508127195, 0.351361975838, 0.345861767857, 0.336955108379, 0.322064355136, 0.296848700571, 0.25217534368, 0.192482063188, 0.124846389126, 0.059595263633, 0.0], + [0.0, 0.371264018513, 0.371244199484, 0.370826799772, 0.370567602724, 0.369853839745, 0.369130081662, 0.36803999354, 0.366773636485, 0.365175049322, 0.363129430064, 0.360559556673, 0.356385251651, 0.349900660953, 0.339422174674, 0.322564657175, 0.294259750567, 0.246623797823, 0.186651981982, 0.12067043087, 0.057617392864, 0.0], + [0.0, 0.377866633204, 0.377844049437, 0.377381689984, 0.377111496635, 0.376315134096, 0.375568216486, 0.374357949842, 0.373053431168, 0.371296540242, 0.368986017467, 0.366291220448, 0.361433513206, 0.353666558143, 0.341669733006, 0.323036906174, 0.29078043013, 0.241002943936, 0.180997570758, 0.116488497546, 0.055783035846, 0.0], + [0.0, 0.384827688467, 0.384802142231, 0.384291649492, 0.384009739805, 0.383124976917, 0.382353453618, 0.38101469708, 0.379595561433, 0.377743787454, 0.375098861792, 0.371557572368, 0.365944330678, 0.357033096064, 0.343682366673, 0.32191608084, 0.28634496276, 0.235702790339, 0.174961385709, 0.112580872266, 0.054035729553, 0.0], + [0.0, 0.392171731412, 0.39214300442, 0.391580879277, 0.391286465654, 0.390306907782, 0.389454608941, 0.388032806027, 0.386318990297, 0.384254027031, 0.381081691966, 0.376869389042, 0.370472214968, 0.36045409473, 0.34525622011, 0.320094208272, 0.281766320933, 0.229600734341, 0.169364740302, 0.108959014665, 0.052311022736, 0.0], + [0.0, 0.399796164803, 0.39974885956, 0.399087305729, 0.398693920882, 0.397592505567, 0.396543776537, 0.394972202371, 0.393053361969, 0.390709138489, 0.387297072435, 0.38245347342, 0.375229281831, 0.363949335139, 0.345429182549, 0.318240152989, 0.276455707521, 0.223372222075, 0.164163502189, 0.105594094805, 0.050707976924, 0.0], + [0.0, 0.407400408116, 0.407343525948, 0.406649596149, 0.406204668512, 0.405048266225, 0.403895234952, 0.402183566661, 0.400150740618, 0.397507989006, 0.393419907987, 0.387993520133, 0.380028358713, 0.365824048976, 0.34542621438, 0.315118691354, 0.269872529661, 0.217537227501, 0.159319292754, 0.102461058301, 0.049214804517, 0.0], + [0.0, 0.415428527218, 0.41536133042, 0.414611689458, 0.414132400837, 0.412868170081, 0.411652178736, 0.409777497715, 0.407529770571, 0.404673098047, 0.399863205564, 0.392902542999, 0.382584173039, 0.367351315762, 0.344800640557, 0.309399451351, 0.263674036536, 0.211667771059, 0.154798580722, 0.099538028944, 0.047821204261, 0.0], + [0.0, 0.423911129438, 0.423832799341, 0.423023231258, 0.422506998879, 0.421126766424, 0.41980504206, 0.417793434374, 0.415164377371, 0.41188841333, 0.405793132829, 0.397246144222, 0.385292756055, 0.368252032576, 0.341732553911, 0.303651379171, 0.257830661473, 0.205729199482, 0.15057194193, 0.096805821299, 0.046518134639, 0.0], + [0.0, 0.432931970804, 0.432779279685, 0.431876492739, 0.431210908821, 0.429636100363, 0.427977516721, 0.425710739896, 0.422336517178, 0.418263655091, 0.411205701661, 0.401429569915, 0.38777669889, 0.367644461312, 0.337222702348, 0.298192159892, 0.252315856962, 0.200174071227, 0.146613450773, 0.094247540366, 0.045297627508, 0.0], + [0.0, 0.441439918074, 0.441308213196, 0.440332421405, 0.439576827005, 0.437937269621, 0.436078774202, 0.433499757091, 0.429839921731, 0.42474384364, 0.416622069959, 0.405303972256, 0.388986353541, 0.365104610345, 0.332923500733, 0.29300906437, 0.247105721668, 0.19496888391, 0.14289049874, 0.091843456294, 0.044152633891, 0.0], + [0.0, 0.450428919098, 0.450278483637, 0.449244115086, 0.448413075199, 0.446656085312, 0.4446307014, 0.441704713213, 0.437079383573, 0.431467452283, 0.422309968038, 0.407918949941, 0.388615106233, 0.362514891773, 0.328827728383, 0.287978148883, 0.241076454166, 0.189812726709, 0.139378729483, 0.089583135045, 0.043076895624, 0.0], + [0.0, 0.459934626741, 0.459763943834, 0.458666580001, 0.457748994917, 0.455870799133, 0.453424710265, 0.450366088393, 0.444383536947, 0.436492744998, 0.42563082481, 0.409288046273, 0.38787041868, 0.359984670845, 0.323945679667, 0.281206125202, 0.234211361573, 0.184600493585, 0.135929103052, 0.087457397639, 0.042064837938, 0.0], + [0.0, 0.46975170474, 0.469528034031, 0.468310168915, 0.467129299478, 0.46500866165, 0.461694564818, 0.457724766516, 0.450575067122, 0.440771805759, 0.428232242438, 0.410590513235, 0.387246313069, 0.355759673036, 0.317497935304, 0.274357906142, 0.227793902151, 0.179720145932, 0.132356586371, 0.085455633222, 0.041111479119, 0.0], + [0.0, 0.478921440031, 0.478657134224, 0.477380942284, 0.476016793071, 0.473560096535, 0.46981379739, 0.4648607091, 0.455994578612, 0.444762375898, 0.430354836473, 0.411320542426, 0.383993878215, 0.350046490151, 0.3105685069, 0.267266454198, 0.221784500056, 0.175143175018, 0.1289681144, 0.08356833906, 0.040212354124, 0.0], + [0.0, 0.488608094108, 0.488299960547, 0.48694473449, 0.485399753549, 0.482517848213, 0.477640639607, 0.471893488045, 0.461688395844, 0.44825150685, 0.43008426529, 0.406931761765, 0.377921553451, 0.342981241974, 0.303369602262, 0.260609741488, 0.216148163542, 0.17084428827, 0.125786167943, 0.081706232845, 0.03936344974, 0.0], + [0.0, 0.498849772657, 0.498481289505, 0.497054063109, 0.494968953514, 0.491973768567, 0.485284279596, 0.477167506938, 0.465400950789, 0.448741121493, 0.428152547752, 0.402755684213, 0.372104239038, 0.336295969768, 0.296585170769, 0.254352158778, 0.210853842218, 0.166800970017, 0.122793956695, 0.079889245449, 0.038561149276, 0.0], + [0.0, 0.50832887582, 0.507818173456, 0.506068698609, 0.503059743532, 0.498914754195, 0.491009387658, 0.480414229469, 0.467555688973, 0.448768950253, 0.426096991232, 0.398784688485, 0.366573269565, 0.32996491778, 0.290184009249, 0.248461944568, 0.205873889581, 0.162993112366, 0.119976492465, 0.078136300698, 0.037802185205, 0.0], + [0.0, 0.517644658084, 0.517012578313, 0.514623140362, 0.511138096907, 0.5057484295, 0.49565450802, 0.483527285888, 0.468667945896, 0.44893354045, 0.424172477192, 0.393791558134, 0.359488538086, 0.322404466915, 0.283295654779, 0.242830732201, 0.201183611238, 0.159402703499, 0.117320355021, 0.076481427899, 0.037083598448, 0.0], + [0.0, 0.527471934651, 0.526560502084, 0.523634005064, 0.518421347802, 0.512561370363, 0.500542282931, 0.486075722989, 0.468171681138, 0.446392852945, 0.418622804861, 0.386740195451, 0.351843265947, 0.314821986326, 0.276288013172, 0.236755036567, 0.196760883305, 0.156013563238, 0.11481349356, 0.074917546696, 0.036402703245, 0.0], + [0.0, 0.536778001472, 0.534994936945, 0.531571756213, 0.524175334932, 0.5157058269, 0.502480616012, 0.484716995697, 0.464025204643, 0.44012421363, 0.412292882896, 0.380050649166, 0.344619195674, 0.307679536685, 0.269698856779, 0.231044611532, 0.192223278888, 0.15268228014, 0.112445057649, 0.07343826172, 0.035757056738, 0.0], + [0.0, 0.542965245158, 0.540841052353, 0.536385457878, 0.527827054895, 0.516855332932, 0.502691584845, 0.482893189375, 0.460068324677, 0.434159613402, 0.40486361522, 0.372662431001, 0.337786630296, 0.300943619561, 0.263495060965, 0.225670287027, 0.187853052436, 0.149446939974, 0.110205252655, 0.072037782555, 0.035144432536, 0.0], + [0.0, 0.549466112764, 0.546751786003, 0.541453577376, 0.530544720255, 0.517961120251, 0.502674716844, 0.481119813944, 0.456287301689, 0.42848329208, 0.397816383999, 0.364934690967, 0.330513125848, 0.294584128662, 0.257646972521, 0.220605974192, 0.183731846535, 0.146380892496, 0.108085215618, 0.070710854682, 0.034562797688, 0.0], + [0.0, 0.556296041804, 0.552142920219, 0.546786529454, 0.533453851966, 0.518433192364, 0.500957512613, 0.478594226428, 0.451135050294, 0.421330299851, 0.389794105469, 0.357141301596, 0.323174708856, 0.288011297426, 0.252127969341, 0.215828271415, 0.179800030729, 0.143301076932, 0.106076908293, 0.069452699709, 0.034010292545, 0.0], + [0.0, 0.557536645449, 0.552545997739, 0.547076913156, 0.531655025824, 0.514207827516, 0.49436194611, 0.471434230861, 0.443706307744, 0.412954410172, 0.381006500547, 0.34845801025, 0.315458934824, 0.281500800326, 0.246435477379, 0.211168756469, 0.175904614102, 0.140390070858, 0.10417302463, 0.068258963466, 0.033485213098, 0.0], + [0.0, 0.556673306638, 0.551186405642, 0.545453481249, 0.528953276122, 0.509756006975, 0.488033956341, 0.463434187899, 0.436163765966, 0.405026018394, 0.37271740978, 0.340288130533, 0.307772684089, 0.274924683695, 0.240977719251, 0.206572492, 0.172225757796, 0.137636068571, 0.102366910495, 0.067125670764, 0.032985995463, 0.0], + [0.0, 0.555981733012, 0.549930390578, 0.542717516352, 0.526438394388, 0.505533277801, 0.481994992767, 0.45583766475, 0.427473202889, 0.397515135211, 0.364890092969, 0.332591563107, 0.30054145014, 0.268405793131, 0.23582674573, 0.202232338077, 0.168747977143, 0.135028376458, 0.100652493773, 0.066049185869, 0.032499888126, 0.0], + [0.0, 0.555460864404, 0.548825227964, 0.540172581959, 0.524106205633, 0.501512346696, 0.476246951782, 0.448620616963, 0.419247405124, 0.38907492759, 0.357491427401, 0.325332361597, 0.29372963574, 0.262266926661, 0.23061635081, 0.198129917624, 0.165457273403, 0.132557286626, 0.098990511016, 0.065026177849, 0.03203419355, 0.0], + [0.0, 0.551832362232, 0.54502062983, 0.535325020974, 0.519411802204, 0.495104695595, 0.468470279457, 0.440152139082, 0.410858441297, 0.380876408817, 0.350491477341, 0.318478212099, 0.287305335731, 0.256478971509, 0.225615986731, 0.194248622286, 0.162340961582, 0.130213967431, 0.097358891477, 0.064053590115, 0.031591143448, 0.0], + [0.0, 0.54449112853, 0.537757836289, 0.527498900305, 0.510300571886, 0.487067930786, 0.459659726038, 0.430810312986, 0.401352879335, 0.372065171762, 0.342845175172, 0.311999989179, 0.281239873615, 0.251015779183, 0.220893720998, 0.190546341378, 0.159387521733, 0.127990368341, 0.095808897472, 0.063128613581, 0.031169546426, 0.0], + [0.0, 0.537504236279, 0.530845635508, 0.519737271882, 0.501630362866, 0.478787556141, 0.451309391848, 0.421982657505, 0.39239403427, 0.363309780176, 0.334850093172, 0.305871375586, 0.275507406348, 0.245853800333, 0.216429656734, 0.186830325415, 0.156586470065, 0.125879136996, 0.094335768432, 0.062248662943, 0.030768302879, 0.0], + [0.0, 0.530854038009, 0.52426654498, 0.512272951203, 0.493397635141, 0.469760710293, 0.443389685517, 0.413632976305, 0.383940806897, 0.355062645457, 0.327038780873, 0.299450071699, 0.270084585903, 0.240971772391, 0.212205807369, 0.18331124595, 0.153928246885, 0.123873546679, 0.092935134456, 0.061411355682, 0.030383327198, 0.0], + [0.0, 0.524524208526, 0.517756347687, 0.505171697405, 0.485576297036, 0.461205830185, 0.434331983647, 0.40572850147, 0.375956214467, 0.347285058434, 0.31967875949, 0.292668189518, 0.264950268337, 0.236350451302, 0.208205875162, 0.179976093191, 0.151404118835, 0.121967432703, 0.091563450363, 0.060614493409, 0.030011771675, 0.0], + [0.0, 0.518499631276, 0.511491972479, 0.498414376431, 0.478142431202, 0.453092513385, 0.425732643043, 0.397882770034, 0.368406892087, 0.339942231217, 0.312735887695, 0.28627196357, 0.260003213375, 0.231972380262, 0.204415059945, 0.176813027551, 0.148971536769, 0.120155136477, 0.090248488285, 0.059856045285, 0.029658118823, 0.0], + [0.0, 0.509943263244, 0.502735707805, 0.48926876603, 0.468742422896, 0.443819301016, 0.417075597712, 0.389612663832, 0.36126266504, 0.333002816691, 0.306179462597, 0.280189951261, 0.25455391447, 0.227821689638, 0.200819893369, 0.173811253081, 0.146561336027, 0.118431456177, 0.088997486059, 0.059134133224, 0.029321531253, 0.0], + [0.0, 0.500319517515, 0.493361448397, 0.479893177587, 0.459284232061, 0.434333767242, 0.407696665432, 0.381256081122, 0.354496180524, 0.326438497121, 0.299981800915, 0.274440303513, 0.249402756613, 0.223883923296, 0.197408094783, 0.170960907061, 0.144271129255, 0.116791603152, 0.087807073014, 0.058447018686, 0.029001232686, 0.0], + [0.0, 0.491199138469, 0.484475258247, 0.471010928539, 0.450334645963, 0.425372069613, 0.398849092571, 0.372706827486, 0.34734569726, 0.320223630537, 0.294084423161, 0.269002175577, 0.244528950014, 0.220133554398, 0.194168445533, 0.168252963405, 0.14209401328, 0.115231163291, 0.086674138396, 0.057784192204, 0.028696502951, 0.0], + [0.0, 0.482549677089, 0.476045954687, 0.462589852702, 0.441859197672, 0.416897136467, 0.390493793648, 0.364641217377, 0.339707275779, 0.314334945672, 0.288484397513, 0.263854187668, 0.239913658555, 0.216100389801, 0.191090678986, 0.165679147905, 0.140023646285, 0.113746062717, 0.085595808034, 0.057137130115, 0.02840667348, 0.0], + [0.0, 0.474341547848, 0.468045087965, 0.45460064756, 0.433826584389, 0.408875422945, 0.382595525239, 0.35702375178, 0.332496678315, 0.308666914449, 0.283178307572, 0.258976942998, 0.235539778333, 0.212268222516, 0.188165384043, 0.163231863664, 0.138054193732, 0.112332537247, 0.084569423519, 0.056521425346, 0.028131123254, 0.0], + [0.0, 0.46654772541, 0.460446653968, 0.447016567994, 0.426208317584, 0.401276506016, 0.375122429513, 0.34982241476, 0.325682965836, 0.302393342876, 0.278147078112, 0.254352806093, 0.23139174578, 0.208632044776, 0.185326342882, 0.160904125319, 0.1361802805, 0.11095218848, 0.0835925236, 0.055935705583, 0.027869275148, 0.0], + [0.0, 0.45914347931, 0.453196734874, 0.439755044517, 0.41897841876, 0.394072734243, 0.368045641509, 0.343008260432, 0.319238196805, 0.296365883735, 0.273373325941, 0.249965710329, 0.227455370829, 0.205179792368, 0.182533632817, 0.158689500873, 0.134396948417, 0.109551944857, 0.082662827538, 0.055378696567, 0.027620592625, 0.0], + [0.0, 0.452106141202, 0.446106212455, 0.432648107732, 0.412047344878, 0.387238923828, 0.36133894999, 0.336555057503, 0.313104691969, 0.29066082133, 0.26865288602, 0.245800990272, 0.223717691429, 0.201900429406, 0.179751413343, 0.156534452265, 0.132699569428, 0.108209736521, 0.081778220164, 0.054846508119, 0.027384576761, 0.0], + [0.0, 0.444266197051, 0.438116689508, 0.424729648598, 0.404821456826, 0.380719559917, 0.354978503565, 0.330430423592, 0.307286343725, 0.285256507039, 0.263958789274, 0.241845235195, 0.220166846272, 0.198783843578, 0.177100285836, 0.15443032494, 0.131015692422, 0.106932197386, 0.08093673846, 0.054328087436, 0.027160763533, 0.0], + [0.0, 0.435848749406, 0.429897401534, 0.416730061327, 0.397103747582, 0.374042161017, 0.348886141375, 0.324583276135, 0.301770537542, 0.280133264997, 0.259324503838, 0.238086160724, 0.216791963144, 0.195820754047, 0.174578629311, 0.1524278296, 0.129412941168, 0.105716298335, 0.080136559493, 0.053835620725, 0.026948721377, 0.0], + [0.0, 0.427872249554, 0.422107040468, 0.409148567164, 0.38922287147, 0.366766116547, 0.343091553205, 0.319034958811, 0.296537993167, 0.275273175693, 0.254885671518, 0.234512496039, 0.213583060705, 0.193002630264, 0.172179485533, 0.150521865602, 0.127887414748, 0.104559231437, 0.079375989525, 0.053368112325, 0.02674804897, 0.0], + [0.0, 0.420308188588, 0.414718077789, 0.401958254178, 0.381753950284, 0.359659738457, 0.337127815863, 0.313767105962, 0.291571116836, 0.270659887576, 0.250671311952, 0.230880536137, 0.210530961871, 0.190321620215, 0.169896438777, 0.148701759907, 0.126435500036, 0.103458391797, 0.0786534542, 0.052924636269, 0.026558373211, 0.0], + [0.0, 0.413130579112, 0.407705406018, 0.394790162538, 0.374678260874, 0.352928971375, 0.331103772197, 0.308762915578, 0.286853824376, 0.266278452528, 0.246667963989, 0.227427073014, 0.207627217214, 0.187770486864, 0.167723566356, 0.146896778152, 0.125053847621, 0.10241136125, 0.07796748967, 0.05250433135, 0.026379347393, 0.0], + [0.0, 0.406315687489, 0.401046083244, 0.387822369111, 0.367970137369, 0.346549122042, 0.325112199955, 0.303919147283, 0.28237138626, 0.262115181774, 0.242863292567, 0.224108431212, 0.204864037091, 0.185342551715, 0.165655394557, 0.145178782108, 0.123739350196, 0.101415893672, 0.07731673457, 0.052106396655, 0.026210649543, 0.0], + [0.0, 0.399841799706, 0.394719109527, 0.381210370681, 0.361606200731, 0.340497709845, 0.319429189311, 0.298924290981, 0.278110291515, 0.25815751931, 0.23924597647, 0.220850245221, 0.202234231332, 0.183031644593, 0.163686859332, 0.143543725694, 0.122489123121, 0.100469901739, 0.076690799851, 0.051730087505, 0.026051980911, 0.0], + [0.0, 0.39368901603, 0.388705230655, 0.374932342826, 0.355565113948, 0.334754228487, 0.314035460008, 0.294179120078, 0.274058127853, 0.254393930443, 0.235805609382, 0.217750817989, 0.199611613529, 0.180832058859, 0.16181327116, 0.141987857514, 0.121300486928, 0.099571444967, 0.076080866501, 0.051374711772, 0.025903064598, 0.0], + [0.0, 0.387839070432, 0.382986765429, 0.368968316645, 0.349827368195, 0.329299937978, 0.308913393443, 0.289428048636, 0.27020051922, 0.250813803376, 0.232532612435, 0.214801707031, 0.197093074714, 0.178738511405, 0.160030283564, 0.140507696809, 0.120170951541, 0.098718718907, 0.07550337597, 0.051039626537, 0.025763644308, 0.0], + [0.0, 0.382275171365, 0.377547453267, 0.363299990291, 0.344375095493, 0.324117682542, 0.304046861257, 0.284897636766, 0.266226590007, 0.247407362099, 0.229418156732, 0.211995124153, 0.194695865105, 0.17674610683, 0.158333864867, 0.139100011831, 0.119098202029, 0.097910045359, 0.074957246957, 0.050724235051, 0.025633483216, 0.0], + [0.0, 0.376981861026, 0.3723723194, 0.357910563216, 0.339191904119, 0.319191730769, 0.29942107487, 0.280591021461, 0.262446643424, 0.244165589108, 0.226454094557, 0.209323876279, 0.19235238046, 0.174850305324, 0.156720272819, 0.137761800364, 0.118034996308, 0.097143863506, 0.074441474457, 0.050427983967, 0.025512362942, 0.0], + [0.0, 0.371944890642, 0.367447555352, 0.352784589994, 0.334262733624, 0.314507634905, 0.295022453045, 0.276495637061, 0.258850275754, 0.241080156695, 0.223632898156, 0.206781312708, 0.1900924445, 0.17303524207, 0.155181607468, 0.136490272153, 0.117024764103, 0.09641872188, 0.073955124894, 0.050150360839, 0.025400082615, 0.0], + [0.0, 0.366703596184, 0.362401089752, 0.347907851105, 0.329573726788, 0.310052106675, 0.290838505015, 0.27259992382, 0.255307951997, 0.23812480779, 0.220947605142, 0.204361278025, 0.187941579587, 0.171227819293, 0.153709952735, 0.135282833034, 0.116066732826, 0.095733271068, 0.073497331712, 0.049890891833, 0.025296458036, 0.0], + [0.0, 0.361289763505, 0.357069049788, 0.342905827869, 0.325112116269, 0.305812907419, 0.286857727099, 0.268893232906, 0.251893668471, 0.235143324431, 0.218391769718, 0.202058069964, 0.185894835303, 0.169508864988, 0.152311908291, 0.134137070583, 0.115159053877, 0.095086257081, 0.073067291356, 0.049649139665, 0.02520132091, 0.0], + [0.0, 0.356140365013, 0.351839061204, 0.337884689751, 0.320866124016, 0.30177875067, 0.283069511024, 0.265365742109, 0.24864423953, 0.232305465659, 0.21595941901, 0.199866401645, 0.183947618764, 0.167839847525, 0.150984642855, 0.133050741123, 0.114300008171, 0.09447651535, 0.072648646992, 0.049424701719, 0.025113358143, 0.0], + [0.0, 0.351241178673, 0.346834313169, 0.333108481337, 0.316511916272, 0.297939215561, 0.279464062447, 0.262008380917, 0.245551422913, 0.229604393937, 0.213645013905, 0.197781367659, 0.182095665977, 0.166226597061, 0.149725523353, 0.132021757951, 0.113487997495, 0.093902965244, 0.072255679037, 0.049217208348, 0.025031331539, 0.0], + [0.0, 0.346579091763, 0.342072685963, 0.32856410889, 0.312207733426, 0.294284669707, 0.276032328393, 0.258812763741, 0.242607595063, 0.227033774131, 0.21144341387, 0.195798413582, 0.180335016041, 0.164693753674, 0.148532100866, 0.131048180657, 0.112721536676, 0.09336460511, 0.071888719648, 0.049026321339, 0.02495741655, 0.0], + [0.0, 0.34214199965, 0.337541457138, 0.324239496463, 0.308111638088, 0.290806200364, 0.272765932493, 0.255771130317, 0.239805697788, 0.224518178071, 0.209249316314, 0.193913308501, 0.178661987888, 0.16323819153, 0.147349724904, 0.130128205431, 0.111999246451, 0.092860507755, 0.071547152555, 0.048851732525, 0.02489149667, 0.0], + [0.0, 0.337918715648, 0.333228881556, 0.32012349346, 0.304213096843, 0.287204906097, 0.26965711707, 0.252876292383, 0.237139190511, 0.222086020523, 0.207142211377, 0.192122120242, 0.177073159269, 0.161857003772, 0.146179487523, 0.129260156264, 0.111319846991, 0.092365306101, 0.071230410779, 0.048691881428, 0.024833468688, 0.0], + [0.0, 0.333898890606, 0.329124104106, 0.316205792292, 0.300502371695, 0.283735996232, 0.266698691272, 0.250121585898, 0.234602007449, 0.219772219678, 0.205138984106, 0.190421192992, 0.17556534776, 0.160547486869, 0.145071533513, 0.128442476947, 0.110682152024, 0.091894963876, 0.07093797425, 0.048539890017, 0.024783242288, 0.0], + [0.0, 0.330072941014, 0.32521708182, 0.312476854878, 0.296970450842, 0.280434286071, 0.263883984505, 0.247500828153, 0.232188519136, 0.217571725423, 0.2032354458, 0.188807127067, 0.174135593569, 0.159307126445, 0.14402378946, 0.127640438745, 0.110085063482, 0.091445419416, 0.070669367659, 0.048403542841, 0.024740048318, 0.0], + [0.0, 0.326431984619, 0.321498514243, 0.308927846904, 0.293608986757, 0.277292027361, 0.261076039185, 0.2450082792, 0.229893497806, 0.215479846293, 0.201427702279, 0.187244283242, 0.172781143951, 0.158133584411, 0.143034328271, 0.126879778343, 0.109501817427, 0.091027844812, 0.070424158511, 0.048282625669, 0.024703136338, 0.0], + [0.0, 0.322967782658, 0.317959781063, 0.305550578931, 0.29041024069, 0.274302035412, 0.258307286959, 0.242638607118, 0.227712086198, 0.213492222016, 0.19968161388, 0.185710586267, 0.171499439081, 0.157024687293, 0.142101359862, 0.126161338484, 0.108956440338, 0.090641551271, 0.07020195539, 0.048176949716, 0.024673839032, 0.0], + [0.0, 0.31967268794, 0.314592886151, 0.302337453522, 0.28736703286, 0.271457643246, 0.255673707988, 0.240386856694, 0.225639769393, 0.211604798737, 0.197978282836, 0.184257480472, 0.170288099227, 0.155978415632, 0.141223222691, 0.125462705438, 0.108449339866, 0.090285908237, 0.070002406397, 0.048086049958, 0.024652111512, 0.0], + [0.0, 0.316539598119, 0.311390407261, 0.299281417718, 0.28447269766, 0.268752660337, 0.253169628079, 0.238248421134, 0.223672349385, 0.209813806588, 0.196363073812, 0.18288221318, 0.169144913111, 0.154992894355, 0.140398376076, 0.124809576138, 0.107979677059, 0.089960340806, 0.06982519777, 0.048004640427, 0.024637920571, 0.0], + [0.0, 0.313561913571, 0.308345450753, 0.296375920244, 0.281721043324, 0.266181335451, 0.25078977463, 0.236134667442, 0.221805922061, 0.208115739399, 0.194832874632, 0.181582225254, 0.168067827316, 0.154066384014, 0.139625393199, 0.124200848551, 0.107546683159, 0.089664327394, 0.069670052656, 0.047938083806, 0.024631244558, 0.0], + [0.0, 0.310733499364, 0.305451610769, 0.293614872912, 0.279106315545, 0.263738323114, 0.248529246267, 0.234062393664, 0.220036856359, 0.206507336302, 0.193384791207, 0.180355138541, 0.167008896635, 0.153197272842, 0.138902954757, 0.123635507762, 0.107149656431, 0.089397397653, 0.069531659061, 0.047886277914, 0.024632073298, 0.0], + [0.0, 0.308048650897, 0.302702932394, 0.290992615782, 0.276623164627, 0.261418653329, 0.246383485398, 0.232096258974, 0.218361775377, 0.204985565056, 0.192016133015, 0.179164879658, 0.165999957613, 0.152384069517, 0.138229843208, 0.123112621691, 0.106787959306, 0.089159130611, 0.069408027352, 0.047849143452, 0.024640408053, 0.0], + [0.0, 0.305502062799, 0.300093878341, 0.288503885656, 0.274266615781, 0.259086756457, 0.244348253383, 0.230232427203, 0.216777539232, 0.203547606896, 0.190724399931, 0.178022246216, 0.16505311072, 0.151625396607, 0.137604937532, 0.122631337206, 0.106453303759, 0.088949153031, 0.069305908293, 0.047826623702, 0.024656261527, 0.0], + [0.0, 0.303088800761, 0.297619298813, 0.286143787567, 0.272032042237, 0.256847872219, 0.242409880689, 0.228467330634, 0.215253074543, 0.202190842789, 0.189507270247, 0.176947653221, 0.164166727161, 0.150919984609, 0.13702720851, 0.122190876626, 0.106139840622, 0.088767137958, 0.069225144956, 0.047818684323, 0.024679657919, 0.0], + [0.0, 0.300804275993, 0.295274404198, 0.283892030581, 0.269745286686, 0.254724277589, 0.240466802323, 0.226797651825, 0.213737631962, 0.200912840941, 0.188362589795, 0.175939226718, 0.163339301992, 0.150256320924, 0.136495714436, 0.121790534573, 0.105860369537, 0.08861280347, 0.069165613622, 0.047825313215, 0.024710633002, 0.0], + [0.0, 0.298190586362, 0.293028811785, 0.281749408107, 0.267565325904, 0.252711857628, 0.23862673642, 0.225220307114, 0.212307597325, 0.199711345435, 0.18728836206, 0.174995232325, 0.162546703726, 0.149611927489, 0.13600959726, 0.121429675149, 0.105614453007, 0.0884859116, 0.069127223319, 0.047846520479, 0.024749234265, 0.0], + [0.0, 0.295767676122, 0.290593560764, 0.279723453668, 0.265500543276, 0.25080678554, 0.236886227126, 0.22373243163, 0.21096040461, 0.198584265924, 0.186282739194, 0.174114067577, 0.161792812542, 0.149018236137, 0.135568079124, 0.121107729432, 0.105401708341, 0.088386267439, 0.06910255201, 0.047882338454, 0.024795177584, 0.0], + [0.0, 0.293472496694, 0.288285543809, 0.27781044658, 0.263547048394, 0.249005503348, 0.235242062173, 0.222277470377, 0.209693673211, 0.19751182276, 0.18534401386, 0.173294254978, 0.161094726638, 0.148474285891, 0.135170459252, 0.120824193244, 0.105221806185, 0.088313718398, 0.069098549306, 0.047932821836, 0.024848114843, 0.0], + [0.0, 0.291300714245, 0.286100362675, 0.275867251497, 0.261701224795, 0.247304704342, 0.233691257286, 0.22087323592, 0.208505197038, 0.196449269547, 0.184470611824, 0.172534435705, 0.16045130395, 0.14796483325, 0.134816111188, 0.120578625207, 0.10507446927, 0.08825641782, 0.069115599127, 0.047995746626, 0.024908818643, 0.0], + [0.0, 0.289248299924, 0.284033927932, 0.273882709724, 0.259959712329, 0.245701317143, 0.23223104201, 0.219553090687, 0.207392934607, 0.195457307189, 0.183661085248, 0.171833363905, 0.159861502202, 0.147489064046, 0.134478945834, 0.120370645045, 0.104959471361, 0.088220097589, 0.069153727459, 0.048071845303, 0.024976895788, 0.0], + [0.0, 0.287311510166, 0.28208243874, 0.272008781633, 0.258319391143, 0.244192491213, 0.230858846837, 0.218314738215, 0.206355000045, 0.194534271557, 0.182914106613, 0.171189901552, 0.159324374672, 0.14706099726, 0.134171861364, 0.120199932135, 0.104876636408, 0.088205468303, 0.069212992468, 0.048162374162, 0.025052998371, 0.0], + [0.0, 0.285486868796, 0.280242364478, 0.270242081377, 0.256771699727, 0.242775583699, 0.2295722915, 0.217156053668, 0.205335061904, 0.193678632, 0.182197388976, 0.170603013808, 0.1588390664, 0.146679958927, 0.133894057095, 0.120056716673, 0.104812998459, 0.088217711383, 0.069293484715, 0.048266408554, 0.025137246578, 0.0], + [0.0, 0.283771150778, 0.278510428056, 0.268579466471, 0.255143032708, 0.241448147467, 0.228369174344, 0.216075074482, 0.204371292758, 0.192888984927, 0.181513692318, 0.170071764861, 0.158404810795, 0.146345353056, 0.133658030249, 0.119933367351, 0.10477893247, 0.088256845484, 0.069392036115, 0.048385664011, 0.02522937179, 0.0], + [0.0, 0.282161367433, 0.276883590742, 0.266983604078, 0.253611661937, 0.240207920236, 0.227247462673, 0.215069991887, 0.203478220398, 0.192164047994, 0.180890002481, 0.169595314213, 0.158020926636, 0.146056659327, 0.133463416781, 0.119834535753, 0.104776794275, 0.088322930281, 0.069509932115, 0.048520326605, 0.02532955329, 0.0], + [0.0, 0.280654753016, 0.275359038382, 0.265394012011, 0.252174920724, 0.239052814721, 0.226205283995, 0.214139143218, 0.202654381175, 0.191497875617, 0.180325324773, 0.169162809574, 0.157686815425, 0.145813431099, 0.133309917676, 0.119772320675, 0.104806580615, 0.088416066691, 0.069648784528, 0.04866926828, 0.024442128955, 0.0], + [0.0, 0.279248752523, 0.273934168873, 0.263903148108, 0.250830341386, 0.237941682486, 0.225240918089, 0.213281004959, 0.201898438368, 0.190844574448, 0.179818765644, 0.168750027595, 0.157401959088, 0.145615293705, 0.133197297827, 0.11974662722, 0.104859494954, 0.088536397245, 0.069807254992, 0.048832940353, 0.023263226001, 0.0], + [0.0, 0.277941010632, 0.272590033753, 0.262508456573, 0.249575644369, 0.236819624466, 0.22435278983, 0.212494186465, 0.201209176736, 0.190253471653, 0.179369529175, 0.168390423704, 0.157165917998, 0.145461943046, 0.133125385153, 0.119757416232, 0.104942533158, 0.088683220812, 0.069987433035, 0.047149171498, 0.022199217051, 0.0], + [0.0, 0.276729361673, 0.271339868029, 0.261207577116, 0.248408728387, 0.235779582971, 0.223539462721, 0.21177742431, 0.200585497643, 0.189723632408, 0.178976913984, 0.168083440145, 0.156967778391, 0.145353144437, 0.133094069954, 0.119804704149, 0.105057729946, 0.088850254364, 0.070187756907, 0.045033066422, 0.02123444381, 0.0], + [0.0, 0.275611820556, 0.270183041742, 0.259998334758, 0.247327661476, 0.234819852284, 0.222799633066, 0.21112957722, 0.200026414687, 0.189254224649, 0.17860534905, 0.16782860303, 0.156796701534, 0.145288731737, 0.133103304506, 0.11988856307, 0.105205261677, 0.089043205017, 0.068671328053, 0.043111085832, 0.020355977974, 0.0], + [0.0, 0.274586574581, 0.269117665407, 0.258878730602, 0.246330672907, 0.23393887417, 0.222047586948, 0.210549621549, 0.199531049838, 0.188844515838, 0.178282444006, 0.16762552054, 0.15667366954, 0.145266797089, 0.133153102877, 0.120009121015, 0.105382861788, 0.089263930969, 0.065787932465, 0.041358530155, 0.019552986915, 0.0], + [0.0, 0.273651976056, 0.26814201583, 0.257846933479, 0.245416145875, 0.23313523153, 0.221351753019, 0.210036647264, 0.199098630015, 0.188493870147, 0.178014831615, 0.167462204554, 0.156598494489, 0.145267021376, 0.13324354099, 0.120166562411, 0.105588264198, 0.089477704042, 0.063155100153, 0.039754534899, 0.018816369549, 0.0], + [0.0, 0.272806535687, 0.267254529119, 0.256901272407, 0.244582610929, 0.232407642699, 0.220727292189, 0.209589854416, 0.19872848412, 0.188201746024, 0.17780210049, 0.167330677651, 0.156571061734, 0.145311509025, 0.133361445924, 0.120352150337, 0.105823453758, 0.085945749516, 0.060742503056, 0.038281534745, 0.018138562798, 0.0], + [0.0, 0.272048916661, 0.266453794429, 0.256040229806, 0.243828740067, 0.231754956357, 0.220173223036, 0.209134424871, 0.198420040462, 0.187967694138, 0.177643924665, 0.167250263261, 0.156571631534, 0.145394841225, 0.133507338433, 0.120563595134, 0.106090250869, 0.082705349066, 0.05852457887, 0.036924636659, 0.017513039485, 0.0], + [0.0, 0.271377929407, 0.265738548381, 0.255262435421, 0.24315334147, 0.231176147003, 0.219688680304, 0.20873790301, 0.198172824597, 0.187791355689, 0.177540062378, 0.167220838742, 0.15661563796, 0.145509857662, 0.133690593814, 0.120812649679, 0.105857013544, 0.079723759404, 0.056479515677, 0.03567112854, 0.016934207677, 0.0], + [0.0, 0.270792526965, 0.26510767012, 0.254566660888, 0.242555354825, 0.230670310967, 0.219272911572, 0.20840624435, 0.197962580711, 0.187672461057, 0.177490355159, 0.167242359258, 0.156707417148, 0.145669463673, 0.133915200904, 0.121099699825, 0.10208040764, 0.076972003473, 0.054588617612, 0.034510078506, 0.016397249147, 0.0], + [0.0, 0.270291800965, 0.264560176972, 0.253951814925, 0.242033847204, 0.230236662933, 0.218925274372, 0.208138938507, 0.197774171968, 0.187610828796, 0.177494727246, 0.1673148576, 0.156847109131, 0.145873903601, 0.134181505737, 0.121420380508, 0.098592983297, 0.074425681509, 0.052835803014, 0.033432090075, 0.015897989645, 0.0], + [0.0, 0.269874978149, 0.26409522067, 0.2534169391, 0.241588009479, 0.22987453293, 0.218645233754, 0.207935575544, 0.19764626924, 0.187588332859, 0.177553185301, 0.167438444315, 0.157034927423, 0.146123491365, 0.134489920395, 0.121562812348, 0.095363887596, 0.072063675128, 0.0512071635, 0.032428986718, 0.015432780919, 0.0], + [0.0, 0.269541417442, 0.263712084119, 0.252961204142, 0.241217153223, 0.22958336379, 0.218432360265, 0.207795844429, 0.19757867732, 0.187592871686, 0.177665818435, 0.167613308117, 0.157271159817, 0.146418611643, 0.134835021841, 0.117612462007, 0.092366604669, 0.069867608132, 0.049690609386, 0.031493638335, 0.014998462921, 0.0], + [0.0, 0.269083772154, 0.263410178687, 0.252583906782, 0.240920708108, 0.229362709053, 0.218286328338, 0.207719531876, 0.19757129317, 0.187654573518, 0.177800004215, 0.167837749585, 0.157556169467, 0.14675398781, 0.135214521201, 0.113943895261, 0.089578385354, 0.067821476879, 0.048275582347, 0.030619799382, 0.014592244704, 0.0], + [0.0, 0.268640612756, 0.26318904198, 0.252284467082, 0.240698219749, 0.22921223128, 0.218206915071, 0.207706521545, 0.197624105539, 0.187773532409, 0.177986069482, 0.168088988338, 0.157870694263, 0.147127809748, 0.13563459763, 0.110529652621, 0.086979284801, 0.065911287011, 0.046952820909, 0.029801976142, 0.014211665122, 0.0], + [0.0, 0.268280497125, 0.262928203292, 0.252062426258, 0.240549347999, 0.229131700801, 0.218169857865, 0.207756793611, 0.19773719492, 0.187949929902, 0.178226871091, 0.168392351223, 0.158233905914, 0.147538985717, 0.13294326349, 0.107345756965, 0.084551785424, 0.064124748409, 0.045714167765, 0.029035317225, 0.013854543607, 0.0], + [0.0, 0.268002872664, 0.26262567558, 0.251917444951, 0.240473865682, 0.229094612357, 0.218146483129, 0.207818353235, 0.197908967174, 0.188184035709, 0.178522778594, 0.168748306399, 0.158641410468, 0.147997493336, 0.129132810727, 0.104371057049, 0.082280487906, 0.062451024112, 0.044552410473, 0.028315522659, 0.013518945231, 0.0], + [0.0, 0.267807314567, 0.26240368209, 0.251849301966, 0.240471657739, 0.229060840084, 0.218189568938, 0.207934026603, 0.198095047242, 0.188464832235, 0.178874247757, 0.169150078383, 0.159090932091, 0.148499077075, 0.125571825246, 0.101586875616, 0.080151801287, 0.06088052237, 0.043461148975, 0.027638768021, 0.01320314742, 0.0], + [0.0, 0.267693524239, 0.262261883619, 0.251805519475, 0.240542720807, 0.229096852602, 0.21829918095, 0.20811325743, 0.198341951294, 0.188779451727, 0.179254822395, 0.169591355661, 0.159591759792, 0.148390958463, 0.122238199251, 0.098976734089, 0.07815368594, 0.05940472344, 0.042434684816, 0.027001640754, 0.012905608122, 0.0], + [0.0, 0.267661328173, 0.262191612965, 0.251709900836, 0.240687163202, 0.229202704787, 0.218475486349, 0.208356319611, 0.198650057839, 0.189152837548, 0.179690927435, 0.170086886991, 0.160142216696, 0.144460551119, 0.119112330169, 0.096526027187, 0.076275439197, 0.058016034533, 0.041467928025, 0.026401086477, 0.012624944584, 0.0], + [0.0, 0.26771067731, 0.262195658651, 0.2516909932, 0.240905205323, 0.229378558063, 0.21871875446, 0.208663585487, 0.199019840796, 0.189585567382, 0.180184179333, 0.170637452748, 0.160735744566, 0.140774658471, 0.116176835978, 0.094221756455, 0.074507510374, 0.056707667708, 0.040556318457, 0.025834363477, 0.012359913441, 0.0], + [0.0, 0.267841646853, 0.262279598601, 0.251748767758, 0.241011304896, 0.229624680998, 0.219029357761, 0.209035527247, 0.199451871285, 0.190078314149, 0.180735351917, 0.171239075643, 0.161376534001, 0.137312909574, 0.113416115886, 0.092052312727, 0.072841358395, 0.0554735366, 0.039695759052, 0.025299003988, 0.01210939372, 0.0], + [0.0, 0.268054436548, 0.262443560766, 0.251883312559, 0.241133045561, 0.229941450308, 0.219407773272, 0.209472718701, 0.19994681979, 0.190631848584, 0.181345315888, 0.171885968175, 0.16018135206, 0.134057172619, 0.110816005171, 0.090007314855, 0.071269328619, 0.054308168674, 0.038882558943, 0.024792781089, 0.011872372277, 0.0], + [0.0, 0.268349371428, 0.262687795359, 0.25209483284, 0.241324777409, 0.230236726282, 0.219849781709, 0.20997583746, 0.200505458722, 0.191247042219, 0.181994272285, 0.172584922391, 0.156381751104, 0.130991156154, 0.108364699054, 0.088077379243, 0.069784527059, 0.053206630348, 0.038113384772, 0.024313680303, 0.011647931274, 0.0], + [0.0, 0.268726903028, 0.263012675791, 0.252383651789, 0.241590463759, 0.230598179979, 0.220288900571, 0.210509024471, 0.201106828491, 0.1918969668, 0.182699956626, 0.173336127299, 0.152803592333, 0.128100385175, 0.106051092621, 0.086254191038, 0.068380726721, 0.052164462833, 0.037385218859, 0.023859875133, 0.011435237363, 0.0], + [0.0, 0.269187611072, 0.263418700059, 0.252750211752, 0.241930511369, 0.231031255383, 0.220797168661, 0.211087186405, 0.201752404554, 0.192605605715, 0.183463540689, 0.174138140873, 0.149429961251, 0.125371083746, 0.103865189888, 0.084530174248, 0.067052293272, 0.051177626962, 0.036695323125, 0.023429705909, 0.011233532316, 0.0], + [0.0, 0.26973220566, 0.263906492627, 0.253195075894, 0.242345442409, 0.231536621527, 0.221375376639, 0.211733206534, 0.202464009823, 0.193378621099, 0.184275786719, 0.172615996822, 0.146245613061, 0.122791795132, 0.101797934757, 0.082898370856, 0.065794117189, 0.050242450993, 0.036041207873, 0.023021661443, 0.01104212488, 0.0], + [0.0, 0.270361529949, 0.264476806769, 0.253718930315, 0.242835896427, 0.232115062927, 0.222024429272, 0.212448105427, 0.203242781554, 0.194209028198, 0.185151906697, 0.168925619224, 0.143236867519, 0.120352401155, 0.099841170604, 0.081352687719, 0.064601604359, 0.049355601077, 0.035420604669, 0.022634363067, 0.010860383677, 0.0], + [0.0, 0.271076563366, 0.265130527434, 0.254322586653, 0.243402632766, 0.232767482583, 0.222745348932, 0.213233021159, 0.204089975295, 0.195087796322, 0.186080829939, 0.165438960331, 0.140391088907, 0.118043298417, 0.097987461515, 0.079887146788, 0.063470539912, 0.048514037929, 0.034831442731, 0.02226655069, 0.010687730993, 0.0], + [0.0, 0.271878425366, 0.265868674622, 0.25500698517, 0.244046533458, 0.233494905455, 0.223539279584, 0.214089213818, 0.204982643966, 0.19603453864, 0.187066552138, 0.162141617328, 0.137695687033, 0.115855759831, 0.096230098417, 0.078496950218, 0.062397079705, 0.047714977672, 0.034271828279, 0.021917066548, 0.010523637329, 0.0], + [0.0, 0.272768379758, 0.266659589034, 0.255773198371, 0.244768606603, 0.23429848245, 0.224407491301, 0.215007157709, 0.205935095684, 0.197044451414, 0.185885166234, 0.159020614508, 0.135142224976, 0.113781818157, 0.094562957129, 0.077177417364, 0.061377711194, 0.046955858691, 0.03374002645, 0.021584850754, 0.010367616604, 0.0], + [0.0, 0.273747839649, 0.267450645134, 0.256622435155, 0.245569990278, 0.235179494943, 0.225351385332, 0.215962772899, 0.206959776098, 0.198111278485, 0.182284433676, 0.156063986778, 0.132721434886, 0.111814280188, 0.092980437435, 0.07592425869, 0.060409219193, 0.046234372303, 0.033234445403, 0.021268937927, 0.010219221938, 0.0], + [0.0, 0.274818373019, 0.268328387216, 0.257556045544, 0.246451956973, 0.236139359866, 0.226338469202, 0.216993313973, 0.208055365005, 0.199241112135, 0.178873860264, 0.153260719414, 0.130424751211, 0.109946553173, 0.091476810587, 0.074733546624, 0.05948865582, 0.045548386493, 0.032753622306, 0.020968434075, 0.010078041906, 0.0], + [0.0, 0.275879458163, 0.269294209286, 0.258445617035, 0.247415918621, 0.237179635405, 0.227371243103, 0.218100491433, 0.209198275562, 0.200434308517, 0.175640989451, 0.150599335139, 0.128244575183, 0.10817260649, 0.090047925979, 0.073601679111, 0.058613270918, 0.044895935, 0.032296210961, 0.02068251574, 0.009943697235, 0.0], + [0.0, 0.276741027129, 0.270347201253, 0.259416899234, 0.248463432235, 0.238302027349, 0.228483402512, 0.219275487963, 0.210418261661, 0.200166620788, 0.172574393385, 0.148073028555, 0.126173848133, 0.106486900115, 0.088689457011, 0.072525347522, 0.057780483608, 0.044275207636, 0.031860970844, 0.020410423458, 0.009815837856, 0.0], + [0.0, 0.277692847222, 0.271491380223, 0.260475152022, 0.24959620621, 0.239441998596, 0.229676801062, 0.220498874718, 0.211702420236, 0.196637703793, 0.169663782618, 0.14567348878, 0.124206135345, 0.104884257132, 0.087397535777, 0.071501501001, 0.056988051901, 0.043684535708, 0.031446757382, 0.020151455951, 0.009694140293, 0.0], + [0.0, 0.278736436122, 0.27248583027, 0.261622093196, 0.250816107322, 0.24064070229, 0.230906874335, 0.221803931851, 0.213057952616, 0.193288741946, 0.166899719225, 0.143393398703, 0.122335546427, 0.103359228547, 0.086168583381, 0.070527338362, 0.056233959442, 0.043122379067, 0.031052513293, 0.019904964947, 0.009578305322, 0.0], + [0.0, 0.279873472132, 0.27356819016, 0.262834946868, 0.252122080052, 0.241871234462, 0.232209947752, 0.223192920844, 0.214478369331, 0.190108718608, 0.164269759902, 0.141225940702, 0.120556472733, 0.101908085197, 0.084999233479, 0.069600279579, 0.055516253297, 0.042587314579, 0.030677260877, 0.019670350565, 0.009468055889, 0.0], + [0.0, 0.281105800927, 0.274743206172, 0.263994406534, 0.253382699096, 0.243160813272, 0.233599372335, 0.224640507371, 0.215634179179, 0.187087568347, 0.161769625615, 0.139164791018, 0.118864030703, 0.100527322845, 0.083886395402, 0.068717936936, 0.054833120114, 0.042078025849, 0.030320095124, 0.01944705718, 0.009363135235, 0.0], + [0.0, 0.282435443073, 0.27601279831, 0.265245295402, 0.254733972126, 0.244539105283, 0.235077562146, 0.226167625476, 0.212160497164, 0.184216130639, 0.159392277515, 0.137203925481, 0.11725367192, 0.099213293809, 0.082827223966, 0.067878046426, 0.054182897555, 0.041593294029, 0.029980155952, 0.019234569716, 0.009263305226, 0.0], + [0.0, 0.283864602371, 0.27737906313, 0.26658968733, 0.256110728201, 0.246008475067, 0.236647122775, 0.227757671946, 0.208859338184, 0.181485577006, 0.157130962298, 0.13533817522, 0.115720659117, 0.097962629179, 0.081819077901, 0.067078114507, 0.053564031561, 0.041131959132, 0.02965665904, 0.019032410331, 0.009168344845, 0.0], + [0.0, 0.285395675108, 0.278844282481, 0.268029837154, 0.257548491599, 0.247571478237, 0.238271326015, 0.229432564103, 0.205720791253, 0.17888384073, 0.154979165559, 0.133562625191, 0.114260246663, 0.096772214106, 0.080859512769, 0.066316730458, 0.052975077336, 0.040692997346, 0.029348905621, 0.018840135421, 0.009078048834, 0.0], + [0.0, 0.287031260264, 0.280410933184, 0.269568190294, 0.259081853246, 0.249230872896, 0.239972431681, 0.231176684434, 0.202735918308, 0.176408213875, 0.152931391007, 0.131872709553, 0.112870188932, 0.095639153776, 0.07994618542, 0.065592175396, 0.052414726138, 0.040275407804, 0.02905623276, 0.018657332934, 0.008992226474, 0.0], + [0.0, 0.288774170781, 0.282079002528, 0.271207393368, 0.260713474038, 0.250989632252, 0.241735728989, 0.229031623319, 0.199896070508, 0.174052224634, 0.150982417097, 0.130264207245, 0.111547105367, 0.094560598699, 0.079077077402, 0.064902838097, 0.051881743511, 0.039878174184, 0.028778018954, 0.018483619943, 0.008910700482, 0.0], + [0.0, 0.290627445984, 0.283845864543, 0.272950305879, 0.26244622632, 0.252827566337, 0.243599883392, 0.225764942083, 0.197192645346, 0.17180965337, 0.14912712548, 0.128733178682, 0.110287442276, 0.093534272527, 0.078249567906, 0.064247160321, 0.051374982899, 0.039500614568, 0.028513685588, 0.018318640455, 0.008833306018, 0.0], + [0.0, 0.292594365249, 0.285722582765, 0.274800013082, 0.264283206963, 0.254678139742, 0.245544089807, 0.222656757736, 0.194614388527, 0.169674899139, 0.147361218749, 0.127273984574, 0.10908876982, 0.092557877187, 0.07746226729, 0.063623774118, 0.050893378864, 0.039141948426, 0.028262694696, 0.018162061175, 0.008759889777, 0.0], + [0.0, 0.294678463052, 0.287712506278, 0.276759840153, 0.266227751777, 0.256613988306, 0.247558427457, 0.219698648731, 0.1921596747, 0.167642981943, 0.145680291175, 0.12588400529, 0.10794840164, 0.091629279058, 0.076713786554, 0.063031384484, 0.050435940958, 0.038801450006, 0.02802454599, 0.018013575604, 0.008690309178, 0.0], + [0.0, 0.296726603994, 0.289819242851, 0.27883336777, 0.268204624498, 0.258658885144, 0.247443315688, 0.216883173762, 0.189822988363, 0.165709033969, 0.144080328059, 0.124561591151, 0.106863843665, 0.090746496092, 0.076002561373, 0.062468777413, 0.050001612692, 0.038478444358, 0.027798774172, 0.017872898367, 0.008624431621, 0.0], + [0.0, 0.298694624419, 0.292027613437, 0.280953785884, 0.270254453974, 0.260816719865, 0.244197940809, 0.214196197725, 0.187598906004, 0.163868099093, 0.14255807983, 0.123303841234, 0.105832693998, 0.089907686201, 0.075327137403, 0.061934823996, 0.049589373724, 0.038172303741, 0.027584946505, 0.017739763176, 0.008562133816, 0.0], + [0.0, 0.300781157267, 0.294051441578, 0.282915402507, 0.272360977677, 0.263018143907, 0.24110878191, 0.211636092541, 0.18548218285, 0.162116293468, 0.14110917616, 0.122108060925, 0.104852812694, 0.089109980364, 0.074686162214, 0.061428474303, 0.04919874046, 0.037882444353, 0.0273826606, 0.017613922467, 0.00850330078, 0.0], + [0.0, 0.302989989092, 0.296194370113, 0.284976432742, 0.274557921391, 0.26531393708, 0.238167941895, 0.209199433606, 0.183467306929, 0.160449904103, 0.139728595914, 0.120971746056, 0.103922275263, 0.08835267446, 0.074078377985, 0.060948623828, 0.048828761131, 0.037608167447, 0.027191435163, 0.017495146191, 0.008447825873, 0.0], + [0.0, 0.305325195763, 0.298460342857, 0.287155824772, 0.276875620536, 0.267608822531, 0.235357617075, 0.206880545188, 0.18155032715, 0.158865323296, 0.13841652299, 0.119892568584, 0.103039219674, 0.087634375254, 0.073502249363, 0.060494239717, 0.048478851905, 0.037349117099, 0.027010895411, 0.017383220708, 0.008395610912, 0.0], + [0.0, 0.30779116224, 0.300853603005, 0.289457659135, 0.279270878399, 0.264365138798, 0.232682011365, 0.204673518635, 0.179727173237, 0.157359198997, 0.137170256654, 0.11886820687, 0.102201436142, 0.086953684435, 0.072957031563, 0.060064390766, 0.048148484073, 0.03710483626, 0.026840859321, 0.017277940168, 0.00834656428, 0.0], + [0.0, 0.310392604362, 0.303323122634, 0.291886324474, 0.281731793724, 0.261267055287, 0.230135869436, 0.2025739007, 0.177993934414, 0.155927449763, 0.135986815839, 0.117896241902, 0.101407755044, 0.086309574598, 0.072441746714, 0.059658287732, 0.047837061468, 0.036874889541, 0.026681027082, 0.017179118747, 0.008300601133, 0.0], + [0.0, 0.313134592837, 0.305772167336, 0.29443721497, 0.284280919942, 0.258318102416, 0.227713079383, 0.200577130529, 0.176346544714, 0.154563023679, 0.134863783183, 0.11697538604, 0.1006544601, 0.085700850445, 0.071955454188, 0.059275573904, 0.047544030818, 0.036658826253, 0.026531120913, 0.017086596461, 0.008257643019, 0.0], + [0.0, 0.316022579694, 0.308355774051, 0.296919236261, 0.28689378288, 0.255511140718, 0.225408172599, 0.198678898569, 0.174781595234, 0.153267472024, 0.133799570307, 0.116103896082, 0.099942412045, 0.085126401302, 0.071497280511, 0.058915570931, 0.047268879183, 0.03645595663, 0.02639088382, 0.017000216129, 0.008217617535, 0.0], + [0.0, 0.318487523982, 0.310843733722, 0.299465922067, 0.286400587299, 0.25284045596, 0.22321629682, 0.196875592314, 0.173295835572, 0.152039294717, 0.132792154471, 0.11528015141, 0.099270393851, 0.084585041983, 0.071066415275, 0.058577650033, 0.047011131641, 0.036266306277, 0.026260078466, 0.016919822281, 0.008180458021, 0.0], + [0.0, 0.321081523289, 0.313369427684, 0.302149505729, 0.283288216083, 0.250299659109, 0.221133078142, 0.195162463254, 0.171881599798, 0.15087623744, 0.131839655044, 0.114502646051, 0.098637197834, 0.084075925347, 0.070661427084, 0.058261229166, 0.046770349184, 0.036089555237, 0.026138486147, 0.016845157413, 0.008146103271, 0.0], + [0.0, 0.323817572445, 0.316033557326, 0.304882946814, 0.280326463547, 0.247884072242, 0.219153855954, 0.193537335655, 0.170539617291, 0.149776116091, 0.130940324225, 0.113768493326, 0.09804170347, 0.08359821325, 0.070281776414, 0.057965770445, 0.046546111384, 0.035925408856, 0.026025905863, 0.016776236373, 0.008114497285, 0.0], + [0.0, 0.326701023646, 0.318841328832, 0.307651938949, 0.277509037094, 0.245587989638, 0.217274619731, 0.191997050766, 0.169269589469, 0.14873690052, 0.130092174912, 0.113075993344, 0.097482872248, 0.083151084644, 0.069927370249, 0.057690777808, 0.046338007975, 0.035773596535, 0.025922153478, 0.01671294719, 0.008085589037, 0.0], + [0.0, 0.329737631614, 0.321600863124, 0.310433822337, 0.274829482955, 0.243406353409, 0.215492421253, 0.190530770946, 0.168069154952, 0.147756704678, 0.129294009011, 0.112425911576, 0.096959743007, 0.082733731585, 0.069597436793, 0.057435563008, 0.046145340742, 0.035633673461, 0.025826846791, 0.016655055155, 0.008059224218, 0.0], + [0.0, 0.332337126132, 0.324164126379, 0.307252988779, 0.272266340716, 0.241335588779, 0.213803812458, 0.189141846791, 0.166936119413, 0.14683347111, 0.128543711567, 0.111816101683, 0.096470372421, 0.082344525865, 0.069290884172, 0.057199507647, 0.045967506961, 0.035505464953, 0.025739887496, 0.016602501782, 0.008035377176, 0.0], + [0.0, 0.33493887884, 0.326868945406, 0.304218200296, 0.269805333145, 0.239357246072, 0.21219052414, 0.187829449371, 0.165866884295, 0.145964380707, 0.127838185385, 0.111246183365, 0.096014887735, 0.081982653663, 0.069007948533, 0.056982671107, 0.045804937645, 0.035388916875, 0.025661108581, 0.016555306065, 0.008014104815, 0.0], + [0.0, 0.337685363285, 0.329521097714, 0.301332410911, 0.267467802185, 0.237470799122, 0.210663852898, 0.186589669001, 0.164860558123, 0.145149471638, 0.127175575669, 0.110715599269, 0.095592665593, 0.081647819321, 0.068748170318, 0.056784704209, 0.045657372831, 0.035283844077, 0.025590581767, 0.016513393792, 0.007995373825, 0.0], + [0.0, 0.340132562393, 0.332146833532, 0.298588816519, 0.265250530859, 0.235683156576, 0.209221010481, 0.185422258863, 0.163915998516, 0.144387348815, 0.126558151451, 0.110223468108, 0.0952030134, 0.081340385208, 0.068511131508, 0.056605164987, 0.045524578448, 0.035190080881, 0.025528196384, 0.016476699487, 0.00797915505, 0.0], + [0.0, 0.342272598676, 0.333162714053, 0.295926967215, 0.263147116344, 0.233991864422, 0.207860235581, 0.184325163975, 0.163031578944, 0.143676724132, 0.125984884132, 0.109768981362, 0.094845298402, 0.081059856608, 0.068296453946, 0.056442862469, 0.045406345391, 0.035107480431, 0.025473855143, 0.016445166148, 0.007965423375, 0.0], + [0.0, 0.344278341979, 0.329931534945, 0.293380875873, 0.261154231782, 0.232394702617, 0.206578759705, 0.183296300793, 0.162205796337, 0.143009905407, 0.125454829262, 0.109351399927, 0.094518148248, 0.080805785971, 0.068103797829, 0.056298588087, 0.045302488705, 0.035035833459, 0.025427473762, 0.01641874503, 0.007954157632, 0.0], + [0.0, 0.346033498312, 0.326752268166, 0.290963668823, 0.259269688096, 0.230887777635, 0.20537516377, 0.182333180132, 0.161437264557, 0.142391989734, 0.124967122605, 0.108969674608, 0.094219495382, 0.080577771133, 0.067932860372, 0.056172116333, 0.045212846874, 0.034974672377, 0.025388980646, 0.016397395468, 0.007945340521, 0.0], + [0.0, 0.34762303356, 0.323647247306, 0.288671232053, 0.257476942718, 0.229469717931, 0.204247367025, 0.181435105913, 0.160724708482, 0.141822405478, 0.124520976603, 0.108623443026, 0.093951252222, 0.080375453732, 0.067783374636, 0.056063250662, 0.045137281199, 0.034924344213, 0.025358316611, 0.0163810071, 0.007938958541, 0.0], + [0.0, 0.349277536283, 0.320691556996, 0.286495790724, 0.255735350641, 0.22813463462, 0.203190864327, 0.180598761031, 0.160057760384, 0.141299387191, 0.124115320672, 0.108312293129, 0.093712996951, 0.080198517819, 0.067655108493, 0.055971822733, 0.045075675271, 0.034884771653, 0.025335434667, 0.016369571772, 0.007935001945, 0.0], + [0.0, 0.351055309683, 0.31769906354, 0.284332221318, 0.254091320321, 0.226871141766, 0.202204688477, 0.179819839668, 0.159440897939, 0.1408204027, 0.123747231695, 0.108032412014, 0.093502401677, 0.080045318675, 0.0675454861, 0.055896980076, 0.045027399325, 0.034855591999, 0.02532012178, 0.01636307153, 0.00793344689, 0.0], + [0.0, 0.352846150889, 0.314761258679, 0.282278812742, 0.252542825618, 0.225656432606, 0.201271555777, 0.17908945173, 0.15887579952, 0.140387273465, 0.123418802944, 0.107782465386, 0.093320662655, 0.079916429574, 0.06745535223, 0.05583874479, 0.044992132223, 0.034836414283, 0.0253118376, 0.016361040386, 0.007933963179, 0.0], + [0.0, 0.351813799172, 0.311957517033, 0.280332660589, 0.251089111288, 0.224522689273, 0.200397630557, 0.178419101464, 0.158362761118, 0.139999314845, 0.123129520062, 0.107566362777, 0.093167953555, 0.079812227376, 0.067385957652, 0.055797609523, 0.044969835957, 0.034827860728, 0.025311183676, 0.016363993759, 0.007936897349, 0.0], + [0.0, 0.345472906619, 0.308939960921, 0.278480232436, 0.249724375534, 0.223468011529, 0.199591796481, 0.177807710837, 0.157900968784, 0.139655917863, 0.122878789782, 0.107383769686, 0.093044039235, 0.07973219919, 0.06733719619, 0.055773511465, 0.044961250627, 0.034829918299, 0.025318063853, 0.016371936149, 0.007942253872, 0.0], + [0.0, 0.339297803537, 0.306033168754, 0.27657795314, 0.248396689342, 0.222488118046, 0.198852747126, 0.177254305009, 0.157489695233, 0.139356546847, 0.122659703546, 0.107234404729, 0.092948729568, 0.079673747339, 0.067308993391, 0.055766413869, 0.04496636315, 0.034842590131, 0.025332666445, 0.016384879669, 0.007950040925, 0.0], + [0.0, 0.333439361099, 0.303042558518, 0.274784620373, 0.247116617746, 0.221574862487, 0.198176023422, 0.17675800846, 0.157128297007, 0.139100737366, 0.122478638938, 0.107118038582, 0.09288187873, 0.079639622358, 0.067301306254, 0.055776305921, 0.044985181316, 0.034865895541, 0.025355013731, 0.016402844089, 0.007960270418, 0.0], + [0.0, 0.32787797253, 0.300001846313, 0.273062118799, 0.245924198619, 0.220736037096, 0.197557710851, 0.17631342778, 0.156816211989, 0.138888094457, 0.122335317697, 0.107034493113, 0.092843384654, 0.079629772212, 0.067314123065, 0.055801637058, 0.045017733818, 0.034899870103, 0.025385139866, 0.016425856913, 0.00797295804, 0.0], + [0.0, 0.322595709491, 0.297011740693, 0.271262394158, 0.244817447512, 0.219931123772, 0.197003066967, 0.17592143619, 0.156546630232, 0.138706757634, 0.122229461167, 0.10698364072, 0.092832958845, 0.07964418189, 0.067347463356, 0.055843833951, 0.045064070358, 0.034944300813, 0.025423091008, 0.016453953476, 0.007988123315, 0.0], + [0.0, 0.317576150259, 0.293802034091, 0.269521524208, 0.243773962165, 0.219173619079, 0.196509459077, 0.175584549844, 0.156319329676, 0.138563981246, 0.122155269166, 0.106962104374, 0.092844937842, 0.07968268249, 0.067401377976, 0.055903136234, 0.045124261835, 0.034999052708, 0.025468925493, 0.01648714349, 0.008005789679, 0.0], + [0.0, 0.312804228755, 0.290748576247, 0.267857574231, 0.242685068451, 0.218487639605, 0.196032794971, 0.175281502188, 0.156130366316, 0.13846363248, 0.122118343044, 0.106971431264, 0.092882188014, 0.079741911441, 0.067473530647, 0.055978360797, 0.04519791877, 0.0350646711, 0.02552271405, 0.016525367365, 0.00802598457, 0.0], + [0.0, 0.308266101537, 0.287689755709, 0.266029912399, 0.241677475181, 0.217851108246, 0.195617880627, 0.175024445225, 0.15598931774, 0.138404514092, 0.122118626515, 0.107011697143, 0.092947792251, 0.079825562235, 0.067563413801, 0.056069276695, 0.045283590222, 0.035139234309, 0.025583147528, 0.016568025596, 0.00804830437, 0.0], + [0.0, 0.303949030322, 0.284499201161, 0.26424827617, 0.240751246022, 0.217278938097, 0.19525797571, 0.174821315409, 0.155895968343, 0.138387340747, 0.122156120011, 0.107079200373, 0.093041850709, 0.079933762884, 0.067673311954, 0.056177628479, 0.045382872912, 0.035224868005, 0.025651502139, 0.016615720448, 0.008073027299, 0.0], + [0.0, 0.299841277975, 0.281456242187, 0.262534532794, 0.239845278688, 0.216738530124, 0.194942807025, 0.174670665381, 0.155850175686, 0.13841232817, 0.122230880683, 0.107179457327, 0.093163926679, 0.080066679445, 0.067804255692, 0.056303583669, 0.045495570614, 0.035321705715, 0.025727606943, 0.016668782824, 0.00810037764, 0.0], + [0.0, 0.295932016199, 0.278525667117, 0.26059556965, 0.238818593046, 0.216214621919, 0.194687862377, 0.174557549265, 0.155850782541, 0.138479514437, 0.122338064443, 0.107312621295, 0.093314613474, 0.080221707877, 0.067956447471, 0.056447337977, 0.045622761157, 0.035429899372, 0.025811983016, 0.016727296817, 0.008130398948, 0.0], + [0.0, 0.292211243438, 0.275549148875, 0.258622578037, 0.237872106679, 0.215758804165, 0.194483705949, 0.174497698852, 0.15588650213, 0.138586021283, 0.12247825964, 0.10747889641, 0.093494313923, 0.080399973389, 0.068130123782, 0.056609116056, 0.045764644296, 0.03554961991, 0.025904831176, 0.016791355899, 0.008163139431, 0.0], + [0.0, 0.288669711702, 0.272664258649, 0.256756860253, 0.236962494588, 0.215324320606, 0.194279729853, 0.174488124922, 0.155969726463, 0.138715504002, 0.12264861806, 0.107676738558, 0.09370330583, 0.080603640265, 0.06832555605, 0.056787442697, 0.045921444432, 0.03568105793, 0.026006300083, 0.016861063299, 0.008198652155, 0.0], + [0.0, 0.285298861214, 0.269859786085, 0.254738522374, 0.235932971133, 0.214904197849, 0.194135254695, 0.174483158187, 0.156068659541, 0.138881753809, 0.122853428067, 0.10790053818, 0.093933862416, 0.08083080134, 0.068543051686, 0.056983345118, 0.0460934115, 0.035824030443, 0.02611655366, 0.016936532414, 0.008236995247, 0.0], + [0.0, 0.282090761937, 0.267170930997, 0.252815767796, 0.234859048037, 0.214471305181, 0.194012736433, 0.174531354163, 0.156215333113, 0.139090821843, 0.12309648234, 0.108158284728, 0.094186877993, 0.081078475067, 0.0687769426, 0.057194865173, 0.046279426966, 0.035978084886, 0.026235771751, 0.017017685927, 0.008278232145, 0.0], + [0.0, 0.279038061157, 0.26451915142, 0.250840080165, 0.233800630169, 0.214105240424, 0.193937721243, 0.174624451235, 0.156409971444, 0.139343029504, 0.123378156922, 0.108448059097, 0.094470114503, 0.081352528185, 0.069030222465, 0.057422775683, 0.046477619997, 0.036140745689, 0.026361324527, 0.017103077668, 0.008321544924, 0.0], + [0.0, 0.276133936411, 0.261998517427, 0.248823956944, 0.232672683997, 0.213773094754, 0.193868575145, 0.174740402324, 0.156652099038, 0.13963876605, 0.123698889839, 0.108765085043, 0.094784018851, 0.081653397012, 0.069304515012, 0.057670146987, 0.046690769056, 0.036315996431, 0.026495960803, 0.01719415057, 0.008367542757, 0.0], + [0.0, 0.273372053152, 0.259603800223, 0.246872727893, 0.231625785589, 0.213292649397, 0.193820052788, 0.174909822126, 0.156914011297, 0.139976877662, 0.124053988334, 0.109117305585, 0.095129090079, 0.081981564604, 0.069602282176, 0.057937383455, 0.046918779511, 0.036504128773, 0.026639202219, 0.017291493936, 0.008416629965, 0.0], + [0.0, 0.270746526618, 0.257330138163, 0.244949193343, 0.23044775824, 0.212794781121, 0.193830582613, 0.175062480399, 0.15720758929, 0.140325119071, 0.124431325227, 0.109505279512, 0.095505881341, 0.08233130057, 0.069924010535, 0.058224926581, 0.047163464783, 0.036705459538, 0.026792206352, 0.017395274718, 0.00846889143, 0.0], + [0.0, 0.268251887427, 0.25513466136, 0.243076711712, 0.229177269183, 0.212349609918, 0.193801805369, 0.175265740274, 0.157510152345, 0.140695565752, 0.124833161516, 0.109917843757, 0.095914393115, 0.082708896198, 0.070270231404, 0.058531988141, 0.047425237462, 0.036920332074, 0.026955236475, 0.01750567337, 0.008524418809, 0.0], + [0.0, 0.265883050511, 0.252958125513, 0.241239181415, 0.22784457291, 0.211785131339, 0.193722966749, 0.175508811557, 0.157862061316, 0.141111071081, 0.125275885463, 0.110360646922, 0.096335826772, 0.083106071108, 0.070638256294, 0.058857385063, 0.047704544578, 0.037148731914, 0.027128577036, 0.017622884644, 0.008583310954, 0.0], + [0.0, 0.263635287013, 0.250792309245, 0.239419491471, 0.226575069656, 0.211053681172, 0.193695867545, 0.175735841271, 0.158263862931, 0.141572289862, 0.125760204969, 0.110839432543, 0.096785382978, 0.083527026391, 0.071022130116, 0.05919384192, 0.047995170357, 0.037386167886, 0.027310568547, 0.017746155833, 0.008645438438, 0.0], + [0.0, 0.261504198843, 0.248738390285, 0.237571535298, 0.225272288272, 0.210360032566, 0.193727779027, 0.175930964184, 0.158663461521, 0.142079954349, 0.126286901299, 0.111340648587, 0.09726892258, 0.083977978633, 0.071425966333, 0.059551690103, 0.048301145127, 0.037633869731, 0.027499301688, 0.017872794821, 0.008708987468, 0.0], + [0.0, 0.259485695632, 0.246792404783, 0.235823171297, 0.22391818101, 0.209635275028, 0.19349976449, 0.176176623629, 0.159035670693, 0.142575941207, 0.126822680858, 0.11188065296, 0.097787254476, 0.084459693471, 0.071856126382, 0.059932258226, 0.048622417057, 0.037896496395, 0.02769821841, 0.018006778689, 0.008776170763, 0.0], + [0.0, 0.25757597381, 0.24495066659, 0.234171162518, 0.22248403653, 0.208978932828, 0.193206627995, 0.176476801792, 0.15944743757, 0.143067122834, 0.127361163687, 0.112456656801, 0.098341256381, 0.084964954379, 0.072313659971, 0.060336218918, 0.048963005917, 0.038174524328, 0.027908144297, 0.018148356477, 0.008847114522, 0.0], + [0.0, 0.255771497632, 0.243209748737, 0.232612501422, 0.221135077077, 0.208246454404, 0.19294412277, 0.176633619863, 0.159910178867, 0.143590129032, 0.127934304409, 0.11304092153, 0.098916440037, 0.085499719636, 0.072799374955, 0.060761493607, 0.04932353034, 0.03846846639, 0.028129910639, 0.018297796067, 0.008921954463, 0.0], + [0.0, 0.254068981935, 0.241566466617, 0.23114439554, 0.219868947574, 0.207346506407, 0.192658399571, 0.17667807663, 0.160371189785, 0.144159677186, 0.128551962043, 0.113653285183, 0.099496724375, 0.086041636551, 0.07329783175, 0.061200116901, 0.049701375525, 0.038777119142, 0.028363938789, 0.018455385526, 0.009000836519, 0.0], + [0.0, 0.252465376481, 0.240012895073, 0.229764254444, 0.218683468091, 0.206298183134, 0.19222362158, 0.176771159213, 0.160648262519, 0.144714311014, 0.129166444704, 0.114280277895, 0.100114533074, 0.086617019555, 0.073813458189, 0.061651401974, 0.050085683421, 0.03908719875, 0.028600825353, 0.018615147847, 0.009081187193, 0.0], + [0.0, 0.250957851718, 0.238543796515, 0.228469677908, 0.217576624202, 0.205322635613, 0.191691951006, 0.176819175222, 0.160973322265, 0.145170102747, 0.129792806695, 0.114949435811, 0.100770949676, 0.087224105515, 0.074356126843, 0.06212845749, 0.050487987959, 0.039413802448, 0.028847888418, 0.018780822783, 0.009164125926, 0.0], + [0.0, 0.249543785852, 0.237164376067, 0.22725844515, 0.21654655824, 0.204412885387, 0.191201776801, 0.176619630777, 0.161297028172, 0.145673288367, 0.130385107739, 0.115629920338, 0.101467142748, 0.087852101115, 0.074929827275, 0.062632180591, 0.050911599948, 0.039758122945, 0.029107376991, 0.018955299034, 0.009251437638, 0.0], + [0.0, 0.248220753093, 0.235872253249, 0.226128505061, 0.21547670397, 0.20356938782, 0.190772065848, 0.176421428537, 0.161517370495, 0.146167091659, 0.130992898029, 0.116282021984, 0.102114175618, 0.088496537119, 0.075535637197, 0.063157753661, 0.051358157156, 0.040120841359, 0.029380607019, 0.01913893207, 0.009343302526, 0.0], + [0.0, 0.246986512984, 0.234665227634, 0.224984977058, 0.214309874989, 0.202681593311, 0.19021336992, 0.17626217167, 0.161609256273, 0.146645645163, 0.131597750208, 0.116940756128, 0.10277796293, 0.089146979999, 0.076128122197, 0.063684072309, 0.051813167169, 0.04049133583, 0.029664241587, 0.019330898218, 0.009439914439, 0.0], + [0.0, 0.245839000718, 0.233541269263, 0.223798777268, 0.2131860117, 0.201703120574, 0.189451460758, 0.176156812744, 0.161705136669, 0.146973801173, 0.132213747644, 0.117643035581, 0.103482164444, 0.089817323228, 0.076742938148, 0.064228219692, 0.052274680027, 0.040863376225, 0.029946192827, 0.01951911382, 0.009534129824, 0.0], + [0.0, 0.24477631837, 0.232498509954, 0.222692498522, 0.212138156467, 0.200794920084, 0.188638207567, 0.17575275959, 0.161850461386, 0.147289062955, 0.132698376126, 0.118319121808, 0.104188203347, 0.090501168287, 0.07739153169, 0.064801655456, 0.052758343868, 0.041254999953, 0.030241608891, 0.019717095658, 0.009633154837, 0.0], + [0.0, 0.243796726955, 0.23153523544, 0.221657985409, 0.211161682502, 0.19995549693, 0.187888894739, 0.175131438047, 0.161814600966, 0.147650752661, 0.133188644102, 0.118863077097, 0.104797967982, 0.091186655796, 0.078075167027, 0.065391012299, 0.05326741865, 0.041666698102, 0.030552310774, 0.019925266521, 0.009737255653, 0.0], + [0.0, 0.242898639264, 0.230649878259, 0.220699871894, 0.210249061762, 0.199183483605, 0.187196178971, 0.174567481647, 0.161426006949, 0.147814636598, 0.133681179681, 0.119409691886, 0.105426415175, 0.091836420647, 0.078693736183, 0.065967313072, 0.053781099943, 0.042085934367, 0.030874720591, 0.020142897463, 0.009846663139, 0.0], + [0.0, 0.242080613416, 0.229841011344, 0.219816675702, 0.209407808745, 0.198477634407, 0.186558515173, 0.174059995855, 0.161088226338, 0.147672698153, 0.133903258722, 0.119952075542, 0.106034146495, 0.092471896075, 0.079324406552, 0.06655463449, 0.054284207511, 0.042496490975, 0.031186684297, 0.020350876102, 0.009951038012, 0.0], + [0.0, 0.241341347077, 0.229059379024, 0.219006965821, 0.208636560419, 0.197734568309, 0.185981640381, 0.173608181582, 0.160800735557, 0.147575941974, 0.13400900996, 0.120282844679, 0.106614414017, 0.093144797818, 0.079976235164, 0.067141203277, 0.054811051546, 0.042928341824, 0.031513833421, 0.020569525419, 0.010060410454, 0.0], + [0.0, 0.240679672294, 0.22834415089, 0.218269442268, 0.207934078572, 0.197027121302, 0.185464642379, 0.173211332068, 0.160563091046, 0.147524220386, 0.134146576489, 0.12059397524, 0.107058311976, 0.093707075262, 0.080551661819, 0.067740832232, 0.055365252227, 0.043373930388, 0.031857725962, 0.020799231171, 0.010175347808, 0.0], + [0.0, 0.240094550924, 0.227702519883, 0.217602930875, 0.207299244842, 0.196384325709, 0.184861273719, 0.172623787687, 0.160142595559, 0.147387646905, 0.134321382262, 0.120920800833, 0.107500698888, 0.094221543148, 0.081055650573, 0.068273400317, 0.055860256257, 0.043798196791, 0.032197160861, 0.021027751883, 0.010291052858, 0.0], + [0.0, 0.239585070595, 0.227094666802, 0.217006378642, 0.206731056284, 0.195764316484, 0.184250362803, 0.172072250939, 0.159692818358, 0.147075064361, 0.134226642418, 0.121189194927, 0.107979785205, 0.094683926563, 0.081570491586, 0.06877797248, 0.056351189679, 0.044222247097, 0.032522626467, 0.021250755234, 0.010403058183, 0.0], + [0.0, 0.239150441207, 0.226558503788, 0.216478849599, 0.206228621444, 0.195128098434, 0.183584902247, 0.171576324668, 0.159293947154, 0.146808429502, 0.134119449453, 0.121242820694, 0.108153187933, 0.095050509134, 0.082077140584, 0.069308553223, 0.056846985995, 0.044638202659, 0.032864271009, 0.021484918804, 0.010520768403, 0.0], + [0.0, 0.23878999191, 0.226093574612, 0.216019521185, 0.205791156897, 0.194555073685, 0.182979594157, 0.171054191666, 0.158910664277, 0.146523222428, 0.133913630435, 0.121124846355, 0.108201444538, 0.095248985111, 0.082402502229, 0.069747605942, 0.057261350848, 0.04504321982, 0.033214668434, 0.021722432093, 0.010644452394, 0.0], + [0.0, 0.238503168563, 0.22569915908, 0.215627681075, 0.205347748077, 0.194044339352, 0.182433652973, 0.170523197535, 0.158440642768, 0.146154119356, 0.133677344351, 0.121043936693, 0.10828274292, 0.095470357506, 0.082718635107, 0.070113489448, 0.057600861208, 0.04539033148, 0.033497706166, 0.02192636109, 0.010750334272, 0.0], + [0.0, 0.238289531645, 0.225374649001, 0.215302724465, 0.204944532717, 0.193595096036, 0.181946217571, 0.170047127581, 0.158021386385, 0.145831181179, 0.133482479074, 0.120986051566, 0.10839720723, 0.095718058046, 0.083057939601, 0.070458367293, 0.057950570517, 0.045713711196, 0.033790896238, 0.022138022738, 0.010859799645, 0.0], + [0.0, 0.238148754607, 0.225119545883, 0.215044151781, 0.204589180744, 0.193206644732, 0.181516524291, 0.169625234067, 0.15765223863, 0.145440694175, 0.133091961911, 0.120699317301, 0.108270638675, 0.095803121657, 0.083329874996, 0.070746408398, 0.058290277375, 0.046055861487, 0.034099742771, 0.022341879681, 0.010974894665, 0.0], + [0.0, 0.238080622653, 0.224933459062, 0.214851566794, 0.204252301656, 0.192878384145, 0.181143903983, 0.169256858521, 0.157216855995, 0.145004598073, 0.132735877608, 0.120450542583, 0.108149244004, 0.095812335876, 0.083318889856, 0.070830886164, 0.058469942305, 0.04629220473, 0.034304961111, 0.022506979299, 0.011071038336, 0.0], + [0.0, 0.238085031936, 0.224816104233, 0.214724675134, 0.203978561867, 0.192609808403, 0.180827779436, 0.168914281036, 0.156784247796, 0.144615028823, 0.132421922977, 0.120239341994, 0.108061000811, 0.095715285175, 0.083316493347, 0.07093678105, 0.058646838037, 0.046493654899, 0.034465505026, 0.022645068008, 0.011145648704, 0.0], + [0.0, 0.238161989175, 0.22476730239, 0.214655086734, 0.203767541322, 0.192400505148, 0.180567663178, 0.168531086115, 0.156401524535, 0.144271375906, 0.132149609074, 0.12006538982, 0.107893796211, 0.095615539738, 0.08333948226, 0.071064310612, 0.058837859216, 0.046711156895, 0.034638159396, 0.022780827251, 0.011224713884, 0.0], + [0.0, 0.238311611678, 0.224786979161, 0.214600352531, 0.203618917133, 0.192250153977, 0.180363155635, 0.168200745481, 0.156068089328, 0.143973104016, 0.131918514044, 0.11989631134, 0.107707809435, 0.095545075632, 0.083373834648, 0.071204455425, 0.059048174251, 0.046912581736, 0.034808048388, 0.022925249461, 0.011308378078, 0.0], + [0.0, 0.23853412778, 0.224875164529, 0.214611002158, 0.203532462366, 0.19215852525, 0.180154008564, 0.167922748156, 0.155783424999, 0.143719751003, 0.131728281516, 0.119648019825, 0.107461356494, 0.095313961219, 0.083226226989, 0.071151992315, 0.059082737366, 0.046944947007, 0.034887270512, 0.023005738126, 0.011356668144, 0.0], + [0.0, 0.23882987769, 0.225031992942, 0.214687051844, 0.203508045196, 0.192125479226, 0.17996927818, 0.167696665987, 0.155547092107, 0.143510926115, 0.13151326938, 0.11932881221, 0.107163220814, 0.095098281283, 0.083104410734, 0.07112125473, 0.059054674062, 0.046957150359, 0.034941044459, 0.023059392489, 0.011386339466, 0.0], + [0.0, 0.239199314769, 0.225257703817, 0.214797859563, 0.203545628416, 0.192150965548, 0.179839651039, 0.167522152031, 0.15535872728, 0.143346308513, 0.131222180324, 0.11900516508, 0.106899207267, 0.094912421209, 0.083008198703, 0.071070713631, 0.059017327114, 0.046983675461, 0.035005642841, 0.023120356851, 0.011419653887, 0.0], + [0.0, 0.239643007231, 0.225552642432, 0.214966818886, 0.203645269301, 0.192185299942, 0.179764929225, 0.167398939243, 0.155218041846, 0.143151176121, 0.13090438446, 0.118719334054, 0.106668903931, 0.09475609353, 0.082937443524, 0.070970502226, 0.058997987375, 0.04702456278, 0.035074147441, 0.023188726658, 0.011456663875, 0.0], + [0.0, 0.240161640279, 0.225917261218, 0.215201648333, 0.203807119815, 0.192241261163, 0.179744998804, 0.167326839484, 0.155124820751, 0.142923249597, 0.130627818529, 0.118470873684, 0.106471953456, 0.094629057501, 0.082800255531, 0.070892137051, 0.058996625363, 0.047079874801, 0.035153649826, 0.023261609591, 0.01149742815, 0.0], + [0.0, 0.240756018711, 0.226352121456, 0.215502707397, 0.204031427185, 0.192316533808, 0.17977982941, 0.167305742815, 0.155003449817, 0.142692745292, 0.130392053698, 0.118259398844, 0.106308051712, 0.094531118181, 0.082666386665, 0.070778339509, 0.058903072821, 0.047030675443, 0.035144877327, 0.023271221533, 0.011505663726, 0.0], + [0.0, 0.241427069992, 0.226857895401, 0.215870458334, 0.204318534816, 0.192450510676, 0.179824382805, 0.16729253796, 0.15492283315, 0.142506322205, 0.130196726113, 0.118084583253, 0.106176946624, 0.094397961243, 0.082475526289, 0.070608189714, 0.058796913119, 0.046979744629, 0.035129146804, 0.023268922694, 0.011503390545, 0.0], + [0.0, 0.242175847824, 0.227435368831, 0.216305467906, 0.204668883583, 0.192643396296, 0.179911375959, 0.167307402058, 0.154851225792, 0.142363694374, 0.130041535515, 0.117946158249, 0.106078437229, 0.094202636082, 0.082271352107, 0.070460267438, 0.058708986539, 0.046943207892, 0.035124124718, 0.023273713006, 0.011504621989, 0.0], + [0.0, 0.243003536245, 0.228085444058, 0.216808409524, 0.205083013488, 0.192895485731, 0.180053325856, 0.167373256845, 0.154793943637, 0.142264643615, 0.129922317597, 0.117838380884, 0.10601237292, 0.093982530502, 0.082093130936, 0.070334343386, 0.058639157928, 0.046921009428, 0.035129803416, 0.023285599771, 0.011509359934, 0.0], + [0.0, 0.243911454268, 0.228809143407, 0.217380065812, 0.205561565703, 0.193207165677, 0.180250449314, 0.167490202722, 0.154783835067, 0.142209018717, 0.129837329646, 0.117762666035, 0.105826756345, 0.093791954423, 0.081940586186, 0.070230223266, 0.058587320291, 0.046913115384, 0.03513383384, 0.023289902656, 0.011513252319, 0.0], + [0.0, 0.244901061123, 0.229607613197, 0.218021331609, 0.20610528501, 0.193578915922, 0.180503048107, 0.167658418223, 0.154820884679, 0.142196734875, 0.129791962855, 0.117722884928, 0.105640100176, 0.093630612748, 0.081813482257, 0.070147747059, 0.058553394401, 0.046890949512, 0.035115586815, 0.023291592148, 0.011518153933, 0.0], + [0.0, 0.245973962116, 0.23048212825, 0.218733217425, 0.206695131141, 0.194011311148, 0.180811510097, 0.167837931202, 0.154905148938, 0.14222777337, 0.129786148066, 0.11767896064, 0.105486176829, 0.093498256768, 0.08171162364, 0.070086788412, 0.058537328497, 0.046849901449, 0.03510536534, 0.023293732137, 0.011526572324, 0.0], + [0.0, 0.247131915158, 0.231434096968, 0.219516853397, 0.207322921406, 0.194505023126, 0.181176310684, 0.16804965459, 0.155036756387, 0.142295660125, 0.129819876418, 0.117596805246, 0.105364749806, 0.093394683224, 0.081634854184, 0.070047254167, 0.058480435881, 0.046775168748, 0.035038978817, 0.023255561173, 0.011509665366, 0.0], + [0.0, 0.24837683803, 0.232465067002, 0.220373493742, 0.208018094203, 0.195060823274, 0.181598014618, 0.168313247422, 0.155215908126, 0.142403950283, 0.129893199316, 0.117521293873, 0.105275633121, 0.093314060607, 0.081583056508, 0.070029084008, 0.058376692326, 0.04668694037, 0.034983479095, 0.023224577963, 0.011494367734, 0.0], + [0.0, 0.249710816407, 0.23357673157, 0.221304521767, 0.20878175555, 0.195679585645, 0.182077278135, 0.168629115224, 0.155442878565, 0.142555862357, 0.129995039198, 0.117481642495, 0.105218690604, 0.093261253908, 0.081555895439, 0.070000020254, 0.058271732022, 0.046613216308, 0.034938780772, 0.023200193453, 0.011480456129, 0.0], + [0.0, 0.251136112745, 0.234759204464, 0.222311455463, 0.209615130624, 0.19636187347, 0.182614851486, 0.168997745953, 0.155718016446, 0.142751628853, 0.130077520977, 0.117477790667, 0.105193835392, 0.093236891739, 0.081547752536, 0.06988814621, 0.05818484033, 0.046553883122, 0.034904815302, 0.023178057742, 0.011470067828, 0.0], + [0.0, 0.252655176079, 0.236011671201, 0.223395953728, 0.210519568667, 0.197100280761, 0.183184244422, 0.169419711846, 0.156041746166, 0.142991550274, 0.130173961372, 0.117509732522, 0.105201029605, 0.09324093697, 0.081564454101, 0.069795427788, 0.058115883692, 0.046508849829, 0.034878502185, 0.023163013183, 0.011463186951, 0.0], + [0.0, 0.254270652812, 0.237350260704, 0.224559823267, 0.211496548466, 0.19790477375, 0.18379042394, 0.169895671612, 0.156414569377, 0.143275996251, 0.130291974704, 0.117577516742, 0.105240284204, 0.093273395765, 0.081539153854, 0.069724165571, 0.058062399148, 0.046477066663, 0.034859676962, 0.023155036816, 0.011459802998, 0.0], + [0.0, 0.255985398614, 0.238777269745, 0.225805026219, 0.212516729388, 0.19877665841, 0.184457002562, 0.170426372969, 0.1568370669, 0.143600906975, 0.13044997459, 0.117681246746, 0.105311659036, 0.093334317605, 0.081488017911, 0.069674250529, 0.058024596934, 0.046455166469, 0.034851482421, 0.023154116481, 0.011459910813, 0.0], + [0.0, 0.257802491502, 0.24029518062, 0.227133688591, 0.213609551143, 0.19971736442, 0.185185048426, 0.171012655549, 0.157309900958, 0.143918511779, 0.130648203168, 0.117821081072, 0.105415263049, 0.093423795472, 0.081460009109, 0.069645606454, 0.058004501147, 0.046447428577, 0.034853906075, 0.023160250774, 0.01146351056, 0.0], + [0.0, 0.25972524624, 0.241906672273, 0.228548109545, 0.21477943226, 0.200728451076, 0.185975738703, 0.171655454197, 0.157833817741, 0.144250110745, 0.130886965224, 0.117997233968, 0.105551254708, 0.093478219655, 0.081456823567, 0.069638189671, 0.058002081155, 0.046453841196, 0.034866951615, 0.023173449047, 0.011470607724, 0.0], + [0.0, 0.261757230185, 0.243614632544, 0.230050771631, 0.21602836489, 0.201811613825, 0.186830364376, 0.172355802684, 0.158409650326, 0.144618926599, 0.13116662934, 0.118209976202, 0.10571984258, 0.093560364546, 0.08147845643, 0.069651988879, 0.05801733327, 0.046474414098, 0.034890638931, 0.023193731435, 0.011479017283, 0.0], + [0.0, 0.263902280728, 0.245409730424, 0.231644352061, 0.217358504213, 0.202968691499, 0.187750335533, 0.173114837864, 0.159038321975, 0.145033925232, 0.131487629291, 0.118459636072, 0.105921286121, 0.093642910809, 0.08152494067, 0.069687025107, 0.058050280736, 0.046509178653, 0.03492500418, 0.02318933427, 0.011474302739, 0.0], + [0.0, 0.266164524499, 0.247302767685, 0.23331265609, 0.218772177986, 0.204194797584, 0.188737187249, 0.173933804305, 0.159683915163, 0.145495759443, 0.131850465702, 0.11874660066, 0.106138018689, 0.093744716305, 0.081596347206, 0.069743351792, 0.058100973821, 0.046558187949, 0.034925913212, 0.023189934051, 0.011473085444, 0.0], + [0.0, 0.268548398529, 0.249301767003, 0.235063491699, 0.220271897073, 0.205454443299, 0.189792586086, 0.174814059426, 0.160331486839, 0.146005160965, 0.132255707974, 0.119071317303, 0.106353224572, 0.093875369869, 0.081692785168, 0.069821054981, 0.058169489997, 0.046616343449, 0.03493734321, 0.023197600259, 0.011475363543, 0.0], + [0.0, 0.271058673578, 0.251410552482, 0.236913515193, 0.221860367018, 0.206769198227, 0.190918337262, 0.175749222101, 0.161033584265, 0.146562943343, 0.132703996496, 0.119434295313, 0.106601842861, 0.094035072102, 0.081814402307, 0.069920253649, 0.058255934233, 0.046645728041, 0.03495943316, 0.023212344581, 0.011481140508, 0.0], + [0.0, 0.273700479887, 0.253633235988, 0.238866228386, 0.223540500792, 0.208164705796, 0.192102596492, 0.176713970966, 0.161791357733, 0.147170005176, 0.133196045151, 0.119836107957, 0.106884260516, 0.09422406911, 0.081961385546, 0.070041100145, 0.058360439389, 0.046689380711, 0.034992216773, 0.023234189517, 0.011490425151, 0.0], + [0.0, 0.276479335622, 0.255974238601, 0.240925396937, 0.225315432812, 0.209643471578, 0.193337193178, 0.177743811315, 0.162601108582, 0.147827333735, 0.133732644153, 0.120272089694, 0.107176867739, 0.094442653446, 0.08213396169, 0.070183780766, 0.058456401201, 0.0467473682, 0.035035744174, 0.023263168471, 0.011503231653, 0.0], + [0.0, 0.279401178328, 0.258438314291, 0.243095069721, 0.227188534381, 0.211208193829, 0.194647436427, 0.178840521167, 0.163467069575, 0.148536008999, 0.134314663213, 0.120707960004, 0.107493822438, 0.094691165214, 0.082332398275, 0.070348516464, 0.058549866153, 0.046819779401, 0.035090082091, 0.023299325866, 0.011519579626, 0.0], + [0.0, 0.282472399763, 0.261030576064, 0.245358044089, 0.229163430685, 0.212861776399, 0.196035681659, 0.179982921532, 0.164392647318, 0.149297208128, 0.134943055075, 0.121184049123, 0.107845605615, 0.094969993379, 0.0825570046, 0.070535563685, 0.058661527948, 0.046905015733, 0.035155314101, 0.02334271732, 0.011539494175, 0.0], + [0.0, 0.285699884513, 0.263756524864, 0.247736063947, 0.231244019533, 0.214607342922, 0.197504465284, 0.18118081421, 0.165379429336, 0.150112210414, 0.135618859444, 0.121701126773, 0.108232775837, 0.095279577267, 0.08280813291, 0.070732151893, 0.05879155916, 0.046980879589, 0.035215754894, 0.023393409851, 0.011563006001, 0.0], + [0.0, 0.289091052877, 0.266622081564, 0.250237601464, 0.233434492017, 0.216448252469, 0.199056516848, 0.182450707716, 0.166429131463, 0.150982402754, 0.136343207337, 0.122260037126, 0.108655952894, 0.095620408286, 0.083086179761, 0.070919954894, 0.058940161746, 0.047071350864, 0.035281636229, 0.023451482131, 0.011589889766, 0.0], + [0.0, 0.292653908548, 0.269633622423, 0.252867985063, 0.235739355323, 0.218388116766, 0.200694772411, 0.183794909083, 0.167543605531, 0.151909285682, 0.13709558349, 0.122841120699, 0.109115820284, 0.095993031858, 0.083391587577, 0.071130482548, 0.059084839697, 0.04717656942, 0.035358555272, 0.023517024788, 0.011619280597, 0.0], + [0.0, 0.296397091734, 0.272798018438, 0.255632950382, 0.238147033743, 0.220430819202, 0.20242238927, 0.185215901508, 0.168724847829, 0.152894480017, 0.13787760322, 0.123452952323, 0.109613127971, 0.096398049604, 0.083724846399, 0.071364066745, 0.059243111118, 0.047296698729, 0.035446631417, 0.023590140757, 0.011652379324, 0.0], + [0.0, 0.300329938414, 0.276122679083, 0.258538674802, 0.240661309143, 0.222580535793, 0.20424276219, 0.18671635643, 0.169975008422, 0.153939734181, 0.138711090858, 0.124108903132, 0.110148695463, 0.096836121771, 0.084078310404, 0.071621078476, 0.059420381385, 0.047431926498, 0.035546002136, 0.023670945675, 0.011689237987, 0.0], + [0.0, 0.304462546595, 0.279615601007, 0.261591815757, 0.243304144363, 0.224841758346, 0.206150875121, 0.188299146814, 0.171296401389, 0.155046932256, 0.139597498231, 0.124810083236, 0.110723415222, 0.097307969938, 0.084428973825, 0.071899764505, 0.059616930105, 0.047582465392, 0.035656823521, 0.023751002225, 0.011729914955, 0.0], + [0.0, 0.308805850505, 0.283285422339, 0.264799553333, 0.24608146006, 0.227219320075, 0.208132973521, 0.189967361797, 0.172691516112, 0.156218102847, 0.1405382335, 0.125557694691, 0.11133825643, 0.097814380019, 0.084808516194, 0.072177638625, 0.059833069635, 0.047748553866, 0.035779270877, 0.023832494809, 0.011774475157, 0.0], + [0.0, 0.313371703863, 0.287141483363, 0.268169637715, 0.248999637488, 0.229718423967, 0.210218213046, 0.191724322825, 0.174163029688, 0.157434052258, 0.141503470406, 0.126353036785, 0.111994269162, 0.09835620558, 0.08521756168, 0.072479832617, 0.060069146306, 0.047930457101, 0.035913539421, 0.023921860461, 0.01181470188, 0.0], + [0.0, 0.318172973523, 0.291193894428, 0.271710442101, 0.252065559466, 0.232344674232, 0.212411015809, 0.193573601464, 0.175713820613, 0.158698877996, 0.14252577275, 0.127197511855, 0.112692588969, 0.098934371505, 0.08565679042, 0.072806838619, 0.060325541813, 0.048128468057, 0.03605984505, 0.024016497666, 0.011854157364, 0.0], + [0.0, 0.323223645029, 0.295453612116, 0.275431021849, 0.255286656025, 0.235104111223, 0.214716141436, 0.195519039065, 0.177346983867, 0.160033334078, 0.143607016407, 0.128092631689, 0.11343444194, 0.099518359941, 0.086126941389, 0.073159194686, 0.060602674764, 0.048342908657, 0.036218425216, 0.024100505838, 0.011897513496, 0.0], + [0.0, 0.328538941855, 0.299932524845, 0.279341180698, 0.258651450513, 0.238003250279, 0.217138715535, 0.197564768509, 0.179065847558, 0.161437664284, 0.144749219822, 0.129040024574, 0.114221150268, 0.100134267259, 0.086617398436, 0.073537487031, 0.06090100239, 0.048574131099, 0.036389539886, 0.024192498919, 0.01194483981, 0.0], + [0.0, 0.334135460467, 0.304643282782, 0.283451545058, 0.262178215198, 0.241049124974, 0.219684261307, 0.199715238277, 0.180873991308, 0.16288866147, 0.145954553956, 0.130041443053, 0.115054138373, 0.100788738023, 0.087124173705, 0.073942352493, 0.061221022462, 0.048822519314, 0.036569549931, 0.024292625101, 0.011996212896, 0.0], + [0.0, 0.340031323662, 0.309582830274, 0.28777364755, 0.265884596308, 0.244249335394, 0.222358734678, 0.201975239124, 0.182759208334, 0.164416515349, 0.147225353248, 0.131098772454, 0.115934939649, 0.101482936281, 0.087663774275, 0.07437448127, 0.061563275388, 0.049088490583, 0.03673937397, 0.024401047203, 0.012051716714, 0.0], + [0.0, 0.346246355146, 0.314782665607, 0.292320021117, 0.269780629606, 0.247581149056, 0.225168563395, 0.204349933693, 0.184713441607, 0.166024353846, 0.148564127688, 0.132214040294, 0.116842891564, 0.102218116234, 0.08823714589, 0.074834619924, 0.061928346547, 0.049372497317, 0.036922081943, 0.024517943341, 0.012111442939, 0.0], + [0.0, 0.352802278848, 0.320259381233, 0.297082504372, 0.273877205041, 0.25107227009, 0.228120690648, 0.206844889426, 0.186743738609, 0.167715541486, 0.149973576137, 0.133389426624, 0.117786438706, 0.102995628154, 0.088845308561, 0.075323574702, 0.062316868849, 0.049675029027, 0.037117979248, 0.024643507667, 0.012175491342, 0.0], + [0.0, 0.359722947143, 0.326030071874, 0.302092613755, 0.278186155226, 0.254720322624, 0.231222623785, 0.209457633914, 0.188877337371, 0.169493698623, 0.151456601029, 0.134627275452, 0.118781825511, 0.10380004509, 0.089489361285, 0.075842215185, 0.06272952556, 0.049975983675, 0.03732739732, 0.024777951181, 0.012243970215, 0.0], + [0.0, 0.367034602989, 0.332106488348, 0.307369840414, 0.282720355351, 0.258555869663, 0.234455600814, 0.212174995345, 0.19111914308, 0.171362722724, 0.15301632462, 0.135930107328, 0.119830992058, 0.104636942947, 0.090170487229, 0.076391478302, 0.063167053413, 0.050286088096, 0.037550695062, 0.024921129035, 0.012316996838, 0.0], + [0.0, 0.374766181993, 0.338518780414, 0.312930767024, 0.287493836246, 0.262589903299, 0.237848033231, 0.215017635459, 0.193474446569, 0.17332681198, 0.154656106969, 0.137285067805, 0.120936024325, 0.105519849259, 0.090889959437, 0.076972372756, 0.063630246029, 0.050615579248, 0.037788260421, 0.025072634523, 0.01239469799, 0.0], + [0.0, 0.382949661672, 0.345290813564, 0.318777652349, 0.2925219127, 0.26683438003, 0.241414696864, 0.217986506864, 0.195948959432, 0.175390491511, 0.156379565848, 0.1386887454, 0.122099165345, 0.106450483726, 0.091649147122, 0.077585983886, 0.06411995768, 0.050965043587, 0.038040512129, 0.025233726856, 0.01247721052, 0.0], + [0.0, 0.391620466738, 0.35244887618, 0.32494805433, 0.297810911564, 0.271302324782, 0.245165773961, 0.221106806205, 0.198548853197, 0.177558642533, 0.158190598835, 0.14016455998, 0.123321276767, 0.10743069537, 0.092449522581, 0.078233479024, 0.064610334309, 0.051335112965, 0.038307901606, 0.025404691176, 0.012564681973, 0.0], + [0.0, 0.400817941161, 0.360021990123, 0.331465005819, 0.303372462222, 0.276007948867, 0.249112338262, 0.224387074944, 0.201280803115, 0.179836534829, 0.160093407858, 0.141715753549, 0.124577702987, 0.108462472421, 0.093292668828, 0.078916113393, 0.065123611914, 0.051726467607, 0.038590915071, 0.025585834802, 0.012657271268, 0.0], + [0.0, 0.410585900198, 0.368042270561, 0.338353881929, 0.309241677838, 0.280966784116, 0.253261146783, 0.227836585735, 0.20415203721, 0.182229862995, 0.162074776828, 0.143345818457, 0.125898738975, 0.109547953232, 0.094180288008, 0.079635236609, 0.065665272439, 0.052139839405, 0.038890075854, 0.025777488667, 0.012755149463, 0.0], + [0.0, 0.420973278646, 0.376540887214, 0.345642700854, 0.315440453878, 0.286195835787, 0.257604388699, 0.231465418777, 0.20717039132, 0.184744786966, 0.16413750127, 0.145058519273, 0.127287280568, 0.110689438357, 0.095114210685, 0.080392299849, 0.066236364434, 0.052576015523, 0.039205946937, 0.025980008904, 0.012858500579, 0.0], + [0.0, 0.432034895451, 0.385555620786, 0.35336247245, 0.321983198857, 0.291713757406, 0.262180452842, 0.235284548074, 0.210344370994, 0.187387977409, 0.166304718171, 0.146851560308, 0.128746447048, 0.111889403895, 0.096096406115, 0.081157663627, 0.066838015301, 0.05303584239, 0.039539133772, 0.026193778592, 0.012967522524, 0.0], + [0.0, 0.421006896581, 0.395132002003, 0.361535787192, 0.328894434825, 0.297541051278, 0.267004838091, 0.239305939168, 0.213683221266, 0.190166666666, 0.168581970059, 0.148710602651, 0.130279600622, 0.113150516308, 0.097128993602, 0.081961242508, 0.067471437272, 0.053520230086, 0.039890287355, 0.026419209676, 0.013082428092, 0.0], + [0.0, 0.411508856902, 0.405320464913, 0.370205479345, 0.336213532918, 0.303685270338, 0.272094535102, 0.243542660123, 0.217197005479, 0.193057852315, 0.170975257524, 0.150663799035, 0.13189036809, 0.114475648841, 0.098214255087, 0.082806369599, 0.06813793401, 0.05403015718, 0.040260107646, 0.026656745083, 0.013203446083, 0.0], + [0.0, 0.402549761595, 0.402534539307, 0.379416240876, 0.34397296058, 0.310162300673, 0.277468206332, 0.248009007921, 0.220896694553, 0.196094180437, 0.173481486444, 0.152716123584, 0.133582664978, 0.11586789978, 0.099343381083, 0.08369486688, 0.068838907903, 0.054566676083, 0.040649347317, 0.02690686106, 0.013330822525, 0.0], + [0.0, 0.394081209671, 0.394068928194, 0.389210775482, 0.35219863716, 0.317009696668, 0.283146392935, 0.2527206528, 0.224794268351, 0.199289218139, 0.176096139219, 0.154872960643, 0.135360722476, 0.117330612784, 0.100505270481, 0.084628696114, 0.06957586813, 0.055130918951, 0.041058815911, 0.027170069746, 0.013464822031, 0.0], + [0.0, 0.386076876287, 0.386066910528, 0.386062273896, 0.360932888403, 0.324267260206, 0.289132229963, 0.257694803577, 0.228871067467, 0.202641034834, 0.178846124215, 0.157140145361, 0.137229117547, 0.118867399549, 0.101726013133, 0.085609970834, 0.070350439601, 0.055724104225, 0.041489384427, 0.027446922023, 0.013605729298, 0.0], + [0.0, 0.378504228941, 0.378494869487, 0.378490749757, 0.370219159919, 0.331968406578, 0.295460838338, 0.262923517295, 0.233150787499, 0.206153367756, 0.181739599296, 0.159524009322, 0.139192806665, 0.120478040569, 0.103008538013, 0.086640969661, 0.071164372872, 0.056340432314, 0.041941990402, 0.02773801066, 0.01374774419, 0.0], + [0.0, 0.371333868025, 0.371324937144, 0.371319241701, 0.371306354886, 0.340147845878, 0.302166057108, 0.268418158881, 0.237654620652, 0.209854656575, 0.184785451657, 0.162031431936, 0.141257163676, 0.122137562232, 0.10435600878, 0.087724151138, 0.071999770452, 0.056970379293, 0.042417643542, 0.028043973803, 0.013883609392, 0.0], + [0.0, 0.364539103728, 0.364529521303, 0.364523349243, 0.364513899692, 0.348830784152, 0.309258229317, 0.27423267603, 0.242411179959, 0.213757584547, 0.187993378406, 0.164669898465, 0.143428022387, 0.123881703123, 0.105771845938, 0.088862170242, 0.072870160313, 0.057632326411, 0.042917431975, 0.028365498837, 0.01402650209, 0.0], + [0.0, 0.358095655121, 0.358085118456, 0.358078664952, 0.358071042569, 0.358054780033, 0.31679014236, 0.280391982172, 0.247438940698, 0.217876063763, 0.191373978171, 0.167447565685, 0.145694019201, 0.125715227636, 0.107259751625, 0.090036893557, 0.073784602127, 0.058327812965, 0.0434425292, 0.028703326684, 0.01417673001, 0.0]] # ruff: enable[E501] diff --git a/docs/src/markdown/about/changelog.md b/docs/src/markdown/about/changelog.md index d1be022f2..674b427cd 100644 --- a/docs/src/markdown/about/changelog.md +++ b/docs/src/markdown/about/changelog.md @@ -7,6 +7,7 @@ icon: lucide/scroll-text - **NEW**: Implement special gamuts (`visible-spectrum`, `pointer-gamut`, etc.) as `Gamut` plugins allowing the expansion of _special_ gamuts in the future. +- **NEW**: Minor tweaks to `macadam-limits` calculations. ## 8.12.1 diff --git a/docs/src/markdown/examples/3d_models.html b/docs/src/markdown/examples/3d_models.html index 6c540cfb4..238efbd5f 100644 --- a/docs/src/markdown/examples/3d_models.html +++ b/docs/src/markdown/examples/3d_models.html @@ -230,7 +230,7 @@

ColorAide Color Space Models

from coloraide.spaces import HSLish, HSVish, HWBish, Labish, LChish, RGBish from coloraide import algebra as alg from coloraide.color import POSTFIX -from coloraide.gamut import pointer, visible_spectrum +from coloraide.gamut import macadam_limits, pointer from coloraide.spectrum import wavelength_to_color from coloraide.cmfs import CIE_1931_2DEG as cmfs from coloraide import util @@ -598,7 +598,9 @@

ColorAide Color Space Models

return fig -def render_spectrum_face(fig, s1, s2, dim, space, resolution, opacity, edges, faces, ecolor, fcolor, gmap, filters): +def render_spectrum_face( + fig, s1, s2, dim, space, resolution, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit +): """Render the visible spectrum face.""" target = Color.CS_MAP[space] @@ -634,8 +636,11 @@

ColorAide Color Space Models

c = Color('xyy', [xy[0], xy[1], t[1]]) - c.convert(space, norm=False, in_place=True) + for lim in limit: + if 'visible-spectrum' != lim and limit[lim]: + c.fit(lim) + c.convert(space, norm=False, in_place=True) store_coords(c, X, Y, Z, flags) # Fit colors to output gamut @@ -651,7 +656,7 @@

ColorAide Color Space Models

create3d(fig, X, Y, Z, tri, cmap, edges, faces, ecolor, fcolor, opacity, filters) -def render_visible_spectrum(fig, space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters): +def render_visible_spectrum(fig, space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit): """ Render the visible spectrum. @@ -676,16 +681,28 @@

ColorAide Color Space Models

s2 = alg.linspace(c010, c011, res) s3 = alg.linspace(c100, c101, res) s4 = alg.linspace(c000, c001, res) - render_spectrum_face(fig, s1, s2, ('x', 'z'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters) - render_spectrum_face(fig, s1, s3, ('y', 'z'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters) - render_spectrum_face(fig, s3, s4, ('x', 'z'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters) - render_spectrum_face(fig, s4, s2, ('y', 'z'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters) + render_spectrum_face( + fig, s1, s2, ('x', 'z'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit + ) + render_spectrum_face( + fig, s1, s3, ('y', 'z'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit + ) + render_spectrum_face( + fig, s3, s4, ('x', 'z'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit + ) + render_spectrum_face( + fig, s4, s2, ('y', 'z'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit + ) s1 = alg.linspace(c001, c011, res) s2 = alg.linspace(c101, c111, res) - render_spectrum_face(fig, s1, s2, ('x', 'y'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters) + render_spectrum_face( + fig, s1, s2, ('x', 'y'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit + ) s1 = alg.linspace(c000, c010, res) s2 = alg.linspace(c100, c110, res) - render_spectrum_face(fig, s1, s2, ('x', 'y'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters) + render_spectrum_face( + fig, s1, s2, ('x', 'y'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit + ) return fig @@ -695,7 +712,7 @@

ColorAide Color Space Models

if gtype == 'visible-spectrum': return render_visible_spectrum( - fig, space, resolution, opacity, edges, faces, ecolor, fcolor, gmap, filters + fig, space, resolution, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit ) target = Color.CS_MAP[space] @@ -717,61 +734,46 @@

ColorAide Color Space Models

cmap = [] if gtype == 'pointer-gamut': - lightness = [91, *pointer.LIGHTNESS, 14] + l_range = [100, *pointer.LIGHTNESS, 0] + lightness = pointer.LIGHTNESS hues = pointer.HUE + lut = pointer.LUT + f = lambda color, a, b, c: color.GAMUT_MAP['pointer-gamut'].from_lch(color, [a, b, c]) elif gtype == 'macadam-limits': - lightness = visible_spectrum.LUMINANCE - hues = visible_spectrum.HUE + l_range = macadam_limits.LUMINANCE[:] + lightness = macadam_limits.LUMINANCE[:] + # Needed as 3D plots have difficulty with high precision deltas + l_range[1] = 1e-6 + lightness[1] = 1e-6 + hues = macadam_limits.HUE + lut = macadam_limits.LUT + f = lambda color, a, b, c: color.update( + 'xyy', + [*alg.add(alg.polar_to_rect(b, c), color.CS_MAP['xyz-d65'].WHITE), a] + ) + else: + raise ValueError(f"Unknown special of gamut '{gtype}'") - for l in lightness: - for h in hues: - if gtype == 'pointer-gamut': - # Close out the top or bottom if see lightness beyond the expected range - if l == 91: - _l = l - 1 + 1e-8 - c = 1e-12 - elif l == 14: - _l = l + 1 - 1e-8 - c = 1e-12 - else: - _l = l - c = pointer.LUT[pointer.HUE.index(h)][pointer.LIGHTNESS.index(l)] - u.append(_l) - v.append(h) - color = Color('xyz-d65', [0, 0, 0]) - color.GAMUT_MAP['pointer-gamut'].from_lch(color, [_l, c, h]) - elif gtype == 'macadam-limits': - color = Color('white').convert('xyy', in_place=True) - if l == -1: - u.append(0) - v.append(h) - color.update('black') - else: - c = visible_spectrum.LUT[visible_spectrum.HUE.index(h)][visible_spectrum.LUMINANCE.index(l)] - xy = alg.add(alg.polar_to_rect(c, h), color.xy()) - u.append(l) - v.append(h) - color[:-1] = [*xy, l] - - if gtype != 'pointer-gamut' and limit['pointer-gamut']: - color.fit('pointer-gamut') - elif gtype not in ('pointer-gamut', 'macadam-limits') and limit['macadam-limits']: - color.fit('macadam-limits') - - color.convert(space, norm=False, in_place=True) - store_coords(color, x, y, z, flags) + mn_l = min(lightness) + mx_l = max(lightness) - # Adjust gamut to fit the display space - s = color.convert('srgb') - if not s.in_gamut(): - s.fit(**gmap) + for l in l_range: + for h in hues: + color = Color('xyz-d65', [0, 0, 0]) + if l < mn_l or l > mx_l: + # Force an end cap for those that don't have one + _l = mn_l - alg.ATOL if l < mn_l else mx_l + alg.ATOL + c = alg.ATOL else: - s.clip() - - if filters: - s.filter(filters[0], **filters[1], in_place=True, out_space=s.space()).clip() - - cmap.append(s.to_string(hex=True)) + _l = l + c = lut[hues.index(h)][lightness.index(l)] + u.append(_l) + v.append(h) + color = f(color, _l, c, h) + + for lim in limit: + if gtype != lim and limit[lim]: + color.fit(lim) # Calculate the triangles tri = Delaunay([*zip(u, v)], qhull_options=QHULL_OPTIONS) diff --git a/tests/test_gamut.py b/tests/test_gamut.py index 482e244bd..98d352934 100644 --- a/tests/test_gamut.py +++ b/tests/test_gamut.py @@ -674,7 +674,7 @@ def test_fit_macadam_limits_gamut(self): self.assertColorEqual( Color('rec2020', [0, 1, 0]).fit('macadam-limits'), - Color('color(rec2020 0.4652 0.96774 0.4652)') + Color('color(rec2020 0.46617 0.96758 0.46617)') ) def test_macadam_limits_too_light(self): @@ -695,9 +695,9 @@ def test_macadam_limits_mid(self): boundary = gamut.macadam_limits.macadam_limits(0.5) # Test a sample of the values test = [boundary[0], boundary[5], boundary[8]] - expected = [[0.4806514042586269, 0.329, 0.5], - [0.4962107271703434, 0.34505510826280383, 0.5], - [0.507062460802951, 0.3563158624760576, 0.5]] + expected = [[0.48014756568499994, 0.329, 0.5], + [0.4956350272100697, 0.3450047410426876, 0.5], + [0.5064113262377211, 0.3562243514807566, 0.5]] for coords1, coords2 in zip(test, expected): [self.assertCompare(a, b) for a, b in zip(coords1, coords2)] @@ -708,9 +708,9 @@ def test_macadam_limits_max(self): boundary = gamut.macadam_limits.macadam_limits() # Test a sample of the values test = [boundary[0], boundary[5], boundary[8]] - expected = [[0.6707946074737312, 0.329, 1], - [0.6418734410118543, 0.3577989444223567, 1], - [0.6265045190690097, 0.37310234904334116, 1]] + expected = [[0.6707956551209999, 0.329, 1], + [0.6418735466024112, 0.35779895366033343, 1], + [0.626504624034622, 0.37310236379529593, 1]] for coords1, coords2 in zip(test, expected): [self.assertCompare(a, b) for a, b in zip(coords1, coords2)] diff --git a/tools/calc_visible_spectrum_lut.py b/tools/calc_visible_spectrum_lut.py index 27d1af6a9..4e1b7170f 100644 --- a/tools/calc_visible_spectrum_lut.py +++ b/tools/calc_visible_spectrum_lut.py @@ -82,10 +82,11 @@ def build_lut(location): # Loop from 0 - 100 luminance and 0 -360 hue at some number of step. # We iterate in luminance and convert to Lab lightness for more linear steps. table = [] - hues = alg.linspace(0, 360, 361) + hues = [round(x) for x in alg.linspace(0, 360, 361)] + # In the xyY space, the shape stays wide up util zero and then collapses. # 0 needs to be included, but it gives us nothing as far as the shape is concerned, - # 1e-10 will give us something close to the largest base size. - luminance = [0, 1e-10, *[i / 100 for i in alg.linspace(1, 100, 20)]] + # 1e-12 will give us something close to the largest base size. + luminance = [0, 1e-12, *[round(i / 100, 2) for i in alg.linspace(5, 100, 20)]] for Y in luminance: best = 0 row = [] @@ -113,8 +114,9 @@ def build_lut(location): best = high count += 1 - row.append(best) - print(f'==> Luminance: {Y} Hue: {h} Chroma: {best}') + result = round(best, 12) if best > 1e-12 else 0.0 + row.append(result) + print(f'==> Luminance: {Y} Hue: {h} Chroma: {result}') table.append(row) diff --git a/tools/gamut_3d_diagram.py b/tools/gamut_3d_diagram.py index 1b7c58480..06784ce21 100644 --- a/tools/gamut_3d_diagram.py +++ b/tools/gamut_3d_diagram.py @@ -18,7 +18,7 @@ from coloraide.spaces import HSLish, HSVish, HWBish, Labish, LChish, RGBish from coloraide import algebra as alg from coloraide.color import POSTFIX -from coloraide.gamut import pointer, visible_spectrum +from coloraide.gamut import macadam_limits, pointer from coloraide.spectrum import wavelength_to_color from coloraide.cmfs import CIE_1931_2DEG as cmfs from coloraide import util @@ -386,7 +386,9 @@ def render_space_cyl(fig, space, gamut, resolution, opacity, edges, faces, ecolo return fig -def render_spectrum_face(fig, s1, s2, dim, space, resolution, opacity, edges, faces, ecolor, fcolor, gmap, filters): +def render_spectrum_face( + fig, s1, s2, dim, space, resolution, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit +): """Render the visible spectrum face.""" target = Color.CS_MAP[space] @@ -422,8 +424,11 @@ def render_spectrum_face(fig, s1, s2, dim, space, resolution, opacity, edges, fa c = Color('xyy', [xy[0], xy[1], t[1]]) - c.convert(space, norm=False, in_place=True) + for lim in limit: + if 'visible-spectrum' != lim and limit[lim]: + c.fit(lim) + c.convert(space, norm=False, in_place=True) store_coords(c, X, Y, Z, flags) # Fit colors to output gamut @@ -439,7 +444,7 @@ def render_spectrum_face(fig, s1, s2, dim, space, resolution, opacity, edges, fa create3d(fig, X, Y, Z, tri, cmap, edges, faces, ecolor, fcolor, opacity, filters) -def render_visible_spectrum(fig, space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters): +def render_visible_spectrum(fig, space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit): """ Render the visible spectrum. @@ -464,16 +469,28 @@ def render_visible_spectrum(fig, space, res, opacity, edges, faces, ecolor, fcol s2 = alg.linspace(c010, c011, res) s3 = alg.linspace(c100, c101, res) s4 = alg.linspace(c000, c001, res) - render_spectrum_face(fig, s1, s2, ('x', 'z'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters) - render_spectrum_face(fig, s1, s3, ('y', 'z'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters) - render_spectrum_face(fig, s3, s4, ('x', 'z'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters) - render_spectrum_face(fig, s4, s2, ('y', 'z'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters) + render_spectrum_face( + fig, s1, s2, ('x', 'z'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit + ) + render_spectrum_face( + fig, s1, s3, ('y', 'z'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit + ) + render_spectrum_face( + fig, s3, s4, ('x', 'z'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit + ) + render_spectrum_face( + fig, s4, s2, ('y', 'z'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit + ) s1 = alg.linspace(c001, c011, res) s2 = alg.linspace(c101, c111, res) - render_spectrum_face(fig, s1, s2, ('x', 'y'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters) + render_spectrum_face( + fig, s1, s2, ('x', 'y'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit + ) s1 = alg.linspace(c000, c010, res) s2 = alg.linspace(c100, c110, res) - render_spectrum_face(fig, s1, s2, ('x', 'y'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters) + render_spectrum_face( + fig, s1, s2, ('x', 'y'), space, res, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit + ) return fig @@ -483,7 +500,7 @@ def render_special_gamut(gtype, fig, space, resolution, opacity, edges, faces, e if gtype == 'visible-spectrum': return render_visible_spectrum( - fig, space, resolution, opacity, edges, faces, ecolor, fcolor, gmap, filters + fig, space, resolution, opacity, edges, faces, ecolor, fcolor, gmap, filters, limit ) target = Color.CS_MAP[space] @@ -505,46 +522,46 @@ def render_special_gamut(gtype, fig, space, resolution, opacity, edges, faces, e cmap = [] if gtype == 'pointer-gamut': - lightness = [91, *pointer.LIGHTNESS, 14] + l_range = [100, *pointer.LIGHTNESS, 0] + lightness = pointer.LIGHTNESS hues = pointer.HUE + lut = pointer.LUT + f = lambda color, a, b, c: color.GAMUT_MAP['pointer-gamut'].from_lch(color, [a, b, c]) elif gtype == 'macadam-limits': - lightness = visible_spectrum.LUMINANCE - hues = visible_spectrum.HUE + l_range = macadam_limits.LUMINANCE[:] + lightness = macadam_limits.LUMINANCE[:] + # Needed as 3D plots have difficulty with high precision deltas + l_range[1] = 1e-6 + lightness[1] = 1e-6 + hues = macadam_limits.HUE + lut = macadam_limits.LUT + f = lambda color, a, b, c: color.update( + 'xyy', + [*alg.add(alg.polar_to_rect(b, c), color.CS_MAP['xyz-d65'].WHITE), a] + ) + else: + raise ValueError(f"Unknown special of gamut '{gtype}'") + + mn_l = min(lightness) + mx_l = max(lightness) - for l in lightness: + for l in l_range: for h in hues: - if gtype == 'pointer-gamut': - # Close out the top or bottom if see lightness beyond the expected range - if l == 91: - _l = l - 1 + 1e-8 - c = 1e-12 - elif l == 14: - _l = l + 1 - 1e-8 - c = 1e-12 - else: - _l = l - c = pointer.LUT[pointer.HUE.index(h)][pointer.LIGHTNESS.index(l)] - u.append(_l) - v.append(h) - color = Color('xyz-d65', [0, 0, 0]) - color.GAMUT_MAP['pointer-gamut'].from_lch(color, [_l, c, h]) - elif gtype == 'macadam-limits': - color = Color('white').convert('xyy', in_place=True) - if l == -1: - u.append(0) - v.append(h) - color.update('black') - else: - c = visible_spectrum.LUT[visible_spectrum.HUE.index(h)][visible_spectrum.LUMINANCE.index(l)] - xy = alg.add(alg.polar_to_rect(c, h), color.xy()) - u.append(l) - v.append(h) - color[:-1] = [*xy, l] - - if gtype != 'pointer-gamut' and limit['pointer-gamut']: - color.fit('pointer-gamut') - elif gtype not in ('pointer-gamut', 'macadam-limits') and limit['macadam-limits']: - color.fit('macadam-limits') + color = Color('xyz-d65', [0, 0, 0]) + if l < mn_l or l > mx_l: + # Force an end cap for those that don't have one + _l = mn_l - alg.ATOL if l < mn_l else mx_l + alg.ATOL + c = alg.ATOL + else: + _l = l + c = lut[hues.index(h)][lightness.index(l)] + u.append(_l) + v.append(h) + color = f(color, _l, c, h) + + for lim in limit: + if gtype != lim and limit[lim]: + color.fit(lim) color.convert(space, norm=False, in_place=True) store_coords(color, x, y, z, flags) diff --git a/zensical.yml b/zensical.yml index 3884e2db3..1ed772a8f 100644 --- a/zensical.yml +++ b/zensical.yml @@ -358,7 +358,7 @@ extra_javascript: - assets/pymdownx-extras/extra-loader-Ccztcqfq.js - https://cdn.jsdelivr.net/npm/ace-builds@1.44.0/src-min-noconflict/ace.js - https://cdn.jsdelivr.net/npm/mermaid@11.15.0/dist/mermaid.min.js - - playground-config-23379e55.js + - playground-config-40d8f59a.js - https://cdn.jsdelivr.net/npm/pyodide@314.0.0/pyodide.min.js - assets/coloraide-extras/extra-notebook-Bdn4ci_6.js - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js From 23854d0cc02f5bb9a1b06cb832da3e2ed1c6265b Mon Sep 17 00:00:00 2001 From: facelessuser Date: Tue, 25 Aug 2026 21:20:18 -0600 Subject: [PATCH 4/6] Spelling --- tools/calc_visible_spectrum_lut.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/calc_visible_spectrum_lut.py b/tools/calc_visible_spectrum_lut.py index 4e1b7170f..1795d1927 100644 --- a/tools/calc_visible_spectrum_lut.py +++ b/tools/calc_visible_spectrum_lut.py @@ -83,7 +83,7 @@ def build_lut(location): # We iterate in luminance and convert to Lab lightness for more linear steps. table = [] hues = [round(x) for x in alg.linspace(0, 360, 361)] - # In the xyY space, the shape stays wide up util zero and then collapses. + # In the xyY space, the shape stays wide up until zero and then collapses. # 0 needs to be included, but it gives us nothing as far as the shape is concerned, # 1e-12 will give us something close to the largest base size. luminance = [0, 1e-12, *[round(i / 100, 2) for i in alg.linspace(5, 100, 20)]] From 26f095d61be6b80929636e091da22b2d9d253852 Mon Sep 17 00:00:00 2001 From: facelessuser Date: Tue, 25 Aug 2026 21:48:16 -0600 Subject: [PATCH 5/6] Add plugin tests --- tests/test_plugin.py | 48 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/tests/test_plugin.py b/tests/test_plugin.py index c5cf224a8..1d7e3db78 100644 --- a/tests/test_plugin.py +++ b/tests/test_plugin.py @@ -183,6 +183,28 @@ class Custom(Color): Custom.register(fit_lch_chroma.LChChroma()) self.assertEqual(Custom('color(srgb 110% 140% 20%)').fit(method='lch-chroma').to_string(), expected) + def test_plugin_registration_gamut(self): + """Test plugin registration of `Gamut`.""" + + from coloraide.gamut import pointer + + expected = Color('color(srgb 110% 140% 20%)').fit('pointer-gamut').to_string() + + class Custom(Color): + pass + + Custom.deregister('gamut:pointer-gamut') + # Deregistration should have taken place + with self.assertRaises(ValueError): + Custom('color(srgb 110% 140% 20%)').fit('pointer-gamut') + + # But it should not affect the base class + self.assertEqual(Color('color(srgb 110% 140% 20%)').fit('pointer-gamut').to_string(), expected) + + # Now it is registered again + Custom.register(pointer.PointerGamut()) + self.assertEqual(Custom('color(srgb 110% 140% 20%)').fit('pointer-gamut').to_string(), expected) + def test_plugin_registration_contrast(self): """Test plugin registration of `ColorContrast`.""" @@ -368,12 +390,12 @@ class Custom(Color): class CustomSpace(Space): NAME = 'pointer-gamut' - def to_base(self, coords): # pragma: no cover + def to_base(self, coords): """To base color.""" return coords - def from_base(self, coords): # pragma: no cover + def from_base(self, coords): """From base color.""" return coords @@ -381,6 +403,28 @@ def from_base(self, coords): # pragma: no cover with self.assertRaises(ValueError): Custom.register(CustomSpace(), overwrite=True) + def test_reserved_space_name_registration(self): + """Test override registration of reserved fit method.""" + + from coloraide.gamut import Gamut + + class Custom(Color): + pass + + class CustomGamut(Gamut): + NAME = 'xyz-d65' + + def in_gamut(self, color, tolerance, **kwargs): + """Check if in gamut.""" + + return True + + def fit(self, color, **kwargs): + """Check if in gamut.""" + + with self.assertRaises(ValueError): + Custom.register(CustomGamut(), overwrite=True) + def test_bad_registration_type(self): """Test bad registration type.""" From 7daca01e8eaf0d42690c4bdd3f5c6a81db353a41 Mon Sep 17 00:00:00 2001 From: facelessuser Date: Tue, 25 Aug 2026 22:23:53 -0600 Subject: [PATCH 6/6] Reduce duplicate code --- coloraide/gamut/macadam_limits.py | 100 ++++++++++++++---------------- coloraide/gamut/pointer.py | 77 +---------------------- 2 files changed, 48 insertions(+), 129 deletions(-) diff --git a/coloraide/gamut/macadam_limits.py b/coloraide/gamut/macadam_limits.py index f455c657b..9bfd0f893 100644 --- a/coloraide/gamut/macadam_limits.py +++ b/coloraide/gamut/macadam_limits.py @@ -5,7 +5,7 @@ from .. import util from .. import algebra as alg from ..cat import WHITES -from ..types import Matrix +from ..types import Matrix, VectorT, MatrixInt, StrictNumber from .rosch_macadam_solid import LUT, LUMINANCE, HUE from typing import TYPE_CHECKING, Any @@ -33,20 +33,7 @@ def macadam_limits(luminance: float | None = None) -> Matrix: # Return all the points for a given lightness elif LUMINANCE[0] <= luminance <= LUMINANCE[-1]: # Handle too low lightness inside tolerance - if luminance <= LUMINANCE[0]: - li = 0 - lf = 0.0 - - # Handle too high lightness inside tolerance - elif luminance >= LUMINANCE[-1]: - li = len(LUMINANCE) - 2 - lf = 1.0 - - # Handle lightness within gamut - else: - li = bisect.bisect(LUMINANCE, luminance) - 1 - l1, l2 = LUMINANCE[li:li + 2] - lf = 1 - (l2 - luminance) / (l2 - l1) + li, lf = closest_lightness(luminance, LUMINANCE) chroma = [alg.lerp(row[li], row[li + 1], lf) for row in LUT[:-1]] return [[*alg.add(alg.polar_to_rect(c, h), XYw, dims=alg.D1), luminance] for c, h in zip(chroma, HUE[:-1])] @@ -55,66 +42,69 @@ def macadam_limits(luminance: float | None = None) -> Matrix: raise ValueError(f'Luminance must be between {LUMINANCE[0]} and {LUMINANCE[-1]}, but was {luminance}') -class MacAdamLimits(Gamut): - """The Rösch-MacAdam color solid (MacAdam limits).""" +def closest_lightness(l: float, lightness: VectorT[StrictNumber]) -> tuple[int, float]: + """Calculate the two closest lightness values and return the first index and interpolation factor.""" - NAME = 'macadam-limits' - LIGHTNESS = LUMINANCE - HUE = HUE + # Handle too low lightness inside tolerance + if l <= lightness[0]: + li = 0 + lf = 0.0 - def closest_lightness(self, l: float) -> tuple[int, float]: - """Calculate the two closest lightness values and return the first index and interpolation factor.""" + # Handle too high lightness inside tolerance + elif l >= lightness[-1]: + li = len(lightness) - 2 + lf = 1.0 - # Handle too low lightness inside tolerance - if l <= self.LIGHTNESS[0]: - li = 0 - lf = 0.0 + # Handle lightness within gamut + else: + li = bisect.bisect(lightness, l) - 1 + l1, l2 = lightness[li:li + 2] + lf = 1 - (l2 - l) / (l2 - l1) - # Handle too high lightness inside tolerance - elif l >= self.LIGHTNESS[-1]: - li = len(self.LIGHTNESS) - 2 - lf = 1.0 + return li, lf - # Handle lightness within gamut - else: - li = bisect.bisect(self.LIGHTNESS, l) - 1 - l1, l2 = self.LIGHTNESS[li:li + 2] - lf = 1 - (l2 - l) / (l2 - l1) - return li, lf +def closest_hue(h: float, hues: VectorT[StrictNumber]) -> tuple[int, float]: + """Calculate the two closest hues and return the first index and interpolation factor.""" - def closest_hue(self, h: float) -> tuple[int, float]: - """Calculate the two closest hues and return the first index and interpolation factor.""" + # Handle hue at the start + if h == hues[0]: # pragma: no cover + hi = 0 + hf = 0.0 - # Handle hue at the start - if h == self.HUE[0]: # pragma: no cover - hi = 0 - hf = 0.0 + # Handle hue at the end + elif h == hues[-1]: # pragma: no cover + hi = len(hues) - 2 + hf = 1.0 - # Handle hue at the end - elif h == self.HUE[-1]: # pragma: no cover - hi = len(self.HUE) - 2 - hf = 1.0 + # Handle all other hues + else: + hi = bisect.bisect(hues, h) - 1 + h1, h2 = hues[hi:hi + 2] + hf = 1 - (h2 - h) / (h2 - h1) - # Handle all other hues - else: - hi = bisect.bisect(self.HUE, h) - 1 - h1, h2 = self.HUE[hi:hi + 2] - hf = 1 - (h2 - h) / (h2 - h1) + return hi, hf - return hi, hf + +class MacAdamLimits(Gamut): + """The Rösch-MacAdam color solid (MacAdam limits).""" + + NAME = 'macadam-limits' + LIGHTNESS = LUMINANCE + HUE = HUE + LUT: Matrix | MatrixInt = LUT def get_chroma_limit(self, l: float, h: float) -> float: """Get the chroma limit.""" # Find the two closest lightness columns and calculate the needed interpolation factor. - li, lf = self.closest_lightness(l) + li, lf = closest_lightness(l, self.LIGHTNESS) # Find the two closest hue rows and calculate the needed interpolation factor. - hi, hf = self.closest_hue(h) + hi, hf = closest_hue(h, self.HUE) # Interpolate the chroma limit by interpolating chroma values for the closest lightness values and hues. - row1, row2 = LUT[hi:hi + 2] + row1, row2 = self.LUT[hi:hi + 2] return alg.lerp(alg.lerp(row1[li], row1[li + 1], lf), alg.lerp(row2[li], row2[li + 1], lf), hf) def in_gamut(self, color: Color, tolerance: float, **kwargs: Any) -> bool: diff --git a/coloraide/gamut/pointer.py b/coloraide/gamut/pointer.py index cf7cc0694..1e48e0b1f 100644 --- a/coloraide/gamut/pointer.py +++ b/coloraide/gamut/pointer.py @@ -5,14 +5,13 @@ """ from __future__ import annotations import math -import bisect +from .macadam_limits import MacAdamLimits, closest_lightness from ..spaces.lab import xyz_to_lab, lab_to_xyz from ..spaces.lch import lab_to_lch, lch_to_lab from .. import algebra as alg from .. import util from ..types import Vector, Matrix, AnyColor, VectorLike # noqa: F401 from typing import TYPE_CHECKING, Any -from . import Gamut if TYPE_CHECKING: #pragma: no cover from ..color import Color @@ -93,23 +92,8 @@ def pointer_gamut_boundary(lightness: float | None = None) -> Matrix: # Return all the points for a given lightness elif LIGHTNESS[0] <= lightness <= LIGHTNESS[-1]: # Handle too low lightness inside tolerance - if lightness <= LIGHTNESS[0]: - li = 0 - lf = 0.0 - - # Handle too high lightness inside tolerance - elif lightness >= LIGHTNESS[-1]: - li = len(LIGHTNESS) - 2 - lf = 1.0 - - # Handle lightness within gamut - else: - li = bisect.bisect(LIGHTNESS, lightness) - 1 - l1, l2 = LIGHTNESS[li:li + 2] - lf = 1 - (l2 - lightness) / (l2 - l1) - + li, lf = closest_lightness(lightness, LIGHTNESS) chroma = [alg.lerp(row[li], row[li + 1], lf) for row in LUT[:-1]] - return [util.xyz_to_xyY(lab_to_xyz(lch_to_lab([lightness, c, h]), XYZ_W), XYZ_W) for c, h in zip(chroma, HUE)] # Lightness exceeds threshold @@ -117,7 +101,7 @@ def pointer_gamut_boundary(lightness: float | None = None) -> Matrix: raise ValueError(f'Lightness must be between {LIGHTNESS[0]} and {LIGHTNESS[-1]}, but was {lightness}') -class PointerGamut(Gamut): +class PointerGamut(MacAdamLimits): """The Pointer gamut.""" NAME = 'pointer-gamut' @@ -140,61 +124,6 @@ def from_lch(self, color: AnyColor, lch: Vector) -> AnyColor: xyz_d65 = color.chromatic_adaptation(self.GAMUT_WHITE, color.CS_MAP['xyz-d65'].WHITE, xyz_gamut) return color.update('xyz-d65', xyz_d65, color[-1]) - def closest_lightness(self, l: float) -> tuple[int, float]: - """Calculate the two closest lightness values and return the first index and interpolation factor.""" - - # Handle too low lightness inside tolerance - if l <= self.LIGHTNESS[0]: - li = 0 - lf = 0.0 - - # Handle too high lightness inside tolerance - elif l >= self.LIGHTNESS[-1]: - li = len(self.LIGHTNESS) - 2 - lf = 1.0 - - # Handle lightness within gamut - else: - li = bisect.bisect(self.LIGHTNESS, l) - 1 - l1, l2 = self.LIGHTNESS[li:li + 2] - lf = 1 - (l2 - l) / (l2 - l1) - - return li, lf - - def closest_hue(self, h: float) -> tuple[int, float]: - """Calculate the two closest hues and return the first index and interpolation factor.""" - - # Handle hue at the start - if h == self.HUE[0]: # pragma: no cover - hi = 0 - hf = 0.0 - - # Handle hue at the end - elif h == self.HUE[-1]: # pragma: no cover - hi = len(self.HUE) - 2 - hf = 1.0 - - # Handle all other hues - else: - hi = bisect.bisect(self.HUE, h) - 1 - h1, h2 = self.HUE[hi:hi + 2] - hf = 1 - (h2 - h) / (h2 - h1) - - return hi, hf - - def get_chroma_limit(self, l: float, h: float) -> float: - """Get the chroma limit.""" - - # Find the two closest lightness columns and calculate the needed interpolation factor. - li, lf = self.closest_lightness(l) - - # Find the two closest hue rows and calculate the needed interpolation factor. - hi, hf = self.closest_hue(h) - - # Interpolate the chroma limit by interpolating chroma values for the closest lightness values and hues. - row1, row2 = self.LUT[hi:hi + 2] - return alg.lerp(alg.lerp(row1[li], row1[li + 1], lf), alg.lerp(row2[li], row2[li + 1], lf), hf) - def in_gamut(self, color: Color, tolerance: float, **kwargs: Any) -> bool: """Test if in gamut."""