// This file is autogenerated by build-prefixes.js. DO NOT EDIT!

use crate::targets::Browsers;

#[allow(dead_code)]
#[derive(Clone, Copy, PartialEq)]
pub enum Feature {
  AbsFunction,
  AccentSystemColor,
  AfarListStyleType,
  AmharicAbegedeListStyleType,
  AmharicListStyleType,
  AnchorSizeSize,
  AnimationTimelineShorthand,
  AnyLink,
  AnyPseudo,
  ArabicIndicListStyleType,
  ArmenianListStyleType,
  AsterisksListStyleType,
  AutoSize,
  Autofill,
  BengaliListStyleType,
  BinaryListStyleType,
  BorderImageRepeatRound,
  BorderImageRepeatSpace,
  CalcFunction,
  CambodianListStyleType,
  CapUnit,
  CaseInsensitive,
  ChUnit,
  Checkmark,
  CircleListStyleType,
  CjkDecimalListStyleType,
  CjkEarthlyBranchListStyleType,
  CjkHeavenlyStemListStyleType,
  ClampFunction,
  ColorFunction,
  ConicGradient,
  ContainerQueryLengthUnits,
  Cue,
  CueFunction,
  CustomMediaQueries,
  DecimalLeadingZeroListStyleType,
  DecimalListStyleType,
  DefaultPseudo,
  DetailsContent,
  DevanagariListStyleType,
  Dialog,
  DirSelector,
  DiscListStyleType,
  DisclosureClosedListStyleType,
  DisclosureOpenListStyleType,
  DoublePositionGradients,
  EmUnit,
  EthiopicAbegedeAmEtListStyleType,
  EthiopicAbegedeGezListStyleType,
  EthiopicAbegedeListStyleType,
  EthiopicAbegedeTiErListStyleType,
  EthiopicAbegedeTiEtListStyleType,
  EthiopicHalehameAaErListStyleType,
  EthiopicHalehameAaEtListStyleType,
  EthiopicHalehameAmEtListStyleType,
  EthiopicHalehameGezListStyleType,
  EthiopicHalehameOmEtListStyleType,
  EthiopicHalehameSidEtListStyleType,
  EthiopicHalehameSoEtListStyleType,
  EthiopicHalehameTigListStyleType,
  EthiopicListStyleType,
  EthiopicNumericListStyleType,
  ExUnit,
  ExtendedSystemFonts,
  FirstLetter,
  FirstLine,
  FitContentFunctionSize,
  FitContentSize,
  FocusVisible,
  FocusWithin,
  FontFamilySystemUi,
  FontSizeRem,
  FontSizeXXXLarge,
  FontStretchPercentage,
  FontStyleObliqueAngle,
  FontWeightNumber,
  FootnotesListStyleType,
  FormValidation,
  Fullscreen,
  Gencontent,
  GeorgianListStyleType,
  GradientInterpolationHints,
  GrammarError,
  GujaratiListStyleType,
  GurmukhiListStyleType,
  HasSelector,
  HebrewListStyleType,
  HexAlphaColors,
  HiraganaIrohaListStyleType,
  HiraganaListStyleType,
  HypotFunction,
  IcUnit,
  ImageSet,
  InOutOfRange,
  IndeterminatePseudo,
  IsAnimatableSize,
  IsSelector,
  JapaneseFormalListStyleType,
  JapaneseInformalListStyleType,
  KannadaListStyleType,
  KatakanaIrohaListStyleType,
  KatakanaListStyleType,
  KhmerListStyleType,
  KoreanHangulFormalListStyleType,
  KoreanHanjaFormalListStyleType,
  KoreanHanjaInformalListStyleType,
  LabColors,
  LangSelectorList,
  LaoListStyleType,
  LhUnit,
  LightDark,
  LinearGradient,
  LogicalBorderRadius,
  LogicalBorderShorthand,
  LogicalBorders,
  LogicalInset,
  LogicalMargin,
  LogicalMarginShorthand,
  LogicalPadding,
  LogicalPaddingShorthand,
  LogicalSize,
  LogicalTextAlign,
  LowerAlphaListStyleType,
  LowerArmenianListStyleType,
  LowerGreekListStyleType,
  LowerHexadecimalListStyleType,
  LowerLatinListStyleType,
  LowerNorwegianListStyleType,
  LowerRomanListStyleType,
  MalayalamListStyleType,
  MarkerPseudo,
  MaxContentSize,
  MaxFunction,
  MediaIntervalSyntax,
  MediaRangeSyntax,
  MinContentSize,
  MinFunction,
  ModFunction,
  MongolianListStyleType,
  MozAvailableSize,
  MyanmarListStyleType,
  Namespaces,
  Nesting,
  NoneListStyleType,
  NotSelectorList,
  NthChildOf,
  OctalListStyleType,
  OklabColors,
  OptionalPseudo,
  OriyaListStyleType,
  OromoListStyleType,
  OverflowShorthand,
  P3Colors,
  PartPseudo,
  PersianListStyleType,
  Picker,
  PickerIcon,
  PlaceContent,
  PlaceItems,
  PlaceSelf,
  Placeholder,
  PlaceholderShown,
  QUnit,
  RadialGradient,
  RcapUnit,
  RchUnit,
  ReadOnlyWrite,
  RemFunction,
  RemUnit,
  RepeatingConicGradient,
  RepeatingLinearGradient,
  RepeatingRadialGradient,
  RexUnit,
  RicUnit,
  RlhUnit,
  RoundFunction,
  Selection,
  Selectors2,
  Selectors3,
  Shadowdomv1,
  SidamaListStyleType,
  SignFunction,
  SimpChineseFormalListStyleType,
  SimpChineseInformalListStyleType,
  SomaliListStyleType,
  SpaceSeparatedColorNotation,
  SpellingError,
  SquareListStyleType,
  StretchSize,
  StringListStyleType,
  SymbolsListStyleType,
  TamilListStyleType,
  TargetText,
  TeluguListStyleType,
  TextDecorationThicknessPercent,
  TextDecorationThicknessShorthand,
  ThaiListStyleType,
  TibetanListStyleType,
  TigreListStyleType,
  TigrinyaErAbegedeListStyleType,
  TigrinyaErListStyleType,
  TigrinyaEtAbegedeListStyleType,
  TigrinyaEtListStyleType,
  TradChineseFormalListStyleType,
  TradChineseInformalListStyleType,
  UpperAlphaListStyleType,
  UpperArmenianListStyleType,
  UpperHexadecimalListStyleType,
  UpperLatinListStyleType,
  UpperNorwegianListStyleType,
  UpperRomanListStyleType,
  VbUnit,
  VhUnit,
  ViUnit,
  ViewTransition,
  ViewportPercentageUnitsDynamic,
  ViewportPercentageUnitsLarge,
  ViewportPercentageUnitsSmall,
  VmaxUnit,
  VminUnit,
  VwUnit,
  WebkitFillAvailableSize,
  XResolutionUnit,
}

