// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:flutter/foundation.dart' show defaultTargetPlatform;
import 'package:flutter/widgets.dart';

// ignore_for_file: non_constant_identifier_names
class _PlatformAdaptiveIcons {
  static bool _isCupertino() {
    switch (defaultTargetPlatform) {
      case TargetPlatform.android:
      case TargetPlatform.fuchsia:
      case TargetPlatform.linux:
      case TargetPlatform.windows:
        return false;
      case TargetPlatform.iOS:
      case TargetPlatform.macOS:
        return true;
    }
  }

  // Generated code: do not hand-edit.
  // See https://github.com/flutter/flutter/wiki/Updating-Material-Design-Fonts-&-Icons
  // BEGIN GENERATED PLATFORM ADAPTIVE ICONS

  /// Platform-adaptive icon for <i class="material-icons md-36">arrow_back</i> &#x2014; material icon named "arrow back" and <i class="material-icons md-36">arrow_back_ios</i> &#x2014; material icon named "arrow back ios".;
  IconData get arrow_back => !_isCupertino() ? Icons.arrow_back : Icons.arrow_back_ios;

  /// Platform-adaptive icon for <i class="material-icons-outlined md-36">arrow_back</i> &#x2014; material icon named "arrow back outlined" and <i class="material-icons-outlined md-36">arrow_back_ios</i> &#x2014; material icon named "arrow back ios outlined".;
  IconData get arrow_back_outlined => !_isCupertino() ? Icons.arrow_back_outlined : Icons.arrow_back_ios_outlined;

  /// Platform-adaptive icon for <i class="material-icons-round md-36">arrow_back</i> &#x2014; material icon named "arrow back rounded" and <i class="material-icons-round md-36">arrow_back_ios</i> &#x2014; material icon named "arrow back ios rounded".;
  IconData get arrow_back_rounded => !_isCupertino() ? Icons.arrow_back_rounded : Icons.arrow_back_ios_rounded;

  /// Platform-adaptive icon for <i class="material-icons-sharp md-36">arrow_back</i> &#x2014; material icon named "arrow back sharp" and <i class="material-icons-sharp md-36">arrow_back_ios</i> &#x2014; material icon named "arrow back ios sharp".;
  IconData get arrow_back_sharp => !_isCupertino() ? Icons.arrow_back_sharp : Icons.arrow_back_ios_sharp;

  /// Platform-adaptive icon for <i class="material-icons md-36">arrow_forward</i> &#x2014; material icon named "arrow forward" and <i class="material-icons md-36">arrow_forward_ios</i> &#x2014; material icon named "arrow forward ios".;
  IconData get arrow_forward => !_isCupertino() ? Icons.arrow_forward : Icons.arrow_forward_ios;

  /// Platform-adaptive icon for <i class="material-icons-outlined md-36">arrow_forward</i> &#x2014; material icon named "arrow forward outlined" and <i class="material-icons-outlined md-36">arrow_forward_ios</i> &#x2014; material icon named "arrow forward ios outlined".;
  IconData get arrow_forward_outlined => !_isCupertino() ? Icons.arrow_forward_outlined : Icons.arrow_forward_ios_outlined;

  /// Platform-adaptive icon for <i class="material-icons-round md-36">arrow_forward</i> &#x2014; material icon named "arrow forward rounded" and <i class="material-icons-round md-36">arrow_forward_ios</i> &#x2014; material icon named "arrow forward ios rounded".;
  IconData get arrow_forward_rounded => !_isCupertino() ? Icons.arrow_forward_rounded : Icons.arrow_forward_ios_rounded;

  /// Platform-adaptive icon for <i class="material-icons-sharp md-36">arrow_forward</i> &#x2014; material icon named "arrow forward sharp" and <i class="material-icons-sharp md-36">arrow_forward_ios</i> &#x2014; material icon named "arrow forward ios sharp".;
  IconData get arrow_forward_sharp => !_isCupertino() ? Icons.arrow_forward_sharp : Icons.arrow_forward_ios_sharp;

  /// Platform-adaptive icon for <i class="material-icons md-36">flip_camera_android</i> &#x2014; material icon named "flip camera android" and <i class="material-icons md-36">flip_camera_ios</i> &#x2014; material icon named "flip camera ios".;
  IconData get flip_camera => !_isCupertino() ? Icons.flip_camera_android : Icons.flip_camera_ios;

  /// Platform-adaptive icon for <i class="material-icons-outlined md-36">flip_camera_android</i> &#x2014; material icon named "flip camera android outlined" and <i class="material-icons-outlined md-36">flip_camera_ios</i> &#x2014; material icon named "flip camera ios outlined".;
  IconData get flip_camera_outlined => !_isCupertino() ? Icons.flip_camera_android_outlined : Icons.flip_camera_ios_outlined;

  /// Platform-adaptive icon for <i class="material-icons-round md-36">flip_camera_android</i> &#x2014; material icon named "flip camera android rounded" and <i class="material-icons-round md-36">flip_camera_ios</i> &#x2014; material icon named "flip camera ios rounded".;
  IconData get flip_camera_rounded => !_isCupertino() ? Icons.flip_camera_android_rounded : Icons.flip_camera_ios_rounded;

  /// Platform-adaptive icon for <i class="material-icons-sharp md-36">flip_camera_android</i> &#x2014; material icon named "flip camera android sharp" and <i class="material-icons-sharp md-36">flip_camera_ios</i> &#x2014; material icon named "flip camera ios sharp".;
  IconData get flip_camera_sharp => !_isCupertino() ? Icons.flip_camera_android_sharp : Icons.flip_camera_ios_sharp;

  /// Platform-adaptive icon for <i class="material-icons md-36">more_vert</i> &#x2014; material icon named "more vert" and <i class="material-icons md-36">more_horiz</i> &#x2014; material icon named "more horiz".;
  IconData get more => !_isCupertino() ? Icons.more_vert : Icons.more_horiz;

  /// Platform-adaptive icon for <i class="material-icons-outlined md-36">more_vert</i> &#x2014; material icon named "more vert outlined" and <i class="material-icons-outlined md-36">more_horiz</i> &#x2014; material icon named "more horiz outlined".;
  IconData get more_outlined => !_isCupertino() ? Icons.more_vert_outlined : Icons.more_horiz_outlined;

  /// Platform-adaptive icon for <i class="material-icons-round md-36">more_vert</i> &#x2014; material icon named "more vert rounded" and <i class="material-icons-round md-36">more_horiz</i> &#x2014; material icon named "more horiz rounded".;
  IconData get more_rounded => !_isCupertino() ? Icons.more_vert_rounded : Icons.more_horiz_rounded;

  /// Platform-adaptive icon for <i class="material-icons-sharp md-36">more_vert</i> &#x2014; material icon named "more vert sharp" and <i class="material-icons-sharp md-36">more_horiz</i> &#x2014; material icon named "more horiz sharp".;
  IconData get more_sharp => !_isCupertino() ? Icons.more_vert_sharp : Icons.more_horiz_sharp;

  /// Platform-adaptive icon for <i class="material-icons md-36">share</i> &#x2014; material icon named "share" and <i class="material-icons md-36">ios_share</i> &#x2014; material icon named "ios share".;
  IconData get share => !_isCupertino() ? Icons.share : Icons.ios_share;
  // END GENERATED PLATFORM ADAPTIVE ICONS
}

/// Identifiers for the supported material design icons.
///
/// Use with the [Icon] class to show specific icons.
///
/// Icons are identified by their name as listed below.
///
/// To use this class, make sure you set `uses-material-design: true` in your
/// project's `pubspec.yaml` file in the `flutter` section. This ensures that
/// the MaterialIcons font is included in your application. This font is used to
/// display the icons. For example:
///
/// ```yaml
/// name: my_awesome_application
/// flutter:
///   uses-material-design: true
/// ```
///
/// {@tool snippet}
/// This example shows how to create a [Row] of [Icon]s in different colors and
/// sizes. The first [Icon] uses a [Icon.semanticLabel] to announce in accessibility
/// modes like TalkBack and VoiceOver.
///
/// ![A row of icons representing a pink heart, a green musical note, and a blue umbrella](https://flutter.github.io/assets-for-api-docs/assets/widgets/icon.png)
///
/// ```dart
/// Row(
///   mainAxisAlignment: MainAxisAlignment.spaceAround,
///   children: const <Widget>[
///     Icon(
///       Icons.favorite,
///       color: Colors.pink,
///       size: 24.0,
///       semanticLabel: 'Text to announce in accessibility modes',
///     ),
///     Icon(
///       Icons.audiotrack,
///       color: Colors.green,
///       size: 30.0,
///     ),
///     Icon(
///       Icons.beach_access,
///       color: Colors.blue,
///       size: 36.0,
///     ),
///   ],
/// )
/// ```
/// {@end-tool}
///
/// See also:
///
///  * [Icon]
///  * [IconButton]
///  * <https://material.io/resources/icons>
class Icons {
  // This class is not meant to be instantiated or extended; this constructor
  // prevents instantiation and extension.
  // ignore: unused_element
  Icons._();

  /// A set of platform-adaptive material design icons.
  ///
  /// Provides a convenient way to show a certain set of platform-appropriate
  /// icons on Apple platforms.
  ///
  /// Use with the [Icon] class to show specific icons.
  ///
  /// {@tool snippet}
  /// This example shows how to create a share icon that uses the material icon
  /// named "share" on non-Apple platforms, and the icon named "ios share" on
  /// Apple platforms.
  ///
  /// ```dart
  /// Icon(
  ///   Icons.adaptive.share,
  /// )
  /// ```
  /// {@end-tool}
  ///
  /// See also:
  ///
  ///  * [Icon]
  ///  * [IconButton]
  ///  * <https://design.google.com/icons/>
  static _PlatformAdaptiveIcons get adaptive => _PlatformAdaptiveIcons();

  // Generated code: do not hand-edit.
  // See https://github.com/flutter/flutter/wiki/Updating-Material-Design-Fonts-&-Icons
  // BEGIN GENERATED ICONS

  /// <i class="material-icons md-36">10k</i> &#x2014; material icon named "10k".
  static const IconData ten_k = IconData(0xe52a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">10mp</i> &#x2014; material icon named "10mp".
  static const IconData ten_mp = IconData(0xe52b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">11mp</i> &#x2014; material icon named "11mp".
  static const IconData eleven_mp = IconData(0xe52c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">12mp</i> &#x2014; material icon named "12mp".
  static const IconData twelve_mp = IconData(0xe52d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">13mp</i> &#x2014; material icon named "13mp".
  static const IconData thirteen_mp = IconData(0xe52e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">14mp</i> &#x2014; material icon named "14mp".
  static const IconData fourteen_mp = IconData(0xe52f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">15mp</i> &#x2014; material icon named "15mp".
  static const IconData fifteen_mp = IconData(0xe530, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">16mp</i> &#x2014; material icon named "16mp".
  static const IconData sixteen_mp = IconData(0xe531, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">17mp</i> &#x2014; material icon named "17mp".
  static const IconData seventeen_mp = IconData(0xe532, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">18mp</i> &#x2014; material icon named "18mp".
  static const IconData eighteen_mp = IconData(0xe533, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">19mp</i> &#x2014; material icon named "19mp".
  static const IconData nineteen_mp = IconData(0xe534, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">1k</i> &#x2014; material icon named "1k".
  static const IconData one_k = IconData(0xe535, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">1k_plus</i> &#x2014; material icon named "1k plus".
  static const IconData one_k_plus = IconData(0xe536, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">20mp</i> &#x2014; material icon named "20mp".
  static const IconData twenty_mp = IconData(0xe537, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">21mp</i> &#x2014; material icon named "21mp".
  static const IconData twenty_one_mp = IconData(0xe538, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">22mp</i> &#x2014; material icon named "22mp".
  static const IconData twenty_two_mp = IconData(0xe539, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">23mp</i> &#x2014; material icon named "23mp".
  static const IconData twenty_three_mp = IconData(0xe53a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">24mp</i> &#x2014; material icon named "24mp".
  static const IconData twenty_four_mp = IconData(0xe53b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">2k</i> &#x2014; material icon named "2k".
  static const IconData two_k = IconData(0xe53c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">2k_plus</i> &#x2014; material icon named "2k plus".
  static const IconData two_k_plus = IconData(0xe53d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">2mp</i> &#x2014; material icon named "2mp".
  static const IconData two_mp = IconData(0xe53e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">360</i> &#x2014; material icon named "360".
  static const IconData threesixty = IconData(0xe53f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">360</i> &#x2014; material icon named "360 outlined".
  static const IconData threesixty_outlined = IconData(0xe000, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">360</i> &#x2014; material icon named "360 rounded".
  static const IconData threesixty_rounded = IconData(0xf02e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">360</i> &#x2014; material icon named "360 sharp".
  static const IconData threesixty_sharp = IconData(0xeb00, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">3d_rotation</i> &#x2014; material icon named "3d rotation".
  static const IconData threed_rotation = IconData(0xe540, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">3d_rotation</i> &#x2014; material icon named "3d rotation outlined".
  static const IconData threed_rotation_outlined = IconData(0xe001, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">3d_rotation</i> &#x2014; material icon named "3d rotation rounded".
  static const IconData threed_rotation_rounded = IconData(0xf02f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">3d_rotation</i> &#x2014; material icon named "3d rotation sharp".
  static const IconData threed_rotation_sharp = IconData(0xeb01, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">3k</i> &#x2014; material icon named "3k".
  static const IconData three_k = IconData(0xe541, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">3k_plus</i> &#x2014; material icon named "3k plus".
  static const IconData three_k_plus = IconData(0xe542, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">3mp</i> &#x2014; material icon named "3mp".
  static const IconData three_mp = IconData(0xe543, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">4k</i> &#x2014; material icon named "4k".
  static const IconData four_k = IconData(0xe544, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">4k</i> &#x2014; material icon named "4k outlined".
  static const IconData four_k_outlined = IconData(0xe002, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">4k_plus</i> &#x2014; material icon named "4k plus".
  static const IconData four_k_plus = IconData(0xe545, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">4k</i> &#x2014; material icon named "4k rounded".
  static const IconData four_k_rounded = IconData(0xf030, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">4k</i> &#x2014; material icon named "4k sharp".
  static const IconData four_k_sharp = IconData(0xeb02, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">4mp</i> &#x2014; material icon named "4mp".
  static const IconData four_mp = IconData(0xe546, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">5g</i> &#x2014; material icon named "5g".
  static const IconData five_g = IconData(0xe547, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">5g</i> &#x2014; material icon named "5g outlined".
  static const IconData five_g_outlined = IconData(0xe003, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">5g</i> &#x2014; material icon named "5g rounded".
  static const IconData five_g_rounded = IconData(0xf031, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">5g</i> &#x2014; material icon named "5g sharp".
  static const IconData five_g_sharp = IconData(0xeb03, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">5k</i> &#x2014; material icon named "5k".
  static const IconData five_k = IconData(0xe548, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">5k_plus</i> &#x2014; material icon named "5k plus".
  static const IconData five_k_plus = IconData(0xe549, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">5mp</i> &#x2014; material icon named "5mp".
  static const IconData five_mp = IconData(0xe54a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">6_ft_apart</i> &#x2014; material icon named "6 ft apart".
  static const IconData six_ft_apart = IconData(0xe54b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">6_ft_apart</i> &#x2014; material icon named "6 ft apart outlined".
  static const IconData six_ft_apart_outlined = IconData(0xe004, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">6_ft_apart</i> &#x2014; material icon named "6 ft apart rounded".
  static const IconData six_ft_apart_rounded = IconData(0xf032, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">6_ft_apart</i> &#x2014; material icon named "6 ft apart sharp".
  static const IconData six_ft_apart_sharp = IconData(0xeb04, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">6k</i> &#x2014; material icon named "6k".
  static const IconData six_k = IconData(0xe54c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">6k_plus</i> &#x2014; material icon named "6k plus".
  static const IconData six_k_plus = IconData(0xe54d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">6mp</i> &#x2014; material icon named "6mp".
  static const IconData six_mp = IconData(0xe54e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">7k</i> &#x2014; material icon named "7k".
  static const IconData seven_k = IconData(0xe54f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">7k_plus</i> &#x2014; material icon named "7k plus".
  static const IconData seven_k_plus = IconData(0xe550, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">7mp</i> &#x2014; material icon named "7mp".
  static const IconData seven_mp = IconData(0xe551, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">8k</i> &#x2014; material icon named "8k".
  static const IconData eight_k = IconData(0xe552, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">8k_plus</i> &#x2014; material icon named "8k plus".
  static const IconData eight_k_plus = IconData(0xe553, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">8mp</i> &#x2014; material icon named "8mp".
  static const IconData eight_mp = IconData(0xe554, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">9k</i> &#x2014; material icon named "9k".
  static const IconData nine_k = IconData(0xe555, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">9k_plus</i> &#x2014; material icon named "9k plus".
  static const IconData nine_k_plus = IconData(0xe556, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">9mp</i> &#x2014; material icon named "9mp".
  static const IconData nine_mp = IconData(0xe557, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">ac_unit</i> &#x2014; material icon named "ac unit".
  static const IconData ac_unit = IconData(0xe558, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">ac_unit</i> &#x2014; material icon named "ac unit outlined".
  static const IconData ac_unit_outlined = IconData(0xe005, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">ac_unit</i> &#x2014; material icon named "ac unit rounded".
  static const IconData ac_unit_rounded = IconData(0xf033, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">ac_unit</i> &#x2014; material icon named "ac unit sharp".
  static const IconData ac_unit_sharp = IconData(0xeb05, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">access_alarm</i> &#x2014; material icon named "access alarm".
  static const IconData access_alarm = IconData(0xe559, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">access_alarm</i> &#x2014; material icon named "access alarm outlined".
  static const IconData access_alarm_outlined = IconData(0xe006, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">access_alarm</i> &#x2014; material icon named "access alarm rounded".
  static const IconData access_alarm_rounded = IconData(0xf034, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">access_alarm</i> &#x2014; material icon named "access alarm sharp".
  static const IconData access_alarm_sharp = IconData(0xeb06, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">access_alarms</i> &#x2014; material icon named "access alarms".
  static const IconData access_alarms = IconData(0xe55a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">access_alarms</i> &#x2014; material icon named "access alarms outlined".
  static const IconData access_alarms_outlined = IconData(0xe007, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">access_alarms</i> &#x2014; material icon named "access alarms rounded".
  static const IconData access_alarms_rounded = IconData(0xf035, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">access_alarms</i> &#x2014; material icon named "access alarms sharp".
  static const IconData access_alarms_sharp = IconData(0xeb07, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">access_time</i> &#x2014; material icon named "access time".
  static const IconData access_time = IconData(0xe55b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">access_time</i> &#x2014; material icon named "access time outlined".
  static const IconData access_time_outlined = IconData(0xe008, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">access_time</i> &#x2014; material icon named "access time rounded".
  static const IconData access_time_rounded = IconData(0xf036, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">access_time</i> &#x2014; material icon named "access time sharp".
  static const IconData access_time_sharp = IconData(0xeb08, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">accessibility</i> &#x2014; material icon named "accessibility".
  static const IconData accessibility = IconData(0xe55c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">accessibility_new</i> &#x2014; material icon named "accessibility new".
  static const IconData accessibility_new = IconData(0xe55d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">accessibility_new</i> &#x2014; material icon named "accessibility new outlined".
  static const IconData accessibility_new_outlined = IconData(0xe009, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">accessibility_new</i> &#x2014; material icon named "accessibility new rounded".
  static const IconData accessibility_new_rounded = IconData(0xf037, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">accessibility_new</i> &#x2014; material icon named "accessibility new sharp".
  static const IconData accessibility_new_sharp = IconData(0xeb09, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">accessibility</i> &#x2014; material icon named "accessibility outlined".
  static const IconData accessibility_outlined = IconData(0xe00a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">accessibility</i> &#x2014; material icon named "accessibility rounded".
  static const IconData accessibility_rounded = IconData(0xf038, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">accessibility</i> &#x2014; material icon named "accessibility sharp".
  static const IconData accessibility_sharp = IconData(0xeb0a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">accessible</i> &#x2014; material icon named "accessible".
  static const IconData accessible = IconData(0xe55e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">accessible_forward</i> &#x2014; material icon named "accessible forward".
  static const IconData accessible_forward = IconData(0xe55f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">accessible_forward</i> &#x2014; material icon named "accessible forward outlined".
  static const IconData accessible_forward_outlined = IconData(0xe00b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">accessible_forward</i> &#x2014; material icon named "accessible forward rounded".
  static const IconData accessible_forward_rounded = IconData(0xf039, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">accessible_forward</i> &#x2014; material icon named "accessible forward sharp".
  static const IconData accessible_forward_sharp = IconData(0xeb0b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">accessible</i> &#x2014; material icon named "accessible outlined".
  static const IconData accessible_outlined = IconData(0xe00c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">accessible</i> &#x2014; material icon named "accessible rounded".
  static const IconData accessible_rounded = IconData(0xf03a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">accessible</i> &#x2014; material icon named "accessible sharp".
  static const IconData accessible_sharp = IconData(0xeb0c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">account_balance</i> &#x2014; material icon named "account balance".
  static const IconData account_balance = IconData(0xe560, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">account_balance</i> &#x2014; material icon named "account balance outlined".
  static const IconData account_balance_outlined = IconData(0xe00d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">account_balance</i> &#x2014; material icon named "account balance rounded".
  static const IconData account_balance_rounded = IconData(0xf03b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">account_balance</i> &#x2014; material icon named "account balance sharp".
  static const IconData account_balance_sharp = IconData(0xeb0d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">account_balance_wallet</i> &#x2014; material icon named "account balance wallet".
  static const IconData account_balance_wallet = IconData(0xe561, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">account_balance_wallet</i> &#x2014; material icon named "account balance wallet outlined".
  static const IconData account_balance_wallet_outlined = IconData(0xe00e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">account_balance_wallet</i> &#x2014; material icon named "account balance wallet rounded".
  static const IconData account_balance_wallet_rounded = IconData(0xf03c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">account_balance_wallet</i> &#x2014; material icon named "account balance wallet sharp".
  static const IconData account_balance_wallet_sharp = IconData(0xeb0e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">account_box</i> &#x2014; material icon named "account box".
  static const IconData account_box = IconData(0xe562, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">account_box</i> &#x2014; material icon named "account box outlined".
  static const IconData account_box_outlined = IconData(0xe00f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">account_box</i> &#x2014; material icon named "account box rounded".
  static const IconData account_box_rounded = IconData(0xf03d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">account_box</i> &#x2014; material icon named "account box sharp".
  static const IconData account_box_sharp = IconData(0xeb0f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">account_circle</i> &#x2014; material icon named "account circle".
  static const IconData account_circle = IconData(0xe563, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">account_circle</i> &#x2014; material icon named "account circle outlined".
  static const IconData account_circle_outlined = IconData(0xe010, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">account_circle</i> &#x2014; material icon named "account circle rounded".
  static const IconData account_circle_rounded = IconData(0xf03e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">account_circle</i> &#x2014; material icon named "account circle sharp".
  static const IconData account_circle_sharp = IconData(0xeb10, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">account_tree</i> &#x2014; material icon named "account tree".
  static const IconData account_tree = IconData(0xe564, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">account_tree</i> &#x2014; material icon named "account tree outlined".
  static const IconData account_tree_outlined = IconData(0xe011, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">account_tree</i> &#x2014; material icon named "account tree rounded".
  static const IconData account_tree_rounded = IconData(0xf03f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">account_tree</i> &#x2014; material icon named "account tree sharp".
  static const IconData account_tree_sharp = IconData(0xeb11, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">ad_units</i> &#x2014; material icon named "ad units".
  static const IconData ad_units = IconData(0xe565, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">ad_units</i> &#x2014; material icon named "ad units outlined".
  static const IconData ad_units_outlined = IconData(0xe012, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">ad_units</i> &#x2014; material icon named "ad units rounded".
  static const IconData ad_units_rounded = IconData(0xf040, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">ad_units</i> &#x2014; material icon named "ad units sharp".
  static const IconData ad_units_sharp = IconData(0xeb12, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">adb</i> &#x2014; material icon named "adb".
  static const IconData adb = IconData(0xe566, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">adb</i> &#x2014; material icon named "adb outlined".
  static const IconData adb_outlined = IconData(0xe013, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">adb</i> &#x2014; material icon named "adb rounded".
  static const IconData adb_rounded = IconData(0xf041, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">adb</i> &#x2014; material icon named "adb sharp".
  static const IconData adb_sharp = IconData(0xeb13, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add</i> &#x2014; material icon named "add".
  static const IconData add = IconData(0xe567, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_a_photo</i> &#x2014; material icon named "add a photo".
  static const IconData add_a_photo = IconData(0xe568, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">add_a_photo</i> &#x2014; material icon named "add a photo outlined".
  static const IconData add_a_photo_outlined = IconData(0xe014, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_a_photo</i> &#x2014; material icon named "add a photo rounded".
  static const IconData add_a_photo_rounded = IconData(0xf042, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">add_a_photo</i> &#x2014; material icon named "add a photo sharp".
  static const IconData add_a_photo_sharp = IconData(0xeb14, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_alarm</i> &#x2014; material icon named "add alarm".
  static const IconData add_alarm = IconData(0xe569, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">add_alarm</i> &#x2014; material icon named "add alarm outlined".
  static const IconData add_alarm_outlined = IconData(0xe015, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_alarm</i> &#x2014; material icon named "add alarm rounded".
  static const IconData add_alarm_rounded = IconData(0xf043, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">add_alarm</i> &#x2014; material icon named "add alarm sharp".
  static const IconData add_alarm_sharp = IconData(0xeb15, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_alert</i> &#x2014; material icon named "add alert".
  static const IconData add_alert = IconData(0xe56a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">add_alert</i> &#x2014; material icon named "add alert outlined".
  static const IconData add_alert_outlined = IconData(0xe016, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_alert</i> &#x2014; material icon named "add alert rounded".
  static const IconData add_alert_rounded = IconData(0xf044, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">add_alert</i> &#x2014; material icon named "add alert sharp".
  static const IconData add_alert_sharp = IconData(0xeb16, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_box</i> &#x2014; material icon named "add box".
  static const IconData add_box = IconData(0xe56b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">add_box</i> &#x2014; material icon named "add box outlined".
  static const IconData add_box_outlined = IconData(0xe017, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_box</i> &#x2014; material icon named "add box rounded".
  static const IconData add_box_rounded = IconData(0xf045, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">add_box</i> &#x2014; material icon named "add box sharp".
  static const IconData add_box_sharp = IconData(0xeb17, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_business</i> &#x2014; material icon named "add business".
  static const IconData add_business = IconData(0xe56c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">add_business</i> &#x2014; material icon named "add business outlined".
  static const IconData add_business_outlined = IconData(0xe018, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_business</i> &#x2014; material icon named "add business rounded".
  static const IconData add_business_rounded = IconData(0xf046, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">add_business</i> &#x2014; material icon named "add business sharp".
  static const IconData add_business_sharp = IconData(0xeb18, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_call</i> &#x2014; material icon named "add call".
  static const IconData add_call = IconData(0xe56d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_chart</i> &#x2014; material icon named "add chart".
  static const IconData add_chart = IconData(0xe56e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_circle</i> &#x2014; material icon named "add circle".
  static const IconData add_circle = IconData(0xe56f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_circle_outline</i> &#x2014; material icon named "add circle outline".
  static const IconData add_circle_outline = IconData(0xe570, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">add_circle_outline</i> &#x2014; material icon named "add circle outline outlined".
  static const IconData add_circle_outline_outlined = IconData(0xe019, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_circle_outline</i> &#x2014; material icon named "add circle outline rounded".
  static const IconData add_circle_outline_rounded = IconData(0xf047, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">add_circle_outline</i> &#x2014; material icon named "add circle outline sharp".
  static const IconData add_circle_outline_sharp = IconData(0xeb19, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">add_circle</i> &#x2014; material icon named "add circle outlined".
  static const IconData add_circle_outlined = IconData(0xe01a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_circle</i> &#x2014; material icon named "add circle rounded".
  static const IconData add_circle_rounded = IconData(0xf048, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">add_circle</i> &#x2014; material icon named "add circle sharp".
  static const IconData add_circle_sharp = IconData(0xeb1a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_comment</i> &#x2014; material icon named "add comment".
  static const IconData add_comment = IconData(0xe571, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">add_comment</i> &#x2014; material icon named "add comment outlined".
  static const IconData add_comment_outlined = IconData(0xe01b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_comment</i> &#x2014; material icon named "add comment rounded".
  static const IconData add_comment_rounded = IconData(0xf049, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">add_comment</i> &#x2014; material icon named "add comment sharp".
  static const IconData add_comment_sharp = IconData(0xeb1b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_ic_call</i> &#x2014; material icon named "add ic call".
  static const IconData add_ic_call = IconData(0xe572, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">add_ic_call</i> &#x2014; material icon named "add ic call outlined".
  static const IconData add_ic_call_outlined = IconData(0xe01c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_ic_call</i> &#x2014; material icon named "add ic call rounded".
  static const IconData add_ic_call_rounded = IconData(0xf04a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">add_ic_call</i> &#x2014; material icon named "add ic call sharp".
  static const IconData add_ic_call_sharp = IconData(0xeb1c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_link</i> &#x2014; material icon named "add link".
  static const IconData add_link = IconData(0xe573, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_location</i> &#x2014; material icon named "add location".
  static const IconData add_location = IconData(0xe574, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_location_alt</i> &#x2014; material icon named "add location alt".
  static const IconData add_location_alt = IconData(0xe575, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">add_location_alt</i> &#x2014; material icon named "add location alt outlined".
  static const IconData add_location_alt_outlined = IconData(0xe01d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_location_alt</i> &#x2014; material icon named "add location alt rounded".
  static const IconData add_location_alt_rounded = IconData(0xf04b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">add_location_alt</i> &#x2014; material icon named "add location alt sharp".
  static const IconData add_location_alt_sharp = IconData(0xeb1d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">add_location</i> &#x2014; material icon named "add location outlined".
  static const IconData add_location_outlined = IconData(0xe01e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_location</i> &#x2014; material icon named "add location rounded".
  static const IconData add_location_rounded = IconData(0xf04c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">add_location</i> &#x2014; material icon named "add location sharp".
  static const IconData add_location_sharp = IconData(0xeb1e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_moderator</i> &#x2014; material icon named "add moderator".
  static const IconData add_moderator = IconData(0xe576, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">add</i> &#x2014; material icon named "add outlined".
  static const IconData add_outlined = IconData(0xe01f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_photo_alternate</i> &#x2014; material icon named "add photo alternate".
  static const IconData add_photo_alternate = IconData(0xe577, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">add_photo_alternate</i> &#x2014; material icon named "add photo alternate outlined".
  static const IconData add_photo_alternate_outlined = IconData(0xe020, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_photo_alternate</i> &#x2014; material icon named "add photo alternate rounded".
  static const IconData add_photo_alternate_rounded = IconData(0xf04d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">add_photo_alternate</i> &#x2014; material icon named "add photo alternate sharp".
  static const IconData add_photo_alternate_sharp = IconData(0xeb1f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_road</i> &#x2014; material icon named "add road".
  static const IconData add_road = IconData(0xe578, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">add_road</i> &#x2014; material icon named "add road outlined".
  static const IconData add_road_outlined = IconData(0xe021, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_road</i> &#x2014; material icon named "add road rounded".
  static const IconData add_road_rounded = IconData(0xf04e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">add_road</i> &#x2014; material icon named "add road sharp".
  static const IconData add_road_sharp = IconData(0xeb20, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add</i> &#x2014; material icon named "add rounded".
  static const IconData add_rounded = IconData(0xf04f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">add</i> &#x2014; material icon named "add sharp".
  static const IconData add_sharp = IconData(0xeb21, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_shopping_cart</i> &#x2014; material icon named "add shopping cart".
  static const IconData add_shopping_cart = IconData(0xe579, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">add_shopping_cart</i> &#x2014; material icon named "add shopping cart outlined".
  static const IconData add_shopping_cart_outlined = IconData(0xe022, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_shopping_cart</i> &#x2014; material icon named "add shopping cart rounded".
  static const IconData add_shopping_cart_rounded = IconData(0xf050, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">add_shopping_cart</i> &#x2014; material icon named "add shopping cart sharp".
  static const IconData add_shopping_cart_sharp = IconData(0xeb22, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_to_drive</i> &#x2014; material icon named "add to drive".
  static const IconData add_to_drive = IconData(0xe57a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_to_home_screen</i> &#x2014; material icon named "add to home screen".
  static const IconData add_to_home_screen = IconData(0xe57b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">add_to_home_screen</i> &#x2014; material icon named "add to home screen outlined".
  static const IconData add_to_home_screen_outlined = IconData(0xe023, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_to_home_screen</i> &#x2014; material icon named "add to home screen rounded".
  static const IconData add_to_home_screen_rounded = IconData(0xf051, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">add_to_home_screen</i> &#x2014; material icon named "add to home screen sharp".
  static const IconData add_to_home_screen_sharp = IconData(0xeb23, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_to_photos</i> &#x2014; material icon named "add to photos".
  static const IconData add_to_photos = IconData(0xe57c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">add_to_photos</i> &#x2014; material icon named "add to photos outlined".
  static const IconData add_to_photos_outlined = IconData(0xe024, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_to_photos</i> &#x2014; material icon named "add to photos rounded".
  static const IconData add_to_photos_rounded = IconData(0xf052, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">add_to_photos</i> &#x2014; material icon named "add to photos sharp".
  static const IconData add_to_photos_sharp = IconData(0xeb24, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">add_to_queue</i> &#x2014; material icon named "add to queue".
  static const IconData add_to_queue = IconData(0xe57d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">add_to_queue</i> &#x2014; material icon named "add to queue outlined".
  static const IconData add_to_queue_outlined = IconData(0xe025, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_to_queue</i> &#x2014; material icon named "add to queue rounded".
  static const IconData add_to_queue_rounded = IconData(0xf053, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">add_to_queue</i> &#x2014; material icon named "add to queue sharp".
  static const IconData add_to_queue_sharp = IconData(0xeb25, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">addchart</i> &#x2014; material icon named "addchart".
  static const IconData addchart = IconData(0xe57e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">addchart</i> &#x2014; material icon named "addchart outlined".
  static const IconData addchart_outlined = IconData(0xe026, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">addchart</i> &#x2014; material icon named "addchart rounded".
  static const IconData addchart_rounded = IconData(0xf054, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">addchart</i> &#x2014; material icon named "addchart sharp".
  static const IconData addchart_sharp = IconData(0xeb26, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">adjust</i> &#x2014; material icon named "adjust".
  static const IconData adjust = IconData(0xe57f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">adjust</i> &#x2014; material icon named "adjust outlined".
  static const IconData adjust_outlined = IconData(0xe027, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">adjust</i> &#x2014; material icon named "adjust rounded".
  static const IconData adjust_rounded = IconData(0xf055, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">adjust</i> &#x2014; material icon named "adjust sharp".
  static const IconData adjust_sharp = IconData(0xeb27, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">admin_panel_settings</i> &#x2014; material icon named "admin panel settings".
  static const IconData admin_panel_settings = IconData(0xe580, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">admin_panel_settings</i> &#x2014; material icon named "admin panel settings outlined".
  static const IconData admin_panel_settings_outlined = IconData(0xe028, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">admin_panel_settings</i> &#x2014; material icon named "admin panel settings rounded".
  static const IconData admin_panel_settings_rounded = IconData(0xf056, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">admin_panel_settings</i> &#x2014; material icon named "admin panel settings sharp".
  static const IconData admin_panel_settings_sharp = IconData(0xeb28, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">agriculture</i> &#x2014; material icon named "agriculture".
  static const IconData agriculture = IconData(0xe581, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">agriculture</i> &#x2014; material icon named "agriculture outlined".
  static const IconData agriculture_outlined = IconData(0xe029, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">agriculture</i> &#x2014; material icon named "agriculture rounded".
  static const IconData agriculture_rounded = IconData(0xf057, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">agriculture</i> &#x2014; material icon named "agriculture sharp".
  static const IconData agriculture_sharp = IconData(0xeb29, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">airline_seat_flat</i> &#x2014; material icon named "airline seat flat".
  static const IconData airline_seat_flat = IconData(0xe582, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">airline_seat_flat_angled</i> &#x2014; material icon named "airline seat flat angled".
  static const IconData airline_seat_flat_angled = IconData(0xe583, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">airline_seat_flat_angled</i> &#x2014; material icon named "airline seat flat angled outlined".
  static const IconData airline_seat_flat_angled_outlined = IconData(0xe02a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">airline_seat_flat_angled</i> &#x2014; material icon named "airline seat flat angled rounded".
  static const IconData airline_seat_flat_angled_rounded = IconData(0xf058, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">airline_seat_flat_angled</i> &#x2014; material icon named "airline seat flat angled sharp".
  static const IconData airline_seat_flat_angled_sharp = IconData(0xeb2a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">airline_seat_flat</i> &#x2014; material icon named "airline seat flat outlined".
  static const IconData airline_seat_flat_outlined = IconData(0xe02b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">airline_seat_flat</i> &#x2014; material icon named "airline seat flat rounded".
  static const IconData airline_seat_flat_rounded = IconData(0xf059, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">airline_seat_flat</i> &#x2014; material icon named "airline seat flat sharp".
  static const IconData airline_seat_flat_sharp = IconData(0xeb2b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">airline_seat_individual_suite</i> &#x2014; material icon named "airline seat individual suite".
  static const IconData airline_seat_individual_suite = IconData(0xe584, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">airline_seat_individual_suite</i> &#x2014; material icon named "airline seat individual suite outlined".
  static const IconData airline_seat_individual_suite_outlined = IconData(0xe02c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">airline_seat_individual_suite</i> &#x2014; material icon named "airline seat individual suite rounded".
  static const IconData airline_seat_individual_suite_rounded = IconData(0xf05a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">airline_seat_individual_suite</i> &#x2014; material icon named "airline seat individual suite sharp".
  static const IconData airline_seat_individual_suite_sharp = IconData(0xeb2c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">airline_seat_legroom_extra</i> &#x2014; material icon named "airline seat legroom extra".
  static const IconData airline_seat_legroom_extra = IconData(0xe585, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">airline_seat_legroom_extra</i> &#x2014; material icon named "airline seat legroom extra outlined".
  static const IconData airline_seat_legroom_extra_outlined = IconData(0xe02d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">airline_seat_legroom_extra</i> &#x2014; material icon named "airline seat legroom extra rounded".
  static const IconData airline_seat_legroom_extra_rounded = IconData(0xf05b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">airline_seat_legroom_extra</i> &#x2014; material icon named "airline seat legroom extra sharp".
  static const IconData airline_seat_legroom_extra_sharp = IconData(0xeb2d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">airline_seat_legroom_normal</i> &#x2014; material icon named "airline seat legroom normal".
  static const IconData airline_seat_legroom_normal = IconData(0xe586, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">airline_seat_legroom_normal</i> &#x2014; material icon named "airline seat legroom normal outlined".
  static const IconData airline_seat_legroom_normal_outlined = IconData(0xe02e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">airline_seat_legroom_normal</i> &#x2014; material icon named "airline seat legroom normal rounded".
  static const IconData airline_seat_legroom_normal_rounded = IconData(0xf05c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">airline_seat_legroom_normal</i> &#x2014; material icon named "airline seat legroom normal sharp".
  static const IconData airline_seat_legroom_normal_sharp = IconData(0xeb2e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">airline_seat_legroom_reduced</i> &#x2014; material icon named "airline seat legroom reduced".
  static const IconData airline_seat_legroom_reduced = IconData(0xe587, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">airline_seat_legroom_reduced</i> &#x2014; material icon named "airline seat legroom reduced outlined".
  static const IconData airline_seat_legroom_reduced_outlined = IconData(0xe02f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">airline_seat_legroom_reduced</i> &#x2014; material icon named "airline seat legroom reduced rounded".
  static const IconData airline_seat_legroom_reduced_rounded = IconData(0xf05d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">airline_seat_legroom_reduced</i> &#x2014; material icon named "airline seat legroom reduced sharp".
  static const IconData airline_seat_legroom_reduced_sharp = IconData(0xeb2f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">airline_seat_recline_extra</i> &#x2014; material icon named "airline seat recline extra".
  static const IconData airline_seat_recline_extra = IconData(0xe588, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">airline_seat_recline_extra</i> &#x2014; material icon named "airline seat recline extra outlined".
  static const IconData airline_seat_recline_extra_outlined = IconData(0xe030, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">airline_seat_recline_extra</i> &#x2014; material icon named "airline seat recline extra rounded".
  static const IconData airline_seat_recline_extra_rounded = IconData(0xf05e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">airline_seat_recline_extra</i> &#x2014; material icon named "airline seat recline extra sharp".
  static const IconData airline_seat_recline_extra_sharp = IconData(0xeb30, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">airline_seat_recline_normal</i> &#x2014; material icon named "airline seat recline normal".
  static const IconData airline_seat_recline_normal = IconData(0xe589, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">airline_seat_recline_normal</i> &#x2014; material icon named "airline seat recline normal outlined".
  static const IconData airline_seat_recline_normal_outlined = IconData(0xe031, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">airline_seat_recline_normal</i> &#x2014; material icon named "airline seat recline normal rounded".
  static const IconData airline_seat_recline_normal_rounded = IconData(0xf05f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">airline_seat_recline_normal</i> &#x2014; material icon named "airline seat recline normal sharp".
  static const IconData airline_seat_recline_normal_sharp = IconData(0xeb31, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">airplanemode_active</i> &#x2014; material icon named "airplanemode active".
  static const IconData airplanemode_active = IconData(0xe58a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">airplanemode_active</i> &#x2014; material icon named "airplanemode active outlined".
  static const IconData airplanemode_active_outlined = IconData(0xe032, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">airplanemode_active</i> &#x2014; material icon named "airplanemode active rounded".
  static const IconData airplanemode_active_rounded = IconData(0xf060, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">airplanemode_active</i> &#x2014; material icon named "airplanemode active sharp".
  static const IconData airplanemode_active_sharp = IconData(0xeb32, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">airplanemode_inactive</i> &#x2014; material icon named "airplanemode inactive".
  static const IconData airplanemode_inactive = IconData(0xe58b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">airplanemode_inactive</i> &#x2014; material icon named "airplanemode inactive outlined".
  static const IconData airplanemode_inactive_outlined = IconData(0xe033, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">airplanemode_inactive</i> &#x2014; material icon named "airplanemode inactive rounded".
  static const IconData airplanemode_inactive_rounded = IconData(0xf061, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">airplanemode_inactive</i> &#x2014; material icon named "airplanemode inactive sharp".
  static const IconData airplanemode_inactive_sharp = IconData(0xeb33, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">airplanemode_off</i> &#x2014; material icon named "airplanemode off".
  static const IconData airplanemode_off = IconData(0xe58b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">airplanemode_off</i> &#x2014; material icon named "airplanemode off outlined".
  static const IconData airplanemode_off_outlined = IconData(0xe033, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">airplanemode_off</i> &#x2014; material icon named "airplanemode off rounded".
  static const IconData airplanemode_off_rounded = IconData(0xf061, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">airplanemode_off</i> &#x2014; material icon named "airplanemode off sharp".
  static const IconData airplanemode_off_sharp = IconData(0xeb33, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">airplanemode_on</i> &#x2014; material icon named "airplanemode on".
  static const IconData airplanemode_on = IconData(0xe58a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">airplanemode_on</i> &#x2014; material icon named "airplanemode on outlined".
  static const IconData airplanemode_on_outlined = IconData(0xe032, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">airplanemode_on</i> &#x2014; material icon named "airplanemode on rounded".
  static const IconData airplanemode_on_rounded = IconData(0xf060, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">airplanemode_on</i> &#x2014; material icon named "airplanemode on sharp".
  static const IconData airplanemode_on_sharp = IconData(0xeb32, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">airplay</i> &#x2014; material icon named "airplay".
  static const IconData airplay = IconData(0xe58c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">airplay</i> &#x2014; material icon named "airplay outlined".
  static const IconData airplay_outlined = IconData(0xe034, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">airplay</i> &#x2014; material icon named "airplay rounded".
  static const IconData airplay_rounded = IconData(0xf062, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">airplay</i> &#x2014; material icon named "airplay sharp".
  static const IconData airplay_sharp = IconData(0xeb34, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">airport_shuttle</i> &#x2014; material icon named "airport shuttle".
  static const IconData airport_shuttle = IconData(0xe58d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">airport_shuttle</i> &#x2014; material icon named "airport shuttle outlined".
  static const IconData airport_shuttle_outlined = IconData(0xe035, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">airport_shuttle</i> &#x2014; material icon named "airport shuttle rounded".
  static const IconData airport_shuttle_rounded = IconData(0xf063, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">airport_shuttle</i> &#x2014; material icon named "airport shuttle sharp".
  static const IconData airport_shuttle_sharp = IconData(0xeb35, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">alarm</i> &#x2014; material icon named "alarm".
  static const IconData alarm = IconData(0xe58e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">alarm_add</i> &#x2014; material icon named "alarm add".
  static const IconData alarm_add = IconData(0xe58f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">alarm_add</i> &#x2014; material icon named "alarm add outlined".
  static const IconData alarm_add_outlined = IconData(0xe036, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">alarm_add</i> &#x2014; material icon named "alarm add rounded".
  static const IconData alarm_add_rounded = IconData(0xf064, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">alarm_add</i> &#x2014; material icon named "alarm add sharp".
  static const IconData alarm_add_sharp = IconData(0xeb36, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">alarm_off</i> &#x2014; material icon named "alarm off".
  static const IconData alarm_off = IconData(0xe590, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">alarm_off</i> &#x2014; material icon named "alarm off outlined".
  static const IconData alarm_off_outlined = IconData(0xe037, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">alarm_off</i> &#x2014; material icon named "alarm off rounded".
  static const IconData alarm_off_rounded = IconData(0xf065, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">alarm_off</i> &#x2014; material icon named "alarm off sharp".
  static const IconData alarm_off_sharp = IconData(0xeb37, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">alarm_on</i> &#x2014; material icon named "alarm on".
  static const IconData alarm_on = IconData(0xe591, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">alarm_on</i> &#x2014; material icon named "alarm on outlined".
  static const IconData alarm_on_outlined = IconData(0xe038, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">alarm_on</i> &#x2014; material icon named "alarm on rounded".
  static const IconData alarm_on_rounded = IconData(0xf066, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">alarm_on</i> &#x2014; material icon named "alarm on sharp".
  static const IconData alarm_on_sharp = IconData(0xeb38, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">alarm</i> &#x2014; material icon named "alarm outlined".
  static const IconData alarm_outlined = IconData(0xe039, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">alarm</i> &#x2014; material icon named "alarm rounded".
  static const IconData alarm_rounded = IconData(0xf067, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">alarm</i> &#x2014; material icon named "alarm sharp".
  static const IconData alarm_sharp = IconData(0xeb39, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">album</i> &#x2014; material icon named "album".
  static const IconData album = IconData(0xe592, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">album</i> &#x2014; material icon named "album outlined".
  static const IconData album_outlined = IconData(0xe03a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">album</i> &#x2014; material icon named "album rounded".
  static const IconData album_rounded = IconData(0xf068, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">album</i> &#x2014; material icon named "album sharp".
  static const IconData album_sharp = IconData(0xeb3a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">all_inbox</i> &#x2014; material icon named "all inbox".
  static const IconData all_inbox = IconData(0xe593, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">all_inbox</i> &#x2014; material icon named "all inbox outlined".
  static const IconData all_inbox_outlined = IconData(0xe03b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">all_inbox</i> &#x2014; material icon named "all inbox rounded".
  static const IconData all_inbox_rounded = IconData(0xf069, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">all_inbox</i> &#x2014; material icon named "all inbox sharp".
  static const IconData all_inbox_sharp = IconData(0xeb3b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">all_inclusive</i> &#x2014; material icon named "all inclusive".
  static const IconData all_inclusive = IconData(0xe594, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">all_inclusive</i> &#x2014; material icon named "all inclusive outlined".
  static const IconData all_inclusive_outlined = IconData(0xe03c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">all_inclusive</i> &#x2014; material icon named "all inclusive rounded".
  static const IconData all_inclusive_rounded = IconData(0xf06a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">all_inclusive</i> &#x2014; material icon named "all inclusive sharp".
  static const IconData all_inclusive_sharp = IconData(0xeb3c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">all_out</i> &#x2014; material icon named "all out".
  static const IconData all_out = IconData(0xe595, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">all_out</i> &#x2014; material icon named "all out outlined".
  static const IconData all_out_outlined = IconData(0xe03d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">all_out</i> &#x2014; material icon named "all out rounded".
  static const IconData all_out_rounded = IconData(0xf06b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">all_out</i> &#x2014; material icon named "all out sharp".
  static const IconData all_out_sharp = IconData(0xeb3d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">alt_route</i> &#x2014; material icon named "alt route".
  static const IconData alt_route = IconData(0xe596, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">alt_route</i> &#x2014; material icon named "alt route outlined".
  static const IconData alt_route_outlined = IconData(0xe03e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">alt_route</i> &#x2014; material icon named "alt route rounded".
  static const IconData alt_route_rounded = IconData(0xf06c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">alt_route</i> &#x2014; material icon named "alt route sharp".
  static const IconData alt_route_sharp = IconData(0xeb3e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">alternate_email</i> &#x2014; material icon named "alternate email".
  static const IconData alternate_email = IconData(0xe597, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">alternate_email</i> &#x2014; material icon named "alternate email outlined".
  static const IconData alternate_email_outlined = IconData(0xe03f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">alternate_email</i> &#x2014; material icon named "alternate email rounded".
  static const IconData alternate_email_rounded = IconData(0xf06d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">alternate_email</i> &#x2014; material icon named "alternate email sharp".
  static const IconData alternate_email_sharp = IconData(0xeb3f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">amp_stories</i> &#x2014; material icon named "amp stories".
  static const IconData amp_stories = IconData(0xe598, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">amp_stories</i> &#x2014; material icon named "amp stories outlined".
  static const IconData amp_stories_outlined = IconData(0xe040, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">amp_stories</i> &#x2014; material icon named "amp stories rounded".
  static const IconData amp_stories_rounded = IconData(0xf06e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">amp_stories</i> &#x2014; material icon named "amp stories sharp".
  static const IconData amp_stories_sharp = IconData(0xeb40, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">analytics</i> &#x2014; material icon named "analytics".
  static const IconData analytics = IconData(0xe599, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">analytics</i> &#x2014; material icon named "analytics outlined".
  static const IconData analytics_outlined = IconData(0xe041, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">analytics</i> &#x2014; material icon named "analytics rounded".
  static const IconData analytics_rounded = IconData(0xf06f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">analytics</i> &#x2014; material icon named "analytics sharp".
  static const IconData analytics_sharp = IconData(0xeb41, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">anchor</i> &#x2014; material icon named "anchor".
  static const IconData anchor = IconData(0xe59a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">anchor</i> &#x2014; material icon named "anchor outlined".
  static const IconData anchor_outlined = IconData(0xe042, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">anchor</i> &#x2014; material icon named "anchor rounded".
  static const IconData anchor_rounded = IconData(0xf070, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">anchor</i> &#x2014; material icon named "anchor sharp".
  static const IconData anchor_sharp = IconData(0xeb42, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">android</i> &#x2014; material icon named "android".
  static const IconData android = IconData(0xe59b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">android</i> &#x2014; material icon named "android outlined".
  static const IconData android_outlined = IconData(0xe043, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">android</i> &#x2014; material icon named "android rounded".
  static const IconData android_rounded = IconData(0xf071, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">android</i> &#x2014; material icon named "android sharp".
  static const IconData android_sharp = IconData(0xeb43, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">animation</i> &#x2014; material icon named "animation".
  static const IconData animation = IconData(0xe59c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">announcement</i> &#x2014; material icon named "announcement".
  static const IconData announcement = IconData(0xe59d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">announcement</i> &#x2014; material icon named "announcement outlined".
  static const IconData announcement_outlined = IconData(0xe044, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">announcement</i> &#x2014; material icon named "announcement rounded".
  static const IconData announcement_rounded = IconData(0xf072, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">announcement</i> &#x2014; material icon named "announcement sharp".
  static const IconData announcement_sharp = IconData(0xeb44, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">apartment</i> &#x2014; material icon named "apartment".
  static const IconData apartment = IconData(0xe59e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">apartment</i> &#x2014; material icon named "apartment outlined".
  static const IconData apartment_outlined = IconData(0xe045, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">apartment</i> &#x2014; material icon named "apartment rounded".
  static const IconData apartment_rounded = IconData(0xf073, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">apartment</i> &#x2014; material icon named "apartment sharp".
  static const IconData apartment_sharp = IconData(0xeb45, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">api</i> &#x2014; material icon named "api".
  static const IconData api = IconData(0xe59f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">api</i> &#x2014; material icon named "api outlined".
  static const IconData api_outlined = IconData(0xe046, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">api</i> &#x2014; material icon named "api rounded".
  static const IconData api_rounded = IconData(0xf074, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">api</i> &#x2014; material icon named "api sharp".
  static const IconData api_sharp = IconData(0xeb46, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">app_blocking</i> &#x2014; material icon named "app blocking".
  static const IconData app_blocking = IconData(0xe5a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">app_blocking</i> &#x2014; material icon named "app blocking outlined".
  static const IconData app_blocking_outlined = IconData(0xe047, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">app_blocking</i> &#x2014; material icon named "app blocking rounded".
  static const IconData app_blocking_rounded = IconData(0xf075, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">app_blocking</i> &#x2014; material icon named "app blocking sharp".
  static const IconData app_blocking_sharp = IconData(0xeb47, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">app_registration</i> &#x2014; material icon named "app registration".
  static const IconData app_registration = IconData(0xe5a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">app_settings_alt</i> &#x2014; material icon named "app settings alt".
  static const IconData app_settings_alt = IconData(0xe5a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">app_settings_alt</i> &#x2014; material icon named "app settings alt outlined".
  static const IconData app_settings_alt_outlined = IconData(0xe048, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">app_settings_alt</i> &#x2014; material icon named "app settings alt rounded".
  static const IconData app_settings_alt_rounded = IconData(0xf076, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">app_settings_alt</i> &#x2014; material icon named "app settings alt sharp".
  static const IconData app_settings_alt_sharp = IconData(0xeb48, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">approval</i> &#x2014; material icon named "approval".
  static const IconData approval = IconData(0xe5a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">apps</i> &#x2014; material icon named "apps".
  static const IconData apps = IconData(0xe5a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">apps</i> &#x2014; material icon named "apps outlined".
  static const IconData apps_outlined = IconData(0xe049, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">apps</i> &#x2014; material icon named "apps rounded".
  static const IconData apps_rounded = IconData(0xf077, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">apps</i> &#x2014; material icon named "apps sharp".
  static const IconData apps_sharp = IconData(0xeb49, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">architecture</i> &#x2014; material icon named "architecture".
  static const IconData architecture = IconData(0xe5a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">architecture</i> &#x2014; material icon named "architecture outlined".
  static const IconData architecture_outlined = IconData(0xe04a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">architecture</i> &#x2014; material icon named "architecture rounded".
  static const IconData architecture_rounded = IconData(0xf078, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">architecture</i> &#x2014; material icon named "architecture sharp".
  static const IconData architecture_sharp = IconData(0xeb4a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">archive</i> &#x2014; material icon named "archive".
  static const IconData archive = IconData(0xe5a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">archive</i> &#x2014; material icon named "archive outlined".
  static const IconData archive_outlined = IconData(0xe04b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">archive</i> &#x2014; material icon named "archive rounded".
  static const IconData archive_rounded = IconData(0xf079, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">archive</i> &#x2014; material icon named "archive sharp".
  static const IconData archive_sharp = IconData(0xeb4b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">arrow_back</i> &#x2014; material icon named "arrow back".
  static const IconData arrow_back = IconData(0xe5a7, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">arrow_back_ios</i> &#x2014; material icon named "arrow back ios".
  static const IconData arrow_back_ios = IconData(0xe5a8, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">arrow_back_ios</i> &#x2014; material icon named "arrow back ios outlined".
  static const IconData arrow_back_ios_outlined = IconData(0xe04c, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">arrow_back_ios</i> &#x2014; material icon named "arrow back ios rounded".
  static const IconData arrow_back_ios_rounded = IconData(0xf07a, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">arrow_back_ios</i> &#x2014; material icon named "arrow back ios sharp".
  static const IconData arrow_back_ios_sharp = IconData(0xeb4c, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">arrow_back</i> &#x2014; material icon named "arrow back outlined".
  static const IconData arrow_back_outlined = IconData(0xe04d, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">arrow_back</i> &#x2014; material icon named "arrow back rounded".
  static const IconData arrow_back_rounded = IconData(0xf07b, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">arrow_back</i> &#x2014; material icon named "arrow back sharp".
  static const IconData arrow_back_sharp = IconData(0xeb4d, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">arrow_circle_down</i> &#x2014; material icon named "arrow circle down".
  static const IconData arrow_circle_down = IconData(0xe5a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">arrow_circle_down</i> &#x2014; material icon named "arrow circle down outlined".
  static const IconData arrow_circle_down_outlined = IconData(0xe04e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">arrow_circle_down</i> &#x2014; material icon named "arrow circle down rounded".
  static const IconData arrow_circle_down_rounded = IconData(0xf07c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">arrow_circle_down</i> &#x2014; material icon named "arrow circle down sharp".
  static const IconData arrow_circle_down_sharp = IconData(0xeb4e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">arrow_circle_up</i> &#x2014; material icon named "arrow circle up".
  static const IconData arrow_circle_up = IconData(0xe5aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">arrow_circle_up</i> &#x2014; material icon named "arrow circle up outlined".
  static const IconData arrow_circle_up_outlined = IconData(0xe04f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">arrow_circle_up</i> &#x2014; material icon named "arrow circle up rounded".
  static const IconData arrow_circle_up_rounded = IconData(0xf07d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">arrow_circle_up</i> &#x2014; material icon named "arrow circle up sharp".
  static const IconData arrow_circle_up_sharp = IconData(0xeb4f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">arrow_downward</i> &#x2014; material icon named "arrow downward".
  static const IconData arrow_downward = IconData(0xe5ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">arrow_downward</i> &#x2014; material icon named "arrow downward outlined".
  static const IconData arrow_downward_outlined = IconData(0xe050, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">arrow_downward</i> &#x2014; material icon named "arrow downward rounded".
  static const IconData arrow_downward_rounded = IconData(0xf07e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">arrow_downward</i> &#x2014; material icon named "arrow downward sharp".
  static const IconData arrow_downward_sharp = IconData(0xeb50, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">arrow_drop_down</i> &#x2014; material icon named "arrow drop down".
  static const IconData arrow_drop_down = IconData(0xe5ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">arrow_drop_down_circle</i> &#x2014; material icon named "arrow drop down circle".
  static const IconData arrow_drop_down_circle = IconData(0xe5ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">arrow_drop_down_circle</i> &#x2014; material icon named "arrow drop down circle outlined".
  static const IconData arrow_drop_down_circle_outlined = IconData(0xe051, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">arrow_drop_down_circle</i> &#x2014; material icon named "arrow drop down circle rounded".
  static const IconData arrow_drop_down_circle_rounded = IconData(0xf07f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">arrow_drop_down_circle</i> &#x2014; material icon named "arrow drop down circle sharp".
  static const IconData arrow_drop_down_circle_sharp = IconData(0xeb51, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">arrow_drop_down</i> &#x2014; material icon named "arrow drop down outlined".
  static const IconData arrow_drop_down_outlined = IconData(0xe052, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">arrow_drop_down</i> &#x2014; material icon named "arrow drop down rounded".
  static const IconData arrow_drop_down_rounded = IconData(0xf080, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">arrow_drop_down</i> &#x2014; material icon named "arrow drop down sharp".
  static const IconData arrow_drop_down_sharp = IconData(0xeb52, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">arrow_drop_up</i> &#x2014; material icon named "arrow drop up".
  static const IconData arrow_drop_up = IconData(0xe5ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">arrow_drop_up</i> &#x2014; material icon named "arrow drop up outlined".
  static const IconData arrow_drop_up_outlined = IconData(0xe053, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">arrow_drop_up</i> &#x2014; material icon named "arrow drop up rounded".
  static const IconData arrow_drop_up_rounded = IconData(0xf081, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">arrow_drop_up</i> &#x2014; material icon named "arrow drop up sharp".
  static const IconData arrow_drop_up_sharp = IconData(0xeb53, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">arrow_forward</i> &#x2014; material icon named "arrow forward".
  static const IconData arrow_forward = IconData(0xe5af, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">arrow_forward_ios</i> &#x2014; material icon named "arrow forward ios".
  static const IconData arrow_forward_ios = IconData(0xe5b0, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">arrow_forward_ios</i> &#x2014; material icon named "arrow forward ios outlined".
  static const IconData arrow_forward_ios_outlined = IconData(0xe054, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">arrow_forward_ios</i> &#x2014; material icon named "arrow forward ios rounded".
  static const IconData arrow_forward_ios_rounded = IconData(0xf082, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">arrow_forward_ios</i> &#x2014; material icon named "arrow forward ios sharp".
  static const IconData arrow_forward_ios_sharp = IconData(0xeb54, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">arrow_forward</i> &#x2014; material icon named "arrow forward outlined".
  static const IconData arrow_forward_outlined = IconData(0xe055, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">arrow_forward</i> &#x2014; material icon named "arrow forward rounded".
  static const IconData arrow_forward_rounded = IconData(0xf083, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">arrow_forward</i> &#x2014; material icon named "arrow forward sharp".
  static const IconData arrow_forward_sharp = IconData(0xeb55, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">arrow_left</i> &#x2014; material icon named "arrow left".
  static const IconData arrow_left = IconData(0xe5b1, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">arrow_left</i> &#x2014; material icon named "arrow left outlined".
  static const IconData arrow_left_outlined = IconData(0xe056, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">arrow_left</i> &#x2014; material icon named "arrow left rounded".
  static const IconData arrow_left_rounded = IconData(0xf084, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">arrow_left</i> &#x2014; material icon named "arrow left sharp".
  static const IconData arrow_left_sharp = IconData(0xeb56, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">arrow_right</i> &#x2014; material icon named "arrow right".
  static const IconData arrow_right = IconData(0xe5b2, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">arrow_right_alt</i> &#x2014; material icon named "arrow right alt".
  static const IconData arrow_right_alt = IconData(0xe5b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">arrow_right_alt</i> &#x2014; material icon named "arrow right alt outlined".
  static const IconData arrow_right_alt_outlined = IconData(0xe057, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">arrow_right_alt</i> &#x2014; material icon named "arrow right alt rounded".
  static const IconData arrow_right_alt_rounded = IconData(0xf085, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">arrow_right_alt</i> &#x2014; material icon named "arrow right alt sharp".
  static const IconData arrow_right_alt_sharp = IconData(0xeb57, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">arrow_right</i> &#x2014; material icon named "arrow right outlined".
  static const IconData arrow_right_outlined = IconData(0xe058, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">arrow_right</i> &#x2014; material icon named "arrow right rounded".
  static const IconData arrow_right_rounded = IconData(0xf086, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">arrow_right</i> &#x2014; material icon named "arrow right sharp".
  static const IconData arrow_right_sharp = IconData(0xeb58, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">arrow_upward</i> &#x2014; material icon named "arrow upward".
  static const IconData arrow_upward = IconData(0xe5b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">arrow_upward</i> &#x2014; material icon named "arrow upward outlined".
  static const IconData arrow_upward_outlined = IconData(0xe059, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">arrow_upward</i> &#x2014; material icon named "arrow upward rounded".
  static const IconData arrow_upward_rounded = IconData(0xf087, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">arrow_upward</i> &#x2014; material icon named "arrow upward sharp".
  static const IconData arrow_upward_sharp = IconData(0xeb59, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">art_track</i> &#x2014; material icon named "art track".
  static const IconData art_track = IconData(0xe5b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">art_track</i> &#x2014; material icon named "art track outlined".
  static const IconData art_track_outlined = IconData(0xe05a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">art_track</i> &#x2014; material icon named "art track rounded".
  static const IconData art_track_rounded = IconData(0xf088, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">art_track</i> &#x2014; material icon named "art track sharp".
  static const IconData art_track_sharp = IconData(0xeb5a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">article</i> &#x2014; material icon named "article".
  static const IconData article = IconData(0xe5b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">article</i> &#x2014; material icon named "article outlined".
  static const IconData article_outlined = IconData(0xe05b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">article</i> &#x2014; material icon named "article rounded".
  static const IconData article_rounded = IconData(0xf089, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">article</i> &#x2014; material icon named "article sharp".
  static const IconData article_sharp = IconData(0xeb5b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">aspect_ratio</i> &#x2014; material icon named "aspect ratio".
  static const IconData aspect_ratio = IconData(0xe5b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">aspect_ratio</i> &#x2014; material icon named "aspect ratio outlined".
  static const IconData aspect_ratio_outlined = IconData(0xe05c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">aspect_ratio</i> &#x2014; material icon named "aspect ratio rounded".
  static const IconData aspect_ratio_rounded = IconData(0xf08a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">aspect_ratio</i> &#x2014; material icon named "aspect ratio sharp".
  static const IconData aspect_ratio_sharp = IconData(0xeb5c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">assessment</i> &#x2014; material icon named "assessment".
  static const IconData assessment = IconData(0xe5b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">assessment</i> &#x2014; material icon named "assessment outlined".
  static const IconData assessment_outlined = IconData(0xe05d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">assessment</i> &#x2014; material icon named "assessment rounded".
  static const IconData assessment_rounded = IconData(0xf08b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">assessment</i> &#x2014; material icon named "assessment sharp".
  static const IconData assessment_sharp = IconData(0xeb5d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">assignment</i> &#x2014; material icon named "assignment".
  static const IconData assignment = IconData(0xe5b9, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">assignment_ind</i> &#x2014; material icon named "assignment ind".
  static const IconData assignment_ind = IconData(0xe5ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">assignment_ind</i> &#x2014; material icon named "assignment ind outlined".
  static const IconData assignment_ind_outlined = IconData(0xe05e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">assignment_ind</i> &#x2014; material icon named "assignment ind rounded".
  static const IconData assignment_ind_rounded = IconData(0xf08c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">assignment_ind</i> &#x2014; material icon named "assignment ind sharp".
  static const IconData assignment_ind_sharp = IconData(0xeb5e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">assignment_late</i> &#x2014; material icon named "assignment late".
  static const IconData assignment_late = IconData(0xe5bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">assignment_late</i> &#x2014; material icon named "assignment late outlined".
  static const IconData assignment_late_outlined = IconData(0xe05f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">assignment_late</i> &#x2014; material icon named "assignment late rounded".
  static const IconData assignment_late_rounded = IconData(0xf08d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">assignment_late</i> &#x2014; material icon named "assignment late sharp".
  static const IconData assignment_late_sharp = IconData(0xeb5f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">assignment</i> &#x2014; material icon named "assignment outlined".
  static const IconData assignment_outlined = IconData(0xe060, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">assignment_return</i> &#x2014; material icon named "assignment return".
  static const IconData assignment_return = IconData(0xe5bc, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">assignment_return</i> &#x2014; material icon named "assignment return outlined".
  static const IconData assignment_return_outlined = IconData(0xe061, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">assignment_return</i> &#x2014; material icon named "assignment return rounded".
  static const IconData assignment_return_rounded = IconData(0xf08e, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">assignment_return</i> &#x2014; material icon named "assignment return sharp".
  static const IconData assignment_return_sharp = IconData(0xeb60, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">assignment_returned</i> &#x2014; material icon named "assignment returned".
  static const IconData assignment_returned = IconData(0xe5bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">assignment_returned</i> &#x2014; material icon named "assignment returned outlined".
  static const IconData assignment_returned_outlined = IconData(0xe062, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">assignment_returned</i> &#x2014; material icon named "assignment returned rounded".
  static const IconData assignment_returned_rounded = IconData(0xf08f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">assignment_returned</i> &#x2014; material icon named "assignment returned sharp".
  static const IconData assignment_returned_sharp = IconData(0xeb61, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">assignment</i> &#x2014; material icon named "assignment rounded".
  static const IconData assignment_rounded = IconData(0xf090, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">assignment</i> &#x2014; material icon named "assignment sharp".
  static const IconData assignment_sharp = IconData(0xeb62, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">assignment_turned_in</i> &#x2014; material icon named "assignment turned in".
  static const IconData assignment_turned_in = IconData(0xe5be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">assignment_turned_in</i> &#x2014; material icon named "assignment turned in outlined".
  static const IconData assignment_turned_in_outlined = IconData(0xe063, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">assignment_turned_in</i> &#x2014; material icon named "assignment turned in rounded".
  static const IconData assignment_turned_in_rounded = IconData(0xf091, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">assignment_turned_in</i> &#x2014; material icon named "assignment turned in sharp".
  static const IconData assignment_turned_in_sharp = IconData(0xeb63, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">assistant</i> &#x2014; material icon named "assistant".
  static const IconData assistant = IconData(0xe5bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">assistant_direction</i> &#x2014; material icon named "assistant direction".
  static const IconData assistant_direction = IconData(0xe5c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">assistant_navigation</i> &#x2014; material icon named "assistant navigation".
  static const IconData assistant_navigation = IconData(0xe5c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">assistant</i> &#x2014; material icon named "assistant outlined".
  static const IconData assistant_outlined = IconData(0xe064, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">assistant_photo</i> &#x2014; material icon named "assistant photo".
  static const IconData assistant_photo = IconData(0xe5c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">assistant_photo</i> &#x2014; material icon named "assistant photo outlined".
  static const IconData assistant_photo_outlined = IconData(0xe065, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">assistant_photo</i> &#x2014; material icon named "assistant photo rounded".
  static const IconData assistant_photo_rounded = IconData(0xf092, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">assistant_photo</i> &#x2014; material icon named "assistant photo sharp".
  static const IconData assistant_photo_sharp = IconData(0xeb64, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">assistant</i> &#x2014; material icon named "assistant rounded".
  static const IconData assistant_rounded = IconData(0xf093, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">assistant</i> &#x2014; material icon named "assistant sharp".
  static const IconData assistant_sharp = IconData(0xeb65, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">atm</i> &#x2014; material icon named "atm".
  static const IconData atm = IconData(0xe5c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">atm</i> &#x2014; material icon named "atm outlined".
  static const IconData atm_outlined = IconData(0xe066, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">atm</i> &#x2014; material icon named "atm rounded".
  static const IconData atm_rounded = IconData(0xf094, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">atm</i> &#x2014; material icon named "atm sharp".
  static const IconData atm_sharp = IconData(0xeb66, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">attach_email</i> &#x2014; material icon named "attach email".
  static const IconData attach_email = IconData(0xe5c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">attach_email</i> &#x2014; material icon named "attach email outlined".
  static const IconData attach_email_outlined = IconData(0xe067, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">attach_email</i> &#x2014; material icon named "attach email rounded".
  static const IconData attach_email_rounded = IconData(0xf095, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">attach_email</i> &#x2014; material icon named "attach email sharp".
  static const IconData attach_email_sharp = IconData(0xeb67, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">attach_file</i> &#x2014; material icon named "attach file".
  static const IconData attach_file = IconData(0xe5c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">attach_file</i> &#x2014; material icon named "attach file outlined".
  static const IconData attach_file_outlined = IconData(0xe068, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">attach_file</i> &#x2014; material icon named "attach file rounded".
  static const IconData attach_file_rounded = IconData(0xf096, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">attach_file</i> &#x2014; material icon named "attach file sharp".
  static const IconData attach_file_sharp = IconData(0xeb68, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">attach_money</i> &#x2014; material icon named "attach money".
  static const IconData attach_money = IconData(0xe5c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">attach_money</i> &#x2014; material icon named "attach money outlined".
  static const IconData attach_money_outlined = IconData(0xe069, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">attach_money</i> &#x2014; material icon named "attach money rounded".
  static const IconData attach_money_rounded = IconData(0xf097, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">attach_money</i> &#x2014; material icon named "attach money sharp".
  static const IconData attach_money_sharp = IconData(0xeb69, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">attachment</i> &#x2014; material icon named "attachment".
  static const IconData attachment = IconData(0xe5c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">attachment</i> &#x2014; material icon named "attachment outlined".
  static const IconData attachment_outlined = IconData(0xe06a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">attachment</i> &#x2014; material icon named "attachment rounded".
  static const IconData attachment_rounded = IconData(0xf098, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">attachment</i> &#x2014; material icon named "attachment sharp".
  static const IconData attachment_sharp = IconData(0xeb6a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">attractions</i> &#x2014; material icon named "attractions".
  static const IconData attractions = IconData(0xe5c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">attribution</i> &#x2014; material icon named "attribution outlined".
  static const IconData attribution_outlined = IconData(0xe06b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">attribution</i> &#x2014; material icon named "attribution rounded".
  static const IconData attribution_rounded = IconData(0xf099, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">attribution</i> &#x2014; material icon named "attribution sharp".
  static const IconData attribution_sharp = IconData(0xeb6b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">audiotrack</i> &#x2014; material icon named "audiotrack".
  static const IconData audiotrack = IconData(0xe5c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">audiotrack</i> &#x2014; material icon named "audiotrack outlined".
  static const IconData audiotrack_outlined = IconData(0xe06c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">audiotrack</i> &#x2014; material icon named "audiotrack rounded".
  static const IconData audiotrack_rounded = IconData(0xf09a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">audiotrack</i> &#x2014; material icon named "audiotrack sharp".
  static const IconData audiotrack_sharp = IconData(0xeb6c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">auto_awesome</i> &#x2014; material icon named "auto awesome".
  static const IconData auto_awesome = IconData(0xe5ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">auto_awesome_mosaic</i> &#x2014; material icon named "auto awesome mosaic".
  static const IconData auto_awesome_mosaic = IconData(0xe5cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">auto_awesome_motion</i> &#x2014; material icon named "auto awesome motion".
  static const IconData auto_awesome_motion = IconData(0xe5cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">auto_delete</i> &#x2014; material icon named "auto delete".
  static const IconData auto_delete = IconData(0xe5cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">auto_delete</i> &#x2014; material icon named "auto delete outlined".
  static const IconData auto_delete_outlined = IconData(0xe06d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">auto_delete</i> &#x2014; material icon named "auto delete rounded".
  static const IconData auto_delete_rounded = IconData(0xf09b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">auto_delete</i> &#x2014; material icon named "auto delete sharp".
  static const IconData auto_delete_sharp = IconData(0xeb6d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">auto_fix_high</i> &#x2014; material icon named "auto fix high".
  static const IconData auto_fix_high = IconData(0xe5ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">auto_fix_normal</i> &#x2014; material icon named "auto fix normal".
  static const IconData auto_fix_normal = IconData(0xe5cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">auto_fix_off</i> &#x2014; material icon named "auto fix off".
  static const IconData auto_fix_off = IconData(0xe5d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">auto_stories</i> &#x2014; material icon named "auto stories".
  static const IconData auto_stories = IconData(0xe5d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">autorenew</i> &#x2014; material icon named "autorenew".
  static const IconData autorenew = IconData(0xe5d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">autorenew</i> &#x2014; material icon named "autorenew outlined".
  static const IconData autorenew_outlined = IconData(0xe06e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">autorenew</i> &#x2014; material icon named "autorenew rounded".
  static const IconData autorenew_rounded = IconData(0xf09c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">autorenew</i> &#x2014; material icon named "autorenew sharp".
  static const IconData autorenew_sharp = IconData(0xeb6e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">av_timer</i> &#x2014; material icon named "av timer".
  static const IconData av_timer = IconData(0xe5d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">av_timer</i> &#x2014; material icon named "av timer outlined".
  static const IconData av_timer_outlined = IconData(0xe06f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">av_timer</i> &#x2014; material icon named "av timer rounded".
  static const IconData av_timer_rounded = IconData(0xf09d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">av_timer</i> &#x2014; material icon named "av timer sharp".
  static const IconData av_timer_sharp = IconData(0xeb6f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">baby_changing_station</i> &#x2014; material icon named "baby changing station".
  static const IconData baby_changing_station = IconData(0xe5d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">baby_changing_station</i> &#x2014; material icon named "baby changing station outlined".
  static const IconData baby_changing_station_outlined = IconData(0xe070, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">baby_changing_station</i> &#x2014; material icon named "baby changing station rounded".
  static const IconData baby_changing_station_rounded = IconData(0xf09e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">baby_changing_station</i> &#x2014; material icon named "baby changing station sharp".
  static const IconData baby_changing_station_sharp = IconData(0xeb70, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">backpack</i> &#x2014; material icon named "backpack".
  static const IconData backpack = IconData(0xe5d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">backpack</i> &#x2014; material icon named "backpack outlined".
  static const IconData backpack_outlined = IconData(0xe071, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">backpack</i> &#x2014; material icon named "backpack rounded".
  static const IconData backpack_rounded = IconData(0xf09f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">backpack</i> &#x2014; material icon named "backpack sharp".
  static const IconData backpack_sharp = IconData(0xeb71, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">backspace</i> &#x2014; material icon named "backspace".
  static const IconData backspace = IconData(0xe5d6, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">backspace</i> &#x2014; material icon named "backspace outlined".
  static const IconData backspace_outlined = IconData(0xe072, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">backspace</i> &#x2014; material icon named "backspace rounded".
  static const IconData backspace_rounded = IconData(0xf0a0, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">backspace</i> &#x2014; material icon named "backspace sharp".
  static const IconData backspace_sharp = IconData(0xeb72, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">backup</i> &#x2014; material icon named "backup".
  static const IconData backup = IconData(0xe5d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">backup</i> &#x2014; material icon named "backup outlined".
  static const IconData backup_outlined = IconData(0xe073, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">backup</i> &#x2014; material icon named "backup rounded".
  static const IconData backup_rounded = IconData(0xf0a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">backup</i> &#x2014; material icon named "backup sharp".
  static const IconData backup_sharp = IconData(0xeb73, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">backup_table</i> &#x2014; material icon named "backup table".
  static const IconData backup_table = IconData(0xe5d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">backup_table</i> &#x2014; material icon named "backup table outlined".
  static const IconData backup_table_outlined = IconData(0xe074, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">backup_table</i> &#x2014; material icon named "backup table rounded".
  static const IconData backup_table_rounded = IconData(0xf0a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">backup_table</i> &#x2014; material icon named "backup table sharp".
  static const IconData backup_table_sharp = IconData(0xeb74, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">badge</i> &#x2014; material icon named "badge".
  static const IconData badge = IconData(0xe5d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bakery_dining</i> &#x2014; material icon named "bakery dining".
  static const IconData bakery_dining = IconData(0xe5da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">ballot</i> &#x2014; material icon named "ballot".
  static const IconData ballot = IconData(0xe5db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">ballot</i> &#x2014; material icon named "ballot outlined".
  static const IconData ballot_outlined = IconData(0xe075, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">ballot</i> &#x2014; material icon named "ballot rounded".
  static const IconData ballot_rounded = IconData(0xf0a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">ballot</i> &#x2014; material icon named "ballot sharp".
  static const IconData ballot_sharp = IconData(0xeb75, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bar_chart</i> &#x2014; material icon named "bar chart".
  static const IconData bar_chart = IconData(0xe5dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bar_chart</i> &#x2014; material icon named "bar chart outlined".
  static const IconData bar_chart_outlined = IconData(0xe076, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bar_chart</i> &#x2014; material icon named "bar chart rounded".
  static const IconData bar_chart_rounded = IconData(0xf0a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">bar_chart</i> &#x2014; material icon named "bar chart sharp".
  static const IconData bar_chart_sharp = IconData(0xeb76, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">batch_prediction</i> &#x2014; material icon named "batch prediction".
  static const IconData batch_prediction = IconData(0xe5dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">batch_prediction</i> &#x2014; material icon named "batch prediction outlined".
  static const IconData batch_prediction_outlined = IconData(0xe077, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">batch_prediction</i> &#x2014; material icon named "batch prediction rounded".
  static const IconData batch_prediction_rounded = IconData(0xf0a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">batch_prediction</i> &#x2014; material icon named "batch prediction sharp".
  static const IconData batch_prediction_sharp = IconData(0xeb77, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bathtub</i> &#x2014; material icon named "bathtub".
  static const IconData bathtub = IconData(0xe5de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bathtub</i> &#x2014; material icon named "bathtub outlined".
  static const IconData bathtub_outlined = IconData(0xe078, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bathtub</i> &#x2014; material icon named "bathtub rounded".
  static const IconData bathtub_rounded = IconData(0xf0a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">bathtub</i> &#x2014; material icon named "bathtub sharp".
  static const IconData bathtub_sharp = IconData(0xeb78, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">battery_alert</i> &#x2014; material icon named "battery alert".
  static const IconData battery_alert = IconData(0xe5df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">battery_alert</i> &#x2014; material icon named "battery alert outlined".
  static const IconData battery_alert_outlined = IconData(0xe079, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">battery_alert</i> &#x2014; material icon named "battery alert rounded".
  static const IconData battery_alert_rounded = IconData(0xf0a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">battery_alert</i> &#x2014; material icon named "battery alert sharp".
  static const IconData battery_alert_sharp = IconData(0xeb79, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">battery_charging_full</i> &#x2014; material icon named "battery charging full".
  static const IconData battery_charging_full = IconData(0xe5e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">battery_charging_full</i> &#x2014; material icon named "battery charging full outlined".
  static const IconData battery_charging_full_outlined = IconData(0xe07a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">battery_charging_full</i> &#x2014; material icon named "battery charging full rounded".
  static const IconData battery_charging_full_rounded = IconData(0xf0a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">battery_charging_full</i> &#x2014; material icon named "battery charging full sharp".
  static const IconData battery_charging_full_sharp = IconData(0xeb7a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">battery_full</i> &#x2014; material icon named "battery full".
  static const IconData battery_full = IconData(0xe5e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">battery_full</i> &#x2014; material icon named "battery full outlined".
  static const IconData battery_full_outlined = IconData(0xe07b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">battery_full</i> &#x2014; material icon named "battery full rounded".
  static const IconData battery_full_rounded = IconData(0xf0a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">battery_full</i> &#x2014; material icon named "battery full sharp".
  static const IconData battery_full_sharp = IconData(0xeb7b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">battery_std</i> &#x2014; material icon named "battery std".
  static const IconData battery_std = IconData(0xe5e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">battery_std</i> &#x2014; material icon named "battery std outlined".
  static const IconData battery_std_outlined = IconData(0xe07c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">battery_std</i> &#x2014; material icon named "battery std rounded".
  static const IconData battery_std_rounded = IconData(0xf0aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">battery_std</i> &#x2014; material icon named "battery std sharp".
  static const IconData battery_std_sharp = IconData(0xeb7c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">battery_unknown</i> &#x2014; material icon named "battery unknown".
  static const IconData battery_unknown = IconData(0xe5e3, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">battery_unknown</i> &#x2014; material icon named "battery unknown outlined".
  static const IconData battery_unknown_outlined = IconData(0xe07d, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">battery_unknown</i> &#x2014; material icon named "battery unknown rounded".
  static const IconData battery_unknown_rounded = IconData(0xf0ab, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">battery_unknown</i> &#x2014; material icon named "battery unknown sharp".
  static const IconData battery_unknown_sharp = IconData(0xeb7d, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">beach_access</i> &#x2014; material icon named "beach access".
  static const IconData beach_access = IconData(0xe5e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">beach_access</i> &#x2014; material icon named "beach access outlined".
  static const IconData beach_access_outlined = IconData(0xe07e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">beach_access</i> &#x2014; material icon named "beach access rounded".
  static const IconData beach_access_rounded = IconData(0xf0ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">beach_access</i> &#x2014; material icon named "beach access sharp".
  static const IconData beach_access_sharp = IconData(0xeb7e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bedtime</i> &#x2014; material icon named "bedtime".
  static const IconData bedtime = IconData(0xe5e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bedtime</i> &#x2014; material icon named "bedtime outlined".
  static const IconData bedtime_outlined = IconData(0xe07f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bedtime</i> &#x2014; material icon named "bedtime rounded".
  static const IconData bedtime_rounded = IconData(0xf0ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">bedtime</i> &#x2014; material icon named "bedtime sharp".
  static const IconData bedtime_sharp = IconData(0xeb7f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">beenhere</i> &#x2014; material icon named "beenhere".
  static const IconData beenhere = IconData(0xe5e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">beenhere</i> &#x2014; material icon named "beenhere outlined".
  static const IconData beenhere_outlined = IconData(0xe080, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">beenhere</i> &#x2014; material icon named "beenhere rounded".
  static const IconData beenhere_rounded = IconData(0xf0ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">beenhere</i> &#x2014; material icon named "beenhere sharp".
  static const IconData beenhere_sharp = IconData(0xeb80, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bento</i> &#x2014; material icon named "bento".
  static const IconData bento = IconData(0xe5e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bento</i> &#x2014; material icon named "bento outlined".
  static const IconData bento_outlined = IconData(0xe081, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bento</i> &#x2014; material icon named "bento rounded".
  static const IconData bento_rounded = IconData(0xf0af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">bento</i> &#x2014; material icon named "bento sharp".
  static const IconData bento_sharp = IconData(0xeb81, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bike_scooter</i> &#x2014; material icon named "bike scooter".
  static const IconData bike_scooter = IconData(0xe5e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bike_scooter</i> &#x2014; material icon named "bike scooter outlined".
  static const IconData bike_scooter_outlined = IconData(0xe082, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bike_scooter</i> &#x2014; material icon named "bike scooter rounded".
  static const IconData bike_scooter_rounded = IconData(0xf0b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">bike_scooter</i> &#x2014; material icon named "bike scooter sharp".
  static const IconData bike_scooter_sharp = IconData(0xeb82, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">biotech</i> &#x2014; material icon named "biotech".
  static const IconData biotech = IconData(0xe5e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">biotech</i> &#x2014; material icon named "biotech outlined".
  static const IconData biotech_outlined = IconData(0xe083, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">biotech</i> &#x2014; material icon named "biotech rounded".
  static const IconData biotech_rounded = IconData(0xf0b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">biotech</i> &#x2014; material icon named "biotech sharp".
  static const IconData biotech_sharp = IconData(0xeb83, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">block</i> &#x2014; material icon named "block".
  static const IconData block = IconData(0xe5ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">block_flipped</i> &#x2014; material icon named "block flipped".
  static const IconData block_flipped = IconData(0xe5eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">block</i> &#x2014; material icon named "block outlined".
  static const IconData block_outlined = IconData(0xe084, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">block</i> &#x2014; material icon named "block rounded".
  static const IconData block_rounded = IconData(0xf0b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">block</i> &#x2014; material icon named "block sharp".
  static const IconData block_sharp = IconData(0xeb84, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bluetooth</i> &#x2014; material icon named "bluetooth".
  static const IconData bluetooth = IconData(0xe5ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bluetooth_audio</i> &#x2014; material icon named "bluetooth audio".
  static const IconData bluetooth_audio = IconData(0xe5ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bluetooth_audio</i> &#x2014; material icon named "bluetooth audio outlined".
  static const IconData bluetooth_audio_outlined = IconData(0xe085, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bluetooth_audio</i> &#x2014; material icon named "bluetooth audio rounded".
  static const IconData bluetooth_audio_rounded = IconData(0xf0b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">bluetooth_audio</i> &#x2014; material icon named "bluetooth audio sharp".
  static const IconData bluetooth_audio_sharp = IconData(0xeb85, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bluetooth_connected</i> &#x2014; material icon named "bluetooth connected".
  static const IconData bluetooth_connected = IconData(0xe5ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bluetooth_connected</i> &#x2014; material icon named "bluetooth connected outlined".
  static const IconData bluetooth_connected_outlined = IconData(0xe086, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bluetooth_connected</i> &#x2014; material icon named "bluetooth connected rounded".
  static const IconData bluetooth_connected_rounded = IconData(0xf0b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">bluetooth_connected</i> &#x2014; material icon named "bluetooth connected sharp".
  static const IconData bluetooth_connected_sharp = IconData(0xeb86, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bluetooth_disabled</i> &#x2014; material icon named "bluetooth disabled".
  static const IconData bluetooth_disabled = IconData(0xe5ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bluetooth_disabled</i> &#x2014; material icon named "bluetooth disabled outlined".
  static const IconData bluetooth_disabled_outlined = IconData(0xe087, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bluetooth_disabled</i> &#x2014; material icon named "bluetooth disabled rounded".
  static const IconData bluetooth_disabled_rounded = IconData(0xf0b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">bluetooth_disabled</i> &#x2014; material icon named "bluetooth disabled sharp".
  static const IconData bluetooth_disabled_sharp = IconData(0xeb87, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bluetooth</i> &#x2014; material icon named "bluetooth outlined".
  static const IconData bluetooth_outlined = IconData(0xe088, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bluetooth</i> &#x2014; material icon named "bluetooth rounded".
  static const IconData bluetooth_rounded = IconData(0xf0b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bluetooth_searching</i> &#x2014; material icon named "bluetooth searching".
  static const IconData bluetooth_searching = IconData(0xe5f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bluetooth_searching</i> &#x2014; material icon named "bluetooth searching outlined".
  static const IconData bluetooth_searching_outlined = IconData(0xe089, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bluetooth_searching</i> &#x2014; material icon named "bluetooth searching rounded".
  static const IconData bluetooth_searching_rounded = IconData(0xf0b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">bluetooth_searching</i> &#x2014; material icon named "bluetooth searching sharp".
  static const IconData bluetooth_searching_sharp = IconData(0xeb88, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">bluetooth</i> &#x2014; material icon named "bluetooth sharp".
  static const IconData bluetooth_sharp = IconData(0xeb89, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">blur_circular</i> &#x2014; material icon named "blur circular".
  static const IconData blur_circular = IconData(0xe5f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">blur_circular</i> &#x2014; material icon named "blur circular outlined".
  static const IconData blur_circular_outlined = IconData(0xe08a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">blur_circular</i> &#x2014; material icon named "blur circular rounded".
  static const IconData blur_circular_rounded = IconData(0xf0b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">blur_circular</i> &#x2014; material icon named "blur circular sharp".
  static const IconData blur_circular_sharp = IconData(0xeb8a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">blur_linear</i> &#x2014; material icon named "blur linear".
  static const IconData blur_linear = IconData(0xe5f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">blur_linear</i> &#x2014; material icon named "blur linear outlined".
  static const IconData blur_linear_outlined = IconData(0xe08b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">blur_linear</i> &#x2014; material icon named "blur linear rounded".
  static const IconData blur_linear_rounded = IconData(0xf0b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">blur_linear</i> &#x2014; material icon named "blur linear sharp".
  static const IconData blur_linear_sharp = IconData(0xeb8b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">blur_off</i> &#x2014; material icon named "blur off".
  static const IconData blur_off = IconData(0xe5f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">blur_off</i> &#x2014; material icon named "blur off outlined".
  static const IconData blur_off_outlined = IconData(0xe08c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">blur_off</i> &#x2014; material icon named "blur off rounded".
  static const IconData blur_off_rounded = IconData(0xf0ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">blur_off</i> &#x2014; material icon named "blur off sharp".
  static const IconData blur_off_sharp = IconData(0xeb8c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">blur_on</i> &#x2014; material icon named "blur on".
  static const IconData blur_on = IconData(0xe5f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">blur_on</i> &#x2014; material icon named "blur on outlined".
  static const IconData blur_on_outlined = IconData(0xe08d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">blur_on</i> &#x2014; material icon named "blur on rounded".
  static const IconData blur_on_rounded = IconData(0xf0bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">blur_on</i> &#x2014; material icon named "blur on sharp".
  static const IconData blur_on_sharp = IconData(0xeb8d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bolt</i> &#x2014; material icon named "bolt".
  static const IconData bolt = IconData(0xe5f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">book</i> &#x2014; material icon named "book".
  static const IconData book = IconData(0xe5f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">book_online</i> &#x2014; material icon named "book online".
  static const IconData book_online = IconData(0xe5f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">book_online</i> &#x2014; material icon named "book online outlined".
  static const IconData book_online_outlined = IconData(0xe08e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">book_online</i> &#x2014; material icon named "book online rounded".
  static const IconData book_online_rounded = IconData(0xf0bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">book_online</i> &#x2014; material icon named "book online sharp".
  static const IconData book_online_sharp = IconData(0xeb8e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">book</i> &#x2014; material icon named "book outlined".
  static const IconData book_outlined = IconData(0xe08f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">book</i> &#x2014; material icon named "book rounded".
  static const IconData book_rounded = IconData(0xf0bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">book</i> &#x2014; material icon named "book sharp".
  static const IconData book_sharp = IconData(0xeb8f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bookmark</i> &#x2014; material icon named "bookmark".
  static const IconData bookmark = IconData(0xe5f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bookmark_border</i> &#x2014; material icon named "bookmark border".
  static const IconData bookmark_border = IconData(0xe5f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bookmark_border</i> &#x2014; material icon named "bookmark border outlined".
  static const IconData bookmark_border_outlined = IconData(0xe090, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bookmark_border</i> &#x2014; material icon named "bookmark border rounded".
  static const IconData bookmark_border_rounded = IconData(0xf0be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">bookmark_border</i> &#x2014; material icon named "bookmark border sharp".
  static const IconData bookmark_border_sharp = IconData(0xeb90, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bookmark_outline</i> &#x2014; material icon named "bookmark outline".
  static const IconData bookmark_outline = IconData(0xe5f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bookmark_outline</i> &#x2014; material icon named "bookmark outline outlined".
  static const IconData bookmark_outline_outlined = IconData(0xe090, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bookmark_outline</i> &#x2014; material icon named "bookmark outline rounded".
  static const IconData bookmark_outline_rounded = IconData(0xf0be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">bookmark_outline</i> &#x2014; material icon named "bookmark outline sharp".
  static const IconData bookmark_outline_sharp = IconData(0xeb90, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bookmark</i> &#x2014; material icon named "bookmark outlined".
  static const IconData bookmark_outlined = IconData(0xe091, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bookmark</i> &#x2014; material icon named "bookmark rounded".
  static const IconData bookmark_rounded = IconData(0xf0bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">bookmark</i> &#x2014; material icon named "bookmark sharp".
  static const IconData bookmark_sharp = IconData(0xeb91, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bookmarks</i> &#x2014; material icon named "bookmarks".
  static const IconData bookmarks = IconData(0xe5fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bookmarks</i> &#x2014; material icon named "bookmarks outlined".
  static const IconData bookmarks_outlined = IconData(0xe092, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bookmarks</i> &#x2014; material icon named "bookmarks rounded".
  static const IconData bookmarks_rounded = IconData(0xf0c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">bookmarks</i> &#x2014; material icon named "bookmarks sharp".
  static const IconData bookmarks_sharp = IconData(0xeb92, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">border_all</i> &#x2014; material icon named "border all".
  static const IconData border_all = IconData(0xe5fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">border_all</i> &#x2014; material icon named "border all outlined".
  static const IconData border_all_outlined = IconData(0xe093, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">border_all</i> &#x2014; material icon named "border all rounded".
  static const IconData border_all_rounded = IconData(0xf0c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">border_all</i> &#x2014; material icon named "border all sharp".
  static const IconData border_all_sharp = IconData(0xeb93, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">border_bottom</i> &#x2014; material icon named "border bottom".
  static const IconData border_bottom = IconData(0xe5fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">border_bottom</i> &#x2014; material icon named "border bottom outlined".
  static const IconData border_bottom_outlined = IconData(0xe094, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">border_bottom</i> &#x2014; material icon named "border bottom rounded".
  static const IconData border_bottom_rounded = IconData(0xf0c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">border_bottom</i> &#x2014; material icon named "border bottom sharp".
  static const IconData border_bottom_sharp = IconData(0xeb94, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">border_clear</i> &#x2014; material icon named "border clear".
  static const IconData border_clear = IconData(0xe5fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">border_clear</i> &#x2014; material icon named "border clear outlined".
  static const IconData border_clear_outlined = IconData(0xe095, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">border_clear</i> &#x2014; material icon named "border clear rounded".
  static const IconData border_clear_rounded = IconData(0xf0c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">border_clear</i> &#x2014; material icon named "border clear sharp".
  static const IconData border_clear_sharp = IconData(0xeb95, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">border_color</i> &#x2014; material icon named "border color".
  static const IconData border_color = IconData(0xe5fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">border_horizontal</i> &#x2014; material icon named "border horizontal".
  static const IconData border_horizontal = IconData(0xe5ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">border_horizontal</i> &#x2014; material icon named "border horizontal outlined".
  static const IconData border_horizontal_outlined = IconData(0xe096, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">border_horizontal</i> &#x2014; material icon named "border horizontal rounded".
  static const IconData border_horizontal_rounded = IconData(0xf0c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">border_horizontal</i> &#x2014; material icon named "border horizontal sharp".
  static const IconData border_horizontal_sharp = IconData(0xeb96, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">border_inner</i> &#x2014; material icon named "border inner".
  static const IconData border_inner = IconData(0xe600, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">border_inner</i> &#x2014; material icon named "border inner outlined".
  static const IconData border_inner_outlined = IconData(0xe097, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">border_inner</i> &#x2014; material icon named "border inner rounded".
  static const IconData border_inner_rounded = IconData(0xf0c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">border_inner</i> &#x2014; material icon named "border inner sharp".
  static const IconData border_inner_sharp = IconData(0xeb97, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">border_left</i> &#x2014; material icon named "border left".
  static const IconData border_left = IconData(0xe601, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">border_left</i> &#x2014; material icon named "border left outlined".
  static const IconData border_left_outlined = IconData(0xe098, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">border_left</i> &#x2014; material icon named "border left rounded".
  static const IconData border_left_rounded = IconData(0xf0c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">border_left</i> &#x2014; material icon named "border left sharp".
  static const IconData border_left_sharp = IconData(0xeb98, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">border_outer</i> &#x2014; material icon named "border outer".
  static const IconData border_outer = IconData(0xe602, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">border_outer</i> &#x2014; material icon named "border outer outlined".
  static const IconData border_outer_outlined = IconData(0xe099, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">border_outer</i> &#x2014; material icon named "border outer rounded".
  static const IconData border_outer_rounded = IconData(0xf0c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">border_outer</i> &#x2014; material icon named "border outer sharp".
  static const IconData border_outer_sharp = IconData(0xeb99, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">border_right</i> &#x2014; material icon named "border right".
  static const IconData border_right = IconData(0xe603, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">border_right</i> &#x2014; material icon named "border right outlined".
  static const IconData border_right_outlined = IconData(0xe09a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">border_right</i> &#x2014; material icon named "border right rounded".
  static const IconData border_right_rounded = IconData(0xf0c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">border_right</i> &#x2014; material icon named "border right sharp".
  static const IconData border_right_sharp = IconData(0xeb9a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">border_style</i> &#x2014; material icon named "border style".
  static const IconData border_style = IconData(0xe604, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">border_style</i> &#x2014; material icon named "border style outlined".
  static const IconData border_style_outlined = IconData(0xe09b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">border_style</i> &#x2014; material icon named "border style rounded".
  static const IconData border_style_rounded = IconData(0xf0c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">border_style</i> &#x2014; material icon named "border style sharp".
  static const IconData border_style_sharp = IconData(0xeb9b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">border_top</i> &#x2014; material icon named "border top".
  static const IconData border_top = IconData(0xe605, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">border_top</i> &#x2014; material icon named "border top outlined".
  static const IconData border_top_outlined = IconData(0xe09c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">border_top</i> &#x2014; material icon named "border top rounded".
  static const IconData border_top_rounded = IconData(0xf0ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">border_top</i> &#x2014; material icon named "border top sharp".
  static const IconData border_top_sharp = IconData(0xeb9c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">border_vertical</i> &#x2014; material icon named "border vertical".
  static const IconData border_vertical = IconData(0xe606, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">border_vertical</i> &#x2014; material icon named "border vertical outlined".
  static const IconData border_vertical_outlined = IconData(0xe09d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">border_vertical</i> &#x2014; material icon named "border vertical rounded".
  static const IconData border_vertical_rounded = IconData(0xf0cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">border_vertical</i> &#x2014; material icon named "border vertical sharp".
  static const IconData border_vertical_sharp = IconData(0xeb9d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">branding_watermark</i> &#x2014; material icon named "branding watermark".
  static const IconData branding_watermark = IconData(0xe607, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">branding_watermark</i> &#x2014; material icon named "branding watermark outlined".
  static const IconData branding_watermark_outlined = IconData(0xe09e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">branding_watermark</i> &#x2014; material icon named "branding watermark rounded".
  static const IconData branding_watermark_rounded = IconData(0xf0cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">branding_watermark</i> &#x2014; material icon named "branding watermark sharp".
  static const IconData branding_watermark_sharp = IconData(0xeb9e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">breakfast_dining</i> &#x2014; material icon named "breakfast dining".
  static const IconData breakfast_dining = IconData(0xe608, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">brightness_1</i> &#x2014; material icon named "brightness 1".
  static const IconData brightness_1 = IconData(0xe609, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">brightness_1</i> &#x2014; material icon named "brightness 1 outlined".
  static const IconData brightness_1_outlined = IconData(0xe09f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">brightness_1</i> &#x2014; material icon named "brightness 1 rounded".
  static const IconData brightness_1_rounded = IconData(0xf0cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">brightness_1</i> &#x2014; material icon named "brightness 1 sharp".
  static const IconData brightness_1_sharp = IconData(0xeb9f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">brightness_2</i> &#x2014; material icon named "brightness 2".
  static const IconData brightness_2 = IconData(0xe60a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">brightness_2</i> &#x2014; material icon named "brightness 2 outlined".
  static const IconData brightness_2_outlined = IconData(0xe0a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">brightness_2</i> &#x2014; material icon named "brightness 2 rounded".
  static const IconData brightness_2_rounded = IconData(0xf0ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">brightness_2</i> &#x2014; material icon named "brightness 2 sharp".
  static const IconData brightness_2_sharp = IconData(0xeba0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">brightness_3</i> &#x2014; material icon named "brightness 3".
  static const IconData brightness_3 = IconData(0xe60b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">brightness_3</i> &#x2014; material icon named "brightness 3 outlined".
  static const IconData brightness_3_outlined = IconData(0xe0a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">brightness_3</i> &#x2014; material icon named "brightness 3 rounded".
  static const IconData brightness_3_rounded = IconData(0xf0cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">brightness_3</i> &#x2014; material icon named "brightness 3 sharp".
  static const IconData brightness_3_sharp = IconData(0xeba1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">brightness_4</i> &#x2014; material icon named "brightness 4".
  static const IconData brightness_4 = IconData(0xe60c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">brightness_4</i> &#x2014; material icon named "brightness 4 outlined".
  static const IconData brightness_4_outlined = IconData(0xe0a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">brightness_4</i> &#x2014; material icon named "brightness 4 rounded".
  static const IconData brightness_4_rounded = IconData(0xf0d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">brightness_4</i> &#x2014; material icon named "brightness 4 sharp".
  static const IconData brightness_4_sharp = IconData(0xeba2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">brightness_5</i> &#x2014; material icon named "brightness 5".
  static const IconData brightness_5 = IconData(0xe60d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">brightness_5</i> &#x2014; material icon named "brightness 5 outlined".
  static const IconData brightness_5_outlined = IconData(0xe0a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">brightness_5</i> &#x2014; material icon named "brightness 5 rounded".
  static const IconData brightness_5_rounded = IconData(0xf0d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">brightness_5</i> &#x2014; material icon named "brightness 5 sharp".
  static const IconData brightness_5_sharp = IconData(0xeba3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">brightness_6</i> &#x2014; material icon named "brightness 6".
  static const IconData brightness_6 = IconData(0xe60e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">brightness_6</i> &#x2014; material icon named "brightness 6 outlined".
  static const IconData brightness_6_outlined = IconData(0xe0a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">brightness_6</i> &#x2014; material icon named "brightness 6 rounded".
  static const IconData brightness_6_rounded = IconData(0xf0d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">brightness_6</i> &#x2014; material icon named "brightness 6 sharp".
  static const IconData brightness_6_sharp = IconData(0xeba4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">brightness_7</i> &#x2014; material icon named "brightness 7".
  static const IconData brightness_7 = IconData(0xe60f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">brightness_7</i> &#x2014; material icon named "brightness 7 outlined".
  static const IconData brightness_7_outlined = IconData(0xe0a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">brightness_7</i> &#x2014; material icon named "brightness 7 rounded".
  static const IconData brightness_7_rounded = IconData(0xf0d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">brightness_7</i> &#x2014; material icon named "brightness 7 sharp".
  static const IconData brightness_7_sharp = IconData(0xeba5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">brightness_auto</i> &#x2014; material icon named "brightness auto".
  static const IconData brightness_auto = IconData(0xe610, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">brightness_auto</i> &#x2014; material icon named "brightness auto outlined".
  static const IconData brightness_auto_outlined = IconData(0xe0a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">brightness_auto</i> &#x2014; material icon named "brightness auto rounded".
  static const IconData brightness_auto_rounded = IconData(0xf0d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">brightness_auto</i> &#x2014; material icon named "brightness auto sharp".
  static const IconData brightness_auto_sharp = IconData(0xeba6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">brightness_high</i> &#x2014; material icon named "brightness high".
  static const IconData brightness_high = IconData(0xe611, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">brightness_high</i> &#x2014; material icon named "brightness high outlined".
  static const IconData brightness_high_outlined = IconData(0xe0a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">brightness_high</i> &#x2014; material icon named "brightness high rounded".
  static const IconData brightness_high_rounded = IconData(0xf0d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">brightness_high</i> &#x2014; material icon named "brightness high sharp".
  static const IconData brightness_high_sharp = IconData(0xeba7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">brightness_low</i> &#x2014; material icon named "brightness low".
  static const IconData brightness_low = IconData(0xe612, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">brightness_low</i> &#x2014; material icon named "brightness low outlined".
  static const IconData brightness_low_outlined = IconData(0xe0a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">brightness_low</i> &#x2014; material icon named "brightness low rounded".
  static const IconData brightness_low_rounded = IconData(0xf0d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">brightness_low</i> &#x2014; material icon named "brightness low sharp".
  static const IconData brightness_low_sharp = IconData(0xeba8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">brightness_medium</i> &#x2014; material icon named "brightness medium".
  static const IconData brightness_medium = IconData(0xe613, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">brightness_medium</i> &#x2014; material icon named "brightness medium outlined".
  static const IconData brightness_medium_outlined = IconData(0xe0a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">brightness_medium</i> &#x2014; material icon named "brightness medium rounded".
  static const IconData brightness_medium_rounded = IconData(0xf0d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">brightness_medium</i> &#x2014; material icon named "brightness medium sharp".
  static const IconData brightness_medium_sharp = IconData(0xeba9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">broken_image</i> &#x2014; material icon named "broken image".
  static const IconData broken_image = IconData(0xe614, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">broken_image</i> &#x2014; material icon named "broken image outlined".
  static const IconData broken_image_outlined = IconData(0xe0aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">broken_image</i> &#x2014; material icon named "broken image rounded".
  static const IconData broken_image_rounded = IconData(0xf0d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">broken_image</i> &#x2014; material icon named "broken image sharp".
  static const IconData broken_image_sharp = IconData(0xebaa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">browser_not_supported</i> &#x2014; material icon named "browser not supported".
  static const IconData browser_not_supported = IconData(0xe615, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">browser_not_supported</i> &#x2014; material icon named "browser not supported outlined".
  static const IconData browser_not_supported_outlined = IconData(0xe0ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">browser_not_supported</i> &#x2014; material icon named "browser not supported rounded".
  static const IconData browser_not_supported_rounded = IconData(0xf0d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">browser_not_supported</i> &#x2014; material icon named "browser not supported sharp".
  static const IconData browser_not_supported_sharp = IconData(0xebab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">brunch_dining</i> &#x2014; material icon named "brunch dining".
  static const IconData brunch_dining = IconData(0xe616, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">brush</i> &#x2014; material icon named "brush".
  static const IconData brush = IconData(0xe617, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">brush</i> &#x2014; material icon named "brush outlined".
  static const IconData brush_outlined = IconData(0xe0ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">brush</i> &#x2014; material icon named "brush rounded".
  static const IconData brush_rounded = IconData(0xf0da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">brush</i> &#x2014; material icon named "brush sharp".
  static const IconData brush_sharp = IconData(0xebac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bubble_chart</i> &#x2014; material icon named "bubble chart".
  static const IconData bubble_chart = IconData(0xe618, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bubble_chart</i> &#x2014; material icon named "bubble chart outlined".
  static const IconData bubble_chart_outlined = IconData(0xe0ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bubble_chart</i> &#x2014; material icon named "bubble chart rounded".
  static const IconData bubble_chart_rounded = IconData(0xf0db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">bubble_chart</i> &#x2014; material icon named "bubble chart sharp".
  static const IconData bubble_chart_sharp = IconData(0xebad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bug_report</i> &#x2014; material icon named "bug report".
  static const IconData bug_report = IconData(0xe619, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bug_report</i> &#x2014; material icon named "bug report outlined".
  static const IconData bug_report_outlined = IconData(0xe0ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bug_report</i> &#x2014; material icon named "bug report rounded".
  static const IconData bug_report_rounded = IconData(0xf0dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">bug_report</i> &#x2014; material icon named "bug report sharp".
  static const IconData bug_report_sharp = IconData(0xebae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">build</i> &#x2014; material icon named "build".
  static const IconData build = IconData(0xe61a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">build_circle</i> &#x2014; material icon named "build circle".
  static const IconData build_circle = IconData(0xe61b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">build_circle</i> &#x2014; material icon named "build circle outlined".
  static const IconData build_circle_outlined = IconData(0xe0af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">build_circle</i> &#x2014; material icon named "build circle rounded".
  static const IconData build_circle_rounded = IconData(0xf0dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">build_circle</i> &#x2014; material icon named "build circle sharp".
  static const IconData build_circle_sharp = IconData(0xebaf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">build</i> &#x2014; material icon named "build outlined".
  static const IconData build_outlined = IconData(0xe0b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">build</i> &#x2014; material icon named "build rounded".
  static const IconData build_rounded = IconData(0xf0de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">build</i> &#x2014; material icon named "build sharp".
  static const IconData build_sharp = IconData(0xebb0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">burst_mode</i> &#x2014; material icon named "burst mode".
  static const IconData burst_mode = IconData(0xe61c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">burst_mode</i> &#x2014; material icon named "burst mode outlined".
  static const IconData burst_mode_outlined = IconData(0xe0b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">burst_mode</i> &#x2014; material icon named "burst mode rounded".
  static const IconData burst_mode_rounded = IconData(0xf0df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">burst_mode</i> &#x2014; material icon named "burst mode sharp".
  static const IconData burst_mode_sharp = IconData(0xebb1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">bus_alert</i> &#x2014; material icon named "bus alert".
  static const IconData bus_alert = IconData(0xe61d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">business</i> &#x2014; material icon named "business".
  static const IconData business = IconData(0xe61e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">business_center</i> &#x2014; material icon named "business center".
  static const IconData business_center = IconData(0xe61f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">business_center</i> &#x2014; material icon named "business center outlined".
  static const IconData business_center_outlined = IconData(0xe0b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">business_center</i> &#x2014; material icon named "business center rounded".
  static const IconData business_center_rounded = IconData(0xf0e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">business_center</i> &#x2014; material icon named "business center sharp".
  static const IconData business_center_sharp = IconData(0xebb2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">business</i> &#x2014; material icon named "business outlined".
  static const IconData business_outlined = IconData(0xe0b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">business</i> &#x2014; material icon named "business rounded".
  static const IconData business_rounded = IconData(0xf0e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">business</i> &#x2014; material icon named "business sharp".
  static const IconData business_sharp = IconData(0xebb3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cached</i> &#x2014; material icon named "cached".
  static const IconData cached = IconData(0xe620, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cached</i> &#x2014; material icon named "cached outlined".
  static const IconData cached_outlined = IconData(0xe0b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cached</i> &#x2014; material icon named "cached rounded".
  static const IconData cached_rounded = IconData(0xf0e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cached</i> &#x2014; material icon named "cached sharp".
  static const IconData cached_sharp = IconData(0xebb4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cake</i> &#x2014; material icon named "cake".
  static const IconData cake = IconData(0xe621, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cake</i> &#x2014; material icon named "cake outlined".
  static const IconData cake_outlined = IconData(0xe0b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cake</i> &#x2014; material icon named "cake rounded".
  static const IconData cake_rounded = IconData(0xf0e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cake</i> &#x2014; material icon named "cake sharp".
  static const IconData cake_sharp = IconData(0xebb5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">calculate</i> &#x2014; material icon named "calculate".
  static const IconData calculate = IconData(0xe622, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">calculate</i> &#x2014; material icon named "calculate outlined".
  static const IconData calculate_outlined = IconData(0xe0b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">calculate</i> &#x2014; material icon named "calculate rounded".
  static const IconData calculate_rounded = IconData(0xf0e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">calculate</i> &#x2014; material icon named "calculate sharp".
  static const IconData calculate_sharp = IconData(0xebb6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">calendar_today</i> &#x2014; material icon named "calendar today".
  static const IconData calendar_today = IconData(0xe623, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">calendar_today</i> &#x2014; material icon named "calendar today outlined".
  static const IconData calendar_today_outlined = IconData(0xe0b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">calendar_today</i> &#x2014; material icon named "calendar today rounded".
  static const IconData calendar_today_rounded = IconData(0xf0e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">calendar_today</i> &#x2014; material icon named "calendar today sharp".
  static const IconData calendar_today_sharp = IconData(0xebb7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">calendar_view_day</i> &#x2014; material icon named "calendar view day".
  static const IconData calendar_view_day = IconData(0xe624, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">calendar_view_day</i> &#x2014; material icon named "calendar view day outlined".
  static const IconData calendar_view_day_outlined = IconData(0xe0b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">calendar_view_day</i> &#x2014; material icon named "calendar view day rounded".
  static const IconData calendar_view_day_rounded = IconData(0xf0e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">calendar_view_day</i> &#x2014; material icon named "calendar view day sharp".
  static const IconData calendar_view_day_sharp = IconData(0xebb8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">call</i> &#x2014; material icon named "call".
  static const IconData call = IconData(0xe625, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">call_end</i> &#x2014; material icon named "call end".
  static const IconData call_end = IconData(0xe626, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">call_end</i> &#x2014; material icon named "call end outlined".
  static const IconData call_end_outlined = IconData(0xe0b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">call_end</i> &#x2014; material icon named "call end rounded".
  static const IconData call_end_rounded = IconData(0xf0e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">call_end</i> &#x2014; material icon named "call end sharp".
  static const IconData call_end_sharp = IconData(0xebb9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">call_made</i> &#x2014; material icon named "call made".
  static const IconData call_made = IconData(0xe627, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">call_made</i> &#x2014; material icon named "call made outlined".
  static const IconData call_made_outlined = IconData(0xe0ba, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">call_made</i> &#x2014; material icon named "call made rounded".
  static const IconData call_made_rounded = IconData(0xf0e8, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">call_made</i> &#x2014; material icon named "call made sharp".
  static const IconData call_made_sharp = IconData(0xebba, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">call_merge</i> &#x2014; material icon named "call merge".
  static const IconData call_merge = IconData(0xe628, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">call_merge</i> &#x2014; material icon named "call merge outlined".
  static const IconData call_merge_outlined = IconData(0xe0bb, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">call_merge</i> &#x2014; material icon named "call merge rounded".
  static const IconData call_merge_rounded = IconData(0xf0e9, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">call_merge</i> &#x2014; material icon named "call merge sharp".
  static const IconData call_merge_sharp = IconData(0xebbb, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">call_missed</i> &#x2014; material icon named "call missed".
  static const IconData call_missed = IconData(0xe629, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">call_missed_outgoing</i> &#x2014; material icon named "call missed outgoing".
  static const IconData call_missed_outgoing = IconData(0xe62a, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">call_missed_outgoing</i> &#x2014; material icon named "call missed outgoing outlined".
  static const IconData call_missed_outgoing_outlined = IconData(0xe0bc, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">call_missed_outgoing</i> &#x2014; material icon named "call missed outgoing rounded".
  static const IconData call_missed_outgoing_rounded = IconData(0xf0ea, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">call_missed_outgoing</i> &#x2014; material icon named "call missed outgoing sharp".
  static const IconData call_missed_outgoing_sharp = IconData(0xebbc, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">call_missed</i> &#x2014; material icon named "call missed outlined".
  static const IconData call_missed_outlined = IconData(0xe0bd, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">call_missed</i> &#x2014; material icon named "call missed rounded".
  static const IconData call_missed_rounded = IconData(0xf0eb, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">call_missed</i> &#x2014; material icon named "call missed sharp".
  static const IconData call_missed_sharp = IconData(0xebbd, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">call</i> &#x2014; material icon named "call outlined".
  static const IconData call_outlined = IconData(0xe0be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">call_received</i> &#x2014; material icon named "call received".
  static const IconData call_received = IconData(0xe62b, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">call_received</i> &#x2014; material icon named "call received outlined".
  static const IconData call_received_outlined = IconData(0xe0bf, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">call_received</i> &#x2014; material icon named "call received rounded".
  static const IconData call_received_rounded = IconData(0xf0ec, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">call_received</i> &#x2014; material icon named "call received sharp".
  static const IconData call_received_sharp = IconData(0xebbe, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">call</i> &#x2014; material icon named "call rounded".
  static const IconData call_rounded = IconData(0xf0ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">call</i> &#x2014; material icon named "call sharp".
  static const IconData call_sharp = IconData(0xebbf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">call_split</i> &#x2014; material icon named "call split".
  static const IconData call_split = IconData(0xe62c, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">call_split</i> &#x2014; material icon named "call split outlined".
  static const IconData call_split_outlined = IconData(0xe0c0, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">call_split</i> &#x2014; material icon named "call split rounded".
  static const IconData call_split_rounded = IconData(0xf0ee, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">call_split</i> &#x2014; material icon named "call split sharp".
  static const IconData call_split_sharp = IconData(0xebc0, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">call_to_action</i> &#x2014; material icon named "call to action".
  static const IconData call_to_action = IconData(0xe62d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">call_to_action</i> &#x2014; material icon named "call to action outlined".
  static const IconData call_to_action_outlined = IconData(0xe0c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">call_to_action</i> &#x2014; material icon named "call to action rounded".
  static const IconData call_to_action_rounded = IconData(0xf0ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">call_to_action</i> &#x2014; material icon named "call to action sharp".
  static const IconData call_to_action_sharp = IconData(0xebc1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">camera</i> &#x2014; material icon named "camera".
  static const IconData camera = IconData(0xe62e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">camera_alt</i> &#x2014; material icon named "camera alt".
  static const IconData camera_alt = IconData(0xe62f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">camera_alt</i> &#x2014; material icon named "camera alt outlined".
  static const IconData camera_alt_outlined = IconData(0xe0c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">camera_alt</i> &#x2014; material icon named "camera alt rounded".
  static const IconData camera_alt_rounded = IconData(0xf0f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">camera_alt</i> &#x2014; material icon named "camera alt sharp".
  static const IconData camera_alt_sharp = IconData(0xebc2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">camera_enhance</i> &#x2014; material icon named "camera enhance".
  static const IconData camera_enhance = IconData(0xe630, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">camera_enhance</i> &#x2014; material icon named "camera enhance outlined".
  static const IconData camera_enhance_outlined = IconData(0xe0c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">camera_enhance</i> &#x2014; material icon named "camera enhance rounded".
  static const IconData camera_enhance_rounded = IconData(0xf0f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">camera_enhance</i> &#x2014; material icon named "camera enhance sharp".
  static const IconData camera_enhance_sharp = IconData(0xebc3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">camera_front</i> &#x2014; material icon named "camera front".
  static const IconData camera_front = IconData(0xe631, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">camera_front</i> &#x2014; material icon named "camera front outlined".
  static const IconData camera_front_outlined = IconData(0xe0c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">camera_front</i> &#x2014; material icon named "camera front rounded".
  static const IconData camera_front_rounded = IconData(0xf0f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">camera_front</i> &#x2014; material icon named "camera front sharp".
  static const IconData camera_front_sharp = IconData(0xebc4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">camera</i> &#x2014; material icon named "camera outlined".
  static const IconData camera_outlined = IconData(0xe0c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">camera_rear</i> &#x2014; material icon named "camera rear".
  static const IconData camera_rear = IconData(0xe632, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">camera_rear</i> &#x2014; material icon named "camera rear outlined".
  static const IconData camera_rear_outlined = IconData(0xe0c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">camera_rear</i> &#x2014; material icon named "camera rear rounded".
  static const IconData camera_rear_rounded = IconData(0xf0f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">camera_rear</i> &#x2014; material icon named "camera rear sharp".
  static const IconData camera_rear_sharp = IconData(0xebc5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">camera_roll</i> &#x2014; material icon named "camera roll".
  static const IconData camera_roll = IconData(0xe633, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">camera_roll</i> &#x2014; material icon named "camera roll outlined".
  static const IconData camera_roll_outlined = IconData(0xe0c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">camera_roll</i> &#x2014; material icon named "camera roll rounded".
  static const IconData camera_roll_rounded = IconData(0xf0f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">camera_roll</i> &#x2014; material icon named "camera roll sharp".
  static const IconData camera_roll_sharp = IconData(0xebc6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">camera</i> &#x2014; material icon named "camera rounded".
  static const IconData camera_rounded = IconData(0xf0f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">camera</i> &#x2014; material icon named "camera sharp".
  static const IconData camera_sharp = IconData(0xebc7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">campaign</i> &#x2014; material icon named "campaign".
  static const IconData campaign = IconData(0xe634, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">campaign</i> &#x2014; material icon named "campaign outlined".
  static const IconData campaign_outlined = IconData(0xe0c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">campaign</i> &#x2014; material icon named "campaign rounded".
  static const IconData campaign_rounded = IconData(0xf0f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">campaign</i> &#x2014; material icon named "campaign sharp".
  static const IconData campaign_sharp = IconData(0xebc8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cancel</i> &#x2014; material icon named "cancel".
  static const IconData cancel = IconData(0xe635, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cancel</i> &#x2014; material icon named "cancel outlined".
  static const IconData cancel_outlined = IconData(0xe0c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cancel_presentation</i> &#x2014; material icon named "cancel presentation".
  static const IconData cancel_presentation = IconData(0xe636, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cancel_presentation</i> &#x2014; material icon named "cancel presentation outlined".
  static const IconData cancel_presentation_outlined = IconData(0xe0ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cancel_presentation</i> &#x2014; material icon named "cancel presentation rounded".
  static const IconData cancel_presentation_rounded = IconData(0xf0f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cancel_presentation</i> &#x2014; material icon named "cancel presentation sharp".
  static const IconData cancel_presentation_sharp = IconData(0xebc9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cancel</i> &#x2014; material icon named "cancel rounded".
  static const IconData cancel_rounded = IconData(0xf0f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cancel_schedule_send</i> &#x2014; material icon named "cancel schedule send".
  static const IconData cancel_schedule_send = IconData(0xe637, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cancel_schedule_send</i> &#x2014; material icon named "cancel schedule send outlined".
  static const IconData cancel_schedule_send_outlined = IconData(0xe0cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cancel_schedule_send</i> &#x2014; material icon named "cancel schedule send rounded".
  static const IconData cancel_schedule_send_rounded = IconData(0xf0f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cancel_schedule_send</i> &#x2014; material icon named "cancel schedule send sharp".
  static const IconData cancel_schedule_send_sharp = IconData(0xebca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cancel</i> &#x2014; material icon named "cancel sharp".
  static const IconData cancel_sharp = IconData(0xebcb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">car_rental</i> &#x2014; material icon named "car rental".
  static const IconData car_rental = IconData(0xe638, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">car_repair</i> &#x2014; material icon named "car repair".
  static const IconData car_repair = IconData(0xe639, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">card_giftcard</i> &#x2014; material icon named "card giftcard".
  static const IconData card_giftcard = IconData(0xe63a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">card_giftcard</i> &#x2014; material icon named "card giftcard outlined".
  static const IconData card_giftcard_outlined = IconData(0xe0cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">card_giftcard</i> &#x2014; material icon named "card giftcard rounded".
  static const IconData card_giftcard_rounded = IconData(0xf0fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">card_giftcard</i> &#x2014; material icon named "card giftcard sharp".
  static const IconData card_giftcard_sharp = IconData(0xebcc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">card_membership</i> &#x2014; material icon named "card membership".
  static const IconData card_membership = IconData(0xe63b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">card_membership</i> &#x2014; material icon named "card membership outlined".
  static const IconData card_membership_outlined = IconData(0xe0cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">card_membership</i> &#x2014; material icon named "card membership rounded".
  static const IconData card_membership_rounded = IconData(0xf0fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">card_membership</i> &#x2014; material icon named "card membership sharp".
  static const IconData card_membership_sharp = IconData(0xebcd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">card_travel</i> &#x2014; material icon named "card travel".
  static const IconData card_travel = IconData(0xe63c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">card_travel</i> &#x2014; material icon named "card travel outlined".
  static const IconData card_travel_outlined = IconData(0xe0ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">card_travel</i> &#x2014; material icon named "card travel rounded".
  static const IconData card_travel_rounded = IconData(0xf0fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">card_travel</i> &#x2014; material icon named "card travel sharp".
  static const IconData card_travel_sharp = IconData(0xebce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">carpenter</i> &#x2014; material icon named "carpenter".
  static const IconData carpenter = IconData(0xe63d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">carpenter</i> &#x2014; material icon named "carpenter outlined".
  static const IconData carpenter_outlined = IconData(0xe0cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">carpenter</i> &#x2014; material icon named "carpenter rounded".
  static const IconData carpenter_rounded = IconData(0xf0fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">carpenter</i> &#x2014; material icon named "carpenter sharp".
  static const IconData carpenter_sharp = IconData(0xebcf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cases</i> &#x2014; material icon named "cases".
  static const IconData cases = IconData(0xe63e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">casino</i> &#x2014; material icon named "casino".
  static const IconData casino = IconData(0xe63f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">casino</i> &#x2014; material icon named "casino outlined".
  static const IconData casino_outlined = IconData(0xe0d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">casino</i> &#x2014; material icon named "casino rounded".
  static const IconData casino_rounded = IconData(0xf0fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">casino</i> &#x2014; material icon named "casino sharp".
  static const IconData casino_sharp = IconData(0xebd0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cast</i> &#x2014; material icon named "cast".
  static const IconData cast = IconData(0xe640, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cast_connected</i> &#x2014; material icon named "cast connected".
  static const IconData cast_connected = IconData(0xe641, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cast_connected</i> &#x2014; material icon named "cast connected outlined".
  static const IconData cast_connected_outlined = IconData(0xe0d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cast_connected</i> &#x2014; material icon named "cast connected rounded".
  static const IconData cast_connected_rounded = IconData(0xf0ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cast_connected</i> &#x2014; material icon named "cast connected sharp".
  static const IconData cast_connected_sharp = IconData(0xebd1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cast_for_education</i> &#x2014; material icon named "cast for education".
  static const IconData cast_for_education = IconData(0xe642, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cast_for_education</i> &#x2014; material icon named "cast for education outlined".
  static const IconData cast_for_education_outlined = IconData(0xe0d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cast_for_education</i> &#x2014; material icon named "cast for education rounded".
  static const IconData cast_for_education_rounded = IconData(0xf100, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cast_for_education</i> &#x2014; material icon named "cast for education sharp".
  static const IconData cast_for_education_sharp = IconData(0xebd2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cast</i> &#x2014; material icon named "cast outlined".
  static const IconData cast_outlined = IconData(0xe0d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cast</i> &#x2014; material icon named "cast rounded".
  static const IconData cast_rounded = IconData(0xf101, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cast</i> &#x2014; material icon named "cast sharp".
  static const IconData cast_sharp = IconData(0xebd3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">category</i> &#x2014; material icon named "category".
  static const IconData category = IconData(0xe643, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">category</i> &#x2014; material icon named "category outlined".
  static const IconData category_outlined = IconData(0xe0d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">category</i> &#x2014; material icon named "category rounded".
  static const IconData category_rounded = IconData(0xf102, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">category</i> &#x2014; material icon named "category sharp".
  static const IconData category_sharp = IconData(0xebd4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">celebration</i> &#x2014; material icon named "celebration".
  static const IconData celebration = IconData(0xe644, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">center_focus_strong</i> &#x2014; material icon named "center focus strong".
  static const IconData center_focus_strong = IconData(0xe645, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">center_focus_strong</i> &#x2014; material icon named "center focus strong outlined".
  static const IconData center_focus_strong_outlined = IconData(0xe0d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">center_focus_strong</i> &#x2014; material icon named "center focus strong rounded".
  static const IconData center_focus_strong_rounded = IconData(0xf103, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">center_focus_strong</i> &#x2014; material icon named "center focus strong sharp".
  static const IconData center_focus_strong_sharp = IconData(0xebd5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">center_focus_weak</i> &#x2014; material icon named "center focus weak".
  static const IconData center_focus_weak = IconData(0xe646, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">center_focus_weak</i> &#x2014; material icon named "center focus weak outlined".
  static const IconData center_focus_weak_outlined = IconData(0xe0d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">center_focus_weak</i> &#x2014; material icon named "center focus weak rounded".
  static const IconData center_focus_weak_rounded = IconData(0xf104, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">center_focus_weak</i> &#x2014; material icon named "center focus weak sharp".
  static const IconData center_focus_weak_sharp = IconData(0xebd6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">change_history</i> &#x2014; material icon named "change history".
  static const IconData change_history = IconData(0xe647, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">change_history</i> &#x2014; material icon named "change history outlined".
  static const IconData change_history_outlined = IconData(0xe0d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">change_history</i> &#x2014; material icon named "change history rounded".
  static const IconData change_history_rounded = IconData(0xf105, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">change_history</i> &#x2014; material icon named "change history sharp".
  static const IconData change_history_sharp = IconData(0xebd7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">charging_station</i> &#x2014; material icon named "charging station".
  static const IconData charging_station = IconData(0xe648, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">charging_station</i> &#x2014; material icon named "charging station outlined".
  static const IconData charging_station_outlined = IconData(0xe0d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">charging_station</i> &#x2014; material icon named "charging station rounded".
  static const IconData charging_station_rounded = IconData(0xf106, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">charging_station</i> &#x2014; material icon named "charging station sharp".
  static const IconData charging_station_sharp = IconData(0xebd8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">chat</i> &#x2014; material icon named "chat".
  static const IconData chat = IconData(0xe649, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">chat_bubble</i> &#x2014; material icon named "chat bubble".
  static const IconData chat_bubble = IconData(0xe64a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">chat_bubble_outline</i> &#x2014; material icon named "chat bubble outline".
  static const IconData chat_bubble_outline = IconData(0xe64b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">chat_bubble_outline</i> &#x2014; material icon named "chat bubble outline outlined".
  static const IconData chat_bubble_outline_outlined = IconData(0xe0d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">chat_bubble_outline</i> &#x2014; material icon named "chat bubble outline rounded".
  static const IconData chat_bubble_outline_rounded = IconData(0xf107, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">chat_bubble_outline</i> &#x2014; material icon named "chat bubble outline sharp".
  static const IconData chat_bubble_outline_sharp = IconData(0xebd9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">chat_bubble</i> &#x2014; material icon named "chat bubble outlined".
  static const IconData chat_bubble_outlined = IconData(0xe0da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">chat_bubble</i> &#x2014; material icon named "chat bubble rounded".
  static const IconData chat_bubble_rounded = IconData(0xf108, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">chat_bubble</i> &#x2014; material icon named "chat bubble sharp".
  static const IconData chat_bubble_sharp = IconData(0xebda, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">chat</i> &#x2014; material icon named "chat outlined".
  static const IconData chat_outlined = IconData(0xe0db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">chat</i> &#x2014; material icon named "chat rounded".
  static const IconData chat_rounded = IconData(0xf109, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">chat</i> &#x2014; material icon named "chat sharp".
  static const IconData chat_sharp = IconData(0xebdb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">check</i> &#x2014; material icon named "check".
  static const IconData check = IconData(0xe64c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">check_box</i> &#x2014; material icon named "check box".
  static const IconData check_box = IconData(0xe64d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">check_box_outline_blank</i> &#x2014; material icon named "check box outline blank".
  static const IconData check_box_outline_blank = IconData(0xe64e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">check_box_outline_blank</i> &#x2014; material icon named "check box outline blank outlined".
  static const IconData check_box_outline_blank_outlined = IconData(0xe0dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">check_box_outline_blank</i> &#x2014; material icon named "check box outline blank rounded".
  static const IconData check_box_outline_blank_rounded = IconData(0xf10a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">check_box_outline_blank</i> &#x2014; material icon named "check box outline blank sharp".
  static const IconData check_box_outline_blank_sharp = IconData(0xebdc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">check_box</i> &#x2014; material icon named "check box outlined".
  static const IconData check_box_outlined = IconData(0xe0dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">check_box</i> &#x2014; material icon named "check box rounded".
  static const IconData check_box_rounded = IconData(0xf10b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">check_box</i> &#x2014; material icon named "check box sharp".
  static const IconData check_box_sharp = IconData(0xebdd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">check_circle</i> &#x2014; material icon named "check circle".
  static const IconData check_circle = IconData(0xe64f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">check_circle_outline</i> &#x2014; material icon named "check circle outline".
  static const IconData check_circle_outline = IconData(0xe650, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">check_circle_outline</i> &#x2014; material icon named "check circle outline outlined".
  static const IconData check_circle_outline_outlined = IconData(0xe0de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">check_circle_outline</i> &#x2014; material icon named "check circle outline rounded".
  static const IconData check_circle_outline_rounded = IconData(0xf10c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">check_circle_outline</i> &#x2014; material icon named "check circle outline sharp".
  static const IconData check_circle_outline_sharp = IconData(0xebde, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">check_circle</i> &#x2014; material icon named "check circle outlined".
  static const IconData check_circle_outlined = IconData(0xe0df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">check_circle</i> &#x2014; material icon named "check circle rounded".
  static const IconData check_circle_rounded = IconData(0xf10d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">check_circle</i> &#x2014; material icon named "check circle sharp".
  static const IconData check_circle_sharp = IconData(0xebdf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">check</i> &#x2014; material icon named "check outlined".
  static const IconData check_outlined = IconData(0xe0e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">check</i> &#x2014; material icon named "check rounded".
  static const IconData check_rounded = IconData(0xf10e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">check</i> &#x2014; material icon named "check sharp".
  static const IconData check_sharp = IconData(0xebe0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">checkroom</i> &#x2014; material icon named "checkroom".
  static const IconData checkroom = IconData(0xe651, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">checkroom</i> &#x2014; material icon named "checkroom outlined".
  static const IconData checkroom_outlined = IconData(0xe0e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">checkroom</i> &#x2014; material icon named "checkroom rounded".
  static const IconData checkroom_rounded = IconData(0xf10f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">checkroom</i> &#x2014; material icon named "checkroom sharp".
  static const IconData checkroom_sharp = IconData(0xebe1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">chevron_left</i> &#x2014; material icon named "chevron left".
  static const IconData chevron_left = IconData(0xe652, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">chevron_left</i> &#x2014; material icon named "chevron left outlined".
  static const IconData chevron_left_outlined = IconData(0xe0e2, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">chevron_left</i> &#x2014; material icon named "chevron left rounded".
  static const IconData chevron_left_rounded = IconData(0xf110, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">chevron_left</i> &#x2014; material icon named "chevron left sharp".
  static const IconData chevron_left_sharp = IconData(0xebe2, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">chevron_right</i> &#x2014; material icon named "chevron right".
  static const IconData chevron_right = IconData(0xe653, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">chevron_right</i> &#x2014; material icon named "chevron right outlined".
  static const IconData chevron_right_outlined = IconData(0xe0e3, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">chevron_right</i> &#x2014; material icon named "chevron right rounded".
  static const IconData chevron_right_rounded = IconData(0xf111, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">chevron_right</i> &#x2014; material icon named "chevron right sharp".
  static const IconData chevron_right_sharp = IconData(0xebe3, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">child_care</i> &#x2014; material icon named "child care".
  static const IconData child_care = IconData(0xe654, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">child_care</i> &#x2014; material icon named "child care outlined".
  static const IconData child_care_outlined = IconData(0xe0e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">child_care</i> &#x2014; material icon named "child care rounded".
  static const IconData child_care_rounded = IconData(0xf112, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">child_care</i> &#x2014; material icon named "child care sharp".
  static const IconData child_care_sharp = IconData(0xebe4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">child_friendly</i> &#x2014; material icon named "child friendly".
  static const IconData child_friendly = IconData(0xe655, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">child_friendly</i> &#x2014; material icon named "child friendly outlined".
  static const IconData child_friendly_outlined = IconData(0xe0e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">child_friendly</i> &#x2014; material icon named "child friendly rounded".
  static const IconData child_friendly_rounded = IconData(0xf113, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">child_friendly</i> &#x2014; material icon named "child friendly sharp".
  static const IconData child_friendly_sharp = IconData(0xebe5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">chrome_reader_mode</i> &#x2014; material icon named "chrome reader mode".
  static const IconData chrome_reader_mode = IconData(0xe656, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">chrome_reader_mode</i> &#x2014; material icon named "chrome reader mode outlined".
  static const IconData chrome_reader_mode_outlined = IconData(0xe0e6, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">chrome_reader_mode</i> &#x2014; material icon named "chrome reader mode rounded".
  static const IconData chrome_reader_mode_rounded = IconData(0xf114, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">chrome_reader_mode</i> &#x2014; material icon named "chrome reader mode sharp".
  static const IconData chrome_reader_mode_sharp = IconData(0xebe6, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">circle</i> &#x2014; material icon named "circle".
  static const IconData circle = IconData(0xe657, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">circle_notifications</i> &#x2014; material icon named "circle notifications".
  static const IconData circle_notifications = IconData(0xe658, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">class</i> &#x2014; material icon named "class".
  static const IconData class_ = IconData(0xe659, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">class</i> &#x2014; material icon named "class outlined".
  static const IconData class__outlined = IconData(0xe0e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">class</i> &#x2014; material icon named "class rounded".
  static const IconData class__rounded = IconData(0xf115, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">class</i> &#x2014; material icon named "class sharp".
  static const IconData class__sharp = IconData(0xebe7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">clean_hands</i> &#x2014; material icon named "clean hands".
  static const IconData clean_hands = IconData(0xe65a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">clean_hands</i> &#x2014; material icon named "clean hands outlined".
  static const IconData clean_hands_outlined = IconData(0xe0e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">clean_hands</i> &#x2014; material icon named "clean hands rounded".
  static const IconData clean_hands_rounded = IconData(0xf116, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">clean_hands</i> &#x2014; material icon named "clean hands sharp".
  static const IconData clean_hands_sharp = IconData(0xebe8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cleaning_services</i> &#x2014; material icon named "cleaning services".
  static const IconData cleaning_services = IconData(0xe65b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cleaning_services</i> &#x2014; material icon named "cleaning services outlined".
  static const IconData cleaning_services_outlined = IconData(0xe0e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cleaning_services</i> &#x2014; material icon named "cleaning services rounded".
  static const IconData cleaning_services_rounded = IconData(0xf117, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cleaning_services</i> &#x2014; material icon named "cleaning services sharp".
  static const IconData cleaning_services_sharp = IconData(0xebe9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">clear</i> &#x2014; material icon named "clear".
  static const IconData clear = IconData(0xe65c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">clear_all</i> &#x2014; material icon named "clear all".
  static const IconData clear_all = IconData(0xe65d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">clear_all</i> &#x2014; material icon named "clear all outlined".
  static const IconData clear_all_outlined = IconData(0xe0ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">clear_all</i> &#x2014; material icon named "clear all rounded".
  static const IconData clear_all_rounded = IconData(0xf118, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">clear_all</i> &#x2014; material icon named "clear all sharp".
  static const IconData clear_all_sharp = IconData(0xebea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">clear</i> &#x2014; material icon named "clear outlined".
  static const IconData clear_outlined = IconData(0xe0eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">clear</i> &#x2014; material icon named "clear rounded".
  static const IconData clear_rounded = IconData(0xf119, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">clear</i> &#x2014; material icon named "clear sharp".
  static const IconData clear_sharp = IconData(0xebeb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">close</i> &#x2014; material icon named "close".
  static const IconData close = IconData(0xe65e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">close_fullscreen</i> &#x2014; material icon named "close fullscreen".
  static const IconData close_fullscreen = IconData(0xe65f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">close_fullscreen</i> &#x2014; material icon named "close fullscreen outlined".
  static const IconData close_fullscreen_outlined = IconData(0xe0ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">close_fullscreen</i> &#x2014; material icon named "close fullscreen rounded".
  static const IconData close_fullscreen_rounded = IconData(0xf11a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">close_fullscreen</i> &#x2014; material icon named "close fullscreen sharp".
  static const IconData close_fullscreen_sharp = IconData(0xebec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">close</i> &#x2014; material icon named "close outlined".
  static const IconData close_outlined = IconData(0xe0ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">close</i> &#x2014; material icon named "close rounded".
  static const IconData close_rounded = IconData(0xf11b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">close</i> &#x2014; material icon named "close sharp".
  static const IconData close_sharp = IconData(0xebed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">closed_caption</i> &#x2014; material icon named "closed caption".
  static const IconData closed_caption = IconData(0xe660, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">closed_caption_disabled</i> &#x2014; material icon named "closed caption disabled".
  static const IconData closed_caption_disabled = IconData(0xe661, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">closed_caption_disabled</i> &#x2014; material icon named "closed caption disabled outlined".
  static const IconData closed_caption_disabled_outlined = IconData(0xe0ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">closed_caption_disabled</i> &#x2014; material icon named "closed caption disabled rounded".
  static const IconData closed_caption_disabled_rounded = IconData(0xf11c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">closed_caption_disabled</i> &#x2014; material icon named "closed caption disabled sharp".
  static const IconData closed_caption_disabled_sharp = IconData(0xebee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">closed_caption_off</i> &#x2014; material icon named "closed caption off".
  static const IconData closed_caption_off = IconData(0xe662, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">closed_caption</i> &#x2014; material icon named "closed caption outlined".
  static const IconData closed_caption_outlined = IconData(0xe0ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">closed_caption</i> &#x2014; material icon named "closed caption rounded".
  static const IconData closed_caption_rounded = IconData(0xf11d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">closed_caption</i> &#x2014; material icon named "closed caption sharp".
  static const IconData closed_caption_sharp = IconData(0xebef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cloud</i> &#x2014; material icon named "cloud".
  static const IconData cloud = IconData(0xe663, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cloud_circle</i> &#x2014; material icon named "cloud circle".
  static const IconData cloud_circle = IconData(0xe664, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cloud_circle</i> &#x2014; material icon named "cloud circle outlined".
  static const IconData cloud_circle_outlined = IconData(0xe0f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cloud_circle</i> &#x2014; material icon named "cloud circle rounded".
  static const IconData cloud_circle_rounded = IconData(0xf11e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cloud_circle</i> &#x2014; material icon named "cloud circle sharp".
  static const IconData cloud_circle_sharp = IconData(0xebf0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cloud_done</i> &#x2014; material icon named "cloud done".
  static const IconData cloud_done = IconData(0xe665, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cloud_done</i> &#x2014; material icon named "cloud done outlined".
  static const IconData cloud_done_outlined = IconData(0xe0f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cloud_done</i> &#x2014; material icon named "cloud done rounded".
  static const IconData cloud_done_rounded = IconData(0xf11f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cloud_done</i> &#x2014; material icon named "cloud done sharp".
  static const IconData cloud_done_sharp = IconData(0xebf1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cloud_download</i> &#x2014; material icon named "cloud download".
  static const IconData cloud_download = IconData(0xe666, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cloud_download</i> &#x2014; material icon named "cloud download outlined".
  static const IconData cloud_download_outlined = IconData(0xe0f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cloud_download</i> &#x2014; material icon named "cloud download rounded".
  static const IconData cloud_download_rounded = IconData(0xf120, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cloud_download</i> &#x2014; material icon named "cloud download sharp".
  static const IconData cloud_download_sharp = IconData(0xebf2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cloud_off</i> &#x2014; material icon named "cloud off".
  static const IconData cloud_off = IconData(0xe667, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cloud_off</i> &#x2014; material icon named "cloud off outlined".
  static const IconData cloud_off_outlined = IconData(0xe0f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cloud_off</i> &#x2014; material icon named "cloud off rounded".
  static const IconData cloud_off_rounded = IconData(0xf121, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cloud_off</i> &#x2014; material icon named "cloud off sharp".
  static const IconData cloud_off_sharp = IconData(0xebf3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cloud</i> &#x2014; material icon named "cloud outlined".
  static const IconData cloud_outlined = IconData(0xe0f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cloud_queue</i> &#x2014; material icon named "cloud queue".
  static const IconData cloud_queue = IconData(0xe668, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cloud_queue</i> &#x2014; material icon named "cloud queue outlined".
  static const IconData cloud_queue_outlined = IconData(0xe0f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cloud_queue</i> &#x2014; material icon named "cloud queue rounded".
  static const IconData cloud_queue_rounded = IconData(0xf122, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cloud_queue</i> &#x2014; material icon named "cloud queue sharp".
  static const IconData cloud_queue_sharp = IconData(0xebf4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cloud</i> &#x2014; material icon named "cloud rounded".
  static const IconData cloud_rounded = IconData(0xf123, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cloud</i> &#x2014; material icon named "cloud sharp".
  static const IconData cloud_sharp = IconData(0xebf5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cloud_upload</i> &#x2014; material icon named "cloud upload".
  static const IconData cloud_upload = IconData(0xe669, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cloud_upload</i> &#x2014; material icon named "cloud upload outlined".
  static const IconData cloud_upload_outlined = IconData(0xe0f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cloud_upload</i> &#x2014; material icon named "cloud upload rounded".
  static const IconData cloud_upload_rounded = IconData(0xf124, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cloud_upload</i> &#x2014; material icon named "cloud upload sharp".
  static const IconData cloud_upload_sharp = IconData(0xebf6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">code</i> &#x2014; material icon named "code".
  static const IconData code = IconData(0xe66a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">code</i> &#x2014; material icon named "code outlined".
  static const IconData code_outlined = IconData(0xe0f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">code</i> &#x2014; material icon named "code rounded".
  static const IconData code_rounded = IconData(0xf125, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">code</i> &#x2014; material icon named "code sharp".
  static const IconData code_sharp = IconData(0xebf7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">collections</i> &#x2014; material icon named "collections".
  static const IconData collections = IconData(0xe66b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">collections_bookmark</i> &#x2014; material icon named "collections bookmark".
  static const IconData collections_bookmark = IconData(0xe66c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">collections_bookmark</i> &#x2014; material icon named "collections bookmark outlined".
  static const IconData collections_bookmark_outlined = IconData(0xe0f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">collections_bookmark</i> &#x2014; material icon named "collections bookmark rounded".
  static const IconData collections_bookmark_rounded = IconData(0xf126, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">collections_bookmark</i> &#x2014; material icon named "collections bookmark sharp".
  static const IconData collections_bookmark_sharp = IconData(0xebf8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">collections</i> &#x2014; material icon named "collections outlined".
  static const IconData collections_outlined = IconData(0xe0f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">collections</i> &#x2014; material icon named "collections rounded".
  static const IconData collections_rounded = IconData(0xf127, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">collections</i> &#x2014; material icon named "collections sharp".
  static const IconData collections_sharp = IconData(0xebf9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">color_lens</i> &#x2014; material icon named "color lens".
  static const IconData color_lens = IconData(0xe66d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">color_lens</i> &#x2014; material icon named "color lens outlined".
  static const IconData color_lens_outlined = IconData(0xe0fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">color_lens</i> &#x2014; material icon named "color lens rounded".
  static const IconData color_lens_rounded = IconData(0xf128, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">color_lens</i> &#x2014; material icon named "color lens sharp".
  static const IconData color_lens_sharp = IconData(0xebfa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">colorize</i> &#x2014; material icon named "colorize".
  static const IconData colorize = IconData(0xe66e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">colorize</i> &#x2014; material icon named "colorize outlined".
  static const IconData colorize_outlined = IconData(0xe0fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">colorize</i> &#x2014; material icon named "colorize rounded".
  static const IconData colorize_rounded = IconData(0xf129, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">colorize</i> &#x2014; material icon named "colorize sharp".
  static const IconData colorize_sharp = IconData(0xebfb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">comment</i> &#x2014; material icon named "comment".
  static const IconData comment = IconData(0xe66f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">comment_bank</i> &#x2014; material icon named "comment bank".
  static const IconData comment_bank = IconData(0xe670, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">comment_bank</i> &#x2014; material icon named "comment bank outlined".
  static const IconData comment_bank_outlined = IconData(0xe0fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">comment_bank</i> &#x2014; material icon named "comment bank rounded".
  static const IconData comment_bank_rounded = IconData(0xf12a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">comment_bank</i> &#x2014; material icon named "comment bank sharp".
  static const IconData comment_bank_sharp = IconData(0xebfc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">comment</i> &#x2014; material icon named "comment outlined".
  static const IconData comment_outlined = IconData(0xe0fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">comment</i> &#x2014; material icon named "comment rounded".
  static const IconData comment_rounded = IconData(0xf12b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">comment</i> &#x2014; material icon named "comment sharp".
  static const IconData comment_sharp = IconData(0xebfd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">commute</i> &#x2014; material icon named "commute".
  static const IconData commute = IconData(0xe671, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">commute</i> &#x2014; material icon named "commute outlined".
  static const IconData commute_outlined = IconData(0xe0fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">commute</i> &#x2014; material icon named "commute rounded".
  static const IconData commute_rounded = IconData(0xf12c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">commute</i> &#x2014; material icon named "commute sharp".
  static const IconData commute_sharp = IconData(0xebfe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">compare</i> &#x2014; material icon named "compare".
  static const IconData compare = IconData(0xe672, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">compare_arrows</i> &#x2014; material icon named "compare arrows".
  static const IconData compare_arrows = IconData(0xe673, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">compare_arrows</i> &#x2014; material icon named "compare arrows outlined".
  static const IconData compare_arrows_outlined = IconData(0xe0ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">compare_arrows</i> &#x2014; material icon named "compare arrows rounded".
  static const IconData compare_arrows_rounded = IconData(0xf12d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">compare_arrows</i> &#x2014; material icon named "compare arrows sharp".
  static const IconData compare_arrows_sharp = IconData(0xebff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">compare</i> &#x2014; material icon named "compare outlined".
  static const IconData compare_outlined = IconData(0xe100, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">compare</i> &#x2014; material icon named "compare rounded".
  static const IconData compare_rounded = IconData(0xf12e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">compare</i> &#x2014; material icon named "compare sharp".
  static const IconData compare_sharp = IconData(0xec00, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">compass_calibration</i> &#x2014; material icon named "compass calibration".
  static const IconData compass_calibration = IconData(0xe674, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">compass_calibration</i> &#x2014; material icon named "compass calibration outlined".
  static const IconData compass_calibration_outlined = IconData(0xe101, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">compass_calibration</i> &#x2014; material icon named "compass calibration rounded".
  static const IconData compass_calibration_rounded = IconData(0xf12f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">compass_calibration</i> &#x2014; material icon named "compass calibration sharp".
  static const IconData compass_calibration_sharp = IconData(0xec01, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">compress</i> &#x2014; material icon named "compress".
  static const IconData compress = IconData(0xe675, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">computer</i> &#x2014; material icon named "computer".
  static const IconData computer = IconData(0xe676, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">computer</i> &#x2014; material icon named "computer outlined".
  static const IconData computer_outlined = IconData(0xe102, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">computer</i> &#x2014; material icon named "computer rounded".
  static const IconData computer_rounded = IconData(0xf130, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">computer</i> &#x2014; material icon named "computer sharp".
  static const IconData computer_sharp = IconData(0xec02, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">confirmation_num</i> &#x2014; material icon named "confirmation num".
  static const IconData confirmation_num = IconData(0xe677, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">confirmation_num</i> &#x2014; material icon named "confirmation num outlined".
  static const IconData confirmation_num_outlined = IconData(0xe103, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">confirmation_num</i> &#x2014; material icon named "confirmation num rounded".
  static const IconData confirmation_num_rounded = IconData(0xf131, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">confirmation_num</i> &#x2014; material icon named "confirmation num sharp".
  static const IconData confirmation_num_sharp = IconData(0xec03, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">confirmation_number</i> &#x2014; material icon named "confirmation number".
  static const IconData confirmation_number = IconData(0xe677, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">confirmation_number</i> &#x2014; material icon named "confirmation number outlined".
  static const IconData confirmation_number_outlined = IconData(0xe103, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">confirmation_number</i> &#x2014; material icon named "confirmation number rounded".
  static const IconData confirmation_number_rounded = IconData(0xf131, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">confirmation_number</i> &#x2014; material icon named "confirmation number sharp".
  static const IconData confirmation_number_sharp = IconData(0xec03, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">connect_without_contact</i> &#x2014; material icon named "connect without contact".
  static const IconData connect_without_contact = IconData(0xe678, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">connect_without_contact</i> &#x2014; material icon named "connect without contact outlined".
  static const IconData connect_without_contact_outlined = IconData(0xe104, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">connect_without_contact</i> &#x2014; material icon named "connect without contact rounded".
  static const IconData connect_without_contact_rounded = IconData(0xf132, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">connect_without_contact</i> &#x2014; material icon named "connect without contact sharp".
  static const IconData connect_without_contact_sharp = IconData(0xec04, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">connected_tv</i> &#x2014; material icon named "connected tv".
  static const IconData connected_tv = IconData(0xe679, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">construction</i> &#x2014; material icon named "construction".
  static const IconData construction = IconData(0xe67a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">construction</i> &#x2014; material icon named "construction outlined".
  static const IconData construction_outlined = IconData(0xe105, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">construction</i> &#x2014; material icon named "construction rounded".
  static const IconData construction_rounded = IconData(0xf133, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">construction</i> &#x2014; material icon named "construction sharp".
  static const IconData construction_sharp = IconData(0xec05, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">contact_mail</i> &#x2014; material icon named "contact mail".
  static const IconData contact_mail = IconData(0xe67b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">contact_mail</i> &#x2014; material icon named "contact mail outlined".
  static const IconData contact_mail_outlined = IconData(0xe106, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">contact_mail</i> &#x2014; material icon named "contact mail rounded".
  static const IconData contact_mail_rounded = IconData(0xf134, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">contact_mail</i> &#x2014; material icon named "contact mail sharp".
  static const IconData contact_mail_sharp = IconData(0xec06, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">contact_page</i> &#x2014; material icon named "contact page".
  static const IconData contact_page = IconData(0xe67c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">contact_page</i> &#x2014; material icon named "contact page outlined".
  static const IconData contact_page_outlined = IconData(0xe107, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">contact_page</i> &#x2014; material icon named "contact page rounded".
  static const IconData contact_page_rounded = IconData(0xf135, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">contact_page</i> &#x2014; material icon named "contact page sharp".
  static const IconData contact_page_sharp = IconData(0xec07, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">contact_phone</i> &#x2014; material icon named "contact phone".
  static const IconData contact_phone = IconData(0xe67d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">contact_phone</i> &#x2014; material icon named "contact phone outlined".
  static const IconData contact_phone_outlined = IconData(0xe108, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">contact_phone</i> &#x2014; material icon named "contact phone rounded".
  static const IconData contact_phone_rounded = IconData(0xf136, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">contact_phone</i> &#x2014; material icon named "contact phone sharp".
  static const IconData contact_phone_sharp = IconData(0xec08, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">contact_support</i> &#x2014; material icon named "contact support".
  static const IconData contact_support = IconData(0xe67e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">contact_support</i> &#x2014; material icon named "contact support outlined".
  static const IconData contact_support_outlined = IconData(0xe109, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">contact_support</i> &#x2014; material icon named "contact support rounded".
  static const IconData contact_support_rounded = IconData(0xf137, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">contact_support</i> &#x2014; material icon named "contact support sharp".
  static const IconData contact_support_sharp = IconData(0xec09, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">contactless</i> &#x2014; material icon named "contactless".
  static const IconData contactless = IconData(0xe67f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">contactless</i> &#x2014; material icon named "contactless outlined".
  static const IconData contactless_outlined = IconData(0xe10a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">contactless</i> &#x2014; material icon named "contactless rounded".
  static const IconData contactless_rounded = IconData(0xf138, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">contactless</i> &#x2014; material icon named "contactless sharp".
  static const IconData contactless_sharp = IconData(0xec0a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">contacts</i> &#x2014; material icon named "contacts".
  static const IconData contacts = IconData(0xe680, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">contacts</i> &#x2014; material icon named "contacts outlined".
  static const IconData contacts_outlined = IconData(0xe10b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">contacts</i> &#x2014; material icon named "contacts rounded".
  static const IconData contacts_rounded = IconData(0xf139, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">contacts</i> &#x2014; material icon named "contacts sharp".
  static const IconData contacts_sharp = IconData(0xec0b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">content_copy</i> &#x2014; material icon named "content copy".
  static const IconData content_copy = IconData(0xe681, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">content_copy</i> &#x2014; material icon named "content copy outlined".
  static const IconData content_copy_outlined = IconData(0xe10c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">content_copy</i> &#x2014; material icon named "content copy rounded".
  static const IconData content_copy_rounded = IconData(0xf13a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">content_copy</i> &#x2014; material icon named "content copy sharp".
  static const IconData content_copy_sharp = IconData(0xec0c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">content_cut</i> &#x2014; material icon named "content cut".
  static const IconData content_cut = IconData(0xe682, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">content_cut</i> &#x2014; material icon named "content cut outlined".
  static const IconData content_cut_outlined = IconData(0xe10d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">content_cut</i> &#x2014; material icon named "content cut rounded".
  static const IconData content_cut_rounded = IconData(0xf13b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">content_cut</i> &#x2014; material icon named "content cut sharp".
  static const IconData content_cut_sharp = IconData(0xec0d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">content_paste</i> &#x2014; material icon named "content paste".
  static const IconData content_paste = IconData(0xe683, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">content_paste</i> &#x2014; material icon named "content paste outlined".
  static const IconData content_paste_outlined = IconData(0xe10e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">content_paste</i> &#x2014; material icon named "content paste rounded".
  static const IconData content_paste_rounded = IconData(0xf13c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">content_paste</i> &#x2014; material icon named "content paste sharp".
  static const IconData content_paste_sharp = IconData(0xec0e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">control_camera</i> &#x2014; material icon named "control camera".
  static const IconData control_camera = IconData(0xe684, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">control_camera</i> &#x2014; material icon named "control camera outlined".
  static const IconData control_camera_outlined = IconData(0xe10f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">control_camera</i> &#x2014; material icon named "control camera rounded".
  static const IconData control_camera_rounded = IconData(0xf13d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">control_camera</i> &#x2014; material icon named "control camera sharp".
  static const IconData control_camera_sharp = IconData(0xec0f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">control_point</i> &#x2014; material icon named "control point".
  static const IconData control_point = IconData(0xe685, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">control_point_duplicate</i> &#x2014; material icon named "control point duplicate".
  static const IconData control_point_duplicate = IconData(0xe686, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">control_point_duplicate</i> &#x2014; material icon named "control point duplicate outlined".
  static const IconData control_point_duplicate_outlined = IconData(0xe110, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">control_point_duplicate</i> &#x2014; material icon named "control point duplicate rounded".
  static const IconData control_point_duplicate_rounded = IconData(0xf13e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">control_point_duplicate</i> &#x2014; material icon named "control point duplicate sharp".
  static const IconData control_point_duplicate_sharp = IconData(0xec10, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">control_point</i> &#x2014; material icon named "control point outlined".
  static const IconData control_point_outlined = IconData(0xe111, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">control_point</i> &#x2014; material icon named "control point rounded".
  static const IconData control_point_rounded = IconData(0xf13f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">control_point</i> &#x2014; material icon named "control point sharp".
  static const IconData control_point_sharp = IconData(0xec11, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">copy</i> &#x2014; material icon named "copy".
  static const IconData copy = IconData(0xe681, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">copy</i> &#x2014; material icon named "copy outlined".
  static const IconData copy_outlined = IconData(0xe10c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">copy</i> &#x2014; material icon named "copy rounded".
  static const IconData copy_rounded = IconData(0xf13a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">copy</i> &#x2014; material icon named "copy sharp".
  static const IconData copy_sharp = IconData(0xec0c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">copyright</i> &#x2014; material icon named "copyright".
  static const IconData copyright = IconData(0xe687, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">copyright</i> &#x2014; material icon named "copyright outlined".
  static const IconData copyright_outlined = IconData(0xe112, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">copyright</i> &#x2014; material icon named "copyright rounded".
  static const IconData copyright_rounded = IconData(0xf140, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">copyright</i> &#x2014; material icon named "copyright sharp".
  static const IconData copyright_sharp = IconData(0xec12, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">coronavirus</i> &#x2014; material icon named "coronavirus".
  static const IconData coronavirus = IconData(0xe688, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">coronavirus</i> &#x2014; material icon named "coronavirus outlined".
  static const IconData coronavirus_outlined = IconData(0xe113, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">coronavirus</i> &#x2014; material icon named "coronavirus rounded".
  static const IconData coronavirus_rounded = IconData(0xf141, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">coronavirus</i> &#x2014; material icon named "coronavirus sharp".
  static const IconData coronavirus_sharp = IconData(0xec13, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">corporate_fare</i> &#x2014; material icon named "corporate fare".
  static const IconData corporate_fare = IconData(0xe689, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">corporate_fare</i> &#x2014; material icon named "corporate fare outlined".
  static const IconData corporate_fare_outlined = IconData(0xe114, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">corporate_fare</i> &#x2014; material icon named "corporate fare rounded".
  static const IconData corporate_fare_rounded = IconData(0xf142, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">corporate_fare</i> &#x2014; material icon named "corporate fare sharp".
  static const IconData corporate_fare_sharp = IconData(0xec14, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">countertops</i> &#x2014; material icon named "countertops".
  static const IconData countertops = IconData(0xe68a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">countertops</i> &#x2014; material icon named "countertops outlined".
  static const IconData countertops_outlined = IconData(0xe115, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">countertops</i> &#x2014; material icon named "countertops rounded".
  static const IconData countertops_rounded = IconData(0xf143, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">countertops</i> &#x2014; material icon named "countertops sharp".
  static const IconData countertops_sharp = IconData(0xec15, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">create</i> &#x2014; material icon named "create".
  static const IconData create = IconData(0xe68b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">create_new_folder</i> &#x2014; material icon named "create new folder".
  static const IconData create_new_folder = IconData(0xe68c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">create_new_folder</i> &#x2014; material icon named "create new folder outlined".
  static const IconData create_new_folder_outlined = IconData(0xe116, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">create_new_folder</i> &#x2014; material icon named "create new folder rounded".
  static const IconData create_new_folder_rounded = IconData(0xf144, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">create_new_folder</i> &#x2014; material icon named "create new folder sharp".
  static const IconData create_new_folder_sharp = IconData(0xec16, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">create</i> &#x2014; material icon named "create outlined".
  static const IconData create_outlined = IconData(0xe117, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">create</i> &#x2014; material icon named "create rounded".
  static const IconData create_rounded = IconData(0xf145, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">create</i> &#x2014; material icon named "create sharp".
  static const IconData create_sharp = IconData(0xec17, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">credit_card</i> &#x2014; material icon named "credit card".
  static const IconData credit_card = IconData(0xe68d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">credit_card</i> &#x2014; material icon named "credit card outlined".
  static const IconData credit_card_outlined = IconData(0xe118, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">credit_card</i> &#x2014; material icon named "credit card rounded".
  static const IconData credit_card_rounded = IconData(0xf146, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">credit_card</i> &#x2014; material icon named "credit card sharp".
  static const IconData credit_card_sharp = IconData(0xec18, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop</i> &#x2014; material icon named "crop".
  static const IconData crop = IconData(0xe68e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop_16_9</i> &#x2014; material icon named "crop 16 9".
  static const IconData crop_16_9 = IconData(0xe68f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">crop_16_9</i> &#x2014; material icon named "crop 16 9 outlined".
  static const IconData crop_16_9_outlined = IconData(0xe119, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_16_9</i> &#x2014; material icon named "crop 16 9 rounded".
  static const IconData crop_16_9_rounded = IconData(0xf147, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">crop_16_9</i> &#x2014; material icon named "crop 16 9 sharp".
  static const IconData crop_16_9_sharp = IconData(0xec19, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop_3_2</i> &#x2014; material icon named "crop 3 2".
  static const IconData crop_3_2 = IconData(0xe690, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">crop_3_2</i> &#x2014; material icon named "crop 3 2 outlined".
  static const IconData crop_3_2_outlined = IconData(0xe11a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_3_2</i> &#x2014; material icon named "crop 3 2 rounded".
  static const IconData crop_3_2_rounded = IconData(0xf148, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">crop_3_2</i> &#x2014; material icon named "crop 3 2 sharp".
  static const IconData crop_3_2_sharp = IconData(0xec1a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop_5_4</i> &#x2014; material icon named "crop 5 4".
  static const IconData crop_5_4 = IconData(0xe691, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">crop_5_4</i> &#x2014; material icon named "crop 5 4 outlined".
  static const IconData crop_5_4_outlined = IconData(0xe11b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_5_4</i> &#x2014; material icon named "crop 5 4 rounded".
  static const IconData crop_5_4_rounded = IconData(0xf149, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">crop_5_4</i> &#x2014; material icon named "crop 5 4 sharp".
  static const IconData crop_5_4_sharp = IconData(0xec1b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop_7_5</i> &#x2014; material icon named "crop 7 5".
  static const IconData crop_7_5 = IconData(0xe692, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">crop_7_5</i> &#x2014; material icon named "crop 7 5 outlined".
  static const IconData crop_7_5_outlined = IconData(0xe11c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_7_5</i> &#x2014; material icon named "crop 7 5 rounded".
  static const IconData crop_7_5_rounded = IconData(0xf14a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">crop_7_5</i> &#x2014; material icon named "crop 7 5 sharp".
  static const IconData crop_7_5_sharp = IconData(0xec1c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop_din</i> &#x2014; material icon named "crop din".
  static const IconData crop_din = IconData(0xe693, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">crop_din</i> &#x2014; material icon named "crop din outlined".
  static const IconData crop_din_outlined = IconData(0xe11d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_din</i> &#x2014; material icon named "crop din rounded".
  static const IconData crop_din_rounded = IconData(0xf14b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">crop_din</i> &#x2014; material icon named "crop din sharp".
  static const IconData crop_din_sharp = IconData(0xec1d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop_free</i> &#x2014; material icon named "crop free".
  static const IconData crop_free = IconData(0xe694, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">crop_free</i> &#x2014; material icon named "crop free outlined".
  static const IconData crop_free_outlined = IconData(0xe11e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_free</i> &#x2014; material icon named "crop free rounded".
  static const IconData crop_free_rounded = IconData(0xf14c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">crop_free</i> &#x2014; material icon named "crop free sharp".
  static const IconData crop_free_sharp = IconData(0xec1e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop_landscape</i> &#x2014; material icon named "crop landscape".
  static const IconData crop_landscape = IconData(0xe695, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">crop_landscape</i> &#x2014; material icon named "crop landscape outlined".
  static const IconData crop_landscape_outlined = IconData(0xe11f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_landscape</i> &#x2014; material icon named "crop landscape rounded".
  static const IconData crop_landscape_rounded = IconData(0xf14d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">crop_landscape</i> &#x2014; material icon named "crop landscape sharp".
  static const IconData crop_landscape_sharp = IconData(0xec1f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop_original</i> &#x2014; material icon named "crop original".
  static const IconData crop_original = IconData(0xe696, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">crop_original</i> &#x2014; material icon named "crop original outlined".
  static const IconData crop_original_outlined = IconData(0xe120, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_original</i> &#x2014; material icon named "crop original rounded".
  static const IconData crop_original_rounded = IconData(0xf14e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">crop_original</i> &#x2014; material icon named "crop original sharp".
  static const IconData crop_original_sharp = IconData(0xec20, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">crop</i> &#x2014; material icon named "crop outlined".
  static const IconData crop_outlined = IconData(0xe121, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop_portrait</i> &#x2014; material icon named "crop portrait".
  static const IconData crop_portrait = IconData(0xe697, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">crop_portrait</i> &#x2014; material icon named "crop portrait outlined".
  static const IconData crop_portrait_outlined = IconData(0xe122, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_portrait</i> &#x2014; material icon named "crop portrait rounded".
  static const IconData crop_portrait_rounded = IconData(0xf14f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">crop_portrait</i> &#x2014; material icon named "crop portrait sharp".
  static const IconData crop_portrait_sharp = IconData(0xec21, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop_rotate</i> &#x2014; material icon named "crop rotate".
  static const IconData crop_rotate = IconData(0xe698, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">crop_rotate</i> &#x2014; material icon named "crop rotate outlined".
  static const IconData crop_rotate_outlined = IconData(0xe123, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_rotate</i> &#x2014; material icon named "crop rotate rounded".
  static const IconData crop_rotate_rounded = IconData(0xf150, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">crop_rotate</i> &#x2014; material icon named "crop rotate sharp".
  static const IconData crop_rotate_sharp = IconData(0xec22, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop</i> &#x2014; material icon named "crop rounded".
  static const IconData crop_rounded = IconData(0xf151, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">crop</i> &#x2014; material icon named "crop sharp".
  static const IconData crop_sharp = IconData(0xec23, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop_square</i> &#x2014; material icon named "crop square".
  static const IconData crop_square = IconData(0xe699, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">crop_square</i> &#x2014; material icon named "crop square outlined".
  static const IconData crop_square_outlined = IconData(0xe124, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_square</i> &#x2014; material icon named "crop square rounded".
  static const IconData crop_square_rounded = IconData(0xf152, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">crop_square</i> &#x2014; material icon named "crop square sharp".
  static const IconData crop_square_sharp = IconData(0xec24, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cut</i> &#x2014; material icon named "cut".
  static const IconData cut = IconData(0xe682, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cut</i> &#x2014; material icon named "cut outlined".
  static const IconData cut_outlined = IconData(0xe10d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cut</i> &#x2014; material icon named "cut rounded".
  static const IconData cut_rounded = IconData(0xf13b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cut</i> &#x2014; material icon named "cut sharp".
  static const IconData cut_sharp = IconData(0xec0d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dangerous</i> &#x2014; material icon named "dangerous".
  static const IconData dangerous = IconData(0xe69a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dashboard</i> &#x2014; material icon named "dashboard".
  static const IconData dashboard = IconData(0xe69b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dashboard_customize</i> &#x2014; material icon named "dashboard customize".
  static const IconData dashboard_customize = IconData(0xe69c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dashboard</i> &#x2014; material icon named "dashboard outlined".
  static const IconData dashboard_outlined = IconData(0xe125, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dashboard</i> &#x2014; material icon named "dashboard rounded".
  static const IconData dashboard_rounded = IconData(0xf153, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dashboard</i> &#x2014; material icon named "dashboard sharp".
  static const IconData dashboard_sharp = IconData(0xec25, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">data_usage</i> &#x2014; material icon named "data usage".
  static const IconData data_usage = IconData(0xe69d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">data_usage</i> &#x2014; material icon named "data usage outlined".
  static const IconData data_usage_outlined = IconData(0xe126, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">data_usage</i> &#x2014; material icon named "data usage rounded".
  static const IconData data_usage_rounded = IconData(0xf154, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">data_usage</i> &#x2014; material icon named "data usage sharp".
  static const IconData data_usage_sharp = IconData(0xec26, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">date_range</i> &#x2014; material icon named "date range".
  static const IconData date_range = IconData(0xe69e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">date_range</i> &#x2014; material icon named "date range outlined".
  static const IconData date_range_outlined = IconData(0xe127, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">date_range</i> &#x2014; material icon named "date range rounded".
  static const IconData date_range_rounded = IconData(0xf155, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">date_range</i> &#x2014; material icon named "date range sharp".
  static const IconData date_range_sharp = IconData(0xec27, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">deck</i> &#x2014; material icon named "deck".
  static const IconData deck = IconData(0xe69f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">deck</i> &#x2014; material icon named "deck outlined".
  static const IconData deck_outlined = IconData(0xe128, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">deck</i> &#x2014; material icon named "deck rounded".
  static const IconData deck_rounded = IconData(0xf156, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">deck</i> &#x2014; material icon named "deck sharp".
  static const IconData deck_sharp = IconData(0xec28, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dehaze</i> &#x2014; material icon named "dehaze".
  static const IconData dehaze = IconData(0xe6a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dehaze</i> &#x2014; material icon named "dehaze outlined".
  static const IconData dehaze_outlined = IconData(0xe129, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dehaze</i> &#x2014; material icon named "dehaze rounded".
  static const IconData dehaze_rounded = IconData(0xf157, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dehaze</i> &#x2014; material icon named "dehaze sharp".
  static const IconData dehaze_sharp = IconData(0xec29, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">delete</i> &#x2014; material icon named "delete".
  static const IconData delete = IconData(0xe6a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">delete_forever</i> &#x2014; material icon named "delete forever".
  static const IconData delete_forever = IconData(0xe6a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">delete_forever</i> &#x2014; material icon named "delete forever outlined".
  static const IconData delete_forever_outlined = IconData(0xe12a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">delete_forever</i> &#x2014; material icon named "delete forever rounded".
  static const IconData delete_forever_rounded = IconData(0xf158, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">delete_forever</i> &#x2014; material icon named "delete forever sharp".
  static const IconData delete_forever_sharp = IconData(0xec2a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">delete_outline</i> &#x2014; material icon named "delete outline".
  static const IconData delete_outline = IconData(0xe6a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">delete_outline</i> &#x2014; material icon named "delete outline outlined".
  static const IconData delete_outline_outlined = IconData(0xe12b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">delete_outline</i> &#x2014; material icon named "delete outline rounded".
  static const IconData delete_outline_rounded = IconData(0xf159, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">delete_outline</i> &#x2014; material icon named "delete outline sharp".
  static const IconData delete_outline_sharp = IconData(0xec2b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">delete</i> &#x2014; material icon named "delete outlined".
  static const IconData delete_outlined = IconData(0xe12c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">delete</i> &#x2014; material icon named "delete rounded".
  static const IconData delete_rounded = IconData(0xf15a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">delete</i> &#x2014; material icon named "delete sharp".
  static const IconData delete_sharp = IconData(0xec2c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">delete_sweep</i> &#x2014; material icon named "delete sweep".
  static const IconData delete_sweep = IconData(0xe6a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">delete_sweep</i> &#x2014; material icon named "delete sweep outlined".
  static const IconData delete_sweep_outlined = IconData(0xe12d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">delete_sweep</i> &#x2014; material icon named "delete sweep rounded".
  static const IconData delete_sweep_rounded = IconData(0xf15b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">delete_sweep</i> &#x2014; material icon named "delete sweep sharp".
  static const IconData delete_sweep_sharp = IconData(0xec2d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">delivery_dining</i> &#x2014; material icon named "delivery dining".
  static const IconData delivery_dining = IconData(0xe6a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">departure_board</i> &#x2014; material icon named "departure board".
  static const IconData departure_board = IconData(0xe6a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">departure_board</i> &#x2014; material icon named "departure board outlined".
  static const IconData departure_board_outlined = IconData(0xe12e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">departure_board</i> &#x2014; material icon named "departure board rounded".
  static const IconData departure_board_rounded = IconData(0xf15c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">departure_board</i> &#x2014; material icon named "departure board sharp".
  static const IconData departure_board_sharp = IconData(0xec2e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">description</i> &#x2014; material icon named "description".
  static const IconData description = IconData(0xe6a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">description</i> &#x2014; material icon named "description outlined".
  static const IconData description_outlined = IconData(0xe12f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">description</i> &#x2014; material icon named "description rounded".
  static const IconData description_rounded = IconData(0xf15d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">description</i> &#x2014; material icon named "description sharp".
  static const IconData description_sharp = IconData(0xec2f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">design_services</i> &#x2014; material icon named "design services".
  static const IconData design_services = IconData(0xe6a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">design_services</i> &#x2014; material icon named "design services outlined".
  static const IconData design_services_outlined = IconData(0xe130, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">design_services</i> &#x2014; material icon named "design services rounded".
  static const IconData design_services_rounded = IconData(0xf15e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">design_services</i> &#x2014; material icon named "design services sharp".
  static const IconData design_services_sharp = IconData(0xec30, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">desktop_access_disabled</i> &#x2014; material icon named "desktop access disabled".
  static const IconData desktop_access_disabled = IconData(0xe6a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">desktop_access_disabled</i> &#x2014; material icon named "desktop access disabled outlined".
  static const IconData desktop_access_disabled_outlined = IconData(0xe131, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">desktop_access_disabled</i> &#x2014; material icon named "desktop access disabled rounded".
  static const IconData desktop_access_disabled_rounded = IconData(0xf15f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">desktop_access_disabled</i> &#x2014; material icon named "desktop access disabled sharp".
  static const IconData desktop_access_disabled_sharp = IconData(0xec31, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">desktop_mac</i> &#x2014; material icon named "desktop mac".
  static const IconData desktop_mac = IconData(0xe6aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">desktop_mac</i> &#x2014; material icon named "desktop mac outlined".
  static const IconData desktop_mac_outlined = IconData(0xe132, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">desktop_mac</i> &#x2014; material icon named "desktop mac rounded".
  static const IconData desktop_mac_rounded = IconData(0xf160, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">desktop_mac</i> &#x2014; material icon named "desktop mac sharp".
  static const IconData desktop_mac_sharp = IconData(0xec32, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">desktop_windows</i> &#x2014; material icon named "desktop windows".
  static const IconData desktop_windows = IconData(0xe6ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">desktop_windows</i> &#x2014; material icon named "desktop windows outlined".
  static const IconData desktop_windows_outlined = IconData(0xe133, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">desktop_windows</i> &#x2014; material icon named "desktop windows rounded".
  static const IconData desktop_windows_rounded = IconData(0xf161, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">desktop_windows</i> &#x2014; material icon named "desktop windows sharp".
  static const IconData desktop_windows_sharp = IconData(0xec33, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">details</i> &#x2014; material icon named "details".
  static const IconData details = IconData(0xe6ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">details</i> &#x2014; material icon named "details outlined".
  static const IconData details_outlined = IconData(0xe134, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">details</i> &#x2014; material icon named "details rounded".
  static const IconData details_rounded = IconData(0xf162, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">details</i> &#x2014; material icon named "details sharp".
  static const IconData details_sharp = IconData(0xec34, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">developer_board</i> &#x2014; material icon named "developer board".
  static const IconData developer_board = IconData(0xe6ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">developer_board</i> &#x2014; material icon named "developer board outlined".
  static const IconData developer_board_outlined = IconData(0xe135, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">developer_board</i> &#x2014; material icon named "developer board rounded".
  static const IconData developer_board_rounded = IconData(0xf163, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">developer_board</i> &#x2014; material icon named "developer board sharp".
  static const IconData developer_board_sharp = IconData(0xec35, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">developer_mode</i> &#x2014; material icon named "developer mode".
  static const IconData developer_mode = IconData(0xe6ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">developer_mode</i> &#x2014; material icon named "developer mode outlined".
  static const IconData developer_mode_outlined = IconData(0xe136, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">developer_mode</i> &#x2014; material icon named "developer mode rounded".
  static const IconData developer_mode_rounded = IconData(0xf164, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">developer_mode</i> &#x2014; material icon named "developer mode sharp".
  static const IconData developer_mode_sharp = IconData(0xec36, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">device_hub</i> &#x2014; material icon named "device hub".
  static const IconData device_hub = IconData(0xe6af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">device_hub</i> &#x2014; material icon named "device hub outlined".
  static const IconData device_hub_outlined = IconData(0xe137, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">device_hub</i> &#x2014; material icon named "device hub rounded".
  static const IconData device_hub_rounded = IconData(0xf165, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">device_hub</i> &#x2014; material icon named "device hub sharp".
  static const IconData device_hub_sharp = IconData(0xec37, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">device_thermostat</i> &#x2014; material icon named "device thermostat".
  static const IconData device_thermostat = IconData(0xe6b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">device_unknown</i> &#x2014; material icon named "device unknown".
  static const IconData device_unknown = IconData(0xe6b1, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">device_unknown</i> &#x2014; material icon named "device unknown outlined".
  static const IconData device_unknown_outlined = IconData(0xe138, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">device_unknown</i> &#x2014; material icon named "device unknown rounded".
  static const IconData device_unknown_rounded = IconData(0xf166, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">device_unknown</i> &#x2014; material icon named "device unknown sharp".
  static const IconData device_unknown_sharp = IconData(0xec38, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">devices</i> &#x2014; material icon named "devices".
  static const IconData devices = IconData(0xe6b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">devices_other</i> &#x2014; material icon named "devices other".
  static const IconData devices_other = IconData(0xe6b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">devices_other</i> &#x2014; material icon named "devices other outlined".
  static const IconData devices_other_outlined = IconData(0xe139, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">devices_other</i> &#x2014; material icon named "devices other rounded".
  static const IconData devices_other_rounded = IconData(0xf167, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">devices_other</i> &#x2014; material icon named "devices other sharp".
  static const IconData devices_other_sharp = IconData(0xec39, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">devices</i> &#x2014; material icon named "devices outlined".
  static const IconData devices_outlined = IconData(0xe13a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">devices</i> &#x2014; material icon named "devices rounded".
  static const IconData devices_rounded = IconData(0xf168, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">devices</i> &#x2014; material icon named "devices sharp".
  static const IconData devices_sharp = IconData(0xec3a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dialer_sip</i> &#x2014; material icon named "dialer sip".
  static const IconData dialer_sip = IconData(0xe6b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dialer_sip</i> &#x2014; material icon named "dialer sip outlined".
  static const IconData dialer_sip_outlined = IconData(0xe13b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dialer_sip</i> &#x2014; material icon named "dialer sip rounded".
  static const IconData dialer_sip_rounded = IconData(0xf169, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dialer_sip</i> &#x2014; material icon named "dialer sip sharp".
  static const IconData dialer_sip_sharp = IconData(0xec3b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dialpad</i> &#x2014; material icon named "dialpad".
  static const IconData dialpad = IconData(0xe6b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dialpad</i> &#x2014; material icon named "dialpad outlined".
  static const IconData dialpad_outlined = IconData(0xe13c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dialpad</i> &#x2014; material icon named "dialpad rounded".
  static const IconData dialpad_rounded = IconData(0xf16a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dialpad</i> &#x2014; material icon named "dialpad sharp".
  static const IconData dialpad_sharp = IconData(0xec3c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dinner_dining</i> &#x2014; material icon named "dinner dining".
  static const IconData dinner_dining = IconData(0xe6b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions</i> &#x2014; material icon named "directions".
  static const IconData directions = IconData(0xe6b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_bike</i> &#x2014; material icon named "directions bike".
  static const IconData directions_bike = IconData(0xe6b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">directions_bike</i> &#x2014; material icon named "directions bike outlined".
  static const IconData directions_bike_outlined = IconData(0xe13d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_bike</i> &#x2014; material icon named "directions bike rounded".
  static const IconData directions_bike_rounded = IconData(0xf16b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions_bike</i> &#x2014; material icon named "directions bike sharp".
  static const IconData directions_bike_sharp = IconData(0xec3d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_boat</i> &#x2014; material icon named "directions boat".
  static const IconData directions_boat = IconData(0xe6b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">directions_boat</i> &#x2014; material icon named "directions boat outlined".
  static const IconData directions_boat_outlined = IconData(0xe13e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_boat</i> &#x2014; material icon named "directions boat rounded".
  static const IconData directions_boat_rounded = IconData(0xf16c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions_boat</i> &#x2014; material icon named "directions boat sharp".
  static const IconData directions_boat_sharp = IconData(0xec3e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_bus</i> &#x2014; material icon named "directions bus".
  static const IconData directions_bus = IconData(0xe6ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">directions_bus</i> &#x2014; material icon named "directions bus outlined".
  static const IconData directions_bus_outlined = IconData(0xe13f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_bus</i> &#x2014; material icon named "directions bus rounded".
  static const IconData directions_bus_rounded = IconData(0xf16d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions_bus</i> &#x2014; material icon named "directions bus sharp".
  static const IconData directions_bus_sharp = IconData(0xec3f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_car</i> &#x2014; material icon named "directions car".
  static const IconData directions_car = IconData(0xe6bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">directions_car</i> &#x2014; material icon named "directions car outlined".
  static const IconData directions_car_outlined = IconData(0xe140, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_car</i> &#x2014; material icon named "directions car rounded".
  static const IconData directions_car_rounded = IconData(0xf16e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions_car</i> &#x2014; material icon named "directions car sharp".
  static const IconData directions_car_sharp = IconData(0xec40, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_ferry</i> &#x2014; material icon named "directions ferry".
  static const IconData directions_ferry = IconData(0xe6b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">directions_ferry</i> &#x2014; material icon named "directions ferry outlined".
  static const IconData directions_ferry_outlined = IconData(0xe13e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_ferry</i> &#x2014; material icon named "directions ferry rounded".
  static const IconData directions_ferry_rounded = IconData(0xf16c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions_ferry</i> &#x2014; material icon named "directions ferry sharp".
  static const IconData directions_ferry_sharp = IconData(0xec3e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_off</i> &#x2014; material icon named "directions off".
  static const IconData directions_off = IconData(0xe6bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">directions_off</i> &#x2014; material icon named "directions off outlined".
  static const IconData directions_off_outlined = IconData(0xe141, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_off</i> &#x2014; material icon named "directions off rounded".
  static const IconData directions_off_rounded = IconData(0xf16f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions_off</i> &#x2014; material icon named "directions off sharp".
  static const IconData directions_off_sharp = IconData(0xec41, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">directions</i> &#x2014; material icon named "directions outlined".
  static const IconData directions_outlined = IconData(0xe142, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_railway</i> &#x2014; material icon named "directions railway".
  static const IconData directions_railway = IconData(0xe6bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">directions_railway</i> &#x2014; material icon named "directions railway outlined".
  static const IconData directions_railway_outlined = IconData(0xe143, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_railway</i> &#x2014; material icon named "directions railway rounded".
  static const IconData directions_railway_rounded = IconData(0xf170, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions_railway</i> &#x2014; material icon named "directions railway sharp".
  static const IconData directions_railway_sharp = IconData(0xec42, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions</i> &#x2014; material icon named "directions rounded".
  static const IconData directions_rounded = IconData(0xf171, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_run</i> &#x2014; material icon named "directions run".
  static const IconData directions_run = IconData(0xe6be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">directions_run</i> &#x2014; material icon named "directions run outlined".
  static const IconData directions_run_outlined = IconData(0xe144, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_run</i> &#x2014; material icon named "directions run rounded".
  static const IconData directions_run_rounded = IconData(0xf172, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions_run</i> &#x2014; material icon named "directions run sharp".
  static const IconData directions_run_sharp = IconData(0xec43, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions</i> &#x2014; material icon named "directions sharp".
  static const IconData directions_sharp = IconData(0xec44, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_subway</i> &#x2014; material icon named "directions subway".
  static const IconData directions_subway = IconData(0xe6bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">directions_subway</i> &#x2014; material icon named "directions subway outlined".
  static const IconData directions_subway_outlined = IconData(0xe145, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_subway</i> &#x2014; material icon named "directions subway rounded".
  static const IconData directions_subway_rounded = IconData(0xf173, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions_subway</i> &#x2014; material icon named "directions subway sharp".
  static const IconData directions_subway_sharp = IconData(0xec45, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_train</i> &#x2014; material icon named "directions train".
  static const IconData directions_train = IconData(0xe6bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">directions_train</i> &#x2014; material icon named "directions train outlined".
  static const IconData directions_train_outlined = IconData(0xe143, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_train</i> &#x2014; material icon named "directions train rounded".
  static const IconData directions_train_rounded = IconData(0xf170, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions_train</i> &#x2014; material icon named "directions train sharp".
  static const IconData directions_train_sharp = IconData(0xec42, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_transit</i> &#x2014; material icon named "directions transit".
  static const IconData directions_transit = IconData(0xe6c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">directions_transit</i> &#x2014; material icon named "directions transit outlined".
  static const IconData directions_transit_outlined = IconData(0xe146, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_transit</i> &#x2014; material icon named "directions transit rounded".
  static const IconData directions_transit_rounded = IconData(0xf174, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions_transit</i> &#x2014; material icon named "directions transit sharp".
  static const IconData directions_transit_sharp = IconData(0xec46, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_walk</i> &#x2014; material icon named "directions walk".
  static const IconData directions_walk = IconData(0xe6c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">directions_walk</i> &#x2014; material icon named "directions walk outlined".
  static const IconData directions_walk_outlined = IconData(0xe147, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_walk</i> &#x2014; material icon named "directions walk rounded".
  static const IconData directions_walk_rounded = IconData(0xf175, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions_walk</i> &#x2014; material icon named "directions walk sharp".
  static const IconData directions_walk_sharp = IconData(0xec47, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dirty_lens</i> &#x2014; material icon named "dirty lens".
  static const IconData dirty_lens = IconData(0xe6c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">disc_full</i> &#x2014; material icon named "disc full".
  static const IconData disc_full = IconData(0xe6c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">disc_full</i> &#x2014; material icon named "disc full outlined".
  static const IconData disc_full_outlined = IconData(0xe148, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">disc_full</i> &#x2014; material icon named "disc full rounded".
  static const IconData disc_full_rounded = IconData(0xf176, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">disc_full</i> &#x2014; material icon named "disc full sharp".
  static const IconData disc_full_sharp = IconData(0xec48, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dnd_forwardslash</i> &#x2014; material icon named "dnd forwardslash".
  static const IconData dnd_forwardslash = IconData(0xe6c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dns</i> &#x2014; material icon named "dns".
  static const IconData dns = IconData(0xe6c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dns</i> &#x2014; material icon named "dns outlined".
  static const IconData dns_outlined = IconData(0xe149, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dns</i> &#x2014; material icon named "dns rounded".
  static const IconData dns_rounded = IconData(0xf177, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dns</i> &#x2014; material icon named "dns sharp".
  static const IconData dns_sharp = IconData(0xec49, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">do_disturb_alt</i> &#x2014; material icon named "do disturb alt outlined".
  static const IconData do_disturb_alt_outlined = IconData(0xe14a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">do_disturb_alt</i> &#x2014; material icon named "do disturb alt rounded".
  static const IconData do_disturb_alt_rounded = IconData(0xf178, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">do_disturb_alt</i> &#x2014; material icon named "do disturb alt sharp".
  static const IconData do_disturb_alt_sharp = IconData(0xec4a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">do_disturb_off</i> &#x2014; material icon named "do disturb off outlined".
  static const IconData do_disturb_off_outlined = IconData(0xe14b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">do_disturb_off</i> &#x2014; material icon named "do disturb off rounded".
  static const IconData do_disturb_off_rounded = IconData(0xf179, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">do_disturb_off</i> &#x2014; material icon named "do disturb off sharp".
  static const IconData do_disturb_off_sharp = IconData(0xec4b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">do_disturb_on</i> &#x2014; material icon named "do disturb on outlined".
  static const IconData do_disturb_on_outlined = IconData(0xe14c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">do_disturb_on</i> &#x2014; material icon named "do disturb on rounded".
  static const IconData do_disturb_on_rounded = IconData(0xf17a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">do_disturb_on</i> &#x2014; material icon named "do disturb on sharp".
  static const IconData do_disturb_on_sharp = IconData(0xec4c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">do_disturb</i> &#x2014; material icon named "do disturb outlined".
  static const IconData do_disturb_outlined = IconData(0xe14d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">do_disturb</i> &#x2014; material icon named "do disturb rounded".
  static const IconData do_disturb_rounded = IconData(0xf17b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">do_disturb</i> &#x2014; material icon named "do disturb sharp".
  static const IconData do_disturb_sharp = IconData(0xec4d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">do_not_disturb</i> &#x2014; material icon named "do not disturb".
  static const IconData do_not_disturb = IconData(0xe6c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">do_not_disturb_alt</i> &#x2014; material icon named "do not disturb alt".
  static const IconData do_not_disturb_alt = IconData(0xe6c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">do_not_disturb_off</i> &#x2014; material icon named "do not disturb off".
  static const IconData do_not_disturb_off = IconData(0xe6c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">do_not_disturb_on</i> &#x2014; material icon named "do not disturb on".
  static const IconData do_not_disturb_on = IconData(0xe6c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">do_not_step</i> &#x2014; material icon named "do not step".
  static const IconData do_not_step = IconData(0xe6c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">do_not_step</i> &#x2014; material icon named "do not step outlined".
  static const IconData do_not_step_outlined = IconData(0xe14e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">do_not_step</i> &#x2014; material icon named "do not step rounded".
  static const IconData do_not_step_rounded = IconData(0xf17c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">do_not_step</i> &#x2014; material icon named "do not step sharp".
  static const IconData do_not_step_sharp = IconData(0xec4e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">do_not_touch</i> &#x2014; material icon named "do not touch".
  static const IconData do_not_touch = IconData(0xe6ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">do_not_touch</i> &#x2014; material icon named "do not touch outlined".
  static const IconData do_not_touch_outlined = IconData(0xe14f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">do_not_touch</i> &#x2014; material icon named "do not touch rounded".
  static const IconData do_not_touch_rounded = IconData(0xf17d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">do_not_touch</i> &#x2014; material icon named "do not touch sharp".
  static const IconData do_not_touch_sharp = IconData(0xec4f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dock</i> &#x2014; material icon named "dock".
  static const IconData dock = IconData(0xe6cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dock</i> &#x2014; material icon named "dock outlined".
  static const IconData dock_outlined = IconData(0xe150, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dock</i> &#x2014; material icon named "dock rounded".
  static const IconData dock_rounded = IconData(0xf17e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dock</i> &#x2014; material icon named "dock sharp".
  static const IconData dock_sharp = IconData(0xec50, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">domain</i> &#x2014; material icon named "domain".
  static const IconData domain = IconData(0xe6cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">domain_disabled</i> &#x2014; material icon named "domain disabled".
  static const IconData domain_disabled = IconData(0xe6cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">domain_disabled</i> &#x2014; material icon named "domain disabled outlined".
  static const IconData domain_disabled_outlined = IconData(0xe151, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">domain_disabled</i> &#x2014; material icon named "domain disabled rounded".
  static const IconData domain_disabled_rounded = IconData(0xf17f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">domain_disabled</i> &#x2014; material icon named "domain disabled sharp".
  static const IconData domain_disabled_sharp = IconData(0xec51, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">domain</i> &#x2014; material icon named "domain outlined".
  static const IconData domain_outlined = IconData(0xe152, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">domain</i> &#x2014; material icon named "domain rounded".
  static const IconData domain_rounded = IconData(0xf180, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">domain</i> &#x2014; material icon named "domain sharp".
  static const IconData domain_sharp = IconData(0xec52, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">domain_verification</i> &#x2014; material icon named "domain verification".
  static const IconData domain_verification = IconData(0xe6ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">domain_verification</i> &#x2014; material icon named "domain verification outlined".
  static const IconData domain_verification_outlined = IconData(0xe153, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">domain_verification</i> &#x2014; material icon named "domain verification rounded".
  static const IconData domain_verification_rounded = IconData(0xf181, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">domain_verification</i> &#x2014; material icon named "domain verification sharp".
  static const IconData domain_verification_sharp = IconData(0xec53, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">done</i> &#x2014; material icon named "done".
  static const IconData done = IconData(0xe6cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">done_all</i> &#x2014; material icon named "done all".
  static const IconData done_all = IconData(0xe6d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">done_all</i> &#x2014; material icon named "done all outlined".
  static const IconData done_all_outlined = IconData(0xe154, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">done_all</i> &#x2014; material icon named "done all rounded".
  static const IconData done_all_rounded = IconData(0xf182, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">done_all</i> &#x2014; material icon named "done all sharp".
  static const IconData done_all_sharp = IconData(0xec54, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">done_outline</i> &#x2014; material icon named "done outline".
  static const IconData done_outline = IconData(0xe6d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">done_outline</i> &#x2014; material icon named "done outline outlined".
  static const IconData done_outline_outlined = IconData(0xe155, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">done_outline</i> &#x2014; material icon named "done outline rounded".
  static const IconData done_outline_rounded = IconData(0xf183, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">done_outline</i> &#x2014; material icon named "done outline sharp".
  static const IconData done_outline_sharp = IconData(0xec55, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">done</i> &#x2014; material icon named "done outlined".
  static const IconData done_outlined = IconData(0xe156, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">done</i> &#x2014; material icon named "done rounded".
  static const IconData done_rounded = IconData(0xf184, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">done</i> &#x2014; material icon named "done sharp".
  static const IconData done_sharp = IconData(0xec56, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">donut_large</i> &#x2014; material icon named "donut large".
  static const IconData donut_large = IconData(0xe6d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">donut_large</i> &#x2014; material icon named "donut large outlined".
  static const IconData donut_large_outlined = IconData(0xe157, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">donut_large</i> &#x2014; material icon named "donut large rounded".
  static const IconData donut_large_rounded = IconData(0xf185, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">donut_large</i> &#x2014; material icon named "donut large sharp".
  static const IconData donut_large_sharp = IconData(0xec57, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">donut_small</i> &#x2014; material icon named "donut small".
  static const IconData donut_small = IconData(0xe6d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">donut_small</i> &#x2014; material icon named "donut small outlined".
  static const IconData donut_small_outlined = IconData(0xe158, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">donut_small</i> &#x2014; material icon named "donut small rounded".
  static const IconData donut_small_rounded = IconData(0xf186, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">donut_small</i> &#x2014; material icon named "donut small sharp".
  static const IconData donut_small_sharp = IconData(0xec58, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">double_arrow</i> &#x2014; material icon named "double arrow".
  static const IconData double_arrow = IconData(0xe6d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">double_arrow</i> &#x2014; material icon named "double arrow outlined".
  static const IconData double_arrow_outlined = IconData(0xe159, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">double_arrow</i> &#x2014; material icon named "double arrow rounded".
  static const IconData double_arrow_rounded = IconData(0xf187, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">double_arrow</i> &#x2014; material icon named "double arrow sharp".
  static const IconData double_arrow_sharp = IconData(0xec59, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">download_done</i> &#x2014; material icon named "download done outlined".
  static const IconData download_done_outlined = IconData(0xe15a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">download_done</i> &#x2014; material icon named "download done rounded".
  static const IconData download_done_rounded = IconData(0xf188, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">download_done</i> &#x2014; material icon named "download done sharp".
  static const IconData download_done_sharp = IconData(0xec5a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">download</i> &#x2014; material icon named "download outlined".
  static const IconData download_outlined = IconData(0xe15b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">download</i> &#x2014; material icon named "download rounded".
  static const IconData download_rounded = IconData(0xf189, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">download</i> &#x2014; material icon named "download sharp".
  static const IconData download_sharp = IconData(0xec5b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">drafts</i> &#x2014; material icon named "drafts".
  static const IconData drafts = IconData(0xe6d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">drafts</i> &#x2014; material icon named "drafts outlined".
  static const IconData drafts_outlined = IconData(0xe15c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">drafts</i> &#x2014; material icon named "drafts rounded".
  static const IconData drafts_rounded = IconData(0xf18a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">drafts</i> &#x2014; material icon named "drafts sharp".
  static const IconData drafts_sharp = IconData(0xec5c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">drag_handle</i> &#x2014; material icon named "drag handle".
  static const IconData drag_handle = IconData(0xe6d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">drag_handle</i> &#x2014; material icon named "drag handle outlined".
  static const IconData drag_handle_outlined = IconData(0xe15d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">drag_handle</i> &#x2014; material icon named "drag handle rounded".
  static const IconData drag_handle_rounded = IconData(0xf18b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">drag_handle</i> &#x2014; material icon named "drag handle sharp".
  static const IconData drag_handle_sharp = IconData(0xec5d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">drag_indicator</i> &#x2014; material icon named "drag indicator".
  static const IconData drag_indicator = IconData(0xe6d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">drag_indicator</i> &#x2014; material icon named "drag indicator outlined".
  static const IconData drag_indicator_outlined = IconData(0xe15e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">drag_indicator</i> &#x2014; material icon named "drag indicator rounded".
  static const IconData drag_indicator_rounded = IconData(0xf18c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">drag_indicator</i> &#x2014; material icon named "drag indicator sharp".
  static const IconData drag_indicator_sharp = IconData(0xec5e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">drive_eta</i> &#x2014; material icon named "drive eta".
  static const IconData drive_eta = IconData(0xe6d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">drive_eta</i> &#x2014; material icon named "drive eta outlined".
  static const IconData drive_eta_outlined = IconData(0xe15f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">drive_eta</i> &#x2014; material icon named "drive eta rounded".
  static const IconData drive_eta_rounded = IconData(0xf18d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">drive_eta</i> &#x2014; material icon named "drive eta sharp".
  static const IconData drive_eta_sharp = IconData(0xec5f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">drive_file_move</i> &#x2014; material icon named "drive file move".
  static const IconData drive_file_move = IconData(0xe6d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">drive_file_move_outline</i> &#x2014; material icon named "drive file move outline".
  static const IconData drive_file_move_outline = IconData(0xe6da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">drive_file_rename_outline</i> &#x2014; material icon named "drive file rename outline".
  static const IconData drive_file_rename_outline = IconData(0xe6db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">drive_folder_upload</i> &#x2014; material icon named "drive folder upload".
  static const IconData drive_folder_upload = IconData(0xe6dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dry</i> &#x2014; material icon named "dry".
  static const IconData dry = IconData(0xe6dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dry_cleaning</i> &#x2014; material icon named "dry cleaning".
  static const IconData dry_cleaning = IconData(0xe6de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dry</i> &#x2014; material icon named "dry outlined".
  static const IconData dry_outlined = IconData(0xe160, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dry</i> &#x2014; material icon named "dry rounded".
  static const IconData dry_rounded = IconData(0xf18e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dry</i> &#x2014; material icon named "dry sharp".
  static const IconData dry_sharp = IconData(0xec60, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">duo</i> &#x2014; material icon named "duo".
  static const IconData duo = IconData(0xe6df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">duo</i> &#x2014; material icon named "duo outlined".
  static const IconData duo_outlined = IconData(0xe161, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">duo</i> &#x2014; material icon named "duo rounded".
  static const IconData duo_rounded = IconData(0xf18f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">duo</i> &#x2014; material icon named "duo sharp".
  static const IconData duo_sharp = IconData(0xec61, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dvr</i> &#x2014; material icon named "dvr".
  static const IconData dvr = IconData(0xe6e0, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">dvr</i> &#x2014; material icon named "dvr outlined".
  static const IconData dvr_outlined = IconData(0xe162, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">dvr</i> &#x2014; material icon named "dvr rounded".
  static const IconData dvr_rounded = IconData(0xf190, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">dvr</i> &#x2014; material icon named "dvr sharp".
  static const IconData dvr_sharp = IconData(0xec62, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">dynamic_feed</i> &#x2014; material icon named "dynamic feed".
  static const IconData dynamic_feed = IconData(0xe6e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dynamic_feed</i> &#x2014; material icon named "dynamic feed outlined".
  static const IconData dynamic_feed_outlined = IconData(0xe163, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dynamic_feed</i> &#x2014; material icon named "dynamic feed rounded".
  static const IconData dynamic_feed_rounded = IconData(0xf191, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dynamic_feed</i> &#x2014; material icon named "dynamic feed sharp".
  static const IconData dynamic_feed_sharp = IconData(0xec63, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dynamic_form</i> &#x2014; material icon named "dynamic form".
  static const IconData dynamic_form = IconData(0xe6e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dynamic_form</i> &#x2014; material icon named "dynamic form outlined".
  static const IconData dynamic_form_outlined = IconData(0xe164, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dynamic_form</i> &#x2014; material icon named "dynamic form rounded".
  static const IconData dynamic_form_rounded = IconData(0xf192, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dynamic_form</i> &#x2014; material icon named "dynamic form sharp".
  static const IconData dynamic_form_sharp = IconData(0xec64, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">east</i> &#x2014; material icon named "east".
  static const IconData east = IconData(0xe6e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">east</i> &#x2014; material icon named "east outlined".
  static const IconData east_outlined = IconData(0xe165, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">east</i> &#x2014; material icon named "east rounded".
  static const IconData east_rounded = IconData(0xf193, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">east</i> &#x2014; material icon named "east sharp".
  static const IconData east_sharp = IconData(0xec65, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">eco</i> &#x2014; material icon named "eco".
  static const IconData eco = IconData(0xe6e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">eco</i> &#x2014; material icon named "eco outlined".
  static const IconData eco_outlined = IconData(0xe166, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">eco</i> &#x2014; material icon named "eco rounded".
  static const IconData eco_rounded = IconData(0xf194, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">eco</i> &#x2014; material icon named "eco sharp".
  static const IconData eco_sharp = IconData(0xec66, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">edit</i> &#x2014; material icon named "edit".
  static const IconData edit = IconData(0xe6e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">edit_attributes</i> &#x2014; material icon named "edit attributes".
  static const IconData edit_attributes = IconData(0xe6e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">edit_attributes</i> &#x2014; material icon named "edit attributes outlined".
  static const IconData edit_attributes_outlined = IconData(0xe167, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">edit_attributes</i> &#x2014; material icon named "edit attributes rounded".
  static const IconData edit_attributes_rounded = IconData(0xf195, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">edit_attributes</i> &#x2014; material icon named "edit attributes sharp".
  static const IconData edit_attributes_sharp = IconData(0xec67, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">edit_location</i> &#x2014; material icon named "edit location".
  static const IconData edit_location = IconData(0xe6e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">edit_location</i> &#x2014; material icon named "edit location outlined".
  static const IconData edit_location_outlined = IconData(0xe168, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">edit_location</i> &#x2014; material icon named "edit location rounded".
  static const IconData edit_location_rounded = IconData(0xf196, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">edit_location</i> &#x2014; material icon named "edit location sharp".
  static const IconData edit_location_sharp = IconData(0xec68, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">edit_off</i> &#x2014; material icon named "edit off".
  static const IconData edit_off = IconData(0xe6e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">edit</i> &#x2014; material icon named "edit outlined".
  static const IconData edit_outlined = IconData(0xe169, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">edit_road</i> &#x2014; material icon named "edit road".
  static const IconData edit_road = IconData(0xe6e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">edit_road</i> &#x2014; material icon named "edit road outlined".
  static const IconData edit_road_outlined = IconData(0xe16a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">edit_road</i> &#x2014; material icon named "edit road rounded".
  static const IconData edit_road_rounded = IconData(0xf197, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">edit_road</i> &#x2014; material icon named "edit road sharp".
  static const IconData edit_road_sharp = IconData(0xec69, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">edit</i> &#x2014; material icon named "edit rounded".
  static const IconData edit_rounded = IconData(0xf198, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">edit</i> &#x2014; material icon named "edit sharp".
  static const IconData edit_sharp = IconData(0xec6a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">eject</i> &#x2014; material icon named "eject".
  static const IconData eject = IconData(0xe6ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">eject</i> &#x2014; material icon named "eject outlined".
  static const IconData eject_outlined = IconData(0xe16b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">eject</i> &#x2014; material icon named "eject rounded".
  static const IconData eject_rounded = IconData(0xf199, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">eject</i> &#x2014; material icon named "eject sharp".
  static const IconData eject_sharp = IconData(0xec6b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">elderly</i> &#x2014; material icon named "elderly".
  static const IconData elderly = IconData(0xe6eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">elderly</i> &#x2014; material icon named "elderly outlined".
  static const IconData elderly_outlined = IconData(0xe16c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">elderly</i> &#x2014; material icon named "elderly rounded".
  static const IconData elderly_rounded = IconData(0xf19a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">elderly</i> &#x2014; material icon named "elderly sharp".
  static const IconData elderly_sharp = IconData(0xec6c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">electric_bike</i> &#x2014; material icon named "electric bike".
  static const IconData electric_bike = IconData(0xe6ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">electric_bike</i> &#x2014; material icon named "electric bike outlined".
  static const IconData electric_bike_outlined = IconData(0xe16d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">electric_bike</i> &#x2014; material icon named "electric bike rounded".
  static const IconData electric_bike_rounded = IconData(0xf19b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">electric_bike</i> &#x2014; material icon named "electric bike sharp".
  static const IconData electric_bike_sharp = IconData(0xec6d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">electric_car</i> &#x2014; material icon named "electric car".
  static const IconData electric_car = IconData(0xe6ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">electric_car</i> &#x2014; material icon named "electric car outlined".
  static const IconData electric_car_outlined = IconData(0xe16e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">electric_car</i> &#x2014; material icon named "electric car rounded".
  static const IconData electric_car_rounded = IconData(0xf19c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">electric_car</i> &#x2014; material icon named "electric car sharp".
  static const IconData electric_car_sharp = IconData(0xec6e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">electric_moped</i> &#x2014; material icon named "electric moped".
  static const IconData electric_moped = IconData(0xe6ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">electric_moped</i> &#x2014; material icon named "electric moped outlined".
  static const IconData electric_moped_outlined = IconData(0xe16f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">electric_moped</i> &#x2014; material icon named "electric moped rounded".
  static const IconData electric_moped_rounded = IconData(0xf19d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">electric_moped</i> &#x2014; material icon named "electric moped sharp".
  static const IconData electric_moped_sharp = IconData(0xec6f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">electric_rickshaw</i> &#x2014; material icon named "electric rickshaw".
  static const IconData electric_rickshaw = IconData(0xe6ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">electric_rickshaw</i> &#x2014; material icon named "electric rickshaw rounded".
  static const IconData electric_rickshaw_rounded = IconData(0xf19e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">electric_rickshaw</i> &#x2014; material icon named "electric rickshaw sharp".
  static const IconData electric_rickshaw_sharp = IconData(0xec70, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">electric_scooter</i> &#x2014; material icon named "electric scooter".
  static const IconData electric_scooter = IconData(0xe6f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">electric_scooter</i> &#x2014; material icon named "electric scooter outlined".
  static const IconData electric_scooter_outlined = IconData(0xe170, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">electric_scooter</i> &#x2014; material icon named "electric scooter rounded".
  static const IconData electric_scooter_rounded = IconData(0xf19f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">electric_scooter</i> &#x2014; material icon named "electric scooter sharp".
  static const IconData electric_scooter_sharp = IconData(0xec71, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">electrical_services</i> &#x2014; material icon named "electrical services".
  static const IconData electrical_services = IconData(0xe6f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">electrical_services</i> &#x2014; material icon named "electrical services outlined".
  static const IconData electrical_services_outlined = IconData(0xe171, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">electrical_services</i> &#x2014; material icon named "electrical services rounded".
  static const IconData electrical_services_rounded = IconData(0xf1a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">electrical_services</i> &#x2014; material icon named "electrical services sharp".
  static const IconData electrical_services_sharp = IconData(0xec72, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">elevator</i> &#x2014; material icon named "elevator".
  static const IconData elevator = IconData(0xe6f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">elevator</i> &#x2014; material icon named "elevator outlined".
  static const IconData elevator_outlined = IconData(0xe172, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">elevator</i> &#x2014; material icon named "elevator rounded".
  static const IconData elevator_rounded = IconData(0xf1a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">elevator</i> &#x2014; material icon named "elevator sharp".
  static const IconData elevator_sharp = IconData(0xec73, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">email</i> &#x2014; material icon named "email".
  static const IconData email = IconData(0xe6f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">email</i> &#x2014; material icon named "email outlined".
  static const IconData email_outlined = IconData(0xe173, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">email</i> &#x2014; material icon named "email rounded".
  static const IconData email_rounded = IconData(0xf1a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">email</i> &#x2014; material icon named "email sharp".
  static const IconData email_sharp = IconData(0xec74, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">emoji_emotions</i> &#x2014; material icon named "emoji emotions".
  static const IconData emoji_emotions = IconData(0xe6f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">emoji_emotions</i> &#x2014; material icon named "emoji emotions outlined".
  static const IconData emoji_emotions_outlined = IconData(0xe174, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emoji_emotions</i> &#x2014; material icon named "emoji emotions rounded".
  static const IconData emoji_emotions_rounded = IconData(0xf1a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">emoji_emotions</i> &#x2014; material icon named "emoji emotions sharp".
  static const IconData emoji_emotions_sharp = IconData(0xec75, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">emoji_events</i> &#x2014; material icon named "emoji events".
  static const IconData emoji_events = IconData(0xe6f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">emoji_events</i> &#x2014; material icon named "emoji events outlined".
  static const IconData emoji_events_outlined = IconData(0xe175, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emoji_events</i> &#x2014; material icon named "emoji events rounded".
  static const IconData emoji_events_rounded = IconData(0xf1a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">emoji_events</i> &#x2014; material icon named "emoji events sharp".
  static const IconData emoji_events_sharp = IconData(0xec76, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">emoji_flags</i> &#x2014; material icon named "emoji flags".
  static const IconData emoji_flags = IconData(0xe6f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">emoji_flags</i> &#x2014; material icon named "emoji flags outlined".
  static const IconData emoji_flags_outlined = IconData(0xe176, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emoji_flags</i> &#x2014; material icon named "emoji flags rounded".
  static const IconData emoji_flags_rounded = IconData(0xf1a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">emoji_flags</i> &#x2014; material icon named "emoji flags sharp".
  static const IconData emoji_flags_sharp = IconData(0xec77, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">emoji_food_beverage</i> &#x2014; material icon named "emoji food beverage".
  static const IconData emoji_food_beverage = IconData(0xe6f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">emoji_food_beverage</i> &#x2014; material icon named "emoji food beverage outlined".
  static const IconData emoji_food_beverage_outlined = IconData(0xe177, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emoji_food_beverage</i> &#x2014; material icon named "emoji food beverage rounded".
  static const IconData emoji_food_beverage_rounded = IconData(0xf1a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">emoji_food_beverage</i> &#x2014; material icon named "emoji food beverage sharp".
  static const IconData emoji_food_beverage_sharp = IconData(0xec78, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">emoji_nature</i> &#x2014; material icon named "emoji nature".
  static const IconData emoji_nature = IconData(0xe6f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">emoji_nature</i> &#x2014; material icon named "emoji nature outlined".
  static const IconData emoji_nature_outlined = IconData(0xe178, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emoji_nature</i> &#x2014; material icon named "emoji nature rounded".
  static const IconData emoji_nature_rounded = IconData(0xf1a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">emoji_nature</i> &#x2014; material icon named "emoji nature sharp".
  static const IconData emoji_nature_sharp = IconData(0xec79, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">emoji_objects</i> &#x2014; material icon named "emoji objects".
  static const IconData emoji_objects = IconData(0xe6f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">emoji_objects</i> &#x2014; material icon named "emoji objects outlined".
  static const IconData emoji_objects_outlined = IconData(0xe179, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emoji_objects</i> &#x2014; material icon named "emoji objects rounded".
  static const IconData emoji_objects_rounded = IconData(0xf1a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">emoji_objects</i> &#x2014; material icon named "emoji objects sharp".
  static const IconData emoji_objects_sharp = IconData(0xec7a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">emoji_people</i> &#x2014; material icon named "emoji people".
  static const IconData emoji_people = IconData(0xe6fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">emoji_people</i> &#x2014; material icon named "emoji people outlined".
  static const IconData emoji_people_outlined = IconData(0xe17a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emoji_people</i> &#x2014; material icon named "emoji people rounded".
  static const IconData emoji_people_rounded = IconData(0xf1a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">emoji_people</i> &#x2014; material icon named "emoji people sharp".
  static const IconData emoji_people_sharp = IconData(0xec7b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">emoji_symbols</i> &#x2014; material icon named "emoji symbols".
  static const IconData emoji_symbols = IconData(0xe6fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">emoji_symbols</i> &#x2014; material icon named "emoji symbols outlined".
  static const IconData emoji_symbols_outlined = IconData(0xe17b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emoji_symbols</i> &#x2014; material icon named "emoji symbols rounded".
  static const IconData emoji_symbols_rounded = IconData(0xf1aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">emoji_symbols</i> &#x2014; material icon named "emoji symbols sharp".
  static const IconData emoji_symbols_sharp = IconData(0xec7c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">emoji_transportation</i> &#x2014; material icon named "emoji transportation".
  static const IconData emoji_transportation = IconData(0xe6fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">emoji_transportation</i> &#x2014; material icon named "emoji transportation outlined".
  static const IconData emoji_transportation_outlined = IconData(0xe17c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emoji_transportation</i> &#x2014; material icon named "emoji transportation rounded".
  static const IconData emoji_transportation_rounded = IconData(0xf1ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">emoji_transportation</i> &#x2014; material icon named "emoji transportation sharp".
  static const IconData emoji_transportation_sharp = IconData(0xec7d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">engineering</i> &#x2014; material icon named "engineering".
  static const IconData engineering = IconData(0xe6fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">engineering</i> &#x2014; material icon named "engineering outlined".
  static const IconData engineering_outlined = IconData(0xe17d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">engineering</i> &#x2014; material icon named "engineering rounded".
  static const IconData engineering_rounded = IconData(0xf1ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">engineering</i> &#x2014; material icon named "engineering sharp".
  static const IconData engineering_sharp = IconData(0xec7e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">enhance_photo_translate</i> &#x2014; material icon named "enhance photo translate".
  static const IconData enhance_photo_translate = IconData(0xe630, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">enhance_photo_translate</i> &#x2014; material icon named "enhance photo translate outlined".
  static const IconData enhance_photo_translate_outlined = IconData(0xe0c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">enhance_photo_translate</i> &#x2014; material icon named "enhance photo translate rounded".
  static const IconData enhance_photo_translate_rounded = IconData(0xf0f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">enhance_photo_translate</i> &#x2014; material icon named "enhance photo translate sharp".
  static const IconData enhance_photo_translate_sharp = IconData(0xebc3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">enhanced_encryption</i> &#x2014; material icon named "enhanced encryption".
  static const IconData enhanced_encryption = IconData(0xe6fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">enhanced_encryption</i> &#x2014; material icon named "enhanced encryption outlined".
  static const IconData enhanced_encryption_outlined = IconData(0xe17e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">enhanced_encryption</i> &#x2014; material icon named "enhanced encryption rounded".
  static const IconData enhanced_encryption_rounded = IconData(0xf1ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">enhanced_encryption</i> &#x2014; material icon named "enhanced encryption sharp".
  static const IconData enhanced_encryption_sharp = IconData(0xec7f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">equalizer</i> &#x2014; material icon named "equalizer".
  static const IconData equalizer = IconData(0xe6ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">equalizer</i> &#x2014; material icon named "equalizer outlined".
  static const IconData equalizer_outlined = IconData(0xe17f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">equalizer</i> &#x2014; material icon named "equalizer rounded".
  static const IconData equalizer_rounded = IconData(0xf1ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">equalizer</i> &#x2014; material icon named "equalizer sharp".
  static const IconData equalizer_sharp = IconData(0xec80, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">error</i> &#x2014; material icon named "error".
  static const IconData error = IconData(0xe700, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">error_outline</i> &#x2014; material icon named "error outline".
  static const IconData error_outline = IconData(0xe701, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">error_outline</i> &#x2014; material icon named "error outline outlined".
  static const IconData error_outline_outlined = IconData(0xe180, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">error_outline</i> &#x2014; material icon named "error outline rounded".
  static const IconData error_outline_rounded = IconData(0xf1af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">error_outline</i> &#x2014; material icon named "error outline sharp".
  static const IconData error_outline_sharp = IconData(0xec81, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">error</i> &#x2014; material icon named "error outlined".
  static const IconData error_outlined = IconData(0xe181, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">error</i> &#x2014; material icon named "error rounded".
  static const IconData error_rounded = IconData(0xf1b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">error</i> &#x2014; material icon named "error sharp".
  static const IconData error_sharp = IconData(0xec82, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">escalator</i> &#x2014; material icon named "escalator".
  static const IconData escalator = IconData(0xe702, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">escalator</i> &#x2014; material icon named "escalator outlined".
  static const IconData escalator_outlined = IconData(0xe182, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">escalator</i> &#x2014; material icon named "escalator rounded".
  static const IconData escalator_rounded = IconData(0xf1b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">escalator</i> &#x2014; material icon named "escalator sharp".
  static const IconData escalator_sharp = IconData(0xec83, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">escalator_warning</i> &#x2014; material icon named "escalator warning".
  static const IconData escalator_warning = IconData(0xe703, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">escalator_warning</i> &#x2014; material icon named "escalator warning outlined".
  static const IconData escalator_warning_outlined = IconData(0xe183, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">escalator_warning</i> &#x2014; material icon named "escalator warning rounded".
  static const IconData escalator_warning_rounded = IconData(0xf1b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">escalator_warning</i> &#x2014; material icon named "escalator warning sharp".
  static const IconData escalator_warning_sharp = IconData(0xec84, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">euro</i> &#x2014; material icon named "euro".
  static const IconData euro = IconData(0xe704, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">euro</i> &#x2014; material icon named "euro outlined".
  static const IconData euro_outlined = IconData(0xe184, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">euro</i> &#x2014; material icon named "euro rounded".
  static const IconData euro_rounded = IconData(0xf1b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">euro</i> &#x2014; material icon named "euro sharp".
  static const IconData euro_sharp = IconData(0xec85, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">euro_symbol</i> &#x2014; material icon named "euro symbol".
  static const IconData euro_symbol = IconData(0xe705, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">euro_symbol</i> &#x2014; material icon named "euro symbol outlined".
  static const IconData euro_symbol_outlined = IconData(0xe185, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">euro_symbol</i> &#x2014; material icon named "euro symbol rounded".
  static const IconData euro_symbol_rounded = IconData(0xf1b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">euro_symbol</i> &#x2014; material icon named "euro symbol sharp".
  static const IconData euro_symbol_sharp = IconData(0xec86, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">ev_station</i> &#x2014; material icon named "ev station".
  static const IconData ev_station = IconData(0xe706, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">ev_station</i> &#x2014; material icon named "ev station outlined".
  static const IconData ev_station_outlined = IconData(0xe186, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">ev_station</i> &#x2014; material icon named "ev station rounded".
  static const IconData ev_station_rounded = IconData(0xf1b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">ev_station</i> &#x2014; material icon named "ev station sharp".
  static const IconData ev_station_sharp = IconData(0xec87, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">event</i> &#x2014; material icon named "event".
  static const IconData event = IconData(0xe707, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">event_available</i> &#x2014; material icon named "event available".
  static const IconData event_available = IconData(0xe708, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">event_available</i> &#x2014; material icon named "event available outlined".
  static const IconData event_available_outlined = IconData(0xe187, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">event_available</i> &#x2014; material icon named "event available rounded".
  static const IconData event_available_rounded = IconData(0xf1b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">event_available</i> &#x2014; material icon named "event available sharp".
  static const IconData event_available_sharp = IconData(0xec88, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">event_busy</i> &#x2014; material icon named "event busy".
  static const IconData event_busy = IconData(0xe709, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">event_busy</i> &#x2014; material icon named "event busy outlined".
  static const IconData event_busy_outlined = IconData(0xe188, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">event_busy</i> &#x2014; material icon named "event busy rounded".
  static const IconData event_busy_rounded = IconData(0xf1b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">event_busy</i> &#x2014; material icon named "event busy sharp".
  static const IconData event_busy_sharp = IconData(0xec89, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">event_note</i> &#x2014; material icon named "event note".
  static const IconData event_note = IconData(0xe70a, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">event_note</i> &#x2014; material icon named "event note outlined".
  static const IconData event_note_outlined = IconData(0xe189, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">event_note</i> &#x2014; material icon named "event note rounded".
  static const IconData event_note_rounded = IconData(0xf1b8, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">event_note</i> &#x2014; material icon named "event note sharp".
  static const IconData event_note_sharp = IconData(0xec8a, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">event</i> &#x2014; material icon named "event outlined".
  static const IconData event_outlined = IconData(0xe18a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">event</i> &#x2014; material icon named "event rounded".
  static const IconData event_rounded = IconData(0xf1b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">event_seat</i> &#x2014; material icon named "event seat".
  static const IconData event_seat = IconData(0xe70b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">event_seat</i> &#x2014; material icon named "event seat outlined".
  static const IconData event_seat_outlined = IconData(0xe18b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">event_seat</i> &#x2014; material icon named "event seat rounded".
  static const IconData event_seat_rounded = IconData(0xf1ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">event_seat</i> &#x2014; material icon named "event seat sharp".
  static const IconData event_seat_sharp = IconData(0xec8b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">event</i> &#x2014; material icon named "event sharp".
  static const IconData event_sharp = IconData(0xec8c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">exit_to_app</i> &#x2014; material icon named "exit to app".
  static const IconData exit_to_app = IconData(0xe70c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">exit_to_app</i> &#x2014; material icon named "exit to app outlined".
  static const IconData exit_to_app_outlined = IconData(0xe18c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">exit_to_app</i> &#x2014; material icon named "exit to app rounded".
  static const IconData exit_to_app_rounded = IconData(0xf1bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">exit_to_app</i> &#x2014; material icon named "exit to app sharp".
  static const IconData exit_to_app_sharp = IconData(0xec8d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">expand</i> &#x2014; material icon named "expand".
  static const IconData expand = IconData(0xe70d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">expand_less</i> &#x2014; material icon named "expand less".
  static const IconData expand_less = IconData(0xe70e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">expand_less</i> &#x2014; material icon named "expand less outlined".
  static const IconData expand_less_outlined = IconData(0xe18d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">expand_less</i> &#x2014; material icon named "expand less rounded".
  static const IconData expand_less_rounded = IconData(0xf1bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">expand_less</i> &#x2014; material icon named "expand less sharp".
  static const IconData expand_less_sharp = IconData(0xec8e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">expand_more</i> &#x2014; material icon named "expand more".
  static const IconData expand_more = IconData(0xe70f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">expand_more</i> &#x2014; material icon named "expand more outlined".
  static const IconData expand_more_outlined = IconData(0xe18e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">expand_more</i> &#x2014; material icon named "expand more rounded".
  static const IconData expand_more_rounded = IconData(0xf1bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">expand_more</i> &#x2014; material icon named "expand more sharp".
  static const IconData expand_more_sharp = IconData(0xec8f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">explicit</i> &#x2014; material icon named "explicit".
  static const IconData explicit = IconData(0xe710, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">explicit</i> &#x2014; material icon named "explicit outlined".
  static const IconData explicit_outlined = IconData(0xe18f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">explicit</i> &#x2014; material icon named "explicit rounded".
  static const IconData explicit_rounded = IconData(0xf1be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">explicit</i> &#x2014; material icon named "explicit sharp".
  static const IconData explicit_sharp = IconData(0xec90, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">explore</i> &#x2014; material icon named "explore".
  static const IconData explore = IconData(0xe711, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">explore_off</i> &#x2014; material icon named "explore off".
  static const IconData explore_off = IconData(0xe712, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">explore_off</i> &#x2014; material icon named "explore off outlined".
  static const IconData explore_off_outlined = IconData(0xe190, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">explore_off</i> &#x2014; material icon named "explore off rounded".
  static const IconData explore_off_rounded = IconData(0xf1bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">explore_off</i> &#x2014; material icon named "explore off sharp".
  static const IconData explore_off_sharp = IconData(0xec91, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">explore</i> &#x2014; material icon named "explore outlined".
  static const IconData explore_outlined = IconData(0xe191, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">explore</i> &#x2014; material icon named "explore rounded".
  static const IconData explore_rounded = IconData(0xf1c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">explore</i> &#x2014; material icon named "explore sharp".
  static const IconData explore_sharp = IconData(0xec92, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">exposure</i> &#x2014; material icon named "exposure".
  static const IconData exposure = IconData(0xe713, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">exposure_minus_1</i> &#x2014; material icon named "exposure minus 1".
  static const IconData exposure_minus_1 = IconData(0xe714, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">exposure_minus_1</i> &#x2014; material icon named "exposure minus 1 outlined".
  static const IconData exposure_minus_1_outlined = IconData(0xe192, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">exposure_minus_1</i> &#x2014; material icon named "exposure minus 1 rounded".
  static const IconData exposure_minus_1_rounded = IconData(0xf1c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">exposure_minus_1</i> &#x2014; material icon named "exposure minus 1 sharp".
  static const IconData exposure_minus_1_sharp = IconData(0xec93, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">exposure_minus_2</i> &#x2014; material icon named "exposure minus 2".
  static const IconData exposure_minus_2 = IconData(0xe715, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">exposure_minus_2</i> &#x2014; material icon named "exposure minus 2 outlined".
  static const IconData exposure_minus_2_outlined = IconData(0xe193, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">exposure_minus_2</i> &#x2014; material icon named "exposure minus 2 rounded".
  static const IconData exposure_minus_2_rounded = IconData(0xf1c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">exposure_minus_2</i> &#x2014; material icon named "exposure minus 2 sharp".
  static const IconData exposure_minus_2_sharp = IconData(0xec94, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">exposure_neg_1</i> &#x2014; material icon named "exposure neg 1".
  static const IconData exposure_neg_1 = IconData(0xe714, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">exposure_neg_1</i> &#x2014; material icon named "exposure neg 1 outlined".
  static const IconData exposure_neg_1_outlined = IconData(0xe192, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">exposure_neg_1</i> &#x2014; material icon named "exposure neg 1 rounded".
  static const IconData exposure_neg_1_rounded = IconData(0xf1c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">exposure_neg_1</i> &#x2014; material icon named "exposure neg 1 sharp".
  static const IconData exposure_neg_1_sharp = IconData(0xec93, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">exposure_neg_2</i> &#x2014; material icon named "exposure neg 2".
  static const IconData exposure_neg_2 = IconData(0xe715, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">exposure_neg_2</i> &#x2014; material icon named "exposure neg 2 outlined".
  static const IconData exposure_neg_2_outlined = IconData(0xe193, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">exposure_neg_2</i> &#x2014; material icon named "exposure neg 2 rounded".
  static const IconData exposure_neg_2_rounded = IconData(0xf1c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">exposure_neg_2</i> &#x2014; material icon named "exposure neg 2 sharp".
  static const IconData exposure_neg_2_sharp = IconData(0xec94, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">exposure</i> &#x2014; material icon named "exposure outlined".
  static const IconData exposure_outlined = IconData(0xe194, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">exposure_plus_1</i> &#x2014; material icon named "exposure plus 1".
  static const IconData exposure_plus_1 = IconData(0xe716, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">exposure_plus_1</i> &#x2014; material icon named "exposure plus 1 outlined".
  static const IconData exposure_plus_1_outlined = IconData(0xe195, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">exposure_plus_1</i> &#x2014; material icon named "exposure plus 1 rounded".
  static const IconData exposure_plus_1_rounded = IconData(0xf1c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">exposure_plus_1</i> &#x2014; material icon named "exposure plus 1 sharp".
  static const IconData exposure_plus_1_sharp = IconData(0xec95, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">exposure_plus_2</i> &#x2014; material icon named "exposure plus 2".
  static const IconData exposure_plus_2 = IconData(0xe717, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">exposure_plus_2</i> &#x2014; material icon named "exposure plus 2 outlined".
  static const IconData exposure_plus_2_outlined = IconData(0xe196, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">exposure_plus_2</i> &#x2014; material icon named "exposure plus 2 rounded".
  static const IconData exposure_plus_2_rounded = IconData(0xf1c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">exposure_plus_2</i> &#x2014; material icon named "exposure plus 2 sharp".
  static const IconData exposure_plus_2_sharp = IconData(0xec96, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">exposure</i> &#x2014; material icon named "exposure rounded".
  static const IconData exposure_rounded = IconData(0xf1c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">exposure</i> &#x2014; material icon named "exposure sharp".
  static const IconData exposure_sharp = IconData(0xec97, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">exposure_zero</i> &#x2014; material icon named "exposure zero".
  static const IconData exposure_zero = IconData(0xe718, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">exposure_zero</i> &#x2014; material icon named "exposure zero outlined".
  static const IconData exposure_zero_outlined = IconData(0xe197, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">exposure_zero</i> &#x2014; material icon named "exposure zero rounded".
  static const IconData exposure_zero_rounded = IconData(0xf1c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">exposure_zero</i> &#x2014; material icon named "exposure zero sharp".
  static const IconData exposure_zero_sharp = IconData(0xec98, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">extension</i> &#x2014; material icon named "extension".
  static const IconData extension = IconData(0xe719, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">extension</i> &#x2014; material icon named "extension outlined".
  static const IconData extension_outlined = IconData(0xe198, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">extension</i> &#x2014; material icon named "extension rounded".
  static const IconData extension_rounded = IconData(0xf1c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">extension</i> &#x2014; material icon named "extension sharp".
  static const IconData extension_sharp = IconData(0xec99, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">face</i> &#x2014; material icon named "face".
  static const IconData face = IconData(0xe71a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">face</i> &#x2014; material icon named "face outlined".
  static const IconData face_outlined = IconData(0xe199, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">face_retouching_natural</i> &#x2014; material icon named "face retouching natural".
  static const IconData face_retouching_natural = IconData(0xe71b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">face</i> &#x2014; material icon named "face rounded".
  static const IconData face_rounded = IconData(0xf1c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">face</i> &#x2014; material icon named "face sharp".
  static const IconData face_sharp = IconData(0xec9a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">face_unlock</i> &#x2014; material icon named "face unlock outlined".
  static const IconData face_unlock_outlined = IconData(0xe19a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">face_unlock</i> &#x2014; material icon named "face unlock rounded".
  static const IconData face_unlock_rounded = IconData(0xf1c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">face_unlock</i> &#x2014; material icon named "face unlock sharp".
  static const IconData face_unlock_sharp = IconData(0xec9b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fact_check</i> &#x2014; material icon named "fact check".
  static const IconData fact_check = IconData(0xe71c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fact_check</i> &#x2014; material icon named "fact check outlined".
  static const IconData fact_check_outlined = IconData(0xe19b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fact_check</i> &#x2014; material icon named "fact check rounded".
  static const IconData fact_check_rounded = IconData(0xf1ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fact_check</i> &#x2014; material icon named "fact check sharp".
  static const IconData fact_check_sharp = IconData(0xec9c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">family_restroom</i> &#x2014; material icon named "family restroom".
  static const IconData family_restroom = IconData(0xe71d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">family_restroom</i> &#x2014; material icon named "family restroom outlined".
  static const IconData family_restroom_outlined = IconData(0xe19c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">family_restroom</i> &#x2014; material icon named "family restroom rounded".
  static const IconData family_restroom_rounded = IconData(0xf1cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">family_restroom</i> &#x2014; material icon named "family restroom sharp".
  static const IconData family_restroom_sharp = IconData(0xec9d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fast_forward</i> &#x2014; material icon named "fast forward".
  static const IconData fast_forward = IconData(0xe71e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fast_forward</i> &#x2014; material icon named "fast forward outlined".
  static const IconData fast_forward_outlined = IconData(0xe19d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fast_forward</i> &#x2014; material icon named "fast forward rounded".
  static const IconData fast_forward_rounded = IconData(0xf1cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fast_forward</i> &#x2014; material icon named "fast forward sharp".
  static const IconData fast_forward_sharp = IconData(0xec9e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fast_rewind</i> &#x2014; material icon named "fast rewind".
  static const IconData fast_rewind = IconData(0xe71f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fast_rewind</i> &#x2014; material icon named "fast rewind outlined".
  static const IconData fast_rewind_outlined = IconData(0xe19e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fast_rewind</i> &#x2014; material icon named "fast rewind rounded".
  static const IconData fast_rewind_rounded = IconData(0xf1cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fast_rewind</i> &#x2014; material icon named "fast rewind sharp".
  static const IconData fast_rewind_sharp = IconData(0xec9f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fastfood</i> &#x2014; material icon named "fastfood".
  static const IconData fastfood = IconData(0xe720, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fastfood</i> &#x2014; material icon named "fastfood outlined".
  static const IconData fastfood_outlined = IconData(0xe19f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fastfood</i> &#x2014; material icon named "fastfood rounded".
  static const IconData fastfood_rounded = IconData(0xf1ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fastfood</i> &#x2014; material icon named "fastfood sharp".
  static const IconData fastfood_sharp = IconData(0xeca0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">favorite</i> &#x2014; material icon named "favorite".
  static const IconData favorite = IconData(0xe721, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">favorite_border</i> &#x2014; material icon named "favorite border".
  static const IconData favorite_border = IconData(0xe722, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">favorite_border</i> &#x2014; material icon named "favorite border outlined".
  static const IconData favorite_border_outlined = IconData(0xe1a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">favorite_border</i> &#x2014; material icon named "favorite border rounded".
  static const IconData favorite_border_rounded = IconData(0xf1cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">favorite_border</i> &#x2014; material icon named "favorite border sharp".
  static const IconData favorite_border_sharp = IconData(0xeca1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">favorite_outline</i> &#x2014; material icon named "favorite outline".
  static const IconData favorite_outline = IconData(0xe722, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">favorite_outline</i> &#x2014; material icon named "favorite outline outlined".
  static const IconData favorite_outline_outlined = IconData(0xe1a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">favorite_outline</i> &#x2014; material icon named "favorite outline rounded".
  static const IconData favorite_outline_rounded = IconData(0xf1cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">favorite_outline</i> &#x2014; material icon named "favorite outline sharp".
  static const IconData favorite_outline_sharp = IconData(0xeca1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">favorite</i> &#x2014; material icon named "favorite outlined".
  static const IconData favorite_outlined = IconData(0xe1a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">favorite</i> &#x2014; material icon named "favorite rounded".
  static const IconData favorite_rounded = IconData(0xf1d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">favorite</i> &#x2014; material icon named "favorite sharp".
  static const IconData favorite_sharp = IconData(0xeca2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">featured_play_list</i> &#x2014; material icon named "featured play list".
  static const IconData featured_play_list = IconData(0xe723, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">featured_play_list</i> &#x2014; material icon named "featured play list outlined".
  static const IconData featured_play_list_outlined = IconData(0xe1a2, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">featured_play_list</i> &#x2014; material icon named "featured play list rounded".
  static const IconData featured_play_list_rounded = IconData(0xf1d1, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">featured_play_list</i> &#x2014; material icon named "featured play list sharp".
  static const IconData featured_play_list_sharp = IconData(0xeca3, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">featured_video</i> &#x2014; material icon named "featured video".
  static const IconData featured_video = IconData(0xe724, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">featured_video</i> &#x2014; material icon named "featured video outlined".
  static const IconData featured_video_outlined = IconData(0xe1a3, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">featured_video</i> &#x2014; material icon named "featured video rounded".
  static const IconData featured_video_rounded = IconData(0xf1d2, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">featured_video</i> &#x2014; material icon named "featured video sharp".
  static const IconData featured_video_sharp = IconData(0xeca4, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">feedback</i> &#x2014; material icon named "feedback".
  static const IconData feedback = IconData(0xe725, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">feedback</i> &#x2014; material icon named "feedback outlined".
  static const IconData feedback_outlined = IconData(0xe1a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">feedback</i> &#x2014; material icon named "feedback rounded".
  static const IconData feedback_rounded = IconData(0xf1d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">feedback</i> &#x2014; material icon named "feedback sharp".
  static const IconData feedback_sharp = IconData(0xeca5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fence</i> &#x2014; material icon named "fence".
  static const IconData fence = IconData(0xe726, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fence</i> &#x2014; material icon named "fence outlined".
  static const IconData fence_outlined = IconData(0xe1a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fence</i> &#x2014; material icon named "fence rounded".
  static const IconData fence_rounded = IconData(0xf1d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fence</i> &#x2014; material icon named "fence sharp".
  static const IconData fence_sharp = IconData(0xeca6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">festival</i> &#x2014; material icon named "festival".
  static const IconData festival = IconData(0xe727, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fiber_dvr</i> &#x2014; material icon named "fiber dvr".
  static const IconData fiber_dvr = IconData(0xe728, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fiber_dvr</i> &#x2014; material icon named "fiber dvr outlined".
  static const IconData fiber_dvr_outlined = IconData(0xe1a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fiber_dvr</i> &#x2014; material icon named "fiber dvr rounded".
  static const IconData fiber_dvr_rounded = IconData(0xf1d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fiber_dvr</i> &#x2014; material icon named "fiber dvr sharp".
  static const IconData fiber_dvr_sharp = IconData(0xeca7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fiber_manual_record</i> &#x2014; material icon named "fiber manual record".
  static const IconData fiber_manual_record = IconData(0xe729, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fiber_manual_record</i> &#x2014; material icon named "fiber manual record outlined".
  static const IconData fiber_manual_record_outlined = IconData(0xe1a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fiber_manual_record</i> &#x2014; material icon named "fiber manual record rounded".
  static const IconData fiber_manual_record_rounded = IconData(0xf1d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fiber_manual_record</i> &#x2014; material icon named "fiber manual record sharp".
  static const IconData fiber_manual_record_sharp = IconData(0xeca8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fiber_new</i> &#x2014; material icon named "fiber new".
  static const IconData fiber_new = IconData(0xe72a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fiber_new</i> &#x2014; material icon named "fiber new outlined".
  static const IconData fiber_new_outlined = IconData(0xe1a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fiber_new</i> &#x2014; material icon named "fiber new rounded".
  static const IconData fiber_new_rounded = IconData(0xf1d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fiber_new</i> &#x2014; material icon named "fiber new sharp".
  static const IconData fiber_new_sharp = IconData(0xeca9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fiber_pin</i> &#x2014; material icon named "fiber pin".
  static const IconData fiber_pin = IconData(0xe72b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fiber_pin</i> &#x2014; material icon named "fiber pin outlined".
  static const IconData fiber_pin_outlined = IconData(0xe1a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fiber_pin</i> &#x2014; material icon named "fiber pin rounded".
  static const IconData fiber_pin_rounded = IconData(0xf1d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fiber_pin</i> &#x2014; material icon named "fiber pin sharp".
  static const IconData fiber_pin_sharp = IconData(0xecaa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fiber_smart_record</i> &#x2014; material icon named "fiber smart record".
  static const IconData fiber_smart_record = IconData(0xe72c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fiber_smart_record</i> &#x2014; material icon named "fiber smart record outlined".
  static const IconData fiber_smart_record_outlined = IconData(0xe1aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fiber_smart_record</i> &#x2014; material icon named "fiber smart record rounded".
  static const IconData fiber_smart_record_rounded = IconData(0xf1d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fiber_smart_record</i> &#x2014; material icon named "fiber smart record sharp".
  static const IconData fiber_smart_record_sharp = IconData(0xecab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">file_copy</i> &#x2014; material icon named "file copy".
  static const IconData file_copy = IconData(0xe72d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">file_copy</i> &#x2014; material icon named "file copy outlined".
  static const IconData file_copy_outlined = IconData(0xe1ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">file_copy</i> &#x2014; material icon named "file copy rounded".
  static const IconData file_copy_rounded = IconData(0xf1da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">file_copy</i> &#x2014; material icon named "file copy sharp".
  static const IconData file_copy_sharp = IconData(0xecac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">file_download</i> &#x2014; material icon named "file download".
  static const IconData file_download = IconData(0xe72e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">file_download_done</i> &#x2014; material icon named "file download done".
  static const IconData file_download_done = IconData(0xe72f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">file_present</i> &#x2014; material icon named "file present".
  static const IconData file_present = IconData(0xe730, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">file_upload</i> &#x2014; material icon named "file upload".
  static const IconData file_upload = IconData(0xe731, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter</i> &#x2014; material icon named "filter".
  static const IconData filter = IconData(0xe732, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_1</i> &#x2014; material icon named "filter 1".
  static const IconData filter_1 = IconData(0xe733, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_1</i> &#x2014; material icon named "filter 1 outlined".
  static const IconData filter_1_outlined = IconData(0xe1ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_1</i> &#x2014; material icon named "filter 1 rounded".
  static const IconData filter_1_rounded = IconData(0xf1db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_1</i> &#x2014; material icon named "filter 1 sharp".
  static const IconData filter_1_sharp = IconData(0xecad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_2</i> &#x2014; material icon named "filter 2".
  static const IconData filter_2 = IconData(0xe734, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_2</i> &#x2014; material icon named "filter 2 outlined".
  static const IconData filter_2_outlined = IconData(0xe1ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_2</i> &#x2014; material icon named "filter 2 rounded".
  static const IconData filter_2_rounded = IconData(0xf1dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_2</i> &#x2014; material icon named "filter 2 sharp".
  static const IconData filter_2_sharp = IconData(0xecae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_3</i> &#x2014; material icon named "filter 3".
  static const IconData filter_3 = IconData(0xe735, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_3</i> &#x2014; material icon named "filter 3 outlined".
  static const IconData filter_3_outlined = IconData(0xe1ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_3</i> &#x2014; material icon named "filter 3 rounded".
  static const IconData filter_3_rounded = IconData(0xf1dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_3</i> &#x2014; material icon named "filter 3 sharp".
  static const IconData filter_3_sharp = IconData(0xecaf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_4</i> &#x2014; material icon named "filter 4".
  static const IconData filter_4 = IconData(0xe736, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_4</i> &#x2014; material icon named "filter 4 outlined".
  static const IconData filter_4_outlined = IconData(0xe1af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_4</i> &#x2014; material icon named "filter 4 rounded".
  static const IconData filter_4_rounded = IconData(0xf1de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_4</i> &#x2014; material icon named "filter 4 sharp".
  static const IconData filter_4_sharp = IconData(0xecb0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_5</i> &#x2014; material icon named "filter 5".
  static const IconData filter_5 = IconData(0xe737, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_5</i> &#x2014; material icon named "filter 5 outlined".
  static const IconData filter_5_outlined = IconData(0xe1b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_5</i> &#x2014; material icon named "filter 5 rounded".
  static const IconData filter_5_rounded = IconData(0xf1df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_5</i> &#x2014; material icon named "filter 5 sharp".
  static const IconData filter_5_sharp = IconData(0xecb1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_6</i> &#x2014; material icon named "filter 6".
  static const IconData filter_6 = IconData(0xe738, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_6</i> &#x2014; material icon named "filter 6 outlined".
  static const IconData filter_6_outlined = IconData(0xe1b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_6</i> &#x2014; material icon named "filter 6 rounded".
  static const IconData filter_6_rounded = IconData(0xf1e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_6</i> &#x2014; material icon named "filter 6 sharp".
  static const IconData filter_6_sharp = IconData(0xecb2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_7</i> &#x2014; material icon named "filter 7".
  static const IconData filter_7 = IconData(0xe739, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_7</i> &#x2014; material icon named "filter 7 outlined".
  static const IconData filter_7_outlined = IconData(0xe1b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_7</i> &#x2014; material icon named "filter 7 rounded".
  static const IconData filter_7_rounded = IconData(0xf1e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_7</i> &#x2014; material icon named "filter 7 sharp".
  static const IconData filter_7_sharp = IconData(0xecb3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_8</i> &#x2014; material icon named "filter 8".
  static const IconData filter_8 = IconData(0xe73a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_8</i> &#x2014; material icon named "filter 8 outlined".
  static const IconData filter_8_outlined = IconData(0xe1b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_8</i> &#x2014; material icon named "filter 8 rounded".
  static const IconData filter_8_rounded = IconData(0xf1e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_8</i> &#x2014; material icon named "filter 8 sharp".
  static const IconData filter_8_sharp = IconData(0xecb4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_9</i> &#x2014; material icon named "filter 9".
  static const IconData filter_9 = IconData(0xe73b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_9</i> &#x2014; material icon named "filter 9 outlined".
  static const IconData filter_9_outlined = IconData(0xe1b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_9_plus</i> &#x2014; material icon named "filter 9 plus".
  static const IconData filter_9_plus = IconData(0xe73c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_9_plus</i> &#x2014; material icon named "filter 9 plus outlined".
  static const IconData filter_9_plus_outlined = IconData(0xe1b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_9_plus</i> &#x2014; material icon named "filter 9 plus rounded".
  static const IconData filter_9_plus_rounded = IconData(0xf1e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_9_plus</i> &#x2014; material icon named "filter 9 plus sharp".
  static const IconData filter_9_plus_sharp = IconData(0xecb5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_9</i> &#x2014; material icon named "filter 9 rounded".
  static const IconData filter_9_rounded = IconData(0xf1e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_9</i> &#x2014; material icon named "filter 9 sharp".
  static const IconData filter_9_sharp = IconData(0xecb6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_alt</i> &#x2014; material icon named "filter alt".
  static const IconData filter_alt = IconData(0xe73d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_alt</i> &#x2014; material icon named "filter alt outlined".
  static const IconData filter_alt_outlined = IconData(0xe1b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_alt</i> &#x2014; material icon named "filter alt rounded".
  static const IconData filter_alt_rounded = IconData(0xf1e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_alt</i> &#x2014; material icon named "filter alt sharp".
  static const IconData filter_alt_sharp = IconData(0xecb7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_b_and_w</i> &#x2014; material icon named "filter b and w".
  static const IconData filter_b_and_w = IconData(0xe73e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_b_and_w</i> &#x2014; material icon named "filter b and w outlined".
  static const IconData filter_b_and_w_outlined = IconData(0xe1b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_b_and_w</i> &#x2014; material icon named "filter b and w rounded".
  static const IconData filter_b_and_w_rounded = IconData(0xf1e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_b_and_w</i> &#x2014; material icon named "filter b and w sharp".
  static const IconData filter_b_and_w_sharp = IconData(0xecb8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_center_focus</i> &#x2014; material icon named "filter center focus".
  static const IconData filter_center_focus = IconData(0xe73f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_center_focus</i> &#x2014; material icon named "filter center focus outlined".
  static const IconData filter_center_focus_outlined = IconData(0xe1b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_center_focus</i> &#x2014; material icon named "filter center focus rounded".
  static const IconData filter_center_focus_rounded = IconData(0xf1e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_center_focus</i> &#x2014; material icon named "filter center focus sharp".
  static const IconData filter_center_focus_sharp = IconData(0xecb9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_drama</i> &#x2014; material icon named "filter drama".
  static const IconData filter_drama = IconData(0xe740, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_drama</i> &#x2014; material icon named "filter drama outlined".
  static const IconData filter_drama_outlined = IconData(0xe1b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_drama</i> &#x2014; material icon named "filter drama rounded".
  static const IconData filter_drama_rounded = IconData(0xf1e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_drama</i> &#x2014; material icon named "filter drama sharp".
  static const IconData filter_drama_sharp = IconData(0xecba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_frames</i> &#x2014; material icon named "filter frames".
  static const IconData filter_frames = IconData(0xe741, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_frames</i> &#x2014; material icon named "filter frames outlined".
  static const IconData filter_frames_outlined = IconData(0xe1ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_frames</i> &#x2014; material icon named "filter frames rounded".
  static const IconData filter_frames_rounded = IconData(0xf1e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_frames</i> &#x2014; material icon named "filter frames sharp".
  static const IconData filter_frames_sharp = IconData(0xecbb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_hdr</i> &#x2014; material icon named "filter hdr".
  static const IconData filter_hdr = IconData(0xe742, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_hdr</i> &#x2014; material icon named "filter hdr outlined".
  static const IconData filter_hdr_outlined = IconData(0xe1bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_hdr</i> &#x2014; material icon named "filter hdr rounded".
  static const IconData filter_hdr_rounded = IconData(0xf1ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_hdr</i> &#x2014; material icon named "filter hdr sharp".
  static const IconData filter_hdr_sharp = IconData(0xecbc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_list</i> &#x2014; material icon named "filter list".
  static const IconData filter_list = IconData(0xe743, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_list_alt</i> &#x2014; material icon named "filter list alt".
  static const IconData filter_list_alt = IconData(0xe744, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_list</i> &#x2014; material icon named "filter list outlined".
  static const IconData filter_list_outlined = IconData(0xe1bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_list</i> &#x2014; material icon named "filter list rounded".
  static const IconData filter_list_rounded = IconData(0xf1eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_list</i> &#x2014; material icon named "filter list sharp".
  static const IconData filter_list_sharp = IconData(0xecbd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_none</i> &#x2014; material icon named "filter none".
  static const IconData filter_none = IconData(0xe745, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_none</i> &#x2014; material icon named "filter none outlined".
  static const IconData filter_none_outlined = IconData(0xe1bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_none</i> &#x2014; material icon named "filter none rounded".
  static const IconData filter_none_rounded = IconData(0xf1ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_none</i> &#x2014; material icon named "filter none sharp".
  static const IconData filter_none_sharp = IconData(0xecbe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter</i> &#x2014; material icon named "filter outlined".
  static const IconData filter_outlined = IconData(0xe1be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter</i> &#x2014; material icon named "filter rounded".
  static const IconData filter_rounded = IconData(0xf1ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter</i> &#x2014; material icon named "filter sharp".
  static const IconData filter_sharp = IconData(0xecbf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_tilt_shift</i> &#x2014; material icon named "filter tilt shift".
  static const IconData filter_tilt_shift = IconData(0xe746, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_tilt_shift</i> &#x2014; material icon named "filter tilt shift outlined".
  static const IconData filter_tilt_shift_outlined = IconData(0xe1bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_tilt_shift</i> &#x2014; material icon named "filter tilt shift rounded".
  static const IconData filter_tilt_shift_rounded = IconData(0xf1ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_tilt_shift</i> &#x2014; material icon named "filter tilt shift sharp".
  static const IconData filter_tilt_shift_sharp = IconData(0xecc0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_vintage</i> &#x2014; material icon named "filter vintage".
  static const IconData filter_vintage = IconData(0xe747, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_vintage</i> &#x2014; material icon named "filter vintage outlined".
  static const IconData filter_vintage_outlined = IconData(0xe1c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_vintage</i> &#x2014; material icon named "filter vintage rounded".
  static const IconData filter_vintage_rounded = IconData(0xf1ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_vintage</i> &#x2014; material icon named "filter vintage sharp".
  static const IconData filter_vintage_sharp = IconData(0xecc1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">find_in_page</i> &#x2014; material icon named "find in page".
  static const IconData find_in_page = IconData(0xe748, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">find_in_page</i> &#x2014; material icon named "find in page outlined".
  static const IconData find_in_page_outlined = IconData(0xe1c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">find_in_page</i> &#x2014; material icon named "find in page rounded".
  static const IconData find_in_page_rounded = IconData(0xf1f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">find_in_page</i> &#x2014; material icon named "find in page sharp".
  static const IconData find_in_page_sharp = IconData(0xecc2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">find_replace</i> &#x2014; material icon named "find replace".
  static const IconData find_replace = IconData(0xe749, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">find_replace</i> &#x2014; material icon named "find replace outlined".
  static const IconData find_replace_outlined = IconData(0xe1c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">find_replace</i> &#x2014; material icon named "find replace rounded".
  static const IconData find_replace_rounded = IconData(0xf1f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">find_replace</i> &#x2014; material icon named "find replace sharp".
  static const IconData find_replace_sharp = IconData(0xecc3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fingerprint</i> &#x2014; material icon named "fingerprint".
  static const IconData fingerprint = IconData(0xe74a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fingerprint</i> &#x2014; material icon named "fingerprint outlined".
  static const IconData fingerprint_outlined = IconData(0xe1c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fingerprint</i> &#x2014; material icon named "fingerprint rounded".
  static const IconData fingerprint_rounded = IconData(0xf1f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fingerprint</i> &#x2014; material icon named "fingerprint sharp".
  static const IconData fingerprint_sharp = IconData(0xecc4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fire_extinguisher</i> &#x2014; material icon named "fire extinguisher".
  static const IconData fire_extinguisher = IconData(0xe74b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fire_extinguisher</i> &#x2014; material icon named "fire extinguisher outlined".
  static const IconData fire_extinguisher_outlined = IconData(0xe1c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fire_extinguisher</i> &#x2014; material icon named "fire extinguisher rounded".
  static const IconData fire_extinguisher_rounded = IconData(0xf1f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fire_extinguisher</i> &#x2014; material icon named "fire extinguisher sharp".
  static const IconData fire_extinguisher_sharp = IconData(0xecc5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fire_hydrant</i> &#x2014; material icon named "fire hydrant".
  static const IconData fire_hydrant = IconData(0xe74c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fireplace</i> &#x2014; material icon named "fireplace".
  static const IconData fireplace = IconData(0xe74d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fireplace</i> &#x2014; material icon named "fireplace outlined".
  static const IconData fireplace_outlined = IconData(0xe1c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fireplace</i> &#x2014; material icon named "fireplace rounded".
  static const IconData fireplace_rounded = IconData(0xf1f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fireplace</i> &#x2014; material icon named "fireplace sharp".
  static const IconData fireplace_sharp = IconData(0xecc6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">first_page</i> &#x2014; material icon named "first page".
  static const IconData first_page = IconData(0xe74e, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">first_page</i> &#x2014; material icon named "first page outlined".
  static const IconData first_page_outlined = IconData(0xe1c6, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">first_page</i> &#x2014; material icon named "first page rounded".
  static const IconData first_page_rounded = IconData(0xf1f5, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">first_page</i> &#x2014; material icon named "first page sharp".
  static const IconData first_page_sharp = IconData(0xecc7, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">fit_screen</i> &#x2014; material icon named "fit screen".
  static const IconData fit_screen = IconData(0xe74f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fitness_center</i> &#x2014; material icon named "fitness center".
  static const IconData fitness_center = IconData(0xe750, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fitness_center</i> &#x2014; material icon named "fitness center outlined".
  static const IconData fitness_center_outlined = IconData(0xe1c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fitness_center</i> &#x2014; material icon named "fitness center rounded".
  static const IconData fitness_center_rounded = IconData(0xf1f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fitness_center</i> &#x2014; material icon named "fitness center sharp".
  static const IconData fitness_center_sharp = IconData(0xecc8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flag</i> &#x2014; material icon named "flag".
  static const IconData flag = IconData(0xe751, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flag</i> &#x2014; material icon named "flag outlined".
  static const IconData flag_outlined = IconData(0xe1c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flag</i> &#x2014; material icon named "flag rounded".
  static const IconData flag_rounded = IconData(0xf1f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flag</i> &#x2014; material icon named "flag sharp".
  static const IconData flag_sharp = IconData(0xecc9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flaky</i> &#x2014; material icon named "flaky".
  static const IconData flaky = IconData(0xe752, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flaky</i> &#x2014; material icon named "flaky outlined".
  static const IconData flaky_outlined = IconData(0xe1c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flaky</i> &#x2014; material icon named "flaky rounded".
  static const IconData flaky_rounded = IconData(0xf1f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flaky</i> &#x2014; material icon named "flaky sharp".
  static const IconData flaky_sharp = IconData(0xecca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flare</i> &#x2014; material icon named "flare".
  static const IconData flare = IconData(0xe753, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flare</i> &#x2014; material icon named "flare outlined".
  static const IconData flare_outlined = IconData(0xe1ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flare</i> &#x2014; material icon named "flare rounded".
  static const IconData flare_rounded = IconData(0xf1f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flare</i> &#x2014; material icon named "flare sharp".
  static const IconData flare_sharp = IconData(0xeccb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flash_auto</i> &#x2014; material icon named "flash auto".
  static const IconData flash_auto = IconData(0xe754, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flash_auto</i> &#x2014; material icon named "flash auto outlined".
  static const IconData flash_auto_outlined = IconData(0xe1cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flash_auto</i> &#x2014; material icon named "flash auto rounded".
  static const IconData flash_auto_rounded = IconData(0xf1fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flash_auto</i> &#x2014; material icon named "flash auto sharp".
  static const IconData flash_auto_sharp = IconData(0xeccc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flash_off</i> &#x2014; material icon named "flash off".
  static const IconData flash_off = IconData(0xe755, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flash_off</i> &#x2014; material icon named "flash off outlined".
  static const IconData flash_off_outlined = IconData(0xe1cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flash_off</i> &#x2014; material icon named "flash off rounded".
  static const IconData flash_off_rounded = IconData(0xf1fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flash_off</i> &#x2014; material icon named "flash off sharp".
  static const IconData flash_off_sharp = IconData(0xeccd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flash_on</i> &#x2014; material icon named "flash on".
  static const IconData flash_on = IconData(0xe756, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flash_on</i> &#x2014; material icon named "flash on outlined".
  static const IconData flash_on_outlined = IconData(0xe1cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flash_on</i> &#x2014; material icon named "flash on rounded".
  static const IconData flash_on_rounded = IconData(0xf1fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flash_on</i> &#x2014; material icon named "flash on sharp".
  static const IconData flash_on_sharp = IconData(0xecce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flight</i> &#x2014; material icon named "flight".
  static const IconData flight = IconData(0xe757, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flight_land</i> &#x2014; material icon named "flight land".
  static const IconData flight_land = IconData(0xe758, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">flight_land</i> &#x2014; material icon named "flight land outlined".
  static const IconData flight_land_outlined = IconData(0xe1ce, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">flight_land</i> &#x2014; material icon named "flight land rounded".
  static const IconData flight_land_rounded = IconData(0xf1fd, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">flight_land</i> &#x2014; material icon named "flight land sharp".
  static const IconData flight_land_sharp = IconData(0xeccf, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">flight</i> &#x2014; material icon named "flight outlined".
  static const IconData flight_outlined = IconData(0xe1cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flight</i> &#x2014; material icon named "flight rounded".
  static const IconData flight_rounded = IconData(0xf1fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flight</i> &#x2014; material icon named "flight sharp".
  static const IconData flight_sharp = IconData(0xecd0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flight_takeoff</i> &#x2014; material icon named "flight takeoff".
  static const IconData flight_takeoff = IconData(0xe759, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">flight_takeoff</i> &#x2014; material icon named "flight takeoff outlined".
  static const IconData flight_takeoff_outlined = IconData(0xe1d0, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">flight_takeoff</i> &#x2014; material icon named "flight takeoff rounded".
  static const IconData flight_takeoff_rounded = IconData(0xf1ff, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">flight_takeoff</i> &#x2014; material icon named "flight takeoff sharp".
  static const IconData flight_takeoff_sharp = IconData(0xecd1, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">flip</i> &#x2014; material icon named "flip".
  static const IconData flip = IconData(0xe75a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flip_camera_android</i> &#x2014; material icon named "flip camera android".
  static const IconData flip_camera_android = IconData(0xe75b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flip_camera_android</i> &#x2014; material icon named "flip camera android outlined".
  static const IconData flip_camera_android_outlined = IconData(0xe1d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flip_camera_android</i> &#x2014; material icon named "flip camera android rounded".
  static const IconData flip_camera_android_rounded = IconData(0xf200, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flip_camera_android</i> &#x2014; material icon named "flip camera android sharp".
  static const IconData flip_camera_android_sharp = IconData(0xecd2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flip_camera_ios</i> &#x2014; material icon named "flip camera ios".
  static const IconData flip_camera_ios = IconData(0xe75c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flip_camera_ios</i> &#x2014; material icon named "flip camera ios outlined".
  static const IconData flip_camera_ios_outlined = IconData(0xe1d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flip_camera_ios</i> &#x2014; material icon named "flip camera ios rounded".
  static const IconData flip_camera_ios_rounded = IconData(0xf201, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flip_camera_ios</i> &#x2014; material icon named "flip camera ios sharp".
  static const IconData flip_camera_ios_sharp = IconData(0xecd3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flip</i> &#x2014; material icon named "flip outlined".
  static const IconData flip_outlined = IconData(0xe1d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flip</i> &#x2014; material icon named "flip rounded".
  static const IconData flip_rounded = IconData(0xf202, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flip</i> &#x2014; material icon named "flip sharp".
  static const IconData flip_sharp = IconData(0xecd4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flip_to_back</i> &#x2014; material icon named "flip to back".
  static const IconData flip_to_back = IconData(0xe75d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flip_to_back</i> &#x2014; material icon named "flip to back outlined".
  static const IconData flip_to_back_outlined = IconData(0xe1d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flip_to_back</i> &#x2014; material icon named "flip to back rounded".
  static const IconData flip_to_back_rounded = IconData(0xf203, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flip_to_back</i> &#x2014; material icon named "flip to back sharp".
  static const IconData flip_to_back_sharp = IconData(0xecd5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flip_to_front</i> &#x2014; material icon named "flip to front".
  static const IconData flip_to_front = IconData(0xe75e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flip_to_front</i> &#x2014; material icon named "flip to front outlined".
  static const IconData flip_to_front_outlined = IconData(0xe1d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flip_to_front</i> &#x2014; material icon named "flip to front rounded".
  static const IconData flip_to_front_rounded = IconData(0xf204, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flip_to_front</i> &#x2014; material icon named "flip to front sharp".
  static const IconData flip_to_front_sharp = IconData(0xecd6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">folder</i> &#x2014; material icon named "folder".
  static const IconData folder = IconData(0xe75f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">folder_open</i> &#x2014; material icon named "folder open".
  static const IconData folder_open = IconData(0xe760, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">folder_open</i> &#x2014; material icon named "folder open outlined".
  static const IconData folder_open_outlined = IconData(0xe1d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">folder_open</i> &#x2014; material icon named "folder open rounded".
  static const IconData folder_open_rounded = IconData(0xf205, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">folder_open</i> &#x2014; material icon named "folder open sharp".
  static const IconData folder_open_sharp = IconData(0xecd7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">folder</i> &#x2014; material icon named "folder outlined".
  static const IconData folder_outlined = IconData(0xe1d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">folder</i> &#x2014; material icon named "folder rounded".
  static const IconData folder_rounded = IconData(0xf206, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">folder_shared</i> &#x2014; material icon named "folder shared".
  static const IconData folder_shared = IconData(0xe761, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">folder_shared</i> &#x2014; material icon named "folder shared outlined".
  static const IconData folder_shared_outlined = IconData(0xe1d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">folder_shared</i> &#x2014; material icon named "folder shared rounded".
  static const IconData folder_shared_rounded = IconData(0xf207, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">folder_shared</i> &#x2014; material icon named "folder shared sharp".
  static const IconData folder_shared_sharp = IconData(0xecd8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">folder</i> &#x2014; material icon named "folder sharp".
  static const IconData folder_sharp = IconData(0xecd9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">folder_special</i> &#x2014; material icon named "folder special".
  static const IconData folder_special = IconData(0xe762, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">folder_special</i> &#x2014; material icon named "folder special outlined".
  static const IconData folder_special_outlined = IconData(0xe1d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">folder_special</i> &#x2014; material icon named "folder special rounded".
  static const IconData folder_special_rounded = IconData(0xf208, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">folder_special</i> &#x2014; material icon named "folder special sharp".
  static const IconData folder_special_sharp = IconData(0xecda, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">follow_the_signs</i> &#x2014; material icon named "follow the signs".
  static const IconData follow_the_signs = IconData(0xe763, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">follow_the_signs</i> &#x2014; material icon named "follow the signs outlined".
  static const IconData follow_the_signs_outlined = IconData(0xe1da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">follow_the_signs</i> &#x2014; material icon named "follow the signs rounded".
  static const IconData follow_the_signs_rounded = IconData(0xf209, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">follow_the_signs</i> &#x2014; material icon named "follow the signs sharp".
  static const IconData follow_the_signs_sharp = IconData(0xecdb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">font_download</i> &#x2014; material icon named "font download".
  static const IconData font_download = IconData(0xe764, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">font_download</i> &#x2014; material icon named "font download outlined".
  static const IconData font_download_outlined = IconData(0xe1db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">font_download</i> &#x2014; material icon named "font download rounded".
  static const IconData font_download_rounded = IconData(0xf20a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">font_download</i> &#x2014; material icon named "font download sharp".
  static const IconData font_download_sharp = IconData(0xecdc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">food_bank</i> &#x2014; material icon named "food bank".
  static const IconData food_bank = IconData(0xe765, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">food_bank</i> &#x2014; material icon named "food bank outlined".
  static const IconData food_bank_outlined = IconData(0xe1dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">food_bank</i> &#x2014; material icon named "food bank rounded".
  static const IconData food_bank_rounded = IconData(0xf20b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">food_bank</i> &#x2014; material icon named "food bank sharp".
  static const IconData food_bank_sharp = IconData(0xecdd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_align_center</i> &#x2014; material icon named "format align center".
  static const IconData format_align_center = IconData(0xe766, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_align_center</i> &#x2014; material icon named "format align center outlined".
  static const IconData format_align_center_outlined = IconData(0xe1dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_align_center</i> &#x2014; material icon named "format align center rounded".
  static const IconData format_align_center_rounded = IconData(0xf20c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_align_center</i> &#x2014; material icon named "format align center sharp".
  static const IconData format_align_center_sharp = IconData(0xecde, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_align_justify</i> &#x2014; material icon named "format align justify".
  static const IconData format_align_justify = IconData(0xe767, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_align_justify</i> &#x2014; material icon named "format align justify outlined".
  static const IconData format_align_justify_outlined = IconData(0xe1de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_align_justify</i> &#x2014; material icon named "format align justify rounded".
  static const IconData format_align_justify_rounded = IconData(0xf20d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_align_justify</i> &#x2014; material icon named "format align justify sharp".
  static const IconData format_align_justify_sharp = IconData(0xecdf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_align_left</i> &#x2014; material icon named "format align left".
  static const IconData format_align_left = IconData(0xe768, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_align_left</i> &#x2014; material icon named "format align left outlined".
  static const IconData format_align_left_outlined = IconData(0xe1df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_align_left</i> &#x2014; material icon named "format align left rounded".
  static const IconData format_align_left_rounded = IconData(0xf20e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_align_left</i> &#x2014; material icon named "format align left sharp".
  static const IconData format_align_left_sharp = IconData(0xece0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_align_right</i> &#x2014; material icon named "format align right".
  static const IconData format_align_right = IconData(0xe769, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_align_right</i> &#x2014; material icon named "format align right outlined".
  static const IconData format_align_right_outlined = IconData(0xe1e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_align_right</i> &#x2014; material icon named "format align right rounded".
  static const IconData format_align_right_rounded = IconData(0xf20f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_align_right</i> &#x2014; material icon named "format align right sharp".
  static const IconData format_align_right_sharp = IconData(0xece1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_bold</i> &#x2014; material icon named "format bold".
  static const IconData format_bold = IconData(0xe76a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_bold</i> &#x2014; material icon named "format bold outlined".
  static const IconData format_bold_outlined = IconData(0xe1e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_bold</i> &#x2014; material icon named "format bold rounded".
  static const IconData format_bold_rounded = IconData(0xf210, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_bold</i> &#x2014; material icon named "format bold sharp".
  static const IconData format_bold_sharp = IconData(0xece2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_clear</i> &#x2014; material icon named "format clear".
  static const IconData format_clear = IconData(0xe76b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_clear</i> &#x2014; material icon named "format clear outlined".
  static const IconData format_clear_outlined = IconData(0xe1e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_clear</i> &#x2014; material icon named "format clear rounded".
  static const IconData format_clear_rounded = IconData(0xf211, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_clear</i> &#x2014; material icon named "format clear sharp".
  static const IconData format_clear_sharp = IconData(0xece3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_color_fill</i> &#x2014; material icon named "format color fill".
  static const IconData format_color_fill = IconData(0xe76c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_color_reset</i> &#x2014; material icon named "format color reset".
  static const IconData format_color_reset = IconData(0xe76d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_color_reset</i> &#x2014; material icon named "format color reset outlined".
  static const IconData format_color_reset_outlined = IconData(0xe1e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_color_reset</i> &#x2014; material icon named "format color reset rounded".
  static const IconData format_color_reset_rounded = IconData(0xf212, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_color_reset</i> &#x2014; material icon named "format color reset sharp".
  static const IconData format_color_reset_sharp = IconData(0xece4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_color_text</i> &#x2014; material icon named "format color text".
  static const IconData format_color_text = IconData(0xe76e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_indent_decrease</i> &#x2014; material icon named "format indent decrease".
  static const IconData format_indent_decrease = IconData(0xe76f, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">format_indent_decrease</i> &#x2014; material icon named "format indent decrease outlined".
  static const IconData format_indent_decrease_outlined = IconData(0xe1e4, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">format_indent_decrease</i> &#x2014; material icon named "format indent decrease rounded".
  static const IconData format_indent_decrease_rounded = IconData(0xf213, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">format_indent_decrease</i> &#x2014; material icon named "format indent decrease sharp".
  static const IconData format_indent_decrease_sharp = IconData(0xece5, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">format_indent_increase</i> &#x2014; material icon named "format indent increase".
  static const IconData format_indent_increase = IconData(0xe770, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">format_indent_increase</i> &#x2014; material icon named "format indent increase outlined".
  static const IconData format_indent_increase_outlined = IconData(0xe1e5, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">format_indent_increase</i> &#x2014; material icon named "format indent increase rounded".
  static const IconData format_indent_increase_rounded = IconData(0xf214, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">format_indent_increase</i> &#x2014; material icon named "format indent increase sharp".
  static const IconData format_indent_increase_sharp = IconData(0xece6, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">format_italic</i> &#x2014; material icon named "format italic".
  static const IconData format_italic = IconData(0xe771, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_italic</i> &#x2014; material icon named "format italic outlined".
  static const IconData format_italic_outlined = IconData(0xe1e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_italic</i> &#x2014; material icon named "format italic rounded".
  static const IconData format_italic_rounded = IconData(0xf215, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_italic</i> &#x2014; material icon named "format italic sharp".
  static const IconData format_italic_sharp = IconData(0xece7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_line_spacing</i> &#x2014; material icon named "format line spacing".
  static const IconData format_line_spacing = IconData(0xe772, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_line_spacing</i> &#x2014; material icon named "format line spacing outlined".
  static const IconData format_line_spacing_outlined = IconData(0xe1e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_line_spacing</i> &#x2014; material icon named "format line spacing rounded".
  static const IconData format_line_spacing_rounded = IconData(0xf216, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_line_spacing</i> &#x2014; material icon named "format line spacing sharp".
  static const IconData format_line_spacing_sharp = IconData(0xece8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_list_bulleted</i> &#x2014; material icon named "format list bulleted".
  static const IconData format_list_bulleted = IconData(0xe773, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">format_list_bulleted</i> &#x2014; material icon named "format list bulleted outlined".
  static const IconData format_list_bulleted_outlined = IconData(0xe1e8, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">format_list_bulleted</i> &#x2014; material icon named "format list bulleted rounded".
  static const IconData format_list_bulleted_rounded = IconData(0xf217, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">format_list_bulleted</i> &#x2014; material icon named "format list bulleted sharp".
  static const IconData format_list_bulleted_sharp = IconData(0xece9, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">format_list_numbered</i> &#x2014; material icon named "format list numbered".
  static const IconData format_list_numbered = IconData(0xe774, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_list_numbered</i> &#x2014; material icon named "format list numbered outlined".
  static const IconData format_list_numbered_outlined = IconData(0xe1e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_list_numbered</i> &#x2014; material icon named "format list numbered rounded".
  static const IconData format_list_numbered_rounded = IconData(0xf218, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_list_numbered_rtl</i> &#x2014; material icon named "format list numbered rtl".
  static const IconData format_list_numbered_rtl = IconData(0xe775, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_list_numbered_rtl</i> &#x2014; material icon named "format list numbered rtl outlined".
  static const IconData format_list_numbered_rtl_outlined = IconData(0xe1ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_list_numbered_rtl</i> &#x2014; material icon named "format list numbered rtl rounded".
  static const IconData format_list_numbered_rtl_rounded = IconData(0xf219, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_list_numbered_rtl</i> &#x2014; material icon named "format list numbered rtl sharp".
  static const IconData format_list_numbered_rtl_sharp = IconData(0xecea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_list_numbered</i> &#x2014; material icon named "format list numbered sharp".
  static const IconData format_list_numbered_sharp = IconData(0xeceb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_paint</i> &#x2014; material icon named "format paint".
  static const IconData format_paint = IconData(0xe776, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_paint</i> &#x2014; material icon named "format paint outlined".
  static const IconData format_paint_outlined = IconData(0xe1eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_paint</i> &#x2014; material icon named "format paint rounded".
  static const IconData format_paint_rounded = IconData(0xf21a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_paint</i> &#x2014; material icon named "format paint sharp".
  static const IconData format_paint_sharp = IconData(0xecec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_quote</i> &#x2014; material icon named "format quote".
  static const IconData format_quote = IconData(0xe777, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_quote</i> &#x2014; material icon named "format quote outlined".
  static const IconData format_quote_outlined = IconData(0xe1ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_quote</i> &#x2014; material icon named "format quote rounded".
  static const IconData format_quote_rounded = IconData(0xf21b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_quote</i> &#x2014; material icon named "format quote sharp".
  static const IconData format_quote_sharp = IconData(0xeced, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_shapes</i> &#x2014; material icon named "format shapes".
  static const IconData format_shapes = IconData(0xe778, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_shapes</i> &#x2014; material icon named "format shapes outlined".
  static const IconData format_shapes_outlined = IconData(0xe1ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_shapes</i> &#x2014; material icon named "format shapes rounded".
  static const IconData format_shapes_rounded = IconData(0xf21c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_shapes</i> &#x2014; material icon named "format shapes sharp".
  static const IconData format_shapes_sharp = IconData(0xecee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_size</i> &#x2014; material icon named "format size".
  static const IconData format_size = IconData(0xe779, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_size</i> &#x2014; material icon named "format size outlined".
  static const IconData format_size_outlined = IconData(0xe1ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_size</i> &#x2014; material icon named "format size rounded".
  static const IconData format_size_rounded = IconData(0xf21d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_size</i> &#x2014; material icon named "format size sharp".
  static const IconData format_size_sharp = IconData(0xecef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_strikethrough</i> &#x2014; material icon named "format strikethrough".
  static const IconData format_strikethrough = IconData(0xe77a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_strikethrough</i> &#x2014; material icon named "format strikethrough outlined".
  static const IconData format_strikethrough_outlined = IconData(0xe1ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_strikethrough</i> &#x2014; material icon named "format strikethrough rounded".
  static const IconData format_strikethrough_rounded = IconData(0xf21e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_strikethrough</i> &#x2014; material icon named "format strikethrough sharp".
  static const IconData format_strikethrough_sharp = IconData(0xecf0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_textdirection_l_to_r</i> &#x2014; material icon named "format textdirection l to r".
  static const IconData format_textdirection_l_to_r = IconData(0xe77b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_textdirection_l_to_r</i> &#x2014; material icon named "format textdirection l to r outlined".
  static const IconData format_textdirection_l_to_r_outlined = IconData(0xe1f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_textdirection_l_to_r</i> &#x2014; material icon named "format textdirection l to r rounded".
  static const IconData format_textdirection_l_to_r_rounded = IconData(0xf21f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_textdirection_l_to_r</i> &#x2014; material icon named "format textdirection l to r sharp".
  static const IconData format_textdirection_l_to_r_sharp = IconData(0xecf1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_textdirection_r_to_l</i> &#x2014; material icon named "format textdirection r to l".
  static const IconData format_textdirection_r_to_l = IconData(0xe77c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_textdirection_r_to_l</i> &#x2014; material icon named "format textdirection r to l outlined".
  static const IconData format_textdirection_r_to_l_outlined = IconData(0xe1f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_textdirection_r_to_l</i> &#x2014; material icon named "format textdirection r to l rounded".
  static const IconData format_textdirection_r_to_l_rounded = IconData(0xf220, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_textdirection_r_to_l</i> &#x2014; material icon named "format textdirection r to l sharp".
  static const IconData format_textdirection_r_to_l_sharp = IconData(0xecf2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_underline</i> &#x2014; material icon named "format underline".
  static const IconData format_underline = IconData(0xe77d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_underline</i> &#x2014; material icon named "format underline outlined".
  static const IconData format_underline_outlined = IconData(0xe1f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_underline</i> &#x2014; material icon named "format underline rounded".
  static const IconData format_underline_rounded = IconData(0xf221, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_underline</i> &#x2014; material icon named "format underline sharp".
  static const IconData format_underline_sharp = IconData(0xecf3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_underlined</i> &#x2014; material icon named "format underlined".
  static const IconData format_underlined = IconData(0xe77d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_underlined</i> &#x2014; material icon named "format underlined outlined".
  static const IconData format_underlined_outlined = IconData(0xe1f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_underlined</i> &#x2014; material icon named "format underlined rounded".
  static const IconData format_underlined_rounded = IconData(0xf221, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_underlined</i> &#x2014; material icon named "format underlined sharp".
  static const IconData format_underlined_sharp = IconData(0xecf3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">forum</i> &#x2014; material icon named "forum".
  static const IconData forum = IconData(0xe77e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">forum</i> &#x2014; material icon named "forum outlined".
  static const IconData forum_outlined = IconData(0xe1f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">forum</i> &#x2014; material icon named "forum rounded".
  static const IconData forum_rounded = IconData(0xf222, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">forum</i> &#x2014; material icon named "forum sharp".
  static const IconData forum_sharp = IconData(0xecf4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">forward</i> &#x2014; material icon named "forward".
  static const IconData forward = IconData(0xe77f, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">forward_10</i> &#x2014; material icon named "forward 10".
  static const IconData forward_10 = IconData(0xe780, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">forward_10</i> &#x2014; material icon named "forward 10 outlined".
  static const IconData forward_10_outlined = IconData(0xe1f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">forward_10</i> &#x2014; material icon named "forward 10 rounded".
  static const IconData forward_10_rounded = IconData(0xf223, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">forward_10</i> &#x2014; material icon named "forward 10 sharp".
  static const IconData forward_10_sharp = IconData(0xecf5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">forward_30</i> &#x2014; material icon named "forward 30".
  static const IconData forward_30 = IconData(0xe781, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">forward_30</i> &#x2014; material icon named "forward 30 outlined".
  static const IconData forward_30_outlined = IconData(0xe1f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">forward_30</i> &#x2014; material icon named "forward 30 rounded".
  static const IconData forward_30_rounded = IconData(0xf224, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">forward_30</i> &#x2014; material icon named "forward 30 sharp".
  static const IconData forward_30_sharp = IconData(0xecf6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">forward_5</i> &#x2014; material icon named "forward 5".
  static const IconData forward_5 = IconData(0xe782, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">forward_5</i> &#x2014; material icon named "forward 5 outlined".
  static const IconData forward_5_outlined = IconData(0xe1f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">forward_5</i> &#x2014; material icon named "forward 5 rounded".
  static const IconData forward_5_rounded = IconData(0xf225, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">forward_5</i> &#x2014; material icon named "forward 5 sharp".
  static const IconData forward_5_sharp = IconData(0xecf7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">forward</i> &#x2014; material icon named "forward outlined".
  static const IconData forward_outlined = IconData(0xe1f7, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">forward</i> &#x2014; material icon named "forward rounded".
  static const IconData forward_rounded = IconData(0xf226, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">forward</i> &#x2014; material icon named "forward sharp".
  static const IconData forward_sharp = IconData(0xecf8, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">forward_to_inbox</i> &#x2014; material icon named "forward to inbox".
  static const IconData forward_to_inbox = IconData(0xe783, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">forward_to_inbox</i> &#x2014; material icon named "forward to inbox outlined".
  static const IconData forward_to_inbox_outlined = IconData(0xe1f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">forward_to_inbox</i> &#x2014; material icon named "forward to inbox rounded".
  static const IconData forward_to_inbox_rounded = IconData(0xf227, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">forward_to_inbox</i> &#x2014; material icon named "forward to inbox sharp".
  static const IconData forward_to_inbox_sharp = IconData(0xecf9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">foundation</i> &#x2014; material icon named "foundation".
  static const IconData foundation = IconData(0xe784, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">foundation</i> &#x2014; material icon named "foundation outlined".
  static const IconData foundation_outlined = IconData(0xe1f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">foundation</i> &#x2014; material icon named "foundation rounded".
  static const IconData foundation_rounded = IconData(0xf228, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">foundation</i> &#x2014; material icon named "foundation sharp".
  static const IconData foundation_sharp = IconData(0xecfa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">free_breakfast</i> &#x2014; material icon named "free breakfast".
  static const IconData free_breakfast = IconData(0xe785, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">free_breakfast</i> &#x2014; material icon named "free breakfast outlined".
  static const IconData free_breakfast_outlined = IconData(0xe1fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">free_breakfast</i> &#x2014; material icon named "free breakfast rounded".
  static const IconData free_breakfast_rounded = IconData(0xf229, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">free_breakfast</i> &#x2014; material icon named "free breakfast sharp".
  static const IconData free_breakfast_sharp = IconData(0xecfb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fullscreen</i> &#x2014; material icon named "fullscreen".
  static const IconData fullscreen = IconData(0xe786, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fullscreen_exit</i> &#x2014; material icon named "fullscreen exit".
  static const IconData fullscreen_exit = IconData(0xe787, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fullscreen_exit</i> &#x2014; material icon named "fullscreen exit outlined".
  static const IconData fullscreen_exit_outlined = IconData(0xe1fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fullscreen_exit</i> &#x2014; material icon named "fullscreen exit rounded".
  static const IconData fullscreen_exit_rounded = IconData(0xf22a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fullscreen_exit</i> &#x2014; material icon named "fullscreen exit sharp".
  static const IconData fullscreen_exit_sharp = IconData(0xecfc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fullscreen</i> &#x2014; material icon named "fullscreen outlined".
  static const IconData fullscreen_outlined = IconData(0xe1fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fullscreen</i> &#x2014; material icon named "fullscreen rounded".
  static const IconData fullscreen_rounded = IconData(0xf22b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fullscreen</i> &#x2014; material icon named "fullscreen sharp".
  static const IconData fullscreen_sharp = IconData(0xecfd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">functions</i> &#x2014; material icon named "functions".
  static const IconData functions = IconData(0xe788, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">functions</i> &#x2014; material icon named "functions outlined".
  static const IconData functions_outlined = IconData(0xe1fd, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">functions</i> &#x2014; material icon named "functions rounded".
  static const IconData functions_rounded = IconData(0xf22c, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">functions</i> &#x2014; material icon named "functions sharp".
  static const IconData functions_sharp = IconData(0xecfe, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">g_translate</i> &#x2014; material icon named "g translate".
  static const IconData g_translate = IconData(0xe789, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">g_translate</i> &#x2014; material icon named "g translate outlined".
  static const IconData g_translate_outlined = IconData(0xe1fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">g_translate</i> &#x2014; material icon named "g translate rounded".
  static const IconData g_translate_rounded = IconData(0xf22d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">g_translate</i> &#x2014; material icon named "g translate sharp".
  static const IconData g_translate_sharp = IconData(0xecff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gamepad</i> &#x2014; material icon named "gamepad".
  static const IconData gamepad = IconData(0xe78a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gamepad</i> &#x2014; material icon named "gamepad outlined".
  static const IconData gamepad_outlined = IconData(0xe1ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gamepad</i> &#x2014; material icon named "gamepad rounded".
  static const IconData gamepad_rounded = IconData(0xf22e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gamepad</i> &#x2014; material icon named "gamepad sharp".
  static const IconData gamepad_sharp = IconData(0xed00, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">games</i> &#x2014; material icon named "games".
  static const IconData games = IconData(0xe78b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">games</i> &#x2014; material icon named "games outlined".
  static const IconData games_outlined = IconData(0xe200, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">games</i> &#x2014; material icon named "games rounded".
  static const IconData games_rounded = IconData(0xf22f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">games</i> &#x2014; material icon named "games sharp".
  static const IconData games_sharp = IconData(0xed01, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gavel</i> &#x2014; material icon named "gavel".
  static const IconData gavel = IconData(0xe78c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gavel</i> &#x2014; material icon named "gavel outlined".
  static const IconData gavel_outlined = IconData(0xe201, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gavel</i> &#x2014; material icon named "gavel rounded".
  static const IconData gavel_rounded = IconData(0xf230, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gavel</i> &#x2014; material icon named "gavel sharp".
  static const IconData gavel_sharp = IconData(0xed02, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gesture</i> &#x2014; material icon named "gesture".
  static const IconData gesture = IconData(0xe78d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gesture</i> &#x2014; material icon named "gesture outlined".
  static const IconData gesture_outlined = IconData(0xe202, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gesture</i> &#x2014; material icon named "gesture rounded".
  static const IconData gesture_rounded = IconData(0xf231, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gesture</i> &#x2014; material icon named "gesture sharp".
  static const IconData gesture_sharp = IconData(0xed03, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">get_app</i> &#x2014; material icon named "get app".
  static const IconData get_app = IconData(0xe78e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">get_app</i> &#x2014; material icon named "get app outlined".
  static const IconData get_app_outlined = IconData(0xe203, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">get_app</i> &#x2014; material icon named "get app rounded".
  static const IconData get_app_rounded = IconData(0xf232, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">get_app</i> &#x2014; material icon named "get app sharp".
  static const IconData get_app_sharp = IconData(0xed04, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gif</i> &#x2014; material icon named "gif".
  static const IconData gif = IconData(0xe78f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gif</i> &#x2014; material icon named "gif outlined".
  static const IconData gif_outlined = IconData(0xe204, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gif</i> &#x2014; material icon named "gif rounded".
  static const IconData gif_rounded = IconData(0xf233, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gif</i> &#x2014; material icon named "gif sharp".
  static const IconData gif_sharp = IconData(0xed05, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">golf_course</i> &#x2014; material icon named "golf course".
  static const IconData golf_course = IconData(0xe790, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">golf_course</i> &#x2014; material icon named "golf course outlined".
  static const IconData golf_course_outlined = IconData(0xe205, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">golf_course</i> &#x2014; material icon named "golf course rounded".
  static const IconData golf_course_rounded = IconData(0xf234, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">golf_course</i> &#x2014; material icon named "golf course sharp".
  static const IconData golf_course_sharp = IconData(0xed06, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gps_fixed</i> &#x2014; material icon named "gps fixed".
  static const IconData gps_fixed = IconData(0xe791, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gps_fixed</i> &#x2014; material icon named "gps fixed outlined".
  static const IconData gps_fixed_outlined = IconData(0xe206, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gps_fixed</i> &#x2014; material icon named "gps fixed rounded".
  static const IconData gps_fixed_rounded = IconData(0xf235, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gps_fixed</i> &#x2014; material icon named "gps fixed sharp".
  static const IconData gps_fixed_sharp = IconData(0xed07, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gps_not_fixed</i> &#x2014; material icon named "gps not fixed".
  static const IconData gps_not_fixed = IconData(0xe792, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gps_not_fixed</i> &#x2014; material icon named "gps not fixed outlined".
  static const IconData gps_not_fixed_outlined = IconData(0xe207, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gps_not_fixed</i> &#x2014; material icon named "gps not fixed rounded".
  static const IconData gps_not_fixed_rounded = IconData(0xf236, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gps_not_fixed</i> &#x2014; material icon named "gps not fixed sharp".
  static const IconData gps_not_fixed_sharp = IconData(0xed08, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gps_off</i> &#x2014; material icon named "gps off".
  static const IconData gps_off = IconData(0xe793, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gps_off</i> &#x2014; material icon named "gps off outlined".
  static const IconData gps_off_outlined = IconData(0xe208, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gps_off</i> &#x2014; material icon named "gps off rounded".
  static const IconData gps_off_rounded = IconData(0xf237, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gps_off</i> &#x2014; material icon named "gps off sharp".
  static const IconData gps_off_sharp = IconData(0xed09, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">grade</i> &#x2014; material icon named "grade".
  static const IconData grade = IconData(0xe794, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">grade</i> &#x2014; material icon named "grade outlined".
  static const IconData grade_outlined = IconData(0xe209, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">grade</i> &#x2014; material icon named "grade rounded".
  static const IconData grade_rounded = IconData(0xf238, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">grade</i> &#x2014; material icon named "grade sharp".
  static const IconData grade_sharp = IconData(0xed0a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gradient</i> &#x2014; material icon named "gradient".
  static const IconData gradient = IconData(0xe795, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gradient</i> &#x2014; material icon named "gradient outlined".
  static const IconData gradient_outlined = IconData(0xe20a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gradient</i> &#x2014; material icon named "gradient rounded".
  static const IconData gradient_rounded = IconData(0xf239, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gradient</i> &#x2014; material icon named "gradient sharp".
  static const IconData gradient_sharp = IconData(0xed0b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">grading</i> &#x2014; material icon named "grading".
  static const IconData grading = IconData(0xe796, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">grading</i> &#x2014; material icon named "grading outlined".
  static const IconData grading_outlined = IconData(0xe20b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">grading</i> &#x2014; material icon named "grading rounded".
  static const IconData grading_rounded = IconData(0xf23a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">grading</i> &#x2014; material icon named "grading sharp".
  static const IconData grading_sharp = IconData(0xed0c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">grain</i> &#x2014; material icon named "grain".
  static const IconData grain = IconData(0xe797, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">grain</i> &#x2014; material icon named "grain outlined".
  static const IconData grain_outlined = IconData(0xe20c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">grain</i> &#x2014; material icon named "grain rounded".
  static const IconData grain_rounded = IconData(0xf23b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">grain</i> &#x2014; material icon named "grain sharp".
  static const IconData grain_sharp = IconData(0xed0d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">graphic_eq</i> &#x2014; material icon named "graphic eq".
  static const IconData graphic_eq = IconData(0xe798, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">graphic_eq</i> &#x2014; material icon named "graphic eq outlined".
  static const IconData graphic_eq_outlined = IconData(0xe20d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">graphic_eq</i> &#x2014; material icon named "graphic eq rounded".
  static const IconData graphic_eq_rounded = IconData(0xf23c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">graphic_eq</i> &#x2014; material icon named "graphic eq sharp".
  static const IconData graphic_eq_sharp = IconData(0xed0e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">grass</i> &#x2014; material icon named "grass".
  static const IconData grass = IconData(0xe799, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">grass</i> &#x2014; material icon named "grass outlined".
  static const IconData grass_outlined = IconData(0xe20e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">grass</i> &#x2014; material icon named "grass rounded".
  static const IconData grass_rounded = IconData(0xf23d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">grass</i> &#x2014; material icon named "grass sharp".
  static const IconData grass_sharp = IconData(0xed0f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">grid_off</i> &#x2014; material icon named "grid off".
  static const IconData grid_off = IconData(0xe79a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">grid_off</i> &#x2014; material icon named "grid off outlined".
  static const IconData grid_off_outlined = IconData(0xe20f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">grid_off</i> &#x2014; material icon named "grid off rounded".
  static const IconData grid_off_rounded = IconData(0xf23e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">grid_off</i> &#x2014; material icon named "grid off sharp".
  static const IconData grid_off_sharp = IconData(0xed10, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">grid_on</i> &#x2014; material icon named "grid on".
  static const IconData grid_on = IconData(0xe79b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">grid_on</i> &#x2014; material icon named "grid on outlined".
  static const IconData grid_on_outlined = IconData(0xe210, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">grid_on</i> &#x2014; material icon named "grid on rounded".
  static const IconData grid_on_rounded = IconData(0xf23f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">grid_on</i> &#x2014; material icon named "grid on sharp".
  static const IconData grid_on_sharp = IconData(0xed11, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">grid_view</i> &#x2014; material icon named "grid view".
  static const IconData grid_view = IconData(0xe79c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">group</i> &#x2014; material icon named "group".
  static const IconData group = IconData(0xe79d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">group_add</i> &#x2014; material icon named "group add".
  static const IconData group_add = IconData(0xe79e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">group_add</i> &#x2014; material icon named "group add outlined".
  static const IconData group_add_outlined = IconData(0xe211, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">group_add</i> &#x2014; material icon named "group add rounded".
  static const IconData group_add_rounded = IconData(0xf240, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">group_add</i> &#x2014; material icon named "group add sharp".
  static const IconData group_add_sharp = IconData(0xed12, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">group</i> &#x2014; material icon named "group outlined".
  static const IconData group_outlined = IconData(0xe212, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">group</i> &#x2014; material icon named "group rounded".
  static const IconData group_rounded = IconData(0xf241, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">group</i> &#x2014; material icon named "group sharp".
  static const IconData group_sharp = IconData(0xed13, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">group_work</i> &#x2014; material icon named "group work".
  static const IconData group_work = IconData(0xe79f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">group_work</i> &#x2014; material icon named "group work outlined".
  static const IconData group_work_outlined = IconData(0xe213, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">group_work</i> &#x2014; material icon named "group work rounded".
  static const IconData group_work_rounded = IconData(0xf242, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">group_work</i> &#x2014; material icon named "group work sharp".
  static const IconData group_work_sharp = IconData(0xed14, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hail</i> &#x2014; material icon named "hail".
  static const IconData hail = IconData(0xe7a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">handyman</i> &#x2014; material icon named "handyman".
  static const IconData handyman = IconData(0xe7a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">handyman</i> &#x2014; material icon named "handyman outlined".
  static const IconData handyman_outlined = IconData(0xe214, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">handyman</i> &#x2014; material icon named "handyman rounded".
  static const IconData handyman_rounded = IconData(0xf243, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">handyman</i> &#x2014; material icon named "handyman sharp".
  static const IconData handyman_sharp = IconData(0xed15, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hardware</i> &#x2014; material icon named "hardware".
  static const IconData hardware = IconData(0xe7a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hd</i> &#x2014; material icon named "hd".
  static const IconData hd = IconData(0xe7a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hd</i> &#x2014; material icon named "hd outlined".
  static const IconData hd_outlined = IconData(0xe215, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hd</i> &#x2014; material icon named "hd rounded".
  static const IconData hd_rounded = IconData(0xf244, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hd</i> &#x2014; material icon named "hd sharp".
  static const IconData hd_sharp = IconData(0xed16, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hdr_enhanced_select</i> &#x2014; material icon named "hdr enhanced select".
  static const IconData hdr_enhanced_select = IconData(0xe7a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hdr_off</i> &#x2014; material icon named "hdr off".
  static const IconData hdr_off = IconData(0xe7a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hdr_off</i> &#x2014; material icon named "hdr off outlined".
  static const IconData hdr_off_outlined = IconData(0xe216, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hdr_off</i> &#x2014; material icon named "hdr off rounded".
  static const IconData hdr_off_rounded = IconData(0xf245, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hdr_off</i> &#x2014; material icon named "hdr off sharp".
  static const IconData hdr_off_sharp = IconData(0xed17, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hdr_on</i> &#x2014; material icon named "hdr on".
  static const IconData hdr_on = IconData(0xe7a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hdr_on</i> &#x2014; material icon named "hdr on outlined".
  static const IconData hdr_on_outlined = IconData(0xe217, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hdr_on</i> &#x2014; material icon named "hdr on rounded".
  static const IconData hdr_on_rounded = IconData(0xf246, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hdr_on</i> &#x2014; material icon named "hdr on sharp".
  static const IconData hdr_on_sharp = IconData(0xed18, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hdr_strong</i> &#x2014; material icon named "hdr strong".
  static const IconData hdr_strong = IconData(0xe7a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hdr_strong</i> &#x2014; material icon named "hdr strong outlined".
  static const IconData hdr_strong_outlined = IconData(0xe218, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hdr_strong</i> &#x2014; material icon named "hdr strong rounded".
  static const IconData hdr_strong_rounded = IconData(0xf247, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hdr_strong</i> &#x2014; material icon named "hdr strong sharp".
  static const IconData hdr_strong_sharp = IconData(0xed19, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hdr_weak</i> &#x2014; material icon named "hdr weak".
  static const IconData hdr_weak = IconData(0xe7a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hdr_weak</i> &#x2014; material icon named "hdr weak outlined".
  static const IconData hdr_weak_outlined = IconData(0xe219, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hdr_weak</i> &#x2014; material icon named "hdr weak rounded".
  static const IconData hdr_weak_rounded = IconData(0xf248, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hdr_weak</i> &#x2014; material icon named "hdr weak sharp".
  static const IconData hdr_weak_sharp = IconData(0xed1a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">headset</i> &#x2014; material icon named "headset".
  static const IconData headset = IconData(0xe7a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">headset_mic</i> &#x2014; material icon named "headset mic".
  static const IconData headset_mic = IconData(0xe7aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">headset_mic</i> &#x2014; material icon named "headset mic outlined".
  static const IconData headset_mic_outlined = IconData(0xe21a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">headset_mic</i> &#x2014; material icon named "headset mic rounded".
  static const IconData headset_mic_rounded = IconData(0xf249, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">headset_mic</i> &#x2014; material icon named "headset mic sharp".
  static const IconData headset_mic_sharp = IconData(0xed1b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">headset_off</i> &#x2014; material icon named "headset off".
  static const IconData headset_off = IconData(0xe7ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">headset</i> &#x2014; material icon named "headset outlined".
  static const IconData headset_outlined = IconData(0xe21b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">headset</i> &#x2014; material icon named "headset rounded".
  static const IconData headset_rounded = IconData(0xf24a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">headset</i> &#x2014; material icon named "headset sharp".
  static const IconData headset_sharp = IconData(0xed1c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">healing</i> &#x2014; material icon named "healing".
  static const IconData healing = IconData(0xe7ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">healing</i> &#x2014; material icon named "healing outlined".
  static const IconData healing_outlined = IconData(0xe21c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">healing</i> &#x2014; material icon named "healing rounded".
  static const IconData healing_rounded = IconData(0xf24b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">healing</i> &#x2014; material icon named "healing sharp".
  static const IconData healing_sharp = IconData(0xed1d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hearing</i> &#x2014; material icon named "hearing".
  static const IconData hearing = IconData(0xe7ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hearing_disabled</i> &#x2014; material icon named "hearing disabled".
  static const IconData hearing_disabled = IconData(0xe7ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hearing_disabled</i> &#x2014; material icon named "hearing disabled outlined".
  static const IconData hearing_disabled_outlined = IconData(0xe21d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hearing_disabled</i> &#x2014; material icon named "hearing disabled rounded".
  static const IconData hearing_disabled_rounded = IconData(0xf24c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hearing_disabled</i> &#x2014; material icon named "hearing disabled sharp".
  static const IconData hearing_disabled_sharp = IconData(0xed1e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hearing</i> &#x2014; material icon named "hearing outlined".
  static const IconData hearing_outlined = IconData(0xe21e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hearing</i> &#x2014; material icon named "hearing rounded".
  static const IconData hearing_rounded = IconData(0xf24d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hearing</i> &#x2014; material icon named "hearing sharp".
  static const IconData hearing_sharp = IconData(0xed1f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">height</i> &#x2014; material icon named "height".
  static const IconData height = IconData(0xe7af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">height</i> &#x2014; material icon named "height outlined".
  static const IconData height_outlined = IconData(0xe21f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">height</i> &#x2014; material icon named "height rounded".
  static const IconData height_rounded = IconData(0xf24e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">height</i> &#x2014; material icon named "height sharp".
  static const IconData height_sharp = IconData(0xed20, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">help</i> &#x2014; material icon named "help".
  static const IconData help = IconData(0xe7b0, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">help_center</i> &#x2014; material icon named "help center".
  static const IconData help_center = IconData(0xe7b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">help_center</i> &#x2014; material icon named "help center outlined".
  static const IconData help_center_outlined = IconData(0xe220, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">help_center</i> &#x2014; material icon named "help center rounded".
  static const IconData help_center_rounded = IconData(0xf24f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">help_center</i> &#x2014; material icon named "help center sharp".
  static const IconData help_center_sharp = IconData(0xed21, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">help_outline</i> &#x2014; material icon named "help outline".
  static const IconData help_outline = IconData(0xe7b2, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">help_outline</i> &#x2014; material icon named "help outline outlined".
  static const IconData help_outline_outlined = IconData(0xe221, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">help_outline</i> &#x2014; material icon named "help outline rounded".
  static const IconData help_outline_rounded = IconData(0xf250, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">help_outline</i> &#x2014; material icon named "help outline sharp".
  static const IconData help_outline_sharp = IconData(0xed22, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">help</i> &#x2014; material icon named "help outlined".
  static const IconData help_outlined = IconData(0xe222, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">help</i> &#x2014; material icon named "help rounded".
  static const IconData help_rounded = IconData(0xf251, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">help</i> &#x2014; material icon named "help sharp".
  static const IconData help_sharp = IconData(0xed23, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">high_quality</i> &#x2014; material icon named "high quality".
  static const IconData high_quality = IconData(0xe7b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">high_quality</i> &#x2014; material icon named "high quality outlined".
  static const IconData high_quality_outlined = IconData(0xe223, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">high_quality</i> &#x2014; material icon named "high quality rounded".
  static const IconData high_quality_rounded = IconData(0xf252, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">high_quality</i> &#x2014; material icon named "high quality sharp".
  static const IconData high_quality_sharp = IconData(0xed24, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">highlight</i> &#x2014; material icon named "highlight".
  static const IconData highlight = IconData(0xe7b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">highlight_alt</i> &#x2014; material icon named "highlight alt".
  static const IconData highlight_alt = IconData(0xe7b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">highlight_alt</i> &#x2014; material icon named "highlight alt outlined".
  static const IconData highlight_alt_outlined = IconData(0xe224, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">highlight_alt</i> &#x2014; material icon named "highlight alt rounded".
  static const IconData highlight_alt_rounded = IconData(0xf253, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">highlight_alt</i> &#x2014; material icon named "highlight alt sharp".
  static const IconData highlight_alt_sharp = IconData(0xed25, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">highlight_off</i> &#x2014; material icon named "highlight off".
  static const IconData highlight_off = IconData(0xe7b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">highlight_off</i> &#x2014; material icon named "highlight off outlined".
  static const IconData highlight_off_outlined = IconData(0xe225, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">highlight_off</i> &#x2014; material icon named "highlight off rounded".
  static const IconData highlight_off_rounded = IconData(0xf254, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">highlight_off</i> &#x2014; material icon named "highlight off sharp".
  static const IconData highlight_off_sharp = IconData(0xed26, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">highlight</i> &#x2014; material icon named "highlight outlined".
  static const IconData highlight_outlined = IconData(0xe226, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">highlight_remove</i> &#x2014; material icon named "highlight remove".
  static const IconData highlight_remove = IconData(0xe7b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">highlight_remove</i> &#x2014; material icon named "highlight remove outlined".
  static const IconData highlight_remove_outlined = IconData(0xe225, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">highlight_remove</i> &#x2014; material icon named "highlight remove rounded".
  static const IconData highlight_remove_rounded = IconData(0xf254, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">highlight_remove</i> &#x2014; material icon named "highlight remove sharp".
  static const IconData highlight_remove_sharp = IconData(0xed26, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">highlight</i> &#x2014; material icon named "highlight rounded".
  static const IconData highlight_rounded = IconData(0xf255, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">highlight</i> &#x2014; material icon named "highlight sharp".
  static const IconData highlight_sharp = IconData(0xed27, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">history</i> &#x2014; material icon named "history".
  static const IconData history = IconData(0xe7b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">history_edu</i> &#x2014; material icon named "history edu".
  static const IconData history_edu = IconData(0xe7b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">history_edu</i> &#x2014; material icon named "history edu outlined".
  static const IconData history_edu_outlined = IconData(0xe227, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">history_edu</i> &#x2014; material icon named "history edu rounded".
  static const IconData history_edu_rounded = IconData(0xf256, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">history_edu</i> &#x2014; material icon named "history edu sharp".
  static const IconData history_edu_sharp = IconData(0xed28, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">history</i> &#x2014; material icon named "history outlined".
  static const IconData history_outlined = IconData(0xe228, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">history</i> &#x2014; material icon named "history rounded".
  static const IconData history_rounded = IconData(0xf257, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">history</i> &#x2014; material icon named "history sharp".
  static const IconData history_sharp = IconData(0xed29, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">history_toggle_off</i> &#x2014; material icon named "history toggle off".
  static const IconData history_toggle_off = IconData(0xe7b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">history_toggle_off</i> &#x2014; material icon named "history toggle off outlined".
  static const IconData history_toggle_off_outlined = IconData(0xe229, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">history_toggle_off</i> &#x2014; material icon named "history toggle off rounded".
  static const IconData history_toggle_off_rounded = IconData(0xf258, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">history_toggle_off</i> &#x2014; material icon named "history toggle off sharp".
  static const IconData history_toggle_off_sharp = IconData(0xed2a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">home</i> &#x2014; material icon named "home".
  static const IconData home = IconData(0xe7ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">home_filled</i> &#x2014; material icon named "home filled".
  static const IconData home_filled = IconData(0xe7bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">home</i> &#x2014; material icon named "home outlined".
  static const IconData home_outlined = IconData(0xe22a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">home_repair_service</i> &#x2014; material icon named "home repair service".
  static const IconData home_repair_service = IconData(0xe7bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">home_repair_service</i> &#x2014; material icon named "home repair service outlined".
  static const IconData home_repair_service_outlined = IconData(0xe22b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">home_repair_service</i> &#x2014; material icon named "home repair service rounded".
  static const IconData home_repair_service_rounded = IconData(0xf259, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">home_repair_service</i> &#x2014; material icon named "home repair service sharp".
  static const IconData home_repair_service_sharp = IconData(0xed2b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">home</i> &#x2014; material icon named "home rounded".
  static const IconData home_rounded = IconData(0xf25a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">home</i> &#x2014; material icon named "home sharp".
  static const IconData home_sharp = IconData(0xed2c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">home_work</i> &#x2014; material icon named "home work".
  static const IconData home_work = IconData(0xe7bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">home_work</i> &#x2014; material icon named "home work outlined".
  static const IconData home_work_outlined = IconData(0xe22c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">home_work</i> &#x2014; material icon named "home work rounded".
  static const IconData home_work_rounded = IconData(0xf25b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">home_work</i> &#x2014; material icon named "home work sharp".
  static const IconData home_work_sharp = IconData(0xed2d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">horizontal_rule</i> &#x2014; material icon named "horizontal rule".
  static const IconData horizontal_rule = IconData(0xe7be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">horizontal_rule</i> &#x2014; material icon named "horizontal rule outlined".
  static const IconData horizontal_rule_outlined = IconData(0xe22d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">horizontal_rule</i> &#x2014; material icon named "horizontal rule rounded".
  static const IconData horizontal_rule_rounded = IconData(0xf25c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">horizontal_rule</i> &#x2014; material icon named "horizontal rule sharp".
  static const IconData horizontal_rule_sharp = IconData(0xed2e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">horizontal_split</i> &#x2014; material icon named "horizontal split".
  static const IconData horizontal_split = IconData(0xe7bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">horizontal_split</i> &#x2014; material icon named "horizontal split outlined".
  static const IconData horizontal_split_outlined = IconData(0xe22e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">horizontal_split</i> &#x2014; material icon named "horizontal split rounded".
  static const IconData horizontal_split_rounded = IconData(0xf25d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">horizontal_split</i> &#x2014; material icon named "horizontal split sharp".
  static const IconData horizontal_split_sharp = IconData(0xed2f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hot_tub</i> &#x2014; material icon named "hot tub".
  static const IconData hot_tub = IconData(0xe7c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hot_tub</i> &#x2014; material icon named "hot tub outlined".
  static const IconData hot_tub_outlined = IconData(0xe22f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hot_tub</i> &#x2014; material icon named "hot tub rounded".
  static const IconData hot_tub_rounded = IconData(0xf25e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hot_tub</i> &#x2014; material icon named "hot tub sharp".
  static const IconData hot_tub_sharp = IconData(0xed30, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hotel</i> &#x2014; material icon named "hotel".
  static const IconData hotel = IconData(0xe7c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hotel</i> &#x2014; material icon named "hotel outlined".
  static const IconData hotel_outlined = IconData(0xe230, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hotel</i> &#x2014; material icon named "hotel rounded".
  static const IconData hotel_rounded = IconData(0xf25f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hotel</i> &#x2014; material icon named "hotel sharp".
  static const IconData hotel_sharp = IconData(0xed31, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hourglass_bottom</i> &#x2014; material icon named "hourglass bottom".
  static const IconData hourglass_bottom = IconData(0xe7c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hourglass_bottom</i> &#x2014; material icon named "hourglass bottom outlined".
  static const IconData hourglass_bottom_outlined = IconData(0xe231, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hourglass_bottom</i> &#x2014; material icon named "hourglass bottom rounded".
  static const IconData hourglass_bottom_rounded = IconData(0xf260, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hourglass_bottom</i> &#x2014; material icon named "hourglass bottom sharp".
  static const IconData hourglass_bottom_sharp = IconData(0xed32, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hourglass_disabled</i> &#x2014; material icon named "hourglass disabled".
  static const IconData hourglass_disabled = IconData(0xe7c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hourglass_disabled</i> &#x2014; material icon named "hourglass disabled outlined".
  static const IconData hourglass_disabled_outlined = IconData(0xe232, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hourglass_disabled</i> &#x2014; material icon named "hourglass disabled rounded".
  static const IconData hourglass_disabled_rounded = IconData(0xf261, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hourglass_disabled</i> &#x2014; material icon named "hourglass disabled sharp".
  static const IconData hourglass_disabled_sharp = IconData(0xed33, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hourglass_empty</i> &#x2014; material icon named "hourglass empty".
  static const IconData hourglass_empty = IconData(0xe7c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hourglass_empty</i> &#x2014; material icon named "hourglass empty outlined".
  static const IconData hourglass_empty_outlined = IconData(0xe233, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hourglass_empty</i> &#x2014; material icon named "hourglass empty rounded".
  static const IconData hourglass_empty_rounded = IconData(0xf262, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hourglass_empty</i> &#x2014; material icon named "hourglass empty sharp".
  static const IconData hourglass_empty_sharp = IconData(0xed34, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hourglass_full</i> &#x2014; material icon named "hourglass full".
  static const IconData hourglass_full = IconData(0xe7c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hourglass_full</i> &#x2014; material icon named "hourglass full outlined".
  static const IconData hourglass_full_outlined = IconData(0xe234, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hourglass_full</i> &#x2014; material icon named "hourglass full rounded".
  static const IconData hourglass_full_rounded = IconData(0xf263, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hourglass_full</i> &#x2014; material icon named "hourglass full sharp".
  static const IconData hourglass_full_sharp = IconData(0xed35, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hourglass_top</i> &#x2014; material icon named "hourglass top".
  static const IconData hourglass_top = IconData(0xe7c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hourglass_top</i> &#x2014; material icon named "hourglass top outlined".
  static const IconData hourglass_top_outlined = IconData(0xe235, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hourglass_top</i> &#x2014; material icon named "hourglass top rounded".
  static const IconData hourglass_top_rounded = IconData(0xf264, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hourglass_top</i> &#x2014; material icon named "hourglass top sharp".
  static const IconData hourglass_top_sharp = IconData(0xed36, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">house</i> &#x2014; material icon named "house".
  static const IconData house = IconData(0xe7c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">house</i> &#x2014; material icon named "house outlined".
  static const IconData house_outlined = IconData(0xe236, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">house</i> &#x2014; material icon named "house rounded".
  static const IconData house_rounded = IconData(0xf265, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">house</i> &#x2014; material icon named "house sharp".
  static const IconData house_sharp = IconData(0xed37, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">house_siding</i> &#x2014; material icon named "house siding".
  static const IconData house_siding = IconData(0xe7c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">house_siding</i> &#x2014; material icon named "house siding outlined".
  static const IconData house_siding_outlined = IconData(0xe237, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">house_siding</i> &#x2014; material icon named "house siding rounded".
  static const IconData house_siding_rounded = IconData(0xf266, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">house_siding</i> &#x2014; material icon named "house siding sharp".
  static const IconData house_siding_sharp = IconData(0xed38, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">how_to_reg</i> &#x2014; material icon named "how to reg".
  static const IconData how_to_reg = IconData(0xe7c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">how_to_reg</i> &#x2014; material icon named "how to reg outlined".
  static const IconData how_to_reg_outlined = IconData(0xe238, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">how_to_reg</i> &#x2014; material icon named "how to reg rounded".
  static const IconData how_to_reg_rounded = IconData(0xf267, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">how_to_reg</i> &#x2014; material icon named "how to reg sharp".
  static const IconData how_to_reg_sharp = IconData(0xed39, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">how_to_vote</i> &#x2014; material icon named "how to vote".
  static const IconData how_to_vote = IconData(0xe7ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">how_to_vote</i> &#x2014; material icon named "how to vote outlined".
  static const IconData how_to_vote_outlined = IconData(0xe239, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">how_to_vote</i> &#x2014; material icon named "how to vote rounded".
  static const IconData how_to_vote_rounded = IconData(0xf268, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">how_to_vote</i> &#x2014; material icon named "how to vote sharp".
  static const IconData how_to_vote_sharp = IconData(0xed3a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">http</i> &#x2014; material icon named "http".
  static const IconData http = IconData(0xe7cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">http</i> &#x2014; material icon named "http outlined".
  static const IconData http_outlined = IconData(0xe23a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">http</i> &#x2014; material icon named "http rounded".
  static const IconData http_rounded = IconData(0xf269, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">http</i> &#x2014; material icon named "http sharp".
  static const IconData http_sharp = IconData(0xed3b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">https</i> &#x2014; material icon named "https".
  static const IconData https = IconData(0xe7cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">https</i> &#x2014; material icon named "https outlined".
  static const IconData https_outlined = IconData(0xe23b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">https</i> &#x2014; material icon named "https rounded".
  static const IconData https_rounded = IconData(0xf26a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">https</i> &#x2014; material icon named "https sharp".
  static const IconData https_sharp = IconData(0xed3c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hvac</i> &#x2014; material icon named "hvac".
  static const IconData hvac = IconData(0xe7cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hvac</i> &#x2014; material icon named "hvac outlined".
  static const IconData hvac_outlined = IconData(0xe23c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hvac</i> &#x2014; material icon named "hvac rounded".
  static const IconData hvac_rounded = IconData(0xf26b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hvac</i> &#x2014; material icon named "hvac sharp".
  static const IconData hvac_sharp = IconData(0xed3d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">icecream</i> &#x2014; material icon named "icecream".
  static const IconData icecream = IconData(0xe7ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">image</i> &#x2014; material icon named "image".
  static const IconData image = IconData(0xe7cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">image_aspect_ratio</i> &#x2014; material icon named "image aspect ratio".
  static const IconData image_aspect_ratio = IconData(0xe7d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">image_aspect_ratio</i> &#x2014; material icon named "image aspect ratio outlined".
  static const IconData image_aspect_ratio_outlined = IconData(0xe23d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">image_aspect_ratio</i> &#x2014; material icon named "image aspect ratio rounded".
  static const IconData image_aspect_ratio_rounded = IconData(0xf26c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">image_aspect_ratio</i> &#x2014; material icon named "image aspect ratio sharp".
  static const IconData image_aspect_ratio_sharp = IconData(0xed3e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">image_not_supported</i> &#x2014; material icon named "image not supported".
  static const IconData image_not_supported = IconData(0xe7d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">image_not_supported</i> &#x2014; material icon named "image not supported outlined".
  static const IconData image_not_supported_outlined = IconData(0xe23e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">image_not_supported</i> &#x2014; material icon named "image not supported rounded".
  static const IconData image_not_supported_rounded = IconData(0xf26d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">image_not_supported</i> &#x2014; material icon named "image not supported sharp".
  static const IconData image_not_supported_sharp = IconData(0xed3f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">image</i> &#x2014; material icon named "image outlined".
  static const IconData image_outlined = IconData(0xe23f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">image</i> &#x2014; material icon named "image rounded".
  static const IconData image_rounded = IconData(0xf26e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">image_search</i> &#x2014; material icon named "image search".
  static const IconData image_search = IconData(0xe7d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">image_search</i> &#x2014; material icon named "image search outlined".
  static const IconData image_search_outlined = IconData(0xe240, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">image_search</i> &#x2014; material icon named "image search rounded".
  static const IconData image_search_rounded = IconData(0xf26f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">image_search</i> &#x2014; material icon named "image search sharp".
  static const IconData image_search_sharp = IconData(0xed40, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">image</i> &#x2014; material icon named "image sharp".
  static const IconData image_sharp = IconData(0xed41, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">imagesearch_roller</i> &#x2014; material icon named "imagesearch roller".
  static const IconData imagesearch_roller = IconData(0xe7d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">import_contacts</i> &#x2014; material icon named "import contacts".
  static const IconData import_contacts = IconData(0xe7d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">import_contacts</i> &#x2014; material icon named "import contacts outlined".
  static const IconData import_contacts_outlined = IconData(0xe241, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">import_contacts</i> &#x2014; material icon named "import contacts rounded".
  static const IconData import_contacts_rounded = IconData(0xf270, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">import_contacts</i> &#x2014; material icon named "import contacts sharp".
  static const IconData import_contacts_sharp = IconData(0xed42, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">import_export</i> &#x2014; material icon named "import export".
  static const IconData import_export = IconData(0xe7d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">import_export</i> &#x2014; material icon named "import export outlined".
  static const IconData import_export_outlined = IconData(0xe242, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">import_export</i> &#x2014; material icon named "import export rounded".
  static const IconData import_export_rounded = IconData(0xf271, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">import_export</i> &#x2014; material icon named "import export sharp".
  static const IconData import_export_sharp = IconData(0xed43, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">important_devices</i> &#x2014; material icon named "important devices".
  static const IconData important_devices = IconData(0xe7d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">important_devices</i> &#x2014; material icon named "important devices outlined".
  static const IconData important_devices_outlined = IconData(0xe243, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">important_devices</i> &#x2014; material icon named "important devices rounded".
  static const IconData important_devices_rounded = IconData(0xf272, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">important_devices</i> &#x2014; material icon named "important devices sharp".
  static const IconData important_devices_sharp = IconData(0xed44, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">inbox</i> &#x2014; material icon named "inbox".
  static const IconData inbox = IconData(0xe7d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">inbox</i> &#x2014; material icon named "inbox outlined".
  static const IconData inbox_outlined = IconData(0xe244, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">inbox</i> &#x2014; material icon named "inbox rounded".
  static const IconData inbox_rounded = IconData(0xf273, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">inbox</i> &#x2014; material icon named "inbox sharp".
  static const IconData inbox_sharp = IconData(0xed45, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">indeterminate_check_box</i> &#x2014; material icon named "indeterminate check box".
  static const IconData indeterminate_check_box = IconData(0xe7d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">indeterminate_check_box</i> &#x2014; material icon named "indeterminate check box outlined".
  static const IconData indeterminate_check_box_outlined = IconData(0xe245, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">indeterminate_check_box</i> &#x2014; material icon named "indeterminate check box rounded".
  static const IconData indeterminate_check_box_rounded = IconData(0xf274, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">indeterminate_check_box</i> &#x2014; material icon named "indeterminate check box sharp".
  static const IconData indeterminate_check_box_sharp = IconData(0xed46, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">info</i> &#x2014; material icon named "info".
  static const IconData info = IconData(0xe7d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">info_outline</i> &#x2014; material icon named "info outline".
  static const IconData info_outline = IconData(0xe7da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">info_outline</i> &#x2014; material icon named "info outline rounded".
  static const IconData info_outline_rounded = IconData(0xf275, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">info_outline</i> &#x2014; material icon named "info outline sharp".
  static const IconData info_outline_sharp = IconData(0xed47, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">info</i> &#x2014; material icon named "info outlined".
  static const IconData info_outlined = IconData(0xe246, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">info</i> &#x2014; material icon named "info rounded".
  static const IconData info_rounded = IconData(0xf276, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">info</i> &#x2014; material icon named "info sharp".
  static const IconData info_sharp = IconData(0xed48, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">input</i> &#x2014; material icon named "input".
  static const IconData input = IconData(0xe7db, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">input</i> &#x2014; material icon named "input outlined".
  static const IconData input_outlined = IconData(0xe247, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">input</i> &#x2014; material icon named "input rounded".
  static const IconData input_rounded = IconData(0xf277, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">input</i> &#x2014; material icon named "input sharp".
  static const IconData input_sharp = IconData(0xed49, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">insert_chart</i> &#x2014; material icon named "insert chart".
  static const IconData insert_chart = IconData(0xe7dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">insert_chart_outlined</i> &#x2014; material icon named "insert chart outlined".
  static const IconData insert_chart_outlined = IconData(0xe248, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">insert_chart</i> &#x2014; material icon named "insert chart outlined outlined".
  static const IconData insert_chart_outlined_outlined = IconData(0xe249, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insert_chart_outlined</i> &#x2014; material icon named "insert chart outlined rounded".
  static const IconData insert_chart_outlined_rounded = IconData(0xf278, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">insert_chart_outlined</i> &#x2014; material icon named "insert chart outlined sharp".
  static const IconData insert_chart_outlined_sharp = IconData(0xed4a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insert_chart</i> &#x2014; material icon named "insert chart rounded".
  static const IconData insert_chart_rounded = IconData(0xf279, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">insert_chart</i> &#x2014; material icon named "insert chart sharp".
  static const IconData insert_chart_sharp = IconData(0xed4b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">insert_comment</i> &#x2014; material icon named "insert comment".
  static const IconData insert_comment = IconData(0xe7de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">insert_comment</i> &#x2014; material icon named "insert comment outlined".
  static const IconData insert_comment_outlined = IconData(0xe24a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insert_comment</i> &#x2014; material icon named "insert comment rounded".
  static const IconData insert_comment_rounded = IconData(0xf27a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">insert_comment</i> &#x2014; material icon named "insert comment sharp".
  static const IconData insert_comment_sharp = IconData(0xed4c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">insert_drive_file</i> &#x2014; material icon named "insert drive file".
  static const IconData insert_drive_file = IconData(0xe7df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">insert_drive_file</i> &#x2014; material icon named "insert drive file outlined".
  static const IconData insert_drive_file_outlined = IconData(0xe24b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insert_drive_file</i> &#x2014; material icon named "insert drive file rounded".
  static const IconData insert_drive_file_rounded = IconData(0xf27b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">insert_drive_file</i> &#x2014; material icon named "insert drive file sharp".
  static const IconData insert_drive_file_sharp = IconData(0xed4d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">insert_emoticon</i> &#x2014; material icon named "insert emoticon".
  static const IconData insert_emoticon = IconData(0xe7e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">insert_emoticon</i> &#x2014; material icon named "insert emoticon outlined".
  static const IconData insert_emoticon_outlined = IconData(0xe24c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insert_emoticon</i> &#x2014; material icon named "insert emoticon rounded".
  static const IconData insert_emoticon_rounded = IconData(0xf27c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">insert_emoticon</i> &#x2014; material icon named "insert emoticon sharp".
  static const IconData insert_emoticon_sharp = IconData(0xed4e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">insert_invitation</i> &#x2014; material icon named "insert invitation".
  static const IconData insert_invitation = IconData(0xe7e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">insert_invitation</i> &#x2014; material icon named "insert invitation outlined".
  static const IconData insert_invitation_outlined = IconData(0xe24d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insert_invitation</i> &#x2014; material icon named "insert invitation rounded".
  static const IconData insert_invitation_rounded = IconData(0xf27d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">insert_invitation</i> &#x2014; material icon named "insert invitation sharp".
  static const IconData insert_invitation_sharp = IconData(0xed4f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">insert_link</i> &#x2014; material icon named "insert link".
  static const IconData insert_link = IconData(0xe7e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">insert_link</i> &#x2014; material icon named "insert link outlined".
  static const IconData insert_link_outlined = IconData(0xe24e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insert_link</i> &#x2014; material icon named "insert link rounded".
  static const IconData insert_link_rounded = IconData(0xf27e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">insert_link</i> &#x2014; material icon named "insert link sharp".
  static const IconData insert_link_sharp = IconData(0xed50, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">insert_photo</i> &#x2014; material icon named "insert photo".
  static const IconData insert_photo = IconData(0xe7e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">insert_photo</i> &#x2014; material icon named "insert photo outlined".
  static const IconData insert_photo_outlined = IconData(0xe24f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insert_photo</i> &#x2014; material icon named "insert photo rounded".
  static const IconData insert_photo_rounded = IconData(0xf27f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">insert_photo</i> &#x2014; material icon named "insert photo sharp".
  static const IconData insert_photo_sharp = IconData(0xed51, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">insights</i> &#x2014; material icon named "insights".
  static const IconData insights = IconData(0xe7e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">insights</i> &#x2014; material icon named "insights outlined".
  static const IconData insights_outlined = IconData(0xe250, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insights</i> &#x2014; material icon named "insights rounded".
  static const IconData insights_rounded = IconData(0xf280, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">insights</i> &#x2014; material icon named "insights sharp".
  static const IconData insights_sharp = IconData(0xed52, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">integration_instructions</i> &#x2014; material icon named "integration instructions".
  static const IconData integration_instructions = IconData(0xe7e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">integration_instructions</i> &#x2014; material icon named "integration instructions outlined".
  static const IconData integration_instructions_outlined = IconData(0xe251, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">integration_instructions</i> &#x2014; material icon named "integration instructions rounded".
  static const IconData integration_instructions_rounded = IconData(0xf281, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">integration_instructions</i> &#x2014; material icon named "integration instructions sharp".
  static const IconData integration_instructions_sharp = IconData(0xed53, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">inventory</i> &#x2014; material icon named "inventory".
  static const IconData inventory = IconData(0xe7e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">invert_colors</i> &#x2014; material icon named "invert colors".
  static const IconData invert_colors = IconData(0xe7e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">invert_colors_off</i> &#x2014; material icon named "invert colors off".
  static const IconData invert_colors_off = IconData(0xe7e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">invert_colors_off</i> &#x2014; material icon named "invert colors off outlined".
  static const IconData invert_colors_off_outlined = IconData(0xe252, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">invert_colors_off</i> &#x2014; material icon named "invert colors off rounded".
  static const IconData invert_colors_off_rounded = IconData(0xf282, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">invert_colors_off</i> &#x2014; material icon named "invert colors off sharp".
  static const IconData invert_colors_off_sharp = IconData(0xed54, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">invert_colors_on</i> &#x2014; material icon named "invert colors on".
  static const IconData invert_colors_on = IconData(0xe7e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">invert_colors_on</i> &#x2014; material icon named "invert colors on outlined".
  static const IconData invert_colors_on_outlined = IconData(0xe253, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">invert_colors_on</i> &#x2014; material icon named "invert colors on rounded".
  static const IconData invert_colors_on_rounded = IconData(0xf283, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">invert_colors_on</i> &#x2014; material icon named "invert colors on sharp".
  static const IconData invert_colors_on_sharp = IconData(0xed55, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">invert_colors</i> &#x2014; material icon named "invert colors outlined".
  static const IconData invert_colors_outlined = IconData(0xe253, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">invert_colors</i> &#x2014; material icon named "invert colors rounded".
  static const IconData invert_colors_rounded = IconData(0xf283, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">invert_colors</i> &#x2014; material icon named "invert colors sharp".
  static const IconData invert_colors_sharp = IconData(0xed55, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">ios_share</i> &#x2014; material icon named "ios share".
  static const IconData ios_share = IconData(0xe7e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">iso</i> &#x2014; material icon named "iso".
  static const IconData iso = IconData(0xe7ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">iso</i> &#x2014; material icon named "iso outlined".
  static const IconData iso_outlined = IconData(0xe254, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">iso</i> &#x2014; material icon named "iso rounded".
  static const IconData iso_rounded = IconData(0xf284, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">iso</i> &#x2014; material icon named "iso sharp".
  static const IconData iso_sharp = IconData(0xed56, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">keyboard</i> &#x2014; material icon named "keyboard".
  static const IconData keyboard = IconData(0xe7eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">keyboard_arrow_down</i> &#x2014; material icon named "keyboard arrow down".
  static const IconData keyboard_arrow_down = IconData(0xe7ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">keyboard_arrow_down</i> &#x2014; material icon named "keyboard arrow down outlined".
  static const IconData keyboard_arrow_down_outlined = IconData(0xe255, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_arrow_down</i> &#x2014; material icon named "keyboard arrow down rounded".
  static const IconData keyboard_arrow_down_rounded = IconData(0xf285, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">keyboard_arrow_down</i> &#x2014; material icon named "keyboard arrow down sharp".
  static const IconData keyboard_arrow_down_sharp = IconData(0xed57, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">keyboard_arrow_left</i> &#x2014; material icon named "keyboard arrow left".
  static const IconData keyboard_arrow_left = IconData(0xe7ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">keyboard_arrow_left</i> &#x2014; material icon named "keyboard arrow left outlined".
  static const IconData keyboard_arrow_left_outlined = IconData(0xe256, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_arrow_left</i> &#x2014; material icon named "keyboard arrow left rounded".
  static const IconData keyboard_arrow_left_rounded = IconData(0xf286, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">keyboard_arrow_left</i> &#x2014; material icon named "keyboard arrow left sharp".
  static const IconData keyboard_arrow_left_sharp = IconData(0xed58, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">keyboard_arrow_right</i> &#x2014; material icon named "keyboard arrow right".
  static const IconData keyboard_arrow_right = IconData(0xe7ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">keyboard_arrow_right</i> &#x2014; material icon named "keyboard arrow right outlined".
  static const IconData keyboard_arrow_right_outlined = IconData(0xe257, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_arrow_right</i> &#x2014; material icon named "keyboard arrow right rounded".
  static const IconData keyboard_arrow_right_rounded = IconData(0xf287, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">keyboard_arrow_right</i> &#x2014; material icon named "keyboard arrow right sharp".
  static const IconData keyboard_arrow_right_sharp = IconData(0xed59, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">keyboard_arrow_up</i> &#x2014; material icon named "keyboard arrow up".
  static const IconData keyboard_arrow_up = IconData(0xe7ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">keyboard_arrow_up</i> &#x2014; material icon named "keyboard arrow up outlined".
  static const IconData keyboard_arrow_up_outlined = IconData(0xe258, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_arrow_up</i> &#x2014; material icon named "keyboard arrow up rounded".
  static const IconData keyboard_arrow_up_rounded = IconData(0xf288, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">keyboard_arrow_up</i> &#x2014; material icon named "keyboard arrow up sharp".
  static const IconData keyboard_arrow_up_sharp = IconData(0xed5a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">keyboard_backspace</i> &#x2014; material icon named "keyboard backspace".
  static const IconData keyboard_backspace = IconData(0xe7f0, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">keyboard_backspace</i> &#x2014; material icon named "keyboard backspace outlined".
  static const IconData keyboard_backspace_outlined = IconData(0xe259, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">keyboard_backspace</i> &#x2014; material icon named "keyboard backspace rounded".
  static const IconData keyboard_backspace_rounded = IconData(0xf289, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">keyboard_backspace</i> &#x2014; material icon named "keyboard backspace sharp".
  static const IconData keyboard_backspace_sharp = IconData(0xed5b, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">keyboard_capslock</i> &#x2014; material icon named "keyboard capslock".
  static const IconData keyboard_capslock = IconData(0xe7f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">keyboard_capslock</i> &#x2014; material icon named "keyboard capslock outlined".
  static const IconData keyboard_capslock_outlined = IconData(0xe25a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_capslock</i> &#x2014; material icon named "keyboard capslock rounded".
  static const IconData keyboard_capslock_rounded = IconData(0xf28a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">keyboard_capslock</i> &#x2014; material icon named "keyboard capslock sharp".
  static const IconData keyboard_capslock_sharp = IconData(0xed5c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">keyboard_control</i> &#x2014; material icon named "keyboard control".
  static const IconData keyboard_control = IconData(0xe886, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">keyboard_control</i> &#x2014; material icon named "keyboard control outlined".
  static const IconData keyboard_control_outlined = IconData(0xe2e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_control</i> &#x2014; material icon named "keyboard control rounded".
  static const IconData keyboard_control_rounded = IconData(0xf315, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">keyboard_control</i> &#x2014; material icon named "keyboard control sharp".
  static const IconData keyboard_control_sharp = IconData(0xede7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">keyboard_hide</i> &#x2014; material icon named "keyboard hide".
  static const IconData keyboard_hide = IconData(0xe7f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">keyboard_hide</i> &#x2014; material icon named "keyboard hide outlined".
  static const IconData keyboard_hide_outlined = IconData(0xe25b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_hide</i> &#x2014; material icon named "keyboard hide rounded".
  static const IconData keyboard_hide_rounded = IconData(0xf28b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">keyboard_hide</i> &#x2014; material icon named "keyboard hide sharp".
  static const IconData keyboard_hide_sharp = IconData(0xed5d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">keyboard</i> &#x2014; material icon named "keyboard outlined".
  static const IconData keyboard_outlined = IconData(0xe25c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">keyboard_return</i> &#x2014; material icon named "keyboard return".
  static const IconData keyboard_return = IconData(0xe7f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">keyboard_return</i> &#x2014; material icon named "keyboard return outlined".
  static const IconData keyboard_return_outlined = IconData(0xe25d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_return</i> &#x2014; material icon named "keyboard return rounded".
  static const IconData keyboard_return_rounded = IconData(0xf28c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">keyboard_return</i> &#x2014; material icon named "keyboard return sharp".
  static const IconData keyboard_return_sharp = IconData(0xed5e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard</i> &#x2014; material icon named "keyboard rounded".
  static const IconData keyboard_rounded = IconData(0xf28d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">keyboard</i> &#x2014; material icon named "keyboard sharp".
  static const IconData keyboard_sharp = IconData(0xed5f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">keyboard_tab</i> &#x2014; material icon named "keyboard tab".
  static const IconData keyboard_tab = IconData(0xe7f4, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">keyboard_tab</i> &#x2014; material icon named "keyboard tab outlined".
  static const IconData keyboard_tab_outlined = IconData(0xe25e, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">keyboard_tab</i> &#x2014; material icon named "keyboard tab rounded".
  static const IconData keyboard_tab_rounded = IconData(0xf28e, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">keyboard_tab</i> &#x2014; material icon named "keyboard tab sharp".
  static const IconData keyboard_tab_sharp = IconData(0xed60, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">keyboard_voice</i> &#x2014; material icon named "keyboard voice".
  static const IconData keyboard_voice = IconData(0xe7f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">keyboard_voice</i> &#x2014; material icon named "keyboard voice outlined".
  static const IconData keyboard_voice_outlined = IconData(0xe25f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_voice</i> &#x2014; material icon named "keyboard voice rounded".
  static const IconData keyboard_voice_rounded = IconData(0xf28f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">keyboard_voice</i> &#x2014; material icon named "keyboard voice sharp".
  static const IconData keyboard_voice_sharp = IconData(0xed61, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">king_bed</i> &#x2014; material icon named "king bed".
  static const IconData king_bed = IconData(0xe7f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">king_bed</i> &#x2014; material icon named "king bed outlined".
  static const IconData king_bed_outlined = IconData(0xe260, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">king_bed</i> &#x2014; material icon named "king bed rounded".
  static const IconData king_bed_rounded = IconData(0xf290, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">king_bed</i> &#x2014; material icon named "king bed sharp".
  static const IconData king_bed_sharp = IconData(0xed62, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">kitchen</i> &#x2014; material icon named "kitchen".
  static const IconData kitchen = IconData(0xe7f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">kitchen</i> &#x2014; material icon named "kitchen outlined".
  static const IconData kitchen_outlined = IconData(0xe261, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">kitchen</i> &#x2014; material icon named "kitchen rounded".
  static const IconData kitchen_rounded = IconData(0xf291, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">kitchen</i> &#x2014; material icon named "kitchen sharp".
  static const IconData kitchen_sharp = IconData(0xed63, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">label</i> &#x2014; material icon named "label".
  static const IconData label = IconData(0xe7f8, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">label_important</i> &#x2014; material icon named "label important".
  static const IconData label_important = IconData(0xe7f9, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">label_important_outline</i> &#x2014; material icon named "label important outline".
  static const IconData label_important_outline = IconData(0xe7fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">label_important_outline</i> &#x2014; material icon named "label important outline rounded".
  static const IconData label_important_outline_rounded = IconData(0xf292, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">label_important_outline</i> &#x2014; material icon named "label important outline sharp".
  static const IconData label_important_outline_sharp = IconData(0xed64, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">label_important</i> &#x2014; material icon named "label important outlined".
  static const IconData label_important_outlined = IconData(0xe262, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">label_important</i> &#x2014; material icon named "label important rounded".
  static const IconData label_important_rounded = IconData(0xf293, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">label_important</i> &#x2014; material icon named "label important sharp".
  static const IconData label_important_sharp = IconData(0xed65, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">label_off</i> &#x2014; material icon named "label off".
  static const IconData label_off = IconData(0xe7fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">label_off</i> &#x2014; material icon named "label off outlined".
  static const IconData label_off_outlined = IconData(0xe263, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">label_off</i> &#x2014; material icon named "label off rounded".
  static const IconData label_off_rounded = IconData(0xf294, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">label_off</i> &#x2014; material icon named "label off sharp".
  static const IconData label_off_sharp = IconData(0xed66, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">label_outline</i> &#x2014; material icon named "label outline".
  static const IconData label_outline = IconData(0xe7fc, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">label_outline</i> &#x2014; material icon named "label outline rounded".
  static const IconData label_outline_rounded = IconData(0xf295, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">label_outline</i> &#x2014; material icon named "label outline sharp".
  static const IconData label_outline_sharp = IconData(0xed67, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">label</i> &#x2014; material icon named "label outlined".
  static const IconData label_outlined = IconData(0xe264, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">label</i> &#x2014; material icon named "label rounded".
  static const IconData label_rounded = IconData(0xf296, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">label</i> &#x2014; material icon named "label sharp".
  static const IconData label_sharp = IconData(0xed68, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">landscape</i> &#x2014; material icon named "landscape".
  static const IconData landscape = IconData(0xe7fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">landscape</i> &#x2014; material icon named "landscape outlined".
  static const IconData landscape_outlined = IconData(0xe265, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">landscape</i> &#x2014; material icon named "landscape rounded".
  static const IconData landscape_rounded = IconData(0xf297, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">landscape</i> &#x2014; material icon named "landscape sharp".
  static const IconData landscape_sharp = IconData(0xed69, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">language</i> &#x2014; material icon named "language".
  static const IconData language = IconData(0xe7fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">language</i> &#x2014; material icon named "language outlined".
  static const IconData language_outlined = IconData(0xe266, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">language</i> &#x2014; material icon named "language rounded".
  static const IconData language_rounded = IconData(0xf298, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">language</i> &#x2014; material icon named "language sharp".
  static const IconData language_sharp = IconData(0xed6a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">laptop</i> &#x2014; material icon named "laptop".
  static const IconData laptop = IconData(0xe7ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">laptop_chromebook</i> &#x2014; material icon named "laptop chromebook".
  static const IconData laptop_chromebook = IconData(0xe800, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">laptop_chromebook</i> &#x2014; material icon named "laptop chromebook outlined".
  static const IconData laptop_chromebook_outlined = IconData(0xe267, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">laptop_chromebook</i> &#x2014; material icon named "laptop chromebook rounded".
  static const IconData laptop_chromebook_rounded = IconData(0xf299, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">laptop_chromebook</i> &#x2014; material icon named "laptop chromebook sharp".
  static const IconData laptop_chromebook_sharp = IconData(0xed6b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">laptop_mac</i> &#x2014; material icon named "laptop mac".
  static const IconData laptop_mac = IconData(0xe801, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">laptop_mac</i> &#x2014; material icon named "laptop mac outlined".
  static const IconData laptop_mac_outlined = IconData(0xe268, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">laptop_mac</i> &#x2014; material icon named "laptop mac rounded".
  static const IconData laptop_mac_rounded = IconData(0xf29a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">laptop_mac</i> &#x2014; material icon named "laptop mac sharp".
  static const IconData laptop_mac_sharp = IconData(0xed6c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">laptop</i> &#x2014; material icon named "laptop outlined".
  static const IconData laptop_outlined = IconData(0xe269, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">laptop</i> &#x2014; material icon named "laptop rounded".
  static const IconData laptop_rounded = IconData(0xf29b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">laptop</i> &#x2014; material icon named "laptop sharp".
  static const IconData laptop_sharp = IconData(0xed6d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">laptop_windows</i> &#x2014; material icon named "laptop windows".
  static const IconData laptop_windows = IconData(0xe802, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">laptop_windows</i> &#x2014; material icon named "laptop windows outlined".
  static const IconData laptop_windows_outlined = IconData(0xe26a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">laptop_windows</i> &#x2014; material icon named "laptop windows rounded".
  static const IconData laptop_windows_rounded = IconData(0xf29c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">laptop_windows</i> &#x2014; material icon named "laptop windows sharp".
  static const IconData laptop_windows_sharp = IconData(0xed6e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">last_page</i> &#x2014; material icon named "last page".
  static const IconData last_page = IconData(0xe803, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">last_page</i> &#x2014; material icon named "last page outlined".
  static const IconData last_page_outlined = IconData(0xe26b, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">last_page</i> &#x2014; material icon named "last page rounded".
  static const IconData last_page_rounded = IconData(0xf29d, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">last_page</i> &#x2014; material icon named "last page sharp".
  static const IconData last_page_sharp = IconData(0xed6f, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">launch</i> &#x2014; material icon named "launch".
  static const IconData launch = IconData(0xe804, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">launch</i> &#x2014; material icon named "launch outlined".
  static const IconData launch_outlined = IconData(0xe26c, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">launch</i> &#x2014; material icon named "launch rounded".
  static const IconData launch_rounded = IconData(0xf29e, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">launch</i> &#x2014; material icon named "launch sharp".
  static const IconData launch_sharp = IconData(0xed70, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">layers</i> &#x2014; material icon named "layers".
  static const IconData layers = IconData(0xe805, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">layers_clear</i> &#x2014; material icon named "layers clear".
  static const IconData layers_clear = IconData(0xe806, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">layers_clear</i> &#x2014; material icon named "layers clear outlined".
  static const IconData layers_clear_outlined = IconData(0xe26d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">layers_clear</i> &#x2014; material icon named "layers clear rounded".
  static const IconData layers_clear_rounded = IconData(0xf29f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">layers_clear</i> &#x2014; material icon named "layers clear sharp".
  static const IconData layers_clear_sharp = IconData(0xed71, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">layers</i> &#x2014; material icon named "layers outlined".
  static const IconData layers_outlined = IconData(0xe26e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">layers</i> &#x2014; material icon named "layers rounded".
  static const IconData layers_rounded = IconData(0xf2a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">layers</i> &#x2014; material icon named "layers sharp".
  static const IconData layers_sharp = IconData(0xed72, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">leaderboard</i> &#x2014; material icon named "leaderboard".
  static const IconData leaderboard = IconData(0xe807, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">leaderboard</i> &#x2014; material icon named "leaderboard outlined".
  static const IconData leaderboard_outlined = IconData(0xe26f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">leaderboard</i> &#x2014; material icon named "leaderboard rounded".
  static const IconData leaderboard_rounded = IconData(0xf2a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">leaderboard</i> &#x2014; material icon named "leaderboard sharp".
  static const IconData leaderboard_sharp = IconData(0xed73, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">leak_add</i> &#x2014; material icon named "leak add".
  static const IconData leak_add = IconData(0xe808, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">leak_add</i> &#x2014; material icon named "leak add outlined".
  static const IconData leak_add_outlined = IconData(0xe270, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">leak_add</i> &#x2014; material icon named "leak add rounded".
  static const IconData leak_add_rounded = IconData(0xf2a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">leak_add</i> &#x2014; material icon named "leak add sharp".
  static const IconData leak_add_sharp = IconData(0xed74, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">leak_remove</i> &#x2014; material icon named "leak remove".
  static const IconData leak_remove = IconData(0xe809, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">leak_remove</i> &#x2014; material icon named "leak remove outlined".
  static const IconData leak_remove_outlined = IconData(0xe271, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">leak_remove</i> &#x2014; material icon named "leak remove rounded".
  static const IconData leak_remove_rounded = IconData(0xf2a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">leak_remove</i> &#x2014; material icon named "leak remove sharp".
  static const IconData leak_remove_sharp = IconData(0xed75, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">leave_bags_at_home</i> &#x2014; material icon named "leave bags at home".
  static const IconData leave_bags_at_home = IconData(0xe80a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">leave_bags_at_home</i> &#x2014; material icon named "leave bags at home outlined".
  static const IconData leave_bags_at_home_outlined = IconData(0xe272, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">leave_bags_at_home</i> &#x2014; material icon named "leave bags at home rounded".
  static const IconData leave_bags_at_home_rounded = IconData(0xf2a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">leave_bags_at_home</i> &#x2014; material icon named "leave bags at home sharp".
  static const IconData leave_bags_at_home_sharp = IconData(0xed76, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">legend_toggle</i> &#x2014; material icon named "legend toggle".
  static const IconData legend_toggle = IconData(0xe80b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">legend_toggle</i> &#x2014; material icon named "legend toggle outlined".
  static const IconData legend_toggle_outlined = IconData(0xe273, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">legend_toggle</i> &#x2014; material icon named "legend toggle rounded".
  static const IconData legend_toggle_rounded = IconData(0xf2a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">legend_toggle</i> &#x2014; material icon named "legend toggle sharp".
  static const IconData legend_toggle_sharp = IconData(0xed77, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lens</i> &#x2014; material icon named "lens".
  static const IconData lens = IconData(0xe80c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">lens</i> &#x2014; material icon named "lens outlined".
  static const IconData lens_outlined = IconData(0xe274, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lens</i> &#x2014; material icon named "lens rounded".
  static const IconData lens_rounded = IconData(0xf2a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">lens</i> &#x2014; material icon named "lens sharp".
  static const IconData lens_sharp = IconData(0xed78, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">library_add</i> &#x2014; material icon named "library add".
  static const IconData library_add = IconData(0xe80d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">library_add_check</i> &#x2014; material icon named "library add check".
  static const IconData library_add_check = IconData(0xe80e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">library_add_check</i> &#x2014; material icon named "library add check outlined".
  static const IconData library_add_check_outlined = IconData(0xe275, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">library_add_check</i> &#x2014; material icon named "library add check rounded".
  static const IconData library_add_check_rounded = IconData(0xf2a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">library_add_check</i> &#x2014; material icon named "library add check sharp".
  static const IconData library_add_check_sharp = IconData(0xed79, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">library_add</i> &#x2014; material icon named "library add outlined".
  static const IconData library_add_outlined = IconData(0xe276, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">library_add</i> &#x2014; material icon named "library add rounded".
  static const IconData library_add_rounded = IconData(0xf2a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">library_add</i> &#x2014; material icon named "library add sharp".
  static const IconData library_add_sharp = IconData(0xed7a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">library_books</i> &#x2014; material icon named "library books".
  static const IconData library_books = IconData(0xe80f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">library_books</i> &#x2014; material icon named "library books outlined".
  static const IconData library_books_outlined = IconData(0xe277, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">library_books</i> &#x2014; material icon named "library books rounded".
  static const IconData library_books_rounded = IconData(0xf2a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">library_books</i> &#x2014; material icon named "library books sharp".
  static const IconData library_books_sharp = IconData(0xed7b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">library_music</i> &#x2014; material icon named "library music".
  static const IconData library_music = IconData(0xe810, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">library_music</i> &#x2014; material icon named "library music outlined".
  static const IconData library_music_outlined = IconData(0xe278, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">library_music</i> &#x2014; material icon named "library music rounded".
  static const IconData library_music_rounded = IconData(0xf2aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">library_music</i> &#x2014; material icon named "library music sharp".
  static const IconData library_music_sharp = IconData(0xed7c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lightbulb</i> &#x2014; material icon named "lightbulb".
  static const IconData lightbulb = IconData(0xe811, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lightbulb_outline</i> &#x2014; material icon named "lightbulb outline".
  static const IconData lightbulb_outline = IconData(0xe812, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lightbulb_outline</i> &#x2014; material icon named "lightbulb outline rounded".
  static const IconData lightbulb_outline_rounded = IconData(0xf2ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">lightbulb_outline</i> &#x2014; material icon named "lightbulb outline sharp".
  static const IconData lightbulb_outline_sharp = IconData(0xed7d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">lightbulb</i> &#x2014; material icon named "lightbulb outlined".
  static const IconData lightbulb_outlined = IconData(0xe279, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">line_style</i> &#x2014; material icon named "line style".
  static const IconData line_style = IconData(0xe813, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">line_style</i> &#x2014; material icon named "line style outlined".
  static const IconData line_style_outlined = IconData(0xe27a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">line_style</i> &#x2014; material icon named "line style rounded".
  static const IconData line_style_rounded = IconData(0xf2ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">line_style</i> &#x2014; material icon named "line style sharp".
  static const IconData line_style_sharp = IconData(0xed7e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">line_weight</i> &#x2014; material icon named "line weight".
  static const IconData line_weight = IconData(0xe814, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">line_weight</i> &#x2014; material icon named "line weight outlined".
  static const IconData line_weight_outlined = IconData(0xe27b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">line_weight</i> &#x2014; material icon named "line weight rounded".
  static const IconData line_weight_rounded = IconData(0xf2ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">line_weight</i> &#x2014; material icon named "line weight sharp".
  static const IconData line_weight_sharp = IconData(0xed7f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">linear_scale</i> &#x2014; material icon named "linear scale".
  static const IconData linear_scale = IconData(0xe815, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">linear_scale</i> &#x2014; material icon named "linear scale outlined".
  static const IconData linear_scale_outlined = IconData(0xe27c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">linear_scale</i> &#x2014; material icon named "linear scale rounded".
  static const IconData linear_scale_rounded = IconData(0xf2ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">linear_scale</i> &#x2014; material icon named "linear scale sharp".
  static const IconData linear_scale_sharp = IconData(0xed80, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">link</i> &#x2014; material icon named "link".
  static const IconData link = IconData(0xe816, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">link_off</i> &#x2014; material icon named "link off".
  static const IconData link_off = IconData(0xe817, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">link_off</i> &#x2014; material icon named "link off outlined".
  static const IconData link_off_outlined = IconData(0xe27d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">link_off</i> &#x2014; material icon named "link off rounded".
  static const IconData link_off_rounded = IconData(0xf2af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">link_off</i> &#x2014; material icon named "link off sharp".
  static const IconData link_off_sharp = IconData(0xed81, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">link</i> &#x2014; material icon named "link outlined".
  static const IconData link_outlined = IconData(0xe27e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">link</i> &#x2014; material icon named "link rounded".
  static const IconData link_rounded = IconData(0xf2b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">link</i> &#x2014; material icon named "link sharp".
  static const IconData link_sharp = IconData(0xed82, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">linked_camera</i> &#x2014; material icon named "linked camera".
  static const IconData linked_camera = IconData(0xe818, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">linked_camera</i> &#x2014; material icon named "linked camera outlined".
  static const IconData linked_camera_outlined = IconData(0xe27f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">linked_camera</i> &#x2014; material icon named "linked camera rounded".
  static const IconData linked_camera_rounded = IconData(0xf2b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">linked_camera</i> &#x2014; material icon named "linked camera sharp".
  static const IconData linked_camera_sharp = IconData(0xed83, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">liquor</i> &#x2014; material icon named "liquor".
  static const IconData liquor = IconData(0xe819, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">list</i> &#x2014; material icon named "list".
  static const IconData list = IconData(0xe81a, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">list_alt</i> &#x2014; material icon named "list alt".
  static const IconData list_alt = IconData(0xe81b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">list_alt</i> &#x2014; material icon named "list alt outlined".
  static const IconData list_alt_outlined = IconData(0xe280, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">list_alt</i> &#x2014; material icon named "list alt rounded".
  static const IconData list_alt_rounded = IconData(0xf2b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">list_alt</i> &#x2014; material icon named "list alt sharp".
  static const IconData list_alt_sharp = IconData(0xed84, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">list</i> &#x2014; material icon named "list outlined".
  static const IconData list_outlined = IconData(0xe281, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">list</i> &#x2014; material icon named "list rounded".
  static const IconData list_rounded = IconData(0xf2b3, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">list</i> &#x2014; material icon named "list sharp".
  static const IconData list_sharp = IconData(0xed85, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">live_help</i> &#x2014; material icon named "live help".
  static const IconData live_help = IconData(0xe81c, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">live_help</i> &#x2014; material icon named "live help outlined".
  static const IconData live_help_outlined = IconData(0xe282, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">live_help</i> &#x2014; material icon named "live help rounded".
  static const IconData live_help_rounded = IconData(0xf2b4, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">live_help</i> &#x2014; material icon named "live help sharp".
  static const IconData live_help_sharp = IconData(0xed86, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">live_tv</i> &#x2014; material icon named "live tv".
  static const IconData live_tv = IconData(0xe81d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">live_tv</i> &#x2014; material icon named "live tv outlined".
  static const IconData live_tv_outlined = IconData(0xe283, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">live_tv</i> &#x2014; material icon named "live tv rounded".
  static const IconData live_tv_rounded = IconData(0xf2b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">live_tv</i> &#x2014; material icon named "live tv sharp".
  static const IconData live_tv_sharp = IconData(0xed87, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_activity</i> &#x2014; material icon named "local activity".
  static const IconData local_activity = IconData(0xe81e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_activity</i> &#x2014; material icon named "local activity outlined".
  static const IconData local_activity_outlined = IconData(0xe284, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_activity</i> &#x2014; material icon named "local activity rounded".
  static const IconData local_activity_rounded = IconData(0xf2b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_activity</i> &#x2014; material icon named "local activity sharp".
  static const IconData local_activity_sharp = IconData(0xed88, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_airport</i> &#x2014; material icon named "local airport".
  static const IconData local_airport = IconData(0xe81f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_airport</i> &#x2014; material icon named "local airport outlined".
  static const IconData local_airport_outlined = IconData(0xe285, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_airport</i> &#x2014; material icon named "local airport rounded".
  static const IconData local_airport_rounded = IconData(0xf2b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_airport</i> &#x2014; material icon named "local airport sharp".
  static const IconData local_airport_sharp = IconData(0xed89, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_atm</i> &#x2014; material icon named "local atm".
  static const IconData local_atm = IconData(0xe820, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_atm</i> &#x2014; material icon named "local atm outlined".
  static const IconData local_atm_outlined = IconData(0xe286, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_atm</i> &#x2014; material icon named "local atm rounded".
  static const IconData local_atm_rounded = IconData(0xf2b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_atm</i> &#x2014; material icon named "local atm sharp".
  static const IconData local_atm_sharp = IconData(0xed8a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_attraction</i> &#x2014; material icon named "local attraction".
  static const IconData local_attraction = IconData(0xe81e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_attraction</i> &#x2014; material icon named "local attraction outlined".
  static const IconData local_attraction_outlined = IconData(0xe284, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_attraction</i> &#x2014; material icon named "local attraction rounded".
  static const IconData local_attraction_rounded = IconData(0xf2b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_attraction</i> &#x2014; material icon named "local attraction sharp".
  static const IconData local_attraction_sharp = IconData(0xed88, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_bar</i> &#x2014; material icon named "local bar".
  static const IconData local_bar = IconData(0xe821, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_bar</i> &#x2014; material icon named "local bar outlined".
  static const IconData local_bar_outlined = IconData(0xe287, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_bar</i> &#x2014; material icon named "local bar rounded".
  static const IconData local_bar_rounded = IconData(0xf2b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_bar</i> &#x2014; material icon named "local bar sharp".
  static const IconData local_bar_sharp = IconData(0xed8b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_cafe</i> &#x2014; material icon named "local cafe".
  static const IconData local_cafe = IconData(0xe822, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_cafe</i> &#x2014; material icon named "local cafe outlined".
  static const IconData local_cafe_outlined = IconData(0xe288, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_cafe</i> &#x2014; material icon named "local cafe rounded".
  static const IconData local_cafe_rounded = IconData(0xf2ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_cafe</i> &#x2014; material icon named "local cafe sharp".
  static const IconData local_cafe_sharp = IconData(0xed8c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_car_wash</i> &#x2014; material icon named "local car wash".
  static const IconData local_car_wash = IconData(0xe823, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_car_wash</i> &#x2014; material icon named "local car wash outlined".
  static const IconData local_car_wash_outlined = IconData(0xe289, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_car_wash</i> &#x2014; material icon named "local car wash rounded".
  static const IconData local_car_wash_rounded = IconData(0xf2bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_car_wash</i> &#x2014; material icon named "local car wash sharp".
  static const IconData local_car_wash_sharp = IconData(0xed8d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_convenience_store</i> &#x2014; material icon named "local convenience store".
  static const IconData local_convenience_store = IconData(0xe824, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_convenience_store</i> &#x2014; material icon named "local convenience store outlined".
  static const IconData local_convenience_store_outlined = IconData(0xe28a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_convenience_store</i> &#x2014; material icon named "local convenience store rounded".
  static const IconData local_convenience_store_rounded = IconData(0xf2bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_convenience_store</i> &#x2014; material icon named "local convenience store sharp".
  static const IconData local_convenience_store_sharp = IconData(0xed8e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_dining</i> &#x2014; material icon named "local dining".
  static const IconData local_dining = IconData(0xe825, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_dining</i> &#x2014; material icon named "local dining outlined".
  static const IconData local_dining_outlined = IconData(0xe28b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_dining</i> &#x2014; material icon named "local dining rounded".
  static const IconData local_dining_rounded = IconData(0xf2bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_dining</i> &#x2014; material icon named "local dining sharp".
  static const IconData local_dining_sharp = IconData(0xed8f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_drink</i> &#x2014; material icon named "local drink".
  static const IconData local_drink = IconData(0xe826, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_drink</i> &#x2014; material icon named "local drink outlined".
  static const IconData local_drink_outlined = IconData(0xe28c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_drink</i> &#x2014; material icon named "local drink rounded".
  static const IconData local_drink_rounded = IconData(0xf2be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_drink</i> &#x2014; material icon named "local drink sharp".
  static const IconData local_drink_sharp = IconData(0xed90, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_fire_department</i> &#x2014; material icon named "local fire department".
  static const IconData local_fire_department = IconData(0xe827, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_fire_department</i> &#x2014; material icon named "local fire department outlined".
  static const IconData local_fire_department_outlined = IconData(0xe28d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_fire_department</i> &#x2014; material icon named "local fire department rounded".
  static const IconData local_fire_department_rounded = IconData(0xf2bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_fire_department</i> &#x2014; material icon named "local fire department sharp".
  static const IconData local_fire_department_sharp = IconData(0xed91, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_florist</i> &#x2014; material icon named "local florist".
  static const IconData local_florist = IconData(0xe828, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_florist</i> &#x2014; material icon named "local florist outlined".
  static const IconData local_florist_outlined = IconData(0xe28e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_florist</i> &#x2014; material icon named "local florist rounded".
  static const IconData local_florist_rounded = IconData(0xf2c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_florist</i> &#x2014; material icon named "local florist sharp".
  static const IconData local_florist_sharp = IconData(0xed92, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_gas_station</i> &#x2014; material icon named "local gas station".
  static const IconData local_gas_station = IconData(0xe829, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_gas_station</i> &#x2014; material icon named "local gas station outlined".
  static const IconData local_gas_station_outlined = IconData(0xe28f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_gas_station</i> &#x2014; material icon named "local gas station rounded".
  static const IconData local_gas_station_rounded = IconData(0xf2c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_gas_station</i> &#x2014; material icon named "local gas station sharp".
  static const IconData local_gas_station_sharp = IconData(0xed93, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_grocery_store</i> &#x2014; material icon named "local grocery store".
  static const IconData local_grocery_store = IconData(0xe82a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_grocery_store</i> &#x2014; material icon named "local grocery store outlined".
  static const IconData local_grocery_store_outlined = IconData(0xe290, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_grocery_store</i> &#x2014; material icon named "local grocery store rounded".
  static const IconData local_grocery_store_rounded = IconData(0xf2c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_grocery_store</i> &#x2014; material icon named "local grocery store sharp".
  static const IconData local_grocery_store_sharp = IconData(0xed94, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_hospital</i> &#x2014; material icon named "local hospital".
  static const IconData local_hospital = IconData(0xe82b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_hospital</i> &#x2014; material icon named "local hospital outlined".
  static const IconData local_hospital_outlined = IconData(0xe291, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_hospital</i> &#x2014; material icon named "local hospital rounded".
  static const IconData local_hospital_rounded = IconData(0xf2c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_hospital</i> &#x2014; material icon named "local hospital sharp".
  static const IconData local_hospital_sharp = IconData(0xed95, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_hotel</i> &#x2014; material icon named "local hotel".
  static const IconData local_hotel = IconData(0xe82c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_hotel</i> &#x2014; material icon named "local hotel outlined".
  static const IconData local_hotel_outlined = IconData(0xe292, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_hotel</i> &#x2014; material icon named "local hotel rounded".
  static const IconData local_hotel_rounded = IconData(0xf2c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_hotel</i> &#x2014; material icon named "local hotel sharp".
  static const IconData local_hotel_sharp = IconData(0xed96, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_laundry_service</i> &#x2014; material icon named "local laundry service".
  static const IconData local_laundry_service = IconData(0xe82d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_laundry_service</i> &#x2014; material icon named "local laundry service outlined".
  static const IconData local_laundry_service_outlined = IconData(0xe293, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_laundry_service</i> &#x2014; material icon named "local laundry service rounded".
  static const IconData local_laundry_service_rounded = IconData(0xf2c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_laundry_service</i> &#x2014; material icon named "local laundry service sharp".
  static const IconData local_laundry_service_sharp = IconData(0xed97, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_library</i> &#x2014; material icon named "local library".
  static const IconData local_library = IconData(0xe82e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_library</i> &#x2014; material icon named "local library outlined".
  static const IconData local_library_outlined = IconData(0xe294, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_library</i> &#x2014; material icon named "local library rounded".
  static const IconData local_library_rounded = IconData(0xf2c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_library</i> &#x2014; material icon named "local library sharp".
  static const IconData local_library_sharp = IconData(0xed98, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_mall</i> &#x2014; material icon named "local mall".
  static const IconData local_mall = IconData(0xe82f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_mall</i> &#x2014; material icon named "local mall outlined".
  static const IconData local_mall_outlined = IconData(0xe295, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_mall</i> &#x2014; material icon named "local mall rounded".
  static const IconData local_mall_rounded = IconData(0xf2c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_mall</i> &#x2014; material icon named "local mall sharp".
  static const IconData local_mall_sharp = IconData(0xed99, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_movies</i> &#x2014; material icon named "local movies".
  static const IconData local_movies = IconData(0xe830, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_movies</i> &#x2014; material icon named "local movies outlined".
  static const IconData local_movies_outlined = IconData(0xe296, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_movies</i> &#x2014; material icon named "local movies rounded".
  static const IconData local_movies_rounded = IconData(0xf2c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_movies</i> &#x2014; material icon named "local movies sharp".
  static const IconData local_movies_sharp = IconData(0xed9a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_offer</i> &#x2014; material icon named "local offer".
  static const IconData local_offer = IconData(0xe831, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_offer</i> &#x2014; material icon named "local offer outlined".
  static const IconData local_offer_outlined = IconData(0xe297, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_offer</i> &#x2014; material icon named "local offer rounded".
  static const IconData local_offer_rounded = IconData(0xf2c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_offer</i> &#x2014; material icon named "local offer sharp".
  static const IconData local_offer_sharp = IconData(0xed9b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_parking</i> &#x2014; material icon named "local parking".
  static const IconData local_parking = IconData(0xe832, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_parking</i> &#x2014; material icon named "local parking outlined".
  static const IconData local_parking_outlined = IconData(0xe298, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_parking</i> &#x2014; material icon named "local parking rounded".
  static const IconData local_parking_rounded = IconData(0xf2ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_parking</i> &#x2014; material icon named "local parking sharp".
  static const IconData local_parking_sharp = IconData(0xed9c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_pharmacy</i> &#x2014; material icon named "local pharmacy".
  static const IconData local_pharmacy = IconData(0xe833, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_pharmacy</i> &#x2014; material icon named "local pharmacy outlined".
  static const IconData local_pharmacy_outlined = IconData(0xe299, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_pharmacy</i> &#x2014; material icon named "local pharmacy rounded".
  static const IconData local_pharmacy_rounded = IconData(0xf2cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_pharmacy</i> &#x2014; material icon named "local pharmacy sharp".
  static const IconData local_pharmacy_sharp = IconData(0xed9d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_phone</i> &#x2014; material icon named "local phone".
  static const IconData local_phone = IconData(0xe834, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_phone</i> &#x2014; material icon named "local phone outlined".
  static const IconData local_phone_outlined = IconData(0xe29a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_phone</i> &#x2014; material icon named "local phone rounded".
  static const IconData local_phone_rounded = IconData(0xf2cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_phone</i> &#x2014; material icon named "local phone sharp".
  static const IconData local_phone_sharp = IconData(0xed9e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_pizza</i> &#x2014; material icon named "local pizza".
  static const IconData local_pizza = IconData(0xe835, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_pizza</i> &#x2014; material icon named "local pizza outlined".
  static const IconData local_pizza_outlined = IconData(0xe29b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_pizza</i> &#x2014; material icon named "local pizza rounded".
  static const IconData local_pizza_rounded = IconData(0xf2cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_pizza</i> &#x2014; material icon named "local pizza sharp".
  static const IconData local_pizza_sharp = IconData(0xed9f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_play</i> &#x2014; material icon named "local play".
  static const IconData local_play = IconData(0xe836, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_play</i> &#x2014; material icon named "local play outlined".
  static const IconData local_play_outlined = IconData(0xe29c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_play</i> &#x2014; material icon named "local play rounded".
  static const IconData local_play_rounded = IconData(0xf2ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_play</i> &#x2014; material icon named "local play sharp".
  static const IconData local_play_sharp = IconData(0xeda0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_police</i> &#x2014; material icon named "local police".
  static const IconData local_police = IconData(0xe837, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_police</i> &#x2014; material icon named "local police outlined".
  static const IconData local_police_outlined = IconData(0xe29d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_police</i> &#x2014; material icon named "local police rounded".
  static const IconData local_police_rounded = IconData(0xf2cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_police</i> &#x2014; material icon named "local police sharp".
  static const IconData local_police_sharp = IconData(0xeda1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_post_office</i> &#x2014; material icon named "local post office".
  static const IconData local_post_office = IconData(0xe838, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_post_office</i> &#x2014; material icon named "local post office outlined".
  static const IconData local_post_office_outlined = IconData(0xe29e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_post_office</i> &#x2014; material icon named "local post office rounded".
  static const IconData local_post_office_rounded = IconData(0xf2d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_post_office</i> &#x2014; material icon named "local post office sharp".
  static const IconData local_post_office_sharp = IconData(0xeda2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_print_shop</i> &#x2014; material icon named "local print shop".
  static const IconData local_print_shop = IconData(0xe839, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_print_shop</i> &#x2014; material icon named "local print shop outlined".
  static const IconData local_print_shop_outlined = IconData(0xe29f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_print_shop</i> &#x2014; material icon named "local print shop rounded".
  static const IconData local_print_shop_rounded = IconData(0xf2d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_print_shop</i> &#x2014; material icon named "local print shop sharp".
  static const IconData local_print_shop_sharp = IconData(0xeda3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_printshop</i> &#x2014; material icon named "local printshop".
  static const IconData local_printshop = IconData(0xe839, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_printshop</i> &#x2014; material icon named "local printshop outlined".
  static const IconData local_printshop_outlined = IconData(0xe29f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_printshop</i> &#x2014; material icon named "local printshop rounded".
  static const IconData local_printshop_rounded = IconData(0xf2d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_printshop</i> &#x2014; material icon named "local printshop sharp".
  static const IconData local_printshop_sharp = IconData(0xeda3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_restaurant</i> &#x2014; material icon named "local restaurant".
  static const IconData local_restaurant = IconData(0xe825, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_restaurant</i> &#x2014; material icon named "local restaurant outlined".
  static const IconData local_restaurant_outlined = IconData(0xe28b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_restaurant</i> &#x2014; material icon named "local restaurant rounded".
  static const IconData local_restaurant_rounded = IconData(0xf2bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_restaurant</i> &#x2014; material icon named "local restaurant sharp".
  static const IconData local_restaurant_sharp = IconData(0xed8f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_see</i> &#x2014; material icon named "local see".
  static const IconData local_see = IconData(0xe83a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_see</i> &#x2014; material icon named "local see outlined".
  static const IconData local_see_outlined = IconData(0xe2a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_see</i> &#x2014; material icon named "local see rounded".
  static const IconData local_see_rounded = IconData(0xf2d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_see</i> &#x2014; material icon named "local see sharp".
  static const IconData local_see_sharp = IconData(0xeda4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_shipping</i> &#x2014; material icon named "local shipping".
  static const IconData local_shipping = IconData(0xe83b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_shipping</i> &#x2014; material icon named "local shipping outlined".
  static const IconData local_shipping_outlined = IconData(0xe2a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_shipping</i> &#x2014; material icon named "local shipping rounded".
  static const IconData local_shipping_rounded = IconData(0xf2d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_shipping</i> &#x2014; material icon named "local shipping sharp".
  static const IconData local_shipping_sharp = IconData(0xeda5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_taxi</i> &#x2014; material icon named "local taxi".
  static const IconData local_taxi = IconData(0xe83c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">local_taxi</i> &#x2014; material icon named "local taxi outlined".
  static const IconData local_taxi_outlined = IconData(0xe2a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_taxi</i> &#x2014; material icon named "local taxi rounded".
  static const IconData local_taxi_rounded = IconData(0xf2d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">local_taxi</i> &#x2014; material icon named "local taxi sharp".
  static const IconData local_taxi_sharp = IconData(0xeda6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">location_city</i> &#x2014; material icon named "location city".
  static const IconData location_city = IconData(0xe83d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">location_city</i> &#x2014; material icon named "location city outlined".
  static const IconData location_city_outlined = IconData(0xe2a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">location_city</i> &#x2014; material icon named "location city rounded".
  static const IconData location_city_rounded = IconData(0xf2d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">location_city</i> &#x2014; material icon named "location city sharp".
  static const IconData location_city_sharp = IconData(0xeda7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">location_disabled</i> &#x2014; material icon named "location disabled".
  static const IconData location_disabled = IconData(0xe83e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">location_disabled</i> &#x2014; material icon named "location disabled outlined".
  static const IconData location_disabled_outlined = IconData(0xe2a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">location_disabled</i> &#x2014; material icon named "location disabled rounded".
  static const IconData location_disabled_rounded = IconData(0xf2d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">location_disabled</i> &#x2014; material icon named "location disabled sharp".
  static const IconData location_disabled_sharp = IconData(0xeda8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">location_history</i> &#x2014; material icon named "location history".
  static const IconData location_history = IconData(0xe906, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">location_history</i> &#x2014; material icon named "location history outlined".
  static const IconData location_history_outlined = IconData(0xe353, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">location_history</i> &#x2014; material icon named "location history rounded".
  static const IconData location_history_rounded = IconData(0xf385, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">location_history</i> &#x2014; material icon named "location history sharp".
  static const IconData location_history_sharp = IconData(0xee57, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">location_off</i> &#x2014; material icon named "location off".
  static const IconData location_off = IconData(0xe83f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">location_off</i> &#x2014; material icon named "location off outlined".
  static const IconData location_off_outlined = IconData(0xe2a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">location_off</i> &#x2014; material icon named "location off rounded".
  static const IconData location_off_rounded = IconData(0xf2d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">location_off</i> &#x2014; material icon named "location off sharp".
  static const IconData location_off_sharp = IconData(0xeda9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">location_on</i> &#x2014; material icon named "location on".
  static const IconData location_on = IconData(0xe840, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">location_on</i> &#x2014; material icon named "location on outlined".
  static const IconData location_on_outlined = IconData(0xe2a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">location_on</i> &#x2014; material icon named "location on rounded".
  static const IconData location_on_rounded = IconData(0xf2d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">location_on</i> &#x2014; material icon named "location on sharp".
  static const IconData location_on_sharp = IconData(0xedaa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">location_pin</i> &#x2014; material icon named "location pin".
  static const IconData location_pin = IconData(0xe841, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">location_searching</i> &#x2014; material icon named "location searching".
  static const IconData location_searching = IconData(0xe842, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">location_searching</i> &#x2014; material icon named "location searching outlined".
  static const IconData location_searching_outlined = IconData(0xe2a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">location_searching</i> &#x2014; material icon named "location searching rounded".
  static const IconData location_searching_rounded = IconData(0xf2d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">location_searching</i> &#x2014; material icon named "location searching sharp".
  static const IconData location_searching_sharp = IconData(0xedab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lock</i> &#x2014; material icon named "lock".
  static const IconData lock = IconData(0xe843, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lock_clock</i> &#x2014; material icon named "lock clock".
  static const IconData lock_clock = IconData(0xe844, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lock_open</i> &#x2014; material icon named "lock open".
  static const IconData lock_open = IconData(0xe845, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">lock_open</i> &#x2014; material icon named "lock open outlined".
  static const IconData lock_open_outlined = IconData(0xe2a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lock_open</i> &#x2014; material icon named "lock open rounded".
  static const IconData lock_open_rounded = IconData(0xf2da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">lock_open</i> &#x2014; material icon named "lock open sharp".
  static const IconData lock_open_sharp = IconData(0xedac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lock_outline</i> &#x2014; material icon named "lock outline".
  static const IconData lock_outline = IconData(0xe846, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lock_outline</i> &#x2014; material icon named "lock outline rounded".
  static const IconData lock_outline_rounded = IconData(0xf2db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">lock_outline</i> &#x2014; material icon named "lock outline sharp".
  static const IconData lock_outline_sharp = IconData(0xedad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">lock</i> &#x2014; material icon named "lock outlined".
  static const IconData lock_outlined = IconData(0xe2a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lock</i> &#x2014; material icon named "lock rounded".
  static const IconData lock_rounded = IconData(0xf2dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">lock</i> &#x2014; material icon named "lock sharp".
  static const IconData lock_sharp = IconData(0xedae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">login</i> &#x2014; material icon named "login".
  static const IconData login = IconData(0xe847, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">login</i> &#x2014; material icon named "login outlined".
  static const IconData login_outlined = IconData(0xe2aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">login</i> &#x2014; material icon named "login rounded".
  static const IconData login_rounded = IconData(0xf2dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">login</i> &#x2014; material icon named "login sharp".
  static const IconData login_sharp = IconData(0xedaf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">logout</i> &#x2014; material icon named "logout".
  static const IconData logout = IconData(0xe848, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">looks</i> &#x2014; material icon named "looks".
  static const IconData looks = IconData(0xe849, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">looks_3</i> &#x2014; material icon named "looks 3".
  static const IconData looks_3 = IconData(0xe84a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">looks_3</i> &#x2014; material icon named "looks 3 outlined".
  static const IconData looks_3_outlined = IconData(0xe2ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">looks_3</i> &#x2014; material icon named "looks 3 rounded".
  static const IconData looks_3_rounded = IconData(0xf2de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">looks_3</i> &#x2014; material icon named "looks 3 sharp".
  static const IconData looks_3_sharp = IconData(0xedb0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">looks_4</i> &#x2014; material icon named "looks 4".
  static const IconData looks_4 = IconData(0xe84b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">looks_4</i> &#x2014; material icon named "looks 4 outlined".
  static const IconData looks_4_outlined = IconData(0xe2ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">looks_4</i> &#x2014; material icon named "looks 4 rounded".
  static const IconData looks_4_rounded = IconData(0xf2df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">looks_4</i> &#x2014; material icon named "looks 4 sharp".
  static const IconData looks_4_sharp = IconData(0xedb1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">looks_5</i> &#x2014; material icon named "looks 5".
  static const IconData looks_5 = IconData(0xe84c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">looks_5</i> &#x2014; material icon named "looks 5 outlined".
  static const IconData looks_5_outlined = IconData(0xe2ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">looks_5</i> &#x2014; material icon named "looks 5 rounded".
  static const IconData looks_5_rounded = IconData(0xf2e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">looks_5</i> &#x2014; material icon named "looks 5 sharp".
  static const IconData looks_5_sharp = IconData(0xedb2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">looks_6</i> &#x2014; material icon named "looks 6".
  static const IconData looks_6 = IconData(0xe84d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">looks_6</i> &#x2014; material icon named "looks 6 outlined".
  static const IconData looks_6_outlined = IconData(0xe2ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">looks_6</i> &#x2014; material icon named "looks 6 rounded".
  static const IconData looks_6_rounded = IconData(0xf2e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">looks_6</i> &#x2014; material icon named "looks 6 sharp".
  static const IconData looks_6_sharp = IconData(0xedb3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">looks_one</i> &#x2014; material icon named "looks one".
  static const IconData looks_one = IconData(0xe84e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">looks_one</i> &#x2014; material icon named "looks one outlined".
  static const IconData looks_one_outlined = IconData(0xe2af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">looks_one</i> &#x2014; material icon named "looks one rounded".
  static const IconData looks_one_rounded = IconData(0xf2e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">looks_one</i> &#x2014; material icon named "looks one sharp".
  static const IconData looks_one_sharp = IconData(0xedb4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">looks</i> &#x2014; material icon named "looks outlined".
  static const IconData looks_outlined = IconData(0xe2b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">looks</i> &#x2014; material icon named "looks rounded".
  static const IconData looks_rounded = IconData(0xf2e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">looks</i> &#x2014; material icon named "looks sharp".
  static const IconData looks_sharp = IconData(0xedb5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">looks_two</i> &#x2014; material icon named "looks two".
  static const IconData looks_two = IconData(0xe84f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">looks_two</i> &#x2014; material icon named "looks two outlined".
  static const IconData looks_two_outlined = IconData(0xe2b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">looks_two</i> &#x2014; material icon named "looks two rounded".
  static const IconData looks_two_rounded = IconData(0xf2e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">looks_two</i> &#x2014; material icon named "looks two sharp".
  static const IconData looks_two_sharp = IconData(0xedb6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">loop</i> &#x2014; material icon named "loop".
  static const IconData loop = IconData(0xe850, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">loop</i> &#x2014; material icon named "loop outlined".
  static const IconData loop_outlined = IconData(0xe2b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">loop</i> &#x2014; material icon named "loop rounded".
  static const IconData loop_rounded = IconData(0xf2e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">loop</i> &#x2014; material icon named "loop sharp".
  static const IconData loop_sharp = IconData(0xedb7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">loupe</i> &#x2014; material icon named "loupe".
  static const IconData loupe = IconData(0xe851, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">loupe</i> &#x2014; material icon named "loupe outlined".
  static const IconData loupe_outlined = IconData(0xe2b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">loupe</i> &#x2014; material icon named "loupe rounded".
  static const IconData loupe_rounded = IconData(0xf2e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">loupe</i> &#x2014; material icon named "loupe sharp".
  static const IconData loupe_sharp = IconData(0xedb8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">low_priority</i> &#x2014; material icon named "low priority".
  static const IconData low_priority = IconData(0xe852, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">low_priority</i> &#x2014; material icon named "low priority outlined".
  static const IconData low_priority_outlined = IconData(0xe2b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">low_priority</i> &#x2014; material icon named "low priority rounded".
  static const IconData low_priority_rounded = IconData(0xf2e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">low_priority</i> &#x2014; material icon named "low priority sharp".
  static const IconData low_priority_sharp = IconData(0xedb9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">loyalty</i> &#x2014; material icon named "loyalty".
  static const IconData loyalty = IconData(0xe853, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">loyalty</i> &#x2014; material icon named "loyalty outlined".
  static const IconData loyalty_outlined = IconData(0xe2b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">loyalty</i> &#x2014; material icon named "loyalty rounded".
  static const IconData loyalty_rounded = IconData(0xf2e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">loyalty</i> &#x2014; material icon named "loyalty sharp".
  static const IconData loyalty_sharp = IconData(0xedba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lunch_dining</i> &#x2014; material icon named "lunch dining".
  static const IconData lunch_dining = IconData(0xe854, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mail</i> &#x2014; material icon named "mail".
  static const IconData mail = IconData(0xe855, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mail_outline</i> &#x2014; material icon named "mail outline".
  static const IconData mail_outline = IconData(0xe856, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mail_outline</i> &#x2014; material icon named "mail outline outlined".
  static const IconData mail_outline_outlined = IconData(0xe2b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mail_outline</i> &#x2014; material icon named "mail outline rounded".
  static const IconData mail_outline_rounded = IconData(0xf2e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mail_outline</i> &#x2014; material icon named "mail outline sharp".
  static const IconData mail_outline_sharp = IconData(0xedbb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mail</i> &#x2014; material icon named "mail outlined".
  static const IconData mail_outlined = IconData(0xe2b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mail</i> &#x2014; material icon named "mail rounded".
  static const IconData mail_rounded = IconData(0xf2ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mail</i> &#x2014; material icon named "mail sharp".
  static const IconData mail_sharp = IconData(0xedbc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">map</i> &#x2014; material icon named "map".
  static const IconData map = IconData(0xe857, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">map</i> &#x2014; material icon named "map outlined".
  static const IconData map_outlined = IconData(0xe2b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">map</i> &#x2014; material icon named "map rounded".
  static const IconData map_rounded = IconData(0xf2eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">map</i> &#x2014; material icon named "map sharp".
  static const IconData map_sharp = IconData(0xedbd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">maps_ugc</i> &#x2014; material icon named "maps ugc".
  static const IconData maps_ugc = IconData(0xe858, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">maps_ugc</i> &#x2014; material icon named "maps ugc outlined".
  static const IconData maps_ugc_outlined = IconData(0xe2b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">maps_ugc</i> &#x2014; material icon named "maps ugc rounded".
  static const IconData maps_ugc_rounded = IconData(0xf2ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">maps_ugc</i> &#x2014; material icon named "maps ugc sharp".
  static const IconData maps_ugc_sharp = IconData(0xedbe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">margin</i> &#x2014; material icon named "margin".
  static const IconData margin = IconData(0xe859, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mark_as_unread</i> &#x2014; material icon named "mark as unread".
  static const IconData mark_as_unread = IconData(0xe85a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mark_chat_read</i> &#x2014; material icon named "mark chat read".
  static const IconData mark_chat_read = IconData(0xe85b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mark_chat_read</i> &#x2014; material icon named "mark chat read outlined".
  static const IconData mark_chat_read_outlined = IconData(0xe2ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mark_chat_read</i> &#x2014; material icon named "mark chat read rounded".
  static const IconData mark_chat_read_rounded = IconData(0xf2ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mark_chat_read</i> &#x2014; material icon named "mark chat read sharp".
  static const IconData mark_chat_read_sharp = IconData(0xedbf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mark_chat_unread</i> &#x2014; material icon named "mark chat unread".
  static const IconData mark_chat_unread = IconData(0xe85c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mark_chat_unread</i> &#x2014; material icon named "mark chat unread outlined".
  static const IconData mark_chat_unread_outlined = IconData(0xe2bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mark_chat_unread</i> &#x2014; material icon named "mark chat unread rounded".
  static const IconData mark_chat_unread_rounded = IconData(0xf2ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mark_chat_unread</i> &#x2014; material icon named "mark chat unread sharp".
  static const IconData mark_chat_unread_sharp = IconData(0xedc0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mark_email_read</i> &#x2014; material icon named "mark email read".
  static const IconData mark_email_read = IconData(0xe85d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mark_email_read</i> &#x2014; material icon named "mark email read outlined".
  static const IconData mark_email_read_outlined = IconData(0xe2bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mark_email_read</i> &#x2014; material icon named "mark email read rounded".
  static const IconData mark_email_read_rounded = IconData(0xf2ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mark_email_read</i> &#x2014; material icon named "mark email read sharp".
  static const IconData mark_email_read_sharp = IconData(0xedc1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mark_email_unread</i> &#x2014; material icon named "mark email unread".
  static const IconData mark_email_unread = IconData(0xe85e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mark_email_unread</i> &#x2014; material icon named "mark email unread outlined".
  static const IconData mark_email_unread_outlined = IconData(0xe2bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mark_email_unread</i> &#x2014; material icon named "mark email unread rounded".
  static const IconData mark_email_unread_rounded = IconData(0xf2f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mark_email_unread</i> &#x2014; material icon named "mark email unread sharp".
  static const IconData mark_email_unread_sharp = IconData(0xedc2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">markunread</i> &#x2014; material icon named "markunread".
  static const IconData markunread = IconData(0xe85f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">markunread_mailbox</i> &#x2014; material icon named "markunread mailbox".
  static const IconData markunread_mailbox = IconData(0xe860, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">markunread_mailbox</i> &#x2014; material icon named "markunread mailbox outlined".
  static const IconData markunread_mailbox_outlined = IconData(0xe2be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">markunread_mailbox</i> &#x2014; material icon named "markunread mailbox rounded".
  static const IconData markunread_mailbox_rounded = IconData(0xf2f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">markunread_mailbox</i> &#x2014; material icon named "markunread mailbox sharp".
  static const IconData markunread_mailbox_sharp = IconData(0xedc3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">markunread</i> &#x2014; material icon named "markunread outlined".
  static const IconData markunread_outlined = IconData(0xe2bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">markunread</i> &#x2014; material icon named "markunread rounded".
  static const IconData markunread_rounded = IconData(0xf2f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">markunread</i> &#x2014; material icon named "markunread sharp".
  static const IconData markunread_sharp = IconData(0xedc4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">masks</i> &#x2014; material icon named "masks".
  static const IconData masks = IconData(0xe861, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">masks</i> &#x2014; material icon named "masks outlined".
  static const IconData masks_outlined = IconData(0xe2c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">masks</i> &#x2014; material icon named "masks rounded".
  static const IconData masks_rounded = IconData(0xf2f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">masks</i> &#x2014; material icon named "masks sharp".
  static const IconData masks_sharp = IconData(0xedc5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">maximize</i> &#x2014; material icon named "maximize".
  static const IconData maximize = IconData(0xe862, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">maximize</i> &#x2014; material icon named "maximize outlined".
  static const IconData maximize_outlined = IconData(0xe2c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">maximize</i> &#x2014; material icon named "maximize rounded".
  static const IconData maximize_rounded = IconData(0xf2f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">maximize</i> &#x2014; material icon named "maximize sharp".
  static const IconData maximize_sharp = IconData(0xedc6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mediation</i> &#x2014; material icon named "mediation".
  static const IconData mediation = IconData(0xe863, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mediation</i> &#x2014; material icon named "mediation outlined".
  static const IconData mediation_outlined = IconData(0xe2c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mediation</i> &#x2014; material icon named "mediation rounded".
  static const IconData mediation_rounded = IconData(0xf2f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mediation</i> &#x2014; material icon named "mediation sharp".
  static const IconData mediation_sharp = IconData(0xedc7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">medical_services</i> &#x2014; material icon named "medical services".
  static const IconData medical_services = IconData(0xe864, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">medical_services</i> &#x2014; material icon named "medical services outlined".
  static const IconData medical_services_outlined = IconData(0xe2c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">medical_services</i> &#x2014; material icon named "medical services rounded".
  static const IconData medical_services_rounded = IconData(0xf2f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">medical_services</i> &#x2014; material icon named "medical services sharp".
  static const IconData medical_services_sharp = IconData(0xedc8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">meeting_room</i> &#x2014; material icon named "meeting room".
  static const IconData meeting_room = IconData(0xe865, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">meeting_room</i> &#x2014; material icon named "meeting room outlined".
  static const IconData meeting_room_outlined = IconData(0xe2c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">meeting_room</i> &#x2014; material icon named "meeting room rounded".
  static const IconData meeting_room_rounded = IconData(0xf2f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">meeting_room</i> &#x2014; material icon named "meeting room sharp".
  static const IconData meeting_room_sharp = IconData(0xedc9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">memory</i> &#x2014; material icon named "memory".
  static const IconData memory = IconData(0xe866, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">memory</i> &#x2014; material icon named "memory outlined".
  static const IconData memory_outlined = IconData(0xe2c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">memory</i> &#x2014; material icon named "memory rounded".
  static const IconData memory_rounded = IconData(0xf2f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">memory</i> &#x2014; material icon named "memory sharp".
  static const IconData memory_sharp = IconData(0xedca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">menu</i> &#x2014; material icon named "menu".
  static const IconData menu = IconData(0xe867, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">menu_book</i> &#x2014; material icon named "menu book".
  static const IconData menu_book = IconData(0xe868, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">menu_book</i> &#x2014; material icon named "menu book outlined".
  static const IconData menu_book_outlined = IconData(0xe2c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">menu_book</i> &#x2014; material icon named "menu book rounded".
  static const IconData menu_book_rounded = IconData(0xf2f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">menu_book</i> &#x2014; material icon named "menu book sharp".
  static const IconData menu_book_sharp = IconData(0xedcb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">menu_open</i> &#x2014; material icon named "menu open".
  static const IconData menu_open = IconData(0xe869, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">menu_open</i> &#x2014; material icon named "menu open outlined".
  static const IconData menu_open_outlined = IconData(0xe2c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">menu_open</i> &#x2014; material icon named "menu open rounded".
  static const IconData menu_open_rounded = IconData(0xf2fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">menu_open</i> &#x2014; material icon named "menu open sharp".
  static const IconData menu_open_sharp = IconData(0xedcc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">menu</i> &#x2014; material icon named "menu outlined".
  static const IconData menu_outlined = IconData(0xe2c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">menu</i> &#x2014; material icon named "menu rounded".
  static const IconData menu_rounded = IconData(0xf2fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">menu</i> &#x2014; material icon named "menu sharp".
  static const IconData menu_sharp = IconData(0xedcd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">merge_type</i> &#x2014; material icon named "merge type".
  static const IconData merge_type = IconData(0xe86a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">merge_type</i> &#x2014; material icon named "merge type outlined".
  static const IconData merge_type_outlined = IconData(0xe2c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">merge_type</i> &#x2014; material icon named "merge type rounded".
  static const IconData merge_type_rounded = IconData(0xf2fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">merge_type</i> &#x2014; material icon named "merge type sharp".
  static const IconData merge_type_sharp = IconData(0xedce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">message</i> &#x2014; material icon named "message".
  static const IconData message = IconData(0xe86b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">message</i> &#x2014; material icon named "message outlined".
  static const IconData message_outlined = IconData(0xe2ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">message</i> &#x2014; material icon named "message rounded".
  static const IconData message_rounded = IconData(0xf2fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">message</i> &#x2014; material icon named "message sharp".
  static const IconData message_sharp = IconData(0xedcf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">messenger</i> &#x2014; material icon named "messenger".
  static const IconData messenger = IconData(0xe64a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">messenger_outline</i> &#x2014; material icon named "messenger outline".
  static const IconData messenger_outline = IconData(0xe64b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">messenger_outline</i> &#x2014; material icon named "messenger outline outlined".
  static const IconData messenger_outline_outlined = IconData(0xe0d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">messenger_outline</i> &#x2014; material icon named "messenger outline rounded".
  static const IconData messenger_outline_rounded = IconData(0xf107, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">messenger_outline</i> &#x2014; material icon named "messenger outline sharp".
  static const IconData messenger_outline_sharp = IconData(0xebd9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">messenger</i> &#x2014; material icon named "messenger outlined".
  static const IconData messenger_outlined = IconData(0xe0da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">messenger</i> &#x2014; material icon named "messenger rounded".
  static const IconData messenger_rounded = IconData(0xf108, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">messenger</i> &#x2014; material icon named "messenger sharp".
  static const IconData messenger_sharp = IconData(0xebda, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mic</i> &#x2014; material icon named "mic".
  static const IconData mic = IconData(0xe86c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mic_external_off</i> &#x2014; material icon named "mic external off".
  static const IconData mic_external_off = IconData(0xe86d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mic_external_on</i> &#x2014; material icon named "mic external on".
  static const IconData mic_external_on = IconData(0xe86e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mic_none</i> &#x2014; material icon named "mic none".
  static const IconData mic_none = IconData(0xe86f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mic_none</i> &#x2014; material icon named "mic none outlined".
  static const IconData mic_none_outlined = IconData(0xe2cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mic_none</i> &#x2014; material icon named "mic none rounded".
  static const IconData mic_none_rounded = IconData(0xf2fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mic_none</i> &#x2014; material icon named "mic none sharp".
  static const IconData mic_none_sharp = IconData(0xedd0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mic_off</i> &#x2014; material icon named "mic off".
  static const IconData mic_off = IconData(0xe870, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mic_off</i> &#x2014; material icon named "mic off outlined".
  static const IconData mic_off_outlined = IconData(0xe2cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mic_off</i> &#x2014; material icon named "mic off rounded".
  static const IconData mic_off_rounded = IconData(0xf2ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mic_off</i> &#x2014; material icon named "mic off sharp".
  static const IconData mic_off_sharp = IconData(0xedd1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mic</i> &#x2014; material icon named "mic outlined".
  static const IconData mic_outlined = IconData(0xe2cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mic</i> &#x2014; material icon named "mic rounded".
  static const IconData mic_rounded = IconData(0xf300, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mic</i> &#x2014; material icon named "mic sharp".
  static const IconData mic_sharp = IconData(0xedd2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">microwave</i> &#x2014; material icon named "microwave".
  static const IconData microwave = IconData(0xe871, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">microwave</i> &#x2014; material icon named "microwave outlined".
  static const IconData microwave_outlined = IconData(0xe2ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">microwave</i> &#x2014; material icon named "microwave rounded".
  static const IconData microwave_rounded = IconData(0xf301, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">microwave</i> &#x2014; material icon named "microwave sharp".
  static const IconData microwave_sharp = IconData(0xedd3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">military_tech</i> &#x2014; material icon named "military tech".
  static const IconData military_tech = IconData(0xe872, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">military_tech</i> &#x2014; material icon named "military tech outlined".
  static const IconData military_tech_outlined = IconData(0xe2cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">military_tech</i> &#x2014; material icon named "military tech rounded".
  static const IconData military_tech_rounded = IconData(0xf302, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">military_tech</i> &#x2014; material icon named "military tech sharp".
  static const IconData military_tech_sharp = IconData(0xedd4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">minimize</i> &#x2014; material icon named "minimize".
  static const IconData minimize = IconData(0xe873, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">minimize</i> &#x2014; material icon named "minimize outlined".
  static const IconData minimize_outlined = IconData(0xe2d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">minimize</i> &#x2014; material icon named "minimize rounded".
  static const IconData minimize_rounded = IconData(0xf303, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">minimize</i> &#x2014; material icon named "minimize sharp".
  static const IconData minimize_sharp = IconData(0xedd5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">miscellaneous_services</i> &#x2014; material icon named "miscellaneous services".
  static const IconData miscellaneous_services = IconData(0xe874, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">miscellaneous_services</i> &#x2014; material icon named "miscellaneous services outlined".
  static const IconData miscellaneous_services_outlined = IconData(0xe2d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">miscellaneous_services</i> &#x2014; material icon named "miscellaneous services rounded".
  static const IconData miscellaneous_services_rounded = IconData(0xf304, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">miscellaneous_services</i> &#x2014; material icon named "miscellaneous services sharp".
  static const IconData miscellaneous_services_sharp = IconData(0xedd6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">missed_video_call</i> &#x2014; material icon named "missed video call".
  static const IconData missed_video_call = IconData(0xe875, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">missed_video_call</i> &#x2014; material icon named "missed video call outlined".
  static const IconData missed_video_call_outlined = IconData(0xe2d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">missed_video_call</i> &#x2014; material icon named "missed video call rounded".
  static const IconData missed_video_call_rounded = IconData(0xf305, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">missed_video_call</i> &#x2014; material icon named "missed video call sharp".
  static const IconData missed_video_call_sharp = IconData(0xedd7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mms</i> &#x2014; material icon named "mms".
  static const IconData mms = IconData(0xe876, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mms</i> &#x2014; material icon named "mms outlined".
  static const IconData mms_outlined = IconData(0xe2d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mms</i> &#x2014; material icon named "mms rounded".
  static const IconData mms_rounded = IconData(0xf306, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mms</i> &#x2014; material icon named "mms sharp".
  static const IconData mms_sharp = IconData(0xedd8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mobile_friendly</i> &#x2014; material icon named "mobile friendly".
  static const IconData mobile_friendly = IconData(0xe877, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mobile_friendly</i> &#x2014; material icon named "mobile friendly outlined".
  static const IconData mobile_friendly_outlined = IconData(0xe2d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mobile_friendly</i> &#x2014; material icon named "mobile friendly rounded".
  static const IconData mobile_friendly_rounded = IconData(0xf307, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mobile_friendly</i> &#x2014; material icon named "mobile friendly sharp".
  static const IconData mobile_friendly_sharp = IconData(0xedd9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mobile_off</i> &#x2014; material icon named "mobile off".
  static const IconData mobile_off = IconData(0xe878, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mobile_off</i> &#x2014; material icon named "mobile off outlined".
  static const IconData mobile_off_outlined = IconData(0xe2d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mobile_off</i> &#x2014; material icon named "mobile off rounded".
  static const IconData mobile_off_rounded = IconData(0xf308, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mobile_off</i> &#x2014; material icon named "mobile off sharp".
  static const IconData mobile_off_sharp = IconData(0xedda, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mobile_screen_share</i> &#x2014; material icon named "mobile screen share".
  static const IconData mobile_screen_share = IconData(0xe879, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">mobile_screen_share</i> &#x2014; material icon named "mobile screen share outlined".
  static const IconData mobile_screen_share_outlined = IconData(0xe2d6, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">mobile_screen_share</i> &#x2014; material icon named "mobile screen share rounded".
  static const IconData mobile_screen_share_rounded = IconData(0xf309, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">mobile_screen_share</i> &#x2014; material icon named "mobile screen share sharp".
  static const IconData mobile_screen_share_sharp = IconData(0xeddb, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">mode_comment</i> &#x2014; material icon named "mode comment".
  static const IconData mode_comment = IconData(0xe87a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mode_comment</i> &#x2014; material icon named "mode comment outlined".
  static const IconData mode_comment_outlined = IconData(0xe2d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mode_comment</i> &#x2014; material icon named "mode comment rounded".
  static const IconData mode_comment_rounded = IconData(0xf30a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mode_comment</i> &#x2014; material icon named "mode comment sharp".
  static const IconData mode_comment_sharp = IconData(0xeddc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mode_edit</i> &#x2014; material icon named "mode edit".
  static const IconData mode_edit = IconData(0xe87b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mode</i> &#x2014; material icon named "mode outlined".
  static const IconData mode_outlined = IconData(0xe2d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mode</i> &#x2014; material icon named "mode rounded".
  static const IconData mode_rounded = IconData(0xf30b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mode</i> &#x2014; material icon named "mode sharp".
  static const IconData mode_sharp = IconData(0xeddd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">model_training</i> &#x2014; material icon named "model training".
  static const IconData model_training = IconData(0xe87c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">model_training</i> &#x2014; material icon named "model training outlined".
  static const IconData model_training_outlined = IconData(0xe2d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">model_training</i> &#x2014; material icon named "model training rounded".
  static const IconData model_training_rounded = IconData(0xf30c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">model_training</i> &#x2014; material icon named "model training sharp".
  static const IconData model_training_sharp = IconData(0xedde, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">monetization_on</i> &#x2014; material icon named "monetization on".
  static const IconData monetization_on = IconData(0xe87d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">monetization_on</i> &#x2014; material icon named "monetization on outlined".
  static const IconData monetization_on_outlined = IconData(0xe2da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">monetization_on</i> &#x2014; material icon named "monetization on rounded".
  static const IconData monetization_on_rounded = IconData(0xf30d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">monetization_on</i> &#x2014; material icon named "monetization on sharp".
  static const IconData monetization_on_sharp = IconData(0xeddf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">money</i> &#x2014; material icon named "money".
  static const IconData money = IconData(0xe87e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">money_off</i> &#x2014; material icon named "money off".
  static const IconData money_off = IconData(0xe87f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">money_off_csred</i> &#x2014; material icon named "money off csred outlined".
  static const IconData money_off_csred_outlined = IconData(0xe2db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">money_off_csred</i> &#x2014; material icon named "money off csred rounded".
  static const IconData money_off_csred_rounded = IconData(0xf30e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">money_off_csred</i> &#x2014; material icon named "money off csred sharp".
  static const IconData money_off_csred_sharp = IconData(0xede0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">money_off</i> &#x2014; material icon named "money off outlined".
  static const IconData money_off_outlined = IconData(0xe2dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">money_off</i> &#x2014; material icon named "money off rounded".
  static const IconData money_off_rounded = IconData(0xf30f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">money_off</i> &#x2014; material icon named "money off sharp".
  static const IconData money_off_sharp = IconData(0xede1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">money</i> &#x2014; material icon named "money outlined".
  static const IconData money_outlined = IconData(0xe2dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">money</i> &#x2014; material icon named "money rounded".
  static const IconData money_rounded = IconData(0xf310, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">money</i> &#x2014; material icon named "money sharp".
  static const IconData money_sharp = IconData(0xede2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">monitor</i> &#x2014; material icon named "monitor".
  static const IconData monitor = IconData(0xe880, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">monochrome_photos</i> &#x2014; material icon named "monochrome photos".
  static const IconData monochrome_photos = IconData(0xe881, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">monochrome_photos</i> &#x2014; material icon named "monochrome photos outlined".
  static const IconData monochrome_photos_outlined = IconData(0xe2de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">monochrome_photos</i> &#x2014; material icon named "monochrome photos rounded".
  static const IconData monochrome_photos_rounded = IconData(0xf311, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">monochrome_photos</i> &#x2014; material icon named "monochrome photos sharp".
  static const IconData monochrome_photos_sharp = IconData(0xede3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mood</i> &#x2014; material icon named "mood".
  static const IconData mood = IconData(0xe882, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mood_bad</i> &#x2014; material icon named "mood bad".
  static const IconData mood_bad = IconData(0xe883, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mood_bad</i> &#x2014; material icon named "mood bad outlined".
  static const IconData mood_bad_outlined = IconData(0xe2df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mood_bad</i> &#x2014; material icon named "mood bad rounded".
  static const IconData mood_bad_rounded = IconData(0xf312, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mood_bad</i> &#x2014; material icon named "mood bad sharp".
  static const IconData mood_bad_sharp = IconData(0xede4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mood</i> &#x2014; material icon named "mood outlined".
  static const IconData mood_outlined = IconData(0xe2e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mood</i> &#x2014; material icon named "mood rounded".
  static const IconData mood_rounded = IconData(0xf313, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mood</i> &#x2014; material icon named "mood sharp".
  static const IconData mood_sharp = IconData(0xede5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">moped</i> &#x2014; material icon named "moped".
  static const IconData moped = IconData(0xe884, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">moped</i> &#x2014; material icon named "moped outlined".
  static const IconData moped_outlined = IconData(0xe2e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">moped</i> &#x2014; material icon named "moped rounded".
  static const IconData moped_rounded = IconData(0xf314, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">moped</i> &#x2014; material icon named "moped sharp".
  static const IconData moped_sharp = IconData(0xede6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">more</i> &#x2014; material icon named "more".
  static const IconData more = IconData(0xe885, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">more_horiz</i> &#x2014; material icon named "more horiz".
  static const IconData more_horiz = IconData(0xe886, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">more_horiz</i> &#x2014; material icon named "more horiz outlined".
  static const IconData more_horiz_outlined = IconData(0xe2e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">more_horiz</i> &#x2014; material icon named "more horiz rounded".
  static const IconData more_horiz_rounded = IconData(0xf315, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">more_horiz</i> &#x2014; material icon named "more horiz sharp".
  static const IconData more_horiz_sharp = IconData(0xede7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">more</i> &#x2014; material icon named "more outlined".
  static const IconData more_outlined = IconData(0xe2e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">more</i> &#x2014; material icon named "more rounded".
  static const IconData more_rounded = IconData(0xf316, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">more</i> &#x2014; material icon named "more sharp".
  static const IconData more_sharp = IconData(0xede8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">more_time</i> &#x2014; material icon named "more time".
  static const IconData more_time = IconData(0xe887, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">more_time</i> &#x2014; material icon named "more time outlined".
  static const IconData more_time_outlined = IconData(0xe2e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">more_time</i> &#x2014; material icon named "more time rounded".
  static const IconData more_time_rounded = IconData(0xf317, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">more_time</i> &#x2014; material icon named "more time sharp".
  static const IconData more_time_sharp = IconData(0xede9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">more_vert</i> &#x2014; material icon named "more vert".
  static const IconData more_vert = IconData(0xe888, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">more_vert</i> &#x2014; material icon named "more vert outlined".
  static const IconData more_vert_outlined = IconData(0xe2e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">more_vert</i> &#x2014; material icon named "more vert rounded".
  static const IconData more_vert_rounded = IconData(0xf318, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">more_vert</i> &#x2014; material icon named "more vert sharp".
  static const IconData more_vert_sharp = IconData(0xedea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">motion_photos_off</i> &#x2014; material icon named "motion photos off".
  static const IconData motion_photos_off = IconData(0xe889, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">motion_photos_on</i> &#x2014; material icon named "motion photos on".
  static const IconData motion_photos_on = IconData(0xe88a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">motion_photos_on</i> &#x2014; material icon named "motion photos on outlined".
  static const IconData motion_photos_on_outlined = IconData(0xe2e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">motion_photos_on</i> &#x2014; material icon named "motion photos on rounded".
  static const IconData motion_photos_on_rounded = IconData(0xf319, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">motion_photos_on</i> &#x2014; material icon named "motion photos on sharp".
  static const IconData motion_photos_on_sharp = IconData(0xedeb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">motion_photos_pause</i> &#x2014; material icon named "motion photos pause".
  static const IconData motion_photos_pause = IconData(0xe88b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">motion_photos_pause</i> &#x2014; material icon named "motion photos pause outlined".
  static const IconData motion_photos_pause_outlined = IconData(0xe2e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">motion_photos_pause</i> &#x2014; material icon named "motion photos pause rounded".
  static const IconData motion_photos_pause_rounded = IconData(0xf31a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">motion_photos_pause</i> &#x2014; material icon named "motion photos pause sharp".
  static const IconData motion_photos_pause_sharp = IconData(0xedec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">motion_photos_paused</i> &#x2014; material icon named "motion photos paused".
  static const IconData motion_photos_paused = IconData(0xe88c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">motion_photos_paused</i> &#x2014; material icon named "motion photos paused outlined".
  static const IconData motion_photos_paused_outlined = IconData(0xe2e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">motion_photos_paused</i> &#x2014; material icon named "motion photos paused rounded".
  static const IconData motion_photos_paused_rounded = IconData(0xf31b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">motion_photos_paused</i> &#x2014; material icon named "motion photos paused sharp".
  static const IconData motion_photos_paused_sharp = IconData(0xeded, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">motorcycle</i> &#x2014; material icon named "motorcycle".
  static const IconData motorcycle = IconData(0xe88d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">motorcycle</i> &#x2014; material icon named "motorcycle outlined".
  static const IconData motorcycle_outlined = IconData(0xe2e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">motorcycle</i> &#x2014; material icon named "motorcycle rounded".
  static const IconData motorcycle_rounded = IconData(0xf31c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">motorcycle</i> &#x2014; material icon named "motorcycle sharp".
  static const IconData motorcycle_sharp = IconData(0xedee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mouse</i> &#x2014; material icon named "mouse".
  static const IconData mouse = IconData(0xe88e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mouse</i> &#x2014; material icon named "mouse outlined".
  static const IconData mouse_outlined = IconData(0xe2ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mouse</i> &#x2014; material icon named "mouse rounded".
  static const IconData mouse_rounded = IconData(0xf31d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mouse</i> &#x2014; material icon named "mouse sharp".
  static const IconData mouse_sharp = IconData(0xedef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">move_to_inbox</i> &#x2014; material icon named "move to inbox".
  static const IconData move_to_inbox = IconData(0xe88f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">move_to_inbox</i> &#x2014; material icon named "move to inbox outlined".
  static const IconData move_to_inbox_outlined = IconData(0xe2eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">move_to_inbox</i> &#x2014; material icon named "move to inbox rounded".
  static const IconData move_to_inbox_rounded = IconData(0xf31e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">move_to_inbox</i> &#x2014; material icon named "move to inbox sharp".
  static const IconData move_to_inbox_sharp = IconData(0xedf0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">movie</i> &#x2014; material icon named "movie".
  static const IconData movie = IconData(0xe890, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">movie_creation</i> &#x2014; material icon named "movie creation".
  static const IconData movie_creation = IconData(0xe891, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">movie_creation</i> &#x2014; material icon named "movie creation outlined".
  static const IconData movie_creation_outlined = IconData(0xe2ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">movie_creation</i> &#x2014; material icon named "movie creation rounded".
  static const IconData movie_creation_rounded = IconData(0xf31f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">movie_creation</i> &#x2014; material icon named "movie creation sharp".
  static const IconData movie_creation_sharp = IconData(0xedf1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">movie_filter</i> &#x2014; material icon named "movie filter".
  static const IconData movie_filter = IconData(0xe892, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">movie_filter</i> &#x2014; material icon named "movie filter outlined".
  static const IconData movie_filter_outlined = IconData(0xe2ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">movie_filter</i> &#x2014; material icon named "movie filter rounded".
  static const IconData movie_filter_rounded = IconData(0xf320, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">movie_filter</i> &#x2014; material icon named "movie filter sharp".
  static const IconData movie_filter_sharp = IconData(0xedf2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">movie</i> &#x2014; material icon named "movie outlined".
  static const IconData movie_outlined = IconData(0xe2ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">movie</i> &#x2014; material icon named "movie rounded".
  static const IconData movie_rounded = IconData(0xf321, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">movie</i> &#x2014; material icon named "movie sharp".
  static const IconData movie_sharp = IconData(0xedf3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mp</i> &#x2014; material icon named "mp".
  static const IconData mp = IconData(0xe893, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">multiline_chart</i> &#x2014; material icon named "multiline chart".
  static const IconData multiline_chart = IconData(0xe894, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">multiline_chart</i> &#x2014; material icon named "multiline chart outlined".
  static const IconData multiline_chart_outlined = IconData(0xe2ef, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">multiline_chart</i> &#x2014; material icon named "multiline chart rounded".
  static const IconData multiline_chart_rounded = IconData(0xf322, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">multiline_chart</i> &#x2014; material icon named "multiline chart sharp".
  static const IconData multiline_chart_sharp = IconData(0xedf4, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">multiple_stop</i> &#x2014; material icon named "multiple stop".
  static const IconData multiple_stop = IconData(0xe895, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">multiple_stop</i> &#x2014; material icon named "multiple stop outlined".
  static const IconData multiple_stop_outlined = IconData(0xe2f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">multiple_stop</i> &#x2014; material icon named "multiple stop rounded".
  static const IconData multiple_stop_rounded = IconData(0xf323, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">multiple_stop</i> &#x2014; material icon named "multiple stop sharp".
  static const IconData multiple_stop_sharp = IconData(0xedf5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">multitrack_audio</i> &#x2014; material icon named "multitrack audio".
  static const IconData multitrack_audio = IconData(0xe798, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">multitrack_audio</i> &#x2014; material icon named "multitrack audio outlined".
  static const IconData multitrack_audio_outlined = IconData(0xe20d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">multitrack_audio</i> &#x2014; material icon named "multitrack audio rounded".
  static const IconData multitrack_audio_rounded = IconData(0xf23c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">multitrack_audio</i> &#x2014; material icon named "multitrack audio sharp".
  static const IconData multitrack_audio_sharp = IconData(0xed0e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">museum</i> &#x2014; material icon named "museum".
  static const IconData museum = IconData(0xe896, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">museum</i> &#x2014; material icon named "museum outlined".
  static const IconData museum_outlined = IconData(0xe2f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">museum</i> &#x2014; material icon named "museum rounded".
  static const IconData museum_rounded = IconData(0xf324, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">museum</i> &#x2014; material icon named "museum sharp".
  static const IconData museum_sharp = IconData(0xedf6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">music_note</i> &#x2014; material icon named "music note".
  static const IconData music_note = IconData(0xe897, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">music_note</i> &#x2014; material icon named "music note outlined".
  static const IconData music_note_outlined = IconData(0xe2f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">music_note</i> &#x2014; material icon named "music note rounded".
  static const IconData music_note_rounded = IconData(0xf325, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">music_note</i> &#x2014; material icon named "music note sharp".
  static const IconData music_note_sharp = IconData(0xedf7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">music_off</i> &#x2014; material icon named "music off".
  static const IconData music_off = IconData(0xe898, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">music_off</i> &#x2014; material icon named "music off outlined".
  static const IconData music_off_outlined = IconData(0xe2f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">music_off</i> &#x2014; material icon named "music off rounded".
  static const IconData music_off_rounded = IconData(0xf326, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">music_off</i> &#x2014; material icon named "music off sharp".
  static const IconData music_off_sharp = IconData(0xedf8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">music_video</i> &#x2014; material icon named "music video".
  static const IconData music_video = IconData(0xe899, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">music_video</i> &#x2014; material icon named "music video outlined".
  static const IconData music_video_outlined = IconData(0xe2f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">music_video</i> &#x2014; material icon named "music video rounded".
  static const IconData music_video_rounded = IconData(0xf327, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">music_video</i> &#x2014; material icon named "music video sharp".
  static const IconData music_video_sharp = IconData(0xedf9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">my_library_add</i> &#x2014; material icon named "my library add".
  static const IconData my_library_add = IconData(0xe80d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">my_library_add</i> &#x2014; material icon named "my library add outlined".
  static const IconData my_library_add_outlined = IconData(0xe276, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">my_library_add</i> &#x2014; material icon named "my library add rounded".
  static const IconData my_library_add_rounded = IconData(0xf2a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">my_library_add</i> &#x2014; material icon named "my library add sharp".
  static const IconData my_library_add_sharp = IconData(0xed7a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">my_library_books</i> &#x2014; material icon named "my library books".
  static const IconData my_library_books = IconData(0xe80f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">my_library_books</i> &#x2014; material icon named "my library books outlined".
  static const IconData my_library_books_outlined = IconData(0xe277, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">my_library_books</i> &#x2014; material icon named "my library books rounded".
  static const IconData my_library_books_rounded = IconData(0xf2a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">my_library_books</i> &#x2014; material icon named "my library books sharp".
  static const IconData my_library_books_sharp = IconData(0xed7b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">my_library_music</i> &#x2014; material icon named "my library music".
  static const IconData my_library_music = IconData(0xe810, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">my_library_music</i> &#x2014; material icon named "my library music outlined".
  static const IconData my_library_music_outlined = IconData(0xe278, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">my_library_music</i> &#x2014; material icon named "my library music rounded".
  static const IconData my_library_music_rounded = IconData(0xf2aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">my_library_music</i> &#x2014; material icon named "my library music sharp".
  static const IconData my_library_music_sharp = IconData(0xed7c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">my_location</i> &#x2014; material icon named "my location".
  static const IconData my_location = IconData(0xe89a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">my_location</i> &#x2014; material icon named "my location outlined".
  static const IconData my_location_outlined = IconData(0xe2f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">my_location</i> &#x2014; material icon named "my location rounded".
  static const IconData my_location_rounded = IconData(0xf328, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">my_location</i> &#x2014; material icon named "my location sharp".
  static const IconData my_location_sharp = IconData(0xedfa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">nat</i> &#x2014; material icon named "nat".
  static const IconData nat = IconData(0xe89b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">nat</i> &#x2014; material icon named "nat outlined".
  static const IconData nat_outlined = IconData(0xe2f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">nat</i> &#x2014; material icon named "nat rounded".
  static const IconData nat_rounded = IconData(0xf329, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">nat</i> &#x2014; material icon named "nat sharp".
  static const IconData nat_sharp = IconData(0xedfb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">nature</i> &#x2014; material icon named "nature".
  static const IconData nature = IconData(0xe89c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">nature</i> &#x2014; material icon named "nature outlined".
  static const IconData nature_outlined = IconData(0xe2f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">nature_people</i> &#x2014; material icon named "nature people".
  static const IconData nature_people = IconData(0xe89d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">nature_people</i> &#x2014; material icon named "nature people outlined".
  static const IconData nature_people_outlined = IconData(0xe2f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">nature_people</i> &#x2014; material icon named "nature people rounded".
  static const IconData nature_people_rounded = IconData(0xf32a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">nature_people</i> &#x2014; material icon named "nature people sharp".
  static const IconData nature_people_sharp = IconData(0xedfc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">nature</i> &#x2014; material icon named "nature rounded".
  static const IconData nature_rounded = IconData(0xf32b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">nature</i> &#x2014; material icon named "nature sharp".
  static const IconData nature_sharp = IconData(0xedfd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">navigate_before</i> &#x2014; material icon named "navigate before".
  static const IconData navigate_before = IconData(0xe89e, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">navigate_before</i> &#x2014; material icon named "navigate before outlined".
  static const IconData navigate_before_outlined = IconData(0xe2f9, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">navigate_before</i> &#x2014; material icon named "navigate before rounded".
  static const IconData navigate_before_rounded = IconData(0xf32c, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">navigate_before</i> &#x2014; material icon named "navigate before sharp".
  static const IconData navigate_before_sharp = IconData(0xedfe, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">navigate_next</i> &#x2014; material icon named "navigate next".
  static const IconData navigate_next = IconData(0xe89f, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">navigate_next</i> &#x2014; material icon named "navigate next outlined".
  static const IconData navigate_next_outlined = IconData(0xe2fa, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">navigate_next</i> &#x2014; material icon named "navigate next rounded".
  static const IconData navigate_next_rounded = IconData(0xf32d, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">navigate_next</i> &#x2014; material icon named "navigate next sharp".
  static const IconData navigate_next_sharp = IconData(0xedff, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">navigation</i> &#x2014; material icon named "navigation".
  static const IconData navigation = IconData(0xe8a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">navigation</i> &#x2014; material icon named "navigation outlined".
  static const IconData navigation_outlined = IconData(0xe2fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">navigation</i> &#x2014; material icon named "navigation rounded".
  static const IconData navigation_rounded = IconData(0xf32e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">navigation</i> &#x2014; material icon named "navigation sharp".
  static const IconData navigation_sharp = IconData(0xee00, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">near_me</i> &#x2014; material icon named "near me".
  static const IconData near_me = IconData(0xe8a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">near_me_disabled</i> &#x2014; material icon named "near me disabled".
  static const IconData near_me_disabled = IconData(0xe8a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">near_me_disabled</i> &#x2014; material icon named "near me disabled outlined".
  static const IconData near_me_disabled_outlined = IconData(0xe2fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">near_me_disabled</i> &#x2014; material icon named "near me disabled rounded".
  static const IconData near_me_disabled_rounded = IconData(0xf32f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">near_me_disabled</i> &#x2014; material icon named "near me disabled sharp".
  static const IconData near_me_disabled_sharp = IconData(0xee01, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">near_me</i> &#x2014; material icon named "near me outlined".
  static const IconData near_me_outlined = IconData(0xe2fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">near_me</i> &#x2014; material icon named "near me rounded".
  static const IconData near_me_rounded = IconData(0xf330, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">near_me</i> &#x2014; material icon named "near me sharp".
  static const IconData near_me_sharp = IconData(0xee02, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">network_cell</i> &#x2014; material icon named "network cell".
  static const IconData network_cell = IconData(0xe8a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">network_check</i> &#x2014; material icon named "network check".
  static const IconData network_check = IconData(0xe8a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">network_check</i> &#x2014; material icon named "network check outlined".
  static const IconData network_check_outlined = IconData(0xe2fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">network_check</i> &#x2014; material icon named "network check rounded".
  static const IconData network_check_rounded = IconData(0xf331, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">network_check</i> &#x2014; material icon named "network check sharp".
  static const IconData network_check_sharp = IconData(0xee03, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">network_locked</i> &#x2014; material icon named "network locked".
  static const IconData network_locked = IconData(0xe8a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">network_locked</i> &#x2014; material icon named "network locked outlined".
  static const IconData network_locked_outlined = IconData(0xe2ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">network_locked</i> &#x2014; material icon named "network locked rounded".
  static const IconData network_locked_rounded = IconData(0xf332, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">network_locked</i> &#x2014; material icon named "network locked sharp".
  static const IconData network_locked_sharp = IconData(0xee04, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">network_wifi</i> &#x2014; material icon named "network wifi".
  static const IconData network_wifi = IconData(0xe8a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">new_releases</i> &#x2014; material icon named "new releases".
  static const IconData new_releases = IconData(0xe8a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">new_releases</i> &#x2014; material icon named "new releases outlined".
  static const IconData new_releases_outlined = IconData(0xe300, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">new_releases</i> &#x2014; material icon named "new releases rounded".
  static const IconData new_releases_rounded = IconData(0xf333, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">new_releases</i> &#x2014; material icon named "new releases sharp".
  static const IconData new_releases_sharp = IconData(0xee05, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">next_plan</i> &#x2014; material icon named "next plan".
  static const IconData next_plan = IconData(0xe8a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">next_plan</i> &#x2014; material icon named "next plan outlined".
  static const IconData next_plan_outlined = IconData(0xe301, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">next_plan</i> &#x2014; material icon named "next plan rounded".
  static const IconData next_plan_rounded = IconData(0xf334, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">next_plan</i> &#x2014; material icon named "next plan sharp".
  static const IconData next_plan_sharp = IconData(0xee06, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">next_week</i> &#x2014; material icon named "next week".
  static const IconData next_week = IconData(0xe8a9, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">next_week</i> &#x2014; material icon named "next week outlined".
  static const IconData next_week_outlined = IconData(0xe302, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">next_week</i> &#x2014; material icon named "next week rounded".
  static const IconData next_week_rounded = IconData(0xf335, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">next_week</i> &#x2014; material icon named "next week sharp".
  static const IconData next_week_sharp = IconData(0xee07, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">nfc</i> &#x2014; material icon named "nfc".
  static const IconData nfc = IconData(0xe8aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">nfc</i> &#x2014; material icon named "nfc outlined".
  static const IconData nfc_outlined = IconData(0xe303, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">nfc</i> &#x2014; material icon named "nfc rounded".
  static const IconData nfc_rounded = IconData(0xf336, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">nfc</i> &#x2014; material icon named "nfc sharp".
  static const IconData nfc_sharp = IconData(0xee08, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">night_shelter</i> &#x2014; material icon named "night shelter".
  static const IconData night_shelter = IconData(0xe8ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">night_shelter</i> &#x2014; material icon named "night shelter outlined".
  static const IconData night_shelter_outlined = IconData(0xe304, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">night_shelter</i> &#x2014; material icon named "night shelter rounded".
  static const IconData night_shelter_rounded = IconData(0xf337, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">night_shelter</i> &#x2014; material icon named "night shelter sharp".
  static const IconData night_shelter_sharp = IconData(0xee09, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">nightlife</i> &#x2014; material icon named "nightlife".
  static const IconData nightlife = IconData(0xe8ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">nightlight_round</i> &#x2014; material icon named "nightlight round".
  static const IconData nightlight_round = IconData(0xe8ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">nights_stay</i> &#x2014; material icon named "nights stay".
  static const IconData nights_stay = IconData(0xe8ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">nights_stay</i> &#x2014; material icon named "nights stay outlined".
  static const IconData nights_stay_outlined = IconData(0xe305, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">nights_stay</i> &#x2014; material icon named "nights stay rounded".
  static const IconData nights_stay_rounded = IconData(0xf338, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">nights_stay</i> &#x2014; material icon named "nights stay sharp".
  static const IconData nights_stay_sharp = IconData(0xee0a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_cell</i> &#x2014; material icon named "no cell".
  static const IconData no_cell = IconData(0xe8af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">no_cell</i> &#x2014; material icon named "no cell outlined".
  static const IconData no_cell_outlined = IconData(0xe306, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_cell</i> &#x2014; material icon named "no cell rounded".
  static const IconData no_cell_rounded = IconData(0xf339, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">no_cell</i> &#x2014; material icon named "no cell sharp".
  static const IconData no_cell_sharp = IconData(0xee0b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_drinks</i> &#x2014; material icon named "no drinks".
  static const IconData no_drinks = IconData(0xe8b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">no_drinks</i> &#x2014; material icon named "no drinks outlined".
  static const IconData no_drinks_outlined = IconData(0xe307, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_drinks</i> &#x2014; material icon named "no drinks rounded".
  static const IconData no_drinks_rounded = IconData(0xf33a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">no_drinks</i> &#x2014; material icon named "no drinks sharp".
  static const IconData no_drinks_sharp = IconData(0xee0c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_encryption</i> &#x2014; material icon named "no encryption".
  static const IconData no_encryption = IconData(0xe8b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">no_encryption_gmailerrorred</i> &#x2014; material icon named "no encryption gmailerrorred outlined".
  static const IconData no_encryption_gmailerrorred_outlined = IconData(0xe308, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_encryption_gmailerrorred</i> &#x2014; material icon named "no encryption gmailerrorred rounded".
  static const IconData no_encryption_gmailerrorred_rounded = IconData(0xf33b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">no_encryption_gmailerrorred</i> &#x2014; material icon named "no encryption gmailerrorred sharp".
  static const IconData no_encryption_gmailerrorred_sharp = IconData(0xee0d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">no_encryption</i> &#x2014; material icon named "no encryption outlined".
  static const IconData no_encryption_outlined = IconData(0xe309, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_encryption</i> &#x2014; material icon named "no encryption rounded".
  static const IconData no_encryption_rounded = IconData(0xf33c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">no_encryption</i> &#x2014; material icon named "no encryption sharp".
  static const IconData no_encryption_sharp = IconData(0xee0e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_flash</i> &#x2014; material icon named "no flash".
  static const IconData no_flash = IconData(0xe8b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">no_flash</i> &#x2014; material icon named "no flash outlined".
  static const IconData no_flash_outlined = IconData(0xe30a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_flash</i> &#x2014; material icon named "no flash rounded".
  static const IconData no_flash_rounded = IconData(0xf33d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">no_flash</i> &#x2014; material icon named "no flash sharp".
  static const IconData no_flash_sharp = IconData(0xee0f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_food</i> &#x2014; material icon named "no food".
  static const IconData no_food = IconData(0xe8b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">no_food</i> &#x2014; material icon named "no food outlined".
  static const IconData no_food_outlined = IconData(0xe30b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_food</i> &#x2014; material icon named "no food rounded".
  static const IconData no_food_rounded = IconData(0xf33e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">no_food</i> &#x2014; material icon named "no food sharp".
  static const IconData no_food_sharp = IconData(0xee10, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_meals</i> &#x2014; material icon named "no meals".
  static const IconData no_meals = IconData(0xe8b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_meals_ouline</i> &#x2014; material icon named "no meals ouline".
  static const IconData no_meals_ouline = IconData(0xe8b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">no_meals</i> &#x2014; material icon named "no meals outlined".
  static const IconData no_meals_outlined = IconData(0xe30c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_meals</i> &#x2014; material icon named "no meals rounded".
  static const IconData no_meals_rounded = IconData(0xf33f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">no_meals</i> &#x2014; material icon named "no meals sharp".
  static const IconData no_meals_sharp = IconData(0xee11, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_meeting_room</i> &#x2014; material icon named "no meeting room".
  static const IconData no_meeting_room = IconData(0xe8b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">no_meeting_room</i> &#x2014; material icon named "no meeting room outlined".
  static const IconData no_meeting_room_outlined = IconData(0xe30d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_meeting_room</i> &#x2014; material icon named "no meeting room rounded".
  static const IconData no_meeting_room_rounded = IconData(0xf340, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">no_meeting_room</i> &#x2014; material icon named "no meeting room sharp".
  static const IconData no_meeting_room_sharp = IconData(0xee12, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_photography</i> &#x2014; material icon named "no photography".
  static const IconData no_photography = IconData(0xe8b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">no_photography</i> &#x2014; material icon named "no photography outlined".
  static const IconData no_photography_outlined = IconData(0xe30e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_photography</i> &#x2014; material icon named "no photography rounded".
  static const IconData no_photography_rounded = IconData(0xf341, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">no_photography</i> &#x2014; material icon named "no photography sharp".
  static const IconData no_photography_sharp = IconData(0xee13, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_sim</i> &#x2014; material icon named "no sim".
  static const IconData no_sim = IconData(0xe8b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">no_sim</i> &#x2014; material icon named "no sim outlined".
  static const IconData no_sim_outlined = IconData(0xe30f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_sim</i> &#x2014; material icon named "no sim rounded".
  static const IconData no_sim_rounded = IconData(0xf342, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">no_sim</i> &#x2014; material icon named "no sim sharp".
  static const IconData no_sim_sharp = IconData(0xee14, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_stroller</i> &#x2014; material icon named "no stroller".
  static const IconData no_stroller = IconData(0xe8b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">no_stroller</i> &#x2014; material icon named "no stroller outlined".
  static const IconData no_stroller_outlined = IconData(0xe310, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_stroller</i> &#x2014; material icon named "no stroller rounded".
  static const IconData no_stroller_rounded = IconData(0xf343, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">no_stroller</i> &#x2014; material icon named "no stroller sharp".
  static const IconData no_stroller_sharp = IconData(0xee15, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_transfer</i> &#x2014; material icon named "no transfer".
  static const IconData no_transfer = IconData(0xe8ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">no_transfer</i> &#x2014; material icon named "no transfer outlined".
  static const IconData no_transfer_outlined = IconData(0xe311, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_transfer</i> &#x2014; material icon named "no transfer rounded".
  static const IconData no_transfer_rounded = IconData(0xf344, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">no_transfer</i> &#x2014; material icon named "no transfer sharp".
  static const IconData no_transfer_sharp = IconData(0xee16, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">north</i> &#x2014; material icon named "north".
  static const IconData north = IconData(0xe8bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">north_east</i> &#x2014; material icon named "north east".
  static const IconData north_east = IconData(0xe8bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">north_east</i> &#x2014; material icon named "north east outlined".
  static const IconData north_east_outlined = IconData(0xe312, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">north_east</i> &#x2014; material icon named "north east rounded".
  static const IconData north_east_rounded = IconData(0xf345, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">north_east</i> &#x2014; material icon named "north east sharp".
  static const IconData north_east_sharp = IconData(0xee17, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">north</i> &#x2014; material icon named "north outlined".
  static const IconData north_outlined = IconData(0xe313, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">north</i> &#x2014; material icon named "north rounded".
  static const IconData north_rounded = IconData(0xf346, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">north</i> &#x2014; material icon named "north sharp".
  static const IconData north_sharp = IconData(0xee18, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">north_west</i> &#x2014; material icon named "north west".
  static const IconData north_west = IconData(0xe8bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">north_west</i> &#x2014; material icon named "north west outlined".
  static const IconData north_west_outlined = IconData(0xe314, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">north_west</i> &#x2014; material icon named "north west rounded".
  static const IconData north_west_rounded = IconData(0xf347, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">north_west</i> &#x2014; material icon named "north west sharp".
  static const IconData north_west_sharp = IconData(0xee19, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">not_accessible</i> &#x2014; material icon named "not accessible".
  static const IconData not_accessible = IconData(0xe8be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">not_accessible</i> &#x2014; material icon named "not accessible outlined".
  static const IconData not_accessible_outlined = IconData(0xe315, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">not_accessible</i> &#x2014; material icon named "not accessible rounded".
  static const IconData not_accessible_rounded = IconData(0xf348, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">not_accessible</i> &#x2014; material icon named "not accessible sharp".
  static const IconData not_accessible_sharp = IconData(0xee1a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">not_interested</i> &#x2014; material icon named "not interested".
  static const IconData not_interested = IconData(0xe8bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">not_interested</i> &#x2014; material icon named "not interested outlined".
  static const IconData not_interested_outlined = IconData(0xe316, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">not_interested</i> &#x2014; material icon named "not interested rounded".
  static const IconData not_interested_rounded = IconData(0xf349, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">not_interested</i> &#x2014; material icon named "not interested sharp".
  static const IconData not_interested_sharp = IconData(0xee1b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">not_listed_location</i> &#x2014; material icon named "not listed location".
  static const IconData not_listed_location = IconData(0xe8c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">not_listed_location</i> &#x2014; material icon named "not listed location outlined".
  static const IconData not_listed_location_outlined = IconData(0xe317, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">not_listed_location</i> &#x2014; material icon named "not listed location rounded".
  static const IconData not_listed_location_rounded = IconData(0xf34a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">not_listed_location</i> &#x2014; material icon named "not listed location sharp".
  static const IconData not_listed_location_sharp = IconData(0xee1c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">not_started</i> &#x2014; material icon named "not started".
  static const IconData not_started = IconData(0xe8c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">not_started</i> &#x2014; material icon named "not started outlined".
  static const IconData not_started_outlined = IconData(0xe318, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">not_started</i> &#x2014; material icon named "not started rounded".
  static const IconData not_started_rounded = IconData(0xf34b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">not_started</i> &#x2014; material icon named "not started sharp".
  static const IconData not_started_sharp = IconData(0xee1d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">note</i> &#x2014; material icon named "note".
  static const IconData note = IconData(0xe8c2, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">note_add</i> &#x2014; material icon named "note add".
  static const IconData note_add = IconData(0xe8c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">note_add</i> &#x2014; material icon named "note add outlined".
  static const IconData note_add_outlined = IconData(0xe319, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">note_add</i> &#x2014; material icon named "note add rounded".
  static const IconData note_add_rounded = IconData(0xf34c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">note_add</i> &#x2014; material icon named "note add sharp".
  static const IconData note_add_sharp = IconData(0xee1e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">note</i> &#x2014; material icon named "note outlined".
  static const IconData note_outlined = IconData(0xe31a, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">note</i> &#x2014; material icon named "note rounded".
  static const IconData note_rounded = IconData(0xf34d, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">note</i> &#x2014; material icon named "note sharp".
  static const IconData note_sharp = IconData(0xee1f, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">notes</i> &#x2014; material icon named "notes".
  static const IconData notes = IconData(0xe8c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">notes</i> &#x2014; material icon named "notes outlined".
  static const IconData notes_outlined = IconData(0xe31b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">notes</i> &#x2014; material icon named "notes rounded".
  static const IconData notes_rounded = IconData(0xf34e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">notes</i> &#x2014; material icon named "notes sharp".
  static const IconData notes_sharp = IconData(0xee20, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">notification_important</i> &#x2014; material icon named "notification important".
  static const IconData notification_important = IconData(0xe8c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">notification_important</i> &#x2014; material icon named "notification important outlined".
  static const IconData notification_important_outlined = IconData(0xe31c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">notification_important</i> &#x2014; material icon named "notification important rounded".
  static const IconData notification_important_rounded = IconData(0xf34f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">notification_important</i> &#x2014; material icon named "notification important sharp".
  static const IconData notification_important_sharp = IconData(0xee21, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">notifications</i> &#x2014; material icon named "notifications".
  static const IconData notifications = IconData(0xe8c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">notifications_active</i> &#x2014; material icon named "notifications active".
  static const IconData notifications_active = IconData(0xe8c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">notifications_active</i> &#x2014; material icon named "notifications active outlined".
  static const IconData notifications_active_outlined = IconData(0xe31d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">notifications_active</i> &#x2014; material icon named "notifications active rounded".
  static const IconData notifications_active_rounded = IconData(0xf350, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">notifications_active</i> &#x2014; material icon named "notifications active sharp".
  static const IconData notifications_active_sharp = IconData(0xee22, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">notifications_none</i> &#x2014; material icon named "notifications none".
  static const IconData notifications_none = IconData(0xe8c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">notifications_none</i> &#x2014; material icon named "notifications none outlined".
  static const IconData notifications_none_outlined = IconData(0xe31e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">notifications_none</i> &#x2014; material icon named "notifications none rounded".
  static const IconData notifications_none_rounded = IconData(0xf351, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">notifications_none</i> &#x2014; material icon named "notifications none sharp".
  static const IconData notifications_none_sharp = IconData(0xee23, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">notifications_off</i> &#x2014; material icon named "notifications off".
  static const IconData notifications_off = IconData(0xe8c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">notifications_off</i> &#x2014; material icon named "notifications off outlined".
  static const IconData notifications_off_outlined = IconData(0xe31f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">notifications_off</i> &#x2014; material icon named "notifications off rounded".
  static const IconData notifications_off_rounded = IconData(0xf352, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">notifications_off</i> &#x2014; material icon named "notifications off sharp".
  static const IconData notifications_off_sharp = IconData(0xee24, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">notifications_on</i> &#x2014; material icon named "notifications on".
  static const IconData notifications_on = IconData(0xe8c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">notifications_on</i> &#x2014; material icon named "notifications on outlined".
  static const IconData notifications_on_outlined = IconData(0xe31d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">notifications_on</i> &#x2014; material icon named "notifications on rounded".
  static const IconData notifications_on_rounded = IconData(0xf350, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">notifications_on</i> &#x2014; material icon named "notifications on sharp".
  static const IconData notifications_on_sharp = IconData(0xee22, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">notifications</i> &#x2014; material icon named "notifications outlined".
  static const IconData notifications_outlined = IconData(0xe320, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">notifications_paused</i> &#x2014; material icon named "notifications paused".
  static const IconData notifications_paused = IconData(0xe8ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">notifications_paused</i> &#x2014; material icon named "notifications paused outlined".
  static const IconData notifications_paused_outlined = IconData(0xe321, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">notifications_paused</i> &#x2014; material icon named "notifications paused rounded".
  static const IconData notifications_paused_rounded = IconData(0xf353, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">notifications_paused</i> &#x2014; material icon named "notifications paused sharp".
  static const IconData notifications_paused_sharp = IconData(0xee25, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">notifications</i> &#x2014; material icon named "notifications rounded".
  static const IconData notifications_rounded = IconData(0xf354, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">notifications</i> &#x2014; material icon named "notifications sharp".
  static const IconData notifications_sharp = IconData(0xee26, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">now_wallpaper</i> &#x2014; material icon named "now wallpaper".
  static const IconData now_wallpaper = IconData(0xead5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">now_wallpaper</i> &#x2014; material icon named "now wallpaper outlined".
  static const IconData now_wallpaper_outlined = IconData(0xe503, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">now_wallpaper</i> &#x2014; material icon named "now wallpaper rounded".
  static const IconData now_wallpaper_rounded = IconData(0xf534, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">now_wallpaper</i> &#x2014; material icon named "now wallpaper sharp".
  static const IconData now_wallpaper_sharp = IconData(0xf007, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">now_widgets</i> &#x2014; material icon named "now widgets".
  static const IconData now_widgets = IconData(0xeaec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">now_widgets</i> &#x2014; material icon named "now widgets outlined".
  static const IconData now_widgets_outlined = IconData(0xe518, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">now_widgets</i> &#x2014; material icon named "now widgets rounded".
  static const IconData now_widgets_rounded = IconData(0xf549, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">now_widgets</i> &#x2014; material icon named "now widgets sharp".
  static const IconData now_widgets_sharp = IconData(0xf01c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">offline_bolt</i> &#x2014; material icon named "offline bolt".
  static const IconData offline_bolt = IconData(0xe8cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">offline_bolt</i> &#x2014; material icon named "offline bolt outlined".
  static const IconData offline_bolt_outlined = IconData(0xe322, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">offline_bolt</i> &#x2014; material icon named "offline bolt rounded".
  static const IconData offline_bolt_rounded = IconData(0xf355, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">offline_bolt</i> &#x2014; material icon named "offline bolt sharp".
  static const IconData offline_bolt_sharp = IconData(0xee27, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">offline_pin</i> &#x2014; material icon named "offline pin".
  static const IconData offline_pin = IconData(0xe8cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">offline_pin</i> &#x2014; material icon named "offline pin outlined".
  static const IconData offline_pin_outlined = IconData(0xe323, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">offline_pin</i> &#x2014; material icon named "offline pin rounded".
  static const IconData offline_pin_rounded = IconData(0xf356, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">offline_pin</i> &#x2014; material icon named "offline pin sharp".
  static const IconData offline_pin_sharp = IconData(0xee28, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">offline_share</i> &#x2014; material icon named "offline share".
  static const IconData offline_share = IconData(0xe8cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">ondemand_video</i> &#x2014; material icon named "ondemand video".
  static const IconData ondemand_video = IconData(0xe8ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">ondemand_video</i> &#x2014; material icon named "ondemand video outlined".
  static const IconData ondemand_video_outlined = IconData(0xe324, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">ondemand_video</i> &#x2014; material icon named "ondemand video rounded".
  static const IconData ondemand_video_rounded = IconData(0xf357, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">ondemand_video</i> &#x2014; material icon named "ondemand video sharp".
  static const IconData ondemand_video_sharp = IconData(0xee29, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">online_prediction</i> &#x2014; material icon named "online prediction".
  static const IconData online_prediction = IconData(0xe8cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">online_prediction</i> &#x2014; material icon named "online prediction outlined".
  static const IconData online_prediction_outlined = IconData(0xe325, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">online_prediction</i> &#x2014; material icon named "online prediction rounded".
  static const IconData online_prediction_rounded = IconData(0xf358, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">online_prediction</i> &#x2014; material icon named "online prediction sharp".
  static const IconData online_prediction_sharp = IconData(0xee2a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">opacity</i> &#x2014; material icon named "opacity".
  static const IconData opacity = IconData(0xe8d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">opacity</i> &#x2014; material icon named "opacity outlined".
  static const IconData opacity_outlined = IconData(0xe326, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">opacity</i> &#x2014; material icon named "opacity rounded".
  static const IconData opacity_rounded = IconData(0xf359, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">opacity</i> &#x2014; material icon named "opacity sharp".
  static const IconData opacity_sharp = IconData(0xee2b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">open_in_browser</i> &#x2014; material icon named "open in browser".
  static const IconData open_in_browser = IconData(0xe8d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">open_in_browser</i> &#x2014; material icon named "open in browser outlined".
  static const IconData open_in_browser_outlined = IconData(0xe327, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">open_in_browser</i> &#x2014; material icon named "open in browser rounded".
  static const IconData open_in_browser_rounded = IconData(0xf35a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">open_in_browser</i> &#x2014; material icon named "open in browser sharp".
  static const IconData open_in_browser_sharp = IconData(0xee2c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">open_in_full</i> &#x2014; material icon named "open in full".
  static const IconData open_in_full = IconData(0xe8d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">open_in_full</i> &#x2014; material icon named "open in full outlined".
  static const IconData open_in_full_outlined = IconData(0xe328, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">open_in_full</i> &#x2014; material icon named "open in full rounded".
  static const IconData open_in_full_rounded = IconData(0xf35b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">open_in_full</i> &#x2014; material icon named "open in full sharp".
  static const IconData open_in_full_sharp = IconData(0xee2d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">open_in_new</i> &#x2014; material icon named "open in new".
  static const IconData open_in_new = IconData(0xe8d3, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">open_in_new</i> &#x2014; material icon named "open in new outlined".
  static const IconData open_in_new_outlined = IconData(0xe329, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">open_in_new</i> &#x2014; material icon named "open in new rounded".
  static const IconData open_in_new_rounded = IconData(0xf35c, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">open_in_new</i> &#x2014; material icon named "open in new sharp".
  static const IconData open_in_new_sharp = IconData(0xee2e, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">open_with</i> &#x2014; material icon named "open with".
  static const IconData open_with = IconData(0xe8d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">open_with</i> &#x2014; material icon named "open with outlined".
  static const IconData open_with_outlined = IconData(0xe32a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">open_with</i> &#x2014; material icon named "open with rounded".
  static const IconData open_with_rounded = IconData(0xf35d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">open_with</i> &#x2014; material icon named "open with sharp".
  static const IconData open_with_sharp = IconData(0xee2f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">outbond</i> &#x2014; material icon named "outbond".
  static const IconData outbond = IconData(0xe8d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">outbond</i> &#x2014; material icon named "outbond outlined".
  static const IconData outbond_outlined = IconData(0xe32b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">outbond</i> &#x2014; material icon named "outbond rounded".
  static const IconData outbond_rounded = IconData(0xf35e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">outbond</i> &#x2014; material icon named "outbond sharp".
  static const IconData outbond_sharp = IconData(0xee30, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">outbox</i> &#x2014; material icon named "outbox".
  static const IconData outbox = IconData(0xe8d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">outdoor_grill</i> &#x2014; material icon named "outdoor grill".
  static const IconData outdoor_grill = IconData(0xe8d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">outdoor_grill</i> &#x2014; material icon named "outdoor grill outlined".
  static const IconData outdoor_grill_outlined = IconData(0xe32c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">outdoor_grill</i> &#x2014; material icon named "outdoor grill rounded".
  static const IconData outdoor_grill_rounded = IconData(0xf35f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">outdoor_grill</i> &#x2014; material icon named "outdoor grill sharp".
  static const IconData outdoor_grill_sharp = IconData(0xee31, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">outgoing_mail</i> &#x2014; material icon named "outgoing mail".
  static const IconData outgoing_mail = IconData(0xe8d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">outlet</i> &#x2014; material icon named "outlet".
  static const IconData outlet = IconData(0xe8d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">outlet</i> &#x2014; material icon named "outlet outlined".
  static const IconData outlet_outlined = IconData(0xe32d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">outlet</i> &#x2014; material icon named "outlet rounded".
  static const IconData outlet_rounded = IconData(0xf360, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">outlet</i> &#x2014; material icon named "outlet sharp".
  static const IconData outlet_sharp = IconData(0xee32, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">outlined_flag</i> &#x2014; material icon named "outlined flag".
  static const IconData outlined_flag = IconData(0xe8da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">outlined_flag</i> &#x2014; material icon named "outlined flag outlined".
  static const IconData outlined_flag_outlined = IconData(0xe32e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">outlined_flag</i> &#x2014; material icon named "outlined flag rounded".
  static const IconData outlined_flag_rounded = IconData(0xf361, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">outlined_flag</i> &#x2014; material icon named "outlined flag sharp".
  static const IconData outlined_flag_sharp = IconData(0xee33, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">padding</i> &#x2014; material icon named "padding".
  static const IconData padding = IconData(0xe8db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pages</i> &#x2014; material icon named "pages".
  static const IconData pages = IconData(0xe8dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pages</i> &#x2014; material icon named "pages outlined".
  static const IconData pages_outlined = IconData(0xe32f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pages</i> &#x2014; material icon named "pages rounded".
  static const IconData pages_rounded = IconData(0xf362, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pages</i> &#x2014; material icon named "pages sharp".
  static const IconData pages_sharp = IconData(0xee34, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pageview</i> &#x2014; material icon named "pageview".
  static const IconData pageview = IconData(0xe8dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pageview</i> &#x2014; material icon named "pageview outlined".
  static const IconData pageview_outlined = IconData(0xe330, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pageview</i> &#x2014; material icon named "pageview rounded".
  static const IconData pageview_rounded = IconData(0xf363, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pageview</i> &#x2014; material icon named "pageview sharp".
  static const IconData pageview_sharp = IconData(0xee35, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">palette</i> &#x2014; material icon named "palette".
  static const IconData palette = IconData(0xe8de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">palette</i> &#x2014; material icon named "palette outlined".
  static const IconData palette_outlined = IconData(0xe331, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">palette</i> &#x2014; material icon named "palette rounded".
  static const IconData palette_rounded = IconData(0xf364, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">palette</i> &#x2014; material icon named "palette sharp".
  static const IconData palette_sharp = IconData(0xee36, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pan_tool</i> &#x2014; material icon named "pan tool".
  static const IconData pan_tool = IconData(0xe8df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pan_tool</i> &#x2014; material icon named "pan tool outlined".
  static const IconData pan_tool_outlined = IconData(0xe332, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pan_tool</i> &#x2014; material icon named "pan tool rounded".
  static const IconData pan_tool_rounded = IconData(0xf365, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pan_tool</i> &#x2014; material icon named "pan tool sharp".
  static const IconData pan_tool_sharp = IconData(0xee37, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">panorama</i> &#x2014; material icon named "panorama".
  static const IconData panorama = IconData(0xe8e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">panorama_fish_eye</i> &#x2014; material icon named "panorama fish eye".
  static const IconData panorama_fish_eye = IconData(0xe8e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">panorama_fish_eye</i> &#x2014; material icon named "panorama fish eye outlined".
  static const IconData panorama_fish_eye_outlined = IconData(0xe333, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">panorama_fish_eye</i> &#x2014; material icon named "panorama fish eye rounded".
  static const IconData panorama_fish_eye_rounded = IconData(0xf366, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">panorama_fish_eye</i> &#x2014; material icon named "panorama fish eye sharp".
  static const IconData panorama_fish_eye_sharp = IconData(0xee38, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">panorama_fisheye</i> &#x2014; material icon named "panorama fisheye".
  static const IconData panorama_fisheye = IconData(0xe8e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">panorama_fisheye</i> &#x2014; material icon named "panorama fisheye outlined".
  static const IconData panorama_fisheye_outlined = IconData(0xe333, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">panorama_fisheye</i> &#x2014; material icon named "panorama fisheye rounded".
  static const IconData panorama_fisheye_rounded = IconData(0xf366, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">panorama_fisheye</i> &#x2014; material icon named "panorama fisheye sharp".
  static const IconData panorama_fisheye_sharp = IconData(0xee38, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">panorama_horizontal</i> &#x2014; material icon named "panorama horizontal".
  static const IconData panorama_horizontal = IconData(0xe8e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">panorama_horizontal</i> &#x2014; material icon named "panorama horizontal outlined".
  static const IconData panorama_horizontal_outlined = IconData(0xe334, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">panorama_horizontal</i> &#x2014; material icon named "panorama horizontal rounded".
  static const IconData panorama_horizontal_rounded = IconData(0xf367, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">panorama_horizontal_select</i> &#x2014; material icon named "panorama horizontal select".
  static const IconData panorama_horizontal_select = IconData(0xe8e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">panorama_horizontal</i> &#x2014; material icon named "panorama horizontal sharp".
  static const IconData panorama_horizontal_sharp = IconData(0xee39, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">panorama</i> &#x2014; material icon named "panorama outlined".
  static const IconData panorama_outlined = IconData(0xe335, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">panorama_photosphere</i> &#x2014; material icon named "panorama photosphere".
  static const IconData panorama_photosphere = IconData(0xe8e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">panorama_photosphere_select</i> &#x2014; material icon named "panorama photosphere select".
  static const IconData panorama_photosphere_select = IconData(0xe8e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">panorama</i> &#x2014; material icon named "panorama rounded".
  static const IconData panorama_rounded = IconData(0xf368, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">panorama</i> &#x2014; material icon named "panorama sharp".
  static const IconData panorama_sharp = IconData(0xee3a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">panorama_vertical</i> &#x2014; material icon named "panorama vertical".
  static const IconData panorama_vertical = IconData(0xe8e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">panorama_vertical</i> &#x2014; material icon named "panorama vertical outlined".
  static const IconData panorama_vertical_outlined = IconData(0xe336, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">panorama_vertical</i> &#x2014; material icon named "panorama vertical rounded".
  static const IconData panorama_vertical_rounded = IconData(0xf369, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">panorama_vertical_select</i> &#x2014; material icon named "panorama vertical select".
  static const IconData panorama_vertical_select = IconData(0xe8e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">panorama_vertical</i> &#x2014; material icon named "panorama vertical sharp".
  static const IconData panorama_vertical_sharp = IconData(0xee3b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">panorama_wide_angle</i> &#x2014; material icon named "panorama wide angle".
  static const IconData panorama_wide_angle = IconData(0xe8e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">panorama_wide_angle</i> &#x2014; material icon named "panorama wide angle outlined".
  static const IconData panorama_wide_angle_outlined = IconData(0xe337, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">panorama_wide_angle</i> &#x2014; material icon named "panorama wide angle rounded".
  static const IconData panorama_wide_angle_rounded = IconData(0xf36a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">panorama_wide_angle_select</i> &#x2014; material icon named "panorama wide angle select".
  static const IconData panorama_wide_angle_select = IconData(0xe8e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">panorama_wide_angle</i> &#x2014; material icon named "panorama wide angle sharp".
  static const IconData panorama_wide_angle_sharp = IconData(0xee3c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">park</i> &#x2014; material icon named "park".
  static const IconData park = IconData(0xe8ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">party_mode</i> &#x2014; material icon named "party mode".
  static const IconData party_mode = IconData(0xe8eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">party_mode</i> &#x2014; material icon named "party mode outlined".
  static const IconData party_mode_outlined = IconData(0xe338, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">party_mode</i> &#x2014; material icon named "party mode rounded".
  static const IconData party_mode_rounded = IconData(0xf36b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">party_mode</i> &#x2014; material icon named "party mode sharp".
  static const IconData party_mode_sharp = IconData(0xee3d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">paste</i> &#x2014; material icon named "paste".
  static const IconData paste = IconData(0xe683, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">paste</i> &#x2014; material icon named "paste outlined".
  static const IconData paste_outlined = IconData(0xe10e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">paste</i> &#x2014; material icon named "paste rounded".
  static const IconData paste_rounded = IconData(0xf13c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">paste</i> &#x2014; material icon named "paste sharp".
  static const IconData paste_sharp = IconData(0xec0e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pause</i> &#x2014; material icon named "pause".
  static const IconData pause = IconData(0xe8ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pause_circle_filled</i> &#x2014; material icon named "pause circle filled".
  static const IconData pause_circle_filled = IconData(0xe8ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pause_circle_filled</i> &#x2014; material icon named "pause circle filled outlined".
  static const IconData pause_circle_filled_outlined = IconData(0xe339, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pause_circle_filled</i> &#x2014; material icon named "pause circle filled rounded".
  static const IconData pause_circle_filled_rounded = IconData(0xf36c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pause_circle_filled</i> &#x2014; material icon named "pause circle filled sharp".
  static const IconData pause_circle_filled_sharp = IconData(0xee3e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pause_circle_outline</i> &#x2014; material icon named "pause circle outline".
  static const IconData pause_circle_outline = IconData(0xe8ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pause_circle_outline</i> &#x2014; material icon named "pause circle outline outlined".
  static const IconData pause_circle_outline_outlined = IconData(0xe33a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pause_circle_outline</i> &#x2014; material icon named "pause circle outline rounded".
  static const IconData pause_circle_outline_rounded = IconData(0xf36d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pause_circle_outline</i> &#x2014; material icon named "pause circle outline sharp".
  static const IconData pause_circle_outline_sharp = IconData(0xee3f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pause</i> &#x2014; material icon named "pause outlined".
  static const IconData pause_outlined = IconData(0xe33b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pause_presentation</i> &#x2014; material icon named "pause presentation".
  static const IconData pause_presentation = IconData(0xe8ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pause_presentation</i> &#x2014; material icon named "pause presentation outlined".
  static const IconData pause_presentation_outlined = IconData(0xe33c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pause_presentation</i> &#x2014; material icon named "pause presentation rounded".
  static const IconData pause_presentation_rounded = IconData(0xf36e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pause_presentation</i> &#x2014; material icon named "pause presentation sharp".
  static const IconData pause_presentation_sharp = IconData(0xee40, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pause</i> &#x2014; material icon named "pause rounded".
  static const IconData pause_rounded = IconData(0xf36f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pause</i> &#x2014; material icon named "pause sharp".
  static const IconData pause_sharp = IconData(0xee41, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">payment</i> &#x2014; material icon named "payment".
  static const IconData payment = IconData(0xe8f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">payment</i> &#x2014; material icon named "payment outlined".
  static const IconData payment_outlined = IconData(0xe33d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">payment</i> &#x2014; material icon named "payment rounded".
  static const IconData payment_rounded = IconData(0xf370, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">payment</i> &#x2014; material icon named "payment sharp".
  static const IconData payment_sharp = IconData(0xee42, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">payments</i> &#x2014; material icon named "payments".
  static const IconData payments = IconData(0xe8f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">payments</i> &#x2014; material icon named "payments outlined".
  static const IconData payments_outlined = IconData(0xe33e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">payments</i> &#x2014; material icon named "payments rounded".
  static const IconData payments_rounded = IconData(0xf371, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">payments</i> &#x2014; material icon named "payments sharp".
  static const IconData payments_sharp = IconData(0xee43, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pedal_bike</i> &#x2014; material icon named "pedal bike".
  static const IconData pedal_bike = IconData(0xe8f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pedal_bike</i> &#x2014; material icon named "pedal bike outlined".
  static const IconData pedal_bike_outlined = IconData(0xe33f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pedal_bike</i> &#x2014; material icon named "pedal bike rounded".
  static const IconData pedal_bike_rounded = IconData(0xf372, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pedal_bike</i> &#x2014; material icon named "pedal bike sharp".
  static const IconData pedal_bike_sharp = IconData(0xee44, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pending</i> &#x2014; material icon named "pending".
  static const IconData pending = IconData(0xe8f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pending_actions</i> &#x2014; material icon named "pending actions".
  static const IconData pending_actions = IconData(0xe8f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pending_actions</i> &#x2014; material icon named "pending actions outlined".
  static const IconData pending_actions_outlined = IconData(0xe340, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pending_actions</i> &#x2014; material icon named "pending actions rounded".
  static const IconData pending_actions_rounded = IconData(0xf373, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pending_actions</i> &#x2014; material icon named "pending actions sharp".
  static const IconData pending_actions_sharp = IconData(0xee45, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pending</i> &#x2014; material icon named "pending outlined".
  static const IconData pending_outlined = IconData(0xe341, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pending</i> &#x2014; material icon named "pending rounded".
  static const IconData pending_rounded = IconData(0xf374, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pending</i> &#x2014; material icon named "pending sharp".
  static const IconData pending_sharp = IconData(0xee46, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">people</i> &#x2014; material icon named "people".
  static const IconData people = IconData(0xe8f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">people_alt</i> &#x2014; material icon named "people alt".
  static const IconData people_alt = IconData(0xe8f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">people_alt</i> &#x2014; material icon named "people alt outlined".
  static const IconData people_alt_outlined = IconData(0xe342, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">people_alt</i> &#x2014; material icon named "people alt rounded".
  static const IconData people_alt_rounded = IconData(0xf375, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">people_alt</i> &#x2014; material icon named "people alt sharp".
  static const IconData people_alt_sharp = IconData(0xee47, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">people_outline</i> &#x2014; material icon named "people outline".
  static const IconData people_outline = IconData(0xe8f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">people_outline</i> &#x2014; material icon named "people outline outlined".
  static const IconData people_outline_outlined = IconData(0xe343, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">people_outline</i> &#x2014; material icon named "people outline rounded".
  static const IconData people_outline_rounded = IconData(0xf376, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">people_outline</i> &#x2014; material icon named "people outline sharp".
  static const IconData people_outline_sharp = IconData(0xee48, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">people</i> &#x2014; material icon named "people outlined".
  static const IconData people_outlined = IconData(0xe344, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">people</i> &#x2014; material icon named "people rounded".
  static const IconData people_rounded = IconData(0xf377, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">people</i> &#x2014; material icon named "people sharp".
  static const IconData people_sharp = IconData(0xee49, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">perm_camera_mic</i> &#x2014; material icon named "perm camera mic".
  static const IconData perm_camera_mic = IconData(0xe8f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">perm_camera_mic</i> &#x2014; material icon named "perm camera mic outlined".
  static const IconData perm_camera_mic_outlined = IconData(0xe345, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_camera_mic</i> &#x2014; material icon named "perm camera mic rounded".
  static const IconData perm_camera_mic_rounded = IconData(0xf378, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">perm_camera_mic</i> &#x2014; material icon named "perm camera mic sharp".
  static const IconData perm_camera_mic_sharp = IconData(0xee4a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">perm_contact_cal</i> &#x2014; material icon named "perm contact cal".
  static const IconData perm_contact_cal = IconData(0xe8f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">perm_contact_cal</i> &#x2014; material icon named "perm contact cal outlined".
  static const IconData perm_contact_cal_outlined = IconData(0xe346, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_contact_cal</i> &#x2014; material icon named "perm contact cal rounded".
  static const IconData perm_contact_cal_rounded = IconData(0xf379, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">perm_contact_cal</i> &#x2014; material icon named "perm contact cal sharp".
  static const IconData perm_contact_cal_sharp = IconData(0xee4b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">perm_contact_calendar</i> &#x2014; material icon named "perm contact calendar".
  static const IconData perm_contact_calendar = IconData(0xe8f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">perm_contact_calendar</i> &#x2014; material icon named "perm contact calendar outlined".
  static const IconData perm_contact_calendar_outlined = IconData(0xe346, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_contact_calendar</i> &#x2014; material icon named "perm contact calendar rounded".
  static const IconData perm_contact_calendar_rounded = IconData(0xf379, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">perm_contact_calendar</i> &#x2014; material icon named "perm contact calendar sharp".
  static const IconData perm_contact_calendar_sharp = IconData(0xee4b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">perm_data_setting</i> &#x2014; material icon named "perm data setting".
  static const IconData perm_data_setting = IconData(0xe8fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">perm_data_setting</i> &#x2014; material icon named "perm data setting outlined".
  static const IconData perm_data_setting_outlined = IconData(0xe347, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_data_setting</i> &#x2014; material icon named "perm data setting rounded".
  static const IconData perm_data_setting_rounded = IconData(0xf37a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">perm_data_setting</i> &#x2014; material icon named "perm data setting sharp".
  static const IconData perm_data_setting_sharp = IconData(0xee4c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">perm_device_info</i> &#x2014; material icon named "perm device info".
  static const IconData perm_device_info = IconData(0xe8fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">perm_device_info</i> &#x2014; material icon named "perm device info outlined".
  static const IconData perm_device_info_outlined = IconData(0xe348, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_device_info</i> &#x2014; material icon named "perm device info rounded".
  static const IconData perm_device_info_rounded = IconData(0xf37b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">perm_device_info</i> &#x2014; material icon named "perm device info sharp".
  static const IconData perm_device_info_sharp = IconData(0xee4d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">perm_device_information</i> &#x2014; material icon named "perm device information".
  static const IconData perm_device_information = IconData(0xe8fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">perm_device_information</i> &#x2014; material icon named "perm device information outlined".
  static const IconData perm_device_information_outlined = IconData(0xe348, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_device_information</i> &#x2014; material icon named "perm device information rounded".
  static const IconData perm_device_information_rounded = IconData(0xf37b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">perm_device_information</i> &#x2014; material icon named "perm device information sharp".
  static const IconData perm_device_information_sharp = IconData(0xee4d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">perm_identity</i> &#x2014; material icon named "perm identity".
  static const IconData perm_identity = IconData(0xe8fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">perm_identity</i> &#x2014; material icon named "perm identity outlined".
  static const IconData perm_identity_outlined = IconData(0xe349, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_identity</i> &#x2014; material icon named "perm identity rounded".
  static const IconData perm_identity_rounded = IconData(0xf37c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">perm_identity</i> &#x2014; material icon named "perm identity sharp".
  static const IconData perm_identity_sharp = IconData(0xee4e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">perm_media</i> &#x2014; material icon named "perm media".
  static const IconData perm_media = IconData(0xe8fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">perm_media</i> &#x2014; material icon named "perm media outlined".
  static const IconData perm_media_outlined = IconData(0xe34a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_media</i> &#x2014; material icon named "perm media rounded".
  static const IconData perm_media_rounded = IconData(0xf37d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">perm_media</i> &#x2014; material icon named "perm media sharp".
  static const IconData perm_media_sharp = IconData(0xee4f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">perm_phone_msg</i> &#x2014; material icon named "perm phone msg".
  static const IconData perm_phone_msg = IconData(0xe8fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">perm_phone_msg</i> &#x2014; material icon named "perm phone msg outlined".
  static const IconData perm_phone_msg_outlined = IconData(0xe34b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_phone_msg</i> &#x2014; material icon named "perm phone msg rounded".
  static const IconData perm_phone_msg_rounded = IconData(0xf37e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">perm_phone_msg</i> &#x2014; material icon named "perm phone msg sharp".
  static const IconData perm_phone_msg_sharp = IconData(0xee50, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">perm_scan_wifi</i> &#x2014; material icon named "perm scan wifi".
  static const IconData perm_scan_wifi = IconData(0xe8ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">perm_scan_wifi</i> &#x2014; material icon named "perm scan wifi outlined".
  static const IconData perm_scan_wifi_outlined = IconData(0xe34c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_scan_wifi</i> &#x2014; material icon named "perm scan wifi rounded".
  static const IconData perm_scan_wifi_rounded = IconData(0xf37f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">perm_scan_wifi</i> &#x2014; material icon named "perm scan wifi sharp".
  static const IconData perm_scan_wifi_sharp = IconData(0xee51, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person</i> &#x2014; material icon named "person".
  static const IconData person = IconData(0xe900, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person_add</i> &#x2014; material icon named "person add".
  static const IconData person_add = IconData(0xe901, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person_add_alt</i> &#x2014; material icon named "person add alt".
  static const IconData person_add_alt = IconData(0xe902, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person_add_alt_1</i> &#x2014; material icon named "person add alt 1".
  static const IconData person_add_alt_1 = IconData(0xe903, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">person_add_alt_1</i> &#x2014; material icon named "person add alt 1 outlined".
  static const IconData person_add_alt_1_outlined = IconData(0xe34d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_add_alt_1</i> &#x2014; material icon named "person add alt 1 rounded".
  static const IconData person_add_alt_1_rounded = IconData(0xf380, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">person_add_alt_1</i> &#x2014; material icon named "person add alt 1 sharp".
  static const IconData person_add_alt_1_sharp = IconData(0xee52, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person_add_disabled</i> &#x2014; material icon named "person add disabled".
  static const IconData person_add_disabled = IconData(0xe904, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">person_add_disabled</i> &#x2014; material icon named "person add disabled outlined".
  static const IconData person_add_disabled_outlined = IconData(0xe34e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_add_disabled</i> &#x2014; material icon named "person add disabled rounded".
  static const IconData person_add_disabled_rounded = IconData(0xf381, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">person_add_disabled</i> &#x2014; material icon named "person add disabled sharp".
  static const IconData person_add_disabled_sharp = IconData(0xee53, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">person_add</i> &#x2014; material icon named "person add outlined".
  static const IconData person_add_outlined = IconData(0xe34f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_add</i> &#x2014; material icon named "person add rounded".
  static const IconData person_add_rounded = IconData(0xf382, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">person_add</i> &#x2014; material icon named "person add sharp".
  static const IconData person_add_sharp = IconData(0xee54, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person_outline</i> &#x2014; material icon named "person outline".
  static const IconData person_outline = IconData(0xe905, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">person_outline</i> &#x2014; material icon named "person outline outlined".
  static const IconData person_outline_outlined = IconData(0xe350, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_outline</i> &#x2014; material icon named "person outline rounded".
  static const IconData person_outline_rounded = IconData(0xf383, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">person_outline</i> &#x2014; material icon named "person outline sharp".
  static const IconData person_outline_sharp = IconData(0xee55, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">person</i> &#x2014; material icon named "person outlined".
  static const IconData person_outlined = IconData(0xe351, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person_pin</i> &#x2014; material icon named "person pin".
  static const IconData person_pin = IconData(0xe906, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person_pin_circle</i> &#x2014; material icon named "person pin circle".
  static const IconData person_pin_circle = IconData(0xe907, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">person_pin_circle</i> &#x2014; material icon named "person pin circle outlined".
  static const IconData person_pin_circle_outlined = IconData(0xe352, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_pin_circle</i> &#x2014; material icon named "person pin circle rounded".
  static const IconData person_pin_circle_rounded = IconData(0xf384, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">person_pin_circle</i> &#x2014; material icon named "person pin circle sharp".
  static const IconData person_pin_circle_sharp = IconData(0xee56, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">person_pin</i> &#x2014; material icon named "person pin outlined".
  static const IconData person_pin_outlined = IconData(0xe353, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_pin</i> &#x2014; material icon named "person pin rounded".
  static const IconData person_pin_rounded = IconData(0xf385, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">person_pin</i> &#x2014; material icon named "person pin sharp".
  static const IconData person_pin_sharp = IconData(0xee57, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person_remove</i> &#x2014; material icon named "person remove".
  static const IconData person_remove = IconData(0xe908, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person_remove_alt_1</i> &#x2014; material icon named "person remove alt 1".
  static const IconData person_remove_alt_1 = IconData(0xe909, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">person_remove_alt_1</i> &#x2014; material icon named "person remove alt 1 outlined".
  static const IconData person_remove_alt_1_outlined = IconData(0xe354, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_remove_alt_1</i> &#x2014; material icon named "person remove alt 1 rounded".
  static const IconData person_remove_alt_1_rounded = IconData(0xf386, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">person_remove_alt_1</i> &#x2014; material icon named "person remove alt 1 sharp".
  static const IconData person_remove_alt_1_sharp = IconData(0xee58, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">person_remove</i> &#x2014; material icon named "person remove outlined".
  static const IconData person_remove_outlined = IconData(0xe355, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_remove</i> &#x2014; material icon named "person remove rounded".
  static const IconData person_remove_rounded = IconData(0xf387, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">person_remove</i> &#x2014; material icon named "person remove sharp".
  static const IconData person_remove_sharp = IconData(0xee59, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person</i> &#x2014; material icon named "person rounded".
  static const IconData person_rounded = IconData(0xf388, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person_search</i> &#x2014; material icon named "person search".
  static const IconData person_search = IconData(0xe90a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">person_search</i> &#x2014; material icon named "person search outlined".
  static const IconData person_search_outlined = IconData(0xe356, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_search</i> &#x2014; material icon named "person search rounded".
  static const IconData person_search_rounded = IconData(0xf389, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">person_search</i> &#x2014; material icon named "person search sharp".
  static const IconData person_search_sharp = IconData(0xee5a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">person</i> &#x2014; material icon named "person sharp".
  static const IconData person_sharp = IconData(0xee5b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">personal_video</i> &#x2014; material icon named "personal video".
  static const IconData personal_video = IconData(0xe90b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">personal_video</i> &#x2014; material icon named "personal video outlined".
  static const IconData personal_video_outlined = IconData(0xe357, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">personal_video</i> &#x2014; material icon named "personal video rounded".
  static const IconData personal_video_rounded = IconData(0xf38a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">personal_video</i> &#x2014; material icon named "personal video sharp".
  static const IconData personal_video_sharp = IconData(0xee5c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pest_control</i> &#x2014; material icon named "pest control".
  static const IconData pest_control = IconData(0xe90c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pest_control</i> &#x2014; material icon named "pest control outlined".
  static const IconData pest_control_outlined = IconData(0xe358, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pest_control_rodent</i> &#x2014; material icon named "pest control rodent".
  static const IconData pest_control_rodent = IconData(0xe90d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pest_control_rodent</i> &#x2014; material icon named "pest control rodent outlined".
  static const IconData pest_control_rodent_outlined = IconData(0xe359, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pest_control_rodent</i> &#x2014; material icon named "pest control rodent rounded".
  static const IconData pest_control_rodent_rounded = IconData(0xf38b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pest_control_rodent</i> &#x2014; material icon named "pest control rodent sharp".
  static const IconData pest_control_rodent_sharp = IconData(0xee5d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pest_control</i> &#x2014; material icon named "pest control rounded".
  static const IconData pest_control_rounded = IconData(0xf38c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pest_control</i> &#x2014; material icon named "pest control sharp".
  static const IconData pest_control_sharp = IconData(0xee5e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pets</i> &#x2014; material icon named "pets".
  static const IconData pets = IconData(0xe90e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pets</i> &#x2014; material icon named "pets outlined".
  static const IconData pets_outlined = IconData(0xe35a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pets</i> &#x2014; material icon named "pets rounded".
  static const IconData pets_rounded = IconData(0xf38d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pets</i> &#x2014; material icon named "pets sharp".
  static const IconData pets_sharp = IconData(0xee5f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone</i> &#x2014; material icon named "phone".
  static const IconData phone = IconData(0xe90f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_android</i> &#x2014; material icon named "phone android".
  static const IconData phone_android = IconData(0xe910, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phone_android</i> &#x2014; material icon named "phone android outlined".
  static const IconData phone_android_outlined = IconData(0xe35b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_android</i> &#x2014; material icon named "phone android rounded".
  static const IconData phone_android_rounded = IconData(0xf38e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phone_android</i> &#x2014; material icon named "phone android sharp".
  static const IconData phone_android_sharp = IconData(0xee60, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_bluetooth_speaker</i> &#x2014; material icon named "phone bluetooth speaker".
  static const IconData phone_bluetooth_speaker = IconData(0xe911, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phone_bluetooth_speaker</i> &#x2014; material icon named "phone bluetooth speaker outlined".
  static const IconData phone_bluetooth_speaker_outlined = IconData(0xe35c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_bluetooth_speaker</i> &#x2014; material icon named "phone bluetooth speaker rounded".
  static const IconData phone_bluetooth_speaker_rounded = IconData(0xf38f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phone_bluetooth_speaker</i> &#x2014; material icon named "phone bluetooth speaker sharp".
  static const IconData phone_bluetooth_speaker_sharp = IconData(0xee61, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_callback</i> &#x2014; material icon named "phone callback".
  static const IconData phone_callback = IconData(0xe912, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phone_callback</i> &#x2014; material icon named "phone callback outlined".
  static const IconData phone_callback_outlined = IconData(0xe35d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_callback</i> &#x2014; material icon named "phone callback rounded".
  static const IconData phone_callback_rounded = IconData(0xf390, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phone_callback</i> &#x2014; material icon named "phone callback sharp".
  static const IconData phone_callback_sharp = IconData(0xee62, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_disabled</i> &#x2014; material icon named "phone disabled".
  static const IconData phone_disabled = IconData(0xe913, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phone_disabled</i> &#x2014; material icon named "phone disabled outlined".
  static const IconData phone_disabled_outlined = IconData(0xe35e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_disabled</i> &#x2014; material icon named "phone disabled rounded".
  static const IconData phone_disabled_rounded = IconData(0xf391, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phone_disabled</i> &#x2014; material icon named "phone disabled sharp".
  static const IconData phone_disabled_sharp = IconData(0xee63, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_enabled</i> &#x2014; material icon named "phone enabled".
  static const IconData phone_enabled = IconData(0xe914, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phone_enabled</i> &#x2014; material icon named "phone enabled outlined".
  static const IconData phone_enabled_outlined = IconData(0xe35f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_enabled</i> &#x2014; material icon named "phone enabled rounded".
  static const IconData phone_enabled_rounded = IconData(0xf392, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phone_enabled</i> &#x2014; material icon named "phone enabled sharp".
  static const IconData phone_enabled_sharp = IconData(0xee64, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_forwarded</i> &#x2014; material icon named "phone forwarded".
  static const IconData phone_forwarded = IconData(0xe915, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phone_forwarded</i> &#x2014; material icon named "phone forwarded outlined".
  static const IconData phone_forwarded_outlined = IconData(0xe360, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_forwarded</i> &#x2014; material icon named "phone forwarded rounded".
  static const IconData phone_forwarded_rounded = IconData(0xf393, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phone_forwarded</i> &#x2014; material icon named "phone forwarded sharp".
  static const IconData phone_forwarded_sharp = IconData(0xee65, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_in_talk</i> &#x2014; material icon named "phone in talk".
  static const IconData phone_in_talk = IconData(0xe916, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phone_in_talk</i> &#x2014; material icon named "phone in talk outlined".
  static const IconData phone_in_talk_outlined = IconData(0xe361, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_in_talk</i> &#x2014; material icon named "phone in talk rounded".
  static const IconData phone_in_talk_rounded = IconData(0xf394, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phone_in_talk</i> &#x2014; material icon named "phone in talk sharp".
  static const IconData phone_in_talk_sharp = IconData(0xee66, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_iphone</i> &#x2014; material icon named "phone iphone".
  static const IconData phone_iphone = IconData(0xe917, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phone_iphone</i> &#x2014; material icon named "phone iphone outlined".
  static const IconData phone_iphone_outlined = IconData(0xe362, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_iphone</i> &#x2014; material icon named "phone iphone rounded".
  static const IconData phone_iphone_rounded = IconData(0xf395, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phone_iphone</i> &#x2014; material icon named "phone iphone sharp".
  static const IconData phone_iphone_sharp = IconData(0xee67, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_locked</i> &#x2014; material icon named "phone locked".
  static const IconData phone_locked = IconData(0xe918, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phone_locked</i> &#x2014; material icon named "phone locked outlined".
  static const IconData phone_locked_outlined = IconData(0xe363, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_locked</i> &#x2014; material icon named "phone locked rounded".
  static const IconData phone_locked_rounded = IconData(0xf396, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phone_locked</i> &#x2014; material icon named "phone locked sharp".
  static const IconData phone_locked_sharp = IconData(0xee68, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_missed</i> &#x2014; material icon named "phone missed".
  static const IconData phone_missed = IconData(0xe919, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phone_missed</i> &#x2014; material icon named "phone missed outlined".
  static const IconData phone_missed_outlined = IconData(0xe364, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_missed</i> &#x2014; material icon named "phone missed rounded".
  static const IconData phone_missed_rounded = IconData(0xf397, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phone_missed</i> &#x2014; material icon named "phone missed sharp".
  static const IconData phone_missed_sharp = IconData(0xee69, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phone</i> &#x2014; material icon named "phone outlined".
  static const IconData phone_outlined = IconData(0xe365, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_paused</i> &#x2014; material icon named "phone paused".
  static const IconData phone_paused = IconData(0xe91a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phone_paused</i> &#x2014; material icon named "phone paused outlined".
  static const IconData phone_paused_outlined = IconData(0xe366, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_paused</i> &#x2014; material icon named "phone paused rounded".
  static const IconData phone_paused_rounded = IconData(0xf398, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phone_paused</i> &#x2014; material icon named "phone paused sharp".
  static const IconData phone_paused_sharp = IconData(0xee6a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone</i> &#x2014; material icon named "phone rounded".
  static const IconData phone_rounded = IconData(0xf399, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phone</i> &#x2014; material icon named "phone sharp".
  static const IconData phone_sharp = IconData(0xee6b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phonelink</i> &#x2014; material icon named "phonelink".
  static const IconData phonelink = IconData(0xe91b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phonelink_erase</i> &#x2014; material icon named "phonelink erase".
  static const IconData phonelink_erase = IconData(0xe91c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phonelink_erase</i> &#x2014; material icon named "phonelink erase outlined".
  static const IconData phonelink_erase_outlined = IconData(0xe367, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phonelink_erase</i> &#x2014; material icon named "phonelink erase rounded".
  static const IconData phonelink_erase_rounded = IconData(0xf39a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phonelink_erase</i> &#x2014; material icon named "phonelink erase sharp".
  static const IconData phonelink_erase_sharp = IconData(0xee6c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phonelink_lock</i> &#x2014; material icon named "phonelink lock".
  static const IconData phonelink_lock = IconData(0xe91d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phonelink_lock</i> &#x2014; material icon named "phonelink lock outlined".
  static const IconData phonelink_lock_outlined = IconData(0xe368, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phonelink_lock</i> &#x2014; material icon named "phonelink lock rounded".
  static const IconData phonelink_lock_rounded = IconData(0xf39b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phonelink_lock</i> &#x2014; material icon named "phonelink lock sharp".
  static const IconData phonelink_lock_sharp = IconData(0xee6d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phonelink_off</i> &#x2014; material icon named "phonelink off".
  static const IconData phonelink_off = IconData(0xe91e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phonelink_off</i> &#x2014; material icon named "phonelink off outlined".
  static const IconData phonelink_off_outlined = IconData(0xe369, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phonelink_off</i> &#x2014; material icon named "phonelink off rounded".
  static const IconData phonelink_off_rounded = IconData(0xf39c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phonelink_off</i> &#x2014; material icon named "phonelink off sharp".
  static const IconData phonelink_off_sharp = IconData(0xee6e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phonelink</i> &#x2014; material icon named "phonelink outlined".
  static const IconData phonelink_outlined = IconData(0xe36a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phonelink_ring</i> &#x2014; material icon named "phonelink ring".
  static const IconData phonelink_ring = IconData(0xe91f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phonelink_ring</i> &#x2014; material icon named "phonelink ring outlined".
  static const IconData phonelink_ring_outlined = IconData(0xe36b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phonelink_ring</i> &#x2014; material icon named "phonelink ring rounded".
  static const IconData phonelink_ring_rounded = IconData(0xf39d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phonelink_ring</i> &#x2014; material icon named "phonelink ring sharp".
  static const IconData phonelink_ring_sharp = IconData(0xee6f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phonelink</i> &#x2014; material icon named "phonelink rounded".
  static const IconData phonelink_rounded = IconData(0xf39e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phonelink_setup</i> &#x2014; material icon named "phonelink setup".
  static const IconData phonelink_setup = IconData(0xe920, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phonelink_setup</i> &#x2014; material icon named "phonelink setup outlined".
  static const IconData phonelink_setup_outlined = IconData(0xe36c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phonelink_setup</i> &#x2014; material icon named "phonelink setup rounded".
  static const IconData phonelink_setup_rounded = IconData(0xf39f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phonelink_setup</i> &#x2014; material icon named "phonelink setup sharp".
  static const IconData phonelink_setup_sharp = IconData(0xee70, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phonelink</i> &#x2014; material icon named "phonelink sharp".
  static const IconData phonelink_sharp = IconData(0xee71, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">photo</i> &#x2014; material icon named "photo".
  static const IconData photo = IconData(0xe921, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">photo_album</i> &#x2014; material icon named "photo album".
  static const IconData photo_album = IconData(0xe922, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">photo_album</i> &#x2014; material icon named "photo album outlined".
  static const IconData photo_album_outlined = IconData(0xe36d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">photo_album</i> &#x2014; material icon named "photo album rounded".
  static const IconData photo_album_rounded = IconData(0xf3a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">photo_album</i> &#x2014; material icon named "photo album sharp".
  static const IconData photo_album_sharp = IconData(0xee72, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">photo_camera</i> &#x2014; material icon named "photo camera".
  static const IconData photo_camera = IconData(0xe923, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">photo_camera_back</i> &#x2014; material icon named "photo camera back".
  static const IconData photo_camera_back = IconData(0xe924, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">photo_camera_front</i> &#x2014; material icon named "photo camera front".
  static const IconData photo_camera_front = IconData(0xe925, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">photo_camera</i> &#x2014; material icon named "photo camera outlined".
  static const IconData photo_camera_outlined = IconData(0xe36e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">photo_camera</i> &#x2014; material icon named "photo camera rounded".
  static const IconData photo_camera_rounded = IconData(0xf3a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">photo_camera</i> &#x2014; material icon named "photo camera sharp".
  static const IconData photo_camera_sharp = IconData(0xee73, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">photo_filter</i> &#x2014; material icon named "photo filter".
  static const IconData photo_filter = IconData(0xe926, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">photo_filter</i> &#x2014; material icon named "photo filter outlined".
  static const IconData photo_filter_outlined = IconData(0xe36f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">photo_filter</i> &#x2014; material icon named "photo filter rounded".
  static const IconData photo_filter_rounded = IconData(0xf3a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">photo_filter</i> &#x2014; material icon named "photo filter sharp".
  static const IconData photo_filter_sharp = IconData(0xee74, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">photo_library</i> &#x2014; material icon named "photo library".
  static const IconData photo_library = IconData(0xe927, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">photo_library</i> &#x2014; material icon named "photo library outlined".
  static const IconData photo_library_outlined = IconData(0xe370, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">photo_library</i> &#x2014; material icon named "photo library rounded".
  static const IconData photo_library_rounded = IconData(0xf3a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">photo_library</i> &#x2014; material icon named "photo library sharp".
  static const IconData photo_library_sharp = IconData(0xee75, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">photo</i> &#x2014; material icon named "photo outlined".
  static const IconData photo_outlined = IconData(0xe371, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">photo</i> &#x2014; material icon named "photo rounded".
  static const IconData photo_rounded = IconData(0xf3a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">photo</i> &#x2014; material icon named "photo sharp".
  static const IconData photo_sharp = IconData(0xee76, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">photo_size_select_actual</i> &#x2014; material icon named "photo size select actual".
  static const IconData photo_size_select_actual = IconData(0xe928, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">photo_size_select_actual</i> &#x2014; material icon named "photo size select actual outlined".
  static const IconData photo_size_select_actual_outlined = IconData(0xe372, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">photo_size_select_actual</i> &#x2014; material icon named "photo size select actual rounded".
  static const IconData photo_size_select_actual_rounded = IconData(0xf3a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">photo_size_select_actual</i> &#x2014; material icon named "photo size select actual sharp".
  static const IconData photo_size_select_actual_sharp = IconData(0xee77, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">photo_size_select_large</i> &#x2014; material icon named "photo size select large".
  static const IconData photo_size_select_large = IconData(0xe929, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">photo_size_select_large</i> &#x2014; material icon named "photo size select large outlined".
  static const IconData photo_size_select_large_outlined = IconData(0xe373, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">photo_size_select_large</i> &#x2014; material icon named "photo size select large rounded".
  static const IconData photo_size_select_large_rounded = IconData(0xf3a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">photo_size_select_large</i> &#x2014; material icon named "photo size select large sharp".
  static const IconData photo_size_select_large_sharp = IconData(0xee78, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">photo_size_select_small</i> &#x2014; material icon named "photo size select small".
  static const IconData photo_size_select_small = IconData(0xe92a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">photo_size_select_small</i> &#x2014; material icon named "photo size select small outlined".
  static const IconData photo_size_select_small_outlined = IconData(0xe374, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">photo_size_select_small</i> &#x2014; material icon named "photo size select small rounded".
  static const IconData photo_size_select_small_rounded = IconData(0xf3a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">photo_size_select_small</i> &#x2014; material icon named "photo size select small sharp".
  static const IconData photo_size_select_small_sharp = IconData(0xee79, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">picture_as_pdf</i> &#x2014; material icon named "picture as pdf".
  static const IconData picture_as_pdf = IconData(0xe92b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">picture_as_pdf</i> &#x2014; material icon named "picture as pdf outlined".
  static const IconData picture_as_pdf_outlined = IconData(0xe375, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">picture_as_pdf</i> &#x2014; material icon named "picture as pdf rounded".
  static const IconData picture_as_pdf_rounded = IconData(0xf3a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">picture_as_pdf</i> &#x2014; material icon named "picture as pdf sharp".
  static const IconData picture_as_pdf_sharp = IconData(0xee7a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">picture_in_picture</i> &#x2014; material icon named "picture in picture".
  static const IconData picture_in_picture = IconData(0xe92c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">picture_in_picture_alt</i> &#x2014; material icon named "picture in picture alt".
  static const IconData picture_in_picture_alt = IconData(0xe92d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">picture_in_picture_alt</i> &#x2014; material icon named "picture in picture alt outlined".
  static const IconData picture_in_picture_alt_outlined = IconData(0xe376, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">picture_in_picture_alt</i> &#x2014; material icon named "picture in picture alt rounded".
  static const IconData picture_in_picture_alt_rounded = IconData(0xf3a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">picture_in_picture_alt</i> &#x2014; material icon named "picture in picture alt sharp".
  static const IconData picture_in_picture_alt_sharp = IconData(0xee7b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">picture_in_picture</i> &#x2014; material icon named "picture in picture outlined".
  static const IconData picture_in_picture_outlined = IconData(0xe377, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">picture_in_picture</i> &#x2014; material icon named "picture in picture rounded".
  static const IconData picture_in_picture_rounded = IconData(0xf3aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">picture_in_picture</i> &#x2014; material icon named "picture in picture sharp".
  static const IconData picture_in_picture_sharp = IconData(0xee7c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pie_chart</i> &#x2014; material icon named "pie chart".
  static const IconData pie_chart = IconData(0xe92e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pie_chart_outline</i> &#x2014; material icon named "pie chart outline outlined".
  static const IconData pie_chart_outline_outlined = IconData(0xe378, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pie_chart_outline</i> &#x2014; material icon named "pie chart outline rounded".
  static const IconData pie_chart_outline_rounded = IconData(0xf3ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pie_chart_outline</i> &#x2014; material icon named "pie chart outline sharp".
  static const IconData pie_chart_outline_sharp = IconData(0xee7d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pie_chart</i> &#x2014; material icon named "pie chart outlined".
  static const IconData pie_chart_outlined = IconData(0xe379, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pie_chart</i> &#x2014; material icon named "pie chart rounded".
  static const IconData pie_chart_rounded = IconData(0xf3ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pie_chart</i> &#x2014; material icon named "pie chart sharp".
  static const IconData pie_chart_sharp = IconData(0xee7e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pin_drop</i> &#x2014; material icon named "pin drop".
  static const IconData pin_drop = IconData(0xe930, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pin_drop</i> &#x2014; material icon named "pin drop outlined".
  static const IconData pin_drop_outlined = IconData(0xe37a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pin_drop</i> &#x2014; material icon named "pin drop rounded".
  static const IconData pin_drop_rounded = IconData(0xf3ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pin_drop</i> &#x2014; material icon named "pin drop sharp".
  static const IconData pin_drop_sharp = IconData(0xee7f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pivot_table_chart</i> &#x2014; material icon named "pivot table chart".
  static const IconData pivot_table_chart = IconData(0xe931, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">place</i> &#x2014; material icon named "place".
  static const IconData place = IconData(0xe932, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">place</i> &#x2014; material icon named "place outlined".
  static const IconData place_outlined = IconData(0xe37b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">place</i> &#x2014; material icon named "place rounded".
  static const IconData place_rounded = IconData(0xf3ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">place</i> &#x2014; material icon named "place sharp".
  static const IconData place_sharp = IconData(0xee80, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">plagiarism</i> &#x2014; material icon named "plagiarism".
  static const IconData plagiarism = IconData(0xe933, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">plagiarism</i> &#x2014; material icon named "plagiarism outlined".
  static const IconData plagiarism_outlined = IconData(0xe37c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">plagiarism</i> &#x2014; material icon named "plagiarism rounded".
  static const IconData plagiarism_rounded = IconData(0xf3af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">plagiarism</i> &#x2014; material icon named "plagiarism sharp".
  static const IconData plagiarism_sharp = IconData(0xee81, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">play_arrow</i> &#x2014; material icon named "play arrow".
  static const IconData play_arrow = IconData(0xe934, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">play_arrow</i> &#x2014; material icon named "play arrow outlined".
  static const IconData play_arrow_outlined = IconData(0xe37d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">play_arrow</i> &#x2014; material icon named "play arrow rounded".
  static const IconData play_arrow_rounded = IconData(0xf3b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">play_arrow</i> &#x2014; material icon named "play arrow sharp".
  static const IconData play_arrow_sharp = IconData(0xee82, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">play_circle_fill</i> &#x2014; material icon named "play circle fill".
  static const IconData play_circle_fill = IconData(0xe935, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">play_circle_fill</i> &#x2014; material icon named "play circle fill outlined".
  static const IconData play_circle_fill_outlined = IconData(0xe37e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">play_circle_fill</i> &#x2014; material icon named "play circle fill rounded".
  static const IconData play_circle_fill_rounded = IconData(0xf3b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">play_circle_fill</i> &#x2014; material icon named "play circle fill sharp".
  static const IconData play_circle_fill_sharp = IconData(0xee83, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">play_circle_filled</i> &#x2014; material icon named "play circle filled".
  static const IconData play_circle_filled = IconData(0xe935, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">play_circle_filled</i> &#x2014; material icon named "play circle filled outlined".
  static const IconData play_circle_filled_outlined = IconData(0xe37e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">play_circle_filled</i> &#x2014; material icon named "play circle filled rounded".
  static const IconData play_circle_filled_rounded = IconData(0xf3b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">play_circle_filled</i> &#x2014; material icon named "play circle filled sharp".
  static const IconData play_circle_filled_sharp = IconData(0xee83, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">play_circle_outline</i> &#x2014; material icon named "play circle outline".
  static const IconData play_circle_outline = IconData(0xe936, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">play_circle_outline</i> &#x2014; material icon named "play circle outline outlined".
  static const IconData play_circle_outline_outlined = IconData(0xe37f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">play_circle_outline</i> &#x2014; material icon named "play circle outline rounded".
  static const IconData play_circle_outline_rounded = IconData(0xf3b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">play_circle_outline</i> &#x2014; material icon named "play circle outline sharp".
  static const IconData play_circle_outline_sharp = IconData(0xee84, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">play_disabled</i> &#x2014; material icon named "play disabled".
  static const IconData play_disabled = IconData(0xe937, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">play_for_work</i> &#x2014; material icon named "play for work".
  static const IconData play_for_work = IconData(0xe938, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">play_for_work</i> &#x2014; material icon named "play for work outlined".
  static const IconData play_for_work_outlined = IconData(0xe380, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">play_for_work</i> &#x2014; material icon named "play for work rounded".
  static const IconData play_for_work_rounded = IconData(0xf3b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">play_for_work</i> &#x2014; material icon named "play for work sharp".
  static const IconData play_for_work_sharp = IconData(0xee85, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">playlist_add</i> &#x2014; material icon named "playlist add".
  static const IconData playlist_add = IconData(0xe939, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">playlist_add_check</i> &#x2014; material icon named "playlist add check".
  static const IconData playlist_add_check = IconData(0xe93a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">playlist_add_check</i> &#x2014; material icon named "playlist add check outlined".
  static const IconData playlist_add_check_outlined = IconData(0xe381, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">playlist_add_check</i> &#x2014; material icon named "playlist add check rounded".
  static const IconData playlist_add_check_rounded = IconData(0xf3b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">playlist_add_check</i> &#x2014; material icon named "playlist add check sharp".
  static const IconData playlist_add_check_sharp = IconData(0xee86, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">playlist_add</i> &#x2014; material icon named "playlist add outlined".
  static const IconData playlist_add_outlined = IconData(0xe382, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">playlist_add</i> &#x2014; material icon named "playlist add rounded".
  static const IconData playlist_add_rounded = IconData(0xf3b5, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">playlist_add</i> &#x2014; material icon named "playlist add sharp".
  static const IconData playlist_add_sharp = IconData(0xee87, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">playlist_play</i> &#x2014; material icon named "playlist play".
  static const IconData playlist_play = IconData(0xe93b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">playlist_play</i> &#x2014; material icon named "playlist play outlined".
  static const IconData playlist_play_outlined = IconData(0xe383, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">playlist_play</i> &#x2014; material icon named "playlist play rounded".
  static const IconData playlist_play_rounded = IconData(0xf3b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">playlist_play</i> &#x2014; material icon named "playlist play sharp".
  static const IconData playlist_play_sharp = IconData(0xee88, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">plumbing</i> &#x2014; material icon named "plumbing".
  static const IconData plumbing = IconData(0xe93c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">plumbing</i> &#x2014; material icon named "plumbing outlined".
  static const IconData plumbing_outlined = IconData(0xe384, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">plumbing</i> &#x2014; material icon named "plumbing rounded".
  static const IconData plumbing_rounded = IconData(0xf3b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">plumbing</i> &#x2014; material icon named "plumbing sharp".
  static const IconData plumbing_sharp = IconData(0xee89, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">plus_one</i> &#x2014; material icon named "plus one".
  static const IconData plus_one = IconData(0xe93d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">plus_one</i> &#x2014; material icon named "plus one outlined".
  static const IconData plus_one_outlined = IconData(0xe385, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">plus_one</i> &#x2014; material icon named "plus one rounded".
  static const IconData plus_one_rounded = IconData(0xf3b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">plus_one</i> &#x2014; material icon named "plus one sharp".
  static const IconData plus_one_sharp = IconData(0xee8a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">point_of_sale</i> &#x2014; material icon named "point of sale".
  static const IconData point_of_sale = IconData(0xe93e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">point_of_sale</i> &#x2014; material icon named "point of sale outlined".
  static const IconData point_of_sale_outlined = IconData(0xe386, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">point_of_sale</i> &#x2014; material icon named "point of sale rounded".
  static const IconData point_of_sale_rounded = IconData(0xf3b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">point_of_sale</i> &#x2014; material icon named "point of sale sharp".
  static const IconData point_of_sale_sharp = IconData(0xee8b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">policy</i> &#x2014; material icon named "policy".
  static const IconData policy = IconData(0xe93f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">policy</i> &#x2014; material icon named "policy outlined".
  static const IconData policy_outlined = IconData(0xe387, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">policy</i> &#x2014; material icon named "policy rounded".
  static const IconData policy_rounded = IconData(0xf3ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">policy</i> &#x2014; material icon named "policy sharp".
  static const IconData policy_sharp = IconData(0xee8c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">poll</i> &#x2014; material icon named "poll".
  static const IconData poll = IconData(0xe940, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">poll</i> &#x2014; material icon named "poll outlined".
  static const IconData poll_outlined = IconData(0xe388, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">poll</i> &#x2014; material icon named "poll rounded".
  static const IconData poll_rounded = IconData(0xf3bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">poll</i> &#x2014; material icon named "poll sharp".
  static const IconData poll_sharp = IconData(0xee8d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">polymer</i> &#x2014; material icon named "polymer".
  static const IconData polymer = IconData(0xe941, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">polymer</i> &#x2014; material icon named "polymer outlined".
  static const IconData polymer_outlined = IconData(0xe389, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">polymer</i> &#x2014; material icon named "polymer rounded".
  static const IconData polymer_rounded = IconData(0xf3bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">polymer</i> &#x2014; material icon named "polymer sharp".
  static const IconData polymer_sharp = IconData(0xee8e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pool</i> &#x2014; material icon named "pool".
  static const IconData pool = IconData(0xe942, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pool</i> &#x2014; material icon named "pool outlined".
  static const IconData pool_outlined = IconData(0xe38a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pool</i> &#x2014; material icon named "pool rounded".
  static const IconData pool_rounded = IconData(0xf3bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pool</i> &#x2014; material icon named "pool sharp".
  static const IconData pool_sharp = IconData(0xee8f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">portable_wifi_off</i> &#x2014; material icon named "portable wifi off".
  static const IconData portable_wifi_off = IconData(0xe943, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">portable_wifi_off</i> &#x2014; material icon named "portable wifi off outlined".
  static const IconData portable_wifi_off_outlined = IconData(0xe38b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">portable_wifi_off</i> &#x2014; material icon named "portable wifi off rounded".
  static const IconData portable_wifi_off_rounded = IconData(0xf3be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">portable_wifi_off</i> &#x2014; material icon named "portable wifi off sharp".
  static const IconData portable_wifi_off_sharp = IconData(0xee90, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">portrait</i> &#x2014; material icon named "portrait".
  static const IconData portrait = IconData(0xe944, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">portrait</i> &#x2014; material icon named "portrait outlined".
  static const IconData portrait_outlined = IconData(0xe38c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">portrait</i> &#x2014; material icon named "portrait rounded".
  static const IconData portrait_rounded = IconData(0xf3bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">portrait</i> &#x2014; material icon named "portrait sharp".
  static const IconData portrait_sharp = IconData(0xee91, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">post_add</i> &#x2014; material icon named "post add".
  static const IconData post_add = IconData(0xe945, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">post_add</i> &#x2014; material icon named "post add outlined".
  static const IconData post_add_outlined = IconData(0xe38d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">post_add</i> &#x2014; material icon named "post add rounded".
  static const IconData post_add_rounded = IconData(0xf3c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">post_add</i> &#x2014; material icon named "post add sharp".
  static const IconData post_add_sharp = IconData(0xee92, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">power</i> &#x2014; material icon named "power".
  static const IconData power = IconData(0xe946, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">power_input</i> &#x2014; material icon named "power input".
  static const IconData power_input = IconData(0xe947, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">power_input</i> &#x2014; material icon named "power input outlined".
  static const IconData power_input_outlined = IconData(0xe38e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">power_input</i> &#x2014; material icon named "power input rounded".
  static const IconData power_input_rounded = IconData(0xf3c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">power_input</i> &#x2014; material icon named "power input sharp".
  static const IconData power_input_sharp = IconData(0xee93, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">power_off</i> &#x2014; material icon named "power off".
  static const IconData power_off = IconData(0xe948, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">power_off</i> &#x2014; material icon named "power off outlined".
  static const IconData power_off_outlined = IconData(0xe38f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">power_off</i> &#x2014; material icon named "power off rounded".
  static const IconData power_off_rounded = IconData(0xf3c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">power_off</i> &#x2014; material icon named "power off sharp".
  static const IconData power_off_sharp = IconData(0xee94, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">power</i> &#x2014; material icon named "power outlined".
  static const IconData power_outlined = IconData(0xe390, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">power</i> &#x2014; material icon named "power rounded".
  static const IconData power_rounded = IconData(0xf3c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">power_settings_new</i> &#x2014; material icon named "power settings new".
  static const IconData power_settings_new = IconData(0xe949, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">power_settings_new</i> &#x2014; material icon named "power settings new outlined".
  static const IconData power_settings_new_outlined = IconData(0xe391, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">power_settings_new</i> &#x2014; material icon named "power settings new rounded".
  static const IconData power_settings_new_rounded = IconData(0xf3c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">power_settings_new</i> &#x2014; material icon named "power settings new sharp".
  static const IconData power_settings_new_sharp = IconData(0xee95, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">power</i> &#x2014; material icon named "power sharp".
  static const IconData power_sharp = IconData(0xee96, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">precision_manufacturing</i> &#x2014; material icon named "precision manufacturing outlined".
  static const IconData precision_manufacturing_outlined = IconData(0xe392, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">precision_manufacturing</i> &#x2014; material icon named "precision manufacturing rounded".
  static const IconData precision_manufacturing_rounded = IconData(0xf3c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">precision_manufacturing</i> &#x2014; material icon named "precision manufacturing sharp".
  static const IconData precision_manufacturing_sharp = IconData(0xee97, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pregnant_woman</i> &#x2014; material icon named "pregnant woman".
  static const IconData pregnant_woman = IconData(0xe94a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pregnant_woman</i> &#x2014; material icon named "pregnant woman outlined".
  static const IconData pregnant_woman_outlined = IconData(0xe393, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pregnant_woman</i> &#x2014; material icon named "pregnant woman rounded".
  static const IconData pregnant_woman_rounded = IconData(0xf3c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pregnant_woman</i> &#x2014; material icon named "pregnant woman sharp".
  static const IconData pregnant_woman_sharp = IconData(0xee98, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">present_to_all</i> &#x2014; material icon named "present to all".
  static const IconData present_to_all = IconData(0xe94b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">present_to_all</i> &#x2014; material icon named "present to all outlined".
  static const IconData present_to_all_outlined = IconData(0xe394, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">present_to_all</i> &#x2014; material icon named "present to all rounded".
  static const IconData present_to_all_rounded = IconData(0xf3c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">present_to_all</i> &#x2014; material icon named "present to all sharp".
  static const IconData present_to_all_sharp = IconData(0xee99, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">preview</i> &#x2014; material icon named "preview".
  static const IconData preview = IconData(0xe94c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">preview</i> &#x2014; material icon named "preview outlined".
  static const IconData preview_outlined = IconData(0xe395, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">preview</i> &#x2014; material icon named "preview rounded".
  static const IconData preview_rounded = IconData(0xf3c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">preview</i> &#x2014; material icon named "preview sharp".
  static const IconData preview_sharp = IconData(0xee9a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">print</i> &#x2014; material icon named "print".
  static const IconData print = IconData(0xe94d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">print_disabled</i> &#x2014; material icon named "print disabled".
  static const IconData print_disabled = IconData(0xe94e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">print_disabled</i> &#x2014; material icon named "print disabled outlined".
  static const IconData print_disabled_outlined = IconData(0xe396, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">print_disabled</i> &#x2014; material icon named "print disabled rounded".
  static const IconData print_disabled_rounded = IconData(0xf3c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">print_disabled</i> &#x2014; material icon named "print disabled sharp".
  static const IconData print_disabled_sharp = IconData(0xee9b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">print</i> &#x2014; material icon named "print outlined".
  static const IconData print_outlined = IconData(0xe397, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">print</i> &#x2014; material icon named "print rounded".
  static const IconData print_rounded = IconData(0xf3ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">print</i> &#x2014; material icon named "print sharp".
  static const IconData print_sharp = IconData(0xee9c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">priority_high</i> &#x2014; material icon named "priority high".
  static const IconData priority_high = IconData(0xe94f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">priority_high</i> &#x2014; material icon named "priority high outlined".
  static const IconData priority_high_outlined = IconData(0xe398, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">priority_high</i> &#x2014; material icon named "priority high rounded".
  static const IconData priority_high_rounded = IconData(0xf3cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">priority_high</i> &#x2014; material icon named "priority high sharp".
  static const IconData priority_high_sharp = IconData(0xee9d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">privacy_tip</i> &#x2014; material icon named "privacy tip".
  static const IconData privacy_tip = IconData(0xe950, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">privacy_tip</i> &#x2014; material icon named "privacy tip outlined".
  static const IconData privacy_tip_outlined = IconData(0xe399, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">privacy_tip</i> &#x2014; material icon named "privacy tip rounded".
  static const IconData privacy_tip_rounded = IconData(0xf3cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">privacy_tip</i> &#x2014; material icon named "privacy tip sharp".
  static const IconData privacy_tip_sharp = IconData(0xee9e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">psychology</i> &#x2014; material icon named "psychology".
  static const IconData psychology = IconData(0xe951, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">psychology</i> &#x2014; material icon named "psychology outlined".
  static const IconData psychology_outlined = IconData(0xe39a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">psychology</i> &#x2014; material icon named "psychology rounded".
  static const IconData psychology_rounded = IconData(0xf3cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">psychology</i> &#x2014; material icon named "psychology sharp".
  static const IconData psychology_sharp = IconData(0xee9f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">public</i> &#x2014; material icon named "public".
  static const IconData public = IconData(0xe952, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">public_off</i> &#x2014; material icon named "public off".
  static const IconData public_off = IconData(0xe953, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">public_off</i> &#x2014; material icon named "public off outlined".
  static const IconData public_off_outlined = IconData(0xe39b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">public_off</i> &#x2014; material icon named "public off rounded".
  static const IconData public_off_rounded = IconData(0xf3ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">public_off</i> &#x2014; material icon named "public off sharp".
  static const IconData public_off_sharp = IconData(0xeea0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">public</i> &#x2014; material icon named "public outlined".
  static const IconData public_outlined = IconData(0xe39c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">public</i> &#x2014; material icon named "public rounded".
  static const IconData public_rounded = IconData(0xf3cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">public</i> &#x2014; material icon named "public sharp".
  static const IconData public_sharp = IconData(0xeea1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">publish</i> &#x2014; material icon named "publish".
  static const IconData publish = IconData(0xe954, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">publish</i> &#x2014; material icon named "publish outlined".
  static const IconData publish_outlined = IconData(0xe39d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">publish</i> &#x2014; material icon named "publish rounded".
  static const IconData publish_rounded = IconData(0xf3d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">publish</i> &#x2014; material icon named "publish sharp".
  static const IconData publish_sharp = IconData(0xeea2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">push_pin</i> &#x2014; material icon named "push pin".
  static const IconData push_pin = IconData(0xe955, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">push_pin</i> &#x2014; material icon named "push pin outlined".
  static const IconData push_pin_outlined = IconData(0xe39e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">push_pin</i> &#x2014; material icon named "push pin rounded".
  static const IconData push_pin_rounded = IconData(0xf3d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">push_pin</i> &#x2014; material icon named "push pin sharp".
  static const IconData push_pin_sharp = IconData(0xeea3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">qr_code</i> &#x2014; material icon named "qr code".
  static const IconData qr_code = IconData(0xe956, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">qr_code</i> &#x2014; material icon named "qr code outlined".
  static const IconData qr_code_outlined = IconData(0xe39f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">qr_code</i> &#x2014; material icon named "qr code rounded".
  static const IconData qr_code_rounded = IconData(0xf3d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">qr_code_scanner</i> &#x2014; material icon named "qr code scanner".
  static const IconData qr_code_scanner = IconData(0xe957, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">qr_code_scanner</i> &#x2014; material icon named "qr code scanner outlined".
  static const IconData qr_code_scanner_outlined = IconData(0xe3a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">qr_code_scanner</i> &#x2014; material icon named "qr code scanner rounded".
  static const IconData qr_code_scanner_rounded = IconData(0xf3d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">qr_code_scanner</i> &#x2014; material icon named "qr code scanner sharp".
  static const IconData qr_code_scanner_sharp = IconData(0xeea4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">qr_code</i> &#x2014; material icon named "qr code sharp".
  static const IconData qr_code_sharp = IconData(0xeea5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">query_builder</i> &#x2014; material icon named "query builder".
  static const IconData query_builder = IconData(0xe958, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">query_builder</i> &#x2014; material icon named "query builder outlined".
  static const IconData query_builder_outlined = IconData(0xe3a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">query_builder</i> &#x2014; material icon named "query builder rounded".
  static const IconData query_builder_rounded = IconData(0xf3d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">query_builder</i> &#x2014; material icon named "query builder sharp".
  static const IconData query_builder_sharp = IconData(0xeea6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">question_answer</i> &#x2014; material icon named "question answer".
  static const IconData question_answer = IconData(0xe959, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">question_answer</i> &#x2014; material icon named "question answer outlined".
  static const IconData question_answer_outlined = IconData(0xe3a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">question_answer</i> &#x2014; material icon named "question answer rounded".
  static const IconData question_answer_rounded = IconData(0xf3d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">question_answer</i> &#x2014; material icon named "question answer sharp".
  static const IconData question_answer_sharp = IconData(0xeea7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">queue</i> &#x2014; material icon named "queue".
  static const IconData queue = IconData(0xe95a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">queue_music</i> &#x2014; material icon named "queue music".
  static const IconData queue_music = IconData(0xe95b, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">queue_music</i> &#x2014; material icon named "queue music outlined".
  static const IconData queue_music_outlined = IconData(0xe3a3, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">queue_music</i> &#x2014; material icon named "queue music rounded".
  static const IconData queue_music_rounded = IconData(0xf3d6, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">queue_music</i> &#x2014; material icon named "queue music sharp".
  static const IconData queue_music_sharp = IconData(0xeea8, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">queue</i> &#x2014; material icon named "queue outlined".
  static const IconData queue_outlined = IconData(0xe3a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">queue_play_next</i> &#x2014; material icon named "queue play next".
  static const IconData queue_play_next = IconData(0xe95c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">queue_play_next</i> &#x2014; material icon named "queue play next outlined".
  static const IconData queue_play_next_outlined = IconData(0xe3a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">queue_play_next</i> &#x2014; material icon named "queue play next rounded".
  static const IconData queue_play_next_rounded = IconData(0xf3d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">queue_play_next</i> &#x2014; material icon named "queue play next sharp".
  static const IconData queue_play_next_sharp = IconData(0xeea9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">queue</i> &#x2014; material icon named "queue rounded".
  static const IconData queue_rounded = IconData(0xf3d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">queue</i> &#x2014; material icon named "queue sharp".
  static const IconData queue_sharp = IconData(0xeeaa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">quick_contacts_dialer</i> &#x2014; material icon named "quick contacts dialer".
  static const IconData quick_contacts_dialer = IconData(0xe67d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">quick_contacts_dialer</i> &#x2014; material icon named "quick contacts dialer outlined".
  static const IconData quick_contacts_dialer_outlined = IconData(0xe108, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">quick_contacts_dialer</i> &#x2014; material icon named "quick contacts dialer rounded".
  static const IconData quick_contacts_dialer_rounded = IconData(0xf136, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">quick_contacts_dialer</i> &#x2014; material icon named "quick contacts dialer sharp".
  static const IconData quick_contacts_dialer_sharp = IconData(0xec08, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">quick_contacts_mail</i> &#x2014; material icon named "quick contacts mail".
  static const IconData quick_contacts_mail = IconData(0xe67b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">quick_contacts_mail</i> &#x2014; material icon named "quick contacts mail outlined".
  static const IconData quick_contacts_mail_outlined = IconData(0xe106, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">quick_contacts_mail</i> &#x2014; material icon named "quick contacts mail rounded".
  static const IconData quick_contacts_mail_rounded = IconData(0xf134, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">quick_contacts_mail</i> &#x2014; material icon named "quick contacts mail sharp".
  static const IconData quick_contacts_mail_sharp = IconData(0xec06, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">quickreply</i> &#x2014; material icon named "quickreply".
  static const IconData quickreply = IconData(0xe95d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">quickreply</i> &#x2014; material icon named "quickreply outlined".
  static const IconData quickreply_outlined = IconData(0xe3a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">quickreply</i> &#x2014; material icon named "quickreply rounded".
  static const IconData quickreply_rounded = IconData(0xf3d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">quickreply</i> &#x2014; material icon named "quickreply sharp".
  static const IconData quickreply_sharp = IconData(0xeeab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">radio</i> &#x2014; material icon named "radio".
  static const IconData radio = IconData(0xe95e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">radio_button_checked</i> &#x2014; material icon named "radio button checked".
  static const IconData radio_button_checked = IconData(0xe95f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">radio_button_checked</i> &#x2014; material icon named "radio button checked outlined".
  static const IconData radio_button_checked_outlined = IconData(0xe3a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">radio_button_checked</i> &#x2014; material icon named "radio button checked rounded".
  static const IconData radio_button_checked_rounded = IconData(0xf3da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">radio_button_checked</i> &#x2014; material icon named "radio button checked sharp".
  static const IconData radio_button_checked_sharp = IconData(0xeeac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">radio_button_off</i> &#x2014; material icon named "radio button off".
  static const IconData radio_button_off = IconData(0xe960, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">radio_button_off</i> &#x2014; material icon named "radio button off outlined".
  static const IconData radio_button_off_outlined = IconData(0xe3a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">radio_button_off</i> &#x2014; material icon named "radio button off rounded".
  static const IconData radio_button_off_rounded = IconData(0xf3db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">radio_button_off</i> &#x2014; material icon named "radio button off sharp".
  static const IconData radio_button_off_sharp = IconData(0xeead, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">radio_button_on</i> &#x2014; material icon named "radio button on".
  static const IconData radio_button_on = IconData(0xe95f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">radio_button_on</i> &#x2014; material icon named "radio button on outlined".
  static const IconData radio_button_on_outlined = IconData(0xe3a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">radio_button_on</i> &#x2014; material icon named "radio button on rounded".
  static const IconData radio_button_on_rounded = IconData(0xf3da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">radio_button_on</i> &#x2014; material icon named "radio button on sharp".
  static const IconData radio_button_on_sharp = IconData(0xeeac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">radio_button_unchecked</i> &#x2014; material icon named "radio button unchecked".
  static const IconData radio_button_unchecked = IconData(0xe960, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">radio_button_unchecked</i> &#x2014; material icon named "radio button unchecked outlined".
  static const IconData radio_button_unchecked_outlined = IconData(0xe3a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">radio_button_unchecked</i> &#x2014; material icon named "radio button unchecked rounded".
  static const IconData radio_button_unchecked_rounded = IconData(0xf3db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">radio_button_unchecked</i> &#x2014; material icon named "radio button unchecked sharp".
  static const IconData radio_button_unchecked_sharp = IconData(0xeead, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">radio</i> &#x2014; material icon named "radio outlined".
  static const IconData radio_outlined = IconData(0xe3a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">radio</i> &#x2014; material icon named "radio rounded".
  static const IconData radio_rounded = IconData(0xf3dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">radio</i> &#x2014; material icon named "radio sharp".
  static const IconData radio_sharp = IconData(0xeeae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">railway_alert</i> &#x2014; material icon named "railway alert".
  static const IconData railway_alert = IconData(0xe961, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">ramen_dining</i> &#x2014; material icon named "ramen dining".
  static const IconData ramen_dining = IconData(0xe962, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rate_review</i> &#x2014; material icon named "rate review".
  static const IconData rate_review = IconData(0xe963, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">rate_review</i> &#x2014; material icon named "rate review outlined".
  static const IconData rate_review_outlined = IconData(0xe3aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rate_review</i> &#x2014; material icon named "rate review rounded".
  static const IconData rate_review_rounded = IconData(0xf3dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rate_review</i> &#x2014; material icon named "rate review sharp".
  static const IconData rate_review_sharp = IconData(0xeeaf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">read_more</i> &#x2014; material icon named "read more".
  static const IconData read_more = IconData(0xe964, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">read_more</i> &#x2014; material icon named "read more outlined".
  static const IconData read_more_outlined = IconData(0xe3ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">read_more</i> &#x2014; material icon named "read more rounded".
  static const IconData read_more_rounded = IconData(0xf3de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">read_more</i> &#x2014; material icon named "read more sharp".
  static const IconData read_more_sharp = IconData(0xeeb0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">receipt</i> &#x2014; material icon named "receipt".
  static const IconData receipt = IconData(0xe965, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">receipt_long</i> &#x2014; material icon named "receipt long".
  static const IconData receipt_long = IconData(0xe966, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">receipt_long</i> &#x2014; material icon named "receipt long outlined".
  static const IconData receipt_long_outlined = IconData(0xe3ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">receipt_long</i> &#x2014; material icon named "receipt long rounded".
  static const IconData receipt_long_rounded = IconData(0xf3df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">receipt_long</i> &#x2014; material icon named "receipt long sharp".
  static const IconData receipt_long_sharp = IconData(0xeeb1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">receipt</i> &#x2014; material icon named "receipt outlined".
  static const IconData receipt_outlined = IconData(0xe3ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">receipt</i> &#x2014; material icon named "receipt rounded".
  static const IconData receipt_rounded = IconData(0xf3e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">receipt</i> &#x2014; material icon named "receipt sharp".
  static const IconData receipt_sharp = IconData(0xeeb2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">recent_actors</i> &#x2014; material icon named "recent actors".
  static const IconData recent_actors = IconData(0xe967, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">recent_actors</i> &#x2014; material icon named "recent actors outlined".
  static const IconData recent_actors_outlined = IconData(0xe3ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">recent_actors</i> &#x2014; material icon named "recent actors rounded".
  static const IconData recent_actors_rounded = IconData(0xf3e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">recent_actors</i> &#x2014; material icon named "recent actors sharp".
  static const IconData recent_actors_sharp = IconData(0xeeb3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">recommend</i> &#x2014; material icon named "recommend".
  static const IconData recommend = IconData(0xe968, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">record_voice_over</i> &#x2014; material icon named "record voice over".
  static const IconData record_voice_over = IconData(0xe969, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">record_voice_over</i> &#x2014; material icon named "record voice over outlined".
  static const IconData record_voice_over_outlined = IconData(0xe3af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">record_voice_over</i> &#x2014; material icon named "record voice over rounded".
  static const IconData record_voice_over_rounded = IconData(0xf3e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">record_voice_over</i> &#x2014; material icon named "record voice over sharp".
  static const IconData record_voice_over_sharp = IconData(0xeeb4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">redeem</i> &#x2014; material icon named "redeem".
  static const IconData redeem = IconData(0xe96a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">redeem</i> &#x2014; material icon named "redeem outlined".
  static const IconData redeem_outlined = IconData(0xe3b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">redeem</i> &#x2014; material icon named "redeem rounded".
  static const IconData redeem_rounded = IconData(0xf3e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">redeem</i> &#x2014; material icon named "redeem sharp".
  static const IconData redeem_sharp = IconData(0xeeb5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">redo</i> &#x2014; material icon named "redo".
  static const IconData redo = IconData(0xe96b, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">redo</i> &#x2014; material icon named "redo outlined".
  static const IconData redo_outlined = IconData(0xe3b1, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">redo</i> &#x2014; material icon named "redo rounded".
  static const IconData redo_rounded = IconData(0xf3e4, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">redo</i> &#x2014; material icon named "redo sharp".
  static const IconData redo_sharp = IconData(0xeeb6, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">reduce_capacity</i> &#x2014; material icon named "reduce capacity".
  static const IconData reduce_capacity = IconData(0xe96c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">reduce_capacity</i> &#x2014; material icon named "reduce capacity outlined".
  static const IconData reduce_capacity_outlined = IconData(0xe3b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">reduce_capacity</i> &#x2014; material icon named "reduce capacity rounded".
  static const IconData reduce_capacity_rounded = IconData(0xf3e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">reduce_capacity</i> &#x2014; material icon named "reduce capacity sharp".
  static const IconData reduce_capacity_sharp = IconData(0xeeb7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">refresh</i> &#x2014; material icon named "refresh".
  static const IconData refresh = IconData(0xe96d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">refresh</i> &#x2014; material icon named "refresh outlined".
  static const IconData refresh_outlined = IconData(0xe3b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">refresh</i> &#x2014; material icon named "refresh rounded".
  static const IconData refresh_rounded = IconData(0xf3e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">refresh</i> &#x2014; material icon named "refresh sharp".
  static const IconData refresh_sharp = IconData(0xeeb8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">remove</i> &#x2014; material icon named "remove".
  static const IconData remove = IconData(0xe96e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">remove_circle</i> &#x2014; material icon named "remove circle".
  static const IconData remove_circle = IconData(0xe96f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">remove_circle_outline</i> &#x2014; material icon named "remove circle outline".
  static const IconData remove_circle_outline = IconData(0xe970, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">remove_circle_outline</i> &#x2014; material icon named "remove circle outline outlined".
  static const IconData remove_circle_outline_outlined = IconData(0xe3b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">remove_circle_outline</i> &#x2014; material icon named "remove circle outline rounded".
  static const IconData remove_circle_outline_rounded = IconData(0xf3e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">remove_circle_outline</i> &#x2014; material icon named "remove circle outline sharp".
  static const IconData remove_circle_outline_sharp = IconData(0xeeb9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">remove_circle</i> &#x2014; material icon named "remove circle outlined".
  static const IconData remove_circle_outlined = IconData(0xe3b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">remove_circle</i> &#x2014; material icon named "remove circle rounded".
  static const IconData remove_circle_rounded = IconData(0xf3e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">remove_circle</i> &#x2014; material icon named "remove circle sharp".
  static const IconData remove_circle_sharp = IconData(0xeeba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">remove_done</i> &#x2014; material icon named "remove done".
  static const IconData remove_done = IconData(0xe971, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">remove_from_queue</i> &#x2014; material icon named "remove from queue".
  static const IconData remove_from_queue = IconData(0xe972, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">remove_from_queue</i> &#x2014; material icon named "remove from queue outlined".
  static const IconData remove_from_queue_outlined = IconData(0xe3b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">remove_from_queue</i> &#x2014; material icon named "remove from queue rounded".
  static const IconData remove_from_queue_rounded = IconData(0xf3e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">remove_from_queue</i> &#x2014; material icon named "remove from queue sharp".
  static const IconData remove_from_queue_sharp = IconData(0xeebb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">remove_moderator</i> &#x2014; material icon named "remove moderator".
  static const IconData remove_moderator = IconData(0xe973, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">remove</i> &#x2014; material icon named "remove outlined".
  static const IconData remove_outlined = IconData(0xe3b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">remove_red_eye</i> &#x2014; material icon named "remove red eye".
  static const IconData remove_red_eye = IconData(0xe974, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">remove_red_eye</i> &#x2014; material icon named "remove red eye outlined".
  static const IconData remove_red_eye_outlined = IconData(0xe3b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">remove_red_eye</i> &#x2014; material icon named "remove red eye rounded".
  static const IconData remove_red_eye_rounded = IconData(0xf3ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">remove_red_eye</i> &#x2014; material icon named "remove red eye sharp".
  static const IconData remove_red_eye_sharp = IconData(0xeebc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">remove</i> &#x2014; material icon named "remove rounded".
  static const IconData remove_rounded = IconData(0xf3eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">remove</i> &#x2014; material icon named "remove sharp".
  static const IconData remove_sharp = IconData(0xeebd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">remove_shopping_cart</i> &#x2014; material icon named "remove shopping cart".
  static const IconData remove_shopping_cart = IconData(0xe975, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">remove_shopping_cart</i> &#x2014; material icon named "remove shopping cart outlined".
  static const IconData remove_shopping_cart_outlined = IconData(0xe3b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">remove_shopping_cart</i> &#x2014; material icon named "remove shopping cart rounded".
  static const IconData remove_shopping_cart_rounded = IconData(0xf3ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">remove_shopping_cart</i> &#x2014; material icon named "remove shopping cart sharp".
  static const IconData remove_shopping_cart_sharp = IconData(0xeebe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">reorder</i> &#x2014; material icon named "reorder".
  static const IconData reorder = IconData(0xe976, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">reorder</i> &#x2014; material icon named "reorder outlined".
  static const IconData reorder_outlined = IconData(0xe3ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">reorder</i> &#x2014; material icon named "reorder rounded".
  static const IconData reorder_rounded = IconData(0xf3ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">reorder</i> &#x2014; material icon named "reorder sharp".
  static const IconData reorder_sharp = IconData(0xeebf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">repeat</i> &#x2014; material icon named "repeat".
  static const IconData repeat = IconData(0xe977, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">repeat_on</i> &#x2014; material icon named "repeat on".
  static const IconData repeat_on = IconData(0xe978, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">repeat_one</i> &#x2014; material icon named "repeat one".
  static const IconData repeat_one = IconData(0xe979, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">repeat_one_on</i> &#x2014; material icon named "repeat one on".
  static const IconData repeat_one_on = IconData(0xe97a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">repeat_one</i> &#x2014; material icon named "repeat one outlined".
  static const IconData repeat_one_outlined = IconData(0xe3bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">repeat_one</i> &#x2014; material icon named "repeat one rounded".
  static const IconData repeat_one_rounded = IconData(0xf3ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">repeat_one</i> &#x2014; material icon named "repeat one sharp".
  static const IconData repeat_one_sharp = IconData(0xeec0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">repeat</i> &#x2014; material icon named "repeat outlined".
  static const IconData repeat_outlined = IconData(0xe3bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">repeat</i> &#x2014; material icon named "repeat rounded".
  static const IconData repeat_rounded = IconData(0xf3ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">repeat</i> &#x2014; material icon named "repeat sharp".
  static const IconData repeat_sharp = IconData(0xeec1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">replay</i> &#x2014; material icon named "replay".
  static const IconData replay = IconData(0xe97b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">replay_10</i> &#x2014; material icon named "replay 10".
  static const IconData replay_10 = IconData(0xe97c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">replay_10</i> &#x2014; material icon named "replay 10 outlined".
  static const IconData replay_10_outlined = IconData(0xe3bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">replay_10</i> &#x2014; material icon named "replay 10 rounded".
  static const IconData replay_10_rounded = IconData(0xf3f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">replay_10</i> &#x2014; material icon named "replay 10 sharp".
  static const IconData replay_10_sharp = IconData(0xeec2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">replay_30</i> &#x2014; material icon named "replay 30".
  static const IconData replay_30 = IconData(0xe97d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">replay_30</i> &#x2014; material icon named "replay 30 outlined".
  static const IconData replay_30_outlined = IconData(0xe3be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">replay_30</i> &#x2014; material icon named "replay 30 rounded".
  static const IconData replay_30_rounded = IconData(0xf3f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">replay_30</i> &#x2014; material icon named "replay 30 sharp".
  static const IconData replay_30_sharp = IconData(0xeec3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">replay_5</i> &#x2014; material icon named "replay 5".
  static const IconData replay_5 = IconData(0xe97e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">replay_5</i> &#x2014; material icon named "replay 5 outlined".
  static const IconData replay_5_outlined = IconData(0xe3bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">replay_5</i> &#x2014; material icon named "replay 5 rounded".
  static const IconData replay_5_rounded = IconData(0xf3f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">replay_5</i> &#x2014; material icon named "replay 5 sharp".
  static const IconData replay_5_sharp = IconData(0xeec4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">replay_circle_filled</i> &#x2014; material icon named "replay circle filled".
  static const IconData replay_circle_filled = IconData(0xe97f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">replay</i> &#x2014; material icon named "replay outlined".
  static const IconData replay_outlined = IconData(0xe3c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">replay</i> &#x2014; material icon named "replay rounded".
  static const IconData replay_rounded = IconData(0xf3f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">replay</i> &#x2014; material icon named "replay sharp".
  static const IconData replay_sharp = IconData(0xeec5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">reply</i> &#x2014; material icon named "reply".
  static const IconData reply = IconData(0xe980, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">reply_all</i> &#x2014; material icon named "reply all".
  static const IconData reply_all = IconData(0xe981, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">reply_all</i> &#x2014; material icon named "reply all outlined".
  static const IconData reply_all_outlined = IconData(0xe3c1, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">reply_all</i> &#x2014; material icon named "reply all rounded".
  static const IconData reply_all_rounded = IconData(0xf3f4, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">reply_all</i> &#x2014; material icon named "reply all sharp".
  static const IconData reply_all_sharp = IconData(0xeec6, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">reply</i> &#x2014; material icon named "reply outlined".
  static const IconData reply_outlined = IconData(0xe3c2, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">reply</i> &#x2014; material icon named "reply rounded".
  static const IconData reply_rounded = IconData(0xf3f5, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">reply</i> &#x2014; material icon named "reply sharp".
  static const IconData reply_sharp = IconData(0xeec7, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">report</i> &#x2014; material icon named "report".
  static const IconData report = IconData(0xe982, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">report_gmailerrorred</i> &#x2014; material icon named "report gmailerrorred outlined".
  static const IconData report_gmailerrorred_outlined = IconData(0xe3c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">report_gmailerrorred</i> &#x2014; material icon named "report gmailerrorred rounded".
  static const IconData report_gmailerrorred_rounded = IconData(0xf3f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">report_gmailerrorred</i> &#x2014; material icon named "report gmailerrorred sharp".
  static const IconData report_gmailerrorred_sharp = IconData(0xeec8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">report_off</i> &#x2014; material icon named "report off".
  static const IconData report_off = IconData(0xe983, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">report_off</i> &#x2014; material icon named "report off outlined".
  static const IconData report_off_outlined = IconData(0xe3c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">report_off</i> &#x2014; material icon named "report off rounded".
  static const IconData report_off_rounded = IconData(0xf3f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">report_off</i> &#x2014; material icon named "report off sharp".
  static const IconData report_off_sharp = IconData(0xeec9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">report</i> &#x2014; material icon named "report outlined".
  static const IconData report_outlined = IconData(0xe3c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">report_problem</i> &#x2014; material icon named "report problem".
  static const IconData report_problem = IconData(0xe984, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">report_problem</i> &#x2014; material icon named "report problem outlined".
  static const IconData report_problem_outlined = IconData(0xe3c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">report_problem</i> &#x2014; material icon named "report problem rounded".
  static const IconData report_problem_rounded = IconData(0xf3f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">report_problem</i> &#x2014; material icon named "report problem sharp".
  static const IconData report_problem_sharp = IconData(0xeeca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">report</i> &#x2014; material icon named "report rounded".
  static const IconData report_rounded = IconData(0xf3f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">report</i> &#x2014; material icon named "report sharp".
  static const IconData report_sharp = IconData(0xeecb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">request_page</i> &#x2014; material icon named "request page".
  static const IconData request_page = IconData(0xe985, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">request_page</i> &#x2014; material icon named "request page outlined".
  static const IconData request_page_outlined = IconData(0xe3c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">request_page</i> &#x2014; material icon named "request page rounded".
  static const IconData request_page_rounded = IconData(0xf3fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">request_page</i> &#x2014; material icon named "request page sharp".
  static const IconData request_page_sharp = IconData(0xeecc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">request_quote</i> &#x2014; material icon named "request quote".
  static const IconData request_quote = IconData(0xe986, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">request_quote</i> &#x2014; material icon named "request quote outlined".
  static const IconData request_quote_outlined = IconData(0xe3c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">request_quote</i> &#x2014; material icon named "request quote rounded".
  static const IconData request_quote_rounded = IconData(0xf3fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">request_quote</i> &#x2014; material icon named "request quote sharp".
  static const IconData request_quote_sharp = IconData(0xeecd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">reset_tv</i> &#x2014; material icon named "reset tv".
  static const IconData reset_tv = IconData(0xe987, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">restaurant</i> &#x2014; material icon named "restaurant".
  static const IconData restaurant = IconData(0xe988, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">restaurant_menu</i> &#x2014; material icon named "restaurant menu".
  static const IconData restaurant_menu = IconData(0xe989, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">restaurant_menu</i> &#x2014; material icon named "restaurant menu outlined".
  static const IconData restaurant_menu_outlined = IconData(0xe3c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">restaurant_menu</i> &#x2014; material icon named "restaurant menu rounded".
  static const IconData restaurant_menu_rounded = IconData(0xf3fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">restaurant_menu</i> &#x2014; material icon named "restaurant menu sharp".
  static const IconData restaurant_menu_sharp = IconData(0xeece, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">restaurant</i> &#x2014; material icon named "restaurant outlined".
  static const IconData restaurant_outlined = IconData(0xe3ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">restaurant</i> &#x2014; material icon named "restaurant rounded".
  static const IconData restaurant_rounded = IconData(0xf3fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">restaurant</i> &#x2014; material icon named "restaurant sharp".
  static const IconData restaurant_sharp = IconData(0xeecf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">restore</i> &#x2014; material icon named "restore".
  static const IconData restore = IconData(0xe98a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">restore_from_trash</i> &#x2014; material icon named "restore from trash".
  static const IconData restore_from_trash = IconData(0xe98b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">restore_from_trash</i> &#x2014; material icon named "restore from trash outlined".
  static const IconData restore_from_trash_outlined = IconData(0xe3cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">restore_from_trash</i> &#x2014; material icon named "restore from trash rounded".
  static const IconData restore_from_trash_rounded = IconData(0xf3fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">restore_from_trash</i> &#x2014; material icon named "restore from trash sharp".
  static const IconData restore_from_trash_sharp = IconData(0xeed0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">restore</i> &#x2014; material icon named "restore outlined".
  static const IconData restore_outlined = IconData(0xe3cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">restore_page</i> &#x2014; material icon named "restore page".
  static const IconData restore_page = IconData(0xe98c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">restore_page</i> &#x2014; material icon named "restore page outlined".
  static const IconData restore_page_outlined = IconData(0xe3cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">restore_page</i> &#x2014; material icon named "restore page rounded".
  static const IconData restore_page_rounded = IconData(0xf3ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">restore_page</i> &#x2014; material icon named "restore page sharp".
  static const IconData restore_page_sharp = IconData(0xeed1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">restore</i> &#x2014; material icon named "restore rounded".
  static const IconData restore_rounded = IconData(0xf400, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">restore</i> &#x2014; material icon named "restore sharp".
  static const IconData restore_sharp = IconData(0xeed2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rice_bowl</i> &#x2014; material icon named "rice bowl".
  static const IconData rice_bowl = IconData(0xe98d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">rice_bowl</i> &#x2014; material icon named "rice bowl outlined".
  static const IconData rice_bowl_outlined = IconData(0xe3ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rice_bowl</i> &#x2014; material icon named "rice bowl rounded".
  static const IconData rice_bowl_rounded = IconData(0xf401, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rice_bowl</i> &#x2014; material icon named "rice bowl sharp".
  static const IconData rice_bowl_sharp = IconData(0xeed3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">ring_volume</i> &#x2014; material icon named "ring volume".
  static const IconData ring_volume = IconData(0xe98e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">ring_volume</i> &#x2014; material icon named "ring volume outlined".
  static const IconData ring_volume_outlined = IconData(0xe3cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">ring_volume</i> &#x2014; material icon named "ring volume rounded".
  static const IconData ring_volume_rounded = IconData(0xf402, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">ring_volume</i> &#x2014; material icon named "ring volume sharp".
  static const IconData ring_volume_sharp = IconData(0xeed4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">roofing</i> &#x2014; material icon named "roofing".
  static const IconData roofing = IconData(0xe98f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">roofing</i> &#x2014; material icon named "roofing outlined".
  static const IconData roofing_outlined = IconData(0xe3d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">roofing</i> &#x2014; material icon named "roofing rounded".
  static const IconData roofing_rounded = IconData(0xf403, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">roofing</i> &#x2014; material icon named "roofing sharp".
  static const IconData roofing_sharp = IconData(0xeed5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">room</i> &#x2014; material icon named "room".
  static const IconData room = IconData(0xe990, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">room</i> &#x2014; material icon named "room outlined".
  static const IconData room_outlined = IconData(0xe3d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">room_preferences</i> &#x2014; material icon named "room preferences".
  static const IconData room_preferences = IconData(0xe991, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">room_preferences</i> &#x2014; material icon named "room preferences outlined".
  static const IconData room_preferences_outlined = IconData(0xe3d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">room_preferences</i> &#x2014; material icon named "room preferences rounded".
  static const IconData room_preferences_rounded = IconData(0xf404, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">room_preferences</i> &#x2014; material icon named "room preferences sharp".
  static const IconData room_preferences_sharp = IconData(0xeed6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">room</i> &#x2014; material icon named "room rounded".
  static const IconData room_rounded = IconData(0xf405, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">room_service</i> &#x2014; material icon named "room service".
  static const IconData room_service = IconData(0xe992, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">room_service</i> &#x2014; material icon named "room service outlined".
  static const IconData room_service_outlined = IconData(0xe3d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">room_service</i> &#x2014; material icon named "room service rounded".
  static const IconData room_service_rounded = IconData(0xf406, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">room_service</i> &#x2014; material icon named "room service sharp".
  static const IconData room_service_sharp = IconData(0xeed7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">room</i> &#x2014; material icon named "room sharp".
  static const IconData room_sharp = IconData(0xeed8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rotate_90_degrees_ccw</i> &#x2014; material icon named "rotate 90 degrees ccw".
  static const IconData rotate_90_degrees_ccw = IconData(0xe993, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">rotate_90_degrees_ccw</i> &#x2014; material icon named "rotate 90 degrees ccw outlined".
  static const IconData rotate_90_degrees_ccw_outlined = IconData(0xe3d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rotate_90_degrees_ccw</i> &#x2014; material icon named "rotate 90 degrees ccw rounded".
  static const IconData rotate_90_degrees_ccw_rounded = IconData(0xf407, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rotate_90_degrees_ccw</i> &#x2014; material icon named "rotate 90 degrees ccw sharp".
  static const IconData rotate_90_degrees_ccw_sharp = IconData(0xeed9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rotate_left</i> &#x2014; material icon named "rotate left".
  static const IconData rotate_left = IconData(0xe994, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">rotate_left</i> &#x2014; material icon named "rotate left outlined".
  static const IconData rotate_left_outlined = IconData(0xe3d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rotate_left</i> &#x2014; material icon named "rotate left rounded".
  static const IconData rotate_left_rounded = IconData(0xf408, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rotate_left</i> &#x2014; material icon named "rotate left sharp".
  static const IconData rotate_left_sharp = IconData(0xeeda, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rotate_right</i> &#x2014; material icon named "rotate right".
  static const IconData rotate_right = IconData(0xe995, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">rotate_right</i> &#x2014; material icon named "rotate right outlined".
  static const IconData rotate_right_outlined = IconData(0xe3d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rotate_right</i> &#x2014; material icon named "rotate right rounded".
  static const IconData rotate_right_rounded = IconData(0xf409, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rotate_right</i> &#x2014; material icon named "rotate right sharp".
  static const IconData rotate_right_sharp = IconData(0xeedb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rounded_corner</i> &#x2014; material icon named "rounded corner".
  static const IconData rounded_corner = IconData(0xe996, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">rounded_corner</i> &#x2014; material icon named "rounded corner outlined".
  static const IconData rounded_corner_outlined = IconData(0xe3d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rounded_corner</i> &#x2014; material icon named "rounded corner rounded".
  static const IconData rounded_corner_rounded = IconData(0xf40a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rounded_corner</i> &#x2014; material icon named "rounded corner sharp".
  static const IconData rounded_corner_sharp = IconData(0xeedc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">router</i> &#x2014; material icon named "router".
  static const IconData router = IconData(0xe997, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">router</i> &#x2014; material icon named "router outlined".
  static const IconData router_outlined = IconData(0xe3d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">router</i> &#x2014; material icon named "router rounded".
  static const IconData router_rounded = IconData(0xf40b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">router</i> &#x2014; material icon named "router sharp".
  static const IconData router_sharp = IconData(0xeedd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rowing</i> &#x2014; material icon named "rowing".
  static const IconData rowing = IconData(0xe998, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">rowing</i> &#x2014; material icon named "rowing outlined".
  static const IconData rowing_outlined = IconData(0xe3d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rowing</i> &#x2014; material icon named "rowing rounded".
  static const IconData rowing_rounded = IconData(0xf40c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rowing</i> &#x2014; material icon named "rowing sharp".
  static const IconData rowing_sharp = IconData(0xeede, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rss_feed</i> &#x2014; material icon named "rss feed".
  static const IconData rss_feed = IconData(0xe999, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">rss_feed</i> &#x2014; material icon named "rss feed outlined".
  static const IconData rss_feed_outlined = IconData(0xe3da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rss_feed</i> &#x2014; material icon named "rss feed rounded".
  static const IconData rss_feed_rounded = IconData(0xf40d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rss_feed</i> &#x2014; material icon named "rss feed sharp".
  static const IconData rss_feed_sharp = IconData(0xeedf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rtt</i> &#x2014; material icon named "rtt".
  static const IconData rtt = IconData(0xe99a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rule</i> &#x2014; material icon named "rule".
  static const IconData rule = IconData(0xe99b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rule_folder</i> &#x2014; material icon named "rule folder".
  static const IconData rule_folder = IconData(0xe99c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">rule_folder</i> &#x2014; material icon named "rule folder outlined".
  static const IconData rule_folder_outlined = IconData(0xe3db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rule_folder</i> &#x2014; material icon named "rule folder rounded".
  static const IconData rule_folder_rounded = IconData(0xf40e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rule_folder</i> &#x2014; material icon named "rule folder sharp".
  static const IconData rule_folder_sharp = IconData(0xeee0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">rule</i> &#x2014; material icon named "rule outlined".
  static const IconData rule_outlined = IconData(0xe3dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rule</i> &#x2014; material icon named "rule rounded".
  static const IconData rule_rounded = IconData(0xf40f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rule</i> &#x2014; material icon named "rule sharp".
  static const IconData rule_sharp = IconData(0xeee1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">run_circle</i> &#x2014; material icon named "run circle".
  static const IconData run_circle = IconData(0xe99d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">run_circle</i> &#x2014; material icon named "run circle outlined".
  static const IconData run_circle_outlined = IconData(0xe3dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">run_circle</i> &#x2014; material icon named "run circle rounded".
  static const IconData run_circle_rounded = IconData(0xf410, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">run_circle</i> &#x2014; material icon named "run circle sharp".
  static const IconData run_circle_sharp = IconData(0xeee2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rv_hookup</i> &#x2014; material icon named "rv hookup".
  static const IconData rv_hookup = IconData(0xe99e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">rv_hookup</i> &#x2014; material icon named "rv hookup outlined".
  static const IconData rv_hookup_outlined = IconData(0xe3de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rv_hookup</i> &#x2014; material icon named "rv hookup rounded".
  static const IconData rv_hookup_rounded = IconData(0xf411, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rv_hookup</i> &#x2014; material icon named "rv hookup sharp".
  static const IconData rv_hookup_sharp = IconData(0xeee3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sanitizer</i> &#x2014; material icon named "sanitizer".
  static const IconData sanitizer = IconData(0xe99f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sanitizer</i> &#x2014; material icon named "sanitizer outlined".
  static const IconData sanitizer_outlined = IconData(0xe3df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sanitizer</i> &#x2014; material icon named "sanitizer rounded".
  static const IconData sanitizer_rounded = IconData(0xf412, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sanitizer</i> &#x2014; material icon named "sanitizer sharp".
  static const IconData sanitizer_sharp = IconData(0xeee4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">satellite</i> &#x2014; material icon named "satellite".
  static const IconData satellite = IconData(0xe9a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">satellite</i> &#x2014; material icon named "satellite outlined".
  static const IconData satellite_outlined = IconData(0xe3e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">satellite</i> &#x2014; material icon named "satellite rounded".
  static const IconData satellite_rounded = IconData(0xf413, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">satellite</i> &#x2014; material icon named "satellite sharp".
  static const IconData satellite_sharp = IconData(0xeee5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">save</i> &#x2014; material icon named "save".
  static const IconData save = IconData(0xe9a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">save_alt</i> &#x2014; material icon named "save alt".
  static const IconData save_alt = IconData(0xe9a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">save_alt</i> &#x2014; material icon named "save alt outlined".
  static const IconData save_alt_outlined = IconData(0xe3e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">save_alt</i> &#x2014; material icon named "save alt rounded".
  static const IconData save_alt_rounded = IconData(0xf414, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">save_alt</i> &#x2014; material icon named "save alt sharp".
  static const IconData save_alt_sharp = IconData(0xeee6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">save</i> &#x2014; material icon named "save outlined".
  static const IconData save_outlined = IconData(0xe3e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">save</i> &#x2014; material icon named "save rounded".
  static const IconData save_rounded = IconData(0xf415, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">save</i> &#x2014; material icon named "save sharp".
  static const IconData save_sharp = IconData(0xeee7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">saved_search</i> &#x2014; material icon named "saved search".
  static const IconData saved_search = IconData(0xe9a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">scanner</i> &#x2014; material icon named "scanner".
  static const IconData scanner = IconData(0xe9a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">scanner</i> &#x2014; material icon named "scanner outlined".
  static const IconData scanner_outlined = IconData(0xe3e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">scanner</i> &#x2014; material icon named "scanner rounded".
  static const IconData scanner_rounded = IconData(0xf416, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">scanner</i> &#x2014; material icon named "scanner sharp".
  static const IconData scanner_sharp = IconData(0xeee8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">scatter_plot</i> &#x2014; material icon named "scatter plot".
  static const IconData scatter_plot = IconData(0xe9a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">scatter_plot</i> &#x2014; material icon named "scatter plot outlined".
  static const IconData scatter_plot_outlined = IconData(0xe3e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">scatter_plot</i> &#x2014; material icon named "scatter plot rounded".
  static const IconData scatter_plot_rounded = IconData(0xf417, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">scatter_plot</i> &#x2014; material icon named "scatter plot sharp".
  static const IconData scatter_plot_sharp = IconData(0xeee9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">schedule</i> &#x2014; material icon named "schedule".
  static const IconData schedule = IconData(0xe9a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">schedule</i> &#x2014; material icon named "schedule outlined".
  static const IconData schedule_outlined = IconData(0xe3e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">schedule</i> &#x2014; material icon named "schedule rounded".
  static const IconData schedule_rounded = IconData(0xf418, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">schedule_send</i> &#x2014; material icon named "schedule send".
  static const IconData schedule_send = IconData(0xe9a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">schedule</i> &#x2014; material icon named "schedule sharp".
  static const IconData schedule_sharp = IconData(0xeeea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">school</i> &#x2014; material icon named "school".
  static const IconData school = IconData(0xe9a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">school</i> &#x2014; material icon named "school outlined".
  static const IconData school_outlined = IconData(0xe3e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">school</i> &#x2014; material icon named "school rounded".
  static const IconData school_rounded = IconData(0xf419, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">school</i> &#x2014; material icon named "school sharp".
  static const IconData school_sharp = IconData(0xeeeb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">science</i> &#x2014; material icon named "science".
  static const IconData science = IconData(0xe9a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">science</i> &#x2014; material icon named "science outlined".
  static const IconData science_outlined = IconData(0xe3e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">science</i> &#x2014; material icon named "science rounded".
  static const IconData science_rounded = IconData(0xf41a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">science</i> &#x2014; material icon named "science sharp".
  static const IconData science_sharp = IconData(0xeeec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">score</i> &#x2014; material icon named "score".
  static const IconData score = IconData(0xe9aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">score</i> &#x2014; material icon named "score outlined".
  static const IconData score_outlined = IconData(0xe3e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">score</i> &#x2014; material icon named "score rounded".
  static const IconData score_rounded = IconData(0xf41b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">score</i> &#x2014; material icon named "score sharp".
  static const IconData score_sharp = IconData(0xeeed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">screen_lock_landscape</i> &#x2014; material icon named "screen lock landscape".
  static const IconData screen_lock_landscape = IconData(0xe9ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">screen_lock_landscape</i> &#x2014; material icon named "screen lock landscape outlined".
  static const IconData screen_lock_landscape_outlined = IconData(0xe3e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">screen_lock_landscape</i> &#x2014; material icon named "screen lock landscape rounded".
  static const IconData screen_lock_landscape_rounded = IconData(0xf41c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">screen_lock_landscape</i> &#x2014; material icon named "screen lock landscape sharp".
  static const IconData screen_lock_landscape_sharp = IconData(0xeeee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">screen_lock_portrait</i> &#x2014; material icon named "screen lock portrait".
  static const IconData screen_lock_portrait = IconData(0xe9ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">screen_lock_portrait</i> &#x2014; material icon named "screen lock portrait outlined".
  static const IconData screen_lock_portrait_outlined = IconData(0xe3ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">screen_lock_portrait</i> &#x2014; material icon named "screen lock portrait rounded".
  static const IconData screen_lock_portrait_rounded = IconData(0xf41d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">screen_lock_portrait</i> &#x2014; material icon named "screen lock portrait sharp".
  static const IconData screen_lock_portrait_sharp = IconData(0xeeef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">screen_lock_rotation</i> &#x2014; material icon named "screen lock rotation".
  static const IconData screen_lock_rotation = IconData(0xe9ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">screen_lock_rotation</i> &#x2014; material icon named "screen lock rotation outlined".
  static const IconData screen_lock_rotation_outlined = IconData(0xe3eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">screen_lock_rotation</i> &#x2014; material icon named "screen lock rotation rounded".
  static const IconData screen_lock_rotation_rounded = IconData(0xf41e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">screen_lock_rotation</i> &#x2014; material icon named "screen lock rotation sharp".
  static const IconData screen_lock_rotation_sharp = IconData(0xeef0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">screen_rotation</i> &#x2014; material icon named "screen rotation".
  static const IconData screen_rotation = IconData(0xe9ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">screen_rotation</i> &#x2014; material icon named "screen rotation outlined".
  static const IconData screen_rotation_outlined = IconData(0xe3ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">screen_rotation</i> &#x2014; material icon named "screen rotation rounded".
  static const IconData screen_rotation_rounded = IconData(0xf41f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">screen_rotation</i> &#x2014; material icon named "screen rotation sharp".
  static const IconData screen_rotation_sharp = IconData(0xeef1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">screen_search_desktop</i> &#x2014; material icon named "screen search desktop".
  static const IconData screen_search_desktop = IconData(0xe9af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">screen_share</i> &#x2014; material icon named "screen share".
  static const IconData screen_share = IconData(0xe9b0, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">screen_share</i> &#x2014; material icon named "screen share outlined".
  static const IconData screen_share_outlined = IconData(0xe3ed, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">screen_share</i> &#x2014; material icon named "screen share rounded".
  static const IconData screen_share_rounded = IconData(0xf420, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">screen_share</i> &#x2014; material icon named "screen share sharp".
  static const IconData screen_share_sharp = IconData(0xeef2, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">sd</i> &#x2014; material icon named "sd".
  static const IconData sd = IconData(0xe9b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sd_card</i> &#x2014; material icon named "sd card".
  static const IconData sd_card = IconData(0xe9b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sd_card_alert</i> &#x2014; material icon named "sd card alert outlined".
  static const IconData sd_card_alert_outlined = IconData(0xe3ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sd_card_alert</i> &#x2014; material icon named "sd card alert rounded".
  static const IconData sd_card_alert_rounded = IconData(0xf421, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sd_card_alert</i> &#x2014; material icon named "sd card alert sharp".
  static const IconData sd_card_alert_sharp = IconData(0xeef3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sd_card</i> &#x2014; material icon named "sd card outlined".
  static const IconData sd_card_outlined = IconData(0xe3ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sd_card</i> &#x2014; material icon named "sd card rounded".
  static const IconData sd_card_rounded = IconData(0xf422, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sd_card</i> &#x2014; material icon named "sd card sharp".
  static const IconData sd_card_sharp = IconData(0xeef4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sd_storage</i> &#x2014; material icon named "sd storage".
  static const IconData sd_storage = IconData(0xe9b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sd_storage</i> &#x2014; material icon named "sd storage outlined".
  static const IconData sd_storage_outlined = IconData(0xe3f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sd_storage</i> &#x2014; material icon named "sd storage rounded".
  static const IconData sd_storage_rounded = IconData(0xf423, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sd_storage</i> &#x2014; material icon named "sd storage sharp".
  static const IconData sd_storage_sharp = IconData(0xeef5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">search</i> &#x2014; material icon named "search".
  static const IconData search = IconData(0xe9b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">search_off</i> &#x2014; material icon named "search off".
  static const IconData search_off = IconData(0xe9b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">search_off</i> &#x2014; material icon named "search off outlined".
  static const IconData search_off_outlined = IconData(0xe3f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">search_off</i> &#x2014; material icon named "search off rounded".
  static const IconData search_off_rounded = IconData(0xf424, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">search_off</i> &#x2014; material icon named "search off sharp".
  static const IconData search_off_sharp = IconData(0xeef6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">search</i> &#x2014; material icon named "search outlined".
  static const IconData search_outlined = IconData(0xe3f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">search</i> &#x2014; material icon named "search rounded".
  static const IconData search_rounded = IconData(0xf425, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">search</i> &#x2014; material icon named "search sharp".
  static const IconData search_sharp = IconData(0xeef7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">security</i> &#x2014; material icon named "security".
  static const IconData security = IconData(0xe9b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">security</i> &#x2014; material icon named "security outlined".
  static const IconData security_outlined = IconData(0xe3f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">security</i> &#x2014; material icon named "security rounded".
  static const IconData security_rounded = IconData(0xf426, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">security</i> &#x2014; material icon named "security sharp".
  static const IconData security_sharp = IconData(0xeef8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">segment</i> &#x2014; material icon named "segment".
  static const IconData segment = IconData(0xe9b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">select_all</i> &#x2014; material icon named "select all".
  static const IconData select_all = IconData(0xe9b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">select_all</i> &#x2014; material icon named "select all outlined".
  static const IconData select_all_outlined = IconData(0xe3f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">select_all</i> &#x2014; material icon named "select all rounded".
  static const IconData select_all_rounded = IconData(0xf427, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">select_all</i> &#x2014; material icon named "select all sharp".
  static const IconData select_all_sharp = IconData(0xeef9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">self_improvement</i> &#x2014; material icon named "self improvement".
  static const IconData self_improvement = IconData(0xe9b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">self_improvement</i> &#x2014; material icon named "self improvement outlined".
  static const IconData self_improvement_outlined = IconData(0xe3f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">self_improvement</i> &#x2014; material icon named "self improvement rounded".
  static const IconData self_improvement_rounded = IconData(0xf428, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">self_improvement</i> &#x2014; material icon named "self improvement sharp".
  static const IconData self_improvement_sharp = IconData(0xeefa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">send</i> &#x2014; material icon named "send".
  static const IconData send = IconData(0xe9ba, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">send_and_archive</i> &#x2014; material icon named "send and archive".
  static const IconData send_and_archive = IconData(0xe9bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">send</i> &#x2014; material icon named "send outlined".
  static const IconData send_outlined = IconData(0xe3f6, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">send</i> &#x2014; material icon named "send rounded".
  static const IconData send_rounded = IconData(0xf429, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">send</i> &#x2014; material icon named "send sharp".
  static const IconData send_sharp = IconData(0xeefb, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">send_to_mobile</i> &#x2014; material icon named "send to mobile".
  static const IconData send_to_mobile = IconData(0xe9bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sensor_door</i> &#x2014; material icon named "sensor door".
  static const IconData sensor_door = IconData(0xe9bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sensor_door</i> &#x2014; material icon named "sensor door outlined".
  static const IconData sensor_door_outlined = IconData(0xe3f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sensor_door</i> &#x2014; material icon named "sensor door rounded".
  static const IconData sensor_door_rounded = IconData(0xf42a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sensor_door</i> &#x2014; material icon named "sensor door sharp".
  static const IconData sensor_door_sharp = IconData(0xeefc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sensor_window</i> &#x2014; material icon named "sensor window".
  static const IconData sensor_window = IconData(0xe9be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sensor_window</i> &#x2014; material icon named "sensor window outlined".
  static const IconData sensor_window_outlined = IconData(0xe3f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sensor_window</i> &#x2014; material icon named "sensor window rounded".
  static const IconData sensor_window_rounded = IconData(0xf42b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sensor_window</i> &#x2014; material icon named "sensor window sharp".
  static const IconData sensor_window_sharp = IconData(0xeefd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sentiment_dissatisfied</i> &#x2014; material icon named "sentiment dissatisfied".
  static const IconData sentiment_dissatisfied = IconData(0xe9bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sentiment_dissatisfied</i> &#x2014; material icon named "sentiment dissatisfied outlined".
  static const IconData sentiment_dissatisfied_outlined = IconData(0xe3f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sentiment_dissatisfied</i> &#x2014; material icon named "sentiment dissatisfied rounded".
  static const IconData sentiment_dissatisfied_rounded = IconData(0xf42c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sentiment_dissatisfied</i> &#x2014; material icon named "sentiment dissatisfied sharp".
  static const IconData sentiment_dissatisfied_sharp = IconData(0xeefe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sentiment_neutral</i> &#x2014; material icon named "sentiment neutral".
  static const IconData sentiment_neutral = IconData(0xe9c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sentiment_neutral</i> &#x2014; material icon named "sentiment neutral outlined".
  static const IconData sentiment_neutral_outlined = IconData(0xe3fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sentiment_neutral</i> &#x2014; material icon named "sentiment neutral rounded".
  static const IconData sentiment_neutral_rounded = IconData(0xf42d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sentiment_satisfied</i> &#x2014; material icon named "sentiment satisfied".
  static const IconData sentiment_satisfied = IconData(0xe9c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sentiment_satisfied_alt</i> &#x2014; material icon named "sentiment satisfied alt".
  static const IconData sentiment_satisfied_alt = IconData(0xe9c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sentiment_satisfied_alt</i> &#x2014; material icon named "sentiment satisfied alt outlined".
  static const IconData sentiment_satisfied_alt_outlined = IconData(0xe3fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sentiment_satisfied_alt</i> &#x2014; material icon named "sentiment satisfied alt rounded".
  static const IconData sentiment_satisfied_alt_rounded = IconData(0xf42e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sentiment_satisfied_alt</i> &#x2014; material icon named "sentiment satisfied alt sharp".
  static const IconData sentiment_satisfied_alt_sharp = IconData(0xeeff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sentiment_satisfied</i> &#x2014; material icon named "sentiment satisfied outlined".
  static const IconData sentiment_satisfied_outlined = IconData(0xe3fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sentiment_satisfied</i> &#x2014; material icon named "sentiment satisfied rounded".
  static const IconData sentiment_satisfied_rounded = IconData(0xf42f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sentiment_satisfied</i> &#x2014; material icon named "sentiment satisfied sharp".
  static const IconData sentiment_satisfied_sharp = IconData(0xef00, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sentiment_very_dissatisfied</i> &#x2014; material icon named "sentiment very dissatisfied".
  static const IconData sentiment_very_dissatisfied = IconData(0xe9c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sentiment_very_dissatisfied</i> &#x2014; material icon named "sentiment very dissatisfied outlined".
  static const IconData sentiment_very_dissatisfied_outlined = IconData(0xe3fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sentiment_very_dissatisfied</i> &#x2014; material icon named "sentiment very dissatisfied rounded".
  static const IconData sentiment_very_dissatisfied_rounded = IconData(0xf430, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sentiment_very_dissatisfied</i> &#x2014; material icon named "sentiment very dissatisfied sharp".
  static const IconData sentiment_very_dissatisfied_sharp = IconData(0xef01, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sentiment_very_satisfied</i> &#x2014; material icon named "sentiment very satisfied".
  static const IconData sentiment_very_satisfied = IconData(0xe9c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sentiment_very_satisfied</i> &#x2014; material icon named "sentiment very satisfied outlined".
  static const IconData sentiment_very_satisfied_outlined = IconData(0xe3fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sentiment_very_satisfied</i> &#x2014; material icon named "sentiment very satisfied rounded".
  static const IconData sentiment_very_satisfied_rounded = IconData(0xf431, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sentiment_very_satisfied</i> &#x2014; material icon named "sentiment very satisfied sharp".
  static const IconData sentiment_very_satisfied_sharp = IconData(0xef02, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">set_meal</i> &#x2014; material icon named "set meal".
  static const IconData set_meal = IconData(0xe9c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">set_meal</i> &#x2014; material icon named "set meal outlined".
  static const IconData set_meal_outlined = IconData(0xe3ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">set_meal</i> &#x2014; material icon named "set meal rounded".
  static const IconData set_meal_rounded = IconData(0xf432, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">set_meal</i> &#x2014; material icon named "set meal sharp".
  static const IconData set_meal_sharp = IconData(0xef03, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings</i> &#x2014; material icon named "settings".
  static const IconData settings = IconData(0xe9c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_applications</i> &#x2014; material icon named "settings applications".
  static const IconData settings_applications = IconData(0xe9c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_applications</i> &#x2014; material icon named "settings applications outlined".
  static const IconData settings_applications_outlined = IconData(0xe400, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_applications</i> &#x2014; material icon named "settings applications rounded".
  static const IconData settings_applications_rounded = IconData(0xf433, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_applications</i> &#x2014; material icon named "settings applications sharp".
  static const IconData settings_applications_sharp = IconData(0xef04, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_backup_restore</i> &#x2014; material icon named "settings backup restore".
  static const IconData settings_backup_restore = IconData(0xe9c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_backup_restore</i> &#x2014; material icon named "settings backup restore outlined".
  static const IconData settings_backup_restore_outlined = IconData(0xe401, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_backup_restore</i> &#x2014; material icon named "settings backup restore rounded".
  static const IconData settings_backup_restore_rounded = IconData(0xf434, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_backup_restore</i> &#x2014; material icon named "settings backup restore sharp".
  static const IconData settings_backup_restore_sharp = IconData(0xef05, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_bluetooth</i> &#x2014; material icon named "settings bluetooth".
  static const IconData settings_bluetooth = IconData(0xe9c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_bluetooth</i> &#x2014; material icon named "settings bluetooth outlined".
  static const IconData settings_bluetooth_outlined = IconData(0xe402, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_bluetooth</i> &#x2014; material icon named "settings bluetooth rounded".
  static const IconData settings_bluetooth_rounded = IconData(0xf435, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_bluetooth</i> &#x2014; material icon named "settings bluetooth sharp".
  static const IconData settings_bluetooth_sharp = IconData(0xef06, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_brightness</i> &#x2014; material icon named "settings brightness".
  static const IconData settings_brightness = IconData(0xe9ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_brightness</i> &#x2014; material icon named "settings brightness outlined".
  static const IconData settings_brightness_outlined = IconData(0xe403, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_brightness</i> &#x2014; material icon named "settings brightness rounded".
  static const IconData settings_brightness_rounded = IconData(0xf436, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_brightness</i> &#x2014; material icon named "settings brightness sharp".
  static const IconData settings_brightness_sharp = IconData(0xef07, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_cell</i> &#x2014; material icon named "settings cell".
  static const IconData settings_cell = IconData(0xe9cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_cell</i> &#x2014; material icon named "settings cell outlined".
  static const IconData settings_cell_outlined = IconData(0xe404, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_cell</i> &#x2014; material icon named "settings cell rounded".
  static const IconData settings_cell_rounded = IconData(0xf437, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_cell</i> &#x2014; material icon named "settings cell sharp".
  static const IconData settings_cell_sharp = IconData(0xef08, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_display</i> &#x2014; material icon named "settings display".
  static const IconData settings_display = IconData(0xe9ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_display</i> &#x2014; material icon named "settings display outlined".
  static const IconData settings_display_outlined = IconData(0xe403, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_display</i> &#x2014; material icon named "settings display rounded".
  static const IconData settings_display_rounded = IconData(0xf436, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_display</i> &#x2014; material icon named "settings display sharp".
  static const IconData settings_display_sharp = IconData(0xef07, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_ethernet</i> &#x2014; material icon named "settings ethernet".
  static const IconData settings_ethernet = IconData(0xe9cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_ethernet</i> &#x2014; material icon named "settings ethernet outlined".
  static const IconData settings_ethernet_outlined = IconData(0xe405, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_ethernet</i> &#x2014; material icon named "settings ethernet rounded".
  static const IconData settings_ethernet_rounded = IconData(0xf438, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_ethernet</i> &#x2014; material icon named "settings ethernet sharp".
  static const IconData settings_ethernet_sharp = IconData(0xef09, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_input_antenna</i> &#x2014; material icon named "settings input antenna".
  static const IconData settings_input_antenna = IconData(0xe9cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_input_antenna</i> &#x2014; material icon named "settings input antenna outlined".
  static const IconData settings_input_antenna_outlined = IconData(0xe406, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_input_antenna</i> &#x2014; material icon named "settings input antenna rounded".
  static const IconData settings_input_antenna_rounded = IconData(0xf439, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_input_antenna</i> &#x2014; material icon named "settings input antenna sharp".
  static const IconData settings_input_antenna_sharp = IconData(0xef0a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_input_component</i> &#x2014; material icon named "settings input component".
  static const IconData settings_input_component = IconData(0xe9ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_input_component</i> &#x2014; material icon named "settings input component outlined".
  static const IconData settings_input_component_outlined = IconData(0xe407, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_input_component</i> &#x2014; material icon named "settings input component rounded".
  static const IconData settings_input_component_rounded = IconData(0xf43a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_input_component</i> &#x2014; material icon named "settings input component sharp".
  static const IconData settings_input_component_sharp = IconData(0xef0b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_input_composite</i> &#x2014; material icon named "settings input composite".
  static const IconData settings_input_composite = IconData(0xe9cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_input_composite</i> &#x2014; material icon named "settings input composite outlined".
  static const IconData settings_input_composite_outlined = IconData(0xe408, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_input_composite</i> &#x2014; material icon named "settings input composite rounded".
  static const IconData settings_input_composite_rounded = IconData(0xf43b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_input_composite</i> &#x2014; material icon named "settings input composite sharp".
  static const IconData settings_input_composite_sharp = IconData(0xef0c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_input_hdmi</i> &#x2014; material icon named "settings input hdmi".
  static const IconData settings_input_hdmi = IconData(0xe9d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_input_hdmi</i> &#x2014; material icon named "settings input hdmi outlined".
  static const IconData settings_input_hdmi_outlined = IconData(0xe409, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_input_hdmi</i> &#x2014; material icon named "settings input hdmi rounded".
  static const IconData settings_input_hdmi_rounded = IconData(0xf43c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_input_hdmi</i> &#x2014; material icon named "settings input hdmi sharp".
  static const IconData settings_input_hdmi_sharp = IconData(0xef0d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_input_svideo</i> &#x2014; material icon named "settings input svideo".
  static const IconData settings_input_svideo = IconData(0xe9d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_input_svideo</i> &#x2014; material icon named "settings input svideo outlined".
  static const IconData settings_input_svideo_outlined = IconData(0xe40a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_input_svideo</i> &#x2014; material icon named "settings input svideo rounded".
  static const IconData settings_input_svideo_rounded = IconData(0xf43d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_input_svideo</i> &#x2014; material icon named "settings input svideo sharp".
  static const IconData settings_input_svideo_sharp = IconData(0xef0e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings</i> &#x2014; material icon named "settings outlined".
  static const IconData settings_outlined = IconData(0xe40b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_overscan</i> &#x2014; material icon named "settings overscan".
  static const IconData settings_overscan = IconData(0xe9d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_overscan</i> &#x2014; material icon named "settings overscan outlined".
  static const IconData settings_overscan_outlined = IconData(0xe40c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_overscan</i> &#x2014; material icon named "settings overscan rounded".
  static const IconData settings_overscan_rounded = IconData(0xf43e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_overscan</i> &#x2014; material icon named "settings overscan sharp".
  static const IconData settings_overscan_sharp = IconData(0xef0f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_phone</i> &#x2014; material icon named "settings phone".
  static const IconData settings_phone = IconData(0xe9d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_phone</i> &#x2014; material icon named "settings phone outlined".
  static const IconData settings_phone_outlined = IconData(0xe40d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_phone</i> &#x2014; material icon named "settings phone rounded".
  static const IconData settings_phone_rounded = IconData(0xf43f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_phone</i> &#x2014; material icon named "settings phone sharp".
  static const IconData settings_phone_sharp = IconData(0xef10, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_power</i> &#x2014; material icon named "settings power".
  static const IconData settings_power = IconData(0xe9d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_power</i> &#x2014; material icon named "settings power outlined".
  static const IconData settings_power_outlined = IconData(0xe40e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_power</i> &#x2014; material icon named "settings power rounded".
  static const IconData settings_power_rounded = IconData(0xf440, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_power</i> &#x2014; material icon named "settings power sharp".
  static const IconData settings_power_sharp = IconData(0xef11, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_remote</i> &#x2014; material icon named "settings remote".
  static const IconData settings_remote = IconData(0xe9d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_remote</i> &#x2014; material icon named "settings remote outlined".
  static const IconData settings_remote_outlined = IconData(0xe40f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_remote</i> &#x2014; material icon named "settings remote rounded".
  static const IconData settings_remote_rounded = IconData(0xf441, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_remote</i> &#x2014; material icon named "settings remote sharp".
  static const IconData settings_remote_sharp = IconData(0xef12, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings</i> &#x2014; material icon named "settings rounded".
  static const IconData settings_rounded = IconData(0xf442, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings</i> &#x2014; material icon named "settings sharp".
  static const IconData settings_sharp = IconData(0xef13, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_system_daydream</i> &#x2014; material icon named "settings system daydream".
  static const IconData settings_system_daydream = IconData(0xe9d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_system_daydream</i> &#x2014; material icon named "settings system daydream outlined".
  static const IconData settings_system_daydream_outlined = IconData(0xe410, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_system_daydream</i> &#x2014; material icon named "settings system daydream rounded".
  static const IconData settings_system_daydream_rounded = IconData(0xf443, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_system_daydream</i> &#x2014; material icon named "settings system daydream sharp".
  static const IconData settings_system_daydream_sharp = IconData(0xef14, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_voice</i> &#x2014; material icon named "settings voice".
  static const IconData settings_voice = IconData(0xe9d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_voice</i> &#x2014; material icon named "settings voice outlined".
  static const IconData settings_voice_outlined = IconData(0xe411, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_voice</i> &#x2014; material icon named "settings voice rounded".
  static const IconData settings_voice_rounded = IconData(0xf444, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_voice</i> &#x2014; material icon named "settings voice sharp".
  static const IconData settings_voice_sharp = IconData(0xef15, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">share</i> &#x2014; material icon named "share".
  static const IconData share = IconData(0xe9d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">share</i> &#x2014; material icon named "share outlined".
  static const IconData share_outlined = IconData(0xe412, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">share</i> &#x2014; material icon named "share rounded".
  static const IconData share_rounded = IconData(0xf445, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">share</i> &#x2014; material icon named "share sharp".
  static const IconData share_sharp = IconData(0xef16, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shield</i> &#x2014; material icon named "shield".
  static const IconData shield = IconData(0xe9d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shop</i> &#x2014; material icon named "shop".
  static const IconData shop = IconData(0xe9da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">shop</i> &#x2014; material icon named "shop outlined".
  static const IconData shop_outlined = IconData(0xe413, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shop</i> &#x2014; material icon named "shop rounded".
  static const IconData shop_rounded = IconData(0xf446, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">shop</i> &#x2014; material icon named "shop sharp".
  static const IconData shop_sharp = IconData(0xef17, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shop_two</i> &#x2014; material icon named "shop two".
  static const IconData shop_two = IconData(0xe9db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">shop_two</i> &#x2014; material icon named "shop two outlined".
  static const IconData shop_two_outlined = IconData(0xe414, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shop_two</i> &#x2014; material icon named "shop two rounded".
  static const IconData shop_two_rounded = IconData(0xf447, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">shop_two</i> &#x2014; material icon named "shop two sharp".
  static const IconData shop_two_sharp = IconData(0xef18, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shopping_bag</i> &#x2014; material icon named "shopping bag".
  static const IconData shopping_bag = IconData(0xe9dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">shopping_bag</i> &#x2014; material icon named "shopping bag outlined".
  static const IconData shopping_bag_outlined = IconData(0xe415, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shopping_bag</i> &#x2014; material icon named "shopping bag rounded".
  static const IconData shopping_bag_rounded = IconData(0xf448, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">shopping_bag</i> &#x2014; material icon named "shopping bag sharp".
  static const IconData shopping_bag_sharp = IconData(0xef19, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shopping_basket</i> &#x2014; material icon named "shopping basket".
  static const IconData shopping_basket = IconData(0xe9dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">shopping_basket</i> &#x2014; material icon named "shopping basket outlined".
  static const IconData shopping_basket_outlined = IconData(0xe416, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shopping_basket</i> &#x2014; material icon named "shopping basket rounded".
  static const IconData shopping_basket_rounded = IconData(0xf449, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">shopping_basket</i> &#x2014; material icon named "shopping basket sharp".
  static const IconData shopping_basket_sharp = IconData(0xef1a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shopping_cart</i> &#x2014; material icon named "shopping cart".
  static const IconData shopping_cart = IconData(0xe9de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">shopping_cart</i> &#x2014; material icon named "shopping cart outlined".
  static const IconData shopping_cart_outlined = IconData(0xe417, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shopping_cart</i> &#x2014; material icon named "shopping cart rounded".
  static const IconData shopping_cart_rounded = IconData(0xf44a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">shopping_cart</i> &#x2014; material icon named "shopping cart sharp".
  static const IconData shopping_cart_sharp = IconData(0xef1b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">short_text</i> &#x2014; material icon named "short text".
  static const IconData short_text = IconData(0xe9df, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">short_text</i> &#x2014; material icon named "short text outlined".
  static const IconData short_text_outlined = IconData(0xe418, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">short_text</i> &#x2014; material icon named "short text rounded".
  static const IconData short_text_rounded = IconData(0xf44b, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">short_text</i> &#x2014; material icon named "short text sharp".
  static const IconData short_text_sharp = IconData(0xef1c, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">show_chart</i> &#x2014; material icon named "show chart".
  static const IconData show_chart = IconData(0xe9e0, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">show_chart</i> &#x2014; material icon named "show chart outlined".
  static const IconData show_chart_outlined = IconData(0xe419, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">show_chart</i> &#x2014; material icon named "show chart rounded".
  static const IconData show_chart_rounded = IconData(0xf44c, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">show_chart</i> &#x2014; material icon named "show chart sharp".
  static const IconData show_chart_sharp = IconData(0xef1d, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">shuffle</i> &#x2014; material icon named "shuffle".
  static const IconData shuffle = IconData(0xe9e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shuffle_on</i> &#x2014; material icon named "shuffle on".
  static const IconData shuffle_on = IconData(0xe9e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">shuffle</i> &#x2014; material icon named "shuffle outlined".
  static const IconData shuffle_outlined = IconData(0xe41a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shuffle</i> &#x2014; material icon named "shuffle rounded".
  static const IconData shuffle_rounded = IconData(0xf44d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">shuffle</i> &#x2014; material icon named "shuffle sharp".
  static const IconData shuffle_sharp = IconData(0xef1e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shutter_speed</i> &#x2014; material icon named "shutter speed".
  static const IconData shutter_speed = IconData(0xe9e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">shutter_speed</i> &#x2014; material icon named "shutter speed outlined".
  static const IconData shutter_speed_outlined = IconData(0xe41b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shutter_speed</i> &#x2014; material icon named "shutter speed rounded".
  static const IconData shutter_speed_rounded = IconData(0xf44e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">shutter_speed</i> &#x2014; material icon named "shutter speed sharp".
  static const IconData shutter_speed_sharp = IconData(0xef1f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sick</i> &#x2014; material icon named "sick".
  static const IconData sick = IconData(0xe9e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sick</i> &#x2014; material icon named "sick outlined".
  static const IconData sick_outlined = IconData(0xe41c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sick</i> &#x2014; material icon named "sick rounded".
  static const IconData sick_rounded = IconData(0xf44f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sick</i> &#x2014; material icon named "sick sharp".
  static const IconData sick_sharp = IconData(0xef20, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">signal_cellular_4_bar</i> &#x2014; material icon named "signal cellular 4 bar".
  static const IconData signal_cellular_4_bar = IconData(0xe9e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">signal_cellular_4_bar</i> &#x2014; material icon named "signal cellular 4 bar outlined".
  static const IconData signal_cellular_4_bar_outlined = IconData(0xe41d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signal_cellular_4_bar</i> &#x2014; material icon named "signal cellular 4 bar rounded".
  static const IconData signal_cellular_4_bar_rounded = IconData(0xf450, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">signal_cellular_4_bar</i> &#x2014; material icon named "signal cellular 4 bar sharp".
  static const IconData signal_cellular_4_bar_sharp = IconData(0xef21, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">signal_cellular_alt</i> &#x2014; material icon named "signal cellular alt".
  static const IconData signal_cellular_alt = IconData(0xe9e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">signal_cellular_alt</i> &#x2014; material icon named "signal cellular alt outlined".
  static const IconData signal_cellular_alt_outlined = IconData(0xe41e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signal_cellular_alt</i> &#x2014; material icon named "signal cellular alt rounded".
  static const IconData signal_cellular_alt_rounded = IconData(0xf451, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">signal_cellular_alt</i> &#x2014; material icon named "signal cellular alt sharp".
  static const IconData signal_cellular_alt_sharp = IconData(0xef22, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">signal_cellular_connected_no_internet_4_bar</i> &#x2014; material icon named "signal cellular connected no internet 4 bar".
  static const IconData signal_cellular_connected_no_internet_4_bar = IconData(0xe9e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">signal_cellular_connected_no_internet_4_bar</i> &#x2014; material icon named "signal cellular connected no internet 4 bar outlined".
  static const IconData signal_cellular_connected_no_internet_4_bar_outlined = IconData(0xe41f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signal_cellular_connected_no_internet_4_bar</i> &#x2014; material icon named "signal cellular connected no internet 4 bar rounded".
  static const IconData signal_cellular_connected_no_internet_4_bar_rounded = IconData(0xf452, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">signal_cellular_connected_no_internet_4_bar</i> &#x2014; material icon named "signal cellular connected no internet 4 bar sharp".
  static const IconData signal_cellular_connected_no_internet_4_bar_sharp = IconData(0xef23, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">signal_cellular_no_sim</i> &#x2014; material icon named "signal cellular no sim".
  static const IconData signal_cellular_no_sim = IconData(0xe9e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">signal_cellular_no_sim</i> &#x2014; material icon named "signal cellular no sim outlined".
  static const IconData signal_cellular_no_sim_outlined = IconData(0xe420, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signal_cellular_no_sim</i> &#x2014; material icon named "signal cellular no sim rounded".
  static const IconData signal_cellular_no_sim_rounded = IconData(0xf453, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">signal_cellular_no_sim</i> &#x2014; material icon named "signal cellular no sim sharp".
  static const IconData signal_cellular_no_sim_sharp = IconData(0xef24, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">signal_cellular_null</i> &#x2014; material icon named "signal cellular null".
  static const IconData signal_cellular_null = IconData(0xe9e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">signal_cellular_null</i> &#x2014; material icon named "signal cellular null outlined".
  static const IconData signal_cellular_null_outlined = IconData(0xe421, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signal_cellular_null</i> &#x2014; material icon named "signal cellular null rounded".
  static const IconData signal_cellular_null_rounded = IconData(0xf454, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">signal_cellular_null</i> &#x2014; material icon named "signal cellular null sharp".
  static const IconData signal_cellular_null_sharp = IconData(0xef25, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">signal_cellular_off</i> &#x2014; material icon named "signal cellular off".
  static const IconData signal_cellular_off = IconData(0xe9ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">signal_cellular_off</i> &#x2014; material icon named "signal cellular off outlined".
  static const IconData signal_cellular_off_outlined = IconData(0xe422, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signal_cellular_off</i> &#x2014; material icon named "signal cellular off rounded".
  static const IconData signal_cellular_off_rounded = IconData(0xf455, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">signal_cellular_off</i> &#x2014; material icon named "signal cellular off sharp".
  static const IconData signal_cellular_off_sharp = IconData(0xef26, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">signal_wifi_4_bar</i> &#x2014; material icon named "signal wifi 4 bar".
  static const IconData signal_wifi_4_bar = IconData(0xe9eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">signal_wifi_4_bar_lock</i> &#x2014; material icon named "signal wifi 4 bar lock".
  static const IconData signal_wifi_4_bar_lock = IconData(0xe9ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">signal_wifi_4_bar_lock</i> &#x2014; material icon named "signal wifi 4 bar lock outlined".
  static const IconData signal_wifi_4_bar_lock_outlined = IconData(0xe423, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signal_wifi_4_bar_lock</i> &#x2014; material icon named "signal wifi 4 bar lock rounded".
  static const IconData signal_wifi_4_bar_lock_rounded = IconData(0xf456, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">signal_wifi_4_bar_lock</i> &#x2014; material icon named "signal wifi 4 bar lock sharp".
  static const IconData signal_wifi_4_bar_lock_sharp = IconData(0xef27, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">signal_wifi_4_bar</i> &#x2014; material icon named "signal wifi 4 bar outlined".
  static const IconData signal_wifi_4_bar_outlined = IconData(0xe424, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signal_wifi_4_bar</i> &#x2014; material icon named "signal wifi 4 bar rounded".
  static const IconData signal_wifi_4_bar_rounded = IconData(0xf457, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">signal_wifi_4_bar</i> &#x2014; material icon named "signal wifi 4 bar sharp".
  static const IconData signal_wifi_4_bar_sharp = IconData(0xef28, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">signal_wifi_off</i> &#x2014; material icon named "signal wifi off".
  static const IconData signal_wifi_off = IconData(0xe9ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">signal_wifi_off</i> &#x2014; material icon named "signal wifi off outlined".
  static const IconData signal_wifi_off_outlined = IconData(0xe425, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signal_wifi_off</i> &#x2014; material icon named "signal wifi off rounded".
  static const IconData signal_wifi_off_rounded = IconData(0xf458, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">signal_wifi_off</i> &#x2014; material icon named "signal wifi off sharp".
  static const IconData signal_wifi_off_sharp = IconData(0xef29, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sim_card</i> &#x2014; material icon named "sim card".
  static const IconData sim_card = IconData(0xe9ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sim_card_alert</i> &#x2014; material icon named "sim card alert".
  static const IconData sim_card_alert = IconData(0xe9ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sim_card</i> &#x2014; material icon named "sim card outlined".
  static const IconData sim_card_outlined = IconData(0xe426, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sim_card</i> &#x2014; material icon named "sim card rounded".
  static const IconData sim_card_rounded = IconData(0xf459, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sim_card</i> &#x2014; material icon named "sim card sharp".
  static const IconData sim_card_sharp = IconData(0xef2a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">single_bed</i> &#x2014; material icon named "single bed".
  static const IconData single_bed = IconData(0xe9f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">single_bed</i> &#x2014; material icon named "single bed outlined".
  static const IconData single_bed_outlined = IconData(0xe427, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">single_bed</i> &#x2014; material icon named "single bed rounded".
  static const IconData single_bed_rounded = IconData(0xf45a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">single_bed</i> &#x2014; material icon named "single bed sharp".
  static const IconData single_bed_sharp = IconData(0xef2b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">skip_next</i> &#x2014; material icon named "skip next".
  static const IconData skip_next = IconData(0xe9f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">skip_next</i> &#x2014; material icon named "skip next outlined".
  static const IconData skip_next_outlined = IconData(0xe428, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">skip_next</i> &#x2014; material icon named "skip next rounded".
  static const IconData skip_next_rounded = IconData(0xf45b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">skip_next</i> &#x2014; material icon named "skip next sharp".
  static const IconData skip_next_sharp = IconData(0xef2c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">skip_previous</i> &#x2014; material icon named "skip previous".
  static const IconData skip_previous = IconData(0xe9f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">skip_previous</i> &#x2014; material icon named "skip previous outlined".
  static const IconData skip_previous_outlined = IconData(0xe429, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">skip_previous</i> &#x2014; material icon named "skip previous rounded".
  static const IconData skip_previous_rounded = IconData(0xf45c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">skip_previous</i> &#x2014; material icon named "skip previous sharp".
  static const IconData skip_previous_sharp = IconData(0xef2d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">slideshow</i> &#x2014; material icon named "slideshow".
  static const IconData slideshow = IconData(0xe9f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">slideshow</i> &#x2014; material icon named "slideshow outlined".
  static const IconData slideshow_outlined = IconData(0xe42a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">slideshow</i> &#x2014; material icon named "slideshow rounded".
  static const IconData slideshow_rounded = IconData(0xf45d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">slideshow</i> &#x2014; material icon named "slideshow sharp".
  static const IconData slideshow_sharp = IconData(0xef2e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">slow_motion_video</i> &#x2014; material icon named "slow motion video".
  static const IconData slow_motion_video = IconData(0xe9f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">slow_motion_video</i> &#x2014; material icon named "slow motion video outlined".
  static const IconData slow_motion_video_outlined = IconData(0xe42b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">slow_motion_video</i> &#x2014; material icon named "slow motion video rounded".
  static const IconData slow_motion_video_rounded = IconData(0xf45e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">slow_motion_video</i> &#x2014; material icon named "slow motion video sharp".
  static const IconData slow_motion_video_sharp = IconData(0xef2f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">smart_button</i> &#x2014; material icon named "smart button".
  static const IconData smart_button = IconData(0xe9f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">smart_button</i> &#x2014; material icon named "smart button outlined".
  static const IconData smart_button_outlined = IconData(0xe42c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">smart_button</i> &#x2014; material icon named "smart button rounded".
  static const IconData smart_button_rounded = IconData(0xf45f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">smart_button</i> &#x2014; material icon named "smart button sharp".
  static const IconData smart_button_sharp = IconData(0xef30, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">smartphone</i> &#x2014; material icon named "smartphone".
  static const IconData smartphone = IconData(0xe9f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">smartphone</i> &#x2014; material icon named "smartphone outlined".
  static const IconData smartphone_outlined = IconData(0xe42d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">smartphone</i> &#x2014; material icon named "smartphone rounded".
  static const IconData smartphone_rounded = IconData(0xf460, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">smartphone</i> &#x2014; material icon named "smartphone sharp".
  static const IconData smartphone_sharp = IconData(0xef31, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">smoke_free</i> &#x2014; material icon named "smoke free".
  static const IconData smoke_free = IconData(0xe9f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">smoke_free</i> &#x2014; material icon named "smoke free outlined".
  static const IconData smoke_free_outlined = IconData(0xe42e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">smoke_free</i> &#x2014; material icon named "smoke free rounded".
  static const IconData smoke_free_rounded = IconData(0xf461, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">smoke_free</i> &#x2014; material icon named "smoke free sharp".
  static const IconData smoke_free_sharp = IconData(0xef32, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">smoking_rooms</i> &#x2014; material icon named "smoking rooms".
  static const IconData smoking_rooms = IconData(0xe9f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">smoking_rooms</i> &#x2014; material icon named "smoking rooms outlined".
  static const IconData smoking_rooms_outlined = IconData(0xe42f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">smoking_rooms</i> &#x2014; material icon named "smoking rooms rounded".
  static const IconData smoking_rooms_rounded = IconData(0xf462, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">smoking_rooms</i> &#x2014; material icon named "smoking rooms sharp".
  static const IconData smoking_rooms_sharp = IconData(0xef33, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sms</i> &#x2014; material icon named "sms".
  static const IconData sms = IconData(0xe9f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sms_failed</i> &#x2014; material icon named "sms failed".
  static const IconData sms_failed = IconData(0xe9fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sms_failed</i> &#x2014; material icon named "sms failed outlined".
  static const IconData sms_failed_outlined = IconData(0xe430, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sms_failed</i> &#x2014; material icon named "sms failed rounded".
  static const IconData sms_failed_rounded = IconData(0xf463, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sms_failed</i> &#x2014; material icon named "sms failed sharp".
  static const IconData sms_failed_sharp = IconData(0xef34, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sms</i> &#x2014; material icon named "sms outlined".
  static const IconData sms_outlined = IconData(0xe431, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sms</i> &#x2014; material icon named "sms rounded".
  static const IconData sms_rounded = IconData(0xf464, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sms</i> &#x2014; material icon named "sms sharp".
  static const IconData sms_sharp = IconData(0xef35, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">snippet_folder</i> &#x2014; material icon named "snippet folder".
  static const IconData snippet_folder = IconData(0xe9fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">snippet_folder</i> &#x2014; material icon named "snippet folder outlined".
  static const IconData snippet_folder_outlined = IconData(0xe432, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">snippet_folder</i> &#x2014; material icon named "snippet folder rounded".
  static const IconData snippet_folder_rounded = IconData(0xf465, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">snippet_folder</i> &#x2014; material icon named "snippet folder sharp".
  static const IconData snippet_folder_sharp = IconData(0xef36, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">snooze</i> &#x2014; material icon named "snooze".
  static const IconData snooze = IconData(0xe9fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">snooze</i> &#x2014; material icon named "snooze outlined".
  static const IconData snooze_outlined = IconData(0xe433, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">snooze</i> &#x2014; material icon named "snooze rounded".
  static const IconData snooze_rounded = IconData(0xf466, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">snooze</i> &#x2014; material icon named "snooze sharp".
  static const IconData snooze_sharp = IconData(0xef37, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">soap</i> &#x2014; material icon named "soap".
  static const IconData soap = IconData(0xe9fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">soap</i> &#x2014; material icon named "soap outlined".
  static const IconData soap_outlined = IconData(0xe434, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">soap</i> &#x2014; material icon named "soap rounded".
  static const IconData soap_rounded = IconData(0xf467, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">soap</i> &#x2014; material icon named "soap sharp".
  static const IconData soap_sharp = IconData(0xef38, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sort</i> &#x2014; material icon named "sort".
  static const IconData sort = IconData(0xe9fe, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">sort_by_alpha</i> &#x2014; material icon named "sort by alpha".
  static const IconData sort_by_alpha = IconData(0xe9ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sort_by_alpha</i> &#x2014; material icon named "sort by alpha outlined".
  static const IconData sort_by_alpha_outlined = IconData(0xe435, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sort_by_alpha</i> &#x2014; material icon named "sort by alpha rounded".
  static const IconData sort_by_alpha_rounded = IconData(0xf468, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sort_by_alpha</i> &#x2014; material icon named "sort by alpha sharp".
  static const IconData sort_by_alpha_sharp = IconData(0xef39, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sort</i> &#x2014; material icon named "sort outlined".
  static const IconData sort_outlined = IconData(0xe436, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">sort</i> &#x2014; material icon named "sort rounded".
  static const IconData sort_rounded = IconData(0xf469, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">sort</i> &#x2014; material icon named "sort sharp".
  static const IconData sort_sharp = IconData(0xef3a, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">source</i> &#x2014; material icon named "source".
  static const IconData source = IconData(0xea00, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">source</i> &#x2014; material icon named "source outlined".
  static const IconData source_outlined = IconData(0xe437, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">source</i> &#x2014; material icon named "source rounded".
  static const IconData source_rounded = IconData(0xf46a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">source</i> &#x2014; material icon named "source sharp".
  static const IconData source_sharp = IconData(0xef3b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">south</i> &#x2014; material icon named "south".
  static const IconData south = IconData(0xea01, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">south_east</i> &#x2014; material icon named "south east".
  static const IconData south_east = IconData(0xea02, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">south_east</i> &#x2014; material icon named "south east outlined".
  static const IconData south_east_outlined = IconData(0xe438, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">south_east</i> &#x2014; material icon named "south east rounded".
  static const IconData south_east_rounded = IconData(0xf46b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">south_east</i> &#x2014; material icon named "south east sharp".
  static const IconData south_east_sharp = IconData(0xef3c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">south</i> &#x2014; material icon named "south outlined".
  static const IconData south_outlined = IconData(0xe439, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">south</i> &#x2014; material icon named "south rounded".
  static const IconData south_rounded = IconData(0xf46c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">south</i> &#x2014; material icon named "south sharp".
  static const IconData south_sharp = IconData(0xef3d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">south_west</i> &#x2014; material icon named "south west".
  static const IconData south_west = IconData(0xea03, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">south_west</i> &#x2014; material icon named "south west outlined".
  static const IconData south_west_outlined = IconData(0xe43a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">south_west</i> &#x2014; material icon named "south west rounded".
  static const IconData south_west_rounded = IconData(0xf46d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">south_west</i> &#x2014; material icon named "south west sharp".
  static const IconData south_west_sharp = IconData(0xef3e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">spa</i> &#x2014; material icon named "spa".
  static const IconData spa = IconData(0xea04, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">spa</i> &#x2014; material icon named "spa outlined".
  static const IconData spa_outlined = IconData(0xe43b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">spa</i> &#x2014; material icon named "spa rounded".
  static const IconData spa_rounded = IconData(0xf46e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">spa</i> &#x2014; material icon named "spa sharp".
  static const IconData spa_sharp = IconData(0xef3f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">space_bar</i> &#x2014; material icon named "space bar".
  static const IconData space_bar = IconData(0xea05, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">space_bar</i> &#x2014; material icon named "space bar outlined".
  static const IconData space_bar_outlined = IconData(0xe43c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">space_bar</i> &#x2014; material icon named "space bar rounded".
  static const IconData space_bar_rounded = IconData(0xf46f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">space_bar</i> &#x2014; material icon named "space bar sharp".
  static const IconData space_bar_sharp = IconData(0xef40, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">speaker</i> &#x2014; material icon named "speaker".
  static const IconData speaker = IconData(0xea06, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">speaker_group</i> &#x2014; material icon named "speaker group".
  static const IconData speaker_group = IconData(0xea07, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">speaker_group</i> &#x2014; material icon named "speaker group outlined".
  static const IconData speaker_group_outlined = IconData(0xe43d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">speaker_group</i> &#x2014; material icon named "speaker group rounded".
  static const IconData speaker_group_rounded = IconData(0xf470, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">speaker_group</i> &#x2014; material icon named "speaker group sharp".
  static const IconData speaker_group_sharp = IconData(0xef41, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">speaker_notes</i> &#x2014; material icon named "speaker notes".
  static const IconData speaker_notes = IconData(0xea08, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">speaker_notes_off</i> &#x2014; material icon named "speaker notes off".
  static const IconData speaker_notes_off = IconData(0xea09, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">speaker_notes_off</i> &#x2014; material icon named "speaker notes off outlined".
  static const IconData speaker_notes_off_outlined = IconData(0xe43e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">speaker_notes_off</i> &#x2014; material icon named "speaker notes off rounded".
  static const IconData speaker_notes_off_rounded = IconData(0xf471, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">speaker_notes_off</i> &#x2014; material icon named "speaker notes off sharp".
  static const IconData speaker_notes_off_sharp = IconData(0xef42, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">speaker_notes</i> &#x2014; material icon named "speaker notes outlined".
  static const IconData speaker_notes_outlined = IconData(0xe43f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">speaker_notes</i> &#x2014; material icon named "speaker notes rounded".
  static const IconData speaker_notes_rounded = IconData(0xf472, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">speaker_notes</i> &#x2014; material icon named "speaker notes sharp".
  static const IconData speaker_notes_sharp = IconData(0xef43, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">speaker</i> &#x2014; material icon named "speaker outlined".
  static const IconData speaker_outlined = IconData(0xe440, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">speaker_phone</i> &#x2014; material icon named "speaker phone".
  static const IconData speaker_phone = IconData(0xea0a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">speaker_phone</i> &#x2014; material icon named "speaker phone outlined".
  static const IconData speaker_phone_outlined = IconData(0xe441, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">speaker_phone</i> &#x2014; material icon named "speaker phone rounded".
  static const IconData speaker_phone_rounded = IconData(0xf473, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">speaker_phone</i> &#x2014; material icon named "speaker phone sharp".
  static const IconData speaker_phone_sharp = IconData(0xef44, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">speaker</i> &#x2014; material icon named "speaker rounded".
  static const IconData speaker_rounded = IconData(0xf474, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">speaker</i> &#x2014; material icon named "speaker sharp".
  static const IconData speaker_sharp = IconData(0xef45, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">speed</i> &#x2014; material icon named "speed".
  static const IconData speed = IconData(0xea0b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">speed</i> &#x2014; material icon named "speed outlined".
  static const IconData speed_outlined = IconData(0xe442, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">speed</i> &#x2014; material icon named "speed rounded".
  static const IconData speed_rounded = IconData(0xf475, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">speed</i> &#x2014; material icon named "speed sharp".
  static const IconData speed_sharp = IconData(0xef46, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">spellcheck</i> &#x2014; material icon named "spellcheck".
  static const IconData spellcheck = IconData(0xea0c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">spellcheck</i> &#x2014; material icon named "spellcheck outlined".
  static const IconData spellcheck_outlined = IconData(0xe443, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">spellcheck</i> &#x2014; material icon named "spellcheck rounded".
  static const IconData spellcheck_rounded = IconData(0xf476, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">spellcheck</i> &#x2014; material icon named "spellcheck sharp".
  static const IconData spellcheck_sharp = IconData(0xef47, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports</i> &#x2014; material icon named "sports".
  static const IconData sports = IconData(0xea0d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_bar</i> &#x2014; material icon named "sports bar".
  static const IconData sports_bar = IconData(0xea0e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports_bar</i> &#x2014; material icon named "sports bar outlined".
  static const IconData sports_bar_outlined = IconData(0xe444, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_bar</i> &#x2014; material icon named "sports bar rounded".
  static const IconData sports_bar_rounded = IconData(0xf477, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_bar</i> &#x2014; material icon named "sports bar sharp".
  static const IconData sports_bar_sharp = IconData(0xef48, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_baseball</i> &#x2014; material icon named "sports baseball".
  static const IconData sports_baseball = IconData(0xea0f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports_baseball</i> &#x2014; material icon named "sports baseball outlined".
  static const IconData sports_baseball_outlined = IconData(0xe445, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_baseball</i> &#x2014; material icon named "sports baseball rounded".
  static const IconData sports_baseball_rounded = IconData(0xf478, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_baseball</i> &#x2014; material icon named "sports baseball sharp".
  static const IconData sports_baseball_sharp = IconData(0xef49, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_basketball</i> &#x2014; material icon named "sports basketball".
  static const IconData sports_basketball = IconData(0xea10, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports_basketball</i> &#x2014; material icon named "sports basketball outlined".
  static const IconData sports_basketball_outlined = IconData(0xe446, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_basketball</i> &#x2014; material icon named "sports basketball rounded".
  static const IconData sports_basketball_rounded = IconData(0xf479, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_basketball</i> &#x2014; material icon named "sports basketball sharp".
  static const IconData sports_basketball_sharp = IconData(0xef4a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_cricket</i> &#x2014; material icon named "sports cricket".
  static const IconData sports_cricket = IconData(0xea11, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports_cricket</i> &#x2014; material icon named "sports cricket outlined".
  static const IconData sports_cricket_outlined = IconData(0xe447, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_cricket</i> &#x2014; material icon named "sports cricket rounded".
  static const IconData sports_cricket_rounded = IconData(0xf47a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_cricket</i> &#x2014; material icon named "sports cricket sharp".
  static const IconData sports_cricket_sharp = IconData(0xef4b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_esports</i> &#x2014; material icon named "sports esports".
  static const IconData sports_esports = IconData(0xea12, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports_esports</i> &#x2014; material icon named "sports esports outlined".
  static const IconData sports_esports_outlined = IconData(0xe448, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_esports</i> &#x2014; material icon named "sports esports rounded".
  static const IconData sports_esports_rounded = IconData(0xf47b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_esports</i> &#x2014; material icon named "sports esports sharp".
  static const IconData sports_esports_sharp = IconData(0xef4c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_football</i> &#x2014; material icon named "sports football".
  static const IconData sports_football = IconData(0xea13, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports_football</i> &#x2014; material icon named "sports football outlined".
  static const IconData sports_football_outlined = IconData(0xe449, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_football</i> &#x2014; material icon named "sports football rounded".
  static const IconData sports_football_rounded = IconData(0xf47c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_football</i> &#x2014; material icon named "sports football sharp".
  static const IconData sports_football_sharp = IconData(0xef4d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_golf</i> &#x2014; material icon named "sports golf".
  static const IconData sports_golf = IconData(0xea14, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports_golf</i> &#x2014; material icon named "sports golf outlined".
  static const IconData sports_golf_outlined = IconData(0xe44a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_golf</i> &#x2014; material icon named "sports golf rounded".
  static const IconData sports_golf_rounded = IconData(0xf47d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_golf</i> &#x2014; material icon named "sports golf sharp".
  static const IconData sports_golf_sharp = IconData(0xef4e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_handball</i> &#x2014; material icon named "sports handball".
  static const IconData sports_handball = IconData(0xea15, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports_handball</i> &#x2014; material icon named "sports handball outlined".
  static const IconData sports_handball_outlined = IconData(0xe44b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_handball</i> &#x2014; material icon named "sports handball rounded".
  static const IconData sports_handball_rounded = IconData(0xf47e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_handball</i> &#x2014; material icon named "sports handball sharp".
  static const IconData sports_handball_sharp = IconData(0xef4f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_hockey</i> &#x2014; material icon named "sports hockey".
  static const IconData sports_hockey = IconData(0xea16, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports_hockey</i> &#x2014; material icon named "sports hockey outlined".
  static const IconData sports_hockey_outlined = IconData(0xe44c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_hockey</i> &#x2014; material icon named "sports hockey rounded".
  static const IconData sports_hockey_rounded = IconData(0xf47f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_hockey</i> &#x2014; material icon named "sports hockey sharp".
  static const IconData sports_hockey_sharp = IconData(0xef50, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_kabaddi</i> &#x2014; material icon named "sports kabaddi".
  static const IconData sports_kabaddi = IconData(0xea17, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports_kabaddi</i> &#x2014; material icon named "sports kabaddi outlined".
  static const IconData sports_kabaddi_outlined = IconData(0xe44d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_kabaddi</i> &#x2014; material icon named "sports kabaddi rounded".
  static const IconData sports_kabaddi_rounded = IconData(0xf480, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_kabaddi</i> &#x2014; material icon named "sports kabaddi sharp".
  static const IconData sports_kabaddi_sharp = IconData(0xef51, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_mma</i> &#x2014; material icon named "sports mma".
  static const IconData sports_mma = IconData(0xea18, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports_mma</i> &#x2014; material icon named "sports mma outlined".
  static const IconData sports_mma_outlined = IconData(0xe44e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_mma</i> &#x2014; material icon named "sports mma rounded".
  static const IconData sports_mma_rounded = IconData(0xf481, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_mma</i> &#x2014; material icon named "sports mma sharp".
  static const IconData sports_mma_sharp = IconData(0xef52, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_motorsports</i> &#x2014; material icon named "sports motorsports".
  static const IconData sports_motorsports = IconData(0xea19, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports_motorsports</i> &#x2014; material icon named "sports motorsports outlined".
  static const IconData sports_motorsports_outlined = IconData(0xe44f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_motorsports</i> &#x2014; material icon named "sports motorsports rounded".
  static const IconData sports_motorsports_rounded = IconData(0xf482, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_motorsports</i> &#x2014; material icon named "sports motorsports sharp".
  static const IconData sports_motorsports_sharp = IconData(0xef53, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports</i> &#x2014; material icon named "sports outlined".
  static const IconData sports_outlined = IconData(0xe450, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports</i> &#x2014; material icon named "sports rounded".
  static const IconData sports_rounded = IconData(0xf483, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_rugby</i> &#x2014; material icon named "sports rugby".
  static const IconData sports_rugby = IconData(0xea1a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports_rugby</i> &#x2014; material icon named "sports rugby outlined".
  static const IconData sports_rugby_outlined = IconData(0xe451, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_rugby</i> &#x2014; material icon named "sports rugby rounded".
  static const IconData sports_rugby_rounded = IconData(0xf484, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_rugby</i> &#x2014; material icon named "sports rugby sharp".
  static const IconData sports_rugby_sharp = IconData(0xef54, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports</i> &#x2014; material icon named "sports sharp".
  static const IconData sports_sharp = IconData(0xef55, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_soccer</i> &#x2014; material icon named "sports soccer".
  static const IconData sports_soccer = IconData(0xea1b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports_soccer</i> &#x2014; material icon named "sports soccer outlined".
  static const IconData sports_soccer_outlined = IconData(0xe452, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_soccer</i> &#x2014; material icon named "sports soccer rounded".
  static const IconData sports_soccer_rounded = IconData(0xf485, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_soccer</i> &#x2014; material icon named "sports soccer sharp".
  static const IconData sports_soccer_sharp = IconData(0xef56, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_tennis</i> &#x2014; material icon named "sports tennis".
  static const IconData sports_tennis = IconData(0xea1c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports_tennis</i> &#x2014; material icon named "sports tennis outlined".
  static const IconData sports_tennis_outlined = IconData(0xe453, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_tennis</i> &#x2014; material icon named "sports tennis rounded".
  static const IconData sports_tennis_rounded = IconData(0xf486, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_tennis</i> &#x2014; material icon named "sports tennis sharp".
  static const IconData sports_tennis_sharp = IconData(0xef57, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_volleyball</i> &#x2014; material icon named "sports volleyball".
  static const IconData sports_volleyball = IconData(0xea1d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports_volleyball</i> &#x2014; material icon named "sports volleyball outlined".
  static const IconData sports_volleyball_outlined = IconData(0xe454, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_volleyball</i> &#x2014; material icon named "sports volleyball rounded".
  static const IconData sports_volleyball_rounded = IconData(0xf487, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_volleyball</i> &#x2014; material icon named "sports volleyball sharp".
  static const IconData sports_volleyball_sharp = IconData(0xef58, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">square_foot</i> &#x2014; material icon named "square foot".
  static const IconData square_foot = IconData(0xea1e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">square_foot</i> &#x2014; material icon named "square foot outlined".
  static const IconData square_foot_outlined = IconData(0xe455, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">square_foot</i> &#x2014; material icon named "square foot rounded".
  static const IconData square_foot_rounded = IconData(0xf488, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">square_foot</i> &#x2014; material icon named "square foot sharp".
  static const IconData square_foot_sharp = IconData(0xef59, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stacked_bar_chart</i> &#x2014; material icon named "stacked bar chart".
  static const IconData stacked_bar_chart = IconData(0xea1f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stacked_line_chart</i> &#x2014; material icon named "stacked line chart".
  static const IconData stacked_line_chart = IconData(0xea20, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">stacked_line_chart</i> &#x2014; material icon named "stacked line chart outlined".
  static const IconData stacked_line_chart_outlined = IconData(0xe456, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stacked_line_chart</i> &#x2014; material icon named "stacked line chart rounded".
  static const IconData stacked_line_chart_rounded = IconData(0xf489, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">stacked_line_chart</i> &#x2014; material icon named "stacked line chart sharp".
  static const IconData stacked_line_chart_sharp = IconData(0xef5a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stairs</i> &#x2014; material icon named "stairs".
  static const IconData stairs = IconData(0xea21, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">stairs</i> &#x2014; material icon named "stairs outlined".
  static const IconData stairs_outlined = IconData(0xe457, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stairs</i> &#x2014; material icon named "stairs rounded".
  static const IconData stairs_rounded = IconData(0xf48a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">stairs</i> &#x2014; material icon named "stairs sharp".
  static const IconData stairs_sharp = IconData(0xef5b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">star</i> &#x2014; material icon named "star".
  static const IconData star = IconData(0xea22, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">star_border</i> &#x2014; material icon named "star border".
  static const IconData star_border = IconData(0xea23, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">star_border</i> &#x2014; material icon named "star border outlined".
  static const IconData star_border_outlined = IconData(0xe458, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">star_border_purple500</i> &#x2014; material icon named "star border purple500 outlined".
  static const IconData star_border_purple500_outlined = IconData(0xe459, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">star_border_purple500</i> &#x2014; material icon named "star border purple500 sharp".
  static const IconData star_border_purple500_sharp = IconData(0xef5c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">star_border</i> &#x2014; material icon named "star border rounded".
  static const IconData star_border_rounded = IconData(0xf48b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">star_border</i> &#x2014; material icon named "star border sharp".
  static const IconData star_border_sharp = IconData(0xef5d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">star_half</i> &#x2014; material icon named "star half".
  static const IconData star_half = IconData(0xea24, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">star_half</i> &#x2014; material icon named "star half outlined".
  static const IconData star_half_outlined = IconData(0xe45a, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">star_half</i> &#x2014; material icon named "star half rounded".
  static const IconData star_half_rounded = IconData(0xf48c, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">star_half</i> &#x2014; material icon named "star half sharp".
  static const IconData star_half_sharp = IconData(0xef5e, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">star_outline</i> &#x2014; material icon named "star outline".
  static const IconData star_outline = IconData(0xea25, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">star_outline</i> &#x2014; material icon named "star outline outlined".
  static const IconData star_outline_outlined = IconData(0xe45b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">star_outline</i> &#x2014; material icon named "star outline rounded".
  static const IconData star_outline_rounded = IconData(0xf48d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">star_outline</i> &#x2014; material icon named "star outline sharp".
  static const IconData star_outline_sharp = IconData(0xef5f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">star</i> &#x2014; material icon named "star outlined".
  static const IconData star_outlined = IconData(0xe45c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">star_purple500</i> &#x2014; material icon named "star purple500 outlined".
  static const IconData star_purple500_outlined = IconData(0xe45d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">star_purple500</i> &#x2014; material icon named "star purple500 sharp".
  static const IconData star_purple500_sharp = IconData(0xef60, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">star_rate</i> &#x2014; material icon named "star rate".
  static const IconData star_rate = IconData(0xea26, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">star_rate</i> &#x2014; material icon named "star rate outlined".
  static const IconData star_rate_outlined = IconData(0xe45e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">star_rate</i> &#x2014; material icon named "star rate rounded".
  static const IconData star_rate_rounded = IconData(0xf48e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">star_rate</i> &#x2014; material icon named "star rate sharp".
  static const IconData star_rate_sharp = IconData(0xef61, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">star</i> &#x2014; material icon named "star rounded".
  static const IconData star_rounded = IconData(0xf48f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">star</i> &#x2014; material icon named "star sharp".
  static const IconData star_sharp = IconData(0xef62, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stars</i> &#x2014; material icon named "stars".
  static const IconData stars = IconData(0xea27, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">stars</i> &#x2014; material icon named "stars outlined".
  static const IconData stars_outlined = IconData(0xe45f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stars</i> &#x2014; material icon named "stars rounded".
  static const IconData stars_rounded = IconData(0xf490, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">stars</i> &#x2014; material icon named "stars sharp".
  static const IconData stars_sharp = IconData(0xef63, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stay_current_landscape</i> &#x2014; material icon named "stay current landscape".
  static const IconData stay_current_landscape = IconData(0xea28, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">stay_current_landscape</i> &#x2014; material icon named "stay current landscape outlined".
  static const IconData stay_current_landscape_outlined = IconData(0xe460, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stay_current_landscape</i> &#x2014; material icon named "stay current landscape rounded".
  static const IconData stay_current_landscape_rounded = IconData(0xf491, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">stay_current_landscape</i> &#x2014; material icon named "stay current landscape sharp".
  static const IconData stay_current_landscape_sharp = IconData(0xef64, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stay_current_portrait</i> &#x2014; material icon named "stay current portrait".
  static const IconData stay_current_portrait = IconData(0xea29, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">stay_current_portrait</i> &#x2014; material icon named "stay current portrait outlined".
  static const IconData stay_current_portrait_outlined = IconData(0xe461, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stay_current_portrait</i> &#x2014; material icon named "stay current portrait rounded".
  static const IconData stay_current_portrait_rounded = IconData(0xf492, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">stay_current_portrait</i> &#x2014; material icon named "stay current portrait sharp".
  static const IconData stay_current_portrait_sharp = IconData(0xef65, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stay_primary_landscape</i> &#x2014; material icon named "stay primary landscape".
  static const IconData stay_primary_landscape = IconData(0xea2a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">stay_primary_landscape</i> &#x2014; material icon named "stay primary landscape outlined".
  static const IconData stay_primary_landscape_outlined = IconData(0xe462, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stay_primary_landscape</i> &#x2014; material icon named "stay primary landscape rounded".
  static const IconData stay_primary_landscape_rounded = IconData(0xf493, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">stay_primary_landscape</i> &#x2014; material icon named "stay primary landscape sharp".
  static const IconData stay_primary_landscape_sharp = IconData(0xef66, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stay_primary_portrait</i> &#x2014; material icon named "stay primary portrait".
  static const IconData stay_primary_portrait = IconData(0xea2b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">stay_primary_portrait</i> &#x2014; material icon named "stay primary portrait outlined".
  static const IconData stay_primary_portrait_outlined = IconData(0xe463, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stay_primary_portrait</i> &#x2014; material icon named "stay primary portrait rounded".
  static const IconData stay_primary_portrait_rounded = IconData(0xf494, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">stay_primary_portrait</i> &#x2014; material icon named "stay primary portrait sharp".
  static const IconData stay_primary_portrait_sharp = IconData(0xef67, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sticky_note_2</i> &#x2014; material icon named "sticky note 2".
  static const IconData sticky_note_2 = IconData(0xea2c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sticky_note_2</i> &#x2014; material icon named "sticky note 2 outlined".
  static const IconData sticky_note_2_outlined = IconData(0xe464, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sticky_note_2</i> &#x2014; material icon named "sticky note 2 rounded".
  static const IconData sticky_note_2_rounded = IconData(0xf495, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sticky_note_2</i> &#x2014; material icon named "sticky note 2 sharp".
  static const IconData sticky_note_2_sharp = IconData(0xef68, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stop</i> &#x2014; material icon named "stop".
  static const IconData stop = IconData(0xea2d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stop_circle</i> &#x2014; material icon named "stop circle".
  static const IconData stop_circle = IconData(0xea2e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">stop_circle</i> &#x2014; material icon named "stop circle outlined".
  static const IconData stop_circle_outlined = IconData(0xe465, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stop_circle</i> &#x2014; material icon named "stop circle rounded".
  static const IconData stop_circle_rounded = IconData(0xf496, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">stop_circle</i> &#x2014; material icon named "stop circle sharp".
  static const IconData stop_circle_sharp = IconData(0xef69, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">stop</i> &#x2014; material icon named "stop outlined".
  static const IconData stop_outlined = IconData(0xe466, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stop</i> &#x2014; material icon named "stop rounded".
  static const IconData stop_rounded = IconData(0xf497, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stop_screen_share</i> &#x2014; material icon named "stop screen share".
  static const IconData stop_screen_share = IconData(0xea2f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">stop_screen_share</i> &#x2014; material icon named "stop screen share outlined".
  static const IconData stop_screen_share_outlined = IconData(0xe467, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stop_screen_share</i> &#x2014; material icon named "stop screen share rounded".
  static const IconData stop_screen_share_rounded = IconData(0xf498, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">stop_screen_share</i> &#x2014; material icon named "stop screen share sharp".
  static const IconData stop_screen_share_sharp = IconData(0xef6a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">stop</i> &#x2014; material icon named "stop sharp".
  static const IconData stop_sharp = IconData(0xef6b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">storage</i> &#x2014; material icon named "storage".
  static const IconData storage = IconData(0xea30, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">storage</i> &#x2014; material icon named "storage outlined".
  static const IconData storage_outlined = IconData(0xe468, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">storage</i> &#x2014; material icon named "storage rounded".
  static const IconData storage_rounded = IconData(0xf499, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">storage</i> &#x2014; material icon named "storage sharp".
  static const IconData storage_sharp = IconData(0xef6c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">store</i> &#x2014; material icon named "store".
  static const IconData store = IconData(0xea31, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">store_mall_directory</i> &#x2014; material icon named "store mall directory".
  static const IconData store_mall_directory = IconData(0xea32, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">store_mall_directory</i> &#x2014; material icon named "store mall directory outlined".
  static const IconData store_mall_directory_outlined = IconData(0xe469, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">store_mall_directory</i> &#x2014; material icon named "store mall directory rounded".
  static const IconData store_mall_directory_rounded = IconData(0xf49a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">store_mall_directory</i> &#x2014; material icon named "store mall directory sharp".
  static const IconData store_mall_directory_sharp = IconData(0xef6d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">store</i> &#x2014; material icon named "store outlined".
  static const IconData store_outlined = IconData(0xe46a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">store</i> &#x2014; material icon named "store rounded".
  static const IconData store_rounded = IconData(0xf49b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">store</i> &#x2014; material icon named "store sharp".
  static const IconData store_sharp = IconData(0xef6e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">storefront</i> &#x2014; material icon named "storefront".
  static const IconData storefront = IconData(0xea33, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">storefront</i> &#x2014; material icon named "storefront outlined".
  static const IconData storefront_outlined = IconData(0xe46b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">storefront</i> &#x2014; material icon named "storefront rounded".
  static const IconData storefront_rounded = IconData(0xf49c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">storefront</i> &#x2014; material icon named "storefront sharp".
  static const IconData storefront_sharp = IconData(0xef6f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">straighten</i> &#x2014; material icon named "straighten".
  static const IconData straighten = IconData(0xea34, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">straighten</i> &#x2014; material icon named "straighten outlined".
  static const IconData straighten_outlined = IconData(0xe46c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">straighten</i> &#x2014; material icon named "straighten rounded".
  static const IconData straighten_rounded = IconData(0xf49d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">straighten</i> &#x2014; material icon named "straighten sharp".
  static const IconData straighten_sharp = IconData(0xef70, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stream</i> &#x2014; material icon named "stream".
  static const IconData stream = IconData(0xea35, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">streetview</i> &#x2014; material icon named "streetview".
  static const IconData streetview = IconData(0xea36, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">streetview</i> &#x2014; material icon named "streetview outlined".
  static const IconData streetview_outlined = IconData(0xe46d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">streetview</i> &#x2014; material icon named "streetview rounded".
  static const IconData streetview_rounded = IconData(0xf49e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">streetview</i> &#x2014; material icon named "streetview sharp".
  static const IconData streetview_sharp = IconData(0xef71, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">strikethrough_s</i> &#x2014; material icon named "strikethrough s".
  static const IconData strikethrough_s = IconData(0xea37, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">strikethrough_s</i> &#x2014; material icon named "strikethrough s outlined".
  static const IconData strikethrough_s_outlined = IconData(0xe46e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">strikethrough_s</i> &#x2014; material icon named "strikethrough s rounded".
  static const IconData strikethrough_s_rounded = IconData(0xf49f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">strikethrough_s</i> &#x2014; material icon named "strikethrough s sharp".
  static const IconData strikethrough_s_sharp = IconData(0xef72, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stroller</i> &#x2014; material icon named "stroller".
  static const IconData stroller = IconData(0xea38, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">stroller</i> &#x2014; material icon named "stroller outlined".
  static const IconData stroller_outlined = IconData(0xe46f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stroller</i> &#x2014; material icon named "stroller rounded".
  static const IconData stroller_rounded = IconData(0xf4a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">stroller</i> &#x2014; material icon named "stroller sharp".
  static const IconData stroller_sharp = IconData(0xef73, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">style</i> &#x2014; material icon named "style".
  static const IconData style = IconData(0xea39, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">style</i> &#x2014; material icon named "style outlined".
  static const IconData style_outlined = IconData(0xe470, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">style</i> &#x2014; material icon named "style rounded".
  static const IconData style_rounded = IconData(0xf4a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">style</i> &#x2014; material icon named "style sharp".
  static const IconData style_sharp = IconData(0xef74, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">subdirectory_arrow_left</i> &#x2014; material icon named "subdirectory arrow left".
  static const IconData subdirectory_arrow_left = IconData(0xea3a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">subdirectory_arrow_left</i> &#x2014; material icon named "subdirectory arrow left outlined".
  static const IconData subdirectory_arrow_left_outlined = IconData(0xe471, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">subdirectory_arrow_left</i> &#x2014; material icon named "subdirectory arrow left rounded".
  static const IconData subdirectory_arrow_left_rounded = IconData(0xf4a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">subdirectory_arrow_left</i> &#x2014; material icon named "subdirectory arrow left sharp".
  static const IconData subdirectory_arrow_left_sharp = IconData(0xef75, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">subdirectory_arrow_right</i> &#x2014; material icon named "subdirectory arrow right".
  static const IconData subdirectory_arrow_right = IconData(0xea3b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">subdirectory_arrow_right</i> &#x2014; material icon named "subdirectory arrow right outlined".
  static const IconData subdirectory_arrow_right_outlined = IconData(0xe472, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">subdirectory_arrow_right</i> &#x2014; material icon named "subdirectory arrow right rounded".
  static const IconData subdirectory_arrow_right_rounded = IconData(0xf4a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">subdirectory_arrow_right</i> &#x2014; material icon named "subdirectory arrow right sharp".
  static const IconData subdirectory_arrow_right_sharp = IconData(0xef76, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">subject</i> &#x2014; material icon named "subject".
  static const IconData subject = IconData(0xea3c, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">subject</i> &#x2014; material icon named "subject outlined".
  static const IconData subject_outlined = IconData(0xe473, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">subject</i> &#x2014; material icon named "subject rounded".
  static const IconData subject_rounded = IconData(0xf4a4, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">subject</i> &#x2014; material icon named "subject sharp".
  static const IconData subject_sharp = IconData(0xef77, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">subscript</i> &#x2014; material icon named "subscript".
  static const IconData subscript = IconData(0xea3d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">subscript</i> &#x2014; material icon named "subscript outlined".
  static const IconData subscript_outlined = IconData(0xe474, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">subscript</i> &#x2014; material icon named "subscript rounded".
  static const IconData subscript_rounded = IconData(0xf4a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">subscript</i> &#x2014; material icon named "subscript sharp".
  static const IconData subscript_sharp = IconData(0xef78, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">subscriptions</i> &#x2014; material icon named "subscriptions".
  static const IconData subscriptions = IconData(0xea3e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">subscriptions</i> &#x2014; material icon named "subscriptions outlined".
  static const IconData subscriptions_outlined = IconData(0xe475, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">subscriptions</i> &#x2014; material icon named "subscriptions rounded".
  static const IconData subscriptions_rounded = IconData(0xf4a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">subscriptions</i> &#x2014; material icon named "subscriptions sharp".
  static const IconData subscriptions_sharp = IconData(0xef79, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">subtitles</i> &#x2014; material icon named "subtitles".
  static const IconData subtitles = IconData(0xea3f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">subtitles_off</i> &#x2014; material icon named "subtitles off".
  static const IconData subtitles_off = IconData(0xea40, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">subtitles_off</i> &#x2014; material icon named "subtitles off outlined".
  static const IconData subtitles_off_outlined = IconData(0xe476, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">subtitles_off</i> &#x2014; material icon named "subtitles off rounded".
  static const IconData subtitles_off_rounded = IconData(0xf4a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">subtitles_off</i> &#x2014; material icon named "subtitles off sharp".
  static const IconData subtitles_off_sharp = IconData(0xef7a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">subtitles</i> &#x2014; material icon named "subtitles outlined".
  static const IconData subtitles_outlined = IconData(0xe477, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">subtitles</i> &#x2014; material icon named "subtitles rounded".
  static const IconData subtitles_rounded = IconData(0xf4a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">subtitles</i> &#x2014; material icon named "subtitles sharp".
  static const IconData subtitles_sharp = IconData(0xef7b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">subway</i> &#x2014; material icon named "subway".
  static const IconData subway = IconData(0xea41, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">subway</i> &#x2014; material icon named "subway outlined".
  static const IconData subway_outlined = IconData(0xe478, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">subway</i> &#x2014; material icon named "subway rounded".
  static const IconData subway_rounded = IconData(0xf4a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">subway</i> &#x2014; material icon named "subway sharp".
  static const IconData subway_sharp = IconData(0xef7c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">superscript</i> &#x2014; material icon named "superscript".
  static const IconData superscript = IconData(0xea42, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">superscript</i> &#x2014; material icon named "superscript outlined".
  static const IconData superscript_outlined = IconData(0xe479, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">superscript</i> &#x2014; material icon named "superscript rounded".
  static const IconData superscript_rounded = IconData(0xf4aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">superscript</i> &#x2014; material icon named "superscript sharp".
  static const IconData superscript_sharp = IconData(0xef7d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">supervised_user_circle</i> &#x2014; material icon named "supervised user circle".
  static const IconData supervised_user_circle = IconData(0xea43, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">supervised_user_circle</i> &#x2014; material icon named "supervised user circle outlined".
  static const IconData supervised_user_circle_outlined = IconData(0xe47a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">supervised_user_circle</i> &#x2014; material icon named "supervised user circle rounded".
  static const IconData supervised_user_circle_rounded = IconData(0xf4ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">supervised_user_circle</i> &#x2014; material icon named "supervised user circle sharp".
  static const IconData supervised_user_circle_sharp = IconData(0xef7e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">supervisor_account</i> &#x2014; material icon named "supervisor account".
  static const IconData supervisor_account = IconData(0xea44, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">supervisor_account</i> &#x2014; material icon named "supervisor account outlined".
  static const IconData supervisor_account_outlined = IconData(0xe47b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">supervisor_account</i> &#x2014; material icon named "supervisor account rounded".
  static const IconData supervisor_account_rounded = IconData(0xf4ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">supervisor_account</i> &#x2014; material icon named "supervisor account sharp".
  static const IconData supervisor_account_sharp = IconData(0xef7f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">support</i> &#x2014; material icon named "support".
  static const IconData support = IconData(0xea45, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">support_agent</i> &#x2014; material icon named "support agent".
  static const IconData support_agent = IconData(0xea46, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">support_agent</i> &#x2014; material icon named "support agent outlined".
  static const IconData support_agent_outlined = IconData(0xe47c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">support_agent</i> &#x2014; material icon named "support agent rounded".
  static const IconData support_agent_rounded = IconData(0xf4ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">support_agent</i> &#x2014; material icon named "support agent sharp".
  static const IconData support_agent_sharp = IconData(0xef80, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">support</i> &#x2014; material icon named "support outlined".
  static const IconData support_outlined = IconData(0xe47d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">support</i> &#x2014; material icon named "support rounded".
  static const IconData support_rounded = IconData(0xf4ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">support</i> &#x2014; material icon named "support sharp".
  static const IconData support_sharp = IconData(0xef81, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">surround_sound</i> &#x2014; material icon named "surround sound".
  static const IconData surround_sound = IconData(0xea47, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">surround_sound</i> &#x2014; material icon named "surround sound outlined".
  static const IconData surround_sound_outlined = IconData(0xe47e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">surround_sound</i> &#x2014; material icon named "surround sound rounded".
  static const IconData surround_sound_rounded = IconData(0xf4af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">surround_sound</i> &#x2014; material icon named "surround sound sharp".
  static const IconData surround_sound_sharp = IconData(0xef82, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">swap_calls</i> &#x2014; material icon named "swap calls".
  static const IconData swap_calls = IconData(0xea48, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">swap_calls</i> &#x2014; material icon named "swap calls outlined".
  static const IconData swap_calls_outlined = IconData(0xe47f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swap_calls</i> &#x2014; material icon named "swap calls rounded".
  static const IconData swap_calls_rounded = IconData(0xf4b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">swap_calls</i> &#x2014; material icon named "swap calls sharp".
  static const IconData swap_calls_sharp = IconData(0xef83, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">swap_horiz</i> &#x2014; material icon named "swap horiz".
  static const IconData swap_horiz = IconData(0xea49, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">swap_horiz</i> &#x2014; material icon named "swap horiz outlined".
  static const IconData swap_horiz_outlined = IconData(0xe480, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swap_horiz</i> &#x2014; material icon named "swap horiz rounded".
  static const IconData swap_horiz_rounded = IconData(0xf4b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">swap_horiz</i> &#x2014; material icon named "swap horiz sharp".
  static const IconData swap_horiz_sharp = IconData(0xef84, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">swap_horizontal_circle</i> &#x2014; material icon named "swap horizontal circle".
  static const IconData swap_horizontal_circle = IconData(0xea4a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">swap_horizontal_circle</i> &#x2014; material icon named "swap horizontal circle outlined".
  static const IconData swap_horizontal_circle_outlined = IconData(0xe481, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swap_horizontal_circle</i> &#x2014; material icon named "swap horizontal circle rounded".
  static const IconData swap_horizontal_circle_rounded = IconData(0xf4b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">swap_horizontal_circle</i> &#x2014; material icon named "swap horizontal circle sharp".
  static const IconData swap_horizontal_circle_sharp = IconData(0xef85, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">swap_vert</i> &#x2014; material icon named "swap vert".
  static const IconData swap_vert = IconData(0xea4b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">swap_vert_circle</i> &#x2014; material icon named "swap vert circle".
  static const IconData swap_vert_circle = IconData(0xea4c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">swap_vert_circle</i> &#x2014; material icon named "swap vert circle outlined".
  static const IconData swap_vert_circle_outlined = IconData(0xe483, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swap_vert_circle</i> &#x2014; material icon named "swap vert circle rounded".
  static const IconData swap_vert_circle_rounded = IconData(0xf4b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">swap_vert_circle</i> &#x2014; material icon named "swap vert circle sharp".
  static const IconData swap_vert_circle_sharp = IconData(0xef87, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">swap_vert</i> &#x2014; material icon named "swap vert outlined".
  static const IconData swap_vert_outlined = IconData(0xe482, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swap_vert</i> &#x2014; material icon named "swap vert rounded".
  static const IconData swap_vert_rounded = IconData(0xf4b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">swap_vert</i> &#x2014; material icon named "swap vert sharp".
  static const IconData swap_vert_sharp = IconData(0xef86, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">swap_vertical_circle</i> &#x2014; material icon named "swap vertical circle".
  static const IconData swap_vertical_circle = IconData(0xea4c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">swap_vertical_circle</i> &#x2014; material icon named "swap vertical circle outlined".
  static const IconData swap_vertical_circle_outlined = IconData(0xe483, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swap_vertical_circle</i> &#x2014; material icon named "swap vertical circle rounded".
  static const IconData swap_vertical_circle_rounded = IconData(0xf4b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">swap_vertical_circle</i> &#x2014; material icon named "swap vertical circle sharp".
  static const IconData swap_vertical_circle_sharp = IconData(0xef87, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">swipe</i> &#x2014; material icon named "swipe".
  static const IconData swipe = IconData(0xea4d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">switch_account</i> &#x2014; material icon named "switch account".
  static const IconData switch_account = IconData(0xea4e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">switch_camera</i> &#x2014; material icon named "switch camera".
  static const IconData switch_camera = IconData(0xea4f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">switch_camera</i> &#x2014; material icon named "switch camera outlined".
  static const IconData switch_camera_outlined = IconData(0xe484, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">switch_camera</i> &#x2014; material icon named "switch camera rounded".
  static const IconData switch_camera_rounded = IconData(0xf4b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">switch_camera</i> &#x2014; material icon named "switch camera sharp".
  static const IconData switch_camera_sharp = IconData(0xef88, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">switch_left</i> &#x2014; material icon named "switch left".
  static const IconData switch_left = IconData(0xea50, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">switch_left</i> &#x2014; material icon named "switch left outlined".
  static const IconData switch_left_outlined = IconData(0xe485, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">switch_left</i> &#x2014; material icon named "switch left rounded".
  static const IconData switch_left_rounded = IconData(0xf4b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">switch_left</i> &#x2014; material icon named "switch left sharp".
  static const IconData switch_left_sharp = IconData(0xef89, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">switch_right</i> &#x2014; material icon named "switch right".
  static const IconData switch_right = IconData(0xea51, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">switch_right</i> &#x2014; material icon named "switch right outlined".
  static const IconData switch_right_outlined = IconData(0xe486, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">switch_right</i> &#x2014; material icon named "switch right rounded".
  static const IconData switch_right_rounded = IconData(0xf4b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">switch_right</i> &#x2014; material icon named "switch right sharp".
  static const IconData switch_right_sharp = IconData(0xef8a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">switch_video</i> &#x2014; material icon named "switch video".
  static const IconData switch_video = IconData(0xea52, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">switch_video</i> &#x2014; material icon named "switch video outlined".
  static const IconData switch_video_outlined = IconData(0xe487, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">switch_video</i> &#x2014; material icon named "switch video rounded".
  static const IconData switch_video_rounded = IconData(0xf4b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">switch_video</i> &#x2014; material icon named "switch video sharp".
  static const IconData switch_video_sharp = IconData(0xef8b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sync</i> &#x2014; material icon named "sync".
  static const IconData sync = IconData(0xea53, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sync_alt</i> &#x2014; material icon named "sync alt".
  static const IconData sync_alt = IconData(0xea54, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sync_alt</i> &#x2014; material icon named "sync alt outlined".
  static const IconData sync_alt_outlined = IconData(0xe488, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sync_alt</i> &#x2014; material icon named "sync alt rounded".
  static const IconData sync_alt_rounded = IconData(0xf4b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sync_alt</i> &#x2014; material icon named "sync alt sharp".
  static const IconData sync_alt_sharp = IconData(0xef8c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sync_disabled</i> &#x2014; material icon named "sync disabled".
  static const IconData sync_disabled = IconData(0xea55, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sync_disabled</i> &#x2014; material icon named "sync disabled outlined".
  static const IconData sync_disabled_outlined = IconData(0xe489, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sync_disabled</i> &#x2014; material icon named "sync disabled rounded".
  static const IconData sync_disabled_rounded = IconData(0xf4ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sync_disabled</i> &#x2014; material icon named "sync disabled sharp".
  static const IconData sync_disabled_sharp = IconData(0xef8d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sync</i> &#x2014; material icon named "sync outlined".
  static const IconData sync_outlined = IconData(0xe48a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sync_problem</i> &#x2014; material icon named "sync problem".
  static const IconData sync_problem = IconData(0xea56, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sync_problem</i> &#x2014; material icon named "sync problem outlined".
  static const IconData sync_problem_outlined = IconData(0xe48b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sync_problem</i> &#x2014; material icon named "sync problem rounded".
  static const IconData sync_problem_rounded = IconData(0xf4bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sync_problem</i> &#x2014; material icon named "sync problem sharp".
  static const IconData sync_problem_sharp = IconData(0xef8e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sync</i> &#x2014; material icon named "sync rounded".
  static const IconData sync_rounded = IconData(0xf4bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sync</i> &#x2014; material icon named "sync sharp".
  static const IconData sync_sharp = IconData(0xef8f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">system_update</i> &#x2014; material icon named "system update".
  static const IconData system_update = IconData(0xea57, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">system_update_alt</i> &#x2014; material icon named "system update alt".
  static const IconData system_update_alt = IconData(0xea58, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">system_update_alt</i> &#x2014; material icon named "system update alt outlined".
  static const IconData system_update_alt_outlined = IconData(0xe48c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">system_update_alt</i> &#x2014; material icon named "system update alt rounded".
  static const IconData system_update_alt_rounded = IconData(0xf4bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">system_update_alt</i> &#x2014; material icon named "system update alt sharp".
  static const IconData system_update_alt_sharp = IconData(0xef90, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">system_update</i> &#x2014; material icon named "system update outlined".
  static const IconData system_update_outlined = IconData(0xe48d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">system_update</i> &#x2014; material icon named "system update rounded".
  static const IconData system_update_rounded = IconData(0xf4be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">system_update</i> &#x2014; material icon named "system update sharp".
  static const IconData system_update_sharp = IconData(0xef91, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">system_update_tv</i> &#x2014; material icon named "system update tv".
  static const IconData system_update_tv = IconData(0xea58, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">system_update_tv</i> &#x2014; material icon named "system update tv outlined".
  static const IconData system_update_tv_outlined = IconData(0xe48c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">system_update_tv</i> &#x2014; material icon named "system update tv rounded".
  static const IconData system_update_tv_rounded = IconData(0xf4bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">system_update_tv</i> &#x2014; material icon named "system update tv sharp".
  static const IconData system_update_tv_sharp = IconData(0xef90, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tab</i> &#x2014; material icon named "tab".
  static const IconData tab = IconData(0xea59, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tab</i> &#x2014; material icon named "tab outlined".
  static const IconData tab_outlined = IconData(0xe48e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tab</i> &#x2014; material icon named "tab rounded".
  static const IconData tab_rounded = IconData(0xf4bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tab</i> &#x2014; material icon named "tab sharp".
  static const IconData tab_sharp = IconData(0xef92, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tab_unselected</i> &#x2014; material icon named "tab unselected".
  static const IconData tab_unselected = IconData(0xea5a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tab_unselected</i> &#x2014; material icon named "tab unselected outlined".
  static const IconData tab_unselected_outlined = IconData(0xe48f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tab_unselected</i> &#x2014; material icon named "tab unselected rounded".
  static const IconData tab_unselected_rounded = IconData(0xf4c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tab_unselected</i> &#x2014; material icon named "tab unselected sharp".
  static const IconData tab_unselected_sharp = IconData(0xef93, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">table_chart</i> &#x2014; material icon named "table chart".
  static const IconData table_chart = IconData(0xea5b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">table_chart</i> &#x2014; material icon named "table chart outlined".
  static const IconData table_chart_outlined = IconData(0xe490, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">table_chart</i> &#x2014; material icon named "table chart rounded".
  static const IconData table_chart_rounded = IconData(0xf4c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">table_chart</i> &#x2014; material icon named "table chart sharp".
  static const IconData table_chart_sharp = IconData(0xef94, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">table_rows</i> &#x2014; material icon named "table rows".
  static const IconData table_rows = IconData(0xea5c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">table_rows</i> &#x2014; material icon named "table rows outlined".
  static const IconData table_rows_outlined = IconData(0xe491, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">table_rows</i> &#x2014; material icon named "table rows rounded".
  static const IconData table_rows_rounded = IconData(0xf4c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">table_rows</i> &#x2014; material icon named "table rows sharp".
  static const IconData table_rows_sharp = IconData(0xef95, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">table_view</i> &#x2014; material icon named "table view".
  static const IconData table_view = IconData(0xea5d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">table_view</i> &#x2014; material icon named "table view outlined".
  static const IconData table_view_outlined = IconData(0xe492, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">table_view</i> &#x2014; material icon named "table view rounded".
  static const IconData table_view_rounded = IconData(0xf4c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">table_view</i> &#x2014; material icon named "table view sharp".
  static const IconData table_view_sharp = IconData(0xef96, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tablet</i> &#x2014; material icon named "tablet".
  static const IconData tablet = IconData(0xea5e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tablet_android</i> &#x2014; material icon named "tablet android".
  static const IconData tablet_android = IconData(0xea5f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tablet_android</i> &#x2014; material icon named "tablet android outlined".
  static const IconData tablet_android_outlined = IconData(0xe493, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tablet_android</i> &#x2014; material icon named "tablet android rounded".
  static const IconData tablet_android_rounded = IconData(0xf4c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tablet_android</i> &#x2014; material icon named "tablet android sharp".
  static const IconData tablet_android_sharp = IconData(0xef97, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tablet_mac</i> &#x2014; material icon named "tablet mac".
  static const IconData tablet_mac = IconData(0xea60, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tablet_mac</i> &#x2014; material icon named "tablet mac outlined".
  static const IconData tablet_mac_outlined = IconData(0xe494, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tablet_mac</i> &#x2014; material icon named "tablet mac rounded".
  static const IconData tablet_mac_rounded = IconData(0xf4c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tablet_mac</i> &#x2014; material icon named "tablet mac sharp".
  static const IconData tablet_mac_sharp = IconData(0xef98, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tablet</i> &#x2014; material icon named "tablet outlined".
  static const IconData tablet_outlined = IconData(0xe495, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tablet</i> &#x2014; material icon named "tablet rounded".
  static const IconData tablet_rounded = IconData(0xf4c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tablet</i> &#x2014; material icon named "tablet sharp".
  static const IconData tablet_sharp = IconData(0xef99, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tag</i> &#x2014; material icon named "tag".
  static const IconData tag = IconData(0xea61, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tag_faces</i> &#x2014; material icon named "tag faces".
  static const IconData tag_faces = IconData(0xea62, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tag_faces</i> &#x2014; material icon named "tag faces outlined".
  static const IconData tag_faces_outlined = IconData(0xe496, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tag_faces</i> &#x2014; material icon named "tag faces rounded".
  static const IconData tag_faces_rounded = IconData(0xf4c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tag_faces</i> &#x2014; material icon named "tag faces sharp".
  static const IconData tag_faces_sharp = IconData(0xef9a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">takeout_dining</i> &#x2014; material icon named "takeout dining".
  static const IconData takeout_dining = IconData(0xea63, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tap_and_play</i> &#x2014; material icon named "tap and play".
  static const IconData tap_and_play = IconData(0xea64, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tap_and_play</i> &#x2014; material icon named "tap and play outlined".
  static const IconData tap_and_play_outlined = IconData(0xe497, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tap_and_play</i> &#x2014; material icon named "tap and play rounded".
  static const IconData tap_and_play_rounded = IconData(0xf4c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tap_and_play</i> &#x2014; material icon named "tap and play sharp".
  static const IconData tap_and_play_sharp = IconData(0xef9b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tapas</i> &#x2014; material icon named "tapas".
  static const IconData tapas = IconData(0xea65, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tapas</i> &#x2014; material icon named "tapas outlined".
  static const IconData tapas_outlined = IconData(0xe498, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tapas</i> &#x2014; material icon named "tapas rounded".
  static const IconData tapas_rounded = IconData(0xf4c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tapas</i> &#x2014; material icon named "tapas sharp".
  static const IconData tapas_sharp = IconData(0xef9c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">taxi_alert</i> &#x2014; material icon named "taxi alert".
  static const IconData taxi_alert = IconData(0xea66, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">terrain</i> &#x2014; material icon named "terrain".
  static const IconData terrain = IconData(0xea67, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">terrain</i> &#x2014; material icon named "terrain outlined".
  static const IconData terrain_outlined = IconData(0xe499, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">terrain</i> &#x2014; material icon named "terrain rounded".
  static const IconData terrain_rounded = IconData(0xf4ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">terrain</i> &#x2014; material icon named "terrain sharp".
  static const IconData terrain_sharp = IconData(0xef9d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">text_fields</i> &#x2014; material icon named "text fields".
  static const IconData text_fields = IconData(0xea68, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">text_fields</i> &#x2014; material icon named "text fields outlined".
  static const IconData text_fields_outlined = IconData(0xe49a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_fields</i> &#x2014; material icon named "text fields rounded".
  static const IconData text_fields_rounded = IconData(0xf4cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">text_fields</i> &#x2014; material icon named "text fields sharp".
  static const IconData text_fields_sharp = IconData(0xef9e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">text_format</i> &#x2014; material icon named "text format".
  static const IconData text_format = IconData(0xea69, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">text_format</i> &#x2014; material icon named "text format outlined".
  static const IconData text_format_outlined = IconData(0xe49b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_format</i> &#x2014; material icon named "text format rounded".
  static const IconData text_format_rounded = IconData(0xf4cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">text_format</i> &#x2014; material icon named "text format sharp".
  static const IconData text_format_sharp = IconData(0xef9f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">text_rotate_up</i> &#x2014; material icon named "text rotate up".
  static const IconData text_rotate_up = IconData(0xea6a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">text_rotate_up</i> &#x2014; material icon named "text rotate up outlined".
  static const IconData text_rotate_up_outlined = IconData(0xe49c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_rotate_up</i> &#x2014; material icon named "text rotate up rounded".
  static const IconData text_rotate_up_rounded = IconData(0xf4cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">text_rotate_up</i> &#x2014; material icon named "text rotate up sharp".
  static const IconData text_rotate_up_sharp = IconData(0xefa0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">text_rotate_vertical</i> &#x2014; material icon named "text rotate vertical".
  static const IconData text_rotate_vertical = IconData(0xea6b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">text_rotate_vertical</i> &#x2014; material icon named "text rotate vertical outlined".
  static const IconData text_rotate_vertical_outlined = IconData(0xe49d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_rotate_vertical</i> &#x2014; material icon named "text rotate vertical rounded".
  static const IconData text_rotate_vertical_rounded = IconData(0xf4ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">text_rotate_vertical</i> &#x2014; material icon named "text rotate vertical sharp".
  static const IconData text_rotate_vertical_sharp = IconData(0xefa1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">text_rotation_angledown</i> &#x2014; material icon named "text rotation angledown".
  static const IconData text_rotation_angledown = IconData(0xea6c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">text_rotation_angledown</i> &#x2014; material icon named "text rotation angledown outlined".
  static const IconData text_rotation_angledown_outlined = IconData(0xe49e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_rotation_angledown</i> &#x2014; material icon named "text rotation angledown rounded".
  static const IconData text_rotation_angledown_rounded = IconData(0xf4cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">text_rotation_angledown</i> &#x2014; material icon named "text rotation angledown sharp".
  static const IconData text_rotation_angledown_sharp = IconData(0xefa2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">text_rotation_angleup</i> &#x2014; material icon named "text rotation angleup".
  static const IconData text_rotation_angleup = IconData(0xea6d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">text_rotation_angleup</i> &#x2014; material icon named "text rotation angleup outlined".
  static const IconData text_rotation_angleup_outlined = IconData(0xe49f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_rotation_angleup</i> &#x2014; material icon named "text rotation angleup rounded".
  static const IconData text_rotation_angleup_rounded = IconData(0xf4d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">text_rotation_angleup</i> &#x2014; material icon named "text rotation angleup sharp".
  static const IconData text_rotation_angleup_sharp = IconData(0xefa3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">text_rotation_down</i> &#x2014; material icon named "text rotation down".
  static const IconData text_rotation_down = IconData(0xea6e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">text_rotation_down</i> &#x2014; material icon named "text rotation down outlined".
  static const IconData text_rotation_down_outlined = IconData(0xe4a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_rotation_down</i> &#x2014; material icon named "text rotation down rounded".
  static const IconData text_rotation_down_rounded = IconData(0xf4d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">text_rotation_down</i> &#x2014; material icon named "text rotation down sharp".
  static const IconData text_rotation_down_sharp = IconData(0xefa4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">text_rotation_none</i> &#x2014; material icon named "text rotation none".
  static const IconData text_rotation_none = IconData(0xea6f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">text_rotation_none</i> &#x2014; material icon named "text rotation none outlined".
  static const IconData text_rotation_none_outlined = IconData(0xe4a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_rotation_none</i> &#x2014; material icon named "text rotation none rounded".
  static const IconData text_rotation_none_rounded = IconData(0xf4d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">text_rotation_none</i> &#x2014; material icon named "text rotation none sharp".
  static const IconData text_rotation_none_sharp = IconData(0xefa5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">text_snippet</i> &#x2014; material icon named "text snippet".
  static const IconData text_snippet = IconData(0xea70, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">text_snippet</i> &#x2014; material icon named "text snippet outlined".
  static const IconData text_snippet_outlined = IconData(0xe4a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_snippet</i> &#x2014; material icon named "text snippet rounded".
  static const IconData text_snippet_rounded = IconData(0xf4d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">text_snippet</i> &#x2014; material icon named "text snippet sharp".
  static const IconData text_snippet_sharp = IconData(0xefa6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">textsms</i> &#x2014; material icon named "textsms".
  static const IconData textsms = IconData(0xea71, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">textsms</i> &#x2014; material icon named "textsms outlined".
  static const IconData textsms_outlined = IconData(0xe4a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">textsms</i> &#x2014; material icon named "textsms rounded".
  static const IconData textsms_rounded = IconData(0xf4d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">textsms</i> &#x2014; material icon named "textsms sharp".
  static const IconData textsms_sharp = IconData(0xefa7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">texture</i> &#x2014; material icon named "texture".
  static const IconData texture = IconData(0xea72, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">texture</i> &#x2014; material icon named "texture outlined".
  static const IconData texture_outlined = IconData(0xe4a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">texture</i> &#x2014; material icon named "texture rounded".
  static const IconData texture_rounded = IconData(0xf4d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">texture</i> &#x2014; material icon named "texture sharp".
  static const IconData texture_sharp = IconData(0xefa8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">theater_comedy</i> &#x2014; material icon named "theater comedy".
  static const IconData theater_comedy = IconData(0xea73, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">theaters</i> &#x2014; material icon named "theaters".
  static const IconData theaters = IconData(0xea74, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">theaters</i> &#x2014; material icon named "theaters outlined".
  static const IconData theaters_outlined = IconData(0xe4a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">theaters</i> &#x2014; material icon named "theaters rounded".
  static const IconData theaters_rounded = IconData(0xf4d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">theaters</i> &#x2014; material icon named "theaters sharp".
  static const IconData theaters_sharp = IconData(0xefa9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">thermostat</i> &#x2014; material icon named "thermostat outlined".
  static const IconData thermostat_outlined = IconData(0xe4a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">thermostat</i> &#x2014; material icon named "thermostat rounded".
  static const IconData thermostat_rounded = IconData(0xf4d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">thermostat</i> &#x2014; material icon named "thermostat sharp".
  static const IconData thermostat_sharp = IconData(0xefaa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">thumb_down</i> &#x2014; material icon named "thumb down".
  static const IconData thumb_down = IconData(0xea75, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">thumb_down_alt</i> &#x2014; material icon named "thumb down alt".
  static const IconData thumb_down_alt = IconData(0xea76, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">thumb_down_alt</i> &#x2014; material icon named "thumb down alt outlined".
  static const IconData thumb_down_alt_outlined = IconData(0xe4a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">thumb_down_alt</i> &#x2014; material icon named "thumb down alt rounded".
  static const IconData thumb_down_alt_rounded = IconData(0xf4d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">thumb_down_alt</i> &#x2014; material icon named "thumb down alt sharp".
  static const IconData thumb_down_alt_sharp = IconData(0xefab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">thumb_down_off_alt</i> &#x2014; material icon named "thumb down off alt".
  static const IconData thumb_down_off_alt = IconData(0xea77, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">thumb_down</i> &#x2014; material icon named "thumb down outlined".
  static const IconData thumb_down_outlined = IconData(0xe4a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">thumb_down</i> &#x2014; material icon named "thumb down rounded".
  static const IconData thumb_down_rounded = IconData(0xf4d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">thumb_down</i> &#x2014; material icon named "thumb down sharp".
  static const IconData thumb_down_sharp = IconData(0xefac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">thumb_up</i> &#x2014; material icon named "thumb up".
  static const IconData thumb_up = IconData(0xea78, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">thumb_up_alt</i> &#x2014; material icon named "thumb up alt".
  static const IconData thumb_up_alt = IconData(0xea79, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">thumb_up_alt</i> &#x2014; material icon named "thumb up alt outlined".
  static const IconData thumb_up_alt_outlined = IconData(0xe4a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">thumb_up_alt</i> &#x2014; material icon named "thumb up alt rounded".
  static const IconData thumb_up_alt_rounded = IconData(0xf4da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">thumb_up_alt</i> &#x2014; material icon named "thumb up alt sharp".
  static const IconData thumb_up_alt_sharp = IconData(0xefad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">thumb_up_off_alt</i> &#x2014; material icon named "thumb up off alt".
  static const IconData thumb_up_off_alt = IconData(0xea7a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">thumb_up</i> &#x2014; material icon named "thumb up outlined".
  static const IconData thumb_up_outlined = IconData(0xe4aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">thumb_up</i> &#x2014; material icon named "thumb up rounded".
  static const IconData thumb_up_rounded = IconData(0xf4db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">thumb_up</i> &#x2014; material icon named "thumb up sharp".
  static const IconData thumb_up_sharp = IconData(0xefae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">thumbs_up_down</i> &#x2014; material icon named "thumbs up down".
  static const IconData thumbs_up_down = IconData(0xea7b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">thumbs_up_down</i> &#x2014; material icon named "thumbs up down outlined".
  static const IconData thumbs_up_down_outlined = IconData(0xe4ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">thumbs_up_down</i> &#x2014; material icon named "thumbs up down rounded".
  static const IconData thumbs_up_down_rounded = IconData(0xf4dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">thumbs_up_down</i> &#x2014; material icon named "thumbs up down sharp".
  static const IconData thumbs_up_down_sharp = IconData(0xefaf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">time_to_leave</i> &#x2014; material icon named "time to leave".
  static const IconData time_to_leave = IconData(0xea7c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">time_to_leave</i> &#x2014; material icon named "time to leave outlined".
  static const IconData time_to_leave_outlined = IconData(0xe4ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">time_to_leave</i> &#x2014; material icon named "time to leave rounded".
  static const IconData time_to_leave_rounded = IconData(0xf4dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">time_to_leave</i> &#x2014; material icon named "time to leave sharp".
  static const IconData time_to_leave_sharp = IconData(0xefb0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">timelapse</i> &#x2014; material icon named "timelapse".
  static const IconData timelapse = IconData(0xea7d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">timelapse</i> &#x2014; material icon named "timelapse outlined".
  static const IconData timelapse_outlined = IconData(0xe4ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">timelapse</i> &#x2014; material icon named "timelapse rounded".
  static const IconData timelapse_rounded = IconData(0xf4de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">timelapse</i> &#x2014; material icon named "timelapse sharp".
  static const IconData timelapse_sharp = IconData(0xefb1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">timeline</i> &#x2014; material icon named "timeline".
  static const IconData timeline = IconData(0xea7e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">timeline</i> &#x2014; material icon named "timeline outlined".
  static const IconData timeline_outlined = IconData(0xe4ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">timeline</i> &#x2014; material icon named "timeline rounded".
  static const IconData timeline_rounded = IconData(0xf4df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">timeline</i> &#x2014; material icon named "timeline sharp".
  static const IconData timeline_sharp = IconData(0xefb2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">timer</i> &#x2014; material icon named "timer".
  static const IconData timer = IconData(0xea7f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">timer_10</i> &#x2014; material icon named "timer 10".
  static const IconData timer_10 = IconData(0xea80, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">timer_10</i> &#x2014; material icon named "timer 10 outlined".
  static const IconData timer_10_outlined = IconData(0xe4af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">timer_10</i> &#x2014; material icon named "timer 10 rounded".
  static const IconData timer_10_rounded = IconData(0xf4e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">timer_10</i> &#x2014; material icon named "timer 10 sharp".
  static const IconData timer_10_sharp = IconData(0xefb3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">timer_3</i> &#x2014; material icon named "timer 3".
  static const IconData timer_3 = IconData(0xea81, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">timer_3</i> &#x2014; material icon named "timer 3 outlined".
  static const IconData timer_3_outlined = IconData(0xe4b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">timer_3</i> &#x2014; material icon named "timer 3 rounded".
  static const IconData timer_3_rounded = IconData(0xf4e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">timer_3</i> &#x2014; material icon named "timer 3 sharp".
  static const IconData timer_3_sharp = IconData(0xefb4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">timer_off</i> &#x2014; material icon named "timer off".
  static const IconData timer_off = IconData(0xea82, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">timer_off</i> &#x2014; material icon named "timer off outlined".
  static const IconData timer_off_outlined = IconData(0xe4b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">timer_off</i> &#x2014; material icon named "timer off rounded".
  static const IconData timer_off_rounded = IconData(0xf4e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">timer_off</i> &#x2014; material icon named "timer off sharp".
  static const IconData timer_off_sharp = IconData(0xefb5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">timer</i> &#x2014; material icon named "timer outlined".
  static const IconData timer_outlined = IconData(0xe4b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">timer</i> &#x2014; material icon named "timer rounded".
  static const IconData timer_rounded = IconData(0xf4e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">timer</i> &#x2014; material icon named "timer sharp".
  static const IconData timer_sharp = IconData(0xefb6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">title</i> &#x2014; material icon named "title".
  static const IconData title = IconData(0xea83, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">title</i> &#x2014; material icon named "title outlined".
  static const IconData title_outlined = IconData(0xe4b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">title</i> &#x2014; material icon named "title rounded".
  static const IconData title_rounded = IconData(0xf4e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">title</i> &#x2014; material icon named "title sharp".
  static const IconData title_sharp = IconData(0xefb7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">toc</i> &#x2014; material icon named "toc".
  static const IconData toc = IconData(0xea84, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">toc</i> &#x2014; material icon named "toc outlined".
  static const IconData toc_outlined = IconData(0xe4b4, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">toc</i> &#x2014; material icon named "toc rounded".
  static const IconData toc_rounded = IconData(0xf4e5, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">toc</i> &#x2014; material icon named "toc sharp".
  static const IconData toc_sharp = IconData(0xefb8, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">today</i> &#x2014; material icon named "today".
  static const IconData today = IconData(0xea85, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">today</i> &#x2014; material icon named "today outlined".
  static const IconData today_outlined = IconData(0xe4b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">today</i> &#x2014; material icon named "today rounded".
  static const IconData today_rounded = IconData(0xf4e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">today</i> &#x2014; material icon named "today sharp".
  static const IconData today_sharp = IconData(0xefb9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">toggle_off</i> &#x2014; material icon named "toggle off".
  static const IconData toggle_off = IconData(0xea86, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">toggle_off</i> &#x2014; material icon named "toggle off outlined".
  static const IconData toggle_off_outlined = IconData(0xe4b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">toggle_off</i> &#x2014; material icon named "toggle off rounded".
  static const IconData toggle_off_rounded = IconData(0xf4e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">toggle_off</i> &#x2014; material icon named "toggle off sharp".
  static const IconData toggle_off_sharp = IconData(0xefba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">toggle_on</i> &#x2014; material icon named "toggle on".
  static const IconData toggle_on = IconData(0xea87, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">toggle_on</i> &#x2014; material icon named "toggle on outlined".
  static const IconData toggle_on_outlined = IconData(0xe4b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">toggle_on</i> &#x2014; material icon named "toggle on rounded".
  static const IconData toggle_on_rounded = IconData(0xf4e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">toggle_on</i> &#x2014; material icon named "toggle on sharp".
  static const IconData toggle_on_sharp = IconData(0xefbb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">toll</i> &#x2014; material icon named "toll".
  static const IconData toll = IconData(0xea88, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">toll</i> &#x2014; material icon named "toll outlined".
  static const IconData toll_outlined = IconData(0xe4b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">toll</i> &#x2014; material icon named "toll rounded".
  static const IconData toll_rounded = IconData(0xf4e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">toll</i> &#x2014; material icon named "toll sharp".
  static const IconData toll_sharp = IconData(0xefbc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tonality</i> &#x2014; material icon named "tonality".
  static const IconData tonality = IconData(0xea89, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tonality</i> &#x2014; material icon named "tonality outlined".
  static const IconData tonality_outlined = IconData(0xe4b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tonality</i> &#x2014; material icon named "tonality rounded".
  static const IconData tonality_rounded = IconData(0xf4ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tonality</i> &#x2014; material icon named "tonality sharp".
  static const IconData tonality_sharp = IconData(0xefbd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">topic</i> &#x2014; material icon named "topic".
  static const IconData topic = IconData(0xea8a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">topic</i> &#x2014; material icon named "topic outlined".
  static const IconData topic_outlined = IconData(0xe4ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">topic</i> &#x2014; material icon named "topic rounded".
  static const IconData topic_rounded = IconData(0xf4eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">topic</i> &#x2014; material icon named "topic sharp".
  static const IconData topic_sharp = IconData(0xefbe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">touch_app</i> &#x2014; material icon named "touch app".
  static const IconData touch_app = IconData(0xea8b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">touch_app</i> &#x2014; material icon named "touch app outlined".
  static const IconData touch_app_outlined = IconData(0xe4bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">touch_app</i> &#x2014; material icon named "touch app rounded".
  static const IconData touch_app_rounded = IconData(0xf4ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">touch_app</i> &#x2014; material icon named "touch app sharp".
  static const IconData touch_app_sharp = IconData(0xefbf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tour</i> &#x2014; material icon named "tour".
  static const IconData tour = IconData(0xea8c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tour</i> &#x2014; material icon named "tour outlined".
  static const IconData tour_outlined = IconData(0xe4bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tour</i> &#x2014; material icon named "tour rounded".
  static const IconData tour_rounded = IconData(0xf4ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tour</i> &#x2014; material icon named "tour sharp".
  static const IconData tour_sharp = IconData(0xefc0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">toys</i> &#x2014; material icon named "toys".
  static const IconData toys = IconData(0xea8d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">toys</i> &#x2014; material icon named "toys outlined".
  static const IconData toys_outlined = IconData(0xe4bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">toys</i> &#x2014; material icon named "toys rounded".
  static const IconData toys_rounded = IconData(0xf4ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">toys</i> &#x2014; material icon named "toys sharp".
  static const IconData toys_sharp = IconData(0xefc1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">track_changes</i> &#x2014; material icon named "track changes".
  static const IconData track_changes = IconData(0xea8e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">track_changes</i> &#x2014; material icon named "track changes outlined".
  static const IconData track_changes_outlined = IconData(0xe4be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">track_changes</i> &#x2014; material icon named "track changes rounded".
  static const IconData track_changes_rounded = IconData(0xf4ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">track_changes</i> &#x2014; material icon named "track changes sharp".
  static const IconData track_changes_sharp = IconData(0xefc2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">traffic</i> &#x2014; material icon named "traffic".
  static const IconData traffic = IconData(0xea8f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">traffic</i> &#x2014; material icon named "traffic outlined".
  static const IconData traffic_outlined = IconData(0xe4bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">traffic</i> &#x2014; material icon named "traffic rounded".
  static const IconData traffic_rounded = IconData(0xf4f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">traffic</i> &#x2014; material icon named "traffic sharp".
  static const IconData traffic_sharp = IconData(0xefc3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">train</i> &#x2014; material icon named "train".
  static const IconData train = IconData(0xea90, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">train</i> &#x2014; material icon named "train outlined".
  static const IconData train_outlined = IconData(0xe4c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">train</i> &#x2014; material icon named "train rounded".
  static const IconData train_rounded = IconData(0xf4f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">train</i> &#x2014; material icon named "train sharp".
  static const IconData train_sharp = IconData(0xefc4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tram</i> &#x2014; material icon named "tram".
  static const IconData tram = IconData(0xea91, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tram</i> &#x2014; material icon named "tram outlined".
  static const IconData tram_outlined = IconData(0xe4c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tram</i> &#x2014; material icon named "tram rounded".
  static const IconData tram_rounded = IconData(0xf4f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tram</i> &#x2014; material icon named "tram sharp".
  static const IconData tram_sharp = IconData(0xefc5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">transfer_within_a_station</i> &#x2014; material icon named "transfer within a station".
  static const IconData transfer_within_a_station = IconData(0xea92, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">transfer_within_a_station</i> &#x2014; material icon named "transfer within a station outlined".
  static const IconData transfer_within_a_station_outlined = IconData(0xe4c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">transfer_within_a_station</i> &#x2014; material icon named "transfer within a station rounded".
  static const IconData transfer_within_a_station_rounded = IconData(0xf4f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">transfer_within_a_station</i> &#x2014; material icon named "transfer within a station sharp".
  static const IconData transfer_within_a_station_sharp = IconData(0xefc6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">transform</i> &#x2014; material icon named "transform".
  static const IconData transform = IconData(0xea93, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">transform</i> &#x2014; material icon named "transform outlined".
  static const IconData transform_outlined = IconData(0xe4c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">transform</i> &#x2014; material icon named "transform rounded".
  static const IconData transform_rounded = IconData(0xf4f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">transform</i> &#x2014; material icon named "transform sharp".
  static const IconData transform_sharp = IconData(0xefc7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">transit_enterexit</i> &#x2014; material icon named "transit enterexit".
  static const IconData transit_enterexit = IconData(0xea94, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">transit_enterexit</i> &#x2014; material icon named "transit enterexit outlined".
  static const IconData transit_enterexit_outlined = IconData(0xe4c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">transit_enterexit</i> &#x2014; material icon named "transit enterexit rounded".
  static const IconData transit_enterexit_rounded = IconData(0xf4f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">transit_enterexit</i> &#x2014; material icon named "transit enterexit sharp".
  static const IconData transit_enterexit_sharp = IconData(0xefc8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">translate</i> &#x2014; material icon named "translate".
  static const IconData translate = IconData(0xea95, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">translate</i> &#x2014; material icon named "translate outlined".
  static const IconData translate_outlined = IconData(0xe4c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">translate</i> &#x2014; material icon named "translate rounded".
  static const IconData translate_rounded = IconData(0xf4f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">translate</i> &#x2014; material icon named "translate sharp".
  static const IconData translate_sharp = IconData(0xefc9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">trending_down</i> &#x2014; material icon named "trending down".
  static const IconData trending_down = IconData(0xea96, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">trending_down</i> &#x2014; material icon named "trending down outlined".
  static const IconData trending_down_outlined = IconData(0xe4c6, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">trending_down</i> &#x2014; material icon named "trending down rounded".
  static const IconData trending_down_rounded = IconData(0xf4f7, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">trending_down</i> &#x2014; material icon named "trending down sharp".
  static const IconData trending_down_sharp = IconData(0xefca, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">trending_flat</i> &#x2014; material icon named "trending flat".
  static const IconData trending_flat = IconData(0xea97, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">trending_flat</i> &#x2014; material icon named "trending flat outlined".
  static const IconData trending_flat_outlined = IconData(0xe4c7, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">trending_flat</i> &#x2014; material icon named "trending flat rounded".
  static const IconData trending_flat_rounded = IconData(0xf4f8, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">trending_flat</i> &#x2014; material icon named "trending flat sharp".
  static const IconData trending_flat_sharp = IconData(0xefcb, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">trending_neutral</i> &#x2014; material icon named "trending neutral".
  static const IconData trending_neutral = IconData(0xea97, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">trending_neutral</i> &#x2014; material icon named "trending neutral outlined".
  static const IconData trending_neutral_outlined = IconData(0xe4c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">trending_neutral</i> &#x2014; material icon named "trending neutral rounded".
  static const IconData trending_neutral_rounded = IconData(0xf4f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">trending_neutral</i> &#x2014; material icon named "trending neutral sharp".
  static const IconData trending_neutral_sharp = IconData(0xefcb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">trending_up</i> &#x2014; material icon named "trending up".
  static const IconData trending_up = IconData(0xea98, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">trending_up</i> &#x2014; material icon named "trending up outlined".
  static const IconData trending_up_outlined = IconData(0xe4c8, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">trending_up</i> &#x2014; material icon named "trending up rounded".
  static const IconData trending_up_rounded = IconData(0xf4f9, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">trending_up</i> &#x2014; material icon named "trending up sharp".
  static const IconData trending_up_sharp = IconData(0xefcc, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">trip_origin</i> &#x2014; material icon named "trip origin".
  static const IconData trip_origin = IconData(0xea99, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">trip_origin</i> &#x2014; material icon named "trip origin outlined".
  static const IconData trip_origin_outlined = IconData(0xe4c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">trip_origin</i> &#x2014; material icon named "trip origin rounded".
  static const IconData trip_origin_rounded = IconData(0xf4fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">trip_origin</i> &#x2014; material icon named "trip origin sharp".
  static const IconData trip_origin_sharp = IconData(0xefcd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tty</i> &#x2014; material icon named "tty".
  static const IconData tty = IconData(0xea9a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tty</i> &#x2014; material icon named "tty outlined".
  static const IconData tty_outlined = IconData(0xe4ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tty</i> &#x2014; material icon named "tty rounded".
  static const IconData tty_rounded = IconData(0xf4fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tty</i> &#x2014; material icon named "tty sharp".
  static const IconData tty_sharp = IconData(0xefce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tune</i> &#x2014; material icon named "tune".
  static const IconData tune = IconData(0xea9b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tune</i> &#x2014; material icon named "tune outlined".
  static const IconData tune_outlined = IconData(0xe4cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tune</i> &#x2014; material icon named "tune rounded".
  static const IconData tune_rounded = IconData(0xf4fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tune</i> &#x2014; material icon named "tune sharp".
  static const IconData tune_sharp = IconData(0xefcf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">turned_in</i> &#x2014; material icon named "turned in".
  static const IconData turned_in = IconData(0xea9c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">turned_in_not</i> &#x2014; material icon named "turned in not".
  static const IconData turned_in_not = IconData(0xea9d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">turned_in_not</i> &#x2014; material icon named "turned in not outlined".
  static const IconData turned_in_not_outlined = IconData(0xe4cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">turned_in_not</i> &#x2014; material icon named "turned in not rounded".
  static const IconData turned_in_not_rounded = IconData(0xf4fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">turned_in_not</i> &#x2014; material icon named "turned in not sharp".
  static const IconData turned_in_not_sharp = IconData(0xefd0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">turned_in</i> &#x2014; material icon named "turned in outlined".
  static const IconData turned_in_outlined = IconData(0xe4cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">turned_in</i> &#x2014; material icon named "turned in rounded".
  static const IconData turned_in_rounded = IconData(0xf4fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">turned_in</i> &#x2014; material icon named "turned in sharp".
  static const IconData turned_in_sharp = IconData(0xefd1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tv</i> &#x2014; material icon named "tv".
  static const IconData tv = IconData(0xea9e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tv_off</i> &#x2014; material icon named "tv off".
  static const IconData tv_off = IconData(0xea9f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tv_off</i> &#x2014; material icon named "tv off outlined".
  static const IconData tv_off_outlined = IconData(0xe4ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tv_off</i> &#x2014; material icon named "tv off rounded".
  static const IconData tv_off_rounded = IconData(0xf4ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tv_off</i> &#x2014; material icon named "tv off sharp".
  static const IconData tv_off_sharp = IconData(0xefd2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tv</i> &#x2014; material icon named "tv outlined".
  static const IconData tv_outlined = IconData(0xe4cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tv</i> &#x2014; material icon named "tv rounded".
  static const IconData tv_rounded = IconData(0xf500, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tv</i> &#x2014; material icon named "tv sharp".
  static const IconData tv_sharp = IconData(0xefd3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">two_wheeler</i> &#x2014; material icon named "two wheeler".
  static const IconData two_wheeler = IconData(0xeaa0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">two_wheeler</i> &#x2014; material icon named "two wheeler outlined".
  static const IconData two_wheeler_outlined = IconData(0xe4d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">two_wheeler</i> &#x2014; material icon named "two wheeler rounded".
  static const IconData two_wheeler_rounded = IconData(0xf501, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">two_wheeler</i> &#x2014; material icon named "two wheeler sharp".
  static const IconData two_wheeler_sharp = IconData(0xefd4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">umbrella</i> &#x2014; material icon named "umbrella".
  static const IconData umbrella = IconData(0xeaa1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">umbrella</i> &#x2014; material icon named "umbrella outlined".
  static const IconData umbrella_outlined = IconData(0xe4d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">umbrella</i> &#x2014; material icon named "umbrella rounded".
  static const IconData umbrella_rounded = IconData(0xf502, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">umbrella</i> &#x2014; material icon named "umbrella sharp".
  static const IconData umbrella_sharp = IconData(0xefd5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">unarchive</i> &#x2014; material icon named "unarchive".
  static const IconData unarchive = IconData(0xeaa2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">unarchive</i> &#x2014; material icon named "unarchive outlined".
  static const IconData unarchive_outlined = IconData(0xe4d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">unarchive</i> &#x2014; material icon named "unarchive rounded".
  static const IconData unarchive_rounded = IconData(0xf503, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">unarchive</i> &#x2014; material icon named "unarchive sharp".
  static const IconData unarchive_sharp = IconData(0xefd6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">undo</i> &#x2014; material icon named "undo".
  static const IconData undo = IconData(0xeaa3, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">undo</i> &#x2014; material icon named "undo outlined".
  static const IconData undo_outlined = IconData(0xe4d3, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">undo</i> &#x2014; material icon named "undo rounded".
  static const IconData undo_rounded = IconData(0xf504, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">undo</i> &#x2014; material icon named "undo sharp".
  static const IconData undo_sharp = IconData(0xefd7, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">unfold_less</i> &#x2014; material icon named "unfold less".
  static const IconData unfold_less = IconData(0xeaa4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">unfold_less</i> &#x2014; material icon named "unfold less outlined".
  static const IconData unfold_less_outlined = IconData(0xe4d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">unfold_less</i> &#x2014; material icon named "unfold less rounded".
  static const IconData unfold_less_rounded = IconData(0xf505, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">unfold_less</i> &#x2014; material icon named "unfold less sharp".
  static const IconData unfold_less_sharp = IconData(0xefd8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">unfold_more</i> &#x2014; material icon named "unfold more".
  static const IconData unfold_more = IconData(0xeaa5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">unfold_more</i> &#x2014; material icon named "unfold more outlined".
  static const IconData unfold_more_outlined = IconData(0xe4d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">unfold_more</i> &#x2014; material icon named "unfold more rounded".
  static const IconData unfold_more_rounded = IconData(0xf506, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">unfold_more</i> &#x2014; material icon named "unfold more sharp".
  static const IconData unfold_more_sharp = IconData(0xefd9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">unsubscribe</i> &#x2014; material icon named "unsubscribe".
  static const IconData unsubscribe = IconData(0xeaa6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">unsubscribe</i> &#x2014; material icon named "unsubscribe outlined".
  static const IconData unsubscribe_outlined = IconData(0xe4d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">unsubscribe</i> &#x2014; material icon named "unsubscribe rounded".
  static const IconData unsubscribe_rounded = IconData(0xf507, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">unsubscribe</i> &#x2014; material icon named "unsubscribe sharp".
  static const IconData unsubscribe_sharp = IconData(0xefda, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">update</i> &#x2014; material icon named "update".
  static const IconData update = IconData(0xeaa7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">update</i> &#x2014; material icon named "update outlined".
  static const IconData update_outlined = IconData(0xe4d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">update</i> &#x2014; material icon named "update rounded".
  static const IconData update_rounded = IconData(0xf508, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">update</i> &#x2014; material icon named "update sharp".
  static const IconData update_sharp = IconData(0xefdb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">upgrade</i> &#x2014; material icon named "upgrade".
  static const IconData upgrade = IconData(0xeaa8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">upgrade</i> &#x2014; material icon named "upgrade outlined".
  static const IconData upgrade_outlined = IconData(0xe4d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">upgrade</i> &#x2014; material icon named "upgrade rounded".
  static const IconData upgrade_rounded = IconData(0xf509, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">upgrade</i> &#x2014; material icon named "upgrade sharp".
  static const IconData upgrade_sharp = IconData(0xefdc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">upload_file</i> &#x2014; material icon named "upload file".
  static const IconData upload_file = IconData(0xeaa9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">upload</i> &#x2014; material icon named "upload outlined".
  static const IconData upload_outlined = IconData(0xe4d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">upload</i> &#x2014; material icon named "upload rounded".
  static const IconData upload_rounded = IconData(0xf50a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">upload</i> &#x2014; material icon named "upload sharp".
  static const IconData upload_sharp = IconData(0xefdd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">usb</i> &#x2014; material icon named "usb".
  static const IconData usb = IconData(0xeaaa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">usb</i> &#x2014; material icon named "usb outlined".
  static const IconData usb_outlined = IconData(0xe4da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">usb</i> &#x2014; material icon named "usb rounded".
  static const IconData usb_rounded = IconData(0xf50b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">usb</i> &#x2014; material icon named "usb sharp".
  static const IconData usb_sharp = IconData(0xefde, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">verified</i> &#x2014; material icon named "verified".
  static const IconData verified = IconData(0xeaab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">verified</i> &#x2014; material icon named "verified outlined".
  static const IconData verified_outlined = IconData(0xe4db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">verified</i> &#x2014; material icon named "verified rounded".
  static const IconData verified_rounded = IconData(0xf50c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">verified</i> &#x2014; material icon named "verified sharp".
  static const IconData verified_sharp = IconData(0xefdf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">verified_user</i> &#x2014; material icon named "verified user".
  static const IconData verified_user = IconData(0xeaac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">verified_user</i> &#x2014; material icon named "verified user outlined".
  static const IconData verified_user_outlined = IconData(0xe4dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">verified_user</i> &#x2014; material icon named "verified user rounded".
  static const IconData verified_user_rounded = IconData(0xf50d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">verified_user</i> &#x2014; material icon named "verified user sharp".
  static const IconData verified_user_sharp = IconData(0xefe0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vertical_align_bottom</i> &#x2014; material icon named "vertical align bottom".
  static const IconData vertical_align_bottom = IconData(0xeaad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">vertical_align_bottom</i> &#x2014; material icon named "vertical align bottom outlined".
  static const IconData vertical_align_bottom_outlined = IconData(0xe4dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vertical_align_bottom</i> &#x2014; material icon named "vertical align bottom rounded".
  static const IconData vertical_align_bottom_rounded = IconData(0xf50e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">vertical_align_bottom</i> &#x2014; material icon named "vertical align bottom sharp".
  static const IconData vertical_align_bottom_sharp = IconData(0xefe1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vertical_align_center</i> &#x2014; material icon named "vertical align center".
  static const IconData vertical_align_center = IconData(0xeaae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">vertical_align_center</i> &#x2014; material icon named "vertical align center outlined".
  static const IconData vertical_align_center_outlined = IconData(0xe4de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vertical_align_center</i> &#x2014; material icon named "vertical align center rounded".
  static const IconData vertical_align_center_rounded = IconData(0xf50f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">vertical_align_center</i> &#x2014; material icon named "vertical align center sharp".
  static const IconData vertical_align_center_sharp = IconData(0xefe2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vertical_align_top</i> &#x2014; material icon named "vertical align top".
  static const IconData vertical_align_top = IconData(0xeaaf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">vertical_align_top</i> &#x2014; material icon named "vertical align top outlined".
  static const IconData vertical_align_top_outlined = IconData(0xe4df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vertical_align_top</i> &#x2014; material icon named "vertical align top rounded".
  static const IconData vertical_align_top_rounded = IconData(0xf510, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">vertical_align_top</i> &#x2014; material icon named "vertical align top sharp".
  static const IconData vertical_align_top_sharp = IconData(0xefe3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vertical_split</i> &#x2014; material icon named "vertical split".
  static const IconData vertical_split = IconData(0xeab0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">vertical_split</i> &#x2014; material icon named "vertical split outlined".
  static const IconData vertical_split_outlined = IconData(0xe4e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vertical_split</i> &#x2014; material icon named "vertical split rounded".
  static const IconData vertical_split_rounded = IconData(0xf511, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">vertical_split</i> &#x2014; material icon named "vertical split sharp".
  static const IconData vertical_split_sharp = IconData(0xefe4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vibration</i> &#x2014; material icon named "vibration".
  static const IconData vibration = IconData(0xeab1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">vibration</i> &#x2014; material icon named "vibration outlined".
  static const IconData vibration_outlined = IconData(0xe4e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vibration</i> &#x2014; material icon named "vibration rounded".
  static const IconData vibration_rounded = IconData(0xf512, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">vibration</i> &#x2014; material icon named "vibration sharp".
  static const IconData vibration_sharp = IconData(0xefe5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">video_call</i> &#x2014; material icon named "video call".
  static const IconData video_call = IconData(0xeab2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">video_call</i> &#x2014; material icon named "video call outlined".
  static const IconData video_call_outlined = IconData(0xe4e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">video_call</i> &#x2014; material icon named "video call rounded".
  static const IconData video_call_rounded = IconData(0xf513, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">video_call</i> &#x2014; material icon named "video call sharp".
  static const IconData video_call_sharp = IconData(0xefe6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">video_collection</i> &#x2014; material icon named "video collection".
  static const IconData video_collection = IconData(0xeab4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">video_collection</i> &#x2014; material icon named "video collection outlined".
  static const IconData video_collection_outlined = IconData(0xe4e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">video_collection</i> &#x2014; material icon named "video collection rounded".
  static const IconData video_collection_rounded = IconData(0xf515, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">video_collection</i> &#x2014; material icon named "video collection sharp".
  static const IconData video_collection_sharp = IconData(0xefe8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">video_label</i> &#x2014; material icon named "video label".
  static const IconData video_label = IconData(0xeab3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">video_label</i> &#x2014; material icon named "video label outlined".
  static const IconData video_label_outlined = IconData(0xe4e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">video_label</i> &#x2014; material icon named "video label rounded".
  static const IconData video_label_rounded = IconData(0xf514, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">video_label</i> &#x2014; material icon named "video label sharp".
  static const IconData video_label_sharp = IconData(0xefe7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">video_library</i> &#x2014; material icon named "video library".
  static const IconData video_library = IconData(0xeab4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">video_library</i> &#x2014; material icon named "video library outlined".
  static const IconData video_library_outlined = IconData(0xe4e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">video_library</i> &#x2014; material icon named "video library rounded".
  static const IconData video_library_rounded = IconData(0xf515, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">video_library</i> &#x2014; material icon named "video library sharp".
  static const IconData video_library_sharp = IconData(0xefe8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">video_settings</i> &#x2014; material icon named "video settings".
  static const IconData video_settings = IconData(0xeab5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">video_settings</i> &#x2014; material icon named "video settings outlined".
  static const IconData video_settings_outlined = IconData(0xe4e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">video_settings</i> &#x2014; material icon named "video settings rounded".
  static const IconData video_settings_rounded = IconData(0xf516, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">video_settings</i> &#x2014; material icon named "video settings sharp".
  static const IconData video_settings_sharp = IconData(0xefe9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">videocam</i> &#x2014; material icon named "videocam".
  static const IconData videocam = IconData(0xeab6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">videocam_off</i> &#x2014; material icon named "videocam off".
  static const IconData videocam_off = IconData(0xeab7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">videocam_off</i> &#x2014; material icon named "videocam off outlined".
  static const IconData videocam_off_outlined = IconData(0xe4e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">videocam_off</i> &#x2014; material icon named "videocam off rounded".
  static const IconData videocam_off_rounded = IconData(0xf517, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">videocam_off</i> &#x2014; material icon named "videocam off sharp".
  static const IconData videocam_off_sharp = IconData(0xefea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">videocam</i> &#x2014; material icon named "videocam outlined".
  static const IconData videocam_outlined = IconData(0xe4e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">videocam</i> &#x2014; material icon named "videocam rounded".
  static const IconData videocam_rounded = IconData(0xf518, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">videocam</i> &#x2014; material icon named "videocam sharp".
  static const IconData videocam_sharp = IconData(0xefeb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">videogame_asset</i> &#x2014; material icon named "videogame asset".
  static const IconData videogame_asset = IconData(0xeab8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">videogame_asset</i> &#x2014; material icon named "videogame asset outlined".
  static const IconData videogame_asset_outlined = IconData(0xe4e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">videogame_asset</i> &#x2014; material icon named "videogame asset rounded".
  static const IconData videogame_asset_rounded = IconData(0xf519, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">videogame_asset</i> &#x2014; material icon named "videogame asset sharp".
  static const IconData videogame_asset_sharp = IconData(0xefec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_agenda</i> &#x2014; material icon named "view agenda".
  static const IconData view_agenda = IconData(0xeab9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_agenda</i> &#x2014; material icon named "view agenda outlined".
  static const IconData view_agenda_outlined = IconData(0xe4e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_agenda</i> &#x2014; material icon named "view agenda rounded".
  static const IconData view_agenda_rounded = IconData(0xf51a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_agenda</i> &#x2014; material icon named "view agenda sharp".
  static const IconData view_agenda_sharp = IconData(0xefed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_array</i> &#x2014; material icon named "view array".
  static const IconData view_array = IconData(0xeaba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_array</i> &#x2014; material icon named "view array outlined".
  static const IconData view_array_outlined = IconData(0xe4ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_array</i> &#x2014; material icon named "view array rounded".
  static const IconData view_array_rounded = IconData(0xf51b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_array</i> &#x2014; material icon named "view array sharp".
  static const IconData view_array_sharp = IconData(0xefee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_carousel</i> &#x2014; material icon named "view carousel".
  static const IconData view_carousel = IconData(0xeabb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_carousel</i> &#x2014; material icon named "view carousel outlined".
  static const IconData view_carousel_outlined = IconData(0xe4eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_carousel</i> &#x2014; material icon named "view carousel rounded".
  static const IconData view_carousel_rounded = IconData(0xf51c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_carousel</i> &#x2014; material icon named "view carousel sharp".
  static const IconData view_carousel_sharp = IconData(0xefef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_column</i> &#x2014; material icon named "view column".
  static const IconData view_column = IconData(0xeabc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_column</i> &#x2014; material icon named "view column outlined".
  static const IconData view_column_outlined = IconData(0xe4ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_column</i> &#x2014; material icon named "view column rounded".
  static const IconData view_column_rounded = IconData(0xf51d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_column</i> &#x2014; material icon named "view column sharp".
  static const IconData view_column_sharp = IconData(0xeff0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_comfortable</i> &#x2014; material icon named "view comfortable".
  static const IconData view_comfortable = IconData(0xeabd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_comfortable</i> &#x2014; material icon named "view comfortable outlined".
  static const IconData view_comfortable_outlined = IconData(0xe4ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_comfortable</i> &#x2014; material icon named "view comfortable rounded".
  static const IconData view_comfortable_rounded = IconData(0xf51e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_comfortable</i> &#x2014; material icon named "view comfortable sharp".
  static const IconData view_comfortable_sharp = IconData(0xeff1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_comfy</i> &#x2014; material icon named "view comfy".
  static const IconData view_comfy = IconData(0xeabd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_comfy</i> &#x2014; material icon named "view comfy outlined".
  static const IconData view_comfy_outlined = IconData(0xe4ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_comfy</i> &#x2014; material icon named "view comfy rounded".
  static const IconData view_comfy_rounded = IconData(0xf51e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_comfy</i> &#x2014; material icon named "view comfy sharp".
  static const IconData view_comfy_sharp = IconData(0xeff1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_compact</i> &#x2014; material icon named "view compact".
  static const IconData view_compact = IconData(0xeabe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_compact</i> &#x2014; material icon named "view compact outlined".
  static const IconData view_compact_outlined = IconData(0xe4ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_compact</i> &#x2014; material icon named "view compact rounded".
  static const IconData view_compact_rounded = IconData(0xf51f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_compact</i> &#x2014; material icon named "view compact sharp".
  static const IconData view_compact_sharp = IconData(0xeff2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_day</i> &#x2014; material icon named "view day".
  static const IconData view_day = IconData(0xeabf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_day</i> &#x2014; material icon named "view day outlined".
  static const IconData view_day_outlined = IconData(0xe4ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_day</i> &#x2014; material icon named "view day rounded".
  static const IconData view_day_rounded = IconData(0xf520, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_day</i> &#x2014; material icon named "view day sharp".
  static const IconData view_day_sharp = IconData(0xeff3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_headline</i> &#x2014; material icon named "view headline".
  static const IconData view_headline = IconData(0xeac0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_headline</i> &#x2014; material icon named "view headline outlined".
  static const IconData view_headline_outlined = IconData(0xe4f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_headline</i> &#x2014; material icon named "view headline rounded".
  static const IconData view_headline_rounded = IconData(0xf521, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_headline</i> &#x2014; material icon named "view headline sharp".
  static const IconData view_headline_sharp = IconData(0xeff4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_in_ar</i> &#x2014; material icon named "view in ar".
  static const IconData view_in_ar = IconData(0xeac1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_list</i> &#x2014; material icon named "view list".
  static const IconData view_list = IconData(0xeac2, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">view_list</i> &#x2014; material icon named "view list outlined".
  static const IconData view_list_outlined = IconData(0xe4f1, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">view_list</i> &#x2014; material icon named "view list rounded".
  static const IconData view_list_rounded = IconData(0xf522, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">view_list</i> &#x2014; material icon named "view list sharp".
  static const IconData view_list_sharp = IconData(0xeff5, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">view_module</i> &#x2014; material icon named "view module".
  static const IconData view_module = IconData(0xeac3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_module</i> &#x2014; material icon named "view module outlined".
  static const IconData view_module_outlined = IconData(0xe4f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_module</i> &#x2014; material icon named "view module rounded".
  static const IconData view_module_rounded = IconData(0xf523, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_module</i> &#x2014; material icon named "view module sharp".
  static const IconData view_module_sharp = IconData(0xeff6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_quilt</i> &#x2014; material icon named "view quilt".
  static const IconData view_quilt = IconData(0xeac4, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">view_quilt</i> &#x2014; material icon named "view quilt outlined".
  static const IconData view_quilt_outlined = IconData(0xe4f3, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">view_quilt</i> &#x2014; material icon named "view quilt rounded".
  static const IconData view_quilt_rounded = IconData(0xf524, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">view_quilt</i> &#x2014; material icon named "view quilt sharp".
  static const IconData view_quilt_sharp = IconData(0xeff7, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">view_sidebar</i> &#x2014; material icon named "view sidebar".
  static const IconData view_sidebar = IconData(0xeac5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_sidebar</i> &#x2014; material icon named "view sidebar outlined".
  static const IconData view_sidebar_outlined = IconData(0xe4f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_sidebar</i> &#x2014; material icon named "view sidebar rounded".
  static const IconData view_sidebar_rounded = IconData(0xf525, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_sidebar</i> &#x2014; material icon named "view sidebar sharp".
  static const IconData view_sidebar_sharp = IconData(0xeff8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_stream</i> &#x2014; material icon named "view stream".
  static const IconData view_stream = IconData(0xeac6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_stream</i> &#x2014; material icon named "view stream outlined".
  static const IconData view_stream_outlined = IconData(0xe4f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_stream</i> &#x2014; material icon named "view stream rounded".
  static const IconData view_stream_rounded = IconData(0xf526, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_stream</i> &#x2014; material icon named "view stream sharp".
  static const IconData view_stream_sharp = IconData(0xeff9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_week</i> &#x2014; material icon named "view week".
  static const IconData view_week = IconData(0xeac7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_week</i> &#x2014; material icon named "view week outlined".
  static const IconData view_week_outlined = IconData(0xe4f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_week</i> &#x2014; material icon named "view week rounded".
  static const IconData view_week_rounded = IconData(0xf527, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_week</i> &#x2014; material icon named "view week sharp".
  static const IconData view_week_sharp = IconData(0xeffa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vignette</i> &#x2014; material icon named "vignette".
  static const IconData vignette = IconData(0xeac8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">vignette</i> &#x2014; material icon named "vignette outlined".
  static const IconData vignette_outlined = IconData(0xe4f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vignette</i> &#x2014; material icon named "vignette rounded".
  static const IconData vignette_rounded = IconData(0xf528, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">vignette</i> &#x2014; material icon named "vignette sharp".
  static const IconData vignette_sharp = IconData(0xeffb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">visibility</i> &#x2014; material icon named "visibility".
  static const IconData visibility = IconData(0xeac9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">visibility_off</i> &#x2014; material icon named "visibility off".
  static const IconData visibility_off = IconData(0xeaca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">visibility_off</i> &#x2014; material icon named "visibility off outlined".
  static const IconData visibility_off_outlined = IconData(0xe4f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">visibility_off</i> &#x2014; material icon named "visibility off rounded".
  static const IconData visibility_off_rounded = IconData(0xf529, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">visibility_off</i> &#x2014; material icon named "visibility off sharp".
  static const IconData visibility_off_sharp = IconData(0xeffc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">visibility</i> &#x2014; material icon named "visibility outlined".
  static const IconData visibility_outlined = IconData(0xe4f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">visibility</i> &#x2014; material icon named "visibility rounded".
  static const IconData visibility_rounded = IconData(0xf52a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">visibility</i> &#x2014; material icon named "visibility sharp".
  static const IconData visibility_sharp = IconData(0xeffd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">voice_chat</i> &#x2014; material icon named "voice chat".
  static const IconData voice_chat = IconData(0xeacb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">voice_chat</i> &#x2014; material icon named "voice chat outlined".
  static const IconData voice_chat_outlined = IconData(0xe4fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">voice_chat</i> &#x2014; material icon named "voice chat rounded".
  static const IconData voice_chat_rounded = IconData(0xf52b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">voice_chat</i> &#x2014; material icon named "voice chat sharp".
  static const IconData voice_chat_sharp = IconData(0xeffe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">voice_over_off</i> &#x2014; material icon named "voice over off".
  static const IconData voice_over_off = IconData(0xeacc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">voice_over_off</i> &#x2014; material icon named "voice over off outlined".
  static const IconData voice_over_off_outlined = IconData(0xe4fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">voice_over_off</i> &#x2014; material icon named "voice over off rounded".
  static const IconData voice_over_off_rounded = IconData(0xf52c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">voice_over_off</i> &#x2014; material icon named "voice over off sharp".
  static const IconData voice_over_off_sharp = IconData(0xefff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">voicemail</i> &#x2014; material icon named "voicemail".
  static const IconData voicemail = IconData(0xeacd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">voicemail</i> &#x2014; material icon named "voicemail outlined".
  static const IconData voicemail_outlined = IconData(0xe4fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">voicemail</i> &#x2014; material icon named "voicemail rounded".
  static const IconData voicemail_rounded = IconData(0xf52d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">voicemail</i> &#x2014; material icon named "voicemail sharp".
  static const IconData voicemail_sharp = IconData(0xf000, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">volume_down</i> &#x2014; material icon named "volume down".
  static const IconData volume_down = IconData(0xeace, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">volume_down</i> &#x2014; material icon named "volume down outlined".
  static const IconData volume_down_outlined = IconData(0xe4fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">volume_down</i> &#x2014; material icon named "volume down rounded".
  static const IconData volume_down_rounded = IconData(0xf52e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">volume_down</i> &#x2014; material icon named "volume down sharp".
  static const IconData volume_down_sharp = IconData(0xf001, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">volume_mute</i> &#x2014; material icon named "volume mute".
  static const IconData volume_mute = IconData(0xeacf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">volume_mute</i> &#x2014; material icon named "volume mute outlined".
  static const IconData volume_mute_outlined = IconData(0xe4fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">volume_mute</i> &#x2014; material icon named "volume mute rounded".
  static const IconData volume_mute_rounded = IconData(0xf52f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">volume_mute</i> &#x2014; material icon named "volume mute sharp".
  static const IconData volume_mute_sharp = IconData(0xf002, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">volume_off</i> &#x2014; material icon named "volume off".
  static const IconData volume_off = IconData(0xead0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">volume_off</i> &#x2014; material icon named "volume off outlined".
  static const IconData volume_off_outlined = IconData(0xe4ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">volume_off</i> &#x2014; material icon named "volume off rounded".
  static const IconData volume_off_rounded = IconData(0xf530, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">volume_off</i> &#x2014; material icon named "volume off sharp".
  static const IconData volume_off_sharp = IconData(0xf003, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">volume_up</i> &#x2014; material icon named "volume up".
  static const IconData volume_up = IconData(0xead1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">volume_up</i> &#x2014; material icon named "volume up outlined".
  static const IconData volume_up_outlined = IconData(0xe500, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">volume_up</i> &#x2014; material icon named "volume up rounded".
  static const IconData volume_up_rounded = IconData(0xf531, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">volume_up</i> &#x2014; material icon named "volume up sharp".
  static const IconData volume_up_sharp = IconData(0xf004, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">volunteer_activism</i> &#x2014; material icon named "volunteer activism".
  static const IconData volunteer_activism = IconData(0xead2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vpn_key</i> &#x2014; material icon named "vpn key".
  static const IconData vpn_key = IconData(0xead3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">vpn_key</i> &#x2014; material icon named "vpn key outlined".
  static const IconData vpn_key_outlined = IconData(0xe501, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vpn_key</i> &#x2014; material icon named "vpn key rounded".
  static const IconData vpn_key_rounded = IconData(0xf532, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">vpn_key</i> &#x2014; material icon named "vpn key sharp".
  static const IconData vpn_key_sharp = IconData(0xf005, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vpn_lock</i> &#x2014; material icon named "vpn lock".
  static const IconData vpn_lock = IconData(0xead4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">vpn_lock</i> &#x2014; material icon named "vpn lock outlined".
  static const IconData vpn_lock_outlined = IconData(0xe502, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vpn_lock</i> &#x2014; material icon named "vpn lock rounded".
  static const IconData vpn_lock_rounded = IconData(0xf533, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">vpn_lock</i> &#x2014; material icon named "vpn lock sharp".
  static const IconData vpn_lock_sharp = IconData(0xf006, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wallet_giftcard</i> &#x2014; material icon named "wallet giftcard".
  static const IconData wallet_giftcard = IconData(0xe63a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wallet_giftcard</i> &#x2014; material icon named "wallet giftcard outlined".
  static const IconData wallet_giftcard_outlined = IconData(0xe0cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wallet_giftcard</i> &#x2014; material icon named "wallet giftcard rounded".
  static const IconData wallet_giftcard_rounded = IconData(0xf0fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wallet_giftcard</i> &#x2014; material icon named "wallet giftcard sharp".
  static const IconData wallet_giftcard_sharp = IconData(0xebcc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wallet_membership</i> &#x2014; material icon named "wallet membership".
  static const IconData wallet_membership = IconData(0xe63b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wallet_membership</i> &#x2014; material icon named "wallet membership outlined".
  static const IconData wallet_membership_outlined = IconData(0xe0cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wallet_membership</i> &#x2014; material icon named "wallet membership rounded".
  static const IconData wallet_membership_rounded = IconData(0xf0fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wallet_membership</i> &#x2014; material icon named "wallet membership sharp".
  static const IconData wallet_membership_sharp = IconData(0xebcd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wallet_travel</i> &#x2014; material icon named "wallet travel".
  static const IconData wallet_travel = IconData(0xe63c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wallet_travel</i> &#x2014; material icon named "wallet travel outlined".
  static const IconData wallet_travel_outlined = IconData(0xe0ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wallet_travel</i> &#x2014; material icon named "wallet travel rounded".
  static const IconData wallet_travel_rounded = IconData(0xf0fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wallet_travel</i> &#x2014; material icon named "wallet travel sharp".
  static const IconData wallet_travel_sharp = IconData(0xebce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wallpaper</i> &#x2014; material icon named "wallpaper".
  static const IconData wallpaper = IconData(0xead5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wallpaper</i> &#x2014; material icon named "wallpaper outlined".
  static const IconData wallpaper_outlined = IconData(0xe503, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wallpaper</i> &#x2014; material icon named "wallpaper rounded".
  static const IconData wallpaper_rounded = IconData(0xf534, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wallpaper</i> &#x2014; material icon named "wallpaper sharp".
  static const IconData wallpaper_sharp = IconData(0xf007, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">warning</i> &#x2014; material icon named "warning".
  static const IconData warning = IconData(0xead6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">warning_amber</i> &#x2014; material icon named "warning amber outlined".
  static const IconData warning_amber_outlined = IconData(0xe504, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">warning_amber</i> &#x2014; material icon named "warning amber rounded".
  static const IconData warning_amber_rounded = IconData(0xf535, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">warning_amber</i> &#x2014; material icon named "warning amber sharp".
  static const IconData warning_amber_sharp = IconData(0xf008, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">warning</i> &#x2014; material icon named "warning outlined".
  static const IconData warning_outlined = IconData(0xe505, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">warning</i> &#x2014; material icon named "warning rounded".
  static const IconData warning_rounded = IconData(0xf536, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">warning</i> &#x2014; material icon named "warning sharp".
  static const IconData warning_sharp = IconData(0xf009, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wash</i> &#x2014; material icon named "wash".
  static const IconData wash = IconData(0xead7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wash</i> &#x2014; material icon named "wash outlined".
  static const IconData wash_outlined = IconData(0xe506, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wash</i> &#x2014; material icon named "wash rounded".
  static const IconData wash_rounded = IconData(0xf537, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wash</i> &#x2014; material icon named "wash sharp".
  static const IconData wash_sharp = IconData(0xf00a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">watch</i> &#x2014; material icon named "watch".
  static const IconData watch = IconData(0xead8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">watch_later</i> &#x2014; material icon named "watch later".
  static const IconData watch_later = IconData(0xead9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">watch_later</i> &#x2014; material icon named "watch later outlined".
  static const IconData watch_later_outlined = IconData(0xe507, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">watch_later</i> &#x2014; material icon named "watch later rounded".
  static const IconData watch_later_rounded = IconData(0xf538, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">watch_later</i> &#x2014; material icon named "watch later sharp".
  static const IconData watch_later_sharp = IconData(0xf00b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">watch</i> &#x2014; material icon named "watch outlined".
  static const IconData watch_outlined = IconData(0xe508, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">watch</i> &#x2014; material icon named "watch rounded".
  static const IconData watch_rounded = IconData(0xf539, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">watch</i> &#x2014; material icon named "watch sharp".
  static const IconData watch_sharp = IconData(0xf00c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">water_damage</i> &#x2014; material icon named "water damage".
  static const IconData water_damage = IconData(0xeada, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">water_damage</i> &#x2014; material icon named "water damage outlined".
  static const IconData water_damage_outlined = IconData(0xe509, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">water_damage</i> &#x2014; material icon named "water damage rounded".
  static const IconData water_damage_rounded = IconData(0xf53a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">water_damage</i> &#x2014; material icon named "water damage sharp".
  static const IconData water_damage_sharp = IconData(0xf00d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">waterfall_chart</i> &#x2014; material icon named "waterfall chart".
  static const IconData waterfall_chart = IconData(0xeadb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">waves</i> &#x2014; material icon named "waves".
  static const IconData waves = IconData(0xeadc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">waves</i> &#x2014; material icon named "waves outlined".
  static const IconData waves_outlined = IconData(0xe50a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">waves</i> &#x2014; material icon named "waves rounded".
  static const IconData waves_rounded = IconData(0xf53b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">waves</i> &#x2014; material icon named "waves sharp".
  static const IconData waves_sharp = IconData(0xf00e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wb_auto</i> &#x2014; material icon named "wb auto".
  static const IconData wb_auto = IconData(0xeadd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wb_auto</i> &#x2014; material icon named "wb auto outlined".
  static const IconData wb_auto_outlined = IconData(0xe50b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wb_auto</i> &#x2014; material icon named "wb auto rounded".
  static const IconData wb_auto_rounded = IconData(0xf53c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wb_auto</i> &#x2014; material icon named "wb auto sharp".
  static const IconData wb_auto_sharp = IconData(0xf00f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wb_cloudy</i> &#x2014; material icon named "wb cloudy".
  static const IconData wb_cloudy = IconData(0xeade, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wb_cloudy</i> &#x2014; material icon named "wb cloudy outlined".
  static const IconData wb_cloudy_outlined = IconData(0xe50c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wb_cloudy</i> &#x2014; material icon named "wb cloudy rounded".
  static const IconData wb_cloudy_rounded = IconData(0xf53d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wb_cloudy</i> &#x2014; material icon named "wb cloudy sharp".
  static const IconData wb_cloudy_sharp = IconData(0xf010, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wb_incandescent</i> &#x2014; material icon named "wb incandescent".
  static const IconData wb_incandescent = IconData(0xeadf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wb_incandescent</i> &#x2014; material icon named "wb incandescent outlined".
  static const IconData wb_incandescent_outlined = IconData(0xe50d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wb_incandescent</i> &#x2014; material icon named "wb incandescent rounded".
  static const IconData wb_incandescent_rounded = IconData(0xf53e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wb_incandescent</i> &#x2014; material icon named "wb incandescent sharp".
  static const IconData wb_incandescent_sharp = IconData(0xf011, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wb_iridescent</i> &#x2014; material icon named "wb iridescent".
  static const IconData wb_iridescent = IconData(0xeae0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wb_iridescent</i> &#x2014; material icon named "wb iridescent outlined".
  static const IconData wb_iridescent_outlined = IconData(0xe50e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wb_iridescent</i> &#x2014; material icon named "wb iridescent rounded".
  static const IconData wb_iridescent_rounded = IconData(0xf53f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wb_iridescent</i> &#x2014; material icon named "wb iridescent sharp".
  static const IconData wb_iridescent_sharp = IconData(0xf012, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wb_shade</i> &#x2014; material icon named "wb shade".
  static const IconData wb_shade = IconData(0xeae1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wb_sunny</i> &#x2014; material icon named "wb sunny".
  static const IconData wb_sunny = IconData(0xeae2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wb_sunny</i> &#x2014; material icon named "wb sunny outlined".
  static const IconData wb_sunny_outlined = IconData(0xe50f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wb_sunny</i> &#x2014; material icon named "wb sunny rounded".
  static const IconData wb_sunny_rounded = IconData(0xf540, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wb_sunny</i> &#x2014; material icon named "wb sunny sharp".
  static const IconData wb_sunny_sharp = IconData(0xf013, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wb_twighlight</i> &#x2014; material icon named "wb twighlight".
  static const IconData wb_twighlight = IconData(0xeae3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wc</i> &#x2014; material icon named "wc".
  static const IconData wc = IconData(0xeae4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wc</i> &#x2014; material icon named "wc outlined".
  static const IconData wc_outlined = IconData(0xe510, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wc</i> &#x2014; material icon named "wc rounded".
  static const IconData wc_rounded = IconData(0xf541, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wc</i> &#x2014; material icon named "wc sharp".
  static const IconData wc_sharp = IconData(0xf014, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">web</i> &#x2014; material icon named "web".
  static const IconData web = IconData(0xeae5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">web_asset</i> &#x2014; material icon named "web asset".
  static const IconData web_asset = IconData(0xeae6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">web_asset</i> &#x2014; material icon named "web asset outlined".
  static const IconData web_asset_outlined = IconData(0xe511, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">web_asset</i> &#x2014; material icon named "web asset rounded".
  static const IconData web_asset_rounded = IconData(0xf542, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">web_asset</i> &#x2014; material icon named "web asset sharp".
  static const IconData web_asset_sharp = IconData(0xf015, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">web</i> &#x2014; material icon named "web outlined".
  static const IconData web_outlined = IconData(0xe512, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">web</i> &#x2014; material icon named "web rounded".
  static const IconData web_rounded = IconData(0xf543, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">web</i> &#x2014; material icon named "web sharp".
  static const IconData web_sharp = IconData(0xf016, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">weekend</i> &#x2014; material icon named "weekend".
  static const IconData weekend = IconData(0xeae7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">weekend</i> &#x2014; material icon named "weekend outlined".
  static const IconData weekend_outlined = IconData(0xe513, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">weekend</i> &#x2014; material icon named "weekend rounded".
  static const IconData weekend_rounded = IconData(0xf544, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">weekend</i> &#x2014; material icon named "weekend sharp".
  static const IconData weekend_sharp = IconData(0xf017, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">west</i> &#x2014; material icon named "west".
  static const IconData west = IconData(0xeae8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">west</i> &#x2014; material icon named "west outlined".
  static const IconData west_outlined = IconData(0xe514, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">west</i> &#x2014; material icon named "west rounded".
  static const IconData west_rounded = IconData(0xf545, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">west</i> &#x2014; material icon named "west sharp".
  static const IconData west_sharp = IconData(0xf018, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">whatshot</i> &#x2014; material icon named "whatshot".
  static const IconData whatshot = IconData(0xeae9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">whatshot</i> &#x2014; material icon named "whatshot outlined".
  static const IconData whatshot_outlined = IconData(0xe515, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">whatshot</i> &#x2014; material icon named "whatshot rounded".
  static const IconData whatshot_rounded = IconData(0xf546, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">whatshot</i> &#x2014; material icon named "whatshot sharp".
  static const IconData whatshot_sharp = IconData(0xf019, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wheelchair_pickup</i> &#x2014; material icon named "wheelchair pickup".
  static const IconData wheelchair_pickup = IconData(0xeaea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wheelchair_pickup</i> &#x2014; material icon named "wheelchair pickup outlined".
  static const IconData wheelchair_pickup_outlined = IconData(0xe516, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wheelchair_pickup</i> &#x2014; material icon named "wheelchair pickup rounded".
  static const IconData wheelchair_pickup_rounded = IconData(0xf547, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wheelchair_pickup</i> &#x2014; material icon named "wheelchair pickup sharp".
  static const IconData wheelchair_pickup_sharp = IconData(0xf01a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">where_to_vote</i> &#x2014; material icon named "where to vote".
  static const IconData where_to_vote = IconData(0xeaeb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">where_to_vote</i> &#x2014; material icon named "where to vote outlined".
  static const IconData where_to_vote_outlined = IconData(0xe517, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">where_to_vote</i> &#x2014; material icon named "where to vote rounded".
  static const IconData where_to_vote_rounded = IconData(0xf548, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">where_to_vote</i> &#x2014; material icon named "where to vote sharp".
  static const IconData where_to_vote_sharp = IconData(0xf01b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">widgets</i> &#x2014; material icon named "widgets".
  static const IconData widgets = IconData(0xeaec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">widgets</i> &#x2014; material icon named "widgets outlined".
  static const IconData widgets_outlined = IconData(0xe518, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">widgets</i> &#x2014; material icon named "widgets rounded".
  static const IconData widgets_rounded = IconData(0xf549, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">widgets</i> &#x2014; material icon named "widgets sharp".
  static const IconData widgets_sharp = IconData(0xf01c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wifi</i> &#x2014; material icon named "wifi".
  static const IconData wifi = IconData(0xeaed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wifi_calling</i> &#x2014; material icon named "wifi calling".
  static const IconData wifi_calling = IconData(0xeaee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wifi_calling</i> &#x2014; material icon named "wifi calling outlined".
  static const IconData wifi_calling_outlined = IconData(0xe519, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi_calling</i> &#x2014; material icon named "wifi calling rounded".
  static const IconData wifi_calling_rounded = IconData(0xf54a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wifi_calling</i> &#x2014; material icon named "wifi calling sharp".
  static const IconData wifi_calling_sharp = IconData(0xf01d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wifi_lock</i> &#x2014; material icon named "wifi lock".
  static const IconData wifi_lock = IconData(0xeaef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wifi_lock</i> &#x2014; material icon named "wifi lock outlined".
  static const IconData wifi_lock_outlined = IconData(0xe51a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi_lock</i> &#x2014; material icon named "wifi lock rounded".
  static const IconData wifi_lock_rounded = IconData(0xf54b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wifi_lock</i> &#x2014; material icon named "wifi lock sharp".
  static const IconData wifi_lock_sharp = IconData(0xf01e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wifi_off</i> &#x2014; material icon named "wifi off".
  static const IconData wifi_off = IconData(0xeaf0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wifi_off</i> &#x2014; material icon named "wifi off outlined".
  static const IconData wifi_off_outlined = IconData(0xe51b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi_off</i> &#x2014; material icon named "wifi off rounded".
  static const IconData wifi_off_rounded = IconData(0xf54c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wifi_off</i> &#x2014; material icon named "wifi off sharp".
  static const IconData wifi_off_sharp = IconData(0xf01f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wifi</i> &#x2014; material icon named "wifi outlined".
  static const IconData wifi_outlined = IconData(0xe51c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wifi_protected_setup</i> &#x2014; material icon named "wifi protected setup".
  static const IconData wifi_protected_setup = IconData(0xeaf1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wifi_protected_setup</i> &#x2014; material icon named "wifi protected setup outlined".
  static const IconData wifi_protected_setup_outlined = IconData(0xe51d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi_protected_setup</i> &#x2014; material icon named "wifi protected setup rounded".
  static const IconData wifi_protected_setup_rounded = IconData(0xf54d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wifi_protected_setup</i> &#x2014; material icon named "wifi protected setup sharp".
  static const IconData wifi_protected_setup_sharp = IconData(0xf020, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi</i> &#x2014; material icon named "wifi rounded".
  static const IconData wifi_rounded = IconData(0xf54e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wifi</i> &#x2014; material icon named "wifi sharp".
  static const IconData wifi_sharp = IconData(0xf021, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wifi_tethering</i> &#x2014; material icon named "wifi tethering".
  static const IconData wifi_tethering = IconData(0xeaf2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wifi_tethering</i> &#x2014; material icon named "wifi tethering outlined".
  static const IconData wifi_tethering_outlined = IconData(0xe51e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi_tethering</i> &#x2014; material icon named "wifi tethering rounded".
  static const IconData wifi_tethering_rounded = IconData(0xf54f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wifi_tethering</i> &#x2014; material icon named "wifi tethering sharp".
  static const IconData wifi_tethering_sharp = IconData(0xf022, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wine_bar</i> &#x2014; material icon named "wine bar".
  static const IconData wine_bar = IconData(0xeaf3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wine_bar</i> &#x2014; material icon named "wine bar outlined".
  static const IconData wine_bar_outlined = IconData(0xe51f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wine_bar</i> &#x2014; material icon named "wine bar rounded".
  static const IconData wine_bar_rounded = IconData(0xf550, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wine_bar</i> &#x2014; material icon named "wine bar sharp".
  static const IconData wine_bar_sharp = IconData(0xf023, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">work</i> &#x2014; material icon named "work".
  static const IconData work = IconData(0xeaf4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">work_off</i> &#x2014; material icon named "work off".
  static const IconData work_off = IconData(0xeaf5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">work_off</i> &#x2014; material icon named "work off outlined".
  static const IconData work_off_outlined = IconData(0xe520, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">work_off</i> &#x2014; material icon named "work off rounded".
  static const IconData work_off_rounded = IconData(0xf551, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">work_off</i> &#x2014; material icon named "work off sharp".
  static const IconData work_off_sharp = IconData(0xf024, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">work_outline</i> &#x2014; material icon named "work outline".
  static const IconData work_outline = IconData(0xeaf6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">work_outline</i> &#x2014; material icon named "work outline outlined".
  static const IconData work_outline_outlined = IconData(0xe521, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">work_outline</i> &#x2014; material icon named "work outline rounded".
  static const IconData work_outline_rounded = IconData(0xf552, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">work_outline</i> &#x2014; material icon named "work outline sharp".
  static const IconData work_outline_sharp = IconData(0xf025, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">work</i> &#x2014; material icon named "work outlined".
  static const IconData work_outlined = IconData(0xe522, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">work</i> &#x2014; material icon named "work rounded".
  static const IconData work_rounded = IconData(0xf553, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">work</i> &#x2014; material icon named "work sharp".
  static const IconData work_sharp = IconData(0xf026, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">workspaces_filled</i> &#x2014; material icon named "workspaces filled".
  static const IconData workspaces_filled = IconData(0xeaf7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">workspaces_outline</i> &#x2014; material icon named "workspaces outline".
  static const IconData workspaces_outline = IconData(0xeaf8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wrap_text</i> &#x2014; material icon named "wrap text".
  static const IconData wrap_text = IconData(0xeaf9, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-outlined md-36">wrap_text</i> &#x2014; material icon named "wrap text outlined".
  static const IconData wrap_text_outlined = IconData(0xe523, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-round md-36">wrap_text</i> &#x2014; material icon named "wrap text rounded".
  static const IconData wrap_text_rounded = IconData(0xf554, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons-sharp md-36">wrap_text</i> &#x2014; material icon named "wrap text sharp".
  static const IconData wrap_text_sharp = IconData(0xf027, fontFamily: 'MaterialIcons', matchTextDirection: true);

  /// <i class="material-icons md-36">wrong_location</i> &#x2014; material icon named "wrong location".
  static const IconData wrong_location = IconData(0xeafa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wrong_location</i> &#x2014; material icon named "wrong location outlined".
  static const IconData wrong_location_outlined = IconData(0xe524, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wrong_location</i> &#x2014; material icon named "wrong location rounded".
  static const IconData wrong_location_rounded = IconData(0xf555, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wrong_location</i> &#x2014; material icon named "wrong location sharp".
  static const IconData wrong_location_sharp = IconData(0xf028, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wysiwyg</i> &#x2014; material icon named "wysiwyg".
  static const IconData wysiwyg = IconData(0xeafb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wysiwyg</i> &#x2014; material icon named "wysiwyg outlined".
  static const IconData wysiwyg_outlined = IconData(0xe525, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wysiwyg</i> &#x2014; material icon named "wysiwyg rounded".
  static const IconData wysiwyg_rounded = IconData(0xf556, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wysiwyg</i> &#x2014; material icon named "wysiwyg sharp".
  static const IconData wysiwyg_sharp = IconData(0xf029, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">youtube_searched_for</i> &#x2014; material icon named "youtube searched for".
  static const IconData youtube_searched_for = IconData(0xeafc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">youtube_searched_for</i> &#x2014; material icon named "youtube searched for outlined".
  static const IconData youtube_searched_for_outlined = IconData(0xe526, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">youtube_searched_for</i> &#x2014; material icon named "youtube searched for rounded".
  static const IconData youtube_searched_for_rounded = IconData(0xf557, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">youtube_searched_for</i> &#x2014; material icon named "youtube searched for sharp".
  static const IconData youtube_searched_for_sharp = IconData(0xf02a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">zoom_in</i> &#x2014; material icon named "zoom in".
  static const IconData zoom_in = IconData(0xeafd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">zoom_in</i> &#x2014; material icon named "zoom in outlined".
  static const IconData zoom_in_outlined = IconData(0xe527, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">zoom_in</i> &#x2014; material icon named "zoom in rounded".
  static const IconData zoom_in_rounded = IconData(0xf558, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">zoom_in</i> &#x2014; material icon named "zoom in sharp".
  static const IconData zoom_in_sharp = IconData(0xf02b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">zoom_out</i> &#x2014; material icon named "zoom out".
  static const IconData zoom_out = IconData(0xeafe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">zoom_out_map</i> &#x2014; material icon named "zoom out map".
  static const IconData zoom_out_map = IconData(0xeaff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">zoom_out_map</i> &#x2014; material icon named "zoom out map outlined".
  static const IconData zoom_out_map_outlined = IconData(0xe528, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">zoom_out_map</i> &#x2014; material icon named "zoom out map rounded".
  static const IconData zoom_out_map_rounded = IconData(0xf559, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">zoom_out_map</i> &#x2014; material icon named "zoom out map sharp".
  static const IconData zoom_out_map_sharp = IconData(0xf02c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">zoom_out</i> &#x2014; material icon named "zoom out outlined".
  static const IconData zoom_out_outlined = IconData(0xe529, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">zoom_out</i> &#x2014; material icon named "zoom out rounded".
  static const IconData zoom_out_rounded = IconData(0xf55a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">zoom_out</i> &#x2014; material icon named "zoom out sharp".
  static const IconData zoom_out_sharp = IconData(0xf02d, fontFamily: 'MaterialIcons');
  // END GENERATED ICONS
}