impl Feature {
  pub fn is_compatible(&self, browsers: Browsers) -> bool {
    match self {
      Feature::Selectors2 => {
        if let Some(version) = browsers.ie {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 131072 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 196864 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 197120 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 131328 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 262144 {
            return false;
          }
        }
      }
      Feature::Selectors3 => {
        if let Some(version) = browsers.ie {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 197888 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 197120 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 591104 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 197120 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 131328 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 262144 {
            return false;
          }
        }
      }
      Feature::Gencontent | Feature::FirstLine => {
        if let Some(version) = browsers.ie {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 131072 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 196864 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 197120 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 131328 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 262144 {
            return false;
          }
        }
      }
      Feature::FirstLetter => {
        if let Some(version) = browsers.ie {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 197888 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 327936 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 722432 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 196608 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 262144 {
            return false;
          }
        }
      }
      Feature::InOutOfRange => {
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 3276800 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 3473408 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 655616 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 2621440 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 656128 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 327680 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::FormValidation => {
        if let Some(version) = browsers.ie {
          if version < 655360 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 655360 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 655616 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 655360 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 656128 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263171 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 262144 {
            return false;
          }
        }
      }
      Feature::AnyLink => {
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 3276800 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 4259840 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3407872 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 590336 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::DefaultPseudo => {
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 3342336 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 655616 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 2490368 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 656128 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 327680 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::DirSelector => {
        if let Some(version) = browsers.edge {
          if version < 7864320 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 3211264 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 7864320 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1049600 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 6946816 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1049600 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1638400 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::FocusWithin => {
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 3407872 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 3932160 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 655616 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3080192 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 656128 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 524800 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::FocusVisible => {
        if let Some(version) = browsers.edge {
          if version < 5636096 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 5570560 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 5636096 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 984064 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4718592 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 984064 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 917504 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::IndeterminatePseudo => {
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 3342336 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 2555904 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 655616 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 1703936 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 656128 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 262144 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::IsSelector => {
        if let Some(version) = browsers.edge {
          if version < 5767168 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 5111808 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 5767168 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4915200 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 983040 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::OptionalPseudo => {
        if let Some(version) = browsers.ie {
          if version < 655360 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 131840 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 262144 {
            return false;
          }
        }
      }
      Feature::PlaceholderShown => {
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 3342336 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 3080192 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 2228224 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 327680 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::Dialog => {
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 6422528 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 2424832 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 984064 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 1572864 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 984064 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 262144 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::Fullscreen => {
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 4194304 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 4653056 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1049600 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 786688 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 655616 {
            return false;
          }
        }
        if browsers.android.is_some() || browsers.ie.is_some() || browsers.ios_saf.is_some() {
          return false;
        }
      }
      Feature::MarkerPseudo => {
        if let Some(version) = browsers.edge {
          if version < 5636096 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 4456448 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 5636096 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4718592 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 917504 {
            return false;
          }
        }
        if browsers.ie.is_some() || browsers.ios_saf.is_some() || browsers.safari.is_some() {
          return false;
        }
      }
      Feature::Placeholder => {
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 3342336 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 3735552 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 655616 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 2883584 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 656128 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 459264 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::Selection => {
        if let Some(version) = browsers.ie {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 4063232 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 196864 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 591104 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 262144 {
            return false;
          }
        }
        if browsers.ios_saf.is_some() {
          return false;
        }
      }
      Feature::CaseInsensitive => {
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 3080192 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 3211264 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 2359296 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 327680 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::ReadOnlyWrite => {
        if let Some(version) = browsers.edge {
          if version < 851968 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 5111808 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 2359296 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 1507328 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 262144 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::Autofill => {
        if let Some(version) = browsers.chrome {
          if version < 7208960 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 7208960 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 5636096 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 6291456 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1376256 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::Namespaces => {
        if let Some(version) = browsers.ie {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 131072 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 262656 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 131328 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 262144 {
            return false;
          }
        }
      }
      Feature::Shadowdomv1 => {
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 4128768 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 3473408 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 655360 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 2621440 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 720896 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 393728 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::HexAlphaColors => {
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 3211264 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 4063232 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 655360 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3407872 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 655360 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 524800 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::Nesting => {
        if let Some(version) = browsers.edge {
          if version < 7864320 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 7667712 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 7864320 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1114624 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 6946816 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1114624 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1638400 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::NotSelectorList => {
        if let Some(version) = browsers.edge {
          if version < 5767168 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 5505024 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 5767168 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4915200 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 983040 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::HasSelector => {
        if let Some(version) = browsers.edge {
          if version < 6881280 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 7929856 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 6881280 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 984064 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 5963776 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 984064 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1310720 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::FontFamilySystemUi => {
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 6029312 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 3670016 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 720896 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 2818048 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 720896 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 393728 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::ExtendedSystemFonts => {
        if let Some(version) = browsers.safari {
          if version < 852224 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 852992 {
            return false;
          }
        }
        if browsers.android.is_some()
          || browsers.chrome.is_some()
          || browsers.edge.is_some()
          || browsers.firefox.is_some()
          || browsers.ie.is_some()
          || browsers.opera.is_some()
          || browsers.samsung.is_some()
        {
          return false;
        }
      }
      Feature::CalcFunction => {
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 1048576 {
            return false;
          }
        }
        if let Some(version) = browsers.chrome {
          if version < 1703936 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 393472 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9175040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 262144 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::CustomMediaQueries | Feature::FitContentFunctionSize => return false,
      Feature::DoublePositionGradients => {
        if let Some(version) = browsers.chrome {
          if version < 4653056 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 4194304 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3276800 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 786688 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 786944 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 655360 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 4653056 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::ClampFunction => {
        if let Some(version) = browsers.chrome {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3735552 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 852224 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 852992 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 5177344 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::PlaceSelf | Feature::PlaceItems => {
        if let Some(version) = browsers.chrome {
          if version < 3866624 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 2949120 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 2818048 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 720896 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 720896 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 3866624 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::PlaceContent => {
        if let Some(version) = browsers.chrome {
          if version < 3866624 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 2949120 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 2818048 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 3866624 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::OverflowShorthand => {
        if let Some(version) = browsers.chrome {
          if version < 4456448 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 3997696 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3145728 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 852224 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 852992 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 655360 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 4456448 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::MediaRangeSyntax => {
        if let Some(version) = browsers.chrome {
          if version < 6815744 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 6815744 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 4128768 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4653056 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1049600 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1049600 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1310720 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 6815744 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::MediaIntervalSyntax => {
        if let Some(version) = browsers.chrome {
          if version < 6815744 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 6815744 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 6684672 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4653056 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1049600 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1049600 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1310720 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 6815744 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::LogicalBorders => {
        if let Some(version) = browsers.chrome {
          if version < 4521984 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 2686976 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3145728 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 786688 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 786944 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 655360 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 4521984 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::LogicalBorderShorthand | Feature::LogicalMarginShorthand | Feature::LogicalPaddingShorthand => {
        if let Some(version) = browsers.chrome {
          if version < 5701632 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5701632 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 4325376 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4063232 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 917760 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 918784 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 5701632 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::LogicalBorderRadius => {
        if let Some(version) = browsers.chrome {
          if version < 5832704 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5832704 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 4325376 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4128768 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 5832704 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::LogicalMargin | Feature::LogicalPadding => {
        if let Some(version) = browsers.chrome {
          if version < 4521984 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 2686976 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3145728 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 786688 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 786944 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 655360 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 5701632 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::LogicalInset => {
        if let Some(version) = browsers.chrome {
          if version < 5701632 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5701632 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 4128768 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4063232 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 917760 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 918784 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 5701632 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::LogicalSize => {
        if let Some(version) = browsers.chrome {
          if version < 3735552 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 2686976 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 2818048 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 786688 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 786944 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 3735552 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::LogicalTextAlign => {
        if let Some(version) = browsers.chrome {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 196864 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 131072 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 2424832 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::LabColors => {
        if let Some(version) = browsers.chrome {
          if version < 7274496 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 7274496 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 7405568 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4915200 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1441792 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 7274496 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::OklabColors => {
        if let Some(version) = browsers.chrome {
          if version < 7274496 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 7274496 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 7405568 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4915200 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 984064 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 984064 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1441792 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 7274496 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::ColorFunction => {
        if let Some(version) = browsers.chrome {
          if version < 7274496 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 7274496 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 7405568 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4915200 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 655616 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 656128 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1441792 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 7274496 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::SpaceSeparatedColorNotation => {
        if let Some(version) = browsers.chrome {
          if version < 4259840 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 3407872 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3080192 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 786688 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 786944 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 4259840 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::TextDecorationThicknessPercent => {
        if let Some(version) = browsers.chrome {
          if version < 5701632 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5701632 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4063232 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1115136 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1115136 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 5701632 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::TextDecorationThicknessShorthand => {
        if let Some(version) = browsers.chrome {
          if version < 5701632 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5701632 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4063232 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 5701632 {
            return false;
          }
        }
        if browsers.ie.is_some() || browsers.ios_saf.is_some() || browsers.safari.is_some() {
          return false;
        }
      }
      Feature::Cue => {
        if let Some(version) = browsers.chrome {
          if version < 1703936 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 3604480 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 66816 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::CueFunction => {
        if let Some(version) = browsers.chrome {
          if version < 1703936 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 66816 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
        if browsers.firefox.is_some() || browsers.ie.is_some() {
          return false;
        }
      }
      Feature::AnyPseudo => {
        if let Some(version) = browsers.chrome {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::PartPseudo => {
        if let Some(version) = browsers.chrome {
          if version < 4784128 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3407872 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 852224 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 852992 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 720896 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 4784128 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::ImageSet => {
        if let Some(version) = browsers.chrome {
          if version < 1638400 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 5767168 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 393216 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 393216 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 66816 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::XResolutionUnit => {
        if let Some(version) = browsers.chrome {
          if version < 4456448 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 4063232 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3145728 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1048576 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1048576 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 655360 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 4456448 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::NthChildOf => {
        if let Some(version) = browsers.chrome {
          if version < 7274496 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 7274496 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 7405568 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4915200 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1441792 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 7274496 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::MinFunction | Feature::MaxFunction => {
        if let Some(version) = browsers.chrome {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3735552 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 721152 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 721664 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 5177344 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::RoundFunction | Feature::RemFunction | Feature::ModFunction => {
        if let Some(version) = browsers.chrome {
          if version < 8192000 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 8192000 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 7733248 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 5439488 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 984064 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 984064 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1769472 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 8192000 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::AbsFunction | Feature::SignFunction => {
        if let Some(version) = browsers.chrome {
          if version < 9043968 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 9043968 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 7733248 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 5963776 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 984064 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 984064 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9043968 {
            return false;
          }
        }
        if browsers.ie.is_some() || browsers.samsung.is_some() {
          return false;
        }
      }
      Feature::HypotFunction => {
        if let Some(version) = browsers.chrome {
          if version < 7864320 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 7864320 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 7733248 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 5242880 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 984064 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 984064 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1638400 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 7864320 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::GradientInterpolationHints => {
        if let Some(version) = browsers.chrome {
          if version < 2621440 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 2359296 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 1769472 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 2621440 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::BorderImageRepeatRound => {
        if let Some(version) = browsers.chrome {
          if version < 1966080 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.ie {
          if version < 720896 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 590080 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 590592 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 131072 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
      }
      Feature::BorderImageRepeatSpace => {
        if let Some(version) = browsers.chrome {
          if version < 3670016 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 3276800 {
            return false;
          }
        }
        if let Some(version) = browsers.ie {
          if version < 720896 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 2818048 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 590080 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 590592 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 393216 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 3670016 {
            return false;
          }
        }
      }
      Feature::FontSizeRem => {
        if let Some(version) = browsers.chrome {
          if version < 2752512 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 2031616 {
            return false;
          }
        }
        if let Some(version) = browsers.ie {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 1835008 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 2752512 {
            return false;
          }
        }
      }
      Feature::FontSizeXXXLarge => {
        if let Some(version) = browsers.chrome {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3735552 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1049600 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1049600 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 5177344 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::FontStyleObliqueAngle => {
        if let Some(version) = browsers.chrome {
          if version < 4063232 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 3997696 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3014656 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 721152 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 721664 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 524288 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 4063232 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::FontWeightNumber => {
        if let Some(version) = browsers.chrome {
          if version < 4063232 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 1114112 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 3997696 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3014656 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 720896 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 720896 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 524288 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 4063232 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::FontStretchPercentage => {
        if let Some(version) = browsers.chrome {
          if version < 4063232 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 3997696 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3014656 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 721152 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 721664 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 524288 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 4063232 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::LightDark => {
        if let Some(version) = browsers.chrome {
          if version < 8060928 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 8060928 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 7864320 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 5373952 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1115392 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1115392 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1769472 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 8060928 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::AccentSystemColor => {
        if let Some(version) = browsers.firefox {
          if version < 6750208 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1049856 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1049856 {
            return false;
          }
        }
        if browsers.android.is_some()
          || browsers.chrome.is_some()
          || browsers.edge.is_some()
          || browsers.ie.is_some()
          || browsers.opera.is_some()
          || browsers.samsung.is_some()
        {
          return false;
        }
      }
      Feature::AnimationTimelineShorthand => {
        if let Some(version) = browsers.chrome {
          if version < 7536640 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 7536640 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 5046272 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1507328 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 7536640 {
            return false;
          }
        }
        if browsers.firefox.is_some()
          || browsers.ie.is_some()
          || browsers.ios_saf.is_some()
          || browsers.safari.is_some()
        {
          return false;
        }
      }
      Feature::ViewTransition => {
        if let Some(version) = browsers.chrome {
          if version < 7143424 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 7143424 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 9437184 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4849664 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1376256 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 7143424 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::DetailsContent => {
        if let Some(version) = browsers.chrome {
          if version < 8585216 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 8585216 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 9371648 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 5701632 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1180672 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1180672 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 8585216 {
            return false;
          }
        }
        if browsers.ie.is_some() || browsers.samsung.is_some() {
          return false;
        }
      }
      Feature::TargetText => {
        if let Some(version) = browsers.chrome {
          if version < 5832704 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5832704 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 8585216 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4128768 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1180160 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1180160 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 5832704 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::Picker | Feature::PickerIcon | Feature::Checkmark => {
        if let Some(version) = browsers.chrome {
          if version < 8847360 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 8847360 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 5832704 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 8847360 {
            return false;
          }
        }
        if browsers.firefox.is_some()
          || browsers.ie.is_some()
          || browsers.ios_saf.is_some()
          || browsers.safari.is_some()
          || browsers.samsung.is_some()
        {
          return false;
        }
      }
      Feature::GrammarError | Feature::SpellingError => {
        if let Some(version) = browsers.chrome {
          if version < 7929856 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 7929856 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 5308416 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1115136 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1115136 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1638400 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 7929856 {
            return false;
          }
        }
        if browsers.firefox.is_some() || browsers.ie.is_some() {
          return false;
        }
      }
      Feature::QUnit => {
        if let Some(version) = browsers.chrome {
          if version < 4128768 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 3211264 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3014656 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 852224 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 852992 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 524288 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 4128768 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::CapUnit => {
        if let Some(version) = browsers.chrome {
          if version < 7733248 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 7733248 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 6356992 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1114624 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1114624 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1638400 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 7733248 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::ChUnit => {
        if let Some(version) = browsers.chrome {
          if version < 1769472 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.ie {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 66816 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
      }
      Feature::ContainerQueryLengthUnits => {
        if let Some(version) = browsers.chrome {
          if version < 6881280 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 6881280 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 7208960 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4718592 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1048576 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1048576 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1310720 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 6881280 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::EmUnit => {
        if let Some(version) = browsers.chrome {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.ie {
          if version < 196608 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 655616 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 65536 {
            return false;
          }
        }
      }
      Feature::ExUnit
      | Feature::CircleListStyleType
      | Feature::DecimalListStyleType
      | Feature::DiscListStyleType
      | Feature::SquareListStyleType => {
        if let Some(version) = browsers.chrome {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.ie {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 655616 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
      }
      Feature::IcUnit => {
        if let Some(version) = browsers.chrome {
          if version < 6946816 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 6946816 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 6356992 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4718592 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 984064 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 984064 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1310720 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 6946816 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::LhUnit => {
        if let Some(version) = browsers.chrome {
          if version < 7143424 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 7143424 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 7864320 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4849664 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1049600 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1049600 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1376256 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 7143424 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::RcapUnit => {
        if let Some(version) = browsers.chrome {
          if version < 7733248 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 7733248 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1114624 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1114624 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1638400 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 7733248 {
            return false;
          }
        }
        if browsers.firefox.is_some() || browsers.ie.is_some() {
          return false;
        }
      }
      Feature::RchUnit | Feature::RexUnit | Feature::RicUnit => {
        if let Some(version) = browsers.chrome {
          if version < 7274496 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 7274496 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4915200 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1114624 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1114624 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1441792 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 7274496 {
            return false;
          }
        }
        if browsers.firefox.is_some() || browsers.ie.is_some() {
          return false;
        }
      }
      Feature::RemUnit => {
        if let Some(version) = browsers.chrome {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.ie {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 131072 {
            return false;
          }
        }
      }
      Feature::RlhUnit => {
        if let Some(version) = browsers.chrome {
          if version < 7274496 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 7274496 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 7864320 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4915200 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1049600 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1049600 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1441792 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 7274496 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::VbUnit
      | Feature::ViUnit
      | Feature::ViewportPercentageUnitsDynamic
      | Feature::ViewportPercentageUnitsLarge
      | Feature::ViewportPercentageUnitsSmall => {
        if let Some(version) = browsers.chrome {
          if version < 7077888 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 7077888 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 6619136 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4784128 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 984064 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 984064 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1376256 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 7077888 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::VhUnit | Feature::VwUnit => {
        if let Some(version) = browsers.chrome {
          if version < 1638400 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 1245184 {
            return false;
          }
        }
        if let Some(version) = browsers.ie {
          if version < 589824 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 393216 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 393216 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 66816 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
      }
      Feature::VmaxUnit => {
        if let Some(version) = browsers.chrome {
          if version < 1703936 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 1048576 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 1245184 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 66816 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 66816 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::VminUnit => {
        if let Some(version) = browsers.chrome {
          if version < 1703936 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 1245184 {
            return false;
          }
        }
        if let Some(version) = browsers.ie {
          if version < 655360 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 66816 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
      }
      Feature::ConicGradient | Feature::RepeatingConicGradient => {
        if let Some(version) = browsers.chrome {
          if version < 4521984 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 5439488 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3145728 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 786688 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 786944 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 655360 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 4521984 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::LinearGradient | Feature::RepeatingLinearGradient => {
        if let Some(version) = browsers.chrome {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.ie {
          if version < 655360 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 720896 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 327936 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
      }
      Feature::RadialGradient => {
        if let Some(version) = browsers.chrome {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.ie {
          if version < 655360 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 327936 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
      }
      Feature::RepeatingRadialGradient => {
        if let Some(version) = browsers.chrome {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 655360 {
            return false;
          }
        }
        if let Some(version) = browsers.ie {
          if version < 655360 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 327936 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
      }
      Feature::AfarListStyleType
      | Feature::AmharicListStyleType
      | Feature::AmharicAbegedeListStyleType
      | Feature::EthiopicListStyleType
      | Feature::EthiopicAbegedeListStyleType
      | Feature::EthiopicAbegedeAmEtListStyleType
      | Feature::EthiopicAbegedeGezListStyleType
      | Feature::EthiopicAbegedeTiErListStyleType
      | Feature::EthiopicAbegedeTiEtListStyleType
      | Feature::EthiopicHalehameAaErListStyleType
      | Feature::EthiopicHalehameAaEtListStyleType
      | Feature::EthiopicHalehameAmEtListStyleType
      | Feature::EthiopicHalehameGezListStyleType
      | Feature::EthiopicHalehameOmEtListStyleType
      | Feature::EthiopicHalehameSidEtListStyleType
      | Feature::EthiopicHalehameSoEtListStyleType
      | Feature::EthiopicHalehameTigListStyleType
      | Feature::LowerHexadecimalListStyleType
      | Feature::LowerNorwegianListStyleType
      | Feature::UpperHexadecimalListStyleType
      | Feature::UpperNorwegianListStyleType => {
        if let Some(version) = browsers.chrome {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5963776 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 262656 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 196608 {
            return false;
          }
        }
        if browsers.firefox.is_some() || browsers.ie.is_some() {
          return false;
        }
      }
      Feature::ArabicIndicListStyleType
      | Feature::BengaliListStyleType
      | Feature::CjkEarthlyBranchListStyleType
      | Feature::CjkHeavenlyStemListStyleType
      | Feature::DevanagariListStyleType
      | Feature::GujaratiListStyleType
      | Feature::GurmukhiListStyleType
      | Feature::KannadaListStyleType
      | Feature::KhmerListStyleType
      | Feature::LaoListStyleType
      | Feature::MalayalamListStyleType
      | Feature::MyanmarListStyleType
      | Feature::OriyaListStyleType
      | Feature::PersianListStyleType
      | Feature::TeluguListStyleType
      | Feature::ThaiListStyleType => {
        if let Some(version) = browsers.chrome {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 262656 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::ArmenianListStyleType
      | Feature::DecimalLeadingZeroListStyleType
      | Feature::GeorgianListStyleType
      | Feature::LowerAlphaListStyleType
      | Feature::LowerGreekListStyleType
      | Feature::LowerRomanListStyleType
      | Feature::UpperAlphaListStyleType
      | Feature::UpperLatinListStyleType
      | Feature::UpperRomanListStyleType => {
        if let Some(version) = browsers.chrome {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.ie {
          if version < 524288 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 655616 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
      }
      Feature::AsterisksListStyleType | Feature::FootnotesListStyleType => {
        if let Some(version) = browsers.chrome {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5963776 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 327936 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
        if browsers.firefox.is_some() || browsers.ie.is_some() {
          return false;
        }
      }
      Feature::BinaryListStyleType
      | Feature::OctalListStyleType
      | Feature::OromoListStyleType
      | Feature::SidamaListStyleType
      | Feature::SomaliListStyleType
      | Feature::TigreListStyleType
      | Feature::TigrinyaErListStyleType
      | Feature::TigrinyaErAbegedeListStyleType
      | Feature::TigrinyaEtListStyleType
      | Feature::TigrinyaEtAbegedeListStyleType => {
        if let Some(version) = browsers.chrome {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5963776 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 262656 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
        if browsers.firefox.is_some() || browsers.ie.is_some() {
          return false;
        }
      }
      Feature::CambodianListStyleType | Feature::MongolianListStyleType | Feature::TibetanListStyleType => {
        if let Some(version) = browsers.chrome {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 2162688 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 262656 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::CjkDecimalListStyleType => {
        if let Some(version) = browsers.chrome {
          if version < 5963776 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5963776 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 1835008 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4194304 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1048576 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 5963776 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::DisclosureClosedListStyleType | Feature::DisclosureOpenListStyleType => {
        if let Some(version) = browsers.chrome {
          if version < 5832704 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5832704 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 2162688 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4128768 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 5832704 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::EthiopicNumericListStyleType
      | Feature::JapaneseFormalListStyleType
      | Feature::JapaneseInformalListStyleType
      | Feature::TamilListStyleType => {
        if let Some(version) = browsers.chrome {
          if version < 5963776 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5963776 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 4194304 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1048576 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 5963776 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::HebrewListStyleType
      | Feature::HiraganaListStyleType
      | Feature::HiraganaIrohaListStyleType
      | Feature::KatakanaListStyleType
      | Feature::KatakanaIrohaListStyleType
      | Feature::NoneListStyleType
      | Feature::AutoSize => {
        if let Some(version) = browsers.chrome {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.ie {
          if version < 720896 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
      }
      Feature::KoreanHangulFormalListStyleType
      | Feature::KoreanHanjaFormalListStyleType
      | Feature::KoreanHanjaInformalListStyleType => {
        if let Some(version) = browsers.chrome {
          if version < 2949120 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 1835008 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 2097152 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 2949120 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::LowerArmenianListStyleType | Feature::UpperArmenianListStyleType => {
        if let Some(version) = browsers.chrome {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 2162688 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 327936 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::LowerLatinListStyleType => {
        if let Some(version) = browsers.chrome {
          if version < 1179648 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.ie {
          if version < 524288 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 655616 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 65536 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
      }
      Feature::SimpChineseFormalListStyleType
      | Feature::SimpChineseInformalListStyleType
      | Feature::TradChineseFormalListStyleType
      | Feature::TradChineseInformalListStyleType => {
        if let Some(version) = browsers.chrome {
          if version < 2949120 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 2097152 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 983040 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 2949120 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::StringListStyleType => {
        if let Some(version) = browsers.chrome {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 2555904 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 3735552 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 917760 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 918784 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 5177344 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::SymbolsListStyleType => {
        if let Some(version) = browsers.firefox {
          if version < 2293760 {
            return false;
          }
        }
        if browsers.android.is_some()
          || browsers.chrome.is_some()
          || browsers.edge.is_some()
          || browsers.ie.is_some()
          || browsers.ios_saf.is_some()
          || browsers.opera.is_some()
          || browsers.safari.is_some()
          || browsers.samsung.is_some()
        {
          return false;
        }
      }
      Feature::AnchorSizeSize => {
        if let Some(version) = browsers.chrome {
          if version < 8192000 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 8192000 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 5439488 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 1703936 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 1703936 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 1769472 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 8192000 {
            return false;
          }
        }
        if browsers.firefox.is_some() || browsers.ie.is_some() {
          return false;
        }
      }
      Feature::FitContentSize => {
        if let Some(version) = browsers.chrome {
          if version < 1638400 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 66816 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::IsAnimatableSize => {
        if let Some(version) = browsers.chrome {
          if version < 1703936 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 786432 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 1048576 {
            return false;
          }
        }
        if let Some(version) = browsers.ie {
          if version < 720896 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 917504 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 66816 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
      }
      Feature::MaxContentSize => {
        if let Some(version) = browsers.chrome {
          if version < 1638400 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 2818048 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 720896 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 720896 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 66816 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 263168 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::MinContentSize => {
        if let Some(version) = browsers.chrome {
          if version < 3014656 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 5177344 {
            return false;
          }
        }
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 2162688 {
            return false;
          }
        }
        if let Some(version) = browsers.safari {
          if version < 720896 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 720896 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 327680 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 3014656 {
            return false;
          }
        }
        if browsers.ie.is_some() {
          return false;
        }
      }
      Feature::StretchSize => {
        if let Some(version) = browsers.chrome {
          if version < 9043968 {
            return false;
          }
        }
        if let Some(version) = browsers.edge {
          if version < 9043968 {
            return false;
          }
        }
        if let Some(version) = browsers.opera {
          if version < 5963776 {
            return false;
          }
        }
        if let Some(version) = browsers.android {
          if version < 9043968 {
            return false;
          }
        }
        if browsers.firefox.is_some()
          || browsers.ie.is_some()
          || browsers.ios_saf.is_some()
          || browsers.safari.is_some()
          || browsers.samsung.is_some()
        {
          return false;
        }
      }
      Feature::MozAvailableSize => {
        if let Some(version) = browsers.firefox {
          if version < 262144 {
            return false;
          }
        }
        if browsers.android.is_some()
          || browsers.chrome.is_some()
          || browsers.edge.is_some()
          || browsers.ie.is_some()
          || browsers.ios_saf.is_some()
          || browsers.opera.is_some()
          || browsers.safari.is_some()
          || browsers.samsung.is_some()
        {
          return false;
        }
      }
      Feature::WebkitFillAvailableSize => {
        if let Some(version) = browsers.safari {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 458752 {
            return false;
          }
        }
        if let Some(version) = browsers.samsung {
          if version < 327680 {
            return false;
          }
        }
        if browsers.android.is_some()
          || browsers.chrome.is_some()
          || browsers.edge.is_some()
          || browsers.firefox.is_some()
          || browsers.ie.is_some()
          || browsers.opera.is_some()
        {
          return false;
        }
      }
      Feature::P3Colors | Feature::LangSelectorList => {
        if let Some(version) = browsers.safari {
          if version < 655616 {
            return false;
          }
        }
        if let Some(version) = browsers.ios_saf {
          if version < 656128 {
            return false;
          }
        }
        if browsers.android.is_some()
          || browsers.chrome.is_some()
          || browsers.edge.is_some()
          || browsers.firefox.is_some()
          || browsers.ie.is_some()
          || browsers.opera.is_some()
          || browsers.samsung.is_some()
        {
          return false;
        }
      }
    }
    true
  }

  pub fn is_partially_compatible(&self, targets: Browsers) -> bool {
    let mut browsers = Browsers::default();
    if targets.android.is_some() {
      browsers.android = targets.android;
      if self.is_compatible(browsers) {
        return true;
      }
      browsers.android = None;
    }
    if targets.chrome.is_some() {
      browsers.chrome = targets.chrome;
      if self.is_compatible(browsers) {
        return true;
      }
      browsers.chrome = None;
    }
    if targets.edge.is_some() {
      browsers.edge = targets.edge;
      if self.is_compatible(browsers) {
        return true;
      }
      browsers.edge = None;
    }
    if targets.firefox.is_some() {
      browsers.firefox = targets.firefox;
      if self.is_compatible(browsers) {
        return true;
      }
      browsers.firefox = None;
    }
    if targets.ie.is_some() {
      browsers.ie = targets.ie;
      if self.is_compatible(browsers) {
        return true;
      }
      browsers.ie = None;
    }
    if targets.ios_saf.is_some() {
      browsers.ios_saf = targets.ios_saf;
      if self.is_compatible(browsers) {
        return true;
      }
      browsers.ios_saf = None;
    }
    if targets.opera.is_some() {
      browsers.opera = targets.opera;
      if self.is_compatible(browsers) {
        return true;
      }
      browsers.opera = None;
    }
    if targets.safari.is_some() {
      browsers.safari = targets.safari;
      if self.is_compatible(browsers) {
        return true;
      }
      browsers.safari = None;
    }
    if targets.samsung.is_some() {
      browsers.samsung = targets.samsung;
      if self.is_compatible(browsers) {
        return true;
      }
      browsers.samsung = None;
    }

    false
  }
}
