// 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.

/// @docImport 'animated_icons.dart';
/// @docImport 'icon_button.dart';
library;

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

// ignore_for_file: non_constant_identifier_names

/// A set of platform-adaptive Material Design icons.
///
/// Use [Icons.adaptive] to access a static instance of this class.
final class PlatformAdaptiveIcons implements Icons {
  const 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.
  // https://github.com/flutter/flutter/blob/main/docs/libraries/material/Updating-Material-Design-Fonts-%26-Icons.md

  // 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" (round) and <i class="material-icons-round md-36">arrow_back_ios</i> &#x2014; material icon named "arrow back ios" (round).;
  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" (round) and <i class="material-icons-round md-36">arrow_forward_ios</i> &#x2014; material icon named "arrow forward ios" (round).;
  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" (round) and <i class="material-icons-round md-36">flip_camera_ios</i> &#x2014; material icon named "flip camera ios" (round).;
  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" (round) and <i class="material-icons-round md-36">more_horiz</i> &#x2014; material icon named "more horiz" (round).;
  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;

  /// Platform-adaptive icon for <i class="material-icons-outlined md-36">share</i> &#x2014; material icon named "share" (outlined) and <i class="material-icons-outlined md-36">ios_share</i> &#x2014; material icon named "ios share" (outlined).;
  IconData get share_outlined => !_isCupertino() ? Icons.share_outlined : Icons.ios_share_outlined;

  /// Platform-adaptive icon for <i class="material-icons-round md-36">share</i> &#x2014; material icon named "share" (round) and <i class="material-icons-round md-36">ios_share</i> &#x2014; material icon named "ios share" (round).;
  IconData get share_rounded => !_isCupertino() ? Icons.share_rounded : Icons.ios_share_rounded;

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

/// Identifiers for the supported [Material Icons](https://material.io/resources/icons).
///
/// Use with the [Icon] class to show specific icons. Icons are identified by
/// their name as listed below, e.g. [Icons.airplanemode_on].
///
/// Search and find the perfect icon on the [Google Fonts](https://material.io/resources/icons) website.
///
/// 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 Material Icons 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.
///
/// ![The following code snippet would generate a row of icons consisting of a pink heart, a green musical note, and a blue umbrella, each progressively bigger than the last.](https://flutter.github.io/assets-for-api-docs/assets/widgets/icon.png)
///
/// ```dart
/// const Row(
///   mainAxisAlignment: MainAxisAlignment.spaceAround,
///   children: <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>
///  * [AnimatedIcons], for the list of available animated Material Icons.
@staticIconProvider
abstract final class 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 => const PlatformAdaptiveIcons._();

  // Generated code: do not hand-edit.
  // https://github.com/flutter/flutter/blob/main/docs/libraries/material/Updating-Material-Design-Fonts-%26-Icons.md
  // BEGIN GENERATED ICONS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons md-36">18_up_rating</i> &#x2014; material icon named "18 up rating".
  static const IconData eighteen_up_rating = IconData(0xf0784, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">18_up_rating</i> &#x2014; material icon named "18 up rating" (sharp).
  static const IconData eighteen_up_rating_sharp = IconData(0xf072c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">18_up_rating</i> &#x2014; material icon named "18 up rating" (round).
  static const IconData eighteen_up_rating_rounded = IconData(0xf07dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">18_up_rating</i> &#x2014; material icon named "18 up rating" (outlined).
  static const IconData eighteen_up_rating_outlined = IconData(
    0xf06d4,
    fontFamily: 'MaterialIcons',
  );

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons md-36">1x_mobiledata</i> &#x2014; material icon named "1x mobiledata".
  static const IconData one_x_mobiledata = IconData(0xe00d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">1x_mobiledata</i> &#x2014; material icon named "1x mobiledata" (sharp).
  static const IconData one_x_mobiledata_sharp = IconData(0xe70d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">1x_mobiledata</i> &#x2014; material icon named "1x mobiledata" (round).
  static const IconData one_x_mobiledata_rounded = IconData(0xf4ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">1x_mobiledata</i> &#x2014; material icon named "1x mobiledata" (outlined).
  static const IconData one_x_mobiledata_outlined = IconData(0xedff, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons md-36">30fps_select</i> &#x2014; material icon named "30fps select".
  static const IconData thirty_fps_select = IconData(0xe017, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">30fps_select</i> &#x2014; material icon named "30fps select" (sharp).
  static const IconData thirty_fps_select_sharp = IconData(0xe716, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">30fps_select</i> &#x2014; material icon named "30fps select" (round).
  static const IconData thirty_fps_select_rounded = IconData(0xf4f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">30fps_select</i> &#x2014; material icon named "30fps select" (outlined).
  static const IconData thirty_fps_select_outlined = IconData(0xee09, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

  /// <i class="material-icons md-36">3g_mobiledata</i> &#x2014; material icon named "3g mobiledata".
  static const IconData three_g_mobiledata = IconData(0xe01a, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">3g_mobiledata</i> &#x2014; material icon named "3g mobiledata" (round).
  static const IconData three_g_mobiledata_rounded = IconData(0xf4f9, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons md-36">4g_mobiledata</i> &#x2014; material icon named "4g mobiledata".
  static const IconData four_g_mobiledata = IconData(0xe01f, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">4g_mobiledata</i> &#x2014; material icon named "4g mobiledata" (round).
  static const IconData four_g_mobiledata_rounded = IconData(0xf4fe, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons md-36">4g_plus_mobiledata</i> &#x2014; material icon named "4g plus mobiledata".
  static const IconData four_g_plus_mobiledata = IconData(0xe020, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">4g_plus_mobiledata</i> &#x2014; material icon named "4g plus mobiledata" (sharp).
  static const IconData four_g_plus_mobiledata_sharp = IconData(
    0xe720,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">4g_plus_mobiledata</i> &#x2014; material icon named "4g plus mobiledata" (round).
  static const IconData four_g_plus_mobiledata_rounded = IconData(
    0xf4ff,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">4g_plus_mobiledata</i> &#x2014; material icon named "4g plus mobiledata" (outlined).
  static const IconData four_g_plus_mobiledata_outlined = IconData(
    0xee12,
    fontFamily: 'MaterialIcons',
  );

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons md-36">60fps_select</i> &#x2014; material icon named "60fps select".
  static const IconData sixty_fps_select = IconData(0xe029, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">60fps_select</i> &#x2014; material icon named "60fps select" (sharp).
  static const IconData sixty_fps_select_sharp = IconData(0xe728, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">60fps_select</i> &#x2014; material icon named "60fps select" (round).
  static const IconData sixty_fps_select_rounded = IconData(0xf508, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">60fps_select</i> &#x2014; material icon named "60fps select" (outlined).
  static const IconData sixty_fps_select_outlined = IconData(0xee1b, 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(0xe02a, 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(0xe72a, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons-round md-36">ac_unit</i> &#x2014; material icon named "ac unit" (round).
  static const IconData ac_unit_rounded = IconData(0xf516, 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(0xee29, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">access_alarm</i> &#x2014; material icon named "access alarm" (round).
  static const IconData access_alarm_rounded = IconData(0xf517, 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(0xee2a, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">access_alarms</i> &#x2014; material icon named "access alarms" (round).
  static const IconData access_alarms_rounded = IconData(0xf518, 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(0xee2b, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">access_time</i> &#x2014; material icon named "access time" (round).
  static const IconData access_time_rounded = IconData(0xf51a, 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(0xee2d, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons-round md-36">accessibility_new</i> &#x2014; material icon named "accessibility new" (round).
  static const IconData accessibility_new_rounded = IconData(0xf51b, 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(0xee2e, fontFamily: 'MaterialIcons');

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

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

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

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

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

  /// <i class="material-icons-round md-36">accessible_forward</i> &#x2014; material icon named "accessible forward" (round).
  static const IconData accessible_forward_rounded = IconData(0xf51d, 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(0xee30, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">account_balance</i> &#x2014; material icon named "account balance" (round).
  static const IconData account_balance_rounded = IconData(0xf51f, 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(0xee32, 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(0xe041, 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(
    0xe741,
    fontFamily: 'MaterialIcons',
  );

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

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

  /// <i class="material-icons-round md-36">account_box</i> &#x2014; material icon named "account box" (round).
  static const IconData account_box_rounded = IconData(0xf521, 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(0xee34, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">account_circle</i> &#x2014; material icon named "account circle" (round).
  static const IconData account_circle_rounded = IconData(0xf522, 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(0xee35, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">account_tree</i> &#x2014; material icon named "account tree" (round).
  static const IconData account_tree_rounded = IconData(0xf523, 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(0xee36, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">ad_units</i> &#x2014; material icon named "ad units" (round).
  static const IconData ad_units_rounded = IconData(0xf524, 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(0xee37, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

  /// <i class="material-icons-outlined md-36">add</i> &#x2014; material icon named "add" (outlined).
  static const IconData add_outlined = IconData(0xee47, 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(0xe048, 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(0xe747, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-round md-36">add_alarm</i> &#x2014; material icon named "add alarm" (round).
  static const IconData add_alarm_rounded = IconData(0xf527, 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(0xee3a, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">add_alert</i> &#x2014; material icon named "add alert" (round).
  static const IconData add_alert_rounded = IconData(0xf528, 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(0xee3b, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">add_box</i> &#x2014; material icon named "add box" (round).
  static const IconData add_box_rounded = IconData(0xf529, 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(0xee3c, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">add_business</i> &#x2014; material icon named "add business" (round).
  static const IconData add_business_rounded = IconData(0xf52a, 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(0xee3d, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons-round md-36">add_circle</i> &#x2014; material icon named "add circle" (round).
  static const IconData add_circle_rounded = IconData(0xf52d, 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(0xee40, 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(0xe050, 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(0xe74d, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-round md-36">add_comment</i> &#x2014; material icon named "add comment" (round).
  static const IconData add_comment_rounded = IconData(0xf52e, 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(0xee41, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

  /// <i class="material-icons-outlined md-36">add_home_work</i> &#x2014; material icon named "add home work" (outlined).
  static const IconData add_home_work_outlined = IconData(0xf06d6, 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(0xe052, 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(0xe750, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

  /// <i class="material-icons-round md-36">add_location</i> &#x2014; material icon named "add location" (round).
  static const IconData add_location_rounded = IconData(0xf532, 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(0xee45, 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(0xe055, 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(0xe752, fontFamily: 'MaterialIcons');

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

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

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

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

  /// <i class="material-icons-outlined md-36">add_moderator</i> &#x2014; material icon named "add moderator" (outlined).
  static const IconData add_moderator_outlined = IconData(0xee46, 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(0xe057, 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(0xe755, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

  /// <i class="material-icons-round md-36">add_road</i> &#x2014; material icon named "add road" (round).
  static const IconData add_road_rounded = IconData(0xf536, 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(0xee4a, 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(0xe05a, 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(0xe759, fontFamily: 'MaterialIcons');

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

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

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

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

  /// <i class="material-icons-outlined md-36">add_task</i> &#x2014; material icon named "add task" (outlined).
  static const IconData add_task_outlined = IconData(0xee4c, 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(0xe05c, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-outlined md-36">add_to_drive</i> &#x2014; material icon named "add to drive" (outlined).
  static const IconData add_to_drive_outlined = IconData(0xee4d, 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(0xe05d, 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(0xe75c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_to_home_screen</i> &#x2014; material icon named "add to home screen" (round).
  static const IconData add_to_home_screen_rounded = IconData(0xf53b, 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(0xee4e, 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(0xe05e, 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(0xe75d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">add_to_photos</i> &#x2014; material icon named "add to photos" (round).
  static const IconData add_to_photos_rounded = IconData(0xf53c, 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(0xee4f, 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(0xe05f, 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(0xe75e, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

  /// <i class="material-icons-sharp md-36">adf_scanner</i> &#x2014; material icon named "adf scanner" (sharp).
  static const IconData adf_scanner_sharp = IconData(0xf03c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">adf_scanner</i> &#x2014; material icon named "adf scanner" (round).
  static const IconData adf_scanner_rounded = IconData(0xf02d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">adf_scanner</i> &#x2014; material icon named "adf scanner" (outlined).
  static const IconData adf_scanner_outlined = IconData(0xf05b3, fontFamily: 'MaterialIcons');

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

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

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

  /// <i class="material-icons-outlined md-36">adjust</i> &#x2014; material icon named "adjust" (outlined).
  static const IconData adjust_outlined = IconData(0xee52, 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(0xe062, 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(0xe761, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

  /// <i class="material-icons-sharp md-36">ads_click</i> &#x2014; material icon named "ads click" (sharp).
  static const IconData ads_click_sharp = IconData(0xf03c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">ads_click</i> &#x2014; material icon named "ads click" (round).
  static const IconData ads_click_rounded = IconData(0xf02d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">ads_click</i> &#x2014; material icon named "ads click" (outlined).
  static const IconData ads_click_outlined = IconData(0xf05b5, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

  /// <i class="material-icons-outlined md-36">air</i> &#x2014; material icon named "air" (outlined).
  static const IconData air_outlined = IconData(0xee55, 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(0xe065, 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(0xe765, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">airline_seat_flat</i> &#x2014; material icon named "airline seat flat" (round).
  static const IconData airline_seat_flat_rounded = IconData(0xf544, 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(0xee57, 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(0xe066, 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(
    0xe764,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">airline_seat_flat_angled</i> &#x2014; material icon named "airline seat flat angled" (round).
  static const IconData airline_seat_flat_angled_rounded = IconData(
    0xf543,
    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(
    0xee56,
    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(
    0xe067,
    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(
    0xe766,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">airline_seat_individual_suite</i> &#x2014; material icon named "airline seat individual suite" (round).
  static const IconData airline_seat_individual_suite_rounded = IconData(
    0xf545,
    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(
    0xee58,
    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(0xe068, 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(
    0xe767,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">airline_seat_legroom_extra</i> &#x2014; material icon named "airline seat legroom extra" (round).
  static const IconData airline_seat_legroom_extra_rounded = IconData(
    0xf546,
    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(
    0xee59,
    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(0xe069, 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(
    0xe768,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">airline_seat_legroom_normal</i> &#x2014; material icon named "airline seat legroom normal" (round).
  static const IconData airline_seat_legroom_normal_rounded = IconData(
    0xf547,
    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(
    0xee5a,
    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(
    0xe06a,
    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(
    0xe769,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">airline_seat_legroom_reduced</i> &#x2014; material icon named "airline seat legroom reduced" (round).
  static const IconData airline_seat_legroom_reduced_rounded = IconData(
    0xf548,
    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(
    0xee5b,
    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(0xe06b, 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(
    0xe76a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">airline_seat_recline_extra</i> &#x2014; material icon named "airline seat recline extra" (round).
  static const IconData airline_seat_recline_extra_rounded = IconData(
    0xf549,
    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(
    0xee5c,
    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(0xe06c, 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(
    0xe76b,
    fontFamily: 'MaterialIcons',
  );

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

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

  /// <i class="material-icons-sharp md-36">airline_stops</i> &#x2014; material icon named "airline stops" (sharp).
  static const IconData airline_stops_sharp = IconData(0xf03c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">airline_stops</i> &#x2014; material icon named "airline stops" (round).
  static const IconData airline_stops_rounded = IconData(0xf02d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">airline_stops</i> &#x2014; material icon named "airline stops" (outlined).
  static const IconData airline_stops_outlined = IconData(0xf05b6, fontFamily: 'MaterialIcons');

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

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

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

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

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

  /// <i class="material-icons-sharp md-36">airplane_ticket</i> &#x2014; material icon named "airplane ticket" (sharp).
  static const IconData airplane_ticket_sharp = IconData(0xe76c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">airplane_ticket</i> &#x2014; material icon named "airplane ticket" (round).
  static const IconData airplane_ticket_rounded = IconData(0xf54b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">airplane_ticket</i> &#x2014; material icon named "airplane ticket" (outlined).
  static const IconData airplane_ticket_outlined = IconData(0xee5e, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">airplanemode_active</i> &#x2014; material icon named "airplanemode active" (round).
  static const IconData airplanemode_active_rounded = IconData(0xf54c, 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(
    0xee5f,
    fontFamily: 'MaterialIcons',
  );

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

  /// <i class="material-icons-round md-36">airplanemode_inactive</i> &#x2014; material icon named "airplanemode inactive" (round).
  static const IconData airplanemode_inactive_rounded = IconData(
    0xf54d,
    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(
    0xee60,
    fontFamily: 'MaterialIcons',
  );

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

  /// <i class="material-icons-round md-36">airplanemode_off</i> &#x2014; material icon named "airplanemode off" (round).
  static const IconData airplanemode_off_rounded = IconData(0xf54d, 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(0xee60, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">airplanemode_on</i> &#x2014; material icon named "airplanemode on" (round).
  static const IconData airplanemode_on_rounded = IconData(0xf54c, 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(0xee5f, fontFamily: 'MaterialIcons');

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

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

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

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

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

  /// <i class="material-icons-round md-36">airport_shuttle</i> &#x2014; material icon named "airport shuttle" (round).
  static const IconData airport_shuttle_rounded = IconData(0xf54f, 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(0xee62, fontFamily: 'MaterialIcons');

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

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

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

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

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

  /// <i class="material-icons-round md-36">alarm_add</i> &#x2014; material icon named "alarm add" (round).
  static const IconData alarm_add_rounded = IconData(0xf550, 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(0xee63, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">alarm_off</i> &#x2014; material icon named "alarm off" (round).
  static const IconData alarm_off_rounded = IconData(0xf551, 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(0xee64, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">alarm_on</i> &#x2014; material icon named "alarm on" (round).
  static const IconData alarm_on_rounded = IconData(0xf552, 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(0xee65, fontFamily: 'MaterialIcons');

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

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

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

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

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

  /// <i class="material-icons-sharp md-36">align_horizontal_center</i> &#x2014; material icon named "align horizontal center" (sharp).
  static const IconData align_horizontal_center_sharp = IconData(
    0xe776,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">align_horizontal_center</i> &#x2014; material icon named "align horizontal center" (round).
  static const IconData align_horizontal_center_rounded = IconData(
    0xf555,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">align_horizontal_center</i> &#x2014; material icon named "align horizontal center" (outlined).
  static const IconData align_horizontal_center_outlined = IconData(
    0xee68,
    fontFamily: 'MaterialIcons',
  );

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

  /// <i class="material-icons-sharp md-36">align_horizontal_left</i> &#x2014; material icon named "align horizontal left" (sharp).
  static const IconData align_horizontal_left_sharp = IconData(0xe777, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">align_horizontal_left</i> &#x2014; material icon named "align horizontal left" (round).
  static const IconData align_horizontal_left_rounded = IconData(
    0xf556,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">align_horizontal_left</i> &#x2014; material icon named "align horizontal left" (outlined).
  static const IconData align_horizontal_left_outlined = IconData(
    0xee69,
    fontFamily: 'MaterialIcons',
  );

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

  /// <i class="material-icons-sharp md-36">align_horizontal_right</i> &#x2014; material icon named "align horizontal right" (sharp).
  static const IconData align_horizontal_right_sharp = IconData(
    0xe778,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">align_horizontal_right</i> &#x2014; material icon named "align horizontal right" (round).
  static const IconData align_horizontal_right_rounded = IconData(
    0xf557,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">align_horizontal_right</i> &#x2014; material icon named "align horizontal right" (outlined).
  static const IconData align_horizontal_right_outlined = IconData(
    0xee6a,
    fontFamily: 'MaterialIcons',
  );

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

  /// <i class="material-icons-sharp md-36">align_vertical_bottom</i> &#x2014; material icon named "align vertical bottom" (sharp).
  static const IconData align_vertical_bottom_sharp = IconData(0xe779, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">align_vertical_bottom</i> &#x2014; material icon named "align vertical bottom" (round).
  static const IconData align_vertical_bottom_rounded = IconData(
    0xf558,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">align_vertical_bottom</i> &#x2014; material icon named "align vertical bottom" (outlined).
  static const IconData align_vertical_bottom_outlined = IconData(
    0xee6b,
    fontFamily: 'MaterialIcons',
  );

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

  /// <i class="material-icons-sharp md-36">align_vertical_center</i> &#x2014; material icon named "align vertical center" (sharp).
  static const IconData align_vertical_center_sharp = IconData(0xe77a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">align_vertical_center</i> &#x2014; material icon named "align vertical center" (round).
  static const IconData align_vertical_center_rounded = IconData(
    0xf559,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">align_vertical_center</i> &#x2014; material icon named "align vertical center" (outlined).
  static const IconData align_vertical_center_outlined = IconData(
    0xee6c,
    fontFamily: 'MaterialIcons',
  );

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

  /// <i class="material-icons-sharp md-36">align_vertical_top</i> &#x2014; material icon named "align vertical top" (sharp).
  static const IconData align_vertical_top_sharp = IconData(0xe77b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">align_vertical_top</i> &#x2014; material icon named "align vertical top" (round).
  static const IconData align_vertical_top_rounded = IconData(0xf55a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">align_vertical_top</i> &#x2014; material icon named "align vertical top" (outlined).
  static const IconData align_vertical_top_outlined = IconData(0xee6d, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">all_inbox</i> &#x2014; material icon named "all inbox" (round).
  static const IconData all_inbox_rounded = IconData(0xf55b, 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(0xee6e, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">all_inclusive</i> &#x2014; material icon named "all inclusive" (round).
  static const IconData all_inclusive_rounded = IconData(0xf55c, 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(0xee6f, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">all_out</i> &#x2014; material icon named "all out" (round).
  static const IconData all_out_rounded = IconData(0xf55d, 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(0xee70, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">alt_route</i> &#x2014; material icon named "alt route" (round).
  static const IconData alt_route_rounded = IconData(0xf55e, 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(0xee71, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">alternate_email</i> &#x2014; material icon named "alternate email" (round).
  static const IconData alternate_email_rounded = IconData(0xf55f, 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(0xee72, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">amp_stories</i> &#x2014; material icon named "amp stories" (round).
  static const IconData amp_stories_rounded = IconData(0xf560, 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(0xee73, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons-round md-36">app_blocking</i> &#x2014; material icon named "app blocking" (round).
  static const IconData app_blocking_rounded = IconData(0xf569, 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(0xee7c, fontFamily: 'MaterialIcons');

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

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

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

  /// <i class="material-icons-outlined md-36">app_registration</i> &#x2014; material icon named "app registration" (outlined).
  static const IconData app_registration_outlined = IconData(0xee7d, 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(0xe08d, 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(0xe78c, fontFamily: 'MaterialIcons');

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

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

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

  /// <i class="material-icons-round md-36">app_shortcut</i> &#x2014; material icon named "app shortcut" (round).
  static const IconData app_shortcut_rounded = IconData(0xf02d7, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons-round md-36">area_chart</i> &#x2014; material icon named "area chart" (round).
  static const IconData area_chart_rounded = IconData(0xf02da, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-round md-36">arrow_back</i> &#x2014; material icon named "arrow back" (round).
  static const IconData arrow_back_rounded = IconData(
    0xf572,
    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(
    0xee85,
    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(
    0xe093,
    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(
    0xe792,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

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

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

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

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

  /// <i class="material-icons-outlined md-36">arrow_back_ios_new</i> &#x2014; material icon named "arrow back ios new" (outlined).
  static const IconData arrow_back_ios_new_outlined = IconData(
    0xee83,
    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(0xe095, 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(0xe794, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

  /// <i class="material-icons-outlined md-36">arrow_circle_right</i> &#x2014; material icon named "arrow circle right" (outlined).
  static const IconData arrow_circle_right_outlined = IconData(
    0xf05bd,
    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(0xe096, 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(0xe795, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-round md-36">arrow_downward</i> &#x2014; material icon named "arrow downward" (round).
  static const IconData arrow_downward_rounded = IconData(0xf575, 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(0xee88, 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(0xe098, 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(0xe798, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">arrow_drop_down</i> &#x2014; material icon named "arrow drop down" (round).
  static const IconData arrow_drop_down_rounded = IconData(0xf577, 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(0xee8a, 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(0xe099, 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(
    0xe797,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">arrow_drop_down_circle</i> &#x2014; material icon named "arrow drop down circle" (round).
  static const IconData arrow_drop_down_circle_rounded = IconData(
    0xf576,
    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(
    0xee89,
    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(0xe09a, 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(0xe799, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-round md-36">arrow_forward</i> &#x2014; material icon named "arrow forward" (round).
  static const IconData arrow_forward_rounded = IconData(
    0xf57a,
    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(
    0xee8d,
    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(
    0xe09c,
    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(
    0xe79a,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">arrow_forward_ios</i> &#x2014; material icon named "arrow forward ios" (round).
  static const IconData arrow_forward_ios_rounded = IconData(
    0xf579,
    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(
    0xee8c,
    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(
    0xe09d,
    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(
    0xe79c,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

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

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

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

  /// <i class="material-icons-round md-36">arrow_outward</i> &#x2014; material icon named "arrow outward" (round).
  static const IconData arrow_outward_rounded = IconData(0xf087d, fontFamily: 'MaterialIcons');

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

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

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

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

  /// <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(
    0xe79d,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

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

  /// <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(
    0xee8f,
    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(0xe0a0, 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(0xe79f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">arrow_upward</i> &#x2014; material icon named "arrow upward" (round).
  static const IconData arrow_upward_rounded = IconData(0xf57e, 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(0xee91, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">art_track</i> &#x2014; material icon named "art track" (round).
  static const IconData art_track_rounded = IconData(0xf57f, 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(0xee92, fontFamily: 'MaterialIcons');

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

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

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

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

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

  /// <i class="material-icons-round md-36">aspect_ratio</i> &#x2014; material icon named "aspect ratio" (round).
  static const IconData aspect_ratio_rounded = IconData(0xf581, 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(0xee94, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons-round md-36">assignment_ind</i> &#x2014; material icon named "assignment ind" (round).
  static const IconData assignment_ind_rounded = IconData(0xf583, 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(0xee96, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">assignment_late</i> &#x2014; material icon named "assignment late" (round).
  static const IconData assignment_late_rounded = IconData(0xf584, 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(0xee97, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">assignment_return</i> &#x2014; material icon named "assignment return" (round).
  static const IconData assignment_return_rounded = IconData(
    0xf585,
    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(
    0xee99,
    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(0xe0a9, 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(0xe7a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">assignment_returned</i> &#x2014; material icon named "assignment returned" (round).
  static const IconData assignment_returned_rounded = IconData(0xf586, 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(
    0xee9a,
    fontFamily: 'MaterialIcons',
  );

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

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

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

  /// <i class="material-icons-sharp md-36">assist_walker</i> &#x2014; material icon named "assist walker" (sharp).
  static const IconData assist_walker_sharp = IconData(0xf0835, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">assist_walker</i> &#x2014; material icon named "assist walker" (round).
  static const IconData assist_walker_rounded = IconData(0xf087e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">assist_walker</i> &#x2014; material icon named "assist walker" (outlined).
  static const IconData assist_walker_outlined = IconData(0xf089c, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons-round md-36">assistant_photo</i> &#x2014; material icon named "assistant photo" (round).
  static const IconData assistant_photo_rounded = IconData(0xf58a, 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(0xee9e, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-sharp md-36">assured_workload</i> &#x2014; material icon named "assured workload" (sharp).
  static const IconData assured_workload_sharp = IconData(0xf03d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">assured_workload</i> &#x2014; material icon named "assured workload" (round).
  static const IconData assured_workload_rounded = IconData(0xf02dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">assured_workload</i> &#x2014; material icon named "assured workload" (outlined).
  static const IconData assured_workload_outlined = IconData(0xf05be, fontFamily: 'MaterialIcons');

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

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

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

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

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

  /// <i class="material-icons-round md-36">attach_email</i> &#x2014; material icon named "attach email" (round).
  static const IconData attach_email_rounded = IconData(0xf58d, 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(0xeea0, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">attach_file</i> &#x2014; material icon named "attach file" (round).
  static const IconData attach_file_rounded = IconData(0xf58e, 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(0xeea1, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">attach_money</i> &#x2014; material icon named "attach money" (round).
  static const IconData attach_money_rounded = IconData(0xf58f, 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(0xeea2, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons-round md-36">audio_file</i> &#x2014; material icon named "audio file" (round).
  static const IconData audio_file_rounded = IconData(0xf02de, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

  /// <i class="material-icons-outlined md-36">auto_awesome</i> &#x2014; material icon named "auto awesome" (outlined).
  static const IconData auto_awesome_outlined = IconData(0xeea9, 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(0xe0b8, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-outlined md-36">auto_awesome_mosaic</i> &#x2014; material icon named "auto awesome mosaic" (outlined).
  static const IconData auto_awesome_mosaic_outlined = IconData(
    0xeea7,
    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(0xe0b9, fontFamily: 'MaterialIcons');

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

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

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

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

  /// <i class="material-icons-round md-36">auto_delete</i> &#x2014; material icon named "auto delete" (round).
  static const IconData auto_delete_rounded = IconData(0xf597, 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(0xeeaa, 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(0xe0bb, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-outlined md-36">auto_fix_high</i> &#x2014; material icon named "auto fix high" (outlined).
  static const IconData auto_fix_high_outlined = IconData(0xeeab, 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(0xe0bc, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-outlined md-36">auto_fix_normal</i> &#x2014; material icon named "auto fix normal" (outlined).
  static const IconData auto_fix_normal_outlined = IconData(0xeeac, 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(0xe0bd, fontFamily: 'MaterialIcons');

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

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

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

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

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

  /// <i class="material-icons-round md-36">auto_graph</i> &#x2014; material icon named "auto graph" (round).
  static const IconData auto_graph_rounded = IconData(0xf59b, fontFamily: 'MaterialIcons');

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

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

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

  /// <i class="material-icons-round md-36">auto_mode</i> &#x2014; material icon named "auto mode" (round).
  static const IconData auto_mode_rounded = IconData(0xf07df, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

  /// <i class="material-icons-sharp md-36">autofps_select</i> &#x2014; material icon named "autofps select" (sharp).
  static const IconData autofps_select_sharp = IconData(0xe7be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">autofps_select</i> &#x2014; material icon named "autofps select" (round).
  static const IconData autofps_select_rounded = IconData(0xf59d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">autofps_select</i> &#x2014; material icon named "autofps select" (outlined).
  static const IconData autofps_select_outlined = IconData(0xeeb0, fontFamily: 'MaterialIcons');

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

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

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

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

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

  /// <i class="material-icons-round md-36">av_timer</i> &#x2014; material icon named "av timer" (round).
  static const IconData av_timer_rounded = IconData(0xf59f, 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(0xeeb2, 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(0xe0c3, 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(0xe7c1, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-sharp md-36">back_hand</i> &#x2014; material icon named "back hand" (sharp).
  static const IconData back_hand_sharp = IconData(0xf03d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">back_hand</i> &#x2014; material icon named "back hand" (round).
  static const IconData back_hand_rounded = IconData(0xf02df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">back_hand</i> &#x2014; material icon named "back hand" (outlined).
  static const IconData back_hand_outlined = IconData(0xf05c0, fontFamily: 'MaterialIcons');

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

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

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

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

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

  /// <i class="material-icons-round md-36">backspace</i> &#x2014; material icon named "backspace" (round).
  static const IconData backspace_rounded = IconData(
    0xf5a2,
    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(
    0xeeb5,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

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

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

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

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

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

  /// <i class="material-icons-round md-36">backup_table</i> &#x2014; material icon named "backup table" (round).
  static const IconData backup_table_rounded = IconData(0xf5a4, 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(0xeeb7, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons-round md-36">bar_chart</i> &#x2014; material icon named "bar chart" (round).
  static const IconData bar_chart_rounded = IconData(0xf5a9, 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(0xeebc, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-round md-36">batch_prediction</i> &#x2014; material icon named "batch prediction" (round).
  static const IconData batch_prediction_rounded = IconData(0xf5aa, 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(0xeebd, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons-round md-36">battery_0_bar</i> &#x2014; material icon named "battery 0 bar" (round).
  static const IconData battery_0_bar_rounded = IconData(0xf07e0, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-sharp md-36">battery_1_bar</i> &#x2014; material icon named "battery 1 bar" (sharp).
  static const IconData battery_1_bar_sharp = IconData(0xf0731, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">battery_1_bar</i> &#x2014; material icon named "battery 1 bar" (round).
  static const IconData battery_1_bar_rounded = IconData(0xf07e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">battery_1_bar</i> &#x2014; material icon named "battery 1 bar" (outlined).
  static const IconData battery_1_bar_outlined = IconData(0xf06d9, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-sharp md-36">battery_2_bar</i> &#x2014; material icon named "battery 2 bar" (sharp).
  static const IconData battery_2_bar_sharp = IconData(0xf0732, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">battery_2_bar</i> &#x2014; material icon named "battery 2 bar" (round).
  static const IconData battery_2_bar_rounded = IconData(0xf07e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">battery_2_bar</i> &#x2014; material icon named "battery 2 bar" (outlined).
  static const IconData battery_2_bar_outlined = IconData(0xf06da, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-sharp md-36">battery_3_bar</i> &#x2014; material icon named "battery 3 bar" (sharp).
  static const IconData battery_3_bar_sharp = IconData(0xf0733, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">battery_3_bar</i> &#x2014; material icon named "battery 3 bar" (round).
  static const IconData battery_3_bar_rounded = IconData(0xf07e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">battery_3_bar</i> &#x2014; material icon named "battery 3 bar" (outlined).
  static const IconData battery_3_bar_outlined = IconData(0xf06db, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-round md-36">battery_4_bar</i> &#x2014; material icon named "battery 4 bar" (round).
  static const IconData battery_4_bar_rounded = IconData(0xf07e4, fontFamily: 'MaterialIcons');

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

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

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

  /// <i class="material-icons-round md-36">battery_5_bar</i> &#x2014; material icon named "battery 5 bar" (round).
  static const IconData battery_5_bar_rounded = IconData(0xf07e5, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-sharp md-36">battery_6_bar</i> &#x2014; material icon named "battery 6 bar" (sharp).
  static const IconData battery_6_bar_sharp = IconData(0xf0736, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">battery_6_bar</i> &#x2014; material icon named "battery 6 bar" (round).
  static const IconData battery_6_bar_rounded = IconData(0xf07e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">battery_6_bar</i> &#x2014; material icon named "battery 6 bar" (outlined).
  static const IconData battery_6_bar_outlined = IconData(0xf06de, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">battery_alert</i> &#x2014; material icon named "battery alert" (round).
  static const IconData battery_alert_rounded = IconData(0xf5ad, 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(0xeec0, 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(0xe0d1, 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(0xe7cf, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-round md-36">battery_full</i> &#x2014; material icon named "battery full" (round).
  static const IconData battery_full_rounded = IconData(0xf5af, 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(0xeec2, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-round md-36">battery_saver</i> &#x2014; material icon named "battery saver" (round).
  static const IconData battery_saver_rounded = IconData(0xf5b0, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-round md-36">battery_std</i> &#x2014; material icon named "battery std" (round).
  static const IconData battery_std_rounded = IconData(0xf5b1, 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(0xeec4, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">battery_unknown</i> &#x2014; material icon named "battery unknown" (round).
  static const IconData battery_unknown_rounded = IconData(
    0xf5b2,
    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(
    0xeec5,
    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(0xe0d6, 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(0xe7d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">beach_access</i> &#x2014; material icon named "beach access" (round).
  static const IconData beach_access_rounded = IconData(0xf5b3, 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(0xeec6, fontFamily: 'MaterialIcons');

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

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

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

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

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

  /// <i class="material-icons-sharp md-36">bedroom_baby</i> &#x2014; material icon named "bedroom baby" (sharp).
  static const IconData bedroom_baby_sharp = IconData(0xe7d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bedroom_baby</i> &#x2014; material icon named "bedroom baby" (round).
  static const IconData bedroom_baby_rounded = IconData(0xf5b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bedroom_baby</i> &#x2014; material icon named "bedroom baby" (outlined).
  static const IconData bedroom_baby_outlined = IconData(0xeec8, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-sharp md-36">bedroom_child</i> &#x2014; material icon named "bedroom child" (sharp).
  static const IconData bedroom_child_sharp = IconData(0xe7d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bedroom_child</i> &#x2014; material icon named "bedroom child" (round).
  static const IconData bedroom_child_rounded = IconData(0xf5b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bedroom_child</i> &#x2014; material icon named "bedroom child" (outlined).
  static const IconData bedroom_child_outlined = IconData(0xeec9, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-sharp md-36">bedroom_parent</i> &#x2014; material icon named "bedroom parent" (sharp).
  static const IconData bedroom_parent_sharp = IconData(0xe7d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">bedroom_parent</i> &#x2014; material icon named "bedroom parent" (round).
  static const IconData bedroom_parent_rounded = IconData(0xf5b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">bedroom_parent</i> &#x2014; material icon named "bedroom parent" (outlined).
  static const IconData bedroom_parent_outlined = IconData(0xeeca, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons-round md-36">bike_scooter</i> &#x2014; material icon named "bike scooter" (round).
  static const IconData bike_scooter_rounded = IconData(0xf5bb, 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(0xeece, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons-sharp md-36">blinds_closed</i> &#x2014; material icon named "blinds closed" (sharp).
  static const IconData blinds_closed_sharp = IconData(0xf0737, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">blinds_closed</i> &#x2014; material icon named "blinds closed" (round).
  static const IconData blinds_closed_rounded = IconData(0xf07e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">blinds_closed</i> &#x2014; material icon named "blinds closed" (outlined).
  static const IconData blinds_closed_outlined = IconData(0xf06df, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons-round md-36">bluetooth_audio</i> &#x2014; material icon named "bluetooth audio" (round).
  static const IconData bluetooth_audio_rounded = IconData(0xf5c0, 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(0xeed3, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">bluetooth_connected</i> &#x2014; material icon named "bluetooth connected" (round).
  static const IconData bluetooth_connected_rounded = IconData(0xf5c1, 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(
    0xeed4,
    fontFamily: 'MaterialIcons',
  );

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

  /// <i class="material-icons-round md-36">bluetooth_disabled</i> &#x2014; material icon named "bluetooth disabled" (round).
  static const IconData bluetooth_disabled_rounded = IconData(0xf5c2, 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(0xeed5, fontFamily: 'MaterialIcons');

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

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

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

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

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

  /// <i class="material-icons-round md-36">bluetooth_searching</i> &#x2014; material icon named "bluetooth searching" (round).
  static const IconData bluetooth_searching_rounded = IconData(0xf5c5, 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(
    0xeed8,
    fontFamily: 'MaterialIcons',
  );

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

  /// <i class="material-icons-round md-36">blur_circular</i> &#x2014; material icon named "blur circular" (round).
  static const IconData blur_circular_rounded = IconData(0xf5c6, 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(0xeed9, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">blur_linear</i> &#x2014; material icon named "blur linear" (round).
  static const IconData blur_linear_rounded = IconData(0xf5c7, 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(0xeeda, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">blur_off</i> &#x2014; material icon named "blur off" (round).
  static const IconData blur_off_rounded = IconData(0xf5c8, 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(0xeedb, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">blur_on</i> &#x2014; material icon named "blur on" (round).
  static const IconData blur_on_rounded = IconData(0xf5c9, 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(0xeedc, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons-round md-36">book_online</i> &#x2014; material icon named "book online" (round).
  static const IconData book_online_rounded = IconData(0xf5cb, 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(0xeede, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons-round md-36">bookmark_border</i> &#x2014; material icon named "bookmark border" (round).
  static const IconData bookmark_border_rounded = IconData(0xf5cf, 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(0xeee2, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">bookmark_outline</i> &#x2014; material icon named "bookmark outline" (round).
  static const IconData bookmark_outline_rounded = IconData(0xf5cf, 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(0xeee2, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons-round md-36">border_all</i> &#x2014; material icon named "border all" (round).
  static const IconData border_all_rounded = IconData(0xf5d3, 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(0xeee6, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">border_bottom</i> &#x2014; material icon named "border bottom" (round).
  static const IconData border_bottom_rounded = IconData(0xf5d4, 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(0xeee7, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">border_clear</i> &#x2014; material icon named "border clear" (round).
  static const IconData border_clear_rounded = IconData(0xf5d5, 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(0xeee8, fontFamily: 'MaterialIcons');

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

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

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

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

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

  /// <i class="material-icons-round md-36">border_horizontal</i> &#x2014; material icon named "border horizontal" (round).
  static const IconData border_horizontal_rounded = IconData(0xf5d7, 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(0xeeea, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">border_inner</i> &#x2014; material icon named "border inner" (round).
  static const IconData border_inner_rounded = IconData(0xf5d8, 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(0xeeeb, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">border_left</i> &#x2014; material icon named "border left" (round).
  static const IconData border_left_rounded = IconData(0xf5d9, 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(0xeeec, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">border_outer</i> &#x2014; material icon named "border outer" (round).
  static const IconData border_outer_rounded = IconData(0xf5da, 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(0xeeed, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">border_right</i> &#x2014; material icon named "border right" (round).
  static const IconData border_right_rounded = IconData(0xf5db, 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(0xeeee, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">border_style</i> &#x2014; material icon named "border style" (round).
  static const IconData border_style_rounded = IconData(0xf5dc, 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(0xeeef, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">border_top</i> &#x2014; material icon named "border top" (round).
  static const IconData border_top_rounded = IconData(0xf5dd, 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(0xeef0, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">border_vertical</i> &#x2014; material icon named "border vertical" (round).
  static const IconData border_vertical_rounded = IconData(0xf5de, 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(0xeef1, fontFamily: 'MaterialIcons');

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

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

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

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

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

  /// <i class="material-icons-round md-36">branding_watermark</i> &#x2014; material icon named "branding watermark" (round).
  static const IconData branding_watermark_rounded = IconData(0xf5df, 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(0xeef2, fontFamily: 'MaterialIcons');

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

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

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

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

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

  /// <i class="material-icons-round md-36">brightness_1</i> &#x2014; material icon named "brightness 1" (round).
  static const IconData brightness_1_rounded = IconData(0xf5e1, 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(0xeef4, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">brightness_2</i> &#x2014; material icon named "brightness 2" (round).
  static const IconData brightness_2_rounded = IconData(0xf5e2, 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(0xeef5, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">brightness_3</i> &#x2014; material icon named "brightness 3" (round).
  static const IconData brightness_3_rounded = IconData(0xf5e3, 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(0xeef6, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">brightness_4</i> &#x2014; material icon named "brightness 4" (round).
  static const IconData brightness_4_rounded = IconData(0xf5e4, 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(0xeef7, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">brightness_5</i> &#x2014; material icon named "brightness 5" (round).
  static const IconData brightness_5_rounded = IconData(0xf5e5, 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(0xeef8, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">brightness_6</i> &#x2014; material icon named "brightness 6" (round).
  static const IconData brightness_6_rounded = IconData(0xf5e6, 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(0xeef9, fontFamily: 'MaterialIcons');

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

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

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

  /// <i class="material-icons-round md-36">brightness_auto</i> &#x2014; material icon named "brightness auto" (round).
  static const IconData brightness_auto_rounded = IconData(0xf5e8, 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(0xeefb, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">brightness_high</i> &#x2014; material icon named "brightness high" (round).
  static const IconData brightness_high_rounded = IconData(0xf5e9, 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(0xeefc, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">brightness_low</i> &#x2014; material icon named "brightness low" (round).
  static const IconData brightness_low_rounded = IconData(0xf5ea, 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(0xeefd, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">brightness_medium</i> &#x2014; material icon named "brightness medium" (round).
  static const IconData brightness_medium_rounded = IconData(0xf5eb, 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(0xeefe, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-sharp md-36">broadcast_on_home</i> &#x2014; material icon named "broadcast on home" (sharp).
  static const IconData broadcast_on_home_sharp = IconData(0xf0739, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">broadcast_on_home</i> &#x2014; material icon named "broadcast on home" (round).
  static const IconData broadcast_on_home_rounded = IconData(0xf07e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">broadcast_on_home</i> &#x2014; material icon named "broadcast on home" (outlined).
  static const IconData broadcast_on_home_outlined = IconData(0xf06e1, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-sharp md-36">broadcast_on_personal</i> &#x2014; material icon named "broadcast on personal" (sharp).
  static const IconData broadcast_on_personal_sharp = IconData(
    0xf073a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">broadcast_on_personal</i> &#x2014; material icon named "broadcast on personal" (round).
  static const IconData broadcast_on_personal_rounded = IconData(
    0xf07ea,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">broadcast_on_personal</i> &#x2014; material icon named "broadcast on personal" (outlined).
  static const IconData broadcast_on_personal_outlined = IconData(
    0xf06e2,
    fontFamily: 'MaterialIcons',
  );

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

  /// <i class="material-icons-round md-36">broken_image</i> &#x2014; material icon named "broken image" (round).
  static const IconData broken_image_rounded = IconData(0xf5ec, 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(0xeeff, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-sharp md-36">browse_gallery</i> &#x2014; material icon named "browse gallery" (sharp).
  static const IconData browse_gallery_sharp = IconData(0xf06ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">browse_gallery</i> &#x2014; material icon named "browse gallery" (round).
  static const IconData browse_gallery_rounded = IconData(0xf06c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">browse_gallery</i> &#x2014; material icon named "browse gallery" (outlined).
  static const IconData browse_gallery_outlined = IconData(0xf03bc, 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(0xe111, 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(0xe80e, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-sharp md-36">browser_updated</i> &#x2014; material icon named "browser updated" (sharp).
  static const IconData browser_updated_sharp = IconData(0xf03d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">browser_updated</i> &#x2014; material icon named "browser updated" (round).
  static const IconData browser_updated_rounded = IconData(0xf02e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">browser_updated</i> &#x2014; material icon named "browser updated" (outlined).
  static const IconData browser_updated_outlined = IconData(0xf05c4, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons-round md-36">bubble_chart</i> &#x2014; material icon named "bubble chart" (round).
  static const IconData bubble_chart_rounded = IconData(0xf5f0, 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(0xef03, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-round md-36">bug_report</i> &#x2014; material icon named "bug report" (round).
  static const IconData bug_report_rounded = IconData(0xf5f1, 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(0xef04, fontFamily: 'MaterialIcons');

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

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

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

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

  /// <i class="material-icons md-36">build_circle</i> &#x2014; material icon named "build circle".
  static const IconData build_circle = IconData(0xe117, 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(0xe813, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">build_circle</i> &#x2014; material icon named "build circle" (round).
  static const IconData build_circle_rounded = IconData(0xf5f2, 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(0xef05, fontFamily: 'MaterialIcons');

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

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

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

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

  /// <i class="material-icons md-36">burst_mode</i> &#x2014; material icon named "burst mode".
  static const IconData burst_mode = IconData(0xe119, 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(0xe816, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">burst_mode</i> &#x2014; material icon named "burst mode" (round).
  static const IconData burst_mode_rounded = IconData(0xf5f5, 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(0xef08, fontFamily: 'MaterialIcons');

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

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

  /// <i class="material-icons-round md-36">bus_alert</i> &#x2014; material icon named "bus alert" (round).
  static const IconData bus_alert_rounded = IconData(0xf5f6, fontFamily: 'MaterialIcons');

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

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

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

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

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

  /// <i class="material-icons md-36">business_center</i> &#x2014; material icon named "business center".
  static const IconData business_center = IconData(0xe11c, 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(0xe818, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">business_center</i> &#x2014; material icon named "business center" (round).
  static const IconData business_center_rounded = IconData(0xf5f7, 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(0xef0a, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons-sharp md-36">calendar_month</i> &#x2014; material icon named "calendar month" (sharp).
  static const IconData calendar_month_sharp = IconData(0xf06ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">calendar_month</i> &#x2014; material icon named "calendar month" (round).
  static const IconData calendar_month_rounded = IconData(0xf06c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">calendar_month</i> &#x2014; material icon named "calendar month" (outlined).
  static const IconData calendar_month_outlined = IconData(0xf051f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">calendar_today</i> &#x2014; material icon named "calendar today".
  static const IconData calendar_today = IconData(0xe122, 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(0xe81f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">calendar_today</i> &#x2014; material icon named "calendar today" (round).
  static const IconData calendar_today_rounded = IconData(0xf5fe, 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(0xef11, 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(0xe123, 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(0xe820, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">calendar_view_day</i> &#x2014; material icon named "calendar view day" (round).
  static const IconData calendar_view_day_rounded = IconData(0xf5ff, 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(0xef12, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-sharp md-36">calendar_view_month</i> &#x2014; material icon named "calendar view month" (sharp).
  static const IconData calendar_view_month_sharp = IconData(0xe821, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">calendar_view_month</i> &#x2014; material icon named "calendar view month" (round).
  static const IconData calendar_view_month_rounded = IconData(0xf600, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">calendar_view_month</i> &#x2014; material icon named "calendar view month" (outlined).
  static const IconData calendar_view_month_outlined = IconData(
    0xef13,
    fontFamily: 'MaterialIcons',
  );

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

  /// <i class="material-icons-sharp md-36">calendar_view_week</i> &#x2014; material icon named "calendar view week" (sharp).
  static const IconData calendar_view_week_sharp = IconData(0xe822, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">calendar_view_week</i> &#x2014; material icon named "calendar view week" (round).
  static const IconData calendar_view_week_rounded = IconData(0xf601, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">calendar_view_week</i> &#x2014; material icon named "calendar view week" (outlined).
  static const IconData calendar_view_week_outlined = IconData(0xef14, fontFamily: 'MaterialIcons');

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

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

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

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

  /// <i class="material-icons md-36">call_end</i> &#x2014; material icon named "call end".
  static const IconData call_end = IconData(0xe127, 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(0xe823, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">call_end</i> &#x2014; material icon named "call end" (round).
  static const IconData call_end_rounded = IconData(0xf602, 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(0xef15, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">call_made</i> &#x2014; material icon named "call made".
  static const IconData call_made = IconData(
    0xe128,
    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(
    0xe824,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">call_made</i> &#x2014; material icon named "call made" (round).
  static const IconData call_made_rounded = IconData(
    0xf603,
    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(
    0xef16,
    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(
    0xe129,
    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(
    0xe825,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">call_merge</i> &#x2014; material icon named "call merge" (round).
  static const IconData call_merge_rounded = IconData(
    0xf604,
    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(
    0xef17,
    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(
    0xe12a,
    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(
    0xe827,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">call_missed</i> &#x2014; material icon named "call missed" (round).
  static const IconData call_missed_rounded = IconData(
    0xf606,
    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(
    0xef19,
    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(
    0xe12b,
    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(
    0xe826,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">call_missed_outgoing</i> &#x2014; material icon named "call missed outgoing" (round).
  static const IconData call_missed_outgoing_rounded = IconData(
    0xf605,
    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(
    0xef18,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">call_received</i> &#x2014; material icon named "call received".
  static const IconData call_received = IconData(
    0xe12c,
    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(
    0xe828,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">call_received</i> &#x2014; material icon named "call received" (round).
  static const IconData call_received_rounded = IconData(
    0xf607,
    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(
    0xef1b,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">call_split</i> &#x2014; material icon named "call split".
  static const IconData call_split = IconData(
    0xe12d,
    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(
    0xe82a,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">call_split</i> &#x2014; material icon named "call split" (round).
  static const IconData call_split_rounded = IconData(
    0xf609,
    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(
    0xef1c,
    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(0xe12e, 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(0xe82b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">call_to_action</i> &#x2014; material icon named "call to action" (round).
  static const IconData call_to_action_rounded = IconData(0xf60a, 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(0xef1d, fontFamily: 'MaterialIcons');

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

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

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

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

  /// <i class="material-icons md-36">camera_alt</i> &#x2014; material icon named "camera alt".
  static const IconData camera_alt = IconData(0xe130, 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(0xe82c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">camera_alt</i> &#x2014; material icon named "camera alt" (round).
  static const IconData camera_alt_rounded = IconData(0xf60b, 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(0xef1e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">camera_enhance</i> &#x2014; material icon named "camera enhance".
  static const IconData camera_enhance = IconData(0xe131, 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(0xe82d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">camera_enhance</i> &#x2014; material icon named "camera enhance" (round).
  static const IconData camera_enhance_rounded = IconData(0xf60c, 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(0xef1f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">camera_front</i> &#x2014; material icon named "camera front".
  static const IconData camera_front = IconData(0xe132, 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(0xe82e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">camera_front</i> &#x2014; material icon named "camera front" (round).
  static const IconData camera_front_rounded = IconData(0xf60d, 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(0xef20, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-sharp md-36">camera_indoor</i> &#x2014; material icon named "camera indoor" (sharp).
  static const IconData camera_indoor_sharp = IconData(0xe82f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">camera_indoor</i> &#x2014; material icon named "camera indoor" (round).
  static const IconData camera_indoor_rounded = IconData(0xf60e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">camera_indoor</i> &#x2014; material icon named "camera indoor" (outlined).
  static const IconData camera_indoor_outlined = IconData(0xef21, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons-sharp md-36">camera_outdoor</i> &#x2014; material icon named "camera outdoor" (sharp).
  static const IconData camera_outdoor_sharp = IconData(0xe830, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">camera_outdoor</i> &#x2014; material icon named "camera outdoor" (round).
  static const IconData camera_outdoor_rounded = IconData(0xf60f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">camera_outdoor</i> &#x2014; material icon named "camera outdoor" (outlined).
  static const IconData camera_outdoor_outlined = IconData(0xef22, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">camera_rear</i> &#x2014; material icon named "camera rear".
  static const IconData camera_rear = IconData(0xe135, 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(0xe831, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">camera_rear</i> &#x2014; material icon named "camera rear" (round).
  static const IconData camera_rear_rounded = IconData(0xf610, 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(0xef24, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">camera_roll</i> &#x2014; material icon named "camera roll".
  static const IconData camera_roll = IconData(0xe136, 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(0xe832, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">camera_roll</i> &#x2014; material icon named "camera roll" (round).
  static const IconData camera_roll_rounded = IconData(0xf611, 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(0xef25, fontFamily: 'MaterialIcons');

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

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

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

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

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

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

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

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

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

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

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

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

  /// <i class="material-icons md-36">cancel_presentation</i> &#x2014; material icon named "cancel presentation".
  static const IconData cancel_presentation = IconData(0xe13a, 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(0xe836, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cancel_presentation</i> &#x2014; material icon named "cancel presentation" (round).
  static const IconData cancel_presentation_rounded = IconData(0xf615, 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(
    0xef29,
    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(0xe13b, 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(0xe837, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cancel_schedule_send</i> &#x2014; material icon named "cancel schedule send" (round).
  static const IconData cancel_schedule_send_rounded = IconData(
    0xf617,
    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(
    0xef2a,
    fontFamily: 'MaterialIcons',
  );

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

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

  /// <i class="material-icons-round md-36">candlestick_chart</i> &#x2014; material icon named "candlestick chart" (round).
  static const IconData candlestick_chart_rounded = IconData(0xf02e4, fontFamily: 'MaterialIcons');

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

  /// <i class="material-icons md-36">car_crash</i> &#x2014; material icon named "car crash".
  static const IconData car_crash = IconData(0xf0793, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">car_crash</i> &#x2014; material icon named "car crash" (sharp).
  static const IconData car_crash_sharp = IconData(0xf073b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">car_crash</i> &#x2014; material icon named "car crash" (round).
  static const IconData car_crash_rounded = IconData(0xf07eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">car_crash</i> &#x2014; material icon named "car crash" (outlined).
  static const IconData car_crash_outlined = IconData(0xf06e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">car_rental</i> &#x2014; material icon named "car rental".
  static const IconData car_rental = IconData(0xe13c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">car_rental</i> &#x2014; material icon named "car rental" (sharp).
  static const IconData car_rental_sharp = IconData(0xe839, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">car_rental</i> &#x2014; material icon named "car rental" (round).
  static const IconData car_rental_rounded = IconData(0xf618, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">car_rental</i> &#x2014; material icon named "car rental" (outlined).
  static const IconData car_rental_outlined = IconData(0xef2b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">car_repair</i> &#x2014; material icon named "car repair".
  static const IconData car_repair = IconData(0xe13d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">car_repair</i> &#x2014; material icon named "car repair" (sharp).
  static const IconData car_repair_sharp = IconData(0xe83a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">car_repair</i> &#x2014; material icon named "car repair" (round).
  static const IconData car_repair_rounded = IconData(0xf619, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">car_repair</i> &#x2014; material icon named "car repair" (outlined).
  static const IconData car_repair_outlined = IconData(0xef2c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">card_giftcard</i> &#x2014; material icon named "card giftcard".
  static const IconData card_giftcard = IconData(0xe13e, 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(0xe83b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">card_giftcard</i> &#x2014; material icon named "card giftcard" (round).
  static const IconData card_giftcard_rounded = IconData(0xf61a, 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(0xef2d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">card_membership</i> &#x2014; material icon named "card membership".
  static const IconData card_membership = IconData(0xe13f, 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(0xe83c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">card_membership</i> &#x2014; material icon named "card membership" (round).
  static const IconData card_membership_rounded = IconData(0xf61b, 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(0xef2e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">card_travel</i> &#x2014; material icon named "card travel".
  static const IconData card_travel = IconData(0xe140, 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(0xe83d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">card_travel</i> &#x2014; material icon named "card travel" (round).
  static const IconData card_travel_rounded = IconData(0xf61c, 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(0xef2f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">carpenter</i> &#x2014; material icon named "carpenter".
  static const IconData carpenter = IconData(0xe141, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">carpenter</i> &#x2014; material icon named "carpenter" (sharp).
  static const IconData carpenter_sharp = IconData(0xe83e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">carpenter</i> &#x2014; material icon named "carpenter" (round).
  static const IconData carpenter_rounded = IconData(0xf61d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">carpenter</i> &#x2014; material icon named "carpenter" (outlined).
  static const IconData carpenter_outlined = IconData(0xef30, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cases</i> &#x2014; material icon named "cases".
  static const IconData cases = IconData(0xe142, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cases</i> &#x2014; material icon named "cases" (sharp).
  static const IconData cases_sharp = IconData(0xe83f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cases</i> &#x2014; material icon named "cases" (round).
  static const IconData cases_rounded = IconData(0xf61e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cases</i> &#x2014; material icon named "cases" (outlined).
  static const IconData cases_outlined = IconData(0xef31, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">casino</i> &#x2014; material icon named "casino".
  static const IconData casino = IconData(0xe143, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">casino</i> &#x2014; material icon named "casino" (sharp).
  static const IconData casino_sharp = IconData(0xe840, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">casino</i> &#x2014; material icon named "casino" (round).
  static const IconData casino_rounded = IconData(0xf61f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">casino</i> &#x2014; material icon named "casino" (outlined).
  static const IconData casino_outlined = IconData(0xef32, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cast</i> &#x2014; material icon named "cast".
  static const IconData cast = IconData(0xe144, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cast</i> &#x2014; material icon named "cast" (sharp).
  static const IconData cast_sharp = IconData(0xe843, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cast</i> &#x2014; material icon named "cast" (round).
  static const IconData cast_rounded = IconData(0xf622, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cast</i> &#x2014; material icon named "cast" (outlined).
  static const IconData cast_outlined = IconData(0xef35, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cast_connected</i> &#x2014; material icon named "cast connected".
  static const IconData cast_connected = IconData(0xe145, 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(0xe841, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cast_connected</i> &#x2014; material icon named "cast connected" (round).
  static const IconData cast_connected_rounded = IconData(0xf620, 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(0xef33, 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(0xe146, 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(0xe842, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cast_for_education</i> &#x2014; material icon named "cast for education" (round).
  static const IconData cast_for_education_rounded = IconData(0xf621, 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(0xef34, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">castle</i> &#x2014; material icon named "castle".
  static const IconData castle = IconData(0xf04cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">castle</i> &#x2014; material icon named "castle" (sharp).
  static const IconData castle_sharp = IconData(0xf03d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">castle</i> &#x2014; material icon named "castle" (round).
  static const IconData castle_rounded = IconData(0xf02e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">castle</i> &#x2014; material icon named "castle" (outlined).
  static const IconData castle_outlined = IconData(0xf05c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">catching_pokemon</i> &#x2014; material icon named "catching pokemon".
  static const IconData catching_pokemon = IconData(0xe147, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">catching_pokemon</i> &#x2014; material icon named "catching pokemon" (sharp).
  static const IconData catching_pokemon_sharp = IconData(0xe844, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">catching_pokemon</i> &#x2014; material icon named "catching pokemon" (round).
  static const IconData catching_pokemon_rounded = IconData(0xf623, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">catching_pokemon</i> &#x2014; material icon named "catching pokemon" (outlined).
  static const IconData catching_pokemon_outlined = IconData(0xef36, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">category</i> &#x2014; material icon named "category".
  static const IconData category = IconData(0xe148, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">category</i> &#x2014; material icon named "category" (sharp).
  static const IconData category_sharp = IconData(0xe845, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">category</i> &#x2014; material icon named "category" (round).
  static const IconData category_rounded = IconData(0xf624, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">category</i> &#x2014; material icon named "category" (outlined).
  static const IconData category_outlined = IconData(0xef37, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">celebration</i> &#x2014; material icon named "celebration".
  static const IconData celebration = IconData(0xe149, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">celebration</i> &#x2014; material icon named "celebration" (sharp).
  static const IconData celebration_sharp = IconData(0xe846, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">celebration</i> &#x2014; material icon named "celebration" (round).
  static const IconData celebration_rounded = IconData(0xf625, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">celebration</i> &#x2014; material icon named "celebration" (outlined).
  static const IconData celebration_outlined = IconData(0xef38, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cell_tower</i> &#x2014; material icon named "cell tower".
  static const IconData cell_tower = IconData(0xf04cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cell_tower</i> &#x2014; material icon named "cell tower" (sharp).
  static const IconData cell_tower_sharp = IconData(0xf03d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cell_tower</i> &#x2014; material icon named "cell tower" (round).
  static const IconData cell_tower_rounded = IconData(0xf02e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cell_tower</i> &#x2014; material icon named "cell tower" (outlined).
  static const IconData cell_tower_outlined = IconData(0xf05c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cell_wifi</i> &#x2014; material icon named "cell wifi".
  static const IconData cell_wifi = IconData(0xe14a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cell_wifi</i> &#x2014; material icon named "cell wifi" (sharp).
  static const IconData cell_wifi_sharp = IconData(0xe847, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cell_wifi</i> &#x2014; material icon named "cell wifi" (round).
  static const IconData cell_wifi_rounded = IconData(0xf626, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cell_wifi</i> &#x2014; material icon named "cell wifi" (outlined).
  static const IconData cell_wifi_outlined = IconData(0xef39, 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(0xe14b, 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(0xe848, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">center_focus_strong</i> &#x2014; material icon named "center focus strong" (round).
  static const IconData center_focus_strong_rounded = IconData(0xf627, 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(
    0xef3a,
    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(0xe14c, 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(0xe849, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">center_focus_weak</i> &#x2014; material icon named "center focus weak" (round).
  static const IconData center_focus_weak_rounded = IconData(0xf628, 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(0xef3b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">chair</i> &#x2014; material icon named "chair".
  static const IconData chair = IconData(0xe14d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">chair</i> &#x2014; material icon named "chair" (sharp).
  static const IconData chair_sharp = IconData(0xe84b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">chair</i> &#x2014; material icon named "chair" (round).
  static const IconData chair_rounded = IconData(0xf62a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">chair</i> &#x2014; material icon named "chair" (outlined).
  static const IconData chair_outlined = IconData(0xef3d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">chair_alt</i> &#x2014; material icon named "chair alt".
  static const IconData chair_alt = IconData(0xe14e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">chair_alt</i> &#x2014; material icon named "chair alt" (sharp).
  static const IconData chair_alt_sharp = IconData(0xe84a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">chair_alt</i> &#x2014; material icon named "chair alt" (round).
  static const IconData chair_alt_rounded = IconData(0xf629, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">chair_alt</i> &#x2014; material icon named "chair alt" (outlined).
  static const IconData chair_alt_outlined = IconData(0xef3c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">chalet</i> &#x2014; material icon named "chalet".
  static const IconData chalet = IconData(0xe14f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">chalet</i> &#x2014; material icon named "chalet" (sharp).
  static const IconData chalet_sharp = IconData(0xe84c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">chalet</i> &#x2014; material icon named "chalet" (round).
  static const IconData chalet_rounded = IconData(0xf62b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">chalet</i> &#x2014; material icon named "chalet" (outlined).
  static const IconData chalet_outlined = IconData(0xef3e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">change_circle</i> &#x2014; material icon named "change circle".
  static const IconData change_circle = IconData(0xe150, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">change_circle</i> &#x2014; material icon named "change circle" (sharp).
  static const IconData change_circle_sharp = IconData(0xe84d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">change_circle</i> &#x2014; material icon named "change circle" (round).
  static const IconData change_circle_rounded = IconData(0xf62c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">change_circle</i> &#x2014; material icon named "change circle" (outlined).
  static const IconData change_circle_outlined = IconData(0xef3f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">change_history</i> &#x2014; material icon named "change history".
  static const IconData change_history = IconData(0xe151, 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(0xe84e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">change_history</i> &#x2014; material icon named "change history" (round).
  static const IconData change_history_rounded = IconData(0xf62d, 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(0xef40, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">charging_station</i> &#x2014; material icon named "charging station".
  static const IconData charging_station = IconData(0xe152, 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(0xe84f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">charging_station</i> &#x2014; material icon named "charging station" (round).
  static const IconData charging_station_rounded = IconData(0xf62e, 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(0xef41, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">chat</i> &#x2014; material icon named "chat".
  static const IconData chat = IconData(0xe153, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">chat</i> &#x2014; material icon named "chat" (sharp).
  static const IconData chat_sharp = IconData(0xe852, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">chat</i> &#x2014; material icon named "chat" (round).
  static const IconData chat_rounded = IconData(0xf631, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">chat</i> &#x2014; material icon named "chat" (outlined).
  static const IconData chat_outlined = IconData(0xef44, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">chat_bubble</i> &#x2014; material icon named "chat bubble".
  static const IconData chat_bubble = IconData(0xe154, 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(0xe851, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">chat_bubble</i> &#x2014; material icon named "chat bubble" (round).
  static const IconData chat_bubble_rounded = IconData(0xf630, 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(0xef43, 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(0xe155, 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(0xe850, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">chat_bubble_outline</i> &#x2014; material icon named "chat bubble outline" (round).
  static const IconData chat_bubble_outline_rounded = IconData(0xf62f, 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(
    0xef42,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">check</i> &#x2014; material icon named "check".
  static const IconData check = IconData(0xe156, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">check</i> &#x2014; material icon named "check" (sharp).
  static const IconData check_sharp = IconData(0xe857, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">check</i> &#x2014; material icon named "check" (round).
  static const IconData check_rounded = IconData(0xf636, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">check</i> &#x2014; material icon named "check" (outlined).
  static const IconData check_outlined = IconData(0xef49, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">check_box</i> &#x2014; material icon named "check box".
  static const IconData check_box = IconData(0xe157, 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(0xe854, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">check_box</i> &#x2014; material icon named "check box" (round).
  static const IconData check_box_rounded = IconData(0xf633, 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(0xef46, 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(0xe158, 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(
    0xe853,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">check_box_outline_blank</i> &#x2014; material icon named "check box outline blank" (round).
  static const IconData check_box_outline_blank_rounded = IconData(
    0xf632,
    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(
    0xef45,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">check_circle</i> &#x2014; material icon named "check circle".
  static const IconData check_circle = IconData(0xe159, 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(0xe856, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">check_circle</i> &#x2014; material icon named "check circle" (round).
  static const IconData check_circle_rounded = IconData(0xf635, 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(0xef48, 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(0xe15a, 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(0xe855, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">check_circle_outline</i> &#x2014; material icon named "check circle outline" (round).
  static const IconData check_circle_outline_rounded = IconData(
    0xf634,
    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(
    0xef47,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">checklist</i> &#x2014; material icon named "checklist".
  static const IconData checklist = IconData(0xe15b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">checklist</i> &#x2014; material icon named "checklist" (sharp).
  static const IconData checklist_sharp = IconData(0xe859, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">checklist</i> &#x2014; material icon named "checklist" (round).
  static const IconData checklist_rounded = IconData(0xf637, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">checklist</i> &#x2014; material icon named "checklist" (outlined).
  static const IconData checklist_outlined = IconData(0xef4a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">checklist_rtl</i> &#x2014; material icon named "checklist rtl".
  static const IconData checklist_rtl = IconData(0xe15c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">checklist_rtl</i> &#x2014; material icon named "checklist rtl" (sharp).
  static const IconData checklist_rtl_sharp = IconData(0xe858, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">checklist_rtl</i> &#x2014; material icon named "checklist rtl" (round).
  static const IconData checklist_rtl_rounded = IconData(0xf638, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">checklist_rtl</i> &#x2014; material icon named "checklist rtl" (outlined).
  static const IconData checklist_rtl_outlined = IconData(0xef4b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">checkroom</i> &#x2014; material icon named "checkroom".
  static const IconData checkroom = IconData(0xe15d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">checkroom</i> &#x2014; material icon named "checkroom" (sharp).
  static const IconData checkroom_sharp = IconData(0xe85a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">checkroom</i> &#x2014; material icon named "checkroom" (round).
  static const IconData checkroom_rounded = IconData(0xf639, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">checkroom</i> &#x2014; material icon named "checkroom" (outlined).
  static const IconData checkroom_outlined = IconData(0xef4c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">chevron_left</i> &#x2014; material icon named "chevron left".
  static const IconData chevron_left = IconData(
    0xe15e,
    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(
    0xe85b,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">chevron_left</i> &#x2014; material icon named "chevron left" (round).
  static const IconData chevron_left_rounded = IconData(
    0xf63a,
    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(
    0xef4d,
    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(
    0xe15f,
    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(
    0xe85c,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">chevron_right</i> &#x2014; material icon named "chevron right" (round).
  static const IconData chevron_right_rounded = IconData(
    0xf63b,
    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(
    0xef4e,
    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(0xe160, 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(0xe85d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">child_care</i> &#x2014; material icon named "child care" (round).
  static const IconData child_care_rounded = IconData(0xf63c, 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(0xef4f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">child_friendly</i> &#x2014; material icon named "child friendly".
  static const IconData child_friendly = IconData(0xe161, 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(0xe85e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">child_friendly</i> &#x2014; material icon named "child friendly" (round).
  static const IconData child_friendly_rounded = IconData(0xf63d, 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(0xef50, 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(
    0xe162,
    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(
    0xe85f,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">chrome_reader_mode</i> &#x2014; material icon named "chrome reader mode" (round).
  static const IconData chrome_reader_mode_rounded = IconData(
    0xf63e,
    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(
    0xef51,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">church</i> &#x2014; material icon named "church".
  static const IconData church = IconData(0xf04cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">church</i> &#x2014; material icon named "church" (sharp).
  static const IconData church_sharp = IconData(0xf03da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">church</i> &#x2014; material icon named "church" (round).
  static const IconData church_rounded = IconData(0xf02e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">church</i> &#x2014; material icon named "church" (outlined).
  static const IconData church_outlined = IconData(0xf05c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">circle</i> &#x2014; material icon named "circle".
  static const IconData circle = IconData(0xe163, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">circle</i> &#x2014; material icon named "circle" (sharp).
  static const IconData circle_sharp = IconData(0xe861, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">circle</i> &#x2014; material icon named "circle" (round).
  static const IconData circle_rounded = IconData(0xf640, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">circle</i> &#x2014; material icon named "circle" (outlined).
  static const IconData circle_outlined = IconData(0xef53, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">circle_notifications</i> &#x2014; material icon named "circle notifications".
  static const IconData circle_notifications = IconData(0xe164, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">circle_notifications</i> &#x2014; material icon named "circle notifications" (sharp).
  static const IconData circle_notifications_sharp = IconData(0xe860, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">circle_notifications</i> &#x2014; material icon named "circle notifications" (round).
  static const IconData circle_notifications_rounded = IconData(
    0xf63f,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">circle_notifications</i> &#x2014; material icon named "circle notifications" (outlined).
  static const IconData circle_notifications_outlined = IconData(
    0xef52,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">class</i> &#x2014; material icon named "class".
  static const IconData class_ = IconData(0xe165, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">class</i> &#x2014; material icon named "class" (sharp).
  static const IconData class_sharp = IconData(0xe862, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">class</i> &#x2014; material icon named "class" (round).
  static const IconData class_rounded = IconData(0xf641, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">class</i> &#x2014; material icon named "class" (outlined).
  static const IconData class_outlined = IconData(0xef54, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">clean_hands</i> &#x2014; material icon named "clean hands".
  static const IconData clean_hands = IconData(0xe166, 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(0xe863, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">clean_hands</i> &#x2014; material icon named "clean hands" (round).
  static const IconData clean_hands_rounded = IconData(0xf642, 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(0xef55, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cleaning_services</i> &#x2014; material icon named "cleaning services".
  static const IconData cleaning_services = IconData(0xe167, 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(0xe864, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cleaning_services</i> &#x2014; material icon named "cleaning services" (round).
  static const IconData cleaning_services_rounded = IconData(0xf643, 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(0xef56, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">clear</i> &#x2014; material icon named "clear".
  static const IconData clear = IconData(0xe168, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">clear</i> &#x2014; material icon named "clear" (sharp).
  static const IconData clear_sharp = IconData(0xe866, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">clear</i> &#x2014; material icon named "clear" (round).
  static const IconData clear_rounded = IconData(0xf645, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">clear</i> &#x2014; material icon named "clear" (outlined).
  static const IconData clear_outlined = IconData(0xef58, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">clear_all</i> &#x2014; material icon named "clear all".
  static const IconData clear_all = IconData(0xe169, 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(0xe865, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">clear_all</i> &#x2014; material icon named "clear all" (round).
  static const IconData clear_all_rounded = IconData(0xf644, 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(0xef57, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">close</i> &#x2014; material icon named "close".
  static const IconData close = IconData(0xe16a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">close</i> &#x2014; material icon named "close" (sharp).
  static const IconData close_sharp = IconData(0xe868, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">close</i> &#x2014; material icon named "close" (round).
  static const IconData close_rounded = IconData(0xf647, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">close</i> &#x2014; material icon named "close" (outlined).
  static const IconData close_outlined = IconData(0xef5a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">close_fullscreen</i> &#x2014; material icon named "close fullscreen".
  static const IconData close_fullscreen = IconData(0xe16b, 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(0xe867, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">close_fullscreen</i> &#x2014; material icon named "close fullscreen" (round).
  static const IconData close_fullscreen_rounded = IconData(0xf646, 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(0xef59, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">closed_caption</i> &#x2014; material icon named "closed caption".
  static const IconData closed_caption = IconData(0xe16c, 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(0xe86b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">closed_caption</i> &#x2014; material icon named "closed caption" (round).
  static const IconData closed_caption_rounded = IconData(0xf64a, 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(0xef5d, 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(0xe16d, 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(
    0xe869,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">closed_caption_disabled</i> &#x2014; material icon named "closed caption disabled" (round).
  static const IconData closed_caption_disabled_rounded = IconData(
    0xf648,
    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(
    0xef5b,
    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(0xe16e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">closed_caption_off</i> &#x2014; material icon named "closed caption off" (sharp).
  static const IconData closed_caption_off_sharp = IconData(0xe86a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">closed_caption_off</i> &#x2014; material icon named "closed caption off" (round).
  static const IconData closed_caption_off_rounded = IconData(0xf649, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">closed_caption_off</i> &#x2014; material icon named "closed caption off" (outlined).
  static const IconData closed_caption_off_outlined = IconData(0xef5c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cloud</i> &#x2014; material icon named "cloud".
  static const IconData cloud = IconData(0xe16f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cloud</i> &#x2014; material icon named "cloud" (sharp).
  static const IconData cloud_sharp = IconData(0xe871, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cloud</i> &#x2014; material icon named "cloud" (round).
  static const IconData cloud_rounded = IconData(0xf650, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cloud</i> &#x2014; material icon named "cloud" (outlined).
  static const IconData cloud_outlined = IconData(0xef62, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cloud_circle</i> &#x2014; material icon named "cloud circle".
  static const IconData cloud_circle = IconData(0xe170, 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(0xe86c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cloud_circle</i> &#x2014; material icon named "cloud circle" (round).
  static const IconData cloud_circle_rounded = IconData(0xf64b, 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(0xef5e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cloud_done</i> &#x2014; material icon named "cloud done".
  static const IconData cloud_done = IconData(0xe171, 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(0xe86d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cloud_done</i> &#x2014; material icon named "cloud done" (round).
  static const IconData cloud_done_rounded = IconData(0xf64c, 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(0xef5f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cloud_download</i> &#x2014; material icon named "cloud download".
  static const IconData cloud_download = IconData(0xe172, 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(0xe86e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cloud_download</i> &#x2014; material icon named "cloud download" (round).
  static const IconData cloud_download_rounded = IconData(0xf64d, 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(0xef60, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cloud_off</i> &#x2014; material icon named "cloud off".
  static const IconData cloud_off = IconData(0xe173, 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(0xe86f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cloud_off</i> &#x2014; material icon named "cloud off" (round).
  static const IconData cloud_off_rounded = IconData(0xf64e, 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(0xef61, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cloud_queue</i> &#x2014; material icon named "cloud queue".
  static const IconData cloud_queue = IconData(0xe174, 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(0xe870, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cloud_queue</i> &#x2014; material icon named "cloud queue" (round).
  static const IconData cloud_queue_rounded = IconData(0xf64f, 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(0xef63, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cloud_sync</i> &#x2014; material icon named "cloud sync".
  static const IconData cloud_sync = IconData(0xf04ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cloud_sync</i> &#x2014; material icon named "cloud sync" (sharp).
  static const IconData cloud_sync_sharp = IconData(0xf03db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cloud_sync</i> &#x2014; material icon named "cloud sync" (round).
  static const IconData cloud_sync_rounded = IconData(0xf02e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cloud_sync</i> &#x2014; material icon named "cloud sync" (outlined).
  static const IconData cloud_sync_outlined = IconData(0xf05c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cloud_upload</i> &#x2014; material icon named "cloud upload".
  static const IconData cloud_upload = IconData(0xe175, 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(0xe872, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cloud_upload</i> &#x2014; material icon named "cloud upload" (round).
  static const IconData cloud_upload_rounded = IconData(0xf651, 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(0xef64, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cloudy_snowing</i> &#x2014; material icon named "cloudy snowing".
  static const IconData cloudy_snowing = IconData(0xf04cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">co2</i> &#x2014; material icon named "co2".
  static const IconData co2 = IconData(0xf04d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">co2</i> &#x2014; material icon named "co2" (sharp).
  static const IconData co2_sharp = IconData(0xf03dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">co2</i> &#x2014; material icon named "co2" (round).
  static const IconData co2_rounded = IconData(0xf02e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">co2</i> &#x2014; material icon named "co2" (outlined).
  static const IconData co2_outlined = IconData(0xf05ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">co_present</i> &#x2014; material icon named "co present".
  static const IconData co_present = IconData(0xf04d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">co_present</i> &#x2014; material icon named "co present" (sharp).
  static const IconData co_present_sharp = IconData(0xf03dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">co_present</i> &#x2014; material icon named "co present" (round).
  static const IconData co_present_rounded = IconData(0xf02ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">co_present</i> &#x2014; material icon named "co present" (outlined).
  static const IconData co_present_outlined = IconData(0xf05cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">code</i> &#x2014; material icon named "code".
  static const IconData code = IconData(0xe176, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">code</i> &#x2014; material icon named "code" (sharp).
  static const IconData code_sharp = IconData(0xe874, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">code</i> &#x2014; material icon named "code" (round).
  static const IconData code_rounded = IconData(0xf653, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">code</i> &#x2014; material icon named "code" (outlined).
  static const IconData code_outlined = IconData(0xef66, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">code_off</i> &#x2014; material icon named "code off".
  static const IconData code_off = IconData(0xe177, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">code_off</i> &#x2014; material icon named "code off" (sharp).
  static const IconData code_off_sharp = IconData(0xe873, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">code_off</i> &#x2014; material icon named "code off" (round).
  static const IconData code_off_rounded = IconData(0xf652, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">code_off</i> &#x2014; material icon named "code off" (outlined).
  static const IconData code_off_outlined = IconData(0xef65, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">coffee</i> &#x2014; material icon named "coffee".
  static const IconData coffee = IconData(0xe178, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">coffee</i> &#x2014; material icon named "coffee" (sharp).
  static const IconData coffee_sharp = IconData(0xe876, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">coffee</i> &#x2014; material icon named "coffee" (round).
  static const IconData coffee_rounded = IconData(0xf655, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">coffee</i> &#x2014; material icon named "coffee" (outlined).
  static const IconData coffee_outlined = IconData(0xef68, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">coffee_maker</i> &#x2014; material icon named "coffee maker".
  static const IconData coffee_maker = IconData(0xe179, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">coffee_maker</i> &#x2014; material icon named "coffee maker" (sharp).
  static const IconData coffee_maker_sharp = IconData(0xe875, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">coffee_maker</i> &#x2014; material icon named "coffee maker" (round).
  static const IconData coffee_maker_rounded = IconData(0xf654, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">coffee_maker</i> &#x2014; material icon named "coffee maker" (outlined).
  static const IconData coffee_maker_outlined = IconData(0xef67, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">collections</i> &#x2014; material icon named "collections".
  static const IconData collections = IconData(0xe17a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">collections</i> &#x2014; material icon named "collections" (sharp).
  static const IconData collections_sharp = IconData(0xe878, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">collections</i> &#x2014; material icon named "collections" (round).
  static const IconData collections_rounded = IconData(0xf657, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">collections</i> &#x2014; material icon named "collections" (outlined).
  static const IconData collections_outlined = IconData(0xef6a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">collections_bookmark</i> &#x2014; material icon named "collections bookmark".
  static const IconData collections_bookmark = IconData(0xe17b, 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(0xe877, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">collections_bookmark</i> &#x2014; material icon named "collections bookmark" (round).
  static const IconData collections_bookmark_rounded = IconData(
    0xf656,
    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(
    0xef69,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">color_lens</i> &#x2014; material icon named "color lens".
  static const IconData color_lens = IconData(0xe17c, 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(0xe879, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">color_lens</i> &#x2014; material icon named "color lens" (round).
  static const IconData color_lens_rounded = IconData(0xf658, 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(0xef6b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">colorize</i> &#x2014; material icon named "colorize".
  static const IconData colorize = IconData(0xe17d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">colorize</i> &#x2014; material icon named "colorize" (sharp).
  static const IconData colorize_sharp = IconData(0xe87a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">colorize</i> &#x2014; material icon named "colorize" (round).
  static const IconData colorize_rounded = IconData(0xf659, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">colorize</i> &#x2014; material icon named "colorize" (outlined).
  static const IconData colorize_outlined = IconData(0xef6c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">comment</i> &#x2014; material icon named "comment".
  static const IconData comment = IconData(0xe17e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">comment</i> &#x2014; material icon named "comment" (sharp).
  static const IconData comment_sharp = IconData(0xe87c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">comment</i> &#x2014; material icon named "comment" (round).
  static const IconData comment_rounded = IconData(0xf65b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">comment</i> &#x2014; material icon named "comment" (outlined).
  static const IconData comment_outlined = IconData(0xef6e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">comment_bank</i> &#x2014; material icon named "comment bank".
  static const IconData comment_bank = IconData(0xe17f, 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(0xe87b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">comment_bank</i> &#x2014; material icon named "comment bank" (round).
  static const IconData comment_bank_rounded = IconData(0xf65a, 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(0xef6d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">comments_disabled</i> &#x2014; material icon named "comments disabled".
  static const IconData comments_disabled = IconData(0xf04d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">comments_disabled</i> &#x2014; material icon named "comments disabled" (sharp).
  static const IconData comments_disabled_sharp = IconData(0xf03de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">comments_disabled</i> &#x2014; material icon named "comments disabled" (round).
  static const IconData comments_disabled_rounded = IconData(0xf02eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">comments_disabled</i> &#x2014; material icon named "comments disabled" (outlined).
  static const IconData comments_disabled_outlined = IconData(0xf05cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">commit</i> &#x2014; material icon named "commit".
  static const IconData commit = IconData(0xf04d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">commit</i> &#x2014; material icon named "commit" (sharp).
  static const IconData commit_sharp = IconData(0xf03df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">commit</i> &#x2014; material icon named "commit" (round).
  static const IconData commit_rounded = IconData(0xf02ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">commit</i> &#x2014; material icon named "commit" (outlined).
  static const IconData commit_outlined = IconData(0xf05cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">commute</i> &#x2014; material icon named "commute".
  static const IconData commute = IconData(0xe180, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">commute</i> &#x2014; material icon named "commute" (sharp).
  static const IconData commute_sharp = IconData(0xe87d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">commute</i> &#x2014; material icon named "commute" (round).
  static const IconData commute_rounded = IconData(0xf65c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">commute</i> &#x2014; material icon named "commute" (outlined).
  static const IconData commute_outlined = IconData(0xef6f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">compare</i> &#x2014; material icon named "compare".
  static const IconData compare = IconData(0xe181, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">compare</i> &#x2014; material icon named "compare" (sharp).
  static const IconData compare_sharp = IconData(0xe87f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">compare</i> &#x2014; material icon named "compare" (round).
  static const IconData compare_rounded = IconData(0xf65e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">compare</i> &#x2014; material icon named "compare" (outlined).
  static const IconData compare_outlined = IconData(0xef71, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">compare_arrows</i> &#x2014; material icon named "compare arrows".
  static const IconData compare_arrows = IconData(0xe182, 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(0xe87e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">compare_arrows</i> &#x2014; material icon named "compare arrows" (round).
  static const IconData compare_arrows_rounded = IconData(0xf65d, 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(0xef70, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">compass_calibration</i> &#x2014; material icon named "compass calibration".
  static const IconData compass_calibration = IconData(0xe183, 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(0xe880, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">compass_calibration</i> &#x2014; material icon named "compass calibration" (round).
  static const IconData compass_calibration_rounded = IconData(0xf65f, 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(
    0xef72,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">compost</i> &#x2014; material icon named "compost".
  static const IconData compost = IconData(0xf04d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">compost</i> &#x2014; material icon named "compost" (sharp).
  static const IconData compost_sharp = IconData(0xf03e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">compost</i> &#x2014; material icon named "compost" (round).
  static const IconData compost_rounded = IconData(0xf02ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">compost</i> &#x2014; material icon named "compost" (outlined).
  static const IconData compost_outlined = IconData(0xf05ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">compress</i> &#x2014; material icon named "compress".
  static const IconData compress = IconData(0xe184, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">compress</i> &#x2014; material icon named "compress" (sharp).
  static const IconData compress_sharp = IconData(0xe881, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">compress</i> &#x2014; material icon named "compress" (round).
  static const IconData compress_rounded = IconData(0xf660, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">compress</i> &#x2014; material icon named "compress" (outlined).
  static const IconData compress_outlined = IconData(0xef73, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">computer</i> &#x2014; material icon named "computer".
  static const IconData computer = IconData(0xe185, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">computer</i> &#x2014; material icon named "computer" (sharp).
  static const IconData computer_sharp = IconData(0xe882, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">computer</i> &#x2014; material icon named "computer" (round).
  static const IconData computer_rounded = IconData(0xf661, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">computer</i> &#x2014; material icon named "computer" (outlined).
  static const IconData computer_outlined = IconData(0xef74, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">confirmation_num</i> &#x2014; material icon named "confirmation num".
  static const IconData confirmation_num = IconData(0xe186, 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(0xe883, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">confirmation_num</i> &#x2014; material icon named "confirmation num" (round).
  static const IconData confirmation_num_rounded = IconData(0xf662, 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(0xef75, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">confirmation_number</i> &#x2014; material icon named "confirmation number".
  static const IconData confirmation_number = IconData(0xe186, 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(0xe883, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">confirmation_number</i> &#x2014; material icon named "confirmation number" (round).
  static const IconData confirmation_number_rounded = IconData(0xf662, 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(
    0xef75,
    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(0xe187, 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(
    0xe884,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">connect_without_contact</i> &#x2014; material icon named "connect without contact" (round).
  static const IconData connect_without_contact_rounded = IconData(
    0xf663,
    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(
    0xef76,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">connected_tv</i> &#x2014; material icon named "connected tv".
  static const IconData connected_tv = IconData(0xe188, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">connected_tv</i> &#x2014; material icon named "connected tv" (sharp).
  static const IconData connected_tv_sharp = IconData(0xe885, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">connected_tv</i> &#x2014; material icon named "connected tv" (round).
  static const IconData connected_tv_rounded = IconData(0xf664, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">connected_tv</i> &#x2014; material icon named "connected tv" (outlined).
  static const IconData connected_tv_outlined = IconData(0xef77, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">connecting_airports</i> &#x2014; material icon named "connecting airports".
  static const IconData connecting_airports = IconData(0xf04d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">connecting_airports</i> &#x2014; material icon named "connecting airports" (sharp).
  static const IconData connecting_airports_sharp = IconData(0xf03e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">connecting_airports</i> &#x2014; material icon named "connecting airports" (round).
  static const IconData connecting_airports_rounded = IconData(
    0xf02ee,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">connecting_airports</i> &#x2014; material icon named "connecting airports" (outlined).
  static const IconData connecting_airports_outlined = IconData(
    0xf05cf,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">construction</i> &#x2014; material icon named "construction".
  static const IconData construction = IconData(0xe189, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">construction</i> &#x2014; material icon named "construction" (sharp).
  static const IconData construction_sharp = IconData(0xe886, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">construction</i> &#x2014; material icon named "construction" (round).
  static const IconData construction_rounded = IconData(0xf665, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">construction</i> &#x2014; material icon named "construction" (outlined).
  static const IconData construction_outlined = IconData(0xef78, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">contact_emergency</i> &#x2014; material icon named "contact emergency".
  static const IconData contact_emergency = IconData(0xf0857, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">contact_emergency</i> &#x2014; material icon named "contact emergency" (sharp).
  static const IconData contact_emergency_sharp = IconData(0xf0837, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">contact_emergency</i> &#x2014; material icon named "contact emergency" (round).
  static const IconData contact_emergency_rounded = IconData(0xf0880, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">contact_emergency</i> &#x2014; material icon named "contact emergency" (outlined).
  static const IconData contact_emergency_outlined = IconData(0xf089e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">contact_mail</i> &#x2014; material icon named "contact mail".
  static const IconData contact_mail = IconData(0xe18a, 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(0xe887, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">contact_mail</i> &#x2014; material icon named "contact mail" (round).
  static const IconData contact_mail_rounded = IconData(0xf666, 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(0xef79, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">contact_page</i> &#x2014; material icon named "contact page".
  static const IconData contact_page = IconData(0xe18b, 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(0xe888, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">contact_page</i> &#x2014; material icon named "contact page" (round).
  static const IconData contact_page_rounded = IconData(0xf667, 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(0xef7a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">contact_phone</i> &#x2014; material icon named "contact phone".
  static const IconData contact_phone = IconData(0xe18c, 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(0xe889, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">contact_phone</i> &#x2014; material icon named "contact phone" (round).
  static const IconData contact_phone_rounded = IconData(0xf668, 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(0xef7b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">contact_support</i> &#x2014; material icon named "contact support".
  static const IconData contact_support = IconData(0xe18d, 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(0xe88a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">contact_support</i> &#x2014; material icon named "contact support" (round).
  static const IconData contact_support_rounded = IconData(0xf669, 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(0xef7c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">contactless</i> &#x2014; material icon named "contactless".
  static const IconData contactless = IconData(0xe18e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">contactless</i> &#x2014; material icon named "contactless" (sharp).
  static const IconData contactless_sharp = IconData(0xe88b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">contactless</i> &#x2014; material icon named "contactless" (round).
  static const IconData contactless_rounded = IconData(0xf66a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">contactless</i> &#x2014; material icon named "contactless" (outlined).
  static const IconData contactless_outlined = IconData(0xef7d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">contacts</i> &#x2014; material icon named "contacts".
  static const IconData contacts = IconData(0xe18f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">contacts</i> &#x2014; material icon named "contacts" (sharp).
  static const IconData contacts_sharp = IconData(0xe88c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">contacts</i> &#x2014; material icon named "contacts" (round).
  static const IconData contacts_rounded = IconData(0xf66b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">contacts</i> &#x2014; material icon named "contacts" (outlined).
  static const IconData contacts_outlined = IconData(0xef7e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">content_copy</i> &#x2014; material icon named "content copy".
  static const IconData content_copy = IconData(0xe190, 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(0xe88d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">content_copy</i> &#x2014; material icon named "content copy" (round).
  static const IconData content_copy_rounded = IconData(0xf66c, 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(0xef7f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">content_cut</i> &#x2014; material icon named "content cut".
  static const IconData content_cut = IconData(0xe191, 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(0xe88e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">content_cut</i> &#x2014; material icon named "content cut" (round).
  static const IconData content_cut_rounded = IconData(0xf66d, 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(0xef80, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">content_paste</i> &#x2014; material icon named "content paste".
  static const IconData content_paste = IconData(0xe192, 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(0xe890, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">content_paste</i> &#x2014; material icon named "content paste" (round).
  static const IconData content_paste_rounded = IconData(0xf66f, 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(0xef82, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">content_paste_go</i> &#x2014; material icon named "content paste go".
  static const IconData content_paste_go = IconData(0xf04d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">content_paste_go</i> &#x2014; material icon named "content paste go" (sharp).
  static const IconData content_paste_go_sharp = IconData(0xf03e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">content_paste_go</i> &#x2014; material icon named "content paste go" (round).
  static const IconData content_paste_go_rounded = IconData(0xf02ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">content_paste_go</i> &#x2014; material icon named "content paste go" (outlined).
  static const IconData content_paste_go_outlined = IconData(0xf05d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">content_paste_off</i> &#x2014; material icon named "content paste off".
  static const IconData content_paste_off = IconData(0xe193, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">content_paste_off</i> &#x2014; material icon named "content paste off" (sharp).
  static const IconData content_paste_off_sharp = IconData(0xe88f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">content_paste_off</i> &#x2014; material icon named "content paste off" (round).
  static const IconData content_paste_off_rounded = IconData(0xf66e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">content_paste_off</i> &#x2014; material icon named "content paste off" (outlined).
  static const IconData content_paste_off_outlined = IconData(0xef81, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">content_paste_search</i> &#x2014; material icon named "content paste search".
  static const IconData content_paste_search = IconData(0xf04d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">content_paste_search</i> &#x2014; material icon named "content paste search" (sharp).
  static const IconData content_paste_search_sharp = IconData(0xf03e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">content_paste_search</i> &#x2014; material icon named "content paste search" (round).
  static const IconData content_paste_search_rounded = IconData(
    0xf02f0,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">content_paste_search</i> &#x2014; material icon named "content paste search" (outlined).
  static const IconData content_paste_search_outlined = IconData(
    0xf05d1,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">contrast</i> &#x2014; material icon named "contrast".
  static const IconData contrast = IconData(0xf04d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">contrast</i> &#x2014; material icon named "contrast" (sharp).
  static const IconData contrast_sharp = IconData(0xf03e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">contrast</i> &#x2014; material icon named "contrast" (round).
  static const IconData contrast_rounded = IconData(0xf02f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">contrast</i> &#x2014; material icon named "contrast" (outlined).
  static const IconData contrast_outlined = IconData(0xf05d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">control_camera</i> &#x2014; material icon named "control camera".
  static const IconData control_camera = IconData(0xe194, 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(0xe891, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">control_camera</i> &#x2014; material icon named "control camera" (round).
  static const IconData control_camera_rounded = IconData(0xf670, 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(0xef83, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">control_point</i> &#x2014; material icon named "control point".
  static const IconData control_point = IconData(0xe195, 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(0xe893, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">control_point</i> &#x2014; material icon named "control point" (round).
  static const IconData control_point_rounded = IconData(0xf672, 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(0xef85, 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(0xe196, 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(
    0xe892,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">control_point_duplicate</i> &#x2014; material icon named "control point duplicate" (round).
  static const IconData control_point_duplicate_rounded = IconData(
    0xf671,
    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(
    0xef84,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">conveyor_belt</i> &#x2014; material icon named "conveyor belt".
  static const IconData conveyor_belt = IconData(0xf0858, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cookie</i> &#x2014; material icon named "cookie".
  static const IconData cookie = IconData(0xf04d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cookie</i> &#x2014; material icon named "cookie" (sharp).
  static const IconData cookie_sharp = IconData(0xf03e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cookie</i> &#x2014; material icon named "cookie" (round).
  static const IconData cookie_rounded = IconData(0xf02f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cookie</i> &#x2014; material icon named "cookie" (outlined).
  static const IconData cookie_outlined = IconData(0xf05d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">copy</i> &#x2014; material icon named "copy".
  static const IconData copy = IconData(0xe190, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">copy</i> &#x2014; material icon named "copy" (sharp).
  static const IconData copy_sharp = IconData(0xe88d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">copy</i> &#x2014; material icon named "copy" (round).
  static const IconData copy_rounded = IconData(0xf66c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">copy</i> &#x2014; material icon named "copy" (outlined).
  static const IconData copy_outlined = IconData(0xef7f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">copy_all</i> &#x2014; material icon named "copy all".
  static const IconData copy_all = IconData(0xe197, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">copy_all</i> &#x2014; material icon named "copy all" (sharp).
  static const IconData copy_all_sharp = IconData(0xe894, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">copy_all</i> &#x2014; material icon named "copy all" (round).
  static const IconData copy_all_rounded = IconData(0xf673, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">copy_all</i> &#x2014; material icon named "copy all" (outlined).
  static const IconData copy_all_outlined = IconData(0xef86, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">copyright</i> &#x2014; material icon named "copyright".
  static const IconData copyright = IconData(0xe198, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">copyright</i> &#x2014; material icon named "copyright" (sharp).
  static const IconData copyright_sharp = IconData(0xe895, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">copyright</i> &#x2014; material icon named "copyright" (round).
  static const IconData copyright_rounded = IconData(0xf674, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">copyright</i> &#x2014; material icon named "copyright" (outlined).
  static const IconData copyright_outlined = IconData(0xef87, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">coronavirus</i> &#x2014; material icon named "coronavirus".
  static const IconData coronavirus = IconData(0xe199, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">coronavirus</i> &#x2014; material icon named "coronavirus" (sharp).
  static const IconData coronavirus_sharp = IconData(0xe896, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">coronavirus</i> &#x2014; material icon named "coronavirus" (round).
  static const IconData coronavirus_rounded = IconData(0xf675, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">coronavirus</i> &#x2014; material icon named "coronavirus" (outlined).
  static const IconData coronavirus_outlined = IconData(0xef88, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">corporate_fare</i> &#x2014; material icon named "corporate fare".
  static const IconData corporate_fare = IconData(0xe19a, 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(0xe897, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">corporate_fare</i> &#x2014; material icon named "corporate fare" (round).
  static const IconData corporate_fare_rounded = IconData(0xf676, 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(0xef89, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cottage</i> &#x2014; material icon named "cottage".
  static const IconData cottage = IconData(0xe19b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cottage</i> &#x2014; material icon named "cottage" (sharp).
  static const IconData cottage_sharp = IconData(0xe898, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cottage</i> &#x2014; material icon named "cottage" (round).
  static const IconData cottage_rounded = IconData(0xf677, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cottage</i> &#x2014; material icon named "cottage" (outlined).
  static const IconData cottage_outlined = IconData(0xef8a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">countertops</i> &#x2014; material icon named "countertops".
  static const IconData countertops = IconData(0xe19c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">countertops</i> &#x2014; material icon named "countertops" (sharp).
  static const IconData countertops_sharp = IconData(0xe899, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">countertops</i> &#x2014; material icon named "countertops" (round).
  static const IconData countertops_rounded = IconData(0xf678, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">countertops</i> &#x2014; material icon named "countertops" (outlined).
  static const IconData countertops_outlined = IconData(0xef8b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">create</i> &#x2014; material icon named "create".
  static const IconData create = IconData(0xe19d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">create</i> &#x2014; material icon named "create" (sharp).
  static const IconData create_sharp = IconData(0xe89b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">create</i> &#x2014; material icon named "create" (round).
  static const IconData create_rounded = IconData(0xf67a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">create</i> &#x2014; material icon named "create" (outlined).
  static const IconData create_outlined = IconData(0xef8d, 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(0xe19e, 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(0xe89a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">create_new_folder</i> &#x2014; material icon named "create new folder" (round).
  static const IconData create_new_folder_rounded = IconData(0xf679, 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(0xef8c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">credit_card</i> &#x2014; material icon named "credit card".
  static const IconData credit_card = IconData(0xe19f, 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(0xe89d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">credit_card</i> &#x2014; material icon named "credit card" (round).
  static const IconData credit_card_rounded = IconData(0xf67c, 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(0xef8f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">credit_card_off</i> &#x2014; material icon named "credit card off".
  static const IconData credit_card_off = IconData(0xe1a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">credit_card_off</i> &#x2014; material icon named "credit card off" (sharp).
  static const IconData credit_card_off_sharp = IconData(0xe89c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">credit_card_off</i> &#x2014; material icon named "credit card off" (round).
  static const IconData credit_card_off_rounded = IconData(0xf67b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">credit_card_off</i> &#x2014; material icon named "credit card off" (outlined).
  static const IconData credit_card_off_outlined = IconData(0xef8e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">credit_score</i> &#x2014; material icon named "credit score".
  static const IconData credit_score = IconData(0xe1a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">credit_score</i> &#x2014; material icon named "credit score" (sharp).
  static const IconData credit_score_sharp = IconData(0xe89e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">credit_score</i> &#x2014; material icon named "credit score" (round).
  static const IconData credit_score_rounded = IconData(0xf67d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">credit_score</i> &#x2014; material icon named "credit score" (outlined).
  static const IconData credit_score_outlined = IconData(0xef90, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crib</i> &#x2014; material icon named "crib".
  static const IconData crib = IconData(0xe1a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">crib</i> &#x2014; material icon named "crib" (sharp).
  static const IconData crib_sharp = IconData(0xe89f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crib</i> &#x2014; material icon named "crib" (round).
  static const IconData crib_rounded = IconData(0xf67e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">crib</i> &#x2014; material icon named "crib" (outlined).
  static const IconData crib_outlined = IconData(0xef91, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crisis_alert</i> &#x2014; material icon named "crisis alert".
  static const IconData crisis_alert = IconData(0xf0794, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">crisis_alert</i> &#x2014; material icon named "crisis alert" (sharp).
  static const IconData crisis_alert_sharp = IconData(0xf073c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crisis_alert</i> &#x2014; material icon named "crisis alert" (round).
  static const IconData crisis_alert_rounded = IconData(0xf07ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">crisis_alert</i> &#x2014; material icon named "crisis alert" (outlined).
  static const IconData crisis_alert_outlined = IconData(0xf06e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop</i> &#x2014; material icon named "crop".
  static const IconData crop = IconData(0xe1a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">crop</i> &#x2014; material icon named "crop" (sharp).
  static const IconData crop_sharp = IconData(0xe8aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop</i> &#x2014; material icon named "crop" (round).
  static const IconData crop_rounded = IconData(0xf689, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">crop</i> &#x2014; material icon named "crop" (outlined).
  static const IconData crop_outlined = IconData(0xef9a, 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(0xe1a4, 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(0xe8a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_16_9</i> &#x2014; material icon named "crop 16 9" (round).
  static const IconData crop_16_9_rounded = IconData(0xf67f, 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(0xef92, 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(0xe1a5, 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(0xe8a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_3_2</i> &#x2014; material icon named "crop 3 2" (round).
  static const IconData crop_3_2_rounded = IconData(0xf680, 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(0xef93, 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(0xe1a6, 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(0xe8a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_5_4</i> &#x2014; material icon named "crop 5 4" (round).
  static const IconData crop_5_4_rounded = IconData(0xf681, 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(0xef94, 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(0xe1a7, 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(0xe8a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_7_5</i> &#x2014; material icon named "crop 7 5" (round).
  static const IconData crop_7_5_rounded = IconData(0xf682, 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(0xef95, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop_din</i> &#x2014; material icon named "crop din".
  static const IconData crop_din = IconData(0xe1a8, 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(0xe8a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_din</i> &#x2014; material icon named "crop din" (round).
  static const IconData crop_din_rounded = IconData(0xf683, 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(0xef96, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop_free</i> &#x2014; material icon named "crop free".
  static const IconData crop_free = IconData(0xe1a9, 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(0xe8a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_free</i> &#x2014; material icon named "crop free" (round).
  static const IconData crop_free_rounded = IconData(0xf684, 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(0xef97, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop_landscape</i> &#x2014; material icon named "crop landscape".
  static const IconData crop_landscape = IconData(0xe1aa, 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(0xe8a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_landscape</i> &#x2014; material icon named "crop landscape" (round).
  static const IconData crop_landscape_rounded = IconData(0xf685, 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(0xef98, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop_original</i> &#x2014; material icon named "crop original".
  static const IconData crop_original = IconData(0xe1ab, 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(0xe8a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_original</i> &#x2014; material icon named "crop original" (round).
  static const IconData crop_original_rounded = IconData(0xf686, 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(0xef99, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop_portrait</i> &#x2014; material icon named "crop portrait".
  static const IconData crop_portrait = IconData(0xe1ac, 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(0xe8a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_portrait</i> &#x2014; material icon named "crop portrait" (round).
  static const IconData crop_portrait_rounded = IconData(0xf687, 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(0xef9b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop_rotate</i> &#x2014; material icon named "crop rotate".
  static const IconData crop_rotate = IconData(0xe1ad, 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(0xe8a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_rotate</i> &#x2014; material icon named "crop rotate" (round).
  static const IconData crop_rotate_rounded = IconData(0xf688, 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(0xef9c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">crop_square</i> &#x2014; material icon named "crop square".
  static const IconData crop_square = IconData(0xe1ae, 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(0xe8ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">crop_square</i> &#x2014; material icon named "crop square" (round).
  static const IconData crop_square_rounded = IconData(0xf68a, 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(0xef9d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cruelty_free</i> &#x2014; material icon named "cruelty free".
  static const IconData cruelty_free = IconData(0xf04da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cruelty_free</i> &#x2014; material icon named "cruelty free" (sharp).
  static const IconData cruelty_free_sharp = IconData(0xf03e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cruelty_free</i> &#x2014; material icon named "cruelty free" (round).
  static const IconData cruelty_free_rounded = IconData(0xf02f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cruelty_free</i> &#x2014; material icon named "cruelty free" (outlined).
  static const IconData cruelty_free_outlined = IconData(0xf05d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">css</i> &#x2014; material icon named "css".
  static const IconData css = IconData(0xf04db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">css</i> &#x2014; material icon named "css" (sharp).
  static const IconData css_sharp = IconData(0xf03e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">css</i> &#x2014; material icon named "css" (round).
  static const IconData css_rounded = IconData(0xf02f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">css</i> &#x2014; material icon named "css" (outlined).
  static const IconData css_outlined = IconData(0xf05d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">currency_bitcoin</i> &#x2014; material icon named "currency bitcoin".
  static const IconData currency_bitcoin = IconData(0xf06bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">currency_bitcoin</i> &#x2014; material icon named "currency bitcoin" (sharp).
  static const IconData currency_bitcoin_sharp = IconData(0xf06af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">currency_bitcoin</i> &#x2014; material icon named "currency bitcoin" (round).
  static const IconData currency_bitcoin_rounded = IconData(0xf06c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">currency_bitcoin</i> &#x2014; material icon named "currency bitcoin" (outlined).
  static const IconData currency_bitcoin_outlined = IconData(0xf054a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">currency_exchange</i> &#x2014; material icon named "currency exchange".
  static const IconData currency_exchange = IconData(0xf04dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">currency_exchange</i> &#x2014; material icon named "currency exchange" (sharp).
  static const IconData currency_exchange_sharp = IconData(0xf03e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">currency_exchange</i> &#x2014; material icon named "currency exchange" (round).
  static const IconData currency_exchange_rounded = IconData(0xf02f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">currency_exchange</i> &#x2014; material icon named "currency exchange" (outlined).
  static const IconData currency_exchange_outlined = IconData(0xf05d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">currency_franc</i> &#x2014; material icon named "currency franc".
  static const IconData currency_franc = IconData(0xf04dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">currency_franc</i> &#x2014; material icon named "currency franc" (sharp).
  static const IconData currency_franc_sharp = IconData(0xf03e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">currency_franc</i> &#x2014; material icon named "currency franc" (round).
  static const IconData currency_franc_rounded = IconData(0xf02f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">currency_franc</i> &#x2014; material icon named "currency franc" (outlined).
  static const IconData currency_franc_outlined = IconData(0xf05d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">currency_lira</i> &#x2014; material icon named "currency lira".
  static const IconData currency_lira = IconData(0xf04de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">currency_lira</i> &#x2014; material icon named "currency lira" (sharp).
  static const IconData currency_lira_sharp = IconData(0xf03ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">currency_lira</i> &#x2014; material icon named "currency lira" (round).
  static const IconData currency_lira_rounded = IconData(0xf02f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">currency_lira</i> &#x2014; material icon named "currency lira" (outlined).
  static const IconData currency_lira_outlined = IconData(0xf05d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">currency_pound</i> &#x2014; material icon named "currency pound".
  static const IconData currency_pound = IconData(0xf04df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">currency_pound</i> &#x2014; material icon named "currency pound" (sharp).
  static const IconData currency_pound_sharp = IconData(0xf03eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">currency_pound</i> &#x2014; material icon named "currency pound" (round).
  static const IconData currency_pound_rounded = IconData(0xf02f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">currency_pound</i> &#x2014; material icon named "currency pound" (outlined).
  static const IconData currency_pound_outlined = IconData(0xf05d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">currency_ruble</i> &#x2014; material icon named "currency ruble".
  static const IconData currency_ruble = IconData(0xf04e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">currency_ruble</i> &#x2014; material icon named "currency ruble" (sharp).
  static const IconData currency_ruble_sharp = IconData(0xf03ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">currency_ruble</i> &#x2014; material icon named "currency ruble" (round).
  static const IconData currency_ruble_rounded = IconData(0xf02f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">currency_ruble</i> &#x2014; material icon named "currency ruble" (outlined).
  static const IconData currency_ruble_outlined = IconData(0xf05da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">currency_rupee</i> &#x2014; material icon named "currency rupee".
  static const IconData currency_rupee = IconData(0xf04e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">currency_rupee</i> &#x2014; material icon named "currency rupee" (sharp).
  static const IconData currency_rupee_sharp = IconData(0xf03ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">currency_rupee</i> &#x2014; material icon named "currency rupee" (round).
  static const IconData currency_rupee_rounded = IconData(0xf02fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">currency_rupee</i> &#x2014; material icon named "currency rupee" (outlined).
  static const IconData currency_rupee_outlined = IconData(0xf05db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">currency_yen</i> &#x2014; material icon named "currency yen".
  static const IconData currency_yen = IconData(0xf04e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">currency_yen</i> &#x2014; material icon named "currency yen" (sharp).
  static const IconData currency_yen_sharp = IconData(0xf03ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">currency_yen</i> &#x2014; material icon named "currency yen" (round).
  static const IconData currency_yen_rounded = IconData(0xf02fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">currency_yen</i> &#x2014; material icon named "currency yen" (outlined).
  static const IconData currency_yen_outlined = IconData(0xf05dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">currency_yuan</i> &#x2014; material icon named "currency yuan".
  static const IconData currency_yuan = IconData(0xf04e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">currency_yuan</i> &#x2014; material icon named "currency yuan" (sharp).
  static const IconData currency_yuan_sharp = IconData(0xf03ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">currency_yuan</i> &#x2014; material icon named "currency yuan" (round).
  static const IconData currency_yuan_rounded = IconData(0xf02fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">currency_yuan</i> &#x2014; material icon named "currency yuan" (outlined).
  static const IconData currency_yuan_outlined = IconData(0xf05dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">curtains</i> &#x2014; material icon named "curtains".
  static const IconData curtains = IconData(0xf0795, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">curtains</i> &#x2014; material icon named "curtains" (sharp).
  static const IconData curtains_sharp = IconData(0xf073e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">curtains</i> &#x2014; material icon named "curtains" (round).
  static const IconData curtains_rounded = IconData(0xf07ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">curtains</i> &#x2014; material icon named "curtains" (outlined).
  static const IconData curtains_outlined = IconData(0xf06e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">curtains_closed</i> &#x2014; material icon named "curtains closed".
  static const IconData curtains_closed = IconData(0xf0796, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">curtains_closed</i> &#x2014; material icon named "curtains closed" (sharp).
  static const IconData curtains_closed_sharp = IconData(0xf073d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">curtains_closed</i> &#x2014; material icon named "curtains closed" (round).
  static const IconData curtains_closed_rounded = IconData(0xf07ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">curtains_closed</i> &#x2014; material icon named "curtains closed" (outlined).
  static const IconData curtains_closed_outlined = IconData(0xf06e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cut</i> &#x2014; material icon named "cut".
  static const IconData cut = IconData(0xe191, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cut</i> &#x2014; material icon named "cut" (sharp).
  static const IconData cut_sharp = IconData(0xe88e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cut</i> &#x2014; material icon named "cut" (round).
  static const IconData cut_rounded = IconData(0xf66d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cut</i> &#x2014; material icon named "cut" (outlined).
  static const IconData cut_outlined = IconData(0xef80, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">cyclone</i> &#x2014; material icon named "cyclone".
  static const IconData cyclone = IconData(0xf0797, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">cyclone</i> &#x2014; material icon named "cyclone" (sharp).
  static const IconData cyclone_sharp = IconData(0xf073f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">cyclone</i> &#x2014; material icon named "cyclone" (round).
  static const IconData cyclone_rounded = IconData(0xf07ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">cyclone</i> &#x2014; material icon named "cyclone" (outlined).
  static const IconData cyclone_outlined = IconData(0xf06e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dangerous</i> &#x2014; material icon named "dangerous".
  static const IconData dangerous = IconData(0xe1af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dangerous</i> &#x2014; material icon named "dangerous" (sharp).
  static const IconData dangerous_sharp = IconData(0xe8ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dangerous</i> &#x2014; material icon named "dangerous" (round).
  static const IconData dangerous_rounded = IconData(0xf68b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dangerous</i> &#x2014; material icon named "dangerous" (outlined).
  static const IconData dangerous_outlined = IconData(0xef9e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dark_mode</i> &#x2014; material icon named "dark mode".
  static const IconData dark_mode = IconData(0xe1b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dark_mode</i> &#x2014; material icon named "dark mode" (sharp).
  static const IconData dark_mode_sharp = IconData(0xe8ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dark_mode</i> &#x2014; material icon named "dark mode" (round).
  static const IconData dark_mode_rounded = IconData(0xf68c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dark_mode</i> &#x2014; material icon named "dark mode" (outlined).
  static const IconData dark_mode_outlined = IconData(0xef9f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dashboard</i> &#x2014; material icon named "dashboard".
  static const IconData dashboard = IconData(0xe1b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dashboard</i> &#x2014; material icon named "dashboard" (sharp).
  static const IconData dashboard_sharp = IconData(0xe8af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dashboard</i> &#x2014; material icon named "dashboard" (round).
  static const IconData dashboard_rounded = IconData(0xf68e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dashboard</i> &#x2014; material icon named "dashboard" (outlined).
  static const IconData dashboard_outlined = IconData(0xefa1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dashboard_customize</i> &#x2014; material icon named "dashboard customize".
  static const IconData dashboard_customize = IconData(0xe1b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dashboard_customize</i> &#x2014; material icon named "dashboard customize" (sharp).
  static const IconData dashboard_customize_sharp = IconData(0xe8ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dashboard_customize</i> &#x2014; material icon named "dashboard customize" (round).
  static const IconData dashboard_customize_rounded = IconData(0xf68d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dashboard_customize</i> &#x2014; material icon named "dashboard customize" (outlined).
  static const IconData dashboard_customize_outlined = IconData(
    0xefa0,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">data_array</i> &#x2014; material icon named "data array".
  static const IconData data_array = IconData(0xf04e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">data_array</i> &#x2014; material icon named "data array" (sharp).
  static const IconData data_array_sharp = IconData(0xf03f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">data_array</i> &#x2014; material icon named "data array" (round).
  static const IconData data_array_rounded = IconData(0xf02fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">data_array</i> &#x2014; material icon named "data array" (outlined).
  static const IconData data_array_outlined = IconData(0xf05de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">data_exploration</i> &#x2014; material icon named "data exploration".
  static const IconData data_exploration = IconData(0xf04e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">data_exploration</i> &#x2014; material icon named "data exploration" (sharp).
  static const IconData data_exploration_sharp = IconData(0xf03f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">data_exploration</i> &#x2014; material icon named "data exploration" (round).
  static const IconData data_exploration_rounded = IconData(0xf02fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">data_exploration</i> &#x2014; material icon named "data exploration" (outlined).
  static const IconData data_exploration_outlined = IconData(0xf05df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">data_object</i> &#x2014; material icon named "data object".
  static const IconData data_object = IconData(0xf04e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">data_object</i> &#x2014; material icon named "data object" (sharp).
  static const IconData data_object_sharp = IconData(0xf03f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">data_object</i> &#x2014; material icon named "data object" (round).
  static const IconData data_object_rounded = IconData(0xf02ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">data_object</i> &#x2014; material icon named "data object" (outlined).
  static const IconData data_object_outlined = IconData(0xf05e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">data_saver_off</i> &#x2014; material icon named "data saver off".
  static const IconData data_saver_off = IconData(0xe1b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">data_saver_off</i> &#x2014; material icon named "data saver off" (sharp).
  static const IconData data_saver_off_sharp = IconData(0xe8b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">data_saver_off</i> &#x2014; material icon named "data saver off" (round).
  static const IconData data_saver_off_rounded = IconData(0xf68f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">data_saver_off</i> &#x2014; material icon named "data saver off" (outlined).
  static const IconData data_saver_off_outlined = IconData(0xefa2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">data_saver_on</i> &#x2014; material icon named "data saver on".
  static const IconData data_saver_on = IconData(0xe1b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">data_saver_on</i> &#x2014; material icon named "data saver on" (sharp).
  static const IconData data_saver_on_sharp = IconData(0xe8b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">data_saver_on</i> &#x2014; material icon named "data saver on" (round).
  static const IconData data_saver_on_rounded = IconData(0xf690, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">data_saver_on</i> &#x2014; material icon named "data saver on" (outlined).
  static const IconData data_saver_on_outlined = IconData(0xefa3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">data_thresholding</i> &#x2014; material icon named "data thresholding".
  static const IconData data_thresholding = IconData(0xf04e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">data_thresholding</i> &#x2014; material icon named "data thresholding" (sharp).
  static const IconData data_thresholding_sharp = IconData(0xf03f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">data_thresholding</i> &#x2014; material icon named "data thresholding" (round).
  static const IconData data_thresholding_rounded = IconData(0xf0300, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">data_thresholding</i> &#x2014; material icon named "data thresholding" (outlined).
  static const IconData data_thresholding_outlined = IconData(0xf05e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">data_usage</i> &#x2014; material icon named "data usage".
  static const IconData data_usage = IconData(0xe1b5, 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(0xe8b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">data_usage</i> &#x2014; material icon named "data usage" (round).
  static const IconData data_usage_rounded = IconData(0xf691, 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(0xefa4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dataset</i> &#x2014; material icon named "dataset".
  static const IconData dataset = IconData(0xf0798, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dataset</i> &#x2014; material icon named "dataset" (sharp).
  static const IconData dataset_sharp = IconData(0xf0741, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dataset</i> &#x2014; material icon named "dataset" (round).
  static const IconData dataset_rounded = IconData(0xf07f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dataset</i> &#x2014; material icon named "dataset" (outlined).
  static const IconData dataset_outlined = IconData(0xf06e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dataset_linked</i> &#x2014; material icon named "dataset linked".
  static const IconData dataset_linked = IconData(0xf0799, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dataset_linked</i> &#x2014; material icon named "dataset linked" (sharp).
  static const IconData dataset_linked_sharp = IconData(0xf0740, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dataset_linked</i> &#x2014; material icon named "dataset linked" (round).
  static const IconData dataset_linked_rounded = IconData(0xf07f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dataset_linked</i> &#x2014; material icon named "dataset linked" (outlined).
  static const IconData dataset_linked_outlined = IconData(0xf06e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">date_range</i> &#x2014; material icon named "date range".
  static const IconData date_range = IconData(0xe1b6, 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(0xe8b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">date_range</i> &#x2014; material icon named "date range" (round).
  static const IconData date_range_rounded = IconData(0xf692, 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(0xefa5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">deblur</i> &#x2014; material icon named "deblur".
  static const IconData deblur = IconData(0xf04e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">deblur</i> &#x2014; material icon named "deblur" (sharp).
  static const IconData deblur_sharp = IconData(0xf03f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">deblur</i> &#x2014; material icon named "deblur" (round).
  static const IconData deblur_rounded = IconData(0xf0301, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">deblur</i> &#x2014; material icon named "deblur" (outlined).
  static const IconData deblur_outlined = IconData(0xf05e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">deck</i> &#x2014; material icon named "deck".
  static const IconData deck = IconData(0xe1b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">deck</i> &#x2014; material icon named "deck" (sharp).
  static const IconData deck_sharp = IconData(0xe8b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">deck</i> &#x2014; material icon named "deck" (round).
  static const IconData deck_rounded = IconData(0xf693, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">deck</i> &#x2014; material icon named "deck" (outlined).
  static const IconData deck_outlined = IconData(0xefa6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dehaze</i> &#x2014; material icon named "dehaze".
  static const IconData dehaze = IconData(0xe1b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dehaze</i> &#x2014; material icon named "dehaze" (sharp).
  static const IconData dehaze_sharp = IconData(0xe8b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dehaze</i> &#x2014; material icon named "dehaze" (round).
  static const IconData dehaze_rounded = IconData(0xf694, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dehaze</i> &#x2014; material icon named "dehaze" (outlined).
  static const IconData dehaze_outlined = IconData(0xefa7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">delete</i> &#x2014; material icon named "delete".
  static const IconData delete = IconData(0xe1b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">delete</i> &#x2014; material icon named "delete" (sharp).
  static const IconData delete_sharp = IconData(0xe8b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">delete</i> &#x2014; material icon named "delete" (round).
  static const IconData delete_rounded = IconData(0xf697, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">delete</i> &#x2014; material icon named "delete" (outlined).
  static const IconData delete_outlined = IconData(0xefaa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">delete_forever</i> &#x2014; material icon named "delete forever".
  static const IconData delete_forever = IconData(0xe1ba, 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(0xe8b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">delete_forever</i> &#x2014; material icon named "delete forever" (round).
  static const IconData delete_forever_rounded = IconData(0xf695, 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(0xefa8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">delete_outline</i> &#x2014; material icon named "delete outline".
  static const IconData delete_outline = IconData(0xe1bb, 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(0xe8b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">delete_outline</i> &#x2014; material icon named "delete outline" (round).
  static const IconData delete_outline_rounded = IconData(0xf696, 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(0xefa9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">delete_sweep</i> &#x2014; material icon named "delete sweep".
  static const IconData delete_sweep = IconData(0xe1bc, 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(0xe8b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">delete_sweep</i> &#x2014; material icon named "delete sweep" (round).
  static const IconData delete_sweep_rounded = IconData(0xf698, 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(0xefab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">delivery_dining</i> &#x2014; material icon named "delivery dining".
  static const IconData delivery_dining = IconData(0xe1bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">delivery_dining</i> &#x2014; material icon named "delivery dining" (sharp).
  static const IconData delivery_dining_sharp = IconData(0xe8ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">delivery_dining</i> &#x2014; material icon named "delivery dining" (round).
  static const IconData delivery_dining_rounded = IconData(0xf699, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">delivery_dining</i> &#x2014; material icon named "delivery dining" (outlined).
  static const IconData delivery_dining_outlined = IconData(0xefac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">density_large</i> &#x2014; material icon named "density large".
  static const IconData density_large = IconData(0xf04e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">density_large</i> &#x2014; material icon named "density large" (sharp).
  static const IconData density_large_sharp = IconData(0xf03f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">density_large</i> &#x2014; material icon named "density large" (round).
  static const IconData density_large_rounded = IconData(0xf0302, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">density_large</i> &#x2014; material icon named "density large" (outlined).
  static const IconData density_large_outlined = IconData(0xf05e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">density_medium</i> &#x2014; material icon named "density medium".
  static const IconData density_medium = IconData(0xf04ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">density_medium</i> &#x2014; material icon named "density medium" (sharp).
  static const IconData density_medium_sharp = IconData(0xf03f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">density_medium</i> &#x2014; material icon named "density medium" (round).
  static const IconData density_medium_rounded = IconData(0xf0303, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">density_medium</i> &#x2014; material icon named "density medium" (outlined).
  static const IconData density_medium_outlined = IconData(0xf05e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">density_small</i> &#x2014; material icon named "density small".
  static const IconData density_small = IconData(0xf04eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">density_small</i> &#x2014; material icon named "density small" (sharp).
  static const IconData density_small_sharp = IconData(0xf03f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">density_small</i> &#x2014; material icon named "density small" (round).
  static const IconData density_small_rounded = IconData(0xf0304, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">density_small</i> &#x2014; material icon named "density small" (outlined).
  static const IconData density_small_outlined = IconData(0xf05e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">departure_board</i> &#x2014; material icon named "departure board".
  static const IconData departure_board = IconData(0xe1be, 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(0xe8bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">departure_board</i> &#x2014; material icon named "departure board" (round).
  static const IconData departure_board_rounded = IconData(0xf69a, 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(0xefad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">description</i> &#x2014; material icon named "description".
  static const IconData description = IconData(0xe1bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">description</i> &#x2014; material icon named "description" (sharp).
  static const IconData description_sharp = IconData(0xe8bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">description</i> &#x2014; material icon named "description" (round).
  static const IconData description_rounded = IconData(0xf69b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">description</i> &#x2014; material icon named "description" (outlined).
  static const IconData description_outlined = IconData(0xefae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">deselect</i> &#x2014; material icon named "deselect".
  static const IconData deselect = IconData(0xf04ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">deselect</i> &#x2014; material icon named "deselect" (sharp).
  static const IconData deselect_sharp = IconData(0xf03f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">deselect</i> &#x2014; material icon named "deselect" (round).
  static const IconData deselect_rounded = IconData(0xf0305, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">deselect</i> &#x2014; material icon named "deselect" (outlined).
  static const IconData deselect_outlined = IconData(0xf05e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">design_services</i> &#x2014; material icon named "design services".
  static const IconData design_services = IconData(0xe1c0, 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(0xe8bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">design_services</i> &#x2014; material icon named "design services" (round).
  static const IconData design_services_rounded = IconData(0xf69c, 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(0xefaf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">desk</i> &#x2014; material icon named "desk".
  static const IconData desk = IconData(0xf079a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">desk</i> &#x2014; material icon named "desk" (sharp).
  static const IconData desk_sharp = IconData(0xf0742, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">desk</i> &#x2014; material icon named "desk" (round).
  static const IconData desk_rounded = IconData(0xf07f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">desk</i> &#x2014; material icon named "desk" (outlined).
  static const IconData desk_outlined = IconData(0xf06ea, 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(0xe1c1, 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(
    0xe8be,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">desktop_access_disabled</i> &#x2014; material icon named "desktop access disabled" (round).
  static const IconData desktop_access_disabled_rounded = IconData(
    0xf69d,
    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(
    0xefb0,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">desktop_mac</i> &#x2014; material icon named "desktop mac".
  static const IconData desktop_mac = IconData(0xe1c2, 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(0xe8bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">desktop_mac</i> &#x2014; material icon named "desktop mac" (round).
  static const IconData desktop_mac_rounded = IconData(0xf69e, 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(0xefb1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">desktop_windows</i> &#x2014; material icon named "desktop windows".
  static const IconData desktop_windows = IconData(0xe1c3, 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(0xe8c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">desktop_windows</i> &#x2014; material icon named "desktop windows" (round).
  static const IconData desktop_windows_rounded = IconData(0xf69f, 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(0xefb2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">details</i> &#x2014; material icon named "details".
  static const IconData details = IconData(0xe1c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">details</i> &#x2014; material icon named "details" (sharp).
  static const IconData details_sharp = IconData(0xe8c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">details</i> &#x2014; material icon named "details" (round).
  static const IconData details_rounded = IconData(0xf6a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">details</i> &#x2014; material icon named "details" (outlined).
  static const IconData details_outlined = IconData(0xefb3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">developer_board</i> &#x2014; material icon named "developer board".
  static const IconData developer_board = IconData(0xe1c5, 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(0xe8c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">developer_board</i> &#x2014; material icon named "developer board" (round).
  static const IconData developer_board_rounded = IconData(0xf6a2, 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(0xefb5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">developer_board_off</i> &#x2014; material icon named "developer board off".
  static const IconData developer_board_off = IconData(0xe1c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">developer_board_off</i> &#x2014; material icon named "developer board off" (sharp).
  static const IconData developer_board_off_sharp = IconData(0xe8c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">developer_board_off</i> &#x2014; material icon named "developer board off" (round).
  static const IconData developer_board_off_rounded = IconData(0xf6a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">developer_board_off</i> &#x2014; material icon named "developer board off" (outlined).
  static const IconData developer_board_off_outlined = IconData(
    0xefb4,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">developer_mode</i> &#x2014; material icon named "developer mode".
  static const IconData developer_mode = IconData(0xe1c7, 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(0xe8c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">developer_mode</i> &#x2014; material icon named "developer mode" (round).
  static const IconData developer_mode_rounded = IconData(0xf6a3, 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(0xefb6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">device_hub</i> &#x2014; material icon named "device hub".
  static const IconData device_hub = IconData(0xe1c8, 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(0xe8c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">device_hub</i> &#x2014; material icon named "device hub" (round).
  static const IconData device_hub_rounded = IconData(0xf6a4, 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(0xefb7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">device_thermostat</i> &#x2014; material icon named "device thermostat".
  static const IconData device_thermostat = IconData(0xe1c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">device_thermostat</i> &#x2014; material icon named "device thermostat" (sharp).
  static const IconData device_thermostat_sharp = IconData(0xe8c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">device_thermostat</i> &#x2014; material icon named "device thermostat" (round).
  static const IconData device_thermostat_rounded = IconData(0xf6a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">device_thermostat</i> &#x2014; material icon named "device thermostat" (outlined).
  static const IconData device_thermostat_outlined = IconData(0xefb8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">device_unknown</i> &#x2014; material icon named "device unknown".
  static const IconData device_unknown = IconData(
    0xe1ca,
    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(
    0xe8c7,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">device_unknown</i> &#x2014; material icon named "device unknown" (round).
  static const IconData device_unknown_rounded = IconData(
    0xf6a6,
    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(
    0xefb9,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">devices</i> &#x2014; material icon named "devices".
  static const IconData devices = IconData(0xe1cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">devices</i> &#x2014; material icon named "devices" (sharp).
  static const IconData devices_sharp = IconData(0xe8c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">devices</i> &#x2014; material icon named "devices" (round).
  static const IconData devices_rounded = IconData(0xf6a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">devices</i> &#x2014; material icon named "devices" (outlined).
  static const IconData devices_outlined = IconData(0xefbb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">devices_fold</i> &#x2014; material icon named "devices fold".
  static const IconData devices_fold = IconData(0xf079b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">devices_fold</i> &#x2014; material icon named "devices fold" (sharp).
  static const IconData devices_fold_sharp = IconData(0xf0743, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">devices_fold</i> &#x2014; material icon named "devices fold" (round).
  static const IconData devices_fold_rounded = IconData(0xf07f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">devices_fold</i> &#x2014; material icon named "devices fold" (outlined).
  static const IconData devices_fold_outlined = IconData(0xf06eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">devices_other</i> &#x2014; material icon named "devices other".
  static const IconData devices_other = IconData(0xe1cc, 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(0xe8c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">devices_other</i> &#x2014; material icon named "devices other" (round).
  static const IconData devices_other_rounded = IconData(0xf6a7, 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(0xefba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dew_point</i> &#x2014; material icon named "dew point".
  static const IconData dew_point = IconData(0xf0859, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dialer_sip</i> &#x2014; material icon named "dialer sip".
  static const IconData dialer_sip = IconData(0xe1cd, 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(0xe8ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dialer_sip</i> &#x2014; material icon named "dialer sip" (round).
  static const IconData dialer_sip_rounded = IconData(0xf6a9, 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(0xefbc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dialpad</i> &#x2014; material icon named "dialpad".
  static const IconData dialpad = IconData(0xe1ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dialpad</i> &#x2014; material icon named "dialpad" (sharp).
  static const IconData dialpad_sharp = IconData(0xe8cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dialpad</i> &#x2014; material icon named "dialpad" (round).
  static const IconData dialpad_rounded = IconData(0xf6aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dialpad</i> &#x2014; material icon named "dialpad" (outlined).
  static const IconData dialpad_outlined = IconData(0xefbd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">diamond</i> &#x2014; material icon named "diamond".
  static const IconData diamond = IconData(0xf04ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">diamond</i> &#x2014; material icon named "diamond" (sharp).
  static const IconData diamond_sharp = IconData(0xf03f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">diamond</i> &#x2014; material icon named "diamond" (round).
  static const IconData diamond_rounded = IconData(0xf0306, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">diamond</i> &#x2014; material icon named "diamond" (outlined).
  static const IconData diamond_outlined = IconData(0xf05e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">difference</i> &#x2014; material icon named "difference".
  static const IconData difference = IconData(0xf04ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">difference</i> &#x2014; material icon named "difference" (sharp).
  static const IconData difference_sharp = IconData(0xf03fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">difference</i> &#x2014; material icon named "difference" (round).
  static const IconData difference_rounded = IconData(0xf0307, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">difference</i> &#x2014; material icon named "difference" (outlined).
  static const IconData difference_outlined = IconData(0xf05e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dining</i> &#x2014; material icon named "dining".
  static const IconData dining = IconData(0xe1cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dining</i> &#x2014; material icon named "dining" (sharp).
  static const IconData dining_sharp = IconData(0xe8cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dining</i> &#x2014; material icon named "dining" (round).
  static const IconData dining_rounded = IconData(0xf6ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dining</i> &#x2014; material icon named "dining" (outlined).
  static const IconData dining_outlined = IconData(0xefbe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dinner_dining</i> &#x2014; material icon named "dinner dining".
  static const IconData dinner_dining = IconData(0xe1d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dinner_dining</i> &#x2014; material icon named "dinner dining" (sharp).
  static const IconData dinner_dining_sharp = IconData(0xe8cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dinner_dining</i> &#x2014; material icon named "dinner dining" (round).
  static const IconData dinner_dining_rounded = IconData(0xf6ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dinner_dining</i> &#x2014; material icon named "dinner dining" (outlined).
  static const IconData dinner_dining_outlined = IconData(0xefbf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions</i> &#x2014; material icon named "directions".
  static const IconData directions = IconData(0xe1d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions</i> &#x2014; material icon named "directions" (sharp).
  static const IconData directions_sharp = IconData(0xe8d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions</i> &#x2014; material icon named "directions" (round).
  static const IconData directions_rounded = IconData(0xf6b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">directions</i> &#x2014; material icon named "directions" (outlined).
  static const IconData directions_outlined = IconData(0xefc8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_bike</i> &#x2014; material icon named "directions bike".
  static const IconData directions_bike = IconData(0xe1d2, 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(0xe8ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_bike</i> &#x2014; material icon named "directions bike" (round).
  static const IconData directions_bike_rounded = IconData(0xf6ad, 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(0xefc0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_boat</i> &#x2014; material icon named "directions boat".
  static const IconData directions_boat = IconData(0xe1d3, 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(0xe8d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_boat</i> &#x2014; material icon named "directions boat" (round).
  static const IconData directions_boat_rounded = IconData(0xf6af, 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(0xefc2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_boat_filled</i> &#x2014; material icon named "directions boat filled".
  static const IconData directions_boat_filled = IconData(0xe1d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions_boat_filled</i> &#x2014; material icon named "directions boat filled" (sharp).
  static const IconData directions_boat_filled_sharp = IconData(
    0xe8cf,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">directions_boat_filled</i> &#x2014; material icon named "directions boat filled" (round).
  static const IconData directions_boat_filled_rounded = IconData(
    0xf6ae,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">directions_boat_filled</i> &#x2014; material icon named "directions boat filled" (outlined).
  static const IconData directions_boat_filled_outlined = IconData(
    0xefc1,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">directions_bus</i> &#x2014; material icon named "directions bus".
  static const IconData directions_bus = IconData(0xe1d5, 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(0xe8d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_bus</i> &#x2014; material icon named "directions bus" (round).
  static const IconData directions_bus_rounded = IconData(0xf6b1, 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(0xefc4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_bus_filled</i> &#x2014; material icon named "directions bus filled".
  static const IconData directions_bus_filled = IconData(0xe1d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions_bus_filled</i> &#x2014; material icon named "directions bus filled" (sharp).
  static const IconData directions_bus_filled_sharp = IconData(0xe8d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_bus_filled</i> &#x2014; material icon named "directions bus filled" (round).
  static const IconData directions_bus_filled_rounded = IconData(
    0xf6b0,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">directions_bus_filled</i> &#x2014; material icon named "directions bus filled" (outlined).
  static const IconData directions_bus_filled_outlined = IconData(
    0xefc3,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">directions_car</i> &#x2014; material icon named "directions car".
  static const IconData directions_car = IconData(0xe1d7, 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(0xe8d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_car</i> &#x2014; material icon named "directions car" (round).
  static const IconData directions_car_rounded = IconData(0xf6b3, 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(0xefc6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_car_filled</i> &#x2014; material icon named "directions car filled".
  static const IconData directions_car_filled = IconData(0xe1d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions_car_filled</i> &#x2014; material icon named "directions car filled" (sharp).
  static const IconData directions_car_filled_sharp = IconData(0xe8d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_car_filled</i> &#x2014; material icon named "directions car filled" (round).
  static const IconData directions_car_filled_rounded = IconData(
    0xf6b2,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">directions_car_filled</i> &#x2014; material icon named "directions car filled" (outlined).
  static const IconData directions_car_filled_outlined = IconData(
    0xefc5,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">directions_ferry</i> &#x2014; material icon named "directions ferry".
  static const IconData directions_ferry = IconData(0xe1d3, 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(0xe8d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_ferry</i> &#x2014; material icon named "directions ferry" (round).
  static const IconData directions_ferry_rounded = IconData(0xf6af, 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(0xefc2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_off</i> &#x2014; material icon named "directions off".
  static const IconData directions_off = IconData(0xe1d9, 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(0xe8d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_off</i> &#x2014; material icon named "directions off" (round).
  static const IconData directions_off_rounded = IconData(0xf6b4, 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(0xefc7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_railway</i> &#x2014; material icon named "directions railway".
  static const IconData directions_railway = IconData(0xe1da, 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(0xe8d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_railway</i> &#x2014; material icon named "directions railway" (round).
  static const IconData directions_railway_rounded = IconData(0xf6b6, 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(0xefca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_railway_filled</i> &#x2014; material icon named "directions railway filled".
  static const IconData directions_railway_filled = IconData(0xe1db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions_railway_filled</i> &#x2014; material icon named "directions railway filled" (sharp).
  static const IconData directions_railway_filled_sharp = IconData(
    0xe8d6,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">directions_railway_filled</i> &#x2014; material icon named "directions railway filled" (round).
  static const IconData directions_railway_filled_rounded = IconData(
    0xf6b5,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">directions_railway_filled</i> &#x2014; material icon named "directions railway filled" (outlined).
  static const IconData directions_railway_filled_outlined = IconData(
    0xefc9,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">directions_run</i> &#x2014; material icon named "directions run".
  static const IconData directions_run = IconData(0xe1dc, 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(0xe8d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_run</i> &#x2014; material icon named "directions run" (round).
  static const IconData directions_run_rounded = IconData(0xf6b8, 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(0xefcb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_subway</i> &#x2014; material icon named "directions subway".
  static const IconData directions_subway = IconData(0xe1dd, 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(0xe8db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_subway</i> &#x2014; material icon named "directions subway" (round).
  static const IconData directions_subway_rounded = IconData(0xf6ba, 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(0xefcd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_subway_filled</i> &#x2014; material icon named "directions subway filled".
  static const IconData directions_subway_filled = IconData(0xe1de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions_subway_filled</i> &#x2014; material icon named "directions subway filled" (sharp).
  static const IconData directions_subway_filled_sharp = IconData(
    0xe8da,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">directions_subway_filled</i> &#x2014; material icon named "directions subway filled" (round).
  static const IconData directions_subway_filled_rounded = IconData(
    0xf6b9,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">directions_subway_filled</i> &#x2014; material icon named "directions subway filled" (outlined).
  static const IconData directions_subway_filled_outlined = IconData(
    0xefcc,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">directions_train</i> &#x2014; material icon named "directions train".
  static const IconData directions_train = IconData(0xe1da, 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(0xe8d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_train</i> &#x2014; material icon named "directions train" (round).
  static const IconData directions_train_rounded = IconData(0xf6b6, 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(0xefca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_transit</i> &#x2014; material icon named "directions transit".
  static const IconData directions_transit = IconData(0xe1df, 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(0xe8dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_transit</i> &#x2014; material icon named "directions transit" (round).
  static const IconData directions_transit_rounded = IconData(0xf6bc, 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(0xefcf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">directions_transit_filled</i> &#x2014; material icon named "directions transit filled".
  static const IconData directions_transit_filled = IconData(0xe1e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">directions_transit_filled</i> &#x2014; material icon named "directions transit filled" (sharp).
  static const IconData directions_transit_filled_sharp = IconData(
    0xe8dc,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">directions_transit_filled</i> &#x2014; material icon named "directions transit filled" (round).
  static const IconData directions_transit_filled_rounded = IconData(
    0xf6bb,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">directions_transit_filled</i> &#x2014; material icon named "directions transit filled" (outlined).
  static const IconData directions_transit_filled_outlined = IconData(
    0xefce,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">directions_walk</i> &#x2014; material icon named "directions walk".
  static const IconData directions_walk = IconData(0xe1e1, 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(0xe8de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">directions_walk</i> &#x2014; material icon named "directions walk" (round).
  static const IconData directions_walk_rounded = IconData(0xf6bd, 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(0xefd0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dirty_lens</i> &#x2014; material icon named "dirty lens".
  static const IconData dirty_lens = IconData(0xe1e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dirty_lens</i> &#x2014; material icon named "dirty lens" (sharp).
  static const IconData dirty_lens_sharp = IconData(0xe8df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dirty_lens</i> &#x2014; material icon named "dirty lens" (round).
  static const IconData dirty_lens_rounded = IconData(0xf6be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dirty_lens</i> &#x2014; material icon named "dirty lens" (outlined).
  static const IconData dirty_lens_outlined = IconData(0xefd1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">disabled_by_default</i> &#x2014; material icon named "disabled by default".
  static const IconData disabled_by_default = IconData(0xe1e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">disabled_by_default</i> &#x2014; material icon named "disabled by default" (sharp).
  static const IconData disabled_by_default_sharp = IconData(0xe8e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">disabled_by_default</i> &#x2014; material icon named "disabled by default" (round).
  static const IconData disabled_by_default_rounded = IconData(0xf6bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">disabled_by_default</i> &#x2014; material icon named "disabled by default" (outlined).
  static const IconData disabled_by_default_outlined = IconData(
    0xefd2,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">disabled_visible</i> &#x2014; material icon named "disabled visible".
  static const IconData disabled_visible = IconData(0xf04ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">disabled_visible</i> &#x2014; material icon named "disabled visible" (sharp).
  static const IconData disabled_visible_sharp = IconData(0xf03fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">disabled_visible</i> &#x2014; material icon named "disabled visible" (round).
  static const IconData disabled_visible_rounded = IconData(0xf0308, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">disabled_visible</i> &#x2014; material icon named "disabled visible" (outlined).
  static const IconData disabled_visible_outlined = IconData(0xf05e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">disc_full</i> &#x2014; material icon named "disc full".
  static const IconData disc_full = IconData(0xe1e4, 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(0xe8e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">disc_full</i> &#x2014; material icon named "disc full" (round).
  static const IconData disc_full_rounded = IconData(0xf6c0, 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(0xefd3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">discord</i> &#x2014; material icon named "discord".
  static const IconData discord = IconData(0xf04f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">discord</i> &#x2014; material icon named "discord" (sharp).
  static const IconData discord_sharp = IconData(0xf03fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">discord</i> &#x2014; material icon named "discord" (round).
  static const IconData discord_rounded = IconData(0xf0309, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">discord</i> &#x2014; material icon named "discord" (outlined).
  static const IconData discord_outlined = IconData(0xf05ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">discount</i> &#x2014; material icon named "discount".
  static const IconData discount = IconData(0xf06bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">discount</i> &#x2014; material icon named "discount" (sharp).
  static const IconData discount_sharp = IconData(0xf06b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">discount</i> &#x2014; material icon named "discount" (round).
  static const IconData discount_rounded = IconData(0xf06ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">discount</i> &#x2014; material icon named "discount" (outlined).
  static const IconData discount_outlined = IconData(0xf06a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">display_settings</i> &#x2014; material icon named "display settings".
  static const IconData display_settings = IconData(0xf04f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">display_settings</i> &#x2014; material icon named "display settings" (sharp).
  static const IconData display_settings_sharp = IconData(0xf03fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">display_settings</i> &#x2014; material icon named "display settings" (round).
  static const IconData display_settings_rounded = IconData(0xf030a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">display_settings</i> &#x2014; material icon named "display settings" (outlined).
  static const IconData display_settings_outlined = IconData(0xf05eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">diversity_1</i> &#x2014; material icon named "diversity 1".
  static const IconData diversity_1 = IconData(0xf085a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">diversity_1</i> &#x2014; material icon named "diversity 1" (sharp).
  static const IconData diversity_1_sharp = IconData(0xf0838, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">diversity_1</i> &#x2014; material icon named "diversity 1" (round).
  static const IconData diversity_1_rounded = IconData(0xf0881, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">diversity_1</i> &#x2014; material icon named "diversity 1" (outlined).
  static const IconData diversity_1_outlined = IconData(0xf089f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">diversity_2</i> &#x2014; material icon named "diversity 2".
  static const IconData diversity_2 = IconData(0xf085b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">diversity_2</i> &#x2014; material icon named "diversity 2" (sharp).
  static const IconData diversity_2_sharp = IconData(0xf0839, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">diversity_2</i> &#x2014; material icon named "diversity 2" (round).
  static const IconData diversity_2_rounded = IconData(0xf0882, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">diversity_2</i> &#x2014; material icon named "diversity 2" (outlined).
  static const IconData diversity_2_outlined = IconData(0xf08a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">diversity_3</i> &#x2014; material icon named "diversity 3".
  static const IconData diversity_3 = IconData(0xf085c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">diversity_3</i> &#x2014; material icon named "diversity 3" (sharp).
  static const IconData diversity_3_sharp = IconData(0xf083a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">diversity_3</i> &#x2014; material icon named "diversity 3" (round).
  static const IconData diversity_3_rounded = IconData(0xf0883, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">diversity_3</i> &#x2014; material icon named "diversity 3" (outlined).
  static const IconData diversity_3_outlined = IconData(0xf08a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dnd_forwardslash</i> &#x2014; material icon named "dnd forwardslash".
  static const IconData dnd_forwardslash = IconData(0xe1eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dnd_forwardslash</i> &#x2014; material icon named "dnd forwardslash" (sharp).
  static const IconData dnd_forwardslash_sharp = IconData(0xe8e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dnd_forwardslash</i> &#x2014; material icon named "dnd forwardslash" (round).
  static const IconData dnd_forwardslash_rounded = IconData(0xf6c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dnd_forwardslash</i> &#x2014; material icon named "dnd forwardslash" (outlined).
  static const IconData dnd_forwardslash_outlined = IconData(0xefd9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dns</i> &#x2014; material icon named "dns".
  static const IconData dns = IconData(0xe1e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dns</i> &#x2014; material icon named "dns" (sharp).
  static const IconData dns_sharp = IconData(0xe8e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dns</i> &#x2014; material icon named "dns" (round).
  static const IconData dns_rounded = IconData(0xf6c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dns</i> &#x2014; material icon named "dns" (outlined).
  static const IconData dns_outlined = IconData(0xefd4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">do_disturb</i> &#x2014; material icon named "do disturb".
  static const IconData do_disturb = IconData(0xe1e6, 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(0xe8e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">do_disturb</i> &#x2014; material icon named "do disturb" (round).
  static const IconData do_disturb_rounded = IconData(0xf6c5, 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(0xefd8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">do_disturb_alt</i> &#x2014; material icon named "do disturb alt".
  static const IconData do_disturb_alt = IconData(0xe1e7, 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(0xe8e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">do_disturb_alt</i> &#x2014; material icon named "do disturb alt" (round).
  static const IconData do_disturb_alt_rounded = IconData(0xf6c2, 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(0xefd5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">do_disturb_off</i> &#x2014; material icon named "do disturb off".
  static const IconData do_disturb_off = IconData(0xe1e8, 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(0xe8e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">do_disturb_off</i> &#x2014; material icon named "do disturb off" (round).
  static const IconData do_disturb_off_rounded = IconData(0xf6c3, 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(0xefd6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">do_disturb_on</i> &#x2014; material icon named "do disturb on".
  static const IconData do_disturb_on = IconData(0xe1e9, 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(0xe8e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">do_disturb_on</i> &#x2014; material icon named "do disturb on" (round).
  static const IconData do_disturb_on_rounded = IconData(0xf6c4, 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(0xefd7, 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(0xe1ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">do_not_disturb</i> &#x2014; material icon named "do not disturb" (sharp).
  static const IconData do_not_disturb_sharp = IconData(0xe8eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">do_not_disturb</i> &#x2014; material icon named "do not disturb" (round).
  static const IconData do_not_disturb_rounded = IconData(0xf6ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">do_not_disturb</i> &#x2014; material icon named "do not disturb" (outlined).
  static const IconData do_not_disturb_outlined = IconData(0xefdd, 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(0xe1eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">do_not_disturb_alt</i> &#x2014; material icon named "do not disturb alt" (sharp).
  static const IconData do_not_disturb_alt_sharp = IconData(0xe8e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">do_not_disturb_alt</i> &#x2014; material icon named "do not disturb alt" (round).
  static const IconData do_not_disturb_alt_rounded = IconData(0xf6c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">do_not_disturb_alt</i> &#x2014; material icon named "do not disturb alt" (outlined).
  static const IconData do_not_disturb_alt_outlined = IconData(0xefd9, 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(0xe1ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">do_not_disturb_off</i> &#x2014; material icon named "do not disturb off" (sharp).
  static const IconData do_not_disturb_off_sharp = IconData(0xe8e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">do_not_disturb_off</i> &#x2014; material icon named "do not disturb off" (round).
  static const IconData do_not_disturb_off_rounded = IconData(0xf6c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">do_not_disturb_off</i> &#x2014; material icon named "do not disturb off" (outlined).
  static const IconData do_not_disturb_off_outlined = IconData(0xefda, 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(0xe1ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">do_not_disturb_on</i> &#x2014; material icon named "do not disturb on" (sharp).
  static const IconData do_not_disturb_on_sharp = IconData(0xe8e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">do_not_disturb_on</i> &#x2014; material icon named "do not disturb on" (round).
  static const IconData do_not_disturb_on_rounded = IconData(0xf6c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">do_not_disturb_on</i> &#x2014; material icon named "do not disturb on" (outlined).
  static const IconData do_not_disturb_on_outlined = IconData(0xefdb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">do_not_disturb_on_total_silence</i> &#x2014; material icon named "do not disturb on total silence".
  static const IconData do_not_disturb_on_total_silence = IconData(
    0xe1ee,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-sharp md-36">do_not_disturb_on_total_silence</i> &#x2014; material icon named "do not disturb on total silence" (sharp).
  static const IconData do_not_disturb_on_total_silence_sharp = IconData(
    0xe8ea,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">do_not_disturb_on_total_silence</i> &#x2014; material icon named "do not disturb on total silence" (round).
  static const IconData do_not_disturb_on_total_silence_rounded = IconData(
    0xf6c9,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">do_not_disturb_on_total_silence</i> &#x2014; material icon named "do not disturb on total silence" (outlined).
  static const IconData do_not_disturb_on_total_silence_outlined = IconData(
    0xefdc,
    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(0xe1ef, 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(0xe8ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">do_not_step</i> &#x2014; material icon named "do not step" (round).
  static const IconData do_not_step_rounded = IconData(0xf6cb, 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(0xefde, 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(0xe1f0, 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(0xe8ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">do_not_touch</i> &#x2014; material icon named "do not touch" (round).
  static const IconData do_not_touch_rounded = IconData(0xf6cc, 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(0xefdf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dock</i> &#x2014; material icon named "dock".
  static const IconData dock = IconData(0xe1f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dock</i> &#x2014; material icon named "dock" (sharp).
  static const IconData dock_sharp = IconData(0xe8ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dock</i> &#x2014; material icon named "dock" (round).
  static const IconData dock_rounded = IconData(0xf6cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dock</i> &#x2014; material icon named "dock" (outlined).
  static const IconData dock_outlined = IconData(0xefe0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">document_scanner</i> &#x2014; material icon named "document scanner".
  static const IconData document_scanner = IconData(0xe1f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">document_scanner</i> &#x2014; material icon named "document scanner" (sharp).
  static const IconData document_scanner_sharp = IconData(0xe8ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">document_scanner</i> &#x2014; material icon named "document scanner" (round).
  static const IconData document_scanner_rounded = IconData(0xf6ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">document_scanner</i> &#x2014; material icon named "document scanner" (outlined).
  static const IconData document_scanner_outlined = IconData(0xefe1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">domain</i> &#x2014; material icon named "domain".
  static const IconData domain = IconData(0xe1f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">domain</i> &#x2014; material icon named "domain" (sharp).
  static const IconData domain_sharp = IconData(0xe8f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">domain</i> &#x2014; material icon named "domain" (round).
  static const IconData domain_rounded = IconData(0xf6d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">domain</i> &#x2014; material icon named "domain" (outlined).
  static const IconData domain_outlined = IconData(0xefe3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">domain_add</i> &#x2014; material icon named "domain add".
  static const IconData domain_add = IconData(0xf04f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">domain_add</i> &#x2014; material icon named "domain add" (sharp).
  static const IconData domain_add_sharp = IconData(0xf03fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">domain_add</i> &#x2014; material icon named "domain add" (round).
  static const IconData domain_add_rounded = IconData(0xf030b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">domain_add</i> &#x2014; material icon named "domain add" (outlined).
  static const IconData domain_add_outlined = IconData(0xf05ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">domain_disabled</i> &#x2014; material icon named "domain disabled".
  static const IconData domain_disabled = IconData(0xe1f4, 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(0xe8f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">domain_disabled</i> &#x2014; material icon named "domain disabled" (round).
  static const IconData domain_disabled_rounded = IconData(0xf6cf, 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(0xefe2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">domain_verification</i> &#x2014; material icon named "domain verification".
  static const IconData domain_verification = IconData(0xe1f5, 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(0xe8f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">domain_verification</i> &#x2014; material icon named "domain verification" (round).
  static const IconData domain_verification_rounded = IconData(0xf6d1, 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(
    0xefe4,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">done</i> &#x2014; material icon named "done".
  static const IconData done = IconData(0xe1f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">done</i> &#x2014; material icon named "done" (sharp).
  static const IconData done_sharp = IconData(0xe8f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">done</i> &#x2014; material icon named "done" (round).
  static const IconData done_rounded = IconData(0xf6d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">done</i> &#x2014; material icon named "done" (outlined).
  static const IconData done_outlined = IconData(0xefe7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">done_all</i> &#x2014; material icon named "done all".
  static const IconData done_all = IconData(0xe1f7, 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(0xe8f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">done_all</i> &#x2014; material icon named "done all" (round).
  static const IconData done_all_rounded = IconData(0xf6d2, 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(0xefe5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">done_outline</i> &#x2014; material icon named "done outline".
  static const IconData done_outline = IconData(0xe1f8, 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(0xe8f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">done_outline</i> &#x2014; material icon named "done outline" (round).
  static const IconData done_outline_rounded = IconData(0xf6d3, 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(0xefe6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">donut_large</i> &#x2014; material icon named "donut large".
  static const IconData donut_large = IconData(0xe1f9, 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(0xe8f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">donut_large</i> &#x2014; material icon named "donut large" (round).
  static const IconData donut_large_rounded = IconData(0xf6d5, 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(0xefe8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">donut_small</i> &#x2014; material icon named "donut small".
  static const IconData donut_small = IconData(0xe1fa, 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(0xe8f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">donut_small</i> &#x2014; material icon named "donut small" (round).
  static const IconData donut_small_rounded = IconData(0xf6d6, 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(0xefe9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">door_back</i> &#x2014; material icon named "door back".
  static const IconData door_back_door = IconData(0xe1fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">door_back</i> &#x2014; material icon named "door back" (sharp).
  static const IconData door_back_door_sharp = IconData(0xe8f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">door_back</i> &#x2014; material icon named "door back" (round).
  static const IconData door_back_door_rounded = IconData(0xf6d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">door_back</i> &#x2014; material icon named "door back" (outlined).
  static const IconData door_back_door_outlined = IconData(0xefea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">door_front</i> &#x2014; material icon named "door front".
  static const IconData door_front_door = IconData(0xe1fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">door_front</i> &#x2014; material icon named "door front" (sharp).
  static const IconData door_front_door_sharp = IconData(0xe8f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">door_front</i> &#x2014; material icon named "door front" (round).
  static const IconData door_front_door_rounded = IconData(0xf6d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">door_front</i> &#x2014; material icon named "door front" (outlined).
  static const IconData door_front_door_outlined = IconData(0xefeb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">door_sliding</i> &#x2014; material icon named "door sliding".
  static const IconData door_sliding = IconData(0xe1fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">door_sliding</i> &#x2014; material icon named "door sliding" (sharp).
  static const IconData door_sliding_sharp = IconData(0xe8fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">door_sliding</i> &#x2014; material icon named "door sliding" (round).
  static const IconData door_sliding_rounded = IconData(0xf6d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">door_sliding</i> &#x2014; material icon named "door sliding" (outlined).
  static const IconData door_sliding_outlined = IconData(0xefec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">doorbell</i> &#x2014; material icon named "doorbell".
  static const IconData doorbell = IconData(0xe1fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">doorbell</i> &#x2014; material icon named "doorbell" (sharp).
  static const IconData doorbell_sharp = IconData(0xe8fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">doorbell</i> &#x2014; material icon named "doorbell" (round).
  static const IconData doorbell_rounded = IconData(0xf6da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">doorbell</i> &#x2014; material icon named "doorbell" (outlined).
  static const IconData doorbell_outlined = IconData(0xefed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">double_arrow</i> &#x2014; material icon named "double arrow".
  static const IconData double_arrow = IconData(0xe1ff, 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(0xe8fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">double_arrow</i> &#x2014; material icon named "double arrow" (round).
  static const IconData double_arrow_rounded = IconData(0xf6db, 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(0xefee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">downhill_skiing</i> &#x2014; material icon named "downhill skiing".
  static const IconData downhill_skiing = IconData(0xe200, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">downhill_skiing</i> &#x2014; material icon named "downhill skiing" (sharp).
  static const IconData downhill_skiing_sharp = IconData(0xe8fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">downhill_skiing</i> &#x2014; material icon named "downhill skiing" (round).
  static const IconData downhill_skiing_rounded = IconData(0xf6dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">downhill_skiing</i> &#x2014; material icon named "downhill skiing" (outlined).
  static const IconData downhill_skiing_outlined = IconData(0xefef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">download</i> &#x2014; material icon named "download".
  static const IconData download = IconData(0xe201, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">download</i> &#x2014; material icon named "download" (sharp).
  static const IconData download_sharp = IconData(0xe900, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">download</i> &#x2014; material icon named "download" (round).
  static const IconData download_rounded = IconData(0xf6df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">download</i> &#x2014; material icon named "download" (outlined).
  static const IconData download_outlined = IconData(0xeff2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">download_done</i> &#x2014; material icon named "download done".
  static const IconData download_done = IconData(0xe202, 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(0xe8fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">download_done</i> &#x2014; material icon named "download done" (round).
  static const IconData download_done_rounded = IconData(0xf6dd, 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(0xeff0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">download_for_offline</i> &#x2014; material icon named "download for offline".
  static const IconData download_for_offline = IconData(0xe203, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">download_for_offline</i> &#x2014; material icon named "download for offline" (sharp).
  static const IconData download_for_offline_sharp = IconData(0xe8ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">download_for_offline</i> &#x2014; material icon named "download for offline" (round).
  static const IconData download_for_offline_rounded = IconData(
    0xf6de,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">download_for_offline</i> &#x2014; material icon named "download for offline" (outlined).
  static const IconData download_for_offline_outlined = IconData(
    0xeff1,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">downloading</i> &#x2014; material icon named "downloading".
  static const IconData downloading = IconData(0xe204, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">downloading</i> &#x2014; material icon named "downloading" (sharp).
  static const IconData downloading_sharp = IconData(0xe901, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">downloading</i> &#x2014; material icon named "downloading" (round).
  static const IconData downloading_rounded = IconData(0xf6e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">downloading</i> &#x2014; material icon named "downloading" (outlined).
  static const IconData downloading_outlined = IconData(0xeff3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">drafts</i> &#x2014; material icon named "drafts".
  static const IconData drafts = IconData(0xe205, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">drafts</i> &#x2014; material icon named "drafts" (sharp).
  static const IconData drafts_sharp = IconData(0xe902, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">drafts</i> &#x2014; material icon named "drafts" (round).
  static const IconData drafts_rounded = IconData(0xf6e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">drafts</i> &#x2014; material icon named "drafts" (outlined).
  static const IconData drafts_outlined = IconData(0xeff4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">drag_handle</i> &#x2014; material icon named "drag handle".
  static const IconData drag_handle = IconData(0xe206, 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(0xe903, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">drag_handle</i> &#x2014; material icon named "drag handle" (round).
  static const IconData drag_handle_rounded = IconData(0xf6e2, 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(0xeff5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">drag_indicator</i> &#x2014; material icon named "drag indicator".
  static const IconData drag_indicator = IconData(0xe207, 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(0xe904, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">drag_indicator</i> &#x2014; material icon named "drag indicator" (round).
  static const IconData drag_indicator_rounded = IconData(0xf6e3, 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(0xeff6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">draw</i> &#x2014; material icon named "draw".
  static const IconData draw = IconData(0xf04f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">draw</i> &#x2014; material icon named "draw" (sharp).
  static const IconData draw_sharp = IconData(0xf03ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">draw</i> &#x2014; material icon named "draw" (round).
  static const IconData draw_rounded = IconData(0xf030c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">draw</i> &#x2014; material icon named "draw" (outlined).
  static const IconData draw_outlined = IconData(0xf05ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">drive_eta</i> &#x2014; material icon named "drive eta".
  static const IconData drive_eta = IconData(0xe208, 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(0xe905, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">drive_eta</i> &#x2014; material icon named "drive eta" (round).
  static const IconData drive_eta_rounded = IconData(0xf6e4, 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(0xeff7, 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(0xe209, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">drive_file_move</i> &#x2014; material icon named "drive file move" (sharp).
  static const IconData drive_file_move_sharp = IconData(0xe906, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">drive_file_move</i> &#x2014; material icon named "drive file move" (round).
  static const IconData drive_file_move_rounded = IconData(0xf6e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">drive_file_move</i> &#x2014; material icon named "drive file move" (outlined).
  static const IconData drive_file_move_outlined = IconData(0xeff8, 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(0xe20a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">drive_file_move_rtl</i> &#x2014; material icon named "drive file move rtl".
  static const IconData drive_file_move_rtl = IconData(0xf04f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">drive_file_move_rtl</i> &#x2014; material icon named "drive file move rtl" (sharp).
  static const IconData drive_file_move_rtl_sharp = IconData(0xf0400, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">drive_file_move_rtl</i> &#x2014; material icon named "drive file move rtl" (round).
  static const IconData drive_file_move_rtl_rounded = IconData(
    0xf030d,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">drive_file_move_rtl</i> &#x2014; material icon named "drive file move rtl" (outlined).
  static const IconData drive_file_move_rtl_outlined = IconData(
    0xf05ee,
    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(0xe20b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">drive_file_rename_outline</i> &#x2014; material icon named "drive file rename outline" (sharp).
  static const IconData drive_file_rename_outline_sharp = IconData(
    0xe907,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">drive_file_rename_outline</i> &#x2014; material icon named "drive file rename outline" (round).
  static const IconData drive_file_rename_outline_rounded = IconData(
    0xf6e6,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">drive_file_rename_outline</i> &#x2014; material icon named "drive file rename outline" (outlined).
  static const IconData drive_file_rename_outline_outlined = IconData(
    0xeff9,
    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(0xe20c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">drive_folder_upload</i> &#x2014; material icon named "drive folder upload" (sharp).
  static const IconData drive_folder_upload_sharp = IconData(0xe908, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">drive_folder_upload</i> &#x2014; material icon named "drive folder upload" (round).
  static const IconData drive_folder_upload_rounded = IconData(0xf6e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">drive_folder_upload</i> &#x2014; material icon named "drive folder upload" (outlined).
  static const IconData drive_folder_upload_outlined = IconData(
    0xeffa,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">dry</i> &#x2014; material icon named "dry".
  static const IconData dry = IconData(0xe20d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dry</i> &#x2014; material icon named "dry" (sharp).
  static const IconData dry_sharp = IconData(0xe90a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dry</i> &#x2014; material icon named "dry" (round).
  static const IconData dry_rounded = IconData(0xf6e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dry</i> &#x2014; material icon named "dry" (outlined).
  static const IconData dry_outlined = IconData(0xeffc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dry_cleaning</i> &#x2014; material icon named "dry cleaning".
  static const IconData dry_cleaning = IconData(0xe20e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">dry_cleaning</i> &#x2014; material icon named "dry cleaning" (sharp).
  static const IconData dry_cleaning_sharp = IconData(0xe909, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dry_cleaning</i> &#x2014; material icon named "dry cleaning" (round).
  static const IconData dry_cleaning_rounded = IconData(0xf6e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">dry_cleaning</i> &#x2014; material icon named "dry cleaning" (outlined).
  static const IconData dry_cleaning_outlined = IconData(0xeffb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">duo</i> &#x2014; material icon named "duo".
  static const IconData duo = IconData(0xe20f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">duo</i> &#x2014; material icon named "duo" (sharp).
  static const IconData duo_sharp = IconData(0xe90b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">duo</i> &#x2014; material icon named "duo" (round).
  static const IconData duo_rounded = IconData(0xf6ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">duo</i> &#x2014; material icon named "duo" (outlined).
  static const IconData duo_outlined = IconData(0xeffd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dvr</i> &#x2014; material icon named "dvr".
  static const IconData dvr = IconData(
    0xe210,
    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(
    0xe90c,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">dvr</i> &#x2014; material icon named "dvr" (round).
  static const IconData dvr_rounded = IconData(
    0xf6eb,
    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(
    0xeffe,
    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(0xe211, 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(0xe90d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dynamic_feed</i> &#x2014; material icon named "dynamic feed" (round).
  static const IconData dynamic_feed_rounded = IconData(0xf6ec, 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(0xefff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">dynamic_form</i> &#x2014; material icon named "dynamic form".
  static const IconData dynamic_form = IconData(0xe212, 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(0xe90e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">dynamic_form</i> &#x2014; material icon named "dynamic form" (round).
  static const IconData dynamic_form_rounded = IconData(0xf6ed, 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(0xf000, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">e_mobiledata</i> &#x2014; material icon named "e mobiledata".
  static const IconData e_mobiledata = IconData(0xe213, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">e_mobiledata</i> &#x2014; material icon named "e mobiledata" (sharp).
  static const IconData e_mobiledata_sharp = IconData(0xe90f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">e_mobiledata</i> &#x2014; material icon named "e mobiledata" (round).
  static const IconData e_mobiledata_rounded = IconData(0xf6ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">e_mobiledata</i> &#x2014; material icon named "e mobiledata" (outlined).
  static const IconData e_mobiledata_outlined = IconData(0xf001, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">earbuds</i> &#x2014; material icon named "earbuds".
  static const IconData earbuds = IconData(0xe214, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">earbuds</i> &#x2014; material icon named "earbuds" (sharp).
  static const IconData earbuds_sharp = IconData(0xe911, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">earbuds</i> &#x2014; material icon named "earbuds" (round).
  static const IconData earbuds_rounded = IconData(0xf6f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">earbuds</i> &#x2014; material icon named "earbuds" (outlined).
  static const IconData earbuds_outlined = IconData(0xf003, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">earbuds_battery</i> &#x2014; material icon named "earbuds battery".
  static const IconData earbuds_battery = IconData(0xe215, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">earbuds_battery</i> &#x2014; material icon named "earbuds battery" (sharp).
  static const IconData earbuds_battery_sharp = IconData(0xe910, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">earbuds_battery</i> &#x2014; material icon named "earbuds battery" (round).
  static const IconData earbuds_battery_rounded = IconData(0xf6ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">earbuds_battery</i> &#x2014; material icon named "earbuds battery" (outlined).
  static const IconData earbuds_battery_outlined = IconData(0xf002, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">east</i> &#x2014; material icon named "east".
  static const IconData east = IconData(0xe216, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">east</i> &#x2014; material icon named "east" (sharp).
  static const IconData east_sharp = IconData(0xe912, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">east</i> &#x2014; material icon named "east" (round).
  static const IconData east_rounded = IconData(0xf6f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">east</i> &#x2014; material icon named "east" (outlined).
  static const IconData east_outlined = IconData(0xf004, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">eco</i> &#x2014; material icon named "eco".
  static const IconData eco = IconData(0xe217, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">eco</i> &#x2014; material icon named "eco" (sharp).
  static const IconData eco_sharp = IconData(0xe913, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">eco</i> &#x2014; material icon named "eco" (round).
  static const IconData eco_rounded = IconData(0xf6f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">eco</i> &#x2014; material icon named "eco" (outlined).
  static const IconData eco_outlined = IconData(0xf005, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">edgesensor_high</i> &#x2014; material icon named "edgesensor high".
  static const IconData edgesensor_high = IconData(0xe218, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">edgesensor_high</i> &#x2014; material icon named "edgesensor high" (sharp).
  static const IconData edgesensor_high_sharp = IconData(0xe914, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">edgesensor_high</i> &#x2014; material icon named "edgesensor high" (round).
  static const IconData edgesensor_high_rounded = IconData(0xf6f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">edgesensor_high</i> &#x2014; material icon named "edgesensor high" (outlined).
  static const IconData edgesensor_high_outlined = IconData(0xf006, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">edgesensor_low</i> &#x2014; material icon named "edgesensor low".
  static const IconData edgesensor_low = IconData(0xe219, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">edgesensor_low</i> &#x2014; material icon named "edgesensor low" (sharp).
  static const IconData edgesensor_low_sharp = IconData(0xe915, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">edgesensor_low</i> &#x2014; material icon named "edgesensor low" (round).
  static const IconData edgesensor_low_rounded = IconData(0xf6f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">edgesensor_low</i> &#x2014; material icon named "edgesensor low" (outlined).
  static const IconData edgesensor_low_outlined = IconData(0xf007, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">edit</i> &#x2014; material icon named "edit".
  static const IconData edit = IconData(0xe21a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">edit</i> &#x2014; material icon named "edit" (sharp).
  static const IconData edit_sharp = IconData(0xe91c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">edit</i> &#x2014; material icon named "edit" (round).
  static const IconData edit_rounded = IconData(0xf6fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">edit</i> &#x2014; material icon named "edit" (outlined).
  static const IconData edit_outlined = IconData(0xf00d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">edit_attributes</i> &#x2014; material icon named "edit attributes".
  static const IconData edit_attributes = IconData(0xe21b, 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(0xe916, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">edit_attributes</i> &#x2014; material icon named "edit attributes" (round).
  static const IconData edit_attributes_rounded = IconData(0xf6f5, 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(0xf008, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">edit_calendar</i> &#x2014; material icon named "edit calendar".
  static const IconData edit_calendar = IconData(0xf04f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">edit_calendar</i> &#x2014; material icon named "edit calendar" (sharp).
  static const IconData edit_calendar_sharp = IconData(0xf0401, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">edit_calendar</i> &#x2014; material icon named "edit calendar" (round).
  static const IconData edit_calendar_rounded = IconData(0xf030e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">edit_calendar</i> &#x2014; material icon named "edit calendar" (outlined).
  static const IconData edit_calendar_outlined = IconData(0xf05ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">edit_document</i> &#x2014; material icon named "edit document".
  static const IconData edit_document = IconData(0xf085d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">edit_location</i> &#x2014; material icon named "edit location".
  static const IconData edit_location = IconData(0xe21c, 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(0xe918, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">edit_location</i> &#x2014; material icon named "edit location" (round).
  static const IconData edit_location_rounded = IconData(0xf6f7, 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(0xf00a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">edit_location_alt</i> &#x2014; material icon named "edit location alt".
  static const IconData edit_location_alt = IconData(0xe21d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">edit_location_alt</i> &#x2014; material icon named "edit location alt" (sharp).
  static const IconData edit_location_alt_sharp = IconData(0xe917, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">edit_location_alt</i> &#x2014; material icon named "edit location alt" (round).
  static const IconData edit_location_alt_rounded = IconData(0xf6f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">edit_location_alt</i> &#x2014; material icon named "edit location alt" (outlined).
  static const IconData edit_location_alt_outlined = IconData(0xf009, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">edit_note</i> &#x2014; material icon named "edit note".
  static const IconData edit_note = IconData(0xf04f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">edit_note</i> &#x2014; material icon named "edit note" (sharp).
  static const IconData edit_note_sharp = IconData(0xf0402, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">edit_note</i> &#x2014; material icon named "edit note" (round).
  static const IconData edit_note_rounded = IconData(0xf030f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">edit_note</i> &#x2014; material icon named "edit note" (outlined).
  static const IconData edit_note_outlined = IconData(0xf05f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">edit_notifications</i> &#x2014; material icon named "edit notifications".
  static const IconData edit_notifications = IconData(0xe21e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">edit_notifications</i> &#x2014; material icon named "edit notifications" (sharp).
  static const IconData edit_notifications_sharp = IconData(0xe919, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">edit_notifications</i> &#x2014; material icon named "edit notifications" (round).
  static const IconData edit_notifications_rounded = IconData(0xf6f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">edit_notifications</i> &#x2014; material icon named "edit notifications" (outlined).
  static const IconData edit_notifications_outlined = IconData(0xf00b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">edit_off</i> &#x2014; material icon named "edit off".
  static const IconData edit_off = IconData(0xe21f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">edit_off</i> &#x2014; material icon named "edit off" (sharp).
  static const IconData edit_off_sharp = IconData(0xe91a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">edit_off</i> &#x2014; material icon named "edit off" (round).
  static const IconData edit_off_rounded = IconData(0xf6f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">edit_off</i> &#x2014; material icon named "edit off" (outlined).
  static const IconData edit_off_outlined = IconData(0xf00c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">edit_road</i> &#x2014; material icon named "edit road".
  static const IconData edit_road = IconData(0xe220, 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(0xe91b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">edit_road</i> &#x2014; material icon named "edit road" (round).
  static const IconData edit_road_rounded = IconData(0xf6fa, 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(0xf00e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">edit_square</i> &#x2014; material icon named "edit square".
  static const IconData edit_square = IconData(0xf085e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">egg</i> &#x2014; material icon named "egg".
  static const IconData egg = IconData(0xf04f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">egg</i> &#x2014; material icon named "egg" (sharp).
  static const IconData egg_sharp = IconData(0xf0404, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">egg</i> &#x2014; material icon named "egg" (round).
  static const IconData egg_rounded = IconData(0xf0311, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">egg</i> &#x2014; material icon named "egg" (outlined).
  static const IconData egg_outlined = IconData(0xf05f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">egg_alt</i> &#x2014; material icon named "egg alt".
  static const IconData egg_alt = IconData(0xf04f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">egg_alt</i> &#x2014; material icon named "egg alt" (sharp).
  static const IconData egg_alt_sharp = IconData(0xf0403, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">egg_alt</i> &#x2014; material icon named "egg alt" (round).
  static const IconData egg_alt_rounded = IconData(0xf0310, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">egg_alt</i> &#x2014; material icon named "egg alt" (outlined).
  static const IconData egg_alt_outlined = IconData(0xf05f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">eject</i> &#x2014; material icon named "eject".
  static const IconData eject = IconData(0xe221, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">eject</i> &#x2014; material icon named "eject" (sharp).
  static const IconData eject_sharp = IconData(0xe91d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">eject</i> &#x2014; material icon named "eject" (round).
  static const IconData eject_rounded = IconData(0xf6fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">eject</i> &#x2014; material icon named "eject" (outlined).
  static const IconData eject_outlined = IconData(0xf00f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">elderly</i> &#x2014; material icon named "elderly".
  static const IconData elderly = IconData(0xe222, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">elderly</i> &#x2014; material icon named "elderly" (sharp).
  static const IconData elderly_sharp = IconData(0xe91e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">elderly</i> &#x2014; material icon named "elderly" (round).
  static const IconData elderly_rounded = IconData(0xf6fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">elderly</i> &#x2014; material icon named "elderly" (outlined).
  static const IconData elderly_outlined = IconData(0xf010, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">elderly_woman</i> &#x2014; material icon named "elderly woman".
  static const IconData elderly_woman = IconData(0xf04f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">elderly_woman</i> &#x2014; material icon named "elderly woman" (sharp).
  static const IconData elderly_woman_sharp = IconData(0xf0405, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">elderly_woman</i> &#x2014; material icon named "elderly woman" (round).
  static const IconData elderly_woman_rounded = IconData(0xf0312, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">elderly_woman</i> &#x2014; material icon named "elderly woman" (outlined).
  static const IconData elderly_woman_outlined = IconData(0xf05f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">electric_bike</i> &#x2014; material icon named "electric bike".
  static const IconData electric_bike = IconData(0xe223, 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(0xe91f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">electric_bike</i> &#x2014; material icon named "electric bike" (round).
  static const IconData electric_bike_rounded = IconData(0xf6fe, 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(0xf011, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">electric_bolt</i> &#x2014; material icon named "electric bolt".
  static const IconData electric_bolt = IconData(0xf079c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">electric_bolt</i> &#x2014; material icon named "electric bolt" (sharp).
  static const IconData electric_bolt_sharp = IconData(0xf0744, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">electric_bolt</i> &#x2014; material icon named "electric bolt" (round).
  static const IconData electric_bolt_rounded = IconData(0xf07f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">electric_bolt</i> &#x2014; material icon named "electric bolt" (outlined).
  static const IconData electric_bolt_outlined = IconData(0xf06ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">electric_car</i> &#x2014; material icon named "electric car".
  static const IconData electric_car = IconData(0xe224, 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(0xe920, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">electric_car</i> &#x2014; material icon named "electric car" (round).
  static const IconData electric_car_rounded = IconData(0xf6ff, 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(0xf012, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">electric_meter</i> &#x2014; material icon named "electric meter".
  static const IconData electric_meter = IconData(0xf079d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">electric_meter</i> &#x2014; material icon named "electric meter" (sharp).
  static const IconData electric_meter_sharp = IconData(0xf0745, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">electric_meter</i> &#x2014; material icon named "electric meter" (round).
  static const IconData electric_meter_rounded = IconData(0xf07f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">electric_meter</i> &#x2014; material icon named "electric meter" (outlined).
  static const IconData electric_meter_outlined = IconData(0xf06ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">electric_moped</i> &#x2014; material icon named "electric moped".
  static const IconData electric_moped = IconData(0xe225, 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(0xe921, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">electric_moped</i> &#x2014; material icon named "electric moped" (round).
  static const IconData electric_moped_rounded = IconData(0xf700, 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(0xf013, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">electric_rickshaw</i> &#x2014; material icon named "electric rickshaw".
  static const IconData electric_rickshaw = IconData(0xe226, 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(0xe922, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">electric_rickshaw</i> &#x2014; material icon named "electric rickshaw" (round).
  static const IconData electric_rickshaw_rounded = IconData(0xf701, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">electric_rickshaw</i> &#x2014; material icon named "electric rickshaw" (outlined).
  static const IconData electric_rickshaw_outlined = IconData(0xf014, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">electric_scooter</i> &#x2014; material icon named "electric scooter".
  static const IconData electric_scooter = IconData(0xe227, 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(0xe923, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">electric_scooter</i> &#x2014; material icon named "electric scooter" (round).
  static const IconData electric_scooter_rounded = IconData(0xf702, 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(0xf015, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">electrical_services</i> &#x2014; material icon named "electrical services".
  static const IconData electrical_services = IconData(0xe228, 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(0xe924, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">electrical_services</i> &#x2014; material icon named "electrical services" (round).
  static const IconData electrical_services_rounded = IconData(0xf703, 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(
    0xf016,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">elevator</i> &#x2014; material icon named "elevator".
  static const IconData elevator = IconData(0xe229, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">elevator</i> &#x2014; material icon named "elevator" (sharp).
  static const IconData elevator_sharp = IconData(0xe925, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">elevator</i> &#x2014; material icon named "elevator" (round).
  static const IconData elevator_rounded = IconData(0xf704, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">elevator</i> &#x2014; material icon named "elevator" (outlined).
  static const IconData elevator_outlined = IconData(0xf017, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">email</i> &#x2014; material icon named "email".
  static const IconData email = IconData(0xe22a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">email</i> &#x2014; material icon named "email" (sharp).
  static const IconData email_sharp = IconData(0xe926, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">email</i> &#x2014; material icon named "email" (round).
  static const IconData email_rounded = IconData(0xf705, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">email</i> &#x2014; material icon named "email" (outlined).
  static const IconData email_outlined = IconData(0xf018, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">emergency</i> &#x2014; material icon named "emergency".
  static const IconData emergency = IconData(0xf04fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">emergency</i> &#x2014; material icon named "emergency" (sharp).
  static const IconData emergency_sharp = IconData(0xf0406, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emergency</i> &#x2014; material icon named "emergency" (round).
  static const IconData emergency_rounded = IconData(0xf0313, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">emergency</i> &#x2014; material icon named "emergency" (outlined).
  static const IconData emergency_outlined = IconData(0xf05f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">emergency_recording</i> &#x2014; material icon named "emergency recording".
  static const IconData emergency_recording = IconData(0xf079e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">emergency_recording</i> &#x2014; material icon named "emergency recording" (sharp).
  static const IconData emergency_recording_sharp = IconData(0xf0746, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emergency_recording</i> &#x2014; material icon named "emergency recording" (round).
  static const IconData emergency_recording_rounded = IconData(
    0xf07f6,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">emergency_recording</i> &#x2014; material icon named "emergency recording" (outlined).
  static const IconData emergency_recording_outlined = IconData(
    0xf06ee,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">emergency_share</i> &#x2014; material icon named "emergency share".
  static const IconData emergency_share = IconData(0xf079f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">emergency_share</i> &#x2014; material icon named "emergency share" (sharp).
  static const IconData emergency_share_sharp = IconData(0xf0747, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emergency_share</i> &#x2014; material icon named "emergency share" (round).
  static const IconData emergency_share_rounded = IconData(0xf07f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">emergency_share</i> &#x2014; material icon named "emergency share" (outlined).
  static const IconData emergency_share_outlined = IconData(0xf06ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">emoji_emotions</i> &#x2014; material icon named "emoji emotions".
  static const IconData emoji_emotions = IconData(0xe22b, 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(0xe927, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emoji_emotions</i> &#x2014; material icon named "emoji emotions" (round).
  static const IconData emoji_emotions_rounded = IconData(0xf706, 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(0xf019, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">emoji_events</i> &#x2014; material icon named "emoji events".
  static const IconData emoji_events = IconData(0xe22c, 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(0xe928, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emoji_events</i> &#x2014; material icon named "emoji events" (round).
  static const IconData emoji_events_rounded = IconData(0xf707, 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(0xf01a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">emoji_flags</i> &#x2014; material icon named "emoji flags".
  static const IconData emoji_flags = IconData(0xe22d, 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(0xe929, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emoji_flags</i> &#x2014; material icon named "emoji flags" (round).
  static const IconData emoji_flags_rounded = IconData(0xf708, 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(0xf01b, 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(0xe22e, 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(0xe92a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emoji_food_beverage</i> &#x2014; material icon named "emoji food beverage" (round).
  static const IconData emoji_food_beverage_rounded = IconData(0xf709, 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(
    0xf01c,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">emoji_nature</i> &#x2014; material icon named "emoji nature".
  static const IconData emoji_nature = IconData(0xe22f, 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(0xe92b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emoji_nature</i> &#x2014; material icon named "emoji nature" (round).
  static const IconData emoji_nature_rounded = IconData(0xf70a, 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(0xf01d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">emoji_objects</i> &#x2014; material icon named "emoji objects".
  static const IconData emoji_objects = IconData(0xe230, 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(0xe92c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emoji_objects</i> &#x2014; material icon named "emoji objects" (round).
  static const IconData emoji_objects_rounded = IconData(0xf70b, 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(0xf01e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">emoji_people</i> &#x2014; material icon named "emoji people".
  static const IconData emoji_people = IconData(0xe231, 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(0xe92d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emoji_people</i> &#x2014; material icon named "emoji people" (round).
  static const IconData emoji_people_rounded = IconData(0xf70c, 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(0xf01f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">emoji_symbols</i> &#x2014; material icon named "emoji symbols".
  static const IconData emoji_symbols = IconData(0xe232, 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(0xe92e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emoji_symbols</i> &#x2014; material icon named "emoji symbols" (round).
  static const IconData emoji_symbols_rounded = IconData(0xf70d, 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(0xf020, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">emoji_transportation</i> &#x2014; material icon named "emoji transportation".
  static const IconData emoji_transportation = IconData(0xe233, 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(0xe92f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">emoji_transportation</i> &#x2014; material icon named "emoji transportation" (round).
  static const IconData emoji_transportation_rounded = IconData(
    0xf70e,
    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(
    0xf021,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">energy_savings_leaf</i> &#x2014; material icon named "energy savings leaf".
  static const IconData energy_savings_leaf = IconData(0xf07a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">energy_savings_leaf</i> &#x2014; material icon named "energy savings leaf" (sharp).
  static const IconData energy_savings_leaf_sharp = IconData(0xf0748, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">energy_savings_leaf</i> &#x2014; material icon named "energy savings leaf" (round).
  static const IconData energy_savings_leaf_rounded = IconData(
    0xf07f8,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">energy_savings_leaf</i> &#x2014; material icon named "energy savings leaf" (outlined).
  static const IconData energy_savings_leaf_outlined = IconData(
    0xf06f0,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">engineering</i> &#x2014; material icon named "engineering".
  static const IconData engineering = IconData(0xe234, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">engineering</i> &#x2014; material icon named "engineering" (sharp).
  static const IconData engineering_sharp = IconData(0xe930, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">engineering</i> &#x2014; material icon named "engineering" (round).
  static const IconData engineering_rounded = IconData(0xf70f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">engineering</i> &#x2014; material icon named "engineering" (outlined).
  static const IconData engineering_outlined = IconData(0xf022, 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(0xe131, 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(
    0xe82d,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">enhance_photo_translate</i> &#x2014; material icon named "enhance photo translate" (round).
  static const IconData enhance_photo_translate_rounded = IconData(
    0xf60c,
    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(
    0xef1f,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">enhanced_encryption</i> &#x2014; material icon named "enhanced encryption".
  static const IconData enhanced_encryption = IconData(0xe235, 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(0xe931, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">enhanced_encryption</i> &#x2014; material icon named "enhanced encryption" (round).
  static const IconData enhanced_encryption_rounded = IconData(0xf710, 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(
    0xf023,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">equalizer</i> &#x2014; material icon named "equalizer".
  static const IconData equalizer = IconData(0xe236, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">equalizer</i> &#x2014; material icon named "equalizer" (sharp).
  static const IconData equalizer_sharp = IconData(0xe932, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">equalizer</i> &#x2014; material icon named "equalizer" (round).
  static const IconData equalizer_rounded = IconData(0xf711, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">equalizer</i> &#x2014; material icon named "equalizer" (outlined).
  static const IconData equalizer_outlined = IconData(0xf024, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">error</i> &#x2014; material icon named "error".
  static const IconData error = IconData(0xe237, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">error</i> &#x2014; material icon named "error" (sharp).
  static const IconData error_sharp = IconData(0xe934, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">error</i> &#x2014; material icon named "error" (round).
  static const IconData error_rounded = IconData(0xf713, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">error</i> &#x2014; material icon named "error" (outlined).
  static const IconData error_outlined = IconData(0xf026, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">error_outline</i> &#x2014; material icon named "error outline".
  static const IconData error_outline = IconData(0xe238, 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(0xe933, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">error_outline</i> &#x2014; material icon named "error outline" (round).
  static const IconData error_outline_rounded = IconData(0xf712, 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(0xf025, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">escalator</i> &#x2014; material icon named "escalator".
  static const IconData escalator = IconData(0xe239, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">escalator</i> &#x2014; material icon named "escalator" (sharp).
  static const IconData escalator_sharp = IconData(0xe935, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">escalator</i> &#x2014; material icon named "escalator" (round).
  static const IconData escalator_rounded = IconData(0xf714, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">escalator</i> &#x2014; material icon named "escalator" (outlined).
  static const IconData escalator_outlined = IconData(0xf027, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">escalator_warning</i> &#x2014; material icon named "escalator warning".
  static const IconData escalator_warning = IconData(0xe23a, 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(0xe936, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">escalator_warning</i> &#x2014; material icon named "escalator warning" (round).
  static const IconData escalator_warning_rounded = IconData(0xf715, 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(0xf028, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">euro</i> &#x2014; material icon named "euro".
  static const IconData euro = IconData(0xe23b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">euro</i> &#x2014; material icon named "euro" (sharp).
  static const IconData euro_sharp = IconData(0xe937, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">euro</i> &#x2014; material icon named "euro" (round).
  static const IconData euro_rounded = IconData(0xf716, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">euro</i> &#x2014; material icon named "euro" (outlined).
  static const IconData euro_outlined = IconData(0xf029, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">euro_symbol</i> &#x2014; material icon named "euro symbol".
  static const IconData euro_symbol = IconData(0xe23c, 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(0xe938, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">euro_symbol</i> &#x2014; material icon named "euro symbol" (round).
  static const IconData euro_symbol_rounded = IconData(0xf717, 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(0xf02a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">ev_station</i> &#x2014; material icon named "ev station".
  static const IconData ev_station = IconData(0xe23d, 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(0xe939, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">ev_station</i> &#x2014; material icon named "ev station" (round).
  static const IconData ev_station_rounded = IconData(0xf718, 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(0xf02b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">event</i> &#x2014; material icon named "event".
  static const IconData event = IconData(0xe23e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">event</i> &#x2014; material icon named "event" (sharp).
  static const IconData event_sharp = IconData(0xe93e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">event</i> &#x2014; material icon named "event" (round).
  static const IconData event_rounded = IconData(0xf71c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">event</i> &#x2014; material icon named "event" (outlined).
  static const IconData event_outlined = IconData(0xf02f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">event_available</i> &#x2014; material icon named "event available".
  static const IconData event_available = IconData(0xe23f, 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(0xe93a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">event_available</i> &#x2014; material icon named "event available" (round).
  static const IconData event_available_rounded = IconData(0xf719, 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(0xf02c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">event_busy</i> &#x2014; material icon named "event busy".
  static const IconData event_busy = IconData(0xe240, 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(0xe93b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">event_busy</i> &#x2014; material icon named "event busy" (round).
  static const IconData event_busy_rounded = IconData(0xf71a, 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(0xf02d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">event_note</i> &#x2014; material icon named "event note".
  static const IconData event_note = IconData(
    0xe241,
    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(
    0xe93c,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">event_note</i> &#x2014; material icon named "event note" (round).
  static const IconData event_note_rounded = IconData(
    0xf71b,
    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(
    0xf02e,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">event_repeat</i> &#x2014; material icon named "event repeat".
  static const IconData event_repeat = IconData(0xf04fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">event_repeat</i> &#x2014; material icon named "event repeat" (sharp).
  static const IconData event_repeat_sharp = IconData(0xf0407, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">event_repeat</i> &#x2014; material icon named "event repeat" (round).
  static const IconData event_repeat_rounded = IconData(0xf0314, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">event_repeat</i> &#x2014; material icon named "event repeat" (outlined).
  static const IconData event_repeat_outlined = IconData(0xf05f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">event_seat</i> &#x2014; material icon named "event seat".
  static const IconData event_seat = IconData(0xe242, 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(0xe93d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">event_seat</i> &#x2014; material icon named "event seat" (round).
  static const IconData event_seat_rounded = IconData(0xf71d, 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(0xf030, 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(0xe243, 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(0xe93f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">exit_to_app</i> &#x2014; material icon named "exit to app" (round).
  static const IconData exit_to_app_rounded = IconData(0xf71e, 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(0xf031, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">expand</i> &#x2014; material icon named "expand".
  static const IconData expand = IconData(0xe244, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">expand</i> &#x2014; material icon named "expand" (sharp).
  static const IconData expand_sharp = IconData(0xe942, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">expand</i> &#x2014; material icon named "expand" (round).
  static const IconData expand_rounded = IconData(0xf721, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">expand</i> &#x2014; material icon named "expand" (outlined).
  static const IconData expand_outlined = IconData(0xf034, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">expand_circle_down</i> &#x2014; material icon named "expand circle down".
  static const IconData expand_circle_down = IconData(0xf04fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">expand_circle_down</i> &#x2014; material icon named "expand circle down" (sharp).
  static const IconData expand_circle_down_sharp = IconData(0xf0408, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">expand_circle_down</i> &#x2014; material icon named "expand circle down" (round).
  static const IconData expand_circle_down_rounded = IconData(0xf0315, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">expand_circle_down</i> &#x2014; material icon named "expand circle down" (outlined).
  static const IconData expand_circle_down_outlined = IconData(
    0xf05f6,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">expand_less</i> &#x2014; material icon named "expand less".
  static const IconData expand_less = IconData(0xe245, 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(0xe940, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">expand_less</i> &#x2014; material icon named "expand less" (round).
  static const IconData expand_less_rounded = IconData(0xf71f, 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(0xf032, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">expand_more</i> &#x2014; material icon named "expand more".
  static const IconData expand_more = IconData(0xe246, 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(0xe941, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">expand_more</i> &#x2014; material icon named "expand more" (round).
  static const IconData expand_more_rounded = IconData(0xf720, 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(0xf033, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">explicit</i> &#x2014; material icon named "explicit".
  static const IconData explicit = IconData(0xe247, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">explicit</i> &#x2014; material icon named "explicit" (sharp).
  static const IconData explicit_sharp = IconData(0xe943, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">explicit</i> &#x2014; material icon named "explicit" (round).
  static const IconData explicit_rounded = IconData(0xf722, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">explicit</i> &#x2014; material icon named "explicit" (outlined).
  static const IconData explicit_outlined = IconData(0xf035, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">explore</i> &#x2014; material icon named "explore".
  static const IconData explore = IconData(0xe248, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">explore</i> &#x2014; material icon named "explore" (sharp).
  static const IconData explore_sharp = IconData(0xe945, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">explore</i> &#x2014; material icon named "explore" (round).
  static const IconData explore_rounded = IconData(0xf724, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">explore</i> &#x2014; material icon named "explore" (outlined).
  static const IconData explore_outlined = IconData(0xf037, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">explore_off</i> &#x2014; material icon named "explore off".
  static const IconData explore_off = IconData(0xe249, 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(0xe944, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">explore_off</i> &#x2014; material icon named "explore off" (round).
  static const IconData explore_off_rounded = IconData(0xf723, 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(0xf036, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">exposure</i> &#x2014; material icon named "exposure".
  static const IconData exposure = IconData(0xe24a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">exposure</i> &#x2014; material icon named "exposure" (sharp).
  static const IconData exposure_sharp = IconData(0xe94a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">exposure</i> &#x2014; material icon named "exposure" (round).
  static const IconData exposure_rounded = IconData(0xf729, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">exposure</i> &#x2014; material icon named "exposure" (outlined).
  static const IconData exposure_outlined = IconData(0xf03a, 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(0xe24b, 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(0xe946, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">exposure_minus_1</i> &#x2014; material icon named "exposure minus 1" (round).
  static const IconData exposure_minus_1_rounded = IconData(0xf725, 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(0xf038, 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(0xe24c, 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(0xe947, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">exposure_minus_2</i> &#x2014; material icon named "exposure minus 2" (round).
  static const IconData exposure_minus_2_rounded = IconData(0xf726, 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(0xf039, 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(0xe24b, 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(0xe946, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">exposure_neg_1</i> &#x2014; material icon named "exposure neg 1" (round).
  static const IconData exposure_neg_1_rounded = IconData(0xf725, 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(0xf038, 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(0xe24c, 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(0xe947, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">exposure_neg_2</i> &#x2014; material icon named "exposure neg 2" (round).
  static const IconData exposure_neg_2_rounded = IconData(0xf726, 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(0xf039, 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(0xe24d, 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(0xe948, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">exposure_plus_1</i> &#x2014; material icon named "exposure plus 1" (round).
  static const IconData exposure_plus_1_rounded = IconData(0xf727, 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(0xf03b, 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(0xe24e, 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(0xe949, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">exposure_plus_2</i> &#x2014; material icon named "exposure plus 2" (round).
  static const IconData exposure_plus_2_rounded = IconData(0xf728, 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(0xf03c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">exposure_zero</i> &#x2014; material icon named "exposure zero".
  static const IconData exposure_zero = IconData(0xe24f, 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(0xe94b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">exposure_zero</i> &#x2014; material icon named "exposure zero" (round).
  static const IconData exposure_zero_rounded = IconData(0xf72a, 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(0xf03d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">extension</i> &#x2014; material icon named "extension".
  static const IconData extension = IconData(0xe250, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">extension</i> &#x2014; material icon named "extension" (sharp).
  static const IconData extension_sharp = IconData(0xe94d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">extension</i> &#x2014; material icon named "extension" (round).
  static const IconData extension_rounded = IconData(0xf72c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">extension</i> &#x2014; material icon named "extension" (outlined).
  static const IconData extension_outlined = IconData(0xf03f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">extension_off</i> &#x2014; material icon named "extension off".
  static const IconData extension_off = IconData(0xe251, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">extension_off</i> &#x2014; material icon named "extension off" (sharp).
  static const IconData extension_off_sharp = IconData(0xe94c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">extension_off</i> &#x2014; material icon named "extension off" (round).
  static const IconData extension_off_rounded = IconData(0xf72b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">extension_off</i> &#x2014; material icon named "extension off" (outlined).
  static const IconData extension_off_outlined = IconData(0xf03e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">face</i> &#x2014; material icon named "face".
  static const IconData face = IconData(0xe252, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">face</i> &#x2014; material icon named "face" (sharp).
  static const IconData face_sharp = IconData(0xe950, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">face</i> &#x2014; material icon named "face" (round).
  static const IconData face_rounded = IconData(0xf72f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">face</i> &#x2014; material icon named "face" (outlined).
  static const IconData face_outlined = IconData(0xf040, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">face_2</i> &#x2014; material icon named "face 2".
  static const IconData face_2 = IconData(0xf085f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">face_2</i> &#x2014; material icon named "face 2" (sharp).
  static const IconData face_2_sharp = IconData(0xf083b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">face_2</i> &#x2014; material icon named "face 2" (round).
  static const IconData face_2_rounded = IconData(0xf0884, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">face_2</i> &#x2014; material icon named "face 2" (outlined).
  static const IconData face_2_outlined = IconData(0xf08a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">face_3</i> &#x2014; material icon named "face 3".
  static const IconData face_3 = IconData(0xf0860, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">face_3</i> &#x2014; material icon named "face 3" (sharp).
  static const IconData face_3_sharp = IconData(0xf083c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">face_3</i> &#x2014; material icon named "face 3" (round).
  static const IconData face_3_rounded = IconData(0xf0885, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">face_3</i> &#x2014; material icon named "face 3" (outlined).
  static const IconData face_3_outlined = IconData(0xf08a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">face_4</i> &#x2014; material icon named "face 4".
  static const IconData face_4 = IconData(0xf0861, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">face_4</i> &#x2014; material icon named "face 4" (sharp).
  static const IconData face_4_sharp = IconData(0xf083d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">face_4</i> &#x2014; material icon named "face 4" (round).
  static const IconData face_4_rounded = IconData(0xf0886, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">face_4</i> &#x2014; material icon named "face 4" (outlined).
  static const IconData face_4_outlined = IconData(0xf08a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">face_5</i> &#x2014; material icon named "face 5".
  static const IconData face_5 = IconData(0xf0862, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">face_5</i> &#x2014; material icon named "face 5" (sharp).
  static const IconData face_5_sharp = IconData(0xf083e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">face_5</i> &#x2014; material icon named "face 5" (round).
  static const IconData face_5_rounded = IconData(0xf0887, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">face_5</i> &#x2014; material icon named "face 5" (outlined).
  static const IconData face_5_outlined = IconData(0xf08a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">face_6</i> &#x2014; material icon named "face 6".
  static const IconData face_6 = IconData(0xf0863, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">face_6</i> &#x2014; material icon named "face 6" (sharp).
  static const IconData face_6_sharp = IconData(0xf083f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">face_6</i> &#x2014; material icon named "face 6" (round).
  static const IconData face_6_rounded = IconData(0xf0888, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">face_6</i> &#x2014; material icon named "face 6" (outlined).
  static const IconData face_6_outlined = IconData(0xf08a6, 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(0xe253, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">face_retouching_natural</i> &#x2014; material icon named "face retouching natural" (sharp).
  static const IconData face_retouching_natural_sharp = IconData(
    0xe94e,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">face_retouching_natural</i> &#x2014; material icon named "face retouching natural" (round).
  static const IconData face_retouching_natural_rounded = IconData(
    0xf72d,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">face_retouching_natural</i> &#x2014; material icon named "face retouching natural" (outlined).
  static const IconData face_retouching_natural_outlined = IconData(
    0xf041,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">face_retouching_off</i> &#x2014; material icon named "face retouching off".
  static const IconData face_retouching_off = IconData(0xe254, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">face_retouching_off</i> &#x2014; material icon named "face retouching off" (sharp).
  static const IconData face_retouching_off_sharp = IconData(0xe94f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">face_retouching_off</i> &#x2014; material icon named "face retouching off" (round).
  static const IconData face_retouching_off_rounded = IconData(0xf72e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">face_retouching_off</i> &#x2014; material icon named "face retouching off" (outlined).
  static const IconData face_retouching_off_outlined = IconData(
    0xf042,
    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(0xe951, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">face_unlock</i> &#x2014; material icon named "face unlock" (round).
  static const IconData face_unlock_rounded = IconData(0xf730, 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(0xf043, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">facebook</i> &#x2014; material icon named "facebook".
  static const IconData facebook = IconData(0xe255, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">facebook</i> &#x2014; material icon named "facebook" (sharp).
  static const IconData facebook_sharp = IconData(0xe952, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">facebook</i> &#x2014; material icon named "facebook" (round).
  static const IconData facebook_rounded = IconData(0xf731, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">facebook</i> &#x2014; material icon named "facebook" (outlined).
  static const IconData facebook_outlined = IconData(0xf044, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fact_check</i> &#x2014; material icon named "fact check".
  static const IconData fact_check = IconData(0xe256, 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(0xe953, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fact_check</i> &#x2014; material icon named "fact check" (round).
  static const IconData fact_check_rounded = IconData(0xf732, 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(0xf045, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">factory</i> &#x2014; material icon named "factory".
  static const IconData factory = IconData(0xf04fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">factory</i> &#x2014; material icon named "factory" (sharp).
  static const IconData factory_sharp = IconData(0xf0409, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">factory</i> &#x2014; material icon named "factory" (round).
  static const IconData factory_rounded = IconData(0xf0316, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">factory</i> &#x2014; material icon named "factory" (outlined).
  static const IconData factory_outlined = IconData(0xf05f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">family_restroom</i> &#x2014; material icon named "family restroom".
  static const IconData family_restroom = IconData(0xe257, 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(0xe954, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">family_restroom</i> &#x2014; material icon named "family restroom" (round).
  static const IconData family_restroom_rounded = IconData(0xf733, 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(0xf046, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fast_forward</i> &#x2014; material icon named "fast forward".
  static const IconData fast_forward = IconData(0xe258, 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(0xe955, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fast_forward</i> &#x2014; material icon named "fast forward" (round).
  static const IconData fast_forward_rounded = IconData(0xf734, 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(0xf047, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fast_rewind</i> &#x2014; material icon named "fast rewind".
  static const IconData fast_rewind = IconData(0xe259, 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(0xe956, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fast_rewind</i> &#x2014; material icon named "fast rewind" (round).
  static const IconData fast_rewind_rounded = IconData(0xf735, 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(0xf048, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fastfood</i> &#x2014; material icon named "fastfood".
  static const IconData fastfood = IconData(0xe25a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fastfood</i> &#x2014; material icon named "fastfood" (sharp).
  static const IconData fastfood_sharp = IconData(0xe957, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fastfood</i> &#x2014; material icon named "fastfood" (round).
  static const IconData fastfood_rounded = IconData(0xf736, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fastfood</i> &#x2014; material icon named "fastfood" (outlined).
  static const IconData fastfood_outlined = IconData(0xf049, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">favorite</i> &#x2014; material icon named "favorite".
  static const IconData favorite = IconData(0xe25b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">favorite</i> &#x2014; material icon named "favorite" (sharp).
  static const IconData favorite_sharp = IconData(0xe959, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">favorite</i> &#x2014; material icon named "favorite" (round).
  static const IconData favorite_rounded = IconData(0xf738, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">favorite</i> &#x2014; material icon named "favorite" (outlined).
  static const IconData favorite_outlined = IconData(0xf04b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">favorite_border</i> &#x2014; material icon named "favorite border".
  static const IconData favorite_border = IconData(0xe25c, 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(0xe958, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">favorite_border</i> &#x2014; material icon named "favorite border" (round).
  static const IconData favorite_border_rounded = IconData(0xf737, 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(0xf04a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">favorite_outline</i> &#x2014; material icon named "favorite outline".
  static const IconData favorite_outline = IconData(0xe25c, 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(0xe958, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">favorite_outline</i> &#x2014; material icon named "favorite outline" (round).
  static const IconData favorite_outline_rounded = IconData(0xf737, 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(0xf04a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fax</i> &#x2014; material icon named "fax".
  static const IconData fax = IconData(0xf04fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fax</i> &#x2014; material icon named "fax" (sharp).
  static const IconData fax_sharp = IconData(0xf040a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fax</i> &#x2014; material icon named "fax" (round).
  static const IconData fax_rounded = IconData(0xf0317, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fax</i> &#x2014; material icon named "fax" (outlined).
  static const IconData fax_outlined = IconData(0xf05f8, 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(
    0xe25d,
    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(
    0xe95a,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">featured_play_list</i> &#x2014; material icon named "featured play list" (round).
  static const IconData featured_play_list_rounded = IconData(
    0xf739,
    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(
    0xf04c,
    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(
    0xe25e,
    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(
    0xe95b,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">featured_video</i> &#x2014; material icon named "featured video" (round).
  static const IconData featured_video_rounded = IconData(
    0xf73a,
    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(
    0xf04d,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">feed</i> &#x2014; material icon named "feed".
  static const IconData feed = IconData(0xe25f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">feed</i> &#x2014; material icon named "feed" (sharp).
  static const IconData feed_sharp = IconData(0xe95c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">feed</i> &#x2014; material icon named "feed" (round).
  static const IconData feed_rounded = IconData(0xf73b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">feed</i> &#x2014; material icon named "feed" (outlined).
  static const IconData feed_outlined = IconData(0xf04e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">feedback</i> &#x2014; material icon named "feedback".
  static const IconData feedback = IconData(0xe260, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">feedback</i> &#x2014; material icon named "feedback" (sharp).
  static const IconData feedback_sharp = IconData(0xe95d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">feedback</i> &#x2014; material icon named "feedback" (round).
  static const IconData feedback_rounded = IconData(0xf73c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">feedback</i> &#x2014; material icon named "feedback" (outlined).
  static const IconData feedback_outlined = IconData(0xf04f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">female</i> &#x2014; material icon named "female".
  static const IconData female = IconData(0xe261, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">female</i> &#x2014; material icon named "female" (sharp).
  static const IconData female_sharp = IconData(0xe95e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">female</i> &#x2014; material icon named "female" (round).
  static const IconData female_rounded = IconData(0xf73d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">female</i> &#x2014; material icon named "female" (outlined).
  static const IconData female_outlined = IconData(0xf050, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fence</i> &#x2014; material icon named "fence".
  static const IconData fence = IconData(0xe262, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fence</i> &#x2014; material icon named "fence" (sharp).
  static const IconData fence_sharp = IconData(0xe95f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fence</i> &#x2014; material icon named "fence" (round).
  static const IconData fence_rounded = IconData(0xf73e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fence</i> &#x2014; material icon named "fence" (outlined).
  static const IconData fence_outlined = IconData(0xf051, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">festival</i> &#x2014; material icon named "festival".
  static const IconData festival = IconData(0xe263, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">festival</i> &#x2014; material icon named "festival" (sharp).
  static const IconData festival_sharp = IconData(0xe960, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">festival</i> &#x2014; material icon named "festival" (round).
  static const IconData festival_rounded = IconData(0xf73f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">festival</i> &#x2014; material icon named "festival" (outlined).
  static const IconData festival_outlined = IconData(0xf052, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fiber_dvr</i> &#x2014; material icon named "fiber dvr".
  static const IconData fiber_dvr = IconData(0xe264, 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(0xe961, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fiber_dvr</i> &#x2014; material icon named "fiber dvr" (round).
  static const IconData fiber_dvr_rounded = IconData(0xf740, 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(0xf053, 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(0xe265, 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(0xe962, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fiber_manual_record</i> &#x2014; material icon named "fiber manual record" (round).
  static const IconData fiber_manual_record_rounded = IconData(0xf741, 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(
    0xf054,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">fiber_new</i> &#x2014; material icon named "fiber new".
  static const IconData fiber_new = IconData(0xe266, 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(0xe963, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fiber_new</i> &#x2014; material icon named "fiber new" (round).
  static const IconData fiber_new_rounded = IconData(0xf742, 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(0xf055, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fiber_pin</i> &#x2014; material icon named "fiber pin".
  static const IconData fiber_pin = IconData(0xe267, 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(0xe964, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fiber_pin</i> &#x2014; material icon named "fiber pin" (round).
  static const IconData fiber_pin_rounded = IconData(0xf743, 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(0xf056, 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(0xe268, 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(0xe965, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fiber_smart_record</i> &#x2014; material icon named "fiber smart record" (round).
  static const IconData fiber_smart_record_rounded = IconData(0xf744, 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(0xf057, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">file_copy</i> &#x2014; material icon named "file copy".
  static const IconData file_copy = IconData(0xe269, 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(0xe966, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">file_copy</i> &#x2014; material icon named "file copy" (round).
  static const IconData file_copy_rounded = IconData(0xf745, 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(0xf058, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">file_download</i> &#x2014; material icon named "file download".
  static const IconData file_download = IconData(0xe26a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">file_download</i> &#x2014; material icon named "file download" (sharp).
  static const IconData file_download_sharp = IconData(0xe969, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">file_download</i> &#x2014; material icon named "file download" (round).
  static const IconData file_download_rounded = IconData(0xf748, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">file_download</i> &#x2014; material icon named "file download" (outlined).
  static const IconData file_download_outlined = IconData(0xf05b, 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(0xe26b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">file_download_done</i> &#x2014; material icon named "file download done" (sharp).
  static const IconData file_download_done_sharp = IconData(0xe967, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">file_download_done</i> &#x2014; material icon named "file download done" (round).
  static const IconData file_download_done_rounded = IconData(0xf746, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">file_download_done</i> &#x2014; material icon named "file download done" (outlined).
  static const IconData file_download_done_outlined = IconData(0xf059, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">file_download_off</i> &#x2014; material icon named "file download off".
  static const IconData file_download_off = IconData(0xe26c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">file_download_off</i> &#x2014; material icon named "file download off" (sharp).
  static const IconData file_download_off_sharp = IconData(0xe968, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">file_download_off</i> &#x2014; material icon named "file download off" (round).
  static const IconData file_download_off_rounded = IconData(0xf747, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">file_download_off</i> &#x2014; material icon named "file download off" (outlined).
  static const IconData file_download_off_outlined = IconData(0xf05a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">file_open</i> &#x2014; material icon named "file open".
  static const IconData file_open = IconData(0xf04ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">file_open</i> &#x2014; material icon named "file open" (sharp).
  static const IconData file_open_sharp = IconData(0xf040b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">file_open</i> &#x2014; material icon named "file open" (round).
  static const IconData file_open_rounded = IconData(0xf0318, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">file_open</i> &#x2014; material icon named "file open" (outlined).
  static const IconData file_open_outlined = IconData(0xf05f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">file_present</i> &#x2014; material icon named "file present".
  static const IconData file_present = IconData(0xe26d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">file_present</i> &#x2014; material icon named "file present" (sharp).
  static const IconData file_present_sharp = IconData(0xe96a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">file_present</i> &#x2014; material icon named "file present" (round).
  static const IconData file_present_rounded = IconData(0xf749, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">file_present</i> &#x2014; material icon named "file present" (outlined).
  static const IconData file_present_outlined = IconData(0xf05c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">file_upload</i> &#x2014; material icon named "file upload".
  static const IconData file_upload = IconData(0xe26e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">file_upload</i> &#x2014; material icon named "file upload" (sharp).
  static const IconData file_upload_sharp = IconData(0xe96b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">file_upload</i> &#x2014; material icon named "file upload" (round).
  static const IconData file_upload_rounded = IconData(0xf74a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">file_upload</i> &#x2014; material icon named "file upload" (outlined).
  static const IconData file_upload_outlined = IconData(0xf05d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">file_upload_off</i> &#x2014; material icon named "file upload off".
  static const IconData file_upload_off = IconData(0xf0864, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter</i> &#x2014; material icon named "filter".
  static const IconData filter = IconData(0xe26f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter</i> &#x2014; material icon named "filter" (sharp).
  static const IconData filter_sharp = IconData(0xe97e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter</i> &#x2014; material icon named "filter" (round).
  static const IconData filter_rounded = IconData(0xf75d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter</i> &#x2014; material icon named "filter" (outlined).
  static const IconData filter_outlined = IconData(0xf070, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_1</i> &#x2014; material icon named "filter 1".
  static const IconData filter_1 = IconData(0xe270, 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(0xe96c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_1</i> &#x2014; material icon named "filter 1" (round).
  static const IconData filter_1_rounded = IconData(0xf74b, 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(0xf05e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_2</i> &#x2014; material icon named "filter 2".
  static const IconData filter_2 = IconData(0xe271, 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(0xe96d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_2</i> &#x2014; material icon named "filter 2" (round).
  static const IconData filter_2_rounded = IconData(0xf74c, 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(0xf05f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_3</i> &#x2014; material icon named "filter 3".
  static const IconData filter_3 = IconData(0xe272, 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(0xe96e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_3</i> &#x2014; material icon named "filter 3" (round).
  static const IconData filter_3_rounded = IconData(0xf74d, 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(0xf060, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_4</i> &#x2014; material icon named "filter 4".
  static const IconData filter_4 = IconData(0xe273, 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(0xe96f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_4</i> &#x2014; material icon named "filter 4" (round).
  static const IconData filter_4_rounded = IconData(0xf74e, 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(0xf061, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_5</i> &#x2014; material icon named "filter 5".
  static const IconData filter_5 = IconData(0xe274, 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(0xe970, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_5</i> &#x2014; material icon named "filter 5" (round).
  static const IconData filter_5_rounded = IconData(0xf74f, 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(0xf062, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_6</i> &#x2014; material icon named "filter 6".
  static const IconData filter_6 = IconData(0xe275, 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(0xe971, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_6</i> &#x2014; material icon named "filter 6" (round).
  static const IconData filter_6_rounded = IconData(0xf750, 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(0xf063, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_7</i> &#x2014; material icon named "filter 7".
  static const IconData filter_7 = IconData(0xe276, 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(0xe972, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_7</i> &#x2014; material icon named "filter 7" (round).
  static const IconData filter_7_rounded = IconData(0xf751, 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(0xf064, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_8</i> &#x2014; material icon named "filter 8".
  static const IconData filter_8 = IconData(0xe277, 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(0xe973, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_8</i> &#x2014; material icon named "filter 8" (round).
  static const IconData filter_8_rounded = IconData(0xf752, 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(0xf065, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_9</i> &#x2014; material icon named "filter 9".
  static const IconData filter_9 = IconData(0xe278, 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(0xe975, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_9</i> &#x2014; material icon named "filter 9" (round).
  static const IconData filter_9_rounded = IconData(0xf754, 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(0xf066, 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(0xe279, 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(0xe974, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_9_plus</i> &#x2014; material icon named "filter 9 plus" (round).
  static const IconData filter_9_plus_rounded = IconData(0xf753, 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(0xf067, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_alt</i> &#x2014; material icon named "filter alt".
  static const IconData filter_alt = IconData(0xe27a, 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(0xe976, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_alt</i> &#x2014; material icon named "filter alt" (round).
  static const IconData filter_alt_rounded = IconData(0xf755, 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(0xf068, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_alt_off</i> &#x2014; material icon named "filter alt off".
  static const IconData filter_alt_off = IconData(0xf0500, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_alt_off</i> &#x2014; material icon named "filter alt off" (sharp).
  static const IconData filter_alt_off_sharp = IconData(0xf040c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_alt_off</i> &#x2014; material icon named "filter alt off" (round).
  static const IconData filter_alt_off_rounded = IconData(0xf0319, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_alt_off</i> &#x2014; material icon named "filter alt off" (outlined).
  static const IconData filter_alt_off_outlined = IconData(0xf05fa, 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(0xe27b, 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(0xe977, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_b_and_w</i> &#x2014; material icon named "filter b and w" (round).
  static const IconData filter_b_and_w_rounded = IconData(0xf756, 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(0xf069, 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(0xe27c, 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(0xe978, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_center_focus</i> &#x2014; material icon named "filter center focus" (round).
  static const IconData filter_center_focus_rounded = IconData(0xf757, 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(
    0xf06a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">filter_drama</i> &#x2014; material icon named "filter drama".
  static const IconData filter_drama = IconData(0xe27d, 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(0xe979, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_drama</i> &#x2014; material icon named "filter drama" (round).
  static const IconData filter_drama_rounded = IconData(0xf758, 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(0xf06b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_frames</i> &#x2014; material icon named "filter frames".
  static const IconData filter_frames = IconData(0xe27e, 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(0xe97a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_frames</i> &#x2014; material icon named "filter frames" (round).
  static const IconData filter_frames_rounded = IconData(0xf759, 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(0xf06c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_hdr</i> &#x2014; material icon named "filter hdr".
  static const IconData filter_hdr = IconData(0xe27f, 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(0xe97b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_hdr</i> &#x2014; material icon named "filter hdr" (round).
  static const IconData filter_hdr_rounded = IconData(0xf75a, 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(0xf06d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_list</i> &#x2014; material icon named "filter list".
  static const IconData filter_list = IconData(0xe280, 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(0xe97c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_list</i> &#x2014; material icon named "filter list" (round).
  static const IconData filter_list_rounded = IconData(0xf75b, 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(0xf06e, 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(0xe281, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_list_off</i> &#x2014; material icon named "filter list off".
  static const IconData filter_list_off = IconData(0xf0501, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">filter_list_off</i> &#x2014; material icon named "filter list off" (sharp).
  static const IconData filter_list_off_sharp = IconData(0xf040d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_list_off</i> &#x2014; material icon named "filter list off" (round).
  static const IconData filter_list_off_rounded = IconData(0xf031a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">filter_list_off</i> &#x2014; material icon named "filter list off" (outlined).
  static const IconData filter_list_off_outlined = IconData(0xf05fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_none</i> &#x2014; material icon named "filter none".
  static const IconData filter_none = IconData(0xe282, 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(0xe97d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_none</i> &#x2014; material icon named "filter none" (round).
  static const IconData filter_none_rounded = IconData(0xf75c, 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(0xf06f, 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(0xe283, 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(0xe97f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_tilt_shift</i> &#x2014; material icon named "filter tilt shift" (round).
  static const IconData filter_tilt_shift_rounded = IconData(0xf75e, 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(0xf071, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">filter_vintage</i> &#x2014; material icon named "filter vintage".
  static const IconData filter_vintage = IconData(0xe284, 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(0xe980, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">filter_vintage</i> &#x2014; material icon named "filter vintage" (round).
  static const IconData filter_vintage_rounded = IconData(0xf75f, 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(0xf072, 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(0xe285, 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(0xe981, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">find_in_page</i> &#x2014; material icon named "find in page" (round).
  static const IconData find_in_page_rounded = IconData(0xf760, 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(0xf073, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">find_replace</i> &#x2014; material icon named "find replace".
  static const IconData find_replace = IconData(0xe286, 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(0xe982, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">find_replace</i> &#x2014; material icon named "find replace" (round).
  static const IconData find_replace_rounded = IconData(0xf761, 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(0xf074, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fingerprint</i> &#x2014; material icon named "fingerprint".
  static const IconData fingerprint = IconData(0xe287, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fingerprint</i> &#x2014; material icon named "fingerprint" (sharp).
  static const IconData fingerprint_sharp = IconData(0xe983, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fingerprint</i> &#x2014; material icon named "fingerprint" (round).
  static const IconData fingerprint_rounded = IconData(0xf762, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fingerprint</i> &#x2014; material icon named "fingerprint" (outlined).
  static const IconData fingerprint_outlined = IconData(0xf075, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fire_extinguisher</i> &#x2014; material icon named "fire extinguisher".
  static const IconData fire_extinguisher = IconData(0xe288, 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(0xe984, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fire_extinguisher</i> &#x2014; material icon named "fire extinguisher" (round).
  static const IconData fire_extinguisher_rounded = IconData(0xf763, 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(0xf076, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fire_hydrant</i> &#x2014; material icon named "fire hydrant".
  static const IconData fire_hydrant = IconData(0xe289, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fire_hydrant_alt</i> &#x2014; material icon named "fire hydrant alt".
  static const IconData fire_hydrant_alt = IconData(0xf07a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fire_hydrant_alt</i> &#x2014; material icon named "fire hydrant alt" (sharp).
  static const IconData fire_hydrant_alt_sharp = IconData(0xf0749, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fire_hydrant_alt</i> &#x2014; material icon named "fire hydrant alt" (round).
  static const IconData fire_hydrant_alt_rounded = IconData(0xf07f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fire_hydrant_alt</i> &#x2014; material icon named "fire hydrant alt" (outlined).
  static const IconData fire_hydrant_alt_outlined = IconData(0xf06f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fire_truck</i> &#x2014; material icon named "fire truck".
  static const IconData fire_truck = IconData(0xf07a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fire_truck</i> &#x2014; material icon named "fire truck" (sharp).
  static const IconData fire_truck_sharp = IconData(0xf074a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fire_truck</i> &#x2014; material icon named "fire truck" (round).
  static const IconData fire_truck_rounded = IconData(0xf07fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fire_truck</i> &#x2014; material icon named "fire truck" (outlined).
  static const IconData fire_truck_outlined = IconData(0xf06f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fireplace</i> &#x2014; material icon named "fireplace".
  static const IconData fireplace = IconData(0xe28a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fireplace</i> &#x2014; material icon named "fireplace" (sharp).
  static const IconData fireplace_sharp = IconData(0xe985, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fireplace</i> &#x2014; material icon named "fireplace" (round).
  static const IconData fireplace_rounded = IconData(0xf764, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fireplace</i> &#x2014; material icon named "fireplace" (outlined).
  static const IconData fireplace_outlined = IconData(0xf077, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">first_page</i> &#x2014; material icon named "first page".
  static const IconData first_page = IconData(
    0xe28b,
    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(
    0xe986,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">first_page</i> &#x2014; material icon named "first page" (round).
  static const IconData first_page_rounded = IconData(
    0xf765,
    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(
    0xf078,
    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(0xe28c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fit_screen</i> &#x2014; material icon named "fit screen" (sharp).
  static const IconData fit_screen_sharp = IconData(0xe987, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fit_screen</i> &#x2014; material icon named "fit screen" (round).
  static const IconData fit_screen_rounded = IconData(0xf766, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fit_screen</i> &#x2014; material icon named "fit screen" (outlined).
  static const IconData fit_screen_outlined = IconData(0xf079, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fitbit</i> &#x2014; material icon named "fitbit".
  static const IconData fitbit = IconData(0xf0502, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fitbit</i> &#x2014; material icon named "fitbit" (sharp).
  static const IconData fitbit_sharp = IconData(0xf040e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fitbit</i> &#x2014; material icon named "fitbit" (round).
  static const IconData fitbit_rounded = IconData(0xf031b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fitbit</i> &#x2014; material icon named "fitbit" (outlined).
  static const IconData fitbit_outlined = IconData(0xf05fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fitness_center</i> &#x2014; material icon named "fitness center".
  static const IconData fitness_center = IconData(0xe28d, 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(0xe988, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fitness_center</i> &#x2014; material icon named "fitness center" (round).
  static const IconData fitness_center_rounded = IconData(0xf767, 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(0xf07a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flag</i> &#x2014; material icon named "flag".
  static const IconData flag = IconData(0xe28e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flag</i> &#x2014; material icon named "flag" (sharp).
  static const IconData flag_sharp = IconData(0xe989, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flag</i> &#x2014; material icon named "flag" (round).
  static const IconData flag_rounded = IconData(0xf768, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flag</i> &#x2014; material icon named "flag" (outlined).
  static const IconData flag_outlined = IconData(0xf07b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flag_circle</i> &#x2014; material icon named "flag circle".
  static const IconData flag_circle = IconData(0xf0503, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flag_circle</i> &#x2014; material icon named "flag circle" (sharp).
  static const IconData flag_circle_sharp = IconData(0xf040f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flag_circle</i> &#x2014; material icon named "flag circle" (round).
  static const IconData flag_circle_rounded = IconData(0xf031c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flag_circle</i> &#x2014; material icon named "flag circle" (outlined).
  static const IconData flag_circle_outlined = IconData(0xf05fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flaky</i> &#x2014; material icon named "flaky".
  static const IconData flaky = IconData(0xe28f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flaky</i> &#x2014; material icon named "flaky" (sharp).
  static const IconData flaky_sharp = IconData(0xe98a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flaky</i> &#x2014; material icon named "flaky" (round).
  static const IconData flaky_rounded = IconData(0xf769, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flaky</i> &#x2014; material icon named "flaky" (outlined).
  static const IconData flaky_outlined = IconData(0xf07c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flare</i> &#x2014; material icon named "flare".
  static const IconData flare = IconData(0xe290, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flare</i> &#x2014; material icon named "flare" (sharp).
  static const IconData flare_sharp = IconData(0xe98b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flare</i> &#x2014; material icon named "flare" (round).
  static const IconData flare_rounded = IconData(0xf76a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flare</i> &#x2014; material icon named "flare" (outlined).
  static const IconData flare_outlined = IconData(0xf07d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flash_auto</i> &#x2014; material icon named "flash auto".
  static const IconData flash_auto = IconData(0xe291, 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(0xe98c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flash_auto</i> &#x2014; material icon named "flash auto" (round).
  static const IconData flash_auto_rounded = IconData(0xf76b, 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(0xf07e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flash_off</i> &#x2014; material icon named "flash off".
  static const IconData flash_off = IconData(0xe292, 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(0xe98d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flash_off</i> &#x2014; material icon named "flash off" (round).
  static const IconData flash_off_rounded = IconData(0xf76c, 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(0xf07f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flash_on</i> &#x2014; material icon named "flash on".
  static const IconData flash_on = IconData(0xe293, 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(0xe98e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flash_on</i> &#x2014; material icon named "flash on" (round).
  static const IconData flash_on_rounded = IconData(0xf76d, 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(0xf080, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flashlight_off</i> &#x2014; material icon named "flashlight off".
  static const IconData flashlight_off = IconData(0xe294, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flashlight_off</i> &#x2014; material icon named "flashlight off" (sharp).
  static const IconData flashlight_off_sharp = IconData(0xe98f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flashlight_off</i> &#x2014; material icon named "flashlight off" (round).
  static const IconData flashlight_off_rounded = IconData(0xf76e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flashlight_off</i> &#x2014; material icon named "flashlight off" (outlined).
  static const IconData flashlight_off_outlined = IconData(0xf081, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flashlight_on</i> &#x2014; material icon named "flashlight on".
  static const IconData flashlight_on = IconData(0xe295, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flashlight_on</i> &#x2014; material icon named "flashlight on" (sharp).
  static const IconData flashlight_on_sharp = IconData(0xe990, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flashlight_on</i> &#x2014; material icon named "flashlight on" (round).
  static const IconData flashlight_on_rounded = IconData(0xf76f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flashlight_on</i> &#x2014; material icon named "flashlight on" (outlined).
  static const IconData flashlight_on_outlined = IconData(0xf082, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flatware</i> &#x2014; material icon named "flatware".
  static const IconData flatware = IconData(0xe296, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flatware</i> &#x2014; material icon named "flatware" (sharp).
  static const IconData flatware_sharp = IconData(0xe991, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flatware</i> &#x2014; material icon named "flatware" (round).
  static const IconData flatware_rounded = IconData(0xf770, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flatware</i> &#x2014; material icon named "flatware" (outlined).
  static const IconData flatware_outlined = IconData(0xf083, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flight</i> &#x2014; material icon named "flight".
  static const IconData flight = IconData(0xe297, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flight</i> &#x2014; material icon named "flight" (sharp).
  static const IconData flight_sharp = IconData(0xe993, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flight</i> &#x2014; material icon named "flight" (round).
  static const IconData flight_rounded = IconData(0xf772, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flight</i> &#x2014; material icon named "flight" (outlined).
  static const IconData flight_outlined = IconData(0xf085, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flight_class</i> &#x2014; material icon named "flight class".
  static const IconData flight_class = IconData(0xf0504, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flight_class</i> &#x2014; material icon named "flight class" (sharp).
  static const IconData flight_class_sharp = IconData(0xf0410, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flight_class</i> &#x2014; material icon named "flight class" (round).
  static const IconData flight_class_rounded = IconData(0xf031d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flight_class</i> &#x2014; material icon named "flight class" (outlined).
  static const IconData flight_class_outlined = IconData(0xf05fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flight_land</i> &#x2014; material icon named "flight land".
  static const IconData flight_land = IconData(
    0xe298,
    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(
    0xe992,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">flight_land</i> &#x2014; material icon named "flight land" (round).
  static const IconData flight_land_rounded = IconData(
    0xf771,
    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(
    0xf084,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">flight_takeoff</i> &#x2014; material icon named "flight takeoff".
  static const IconData flight_takeoff = IconData(
    0xe299,
    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(
    0xe994,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">flight_takeoff</i> &#x2014; material icon named "flight takeoff" (round).
  static const IconData flight_takeoff_rounded = IconData(
    0xf773,
    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(
    0xf086,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">flip</i> &#x2014; material icon named "flip".
  static const IconData flip = IconData(0xe29a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flip</i> &#x2014; material icon named "flip" (sharp).
  static const IconData flip_sharp = IconData(0xe997, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flip</i> &#x2014; material icon named "flip" (round).
  static const IconData flip_rounded = IconData(0xf776, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flip</i> &#x2014; material icon named "flip" (outlined).
  static const IconData flip_outlined = IconData(0xf089, 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(0xe29b, 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(0xe995, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flip_camera_android</i> &#x2014; material icon named "flip camera android" (round).
  static const IconData flip_camera_android_rounded = IconData(0xf774, 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(
    0xf087,
    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(0xe29c, 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(0xe996, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flip_camera_ios</i> &#x2014; material icon named "flip camera ios" (round).
  static const IconData flip_camera_ios_rounded = IconData(0xf775, 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(0xf088, 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(0xe29d, 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(0xe998, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flip_to_back</i> &#x2014; material icon named "flip to back" (round).
  static const IconData flip_to_back_rounded = IconData(0xf777, 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(0xf08a, 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(0xe29e, 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(0xe999, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flip_to_front</i> &#x2014; material icon named "flip to front" (round).
  static const IconData flip_to_front_rounded = IconData(0xf778, 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(0xf08b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flood</i> &#x2014; material icon named "flood".
  static const IconData flood = IconData(0xf07a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flood</i> &#x2014; material icon named "flood" (sharp).
  static const IconData flood_sharp = IconData(0xf074b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flood</i> &#x2014; material icon named "flood" (round).
  static const IconData flood_rounded = IconData(0xf07fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flood</i> &#x2014; material icon named "flood" (outlined).
  static const IconData flood_outlined = IconData(0xf06f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flourescent</i> &#x2014; material icon named "flourescent".
  static const IconData flourescent = IconData(0xf0865, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flourescent</i> &#x2014; material icon named "flourescent" (sharp).
  static const IconData flourescent_sharp = IconData(0xf0840, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flourescent</i> &#x2014; material icon named "flourescent" (round).
  static const IconData flourescent_rounded = IconData(0xf0889, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flourescent</i> &#x2014; material icon named "flourescent" (outlined).
  static const IconData flourescent_outlined = IconData(0xf08a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fluorescent</i> &#x2014; material icon named "fluorescent".
  static const IconData fluorescent = IconData(0xf0865, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fluorescent</i> &#x2014; material icon named "fluorescent" (sharp).
  static const IconData fluorescent_sharp = IconData(0xf0840, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fluorescent</i> &#x2014; material icon named "fluorescent" (round).
  static const IconData fluorescent_rounded = IconData(0xf0889, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fluorescent</i> &#x2014; material icon named "fluorescent" (outlined).
  static const IconData fluorescent_outlined = IconData(0xf08a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">flutter_dash</i> &#x2014; material icon named "flutter dash".
  static const IconData flutter_dash = IconData(0xe2a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">flutter_dash</i> &#x2014; material icon named "flutter dash" (sharp).
  static const IconData flutter_dash_sharp = IconData(0xe99b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">flutter_dash</i> &#x2014; material icon named "flutter dash" (round).
  static const IconData flutter_dash_rounded = IconData(0xf77a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">flutter_dash</i> &#x2014; material icon named "flutter dash" (outlined).
  static const IconData flutter_dash_outlined = IconData(0xf08d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fmd_bad</i> &#x2014; material icon named "fmd bad".
  static const IconData fmd_bad = IconData(0xe2a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fmd_bad</i> &#x2014; material icon named "fmd bad" (sharp).
  static const IconData fmd_bad_sharp = IconData(0xe99c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fmd_bad</i> &#x2014; material icon named "fmd bad" (round).
  static const IconData fmd_bad_rounded = IconData(0xf77b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fmd_bad</i> &#x2014; material icon named "fmd bad" (outlined).
  static const IconData fmd_bad_outlined = IconData(0xf08e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fmd_good</i> &#x2014; material icon named "fmd good".
  static const IconData fmd_good = IconData(0xe2a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fmd_good</i> &#x2014; material icon named "fmd good" (sharp).
  static const IconData fmd_good_sharp = IconData(0xe99d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fmd_good</i> &#x2014; material icon named "fmd good" (round).
  static const IconData fmd_good_rounded = IconData(0xf77c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fmd_good</i> &#x2014; material icon named "fmd good" (outlined).
  static const IconData fmd_good_outlined = IconData(0xf08f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">foggy</i> &#x2014; material icon named "foggy".
  static const IconData foggy = IconData(0xf0505, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">folder</i> &#x2014; material icon named "folder".
  static const IconData folder = IconData(0xe2a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">folder</i> &#x2014; material icon named "folder" (sharp).
  static const IconData folder_sharp = IconData(0xe9a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">folder</i> &#x2014; material icon named "folder" (round).
  static const IconData folder_rounded = IconData(0xf77e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">folder</i> &#x2014; material icon named "folder" (outlined).
  static const IconData folder_outlined = IconData(0xf091, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">folder_copy</i> &#x2014; material icon named "folder copy".
  static const IconData folder_copy = IconData(0xf0506, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">folder_copy</i> &#x2014; material icon named "folder copy" (sharp).
  static const IconData folder_copy_sharp = IconData(0xf0411, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">folder_copy</i> &#x2014; material icon named "folder copy" (round).
  static const IconData folder_copy_rounded = IconData(0xf031e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">folder_copy</i> &#x2014; material icon named "folder copy" (outlined).
  static const IconData folder_copy_outlined = IconData(0xf05ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">folder_delete</i> &#x2014; material icon named "folder delete".
  static const IconData folder_delete = IconData(0xf0507, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">folder_delete</i> &#x2014; material icon named "folder delete" (sharp).
  static const IconData folder_delete_sharp = IconData(0xf0412, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">folder_delete</i> &#x2014; material icon named "folder delete" (round).
  static const IconData folder_delete_rounded = IconData(0xf031f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">folder_delete</i> &#x2014; material icon named "folder delete" (outlined).
  static const IconData folder_delete_outlined = IconData(0xf0600, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">folder_off</i> &#x2014; material icon named "folder off".
  static const IconData folder_off = IconData(0xf0508, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">folder_off</i> &#x2014; material icon named "folder off" (sharp).
  static const IconData folder_off_sharp = IconData(0xf0413, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">folder_off</i> &#x2014; material icon named "folder off" (round).
  static const IconData folder_off_rounded = IconData(0xf0320, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">folder_off</i> &#x2014; material icon named "folder off" (outlined).
  static const IconData folder_off_outlined = IconData(0xf0601, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">folder_open</i> &#x2014; material icon named "folder open".
  static const IconData folder_open = IconData(0xe2a4, 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(0xe99e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">folder_open</i> &#x2014; material icon named "folder open" (round).
  static const IconData folder_open_rounded = IconData(0xf77d, 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(0xf090, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">folder_shared</i> &#x2014; material icon named "folder shared".
  static const IconData folder_shared = IconData(0xe2a5, 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(0xe99f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">folder_shared</i> &#x2014; material icon named "folder shared" (round).
  static const IconData folder_shared_rounded = IconData(0xf77f, 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(0xf092, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">folder_special</i> &#x2014; material icon named "folder special".
  static const IconData folder_special = IconData(0xe2a6, 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(0xe9a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">folder_special</i> &#x2014; material icon named "folder special" (round).
  static const IconData folder_special_rounded = IconData(0xf780, 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(0xf093, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">folder_zip</i> &#x2014; material icon named "folder zip".
  static const IconData folder_zip = IconData(0xf0509, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">folder_zip</i> &#x2014; material icon named "folder zip" (sharp).
  static const IconData folder_zip_sharp = IconData(0xf0414, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">folder_zip</i> &#x2014; material icon named "folder zip" (round).
  static const IconData folder_zip_rounded = IconData(0xf0321, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">folder_zip</i> &#x2014; material icon named "folder zip" (outlined).
  static const IconData folder_zip_outlined = IconData(0xf0602, 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(0xe2a7, 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(0xe9a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">follow_the_signs</i> &#x2014; material icon named "follow the signs" (round).
  static const IconData follow_the_signs_rounded = IconData(0xf781, 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(0xf094, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">font_download</i> &#x2014; material icon named "font download".
  static const IconData font_download = IconData(0xe2a8, 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(0xe9a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">font_download</i> &#x2014; material icon named "font download" (round).
  static const IconData font_download_rounded = IconData(0xf783, 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(0xf096, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">font_download_off</i> &#x2014; material icon named "font download off".
  static const IconData font_download_off = IconData(0xe2a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">font_download_off</i> &#x2014; material icon named "font download off" (sharp).
  static const IconData font_download_off_sharp = IconData(0xe9a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">font_download_off</i> &#x2014; material icon named "font download off" (round).
  static const IconData font_download_off_rounded = IconData(0xf782, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">font_download_off</i> &#x2014; material icon named "font download off" (outlined).
  static const IconData font_download_off_outlined = IconData(0xf095, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">food_bank</i> &#x2014; material icon named "food bank".
  static const IconData food_bank = IconData(0xe2aa, 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(0xe9a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">food_bank</i> &#x2014; material icon named "food bank" (round).
  static const IconData food_bank_rounded = IconData(0xf784, 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(0xf097, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">forest</i> &#x2014; material icon named "forest".
  static const IconData forest = IconData(0xf050a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">forest</i> &#x2014; material icon named "forest" (sharp).
  static const IconData forest_sharp = IconData(0xf0415, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">forest</i> &#x2014; material icon named "forest" (round).
  static const IconData forest_rounded = IconData(0xf0322, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">forest</i> &#x2014; material icon named "forest" (outlined).
  static const IconData forest_outlined = IconData(0xf0603, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fork_left</i> &#x2014; material icon named "fork left".
  static const IconData fork_left = IconData(0xf050b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fork_left</i> &#x2014; material icon named "fork left" (sharp).
  static const IconData fork_left_sharp = IconData(0xf0416, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fork_left</i> &#x2014; material icon named "fork left" (round).
  static const IconData fork_left_rounded = IconData(0xf0323, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fork_left</i> &#x2014; material icon named "fork left" (outlined).
  static const IconData fork_left_outlined = IconData(0xf0604, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fork_right</i> &#x2014; material icon named "fork right".
  static const IconData fork_right = IconData(0xf050c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fork_right</i> &#x2014; material icon named "fork right" (sharp).
  static const IconData fork_right_sharp = IconData(0xf0417, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fork_right</i> &#x2014; material icon named "fork right" (round).
  static const IconData fork_right_rounded = IconData(0xf0324, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fork_right</i> &#x2014; material icon named "fork right" (outlined).
  static const IconData fork_right_outlined = IconData(0xf0605, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">forklift</i> &#x2014; material icon named "forklift".
  static const IconData forklift = IconData(0xf0866, 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(0xe2ab, 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(0xe9a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_align_center</i> &#x2014; material icon named "format align center" (round).
  static const IconData format_align_center_rounded = IconData(0xf785, 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(
    0xf098,
    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(0xe2ac, 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(0xe9a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_align_justify</i> &#x2014; material icon named "format align justify" (round).
  static const IconData format_align_justify_rounded = IconData(
    0xf786,
    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(
    0xf099,
    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(0xe2ad, 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(0xe9a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_align_left</i> &#x2014; material icon named "format align left" (round).
  static const IconData format_align_left_rounded = IconData(0xf787, 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(0xf09a, 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(0xe2ae, 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(0xe9a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_align_right</i> &#x2014; material icon named "format align right" (round).
  static const IconData format_align_right_rounded = IconData(0xf788, 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(0xf09b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_bold</i> &#x2014; material icon named "format bold".
  static const IconData format_bold = IconData(0xe2af, 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(0xe9aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_bold</i> &#x2014; material icon named "format bold" (round).
  static const IconData format_bold_rounded = IconData(0xf789, 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(0xf09c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_clear</i> &#x2014; material icon named "format clear".
  static const IconData format_clear = IconData(0xe2b0, 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(0xe9ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_clear</i> &#x2014; material icon named "format clear" (round).
  static const IconData format_clear_rounded = IconData(0xf78a, 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(0xf09d, 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(0xe2b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_color_fill</i> &#x2014; material icon named "format color fill" (sharp).
  static const IconData format_color_fill_sharp = IconData(0xe9ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_color_fill</i> &#x2014; material icon named "format color fill" (round).
  static const IconData format_color_fill_rounded = IconData(0xf78b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_color_fill</i> &#x2014; material icon named "format color fill" (outlined).
  static const IconData format_color_fill_outlined = IconData(0xf09e, 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(0xe2b2, 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(0xe9ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_color_reset</i> &#x2014; material icon named "format color reset" (round).
  static const IconData format_color_reset_rounded = IconData(0xf78c, 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(0xf09f, 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(0xe2b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_color_text</i> &#x2014; material icon named "format color text" (sharp).
  static const IconData format_color_text_sharp = IconData(0xe9ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_color_text</i> &#x2014; material icon named "format color text" (round).
  static const IconData format_color_text_rounded = IconData(0xf78d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_color_text</i> &#x2014; material icon named "format color text" (outlined).
  static const IconData format_color_text_outlined = IconData(0xf0a0, 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(
    0xe2b4,
    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(
    0xe9af,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">format_indent_decrease</i> &#x2014; material icon named "format indent decrease" (round).
  static const IconData format_indent_decrease_rounded = IconData(
    0xf78e,
    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(
    0xf0a1,
    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(
    0xe2b5,
    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(
    0xe9b0,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">format_indent_increase</i> &#x2014; material icon named "format indent increase" (round).
  static const IconData format_indent_increase_rounded = IconData(
    0xf78f,
    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(
    0xf0a2,
    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(0xe2b6, 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(0xe9b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_italic</i> &#x2014; material icon named "format italic" (round).
  static const IconData format_italic_rounded = IconData(0xf790, 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(0xf0a3, 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(0xe2b7, 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(0xe9b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_line_spacing</i> &#x2014; material icon named "format line spacing" (round).
  static const IconData format_line_spacing_rounded = IconData(0xf791, 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(
    0xf0a4,
    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(
    0xe2b8,
    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(
    0xe9b3,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">format_list_bulleted</i> &#x2014; material icon named "format list bulleted" (round).
  static const IconData format_list_bulleted_rounded = IconData(
    0xf792,
    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(
    0xf0a5,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">format_list_bulleted_add</i> &#x2014; material icon named "format list bulleted add".
  static const IconData format_list_bulleted_add = IconData(0xf0867, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_list_numbered</i> &#x2014; material icon named "format list numbered".
  static const IconData format_list_numbered = IconData(0xe2b9, 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(0xe9b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_list_numbered</i> &#x2014; material icon named "format list numbered" (round).
  static const IconData format_list_numbered_rounded = IconData(
    0xf793,
    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(
    0xf0a6,
    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(0xe2ba, 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(
    0xe9b4,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">format_list_numbered_rtl</i> &#x2014; material icon named "format list numbered rtl" (round).
  static const IconData format_list_numbered_rtl_rounded = IconData(
    0xf794,
    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(
    0xf0a7,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">format_overline</i> &#x2014; material icon named "format overline".
  static const IconData format_overline = IconData(0xf050d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">format_overline</i> &#x2014; material icon named "format overline" (sharp).
  static const IconData format_overline_sharp = IconData(0xf0418, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_overline</i> &#x2014; material icon named "format overline" (round).
  static const IconData format_overline_rounded = IconData(0xf0325, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">format_overline</i> &#x2014; material icon named "format overline" (outlined).
  static const IconData format_overline_outlined = IconData(0xf0606, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_paint</i> &#x2014; material icon named "format paint".
  static const IconData format_paint = IconData(0xe2bb, 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(0xe9b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_paint</i> &#x2014; material icon named "format paint" (round).
  static const IconData format_paint_rounded = IconData(0xf795, 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(0xf0a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_quote</i> &#x2014; material icon named "format quote".
  static const IconData format_quote = IconData(0xe2bc, 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(0xe9b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_quote</i> &#x2014; material icon named "format quote" (round).
  static const IconData format_quote_rounded = IconData(0xf796, 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(0xf0a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_shapes</i> &#x2014; material icon named "format shapes".
  static const IconData format_shapes = IconData(0xe2bd, 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(0xe9b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_shapes</i> &#x2014; material icon named "format shapes" (round).
  static const IconData format_shapes_rounded = IconData(0xf797, 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(0xf0aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_size</i> &#x2014; material icon named "format size".
  static const IconData format_size = IconData(0xe2be, 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(0xe9b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_size</i> &#x2014; material icon named "format size" (round).
  static const IconData format_size_rounded = IconData(0xf798, 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(0xf0ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_strikethrough</i> &#x2014; material icon named "format strikethrough".
  static const IconData format_strikethrough = IconData(0xe2bf, 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(0xe9ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_strikethrough</i> &#x2014; material icon named "format strikethrough" (round).
  static const IconData format_strikethrough_rounded = IconData(
    0xf799,
    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(
    0xf0ac,
    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(0xe2c0, 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(
    0xe9bb,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">format_textdirection_l_to_r</i> &#x2014; material icon named "format textdirection l to r" (round).
  static const IconData format_textdirection_l_to_r_rounded = IconData(
    0xf79a,
    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(
    0xf0ad,
    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(0xe2c1, 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(
    0xe9bc,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">format_textdirection_r_to_l</i> &#x2014; material icon named "format textdirection r to l" (round).
  static const IconData format_textdirection_r_to_l_rounded = IconData(
    0xf79b,
    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(
    0xf0ae,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">format_underline</i> &#x2014; material icon named "format underline".
  static const IconData format_underline = IconData(0xe2c2, 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(0xe9bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_underline</i> &#x2014; material icon named "format underline" (round).
  static const IconData format_underline_rounded = IconData(0xf79c, 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(0xf0af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">format_underlined</i> &#x2014; material icon named "format underlined".
  static const IconData format_underlined = IconData(0xe2c2, 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(0xe9bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">format_underlined</i> &#x2014; material icon named "format underlined" (round).
  static const IconData format_underlined_rounded = IconData(0xf79c, 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(0xf0af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fort</i> &#x2014; material icon named "fort".
  static const IconData fort = IconData(0xf050e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fort</i> &#x2014; material icon named "fort" (sharp).
  static const IconData fort_sharp = IconData(0xf0419, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fort</i> &#x2014; material icon named "fort" (round).
  static const IconData fort_rounded = IconData(0xf0326, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fort</i> &#x2014; material icon named "fort" (outlined).
  static const IconData fort_outlined = IconData(0xf0607, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">forum</i> &#x2014; material icon named "forum".
  static const IconData forum = IconData(0xe2c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">forum</i> &#x2014; material icon named "forum" (sharp).
  static const IconData forum_sharp = IconData(0xe9be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">forum</i> &#x2014; material icon named "forum" (round).
  static const IconData forum_rounded = IconData(0xf79d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">forum</i> &#x2014; material icon named "forum" (outlined).
  static const IconData forum_outlined = IconData(0xf0b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">forward</i> &#x2014; material icon named "forward".
  static const IconData forward = IconData(
    0xe2c4,
    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(
    0xe9c2,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">forward</i> &#x2014; material icon named "forward" (round).
  static const IconData forward_rounded = IconData(
    0xf7a1,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-outlined md-36">forward</i> &#x2014; material icon named "forward" (outlined).
  static const IconData forward_outlined = IconData(
    0xf0b4,
    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(0xe2c5, 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(0xe9bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">forward_10</i> &#x2014; material icon named "forward 10" (round).
  static const IconData forward_10_rounded = IconData(0xf79e, 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(0xf0b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">forward_30</i> &#x2014; material icon named "forward 30".
  static const IconData forward_30 = IconData(0xe2c6, 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(0xe9c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">forward_30</i> &#x2014; material icon named "forward 30" (round).
  static const IconData forward_30_rounded = IconData(0xf79f, 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(0xf0b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">forward_5</i> &#x2014; material icon named "forward 5".
  static const IconData forward_5 = IconData(0xe2c7, 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(0xe9c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">forward_5</i> &#x2014; material icon named "forward 5" (round).
  static const IconData forward_5_rounded = IconData(0xf7a0, 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(0xf0b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">forward_to_inbox</i> &#x2014; material icon named "forward to inbox".
  static const IconData forward_to_inbox = IconData(0xe2c8, 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(0xe9c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">forward_to_inbox</i> &#x2014; material icon named "forward to inbox" (round).
  static const IconData forward_to_inbox_rounded = IconData(0xf7a2, 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(0xf0b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">foundation</i> &#x2014; material icon named "foundation".
  static const IconData foundation = IconData(0xe2c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">foundation</i> &#x2014; material icon named "foundation" (sharp).
  static const IconData foundation_sharp = IconData(0xe9c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">foundation</i> &#x2014; material icon named "foundation" (round).
  static const IconData foundation_rounded = IconData(0xf7a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">foundation</i> &#x2014; material icon named "foundation" (outlined).
  static const IconData foundation_outlined = IconData(0xf0b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">free_breakfast</i> &#x2014; material icon named "free breakfast".
  static const IconData free_breakfast = IconData(0xe2ca, 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(0xe9c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">free_breakfast</i> &#x2014; material icon named "free breakfast" (round).
  static const IconData free_breakfast_rounded = IconData(0xf7a4, 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(0xf0b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">free_cancellation</i> &#x2014; material icon named "free cancellation".
  static const IconData free_cancellation = IconData(0xf050f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">free_cancellation</i> &#x2014; material icon named "free cancellation" (sharp).
  static const IconData free_cancellation_sharp = IconData(0xf041a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">free_cancellation</i> &#x2014; material icon named "free cancellation" (round).
  static const IconData free_cancellation_rounded = IconData(0xf0327, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">free_cancellation</i> &#x2014; material icon named "free cancellation" (outlined).
  static const IconData free_cancellation_outlined = IconData(0xf0608, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">front_hand</i> &#x2014; material icon named "front hand".
  static const IconData front_hand = IconData(0xf0510, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">front_hand</i> &#x2014; material icon named "front hand" (sharp).
  static const IconData front_hand_sharp = IconData(0xf041b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">front_hand</i> &#x2014; material icon named "front hand" (round).
  static const IconData front_hand_rounded = IconData(0xf0328, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">front_hand</i> &#x2014; material icon named "front hand" (outlined).
  static const IconData front_hand_outlined = IconData(0xf0609, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">front_loader</i> &#x2014; material icon named "front loader".
  static const IconData front_loader = IconData(0xf0868, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fullscreen</i> &#x2014; material icon named "fullscreen".
  static const IconData fullscreen = IconData(0xe2cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">fullscreen</i> &#x2014; material icon named "fullscreen" (sharp).
  static const IconData fullscreen_sharp = IconData(0xe9c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fullscreen</i> &#x2014; material icon named "fullscreen" (round).
  static const IconData fullscreen_rounded = IconData(0xf7a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">fullscreen</i> &#x2014; material icon named "fullscreen" (outlined).
  static const IconData fullscreen_outlined = IconData(0xf0b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">fullscreen_exit</i> &#x2014; material icon named "fullscreen exit".
  static const IconData fullscreen_exit = IconData(0xe2cc, 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(0xe9c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">fullscreen_exit</i> &#x2014; material icon named "fullscreen exit" (round).
  static const IconData fullscreen_exit_rounded = IconData(0xf7a5, 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(0xf0b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">functions</i> &#x2014; material icon named "functions".
  static const IconData functions = IconData(
    0xe2cd,
    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(
    0xe9c8,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">functions</i> &#x2014; material icon named "functions" (round).
  static const IconData functions_rounded = IconData(
    0xf7a7,
    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(
    0xf0ba,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">g_mobiledata</i> &#x2014; material icon named "g mobiledata".
  static const IconData g_mobiledata = IconData(0xe2ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">g_mobiledata</i> &#x2014; material icon named "g mobiledata" (sharp).
  static const IconData g_mobiledata_sharp = IconData(0xe9c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">g_mobiledata</i> &#x2014; material icon named "g mobiledata" (round).
  static const IconData g_mobiledata_rounded = IconData(0xf7a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">g_mobiledata</i> &#x2014; material icon named "g mobiledata" (outlined).
  static const IconData g_mobiledata_outlined = IconData(0xf0bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">g_translate</i> &#x2014; material icon named "g translate".
  static const IconData g_translate = IconData(0xe2cf, 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(0xe9ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">g_translate</i> &#x2014; material icon named "g translate" (round).
  static const IconData g_translate_rounded = IconData(0xf7a9, 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(0xf0bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gamepad</i> &#x2014; material icon named "gamepad".
  static const IconData gamepad = IconData(0xe2d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gamepad</i> &#x2014; material icon named "gamepad" (sharp).
  static const IconData gamepad_sharp = IconData(0xe9cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gamepad</i> &#x2014; material icon named "gamepad" (round).
  static const IconData gamepad_rounded = IconData(0xf7aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gamepad</i> &#x2014; material icon named "gamepad" (outlined).
  static const IconData gamepad_outlined = IconData(0xf0bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">games</i> &#x2014; material icon named "games".
  static const IconData games = IconData(0xe2d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">games</i> &#x2014; material icon named "games" (sharp).
  static const IconData games_sharp = IconData(0xe9cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">games</i> &#x2014; material icon named "games" (round).
  static const IconData games_rounded = IconData(0xf7ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">games</i> &#x2014; material icon named "games" (outlined).
  static const IconData games_outlined = IconData(0xf0be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">garage</i> &#x2014; material icon named "garage".
  static const IconData garage = IconData(0xe2d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">garage</i> &#x2014; material icon named "garage" (sharp).
  static const IconData garage_sharp = IconData(0xe9cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">garage</i> &#x2014; material icon named "garage" (round).
  static const IconData garage_rounded = IconData(0xf7ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">garage</i> &#x2014; material icon named "garage" (outlined).
  static const IconData garage_outlined = IconData(0xf0bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gas_meter</i> &#x2014; material icon named "gas meter".
  static const IconData gas_meter = IconData(0xf07a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gas_meter</i> &#x2014; material icon named "gas meter" (sharp).
  static const IconData gas_meter_sharp = IconData(0xf074c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gas_meter</i> &#x2014; material icon named "gas meter" (round).
  static const IconData gas_meter_rounded = IconData(0xf07fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gas_meter</i> &#x2014; material icon named "gas meter" (outlined).
  static const IconData gas_meter_outlined = IconData(0xf06f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gavel</i> &#x2014; material icon named "gavel".
  static const IconData gavel = IconData(0xe2d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gavel</i> &#x2014; material icon named "gavel" (sharp).
  static const IconData gavel_sharp = IconData(0xe9ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gavel</i> &#x2014; material icon named "gavel" (round).
  static const IconData gavel_rounded = IconData(0xf7ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gavel</i> &#x2014; material icon named "gavel" (outlined).
  static const IconData gavel_outlined = IconData(0xf0c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">generating_tokens</i> &#x2014; material icon named "generating tokens".
  static const IconData generating_tokens = IconData(0xf0511, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">generating_tokens</i> &#x2014; material icon named "generating tokens" (sharp).
  static const IconData generating_tokens_sharp = IconData(0xf041c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">generating_tokens</i> &#x2014; material icon named "generating tokens" (round).
  static const IconData generating_tokens_rounded = IconData(0xf0329, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">generating_tokens</i> &#x2014; material icon named "generating tokens" (outlined).
  static const IconData generating_tokens_outlined = IconData(0xf060a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gesture</i> &#x2014; material icon named "gesture".
  static const IconData gesture = IconData(0xe2d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gesture</i> &#x2014; material icon named "gesture" (sharp).
  static const IconData gesture_sharp = IconData(0xe9cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gesture</i> &#x2014; material icon named "gesture" (round).
  static const IconData gesture_rounded = IconData(0xf7ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gesture</i> &#x2014; material icon named "gesture" (outlined).
  static const IconData gesture_outlined = IconData(0xf0c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">get_app</i> &#x2014; material icon named "get app".
  static const IconData get_app = IconData(0xe2d5, 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(0xe9d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">get_app</i> &#x2014; material icon named "get app" (round).
  static const IconData get_app_rounded = IconData(0xf7af, 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(0xf0c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gif</i> &#x2014; material icon named "gif".
  static const IconData gif = IconData(0xe2d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gif</i> &#x2014; material icon named "gif" (sharp).
  static const IconData gif_sharp = IconData(0xe9d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gif</i> &#x2014; material icon named "gif" (round).
  static const IconData gif_rounded = IconData(0xf7b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gif</i> &#x2014; material icon named "gif" (outlined).
  static const IconData gif_outlined = IconData(0xf0c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gif_box</i> &#x2014; material icon named "gif box".
  static const IconData gif_box = IconData(0xf0512, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gif_box</i> &#x2014; material icon named "gif box" (sharp).
  static const IconData gif_box_sharp = IconData(0xf041d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gif_box</i> &#x2014; material icon named "gif box" (round).
  static const IconData gif_box_rounded = IconData(0xf032a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gif_box</i> &#x2014; material icon named "gif box" (outlined).
  static const IconData gif_box_outlined = IconData(0xf060b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">girl</i> &#x2014; material icon named "girl".
  static const IconData girl = IconData(0xf0513, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">girl</i> &#x2014; material icon named "girl" (sharp).
  static const IconData girl_sharp = IconData(0xf041e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">girl</i> &#x2014; material icon named "girl" (round).
  static const IconData girl_rounded = IconData(0xf032b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">girl</i> &#x2014; material icon named "girl" (outlined).
  static const IconData girl_outlined = IconData(0xf060c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gite</i> &#x2014; material icon named "gite".
  static const IconData gite = IconData(0xe2d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gite</i> &#x2014; material icon named "gite" (sharp).
  static const IconData gite_sharp = IconData(0xe9d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gite</i> &#x2014; material icon named "gite" (round).
  static const IconData gite_rounded = IconData(0xf7b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gite</i> &#x2014; material icon named "gite" (outlined).
  static const IconData gite_outlined = IconData(0xf0c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">golf_course</i> &#x2014; material icon named "golf course".
  static const IconData golf_course = IconData(0xe2d8, 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(0xe9d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">golf_course</i> &#x2014; material icon named "golf course" (round).
  static const IconData golf_course_rounded = IconData(0xf7b2, 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(0xf0c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gpp_bad</i> &#x2014; material icon named "gpp bad".
  static const IconData gpp_bad = IconData(0xe2d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gpp_bad</i> &#x2014; material icon named "gpp bad" (sharp).
  static const IconData gpp_bad_sharp = IconData(0xe9d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gpp_bad</i> &#x2014; material icon named "gpp bad" (round).
  static const IconData gpp_bad_rounded = IconData(0xf7b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gpp_bad</i> &#x2014; material icon named "gpp bad" (outlined).
  static const IconData gpp_bad_outlined = IconData(0xf0c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gpp_good</i> &#x2014; material icon named "gpp good".
  static const IconData gpp_good = IconData(0xe2da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gpp_good</i> &#x2014; material icon named "gpp good" (sharp).
  static const IconData gpp_good_sharp = IconData(0xe9d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gpp_good</i> &#x2014; material icon named "gpp good" (round).
  static const IconData gpp_good_rounded = IconData(0xf7b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gpp_good</i> &#x2014; material icon named "gpp good" (outlined).
  static const IconData gpp_good_outlined = IconData(0xf0c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gpp_maybe</i> &#x2014; material icon named "gpp maybe".
  static const IconData gpp_maybe = IconData(0xe2db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gpp_maybe</i> &#x2014; material icon named "gpp maybe" (sharp).
  static const IconData gpp_maybe_sharp = IconData(0xe9d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gpp_maybe</i> &#x2014; material icon named "gpp maybe" (round).
  static const IconData gpp_maybe_rounded = IconData(0xf7b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gpp_maybe</i> &#x2014; material icon named "gpp maybe" (outlined).
  static const IconData gpp_maybe_outlined = IconData(0xf0c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gps_fixed</i> &#x2014; material icon named "gps fixed".
  static const IconData gps_fixed = IconData(0xe2dc, 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(0xe9d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gps_fixed</i> &#x2014; material icon named "gps fixed" (round).
  static const IconData gps_fixed_rounded = IconData(0xf7b6, 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(0xf0c9, 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(0xe2dd, 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(0xe9d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gps_not_fixed</i> &#x2014; material icon named "gps not fixed" (round).
  static const IconData gps_not_fixed_rounded = IconData(0xf7b7, 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(0xf0ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gps_off</i> &#x2014; material icon named "gps off".
  static const IconData gps_off = IconData(0xe2de, 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(0xe9d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gps_off</i> &#x2014; material icon named "gps off" (round).
  static const IconData gps_off_rounded = IconData(0xf7b8, 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(0xf0cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">grade</i> &#x2014; material icon named "grade".
  static const IconData grade = IconData(0xe2df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">grade</i> &#x2014; material icon named "grade" (sharp).
  static const IconData grade_sharp = IconData(0xe9da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">grade</i> &#x2014; material icon named "grade" (round).
  static const IconData grade_rounded = IconData(0xf7b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">grade</i> &#x2014; material icon named "grade" (outlined).
  static const IconData grade_outlined = IconData(0xf0cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">gradient</i> &#x2014; material icon named "gradient".
  static const IconData gradient = IconData(0xe2e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">gradient</i> &#x2014; material icon named "gradient" (sharp).
  static const IconData gradient_sharp = IconData(0xe9db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">gradient</i> &#x2014; material icon named "gradient" (round).
  static const IconData gradient_rounded = IconData(0xf7ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">gradient</i> &#x2014; material icon named "gradient" (outlined).
  static const IconData gradient_outlined = IconData(0xf0cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">grading</i> &#x2014; material icon named "grading".
  static const IconData grading = IconData(0xe2e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">grading</i> &#x2014; material icon named "grading" (sharp).
  static const IconData grading_sharp = IconData(0xe9dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">grading</i> &#x2014; material icon named "grading" (round).
  static const IconData grading_rounded = IconData(0xf7bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">grading</i> &#x2014; material icon named "grading" (outlined).
  static const IconData grading_outlined = IconData(0xf0ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">grain</i> &#x2014; material icon named "grain".
  static const IconData grain = IconData(0xe2e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">grain</i> &#x2014; material icon named "grain" (sharp).
  static const IconData grain_sharp = IconData(0xe9dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">grain</i> &#x2014; material icon named "grain" (round).
  static const IconData grain_rounded = IconData(0xf7bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">grain</i> &#x2014; material icon named "grain" (outlined).
  static const IconData grain_outlined = IconData(0xf0cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">graphic_eq</i> &#x2014; material icon named "graphic eq".
  static const IconData graphic_eq = IconData(0xe2e3, 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(0xe9de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">graphic_eq</i> &#x2014; material icon named "graphic eq" (round).
  static const IconData graphic_eq_rounded = IconData(0xf7bd, 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(0xf0d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">grass</i> &#x2014; material icon named "grass".
  static const IconData grass = IconData(0xe2e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">grass</i> &#x2014; material icon named "grass" (sharp).
  static const IconData grass_sharp = IconData(0xe9df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">grass</i> &#x2014; material icon named "grass" (round).
  static const IconData grass_rounded = IconData(0xf7be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">grass</i> &#x2014; material icon named "grass" (outlined).
  static const IconData grass_outlined = IconData(0xf0d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">grid_3x3</i> &#x2014; material icon named "grid 3x3".
  static const IconData grid_3x3 = IconData(0xe2e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">grid_3x3</i> &#x2014; material icon named "grid 3x3" (sharp).
  static const IconData grid_3x3_sharp = IconData(0xe9e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">grid_3x3</i> &#x2014; material icon named "grid 3x3" (round).
  static const IconData grid_3x3_rounded = IconData(0xf7bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">grid_3x3</i> &#x2014; material icon named "grid 3x3" (outlined).
  static const IconData grid_3x3_outlined = IconData(0xf0d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">grid_4x4</i> &#x2014; material icon named "grid 4x4".
  static const IconData grid_4x4 = IconData(0xe2e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">grid_4x4</i> &#x2014; material icon named "grid 4x4" (sharp).
  static const IconData grid_4x4_sharp = IconData(0xe9e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">grid_4x4</i> &#x2014; material icon named "grid 4x4" (round).
  static const IconData grid_4x4_rounded = IconData(0xf7c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">grid_4x4</i> &#x2014; material icon named "grid 4x4" (outlined).
  static const IconData grid_4x4_outlined = IconData(0xf0d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">grid_goldenratio</i> &#x2014; material icon named "grid goldenratio".
  static const IconData grid_goldenratio = IconData(0xe2e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">grid_goldenratio</i> &#x2014; material icon named "grid goldenratio" (sharp).
  static const IconData grid_goldenratio_sharp = IconData(0xe9e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">grid_goldenratio</i> &#x2014; material icon named "grid goldenratio" (round).
  static const IconData grid_goldenratio_rounded = IconData(0xf7c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">grid_goldenratio</i> &#x2014; material icon named "grid goldenratio" (outlined).
  static const IconData grid_goldenratio_outlined = IconData(0xf0d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">grid_off</i> &#x2014; material icon named "grid off".
  static const IconData grid_off = IconData(0xe2e8, 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(0xe9e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">grid_off</i> &#x2014; material icon named "grid off" (round).
  static const IconData grid_off_rounded = IconData(0xf7c2, 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(0xf0d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">grid_on</i> &#x2014; material icon named "grid on".
  static const IconData grid_on = IconData(0xe2e9, 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(0xe9e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">grid_on</i> &#x2014; material icon named "grid on" (round).
  static const IconData grid_on_rounded = IconData(0xf7c3, 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(0xf0d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">grid_view</i> &#x2014; material icon named "grid view".
  static const IconData grid_view = IconData(0xe2ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">grid_view</i> &#x2014; material icon named "grid view" (sharp).
  static const IconData grid_view_sharp = IconData(0xe9e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">grid_view</i> &#x2014; material icon named "grid view" (round).
  static const IconData grid_view_rounded = IconData(0xf7c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">grid_view</i> &#x2014; material icon named "grid view" (outlined).
  static const IconData grid_view_outlined = IconData(0xf0d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">group</i> &#x2014; material icon named "group".
  static const IconData group = IconData(0xe2eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">group</i> &#x2014; material icon named "group" (sharp).
  static const IconData group_sharp = IconData(0xe9e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">group</i> &#x2014; material icon named "group" (round).
  static const IconData group_rounded = IconData(0xf7c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">group</i> &#x2014; material icon named "group" (outlined).
  static const IconData group_outlined = IconData(0xf0d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">group_add</i> &#x2014; material icon named "group add".
  static const IconData group_add = IconData(0xe2ec, 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(0xe9e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">group_add</i> &#x2014; material icon named "group add" (round).
  static const IconData group_add_rounded = IconData(0xf7c5, 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(0xf0d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">group_off</i> &#x2014; material icon named "group off".
  static const IconData group_off = IconData(0xf0514, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">group_off</i> &#x2014; material icon named "group off" (sharp).
  static const IconData group_off_sharp = IconData(0xf041f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">group_off</i> &#x2014; material icon named "group off" (round).
  static const IconData group_off_rounded = IconData(0xf032c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">group_off</i> &#x2014; material icon named "group off" (outlined).
  static const IconData group_off_outlined = IconData(0xf060d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">group_remove</i> &#x2014; material icon named "group remove".
  static const IconData group_remove = IconData(0xf0515, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">group_remove</i> &#x2014; material icon named "group remove" (sharp).
  static const IconData group_remove_sharp = IconData(0xf0420, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">group_remove</i> &#x2014; material icon named "group remove" (round).
  static const IconData group_remove_rounded = IconData(0xf032d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">group_remove</i> &#x2014; material icon named "group remove" (outlined).
  static const IconData group_remove_outlined = IconData(0xf060e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">group_work</i> &#x2014; material icon named "group work".
  static const IconData group_work = IconData(0xe2ed, 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(0xe9e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">group_work</i> &#x2014; material icon named "group work" (round).
  static const IconData group_work_rounded = IconData(0xf7c7, 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(0xf0da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">groups</i> &#x2014; material icon named "groups".
  static const IconData groups = IconData(0xe2ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">groups</i> &#x2014; material icon named "groups" (sharp).
  static const IconData groups_sharp = IconData(0xe9e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">groups</i> &#x2014; material icon named "groups" (round).
  static const IconData groups_rounded = IconData(0xf7c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">groups</i> &#x2014; material icon named "groups" (outlined).
  static const IconData groups_outlined = IconData(0xf0db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">groups_2</i> &#x2014; material icon named "groups 2".
  static const IconData groups_2 = IconData(0xf0869, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">groups_2</i> &#x2014; material icon named "groups 2" (sharp).
  static const IconData groups_2_sharp = IconData(0xf0841, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">groups_2</i> &#x2014; material icon named "groups 2" (round).
  static const IconData groups_2_rounded = IconData(0xf088a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">groups_2</i> &#x2014; material icon named "groups 2" (outlined).
  static const IconData groups_2_outlined = IconData(0xf08a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">groups_3</i> &#x2014; material icon named "groups 3".
  static const IconData groups_3 = IconData(0xf086a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">groups_3</i> &#x2014; material icon named "groups 3" (sharp).
  static const IconData groups_3_sharp = IconData(0xf0842, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">groups_3</i> &#x2014; material icon named "groups 3" (round).
  static const IconData groups_3_rounded = IconData(0xf088b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">groups_3</i> &#x2014; material icon named "groups 3" (outlined).
  static const IconData groups_3_outlined = IconData(0xf08a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">h_mobiledata</i> &#x2014; material icon named "h mobiledata".
  static const IconData h_mobiledata = IconData(0xe2ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">h_mobiledata</i> &#x2014; material icon named "h mobiledata" (sharp).
  static const IconData h_mobiledata_sharp = IconData(0xe9ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">h_mobiledata</i> &#x2014; material icon named "h mobiledata" (round).
  static const IconData h_mobiledata_rounded = IconData(0xf7c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">h_mobiledata</i> &#x2014; material icon named "h mobiledata" (outlined).
  static const IconData h_mobiledata_outlined = IconData(0xf0dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">h_plus_mobiledata</i> &#x2014; material icon named "h plus mobiledata".
  static const IconData h_plus_mobiledata = IconData(0xe2f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">h_plus_mobiledata</i> &#x2014; material icon named "h plus mobiledata" (sharp).
  static const IconData h_plus_mobiledata_sharp = IconData(0xe9eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">h_plus_mobiledata</i> &#x2014; material icon named "h plus mobiledata" (round).
  static const IconData h_plus_mobiledata_rounded = IconData(0xf7ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">h_plus_mobiledata</i> &#x2014; material icon named "h plus mobiledata" (outlined).
  static const IconData h_plus_mobiledata_outlined = IconData(0xf0dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hail</i> &#x2014; material icon named "hail".
  static const IconData hail = IconData(0xe2f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hail</i> &#x2014; material icon named "hail" (sharp).
  static const IconData hail_sharp = IconData(0xe9ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hail</i> &#x2014; material icon named "hail" (round).
  static const IconData hail_rounded = IconData(0xf7cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hail</i> &#x2014; material icon named "hail" (outlined).
  static const IconData hail_outlined = IconData(0xf0de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">handshake</i> &#x2014; material icon named "handshake".
  static const IconData handshake = IconData(0xf06be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">handshake</i> &#x2014; material icon named "handshake" (sharp).
  static const IconData handshake_sharp = IconData(0xf06b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">handshake</i> &#x2014; material icon named "handshake" (round).
  static const IconData handshake_rounded = IconData(0xf06cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">handshake</i> &#x2014; material icon named "handshake" (outlined).
  static const IconData handshake_outlined = IconData(0xf06a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">handyman</i> &#x2014; material icon named "handyman".
  static const IconData handyman = IconData(0xe2f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">handyman</i> &#x2014; material icon named "handyman" (sharp).
  static const IconData handyman_sharp = IconData(0xe9ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">handyman</i> &#x2014; material icon named "handyman" (round).
  static const IconData handyman_rounded = IconData(0xf7cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">handyman</i> &#x2014; material icon named "handyman" (outlined).
  static const IconData handyman_outlined = IconData(0xf0df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hardware</i> &#x2014; material icon named "hardware".
  static const IconData hardware = IconData(0xe2f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hardware</i> &#x2014; material icon named "hardware" (sharp).
  static const IconData hardware_sharp = IconData(0xe9ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hardware</i> &#x2014; material icon named "hardware" (round).
  static const IconData hardware_rounded = IconData(0xf7cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hardware</i> &#x2014; material icon named "hardware" (outlined).
  static const IconData hardware_outlined = IconData(0xf0e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hd</i> &#x2014; material icon named "hd".
  static const IconData hd = IconData(0xe2f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hd</i> &#x2014; material icon named "hd" (sharp).
  static const IconData hd_sharp = IconData(0xe9ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hd</i> &#x2014; material icon named "hd" (round).
  static const IconData hd_rounded = IconData(0xf7ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hd</i> &#x2014; material icon named "hd" (outlined).
  static const IconData hd_outlined = IconData(0xf0e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hdr_auto</i> &#x2014; material icon named "hdr auto".
  static const IconData hdr_auto = IconData(0xe2f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hdr_auto</i> &#x2014; material icon named "hdr auto" (sharp).
  static const IconData hdr_auto_sharp = IconData(0xe9f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hdr_auto</i> &#x2014; material icon named "hdr auto" (round).
  static const IconData hdr_auto_rounded = IconData(0xf7cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hdr_auto</i> &#x2014; material icon named "hdr auto" (outlined).
  static const IconData hdr_auto_outlined = IconData(0xf0e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hdr_auto_select</i> &#x2014; material icon named "hdr auto select".
  static const IconData hdr_auto_select = IconData(0xe2f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hdr_auto_select</i> &#x2014; material icon named "hdr auto select" (sharp).
  static const IconData hdr_auto_select_sharp = IconData(0xe9f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hdr_auto_select</i> &#x2014; material icon named "hdr auto select" (round).
  static const IconData hdr_auto_select_rounded = IconData(0xf7d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hdr_auto_select</i> &#x2014; material icon named "hdr auto select" (outlined).
  static const IconData hdr_auto_select_outlined = IconData(0xf0e3, 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(0xe2f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hdr_enhanced_select</i> &#x2014; material icon named "hdr enhanced select" (sharp).
  static const IconData hdr_enhanced_select_sharp = IconData(0xe9f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hdr_enhanced_select</i> &#x2014; material icon named "hdr enhanced select" (round).
  static const IconData hdr_enhanced_select_rounded = IconData(0xf7d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hdr_enhanced_select</i> &#x2014; material icon named "hdr enhanced select" (outlined).
  static const IconData hdr_enhanced_select_outlined = IconData(
    0xf0e4,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">hdr_off</i> &#x2014; material icon named "hdr off".
  static const IconData hdr_off = IconData(0xe2f8, 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(0xe9f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hdr_off</i> &#x2014; material icon named "hdr off" (round).
  static const IconData hdr_off_rounded = IconData(0xf7d2, 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(0xf0e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hdr_off_select</i> &#x2014; material icon named "hdr off select".
  static const IconData hdr_off_select = IconData(0xe2f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hdr_off_select</i> &#x2014; material icon named "hdr off select" (sharp).
  static const IconData hdr_off_select_sharp = IconData(0xe9f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hdr_off_select</i> &#x2014; material icon named "hdr off select" (round).
  static const IconData hdr_off_select_rounded = IconData(0xf7d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hdr_off_select</i> &#x2014; material icon named "hdr off select" (outlined).
  static const IconData hdr_off_select_outlined = IconData(0xf0e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hdr_on</i> &#x2014; material icon named "hdr on".
  static const IconData hdr_on = IconData(0xe2fa, 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(0xe9f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hdr_on</i> &#x2014; material icon named "hdr on" (round).
  static const IconData hdr_on_rounded = IconData(0xf7d4, 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(0xf0e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hdr_on_select</i> &#x2014; material icon named "hdr on select".
  static const IconData hdr_on_select = IconData(0xe2fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hdr_on_select</i> &#x2014; material icon named "hdr on select" (sharp).
  static const IconData hdr_on_select_sharp = IconData(0xe9f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hdr_on_select</i> &#x2014; material icon named "hdr on select" (round).
  static const IconData hdr_on_select_rounded = IconData(0xf7d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hdr_on_select</i> &#x2014; material icon named "hdr on select" (outlined).
  static const IconData hdr_on_select_outlined = IconData(0xf0e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hdr_plus</i> &#x2014; material icon named "hdr plus".
  static const IconData hdr_plus = IconData(0xe2fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hdr_plus</i> &#x2014; material icon named "hdr plus" (sharp).
  static const IconData hdr_plus_sharp = IconData(0xe9f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hdr_plus</i> &#x2014; material icon named "hdr plus" (round).
  static const IconData hdr_plus_rounded = IconData(0xf7d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hdr_plus</i> &#x2014; material icon named "hdr plus" (outlined).
  static const IconData hdr_plus_outlined = IconData(0xf0e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hdr_strong</i> &#x2014; material icon named "hdr strong".
  static const IconData hdr_strong = IconData(0xe2fd, 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(0xe9f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hdr_strong</i> &#x2014; material icon named "hdr strong" (round).
  static const IconData hdr_strong_rounded = IconData(0xf7d7, 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(0xf0ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hdr_weak</i> &#x2014; material icon named "hdr weak".
  static const IconData hdr_weak = IconData(0xe2fe, 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(0xe9f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hdr_weak</i> &#x2014; material icon named "hdr weak" (round).
  static const IconData hdr_weak_rounded = IconData(0xf7d8, 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(0xf0eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">headphones</i> &#x2014; material icon named "headphones".
  static const IconData headphones = IconData(0xe2ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">headphones</i> &#x2014; material icon named "headphones" (sharp).
  static const IconData headphones_sharp = IconData(0xe9fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">headphones</i> &#x2014; material icon named "headphones" (round).
  static const IconData headphones_rounded = IconData(0xf7da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">headphones</i> &#x2014; material icon named "headphones" (outlined).
  static const IconData headphones_outlined = IconData(0xf0ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">headphones_battery</i> &#x2014; material icon named "headphones battery".
  static const IconData headphones_battery = IconData(0xe300, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">headphones_battery</i> &#x2014; material icon named "headphones battery" (sharp).
  static const IconData headphones_battery_sharp = IconData(0xe9fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">headphones_battery</i> &#x2014; material icon named "headphones battery" (round).
  static const IconData headphones_battery_rounded = IconData(0xf7d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">headphones_battery</i> &#x2014; material icon named "headphones battery" (outlined).
  static const IconData headphones_battery_outlined = IconData(0xf0ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">headset</i> &#x2014; material icon named "headset".
  static const IconData headset = IconData(0xe301, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">headset</i> &#x2014; material icon named "headset" (sharp).
  static const IconData headset_sharp = IconData(0xe9fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">headset</i> &#x2014; material icon named "headset" (round).
  static const IconData headset_rounded = IconData(0xf7dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">headset</i> &#x2014; material icon named "headset" (outlined).
  static const IconData headset_outlined = IconData(0xf0f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">headset_mic</i> &#x2014; material icon named "headset mic".
  static const IconData headset_mic = IconData(0xe302, 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(0xe9fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">headset_mic</i> &#x2014; material icon named "headset mic" (round).
  static const IconData headset_mic_rounded = IconData(0xf7db, 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(0xf0ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">headset_off</i> &#x2014; material icon named "headset off".
  static const IconData headset_off = IconData(0xe303, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">headset_off</i> &#x2014; material icon named "headset off" (sharp).
  static const IconData headset_off_sharp = IconData(0xe9fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">headset_off</i> &#x2014; material icon named "headset off" (round).
  static const IconData headset_off_rounded = IconData(0xf7dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">headset_off</i> &#x2014; material icon named "headset off" (outlined).
  static const IconData headset_off_outlined = IconData(0xf0ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">healing</i> &#x2014; material icon named "healing".
  static const IconData healing = IconData(0xe304, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">healing</i> &#x2014; material icon named "healing" (sharp).
  static const IconData healing_sharp = IconData(0xe9ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">healing</i> &#x2014; material icon named "healing" (round).
  static const IconData healing_rounded = IconData(0xf7de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">healing</i> &#x2014; material icon named "healing" (outlined).
  static const IconData healing_outlined = IconData(0xf0f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">health_and_safety</i> &#x2014; material icon named "health and safety".
  static const IconData health_and_safety = IconData(0xe305, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">health_and_safety</i> &#x2014; material icon named "health and safety" (sharp).
  static const IconData health_and_safety_sharp = IconData(0xea00, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">health_and_safety</i> &#x2014; material icon named "health and safety" (round).
  static const IconData health_and_safety_rounded = IconData(0xf7df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">health_and_safety</i> &#x2014; material icon named "health and safety" (outlined).
  static const IconData health_and_safety_outlined = IconData(0xf0f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hearing</i> &#x2014; material icon named "hearing".
  static const IconData hearing = IconData(0xe306, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hearing</i> &#x2014; material icon named "hearing" (sharp).
  static const IconData hearing_sharp = IconData(0xea02, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hearing</i> &#x2014; material icon named "hearing" (round).
  static const IconData hearing_rounded = IconData(0xf7e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hearing</i> &#x2014; material icon named "hearing" (outlined).
  static const IconData hearing_outlined = IconData(0xf0f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hearing_disabled</i> &#x2014; material icon named "hearing disabled".
  static const IconData hearing_disabled = IconData(0xe307, 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(0xea01, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hearing_disabled</i> &#x2014; material icon named "hearing disabled" (round).
  static const IconData hearing_disabled_rounded = IconData(0xf7e0, 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(0xf0f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">heart_broken</i> &#x2014; material icon named "heart broken".
  static const IconData heart_broken = IconData(0xf0516, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">heart_broken</i> &#x2014; material icon named "heart broken" (sharp).
  static const IconData heart_broken_sharp = IconData(0xf0421, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">heart_broken</i> &#x2014; material icon named "heart broken" (round).
  static const IconData heart_broken_rounded = IconData(0xf032e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">heart_broken</i> &#x2014; material icon named "heart broken" (outlined).
  static const IconData heart_broken_outlined = IconData(0xf060f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">heat_pump</i> &#x2014; material icon named "heat pump".
  static const IconData heat_pump = IconData(0xf07a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">heat_pump</i> &#x2014; material icon named "heat pump" (sharp).
  static const IconData heat_pump_sharp = IconData(0xf074d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">heat_pump</i> &#x2014; material icon named "heat pump" (round).
  static const IconData heat_pump_rounded = IconData(0xf07fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">heat_pump</i> &#x2014; material icon named "heat pump" (outlined).
  static const IconData heat_pump_outlined = IconData(0xf06f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">height</i> &#x2014; material icon named "height".
  static const IconData height = IconData(0xe308, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">height</i> &#x2014; material icon named "height" (sharp).
  static const IconData height_sharp = IconData(0xea03, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">height</i> &#x2014; material icon named "height" (round).
  static const IconData height_rounded = IconData(0xf7e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">height</i> &#x2014; material icon named "height" (outlined).
  static const IconData height_outlined = IconData(0xf0f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">help</i> &#x2014; material icon named "help".
  static const IconData help = IconData(
    0xe309,
    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(
    0xea06,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">help</i> &#x2014; material icon named "help" (round).
  static const IconData help_rounded = IconData(
    0xf7e5,
    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(
    0xf0f8,
    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(0xe30a, 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(0xea04, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">help_center</i> &#x2014; material icon named "help center" (round).
  static const IconData help_center_rounded = IconData(0xf7e3, 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(0xf0f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">help_outline</i> &#x2014; material icon named "help outline".
  static const IconData help_outline = IconData(
    0xe30b,
    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(
    0xea05,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">help_outline</i> &#x2014; material icon named "help outline" (round).
  static const IconData help_outline_rounded = IconData(
    0xf7e4,
    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(
    0xf0f7,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">hevc</i> &#x2014; material icon named "hevc".
  static const IconData hevc = IconData(0xe30c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hevc</i> &#x2014; material icon named "hevc" (sharp).
  static const IconData hevc_sharp = IconData(0xea07, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hevc</i> &#x2014; material icon named "hevc" (round).
  static const IconData hevc_rounded = IconData(0xf7e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hevc</i> &#x2014; material icon named "hevc" (outlined).
  static const IconData hevc_outlined = IconData(0xf0f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hexagon</i> &#x2014; material icon named "hexagon".
  static const IconData hexagon = IconData(0xf0517, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hexagon</i> &#x2014; material icon named "hexagon" (sharp).
  static const IconData hexagon_sharp = IconData(0xf0422, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hexagon</i> &#x2014; material icon named "hexagon" (round).
  static const IconData hexagon_rounded = IconData(0xf032f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hexagon</i> &#x2014; material icon named "hexagon" (outlined).
  static const IconData hexagon_outlined = IconData(0xf0610, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hide_image</i> &#x2014; material icon named "hide image".
  static const IconData hide_image = IconData(0xe30d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hide_image</i> &#x2014; material icon named "hide image" (sharp).
  static const IconData hide_image_sharp = IconData(0xea08, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hide_image</i> &#x2014; material icon named "hide image" (round).
  static const IconData hide_image_rounded = IconData(0xf7e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hide_image</i> &#x2014; material icon named "hide image" (outlined).
  static const IconData hide_image_outlined = IconData(0xf0fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hide_source</i> &#x2014; material icon named "hide source".
  static const IconData hide_source = IconData(0xe30e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hide_source</i> &#x2014; material icon named "hide source" (sharp).
  static const IconData hide_source_sharp = IconData(0xea09, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hide_source</i> &#x2014; material icon named "hide source" (round).
  static const IconData hide_source_rounded = IconData(0xf7e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hide_source</i> &#x2014; material icon named "hide source" (outlined).
  static const IconData hide_source_outlined = IconData(0xf0fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">high_quality</i> &#x2014; material icon named "high quality".
  static const IconData high_quality = IconData(0xe30f, 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(0xea0a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">high_quality</i> &#x2014; material icon named "high quality" (round).
  static const IconData high_quality_rounded = IconData(0xf7e9, 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(0xf0fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">highlight</i> &#x2014; material icon named "highlight".
  static const IconData highlight = IconData(0xe310, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">highlight</i> &#x2014; material icon named "highlight" (sharp).
  static const IconData highlight_sharp = IconData(0xea0d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">highlight</i> &#x2014; material icon named "highlight" (round).
  static const IconData highlight_rounded = IconData(0xf7ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">highlight</i> &#x2014; material icon named "highlight" (outlined).
  static const IconData highlight_outlined = IconData(0xf0ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">highlight_alt</i> &#x2014; material icon named "highlight alt".
  static const IconData highlight_alt = IconData(0xe311, 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(0xea0b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">highlight_alt</i> &#x2014; material icon named "highlight alt" (round).
  static const IconData highlight_alt_rounded = IconData(0xf7ea, 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(0xf0fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">highlight_off</i> &#x2014; material icon named "highlight off".
  static const IconData highlight_off = IconData(0xe312, 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(0xea0c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">highlight_off</i> &#x2014; material icon named "highlight off" (round).
  static const IconData highlight_off_rounded = IconData(0xf7eb, 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(0xf0fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">highlight_remove</i> &#x2014; material icon named "highlight remove".
  static const IconData highlight_remove = IconData(0xe312, 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(0xea0c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">highlight_remove</i> &#x2014; material icon named "highlight remove" (round).
  static const IconData highlight_remove_rounded = IconData(0xf7eb, 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(0xf0fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hiking</i> &#x2014; material icon named "hiking".
  static const IconData hiking = IconData(0xe313, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hiking</i> &#x2014; material icon named "hiking" (sharp).
  static const IconData hiking_sharp = IconData(0xea0e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hiking</i> &#x2014; material icon named "hiking" (round).
  static const IconData hiking_rounded = IconData(0xf7ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hiking</i> &#x2014; material icon named "hiking" (outlined).
  static const IconData hiking_outlined = IconData(0xf100, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">history</i> &#x2014; material icon named "history".
  static const IconData history = IconData(0xe314, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">history</i> &#x2014; material icon named "history" (sharp).
  static const IconData history_sharp = IconData(0xea10, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">history</i> &#x2014; material icon named "history" (round).
  static const IconData history_rounded = IconData(0xf7ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">history</i> &#x2014; material icon named "history" (outlined).
  static const IconData history_outlined = IconData(0xf102, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">history_edu</i> &#x2014; material icon named "history edu".
  static const IconData history_edu = IconData(0xe315, 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(0xea0f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">history_edu</i> &#x2014; material icon named "history edu" (round).
  static const IconData history_edu_rounded = IconData(0xf7ee, 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(0xf101, 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(0xe316, 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(0xea11, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">history_toggle_off</i> &#x2014; material icon named "history toggle off" (round).
  static const IconData history_toggle_off_rounded = IconData(0xf7f0, 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(0xf103, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hive</i> &#x2014; material icon named "hive".
  static const IconData hive = IconData(0xf0518, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hive</i> &#x2014; material icon named "hive" (sharp).
  static const IconData hive_sharp = IconData(0xf0423, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hive</i> &#x2014; material icon named "hive" (round).
  static const IconData hive_rounded = IconData(0xf0330, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hive</i> &#x2014; material icon named "hive" (outlined).
  static const IconData hive_outlined = IconData(0xf0611, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hls</i> &#x2014; material icon named "hls".
  static const IconData hls = IconData(0xf0519, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hls</i> &#x2014; material icon named "hls" (sharp).
  static const IconData hls_sharp = IconData(0xf0425, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hls</i> &#x2014; material icon named "hls" (round).
  static const IconData hls_rounded = IconData(0xf0332, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hls</i> &#x2014; material icon named "hls" (outlined).
  static const IconData hls_outlined = IconData(0xf0613, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hls_off</i> &#x2014; material icon named "hls off".
  static const IconData hls_off = IconData(0xf051a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hls_off</i> &#x2014; material icon named "hls off" (sharp).
  static const IconData hls_off_sharp = IconData(0xf0424, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hls_off</i> &#x2014; material icon named "hls off" (round).
  static const IconData hls_off_rounded = IconData(0xf0331, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hls_off</i> &#x2014; material icon named "hls off" (outlined).
  static const IconData hls_off_outlined = IconData(0xf0612, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">holiday_village</i> &#x2014; material icon named "holiday village".
  static const IconData holiday_village = IconData(0xe317, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">holiday_village</i> &#x2014; material icon named "holiday village" (sharp).
  static const IconData holiday_village_sharp = IconData(0xea12, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">holiday_village</i> &#x2014; material icon named "holiday village" (round).
  static const IconData holiday_village_rounded = IconData(0xf7f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">holiday_village</i> &#x2014; material icon named "holiday village" (outlined).
  static const IconData holiday_village_outlined = IconData(0xf104, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">home</i> &#x2014; material icon named "home".
  static const IconData home = IconData(0xe318, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">home</i> &#x2014; material icon named "home" (sharp).
  static const IconData home_sharp = IconData(0xea16, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">home</i> &#x2014; material icon named "home" (round).
  static const IconData home_rounded = IconData(0xf7f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">home</i> &#x2014; material icon named "home" (outlined).
  static const IconData home_outlined = IconData(0xf107, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">home_filled</i> &#x2014; material icon named "home filled".
  static const IconData home_filled = IconData(0xe319, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">home_max</i> &#x2014; material icon named "home max".
  static const IconData home_max = IconData(0xe31a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">home_max</i> &#x2014; material icon named "home max" (sharp).
  static const IconData home_max_sharp = IconData(0xea13, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">home_max</i> &#x2014; material icon named "home max" (round).
  static const IconData home_max_rounded = IconData(0xf7f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">home_max</i> &#x2014; material icon named "home max" (outlined).
  static const IconData home_max_outlined = IconData(0xf105, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">home_mini</i> &#x2014; material icon named "home mini".
  static const IconData home_mini = IconData(0xe31b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">home_mini</i> &#x2014; material icon named "home mini" (sharp).
  static const IconData home_mini_sharp = IconData(0xea14, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">home_mini</i> &#x2014; material icon named "home mini" (round).
  static const IconData home_mini_rounded = IconData(0xf7f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">home_mini</i> &#x2014; material icon named "home mini" (outlined).
  static const IconData home_mini_outlined = IconData(0xf106, 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(0xe31c, 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(0xea15, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">home_repair_service</i> &#x2014; material icon named "home repair service" (round).
  static const IconData home_repair_service_rounded = IconData(0xf7f4, 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(
    0xf108,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">home_work</i> &#x2014; material icon named "home work".
  static const IconData home_work = IconData(0xe31d, 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(0xea17, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">home_work</i> &#x2014; material icon named "home work" (round).
  static const IconData home_work_rounded = IconData(0xf7f6, 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(0xf109, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">horizontal_distribute</i> &#x2014; material icon named "horizontal distribute".
  static const IconData horizontal_distribute = IconData(0xe31e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">horizontal_distribute</i> &#x2014; material icon named "horizontal distribute" (sharp).
  static const IconData horizontal_distribute_sharp = IconData(0xea18, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">horizontal_distribute</i> &#x2014; material icon named "horizontal distribute" (round).
  static const IconData horizontal_distribute_rounded = IconData(
    0xf7f7,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">horizontal_distribute</i> &#x2014; material icon named "horizontal distribute" (outlined).
  static const IconData horizontal_distribute_outlined = IconData(
    0xf10a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">horizontal_rule</i> &#x2014; material icon named "horizontal rule".
  static const IconData horizontal_rule = IconData(0xe31f, 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(0xea19, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">horizontal_rule</i> &#x2014; material icon named "horizontal rule" (round).
  static const IconData horizontal_rule_rounded = IconData(0xf7f8, 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(0xf10b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">horizontal_split</i> &#x2014; material icon named "horizontal split".
  static const IconData horizontal_split = IconData(0xe320, 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(0xea1a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">horizontal_split</i> &#x2014; material icon named "horizontal split" (round).
  static const IconData horizontal_split_rounded = IconData(0xf7f9, 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(0xf10c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hot_tub</i> &#x2014; material icon named "hot tub".
  static const IconData hot_tub = IconData(0xe321, 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(0xea1b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hot_tub</i> &#x2014; material icon named "hot tub" (round).
  static const IconData hot_tub_rounded = IconData(0xf7fa, 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(0xf10d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hotel</i> &#x2014; material icon named "hotel".
  static const IconData hotel = IconData(0xe322, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hotel</i> &#x2014; material icon named "hotel" (sharp).
  static const IconData hotel_sharp = IconData(0xea1c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hotel</i> &#x2014; material icon named "hotel" (round).
  static const IconData hotel_rounded = IconData(0xf7fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hotel</i> &#x2014; material icon named "hotel" (outlined).
  static const IconData hotel_outlined = IconData(0xf10e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hotel_class</i> &#x2014; material icon named "hotel class".
  static const IconData hotel_class = IconData(0xf051b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hotel_class</i> &#x2014; material icon named "hotel class" (sharp).
  static const IconData hotel_class_sharp = IconData(0xf0426, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hotel_class</i> &#x2014; material icon named "hotel class" (round).
  static const IconData hotel_class_rounded = IconData(0xf0333, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hotel_class</i> &#x2014; material icon named "hotel class" (outlined).
  static const IconData hotel_class_outlined = IconData(0xf0614, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hourglass_bottom</i> &#x2014; material icon named "hourglass bottom".
  static const IconData hourglass_bottom = IconData(0xe323, 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(0xea1d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hourglass_bottom</i> &#x2014; material icon named "hourglass bottom" (round).
  static const IconData hourglass_bottom_rounded = IconData(0xf7fc, 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(0xf10f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hourglass_disabled</i> &#x2014; material icon named "hourglass disabled".
  static const IconData hourglass_disabled = IconData(0xe324, 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(0xea1e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hourglass_disabled</i> &#x2014; material icon named "hourglass disabled" (round).
  static const IconData hourglass_disabled_rounded = IconData(0xf7fd, 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(0xf110, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hourglass_empty</i> &#x2014; material icon named "hourglass empty".
  static const IconData hourglass_empty = IconData(0xe325, 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(0xea1f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hourglass_empty</i> &#x2014; material icon named "hourglass empty" (round).
  static const IconData hourglass_empty_rounded = IconData(0xf7fe, 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(0xf111, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hourglass_full</i> &#x2014; material icon named "hourglass full".
  static const IconData hourglass_full = IconData(0xe326, 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(0xea20, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hourglass_full</i> &#x2014; material icon named "hourglass full" (round).
  static const IconData hourglass_full_rounded = IconData(0xf7ff, 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(0xf112, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hourglass_top</i> &#x2014; material icon named "hourglass top".
  static const IconData hourglass_top = IconData(0xe327, 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(0xea21, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hourglass_top</i> &#x2014; material icon named "hourglass top" (round).
  static const IconData hourglass_top_rounded = IconData(0xf800, 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(0xf113, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">house</i> &#x2014; material icon named "house".
  static const IconData house = IconData(0xe328, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">house</i> &#x2014; material icon named "house" (sharp).
  static const IconData house_sharp = IconData(0xea22, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">house</i> &#x2014; material icon named "house" (round).
  static const IconData house_rounded = IconData(0xf801, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">house</i> &#x2014; material icon named "house" (outlined).
  static const IconData house_outlined = IconData(0xf114, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">house_siding</i> &#x2014; material icon named "house siding".
  static const IconData house_siding = IconData(0xe329, 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(0xea23, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">house_siding</i> &#x2014; material icon named "house siding" (round).
  static const IconData house_siding_rounded = IconData(0xf802, 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(0xf115, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">houseboat</i> &#x2014; material icon named "houseboat".
  static const IconData houseboat = IconData(0xe32a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">houseboat</i> &#x2014; material icon named "houseboat" (sharp).
  static const IconData houseboat_sharp = IconData(0xea24, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">houseboat</i> &#x2014; material icon named "houseboat" (round).
  static const IconData houseboat_rounded = IconData(0xf803, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">houseboat</i> &#x2014; material icon named "houseboat" (outlined).
  static const IconData houseboat_outlined = IconData(0xf116, 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(0xe32b, 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(0xea25, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">how_to_reg</i> &#x2014; material icon named "how to reg" (round).
  static const IconData how_to_reg_rounded = IconData(0xf804, 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(0xf117, 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(0xe32c, 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(0xea26, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">how_to_vote</i> &#x2014; material icon named "how to vote" (round).
  static const IconData how_to_vote_rounded = IconData(0xf805, 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(0xf118, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">html</i> &#x2014; material icon named "html".
  static const IconData html = IconData(0xf051c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">html</i> &#x2014; material icon named "html" (sharp).
  static const IconData html_sharp = IconData(0xf0427, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">html</i> &#x2014; material icon named "html" (round).
  static const IconData html_rounded = IconData(0xf0334, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">html</i> &#x2014; material icon named "html" (outlined).
  static const IconData html_outlined = IconData(0xf0615, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">http</i> &#x2014; material icon named "http".
  static const IconData http = IconData(0xe32d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">http</i> &#x2014; material icon named "http" (sharp).
  static const IconData http_sharp = IconData(0xea27, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">http</i> &#x2014; material icon named "http" (round).
  static const IconData http_rounded = IconData(0xf806, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">http</i> &#x2014; material icon named "http" (outlined).
  static const IconData http_outlined = IconData(0xf119, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">https</i> &#x2014; material icon named "https".
  static const IconData https = IconData(0xe32e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">https</i> &#x2014; material icon named "https" (sharp).
  static const IconData https_sharp = IconData(0xea28, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">https</i> &#x2014; material icon named "https" (round).
  static const IconData https_rounded = IconData(0xf807, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">https</i> &#x2014; material icon named "https" (outlined).
  static const IconData https_outlined = IconData(0xf11a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hub</i> &#x2014; material icon named "hub".
  static const IconData hub = IconData(0xf051d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hub</i> &#x2014; material icon named "hub" (sharp).
  static const IconData hub_sharp = IconData(0xf0428, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hub</i> &#x2014; material icon named "hub" (round).
  static const IconData hub_rounded = IconData(0xf0335, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hub</i> &#x2014; material icon named "hub" (outlined).
  static const IconData hub_outlined = IconData(0xf0616, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">hvac</i> &#x2014; material icon named "hvac".
  static const IconData hvac = IconData(0xe32f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">hvac</i> &#x2014; material icon named "hvac" (sharp).
  static const IconData hvac_sharp = IconData(0xea29, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">hvac</i> &#x2014; material icon named "hvac" (round).
  static const IconData hvac_rounded = IconData(0xf808, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">hvac</i> &#x2014; material icon named "hvac" (outlined).
  static const IconData hvac_outlined = IconData(0xf11b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">ice_skating</i> &#x2014; material icon named "ice skating".
  static const IconData ice_skating = IconData(0xe330, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">ice_skating</i> &#x2014; material icon named "ice skating" (sharp).
  static const IconData ice_skating_sharp = IconData(0xea2a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">ice_skating</i> &#x2014; material icon named "ice skating" (round).
  static const IconData ice_skating_rounded = IconData(0xf809, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">ice_skating</i> &#x2014; material icon named "ice skating" (outlined).
  static const IconData ice_skating_outlined = IconData(0xf11c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">icecream</i> &#x2014; material icon named "icecream".
  static const IconData icecream = IconData(0xe331, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">icecream</i> &#x2014; material icon named "icecream" (sharp).
  static const IconData icecream_sharp = IconData(0xea2b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">icecream</i> &#x2014; material icon named "icecream" (round).
  static const IconData icecream_rounded = IconData(0xf80a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">icecream</i> &#x2014; material icon named "icecream" (outlined).
  static const IconData icecream_outlined = IconData(0xf11d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">image</i> &#x2014; material icon named "image".
  static const IconData image = IconData(0xe332, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">image</i> &#x2014; material icon named "image" (sharp).
  static const IconData image_sharp = IconData(0xea2f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">image</i> &#x2014; material icon named "image" (round).
  static const IconData image_rounded = IconData(0xf80d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">image</i> &#x2014; material icon named "image" (outlined).
  static const IconData image_outlined = IconData(0xf120, 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(0xe333, 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(0xea2c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">image_aspect_ratio</i> &#x2014; material icon named "image aspect ratio" (round).
  static const IconData image_aspect_ratio_rounded = IconData(0xf80b, 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(0xf11e, 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(0xe334, 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(0xea2d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">image_not_supported</i> &#x2014; material icon named "image not supported" (round).
  static const IconData image_not_supported_rounded = IconData(0xf80c, 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(
    0xf11f,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">image_search</i> &#x2014; material icon named "image search".
  static const IconData image_search = IconData(0xe335, 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(0xea2e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">image_search</i> &#x2014; material icon named "image search" (round).
  static const IconData image_search_rounded = IconData(0xf80e, 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(0xf121, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">imagesearch_roller</i> &#x2014; material icon named "imagesearch roller".
  static const IconData imagesearch_roller = IconData(0xe336, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">imagesearch_roller</i> &#x2014; material icon named "imagesearch roller" (sharp).
  static const IconData imagesearch_roller_sharp = IconData(0xea30, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">imagesearch_roller</i> &#x2014; material icon named "imagesearch roller" (round).
  static const IconData imagesearch_roller_rounded = IconData(0xf80f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">imagesearch_roller</i> &#x2014; material icon named "imagesearch roller" (outlined).
  static const IconData imagesearch_roller_outlined = IconData(0xf122, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">import_contacts</i> &#x2014; material icon named "import contacts".
  static const IconData import_contacts = IconData(0xe337, 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(0xea31, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">import_contacts</i> &#x2014; material icon named "import contacts" (round).
  static const IconData import_contacts_rounded = IconData(0xf810, 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(0xf123, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">import_export</i> &#x2014; material icon named "import export".
  static const IconData import_export = IconData(0xe338, 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(0xea32, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">import_export</i> &#x2014; material icon named "import export" (round).
  static const IconData import_export_rounded = IconData(0xf811, 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(0xf124, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">important_devices</i> &#x2014; material icon named "important devices".
  static const IconData important_devices = IconData(0xe339, 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(0xea33, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">important_devices</i> &#x2014; material icon named "important devices" (round).
  static const IconData important_devices_rounded = IconData(0xf812, 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(0xf125, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">inbox</i> &#x2014; material icon named "inbox".
  static const IconData inbox = IconData(0xe33a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">inbox</i> &#x2014; material icon named "inbox" (sharp).
  static const IconData inbox_sharp = IconData(0xea34, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">inbox</i> &#x2014; material icon named "inbox" (round).
  static const IconData inbox_rounded = IconData(0xf813, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">inbox</i> &#x2014; material icon named "inbox" (outlined).
  static const IconData inbox_outlined = IconData(0xf126, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">incomplete_circle</i> &#x2014; material icon named "incomplete circle".
  static const IconData incomplete_circle = IconData(0xf051e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">incomplete_circle</i> &#x2014; material icon named "incomplete circle" (sharp).
  static const IconData incomplete_circle_sharp = IconData(0xf0429, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">incomplete_circle</i> &#x2014; material icon named "incomplete circle" (round).
  static const IconData incomplete_circle_rounded = IconData(0xf0336, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">incomplete_circle</i> &#x2014; material icon named "incomplete circle" (outlined).
  static const IconData incomplete_circle_outlined = IconData(0xf0617, 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(0xe33b, 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(
    0xea35,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">indeterminate_check_box</i> &#x2014; material icon named "indeterminate check box" (round).
  static const IconData indeterminate_check_box_rounded = IconData(
    0xf814,
    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(
    0xf127,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">info</i> &#x2014; material icon named "info".
  static const IconData info = IconData(0xe33c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">info</i> &#x2014; material icon named "info" (sharp).
  static const IconData info_sharp = IconData(0xea37, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">info</i> &#x2014; material icon named "info" (round).
  static const IconData info_rounded = IconData(0xf816, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">info</i> &#x2014; material icon named "info" (outlined).
  static const IconData info_outlined = IconData(0xf128, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">info_outline</i> &#x2014; material icon named "info outline".
  static const IconData info_outline = IconData(0xe33d, 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(0xea36, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">info_outline</i> &#x2014; material icon named "info outline" (round).
  static const IconData info_outline_rounded = IconData(0xf815, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">input</i> &#x2014; material icon named "input".
  static const IconData input = IconData(
    0xe33e,
    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(
    0xea38,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">input</i> &#x2014; material icon named "input" (round).
  static const IconData input_rounded = IconData(
    0xf817,
    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(
    0xf129,
    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(0xe33f, 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(0xea3a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insert_chart</i> &#x2014; material icon named "insert chart" (round).
  static const IconData insert_chart_rounded = IconData(0xf819, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">insert_chart</i> &#x2014; material icon named "insert chart".
  static const IconData insert_chart_outlined = IconData(0xf12a, 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(0xea39, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insert_chart_outlined</i> &#x2014; material icon named "insert chart outlined" (round).
  static const IconData insert_chart_outlined_rounded = IconData(
    0xf818,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">insert_chart_outlined</i> &#x2014; material icon named "insert chart outlined" (outlined).
  static const IconData insert_chart_outlined_outlined = IconData(
    0xf12b,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">insert_comment</i> &#x2014; material icon named "insert comment".
  static const IconData insert_comment = IconData(0xe341, 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(0xea3b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insert_comment</i> &#x2014; material icon named "insert comment" (round).
  static const IconData insert_comment_rounded = IconData(0xf81a, 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(0xf12c, 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(0xe342, 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(0xea3c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insert_drive_file</i> &#x2014; material icon named "insert drive file" (round).
  static const IconData insert_drive_file_rounded = IconData(0xf81b, 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(0xf12d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">insert_emoticon</i> &#x2014; material icon named "insert emoticon".
  static const IconData insert_emoticon = IconData(0xe343, 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(0xea3d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insert_emoticon</i> &#x2014; material icon named "insert emoticon" (round).
  static const IconData insert_emoticon_rounded = IconData(0xf81c, 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(0xf12e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">insert_invitation</i> &#x2014; material icon named "insert invitation".
  static const IconData insert_invitation = IconData(0xe344, 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(0xea3e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insert_invitation</i> &#x2014; material icon named "insert invitation" (round).
  static const IconData insert_invitation_rounded = IconData(0xf81d, 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(0xf12f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">insert_link</i> &#x2014; material icon named "insert link".
  static const IconData insert_link = IconData(0xe345, 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(0xea3f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insert_link</i> &#x2014; material icon named "insert link" (round).
  static const IconData insert_link_rounded = IconData(0xf81e, 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(0xf130, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">insert_page_break</i> &#x2014; material icon named "insert page break".
  static const IconData insert_page_break = IconData(0xf0520, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">insert_page_break</i> &#x2014; material icon named "insert page break" (sharp).
  static const IconData insert_page_break_sharp = IconData(0xf042a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insert_page_break</i> &#x2014; material icon named "insert page break" (round).
  static const IconData insert_page_break_rounded = IconData(0xf0337, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">insert_page_break</i> &#x2014; material icon named "insert page break" (outlined).
  static const IconData insert_page_break_outlined = IconData(0xf0618, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">insert_photo</i> &#x2014; material icon named "insert photo".
  static const IconData insert_photo = IconData(0xe346, 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(0xea40, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insert_photo</i> &#x2014; material icon named "insert photo" (round).
  static const IconData insert_photo_rounded = IconData(0xf81f, 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(0xf131, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">insights</i> &#x2014; material icon named "insights".
  static const IconData insights = IconData(0xe347, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">insights</i> &#x2014; material icon named "insights" (sharp).
  static const IconData insights_sharp = IconData(0xea41, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">insights</i> &#x2014; material icon named "insights" (round).
  static const IconData insights_rounded = IconData(0xf820, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">insights</i> &#x2014; material icon named "insights" (outlined).
  static const IconData insights_outlined = IconData(0xf132, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">install_desktop</i> &#x2014; material icon named "install desktop".
  static const IconData install_desktop = IconData(0xf0521, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">install_desktop</i> &#x2014; material icon named "install desktop" (sharp).
  static const IconData install_desktop_sharp = IconData(0xf042b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">install_desktop</i> &#x2014; material icon named "install desktop" (round).
  static const IconData install_desktop_rounded = IconData(0xf0338, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">install_desktop</i> &#x2014; material icon named "install desktop" (outlined).
  static const IconData install_desktop_outlined = IconData(0xf0619, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">install_mobile</i> &#x2014; material icon named "install mobile".
  static const IconData install_mobile = IconData(0xf0522, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">install_mobile</i> &#x2014; material icon named "install mobile" (sharp).
  static const IconData install_mobile_sharp = IconData(0xf042c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">install_mobile</i> &#x2014; material icon named "install mobile" (round).
  static const IconData install_mobile_rounded = IconData(0xf0339, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">install_mobile</i> &#x2014; material icon named "install mobile" (outlined).
  static const IconData install_mobile_outlined = IconData(0xf061a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">integration_instructions</i> &#x2014; material icon named "integration instructions".
  static const IconData integration_instructions = IconData(0xe348, 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(
    0xea42,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">integration_instructions</i> &#x2014; material icon named "integration instructions" (round).
  static const IconData integration_instructions_rounded = IconData(
    0xf821,
    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(
    0xf133,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">interests</i> &#x2014; material icon named "interests".
  static const IconData interests = IconData(0xf0523, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">interests</i> &#x2014; material icon named "interests" (sharp).
  static const IconData interests_sharp = IconData(0xf042d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">interests</i> &#x2014; material icon named "interests" (round).
  static const IconData interests_rounded = IconData(0xf033a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">interests</i> &#x2014; material icon named "interests" (outlined).
  static const IconData interests_outlined = IconData(0xf061b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">interpreter_mode</i> &#x2014; material icon named "interpreter mode".
  static const IconData interpreter_mode = IconData(0xf0524, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">interpreter_mode</i> &#x2014; material icon named "interpreter mode" (sharp).
  static const IconData interpreter_mode_sharp = IconData(0xf042e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">interpreter_mode</i> &#x2014; material icon named "interpreter mode" (round).
  static const IconData interpreter_mode_rounded = IconData(0xf033b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">interpreter_mode</i> &#x2014; material icon named "interpreter mode" (outlined).
  static const IconData interpreter_mode_outlined = IconData(0xf061c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">inventory</i> &#x2014; material icon named "inventory".
  static const IconData inventory = IconData(0xe349, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">inventory</i> &#x2014; material icon named "inventory" (sharp).
  static const IconData inventory_sharp = IconData(0xea44, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">inventory</i> &#x2014; material icon named "inventory" (round).
  static const IconData inventory_rounded = IconData(0xf823, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">inventory</i> &#x2014; material icon named "inventory" (outlined).
  static const IconData inventory_outlined = IconData(0xf135, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">inventory_2</i> &#x2014; material icon named "inventory 2".
  static const IconData inventory_2 = IconData(0xe34a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">inventory_2</i> &#x2014; material icon named "inventory 2" (sharp).
  static const IconData inventory_2_sharp = IconData(0xea43, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">inventory_2</i> &#x2014; material icon named "inventory 2" (round).
  static const IconData inventory_2_rounded = IconData(0xf822, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">inventory_2</i> &#x2014; material icon named "inventory 2" (outlined).
  static const IconData inventory_2_outlined = IconData(0xf134, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">invert_colors</i> &#x2014; material icon named "invert colors".
  static const IconData invert_colors = IconData(0xe34b, 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(0xea46, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">invert_colors</i> &#x2014; material icon named "invert colors" (round).
  static const IconData invert_colors_rounded = IconData(0xf825, 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(0xf137, 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(0xe34c, 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(0xea45, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">invert_colors_off</i> &#x2014; material icon named "invert colors off" (round).
  static const IconData invert_colors_off_rounded = IconData(0xf824, 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(0xf136, 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(0xe34b, 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(0xea46, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">invert_colors_on</i> &#x2014; material icon named "invert colors on" (round).
  static const IconData invert_colors_on_rounded = IconData(0xf825, 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(0xf137, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">ios_share</i> &#x2014; material icon named "ios share".
  static const IconData ios_share = IconData(0xe34d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">ios_share</i> &#x2014; material icon named "ios share" (sharp).
  static const IconData ios_share_sharp = IconData(0xea47, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">ios_share</i> &#x2014; material icon named "ios share" (round).
  static const IconData ios_share_rounded = IconData(0xf826, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">ios_share</i> &#x2014; material icon named "ios share" (outlined).
  static const IconData ios_share_outlined = IconData(0xf138, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">iron</i> &#x2014; material icon named "iron".
  static const IconData iron = IconData(0xe34e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">iron</i> &#x2014; material icon named "iron" (sharp).
  static const IconData iron_sharp = IconData(0xea48, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">iron</i> &#x2014; material icon named "iron" (round).
  static const IconData iron_rounded = IconData(0xf827, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">iron</i> &#x2014; material icon named "iron" (outlined).
  static const IconData iron_outlined = IconData(0xf139, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">iso</i> &#x2014; material icon named "iso".
  static const IconData iso = IconData(0xe34f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">iso</i> &#x2014; material icon named "iso" (sharp).
  static const IconData iso_sharp = IconData(0xea49, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">iso</i> &#x2014; material icon named "iso" (round).
  static const IconData iso_rounded = IconData(0xf828, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">iso</i> &#x2014; material icon named "iso" (outlined).
  static const IconData iso_outlined = IconData(0xf13a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">javascript</i> &#x2014; material icon named "javascript".
  static const IconData javascript = IconData(0xf0525, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">javascript</i> &#x2014; material icon named "javascript" (sharp).
  static const IconData javascript_sharp = IconData(0xf042f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">javascript</i> &#x2014; material icon named "javascript" (round).
  static const IconData javascript_rounded = IconData(0xf033c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">javascript</i> &#x2014; material icon named "javascript" (outlined).
  static const IconData javascript_outlined = IconData(0xf061d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">join_full</i> &#x2014; material icon named "join full".
  static const IconData join_full = IconData(0xf0526, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">join_full</i> &#x2014; material icon named "join full" (sharp).
  static const IconData join_full_sharp = IconData(0xf0430, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">join_full</i> &#x2014; material icon named "join full" (round).
  static const IconData join_full_rounded = IconData(0xf033d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">join_full</i> &#x2014; material icon named "join full" (outlined).
  static const IconData join_full_outlined = IconData(0xf061e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">join_inner</i> &#x2014; material icon named "join inner".
  static const IconData join_inner = IconData(0xf0527, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">join_inner</i> &#x2014; material icon named "join inner" (sharp).
  static const IconData join_inner_sharp = IconData(0xf0431, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">join_inner</i> &#x2014; material icon named "join inner" (round).
  static const IconData join_inner_rounded = IconData(0xf033e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">join_inner</i> &#x2014; material icon named "join inner" (outlined).
  static const IconData join_inner_outlined = IconData(0xf061f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">join_left</i> &#x2014; material icon named "join left".
  static const IconData join_left = IconData(0xf0528, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">join_left</i> &#x2014; material icon named "join left" (sharp).
  static const IconData join_left_sharp = IconData(0xf0432, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">join_left</i> &#x2014; material icon named "join left" (round).
  static const IconData join_left_rounded = IconData(0xf033f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">join_left</i> &#x2014; material icon named "join left" (outlined).
  static const IconData join_left_outlined = IconData(0xf0620, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">join_right</i> &#x2014; material icon named "join right".
  static const IconData join_right = IconData(0xf0529, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">join_right</i> &#x2014; material icon named "join right" (sharp).
  static const IconData join_right_sharp = IconData(0xf0433, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">join_right</i> &#x2014; material icon named "join right" (round).
  static const IconData join_right_rounded = IconData(0xf0340, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">join_right</i> &#x2014; material icon named "join right" (outlined).
  static const IconData join_right_outlined = IconData(0xf0621, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">kayaking</i> &#x2014; material icon named "kayaking".
  static const IconData kayaking = IconData(0xe350, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">kayaking</i> &#x2014; material icon named "kayaking" (sharp).
  static const IconData kayaking_sharp = IconData(0xea4a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">kayaking</i> &#x2014; material icon named "kayaking" (round).
  static const IconData kayaking_rounded = IconData(0xf829, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">kayaking</i> &#x2014; material icon named "kayaking" (outlined).
  static const IconData kayaking_outlined = IconData(0xf13b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">kebab_dining</i> &#x2014; material icon named "kebab dining".
  static const IconData kebab_dining = IconData(0xf052a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">kebab_dining</i> &#x2014; material icon named "kebab dining" (sharp).
  static const IconData kebab_dining_sharp = IconData(0xf0434, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">kebab_dining</i> &#x2014; material icon named "kebab dining" (round).
  static const IconData kebab_dining_rounded = IconData(0xf0341, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">kebab_dining</i> &#x2014; material icon named "kebab dining" (outlined).
  static const IconData kebab_dining_outlined = IconData(0xf0622, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">key</i> &#x2014; material icon named "key".
  static const IconData key = IconData(0xf052b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">key</i> &#x2014; material icon named "key" (sharp).
  static const IconData key_sharp = IconData(0xf0436, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">key</i> &#x2014; material icon named "key" (round).
  static const IconData key_rounded = IconData(0xf0343, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">key</i> &#x2014; material icon named "key" (outlined).
  static const IconData key_outlined = IconData(0xf0624, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">key_off</i> &#x2014; material icon named "key off".
  static const IconData key_off = IconData(0xf052c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">key_off</i> &#x2014; material icon named "key off" (sharp).
  static const IconData key_off_sharp = IconData(0xf0435, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">key_off</i> &#x2014; material icon named "key off" (round).
  static const IconData key_off_rounded = IconData(0xf0342, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">key_off</i> &#x2014; material icon named "key off" (outlined).
  static const IconData key_off_outlined = IconData(0xf0623, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">keyboard</i> &#x2014; material icon named "keyboard".
  static const IconData keyboard = IconData(0xe351, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">keyboard</i> &#x2014; material icon named "keyboard" (sharp).
  static const IconData keyboard_sharp = IconData(0xea54, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard</i> &#x2014; material icon named "keyboard" (round).
  static const IconData keyboard_rounded = IconData(0xf833, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">keyboard</i> &#x2014; material icon named "keyboard" (outlined).
  static const IconData keyboard_outlined = IconData(0xf144, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">keyboard_alt</i> &#x2014; material icon named "keyboard alt".
  static const IconData keyboard_alt = IconData(0xe352, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">keyboard_alt</i> &#x2014; material icon named "keyboard alt" (sharp).
  static const IconData keyboard_alt_sharp = IconData(0xea4b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_alt</i> &#x2014; material icon named "keyboard alt" (round).
  static const IconData keyboard_alt_rounded = IconData(0xf82a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">keyboard_alt</i> &#x2014; material icon named "keyboard alt" (outlined).
  static const IconData keyboard_alt_outlined = IconData(0xf13c, 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(0xe353, 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(0xea4c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_arrow_down</i> &#x2014; material icon named "keyboard arrow down" (round).
  static const IconData keyboard_arrow_down_rounded = IconData(0xf82b, 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(
    0xf13d,
    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(0xe354, 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(0xea4d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_arrow_left</i> &#x2014; material icon named "keyboard arrow left" (round).
  static const IconData keyboard_arrow_left_rounded = IconData(0xf82c, 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(
    0xf13e,
    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(0xe355, 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(0xea4e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_arrow_right</i> &#x2014; material icon named "keyboard arrow right" (round).
  static const IconData keyboard_arrow_right_rounded = IconData(
    0xf82d,
    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(
    0xf13f,
    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(0xe356, 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(0xea4f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_arrow_up</i> &#x2014; material icon named "keyboard arrow up" (round).
  static const IconData keyboard_arrow_up_rounded = IconData(0xf82e, 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(0xf140, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">keyboard_backspace</i> &#x2014; material icon named "keyboard backspace".
  static const IconData keyboard_backspace = IconData(
    0xe357,
    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(
    0xea50,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">keyboard_backspace</i> &#x2014; material icon named "keyboard backspace" (round).
  static const IconData keyboard_backspace_rounded = IconData(
    0xf82f,
    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(
    0xf141,
    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(0xe358, 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(0xea51, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_capslock</i> &#x2014; material icon named "keyboard capslock" (round).
  static const IconData keyboard_capslock_rounded = IconData(0xf830, 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(0xf142, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">keyboard_command_key</i> &#x2014; material icon named "keyboard command key".
  static const IconData keyboard_command_key = IconData(0xf052d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">keyboard_command_key</i> &#x2014; material icon named "keyboard command key" (sharp).
  static const IconData keyboard_command_key_sharp = IconData(0xf0437, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_command_key</i> &#x2014; material icon named "keyboard command key" (round).
  static const IconData keyboard_command_key_rounded = IconData(
    0xf0344,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">keyboard_command_key</i> &#x2014; material icon named "keyboard command key" (outlined).
  static const IconData keyboard_command_key_outlined = IconData(
    0xf0625,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">keyboard_control</i> &#x2014; material icon named "keyboard control".
  static const IconData keyboard_control = IconData(0xe402, 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(0xeafa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_control</i> &#x2014; material icon named "keyboard control" (round).
  static const IconData keyboard_control_rounded = IconData(0xf8d9, 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(0xf1e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">keyboard_control_key</i> &#x2014; material icon named "keyboard control key".
  static const IconData keyboard_control_key = IconData(0xf052e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">keyboard_control_key</i> &#x2014; material icon named "keyboard control key" (sharp).
  static const IconData keyboard_control_key_sharp = IconData(0xf0438, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_control_key</i> &#x2014; material icon named "keyboard control key" (round).
  static const IconData keyboard_control_key_rounded = IconData(
    0xf0345,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">keyboard_control_key</i> &#x2014; material icon named "keyboard control key" (outlined).
  static const IconData keyboard_control_key_outlined = IconData(
    0xf0626,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">keyboard_double_arrow_down</i> &#x2014; material icon named "keyboard double arrow down".
  static const IconData keyboard_double_arrow_down = IconData(0xf052f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">keyboard_double_arrow_down</i> &#x2014; material icon named "keyboard double arrow down" (sharp).
  static const IconData keyboard_double_arrow_down_sharp = IconData(
    0xf0439,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">keyboard_double_arrow_down</i> &#x2014; material icon named "keyboard double arrow down" (round).
  static const IconData keyboard_double_arrow_down_rounded = IconData(
    0xf0346,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">keyboard_double_arrow_down</i> &#x2014; material icon named "keyboard double arrow down" (outlined).
  static const IconData keyboard_double_arrow_down_outlined = IconData(
    0xf0627,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">keyboard_double_arrow_left</i> &#x2014; material icon named "keyboard double arrow left".
  static const IconData keyboard_double_arrow_left = IconData(0xf0530, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">keyboard_double_arrow_left</i> &#x2014; material icon named "keyboard double arrow left" (sharp).
  static const IconData keyboard_double_arrow_left_sharp = IconData(
    0xf043a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">keyboard_double_arrow_left</i> &#x2014; material icon named "keyboard double arrow left" (round).
  static const IconData keyboard_double_arrow_left_rounded = IconData(
    0xf0347,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">keyboard_double_arrow_left</i> &#x2014; material icon named "keyboard double arrow left" (outlined).
  static const IconData keyboard_double_arrow_left_outlined = IconData(
    0xf0628,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">keyboard_double_arrow_right</i> &#x2014; material icon named "keyboard double arrow right".
  static const IconData keyboard_double_arrow_right = IconData(
    0xf0531,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-sharp md-36">keyboard_double_arrow_right</i> &#x2014; material icon named "keyboard double arrow right" (sharp).
  static const IconData keyboard_double_arrow_right_sharp = IconData(
    0xf043b,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">keyboard_double_arrow_right</i> &#x2014; material icon named "keyboard double arrow right" (round).
  static const IconData keyboard_double_arrow_right_rounded = IconData(
    0xf0348,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">keyboard_double_arrow_right</i> &#x2014; material icon named "keyboard double arrow right" (outlined).
  static const IconData keyboard_double_arrow_right_outlined = IconData(
    0xf0629,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">keyboard_double_arrow_up</i> &#x2014; material icon named "keyboard double arrow up".
  static const IconData keyboard_double_arrow_up = IconData(0xf0532, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">keyboard_double_arrow_up</i> &#x2014; material icon named "keyboard double arrow up" (sharp).
  static const IconData keyboard_double_arrow_up_sharp = IconData(
    0xf043c,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">keyboard_double_arrow_up</i> &#x2014; material icon named "keyboard double arrow up" (round).
  static const IconData keyboard_double_arrow_up_rounded = IconData(
    0xf0349,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">keyboard_double_arrow_up</i> &#x2014; material icon named "keyboard double arrow up" (outlined).
  static const IconData keyboard_double_arrow_up_outlined = IconData(
    0xf062a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">keyboard_hide</i> &#x2014; material icon named "keyboard hide".
  static const IconData keyboard_hide = IconData(0xe359, 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(0xea52, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_hide</i> &#x2014; material icon named "keyboard hide" (round).
  static const IconData keyboard_hide_rounded = IconData(0xf831, 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(0xf143, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">keyboard_option_key</i> &#x2014; material icon named "keyboard option key".
  static const IconData keyboard_option_key = IconData(0xf0533, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">keyboard_option_key</i> &#x2014; material icon named "keyboard option key" (sharp).
  static const IconData keyboard_option_key_sharp = IconData(0xf043d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_option_key</i> &#x2014; material icon named "keyboard option key" (round).
  static const IconData keyboard_option_key_rounded = IconData(
    0xf034a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">keyboard_option_key</i> &#x2014; material icon named "keyboard option key" (outlined).
  static const IconData keyboard_option_key_outlined = IconData(
    0xf062b,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">keyboard_return</i> &#x2014; material icon named "keyboard return".
  static const IconData keyboard_return = IconData(0xe35a, 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(0xea53, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_return</i> &#x2014; material icon named "keyboard return" (round).
  static const IconData keyboard_return_rounded = IconData(0xf832, 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(0xf145, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">keyboard_tab</i> &#x2014; material icon named "keyboard tab".
  static const IconData keyboard_tab = IconData(
    0xe35b,
    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(
    0xea55,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">keyboard_tab</i> &#x2014; material icon named "keyboard tab" (round).
  static const IconData keyboard_tab_rounded = IconData(
    0xf834,
    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(
    0xf146,
    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(0xe35c, 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(0xea56, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">keyboard_voice</i> &#x2014; material icon named "keyboard voice" (round).
  static const IconData keyboard_voice_rounded = IconData(0xf835, 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(0xf147, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">king_bed</i> &#x2014; material icon named "king bed".
  static const IconData king_bed = IconData(0xe35d, 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(0xea57, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">king_bed</i> &#x2014; material icon named "king bed" (round).
  static const IconData king_bed_rounded = IconData(0xf836, 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(0xf148, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">kitchen</i> &#x2014; material icon named "kitchen".
  static const IconData kitchen = IconData(0xe35e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">kitchen</i> &#x2014; material icon named "kitchen" (sharp).
  static const IconData kitchen_sharp = IconData(0xea58, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">kitchen</i> &#x2014; material icon named "kitchen" (round).
  static const IconData kitchen_rounded = IconData(0xf837, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">kitchen</i> &#x2014; material icon named "kitchen" (outlined).
  static const IconData kitchen_outlined = IconData(0xf149, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">kitesurfing</i> &#x2014; material icon named "kitesurfing".
  static const IconData kitesurfing = IconData(0xe35f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">kitesurfing</i> &#x2014; material icon named "kitesurfing" (sharp).
  static const IconData kitesurfing_sharp = IconData(0xea59, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">kitesurfing</i> &#x2014; material icon named "kitesurfing" (round).
  static const IconData kitesurfing_rounded = IconData(0xf838, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">kitesurfing</i> &#x2014; material icon named "kitesurfing" (outlined).
  static const IconData kitesurfing_outlined = IconData(0xf14a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">label</i> &#x2014; material icon named "label".
  static const IconData label = IconData(
    0xe360,
    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(
    0xea5e,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">label</i> &#x2014; material icon named "label" (round).
  static const IconData label_rounded = IconData(
    0xf83d,
    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(
    0xf14d,
    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(
    0xe361,
    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(
    0xea5b,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">label_important</i> &#x2014; material icon named "label important" (round).
  static const IconData label_important_rounded = IconData(
    0xf83a,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-outlined md-36">label_important</i> &#x2014; material icon named "label important" (outlined).
  static const IconData label_important_outlined = IconData(
    0xf14b,
    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(0xe362, 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(
    0xea5a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">label_important_outline</i> &#x2014; material icon named "label important outline" (round).
  static const IconData label_important_outline_rounded = IconData(
    0xf839,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">label_off</i> &#x2014; material icon named "label off".
  static const IconData label_off = IconData(
    0xe363,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-sharp md-36">label_off</i> &#x2014; material icon named "label off" (sharp).
  static const IconData label_off_sharp = IconData(
    0xea5c,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">label_off</i> &#x2014; material icon named "label off" (round).
  static const IconData label_off_rounded = IconData(
    0xf83b,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-outlined md-36">label_off</i> &#x2014; material icon named "label off" (outlined).
  static const IconData label_off_outlined = IconData(
    0xf14c,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">label_outline</i> &#x2014; material icon named "label outline".
  static const IconData label_outline = IconData(
    0xe364,
    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(
    0xea5d,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">label_outline</i> &#x2014; material icon named "label outline" (round).
  static const IconData label_outline_rounded = IconData(
    0xf83c,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">lan</i> &#x2014; material icon named "lan".
  static const IconData lan = IconData(0xf0534, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">lan</i> &#x2014; material icon named "lan" (sharp).
  static const IconData lan_sharp = IconData(0xf043e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lan</i> &#x2014; material icon named "lan" (round).
  static const IconData lan_rounded = IconData(0xf034b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">lan</i> &#x2014; material icon named "lan" (outlined).
  static const IconData lan_outlined = IconData(0xf062c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">landscape</i> &#x2014; material icon named "landscape".
  static const IconData landscape = IconData(0xe365, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">landscape</i> &#x2014; material icon named "landscape" (sharp).
  static const IconData landscape_sharp = IconData(0xea5f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">landscape</i> &#x2014; material icon named "landscape" (round).
  static const IconData landscape_rounded = IconData(0xf83e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">landscape</i> &#x2014; material icon named "landscape" (outlined).
  static const IconData landscape_outlined = IconData(0xf14e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">landslide</i> &#x2014; material icon named "landslide".
  static const IconData landslide = IconData(0xf07a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">landslide</i> &#x2014; material icon named "landslide" (sharp).
  static const IconData landslide_sharp = IconData(0xf074e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">landslide</i> &#x2014; material icon named "landslide" (round).
  static const IconData landslide_rounded = IconData(0xf07fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">landslide</i> &#x2014; material icon named "landslide" (outlined).
  static const IconData landslide_outlined = IconData(0xf06f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">language</i> &#x2014; material icon named "language".
  static const IconData language = IconData(0xe366, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">language</i> &#x2014; material icon named "language" (sharp).
  static const IconData language_sharp = IconData(0xea60, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">language</i> &#x2014; material icon named "language" (round).
  static const IconData language_rounded = IconData(0xf83f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">language</i> &#x2014; material icon named "language" (outlined).
  static const IconData language_outlined = IconData(0xf14f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">laptop</i> &#x2014; material icon named "laptop".
  static const IconData laptop = IconData(0xe367, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">laptop</i> &#x2014; material icon named "laptop" (sharp).
  static const IconData laptop_sharp = IconData(0xea63, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">laptop</i> &#x2014; material icon named "laptop" (round).
  static const IconData laptop_rounded = IconData(0xf842, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">laptop</i> &#x2014; material icon named "laptop" (outlined).
  static const IconData laptop_outlined = IconData(0xf152, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">laptop_chromebook</i> &#x2014; material icon named "laptop chromebook".
  static const IconData laptop_chromebook = IconData(0xe368, 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(0xea61, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">laptop_chromebook</i> &#x2014; material icon named "laptop chromebook" (round).
  static const IconData laptop_chromebook_rounded = IconData(0xf840, 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(0xf150, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">laptop_mac</i> &#x2014; material icon named "laptop mac".
  static const IconData laptop_mac = IconData(0xe369, 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(0xea62, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">laptop_mac</i> &#x2014; material icon named "laptop mac" (round).
  static const IconData laptop_mac_rounded = IconData(0xf841, 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(0xf151, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">laptop_windows</i> &#x2014; material icon named "laptop windows".
  static const IconData laptop_windows = IconData(0xe36a, 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(0xea64, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">laptop_windows</i> &#x2014; material icon named "laptop windows" (round).
  static const IconData laptop_windows_rounded = IconData(0xf843, 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(0xf153, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">last_page</i> &#x2014; material icon named "last page".
  static const IconData last_page = IconData(
    0xe36b,
    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(
    0xea65,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">last_page</i> &#x2014; material icon named "last page" (round).
  static const IconData last_page_rounded = IconData(
    0xf844,
    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(
    0xf154,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">launch</i> &#x2014; material icon named "launch".
  static const IconData launch = IconData(
    0xe36c,
    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(
    0xea66,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">launch</i> &#x2014; material icon named "launch" (round).
  static const IconData launch_rounded = IconData(
    0xf845,
    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(
    0xf155,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">layers</i> &#x2014; material icon named "layers".
  static const IconData layers = IconData(0xe36d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">layers</i> &#x2014; material icon named "layers" (sharp).
  static const IconData layers_sharp = IconData(0xea68, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">layers</i> &#x2014; material icon named "layers" (round).
  static const IconData layers_rounded = IconData(0xf847, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">layers</i> &#x2014; material icon named "layers" (outlined).
  static const IconData layers_outlined = IconData(0xf157, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">layers_clear</i> &#x2014; material icon named "layers clear".
  static const IconData layers_clear = IconData(0xe36e, 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(0xea67, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">layers_clear</i> &#x2014; material icon named "layers clear" (round).
  static const IconData layers_clear_rounded = IconData(0xf846, 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(0xf156, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">leaderboard</i> &#x2014; material icon named "leaderboard".
  static const IconData leaderboard = IconData(0xe36f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">leaderboard</i> &#x2014; material icon named "leaderboard" (sharp).
  static const IconData leaderboard_sharp = IconData(0xea69, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">leaderboard</i> &#x2014; material icon named "leaderboard" (round).
  static const IconData leaderboard_rounded = IconData(0xf848, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">leaderboard</i> &#x2014; material icon named "leaderboard" (outlined).
  static const IconData leaderboard_outlined = IconData(0xf158, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">leak_add</i> &#x2014; material icon named "leak add".
  static const IconData leak_add = IconData(0xe370, 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(0xea6a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">leak_add</i> &#x2014; material icon named "leak add" (round).
  static const IconData leak_add_rounded = IconData(0xf849, 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(0xf159, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">leak_remove</i> &#x2014; material icon named "leak remove".
  static const IconData leak_remove = IconData(0xe371, 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(0xea6b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">leak_remove</i> &#x2014; material icon named "leak remove" (round).
  static const IconData leak_remove_rounded = IconData(0xf84a, 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(0xf15a, 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(0xe439, 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(0xeb32, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">leave_bags_at_home</i> &#x2014; material icon named "leave bags at home" (round).
  static const IconData leave_bags_at_home_rounded = IconData(0xf0011, 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(0xf21f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">legend_toggle</i> &#x2014; material icon named "legend toggle".
  static const IconData legend_toggle = IconData(0xe372, 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(0xea6c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">legend_toggle</i> &#x2014; material icon named "legend toggle" (round).
  static const IconData legend_toggle_rounded = IconData(0xf84b, 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(0xf15b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lens</i> &#x2014; material icon named "lens".
  static const IconData lens = IconData(0xe373, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">lens</i> &#x2014; material icon named "lens" (sharp).
  static const IconData lens_sharp = IconData(0xea6e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lens</i> &#x2014; material icon named "lens" (round).
  static const IconData lens_rounded = IconData(0xf84d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">lens</i> &#x2014; material icon named "lens" (outlined).
  static const IconData lens_outlined = IconData(0xf15d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lens_blur</i> &#x2014; material icon named "lens blur".
  static const IconData lens_blur = IconData(0xe374, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">lens_blur</i> &#x2014; material icon named "lens blur" (sharp).
  static const IconData lens_blur_sharp = IconData(0xea6d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lens_blur</i> &#x2014; material icon named "lens blur" (round).
  static const IconData lens_blur_rounded = IconData(0xf84c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">lens_blur</i> &#x2014; material icon named "lens blur" (outlined).
  static const IconData lens_blur_outlined = IconData(0xf15c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">library_add</i> &#x2014; material icon named "library add".
  static const IconData library_add = IconData(0xe375, 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(0xea70, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">library_add</i> &#x2014; material icon named "library add" (round).
  static const IconData library_add_rounded = IconData(0xf84f, 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(0xf15f, 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(0xe376, 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(0xea6f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">library_add_check</i> &#x2014; material icon named "library add check" (round).
  static const IconData library_add_check_rounded = IconData(0xf84e, 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(0xf15e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">library_books</i> &#x2014; material icon named "library books".
  static const IconData library_books = IconData(0xe377, 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(0xea71, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">library_books</i> &#x2014; material icon named "library books" (round).
  static const IconData library_books_rounded = IconData(0xf850, 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(0xf160, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">library_music</i> &#x2014; material icon named "library music".
  static const IconData library_music = IconData(0xe378, 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(0xea72, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">library_music</i> &#x2014; material icon named "library music" (round).
  static const IconData library_music_rounded = IconData(0xf851, 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(0xf161, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">light</i> &#x2014; material icon named "light".
  static const IconData light = IconData(0xe379, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">light</i> &#x2014; material icon named "light" (sharp).
  static const IconData light_sharp = IconData(0xea74, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">light</i> &#x2014; material icon named "light" (round).
  static const IconData light_rounded = IconData(0xf853, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">light</i> &#x2014; material icon named "light" (outlined).
  static const IconData light_outlined = IconData(0xf163, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">light_mode</i> &#x2014; material icon named "light mode".
  static const IconData light_mode = IconData(0xe37a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">light_mode</i> &#x2014; material icon named "light mode" (sharp).
  static const IconData light_mode_sharp = IconData(0xea73, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">light_mode</i> &#x2014; material icon named "light mode" (round).
  static const IconData light_mode_rounded = IconData(0xf852, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">light_mode</i> &#x2014; material icon named "light mode" (outlined).
  static const IconData light_mode_outlined = IconData(0xf162, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lightbulb</i> &#x2014; material icon named "lightbulb".
  static const IconData lightbulb = IconData(0xe37b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">lightbulb</i> &#x2014; material icon named "lightbulb" (sharp).
  static const IconData lightbulb_sharp = IconData(0xea76, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lightbulb</i> &#x2014; material icon named "lightbulb" (round).
  static const IconData lightbulb_rounded = IconData(0xf855, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">lightbulb</i> &#x2014; material icon named "lightbulb" (outlined).
  static const IconData lightbulb_outlined = IconData(0xf164, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lightbulb_circle</i> &#x2014; material icon named "lightbulb circle".
  static const IconData lightbulb_circle = IconData(0xf07a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">lightbulb_circle</i> &#x2014; material icon named "lightbulb circle" (sharp).
  static const IconData lightbulb_circle_sharp = IconData(0xf074f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lightbulb_circle</i> &#x2014; material icon named "lightbulb circle" (round).
  static const IconData lightbulb_circle_rounded = IconData(0xf07ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">lightbulb_circle</i> &#x2014; material icon named "lightbulb circle" (outlined).
  static const IconData lightbulb_circle_outlined = IconData(0xf06f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lightbulb_outline</i> &#x2014; material icon named "lightbulb outline".
  static const IconData lightbulb_outline = IconData(0xe37c, 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(0xea75, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lightbulb_outline</i> &#x2014; material icon named "lightbulb outline" (round).
  static const IconData lightbulb_outline_rounded = IconData(0xf854, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">line_axis</i> &#x2014; material icon named "line axis".
  static const IconData line_axis = IconData(0xf0535, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">line_axis</i> &#x2014; material icon named "line axis" (sharp).
  static const IconData line_axis_sharp = IconData(0xf043f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">line_axis</i> &#x2014; material icon named "line axis" (round).
  static const IconData line_axis_rounded = IconData(0xf034c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">line_axis</i> &#x2014; material icon named "line axis" (outlined).
  static const IconData line_axis_outlined = IconData(0xf062d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">line_style</i> &#x2014; material icon named "line style".
  static const IconData line_style = IconData(0xe37d, 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(0xea77, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">line_style</i> &#x2014; material icon named "line style" (round).
  static const IconData line_style_rounded = IconData(0xf856, 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(0xf165, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">line_weight</i> &#x2014; material icon named "line weight".
  static const IconData line_weight = IconData(0xe37e, 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(0xea78, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">line_weight</i> &#x2014; material icon named "line weight" (round).
  static const IconData line_weight_rounded = IconData(0xf857, 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(0xf166, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">linear_scale</i> &#x2014; material icon named "linear scale".
  static const IconData linear_scale = IconData(0xe37f, 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(0xea79, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">linear_scale</i> &#x2014; material icon named "linear scale" (round).
  static const IconData linear_scale_rounded = IconData(0xf858, 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(0xf167, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">link</i> &#x2014; material icon named "link".
  static const IconData link = IconData(0xe380, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">link</i> &#x2014; material icon named "link" (sharp).
  static const IconData link_sharp = IconData(0xea7b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">link</i> &#x2014; material icon named "link" (round).
  static const IconData link_rounded = IconData(0xf85a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">link</i> &#x2014; material icon named "link" (outlined).
  static const IconData link_outlined = IconData(0xf169, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">link_off</i> &#x2014; material icon named "link off".
  static const IconData link_off = IconData(0xe381, 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(0xea7a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">link_off</i> &#x2014; material icon named "link off" (round).
  static const IconData link_off_rounded = IconData(0xf859, 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(0xf168, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">linked_camera</i> &#x2014; material icon named "linked camera".
  static const IconData linked_camera = IconData(0xe382, 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(0xea7c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">linked_camera</i> &#x2014; material icon named "linked camera" (round).
  static const IconData linked_camera_rounded = IconData(0xf85b, 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(0xf16a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">liquor</i> &#x2014; material icon named "liquor".
  static const IconData liquor = IconData(0xe383, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">liquor</i> &#x2014; material icon named "liquor" (sharp).
  static const IconData liquor_sharp = IconData(0xea7d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">liquor</i> &#x2014; material icon named "liquor" (round).
  static const IconData liquor_rounded = IconData(0xf85c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">liquor</i> &#x2014; material icon named "liquor" (outlined).
  static const IconData liquor_outlined = IconData(0xf16b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">list</i> &#x2014; material icon named "list".
  static const IconData list = IconData(
    0xe384,
    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(
    0xea7f,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">list</i> &#x2014; material icon named "list" (round).
  static const IconData list_rounded = IconData(
    0xf85e,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-outlined md-36">list</i> &#x2014; material icon named "list" (outlined).
  static const IconData list_outlined = IconData(
    0xf16d,
    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(
    0xe385,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-sharp md-36">list_alt</i> &#x2014; material icon named "list alt" (sharp).
  static const IconData list_alt_sharp = IconData(
    0xea7e,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">list_alt</i> &#x2014; material icon named "list alt" (round).
  static const IconData list_alt_rounded = IconData(
    0xf85d,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-outlined md-36">list_alt</i> &#x2014; material icon named "list alt" (outlined).
  static const IconData list_alt_outlined = IconData(
    0xf16c,
    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(
    0xe386,
    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(
    0xea80,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">live_help</i> &#x2014; material icon named "live help" (round).
  static const IconData live_help_rounded = IconData(
    0xf85f,
    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(
    0xf16e,
    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(0xe387, 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(0xea81, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">live_tv</i> &#x2014; material icon named "live tv" (round).
  static const IconData live_tv_rounded = IconData(0xf860, 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(0xf16f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">living</i> &#x2014; material icon named "living".
  static const IconData living = IconData(0xe388, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">living</i> &#x2014; material icon named "living" (sharp).
  static const IconData living_sharp = IconData(0xea82, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">living</i> &#x2014; material icon named "living" (round).
  static const IconData living_rounded = IconData(0xf861, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">living</i> &#x2014; material icon named "living" (outlined).
  static const IconData living_outlined = IconData(0xf170, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_activity</i> &#x2014; material icon named "local activity".
  static const IconData local_activity = IconData(0xe389, 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(0xea83, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_activity</i> &#x2014; material icon named "local activity" (round).
  static const IconData local_activity_rounded = IconData(0xf862, 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(0xf171, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_airport</i> &#x2014; material icon named "local airport".
  static const IconData local_airport = IconData(0xe38a, 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(0xea84, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_airport</i> &#x2014; material icon named "local airport" (round).
  static const IconData local_airport_rounded = IconData(0xf863, 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(0xf172, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_atm</i> &#x2014; material icon named "local atm".
  static const IconData local_atm = IconData(0xe38b, 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(0xea85, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_atm</i> &#x2014; material icon named "local atm" (round).
  static const IconData local_atm_rounded = IconData(0xf864, 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(0xf173, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_attraction</i> &#x2014; material icon named "local attraction".
  static const IconData local_attraction = IconData(0xe389, 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(0xea83, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_attraction</i> &#x2014; material icon named "local attraction" (round).
  static const IconData local_attraction_rounded = IconData(0xf862, 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(0xf171, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_bar</i> &#x2014; material icon named "local bar".
  static const IconData local_bar = IconData(0xe38c, 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(0xea86, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_bar</i> &#x2014; material icon named "local bar" (round).
  static const IconData local_bar_rounded = IconData(0xf865, 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(0xf174, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_cafe</i> &#x2014; material icon named "local cafe".
  static const IconData local_cafe = IconData(0xe38d, 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(0xea87, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_cafe</i> &#x2014; material icon named "local cafe" (round).
  static const IconData local_cafe_rounded = IconData(0xf866, 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(0xf175, 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(0xe38e, 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(0xea88, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_car_wash</i> &#x2014; material icon named "local car wash" (round).
  static const IconData local_car_wash_rounded = IconData(0xf867, 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(0xf176, 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(0xe38f, 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(
    0xea89,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">local_convenience_store</i> &#x2014; material icon named "local convenience store" (round).
  static const IconData local_convenience_store_rounded = IconData(
    0xf868,
    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(
    0xf177,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">local_dining</i> &#x2014; material icon named "local dining".
  static const IconData local_dining = IconData(0xe390, 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(0xea8a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_dining</i> &#x2014; material icon named "local dining" (round).
  static const IconData local_dining_rounded = IconData(0xf869, 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(0xf178, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_drink</i> &#x2014; material icon named "local drink".
  static const IconData local_drink = IconData(0xe391, 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(0xea8b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_drink</i> &#x2014; material icon named "local drink" (round).
  static const IconData local_drink_rounded = IconData(0xf86a, 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(0xf179, 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(0xe392, 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(0xea8c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_fire_department</i> &#x2014; material icon named "local fire department" (round).
  static const IconData local_fire_department_rounded = IconData(
    0xf86b,
    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(
    0xf17a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">local_florist</i> &#x2014; material icon named "local florist".
  static const IconData local_florist = IconData(0xe393, 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(0xea8d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_florist</i> &#x2014; material icon named "local florist" (round).
  static const IconData local_florist_rounded = IconData(0xf86c, 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(0xf17b, 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(0xe394, 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(0xea8e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_gas_station</i> &#x2014; material icon named "local gas station" (round).
  static const IconData local_gas_station_rounded = IconData(0xf86d, 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(0xf17c, 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(0xe395, 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(0xea8f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_grocery_store</i> &#x2014; material icon named "local grocery store" (round).
  static const IconData local_grocery_store_rounded = IconData(0xf86e, 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(
    0xf17d,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">local_hospital</i> &#x2014; material icon named "local hospital".
  static const IconData local_hospital = IconData(0xe396, 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(0xea90, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_hospital</i> &#x2014; material icon named "local hospital" (round).
  static const IconData local_hospital_rounded = IconData(0xf86f, 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(0xf17e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_hotel</i> &#x2014; material icon named "local hotel".
  static const IconData local_hotel = IconData(0xe397, 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(0xea91, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_hotel</i> &#x2014; material icon named "local hotel" (round).
  static const IconData local_hotel_rounded = IconData(0xf870, 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(0xf17f, 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(0xe398, 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(0xea92, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_laundry_service</i> &#x2014; material icon named "local laundry service" (round).
  static const IconData local_laundry_service_rounded = IconData(
    0xf871,
    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(
    0xf180,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">local_library</i> &#x2014; material icon named "local library".
  static const IconData local_library = IconData(0xe399, 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(0xea93, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_library</i> &#x2014; material icon named "local library" (round).
  static const IconData local_library_rounded = IconData(0xf872, 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(0xf181, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_mall</i> &#x2014; material icon named "local mall".
  static const IconData local_mall = IconData(0xe39a, 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(0xea94, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_mall</i> &#x2014; material icon named "local mall" (round).
  static const IconData local_mall_rounded = IconData(0xf873, 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(0xf182, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_movies</i> &#x2014; material icon named "local movies".
  static const IconData local_movies = IconData(0xe39b, 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(0xea95, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_movies</i> &#x2014; material icon named "local movies" (round).
  static const IconData local_movies_rounded = IconData(0xf874, 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(0xf183, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_offer</i> &#x2014; material icon named "local offer".
  static const IconData local_offer = IconData(0xe39c, 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(0xea96, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_offer</i> &#x2014; material icon named "local offer" (round).
  static const IconData local_offer_rounded = IconData(0xf875, 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(0xf184, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_parking</i> &#x2014; material icon named "local parking".
  static const IconData local_parking = IconData(0xe39d, 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(0xea97, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_parking</i> &#x2014; material icon named "local parking" (round).
  static const IconData local_parking_rounded = IconData(0xf876, 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(0xf185, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_pharmacy</i> &#x2014; material icon named "local pharmacy".
  static const IconData local_pharmacy = IconData(0xe39e, 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(0xea98, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_pharmacy</i> &#x2014; material icon named "local pharmacy" (round).
  static const IconData local_pharmacy_rounded = IconData(0xf877, 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(0xf186, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_phone</i> &#x2014; material icon named "local phone".
  static const IconData local_phone = IconData(0xe39f, 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(0xea99, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_phone</i> &#x2014; material icon named "local phone" (round).
  static const IconData local_phone_rounded = IconData(0xf878, 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(0xf187, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_pizza</i> &#x2014; material icon named "local pizza".
  static const IconData local_pizza = IconData(0xe3a0, 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(0xea9a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_pizza</i> &#x2014; material icon named "local pizza" (round).
  static const IconData local_pizza_rounded = IconData(0xf879, 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(0xf188, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_play</i> &#x2014; material icon named "local play".
  static const IconData local_play = IconData(0xe3a1, 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(0xea9b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_play</i> &#x2014; material icon named "local play" (round).
  static const IconData local_play_rounded = IconData(0xf87a, 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(0xf189, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_police</i> &#x2014; material icon named "local police".
  static const IconData local_police = IconData(0xe3a2, 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(0xea9c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_police</i> &#x2014; material icon named "local police" (round).
  static const IconData local_police_rounded = IconData(0xf87b, 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(0xf18a, 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(0xe3a3, 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(0xea9d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_post_office</i> &#x2014; material icon named "local post office" (round).
  static const IconData local_post_office_rounded = IconData(0xf87c, 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(0xf18b, 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(0xe3a4, 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(0xea9e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_print_shop</i> &#x2014; material icon named "local print shop" (round).
  static const IconData local_print_shop_rounded = IconData(0xf87d, 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(0xf18c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_printshop</i> &#x2014; material icon named "local printshop".
  static const IconData local_printshop = IconData(0xe3a4, 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(0xea9e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_printshop</i> &#x2014; material icon named "local printshop" (round).
  static const IconData local_printshop_rounded = IconData(0xf87d, 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(0xf18c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_restaurant</i> &#x2014; material icon named "local restaurant".
  static const IconData local_restaurant = IconData(0xe390, 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(0xea8a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_restaurant</i> &#x2014; material icon named "local restaurant" (round).
  static const IconData local_restaurant_rounded = IconData(0xf869, 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(0xf178, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_see</i> &#x2014; material icon named "local see".
  static const IconData local_see = IconData(0xe3a5, 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(0xea9f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_see</i> &#x2014; material icon named "local see" (round).
  static const IconData local_see_rounded = IconData(0xf87e, 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(0xf18d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_shipping</i> &#x2014; material icon named "local shipping".
  static const IconData local_shipping = IconData(0xe3a6, 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(0xeaa0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_shipping</i> &#x2014; material icon named "local shipping" (round).
  static const IconData local_shipping_rounded = IconData(0xf87f, 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(0xf18e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">local_taxi</i> &#x2014; material icon named "local taxi".
  static const IconData local_taxi = IconData(0xe3a7, 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(0xeaa1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">local_taxi</i> &#x2014; material icon named "local taxi" (round).
  static const IconData local_taxi_rounded = IconData(0xf880, 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(0xf18f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">location_city</i> &#x2014; material icon named "location city".
  static const IconData location_city = IconData(0xe3a8, 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(0xeaa2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">location_city</i> &#x2014; material icon named "location city" (round).
  static const IconData location_city_rounded = IconData(0xf881, 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(0xf190, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">location_disabled</i> &#x2014; material icon named "location disabled".
  static const IconData location_disabled = IconData(0xe3a9, 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(0xeaa3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">location_disabled</i> &#x2014; material icon named "location disabled" (round).
  static const IconData location_disabled_rounded = IconData(0xf882, 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(0xf191, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">location_history</i> &#x2014; material icon named "location history".
  static const IconData location_history = IconData(0xe498, 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(0xeb8f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">location_history</i> &#x2014; material icon named "location history" (round).
  static const IconData location_history_rounded = IconData(0xf006e, 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(0xf27d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">location_off</i> &#x2014; material icon named "location off".
  static const IconData location_off = IconData(0xe3aa, 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(0xeaa4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">location_off</i> &#x2014; material icon named "location off" (round).
  static const IconData location_off_rounded = IconData(0xf883, 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(0xf192, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">location_on</i> &#x2014; material icon named "location on".
  static const IconData location_on = IconData(0xe3ab, 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(0xeaa5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">location_on</i> &#x2014; material icon named "location on" (round).
  static const IconData location_on_rounded = IconData(0xf884, 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(0xf193, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">location_pin</i> &#x2014; material icon named "location pin".
  static const IconData location_pin = IconData(0xe3ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">location_searching</i> &#x2014; material icon named "location searching".
  static const IconData location_searching = IconData(0xe3ad, 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(0xeaa6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">location_searching</i> &#x2014; material icon named "location searching" (round).
  static const IconData location_searching_rounded = IconData(0xf885, 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(0xf194, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lock</i> &#x2014; material icon named "lock".
  static const IconData lock = IconData(0xe3ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">lock</i> &#x2014; material icon named "lock" (sharp).
  static const IconData lock_sharp = IconData(0xeaaa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lock</i> &#x2014; material icon named "lock" (round).
  static const IconData lock_rounded = IconData(0xf889, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">lock</i> &#x2014; material icon named "lock" (outlined).
  static const IconData lock_outlined = IconData(0xf197, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lock_clock</i> &#x2014; material icon named "lock clock".
  static const IconData lock_clock = IconData(0xe3af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">lock_clock</i> &#x2014; material icon named "lock clock" (sharp).
  static const IconData lock_clock_sharp = IconData(0xeaa7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lock_clock</i> &#x2014; material icon named "lock clock" (round).
  static const IconData lock_clock_rounded = IconData(0xf886, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">lock_clock</i> &#x2014; material icon named "lock clock" (outlined).
  static const IconData lock_clock_outlined = IconData(0xf195, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lock_open</i> &#x2014; material icon named "lock open".
  static const IconData lock_open = IconData(0xe3b0, 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(0xeaa8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lock_open</i> &#x2014; material icon named "lock open" (round).
  static const IconData lock_open_rounded = IconData(0xf887, 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(0xf196, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lock_outline</i> &#x2014; material icon named "lock outline".
  static const IconData lock_outline = IconData(0xe3b1, 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(0xeaa9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lock_outline</i> &#x2014; material icon named "lock outline" (round).
  static const IconData lock_outline_rounded = IconData(0xf888, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lock_person</i> &#x2014; material icon named "lock person".
  static const IconData lock_person = IconData(0xf07a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">lock_person</i> &#x2014; material icon named "lock person" (sharp).
  static const IconData lock_person_sharp = IconData(0xf0750, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lock_person</i> &#x2014; material icon named "lock person" (round).
  static const IconData lock_person_rounded = IconData(0xf0800, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">lock_person</i> &#x2014; material icon named "lock person" (outlined).
  static const IconData lock_person_outlined = IconData(0xf06f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lock_reset</i> &#x2014; material icon named "lock reset".
  static const IconData lock_reset = IconData(0xf0536, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">lock_reset</i> &#x2014; material icon named "lock reset" (sharp).
  static const IconData lock_reset_sharp = IconData(0xf0440, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lock_reset</i> &#x2014; material icon named "lock reset" (round).
  static const IconData lock_reset_rounded = IconData(0xf034d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">lock_reset</i> &#x2014; material icon named "lock reset" (outlined).
  static const IconData lock_reset_outlined = IconData(0xf062e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">login</i> &#x2014; material icon named "login".
  static const IconData login = IconData(0xe3b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">login</i> &#x2014; material icon named "login" (sharp).
  static const IconData login_sharp = IconData(0xeaab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">login</i> &#x2014; material icon named "login" (round).
  static const IconData login_rounded = IconData(0xf88a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">login</i> &#x2014; material icon named "login" (outlined).
  static const IconData login_outlined = IconData(0xf198, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">logo_dev</i> &#x2014; material icon named "logo dev".
  static const IconData logo_dev = IconData(0xf0537, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">logo_dev</i> &#x2014; material icon named "logo dev" (sharp).
  static const IconData logo_dev_sharp = IconData(0xf0441, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">logo_dev</i> &#x2014; material icon named "logo dev" (round).
  static const IconData logo_dev_rounded = IconData(0xf034e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">logo_dev</i> &#x2014; material icon named "logo dev" (outlined).
  static const IconData logo_dev_outlined = IconData(0xf062f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">logout</i> &#x2014; material icon named "logout".
  static const IconData logout = IconData(0xe3b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">logout</i> &#x2014; material icon named "logout" (sharp).
  static const IconData logout_sharp = IconData(0xeaac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">logout</i> &#x2014; material icon named "logout" (round).
  static const IconData logout_rounded = IconData(0xf88b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">logout</i> &#x2014; material icon named "logout" (outlined).
  static const IconData logout_outlined = IconData(0xf199, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">looks</i> &#x2014; material icon named "looks".
  static const IconData looks = IconData(0xe3b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">looks</i> &#x2014; material icon named "looks" (sharp).
  static const IconData looks_sharp = IconData(0xeab2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">looks</i> &#x2014; material icon named "looks" (round).
  static const IconData looks_rounded = IconData(0xf891, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">looks</i> &#x2014; material icon named "looks" (outlined).
  static const IconData looks_outlined = IconData(0xf19f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">looks_3</i> &#x2014; material icon named "looks 3".
  static const IconData looks_3 = IconData(0xe3b5, 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(0xeaad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">looks_3</i> &#x2014; material icon named "looks 3" (round).
  static const IconData looks_3_rounded = IconData(0xf88c, 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(0xf19a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">looks_4</i> &#x2014; material icon named "looks 4".
  static const IconData looks_4 = IconData(0xe3b6, 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(0xeaae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">looks_4</i> &#x2014; material icon named "looks 4" (round).
  static const IconData looks_4_rounded = IconData(0xf88d, 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(0xf19b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">looks_5</i> &#x2014; material icon named "looks 5".
  static const IconData looks_5 = IconData(0xe3b7, 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(0xeaaf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">looks_5</i> &#x2014; material icon named "looks 5" (round).
  static const IconData looks_5_rounded = IconData(0xf88e, 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(0xf19c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">looks_6</i> &#x2014; material icon named "looks 6".
  static const IconData looks_6 = IconData(0xe3b8, 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(0xeab0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">looks_6</i> &#x2014; material icon named "looks 6" (round).
  static const IconData looks_6_rounded = IconData(0xf88f, 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(0xf19d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">looks_one</i> &#x2014; material icon named "looks one".
  static const IconData looks_one = IconData(0xe3b9, 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(0xeab1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">looks_one</i> &#x2014; material icon named "looks one" (round).
  static const IconData looks_one_rounded = IconData(0xf890, 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(0xf19e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">looks_two</i> &#x2014; material icon named "looks two".
  static const IconData looks_two = IconData(0xe3ba, 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(0xeab3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">looks_two</i> &#x2014; material icon named "looks two" (round).
  static const IconData looks_two_rounded = IconData(0xf892, 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(0xf1a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">loop</i> &#x2014; material icon named "loop".
  static const IconData loop = IconData(0xe3bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">loop</i> &#x2014; material icon named "loop" (sharp).
  static const IconData loop_sharp = IconData(0xeab4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">loop</i> &#x2014; material icon named "loop" (round).
  static const IconData loop_rounded = IconData(0xf893, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">loop</i> &#x2014; material icon named "loop" (outlined).
  static const IconData loop_outlined = IconData(0xf1a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">loupe</i> &#x2014; material icon named "loupe".
  static const IconData loupe = IconData(0xe3bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">loupe</i> &#x2014; material icon named "loupe" (sharp).
  static const IconData loupe_sharp = IconData(0xeab5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">loupe</i> &#x2014; material icon named "loupe" (round).
  static const IconData loupe_rounded = IconData(0xf894, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">loupe</i> &#x2014; material icon named "loupe" (outlined).
  static const IconData loupe_outlined = IconData(0xf1a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">low_priority</i> &#x2014; material icon named "low priority".
  static const IconData low_priority = IconData(0xe3bd, 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(0xeab6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">low_priority</i> &#x2014; material icon named "low priority" (round).
  static const IconData low_priority_rounded = IconData(0xf895, 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(0xf1a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">loyalty</i> &#x2014; material icon named "loyalty".
  static const IconData loyalty = IconData(0xe3be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">loyalty</i> &#x2014; material icon named "loyalty" (sharp).
  static const IconData loyalty_sharp = IconData(0xeab7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">loyalty</i> &#x2014; material icon named "loyalty" (round).
  static const IconData loyalty_rounded = IconData(0xf896, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">loyalty</i> &#x2014; material icon named "loyalty" (outlined).
  static const IconData loyalty_outlined = IconData(0xf1a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lte_mobiledata</i> &#x2014; material icon named "lte mobiledata".
  static const IconData lte_mobiledata = IconData(0xe3bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">lte_mobiledata</i> &#x2014; material icon named "lte mobiledata" (sharp).
  static const IconData lte_mobiledata_sharp = IconData(0xeab8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lte_mobiledata</i> &#x2014; material icon named "lte mobiledata" (round).
  static const IconData lte_mobiledata_rounded = IconData(0xf897, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">lte_mobiledata</i> &#x2014; material icon named "lte mobiledata" (outlined).
  static const IconData lte_mobiledata_outlined = IconData(0xf1a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lte_plus_mobiledata</i> &#x2014; material icon named "lte plus mobiledata".
  static const IconData lte_plus_mobiledata = IconData(0xe3c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">lte_plus_mobiledata</i> &#x2014; material icon named "lte plus mobiledata" (sharp).
  static const IconData lte_plus_mobiledata_sharp = IconData(0xeab9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lte_plus_mobiledata</i> &#x2014; material icon named "lte plus mobiledata" (round).
  static const IconData lte_plus_mobiledata_rounded = IconData(0xf898, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">lte_plus_mobiledata</i> &#x2014; material icon named "lte plus mobiledata" (outlined).
  static const IconData lte_plus_mobiledata_outlined = IconData(
    0xf1a6,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">luggage</i> &#x2014; material icon named "luggage".
  static const IconData luggage = IconData(0xe3c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">luggage</i> &#x2014; material icon named "luggage" (sharp).
  static const IconData luggage_sharp = IconData(0xeaba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">luggage</i> &#x2014; material icon named "luggage" (round).
  static const IconData luggage_rounded = IconData(0xf899, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">luggage</i> &#x2014; material icon named "luggage" (outlined).
  static const IconData luggage_outlined = IconData(0xf1a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lunch_dining</i> &#x2014; material icon named "lunch dining".
  static const IconData lunch_dining = IconData(0xe3c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">lunch_dining</i> &#x2014; material icon named "lunch dining" (sharp).
  static const IconData lunch_dining_sharp = IconData(0xeabb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lunch_dining</i> &#x2014; material icon named "lunch dining" (round).
  static const IconData lunch_dining_rounded = IconData(0xf89a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">lunch_dining</i> &#x2014; material icon named "lunch dining" (outlined).
  static const IconData lunch_dining_outlined = IconData(0xf1a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">lyrics</i> &#x2014; material icon named "lyrics".
  static const IconData lyrics = IconData(0xf07a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">lyrics</i> &#x2014; material icon named "lyrics" (sharp).
  static const IconData lyrics_sharp = IconData(0xf0751, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">lyrics</i> &#x2014; material icon named "lyrics" (round).
  static const IconData lyrics_rounded = IconData(0xf0801, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">lyrics</i> &#x2014; material icon named "lyrics" (outlined).
  static const IconData lyrics_outlined = IconData(0xf06f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">macro_off</i> &#x2014; material icon named "macro off".
  static const IconData macro_off = IconData(0xf086b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">macro_off</i> &#x2014; material icon named "macro off" (sharp).
  static const IconData macro_off_sharp = IconData(0xf0843, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">macro_off</i> &#x2014; material icon named "macro off" (round).
  static const IconData macro_off_rounded = IconData(0xf088c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">macro_off</i> &#x2014; material icon named "macro off" (outlined).
  static const IconData macro_off_outlined = IconData(0xf08aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mail</i> &#x2014; material icon named "mail".
  static const IconData mail = IconData(0xe3c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mail</i> &#x2014; material icon named "mail" (sharp).
  static const IconData mail_sharp = IconData(0xeabd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mail</i> &#x2014; material icon named "mail" (round).
  static const IconData mail_rounded = IconData(0xf89c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mail</i> &#x2014; material icon named "mail" (outlined).
  static const IconData mail_outlined = IconData(0xf1aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mail_lock</i> &#x2014; material icon named "mail lock".
  static const IconData mail_lock = IconData(0xf07aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mail_lock</i> &#x2014; material icon named "mail lock" (sharp).
  static const IconData mail_lock_sharp = IconData(0xf0752, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mail_lock</i> &#x2014; material icon named "mail lock" (round).
  static const IconData mail_lock_rounded = IconData(0xf0802, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mail_lock</i> &#x2014; material icon named "mail lock" (outlined).
  static const IconData mail_lock_outlined = IconData(0xf06fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mail_outline</i> &#x2014; material icon named "mail outline".
  static const IconData mail_outline = IconData(0xe3c4, 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(0xeabc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mail_outline</i> &#x2014; material icon named "mail outline" (round).
  static const IconData mail_outline_rounded = IconData(0xf89b, 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(0xf1a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">male</i> &#x2014; material icon named "male".
  static const IconData male = IconData(0xe3c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">male</i> &#x2014; material icon named "male" (sharp).
  static const IconData male_sharp = IconData(0xeabe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">male</i> &#x2014; material icon named "male" (round).
  static const IconData male_rounded = IconData(0xf89d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">male</i> &#x2014; material icon named "male" (outlined).
  static const IconData male_outlined = IconData(0xf1ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">man</i> &#x2014; material icon named "man".
  static const IconData man = IconData(0xf0538, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">man</i> &#x2014; material icon named "man" (sharp).
  static const IconData man_sharp = IconData(0xf0442, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">man</i> &#x2014; material icon named "man" (round).
  static const IconData man_rounded = IconData(0xf034f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">man</i> &#x2014; material icon named "man" (outlined).
  static const IconData man_outlined = IconData(0xf0630, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">man_2</i> &#x2014; material icon named "man 2".
  static const IconData man_2 = IconData(0xf086c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">man_2</i> &#x2014; material icon named "man 2" (sharp).
  static const IconData man_2_sharp = IconData(0xf0844, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">man_2</i> &#x2014; material icon named "man 2" (round).
  static const IconData man_2_rounded = IconData(0xf088d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">man_2</i> &#x2014; material icon named "man 2" (outlined).
  static const IconData man_2_outlined = IconData(0xf08ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">man_3</i> &#x2014; material icon named "man 3".
  static const IconData man_3 = IconData(0xf086d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">man_3</i> &#x2014; material icon named "man 3" (sharp).
  static const IconData man_3_sharp = IconData(0xf0845, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">man_3</i> &#x2014; material icon named "man 3" (round).
  static const IconData man_3_rounded = IconData(0xf088e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">man_3</i> &#x2014; material icon named "man 3" (outlined).
  static const IconData man_3_outlined = IconData(0xf08ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">man_4</i> &#x2014; material icon named "man 4".
  static const IconData man_4 = IconData(0xf086e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">man_4</i> &#x2014; material icon named "man 4" (sharp).
  static const IconData man_4_sharp = IconData(0xf0846, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">man_4</i> &#x2014; material icon named "man 4" (round).
  static const IconData man_4_rounded = IconData(0xf088f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">man_4</i> &#x2014; material icon named "man 4" (outlined).
  static const IconData man_4_outlined = IconData(0xf08ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">manage_accounts</i> &#x2014; material icon named "manage accounts".
  static const IconData manage_accounts = IconData(0xe3c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">manage_accounts</i> &#x2014; material icon named "manage accounts" (sharp).
  static const IconData manage_accounts_sharp = IconData(0xeabf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">manage_accounts</i> &#x2014; material icon named "manage accounts" (round).
  static const IconData manage_accounts_rounded = IconData(0xf89e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">manage_accounts</i> &#x2014; material icon named "manage accounts" (outlined).
  static const IconData manage_accounts_outlined = IconData(0xf1ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">manage_history</i> &#x2014; material icon named "manage history".
  static const IconData manage_history = IconData(0xf07ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">manage_history</i> &#x2014; material icon named "manage history" (sharp).
  static const IconData manage_history_sharp = IconData(0xf0753, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">manage_history</i> &#x2014; material icon named "manage history" (round).
  static const IconData manage_history_rounded = IconData(0xf0803, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">manage_history</i> &#x2014; material icon named "manage history" (outlined).
  static const IconData manage_history_outlined = IconData(0xf06fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">manage_search</i> &#x2014; material icon named "manage search".
  static const IconData manage_search = IconData(0xe3c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">manage_search</i> &#x2014; material icon named "manage search" (sharp).
  static const IconData manage_search_sharp = IconData(0xeac0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">manage_search</i> &#x2014; material icon named "manage search" (round).
  static const IconData manage_search_rounded = IconData(0xf89f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">manage_search</i> &#x2014; material icon named "manage search" (outlined).
  static const IconData manage_search_outlined = IconData(0xf1ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">map</i> &#x2014; material icon named "map".
  static const IconData map = IconData(0xe3c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">map</i> &#x2014; material icon named "map" (sharp).
  static const IconData map_sharp = IconData(0xeac1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">map</i> &#x2014; material icon named "map" (round).
  static const IconData map_rounded = IconData(0xf8a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">map</i> &#x2014; material icon named "map" (outlined).
  static const IconData map_outlined = IconData(0xf1ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">maps_home_work</i> &#x2014; material icon named "maps home work".
  static const IconData maps_home_work = IconData(0xe3c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">maps_home_work</i> &#x2014; material icon named "maps home work" (sharp).
  static const IconData maps_home_work_sharp = IconData(0xeac2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">maps_home_work</i> &#x2014; material icon named "maps home work" (round).
  static const IconData maps_home_work_rounded = IconData(0xf8a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">maps_home_work</i> &#x2014; material icon named "maps home work" (outlined).
  static const IconData maps_home_work_outlined = IconData(0xf1af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">maps_ugc</i> &#x2014; material icon named "maps ugc".
  static const IconData maps_ugc = IconData(0xe3ca, 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(0xeac3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">maps_ugc</i> &#x2014; material icon named "maps ugc" (round).
  static const IconData maps_ugc_rounded = IconData(0xf8a2, 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(0xf1b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">margin</i> &#x2014; material icon named "margin".
  static const IconData margin = IconData(0xe3cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">margin</i> &#x2014; material icon named "margin" (sharp).
  static const IconData margin_sharp = IconData(0xeac4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">margin</i> &#x2014; material icon named "margin" (round).
  static const IconData margin_rounded = IconData(0xf8a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">margin</i> &#x2014; material icon named "margin" (outlined).
  static const IconData margin_outlined = IconData(0xf1b1, 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(0xe3cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mark_as_unread</i> &#x2014; material icon named "mark as unread" (sharp).
  static const IconData mark_as_unread_sharp = IconData(0xeac5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mark_as_unread</i> &#x2014; material icon named "mark as unread" (round).
  static const IconData mark_as_unread_rounded = IconData(0xf8a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mark_as_unread</i> &#x2014; material icon named "mark as unread" (outlined).
  static const IconData mark_as_unread_outlined = IconData(0xf1b2, 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(0xe3cd, 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(0xeac6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mark_chat_read</i> &#x2014; material icon named "mark chat read" (round).
  static const IconData mark_chat_read_rounded = IconData(0xf8a5, 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(0xf1b3, 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(0xe3ce, 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(0xeac7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mark_chat_unread</i> &#x2014; material icon named "mark chat unread" (round).
  static const IconData mark_chat_unread_rounded = IconData(0xf8a6, 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(0xf1b4, 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(0xe3cf, 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(0xeac8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mark_email_read</i> &#x2014; material icon named "mark email read" (round).
  static const IconData mark_email_read_rounded = IconData(0xf8a7, 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(0xf1b5, 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(0xe3d0, 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(0xeac9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mark_email_unread</i> &#x2014; material icon named "mark email unread" (round).
  static const IconData mark_email_unread_rounded = IconData(0xf8a8, 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(0xf1b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mark_unread_chat_alt</i> &#x2014; material icon named "mark unread chat alt".
  static const IconData mark_unread_chat_alt = IconData(0xf0539, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mark_unread_chat_alt</i> &#x2014; material icon named "mark unread chat alt" (sharp).
  static const IconData mark_unread_chat_alt_sharp = IconData(0xf0443, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mark_unread_chat_alt</i> &#x2014; material icon named "mark unread chat alt" (round).
  static const IconData mark_unread_chat_alt_rounded = IconData(
    0xf0350,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">mark_unread_chat_alt</i> &#x2014; material icon named "mark unread chat alt" (outlined).
  static const IconData mark_unread_chat_alt_outlined = IconData(
    0xf0631,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">markunread</i> &#x2014; material icon named "markunread".
  static const IconData markunread = IconData(0xe3d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">markunread</i> &#x2014; material icon named "markunread" (sharp).
  static const IconData markunread_sharp = IconData(0xeacb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">markunread</i> &#x2014; material icon named "markunread" (round).
  static const IconData markunread_rounded = IconData(0xf8aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">markunread</i> &#x2014; material icon named "markunread" (outlined).
  static const IconData markunread_outlined = IconData(0xf1b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">markunread_mailbox</i> &#x2014; material icon named "markunread mailbox".
  static const IconData markunread_mailbox = IconData(0xe3d2, 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(0xeaca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">markunread_mailbox</i> &#x2014; material icon named "markunread mailbox" (round).
  static const IconData markunread_mailbox_rounded = IconData(0xf8a9, 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(0xf1b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">masks</i> &#x2014; material icon named "masks".
  static const IconData masks = IconData(0xe3d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">masks</i> &#x2014; material icon named "masks" (sharp).
  static const IconData masks_sharp = IconData(0xeacc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">masks</i> &#x2014; material icon named "masks" (round).
  static const IconData masks_rounded = IconData(0xf8ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">masks</i> &#x2014; material icon named "masks" (outlined).
  static const IconData masks_outlined = IconData(0xf1b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">maximize</i> &#x2014; material icon named "maximize".
  static const IconData maximize = IconData(0xe3d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">maximize</i> &#x2014; material icon named "maximize" (sharp).
  static const IconData maximize_sharp = IconData(0xeacd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">maximize</i> &#x2014; material icon named "maximize" (round).
  static const IconData maximize_rounded = IconData(0xf8ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">maximize</i> &#x2014; material icon named "maximize" (outlined).
  static const IconData maximize_outlined = IconData(0xf1ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">media_bluetooth_off</i> &#x2014; material icon named "media bluetooth off".
  static const IconData media_bluetooth_off = IconData(0xe3d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">media_bluetooth_off</i> &#x2014; material icon named "media bluetooth off" (sharp).
  static const IconData media_bluetooth_off_sharp = IconData(0xeace, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">media_bluetooth_off</i> &#x2014; material icon named "media bluetooth off" (round).
  static const IconData media_bluetooth_off_rounded = IconData(0xf8ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">media_bluetooth_off</i> &#x2014; material icon named "media bluetooth off" (outlined).
  static const IconData media_bluetooth_off_outlined = IconData(
    0xf1bb,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">media_bluetooth_on</i> &#x2014; material icon named "media bluetooth on".
  static const IconData media_bluetooth_on = IconData(0xe3d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">media_bluetooth_on</i> &#x2014; material icon named "media bluetooth on" (sharp).
  static const IconData media_bluetooth_on_sharp = IconData(0xeacf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">media_bluetooth_on</i> &#x2014; material icon named "media bluetooth on" (round).
  static const IconData media_bluetooth_on_rounded = IconData(0xf8ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">media_bluetooth_on</i> &#x2014; material icon named "media bluetooth on" (outlined).
  static const IconData media_bluetooth_on_outlined = IconData(0xf1bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mediation</i> &#x2014; material icon named "mediation".
  static const IconData mediation = IconData(0xe3d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mediation</i> &#x2014; material icon named "mediation" (sharp).
  static const IconData mediation_sharp = IconData(0xead0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mediation</i> &#x2014; material icon named "mediation" (round).
  static const IconData mediation_rounded = IconData(0xf8af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mediation</i> &#x2014; material icon named "mediation" (outlined).
  static const IconData mediation_outlined = IconData(0xf1bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">medical_information</i> &#x2014; material icon named "medical information".
  static const IconData medical_information = IconData(0xf07ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">medical_information</i> &#x2014; material icon named "medical information" (sharp).
  static const IconData medical_information_sharp = IconData(0xf0754, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">medical_information</i> &#x2014; material icon named "medical information" (round).
  static const IconData medical_information_rounded = IconData(
    0xf0804,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">medical_information</i> &#x2014; material icon named "medical information" (outlined).
  static const IconData medical_information_outlined = IconData(
    0xf06fc,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">medical_services</i> &#x2014; material icon named "medical services".
  static const IconData medical_services = IconData(0xe3d8, 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(0xead1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">medical_services</i> &#x2014; material icon named "medical services" (round).
  static const IconData medical_services_rounded = IconData(0xf8b0, 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(0xf1be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">medication</i> &#x2014; material icon named "medication".
  static const IconData medication = IconData(0xe3d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">medication</i> &#x2014; material icon named "medication" (sharp).
  static const IconData medication_sharp = IconData(0xead2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">medication</i> &#x2014; material icon named "medication" (round).
  static const IconData medication_rounded = IconData(0xf8b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">medication</i> &#x2014; material icon named "medication" (outlined).
  static const IconData medication_outlined = IconData(0xf1bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">medication_liquid</i> &#x2014; material icon named "medication liquid".
  static const IconData medication_liquid = IconData(0xf053a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">medication_liquid</i> &#x2014; material icon named "medication liquid" (sharp).
  static const IconData medication_liquid_sharp = IconData(0xf0444, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">medication_liquid</i> &#x2014; material icon named "medication liquid" (round).
  static const IconData medication_liquid_rounded = IconData(0xf0351, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">medication_liquid</i> &#x2014; material icon named "medication liquid" (outlined).
  static const IconData medication_liquid_outlined = IconData(0xf0632, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">meeting_room</i> &#x2014; material icon named "meeting room".
  static const IconData meeting_room = IconData(0xe3da, 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(0xead3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">meeting_room</i> &#x2014; material icon named "meeting room" (round).
  static const IconData meeting_room_rounded = IconData(0xf8b2, 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(0xf1c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">memory</i> &#x2014; material icon named "memory".
  static const IconData memory = IconData(0xe3db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">memory</i> &#x2014; material icon named "memory" (sharp).
  static const IconData memory_sharp = IconData(0xead4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">memory</i> &#x2014; material icon named "memory" (round).
  static const IconData memory_rounded = IconData(0xf8b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">memory</i> &#x2014; material icon named "memory" (outlined).
  static const IconData memory_outlined = IconData(0xf1c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">menu</i> &#x2014; material icon named "menu".
  static const IconData menu = IconData(0xe3dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">menu</i> &#x2014; material icon named "menu" (sharp).
  static const IconData menu_sharp = IconData(0xead7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">menu</i> &#x2014; material icon named "menu" (round).
  static const IconData menu_rounded = IconData(0xf8b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">menu</i> &#x2014; material icon named "menu" (outlined).
  static const IconData menu_outlined = IconData(0xf1c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">menu_book</i> &#x2014; material icon named "menu book".
  static const IconData menu_book = IconData(0xe3dd, 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(0xead5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">menu_book</i> &#x2014; material icon named "menu book" (round).
  static const IconData menu_book_rounded = IconData(0xf8b4, 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(0xf1c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">menu_open</i> &#x2014; material icon named "menu open".
  static const IconData menu_open = IconData(0xe3de, 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(0xead6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">menu_open</i> &#x2014; material icon named "menu open" (round).
  static const IconData menu_open_rounded = IconData(0xf8b5, 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(0xf1c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">merge</i> &#x2014; material icon named "merge".
  static const IconData merge = IconData(0xf053b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">merge</i> &#x2014; material icon named "merge" (sharp).
  static const IconData merge_sharp = IconData(0xf0445, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">merge</i> &#x2014; material icon named "merge" (round).
  static const IconData merge_rounded = IconData(0xf0352, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">merge</i> &#x2014; material icon named "merge" (outlined).
  static const IconData merge_outlined = IconData(0xf0633, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">merge_type</i> &#x2014; material icon named "merge type".
  static const IconData merge_type = IconData(0xe3df, 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(0xead8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">merge_type</i> &#x2014; material icon named "merge type" (round).
  static const IconData merge_type_rounded = IconData(0xf8b7, 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(0xf1c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">message</i> &#x2014; material icon named "message".
  static const IconData message = IconData(0xe3e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">message</i> &#x2014; material icon named "message" (sharp).
  static const IconData message_sharp = IconData(0xead9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">message</i> &#x2014; material icon named "message" (round).
  static const IconData message_rounded = IconData(0xf8b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">message</i> &#x2014; material icon named "message" (outlined).
  static const IconData message_outlined = IconData(0xf1c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">messenger</i> &#x2014; material icon named "messenger".
  static const IconData messenger = IconData(0xe154, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">messenger</i> &#x2014; material icon named "messenger" (sharp).
  static const IconData messenger_sharp = IconData(0xe851, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">messenger</i> &#x2014; material icon named "messenger" (round).
  static const IconData messenger_rounded = IconData(0xf630, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">messenger</i> &#x2014; material icon named "messenger" (outlined).
  static const IconData messenger_outlined = IconData(0xef43, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">messenger_outline</i> &#x2014; material icon named "messenger outline".
  static const IconData messenger_outline = IconData(0xe155, 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(0xe850, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">messenger_outline</i> &#x2014; material icon named "messenger outline" (round).
  static const IconData messenger_outline_rounded = IconData(0xf62f, 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(0xef42, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mic</i> &#x2014; material icon named "mic".
  static const IconData mic = IconData(0xe3e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mic</i> &#x2014; material icon named "mic" (sharp).
  static const IconData mic_sharp = IconData(0xeade, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mic</i> &#x2014; material icon named "mic" (round).
  static const IconData mic_rounded = IconData(0xf8bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mic</i> &#x2014; material icon named "mic" (outlined).
  static const IconData mic_outlined = IconData(0xf1cb, 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(0xe3e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mic_external_off</i> &#x2014; material icon named "mic external off" (sharp).
  static const IconData mic_external_off_sharp = IconData(0xeada, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mic_external_off</i> &#x2014; material icon named "mic external off" (round).
  static const IconData mic_external_off_rounded = IconData(0xf8b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mic_external_off</i> &#x2014; material icon named "mic external off" (outlined).
  static const IconData mic_external_off_outlined = IconData(0xf1c7, 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(0xe3e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mic_external_on</i> &#x2014; material icon named "mic external on" (sharp).
  static const IconData mic_external_on_sharp = IconData(0xeadb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mic_external_on</i> &#x2014; material icon named "mic external on" (round).
  static const IconData mic_external_on_rounded = IconData(0xf8ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mic_external_on</i> &#x2014; material icon named "mic external on" (outlined).
  static const IconData mic_external_on_outlined = IconData(0xf1c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mic_none</i> &#x2014; material icon named "mic none".
  static const IconData mic_none = IconData(0xe3e4, 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(0xeadc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mic_none</i> &#x2014; material icon named "mic none" (round).
  static const IconData mic_none_rounded = IconData(0xf8bb, 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(0xf1c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mic_off</i> &#x2014; material icon named "mic off".
  static const IconData mic_off = IconData(0xe3e5, 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(0xeadd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mic_off</i> &#x2014; material icon named "mic off" (round).
  static const IconData mic_off_rounded = IconData(0xf8bc, 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(0xf1ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">microwave</i> &#x2014; material icon named "microwave".
  static const IconData microwave = IconData(0xe3e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">microwave</i> &#x2014; material icon named "microwave" (sharp).
  static const IconData microwave_sharp = IconData(0xeadf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">microwave</i> &#x2014; material icon named "microwave" (round).
  static const IconData microwave_rounded = IconData(0xf8be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">microwave</i> &#x2014; material icon named "microwave" (outlined).
  static const IconData microwave_outlined = IconData(0xf1cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">military_tech</i> &#x2014; material icon named "military tech".
  static const IconData military_tech = IconData(0xe3e7, 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(0xeae0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">military_tech</i> &#x2014; material icon named "military tech" (round).
  static const IconData military_tech_rounded = IconData(0xf8bf, 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(0xf1cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">minimize</i> &#x2014; material icon named "minimize".
  static const IconData minimize = IconData(0xe3e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">minimize</i> &#x2014; material icon named "minimize" (sharp).
  static const IconData minimize_sharp = IconData(0xeae1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">minimize</i> &#x2014; material icon named "minimize" (round).
  static const IconData minimize_rounded = IconData(0xf8c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">minimize</i> &#x2014; material icon named "minimize" (outlined).
  static const IconData minimize_outlined = IconData(0xf1ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">minor_crash</i> &#x2014; material icon named "minor crash".
  static const IconData minor_crash = IconData(0xf07ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">minor_crash</i> &#x2014; material icon named "minor crash" (sharp).
  static const IconData minor_crash_sharp = IconData(0xf0755, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">minor_crash</i> &#x2014; material icon named "minor crash" (round).
  static const IconData minor_crash_rounded = IconData(0xf0805, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">minor_crash</i> &#x2014; material icon named "minor crash" (outlined).
  static const IconData minor_crash_outlined = IconData(0xf06fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">miscellaneous_services</i> &#x2014; material icon named "miscellaneous services".
  static const IconData miscellaneous_services = IconData(0xe3e9, 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(
    0xeae2,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">miscellaneous_services</i> &#x2014; material icon named "miscellaneous services" (round).
  static const IconData miscellaneous_services_rounded = IconData(
    0xf8c1,
    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(
    0xf1cf,
    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(0xe3ea, 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(0xeae3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">missed_video_call</i> &#x2014; material icon named "missed video call" (round).
  static const IconData missed_video_call_rounded = IconData(0xf8c2, 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(0xf1d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mms</i> &#x2014; material icon named "mms".
  static const IconData mms = IconData(0xe3eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mms</i> &#x2014; material icon named "mms" (sharp).
  static const IconData mms_sharp = IconData(0xeae4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mms</i> &#x2014; material icon named "mms" (round).
  static const IconData mms_rounded = IconData(0xf8c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mms</i> &#x2014; material icon named "mms" (outlined).
  static const IconData mms_outlined = IconData(0xf1d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mobile_friendly</i> &#x2014; material icon named "mobile friendly".
  static const IconData mobile_friendly = IconData(0xe3ec, 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(0xeae5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mobile_friendly</i> &#x2014; material icon named "mobile friendly" (round).
  static const IconData mobile_friendly_rounded = IconData(0xf8c4, 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(0xf1d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mobile_off</i> &#x2014; material icon named "mobile off".
  static const IconData mobile_off = IconData(0xe3ed, 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(0xeae6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mobile_off</i> &#x2014; material icon named "mobile off" (round).
  static const IconData mobile_off_rounded = IconData(0xf8c5, 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(0xf1d3, 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(
    0xe3ee,
    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(
    0xeae7,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">mobile_screen_share</i> &#x2014; material icon named "mobile screen share" (round).
  static const IconData mobile_screen_share_rounded = IconData(
    0xf8c6,
    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(
    0xf1d4,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">mobiledata_off</i> &#x2014; material icon named "mobiledata off".
  static const IconData mobiledata_off = IconData(0xe3ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mobiledata_off</i> &#x2014; material icon named "mobiledata off" (sharp).
  static const IconData mobiledata_off_sharp = IconData(0xeae8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mobiledata_off</i> &#x2014; material icon named "mobiledata off" (round).
  static const IconData mobiledata_off_rounded = IconData(0xf8c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mobiledata_off</i> &#x2014; material icon named "mobiledata off" (outlined).
  static const IconData mobiledata_off_outlined = IconData(0xf1d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mode</i> &#x2014; material icon named "mode".
  static const IconData mode = IconData(0xe3f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mode</i> &#x2014; material icon named "mode" (sharp).
  static const IconData mode_sharp = IconData(0xeaed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mode</i> &#x2014; material icon named "mode" (round).
  static const IconData mode_rounded = IconData(0xf8cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mode</i> &#x2014; material icon named "mode" (outlined).
  static const IconData mode_outlined = IconData(0xf1da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mode_comment</i> &#x2014; material icon named "mode comment".
  static const IconData mode_comment = IconData(0xe3f1, 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(0xeae9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mode_comment</i> &#x2014; material icon named "mode comment" (round).
  static const IconData mode_comment_rounded = IconData(0xf8c8, 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(0xf1d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mode_edit</i> &#x2014; material icon named "mode edit".
  static const IconData mode_edit = IconData(0xe3f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mode_edit</i> &#x2014; material icon named "mode edit" (sharp).
  static const IconData mode_edit_sharp = IconData(0xeaeb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mode_edit</i> &#x2014; material icon named "mode edit" (round).
  static const IconData mode_edit_rounded = IconData(0xf8ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mode_edit</i> &#x2014; material icon named "mode edit" (outlined).
  static const IconData mode_edit_outlined = IconData(0xf1d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mode_edit_outline</i> &#x2014; material icon named "mode edit outline".
  static const IconData mode_edit_outline = IconData(0xe3f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mode_edit_outline</i> &#x2014; material icon named "mode edit outline" (sharp).
  static const IconData mode_edit_outline_sharp = IconData(0xeaea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mode_edit_outline</i> &#x2014; material icon named "mode edit outline" (round).
  static const IconData mode_edit_outline_rounded = IconData(0xf8c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mode_edit_outline</i> &#x2014; material icon named "mode edit outline" (outlined).
  static const IconData mode_edit_outline_outlined = IconData(0xf1d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mode_fan_off</i> &#x2014; material icon named "mode fan off".
  static const IconData mode_fan_off = IconData(0xf07ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mode_fan_off</i> &#x2014; material icon named "mode fan off" (sharp).
  static const IconData mode_fan_off_sharp = IconData(0xf0756, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mode_fan_off</i> &#x2014; material icon named "mode fan off" (round).
  static const IconData mode_fan_off_rounded = IconData(0xf0806, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mode_fan_off</i> &#x2014; material icon named "mode fan off" (outlined).
  static const IconData mode_fan_off_outlined = IconData(0xf06fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mode_night</i> &#x2014; material icon named "mode night".
  static const IconData mode_night = IconData(0xe3f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mode_night</i> &#x2014; material icon named "mode night" (sharp).
  static const IconData mode_night_sharp = IconData(0xeaec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mode_night</i> &#x2014; material icon named "mode night" (round).
  static const IconData mode_night_rounded = IconData(0xf8cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mode_night</i> &#x2014; material icon named "mode night" (outlined).
  static const IconData mode_night_outlined = IconData(0xf1d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mode_of_travel</i> &#x2014; material icon named "mode of travel".
  static const IconData mode_of_travel = IconData(0xf053c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mode_of_travel</i> &#x2014; material icon named "mode of travel" (sharp).
  static const IconData mode_of_travel_sharp = IconData(0xf0446, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mode_of_travel</i> &#x2014; material icon named "mode of travel" (round).
  static const IconData mode_of_travel_rounded = IconData(0xf0353, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mode_of_travel</i> &#x2014; material icon named "mode of travel" (outlined).
  static const IconData mode_of_travel_outlined = IconData(0xf0634, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mode_standby</i> &#x2014; material icon named "mode standby".
  static const IconData mode_standby = IconData(0xe3f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mode_standby</i> &#x2014; material icon named "mode standby" (sharp).
  static const IconData mode_standby_sharp = IconData(0xeaee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mode_standby</i> &#x2014; material icon named "mode standby" (round).
  static const IconData mode_standby_rounded = IconData(0xf8cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mode_standby</i> &#x2014; material icon named "mode standby" (outlined).
  static const IconData mode_standby_outlined = IconData(0xf1db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">model_training</i> &#x2014; material icon named "model training".
  static const IconData model_training = IconData(0xe3f6, 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(0xeaef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">model_training</i> &#x2014; material icon named "model training" (round).
  static const IconData model_training_rounded = IconData(0xf8ce, 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(0xf1dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">monetization_on</i> &#x2014; material icon named "monetization on".
  static const IconData monetization_on = IconData(0xe3f7, 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(0xeaf0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">monetization_on</i> &#x2014; material icon named "monetization on" (round).
  static const IconData monetization_on_rounded = IconData(0xf8cf, 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(0xf1dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">money</i> &#x2014; material icon named "money".
  static const IconData money = IconData(0xe3f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">money</i> &#x2014; material icon named "money" (sharp).
  static const IconData money_sharp = IconData(0xeaf3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">money</i> &#x2014; material icon named "money" (round).
  static const IconData money_rounded = IconData(0xf8d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">money</i> &#x2014; material icon named "money" (outlined).
  static const IconData money_outlined = IconData(0xf1e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">money_off</i> &#x2014; material icon named "money off".
  static const IconData money_off = IconData(0xe3f9, 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(0xeaf2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">money_off</i> &#x2014; material icon named "money off" (round).
  static const IconData money_off_rounded = IconData(0xf8d1, 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(0xf1df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">money_off_csred</i> &#x2014; material icon named "money off csred".
  static const IconData money_off_csred = IconData(0xe3fa, 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(0xeaf1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">money_off_csred</i> &#x2014; material icon named "money off csred" (round).
  static const IconData money_off_csred_rounded = IconData(0xf8d0, 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(0xf1de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">monitor</i> &#x2014; material icon named "monitor".
  static const IconData monitor = IconData(0xe3fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">monitor</i> &#x2014; material icon named "monitor" (sharp).
  static const IconData monitor_sharp = IconData(0xeaf4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">monitor</i> &#x2014; material icon named "monitor" (round).
  static const IconData monitor_rounded = IconData(0xf8d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">monitor</i> &#x2014; material icon named "monitor" (outlined).
  static const IconData monitor_outlined = IconData(0xf1e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">monitor_heart</i> &#x2014; material icon named "monitor heart".
  static const IconData monitor_heart = IconData(0xf053d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">monitor_heart</i> &#x2014; material icon named "monitor heart" (sharp).
  static const IconData monitor_heart_sharp = IconData(0xf0447, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">monitor_heart</i> &#x2014; material icon named "monitor heart" (round).
  static const IconData monitor_heart_rounded = IconData(0xf0354, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">monitor_heart</i> &#x2014; material icon named "monitor heart" (outlined).
  static const IconData monitor_heart_outlined = IconData(0xf0635, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">monitor_weight</i> &#x2014; material icon named "monitor weight".
  static const IconData monitor_weight = IconData(0xe3fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">monitor_weight</i> &#x2014; material icon named "monitor weight" (sharp).
  static const IconData monitor_weight_sharp = IconData(0xeaf5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">monitor_weight</i> &#x2014; material icon named "monitor weight" (round).
  static const IconData monitor_weight_rounded = IconData(0xf8d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">monitor_weight</i> &#x2014; material icon named "monitor weight" (outlined).
  static const IconData monitor_weight_outlined = IconData(0xf1e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">monochrome_photos</i> &#x2014; material icon named "monochrome photos".
  static const IconData monochrome_photos = IconData(0xe3fd, 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(0xeaf6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">monochrome_photos</i> &#x2014; material icon named "monochrome photos" (round).
  static const IconData monochrome_photos_rounded = IconData(0xf8d5, 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(0xf1e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mood</i> &#x2014; material icon named "mood".
  static const IconData mood = IconData(0xe3fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mood</i> &#x2014; material icon named "mood" (sharp).
  static const IconData mood_sharp = IconData(0xeaf8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mood</i> &#x2014; material icon named "mood" (round).
  static const IconData mood_rounded = IconData(0xf8d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mood</i> &#x2014; material icon named "mood" (outlined).
  static const IconData mood_outlined = IconData(0xf1e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mood_bad</i> &#x2014; material icon named "mood bad".
  static const IconData mood_bad = IconData(0xe3ff, 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(0xeaf7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mood_bad</i> &#x2014; material icon named "mood bad" (round).
  static const IconData mood_bad_rounded = IconData(0xf8d6, 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(0xf1e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">moped</i> &#x2014; material icon named "moped".
  static const IconData moped = IconData(0xe400, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">moped</i> &#x2014; material icon named "moped" (sharp).
  static const IconData moped_sharp = IconData(0xeaf9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">moped</i> &#x2014; material icon named "moped" (round).
  static const IconData moped_rounded = IconData(0xf8d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">moped</i> &#x2014; material icon named "moped" (outlined).
  static const IconData moped_outlined = IconData(0xf1e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">more</i> &#x2014; material icon named "more".
  static const IconData more = IconData(0xe401, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">more</i> &#x2014; material icon named "more" (sharp).
  static const IconData more_sharp = IconData(0xeafb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">more</i> &#x2014; material icon named "more" (round).
  static const IconData more_rounded = IconData(0xf8da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">more</i> &#x2014; material icon named "more" (outlined).
  static const IconData more_outlined = IconData(0xf1e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">more_horiz</i> &#x2014; material icon named "more horiz".
  static const IconData more_horiz = IconData(0xe402, 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(0xeafa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">more_horiz</i> &#x2014; material icon named "more horiz" (round).
  static const IconData more_horiz_rounded = IconData(0xf8d9, 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(0xf1e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">more_time</i> &#x2014; material icon named "more time".
  static const IconData more_time = IconData(0xe403, 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(0xeafc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">more_time</i> &#x2014; material icon named "more time" (round).
  static const IconData more_time_rounded = IconData(0xf8db, 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(0xf1e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">more_vert</i> &#x2014; material icon named "more vert".
  static const IconData more_vert = IconData(0xe404, 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(0xeafd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">more_vert</i> &#x2014; material icon named "more vert" (round).
  static const IconData more_vert_rounded = IconData(0xf8dc, 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(0xf1ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mosque</i> &#x2014; material icon named "mosque".
  static const IconData mosque = IconData(0xf053e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mosque</i> &#x2014; material icon named "mosque" (sharp).
  static const IconData mosque_sharp = IconData(0xf0448, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mosque</i> &#x2014; material icon named "mosque" (round).
  static const IconData mosque_rounded = IconData(0xf0355, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mosque</i> &#x2014; material icon named "mosque" (outlined).
  static const IconData mosque_outlined = IconData(0xf0636, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">motion_photos_auto</i> &#x2014; material icon named "motion photos auto".
  static const IconData motion_photos_auto = IconData(0xe405, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">motion_photos_auto</i> &#x2014; material icon named "motion photos auto" (sharp).
  static const IconData motion_photos_auto_sharp = IconData(0xeafe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">motion_photos_auto</i> &#x2014; material icon named "motion photos auto" (round).
  static const IconData motion_photos_auto_rounded = IconData(0xf8dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">motion_photos_auto</i> &#x2014; material icon named "motion photos auto" (outlined).
  static const IconData motion_photos_auto_outlined = IconData(0xf1eb, 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(0xe406, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">motion_photos_off</i> &#x2014; material icon named "motion photos off" (sharp).
  static const IconData motion_photos_off_sharp = IconData(0xeaff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">motion_photos_off</i> &#x2014; material icon named "motion photos off" (round).
  static const IconData motion_photos_off_rounded = IconData(0xf8de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">motion_photos_off</i> &#x2014; material icon named "motion photos off" (outlined).
  static const IconData motion_photos_off_outlined = IconData(0xf1ec, 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(0xe407, 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(0xeb00, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">motion_photos_on</i> &#x2014; material icon named "motion photos on" (round).
  static const IconData motion_photos_on_rounded = IconData(0xf8df, 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(0xf1ed, 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(0xe408, 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(0xeb01, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">motion_photos_pause</i> &#x2014; material icon named "motion photos pause" (round).
  static const IconData motion_photos_pause_rounded = IconData(0xf8e0, 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(
    0xf1ee,
    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(0xe409, 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(0xeb02, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">motion_photos_paused</i> &#x2014; material icon named "motion photos paused" (round).
  static const IconData motion_photos_paused_rounded = IconData(
    0xf8e1,
    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(
    0xf1ef,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">motorcycle</i> &#x2014; material icon named "motorcycle".
  static const IconData motorcycle = IconData(0xe40a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">motorcycle</i> &#x2014; material icon named "motorcycle" (sharp).
  static const IconData motorcycle_sharp = IconData(0xeb03, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">motorcycle</i> &#x2014; material icon named "motorcycle" (round).
  static const IconData motorcycle_rounded = IconData(0xf8e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">motorcycle</i> &#x2014; material icon named "motorcycle" (outlined).
  static const IconData motorcycle_outlined = IconData(0xf1f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mouse</i> &#x2014; material icon named "mouse".
  static const IconData mouse = IconData(0xe40b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mouse</i> &#x2014; material icon named "mouse" (sharp).
  static const IconData mouse_sharp = IconData(0xeb04, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mouse</i> &#x2014; material icon named "mouse" (round).
  static const IconData mouse_rounded = IconData(0xf8e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mouse</i> &#x2014; material icon named "mouse" (outlined).
  static const IconData mouse_outlined = IconData(0xf1f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">move_down</i> &#x2014; material icon named "move down".
  static const IconData move_down = IconData(0xf053f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">move_down</i> &#x2014; material icon named "move down" (sharp).
  static const IconData move_down_sharp = IconData(0xf0449, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">move_down</i> &#x2014; material icon named "move down" (round).
  static const IconData move_down_rounded = IconData(0xf0356, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">move_down</i> &#x2014; material icon named "move down" (outlined).
  static const IconData move_down_outlined = IconData(0xf0637, 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(0xe40c, 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(0xeb05, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">move_to_inbox</i> &#x2014; material icon named "move to inbox" (round).
  static const IconData move_to_inbox_rounded = IconData(0xf8e4, 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(0xf1f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">move_up</i> &#x2014; material icon named "move up".
  static const IconData move_up = IconData(0xf0540, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">move_up</i> &#x2014; material icon named "move up" (sharp).
  static const IconData move_up_sharp = IconData(0xf044a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">move_up</i> &#x2014; material icon named "move up" (round).
  static const IconData move_up_rounded = IconData(0xf0357, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">move_up</i> &#x2014; material icon named "move up" (outlined).
  static const IconData move_up_outlined = IconData(0xf0638, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">movie</i> &#x2014; material icon named "movie".
  static const IconData movie = IconData(0xe40d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">movie</i> &#x2014; material icon named "movie" (sharp).
  static const IconData movie_sharp = IconData(0xeb08, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">movie</i> &#x2014; material icon named "movie" (round).
  static const IconData movie_rounded = IconData(0xf8e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">movie</i> &#x2014; material icon named "movie" (outlined).
  static const IconData movie_outlined = IconData(0xf1f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">movie_creation</i> &#x2014; material icon named "movie creation".
  static const IconData movie_creation = IconData(0xe40e, 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(0xeb06, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">movie_creation</i> &#x2014; material icon named "movie creation" (round).
  static const IconData movie_creation_rounded = IconData(0xf8e5, 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(0xf1f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">movie_edit</i> &#x2014; material icon named "movie edit".
  static const IconData movie_edit = IconData(0xf08b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">movie_filter</i> &#x2014; material icon named "movie filter".
  static const IconData movie_filter = IconData(0xe40f, 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(0xeb07, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">movie_filter</i> &#x2014; material icon named "movie filter" (round).
  static const IconData movie_filter_rounded = IconData(0xf8e6, 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(0xf1f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">moving</i> &#x2014; material icon named "moving".
  static const IconData moving = IconData(0xe410, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">moving</i> &#x2014; material icon named "moving" (sharp).
  static const IconData moving_sharp = IconData(0xeb09, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">moving</i> &#x2014; material icon named "moving" (round).
  static const IconData moving_rounded = IconData(0xf8e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">moving</i> &#x2014; material icon named "moving" (outlined).
  static const IconData moving_outlined = IconData(0xf1f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">mp</i> &#x2014; material icon named "mp".
  static const IconData mp = IconData(0xe411, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">mp</i> &#x2014; material icon named "mp" (sharp).
  static const IconData mp_sharp = IconData(0xeb0a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">mp</i> &#x2014; material icon named "mp" (round).
  static const IconData mp_rounded = IconData(0xf8e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">mp</i> &#x2014; material icon named "mp" (outlined).
  static const IconData mp_outlined = IconData(0xf1f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">multiline_chart</i> &#x2014; material icon named "multiline chart".
  static const IconData multiline_chart = IconData(
    0xe412,
    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(
    0xeb0b,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">multiline_chart</i> &#x2014; material icon named "multiline chart" (round).
  static const IconData multiline_chart_rounded = IconData(
    0xf8ea,
    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(
    0xf1f8,
    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(0xe413, 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(0xeb0c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">multiple_stop</i> &#x2014; material icon named "multiple stop" (round).
  static const IconData multiple_stop_rounded = IconData(0xf8eb, 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(0xf1f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">multitrack_audio</i> &#x2014; material icon named "multitrack audio".
  static const IconData multitrack_audio = IconData(0xe2e3, 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(0xe9de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">multitrack_audio</i> &#x2014; material icon named "multitrack audio" (round).
  static const IconData multitrack_audio_rounded = IconData(0xf7bd, 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(0xf0d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">museum</i> &#x2014; material icon named "museum".
  static const IconData museum = IconData(0xe414, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">museum</i> &#x2014; material icon named "museum" (sharp).
  static const IconData museum_sharp = IconData(0xeb0d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">museum</i> &#x2014; material icon named "museum" (round).
  static const IconData museum_rounded = IconData(0xf8ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">museum</i> &#x2014; material icon named "museum" (outlined).
  static const IconData museum_outlined = IconData(0xf1fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">music_note</i> &#x2014; material icon named "music note".
  static const IconData music_note = IconData(0xe415, 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(0xeb0e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">music_note</i> &#x2014; material icon named "music note" (round).
  static const IconData music_note_rounded = IconData(0xf8ed, 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(0xf1fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">music_off</i> &#x2014; material icon named "music off".
  static const IconData music_off = IconData(0xe416, 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(0xeb0f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">music_off</i> &#x2014; material icon named "music off" (round).
  static const IconData music_off_rounded = IconData(0xf8ee, 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(0xf1fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">music_video</i> &#x2014; material icon named "music video".
  static const IconData music_video = IconData(0xe417, 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(0xeb10, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">music_video</i> &#x2014; material icon named "music video" (round).
  static const IconData music_video_rounded = IconData(0xf8ef, 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(0xf1fd, 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(0xe375, 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(0xea70, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">my_library_add</i> &#x2014; material icon named "my library add" (round).
  static const IconData my_library_add_rounded = IconData(0xf84f, 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(0xf15f, 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(0xe377, 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(0xea71, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">my_library_books</i> &#x2014; material icon named "my library books" (round).
  static const IconData my_library_books_rounded = IconData(0xf850, 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(0xf160, 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(0xe378, 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(0xea72, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">my_library_music</i> &#x2014; material icon named "my library music" (round).
  static const IconData my_library_music_rounded = IconData(0xf851, 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(0xf161, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">my_location</i> &#x2014; material icon named "my location".
  static const IconData my_location = IconData(0xe418, 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(0xeb11, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">my_location</i> &#x2014; material icon named "my location" (round).
  static const IconData my_location_rounded = IconData(0xf8f0, 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(0xf1fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">nat</i> &#x2014; material icon named "nat".
  static const IconData nat = IconData(0xe419, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">nat</i> &#x2014; material icon named "nat" (sharp).
  static const IconData nat_sharp = IconData(0xeb12, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">nat</i> &#x2014; material icon named "nat" (round).
  static const IconData nat_rounded = IconData(0xf8f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">nat</i> &#x2014; material icon named "nat" (outlined).
  static const IconData nat_outlined = IconData(0xf1ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">nature</i> &#x2014; material icon named "nature".
  static const IconData nature = IconData(0xe41a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">nature</i> &#x2014; material icon named "nature" (sharp).
  static const IconData nature_sharp = IconData(0xeb14, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">nature</i> &#x2014; material icon named "nature" (round).
  static const IconData nature_rounded = IconData(0xf8f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">nature</i> &#x2014; material icon named "nature" (outlined).
  static const IconData nature_outlined = IconData(0xf200, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">nature_people</i> &#x2014; material icon named "nature people".
  static const IconData nature_people = IconData(0xe41b, 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(0xeb13, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">nature_people</i> &#x2014; material icon named "nature people" (round).
  static const IconData nature_people_rounded = IconData(0xf8f2, 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(0xf201, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">navigate_before</i> &#x2014; material icon named "navigate before".
  static const IconData navigate_before = IconData(
    0xe41c,
    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(
    0xeb15,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">navigate_before</i> &#x2014; material icon named "navigate before" (round).
  static const IconData navigate_before_rounded = IconData(
    0xf8f4,
    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(
    0xf202,
    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(
    0xe41d,
    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(
    0xeb16,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">navigate_next</i> &#x2014; material icon named "navigate next" (round).
  static const IconData navigate_next_rounded = IconData(
    0xf8f5,
    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(
    0xf203,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">navigation</i> &#x2014; material icon named "navigation".
  static const IconData navigation = IconData(0xe41e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">navigation</i> &#x2014; material icon named "navigation" (sharp).
  static const IconData navigation_sharp = IconData(0xeb17, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">navigation</i> &#x2014; material icon named "navigation" (round).
  static const IconData navigation_rounded = IconData(0xf8f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">navigation</i> &#x2014; material icon named "navigation" (outlined).
  static const IconData navigation_outlined = IconData(0xf204, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">near_me</i> &#x2014; material icon named "near me".
  static const IconData near_me = IconData(0xe41f, 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(0xeb19, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">near_me</i> &#x2014; material icon named "near me" (round).
  static const IconData near_me_rounded = IconData(0xf8f8, 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(0xf206, 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(0xe420, 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(0xeb18, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">near_me_disabled</i> &#x2014; material icon named "near me disabled" (round).
  static const IconData near_me_disabled_rounded = IconData(0xf8f7, 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(0xf205, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">nearby_error</i> &#x2014; material icon named "nearby error".
  static const IconData nearby_error = IconData(0xe421, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">nearby_error</i> &#x2014; material icon named "nearby error" (sharp).
  static const IconData nearby_error_sharp = IconData(0xeb1a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">nearby_error</i> &#x2014; material icon named "nearby error" (round).
  static const IconData nearby_error_rounded = IconData(0xf8f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">nearby_error</i> &#x2014; material icon named "nearby error" (outlined).
  static const IconData nearby_error_outlined = IconData(0xf207, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">nearby_off</i> &#x2014; material icon named "nearby off".
  static const IconData nearby_off = IconData(0xe422, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">nearby_off</i> &#x2014; material icon named "nearby off" (sharp).
  static const IconData nearby_off_sharp = IconData(0xeb1b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">nearby_off</i> &#x2014; material icon named "nearby off" (round).
  static const IconData nearby_off_rounded = IconData(0xf8fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">nearby_off</i> &#x2014; material icon named "nearby off" (outlined).
  static const IconData nearby_off_outlined = IconData(0xf208, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">nest_cam_wired_stand</i> &#x2014; material icon named "nest cam wired stand".
  static const IconData nest_cam_wired_stand = IconData(0xf07af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">nest_cam_wired_stand</i> &#x2014; material icon named "nest cam wired stand" (sharp).
  static const IconData nest_cam_wired_stand_sharp = IconData(0xf0757, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">nest_cam_wired_stand</i> &#x2014; material icon named "nest cam wired stand" (round).
  static const IconData nest_cam_wired_stand_rounded = IconData(
    0xf0807,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">nest_cam_wired_stand</i> &#x2014; material icon named "nest cam wired stand" (outlined).
  static const IconData nest_cam_wired_stand_outlined = IconData(
    0xf06ff,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">network_cell</i> &#x2014; material icon named "network cell".
  static const IconData network_cell = IconData(0xe423, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">network_cell</i> &#x2014; material icon named "network cell" (sharp).
  static const IconData network_cell_sharp = IconData(0xeb1c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">network_cell</i> &#x2014; material icon named "network cell" (round).
  static const IconData network_cell_rounded = IconData(0xf8fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">network_cell</i> &#x2014; material icon named "network cell" (outlined).
  static const IconData network_cell_outlined = IconData(0xf209, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">network_check</i> &#x2014; material icon named "network check".
  static const IconData network_check = IconData(0xe424, 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(0xeb1d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">network_check</i> &#x2014; material icon named "network check" (round).
  static const IconData network_check_rounded = IconData(0xf8fc, 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(0xf20a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">network_locked</i> &#x2014; material icon named "network locked".
  static const IconData network_locked = IconData(0xe425, 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(0xeb1e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">network_locked</i> &#x2014; material icon named "network locked" (round).
  static const IconData network_locked_rounded = IconData(0xf8fd, 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(0xf20b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">network_ping</i> &#x2014; material icon named "network ping".
  static const IconData network_ping = IconData(0xf06bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">network_ping</i> &#x2014; material icon named "network ping" (sharp).
  static const IconData network_ping_sharp = IconData(0xf06b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">network_ping</i> &#x2014; material icon named "network ping" (round).
  static const IconData network_ping_rounded = IconData(0xf06cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">network_ping</i> &#x2014; material icon named "network ping" (outlined).
  static const IconData network_ping_outlined = IconData(0xf06a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">network_wifi</i> &#x2014; material icon named "network wifi".
  static const IconData network_wifi = IconData(0xe426, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">network_wifi</i> &#x2014; material icon named "network wifi" (sharp).
  static const IconData network_wifi_sharp = IconData(0xeb1f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">network_wifi</i> &#x2014; material icon named "network wifi" (round).
  static const IconData network_wifi_rounded = IconData(0xf8fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">network_wifi</i> &#x2014; material icon named "network wifi" (outlined).
  static const IconData network_wifi_outlined = IconData(0xf20c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">network_wifi_1_bar</i> &#x2014; material icon named "network wifi 1 bar".
  static const IconData network_wifi_1_bar = IconData(0xf07b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">network_wifi_1_bar</i> &#x2014; material icon named "network wifi 1 bar" (sharp).
  static const IconData network_wifi_1_bar_sharp = IconData(0xf0758, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">network_wifi_1_bar</i> &#x2014; material icon named "network wifi 1 bar" (round).
  static const IconData network_wifi_1_bar_rounded = IconData(0xf0808, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">network_wifi_1_bar</i> &#x2014; material icon named "network wifi 1 bar" (outlined).
  static const IconData network_wifi_1_bar_outlined = IconData(
    0xf0700,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">network_wifi_2_bar</i> &#x2014; material icon named "network wifi 2 bar".
  static const IconData network_wifi_2_bar = IconData(0xf07b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">network_wifi_2_bar</i> &#x2014; material icon named "network wifi 2 bar" (sharp).
  static const IconData network_wifi_2_bar_sharp = IconData(0xf0759, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">network_wifi_2_bar</i> &#x2014; material icon named "network wifi 2 bar" (round).
  static const IconData network_wifi_2_bar_rounded = IconData(0xf0809, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">network_wifi_2_bar</i> &#x2014; material icon named "network wifi 2 bar" (outlined).
  static const IconData network_wifi_2_bar_outlined = IconData(
    0xf0701,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">network_wifi_3_bar</i> &#x2014; material icon named "network wifi 3 bar".
  static const IconData network_wifi_3_bar = IconData(0xf07b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">network_wifi_3_bar</i> &#x2014; material icon named "network wifi 3 bar" (sharp).
  static const IconData network_wifi_3_bar_sharp = IconData(0xf075a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">network_wifi_3_bar</i> &#x2014; material icon named "network wifi 3 bar" (round).
  static const IconData network_wifi_3_bar_rounded = IconData(0xf080a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">network_wifi_3_bar</i> &#x2014; material icon named "network wifi 3 bar" (outlined).
  static const IconData network_wifi_3_bar_outlined = IconData(
    0xf0702,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">new_label</i> &#x2014; material icon named "new label".
  static const IconData new_label = IconData(0xe427, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">new_label</i> &#x2014; material icon named "new label" (sharp).
  static const IconData new_label_sharp = IconData(0xeb20, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">new_label</i> &#x2014; material icon named "new label" (round).
  static const IconData new_label_rounded = IconData(0xf8ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">new_label</i> &#x2014; material icon named "new label" (outlined).
  static const IconData new_label_outlined = IconData(0xf20d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">new_releases</i> &#x2014; material icon named "new releases".
  static const IconData new_releases = IconData(0xe428, 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(0xeb21, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">new_releases</i> &#x2014; material icon named "new releases" (round).
  static const IconData new_releases_rounded = IconData(0xf0000, 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(0xf20e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">newspaper</i> &#x2014; material icon named "newspaper".
  static const IconData newspaper = IconData(0xf0541, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">newspaper</i> &#x2014; material icon named "newspaper" (sharp).
  static const IconData newspaper_sharp = IconData(0xf044b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">newspaper</i> &#x2014; material icon named "newspaper" (round).
  static const IconData newspaper_rounded = IconData(0xf0358, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">newspaper</i> &#x2014; material icon named "newspaper" (outlined).
  static const IconData newspaper_outlined = IconData(0xf0639, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">next_plan</i> &#x2014; material icon named "next plan".
  static const IconData next_plan = IconData(0xe429, 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(0xeb22, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">next_plan</i> &#x2014; material icon named "next plan" (round).
  static const IconData next_plan_rounded = IconData(0xf0001, 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(0xf20f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">next_week</i> &#x2014; material icon named "next week".
  static const IconData next_week = IconData(
    0xe42a,
    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(
    0xeb23,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">next_week</i> &#x2014; material icon named "next week" (round).
  static const IconData next_week_rounded = IconData(
    0xf0002,
    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(
    0xf210,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">nfc</i> &#x2014; material icon named "nfc".
  static const IconData nfc = IconData(0xe42b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">nfc</i> &#x2014; material icon named "nfc" (sharp).
  static const IconData nfc_sharp = IconData(0xeb24, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">nfc</i> &#x2014; material icon named "nfc" (round).
  static const IconData nfc_rounded = IconData(0xf0003, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">nfc</i> &#x2014; material icon named "nfc" (outlined).
  static const IconData nfc_outlined = IconData(0xf211, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">night_shelter</i> &#x2014; material icon named "night shelter".
  static const IconData night_shelter = IconData(0xe42c, 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(0xeb25, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">night_shelter</i> &#x2014; material icon named "night shelter" (round).
  static const IconData night_shelter_rounded = IconData(0xf0004, 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(0xf212, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">nightlife</i> &#x2014; material icon named "nightlife".
  static const IconData nightlife = IconData(0xe42d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">nightlife</i> &#x2014; material icon named "nightlife" (sharp).
  static const IconData nightlife_sharp = IconData(0xeb26, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">nightlife</i> &#x2014; material icon named "nightlife" (round).
  static const IconData nightlife_rounded = IconData(0xf0005, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">nightlife</i> &#x2014; material icon named "nightlife" (outlined).
  static const IconData nightlife_outlined = IconData(0xf213, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">nightlight</i> &#x2014; material icon named "nightlight".
  static const IconData nightlight = IconData(0xe42e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">nightlight</i> &#x2014; material icon named "nightlight" (sharp).
  static const IconData nightlight_sharp = IconData(0xeb28, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">nightlight</i> &#x2014; material icon named "nightlight" (round).
  static const IconData nightlight_rounded = IconData(0xf0007, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">nightlight</i> &#x2014; material icon named "nightlight" (outlined).
  static const IconData nightlight_outlined = IconData(0xf214, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">nightlight_round</i> &#x2014; material icon named "nightlight round".
  static const IconData nightlight_round = IconData(0xe42f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">nightlight_round</i> &#x2014; material icon named "nightlight round" (sharp).
  static const IconData nightlight_round_sharp = IconData(0xeb27, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">nightlight_round</i> &#x2014; material icon named "nightlight round" (round).
  static const IconData nightlight_round_rounded = IconData(0xf0006, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">nightlight_round</i> &#x2014; material icon named "nightlight round" (outlined).
  static const IconData nightlight_round_outlined = IconData(0xf215, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">nights_stay</i> &#x2014; material icon named "nights stay".
  static const IconData nights_stay = IconData(0xe430, 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(0xeb29, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">nights_stay</i> &#x2014; material icon named "nights stay" (round).
  static const IconData nights_stay_rounded = IconData(0xf0008, 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(0xf216, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_accounts</i> &#x2014; material icon named "no accounts".
  static const IconData no_accounts = IconData(0xe431, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">no_accounts</i> &#x2014; material icon named "no accounts" (sharp).
  static const IconData no_accounts_sharp = IconData(0xeb2a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_accounts</i> &#x2014; material icon named "no accounts" (round).
  static const IconData no_accounts_rounded = IconData(0xf0009, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">no_accounts</i> &#x2014; material icon named "no accounts" (outlined).
  static const IconData no_accounts_outlined = IconData(0xf217, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_adult_content</i> &#x2014; material icon named "no adult content".
  static const IconData no_adult_content = IconData(0xf07b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">no_adult_content</i> &#x2014; material icon named "no adult content" (sharp).
  static const IconData no_adult_content_sharp = IconData(0xf075b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_adult_content</i> &#x2014; material icon named "no adult content" (round).
  static const IconData no_adult_content_rounded = IconData(0xf080b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">no_adult_content</i> &#x2014; material icon named "no adult content" (outlined).
  static const IconData no_adult_content_outlined = IconData(0xf0703, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_backpack</i> &#x2014; material icon named "no backpack".
  static const IconData no_backpack = IconData(0xe432, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">no_backpack</i> &#x2014; material icon named "no backpack" (sharp).
  static const IconData no_backpack_sharp = IconData(0xeb2b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_backpack</i> &#x2014; material icon named "no backpack" (round).
  static const IconData no_backpack_rounded = IconData(0xf000a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">no_backpack</i> &#x2014; material icon named "no backpack" (outlined).
  static const IconData no_backpack_outlined = IconData(0xf218, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_cell</i> &#x2014; material icon named "no cell".
  static const IconData no_cell = IconData(0xe433, 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(0xeb2c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_cell</i> &#x2014; material icon named "no cell" (round).
  static const IconData no_cell_rounded = IconData(0xf000b, 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(0xf219, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_crash</i> &#x2014; material icon named "no crash".
  static const IconData no_crash = IconData(0xf07b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">no_crash</i> &#x2014; material icon named "no crash" (sharp).
  static const IconData no_crash_sharp = IconData(0xf075c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_crash</i> &#x2014; material icon named "no crash" (round).
  static const IconData no_crash_rounded = IconData(0xf080c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">no_crash</i> &#x2014; material icon named "no crash" (outlined).
  static const IconData no_crash_outlined = IconData(0xf0704, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_drinks</i> &#x2014; material icon named "no drinks".
  static const IconData no_drinks = IconData(0xe434, 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(0xeb2d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_drinks</i> &#x2014; material icon named "no drinks" (round).
  static const IconData no_drinks_rounded = IconData(0xf000c, 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(0xf21a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_encryption</i> &#x2014; material icon named "no encryption".
  static const IconData no_encryption = IconData(0xe435, 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(0xeb2f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_encryption</i> &#x2014; material icon named "no encryption" (round).
  static const IconData no_encryption_rounded = IconData(0xf000e, 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(0xf21c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_encryption_gmailerrorred</i> &#x2014; material icon named "no encryption gmailerrorred".
  static const IconData no_encryption_gmailerrorred = IconData(0xe436, 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(
    0xeb2e,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">no_encryption_gmailerrorred</i> &#x2014; material icon named "no encryption gmailerrorred" (round).
  static const IconData no_encryption_gmailerrorred_rounded = IconData(
    0xf000d,
    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(
    0xf21b,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">no_flash</i> &#x2014; material icon named "no flash".
  static const IconData no_flash = IconData(0xe437, 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(0xeb30, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_flash</i> &#x2014; material icon named "no flash" (round).
  static const IconData no_flash_rounded = IconData(0xf000f, 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(0xf21d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_food</i> &#x2014; material icon named "no food".
  static const IconData no_food = IconData(0xe438, 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(0xeb31, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_food</i> &#x2014; material icon named "no food" (round).
  static const IconData no_food_rounded = IconData(0xf0010, 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(0xf21e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_luggage</i> &#x2014; material icon named "no luggage".
  static const IconData no_luggage = IconData(0xe439, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">no_luggage</i> &#x2014; material icon named "no luggage" (sharp).
  static const IconData no_luggage_sharp = IconData(0xeb32, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_luggage</i> &#x2014; material icon named "no luggage" (round).
  static const IconData no_luggage_rounded = IconData(0xf0011, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">no_luggage</i> &#x2014; material icon named "no luggage" (outlined).
  static const IconData no_luggage_outlined = IconData(0xf21f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_meals</i> &#x2014; material icon named "no meals".
  static const IconData no_meals = IconData(0xe43a, 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(0xeb33, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_meals</i> &#x2014; material icon named "no meals" (round).
  static const IconData no_meals_rounded = IconData(0xf0012, 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(0xf220, 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(0xe43b, 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(0xe43c, 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(0xeb34, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_meeting_room</i> &#x2014; material icon named "no meeting room" (round).
  static const IconData no_meeting_room_rounded = IconData(0xf0013, 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(0xf221, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_photography</i> &#x2014; material icon named "no photography".
  static const IconData no_photography = IconData(0xe43d, 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(0xeb35, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_photography</i> &#x2014; material icon named "no photography" (round).
  static const IconData no_photography_rounded = IconData(0xf0014, 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(0xf222, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_sim</i> &#x2014; material icon named "no sim".
  static const IconData no_sim = IconData(0xe43e, 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(0xeb36, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_sim</i> &#x2014; material icon named "no sim" (round).
  static const IconData no_sim_rounded = IconData(0xf0015, 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(0xf223, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_stroller</i> &#x2014; material icon named "no stroller".
  static const IconData no_stroller = IconData(0xe43f, 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(0xeb37, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_stroller</i> &#x2014; material icon named "no stroller" (round).
  static const IconData no_stroller_rounded = IconData(0xf0016, 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(0xf224, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">no_transfer</i> &#x2014; material icon named "no transfer".
  static const IconData no_transfer = IconData(0xe440, 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(0xeb38, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">no_transfer</i> &#x2014; material icon named "no transfer" (round).
  static const IconData no_transfer_rounded = IconData(0xf0017, 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(0xf225, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">noise_aware</i> &#x2014; material icon named "noise aware".
  static const IconData noise_aware = IconData(0xf07b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">noise_aware</i> &#x2014; material icon named "noise aware" (sharp).
  static const IconData noise_aware_sharp = IconData(0xf075d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">noise_aware</i> &#x2014; material icon named "noise aware" (round).
  static const IconData noise_aware_rounded = IconData(0xf080d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">noise_aware</i> &#x2014; material icon named "noise aware" (outlined).
  static const IconData noise_aware_outlined = IconData(0xf0705, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">noise_control_off</i> &#x2014; material icon named "noise control off".
  static const IconData noise_control_off = IconData(0xf07b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">noise_control_off</i> &#x2014; material icon named "noise control off" (sharp).
  static const IconData noise_control_off_sharp = IconData(0xf075e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">noise_control_off</i> &#x2014; material icon named "noise control off" (round).
  static const IconData noise_control_off_rounded = IconData(0xf080e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">noise_control_off</i> &#x2014; material icon named "noise control off" (outlined).
  static const IconData noise_control_off_outlined = IconData(0xf0706, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">nordic_walking</i> &#x2014; material icon named "nordic walking".
  static const IconData nordic_walking = IconData(0xe441, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">nordic_walking</i> &#x2014; material icon named "nordic walking" (sharp).
  static const IconData nordic_walking_sharp = IconData(0xeb39, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">nordic_walking</i> &#x2014; material icon named "nordic walking" (round).
  static const IconData nordic_walking_rounded = IconData(0xf0018, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">nordic_walking</i> &#x2014; material icon named "nordic walking" (outlined).
  static const IconData nordic_walking_outlined = IconData(0xf226, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">north</i> &#x2014; material icon named "north".
  static const IconData north = IconData(0xe442, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">north</i> &#x2014; material icon named "north" (sharp).
  static const IconData north_sharp = IconData(0xeb3b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">north</i> &#x2014; material icon named "north" (round).
  static const IconData north_rounded = IconData(0xf001a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">north</i> &#x2014; material icon named "north" (outlined).
  static const IconData north_outlined = IconData(0xf228, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">north_east</i> &#x2014; material icon named "north east".
  static const IconData north_east = IconData(0xe443, 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(0xeb3a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">north_east</i> &#x2014; material icon named "north east" (round).
  static const IconData north_east_rounded = IconData(0xf0019, 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(0xf227, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">north_west</i> &#x2014; material icon named "north west".
  static const IconData north_west = IconData(0xe444, 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(0xeb3c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">north_west</i> &#x2014; material icon named "north west" (round).
  static const IconData north_west_rounded = IconData(0xf001b, 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(0xf229, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">not_accessible</i> &#x2014; material icon named "not accessible".
  static const IconData not_accessible = IconData(0xe445, 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(0xeb3d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">not_accessible</i> &#x2014; material icon named "not accessible" (round).
  static const IconData not_accessible_rounded = IconData(0xf001c, 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(0xf22a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">not_interested</i> &#x2014; material icon named "not interested".
  static const IconData not_interested = IconData(0xe446, 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(0xeb3e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">not_interested</i> &#x2014; material icon named "not interested" (round).
  static const IconData not_interested_rounded = IconData(0xf001d, 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(0xf22b, 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(0xe447, 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(0xeb3f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">not_listed_location</i> &#x2014; material icon named "not listed location" (round).
  static const IconData not_listed_location_rounded = IconData(
    0xf001e,
    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(
    0xf22c,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">not_started</i> &#x2014; material icon named "not started".
  static const IconData not_started = IconData(0xe448, 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(0xeb40, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">not_started</i> &#x2014; material icon named "not started" (round).
  static const IconData not_started_rounded = IconData(0xf001f, 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(0xf22d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">note</i> &#x2014; material icon named "note".
  static const IconData note = IconData(
    0xe449,
    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(
    0xeb43,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">note</i> &#x2014; material icon named "note" (round).
  static const IconData note_rounded = IconData(
    0xf0022,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-outlined md-36">note</i> &#x2014; material icon named "note" (outlined).
  static const IconData note_outlined = IconData(
    0xf230,
    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(0xe44a, 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(0xeb41, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">note_add</i> &#x2014; material icon named "note add" (round).
  static const IconData note_add_rounded = IconData(0xf0020, 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(0xf22e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">note_alt</i> &#x2014; material icon named "note alt".
  static const IconData note_alt = IconData(
    0xe44b,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-sharp md-36">note_alt</i> &#x2014; material icon named "note alt" (sharp).
  static const IconData note_alt_sharp = IconData(
    0xeb42,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">note_alt</i> &#x2014; material icon named "note alt" (round).
  static const IconData note_alt_rounded = IconData(
    0xf0021,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-outlined md-36">note_alt</i> &#x2014; material icon named "note alt" (outlined).
  static const IconData note_alt_outlined = IconData(
    0xf22f,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">notes</i> &#x2014; material icon named "notes".
  static const IconData notes = IconData(0xe44c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">notes</i> &#x2014; material icon named "notes" (sharp).
  static const IconData notes_sharp = IconData(0xeb44, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">notes</i> &#x2014; material icon named "notes" (round).
  static const IconData notes_rounded = IconData(0xf0023, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">notes</i> &#x2014; material icon named "notes" (outlined).
  static const IconData notes_outlined = IconData(0xf231, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">notification_add</i> &#x2014; material icon named "notification add".
  static const IconData notification_add = IconData(0xe44d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">notification_add</i> &#x2014; material icon named "notification add" (sharp).
  static const IconData notification_add_sharp = IconData(0xeb45, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">notification_add</i> &#x2014; material icon named "notification add" (round).
  static const IconData notification_add_rounded = IconData(0xf0024, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">notification_add</i> &#x2014; material icon named "notification add" (outlined).
  static const IconData notification_add_outlined = IconData(0xf232, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">notification_important</i> &#x2014; material icon named "notification important".
  static const IconData notification_important = IconData(0xe44e, 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(
    0xeb46,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">notification_important</i> &#x2014; material icon named "notification important" (round).
  static const IconData notification_important_rounded = IconData(
    0xf0025,
    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(
    0xf233,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">notifications</i> &#x2014; material icon named "notifications".
  static const IconData notifications = IconData(0xe44f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">notifications</i> &#x2014; material icon named "notifications" (sharp).
  static const IconData notifications_sharp = IconData(0xeb4b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">notifications</i> &#x2014; material icon named "notifications" (round).
  static const IconData notifications_rounded = IconData(0xf002a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">notifications</i> &#x2014; material icon named "notifications" (outlined).
  static const IconData notifications_outlined = IconData(0xf237, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">notifications_active</i> &#x2014; material icon named "notifications active".
  static const IconData notifications_active = IconData(0xe450, 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(0xeb47, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">notifications_active</i> &#x2014; material icon named "notifications active" (round).
  static const IconData notifications_active_rounded = IconData(
    0xf0026,
    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(
    0xf234,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">notifications_none</i> &#x2014; material icon named "notifications none".
  static const IconData notifications_none = IconData(0xe451, 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(0xeb48, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">notifications_none</i> &#x2014; material icon named "notifications none" (round).
  static const IconData notifications_none_rounded = IconData(0xf0027, 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(0xf235, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">notifications_off</i> &#x2014; material icon named "notifications off".
  static const IconData notifications_off = IconData(0xe452, 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(0xeb49, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">notifications_off</i> &#x2014; material icon named "notifications off" (round).
  static const IconData notifications_off_rounded = IconData(0xf0028, 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(0xf236, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">notifications_on</i> &#x2014; material icon named "notifications on".
  static const IconData notifications_on = IconData(0xe450, 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(0xeb47, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">notifications_on</i> &#x2014; material icon named "notifications on" (round).
  static const IconData notifications_on_rounded = IconData(0xf0026, 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(0xf234, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">notifications_paused</i> &#x2014; material icon named "notifications paused".
  static const IconData notifications_paused = IconData(0xe453, 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(0xeb4a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">notifications_paused</i> &#x2014; material icon named "notifications paused" (round).
  static const IconData notifications_paused_rounded = IconData(
    0xf0029,
    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(
    0xf238,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">now_wallpaper</i> &#x2014; material icon named "now wallpaper".
  static const IconData now_wallpaper = IconData(0xe6ca, 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(0xedc0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">now_wallpaper</i> &#x2014; material icon named "now wallpaper" (round).
  static const IconData now_wallpaper_rounded = IconData(0xf029f, 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(0xf4ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">now_widgets</i> &#x2014; material icon named "now widgets".
  static const IconData now_widgets = IconData(0xe6e6, 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(0xedda, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">now_widgets</i> &#x2014; material icon named "now widgets" (round).
  static const IconData now_widgets_rounded = IconData(0xf02b9, 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(0xf4c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">numbers</i> &#x2014; material icon named "numbers".
  static const IconData numbers = IconData(0xf0542, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">numbers</i> &#x2014; material icon named "numbers" (sharp).
  static const IconData numbers_sharp = IconData(0xf044c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">numbers</i> &#x2014; material icon named "numbers" (round).
  static const IconData numbers_rounded = IconData(0xf0359, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">numbers</i> &#x2014; material icon named "numbers" (outlined).
  static const IconData numbers_outlined = IconData(0xf063a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">offline_bolt</i> &#x2014; material icon named "offline bolt".
  static const IconData offline_bolt = IconData(0xe454, 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(0xeb4c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">offline_bolt</i> &#x2014; material icon named "offline bolt" (round).
  static const IconData offline_bolt_rounded = IconData(0xf002b, 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(0xf239, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">offline_pin</i> &#x2014; material icon named "offline pin".
  static const IconData offline_pin = IconData(0xe455, 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(0xeb4d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">offline_pin</i> &#x2014; material icon named "offline pin" (round).
  static const IconData offline_pin_rounded = IconData(0xf002c, 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(0xf23a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">offline_share</i> &#x2014; material icon named "offline share".
  static const IconData offline_share = IconData(0xe456, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">offline_share</i> &#x2014; material icon named "offline share" (sharp).
  static const IconData offline_share_sharp = IconData(0xeb4e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">offline_share</i> &#x2014; material icon named "offline share" (round).
  static const IconData offline_share_rounded = IconData(0xf002d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">offline_share</i> &#x2014; material icon named "offline share" (outlined).
  static const IconData offline_share_outlined = IconData(0xf23b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">oil_barrel</i> &#x2014; material icon named "oil barrel".
  static const IconData oil_barrel = IconData(0xf07b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">oil_barrel</i> &#x2014; material icon named "oil barrel" (sharp).
  static const IconData oil_barrel_sharp = IconData(0xf075f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">oil_barrel</i> &#x2014; material icon named "oil barrel" (round).
  static const IconData oil_barrel_rounded = IconData(0xf080f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">oil_barrel</i> &#x2014; material icon named "oil barrel" (outlined).
  static const IconData oil_barrel_outlined = IconData(0xf0707, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">on_device_training</i> &#x2014; material icon named "on device training".
  static const IconData on_device_training = IconData(0xf07b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">on_device_training</i> &#x2014; material icon named "on device training" (sharp).
  static const IconData on_device_training_sharp = IconData(0xf0760, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">on_device_training</i> &#x2014; material icon named "on device training" (round).
  static const IconData on_device_training_rounded = IconData(0xf0810, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">on_device_training</i> &#x2014; material icon named "on device training" (outlined).
  static const IconData on_device_training_outlined = IconData(
    0xf0708,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">ondemand_video</i> &#x2014; material icon named "ondemand video".
  static const IconData ondemand_video = IconData(0xe457, 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(0xeb4f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">ondemand_video</i> &#x2014; material icon named "ondemand video" (round).
  static const IconData ondemand_video_rounded = IconData(0xf002e, 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(0xf23c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">online_prediction</i> &#x2014; material icon named "online prediction".
  static const IconData online_prediction = IconData(0xe458, 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(0xeb50, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">online_prediction</i> &#x2014; material icon named "online prediction" (round).
  static const IconData online_prediction_rounded = IconData(0xf002f, 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(0xf23d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">opacity</i> &#x2014; material icon named "opacity".
  static const IconData opacity = IconData(0xe459, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">opacity</i> &#x2014; material icon named "opacity" (sharp).
  static const IconData opacity_sharp = IconData(0xeb51, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">opacity</i> &#x2014; material icon named "opacity" (round).
  static const IconData opacity_rounded = IconData(0xf0030, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">opacity</i> &#x2014; material icon named "opacity" (outlined).
  static const IconData opacity_outlined = IconData(0xf23e, 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(0xe45a, 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(0xeb52, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">open_in_browser</i> &#x2014; material icon named "open in browser" (round).
  static const IconData open_in_browser_rounded = IconData(0xf0031, 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(0xf23f, 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(0xe45b, 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(0xeb53, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">open_in_full</i> &#x2014; material icon named "open in full" (round).
  static const IconData open_in_full_rounded = IconData(0xf0032, 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(0xf240, 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(
    0xe45c,
    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(
    0xeb55,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">open_in_new</i> &#x2014; material icon named "open in new" (round).
  static const IconData open_in_new_rounded = IconData(
    0xf0034,
    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(
    0xf242,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">open_in_new_off</i> &#x2014; material icon named "open in new off".
  static const IconData open_in_new_off = IconData(0xe45d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">open_in_new_off</i> &#x2014; material icon named "open in new off" (sharp).
  static const IconData open_in_new_off_sharp = IconData(0xeb54, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">open_in_new_off</i> &#x2014; material icon named "open in new off" (round).
  static const IconData open_in_new_off_rounded = IconData(0xf0033, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">open_in_new_off</i> &#x2014; material icon named "open in new off" (outlined).
  static const IconData open_in_new_off_outlined = IconData(0xf241, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">open_with</i> &#x2014; material icon named "open with".
  static const IconData open_with = IconData(0xe45e, 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(0xeb56, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">open_with</i> &#x2014; material icon named "open with" (round).
  static const IconData open_with_rounded = IconData(0xf0035, 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(0xf243, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">other_houses</i> &#x2014; material icon named "other houses".
  static const IconData other_houses = IconData(0xe45f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">other_houses</i> &#x2014; material icon named "other houses" (sharp).
  static const IconData other_houses_sharp = IconData(0xeb57, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">other_houses</i> &#x2014; material icon named "other houses" (round).
  static const IconData other_houses_rounded = IconData(0xf0036, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">other_houses</i> &#x2014; material icon named "other houses" (outlined).
  static const IconData other_houses_outlined = IconData(0xf244, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">outbond</i> &#x2014; material icon named "outbond".
  static const IconData outbond = IconData(0xe460, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">outbond</i> &#x2014; material icon named "outbond" (sharp).
  static const IconData outbond_sharp = IconData(0xeb58, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">outbond</i> &#x2014; material icon named "outbond" (round).
  static const IconData outbond_rounded = IconData(0xf0037, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">outbond</i> &#x2014; material icon named "outbond" (outlined).
  static const IconData outbond_outlined = IconData(0xf245, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">outbound</i> &#x2014; material icon named "outbound".
  static const IconData outbound = IconData(0xe461, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">outbound</i> &#x2014; material icon named "outbound" (sharp).
  static const IconData outbound_sharp = IconData(0xeb59, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">outbound</i> &#x2014; material icon named "outbound" (round).
  static const IconData outbound_rounded = IconData(0xf0038, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">outbound</i> &#x2014; material icon named "outbound" (outlined).
  static const IconData outbound_outlined = IconData(0xf246, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">outbox</i> &#x2014; material icon named "outbox".
  static const IconData outbox = IconData(0xe462, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">outbox</i> &#x2014; material icon named "outbox" (sharp).
  static const IconData outbox_sharp = IconData(0xeb5a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">outbox</i> &#x2014; material icon named "outbox" (round).
  static const IconData outbox_rounded = IconData(0xf0039, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">outbox</i> &#x2014; material icon named "outbox" (outlined).
  static const IconData outbox_outlined = IconData(0xf247, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">outdoor_grill</i> &#x2014; material icon named "outdoor grill".
  static const IconData outdoor_grill = IconData(0xe463, 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(0xeb5b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">outdoor_grill</i> &#x2014; material icon named "outdoor grill" (round).
  static const IconData outdoor_grill_rounded = IconData(0xf003a, 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(0xf248, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">outgoing_mail</i> &#x2014; material icon named "outgoing mail".
  static const IconData outgoing_mail = IconData(0xe464, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">outlet</i> &#x2014; material icon named "outlet".
  static const IconData outlet = IconData(0xe465, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">outlet</i> &#x2014; material icon named "outlet" (sharp).
  static const IconData outlet_sharp = IconData(0xeb5c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">outlet</i> &#x2014; material icon named "outlet" (round).
  static const IconData outlet_rounded = IconData(0xf003b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">outlet</i> &#x2014; material icon named "outlet" (outlined).
  static const IconData outlet_outlined = IconData(0xf249, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">outlined_flag</i> &#x2014; material icon named "outlined flag".
  static const IconData outlined_flag = IconData(0xe466, 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(0xeb5d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">outlined_flag</i> &#x2014; material icon named "outlined flag" (round).
  static const IconData outlined_flag_rounded = IconData(0xf003c, 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(0xf24a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">output</i> &#x2014; material icon named "output".
  static const IconData output = IconData(0xf0543, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">output</i> &#x2014; material icon named "output" (sharp).
  static const IconData output_sharp = IconData(0xf044d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">output</i> &#x2014; material icon named "output" (round).
  static const IconData output_rounded = IconData(0xf035a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">output</i> &#x2014; material icon named "output" (outlined).
  static const IconData output_outlined = IconData(0xf063b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">padding</i> &#x2014; material icon named "padding".
  static const IconData padding = IconData(0xe467, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">padding</i> &#x2014; material icon named "padding" (sharp).
  static const IconData padding_sharp = IconData(0xeb5e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">padding</i> &#x2014; material icon named "padding" (round).
  static const IconData padding_rounded = IconData(0xf003d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">padding</i> &#x2014; material icon named "padding" (outlined).
  static const IconData padding_outlined = IconData(0xf24b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pages</i> &#x2014; material icon named "pages".
  static const IconData pages = IconData(0xe468, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pages</i> &#x2014; material icon named "pages" (sharp).
  static const IconData pages_sharp = IconData(0xeb5f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pages</i> &#x2014; material icon named "pages" (round).
  static const IconData pages_rounded = IconData(0xf003e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pages</i> &#x2014; material icon named "pages" (outlined).
  static const IconData pages_outlined = IconData(0xf24c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pageview</i> &#x2014; material icon named "pageview".
  static const IconData pageview = IconData(0xe469, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pageview</i> &#x2014; material icon named "pageview" (sharp).
  static const IconData pageview_sharp = IconData(0xeb60, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pageview</i> &#x2014; material icon named "pageview" (round).
  static const IconData pageview_rounded = IconData(0xf003f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pageview</i> &#x2014; material icon named "pageview" (outlined).
  static const IconData pageview_outlined = IconData(0xf24d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">paid</i> &#x2014; material icon named "paid".
  static const IconData paid = IconData(0xe46a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">paid</i> &#x2014; material icon named "paid" (sharp).
  static const IconData paid_sharp = IconData(0xeb61, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">paid</i> &#x2014; material icon named "paid" (round).
  static const IconData paid_rounded = IconData(0xf0040, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">paid</i> &#x2014; material icon named "paid" (outlined).
  static const IconData paid_outlined = IconData(0xf24e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">palette</i> &#x2014; material icon named "palette".
  static const IconData palette = IconData(0xe46b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">palette</i> &#x2014; material icon named "palette" (sharp).
  static const IconData palette_sharp = IconData(0xeb62, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">palette</i> &#x2014; material icon named "palette" (round).
  static const IconData palette_rounded = IconData(0xf0041, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">palette</i> &#x2014; material icon named "palette" (outlined).
  static const IconData palette_outlined = IconData(0xf24f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pallet</i> &#x2014; material icon named "pallet".
  static const IconData pallet = IconData(0xf086f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pan_tool</i> &#x2014; material icon named "pan tool".
  static const IconData pan_tool = IconData(0xe46c, 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(0xeb63, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pan_tool</i> &#x2014; material icon named "pan tool" (round).
  static const IconData pan_tool_rounded = IconData(0xf0042, 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(0xf250, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pan_tool_alt</i> &#x2014; material icon named "pan tool alt".
  static const IconData pan_tool_alt = IconData(0xf0544, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pan_tool_alt</i> &#x2014; material icon named "pan tool alt" (sharp).
  static const IconData pan_tool_alt_sharp = IconData(0xf044e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pan_tool_alt</i> &#x2014; material icon named "pan tool alt" (round).
  static const IconData pan_tool_alt_rounded = IconData(0xf035b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pan_tool_alt</i> &#x2014; material icon named "pan tool alt" (outlined).
  static const IconData pan_tool_alt_outlined = IconData(0xf063c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">panorama</i> &#x2014; material icon named "panorama".
  static const IconData panorama = IconData(0xe46d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">panorama</i> &#x2014; material icon named "panorama" (sharp).
  static const IconData panorama_sharp = IconData(0xeb69, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">panorama</i> &#x2014; material icon named "panorama" (round).
  static const IconData panorama_rounded = IconData(0xf0048, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">panorama</i> &#x2014; material icon named "panorama" (outlined).
  static const IconData panorama_outlined = IconData(0xf254, 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(0xe46e, 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(0xeb64, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">panorama_fish_eye</i> &#x2014; material icon named "panorama fish eye" (round).
  static const IconData panorama_fish_eye_rounded = IconData(0xf0043, 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(0xf251, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">panorama_fisheye</i> &#x2014; material icon named "panorama fisheye".
  static const IconData panorama_fisheye = IconData(0xe46e, 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(0xeb64, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">panorama_fisheye</i> &#x2014; material icon named "panorama fisheye" (round).
  static const IconData panorama_fisheye_rounded = IconData(0xf0043, 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(0xf251, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">panorama_horizontal</i> &#x2014; material icon named "panorama horizontal".
  static const IconData panorama_horizontal = IconData(0xe46f, 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(0xeb66, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">panorama_horizontal</i> &#x2014; material icon named "panorama horizontal" (round).
  static const IconData panorama_horizontal_rounded = IconData(
    0xf0044,
    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(
    0xf252,
    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(0xe470, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">panorama_horizontal_select</i> &#x2014; material icon named "panorama horizontal select" (sharp).
  static const IconData panorama_horizontal_select_sharp = IconData(
    0xeb65,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">panorama_horizontal_select</i> &#x2014; material icon named "panorama horizontal select" (round).
  static const IconData panorama_horizontal_select_rounded = IconData(
    0xf0045,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">panorama_horizontal_select</i> &#x2014; material icon named "panorama horizontal select" (outlined).
  static const IconData panorama_horizontal_select_outlined = IconData(
    0xf253,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">panorama_photosphere</i> &#x2014; material icon named "panorama photosphere".
  static const IconData panorama_photosphere = IconData(0xe471, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">panorama_photosphere</i> &#x2014; material icon named "panorama photosphere" (sharp).
  static const IconData panorama_photosphere_sharp = IconData(0xeb68, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">panorama_photosphere</i> &#x2014; material icon named "panorama photosphere" (round).
  static const IconData panorama_photosphere_rounded = IconData(
    0xf0046,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">panorama_photosphere</i> &#x2014; material icon named "panorama photosphere" (outlined).
  static const IconData panorama_photosphere_outlined = IconData(
    0xf255,
    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(0xe472, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">panorama_photosphere_select</i> &#x2014; material icon named "panorama photosphere select" (sharp).
  static const IconData panorama_photosphere_select_sharp = IconData(
    0xeb67,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">panorama_photosphere_select</i> &#x2014; material icon named "panorama photosphere select" (round).
  static const IconData panorama_photosphere_select_rounded = IconData(
    0xf0047,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">panorama_photosphere_select</i> &#x2014; material icon named "panorama photosphere select" (outlined).
  static const IconData panorama_photosphere_select_outlined = IconData(
    0xf256,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">panorama_vertical</i> &#x2014; material icon named "panorama vertical".
  static const IconData panorama_vertical = IconData(0xe473, 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(0xeb6b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">panorama_vertical</i> &#x2014; material icon named "panorama vertical" (round).
  static const IconData panorama_vertical_rounded = IconData(0xf0049, 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(0xf257, 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(0xe474, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">panorama_vertical_select</i> &#x2014; material icon named "panorama vertical select" (sharp).
  static const IconData panorama_vertical_select_sharp = IconData(
    0xeb6a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">panorama_vertical_select</i> &#x2014; material icon named "panorama vertical select" (round).
  static const IconData panorama_vertical_select_rounded = IconData(
    0xf004a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">panorama_vertical_select</i> &#x2014; material icon named "panorama vertical select" (outlined).
  static const IconData panorama_vertical_select_outlined = IconData(
    0xf258,
    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(0xe475, 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(0xeb6d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">panorama_wide_angle</i> &#x2014; material icon named "panorama wide angle" (round).
  static const IconData panorama_wide_angle_rounded = IconData(
    0xf004b,
    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(
    0xf259,
    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(0xe476, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">panorama_wide_angle_select</i> &#x2014; material icon named "panorama wide angle select" (sharp).
  static const IconData panorama_wide_angle_select_sharp = IconData(
    0xeb6c,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">panorama_wide_angle_select</i> &#x2014; material icon named "panorama wide angle select" (round).
  static const IconData panorama_wide_angle_select_rounded = IconData(
    0xf004c,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">panorama_wide_angle_select</i> &#x2014; material icon named "panorama wide angle select" (outlined).
  static const IconData panorama_wide_angle_select_outlined = IconData(
    0xf25a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">paragliding</i> &#x2014; material icon named "paragliding".
  static const IconData paragliding = IconData(0xe477, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">paragliding</i> &#x2014; material icon named "paragliding" (sharp).
  static const IconData paragliding_sharp = IconData(0xeb6e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">paragliding</i> &#x2014; material icon named "paragliding" (round).
  static const IconData paragliding_rounded = IconData(0xf004d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">paragliding</i> &#x2014; material icon named "paragliding" (outlined).
  static const IconData paragliding_outlined = IconData(0xf25b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">park</i> &#x2014; material icon named "park".
  static const IconData park = IconData(0xe478, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">park</i> &#x2014; material icon named "park" (sharp).
  static const IconData park_sharp = IconData(0xeb6f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">park</i> &#x2014; material icon named "park" (round).
  static const IconData park_rounded = IconData(0xf004e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">park</i> &#x2014; material icon named "park" (outlined).
  static const IconData park_outlined = IconData(0xf25c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">party_mode</i> &#x2014; material icon named "party mode".
  static const IconData party_mode = IconData(0xe479, 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(0xeb70, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">party_mode</i> &#x2014; material icon named "party mode" (round).
  static const IconData party_mode_rounded = IconData(0xf004f, 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(0xf25d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">password</i> &#x2014; material icon named "password".
  static const IconData password = IconData(0xe47a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">password</i> &#x2014; material icon named "password" (sharp).
  static const IconData password_sharp = IconData(0xeb71, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">password</i> &#x2014; material icon named "password" (round).
  static const IconData password_rounded = IconData(0xf0050, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">password</i> &#x2014; material icon named "password" (outlined).
  static const IconData password_outlined = IconData(0xf25e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">paste</i> &#x2014; material icon named "paste".
  static const IconData paste = IconData(0xe192, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">paste</i> &#x2014; material icon named "paste" (sharp).
  static const IconData paste_sharp = IconData(0xe890, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">paste</i> &#x2014; material icon named "paste" (round).
  static const IconData paste_rounded = IconData(0xf66f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">paste</i> &#x2014; material icon named "paste" (outlined).
  static const IconData paste_outlined = IconData(0xef82, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pattern</i> &#x2014; material icon named "pattern".
  static const IconData pattern = IconData(0xe47b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pattern</i> &#x2014; material icon named "pattern" (sharp).
  static const IconData pattern_sharp = IconData(0xeb72, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pattern</i> &#x2014; material icon named "pattern" (round).
  static const IconData pattern_rounded = IconData(0xf0051, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pattern</i> &#x2014; material icon named "pattern" (outlined).
  static const IconData pattern_outlined = IconData(0xf25f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pause</i> &#x2014; material icon named "pause".
  static const IconData pause = IconData(0xe47c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pause</i> &#x2014; material icon named "pause" (sharp).
  static const IconData pause_sharp = IconData(0xeb77, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pause</i> &#x2014; material icon named "pause" (round).
  static const IconData pause_rounded = IconData(0xf0056, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pause</i> &#x2014; material icon named "pause" (outlined).
  static const IconData pause_outlined = IconData(0xf263, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pause_circle</i> &#x2014; material icon named "pause circle".
  static const IconData pause_circle = IconData(0xe47d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pause_circle</i> &#x2014; material icon named "pause circle" (sharp).
  static const IconData pause_circle_sharp = IconData(0xeb75, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pause_circle</i> &#x2014; material icon named "pause circle" (round).
  static const IconData pause_circle_rounded = IconData(0xf0054, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pause_circle</i> &#x2014; material icon named "pause circle" (outlined).
  static const IconData pause_circle_outlined = IconData(0xf262, 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(0xe47e, 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(0xeb73, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pause_circle_filled</i> &#x2014; material icon named "pause circle filled" (round).
  static const IconData pause_circle_filled_rounded = IconData(
    0xf0052,
    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(
    0xf260,
    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(0xe47f, 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(0xeb74, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pause_circle_outline</i> &#x2014; material icon named "pause circle outline" (round).
  static const IconData pause_circle_outline_rounded = IconData(
    0xf0053,
    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(
    0xf261,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">pause_presentation</i> &#x2014; material icon named "pause presentation".
  static const IconData pause_presentation = IconData(0xe480, 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(0xeb76, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pause_presentation</i> &#x2014; material icon named "pause presentation" (round).
  static const IconData pause_presentation_rounded = IconData(0xf0055, 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(0xf264, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">payment</i> &#x2014; material icon named "payment".
  static const IconData payment = IconData(0xe481, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">payment</i> &#x2014; material icon named "payment" (sharp).
  static const IconData payment_sharp = IconData(0xeb78, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">payment</i> &#x2014; material icon named "payment" (round).
  static const IconData payment_rounded = IconData(0xf0057, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">payment</i> &#x2014; material icon named "payment" (outlined).
  static const IconData payment_outlined = IconData(0xf265, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">payments</i> &#x2014; material icon named "payments".
  static const IconData payments = IconData(0xe482, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">payments</i> &#x2014; material icon named "payments" (sharp).
  static const IconData payments_sharp = IconData(0xeb79, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">payments</i> &#x2014; material icon named "payments" (round).
  static const IconData payments_rounded = IconData(0xf0058, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">payments</i> &#x2014; material icon named "payments" (outlined).
  static const IconData payments_outlined = IconData(0xf266, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">paypal</i> &#x2014; material icon named "paypal".
  static const IconData paypal = IconData(0xf0545, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">paypal</i> &#x2014; material icon named "paypal" (sharp).
  static const IconData paypal_sharp = IconData(0xf044f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">paypal</i> &#x2014; material icon named "paypal" (round).
  static const IconData paypal_rounded = IconData(0xf035c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">paypal</i> &#x2014; material icon named "paypal" (outlined).
  static const IconData paypal_outlined = IconData(0xf063d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pedal_bike</i> &#x2014; material icon named "pedal bike".
  static const IconData pedal_bike = IconData(0xe483, 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(0xeb7a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pedal_bike</i> &#x2014; material icon named "pedal bike" (round).
  static const IconData pedal_bike_rounded = IconData(0xf0059, 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(0xf267, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pending</i> &#x2014; material icon named "pending".
  static const IconData pending = IconData(0xe484, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pending</i> &#x2014; material icon named "pending" (sharp).
  static const IconData pending_sharp = IconData(0xeb7c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pending</i> &#x2014; material icon named "pending" (round).
  static const IconData pending_rounded = IconData(0xf005b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pending</i> &#x2014; material icon named "pending" (outlined).
  static const IconData pending_outlined = IconData(0xf269, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pending_actions</i> &#x2014; material icon named "pending actions".
  static const IconData pending_actions = IconData(0xe485, 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(0xeb7b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pending_actions</i> &#x2014; material icon named "pending actions" (round).
  static const IconData pending_actions_rounded = IconData(0xf005a, 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(0xf268, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pentagon</i> &#x2014; material icon named "pentagon".
  static const IconData pentagon = IconData(0xf0546, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pentagon</i> &#x2014; material icon named "pentagon" (sharp).
  static const IconData pentagon_sharp = IconData(0xf0450, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pentagon</i> &#x2014; material icon named "pentagon" (round).
  static const IconData pentagon_rounded = IconData(0xf035d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pentagon</i> &#x2014; material icon named "pentagon" (outlined).
  static const IconData pentagon_outlined = IconData(0xf063e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">people</i> &#x2014; material icon named "people".
  static const IconData people = IconData(0xe486, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">people</i> &#x2014; material icon named "people" (sharp).
  static const IconData people_sharp = IconData(0xeb7f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">people</i> &#x2014; material icon named "people" (round).
  static const IconData people_rounded = IconData(0xf005e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">people</i> &#x2014; material icon named "people" (outlined).
  static const IconData people_outlined = IconData(0xf26c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">people_alt</i> &#x2014; material icon named "people alt".
  static const IconData people_alt = IconData(0xe487, 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(0xeb7d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">people_alt</i> &#x2014; material icon named "people alt" (round).
  static const IconData people_alt_rounded = IconData(0xf005c, 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(0xf26a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">people_outline</i> &#x2014; material icon named "people outline".
  static const IconData people_outline = IconData(0xe488, 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(0xeb7e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">people_outline</i> &#x2014; material icon named "people outline" (round).
  static const IconData people_outline_rounded = IconData(0xf005d, 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(0xf26b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">percent</i> &#x2014; material icon named "percent".
  static const IconData percent = IconData(0xf0547, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">percent</i> &#x2014; material icon named "percent" (sharp).
  static const IconData percent_sharp = IconData(0xf0451, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">percent</i> &#x2014; material icon named "percent" (round).
  static const IconData percent_rounded = IconData(0xf035e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">percent</i> &#x2014; material icon named "percent" (outlined).
  static const IconData percent_outlined = IconData(0xf063f, 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(0xe489, 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(0xeb80, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_camera_mic</i> &#x2014; material icon named "perm camera mic" (round).
  static const IconData perm_camera_mic_rounded = IconData(0xf005f, 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(0xf26d, 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(0xe48a, 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(0xeb81, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_contact_cal</i> &#x2014; material icon named "perm contact cal" (round).
  static const IconData perm_contact_cal_rounded = IconData(0xf0060, 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(0xf26e, 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(0xe48a, 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(0xeb81, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_contact_calendar</i> &#x2014; material icon named "perm contact calendar" (round).
  static const IconData perm_contact_calendar_rounded = IconData(
    0xf0060,
    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(
    0xf26e,
    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(0xe48b, 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(0xeb82, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_data_setting</i> &#x2014; material icon named "perm data setting" (round).
  static const IconData perm_data_setting_rounded = IconData(0xf0061, 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(0xf26f, 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(0xe48c, 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(0xeb83, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_device_info</i> &#x2014; material icon named "perm device info" (round).
  static const IconData perm_device_info_rounded = IconData(0xf0062, 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(0xf270, 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(0xe48c, 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(
    0xeb83,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">perm_device_information</i> &#x2014; material icon named "perm device information" (round).
  static const IconData perm_device_information_rounded = IconData(
    0xf0062,
    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(
    0xf270,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">perm_identity</i> &#x2014; material icon named "perm identity".
  static const IconData perm_identity = IconData(0xe48d, 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(0xeb84, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_identity</i> &#x2014; material icon named "perm identity" (round).
  static const IconData perm_identity_rounded = IconData(0xf0063, 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(0xf271, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">perm_media</i> &#x2014; material icon named "perm media".
  static const IconData perm_media = IconData(0xe48e, 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(0xeb85, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_media</i> &#x2014; material icon named "perm media" (round).
  static const IconData perm_media_rounded = IconData(0xf0064, 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(0xf272, 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(0xe48f, 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(0xeb86, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_phone_msg</i> &#x2014; material icon named "perm phone msg" (round).
  static const IconData perm_phone_msg_rounded = IconData(0xf0065, 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(0xf273, 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(0xe490, 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(0xeb87, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">perm_scan_wifi</i> &#x2014; material icon named "perm scan wifi" (round).
  static const IconData perm_scan_wifi_rounded = IconData(0xf0066, 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(0xf274, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person</i> &#x2014; material icon named "person".
  static const IconData person = IconData(0xe491, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">person</i> &#x2014; material icon named "person" (sharp).
  static const IconData person_sharp = IconData(0xeb93, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person</i> &#x2014; material icon named "person" (round).
  static const IconData person_rounded = IconData(0xf0071, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">person</i> &#x2014; material icon named "person" (outlined).
  static const IconData person_outlined = IconData(0xf27b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person_2</i> &#x2014; material icon named "person 2".
  static const IconData person_2 = IconData(0xf0870, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">person_2</i> &#x2014; material icon named "person 2" (sharp).
  static const IconData person_2_sharp = IconData(0xf0847, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_2</i> &#x2014; material icon named "person 2" (round).
  static const IconData person_2_rounded = IconData(0xf0890, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">person_2</i> &#x2014; material icon named "person 2" (outlined).
  static const IconData person_2_outlined = IconData(0xf08ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person_3</i> &#x2014; material icon named "person 3".
  static const IconData person_3 = IconData(0xf0871, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">person_3</i> &#x2014; material icon named "person 3" (sharp).
  static const IconData person_3_sharp = IconData(0xf0848, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_3</i> &#x2014; material icon named "person 3" (round).
  static const IconData person_3_rounded = IconData(0xf0891, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">person_3</i> &#x2014; material icon named "person 3" (outlined).
  static const IconData person_3_outlined = IconData(0xf08af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person_4</i> &#x2014; material icon named "person 4".
  static const IconData person_4 = IconData(0xf0872, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">person_4</i> &#x2014; material icon named "person 4" (sharp).
  static const IconData person_4_sharp = IconData(0xf0849, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_4</i> &#x2014; material icon named "person 4" (round).
  static const IconData person_4_rounded = IconData(0xf0892, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">person_4</i> &#x2014; material icon named "person 4" (outlined).
  static const IconData person_4_outlined = IconData(0xf08b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person_add</i> &#x2014; material icon named "person add".
  static const IconData person_add = IconData(0xe492, 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(0xeb8b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_add</i> &#x2014; material icon named "person add" (round).
  static const IconData person_add_rounded = IconData(0xf006a, 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(0xf278, 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(0xe493, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">person_add_alt</i> &#x2014; material icon named "person add alt" (sharp).
  static const IconData person_add_alt_sharp = IconData(0xeb89, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_add_alt</i> &#x2014; material icon named "person add alt" (round).
  static const IconData person_add_alt_rounded = IconData(0xf0068, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">person_add_alt</i> &#x2014; material icon named "person add alt" (outlined).
  static const IconData person_add_alt_outlined = IconData(0xf276, 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(0xe494, 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(0xeb88, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_add_alt_1</i> &#x2014; material icon named "person add alt 1" (round).
  static const IconData person_add_alt_1_rounded = IconData(0xf0067, 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(0xf275, 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(0xe495, 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(0xeb8a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_add_disabled</i> &#x2014; material icon named "person add disabled" (round).
  static const IconData person_add_disabled_rounded = IconData(
    0xf0069,
    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(
    0xf277,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">person_off</i> &#x2014; material icon named "person off".
  static const IconData person_off = IconData(0xe496, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">person_off</i> &#x2014; material icon named "person off" (sharp).
  static const IconData person_off_sharp = IconData(0xeb8c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_off</i> &#x2014; material icon named "person off" (round).
  static const IconData person_off_rounded = IconData(0xf006b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">person_off</i> &#x2014; material icon named "person off" (outlined).
  static const IconData person_off_outlined = IconData(0xf279, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person_outline</i> &#x2014; material icon named "person outline".
  static const IconData person_outline = IconData(0xe497, 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(0xeb8d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_outline</i> &#x2014; material icon named "person outline" (round).
  static const IconData person_outline_rounded = IconData(0xf006c, 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(0xf27a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person_pin</i> &#x2014; material icon named "person pin".
  static const IconData person_pin = IconData(0xe498, 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(0xeb8f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_pin</i> &#x2014; material icon named "person pin" (round).
  static const IconData person_pin_rounded = IconData(0xf006e, 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(0xf27d, 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(0xe499, 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(0xeb8e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_pin_circle</i> &#x2014; material icon named "person pin circle" (round).
  static const IconData person_pin_circle_rounded = IconData(0xf006d, 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(0xf27c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">person_remove</i> &#x2014; material icon named "person remove".
  static const IconData person_remove = IconData(0xe49a, 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(0xeb91, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_remove</i> &#x2014; material icon named "person remove" (round).
  static const IconData person_remove_rounded = IconData(0xf0070, 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(0xf27f, 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(0xe49b, 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(0xeb90, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_remove_alt_1</i> &#x2014; material icon named "person remove alt 1" (round).
  static const IconData person_remove_alt_1_rounded = IconData(
    0xf006f,
    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(
    0xf27e,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">person_search</i> &#x2014; material icon named "person search".
  static const IconData person_search = IconData(0xe49c, 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(0xeb92, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">person_search</i> &#x2014; material icon named "person search" (round).
  static const IconData person_search_rounded = IconData(0xf0072, 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(0xf280, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">personal_injury</i> &#x2014; material icon named "personal injury".
  static const IconData personal_injury = IconData(0xe49d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">personal_injury</i> &#x2014; material icon named "personal injury" (sharp).
  static const IconData personal_injury_sharp = IconData(0xeb94, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">personal_injury</i> &#x2014; material icon named "personal injury" (round).
  static const IconData personal_injury_rounded = IconData(0xf0073, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">personal_injury</i> &#x2014; material icon named "personal injury" (outlined).
  static const IconData personal_injury_outlined = IconData(0xf281, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">personal_video</i> &#x2014; material icon named "personal video".
  static const IconData personal_video = IconData(0xe49e, 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(0xeb95, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">personal_video</i> &#x2014; material icon named "personal video" (round).
  static const IconData personal_video_rounded = IconData(0xf0074, 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(0xf282, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pest_control</i> &#x2014; material icon named "pest control".
  static const IconData pest_control = IconData(0xe49f, 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(0xeb97, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pest_control</i> &#x2014; material icon named "pest control" (round).
  static const IconData pest_control_rounded = IconData(0xf0076, 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(0xf283, 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(0xe4a0, 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(0xeb96, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pest_control_rodent</i> &#x2014; material icon named "pest control rodent" (round).
  static const IconData pest_control_rodent_rounded = IconData(
    0xf0075,
    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(
    0xf284,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">pets</i> &#x2014; material icon named "pets".
  static const IconData pets = IconData(0xe4a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pets</i> &#x2014; material icon named "pets" (sharp).
  static const IconData pets_sharp = IconData(0xeb98, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pets</i> &#x2014; material icon named "pets" (round).
  static const IconData pets_rounded = IconData(0xf0077, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pets</i> &#x2014; material icon named "pets" (outlined).
  static const IconData pets_outlined = IconData(0xf285, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phishing</i> &#x2014; material icon named "phishing".
  static const IconData phishing = IconData(0xf0548, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phishing</i> &#x2014; material icon named "phishing" (sharp).
  static const IconData phishing_sharp = IconData(0xf0452, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phishing</i> &#x2014; material icon named "phishing" (round).
  static const IconData phishing_rounded = IconData(0xf035f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phishing</i> &#x2014; material icon named "phishing" (outlined).
  static const IconData phishing_outlined = IconData(0xf0640, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone</i> &#x2014; material icon named "phone".
  static const IconData phone = IconData(0xe4a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phone</i> &#x2014; material icon named "phone" (sharp).
  static const IconData phone_sharp = IconData(0xeba4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone</i> &#x2014; material icon named "phone" (round).
  static const IconData phone_rounded = IconData(0xf0083, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phone</i> &#x2014; material icon named "phone" (outlined).
  static const IconData phone_outlined = IconData(0xf290, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_android</i> &#x2014; material icon named "phone android".
  static const IconData phone_android = IconData(0xe4a3, 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(0xeb99, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_android</i> &#x2014; material icon named "phone android" (round).
  static const IconData phone_android_rounded = IconData(0xf0078, 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(0xf286, 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(0xe4a4, 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(
    0xeb9a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">phone_bluetooth_speaker</i> &#x2014; material icon named "phone bluetooth speaker" (round).
  static const IconData phone_bluetooth_speaker_rounded = IconData(
    0xf0079,
    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(
    0xf287,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">phone_callback</i> &#x2014; material icon named "phone callback".
  static const IconData phone_callback = IconData(0xe4a5, 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(0xeb9b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_callback</i> &#x2014; material icon named "phone callback" (round).
  static const IconData phone_callback_rounded = IconData(0xf007a, 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(0xf288, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_disabled</i> &#x2014; material icon named "phone disabled".
  static const IconData phone_disabled = IconData(0xe4a6, 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(0xeb9c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_disabled</i> &#x2014; material icon named "phone disabled" (round).
  static const IconData phone_disabled_rounded = IconData(0xf007b, 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(0xf289, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_enabled</i> &#x2014; material icon named "phone enabled".
  static const IconData phone_enabled = IconData(0xe4a7, 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(0xeb9d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_enabled</i> &#x2014; material icon named "phone enabled" (round).
  static const IconData phone_enabled_rounded = IconData(0xf007c, 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(0xf28a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_forwarded</i> &#x2014; material icon named "phone forwarded".
  static const IconData phone_forwarded = IconData(0xe4a8, 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(0xeb9e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_forwarded</i> &#x2014; material icon named "phone forwarded" (round).
  static const IconData phone_forwarded_rounded = IconData(0xf007d, 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(0xf28b, 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(0xe4a9, 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(0xeb9f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_in_talk</i> &#x2014; material icon named "phone in talk" (round).
  static const IconData phone_in_talk_rounded = IconData(0xf007e, 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(0xf28c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_iphone</i> &#x2014; material icon named "phone iphone".
  static const IconData phone_iphone = IconData(0xe4aa, 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(0xeba0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_iphone</i> &#x2014; material icon named "phone iphone" (round).
  static const IconData phone_iphone_rounded = IconData(0xf007f, 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(0xf28d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_locked</i> &#x2014; material icon named "phone locked".
  static const IconData phone_locked = IconData(0xe4ab, 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(0xeba1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_locked</i> &#x2014; material icon named "phone locked" (round).
  static const IconData phone_locked_rounded = IconData(0xf0080, 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(0xf28e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_missed</i> &#x2014; material icon named "phone missed".
  static const IconData phone_missed = IconData(0xe4ac, 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(0xeba2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_missed</i> &#x2014; material icon named "phone missed" (round).
  static const IconData phone_missed_rounded = IconData(0xf0081, 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(0xf28f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phone_paused</i> &#x2014; material icon named "phone paused".
  static const IconData phone_paused = IconData(0xe4ad, 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(0xeba3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phone_paused</i> &#x2014; material icon named "phone paused" (round).
  static const IconData phone_paused_rounded = IconData(0xf0082, 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(0xf291, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phonelink</i> &#x2014; material icon named "phonelink".
  static const IconData phonelink = IconData(0xe4ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">phonelink</i> &#x2014; material icon named "phonelink" (sharp).
  static const IconData phonelink_sharp = IconData(0xebaa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phonelink</i> &#x2014; material icon named "phonelink" (round).
  static const IconData phonelink_rounded = IconData(0xf0088, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">phonelink</i> &#x2014; material icon named "phonelink" (outlined).
  static const IconData phonelink_outlined = IconData(0xf295, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phonelink_erase</i> &#x2014; material icon named "phonelink erase".
  static const IconData phonelink_erase = IconData(0xe4af, 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(0xeba5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phonelink_erase</i> &#x2014; material icon named "phonelink erase" (round).
  static const IconData phonelink_erase_rounded = IconData(0xf0084, 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(0xf292, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phonelink_lock</i> &#x2014; material icon named "phonelink lock".
  static const IconData phonelink_lock = IconData(0xe4b0, 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(0xeba6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phonelink_lock</i> &#x2014; material icon named "phonelink lock" (round).
  static const IconData phonelink_lock_rounded = IconData(0xf0085, 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(0xf293, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phonelink_off</i> &#x2014; material icon named "phonelink off".
  static const IconData phonelink_off = IconData(0xe4b1, 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(0xeba7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phonelink_off</i> &#x2014; material icon named "phonelink off" (round).
  static const IconData phonelink_off_rounded = IconData(0xf0086, 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(0xf294, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phonelink_ring</i> &#x2014; material icon named "phonelink ring".
  static const IconData phonelink_ring = IconData(0xe4b2, 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(0xeba8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phonelink_ring</i> &#x2014; material icon named "phonelink ring" (round).
  static const IconData phonelink_ring_rounded = IconData(0xf0087, 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(0xf296, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">phonelink_setup</i> &#x2014; material icon named "phonelink setup".
  static const IconData phonelink_setup = IconData(0xe4b3, 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(0xeba9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">phonelink_setup</i> &#x2014; material icon named "phonelink setup" (round).
  static const IconData phonelink_setup_rounded = IconData(0xf0089, 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(0xf297, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">photo</i> &#x2014; material icon named "photo".
  static const IconData photo = IconData(0xe4b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">photo</i> &#x2014; material icon named "photo" (sharp).
  static const IconData photo_sharp = IconData(0xebb1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">photo</i> &#x2014; material icon named "photo" (round).
  static const IconData photo_rounded = IconData(0xf0090, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">photo</i> &#x2014; material icon named "photo" (outlined).
  static const IconData photo_outlined = IconData(0xf29e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">photo_album</i> &#x2014; material icon named "photo album".
  static const IconData photo_album = IconData(0xe4b5, 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(0xebab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">photo_album</i> &#x2014; material icon named "photo album" (round).
  static const IconData photo_album_rounded = IconData(0xf008a, 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(0xf298, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">photo_camera</i> &#x2014; material icon named "photo camera".
  static const IconData photo_camera = IconData(0xe4b6, 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(0xebae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">photo_camera</i> &#x2014; material icon named "photo camera" (round).
  static const IconData photo_camera_rounded = IconData(0xf008d, 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(0xf29b, 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(0xe4b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">photo_camera_back</i> &#x2014; material icon named "photo camera back" (sharp).
  static const IconData photo_camera_back_sharp = IconData(0xebac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">photo_camera_back</i> &#x2014; material icon named "photo camera back" (round).
  static const IconData photo_camera_back_rounded = IconData(0xf008b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">photo_camera_back</i> &#x2014; material icon named "photo camera back" (outlined).
  static const IconData photo_camera_back_outlined = IconData(0xf299, 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(0xe4b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">photo_camera_front</i> &#x2014; material icon named "photo camera front" (sharp).
  static const IconData photo_camera_front_sharp = IconData(0xebad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">photo_camera_front</i> &#x2014; material icon named "photo camera front" (round).
  static const IconData photo_camera_front_rounded = IconData(0xf008c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">photo_camera_front</i> &#x2014; material icon named "photo camera front" (outlined).
  static const IconData photo_camera_front_outlined = IconData(0xf29a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">photo_filter</i> &#x2014; material icon named "photo filter".
  static const IconData photo_filter = IconData(0xe4b9, 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(0xebaf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">photo_filter</i> &#x2014; material icon named "photo filter" (round).
  static const IconData photo_filter_rounded = IconData(0xf008e, 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(0xf29c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">photo_library</i> &#x2014; material icon named "photo library".
  static const IconData photo_library = IconData(0xe4ba, 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(0xebb0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">photo_library</i> &#x2014; material icon named "photo library" (round).
  static const IconData photo_library_rounded = IconData(0xf008f, 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(0xf29d, 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(0xe4bb, 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(
    0xebb2,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">photo_size_select_actual</i> &#x2014; material icon named "photo size select actual" (round).
  static const IconData photo_size_select_actual_rounded = IconData(
    0xf0091,
    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(
    0xf29f,
    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(0xe4bc, 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(
    0xebb3,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">photo_size_select_large</i> &#x2014; material icon named "photo size select large" (round).
  static const IconData photo_size_select_large_rounded = IconData(
    0xf0092,
    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(
    0xf2a0,
    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(0xe4bd, 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(
    0xebb4,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">photo_size_select_small</i> &#x2014; material icon named "photo size select small" (round).
  static const IconData photo_size_select_small_rounded = IconData(
    0xf0093,
    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(
    0xf2a1,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">php</i> &#x2014; material icon named "php".
  static const IconData php = IconData(0xf0549, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">php</i> &#x2014; material icon named "php" (sharp).
  static const IconData php_sharp = IconData(0xf0453, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">php</i> &#x2014; material icon named "php" (round).
  static const IconData php_rounded = IconData(0xf0360, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">php</i> &#x2014; material icon named "php" (outlined).
  static const IconData php_outlined = IconData(0xf0641, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">piano</i> &#x2014; material icon named "piano".
  static const IconData piano = IconData(0xe4be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">piano</i> &#x2014; material icon named "piano" (sharp).
  static const IconData piano_sharp = IconData(0xebb6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">piano</i> &#x2014; material icon named "piano" (round).
  static const IconData piano_rounded = IconData(0xf0095, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">piano</i> &#x2014; material icon named "piano" (outlined).
  static const IconData piano_outlined = IconData(0xf2a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">piano_off</i> &#x2014; material icon named "piano off".
  static const IconData piano_off = IconData(0xe4bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">piano_off</i> &#x2014; material icon named "piano off" (sharp).
  static const IconData piano_off_sharp = IconData(0xebb5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">piano_off</i> &#x2014; material icon named "piano off" (round).
  static const IconData piano_off_rounded = IconData(0xf0094, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">piano_off</i> &#x2014; material icon named "piano off" (outlined).
  static const IconData piano_off_outlined = IconData(0xf2a2, 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(0xe4c0, 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(0xebb7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">picture_as_pdf</i> &#x2014; material icon named "picture as pdf" (round).
  static const IconData picture_as_pdf_rounded = IconData(0xf0096, 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(0xf2a4, 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(0xe4c1, 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(0xebb9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">picture_in_picture</i> &#x2014; material icon named "picture in picture" (round).
  static const IconData picture_in_picture_rounded = IconData(0xf0098, 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(0xf2a6, 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(0xe4c2, 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(
    0xebb8,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">picture_in_picture_alt</i> &#x2014; material icon named "picture in picture alt" (round).
  static const IconData picture_in_picture_alt_rounded = IconData(
    0xf0097,
    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(
    0xf2a5,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">pie_chart</i> &#x2014; material icon named "pie chart".
  static const IconData pie_chart = IconData(0xe4c3, 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(0xebbb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pie_chart</i> &#x2014; material icon named "pie chart" (round).
  static const IconData pie_chart_rounded = IconData(0xf009a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pie_chart_outline</i> &#x2014; material icon named "pie chart outline".
  static const IconData pie_chart_outline = IconData(0xe4c5, 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(0xebba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pie_chart_outline</i> &#x2014; material icon named "pie chart outline" (round).
  static const IconData pie_chart_outline_rounded = IconData(0xf0099, 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(0xf2a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pin</i> &#x2014; material icon named "pin".
  static const IconData pin = IconData(0xe4c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pin</i> &#x2014; material icon named "pin" (sharp).
  static const IconData pin_sharp = IconData(0xebbd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pin</i> &#x2014; material icon named "pin" (round).
  static const IconData pin_rounded = IconData(0xf009c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pin</i> &#x2014; material icon named "pin" (outlined).
  static const IconData pin_outlined = IconData(0xf2aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pin_drop</i> &#x2014; material icon named "pin drop".
  static const IconData pin_drop = IconData(0xe4c7, 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(0xebbc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pin_drop</i> &#x2014; material icon named "pin drop" (round).
  static const IconData pin_drop_rounded = IconData(0xf009b, 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(0xf2a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pin_end</i> &#x2014; material icon named "pin end".
  static const IconData pin_end = IconData(0xf054b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pin_end</i> &#x2014; material icon named "pin end" (sharp).
  static const IconData pin_end_sharp = IconData(0xf0454, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pin_end</i> &#x2014; material icon named "pin end" (round).
  static const IconData pin_end_rounded = IconData(0xf0361, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pin_end</i> &#x2014; material icon named "pin end" (outlined).
  static const IconData pin_end_outlined = IconData(0xf0642, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pin_invoke</i> &#x2014; material icon named "pin invoke".
  static const IconData pin_invoke = IconData(0xf054c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pin_invoke</i> &#x2014; material icon named "pin invoke" (sharp).
  static const IconData pin_invoke_sharp = IconData(0xf0455, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pin_invoke</i> &#x2014; material icon named "pin invoke" (round).
  static const IconData pin_invoke_rounded = IconData(0xf0362, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pin_invoke</i> &#x2014; material icon named "pin invoke" (outlined).
  static const IconData pin_invoke_outlined = IconData(0xf0643, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pinch</i> &#x2014; material icon named "pinch".
  static const IconData pinch = IconData(0xf054d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pinch</i> &#x2014; material icon named "pinch" (sharp).
  static const IconData pinch_sharp = IconData(0xf0456, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pinch</i> &#x2014; material icon named "pinch" (round).
  static const IconData pinch_rounded = IconData(0xf0363, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pinch</i> &#x2014; material icon named "pinch" (outlined).
  static const IconData pinch_outlined = IconData(0xf0644, 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(0xe4c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pivot_table_chart</i> &#x2014; material icon named "pivot table chart" (sharp).
  static const IconData pivot_table_chart_sharp = IconData(0xebbe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pivot_table_chart</i> &#x2014; material icon named "pivot table chart" (round).
  static const IconData pivot_table_chart_rounded = IconData(0xf009d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pivot_table_chart</i> &#x2014; material icon named "pivot table chart" (outlined).
  static const IconData pivot_table_chart_outlined = IconData(0xf2ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pix</i> &#x2014; material icon named "pix".
  static const IconData pix = IconData(0xf054e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pix</i> &#x2014; material icon named "pix" (sharp).
  static const IconData pix_sharp = IconData(0xf0457, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pix</i> &#x2014; material icon named "pix" (round).
  static const IconData pix_rounded = IconData(0xf0364, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pix</i> &#x2014; material icon named "pix" (outlined).
  static const IconData pix_outlined = IconData(0xf0645, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">place</i> &#x2014; material icon named "place".
  static const IconData place = IconData(0xe4c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">place</i> &#x2014; material icon named "place" (sharp).
  static const IconData place_sharp = IconData(0xebbf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">place</i> &#x2014; material icon named "place" (round).
  static const IconData place_rounded = IconData(0xf009e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">place</i> &#x2014; material icon named "place" (outlined).
  static const IconData place_outlined = IconData(0xf2ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">plagiarism</i> &#x2014; material icon named "plagiarism".
  static const IconData plagiarism = IconData(0xe4ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">plagiarism</i> &#x2014; material icon named "plagiarism" (sharp).
  static const IconData plagiarism_sharp = IconData(0xebc0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">plagiarism</i> &#x2014; material icon named "plagiarism" (round).
  static const IconData plagiarism_rounded = IconData(0xf009f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">plagiarism</i> &#x2014; material icon named "plagiarism" (outlined).
  static const IconData plagiarism_outlined = IconData(0xf2ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">play_arrow</i> &#x2014; material icon named "play arrow".
  static const IconData play_arrow = IconData(0xe4cb, 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(0xebc1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">play_arrow</i> &#x2014; material icon named "play arrow" (round).
  static const IconData play_arrow_rounded = IconData(0xf00a0, 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(0xf2ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">play_circle</i> &#x2014; material icon named "play circle".
  static const IconData play_circle = IconData(0xe4cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">play_circle</i> &#x2014; material icon named "play circle" (sharp).
  static const IconData play_circle_sharp = IconData(0xebc4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">play_circle</i> &#x2014; material icon named "play circle" (round).
  static const IconData play_circle_rounded = IconData(0xf00a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">play_circle</i> &#x2014; material icon named "play circle" (outlined).
  static const IconData play_circle_outlined = IconData(0xf2b1, 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(0xe4cd, 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(0xebc2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">play_circle_fill</i> &#x2014; material icon named "play circle fill" (round).
  static const IconData play_circle_fill_rounded = IconData(0xf00a1, 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(0xf2af, 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(0xe4cd, 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(0xebc2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">play_circle_filled</i> &#x2014; material icon named "play circle filled" (round).
  static const IconData play_circle_filled_rounded = IconData(0xf00a1, 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(0xf2af, 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(0xe4ce, 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(0xebc3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">play_circle_outline</i> &#x2014; material icon named "play circle outline" (round).
  static const IconData play_circle_outline_rounded = IconData(
    0xf00a2,
    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(
    0xf2b0,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">play_disabled</i> &#x2014; material icon named "play disabled".
  static const IconData play_disabled = IconData(0xe4cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">play_disabled</i> &#x2014; material icon named "play disabled" (sharp).
  static const IconData play_disabled_sharp = IconData(0xebc5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">play_disabled</i> &#x2014; material icon named "play disabled" (round).
  static const IconData play_disabled_rounded = IconData(0xf00a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">play_disabled</i> &#x2014; material icon named "play disabled" (outlined).
  static const IconData play_disabled_outlined = IconData(0xf2b2, 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(0xe4d0, 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(0xebc6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">play_for_work</i> &#x2014; material icon named "play for work" (round).
  static const IconData play_for_work_rounded = IconData(0xf00a5, 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(0xf2b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">play_lesson</i> &#x2014; material icon named "play lesson".
  static const IconData play_lesson = IconData(0xe4d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">play_lesson</i> &#x2014; material icon named "play lesson" (sharp).
  static const IconData play_lesson_sharp = IconData(0xebc7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">play_lesson</i> &#x2014; material icon named "play lesson" (round).
  static const IconData play_lesson_rounded = IconData(0xf00a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">play_lesson</i> &#x2014; material icon named "play lesson" (outlined).
  static const IconData play_lesson_outlined = IconData(0xf2b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">playlist_add</i> &#x2014; material icon named "playlist add".
  static const IconData playlist_add = IconData(
    0xe4d2,
    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(
    0xebc9,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">playlist_add</i> &#x2014; material icon named "playlist add" (round).
  static const IconData playlist_add_rounded = IconData(
    0xf00a8,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-outlined md-36">playlist_add</i> &#x2014; material icon named "playlist add" (outlined).
  static const IconData playlist_add_outlined = IconData(
    0xf2b6,
    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(0xe4d3, 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(0xebc8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">playlist_add_check</i> &#x2014; material icon named "playlist add check" (round).
  static const IconData playlist_add_check_rounded = IconData(0xf00a7, 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(0xf2b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">playlist_add_check_circle</i> &#x2014; material icon named "playlist add check circle".
  static const IconData playlist_add_check_circle = IconData(0xf054f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">playlist_add_check_circle</i> &#x2014; material icon named "playlist add check circle" (sharp).
  static const IconData playlist_add_check_circle_sharp = IconData(
    0xf0458,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">playlist_add_check_circle</i> &#x2014; material icon named "playlist add check circle" (round).
  static const IconData playlist_add_check_circle_rounded = IconData(
    0xf0365,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">playlist_add_check_circle</i> &#x2014; material icon named "playlist add check circle" (outlined).
  static const IconData playlist_add_check_circle_outlined = IconData(
    0xf0646,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">playlist_add_circle</i> &#x2014; material icon named "playlist add circle".
  static const IconData playlist_add_circle = IconData(0xf0550, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">playlist_add_circle</i> &#x2014; material icon named "playlist add circle" (sharp).
  static const IconData playlist_add_circle_sharp = IconData(0xf0459, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">playlist_add_circle</i> &#x2014; material icon named "playlist add circle" (round).
  static const IconData playlist_add_circle_rounded = IconData(
    0xf0366,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">playlist_add_circle</i> &#x2014; material icon named "playlist add circle" (outlined).
  static const IconData playlist_add_circle_outlined = IconData(
    0xf0647,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">playlist_play</i> &#x2014; material icon named "playlist play".
  static const IconData playlist_play = IconData(0xe4d4, 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(0xebca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">playlist_play</i> &#x2014; material icon named "playlist play" (round).
  static const IconData playlist_play_rounded = IconData(0xf00a9, 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(0xf2b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">playlist_remove</i> &#x2014; material icon named "playlist remove".
  static const IconData playlist_remove = IconData(0xf0551, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">playlist_remove</i> &#x2014; material icon named "playlist remove" (sharp).
  static const IconData playlist_remove_sharp = IconData(0xf045a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">playlist_remove</i> &#x2014; material icon named "playlist remove" (round).
  static const IconData playlist_remove_rounded = IconData(0xf0367, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">playlist_remove</i> &#x2014; material icon named "playlist remove" (outlined).
  static const IconData playlist_remove_outlined = IconData(0xf0648, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">plumbing</i> &#x2014; material icon named "plumbing".
  static const IconData plumbing = IconData(0xe4d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">plumbing</i> &#x2014; material icon named "plumbing" (sharp).
  static const IconData plumbing_sharp = IconData(0xebcb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">plumbing</i> &#x2014; material icon named "plumbing" (round).
  static const IconData plumbing_rounded = IconData(0xf00aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">plumbing</i> &#x2014; material icon named "plumbing" (outlined).
  static const IconData plumbing_outlined = IconData(0xf2b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">plus_one</i> &#x2014; material icon named "plus one".
  static const IconData plus_one = IconData(0xe4d6, 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(0xebcc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">plus_one</i> &#x2014; material icon named "plus one" (round).
  static const IconData plus_one_rounded = IconData(0xf00ab, 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(0xf2b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">podcasts</i> &#x2014; material icon named "podcasts".
  static const IconData podcasts = IconData(0xe4d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">podcasts</i> &#x2014; material icon named "podcasts" (sharp).
  static const IconData podcasts_sharp = IconData(0xebcd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">podcasts</i> &#x2014; material icon named "podcasts" (round).
  static const IconData podcasts_rounded = IconData(0xf00ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">podcasts</i> &#x2014; material icon named "podcasts" (outlined).
  static const IconData podcasts_outlined = IconData(0xf2ba, 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(0xe4d8, 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(0xebce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">point_of_sale</i> &#x2014; material icon named "point of sale" (round).
  static const IconData point_of_sale_rounded = IconData(0xf00ad, 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(0xf2bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">policy</i> &#x2014; material icon named "policy".
  static const IconData policy = IconData(0xe4d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">policy</i> &#x2014; material icon named "policy" (sharp).
  static const IconData policy_sharp = IconData(0xebcf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">policy</i> &#x2014; material icon named "policy" (round).
  static const IconData policy_rounded = IconData(0xf00ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">policy</i> &#x2014; material icon named "policy" (outlined).
  static const IconData policy_outlined = IconData(0xf2bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">poll</i> &#x2014; material icon named "poll".
  static const IconData poll = IconData(0xe4da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">poll</i> &#x2014; material icon named "poll" (sharp).
  static const IconData poll_sharp = IconData(0xebd0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">poll</i> &#x2014; material icon named "poll" (round).
  static const IconData poll_rounded = IconData(0xf00af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">poll</i> &#x2014; material icon named "poll" (outlined).
  static const IconData poll_outlined = IconData(0xf2bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">polyline</i> &#x2014; material icon named "polyline".
  static const IconData polyline = IconData(0xf0552, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">polyline</i> &#x2014; material icon named "polyline" (sharp).
  static const IconData polyline_sharp = IconData(0xf045b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">polyline</i> &#x2014; material icon named "polyline" (round).
  static const IconData polyline_rounded = IconData(0xf0368, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">polyline</i> &#x2014; material icon named "polyline" (outlined).
  static const IconData polyline_outlined = IconData(0xf0649, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">polymer</i> &#x2014; material icon named "polymer".
  static const IconData polymer = IconData(0xe4db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">polymer</i> &#x2014; material icon named "polymer" (sharp).
  static const IconData polymer_sharp = IconData(0xebd1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">polymer</i> &#x2014; material icon named "polymer" (round).
  static const IconData polymer_rounded = IconData(0xf00b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">polymer</i> &#x2014; material icon named "polymer" (outlined).
  static const IconData polymer_outlined = IconData(0xf2be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">pool</i> &#x2014; material icon named "pool".
  static const IconData pool = IconData(0xe4dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">pool</i> &#x2014; material icon named "pool" (sharp).
  static const IconData pool_sharp = IconData(0xebd2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pool</i> &#x2014; material icon named "pool" (round).
  static const IconData pool_rounded = IconData(0xf00b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">pool</i> &#x2014; material icon named "pool" (outlined).
  static const IconData pool_outlined = IconData(0xf2bf, 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(0xe4dd, 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(0xebd3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">portable_wifi_off</i> &#x2014; material icon named "portable wifi off" (round).
  static const IconData portable_wifi_off_rounded = IconData(0xf00b2, 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(0xf2c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">portrait</i> &#x2014; material icon named "portrait".
  static const IconData portrait = IconData(0xe4de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">portrait</i> &#x2014; material icon named "portrait" (sharp).
  static const IconData portrait_sharp = IconData(0xebd4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">portrait</i> &#x2014; material icon named "portrait" (round).
  static const IconData portrait_rounded = IconData(0xf00b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">portrait</i> &#x2014; material icon named "portrait" (outlined).
  static const IconData portrait_outlined = IconData(0xf2c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">post_add</i> &#x2014; material icon named "post add".
  static const IconData post_add = IconData(0xe4df, 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(0xebd5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">post_add</i> &#x2014; material icon named "post add" (round).
  static const IconData post_add_rounded = IconData(0xf00b4, 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(0xf2c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">power</i> &#x2014; material icon named "power".
  static const IconData power = IconData(0xe4e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">power</i> &#x2014; material icon named "power" (sharp).
  static const IconData power_sharp = IconData(0xebd9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">power</i> &#x2014; material icon named "power" (round).
  static const IconData power_rounded = IconData(0xf00b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">power</i> &#x2014; material icon named "power" (outlined).
  static const IconData power_outlined = IconData(0xf2c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">power_input</i> &#x2014; material icon named "power input".
  static const IconData power_input = IconData(0xe4e1, 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(0xebd6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">power_input</i> &#x2014; material icon named "power input" (round).
  static const IconData power_input_rounded = IconData(0xf00b5, 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(0xf2c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">power_off</i> &#x2014; material icon named "power off".
  static const IconData power_off = IconData(0xe4e2, 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(0xebd7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">power_off</i> &#x2014; material icon named "power off" (round).
  static const IconData power_off_rounded = IconData(0xf00b6, 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(0xf2c4, 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(0xe4e3, 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(0xebd8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">power_settings_new</i> &#x2014; material icon named "power settings new" (round).
  static const IconData power_settings_new_rounded = IconData(0xf00b8, 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(0xf2c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">precision_manufacturing</i> &#x2014; material icon named "precision manufacturing".
  static const IconData precision_manufacturing = IconData(0xe4e4, 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(
    0xebda,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">precision_manufacturing</i> &#x2014; material icon named "precision manufacturing" (round).
  static const IconData precision_manufacturing_rounded = IconData(
    0xf00b9,
    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(
    0xf2c7,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">pregnant_woman</i> &#x2014; material icon named "pregnant woman".
  static const IconData pregnant_woman = IconData(0xe4e5, 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(0xebdb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">pregnant_woman</i> &#x2014; material icon named "pregnant woman" (round).
  static const IconData pregnant_woman_rounded = IconData(0xf00ba, 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(0xf2c8, 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(0xe4e6, 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(0xebdc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">present_to_all</i> &#x2014; material icon named "present to all" (round).
  static const IconData present_to_all_rounded = IconData(0xf00bb, 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(0xf2c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">preview</i> &#x2014; material icon named "preview".
  static const IconData preview = IconData(0xe4e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">preview</i> &#x2014; material icon named "preview" (sharp).
  static const IconData preview_sharp = IconData(0xebdd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">preview</i> &#x2014; material icon named "preview" (round).
  static const IconData preview_rounded = IconData(0xf00bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">preview</i> &#x2014; material icon named "preview" (outlined).
  static const IconData preview_outlined = IconData(0xf2ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">price_change</i> &#x2014; material icon named "price change".
  static const IconData price_change = IconData(0xe4e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">price_change</i> &#x2014; material icon named "price change" (sharp).
  static const IconData price_change_sharp = IconData(0xebde, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">price_change</i> &#x2014; material icon named "price change" (round).
  static const IconData price_change_rounded = IconData(0xf00bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">price_change</i> &#x2014; material icon named "price change" (outlined).
  static const IconData price_change_outlined = IconData(0xf2cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">price_check</i> &#x2014; material icon named "price check".
  static const IconData price_check = IconData(0xe4e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">price_check</i> &#x2014; material icon named "price check" (sharp).
  static const IconData price_check_sharp = IconData(0xebdf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">price_check</i> &#x2014; material icon named "price check" (round).
  static const IconData price_check_rounded = IconData(0xf00be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">price_check</i> &#x2014; material icon named "price check" (outlined).
  static const IconData price_check_outlined = IconData(0xf2cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">print</i> &#x2014; material icon named "print".
  static const IconData print = IconData(0xe4ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">print</i> &#x2014; material icon named "print" (sharp).
  static const IconData print_sharp = IconData(0xebe1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">print</i> &#x2014; material icon named "print" (round).
  static const IconData print_rounded = IconData(0xf00c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">print</i> &#x2014; material icon named "print" (outlined).
  static const IconData print_outlined = IconData(0xf2ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">print_disabled</i> &#x2014; material icon named "print disabled".
  static const IconData print_disabled = IconData(0xe4eb, 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(0xebe0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">print_disabled</i> &#x2014; material icon named "print disabled" (round).
  static const IconData print_disabled_rounded = IconData(0xf00bf, 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(0xf2cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">priority_high</i> &#x2014; material icon named "priority high".
  static const IconData priority_high = IconData(0xe4ec, 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(0xebe2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">priority_high</i> &#x2014; material icon named "priority high" (round).
  static const IconData priority_high_rounded = IconData(0xf00c1, 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(0xf2cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">privacy_tip</i> &#x2014; material icon named "privacy tip".
  static const IconData privacy_tip = IconData(0xe4ed, 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(0xebe3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">privacy_tip</i> &#x2014; material icon named "privacy tip" (round).
  static const IconData privacy_tip_rounded = IconData(0xf00c2, 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(0xf2d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">private_connectivity</i> &#x2014; material icon named "private connectivity".
  static const IconData private_connectivity = IconData(0xf0553, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">private_connectivity</i> &#x2014; material icon named "private connectivity" (sharp).
  static const IconData private_connectivity_sharp = IconData(0xf045c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">private_connectivity</i> &#x2014; material icon named "private connectivity" (round).
  static const IconData private_connectivity_rounded = IconData(
    0xf0369,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">private_connectivity</i> &#x2014; material icon named "private connectivity" (outlined).
  static const IconData private_connectivity_outlined = IconData(
    0xf064a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">production_quantity_limits</i> &#x2014; material icon named "production quantity limits".
  static const IconData production_quantity_limits = IconData(0xe4ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">production_quantity_limits</i> &#x2014; material icon named "production quantity limits" (sharp).
  static const IconData production_quantity_limits_sharp = IconData(
    0xebe4,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">production_quantity_limits</i> &#x2014; material icon named "production quantity limits" (round).
  static const IconData production_quantity_limits_rounded = IconData(
    0xf00c3,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">production_quantity_limits</i> &#x2014; material icon named "production quantity limits" (outlined).
  static const IconData production_quantity_limits_outlined = IconData(
    0xf2d1,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">propane</i> &#x2014; material icon named "propane".
  static const IconData propane = IconData(0xf07b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">propane</i> &#x2014; material icon named "propane" (sharp).
  static const IconData propane_sharp = IconData(0xf0761, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">propane</i> &#x2014; material icon named "propane" (round).
  static const IconData propane_rounded = IconData(0xf0811, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">propane</i> &#x2014; material icon named "propane" (outlined).
  static const IconData propane_outlined = IconData(0xf0709, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">propane_tank</i> &#x2014; material icon named "propane tank".
  static const IconData propane_tank = IconData(0xf07ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">propane_tank</i> &#x2014; material icon named "propane tank" (sharp).
  static const IconData propane_tank_sharp = IconData(0xf0762, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">propane_tank</i> &#x2014; material icon named "propane tank" (round).
  static const IconData propane_tank_rounded = IconData(0xf0812, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">propane_tank</i> &#x2014; material icon named "propane tank" (outlined).
  static const IconData propane_tank_outlined = IconData(0xf070a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">psychology</i> &#x2014; material icon named "psychology".
  static const IconData psychology = IconData(0xe4ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">psychology</i> &#x2014; material icon named "psychology" (sharp).
  static const IconData psychology_sharp = IconData(0xebe5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">psychology</i> &#x2014; material icon named "psychology" (round).
  static const IconData psychology_rounded = IconData(0xf00c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">psychology</i> &#x2014; material icon named "psychology" (outlined).
  static const IconData psychology_outlined = IconData(0xf2d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">psychology_alt</i> &#x2014; material icon named "psychology alt".
  static const IconData psychology_alt = IconData(0xf0873, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">psychology_alt</i> &#x2014; material icon named "psychology alt" (sharp).
  static const IconData psychology_alt_sharp = IconData(0xf084a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">psychology_alt</i> &#x2014; material icon named "psychology alt" (round).
  static const IconData psychology_alt_rounded = IconData(0xf0893, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">psychology_alt</i> &#x2014; material icon named "psychology alt" (outlined).
  static const IconData psychology_alt_outlined = IconData(0xf08b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">public</i> &#x2014; material icon named "public".
  static const IconData public = IconData(0xe4f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">public</i> &#x2014; material icon named "public" (sharp).
  static const IconData public_sharp = IconData(0xebe7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">public</i> &#x2014; material icon named "public" (round).
  static const IconData public_rounded = IconData(0xf00c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">public</i> &#x2014; material icon named "public" (outlined).
  static const IconData public_outlined = IconData(0xf2d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">public_off</i> &#x2014; material icon named "public off".
  static const IconData public_off = IconData(0xe4f1, 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(0xebe6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">public_off</i> &#x2014; material icon named "public off" (round).
  static const IconData public_off_rounded = IconData(0xf00c5, 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(0xf2d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">publish</i> &#x2014; material icon named "publish".
  static const IconData publish = IconData(0xe4f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">publish</i> &#x2014; material icon named "publish" (sharp).
  static const IconData publish_sharp = IconData(0xebe8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">publish</i> &#x2014; material icon named "publish" (round).
  static const IconData publish_rounded = IconData(0xf00c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">publish</i> &#x2014; material icon named "publish" (outlined).
  static const IconData publish_outlined = IconData(0xf2d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">published_with_changes</i> &#x2014; material icon named "published with changes".
  static const IconData published_with_changes = IconData(0xe4f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">published_with_changes</i> &#x2014; material icon named "published with changes" (sharp).
  static const IconData published_with_changes_sharp = IconData(
    0xebe9,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">published_with_changes</i> &#x2014; material icon named "published with changes" (round).
  static const IconData published_with_changes_rounded = IconData(
    0xf00c8,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">published_with_changes</i> &#x2014; material icon named "published with changes" (outlined).
  static const IconData published_with_changes_outlined = IconData(
    0xf2d6,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">punch_clock</i> &#x2014; material icon named "punch clock".
  static const IconData punch_clock = IconData(0xf0554, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">punch_clock</i> &#x2014; material icon named "punch clock" (sharp).
  static const IconData punch_clock_sharp = IconData(0xf045d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">punch_clock</i> &#x2014; material icon named "punch clock" (round).
  static const IconData punch_clock_rounded = IconData(0xf036a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">punch_clock</i> &#x2014; material icon named "punch clock" (outlined).
  static const IconData punch_clock_outlined = IconData(0xf064b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">push_pin</i> &#x2014; material icon named "push pin".
  static const IconData push_pin = IconData(0xe4f4, 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(0xebea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">push_pin</i> &#x2014; material icon named "push pin" (round).
  static const IconData push_pin_rounded = IconData(0xf00c9, 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(0xf2d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">qr_code</i> &#x2014; material icon named "qr code".
  static const IconData qr_code = IconData(0xe4f5, 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(0xebed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">qr_code</i> &#x2014; material icon named "qr code" (round).
  static const IconData qr_code_rounded = IconData(0xf00cb, 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(0xf2d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">qr_code_2</i> &#x2014; material icon named "qr code 2".
  static const IconData qr_code_2 = IconData(0xe4f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">qr_code_2</i> &#x2014; material icon named "qr code 2" (sharp).
  static const IconData qr_code_2_sharp = IconData(0xebeb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">qr_code_2</i> &#x2014; material icon named "qr code 2" (round).
  static const IconData qr_code_2_rounded = IconData(0xf00ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">qr_code_2</i> &#x2014; material icon named "qr code 2" (outlined).
  static const IconData qr_code_2_outlined = IconData(0xf2d8, 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(0xe4f7, 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(0xebec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">qr_code_scanner</i> &#x2014; material icon named "qr code scanner" (round).
  static const IconData qr_code_scanner_rounded = IconData(0xf00cc, 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(0xf2da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">query_builder</i> &#x2014; material icon named "query builder".
  static const IconData query_builder = IconData(0xe4f8, 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(0xebee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">query_builder</i> &#x2014; material icon named "query builder" (round).
  static const IconData query_builder_rounded = IconData(0xf00cd, 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(0xf2db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">query_stats</i> &#x2014; material icon named "query stats".
  static const IconData query_stats = IconData(0xe4f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">query_stats</i> &#x2014; material icon named "query stats" (sharp).
  static const IconData query_stats_sharp = IconData(0xebef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">query_stats</i> &#x2014; material icon named "query stats" (round).
  static const IconData query_stats_rounded = IconData(0xf00ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">query_stats</i> &#x2014; material icon named "query stats" (outlined).
  static const IconData query_stats_outlined = IconData(0xf2dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">question_answer</i> &#x2014; material icon named "question answer".
  static const IconData question_answer = IconData(0xe4fa, 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(0xebf0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">question_answer</i> &#x2014; material icon named "question answer" (round).
  static const IconData question_answer_rounded = IconData(0xf00cf, 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(0xf2dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">question_mark</i> &#x2014; material icon named "question mark".
  static const IconData question_mark = IconData(0xf0555, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">question_mark</i> &#x2014; material icon named "question mark" (sharp).
  static const IconData question_mark_sharp = IconData(0xf045e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">question_mark</i> &#x2014; material icon named "question mark" (round).
  static const IconData question_mark_rounded = IconData(0xf036b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">question_mark</i> &#x2014; material icon named "question mark" (outlined).
  static const IconData question_mark_outlined = IconData(0xf064c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">queue</i> &#x2014; material icon named "queue".
  static const IconData queue = IconData(0xe4fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">queue</i> &#x2014; material icon named "queue" (sharp).
  static const IconData queue_sharp = IconData(0xebf3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">queue</i> &#x2014; material icon named "queue" (round).
  static const IconData queue_rounded = IconData(0xf00d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">queue</i> &#x2014; material icon named "queue" (outlined).
  static const IconData queue_outlined = IconData(0xf2df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">queue_music</i> &#x2014; material icon named "queue music".
  static const IconData queue_music = IconData(
    0xe4fc,
    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(
    0xebf1,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">queue_music</i> &#x2014; material icon named "queue music" (round).
  static const IconData queue_music_rounded = IconData(
    0xf00d0,
    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(
    0xf2de,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">queue_play_next</i> &#x2014; material icon named "queue play next".
  static const IconData queue_play_next = IconData(0xe4fd, 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(0xebf2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">queue_play_next</i> &#x2014; material icon named "queue play next" (round).
  static const IconData queue_play_next_rounded = IconData(0xf00d1, 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(0xf2e0, 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(0xe18c, 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(0xe889, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">quick_contacts_dialer</i> &#x2014; material icon named "quick contacts dialer" (round).
  static const IconData quick_contacts_dialer_rounded = IconData(
    0xf668,
    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(
    0xef7b,
    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(0xe18a, 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(0xe887, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">quick_contacts_mail</i> &#x2014; material icon named "quick contacts mail" (round).
  static const IconData quick_contacts_mail_rounded = IconData(0xf666, 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(
    0xef79,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">quickreply</i> &#x2014; material icon named "quickreply".
  static const IconData quickreply = IconData(0xe4fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">quickreply</i> &#x2014; material icon named "quickreply" (sharp).
  static const IconData quickreply_sharp = IconData(0xebf4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">quickreply</i> &#x2014; material icon named "quickreply" (round).
  static const IconData quickreply_rounded = IconData(0xf00d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">quickreply</i> &#x2014; material icon named "quickreply" (outlined).
  static const IconData quickreply_outlined = IconData(0xf2e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">quiz</i> &#x2014; material icon named "quiz".
  static const IconData quiz = IconData(0xe4ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">quiz</i> &#x2014; material icon named "quiz" (sharp).
  static const IconData quiz_sharp = IconData(0xebf5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">quiz</i> &#x2014; material icon named "quiz" (round).
  static const IconData quiz_rounded = IconData(0xf00d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">quiz</i> &#x2014; material icon named "quiz" (outlined).
  static const IconData quiz_outlined = IconData(0xf2e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">quora</i> &#x2014; material icon named "quora".
  static const IconData quora = IconData(0xf0556, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">quora</i> &#x2014; material icon named "quora" (sharp).
  static const IconData quora_sharp = IconData(0xf045f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">quora</i> &#x2014; material icon named "quora" (round).
  static const IconData quora_rounded = IconData(0xf036c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">quora</i> &#x2014; material icon named "quora" (outlined).
  static const IconData quora_outlined = IconData(0xf064d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">r_mobiledata</i> &#x2014; material icon named "r mobiledata".
  static const IconData r_mobiledata = IconData(0xe500, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">r_mobiledata</i> &#x2014; material icon named "r mobiledata" (sharp).
  static const IconData r_mobiledata_sharp = IconData(0xebf6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">r_mobiledata</i> &#x2014; material icon named "r mobiledata" (round).
  static const IconData r_mobiledata_rounded = IconData(0xf00d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">r_mobiledata</i> &#x2014; material icon named "r mobiledata" (outlined).
  static const IconData r_mobiledata_outlined = IconData(0xf2e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">radar</i> &#x2014; material icon named "radar".
  static const IconData radar = IconData(0xe501, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">radar</i> &#x2014; material icon named "radar" (sharp).
  static const IconData radar_sharp = IconData(0xebf7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">radar</i> &#x2014; material icon named "radar" (round).
  static const IconData radar_rounded = IconData(0xf00d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">radar</i> &#x2014; material icon named "radar" (outlined).
  static const IconData radar_outlined = IconData(0xf2e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">radio</i> &#x2014; material icon named "radio".
  static const IconData radio = IconData(0xe502, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">radio</i> &#x2014; material icon named "radio" (sharp).
  static const IconData radio_sharp = IconData(0xebfa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">radio</i> &#x2014; material icon named "radio" (round).
  static const IconData radio_rounded = IconData(0xf00d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">radio</i> &#x2014; material icon named "radio" (outlined).
  static const IconData radio_outlined = IconData(0xf2e7, 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(0xe503, 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(0xebf8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">radio_button_checked</i> &#x2014; material icon named "radio button checked" (round).
  static const IconData radio_button_checked_rounded = IconData(
    0xf00d7,
    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(
    0xf2e5,
    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(0xe504, 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(0xebf9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">radio_button_off</i> &#x2014; material icon named "radio button off" (round).
  static const IconData radio_button_off_rounded = IconData(0xf00d8, 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(0xf2e6, 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(0xe503, 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(0xebf8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">radio_button_on</i> &#x2014; material icon named "radio button on" (round).
  static const IconData radio_button_on_rounded = IconData(0xf00d7, 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(0xf2e5, 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(0xe504, 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(
    0xebf9,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">radio_button_unchecked</i> &#x2014; material icon named "radio button unchecked" (round).
  static const IconData radio_button_unchecked_rounded = IconData(
    0xf00d8,
    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(
    0xf2e6,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">railway_alert</i> &#x2014; material icon named "railway alert".
  static const IconData railway_alert = IconData(0xe505, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">railway_alert</i> &#x2014; material icon named "railway alert" (sharp).
  static const IconData railway_alert_sharp = IconData(0xebfb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">railway_alert</i> &#x2014; material icon named "railway alert" (round).
  static const IconData railway_alert_rounded = IconData(0xf00da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">railway_alert</i> &#x2014; material icon named "railway alert" (outlined).
  static const IconData railway_alert_outlined = IconData(0xf2e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">ramen_dining</i> &#x2014; material icon named "ramen dining".
  static const IconData ramen_dining = IconData(0xe506, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">ramen_dining</i> &#x2014; material icon named "ramen dining" (sharp).
  static const IconData ramen_dining_sharp = IconData(0xebfc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">ramen_dining</i> &#x2014; material icon named "ramen dining" (round).
  static const IconData ramen_dining_rounded = IconData(0xf00db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">ramen_dining</i> &#x2014; material icon named "ramen dining" (outlined).
  static const IconData ramen_dining_outlined = IconData(0xf2e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">ramp_left</i> &#x2014; material icon named "ramp left".
  static const IconData ramp_left = IconData(0xf0557, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">ramp_left</i> &#x2014; material icon named "ramp left" (sharp).
  static const IconData ramp_left_sharp = IconData(0xf0460, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">ramp_left</i> &#x2014; material icon named "ramp left" (round).
  static const IconData ramp_left_rounded = IconData(0xf036d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">ramp_left</i> &#x2014; material icon named "ramp left" (outlined).
  static const IconData ramp_left_outlined = IconData(0xf064e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">ramp_right</i> &#x2014; material icon named "ramp right".
  static const IconData ramp_right = IconData(0xf0558, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">ramp_right</i> &#x2014; material icon named "ramp right" (sharp).
  static const IconData ramp_right_sharp = IconData(0xf0461, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">ramp_right</i> &#x2014; material icon named "ramp right" (round).
  static const IconData ramp_right_rounded = IconData(0xf036e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">ramp_right</i> &#x2014; material icon named "ramp right" (outlined).
  static const IconData ramp_right_outlined = IconData(0xf064f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rate_review</i> &#x2014; material icon named "rate review".
  static const IconData rate_review = IconData(0xe507, 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(0xebfd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rate_review</i> &#x2014; material icon named "rate review" (round).
  static const IconData rate_review_rounded = IconData(0xf00dc, 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(0xf2ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">raw_off</i> &#x2014; material icon named "raw off".
  static const IconData raw_off = IconData(0xe508, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">raw_off</i> &#x2014; material icon named "raw off" (sharp).
  static const IconData raw_off_sharp = IconData(0xebfe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">raw_off</i> &#x2014; material icon named "raw off" (round).
  static const IconData raw_off_rounded = IconData(0xf00dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">raw_off</i> &#x2014; material icon named "raw off" (outlined).
  static const IconData raw_off_outlined = IconData(0xf2eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">raw_on</i> &#x2014; material icon named "raw on".
  static const IconData raw_on = IconData(0xe509, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">raw_on</i> &#x2014; material icon named "raw on" (sharp).
  static const IconData raw_on_sharp = IconData(0xebff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">raw_on</i> &#x2014; material icon named "raw on" (round).
  static const IconData raw_on_rounded = IconData(0xf00de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">raw_on</i> &#x2014; material icon named "raw on" (outlined).
  static const IconData raw_on_outlined = IconData(0xf2ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">read_more</i> &#x2014; material icon named "read more".
  static const IconData read_more = IconData(0xe50a, 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(0xec00, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">read_more</i> &#x2014; material icon named "read more" (round).
  static const IconData read_more_rounded = IconData(0xf00df, 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(0xf2ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">real_estate_agent</i> &#x2014; material icon named "real estate agent".
  static const IconData real_estate_agent = IconData(0xe50b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">real_estate_agent</i> &#x2014; material icon named "real estate agent" (sharp).
  static const IconData real_estate_agent_sharp = IconData(0xec01, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">real_estate_agent</i> &#x2014; material icon named "real estate agent" (round).
  static const IconData real_estate_agent_rounded = IconData(0xf00e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">real_estate_agent</i> &#x2014; material icon named "real estate agent" (outlined).
  static const IconData real_estate_agent_outlined = IconData(0xf2ee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rebase_edit</i> &#x2014; material icon named "rebase edit".
  static const IconData rebase_edit = IconData(0xf0874, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">receipt</i> &#x2014; material icon named "receipt".
  static const IconData receipt = IconData(0xe50c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">receipt</i> &#x2014; material icon named "receipt" (sharp).
  static const IconData receipt_sharp = IconData(0xec03, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">receipt</i> &#x2014; material icon named "receipt" (round).
  static const IconData receipt_rounded = IconData(0xf00e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">receipt</i> &#x2014; material icon named "receipt" (outlined).
  static const IconData receipt_outlined = IconData(0xf2f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">receipt_long</i> &#x2014; material icon named "receipt long".
  static const IconData receipt_long = IconData(0xe50d, 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(0xec02, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">receipt_long</i> &#x2014; material icon named "receipt long" (round).
  static const IconData receipt_long_rounded = IconData(0xf00e1, 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(0xf2ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">recent_actors</i> &#x2014; material icon named "recent actors".
  static const IconData recent_actors = IconData(0xe50e, 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(0xec04, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">recent_actors</i> &#x2014; material icon named "recent actors" (round).
  static const IconData recent_actors_rounded = IconData(0xf00e3, 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(0xf2f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">recommend</i> &#x2014; material icon named "recommend".
  static const IconData recommend = IconData(0xe50f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">recommend</i> &#x2014; material icon named "recommend" (sharp).
  static const IconData recommend_sharp = IconData(0xec05, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">recommend</i> &#x2014; material icon named "recommend" (round).
  static const IconData recommend_rounded = IconData(0xf00e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">recommend</i> &#x2014; material icon named "recommend" (outlined).
  static const IconData recommend_outlined = IconData(0xf2f2, 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(0xe510, 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(0xec06, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">record_voice_over</i> &#x2014; material icon named "record voice over" (round).
  static const IconData record_voice_over_rounded = IconData(0xf00e5, 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(0xf2f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rectangle</i> &#x2014; material icon named "rectangle".
  static const IconData rectangle = IconData(0xf0559, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rectangle</i> &#x2014; material icon named "rectangle" (sharp).
  static const IconData rectangle_sharp = IconData(0xf0462, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rectangle</i> &#x2014; material icon named "rectangle" (round).
  static const IconData rectangle_rounded = IconData(0xf036f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">rectangle</i> &#x2014; material icon named "rectangle" (outlined).
  static const IconData rectangle_outlined = IconData(0xf0650, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">recycling</i> &#x2014; material icon named "recycling".
  static const IconData recycling = IconData(0xf055a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">recycling</i> &#x2014; material icon named "recycling" (sharp).
  static const IconData recycling_sharp = IconData(0xf0463, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">recycling</i> &#x2014; material icon named "recycling" (round).
  static const IconData recycling_rounded = IconData(0xf0370, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">recycling</i> &#x2014; material icon named "recycling" (outlined).
  static const IconData recycling_outlined = IconData(0xf0651, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">reddit</i> &#x2014; material icon named "reddit".
  static const IconData reddit = IconData(0xf055b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">reddit</i> &#x2014; material icon named "reddit" (sharp).
  static const IconData reddit_sharp = IconData(0xf0464, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">reddit</i> &#x2014; material icon named "reddit" (round).
  static const IconData reddit_rounded = IconData(0xf0371, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">reddit</i> &#x2014; material icon named "reddit" (outlined).
  static const IconData reddit_outlined = IconData(0xf0652, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">redeem</i> &#x2014; material icon named "redeem".
  static const IconData redeem = IconData(0xe511, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">redeem</i> &#x2014; material icon named "redeem" (sharp).
  static const IconData redeem_sharp = IconData(0xec07, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">redeem</i> &#x2014; material icon named "redeem" (round).
  static const IconData redeem_rounded = IconData(0xf00e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">redeem</i> &#x2014; material icon named "redeem" (outlined).
  static const IconData redeem_outlined = IconData(0xf2f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">redo</i> &#x2014; material icon named "redo".
  static const IconData redo = IconData(
    0xe512,
    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(
    0xec08,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">redo</i> &#x2014; material icon named "redo" (round).
  static const IconData redo_rounded = IconData(
    0xf00e7,
    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(
    0xf2f5,
    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(0xe513, 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(0xec09, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">reduce_capacity</i> &#x2014; material icon named "reduce capacity" (round).
  static const IconData reduce_capacity_rounded = IconData(0xf00e8, 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(0xf2f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">refresh</i> &#x2014; material icon named "refresh".
  static const IconData refresh = IconData(0xe514, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">refresh</i> &#x2014; material icon named "refresh" (sharp).
  static const IconData refresh_sharp = IconData(0xec0a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">refresh</i> &#x2014; material icon named "refresh" (round).
  static const IconData refresh_rounded = IconData(0xf00e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">refresh</i> &#x2014; material icon named "refresh" (outlined).
  static const IconData refresh_outlined = IconData(0xf2f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">remember_me</i> &#x2014; material icon named "remember me".
  static const IconData remember_me = IconData(0xe515, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">remember_me</i> &#x2014; material icon named "remember me" (sharp).
  static const IconData remember_me_sharp = IconData(0xec0b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">remember_me</i> &#x2014; material icon named "remember me" (round).
  static const IconData remember_me_rounded = IconData(0xf00ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">remember_me</i> &#x2014; material icon named "remember me" (outlined).
  static const IconData remember_me_outlined = IconData(0xf2f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">remove</i> &#x2014; material icon named "remove".
  static const IconData remove = IconData(0xe516, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">remove</i> &#x2014; material icon named "remove" (sharp).
  static const IconData remove_sharp = IconData(0xec12, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">remove</i> &#x2014; material icon named "remove" (round).
  static const IconData remove_rounded = IconData(0xf00f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">remove</i> &#x2014; material icon named "remove" (outlined).
  static const IconData remove_outlined = IconData(0xf2fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">remove_circle</i> &#x2014; material icon named "remove circle".
  static const IconData remove_circle = IconData(0xe517, 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(0xec0d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">remove_circle</i> &#x2014; material icon named "remove circle" (round).
  static const IconData remove_circle_rounded = IconData(0xf00ec, 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(0xf2fa, 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(0xe518, 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(0xec0c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">remove_circle_outline</i> &#x2014; material icon named "remove circle outline" (round).
  static const IconData remove_circle_outline_rounded = IconData(
    0xf00eb,
    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(
    0xf2f9,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">remove_done</i> &#x2014; material icon named "remove done".
  static const IconData remove_done = IconData(0xe519, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">remove_done</i> &#x2014; material icon named "remove done" (sharp).
  static const IconData remove_done_sharp = IconData(0xec0e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">remove_done</i> &#x2014; material icon named "remove done" (round).
  static const IconData remove_done_rounded = IconData(0xf00ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">remove_done</i> &#x2014; material icon named "remove done" (outlined).
  static const IconData remove_done_outlined = IconData(0xf2fb, 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(0xe51a, 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(0xec0f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">remove_from_queue</i> &#x2014; material icon named "remove from queue" (round).
  static const IconData remove_from_queue_rounded = IconData(0xf00ee, 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(0xf2fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">remove_moderator</i> &#x2014; material icon named "remove moderator".
  static const IconData remove_moderator = IconData(0xe51b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">remove_moderator</i> &#x2014; material icon named "remove moderator" (sharp).
  static const IconData remove_moderator_sharp = IconData(0xec10, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">remove_moderator</i> &#x2014; material icon named "remove moderator" (round).
  static const IconData remove_moderator_rounded = IconData(0xf00ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">remove_moderator</i> &#x2014; material icon named "remove moderator" (outlined).
  static const IconData remove_moderator_outlined = IconData(0xf2fd, 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(0xe51c, 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(0xec11, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">remove_red_eye</i> &#x2014; material icon named "remove red eye" (round).
  static const IconData remove_red_eye_rounded = IconData(0xf00f0, 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(0xf2ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">remove_road</i> &#x2014; material icon named "remove road".
  static const IconData remove_road = IconData(0xf07bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">remove_road</i> &#x2014; material icon named "remove road" (sharp).
  static const IconData remove_road_sharp = IconData(0xf0763, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">remove_road</i> &#x2014; material icon named "remove road" (round).
  static const IconData remove_road_rounded = IconData(0xf0813, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">remove_road</i> &#x2014; material icon named "remove road" (outlined).
  static const IconData remove_road_outlined = IconData(0xf070b, 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(0xe51d, 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(0xec13, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">remove_shopping_cart</i> &#x2014; material icon named "remove shopping cart" (round).
  static const IconData remove_shopping_cart_rounded = IconData(
    0xf00f2,
    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(
    0xf300,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">reorder</i> &#x2014; material icon named "reorder".
  static const IconData reorder = IconData(0xe51e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">reorder</i> &#x2014; material icon named "reorder" (sharp).
  static const IconData reorder_sharp = IconData(0xec14, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">reorder</i> &#x2014; material icon named "reorder" (round).
  static const IconData reorder_rounded = IconData(0xf00f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">reorder</i> &#x2014; material icon named "reorder" (outlined).
  static const IconData reorder_outlined = IconData(0xf301, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">repartition</i> &#x2014; material icon named "repartition".
  static const IconData repartition = IconData(0xf0875, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">repartition</i> &#x2014; material icon named "repartition" (sharp).
  static const IconData repartition_sharp = IconData(0xf084b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">repartition</i> &#x2014; material icon named "repartition" (round).
  static const IconData repartition_rounded = IconData(0xf0894, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">repartition</i> &#x2014; material icon named "repartition" (outlined).
  static const IconData repartition_outlined = IconData(0xf08b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">repeat</i> &#x2014; material icon named "repeat".
  static const IconData repeat = IconData(0xe51f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">repeat</i> &#x2014; material icon named "repeat" (sharp).
  static const IconData repeat_sharp = IconData(0xec18, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">repeat</i> &#x2014; material icon named "repeat" (round).
  static const IconData repeat_rounded = IconData(0xf00f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">repeat</i> &#x2014; material icon named "repeat" (outlined).
  static const IconData repeat_outlined = IconData(0xf305, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">repeat_on</i> &#x2014; material icon named "repeat on".
  static const IconData repeat_on = IconData(0xe520, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">repeat_on</i> &#x2014; material icon named "repeat on" (sharp).
  static const IconData repeat_on_sharp = IconData(0xec15, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">repeat_on</i> &#x2014; material icon named "repeat on" (round).
  static const IconData repeat_on_rounded = IconData(0xf00f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">repeat_on</i> &#x2014; material icon named "repeat on" (outlined).
  static const IconData repeat_on_outlined = IconData(0xf302, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">repeat_one</i> &#x2014; material icon named "repeat one".
  static const IconData repeat_one = IconData(0xe521, 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(0xec17, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">repeat_one</i> &#x2014; material icon named "repeat one" (round).
  static const IconData repeat_one_rounded = IconData(0xf00f6, 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(0xf304, 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(0xe522, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">repeat_one_on</i> &#x2014; material icon named "repeat one on" (sharp).
  static const IconData repeat_one_on_sharp = IconData(0xec16, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">repeat_one_on</i> &#x2014; material icon named "repeat one on" (round).
  static const IconData repeat_one_on_rounded = IconData(0xf00f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">repeat_one_on</i> &#x2014; material icon named "repeat one on" (outlined).
  static const IconData repeat_one_on_outlined = IconData(0xf303, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">replay</i> &#x2014; material icon named "replay".
  static const IconData replay = IconData(0xe523, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">replay</i> &#x2014; material icon named "replay" (sharp).
  static const IconData replay_sharp = IconData(0xec1d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">replay</i> &#x2014; material icon named "replay" (round).
  static const IconData replay_rounded = IconData(0xf00fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">replay</i> &#x2014; material icon named "replay" (outlined).
  static const IconData replay_outlined = IconData(0xf30a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">replay_10</i> &#x2014; material icon named "replay 10".
  static const IconData replay_10 = IconData(0xe524, 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(0xec19, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">replay_10</i> &#x2014; material icon named "replay 10" (round).
  static const IconData replay_10_rounded = IconData(0xf00f8, 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(0xf306, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">replay_30</i> &#x2014; material icon named "replay 30".
  static const IconData replay_30 = IconData(0xe525, 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(0xec1a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">replay_30</i> &#x2014; material icon named "replay 30" (round).
  static const IconData replay_30_rounded = IconData(0xf00f9, 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(0xf307, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">replay_5</i> &#x2014; material icon named "replay 5".
  static const IconData replay_5 = IconData(0xe526, 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(0xec1b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">replay_5</i> &#x2014; material icon named "replay 5" (round).
  static const IconData replay_5_rounded = IconData(0xf00fa, 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(0xf308, 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(0xe527, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">replay_circle_filled</i> &#x2014; material icon named "replay circle filled" (sharp).
  static const IconData replay_circle_filled_sharp = IconData(0xec1c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">replay_circle_filled</i> &#x2014; material icon named "replay circle filled" (round).
  static const IconData replay_circle_filled_rounded = IconData(
    0xf00fb,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">replay_circle_filled</i> &#x2014; material icon named "replay circle filled" (outlined).
  static const IconData replay_circle_filled_outlined = IconData(
    0xf309,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">reply</i> &#x2014; material icon named "reply".
  static const IconData reply = IconData(
    0xe528,
    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(
    0xec1f,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">reply</i> &#x2014; material icon named "reply" (round).
  static const IconData reply_rounded = IconData(
    0xf00fe,
    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(
    0xf30c,
    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(
    0xe529,
    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(
    0xec1e,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">reply_all</i> &#x2014; material icon named "reply all" (round).
  static const IconData reply_all_rounded = IconData(
    0xf00fd,
    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(
    0xf30b,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">report</i> &#x2014; material icon named "report".
  static const IconData report = IconData(0xe52a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">report</i> &#x2014; material icon named "report" (sharp).
  static const IconData report_sharp = IconData(0xec23, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">report</i> &#x2014; material icon named "report" (round).
  static const IconData report_rounded = IconData(0xf0102, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">report</i> &#x2014; material icon named "report" (outlined).
  static const IconData report_outlined = IconData(0xf30f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">report_gmailerrorred</i> &#x2014; material icon named "report gmailerrorred".
  static const IconData report_gmailerrorred = IconData(0xe52b, 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(0xec20, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">report_gmailerrorred</i> &#x2014; material icon named "report gmailerrorred" (round).
  static const IconData report_gmailerrorred_rounded = IconData(
    0xf00ff,
    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(
    0xf30d,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">report_off</i> &#x2014; material icon named "report off".
  static const IconData report_off = IconData(0xe52c, 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(0xec21, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">report_off</i> &#x2014; material icon named "report off" (round).
  static const IconData report_off_rounded = IconData(0xf0100, 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(0xf30e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">report_problem</i> &#x2014; material icon named "report problem".
  static const IconData report_problem = IconData(0xe52d, 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(0xec22, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">report_problem</i> &#x2014; material icon named "report problem" (round).
  static const IconData report_problem_rounded = IconData(0xf0101, 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(0xf310, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">request_page</i> &#x2014; material icon named "request page".
  static const IconData request_page = IconData(0xe52e, 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(0xec24, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">request_page</i> &#x2014; material icon named "request page" (round).
  static const IconData request_page_rounded = IconData(0xf0103, 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(0xf311, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">request_quote</i> &#x2014; material icon named "request quote".
  static const IconData request_quote = IconData(0xe52f, 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(0xec25, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">request_quote</i> &#x2014; material icon named "request quote" (round).
  static const IconData request_quote_rounded = IconData(0xf0104, 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(0xf312, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">reset_tv</i> &#x2014; material icon named "reset tv".
  static const IconData reset_tv = IconData(0xe530, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">reset_tv</i> &#x2014; material icon named "reset tv" (sharp).
  static const IconData reset_tv_sharp = IconData(0xec26, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">reset_tv</i> &#x2014; material icon named "reset tv" (round).
  static const IconData reset_tv_rounded = IconData(0xf0105, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">reset_tv</i> &#x2014; material icon named "reset tv" (outlined).
  static const IconData reset_tv_outlined = IconData(0xf313, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">restart_alt</i> &#x2014; material icon named "restart alt".
  static const IconData restart_alt = IconData(0xe531, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">restart_alt</i> &#x2014; material icon named "restart alt" (sharp).
  static const IconData restart_alt_sharp = IconData(0xec27, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">restart_alt</i> &#x2014; material icon named "restart alt" (round).
  static const IconData restart_alt_rounded = IconData(0xf0106, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">restart_alt</i> &#x2014; material icon named "restart alt" (outlined).
  static const IconData restart_alt_outlined = IconData(0xf314, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">restaurant</i> &#x2014; material icon named "restaurant".
  static const IconData restaurant = IconData(0xe532, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">restaurant</i> &#x2014; material icon named "restaurant" (sharp).
  static const IconData restaurant_sharp = IconData(0xec29, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">restaurant</i> &#x2014; material icon named "restaurant" (round).
  static const IconData restaurant_rounded = IconData(0xf0108, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">restaurant</i> &#x2014; material icon named "restaurant" (outlined).
  static const IconData restaurant_outlined = IconData(0xf316, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">restaurant_menu</i> &#x2014; material icon named "restaurant menu".
  static const IconData restaurant_menu = IconData(0xe533, 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(0xec28, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">restaurant_menu</i> &#x2014; material icon named "restaurant menu" (round).
  static const IconData restaurant_menu_rounded = IconData(0xf0107, 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(0xf315, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">restore</i> &#x2014; material icon named "restore".
  static const IconData restore = IconData(0xe534, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">restore</i> &#x2014; material icon named "restore" (sharp).
  static const IconData restore_sharp = IconData(0xec2c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">restore</i> &#x2014; material icon named "restore" (round).
  static const IconData restore_rounded = IconData(0xf010b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">restore</i> &#x2014; material icon named "restore" (outlined).
  static const IconData restore_outlined = IconData(0xf318, 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(0xe535, 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(0xec2a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">restore_from_trash</i> &#x2014; material icon named "restore from trash" (round).
  static const IconData restore_from_trash_rounded = IconData(0xf0109, 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(0xf317, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">restore_page</i> &#x2014; material icon named "restore page".
  static const IconData restore_page = IconData(0xe536, 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(0xec2b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">restore_page</i> &#x2014; material icon named "restore page" (round).
  static const IconData restore_page_rounded = IconData(0xf010a, 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(0xf319, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">reviews</i> &#x2014; material icon named "reviews".
  static const IconData reviews = IconData(0xe537, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">reviews</i> &#x2014; material icon named "reviews" (sharp).
  static const IconData reviews_sharp = IconData(0xec2d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">reviews</i> &#x2014; material icon named "reviews" (round).
  static const IconData reviews_rounded = IconData(0xf010c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">reviews</i> &#x2014; material icon named "reviews" (outlined).
  static const IconData reviews_outlined = IconData(0xf31a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rice_bowl</i> &#x2014; material icon named "rice bowl".
  static const IconData rice_bowl = IconData(0xe538, 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(0xec2e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rice_bowl</i> &#x2014; material icon named "rice bowl" (round).
  static const IconData rice_bowl_rounded = IconData(0xf010d, 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(0xf31b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">ring_volume</i> &#x2014; material icon named "ring volume".
  static const IconData ring_volume = IconData(0xe539, 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(0xec2f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">ring_volume</i> &#x2014; material icon named "ring volume" (round).
  static const IconData ring_volume_rounded = IconData(0xf010e, 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(0xf31c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rocket</i> &#x2014; material icon named "rocket".
  static const IconData rocket = IconData(0xf055c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rocket</i> &#x2014; material icon named "rocket" (sharp).
  static const IconData rocket_sharp = IconData(0xf0466, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rocket</i> &#x2014; material icon named "rocket" (round).
  static const IconData rocket_rounded = IconData(0xf0373, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">rocket</i> &#x2014; material icon named "rocket" (outlined).
  static const IconData rocket_outlined = IconData(0xf0654, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rocket_launch</i> &#x2014; material icon named "rocket launch".
  static const IconData rocket_launch = IconData(0xf055d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rocket_launch</i> &#x2014; material icon named "rocket launch" (sharp).
  static const IconData rocket_launch_sharp = IconData(0xf0465, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rocket_launch</i> &#x2014; material icon named "rocket launch" (round).
  static const IconData rocket_launch_rounded = IconData(0xf0372, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">rocket_launch</i> &#x2014; material icon named "rocket launch" (outlined).
  static const IconData rocket_launch_outlined = IconData(0xf0653, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">roller_shades</i> &#x2014; material icon named "roller shades".
  static const IconData roller_shades = IconData(0xf07bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">roller_shades</i> &#x2014; material icon named "roller shades" (sharp).
  static const IconData roller_shades_sharp = IconData(0xf0765, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">roller_shades</i> &#x2014; material icon named "roller shades" (round).
  static const IconData roller_shades_rounded = IconData(0xf0815, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">roller_shades</i> &#x2014; material icon named "roller shades" (outlined).
  static const IconData roller_shades_outlined = IconData(0xf070d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">roller_shades_closed</i> &#x2014; material icon named "roller shades closed".
  static const IconData roller_shades_closed = IconData(0xf07bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">roller_shades_closed</i> &#x2014; material icon named "roller shades closed" (sharp).
  static const IconData roller_shades_closed_sharp = IconData(0xf0764, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">roller_shades_closed</i> &#x2014; material icon named "roller shades closed" (round).
  static const IconData roller_shades_closed_rounded = IconData(
    0xf0814,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">roller_shades_closed</i> &#x2014; material icon named "roller shades closed" (outlined).
  static const IconData roller_shades_closed_outlined = IconData(
    0xf070c,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">roller_skating</i> &#x2014; material icon named "roller skating".
  static const IconData roller_skating = IconData(0xf06c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">roller_skating</i> &#x2014; material icon named "roller skating" (sharp).
  static const IconData roller_skating_sharp = IconData(0xf06b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">roller_skating</i> &#x2014; material icon named "roller skating" (round).
  static const IconData roller_skating_rounded = IconData(0xf06cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">roller_skating</i> &#x2014; material icon named "roller skating" (outlined).
  static const IconData roller_skating_outlined = IconData(0xf06a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">roofing</i> &#x2014; material icon named "roofing".
  static const IconData roofing = IconData(0xe53a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">roofing</i> &#x2014; material icon named "roofing" (sharp).
  static const IconData roofing_sharp = IconData(0xec30, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">roofing</i> &#x2014; material icon named "roofing" (round).
  static const IconData roofing_rounded = IconData(0xf010f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">roofing</i> &#x2014; material icon named "roofing" (outlined).
  static const IconData roofing_outlined = IconData(0xf31d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">room</i> &#x2014; material icon named "room".
  static const IconData room = IconData(0xe53b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">room</i> &#x2014; material icon named "room" (sharp).
  static const IconData room_sharp = IconData(0xec33, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">room</i> &#x2014; material icon named "room" (round).
  static const IconData room_rounded = IconData(0xf0111, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">room</i> &#x2014; material icon named "room" (outlined).
  static const IconData room_outlined = IconData(0xf31e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">room_preferences</i> &#x2014; material icon named "room preferences".
  static const IconData room_preferences = IconData(0xe53c, 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(0xec31, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">room_preferences</i> &#x2014; material icon named "room preferences" (round).
  static const IconData room_preferences_rounded = IconData(0xf0110, 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(0xf31f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">room_service</i> &#x2014; material icon named "room service".
  static const IconData room_service = IconData(0xe53d, 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(0xec32, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">room_service</i> &#x2014; material icon named "room service" (round).
  static const IconData room_service_rounded = IconData(0xf0112, 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(0xf320, 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(0xe53e, 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(0xec34, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rotate_90_degrees_ccw</i> &#x2014; material icon named "rotate 90 degrees ccw" (round).
  static const IconData rotate_90_degrees_ccw_rounded = IconData(
    0xf0113,
    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(
    0xf321,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">rotate_90_degrees_cw</i> &#x2014; material icon named "rotate 90 degrees cw".
  static const IconData rotate_90_degrees_cw = IconData(0xf055e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rotate_90_degrees_cw</i> &#x2014; material icon named "rotate 90 degrees cw" (sharp).
  static const IconData rotate_90_degrees_cw_sharp = IconData(0xf0467, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rotate_90_degrees_cw</i> &#x2014; material icon named "rotate 90 degrees cw" (round).
  static const IconData rotate_90_degrees_cw_rounded = IconData(
    0xf0374,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">rotate_90_degrees_cw</i> &#x2014; material icon named "rotate 90 degrees cw" (outlined).
  static const IconData rotate_90_degrees_cw_outlined = IconData(
    0xf0655,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">rotate_left</i> &#x2014; material icon named "rotate left".
  static const IconData rotate_left = IconData(0xe53f, 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(0xec35, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rotate_left</i> &#x2014; material icon named "rotate left" (round).
  static const IconData rotate_left_rounded = IconData(0xf0114, 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(0xf322, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rotate_right</i> &#x2014; material icon named "rotate right".
  static const IconData rotate_right = IconData(0xe540, 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(0xec36, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rotate_right</i> &#x2014; material icon named "rotate right" (round).
  static const IconData rotate_right_rounded = IconData(0xf0115, 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(0xf323, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">roundabout_left</i> &#x2014; material icon named "roundabout left".
  static const IconData roundabout_left = IconData(0xf055f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">roundabout_left</i> &#x2014; material icon named "roundabout left" (sharp).
  static const IconData roundabout_left_sharp = IconData(0xf0468, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">roundabout_left</i> &#x2014; material icon named "roundabout left" (round).
  static const IconData roundabout_left_rounded = IconData(0xf0375, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">roundabout_left</i> &#x2014; material icon named "roundabout left" (outlined).
  static const IconData roundabout_left_outlined = IconData(0xf0656, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">roundabout_right</i> &#x2014; material icon named "roundabout right".
  static const IconData roundabout_right = IconData(0xf0560, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">roundabout_right</i> &#x2014; material icon named "roundabout right" (sharp).
  static const IconData roundabout_right_sharp = IconData(0xf0469, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">roundabout_right</i> &#x2014; material icon named "roundabout right" (round).
  static const IconData roundabout_right_rounded = IconData(0xf0376, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">roundabout_right</i> &#x2014; material icon named "roundabout right" (outlined).
  static const IconData roundabout_right_outlined = IconData(0xf0657, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rounded_corner</i> &#x2014; material icon named "rounded corner".
  static const IconData rounded_corner = IconData(0xe541, 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(0xec37, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rounded_corner</i> &#x2014; material icon named "rounded corner" (round).
  static const IconData rounded_corner_rounded = IconData(0xf0116, 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(0xf324, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">route</i> &#x2014; material icon named "route".
  static const IconData route = IconData(0xf0561, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">route</i> &#x2014; material icon named "route" (sharp).
  static const IconData route_sharp = IconData(0xf046a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">route</i> &#x2014; material icon named "route" (round).
  static const IconData route_rounded = IconData(0xf0377, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">route</i> &#x2014; material icon named "route" (outlined).
  static const IconData route_outlined = IconData(0xf0658, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">router</i> &#x2014; material icon named "router".
  static const IconData router = IconData(0xe542, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">router</i> &#x2014; material icon named "router" (sharp).
  static const IconData router_sharp = IconData(0xec38, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">router</i> &#x2014; material icon named "router" (round).
  static const IconData router_rounded = IconData(0xf0117, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">router</i> &#x2014; material icon named "router" (outlined).
  static const IconData router_outlined = IconData(0xf325, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rowing</i> &#x2014; material icon named "rowing".
  static const IconData rowing = IconData(0xe543, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rowing</i> &#x2014; material icon named "rowing" (sharp).
  static const IconData rowing_sharp = IconData(0xec39, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rowing</i> &#x2014; material icon named "rowing" (round).
  static const IconData rowing_rounded = IconData(0xf0118, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">rowing</i> &#x2014; material icon named "rowing" (outlined).
  static const IconData rowing_outlined = IconData(0xf326, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rss_feed</i> &#x2014; material icon named "rss feed".
  static const IconData rss_feed = IconData(0xe544, 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(0xec3a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rss_feed</i> &#x2014; material icon named "rss feed" (round).
  static const IconData rss_feed_rounded = IconData(0xf0119, 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(0xf327, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rsvp</i> &#x2014; material icon named "rsvp".
  static const IconData rsvp = IconData(0xe545, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rsvp</i> &#x2014; material icon named "rsvp" (sharp).
  static const IconData rsvp_sharp = IconData(0xec3b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rsvp</i> &#x2014; material icon named "rsvp" (round).
  static const IconData rsvp_rounded = IconData(0xf011a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">rsvp</i> &#x2014; material icon named "rsvp" (outlined).
  static const IconData rsvp_outlined = IconData(0xf328, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rtt</i> &#x2014; material icon named "rtt".
  static const IconData rtt = IconData(0xe546, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rtt</i> &#x2014; material icon named "rtt" (sharp).
  static const IconData rtt_sharp = IconData(0xec3c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rtt</i> &#x2014; material icon named "rtt" (round).
  static const IconData rtt_rounded = IconData(0xf011b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">rtt</i> &#x2014; material icon named "rtt" (outlined).
  static const IconData rtt_outlined = IconData(0xf329, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rule</i> &#x2014; material icon named "rule".
  static const IconData rule = IconData(0xe547, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">rule</i> &#x2014; material icon named "rule" (sharp).
  static const IconData rule_sharp = IconData(0xec3e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rule</i> &#x2014; material icon named "rule" (round).
  static const IconData rule_rounded = IconData(0xf011d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">rule</i> &#x2014; material icon named "rule" (outlined).
  static const IconData rule_outlined = IconData(0xf32b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">rule_folder</i> &#x2014; material icon named "rule folder".
  static const IconData rule_folder = IconData(0xe548, 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(0xec3d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rule_folder</i> &#x2014; material icon named "rule folder" (round).
  static const IconData rule_folder_rounded = IconData(0xf011c, 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(0xf32a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">run_circle</i> &#x2014; material icon named "run circle".
  static const IconData run_circle = IconData(0xe549, 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(0xec3f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">run_circle</i> &#x2014; material icon named "run circle" (round).
  static const IconData run_circle_rounded = IconData(0xf011e, 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(0xf32c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">running_with_errors</i> &#x2014; material icon named "running with errors".
  static const IconData running_with_errors = IconData(0xe54a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">running_with_errors</i> &#x2014; material icon named "running with errors" (sharp).
  static const IconData running_with_errors_sharp = IconData(0xec40, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">running_with_errors</i> &#x2014; material icon named "running with errors" (round).
  static const IconData running_with_errors_rounded = IconData(
    0xf011f,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">running_with_errors</i> &#x2014; material icon named "running with errors" (outlined).
  static const IconData running_with_errors_outlined = IconData(
    0xf32d,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">rv_hookup</i> &#x2014; material icon named "rv hookup".
  static const IconData rv_hookup = IconData(0xe54b, 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(0xec41, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">rv_hookup</i> &#x2014; material icon named "rv hookup" (round).
  static const IconData rv_hookup_rounded = IconData(0xf0120, 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(0xf32e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">safety_check</i> &#x2014; material icon named "safety check".
  static const IconData safety_check = IconData(0xf07be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">safety_check</i> &#x2014; material icon named "safety check" (sharp).
  static const IconData safety_check_sharp = IconData(0xf0766, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">safety_check</i> &#x2014; material icon named "safety check" (round).
  static const IconData safety_check_rounded = IconData(0xf0816, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">safety_check</i> &#x2014; material icon named "safety check" (outlined).
  static const IconData safety_check_outlined = IconData(0xf070e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">safety_divider</i> &#x2014; material icon named "safety divider".
  static const IconData safety_divider = IconData(0xe54c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">safety_divider</i> &#x2014; material icon named "safety divider" (sharp).
  static const IconData safety_divider_sharp = IconData(0xec42, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">safety_divider</i> &#x2014; material icon named "safety divider" (round).
  static const IconData safety_divider_rounded = IconData(0xf0121, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">safety_divider</i> &#x2014; material icon named "safety divider" (outlined).
  static const IconData safety_divider_outlined = IconData(0xf32f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sailing</i> &#x2014; material icon named "sailing".
  static const IconData sailing = IconData(0xe54d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sailing</i> &#x2014; material icon named "sailing" (sharp).
  static const IconData sailing_sharp = IconData(0xec43, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sailing</i> &#x2014; material icon named "sailing" (round).
  static const IconData sailing_rounded = IconData(0xf0122, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sailing</i> &#x2014; material icon named "sailing" (outlined).
  static const IconData sailing_outlined = IconData(0xf330, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sanitizer</i> &#x2014; material icon named "sanitizer".
  static const IconData sanitizer = IconData(0xe54e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sanitizer</i> &#x2014; material icon named "sanitizer" (sharp).
  static const IconData sanitizer_sharp = IconData(0xec44, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sanitizer</i> &#x2014; material icon named "sanitizer" (round).
  static const IconData sanitizer_rounded = IconData(0xf0123, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sanitizer</i> &#x2014; material icon named "sanitizer" (outlined).
  static const IconData sanitizer_outlined = IconData(0xf331, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">satellite</i> &#x2014; material icon named "satellite".
  static const IconData satellite = IconData(0xe54f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">satellite</i> &#x2014; material icon named "satellite" (sharp).
  static const IconData satellite_sharp = IconData(0xec45, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">satellite</i> &#x2014; material icon named "satellite" (round).
  static const IconData satellite_rounded = IconData(0xf0124, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">satellite</i> &#x2014; material icon named "satellite" (outlined).
  static const IconData satellite_outlined = IconData(0xf332, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">satellite_alt</i> &#x2014; material icon named "satellite alt".
  static const IconData satellite_alt = IconData(0xf0562, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">satellite_alt</i> &#x2014; material icon named "satellite alt" (sharp).
  static const IconData satellite_alt_sharp = IconData(0xf046b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">satellite_alt</i> &#x2014; material icon named "satellite alt" (round).
  static const IconData satellite_alt_rounded = IconData(0xf0378, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">satellite_alt</i> &#x2014; material icon named "satellite alt" (outlined).
  static const IconData satellite_alt_outlined = IconData(0xf0659, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">save</i> &#x2014; material icon named "save".
  static const IconData save = IconData(0xe550, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">save</i> &#x2014; material icon named "save" (sharp).
  static const IconData save_sharp = IconData(0xec47, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">save</i> &#x2014; material icon named "save" (round).
  static const IconData save_rounded = IconData(0xf0126, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">save</i> &#x2014; material icon named "save" (outlined).
  static const IconData save_outlined = IconData(0xf334, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">save_alt</i> &#x2014; material icon named "save alt".
  static const IconData save_alt = IconData(0xe551, 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(0xec46, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">save_alt</i> &#x2014; material icon named "save alt" (round).
  static const IconData save_alt_rounded = IconData(0xf0125, 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(0xf333, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">save_as</i> &#x2014; material icon named "save as".
  static const IconData save_as = IconData(0xf0563, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">save_as</i> &#x2014; material icon named "save as" (sharp).
  static const IconData save_as_sharp = IconData(0xf046c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">save_as</i> &#x2014; material icon named "save as" (round).
  static const IconData save_as_rounded = IconData(0xf0379, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">save_as</i> &#x2014; material icon named "save as" (outlined).
  static const IconData save_as_outlined = IconData(0xf065a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">saved_search</i> &#x2014; material icon named "saved search".
  static const IconData saved_search = IconData(0xe552, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">saved_search</i> &#x2014; material icon named "saved search" (sharp).
  static const IconData saved_search_sharp = IconData(0xec48, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">saved_search</i> &#x2014; material icon named "saved search" (round).
  static const IconData saved_search_rounded = IconData(0xf0127, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">saved_search</i> &#x2014; material icon named "saved search" (outlined).
  static const IconData saved_search_outlined = IconData(0xf335, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">savings</i> &#x2014; material icon named "savings".
  static const IconData savings = IconData(0xe553, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">savings</i> &#x2014; material icon named "savings" (sharp).
  static const IconData savings_sharp = IconData(0xec49, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">savings</i> &#x2014; material icon named "savings" (round).
  static const IconData savings_rounded = IconData(0xf0128, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">savings</i> &#x2014; material icon named "savings" (outlined).
  static const IconData savings_outlined = IconData(0xf336, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">scale</i> &#x2014; material icon named "scale".
  static const IconData scale = IconData(0xf0564, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">scale</i> &#x2014; material icon named "scale" (sharp).
  static const IconData scale_sharp = IconData(0xf046d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">scale</i> &#x2014; material icon named "scale" (round).
  static const IconData scale_rounded = IconData(0xf037a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">scale</i> &#x2014; material icon named "scale" (outlined).
  static const IconData scale_outlined = IconData(0xf065b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">scanner</i> &#x2014; material icon named "scanner".
  static const IconData scanner = IconData(0xe554, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">scanner</i> &#x2014; material icon named "scanner" (sharp).
  static const IconData scanner_sharp = IconData(0xec4a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">scanner</i> &#x2014; material icon named "scanner" (round).
  static const IconData scanner_rounded = IconData(0xf0129, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">scanner</i> &#x2014; material icon named "scanner" (outlined).
  static const IconData scanner_outlined = IconData(0xf337, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">scatter_plot</i> &#x2014; material icon named "scatter plot".
  static const IconData scatter_plot = IconData(0xe555, 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(0xec4b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">scatter_plot</i> &#x2014; material icon named "scatter plot" (round).
  static const IconData scatter_plot_rounded = IconData(0xf012a, 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(0xf338, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">schedule</i> &#x2014; material icon named "schedule".
  static const IconData schedule = IconData(0xe556, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">schedule</i> &#x2014; material icon named "schedule" (sharp).
  static const IconData schedule_sharp = IconData(0xec4d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">schedule</i> &#x2014; material icon named "schedule" (round).
  static const IconData schedule_rounded = IconData(0xf012b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">schedule</i> &#x2014; material icon named "schedule" (outlined).
  static const IconData schedule_outlined = IconData(0xf339, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">schedule_send</i> &#x2014; material icon named "schedule send".
  static const IconData schedule_send = IconData(0xe557, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">schedule_send</i> &#x2014; material icon named "schedule send" (sharp).
  static const IconData schedule_send_sharp = IconData(0xec4c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">schedule_send</i> &#x2014; material icon named "schedule send" (round).
  static const IconData schedule_send_rounded = IconData(0xf012c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">schedule_send</i> &#x2014; material icon named "schedule send" (outlined).
  static const IconData schedule_send_outlined = IconData(0xf33a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">schema</i> &#x2014; material icon named "schema".
  static const IconData schema = IconData(0xe558, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">schema</i> &#x2014; material icon named "schema" (sharp).
  static const IconData schema_sharp = IconData(0xec4e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">schema</i> &#x2014; material icon named "schema" (round).
  static const IconData schema_rounded = IconData(0xf012d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">schema</i> &#x2014; material icon named "schema" (outlined).
  static const IconData schema_outlined = IconData(0xf33b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">school</i> &#x2014; material icon named "school".
  static const IconData school = IconData(0xe559, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">school</i> &#x2014; material icon named "school" (sharp).
  static const IconData school_sharp = IconData(0xec4f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">school</i> &#x2014; material icon named "school" (round).
  static const IconData school_rounded = IconData(0xf012e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">school</i> &#x2014; material icon named "school" (outlined).
  static const IconData school_outlined = IconData(0xf33c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">science</i> &#x2014; material icon named "science".
  static const IconData science = IconData(0xe55a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">science</i> &#x2014; material icon named "science" (sharp).
  static const IconData science_sharp = IconData(0xec50, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">science</i> &#x2014; material icon named "science" (round).
  static const IconData science_rounded = IconData(0xf012f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">science</i> &#x2014; material icon named "science" (outlined).
  static const IconData science_outlined = IconData(0xf33d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">score</i> &#x2014; material icon named "score".
  static const IconData score = IconData(0xe55b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">score</i> &#x2014; material icon named "score" (sharp).
  static const IconData score_sharp = IconData(0xec51, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">score</i> &#x2014; material icon named "score" (round).
  static const IconData score_rounded = IconData(0xf0130, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">score</i> &#x2014; material icon named "score" (outlined).
  static const IconData score_outlined = IconData(0xf33e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">scoreboard</i> &#x2014; material icon named "scoreboard".
  static const IconData scoreboard = IconData(0xf06c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">scoreboard</i> &#x2014; material icon named "scoreboard" (sharp).
  static const IconData scoreboard_sharp = IconData(0xf06b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">scoreboard</i> &#x2014; material icon named "scoreboard" (round).
  static const IconData scoreboard_rounded = IconData(0xf06ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">scoreboard</i> &#x2014; material icon named "scoreboard" (outlined).
  static const IconData scoreboard_outlined = IconData(0xf06a7, 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(0xe55c, 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(0xec52, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">screen_lock_landscape</i> &#x2014; material icon named "screen lock landscape" (round).
  static const IconData screen_lock_landscape_rounded = IconData(
    0xf0131,
    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(
    0xf33f,
    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(0xe55d, 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(0xec53, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">screen_lock_portrait</i> &#x2014; material icon named "screen lock portrait" (round).
  static const IconData screen_lock_portrait_rounded = IconData(
    0xf0132,
    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(
    0xf340,
    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(0xe55e, 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(0xec54, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">screen_lock_rotation</i> &#x2014; material icon named "screen lock rotation" (round).
  static const IconData screen_lock_rotation_rounded = IconData(
    0xf0133,
    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(
    0xf341,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">screen_rotation</i> &#x2014; material icon named "screen rotation".
  static const IconData screen_rotation = IconData(0xe55f, 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(0xec55, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">screen_rotation</i> &#x2014; material icon named "screen rotation" (round).
  static const IconData screen_rotation_rounded = IconData(0xf0134, 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(0xf342, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">screen_rotation_alt</i> &#x2014; material icon named "screen rotation alt".
  static const IconData screen_rotation_alt = IconData(0xf07bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">screen_rotation_alt</i> &#x2014; material icon named "screen rotation alt" (sharp).
  static const IconData screen_rotation_alt_sharp = IconData(0xf0767, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">screen_rotation_alt</i> &#x2014; material icon named "screen rotation alt" (round).
  static const IconData screen_rotation_alt_rounded = IconData(
    0xf0817,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">screen_rotation_alt</i> &#x2014; material icon named "screen rotation alt" (outlined).
  static const IconData screen_rotation_alt_outlined = IconData(
    0xf070f,
    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(0xe560, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">screen_search_desktop</i> &#x2014; material icon named "screen search desktop" (sharp).
  static const IconData screen_search_desktop_sharp = IconData(0xec56, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">screen_search_desktop</i> &#x2014; material icon named "screen search desktop" (round).
  static const IconData screen_search_desktop_rounded = IconData(
    0xf0135,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">screen_search_desktop</i> &#x2014; material icon named "screen search desktop" (outlined).
  static const IconData screen_search_desktop_outlined = IconData(
    0xf343,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">screen_share</i> &#x2014; material icon named "screen share".
  static const IconData screen_share = IconData(
    0xe561,
    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(
    0xec57,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">screen_share</i> &#x2014; material icon named "screen share" (round).
  static const IconData screen_share_rounded = IconData(
    0xf0136,
    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(
    0xf344,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">screenshot</i> &#x2014; material icon named "screenshot".
  static const IconData screenshot = IconData(0xe562, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">screenshot</i> &#x2014; material icon named "screenshot" (sharp).
  static const IconData screenshot_sharp = IconData(0xec58, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">screenshot</i> &#x2014; material icon named "screenshot" (round).
  static const IconData screenshot_rounded = IconData(0xf0137, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">screenshot</i> &#x2014; material icon named "screenshot" (outlined).
  static const IconData screenshot_outlined = IconData(0xf345, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">screenshot_monitor</i> &#x2014; material icon named "screenshot monitor".
  static const IconData screenshot_monitor = IconData(0xf07c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">screenshot_monitor</i> &#x2014; material icon named "screenshot monitor" (sharp).
  static const IconData screenshot_monitor_sharp = IconData(0xf0768, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">screenshot_monitor</i> &#x2014; material icon named "screenshot monitor" (round).
  static const IconData screenshot_monitor_rounded = IconData(0xf0818, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">screenshot_monitor</i> &#x2014; material icon named "screenshot monitor" (outlined).
  static const IconData screenshot_monitor_outlined = IconData(
    0xf0710,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">scuba_diving</i> &#x2014; material icon named "scuba diving".
  static const IconData scuba_diving = IconData(0xf06c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">scuba_diving</i> &#x2014; material icon named "scuba diving" (sharp).
  static const IconData scuba_diving_sharp = IconData(0xf06b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">scuba_diving</i> &#x2014; material icon named "scuba diving" (round).
  static const IconData scuba_diving_rounded = IconData(0xf06cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">scuba_diving</i> &#x2014; material icon named "scuba diving" (outlined).
  static const IconData scuba_diving_outlined = IconData(0xf06a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sd</i> &#x2014; material icon named "sd".
  static const IconData sd = IconData(0xe563, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sd</i> &#x2014; material icon named "sd" (sharp).
  static const IconData sd_sharp = IconData(0xec5b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sd</i> &#x2014; material icon named "sd" (round).
  static const IconData sd_rounded = IconData(0xf013a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sd</i> &#x2014; material icon named "sd" (outlined).
  static const IconData sd_outlined = IconData(0xf348, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sd_card</i> &#x2014; material icon named "sd card".
  static const IconData sd_card = IconData(0xe564, 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(0xec5a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sd_card</i> &#x2014; material icon named "sd card" (round).
  static const IconData sd_card_rounded = IconData(0xf0139, 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(0xf347, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sd_card_alert</i> &#x2014; material icon named "sd card alert".
  static const IconData sd_card_alert = IconData(0xe565, 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(0xec59, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sd_card_alert</i> &#x2014; material icon named "sd card alert" (round).
  static const IconData sd_card_alert_rounded = IconData(0xf0138, 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(0xf346, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sd_storage</i> &#x2014; material icon named "sd storage".
  static const IconData sd_storage = IconData(0xe566, 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(0xec5c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sd_storage</i> &#x2014; material icon named "sd storage" (round).
  static const IconData sd_storage_rounded = IconData(0xf013b, 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(0xf349, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">search</i> &#x2014; material icon named "search".
  static const IconData search = IconData(0xe567, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">search</i> &#x2014; material icon named "search" (sharp).
  static const IconData search_sharp = IconData(0xec5e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">search</i> &#x2014; material icon named "search" (round).
  static const IconData search_rounded = IconData(0xf013d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">search</i> &#x2014; material icon named "search" (outlined).
  static const IconData search_outlined = IconData(0xf34b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">search_off</i> &#x2014; material icon named "search off".
  static const IconData search_off = IconData(0xe568, 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(0xec5d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">search_off</i> &#x2014; material icon named "search off" (round).
  static const IconData search_off_rounded = IconData(0xf013c, 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(0xf34a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">security</i> &#x2014; material icon named "security".
  static const IconData security = IconData(0xe569, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">security</i> &#x2014; material icon named "security" (sharp).
  static const IconData security_sharp = IconData(0xec5f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">security</i> &#x2014; material icon named "security" (round).
  static const IconData security_rounded = IconData(0xf013e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">security</i> &#x2014; material icon named "security" (outlined).
  static const IconData security_outlined = IconData(0xf34c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">security_update</i> &#x2014; material icon named "security update".
  static const IconData security_update = IconData(0xe56a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">security_update</i> &#x2014; material icon named "security update" (sharp).
  static const IconData security_update_sharp = IconData(0xec61, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">security_update</i> &#x2014; material icon named "security update" (round).
  static const IconData security_update_rounded = IconData(0xf0140, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">security_update</i> &#x2014; material icon named "security update" (outlined).
  static const IconData security_update_outlined = IconData(0xf34e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">security_update_good</i> &#x2014; material icon named "security update good".
  static const IconData security_update_good = IconData(0xe56b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">security_update_good</i> &#x2014; material icon named "security update good" (sharp).
  static const IconData security_update_good_sharp = IconData(0xec60, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">security_update_good</i> &#x2014; material icon named "security update good" (round).
  static const IconData security_update_good_rounded = IconData(
    0xf013f,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">security_update_good</i> &#x2014; material icon named "security update good" (outlined).
  static const IconData security_update_good_outlined = IconData(
    0xf34d,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">security_update_warning</i> &#x2014; material icon named "security update warning".
  static const IconData security_update_warning = IconData(0xe56c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">security_update_warning</i> &#x2014; material icon named "security update warning" (sharp).
  static const IconData security_update_warning_sharp = IconData(
    0xec62,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">security_update_warning</i> &#x2014; material icon named "security update warning" (round).
  static const IconData security_update_warning_rounded = IconData(
    0xf0141,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">security_update_warning</i> &#x2014; material icon named "security update warning" (outlined).
  static const IconData security_update_warning_outlined = IconData(
    0xf34f,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">segment</i> &#x2014; material icon named "segment".
  static const IconData segment = IconData(0xe56d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">segment</i> &#x2014; material icon named "segment" (sharp).
  static const IconData segment_sharp = IconData(0xec63, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">segment</i> &#x2014; material icon named "segment" (round).
  static const IconData segment_rounded = IconData(0xf0142, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">segment</i> &#x2014; material icon named "segment" (outlined).
  static const IconData segment_outlined = IconData(0xf350, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">select_all</i> &#x2014; material icon named "select all".
  static const IconData select_all = IconData(0xe56e, 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(0xec64, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">select_all</i> &#x2014; material icon named "select all" (round).
  static const IconData select_all_rounded = IconData(0xf0143, 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(0xf351, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">self_improvement</i> &#x2014; material icon named "self improvement".
  static const IconData self_improvement = IconData(0xe56f, 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(0xec65, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">self_improvement</i> &#x2014; material icon named "self improvement" (round).
  static const IconData self_improvement_rounded = IconData(0xf0144, 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(0xf352, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sell</i> &#x2014; material icon named "sell".
  static const IconData sell = IconData(0xe570, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sell</i> &#x2014; material icon named "sell" (sharp).
  static const IconData sell_sharp = IconData(0xec66, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sell</i> &#x2014; material icon named "sell" (round).
  static const IconData sell_rounded = IconData(0xf0145, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sell</i> &#x2014; material icon named "sell" (outlined).
  static const IconData sell_outlined = IconData(0xf353, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">send</i> &#x2014; material icon named "send".
  static const IconData send = IconData(
    0xe571,
    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(
    0xec68,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">send</i> &#x2014; material icon named "send" (round).
  static const IconData send_rounded = IconData(
    0xf0147,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-outlined md-36">send</i> &#x2014; material icon named "send" (outlined).
  static const IconData send_outlined = IconData(
    0xf355,
    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(0xe572, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">send_and_archive</i> &#x2014; material icon named "send and archive" (sharp).
  static const IconData send_and_archive_sharp = IconData(0xec67, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">send_and_archive</i> &#x2014; material icon named "send and archive" (round).
  static const IconData send_and_archive_rounded = IconData(0xf0146, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">send_and_archive</i> &#x2014; material icon named "send and archive" (outlined).
  static const IconData send_and_archive_outlined = IconData(0xf354, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">send_time_extension</i> &#x2014; material icon named "send time extension".
  static const IconData send_time_extension = IconData(0xf0565, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">send_time_extension</i> &#x2014; material icon named "send time extension" (sharp).
  static const IconData send_time_extension_sharp = IconData(0xf046e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">send_time_extension</i> &#x2014; material icon named "send time extension" (round).
  static const IconData send_time_extension_rounded = IconData(
    0xf037b,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">send_time_extension</i> &#x2014; material icon named "send time extension" (outlined).
  static const IconData send_time_extension_outlined = IconData(
    0xf065c,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">send_to_mobile</i> &#x2014; material icon named "send to mobile".
  static const IconData send_to_mobile = IconData(0xe573, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">send_to_mobile</i> &#x2014; material icon named "send to mobile" (sharp).
  static const IconData send_to_mobile_sharp = IconData(0xec69, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">send_to_mobile</i> &#x2014; material icon named "send to mobile" (round).
  static const IconData send_to_mobile_rounded = IconData(0xf0148, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">send_to_mobile</i> &#x2014; material icon named "send to mobile" (outlined).
  static const IconData send_to_mobile_outlined = IconData(0xf356, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sensor_door</i> &#x2014; material icon named "sensor door".
  static const IconData sensor_door = IconData(0xe574, 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(0xec6a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sensor_door</i> &#x2014; material icon named "sensor door" (round).
  static const IconData sensor_door_rounded = IconData(0xf0149, 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(0xf357, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sensor_occupied</i> &#x2014; material icon named "sensor occupied".
  static const IconData sensor_occupied = IconData(0xf07c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sensor_occupied</i> &#x2014; material icon named "sensor occupied" (sharp).
  static const IconData sensor_occupied_sharp = IconData(0xf0769, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sensor_occupied</i> &#x2014; material icon named "sensor occupied" (round).
  static const IconData sensor_occupied_rounded = IconData(0xf0819, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sensor_occupied</i> &#x2014; material icon named "sensor occupied" (outlined).
  static const IconData sensor_occupied_outlined = IconData(0xf0711, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sensor_window</i> &#x2014; material icon named "sensor window".
  static const IconData sensor_window = IconData(0xe575, 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(0xec6b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sensor_window</i> &#x2014; material icon named "sensor window" (round).
  static const IconData sensor_window_rounded = IconData(0xf014a, 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(0xf358, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sensors</i> &#x2014; material icon named "sensors".
  static const IconData sensors = IconData(0xe576, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sensors</i> &#x2014; material icon named "sensors" (sharp).
  static const IconData sensors_sharp = IconData(0xec6d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sensors</i> &#x2014; material icon named "sensors" (round).
  static const IconData sensors_rounded = IconData(0xf014c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sensors</i> &#x2014; material icon named "sensors" (outlined).
  static const IconData sensors_outlined = IconData(0xf35a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sensors_off</i> &#x2014; material icon named "sensors off".
  static const IconData sensors_off = IconData(0xe577, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sensors_off</i> &#x2014; material icon named "sensors off" (sharp).
  static const IconData sensors_off_sharp = IconData(0xec6c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sensors_off</i> &#x2014; material icon named "sensors off" (round).
  static const IconData sensors_off_rounded = IconData(0xf014b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sensors_off</i> &#x2014; material icon named "sensors off" (outlined).
  static const IconData sensors_off_outlined = IconData(0xf359, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sentiment_dissatisfied</i> &#x2014; material icon named "sentiment dissatisfied".
  static const IconData sentiment_dissatisfied = IconData(0xe578, 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(
    0xec6e,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">sentiment_dissatisfied</i> &#x2014; material icon named "sentiment dissatisfied" (round).
  static const IconData sentiment_dissatisfied_rounded = IconData(
    0xf014d,
    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(
    0xf35b,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">sentiment_neutral</i> &#x2014; material icon named "sentiment neutral".
  static const IconData sentiment_neutral = IconData(0xe579, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sentiment_neutral</i> &#x2014; material icon named "sentiment neutral" (sharp).
  static const IconData sentiment_neutral_sharp = IconData(0xec6f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sentiment_neutral</i> &#x2014; material icon named "sentiment neutral" (round).
  static const IconData sentiment_neutral_rounded = IconData(0xf014e, 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(0xf35c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sentiment_satisfied</i> &#x2014; material icon named "sentiment satisfied".
  static const IconData sentiment_satisfied = IconData(0xe57a, 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(0xec71, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sentiment_satisfied</i> &#x2014; material icon named "sentiment satisfied" (round).
  static const IconData sentiment_satisfied_rounded = IconData(
    0xf0150,
    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(
    0xf35e,
    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(0xe57b, 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(
    0xec70,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">sentiment_satisfied_alt</i> &#x2014; material icon named "sentiment satisfied alt" (round).
  static const IconData sentiment_satisfied_alt_rounded = IconData(
    0xf014f,
    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(
    0xf35d,
    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(0xe57c, 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(
    0xec72,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">sentiment_very_dissatisfied</i> &#x2014; material icon named "sentiment very dissatisfied" (round).
  static const IconData sentiment_very_dissatisfied_rounded = IconData(
    0xf0151,
    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(
    0xf35f,
    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(0xe57d, 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(
    0xec73,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">sentiment_very_satisfied</i> &#x2014; material icon named "sentiment very satisfied" (round).
  static const IconData sentiment_very_satisfied_rounded = IconData(
    0xf0152,
    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(
    0xf360,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">set_meal</i> &#x2014; material icon named "set meal".
  static const IconData set_meal = IconData(0xe57e, 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(0xec74, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">set_meal</i> &#x2014; material icon named "set meal" (round).
  static const IconData set_meal_rounded = IconData(0xf0153, 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(0xf361, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings</i> &#x2014; material icon named "settings".
  static const IconData settings = IconData(0xe57f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings</i> &#x2014; material icon named "settings" (sharp).
  static const IconData settings_sharp = IconData(0xec85, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings</i> &#x2014; material icon named "settings" (round).
  static const IconData settings_rounded = IconData(0xf0164, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings</i> &#x2014; material icon named "settings" (outlined).
  static const IconData settings_outlined = IconData(0xf36e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_accessibility</i> &#x2014; material icon named "settings accessibility".
  static const IconData settings_accessibility = IconData(0xe580, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_accessibility</i> &#x2014; material icon named "settings accessibility" (sharp).
  static const IconData settings_accessibility_sharp = IconData(
    0xec75,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">settings_accessibility</i> &#x2014; material icon named "settings accessibility" (round).
  static const IconData settings_accessibility_rounded = IconData(
    0xf0154,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">settings_accessibility</i> &#x2014; material icon named "settings accessibility" (outlined).
  static const IconData settings_accessibility_outlined = IconData(
    0xf362,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">settings_applications</i> &#x2014; material icon named "settings applications".
  static const IconData settings_applications = IconData(0xe581, 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(0xec76, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_applications</i> &#x2014; material icon named "settings applications" (round).
  static const IconData settings_applications_rounded = IconData(
    0xf0155,
    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(
    0xf363,
    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(0xe582, 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(
    0xec77,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">settings_backup_restore</i> &#x2014; material icon named "settings backup restore" (round).
  static const IconData settings_backup_restore_rounded = IconData(
    0xf0156,
    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(
    0xf364,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">settings_bluetooth</i> &#x2014; material icon named "settings bluetooth".
  static const IconData settings_bluetooth = IconData(0xe583, 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(0xec78, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_bluetooth</i> &#x2014; material icon named "settings bluetooth" (round).
  static const IconData settings_bluetooth_rounded = IconData(0xf0157, 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(0xf365, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_brightness</i> &#x2014; material icon named "settings brightness".
  static const IconData settings_brightness = IconData(0xe584, 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(0xec79, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_brightness</i> &#x2014; material icon named "settings brightness" (round).
  static const IconData settings_brightness_rounded = IconData(
    0xf0158,
    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(
    0xf366,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">settings_cell</i> &#x2014; material icon named "settings cell".
  static const IconData settings_cell = IconData(0xe585, 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(0xec7a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_cell</i> &#x2014; material icon named "settings cell" (round).
  static const IconData settings_cell_rounded = IconData(0xf0159, 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(0xf367, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_display</i> &#x2014; material icon named "settings display".
  static const IconData settings_display = IconData(0xe584, 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(0xec79, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_display</i> &#x2014; material icon named "settings display" (round).
  static const IconData settings_display_rounded = IconData(0xf0158, 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(0xf366, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_ethernet</i> &#x2014; material icon named "settings ethernet".
  static const IconData settings_ethernet = IconData(0xe586, 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(0xec7b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_ethernet</i> &#x2014; material icon named "settings ethernet" (round).
  static const IconData settings_ethernet_rounded = IconData(0xf015a, 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(0xf368, 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(0xe587, 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(
    0xec7c,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">settings_input_antenna</i> &#x2014; material icon named "settings input antenna" (round).
  static const IconData settings_input_antenna_rounded = IconData(
    0xf015b,
    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(
    0xf369,
    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(0xe588, 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(
    0xec7d,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">settings_input_component</i> &#x2014; material icon named "settings input component" (round).
  static const IconData settings_input_component_rounded = IconData(
    0xf015c,
    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(
    0xf36a,
    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(0xe589, 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(
    0xec7e,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">settings_input_composite</i> &#x2014; material icon named "settings input composite" (round).
  static const IconData settings_input_composite_rounded = IconData(
    0xf015d,
    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(
    0xf36b,
    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(0xe58a, 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(0xec7f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_input_hdmi</i> &#x2014; material icon named "settings input hdmi" (round).
  static const IconData settings_input_hdmi_rounded = IconData(
    0xf015e,
    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(
    0xf36c,
    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(0xe58b, 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(0xec80, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_input_svideo</i> &#x2014; material icon named "settings input svideo" (round).
  static const IconData settings_input_svideo_rounded = IconData(
    0xf015f,
    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(
    0xf36d,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">settings_overscan</i> &#x2014; material icon named "settings overscan".
  static const IconData settings_overscan = IconData(0xe58c, 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(0xec81, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_overscan</i> &#x2014; material icon named "settings overscan" (round).
  static const IconData settings_overscan_rounded = IconData(0xf0160, 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(0xf36f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_phone</i> &#x2014; material icon named "settings phone".
  static const IconData settings_phone = IconData(0xe58d, 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(0xec82, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_phone</i> &#x2014; material icon named "settings phone" (round).
  static const IconData settings_phone_rounded = IconData(0xf0161, 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(0xf370, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_power</i> &#x2014; material icon named "settings power".
  static const IconData settings_power = IconData(0xe58e, 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(0xec83, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_power</i> &#x2014; material icon named "settings power" (round).
  static const IconData settings_power_rounded = IconData(0xf0162, 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(0xf371, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_remote</i> &#x2014; material icon named "settings remote".
  static const IconData settings_remote = IconData(0xe58f, 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(0xec84, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_remote</i> &#x2014; material icon named "settings remote" (round).
  static const IconData settings_remote_rounded = IconData(0xf0163, 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(0xf372, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">settings_suggest</i> &#x2014; material icon named "settings suggest".
  static const IconData settings_suggest = IconData(0xe590, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">settings_suggest</i> &#x2014; material icon named "settings suggest" (sharp).
  static const IconData settings_suggest_sharp = IconData(0xec86, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_suggest</i> &#x2014; material icon named "settings suggest" (round).
  static const IconData settings_suggest_rounded = IconData(0xf0165, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">settings_suggest</i> &#x2014; material icon named "settings suggest" (outlined).
  static const IconData settings_suggest_outlined = IconData(0xf373, 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(0xe591, 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(
    0xec87,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">settings_system_daydream</i> &#x2014; material icon named "settings system daydream" (round).
  static const IconData settings_system_daydream_rounded = IconData(
    0xf0166,
    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(
    0xf374,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">settings_voice</i> &#x2014; material icon named "settings voice".
  static const IconData settings_voice = IconData(0xe592, 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(0xec88, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">settings_voice</i> &#x2014; material icon named "settings voice" (round).
  static const IconData settings_voice_rounded = IconData(0xf0167, 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(0xf375, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">severe_cold</i> &#x2014; material icon named "severe cold".
  static const IconData severe_cold = IconData(0xf07c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">severe_cold</i> &#x2014; material icon named "severe cold" (sharp).
  static const IconData severe_cold_sharp = IconData(0xf076a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">severe_cold</i> &#x2014; material icon named "severe cold" (round).
  static const IconData severe_cold_rounded = IconData(0xf081a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">severe_cold</i> &#x2014; material icon named "severe cold" (outlined).
  static const IconData severe_cold_outlined = IconData(0xf0712, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shape_line</i> &#x2014; material icon named "shape line".
  static const IconData shape_line = IconData(0xf0876, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">shape_line</i> &#x2014; material icon named "shape line" (sharp).
  static const IconData shape_line_sharp = IconData(0xf084c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shape_line</i> &#x2014; material icon named "shape line" (round).
  static const IconData shape_line_rounded = IconData(0xf0895, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">shape_line</i> &#x2014; material icon named "shape line" (outlined).
  static const IconData shape_line_outlined = IconData(0xf08b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">share</i> &#x2014; material icon named "share".
  static const IconData share = IconData(0xe593, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">share</i> &#x2014; material icon named "share" (sharp).
  static const IconData share_sharp = IconData(0xec8b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">share</i> &#x2014; material icon named "share" (round).
  static const IconData share_rounded = IconData(0xf016a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">share</i> &#x2014; material icon named "share" (outlined).
  static const IconData share_outlined = IconData(0xf378, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">share_arrival_time</i> &#x2014; material icon named "share arrival time".
  static const IconData share_arrival_time = IconData(0xe594, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">share_arrival_time</i> &#x2014; material icon named "share arrival time" (sharp).
  static const IconData share_arrival_time_sharp = IconData(0xec89, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">share_arrival_time</i> &#x2014; material icon named "share arrival time" (round).
  static const IconData share_arrival_time_rounded = IconData(0xf0168, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">share_arrival_time</i> &#x2014; material icon named "share arrival time" (outlined).
  static const IconData share_arrival_time_outlined = IconData(0xf376, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">share_location</i> &#x2014; material icon named "share location".
  static const IconData share_location = IconData(0xe595, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">share_location</i> &#x2014; material icon named "share location" (sharp).
  static const IconData share_location_sharp = IconData(0xec8a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">share_location</i> &#x2014; material icon named "share location" (round).
  static const IconData share_location_rounded = IconData(0xf0169, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">share_location</i> &#x2014; material icon named "share location" (outlined).
  static const IconData share_location_outlined = IconData(0xf377, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shelves</i> &#x2014; material icon named "shelves".
  static const IconData shelves = IconData(0xf0877, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shield</i> &#x2014; material icon named "shield".
  static const IconData shield = IconData(0xe596, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">shield</i> &#x2014; material icon named "shield" (sharp).
  static const IconData shield_sharp = IconData(0xec8c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shield</i> &#x2014; material icon named "shield" (round).
  static const IconData shield_rounded = IconData(0xf016b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">shield</i> &#x2014; material icon named "shield" (outlined).
  static const IconData shield_outlined = IconData(0xf379, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shield_moon</i> &#x2014; material icon named "shield moon".
  static const IconData shield_moon = IconData(0xf0566, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">shield_moon</i> &#x2014; material icon named "shield moon" (sharp).
  static const IconData shield_moon_sharp = IconData(0xf046f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shield_moon</i> &#x2014; material icon named "shield moon" (round).
  static const IconData shield_moon_rounded = IconData(0xf037c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">shield_moon</i> &#x2014; material icon named "shield moon" (outlined).
  static const IconData shield_moon_outlined = IconData(0xf065d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shop</i> &#x2014; material icon named "shop".
  static const IconData shop = IconData(0xe597, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">shop</i> &#x2014; material icon named "shop" (sharp).
  static const IconData shop_sharp = IconData(0xec8e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shop</i> &#x2014; material icon named "shop" (round).
  static const IconData shop_rounded = IconData(0xf016d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">shop</i> &#x2014; material icon named "shop" (outlined).
  static const IconData shop_outlined = IconData(0xf37b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shop_2</i> &#x2014; material icon named "shop 2".
  static const IconData shop_2 = IconData(0xe598, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">shop_2</i> &#x2014; material icon named "shop 2" (sharp).
  static const IconData shop_2_sharp = IconData(0xec8d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shop_2</i> &#x2014; material icon named "shop 2" (round).
  static const IconData shop_2_rounded = IconData(0xf016c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">shop_2</i> &#x2014; material icon named "shop 2" (outlined).
  static const IconData shop_2_outlined = IconData(0xf37a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shop_two</i> &#x2014; material icon named "shop two".
  static const IconData shop_two = IconData(0xe599, 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(0xec8f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shop_two</i> &#x2014; material icon named "shop two" (round).
  static const IconData shop_two_rounded = IconData(0xf016e, 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(0xf37c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shopify</i> &#x2014; material icon named "shopify".
  static const IconData shopify = IconData(0xf0567, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">shopify</i> &#x2014; material icon named "shopify" (sharp).
  static const IconData shopify_sharp = IconData(0xf0470, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shopify</i> &#x2014; material icon named "shopify" (round).
  static const IconData shopify_rounded = IconData(0xf037d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">shopify</i> &#x2014; material icon named "shopify" (outlined).
  static const IconData shopify_outlined = IconData(0xf065e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shopping_bag</i> &#x2014; material icon named "shopping bag".
  static const IconData shopping_bag = IconData(0xe59a, 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(0xec90, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shopping_bag</i> &#x2014; material icon named "shopping bag" (round).
  static const IconData shopping_bag_rounded = IconData(0xf016f, 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(0xf37d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shopping_basket</i> &#x2014; material icon named "shopping basket".
  static const IconData shopping_basket = IconData(0xe59b, 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(0xec91, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shopping_basket</i> &#x2014; material icon named "shopping basket" (round).
  static const IconData shopping_basket_rounded = IconData(0xf0170, 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(0xf37e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shopping_cart</i> &#x2014; material icon named "shopping cart".
  static const IconData shopping_cart = IconData(0xe59c, 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(0xec92, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shopping_cart</i> &#x2014; material icon named "shopping cart" (round).
  static const IconData shopping_cart_rounded = IconData(0xf0171, 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(0xf37f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shopping_cart_checkout</i> &#x2014; material icon named "shopping cart checkout".
  static const IconData shopping_cart_checkout = IconData(0xf0568, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">shopping_cart_checkout</i> &#x2014; material icon named "shopping cart checkout" (sharp).
  static const IconData shopping_cart_checkout_sharp = IconData(
    0xf0471,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">shopping_cart_checkout</i> &#x2014; material icon named "shopping cart checkout" (round).
  static const IconData shopping_cart_checkout_rounded = IconData(
    0xf037e,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">shopping_cart_checkout</i> &#x2014; material icon named "shopping cart checkout" (outlined).
  static const IconData shopping_cart_checkout_outlined = IconData(
    0xf065f,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">short_text</i> &#x2014; material icon named "short text".
  static const IconData short_text = IconData(
    0xe59d,
    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(
    0xec93,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">short_text</i> &#x2014; material icon named "short text" (round).
  static const IconData short_text_rounded = IconData(
    0xf0172,
    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(
    0xf380,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">shortcut</i> &#x2014; material icon named "shortcut".
  static const IconData shortcut = IconData(0xe59e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">shortcut</i> &#x2014; material icon named "shortcut" (sharp).
  static const IconData shortcut_sharp = IconData(0xec94, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shortcut</i> &#x2014; material icon named "shortcut" (round).
  static const IconData shortcut_rounded = IconData(0xf0173, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">shortcut</i> &#x2014; material icon named "shortcut" (outlined).
  static const IconData shortcut_outlined = IconData(0xf381, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">show_chart</i> &#x2014; material icon named "show chart".
  static const IconData show_chart = IconData(
    0xe59f,
    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(
    0xec95,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">show_chart</i> &#x2014; material icon named "show chart" (round).
  static const IconData show_chart_rounded = IconData(
    0xf0174,
    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(
    0xf382,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">shower</i> &#x2014; material icon named "shower".
  static const IconData shower = IconData(0xe5a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">shower</i> &#x2014; material icon named "shower" (sharp).
  static const IconData shower_sharp = IconData(0xec96, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shower</i> &#x2014; material icon named "shower" (round).
  static const IconData shower_rounded = IconData(0xf0175, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">shower</i> &#x2014; material icon named "shower" (outlined).
  static const IconData shower_outlined = IconData(0xf383, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shuffle</i> &#x2014; material icon named "shuffle".
  static const IconData shuffle = IconData(0xe5a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">shuffle</i> &#x2014; material icon named "shuffle" (sharp).
  static const IconData shuffle_sharp = IconData(0xec98, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shuffle</i> &#x2014; material icon named "shuffle" (round).
  static const IconData shuffle_rounded = IconData(0xf0177, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">shuffle</i> &#x2014; material icon named "shuffle" (outlined).
  static const IconData shuffle_outlined = IconData(0xf385, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shuffle_on</i> &#x2014; material icon named "shuffle on".
  static const IconData shuffle_on = IconData(0xe5a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">shuffle_on</i> &#x2014; material icon named "shuffle on" (sharp).
  static const IconData shuffle_on_sharp = IconData(0xec97, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shuffle_on</i> &#x2014; material icon named "shuffle on" (round).
  static const IconData shuffle_on_rounded = IconData(0xf0176, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">shuffle_on</i> &#x2014; material icon named "shuffle on" (outlined).
  static const IconData shuffle_on_outlined = IconData(0xf384, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">shutter_speed</i> &#x2014; material icon named "shutter speed".
  static const IconData shutter_speed = IconData(0xe5a3, 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(0xec99, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">shutter_speed</i> &#x2014; material icon named "shutter speed" (round).
  static const IconData shutter_speed_rounded = IconData(0xf0178, 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(0xf386, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sick</i> &#x2014; material icon named "sick".
  static const IconData sick = IconData(0xe5a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sick</i> &#x2014; material icon named "sick" (sharp).
  static const IconData sick_sharp = IconData(0xec9a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sick</i> &#x2014; material icon named "sick" (round).
  static const IconData sick_rounded = IconData(0xf0179, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sick</i> &#x2014; material icon named "sick" (outlined).
  static const IconData sick_outlined = IconData(0xf387, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sign_language</i> &#x2014; material icon named "sign language".
  static const IconData sign_language = IconData(0xf07c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sign_language</i> &#x2014; material icon named "sign language" (sharp).
  static const IconData sign_language_sharp = IconData(0xf076b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sign_language</i> &#x2014; material icon named "sign language" (round).
  static const IconData sign_language_rounded = IconData(0xf081b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sign_language</i> &#x2014; material icon named "sign language" (outlined).
  static const IconData sign_language_outlined = IconData(0xf0713, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">signal_cellular_0_bar</i> &#x2014; material icon named "signal cellular 0 bar".
  static const IconData signal_cellular_0_bar = IconData(0xe5a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">signal_cellular_0_bar</i> &#x2014; material icon named "signal cellular 0 bar" (sharp).
  static const IconData signal_cellular_0_bar_sharp = IconData(0xec9b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signal_cellular_0_bar</i> &#x2014; material icon named "signal cellular 0 bar" (round).
  static const IconData signal_cellular_0_bar_rounded = IconData(
    0xf017a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">signal_cellular_0_bar</i> &#x2014; material icon named "signal cellular 0 bar" (outlined).
  static const IconData signal_cellular_0_bar_outlined = IconData(
    0xf388,
    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(0xe5a6, 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(0xec9c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signal_cellular_4_bar</i> &#x2014; material icon named "signal cellular 4 bar" (round).
  static const IconData signal_cellular_4_bar_rounded = IconData(
    0xf017b,
    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(
    0xf389,
    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(0xe5a7, 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(0xec9d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signal_cellular_alt</i> &#x2014; material icon named "signal cellular alt" (round).
  static const IconData signal_cellular_alt_rounded = IconData(
    0xf017c,
    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(
    0xf38a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">signal_cellular_alt_1_bar</i> &#x2014; material icon named "signal cellular alt 1 bar".
  static const IconData signal_cellular_alt_1_bar = IconData(0xf07c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">signal_cellular_alt_1_bar</i> &#x2014; material icon named "signal cellular alt 1 bar" (sharp).
  static const IconData signal_cellular_alt_1_bar_sharp = IconData(
    0xf076c,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">signal_cellular_alt_1_bar</i> &#x2014; material icon named "signal cellular alt 1 bar" (round).
  static const IconData signal_cellular_alt_1_bar_rounded = IconData(
    0xf081c,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">signal_cellular_alt_1_bar</i> &#x2014; material icon named "signal cellular alt 1 bar" (outlined).
  static const IconData signal_cellular_alt_1_bar_outlined = IconData(
    0xf0714,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">signal_cellular_alt_2_bar</i> &#x2014; material icon named "signal cellular alt 2 bar".
  static const IconData signal_cellular_alt_2_bar = IconData(0xf07c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">signal_cellular_alt_2_bar</i> &#x2014; material icon named "signal cellular alt 2 bar" (sharp).
  static const IconData signal_cellular_alt_2_bar_sharp = IconData(
    0xf076d,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">signal_cellular_alt_2_bar</i> &#x2014; material icon named "signal cellular alt 2 bar" (round).
  static const IconData signal_cellular_alt_2_bar_rounded = IconData(
    0xf081d,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">signal_cellular_alt_2_bar</i> &#x2014; material icon named "signal cellular alt 2 bar" (outlined).
  static const IconData signal_cellular_alt_2_bar_outlined = IconData(
    0xf0715,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">signal_cellular_connected_no_internet_0_bar</i> &#x2014; material icon named "signal cellular connected no internet 0 bar".
  static const IconData signal_cellular_connected_no_internet_0_bar = IconData(
    0xe5a8,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-sharp md-36">signal_cellular_connected_no_internet_0_bar</i> &#x2014; material icon named "signal cellular connected no internet 0 bar" (sharp).
  static const IconData signal_cellular_connected_no_internet_0_bar_sharp = IconData(
    0xec9e,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">signal_cellular_connected_no_internet_0_bar</i> &#x2014; material icon named "signal cellular connected no internet 0 bar" (round).
  static const IconData signal_cellular_connected_no_internet_0_bar_rounded = IconData(
    0xf017d,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">signal_cellular_connected_no_internet_0_bar</i> &#x2014; material icon named "signal cellular connected no internet 0 bar" (outlined).
  static const IconData signal_cellular_connected_no_internet_0_bar_outlined = IconData(
    0xf38b,
    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(
    0xe5a9,
    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(
    0xec9f,
    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" (round).
  static const IconData signal_cellular_connected_no_internet_4_bar_rounded = IconData(
    0xf017e,
    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(
    0xf38c,
    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(0xe5aa, 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(
    0xeca0,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">signal_cellular_no_sim</i> &#x2014; material icon named "signal cellular no sim" (round).
  static const IconData signal_cellular_no_sim_rounded = IconData(
    0xf017f,
    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(
    0xf38d,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">signal_cellular_nodata</i> &#x2014; material icon named "signal cellular nodata".
  static const IconData signal_cellular_nodata = IconData(0xe5ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">signal_cellular_nodata</i> &#x2014; material icon named "signal cellular nodata" (sharp).
  static const IconData signal_cellular_nodata_sharp = IconData(
    0xeca1,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">signal_cellular_nodata</i> &#x2014; material icon named "signal cellular nodata" (round).
  static const IconData signal_cellular_nodata_rounded = IconData(
    0xf0180,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">signal_cellular_nodata</i> &#x2014; material icon named "signal cellular nodata" (outlined).
  static const IconData signal_cellular_nodata_outlined = IconData(
    0xf38e,
    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(0xe5ac, 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(0xeca2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signal_cellular_null</i> &#x2014; material icon named "signal cellular null" (round).
  static const IconData signal_cellular_null_rounded = IconData(
    0xf0181,
    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(
    0xf38f,
    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(0xe5ad, 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(0xeca3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signal_cellular_off</i> &#x2014; material icon named "signal cellular off" (round).
  static const IconData signal_cellular_off_rounded = IconData(
    0xf0182,
    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(
    0xf390,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">signal_wifi_0_bar</i> &#x2014; material icon named "signal wifi 0 bar".
  static const IconData signal_wifi_0_bar = IconData(0xe5ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">signal_wifi_0_bar</i> &#x2014; material icon named "signal wifi 0 bar" (sharp).
  static const IconData signal_wifi_0_bar_sharp = IconData(0xeca4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signal_wifi_0_bar</i> &#x2014; material icon named "signal wifi 0 bar" (round).
  static const IconData signal_wifi_0_bar_rounded = IconData(0xf0183, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">signal_wifi_0_bar</i> &#x2014; material icon named "signal wifi 0 bar" (outlined).
  static const IconData signal_wifi_0_bar_outlined = IconData(0xf391, 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(0xe5af, 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(0xeca6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signal_wifi_4_bar</i> &#x2014; material icon named "signal wifi 4 bar" (round).
  static const IconData signal_wifi_4_bar_rounded = IconData(0xf0185, 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(0xf393, 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(0xe5b0, 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(
    0xeca5,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">signal_wifi_4_bar_lock</i> &#x2014; material icon named "signal wifi 4 bar lock" (round).
  static const IconData signal_wifi_4_bar_lock_rounded = IconData(
    0xf0184,
    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(
    0xf392,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">signal_wifi_bad</i> &#x2014; material icon named "signal wifi bad".
  static const IconData signal_wifi_bad = IconData(0xe5b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">signal_wifi_bad</i> &#x2014; material icon named "signal wifi bad" (sharp).
  static const IconData signal_wifi_bad_sharp = IconData(0xeca7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signal_wifi_bad</i> &#x2014; material icon named "signal wifi bad" (round).
  static const IconData signal_wifi_bad_rounded = IconData(0xf0186, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">signal_wifi_bad</i> &#x2014; material icon named "signal wifi bad" (outlined).
  static const IconData signal_wifi_bad_outlined = IconData(0xf394, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">signal_wifi_connected_no_internet_4</i> &#x2014; material icon named "signal wifi connected no internet 4".
  static const IconData signal_wifi_connected_no_internet_4 = IconData(
    0xe5b2,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-sharp md-36">signal_wifi_connected_no_internet_4</i> &#x2014; material icon named "signal wifi connected no internet 4" (sharp).
  static const IconData signal_wifi_connected_no_internet_4_sharp = IconData(
    0xeca8,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">signal_wifi_connected_no_internet_4</i> &#x2014; material icon named "signal wifi connected no internet 4" (round).
  static const IconData signal_wifi_connected_no_internet_4_rounded = IconData(
    0xf0187,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">signal_wifi_connected_no_internet_4</i> &#x2014; material icon named "signal wifi connected no internet 4" (outlined).
  static const IconData signal_wifi_connected_no_internet_4_outlined = IconData(
    0xf395,
    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(0xe5b3, 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(0xeca9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signal_wifi_off</i> &#x2014; material icon named "signal wifi off" (round).
  static const IconData signal_wifi_off_rounded = IconData(0xf0188, 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(0xf396, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">signal_wifi_statusbar_4_bar</i> &#x2014; material icon named "signal wifi statusbar 4 bar".
  static const IconData signal_wifi_statusbar_4_bar = IconData(0xe5b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">signal_wifi_statusbar_4_bar</i> &#x2014; material icon named "signal wifi statusbar 4 bar" (sharp).
  static const IconData signal_wifi_statusbar_4_bar_sharp = IconData(
    0xecaa,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">signal_wifi_statusbar_4_bar</i> &#x2014; material icon named "signal wifi statusbar 4 bar" (round).
  static const IconData signal_wifi_statusbar_4_bar_rounded = IconData(
    0xf0189,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">signal_wifi_statusbar_4_bar</i> &#x2014; material icon named "signal wifi statusbar 4 bar" (outlined).
  static const IconData signal_wifi_statusbar_4_bar_outlined = IconData(
    0xf397,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">signal_wifi_statusbar_connected_no_internet_4</i> &#x2014; material icon named "signal wifi statusbar connected no internet 4".
  static const IconData signal_wifi_statusbar_connected_no_internet_4 = IconData(
    0xe5b5,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-sharp md-36">signal_wifi_statusbar_connected_no_internet_4</i> &#x2014; material icon named "signal wifi statusbar connected no internet 4" (sharp).
  static const IconData signal_wifi_statusbar_connected_no_internet_4_sharp = IconData(
    0xecab,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">signal_wifi_statusbar_connected_no_internet_4</i> &#x2014; material icon named "signal wifi statusbar connected no internet 4" (round).
  static const IconData signal_wifi_statusbar_connected_no_internet_4_rounded = IconData(
    0xf018a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">signal_wifi_statusbar_connected_no_internet_4</i> &#x2014; material icon named "signal wifi statusbar connected no internet 4" (outlined).
  static const IconData signal_wifi_statusbar_connected_no_internet_4_outlined = IconData(
    0xf398,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">signal_wifi_statusbar_null</i> &#x2014; material icon named "signal wifi statusbar null".
  static const IconData signal_wifi_statusbar_null = IconData(0xe5b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">signal_wifi_statusbar_null</i> &#x2014; material icon named "signal wifi statusbar null" (sharp).
  static const IconData signal_wifi_statusbar_null_sharp = IconData(
    0xecac,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">signal_wifi_statusbar_null</i> &#x2014; material icon named "signal wifi statusbar null" (round).
  static const IconData signal_wifi_statusbar_null_rounded = IconData(
    0xf018b,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">signal_wifi_statusbar_null</i> &#x2014; material icon named "signal wifi statusbar null" (outlined).
  static const IconData signal_wifi_statusbar_null_outlined = IconData(
    0xf399,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">signpost</i> &#x2014; material icon named "signpost".
  static const IconData signpost = IconData(0xf0569, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">signpost</i> &#x2014; material icon named "signpost" (sharp).
  static const IconData signpost_sharp = IconData(0xf0472, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">signpost</i> &#x2014; material icon named "signpost" (round).
  static const IconData signpost_rounded = IconData(0xf037f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">signpost</i> &#x2014; material icon named "signpost" (outlined).
  static const IconData signpost_outlined = IconData(0xf0660, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sim_card</i> &#x2014; material icon named "sim card".
  static const IconData sim_card = IconData(0xe5b7, 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(0xecaf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sim_card</i> &#x2014; material icon named "sim card" (round).
  static const IconData sim_card_rounded = IconData(0xf018e, 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(0xf39c, 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(0xe5b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sim_card_alert</i> &#x2014; material icon named "sim card alert" (sharp).
  static const IconData sim_card_alert_sharp = IconData(0xecad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sim_card_alert</i> &#x2014; material icon named "sim card alert" (round).
  static const IconData sim_card_alert_rounded = IconData(0xf018c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sim_card_alert</i> &#x2014; material icon named "sim card alert" (outlined).
  static const IconData sim_card_alert_outlined = IconData(0xf39a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sim_card_download</i> &#x2014; material icon named "sim card download".
  static const IconData sim_card_download = IconData(0xe5b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sim_card_download</i> &#x2014; material icon named "sim card download" (sharp).
  static const IconData sim_card_download_sharp = IconData(0xecae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sim_card_download</i> &#x2014; material icon named "sim card download" (round).
  static const IconData sim_card_download_rounded = IconData(0xf018d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sim_card_download</i> &#x2014; material icon named "sim card download" (outlined).
  static const IconData sim_card_download_outlined = IconData(0xf39b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">single_bed</i> &#x2014; material icon named "single bed".
  static const IconData single_bed = IconData(0xe5ba, 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(0xecb0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">single_bed</i> &#x2014; material icon named "single bed" (round).
  static const IconData single_bed_rounded = IconData(0xf018f, 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(0xf39d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sip</i> &#x2014; material icon named "sip".
  static const IconData sip = IconData(0xe5bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sip</i> &#x2014; material icon named "sip" (sharp).
  static const IconData sip_sharp = IconData(0xecb1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sip</i> &#x2014; material icon named "sip" (round).
  static const IconData sip_rounded = IconData(0xf0190, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sip</i> &#x2014; material icon named "sip" (outlined).
  static const IconData sip_outlined = IconData(0xf39e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">skateboarding</i> &#x2014; material icon named "skateboarding".
  static const IconData skateboarding = IconData(0xe5bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">skateboarding</i> &#x2014; material icon named "skateboarding" (sharp).
  static const IconData skateboarding_sharp = IconData(0xecb2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">skateboarding</i> &#x2014; material icon named "skateboarding" (round).
  static const IconData skateboarding_rounded = IconData(0xf0191, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">skateboarding</i> &#x2014; material icon named "skateboarding" (outlined).
  static const IconData skateboarding_outlined = IconData(0xf39f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">skip_next</i> &#x2014; material icon named "skip next".
  static const IconData skip_next = IconData(0xe5bd, 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(0xecb3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">skip_next</i> &#x2014; material icon named "skip next" (round).
  static const IconData skip_next_rounded = IconData(0xf0192, 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(0xf3a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">skip_previous</i> &#x2014; material icon named "skip previous".
  static const IconData skip_previous = IconData(0xe5be, 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(0xecb4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">skip_previous</i> &#x2014; material icon named "skip previous" (round).
  static const IconData skip_previous_rounded = IconData(0xf0193, 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(0xf3a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sledding</i> &#x2014; material icon named "sledding".
  static const IconData sledding = IconData(0xe5bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sledding</i> &#x2014; material icon named "sledding" (sharp).
  static const IconData sledding_sharp = IconData(0xecb5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sledding</i> &#x2014; material icon named "sledding" (round).
  static const IconData sledding_rounded = IconData(0xf0194, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sledding</i> &#x2014; material icon named "sledding" (outlined).
  static const IconData sledding_outlined = IconData(0xf3a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">slideshow</i> &#x2014; material icon named "slideshow".
  static const IconData slideshow = IconData(0xe5c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">slideshow</i> &#x2014; material icon named "slideshow" (sharp).
  static const IconData slideshow_sharp = IconData(0xecb6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">slideshow</i> &#x2014; material icon named "slideshow" (round).
  static const IconData slideshow_rounded = IconData(0xf0195, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">slideshow</i> &#x2014; material icon named "slideshow" (outlined).
  static const IconData slideshow_outlined = IconData(0xf3a3, 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(0xe5c1, 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(0xecb7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">slow_motion_video</i> &#x2014; material icon named "slow motion video" (round).
  static const IconData slow_motion_video_rounded = IconData(0xf0196, 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(0xf3a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">smart_button</i> &#x2014; material icon named "smart button".
  static const IconData smart_button = IconData(0xe5c2, 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(0xecb8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">smart_button</i> &#x2014; material icon named "smart button" (round).
  static const IconData smart_button_rounded = IconData(0xf0197, 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(0xf3a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">smart_display</i> &#x2014; material icon named "smart display".
  static const IconData smart_display = IconData(0xe5c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">smart_display</i> &#x2014; material icon named "smart display" (sharp).
  static const IconData smart_display_sharp = IconData(0xecb9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">smart_display</i> &#x2014; material icon named "smart display" (round).
  static const IconData smart_display_rounded = IconData(0xf0198, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">smart_display</i> &#x2014; material icon named "smart display" (outlined).
  static const IconData smart_display_outlined = IconData(0xf3a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">smart_screen</i> &#x2014; material icon named "smart screen".
  static const IconData smart_screen = IconData(0xe5c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">smart_screen</i> &#x2014; material icon named "smart screen" (sharp).
  static const IconData smart_screen_sharp = IconData(0xecba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">smart_screen</i> &#x2014; material icon named "smart screen" (round).
  static const IconData smart_screen_rounded = IconData(0xf0199, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">smart_screen</i> &#x2014; material icon named "smart screen" (outlined).
  static const IconData smart_screen_outlined = IconData(0xf3a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">smart_toy</i> &#x2014; material icon named "smart toy".
  static const IconData smart_toy = IconData(0xe5c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">smart_toy</i> &#x2014; material icon named "smart toy" (sharp).
  static const IconData smart_toy_sharp = IconData(0xecbb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">smart_toy</i> &#x2014; material icon named "smart toy" (round).
  static const IconData smart_toy_rounded = IconData(0xf019a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">smart_toy</i> &#x2014; material icon named "smart toy" (outlined).
  static const IconData smart_toy_outlined = IconData(0xf3a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">smartphone</i> &#x2014; material icon named "smartphone".
  static const IconData smartphone = IconData(0xe5c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">smartphone</i> &#x2014; material icon named "smartphone" (sharp).
  static const IconData smartphone_sharp = IconData(0xecbc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">smartphone</i> &#x2014; material icon named "smartphone" (round).
  static const IconData smartphone_rounded = IconData(0xf019b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">smartphone</i> &#x2014; material icon named "smartphone" (outlined).
  static const IconData smartphone_outlined = IconData(0xf3a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">smoke_free</i> &#x2014; material icon named "smoke free".
  static const IconData smoke_free = IconData(0xe5c7, 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(0xecbd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">smoke_free</i> &#x2014; material icon named "smoke free" (round).
  static const IconData smoke_free_rounded = IconData(0xf019c, 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(0xf3aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">smoking_rooms</i> &#x2014; material icon named "smoking rooms".
  static const IconData smoking_rooms = IconData(0xe5c8, 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(0xecbe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">smoking_rooms</i> &#x2014; material icon named "smoking rooms" (round).
  static const IconData smoking_rooms_rounded = IconData(0xf019d, 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(0xf3ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sms</i> &#x2014; material icon named "sms".
  static const IconData sms = IconData(0xe5c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sms</i> &#x2014; material icon named "sms" (sharp).
  static const IconData sms_sharp = IconData(0xecc0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sms</i> &#x2014; material icon named "sms" (round).
  static const IconData sms_rounded = IconData(0xf019f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sms</i> &#x2014; material icon named "sms" (outlined).
  static const IconData sms_outlined = IconData(0xf3ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sms_failed</i> &#x2014; material icon named "sms failed".
  static const IconData sms_failed = IconData(0xe5ca, 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(0xecbf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sms_failed</i> &#x2014; material icon named "sms failed" (round).
  static const IconData sms_failed_rounded = IconData(0xf019e, 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(0xf3ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">snapchat</i> &#x2014; material icon named "snapchat".
  static const IconData snapchat = IconData(0xf056a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">snapchat</i> &#x2014; material icon named "snapchat" (sharp).
  static const IconData snapchat_sharp = IconData(0xf0473, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">snapchat</i> &#x2014; material icon named "snapchat" (round).
  static const IconData snapchat_rounded = IconData(0xf0380, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">snapchat</i> &#x2014; material icon named "snapchat" (outlined).
  static const IconData snapchat_outlined = IconData(0xf0661, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">snippet_folder</i> &#x2014; material icon named "snippet folder".
  static const IconData snippet_folder = IconData(0xe5cb, 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(0xecc1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">snippet_folder</i> &#x2014; material icon named "snippet folder" (round).
  static const IconData snippet_folder_rounded = IconData(0xf01a0, 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(0xf3ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">snooze</i> &#x2014; material icon named "snooze".
  static const IconData snooze = IconData(0xe5cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">snooze</i> &#x2014; material icon named "snooze" (sharp).
  static const IconData snooze_sharp = IconData(0xecc2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">snooze</i> &#x2014; material icon named "snooze" (round).
  static const IconData snooze_rounded = IconData(0xf01a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">snooze</i> &#x2014; material icon named "snooze" (outlined).
  static const IconData snooze_outlined = IconData(0xf3af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">snowboarding</i> &#x2014; material icon named "snowboarding".
  static const IconData snowboarding = IconData(0xe5cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">snowboarding</i> &#x2014; material icon named "snowboarding" (sharp).
  static const IconData snowboarding_sharp = IconData(0xecc3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">snowboarding</i> &#x2014; material icon named "snowboarding" (round).
  static const IconData snowboarding_rounded = IconData(0xf01a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">snowboarding</i> &#x2014; material icon named "snowboarding" (outlined).
  static const IconData snowboarding_outlined = IconData(0xf3b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">snowing</i> &#x2014; material icon named "snowing".
  static const IconData snowing = IconData(0xf056b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">snowmobile</i> &#x2014; material icon named "snowmobile".
  static const IconData snowmobile = IconData(0xe5ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">snowmobile</i> &#x2014; material icon named "snowmobile" (sharp).
  static const IconData snowmobile_sharp = IconData(0xecc4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">snowmobile</i> &#x2014; material icon named "snowmobile" (round).
  static const IconData snowmobile_rounded = IconData(0xf01a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">snowmobile</i> &#x2014; material icon named "snowmobile" (outlined).
  static const IconData snowmobile_outlined = IconData(0xf3b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">snowshoeing</i> &#x2014; material icon named "snowshoeing".
  static const IconData snowshoeing = IconData(0xe5cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">snowshoeing</i> &#x2014; material icon named "snowshoeing" (sharp).
  static const IconData snowshoeing_sharp = IconData(0xecc5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">snowshoeing</i> &#x2014; material icon named "snowshoeing" (round).
  static const IconData snowshoeing_rounded = IconData(0xf01a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">snowshoeing</i> &#x2014; material icon named "snowshoeing" (outlined).
  static const IconData snowshoeing_outlined = IconData(0xf3b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">soap</i> &#x2014; material icon named "soap".
  static const IconData soap = IconData(0xe5d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">soap</i> &#x2014; material icon named "soap" (sharp).
  static const IconData soap_sharp = IconData(0xecc6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">soap</i> &#x2014; material icon named "soap" (round).
  static const IconData soap_rounded = IconData(0xf01a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">soap</i> &#x2014; material icon named "soap" (outlined).
  static const IconData soap_outlined = IconData(0xf3b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">social_distance</i> &#x2014; material icon named "social distance".
  static const IconData social_distance = IconData(0xe5d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">social_distance</i> &#x2014; material icon named "social distance" (sharp).
  static const IconData social_distance_sharp = IconData(0xecc7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">social_distance</i> &#x2014; material icon named "social distance" (round).
  static const IconData social_distance_rounded = IconData(0xf01a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">social_distance</i> &#x2014; material icon named "social distance" (outlined).
  static const IconData social_distance_outlined = IconData(0xf3b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">solar_power</i> &#x2014; material icon named "solar power".
  static const IconData solar_power = IconData(0xf07c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">solar_power</i> &#x2014; material icon named "solar power" (sharp).
  static const IconData solar_power_sharp = IconData(0xf076e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">solar_power</i> &#x2014; material icon named "solar power" (round).
  static const IconData solar_power_rounded = IconData(0xf081e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">solar_power</i> &#x2014; material icon named "solar power" (outlined).
  static const IconData solar_power_outlined = IconData(0xf0716, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sort</i> &#x2014; material icon named "sort".
  static const IconData sort = IconData(
    0xe5d2,
    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(
    0xecc9,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">sort</i> &#x2014; material icon named "sort" (round).
  static const IconData sort_rounded = IconData(
    0xf01a8,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-outlined md-36">sort</i> &#x2014; material icon named "sort" (outlined).
  static const IconData sort_outlined = IconData(
    0xf3b6,
    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(0xe5d3, 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(0xecc8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sort_by_alpha</i> &#x2014; material icon named "sort by alpha" (round).
  static const IconData sort_by_alpha_rounded = IconData(0xf01a7, 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(0xf3b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sos</i> &#x2014; material icon named "sos".
  static const IconData sos = IconData(0xf07c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sos</i> &#x2014; material icon named "sos" (sharp).
  static const IconData sos_sharp = IconData(0xf076f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sos</i> &#x2014; material icon named "sos" (round).
  static const IconData sos_rounded = IconData(0xf081f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sos</i> &#x2014; material icon named "sos" (outlined).
  static const IconData sos_outlined = IconData(0xf0717, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">soup_kitchen</i> &#x2014; material icon named "soup kitchen".
  static const IconData soup_kitchen = IconData(0xf056c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">soup_kitchen</i> &#x2014; material icon named "soup kitchen" (sharp).
  static const IconData soup_kitchen_sharp = IconData(0xf0474, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">soup_kitchen</i> &#x2014; material icon named "soup kitchen" (round).
  static const IconData soup_kitchen_rounded = IconData(0xf0381, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">soup_kitchen</i> &#x2014; material icon named "soup kitchen" (outlined).
  static const IconData soup_kitchen_outlined = IconData(0xf0662, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">source</i> &#x2014; material icon named "source".
  static const IconData source = IconData(0xe5d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">source</i> &#x2014; material icon named "source" (sharp).
  static const IconData source_sharp = IconData(0xecca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">source</i> &#x2014; material icon named "source" (round).
  static const IconData source_rounded = IconData(0xf01a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">source</i> &#x2014; material icon named "source" (outlined).
  static const IconData source_outlined = IconData(0xf3b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">south</i> &#x2014; material icon named "south".
  static const IconData south = IconData(0xe5d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">south</i> &#x2014; material icon named "south" (sharp).
  static const IconData south_sharp = IconData(0xeccc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">south</i> &#x2014; material icon named "south" (round).
  static const IconData south_rounded = IconData(0xf01ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">south</i> &#x2014; material icon named "south" (outlined).
  static const IconData south_outlined = IconData(0xf3b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">south_america</i> &#x2014; material icon named "south america".
  static const IconData south_america = IconData(0xf056d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">south_america</i> &#x2014; material icon named "south america" (sharp).
  static const IconData south_america_sharp = IconData(0xf0475, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">south_america</i> &#x2014; material icon named "south america" (round).
  static const IconData south_america_rounded = IconData(0xf0382, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">south_america</i> &#x2014; material icon named "south america" (outlined).
  static const IconData south_america_outlined = IconData(0xf0663, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">south_east</i> &#x2014; material icon named "south east".
  static const IconData south_east = IconData(0xe5d6, 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(0xeccb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">south_east</i> &#x2014; material icon named "south east" (round).
  static const IconData south_east_rounded = IconData(0xf01aa, 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(0xf3b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">south_west</i> &#x2014; material icon named "south west".
  static const IconData south_west = IconData(0xe5d7, 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(0xeccd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">south_west</i> &#x2014; material icon named "south west" (round).
  static const IconData south_west_rounded = IconData(0xf01ac, 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(0xf3ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">spa</i> &#x2014; material icon named "spa".
  static const IconData spa = IconData(0xe5d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">spa</i> &#x2014; material icon named "spa" (sharp).
  static const IconData spa_sharp = IconData(0xecce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">spa</i> &#x2014; material icon named "spa" (round).
  static const IconData spa_rounded = IconData(0xf01ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">spa</i> &#x2014; material icon named "spa" (outlined).
  static const IconData spa_outlined = IconData(0xf3bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">space_bar</i> &#x2014; material icon named "space bar".
  static const IconData space_bar = IconData(0xe5d9, 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(0xeccf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">space_bar</i> &#x2014; material icon named "space bar" (round).
  static const IconData space_bar_rounded = IconData(0xf01ae, 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(0xf3bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">space_dashboard</i> &#x2014; material icon named "space dashboard".
  static const IconData space_dashboard = IconData(0xe5da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">space_dashboard</i> &#x2014; material icon named "space dashboard" (sharp).
  static const IconData space_dashboard_sharp = IconData(0xecd0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">space_dashboard</i> &#x2014; material icon named "space dashboard" (round).
  static const IconData space_dashboard_rounded = IconData(0xf01af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">space_dashboard</i> &#x2014; material icon named "space dashboard" (outlined).
  static const IconData space_dashboard_outlined = IconData(0xf3bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">spatial_audio</i> &#x2014; material icon named "spatial audio".
  static const IconData spatial_audio = IconData(0xf07c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">spatial_audio</i> &#x2014; material icon named "spatial audio" (sharp).
  static const IconData spatial_audio_sharp = IconData(0xf0771, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">spatial_audio</i> &#x2014; material icon named "spatial audio" (round).
  static const IconData spatial_audio_rounded = IconData(0xf0821, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">spatial_audio</i> &#x2014; material icon named "spatial audio" (outlined).
  static const IconData spatial_audio_outlined = IconData(0xf0719, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">spatial_audio_off</i> &#x2014; material icon named "spatial audio off".
  static const IconData spatial_audio_off = IconData(0xf07c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">spatial_audio_off</i> &#x2014; material icon named "spatial audio off" (sharp).
  static const IconData spatial_audio_off_sharp = IconData(0xf0770, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">spatial_audio_off</i> &#x2014; material icon named "spatial audio off" (round).
  static const IconData spatial_audio_off_rounded = IconData(0xf0820, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">spatial_audio_off</i> &#x2014; material icon named "spatial audio off" (outlined).
  static const IconData spatial_audio_off_outlined = IconData(0xf0718, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">spatial_tracking</i> &#x2014; material icon named "spatial tracking".
  static const IconData spatial_tracking = IconData(0xf07ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">spatial_tracking</i> &#x2014; material icon named "spatial tracking" (sharp).
  static const IconData spatial_tracking_sharp = IconData(0xf0772, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">spatial_tracking</i> &#x2014; material icon named "spatial tracking" (round).
  static const IconData spatial_tracking_rounded = IconData(0xf0822, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">spatial_tracking</i> &#x2014; material icon named "spatial tracking" (outlined).
  static const IconData spatial_tracking_outlined = IconData(0xf071a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">speaker</i> &#x2014; material icon named "speaker".
  static const IconData speaker = IconData(0xe5db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">speaker</i> &#x2014; material icon named "speaker" (sharp).
  static const IconData speaker_sharp = IconData(0xecd5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">speaker</i> &#x2014; material icon named "speaker" (round).
  static const IconData speaker_rounded = IconData(0xf01b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">speaker</i> &#x2014; material icon named "speaker" (outlined).
  static const IconData speaker_outlined = IconData(0xf3c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">speaker_group</i> &#x2014; material icon named "speaker group".
  static const IconData speaker_group = IconData(0xe5dc, 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(0xecd1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">speaker_group</i> &#x2014; material icon named "speaker group" (round).
  static const IconData speaker_group_rounded = IconData(0xf01b0, 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(0xf3be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">speaker_notes</i> &#x2014; material icon named "speaker notes".
  static const IconData speaker_notes = IconData(0xe5dd, 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(0xecd3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">speaker_notes</i> &#x2014; material icon named "speaker notes" (round).
  static const IconData speaker_notes_rounded = IconData(0xf01b2, 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(0xf3c0, 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(0xe5de, 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(0xecd2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">speaker_notes_off</i> &#x2014; material icon named "speaker notes off" (round).
  static const IconData speaker_notes_off_rounded = IconData(0xf01b1, 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(0xf3bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">speaker_phone</i> &#x2014; material icon named "speaker phone".
  static const IconData speaker_phone = IconData(0xe5df, 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(0xecd4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">speaker_phone</i> &#x2014; material icon named "speaker phone" (round).
  static const IconData speaker_phone_rounded = IconData(0xf01b3, 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(0xf3c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">speed</i> &#x2014; material icon named "speed".
  static const IconData speed = IconData(0xe5e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">speed</i> &#x2014; material icon named "speed" (sharp).
  static const IconData speed_sharp = IconData(0xecd6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">speed</i> &#x2014; material icon named "speed" (round).
  static const IconData speed_rounded = IconData(0xf01b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">speed</i> &#x2014; material icon named "speed" (outlined).
  static const IconData speed_outlined = IconData(0xf3c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">spellcheck</i> &#x2014; material icon named "spellcheck".
  static const IconData spellcheck = IconData(0xe5e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">spellcheck</i> &#x2014; material icon named "spellcheck" (sharp).
  static const IconData spellcheck_sharp = IconData(0xecd7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">spellcheck</i> &#x2014; material icon named "spellcheck" (round).
  static const IconData spellcheck_rounded = IconData(0xf01b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">spellcheck</i> &#x2014; material icon named "spellcheck" (outlined).
  static const IconData spellcheck_outlined = IconData(0xf3c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">splitscreen</i> &#x2014; material icon named "splitscreen".
  static const IconData splitscreen = IconData(0xe5e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">splitscreen</i> &#x2014; material icon named "splitscreen" (sharp).
  static const IconData splitscreen_sharp = IconData(0xecd8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">splitscreen</i> &#x2014; material icon named "splitscreen" (round).
  static const IconData splitscreen_rounded = IconData(0xf01b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">splitscreen</i> &#x2014; material icon named "splitscreen" (outlined).
  static const IconData splitscreen_outlined = IconData(0xf3c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">spoke</i> &#x2014; material icon named "spoke".
  static const IconData spoke = IconData(0xf056e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">spoke</i> &#x2014; material icon named "spoke" (sharp).
  static const IconData spoke_sharp = IconData(0xf0476, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">spoke</i> &#x2014; material icon named "spoke" (round).
  static const IconData spoke_rounded = IconData(0xf0383, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">spoke</i> &#x2014; material icon named "spoke" (outlined).
  static const IconData spoke_outlined = IconData(0xf0664, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports</i> &#x2014; material icon named "sports".
  static const IconData sports = IconData(0xe5e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports</i> &#x2014; material icon named "sports" (sharp).
  static const IconData sports_sharp = IconData(0xece7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports</i> &#x2014; material icon named "sports" (round).
  static const IconData sports_rounded = IconData(0xf01c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports</i> &#x2014; material icon named "sports" (outlined).
  static const IconData sports_outlined = IconData(0xf3d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_bar</i> &#x2014; material icon named "sports bar".
  static const IconData sports_bar = IconData(0xe5e4, 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(0xecd9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_bar</i> &#x2014; material icon named "sports bar" (round).
  static const IconData sports_bar_rounded = IconData(0xf01b8, 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(0xf3c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_baseball</i> &#x2014; material icon named "sports baseball".
  static const IconData sports_baseball = IconData(0xe5e5, 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(0xecda, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_baseball</i> &#x2014; material icon named "sports baseball" (round).
  static const IconData sports_baseball_rounded = IconData(0xf01b9, 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(0xf3c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_basketball</i> &#x2014; material icon named "sports basketball".
  static const IconData sports_basketball = IconData(0xe5e6, 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(0xecdb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_basketball</i> &#x2014; material icon named "sports basketball" (round).
  static const IconData sports_basketball_rounded = IconData(0xf01ba, 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(0xf3c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_cricket</i> &#x2014; material icon named "sports cricket".
  static const IconData sports_cricket = IconData(0xe5e7, 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(0xecdc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_cricket</i> &#x2014; material icon named "sports cricket" (round).
  static const IconData sports_cricket_rounded = IconData(0xf01bb, 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(0xf3c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_esports</i> &#x2014; material icon named "sports esports".
  static const IconData sports_esports = IconData(0xe5e8, 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(0xecdd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_esports</i> &#x2014; material icon named "sports esports" (round).
  static const IconData sports_esports_rounded = IconData(0xf01bc, 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(0xf3ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_football</i> &#x2014; material icon named "sports football".
  static const IconData sports_football = IconData(0xe5e9, 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(0xecde, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_football</i> &#x2014; material icon named "sports football" (round).
  static const IconData sports_football_rounded = IconData(0xf01bd, 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(0xf3cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_golf</i> &#x2014; material icon named "sports golf".
  static const IconData sports_golf = IconData(0xe5ea, 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(0xecdf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_golf</i> &#x2014; material icon named "sports golf" (round).
  static const IconData sports_golf_rounded = IconData(0xf01be, 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(0xf3cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_gymnastics</i> &#x2014; material icon named "sports gymnastics".
  static const IconData sports_gymnastics = IconData(0xf06c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_gymnastics</i> &#x2014; material icon named "sports gymnastics" (sharp).
  static const IconData sports_gymnastics_sharp = IconData(0xf06b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_gymnastics</i> &#x2014; material icon named "sports gymnastics" (round).
  static const IconData sports_gymnastics_rounded = IconData(0xf06d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports_gymnastics</i> &#x2014; material icon named "sports gymnastics" (outlined).
  static const IconData sports_gymnastics_outlined = IconData(0xf06a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_handball</i> &#x2014; material icon named "sports handball".
  static const IconData sports_handball = IconData(0xe5eb, 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(0xece0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_handball</i> &#x2014; material icon named "sports handball" (round).
  static const IconData sports_handball_rounded = IconData(0xf01bf, 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(0xf3cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_hockey</i> &#x2014; material icon named "sports hockey".
  static const IconData sports_hockey = IconData(0xe5ec, 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(0xece1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_hockey</i> &#x2014; material icon named "sports hockey" (round).
  static const IconData sports_hockey_rounded = IconData(0xf01c0, 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(0xf3ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_kabaddi</i> &#x2014; material icon named "sports kabaddi".
  static const IconData sports_kabaddi = IconData(0xe5ed, 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(0xece2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_kabaddi</i> &#x2014; material icon named "sports kabaddi" (round).
  static const IconData sports_kabaddi_rounded = IconData(0xf01c1, 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(0xf3cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_martial_arts</i> &#x2014; material icon named "sports martial arts".
  static const IconData sports_martial_arts = IconData(0xf056f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_martial_arts</i> &#x2014; material icon named "sports martial arts" (sharp).
  static const IconData sports_martial_arts_sharp = IconData(0xf0477, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_martial_arts</i> &#x2014; material icon named "sports martial arts" (round).
  static const IconData sports_martial_arts_rounded = IconData(
    0xf0384,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">sports_martial_arts</i> &#x2014; material icon named "sports martial arts" (outlined).
  static const IconData sports_martial_arts_outlined = IconData(
    0xf0665,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">sports_mma</i> &#x2014; material icon named "sports mma".
  static const IconData sports_mma = IconData(0xe5ee, 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(0xece3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_mma</i> &#x2014; material icon named "sports mma" (round).
  static const IconData sports_mma_rounded = IconData(0xf01c2, 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(0xf3d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_motorsports</i> &#x2014; material icon named "sports motorsports".
  static const IconData sports_motorsports = IconData(0xe5ef, 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(0xece4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_motorsports</i> &#x2014; material icon named "sports motorsports" (round).
  static const IconData sports_motorsports_rounded = IconData(0xf01c3, 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(0xf3d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_rugby</i> &#x2014; material icon named "sports rugby".
  static const IconData sports_rugby = IconData(0xe5f0, 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(0xece5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_rugby</i> &#x2014; material icon named "sports rugby" (round).
  static const IconData sports_rugby_rounded = IconData(0xf01c5, 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(0xf3d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_score</i> &#x2014; material icon named "sports score".
  static const IconData sports_score = IconData(0xe5f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sports_score</i> &#x2014; material icon named "sports score" (sharp).
  static const IconData sports_score_sharp = IconData(0xece6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_score</i> &#x2014; material icon named "sports score" (round).
  static const IconData sports_score_rounded = IconData(0xf01c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sports_score</i> &#x2014; material icon named "sports score" (outlined).
  static const IconData sports_score_outlined = IconData(0xf3d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_soccer</i> &#x2014; material icon named "sports soccer".
  static const IconData sports_soccer = IconData(0xe5f2, 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(0xece8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_soccer</i> &#x2014; material icon named "sports soccer" (round).
  static const IconData sports_soccer_rounded = IconData(0xf01c7, 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(0xf3d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_tennis</i> &#x2014; material icon named "sports tennis".
  static const IconData sports_tennis = IconData(0xe5f3, 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(0xece9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_tennis</i> &#x2014; material icon named "sports tennis" (round).
  static const IconData sports_tennis_rounded = IconData(0xf01c8, 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(0xf3d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sports_volleyball</i> &#x2014; material icon named "sports volleyball".
  static const IconData sports_volleyball = IconData(0xe5f4, 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(0xecea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sports_volleyball</i> &#x2014; material icon named "sports volleyball" (round).
  static const IconData sports_volleyball_rounded = IconData(0xf01c9, 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(0xf3d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">square</i> &#x2014; material icon named "square".
  static const IconData square = IconData(0xf0570, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">square</i> &#x2014; material icon named "square" (sharp).
  static const IconData square_sharp = IconData(0xf0478, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">square</i> &#x2014; material icon named "square" (round).
  static const IconData square_rounded = IconData(0xf0385, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">square</i> &#x2014; material icon named "square" (outlined).
  static const IconData square_outlined = IconData(0xf0666, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">square_foot</i> &#x2014; material icon named "square foot".
  static const IconData square_foot = IconData(0xe5f5, 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(0xeceb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">square_foot</i> &#x2014; material icon named "square foot" (round).
  static const IconData square_foot_rounded = IconData(0xf01ca, 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(0xf3d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">ssid_chart</i> &#x2014; material icon named "ssid chart".
  static const IconData ssid_chart = IconData(0xf0571, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">ssid_chart</i> &#x2014; material icon named "ssid chart" (sharp).
  static const IconData ssid_chart_sharp = IconData(0xf0479, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">ssid_chart</i> &#x2014; material icon named "ssid chart" (round).
  static const IconData ssid_chart_rounded = IconData(0xf0386, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">ssid_chart</i> &#x2014; material icon named "ssid chart" (outlined).
  static const IconData ssid_chart_outlined = IconData(0xf0667, 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(0xe5f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">stacked_bar_chart</i> &#x2014; material icon named "stacked bar chart" (sharp).
  static const IconData stacked_bar_chart_sharp = IconData(0xecec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stacked_bar_chart</i> &#x2014; material icon named "stacked bar chart" (round).
  static const IconData stacked_bar_chart_rounded = IconData(0xf01cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">stacked_bar_chart</i> &#x2014; material icon named "stacked bar chart" (outlined).
  static const IconData stacked_bar_chart_outlined = IconData(0xf3d9, 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(0xe5f7, 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(0xeced, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stacked_line_chart</i> &#x2014; material icon named "stacked line chart" (round).
  static const IconData stacked_line_chart_rounded = IconData(0xf01cc, 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(0xf3da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stadium</i> &#x2014; material icon named "stadium".
  static const IconData stadium = IconData(0xf0572, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">stadium</i> &#x2014; material icon named "stadium" (sharp).
  static const IconData stadium_sharp = IconData(0xf047a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stadium</i> &#x2014; material icon named "stadium" (round).
  static const IconData stadium_rounded = IconData(0xf0387, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">stadium</i> &#x2014; material icon named "stadium" (outlined).
  static const IconData stadium_outlined = IconData(0xf0668, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stairs</i> &#x2014; material icon named "stairs".
  static const IconData stairs = IconData(0xe5f8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">stairs</i> &#x2014; material icon named "stairs" (sharp).
  static const IconData stairs_sharp = IconData(0xecee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stairs</i> &#x2014; material icon named "stairs" (round).
  static const IconData stairs_rounded = IconData(0xf01cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">stairs</i> &#x2014; material icon named "stairs" (outlined).
  static const IconData stairs_outlined = IconData(0xf3db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">star</i> &#x2014; material icon named "star".
  static const IconData star = IconData(0xe5f9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">star</i> &#x2014; material icon named "star" (sharp).
  static const IconData star_sharp = IconData(0xecf5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">star</i> &#x2014; material icon named "star" (round).
  static const IconData star_rounded = IconData(0xf01d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">star</i> &#x2014; material icon named "star" (outlined).
  static const IconData star_outlined = IconData(0xf3e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">star_border</i> &#x2014; material icon named "star border".
  static const IconData star_border = IconData(0xe5fa, 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(0xecf0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">star_border</i> &#x2014; material icon named "star border" (round).
  static const IconData star_border_rounded = IconData(0xf01cf, 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(0xf3dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">star_border_purple500</i> &#x2014; material icon named "star border purple500".
  static const IconData star_border_purple500 = IconData(0xe5fb, 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(0xecef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">star_border_purple500</i> &#x2014; material icon named "star border purple500" (round).
  static const IconData star_border_purple500_rounded = IconData(
    0xf01ce,
    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(
    0xf3dd,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">star_half</i> &#x2014; material icon named "star half".
  static const IconData star_half = IconData(
    0xe5fc,
    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(
    0xecf1,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">star_half</i> &#x2014; material icon named "star half" (round).
  static const IconData star_half_rounded = IconData(
    0xf01d0,
    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(
    0xf3de,
    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(0xe5fd, 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(0xecf2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">star_outline</i> &#x2014; material icon named "star outline" (round).
  static const IconData star_outline_rounded = IconData(0xf01d1, 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(0xf3df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">star_purple500</i> &#x2014; material icon named "star purple500".
  static const IconData star_purple500 = IconData(0xe5fe, 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(0xecf3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">star_purple500</i> &#x2014; material icon named "star purple500" (round).
  static const IconData star_purple500_rounded = IconData(0xf01d2, 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(0xf3e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">star_rate</i> &#x2014; material icon named "star rate".
  static const IconData star_rate = IconData(0xe5ff, 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(0xecf4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">star_rate</i> &#x2014; material icon named "star rate" (round).
  static const IconData star_rate_rounded = IconData(0xf01d3, 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(0xf3e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stars</i> &#x2014; material icon named "stars".
  static const IconData stars = IconData(0xe600, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">stars</i> &#x2014; material icon named "stars" (sharp).
  static const IconData stars_sharp = IconData(0xecf6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stars</i> &#x2014; material icon named "stars" (round).
  static const IconData stars_rounded = IconData(0xf01d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">stars</i> &#x2014; material icon named "stars" (outlined).
  static const IconData stars_outlined = IconData(0xf3e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">start</i> &#x2014; material icon named "start".
  static const IconData start = IconData(0xf0573, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">start</i> &#x2014; material icon named "start" (sharp).
  static const IconData start_sharp = IconData(0xf047b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">start</i> &#x2014; material icon named "start" (round).
  static const IconData start_rounded = IconData(0xf0388, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">start</i> &#x2014; material icon named "start" (outlined).
  static const IconData start_outlined = IconData(0xf0669, 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(0xe601, 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(
    0xecf7,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">stay_current_landscape</i> &#x2014; material icon named "stay current landscape" (round).
  static const IconData stay_current_landscape_rounded = IconData(
    0xf01d6,
    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(
    0xf3e4,
    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(0xe602, 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(0xecf8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stay_current_portrait</i> &#x2014; material icon named "stay current portrait" (round).
  static const IconData stay_current_portrait_rounded = IconData(
    0xf01d7,
    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(
    0xf3e5,
    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(0xe603, 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(
    0xecf9,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">stay_primary_landscape</i> &#x2014; material icon named "stay primary landscape" (round).
  static const IconData stay_primary_landscape_rounded = IconData(
    0xf01d8,
    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(
    0xf3e6,
    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(0xe604, 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(0xecfa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stay_primary_portrait</i> &#x2014; material icon named "stay primary portrait" (round).
  static const IconData stay_primary_portrait_rounded = IconData(
    0xf01d9,
    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(
    0xf3e7,
    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(0xe605, 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(0xecfb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sticky_note_2</i> &#x2014; material icon named "sticky note 2" (round).
  static const IconData sticky_note_2_rounded = IconData(0xf01da, 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(0xf3e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stop</i> &#x2014; material icon named "stop".
  static const IconData stop = IconData(0xe606, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">stop</i> &#x2014; material icon named "stop" (sharp).
  static const IconData stop_sharp = IconData(0xecfe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stop</i> &#x2014; material icon named "stop" (round).
  static const IconData stop_rounded = IconData(0xf01dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">stop</i> &#x2014; material icon named "stop" (outlined).
  static const IconData stop_outlined = IconData(0xf3ea, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stop_circle</i> &#x2014; material icon named "stop circle".
  static const IconData stop_circle = IconData(0xe607, 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(0xecfc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stop_circle</i> &#x2014; material icon named "stop circle" (round).
  static const IconData stop_circle_rounded = IconData(0xf01db, 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(0xf3e9, 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(0xe608, 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(0xecfd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stop_screen_share</i> &#x2014; material icon named "stop screen share" (round).
  static const IconData stop_screen_share_rounded = IconData(0xf01dd, 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(0xf3eb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">storage</i> &#x2014; material icon named "storage".
  static const IconData storage = IconData(0xe609, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">storage</i> &#x2014; material icon named "storage" (sharp).
  static const IconData storage_sharp = IconData(0xecff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">storage</i> &#x2014; material icon named "storage" (round).
  static const IconData storage_rounded = IconData(0xf01de, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">storage</i> &#x2014; material icon named "storage" (outlined).
  static const IconData storage_outlined = IconData(0xf3ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">store</i> &#x2014; material icon named "store".
  static const IconData store = IconData(0xe60a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">store</i> &#x2014; material icon named "store" (sharp).
  static const IconData store_sharp = IconData(0xed01, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">store</i> &#x2014; material icon named "store" (round).
  static const IconData store_rounded = IconData(0xf01e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">store</i> &#x2014; material icon named "store" (outlined).
  static const IconData store_outlined = IconData(0xf3ee, 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(0xe60b, 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(0xed00, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">store_mall_directory</i> &#x2014; material icon named "store mall directory" (round).
  static const IconData store_mall_directory_rounded = IconData(
    0xf01df,
    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(
    0xf3ed,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">storefront</i> &#x2014; material icon named "storefront".
  static const IconData storefront = IconData(0xe60c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">storefront</i> &#x2014; material icon named "storefront" (sharp).
  static const IconData storefront_sharp = IconData(0xed02, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">storefront</i> &#x2014; material icon named "storefront" (round).
  static const IconData storefront_rounded = IconData(0xf01e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">storefront</i> &#x2014; material icon named "storefront" (outlined).
  static const IconData storefront_outlined = IconData(0xf3ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">storm</i> &#x2014; material icon named "storm".
  static const IconData storm = IconData(0xe60d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">storm</i> &#x2014; material icon named "storm" (sharp).
  static const IconData storm_sharp = IconData(0xed03, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">storm</i> &#x2014; material icon named "storm" (round).
  static const IconData storm_rounded = IconData(0xf01e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">storm</i> &#x2014; material icon named "storm" (outlined).
  static const IconData storm_outlined = IconData(0xf3f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">straight</i> &#x2014; material icon named "straight".
  static const IconData straight = IconData(0xf0574, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">straight</i> &#x2014; material icon named "straight" (sharp).
  static const IconData straight_sharp = IconData(0xf047c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">straight</i> &#x2014; material icon named "straight" (round).
  static const IconData straight_rounded = IconData(0xf0389, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">straight</i> &#x2014; material icon named "straight" (outlined).
  static const IconData straight_outlined = IconData(0xf066a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">straighten</i> &#x2014; material icon named "straighten".
  static const IconData straighten = IconData(0xe60e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">straighten</i> &#x2014; material icon named "straighten" (sharp).
  static const IconData straighten_sharp = IconData(0xed04, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">straighten</i> &#x2014; material icon named "straighten" (round).
  static const IconData straighten_rounded = IconData(0xf01e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">straighten</i> &#x2014; material icon named "straighten" (outlined).
  static const IconData straighten_outlined = IconData(0xf3f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stream</i> &#x2014; material icon named "stream".
  static const IconData stream = IconData(0xe60f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">stream</i> &#x2014; material icon named "stream" (sharp).
  static const IconData stream_sharp = IconData(0xed05, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stream</i> &#x2014; material icon named "stream" (round).
  static const IconData stream_rounded = IconData(0xf01e4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">stream</i> &#x2014; material icon named "stream" (outlined).
  static const IconData stream_outlined = IconData(0xf3f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">streetview</i> &#x2014; material icon named "streetview".
  static const IconData streetview = IconData(0xe610, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">streetview</i> &#x2014; material icon named "streetview" (sharp).
  static const IconData streetview_sharp = IconData(0xed06, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">streetview</i> &#x2014; material icon named "streetview" (round).
  static const IconData streetview_rounded = IconData(0xf01e5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">streetview</i> &#x2014; material icon named "streetview" (outlined).
  static const IconData streetview_outlined = IconData(0xf3f3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">strikethrough_s</i> &#x2014; material icon named "strikethrough s".
  static const IconData strikethrough_s = IconData(0xe611, 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(0xed07, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">strikethrough_s</i> &#x2014; material icon named "strikethrough s" (round).
  static const IconData strikethrough_s_rounded = IconData(0xf01e6, 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(0xf3f4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">stroller</i> &#x2014; material icon named "stroller".
  static const IconData stroller = IconData(0xe612, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">stroller</i> &#x2014; material icon named "stroller" (sharp).
  static const IconData stroller_sharp = IconData(0xed08, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">stroller</i> &#x2014; material icon named "stroller" (round).
  static const IconData stroller_rounded = IconData(0xf01e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">stroller</i> &#x2014; material icon named "stroller" (outlined).
  static const IconData stroller_outlined = IconData(0xf3f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">style</i> &#x2014; material icon named "style".
  static const IconData style = IconData(0xe613, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">style</i> &#x2014; material icon named "style" (sharp).
  static const IconData style_sharp = IconData(0xed09, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">style</i> &#x2014; material icon named "style" (round).
  static const IconData style_rounded = IconData(0xf01e8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">style</i> &#x2014; material icon named "style" (outlined).
  static const IconData style_outlined = IconData(0xf3f6, 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(0xe614, 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(
    0xed0a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">subdirectory_arrow_left</i> &#x2014; material icon named "subdirectory arrow left" (round).
  static const IconData subdirectory_arrow_left_rounded = IconData(
    0xf01e9,
    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(
    0xf3f7,
    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(0xe615, 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(
    0xed0b,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">subdirectory_arrow_right</i> &#x2014; material icon named "subdirectory arrow right" (round).
  static const IconData subdirectory_arrow_right_rounded = IconData(
    0xf01ea,
    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(
    0xf3f8,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">subject</i> &#x2014; material icon named "subject".
  static const IconData subject = IconData(
    0xe616,
    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(
    0xed0c,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">subject</i> &#x2014; material icon named "subject" (round).
  static const IconData subject_rounded = IconData(
    0xf01eb,
    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(
    0xf3f9,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">subscript</i> &#x2014; material icon named "subscript".
  static const IconData subscript = IconData(0xe617, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">subscript</i> &#x2014; material icon named "subscript" (sharp).
  static const IconData subscript_sharp = IconData(0xed0d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">subscript</i> &#x2014; material icon named "subscript" (round).
  static const IconData subscript_rounded = IconData(0xf01ec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">subscript</i> &#x2014; material icon named "subscript" (outlined).
  static const IconData subscript_outlined = IconData(0xf3fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">subscriptions</i> &#x2014; material icon named "subscriptions".
  static const IconData subscriptions = IconData(0xe618, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">subscriptions</i> &#x2014; material icon named "subscriptions" (sharp).
  static const IconData subscriptions_sharp = IconData(0xed0e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">subscriptions</i> &#x2014; material icon named "subscriptions" (round).
  static const IconData subscriptions_rounded = IconData(0xf01ed, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">subscriptions</i> &#x2014; material icon named "subscriptions" (outlined).
  static const IconData subscriptions_outlined = IconData(0xf3fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">subtitles</i> &#x2014; material icon named "subtitles".
  static const IconData subtitles = IconData(0xe619, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">subtitles</i> &#x2014; material icon named "subtitles" (sharp).
  static const IconData subtitles_sharp = IconData(0xed10, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">subtitles</i> &#x2014; material icon named "subtitles" (round).
  static const IconData subtitles_rounded = IconData(0xf01ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">subtitles</i> &#x2014; material icon named "subtitles" (outlined).
  static const IconData subtitles_outlined = IconData(0xf3fd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">subtitles_off</i> &#x2014; material icon named "subtitles off".
  static const IconData subtitles_off = IconData(0xe61a, 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(0xed0f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">subtitles_off</i> &#x2014; material icon named "subtitles off" (round).
  static const IconData subtitles_off_rounded = IconData(0xf01ee, 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(0xf3fc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">subway</i> &#x2014; material icon named "subway".
  static const IconData subway = IconData(0xe61b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">subway</i> &#x2014; material icon named "subway" (sharp).
  static const IconData subway_sharp = IconData(0xed11, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">subway</i> &#x2014; material icon named "subway" (round).
  static const IconData subway_rounded = IconData(0xf01f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">subway</i> &#x2014; material icon named "subway" (outlined).
  static const IconData subway_outlined = IconData(0xf3fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">summarize</i> &#x2014; material icon named "summarize".
  static const IconData summarize = IconData(0xe61c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">summarize</i> &#x2014; material icon named "summarize" (sharp).
  static const IconData summarize_sharp = IconData(0xed12, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">summarize</i> &#x2014; material icon named "summarize" (round).
  static const IconData summarize_rounded = IconData(0xf01f1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">summarize</i> &#x2014; material icon named "summarize" (outlined).
  static const IconData summarize_outlined = IconData(0xf3ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sunny</i> &#x2014; material icon named "sunny".
  static const IconData sunny = IconData(0xf0575, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sunny_snowing</i> &#x2014; material icon named "sunny snowing".
  static const IconData sunny_snowing = IconData(0xf0576, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">superscript</i> &#x2014; material icon named "superscript".
  static const IconData superscript = IconData(0xe61d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">superscript</i> &#x2014; material icon named "superscript" (sharp).
  static const IconData superscript_sharp = IconData(0xed13, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">superscript</i> &#x2014; material icon named "superscript" (round).
  static const IconData superscript_rounded = IconData(0xf01f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">superscript</i> &#x2014; material icon named "superscript" (outlined).
  static const IconData superscript_outlined = IconData(0xf400, 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(0xe61e, 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(
    0xed14,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">supervised_user_circle</i> &#x2014; material icon named "supervised user circle" (round).
  static const IconData supervised_user_circle_rounded = IconData(
    0xf01f3,
    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(
    0xf401,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">supervisor_account</i> &#x2014; material icon named "supervisor account".
  static const IconData supervisor_account = IconData(0xe61f, 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(0xed15, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">supervisor_account</i> &#x2014; material icon named "supervisor account" (round).
  static const IconData supervisor_account_rounded = IconData(0xf01f4, 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(0xf402, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">support</i> &#x2014; material icon named "support".
  static const IconData support = IconData(0xe620, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">support</i> &#x2014; material icon named "support" (sharp).
  static const IconData support_sharp = IconData(0xed17, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">support</i> &#x2014; material icon named "support" (round).
  static const IconData support_rounded = IconData(0xf01f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">support</i> &#x2014; material icon named "support" (outlined).
  static const IconData support_outlined = IconData(0xf404, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">support_agent</i> &#x2014; material icon named "support agent".
  static const IconData support_agent = IconData(0xe621, 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(0xed16, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">support_agent</i> &#x2014; material icon named "support agent" (round).
  static const IconData support_agent_rounded = IconData(0xf01f5, 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(0xf403, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">surfing</i> &#x2014; material icon named "surfing".
  static const IconData surfing = IconData(0xe622, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">surfing</i> &#x2014; material icon named "surfing" (sharp).
  static const IconData surfing_sharp = IconData(0xed18, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">surfing</i> &#x2014; material icon named "surfing" (round).
  static const IconData surfing_rounded = IconData(0xf01f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">surfing</i> &#x2014; material icon named "surfing" (outlined).
  static const IconData surfing_outlined = IconData(0xf405, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">surround_sound</i> &#x2014; material icon named "surround sound".
  static const IconData surround_sound = IconData(0xe623, 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(0xed19, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">surround_sound</i> &#x2014; material icon named "surround sound" (round).
  static const IconData surround_sound_rounded = IconData(0xf01f8, 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(0xf406, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">swap_calls</i> &#x2014; material icon named "swap calls".
  static const IconData swap_calls = IconData(0xe624, 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(0xed1a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swap_calls</i> &#x2014; material icon named "swap calls" (round).
  static const IconData swap_calls_rounded = IconData(0xf01f9, 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(0xf407, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">swap_horiz</i> &#x2014; material icon named "swap horiz".
  static const IconData swap_horiz = IconData(0xe625, 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(0xed1b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swap_horiz</i> &#x2014; material icon named "swap horiz" (round).
  static const IconData swap_horiz_rounded = IconData(0xf01fa, 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(0xf408, 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(0xe626, 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(
    0xed1c,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">swap_horizontal_circle</i> &#x2014; material icon named "swap horizontal circle" (round).
  static const IconData swap_horizontal_circle_rounded = IconData(
    0xf01fb,
    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(
    0xf409,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">swap_vert</i> &#x2014; material icon named "swap vert".
  static const IconData swap_vert = IconData(0xe627, 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(0xed1d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swap_vert</i> &#x2014; material icon named "swap vert" (round).
  static const IconData swap_vert_rounded = IconData(0xf01fc, 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(0xf40a, 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(0xe628, 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(0xed1e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swap_vert_circle</i> &#x2014; material icon named "swap vert circle" (round).
  static const IconData swap_vert_circle_rounded = IconData(0xf01fd, 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(0xf40b, 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(0xe628, 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(0xed1e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swap_vertical_circle</i> &#x2014; material icon named "swap vertical circle" (round).
  static const IconData swap_vertical_circle_rounded = IconData(
    0xf01fd,
    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(
    0xf40b,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">swipe</i> &#x2014; material icon named "swipe".
  static const IconData swipe = IconData(0xe629, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">swipe</i> &#x2014; material icon named "swipe" (sharp).
  static const IconData swipe_sharp = IconData(0xed1f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swipe</i> &#x2014; material icon named "swipe" (round).
  static const IconData swipe_rounded = IconData(0xf01fe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">swipe</i> &#x2014; material icon named "swipe" (outlined).
  static const IconData swipe_outlined = IconData(0xf40c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">swipe_down</i> &#x2014; material icon named "swipe down".
  static const IconData swipe_down = IconData(0xf0578, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">swipe_down</i> &#x2014; material icon named "swipe down" (sharp).
  static const IconData swipe_down_sharp = IconData(0xf047e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swipe_down</i> &#x2014; material icon named "swipe down" (round).
  static const IconData swipe_down_rounded = IconData(0xf038b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">swipe_down</i> &#x2014; material icon named "swipe down" (outlined).
  static const IconData swipe_down_outlined = IconData(0xf066c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">swipe_down_alt</i> &#x2014; material icon named "swipe down alt".
  static const IconData swipe_down_alt = IconData(0xf0577, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">swipe_down_alt</i> &#x2014; material icon named "swipe down alt" (sharp).
  static const IconData swipe_down_alt_sharp = IconData(0xf047d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swipe_down_alt</i> &#x2014; material icon named "swipe down alt" (round).
  static const IconData swipe_down_alt_rounded = IconData(0xf038a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">swipe_down_alt</i> &#x2014; material icon named "swipe down alt" (outlined).
  static const IconData swipe_down_alt_outlined = IconData(0xf066b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">swipe_left</i> &#x2014; material icon named "swipe left".
  static const IconData swipe_left = IconData(0xf057a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">swipe_left</i> &#x2014; material icon named "swipe left" (sharp).
  static const IconData swipe_left_sharp = IconData(0xf0480, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swipe_left</i> &#x2014; material icon named "swipe left" (round).
  static const IconData swipe_left_rounded = IconData(0xf038d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">swipe_left</i> &#x2014; material icon named "swipe left" (outlined).
  static const IconData swipe_left_outlined = IconData(0xf066e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">swipe_left_alt</i> &#x2014; material icon named "swipe left alt".
  static const IconData swipe_left_alt = IconData(0xf0579, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">swipe_left_alt</i> &#x2014; material icon named "swipe left alt" (sharp).
  static const IconData swipe_left_alt_sharp = IconData(0xf047f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swipe_left_alt</i> &#x2014; material icon named "swipe left alt" (round).
  static const IconData swipe_left_alt_rounded = IconData(0xf038c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">swipe_left_alt</i> &#x2014; material icon named "swipe left alt" (outlined).
  static const IconData swipe_left_alt_outlined = IconData(0xf066d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">swipe_right</i> &#x2014; material icon named "swipe right".
  static const IconData swipe_right = IconData(0xf057c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">swipe_right</i> &#x2014; material icon named "swipe right" (sharp).
  static const IconData swipe_right_sharp = IconData(0xf0482, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swipe_right</i> &#x2014; material icon named "swipe right" (round).
  static const IconData swipe_right_rounded = IconData(0xf038f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">swipe_right</i> &#x2014; material icon named "swipe right" (outlined).
  static const IconData swipe_right_outlined = IconData(0xf0670, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">swipe_right_alt</i> &#x2014; material icon named "swipe right alt".
  static const IconData swipe_right_alt = IconData(0xf057b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">swipe_right_alt</i> &#x2014; material icon named "swipe right alt" (sharp).
  static const IconData swipe_right_alt_sharp = IconData(0xf0481, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swipe_right_alt</i> &#x2014; material icon named "swipe right alt" (round).
  static const IconData swipe_right_alt_rounded = IconData(0xf038e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">swipe_right_alt</i> &#x2014; material icon named "swipe right alt" (outlined).
  static const IconData swipe_right_alt_outlined = IconData(0xf066f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">swipe_up</i> &#x2014; material icon named "swipe up".
  static const IconData swipe_up = IconData(0xf057e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">swipe_up</i> &#x2014; material icon named "swipe up" (sharp).
  static const IconData swipe_up_sharp = IconData(0xf0484, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swipe_up</i> &#x2014; material icon named "swipe up" (round).
  static const IconData swipe_up_rounded = IconData(0xf0391, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">swipe_up</i> &#x2014; material icon named "swipe up" (outlined).
  static const IconData swipe_up_outlined = IconData(0xf0672, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">swipe_up_alt</i> &#x2014; material icon named "swipe up alt".
  static const IconData swipe_up_alt = IconData(0xf057d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">swipe_up_alt</i> &#x2014; material icon named "swipe up alt" (sharp).
  static const IconData swipe_up_alt_sharp = IconData(0xf0483, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swipe_up_alt</i> &#x2014; material icon named "swipe up alt" (round).
  static const IconData swipe_up_alt_rounded = IconData(0xf0390, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">swipe_up_alt</i> &#x2014; material icon named "swipe up alt" (outlined).
  static const IconData swipe_up_alt_outlined = IconData(0xf0671, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">swipe_vertical</i> &#x2014; material icon named "swipe vertical".
  static const IconData swipe_vertical = IconData(0xf057f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">swipe_vertical</i> &#x2014; material icon named "swipe vertical" (sharp).
  static const IconData swipe_vertical_sharp = IconData(0xf0485, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">swipe_vertical</i> &#x2014; material icon named "swipe vertical" (round).
  static const IconData swipe_vertical_rounded = IconData(0xf0392, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">swipe_vertical</i> &#x2014; material icon named "swipe vertical" (outlined).
  static const IconData swipe_vertical_outlined = IconData(0xf0673, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">switch_access_shortcut</i> &#x2014; material icon named "switch access shortcut".
  static const IconData switch_access_shortcut = IconData(0xf0581, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">switch_access_shortcut</i> &#x2014; material icon named "switch access shortcut" (sharp).
  static const IconData switch_access_shortcut_sharp = IconData(
    0xf0487,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">switch_access_shortcut</i> &#x2014; material icon named "switch access shortcut" (round).
  static const IconData switch_access_shortcut_rounded = IconData(
    0xf0394,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">switch_access_shortcut</i> &#x2014; material icon named "switch access shortcut" (outlined).
  static const IconData switch_access_shortcut_outlined = IconData(
    0xf0675,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">switch_access_shortcut_add</i> &#x2014; material icon named "switch access shortcut add".
  static const IconData switch_access_shortcut_add = IconData(0xf0580, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">switch_access_shortcut_add</i> &#x2014; material icon named "switch access shortcut add" (sharp).
  static const IconData switch_access_shortcut_add_sharp = IconData(
    0xf0486,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">switch_access_shortcut_add</i> &#x2014; material icon named "switch access shortcut add" (round).
  static const IconData switch_access_shortcut_add_rounded = IconData(
    0xf0393,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">switch_access_shortcut_add</i> &#x2014; material icon named "switch access shortcut add" (outlined).
  static const IconData switch_access_shortcut_add_outlined = IconData(
    0xf0674,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">switch_account</i> &#x2014; material icon named "switch account".
  static const IconData switch_account = IconData(0xe62a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">switch_account</i> &#x2014; material icon named "switch account" (sharp).
  static const IconData switch_account_sharp = IconData(0xed20, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">switch_account</i> &#x2014; material icon named "switch account" (round).
  static const IconData switch_account_rounded = IconData(0xf01ff, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">switch_account</i> &#x2014; material icon named "switch account" (outlined).
  static const IconData switch_account_outlined = IconData(0xf40d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">switch_camera</i> &#x2014; material icon named "switch camera".
  static const IconData switch_camera = IconData(0xe62b, 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(0xed21, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">switch_camera</i> &#x2014; material icon named "switch camera" (round).
  static const IconData switch_camera_rounded = IconData(0xf0200, 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(0xf40e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">switch_left</i> &#x2014; material icon named "switch left".
  static const IconData switch_left = IconData(0xe62c, 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(0xed22, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">switch_left</i> &#x2014; material icon named "switch left" (round).
  static const IconData switch_left_rounded = IconData(0xf0201, 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(0xf40f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">switch_right</i> &#x2014; material icon named "switch right".
  static const IconData switch_right = IconData(0xe62d, 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(0xed23, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">switch_right</i> &#x2014; material icon named "switch right" (round).
  static const IconData switch_right_rounded = IconData(0xf0202, 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(0xf410, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">switch_video</i> &#x2014; material icon named "switch video".
  static const IconData switch_video = IconData(0xe62e, 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(0xed24, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">switch_video</i> &#x2014; material icon named "switch video" (round).
  static const IconData switch_video_rounded = IconData(0xf0203, 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(0xf411, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">synagogue</i> &#x2014; material icon named "synagogue".
  static const IconData synagogue = IconData(0xf0582, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">synagogue</i> &#x2014; material icon named "synagogue" (sharp).
  static const IconData synagogue_sharp = IconData(0xf0488, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">synagogue</i> &#x2014; material icon named "synagogue" (round).
  static const IconData synagogue_rounded = IconData(0xf0395, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">synagogue</i> &#x2014; material icon named "synagogue" (outlined).
  static const IconData synagogue_outlined = IconData(0xf0676, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sync</i> &#x2014; material icon named "sync".
  static const IconData sync = IconData(0xe62f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sync</i> &#x2014; material icon named "sync" (sharp).
  static const IconData sync_sharp = IconData(0xed28, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sync</i> &#x2014; material icon named "sync" (round).
  static const IconData sync_rounded = IconData(0xf0207, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sync</i> &#x2014; material icon named "sync" (outlined).
  static const IconData sync_outlined = IconData(0xf414, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sync_alt</i> &#x2014; material icon named "sync alt".
  static const IconData sync_alt = IconData(0xe630, 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(0xed25, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sync_alt</i> &#x2014; material icon named "sync alt" (round).
  static const IconData sync_alt_rounded = IconData(0xf0204, 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(0xf412, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sync_disabled</i> &#x2014; material icon named "sync disabled".
  static const IconData sync_disabled = IconData(0xe631, 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(0xed26, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sync_disabled</i> &#x2014; material icon named "sync disabled" (round).
  static const IconData sync_disabled_rounded = IconData(0xf0205, 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(0xf413, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sync_lock</i> &#x2014; material icon named "sync lock".
  static const IconData sync_lock = IconData(0xf0583, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">sync_lock</i> &#x2014; material icon named "sync lock" (sharp).
  static const IconData sync_lock_sharp = IconData(0xf0489, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sync_lock</i> &#x2014; material icon named "sync lock" (round).
  static const IconData sync_lock_rounded = IconData(0xf0396, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">sync_lock</i> &#x2014; material icon named "sync lock" (outlined).
  static const IconData sync_lock_outlined = IconData(0xf0677, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">sync_problem</i> &#x2014; material icon named "sync problem".
  static const IconData sync_problem = IconData(0xe632, 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(0xed27, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">sync_problem</i> &#x2014; material icon named "sync problem" (round).
  static const IconData sync_problem_rounded = IconData(0xf0206, 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(0xf415, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">system_security_update</i> &#x2014; material icon named "system security update".
  static const IconData system_security_update = IconData(0xe633, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">system_security_update</i> &#x2014; material icon named "system security update" (sharp).
  static const IconData system_security_update_sharp = IconData(
    0xed2a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">system_security_update</i> &#x2014; material icon named "system security update" (round).
  static const IconData system_security_update_rounded = IconData(
    0xf0209,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">system_security_update</i> &#x2014; material icon named "system security update" (outlined).
  static const IconData system_security_update_outlined = IconData(
    0xf417,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">system_security_update_good</i> &#x2014; material icon named "system security update good".
  static const IconData system_security_update_good = IconData(0xe634, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">system_security_update_good</i> &#x2014; material icon named "system security update good" (sharp).
  static const IconData system_security_update_good_sharp = IconData(
    0xed29,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">system_security_update_good</i> &#x2014; material icon named "system security update good" (round).
  static const IconData system_security_update_good_rounded = IconData(
    0xf0208,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">system_security_update_good</i> &#x2014; material icon named "system security update good" (outlined).
  static const IconData system_security_update_good_outlined = IconData(
    0xf416,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">system_security_update_warning</i> &#x2014; material icon named "system security update warning".
  static const IconData system_security_update_warning = IconData(
    0xe635,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-sharp md-36">system_security_update_warning</i> &#x2014; material icon named "system security update warning" (sharp).
  static const IconData system_security_update_warning_sharp = IconData(
    0xed2b,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">system_security_update_warning</i> &#x2014; material icon named "system security update warning" (round).
  static const IconData system_security_update_warning_rounded = IconData(
    0xf020a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">system_security_update_warning</i> &#x2014; material icon named "system security update warning" (outlined).
  static const IconData system_security_update_warning_outlined = IconData(
    0xf418,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">system_update</i> &#x2014; material icon named "system update".
  static const IconData system_update = IconData(0xe636, 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(0xed2d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">system_update</i> &#x2014; material icon named "system update" (round).
  static const IconData system_update_rounded = IconData(0xf020c, 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(0xf41a, 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(0xe637, 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(0xed2c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">system_update_alt</i> &#x2014; material icon named "system update alt" (round).
  static const IconData system_update_alt_rounded = IconData(0xf020b, 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(0xf419, 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(0xe637, 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(0xed2c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">system_update_tv</i> &#x2014; material icon named "system update tv" (round).
  static const IconData system_update_tv_rounded = IconData(0xf020b, 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(0xf419, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tab</i> &#x2014; material icon named "tab".
  static const IconData tab = IconData(0xe638, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tab</i> &#x2014; material icon named "tab" (sharp).
  static const IconData tab_sharp = IconData(0xed2e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tab</i> &#x2014; material icon named "tab" (round).
  static const IconData tab_rounded = IconData(0xf020d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tab</i> &#x2014; material icon named "tab" (outlined).
  static const IconData tab_outlined = IconData(0xf41b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tab_unselected</i> &#x2014; material icon named "tab unselected".
  static const IconData tab_unselected = IconData(0xe639, 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(0xed2f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tab_unselected</i> &#x2014; material icon named "tab unselected" (round).
  static const IconData tab_unselected_rounded = IconData(0xf020e, 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(0xf41c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">table_bar</i> &#x2014; material icon named "table bar".
  static const IconData table_bar = IconData(0xf0584, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">table_bar</i> &#x2014; material icon named "table bar" (sharp).
  static const IconData table_bar_sharp = IconData(0xf048a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">table_bar</i> &#x2014; material icon named "table bar" (round).
  static const IconData table_bar_rounded = IconData(0xf0397, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">table_bar</i> &#x2014; material icon named "table bar" (outlined).
  static const IconData table_bar_outlined = IconData(0xf0678, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">table_chart</i> &#x2014; material icon named "table chart".
  static const IconData table_chart = IconData(0xe63a, 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(0xed30, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">table_chart</i> &#x2014; material icon named "table chart" (round).
  static const IconData table_chart_rounded = IconData(0xf020f, 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(0xf41d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">table_restaurant</i> &#x2014; material icon named "table restaurant".
  static const IconData table_restaurant = IconData(0xf0585, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">table_restaurant</i> &#x2014; material icon named "table restaurant" (sharp).
  static const IconData table_restaurant_sharp = IconData(0xf048b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">table_restaurant</i> &#x2014; material icon named "table restaurant" (round).
  static const IconData table_restaurant_rounded = IconData(0xf0398, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">table_restaurant</i> &#x2014; material icon named "table restaurant" (outlined).
  static const IconData table_restaurant_outlined = IconData(0xf0679, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">table_rows</i> &#x2014; material icon named "table rows".
  static const IconData table_rows = IconData(0xe63b, 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(0xed31, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">table_rows</i> &#x2014; material icon named "table rows" (round).
  static const IconData table_rows_rounded = IconData(0xf0210, 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(0xf41e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">table_view</i> &#x2014; material icon named "table view".
  static const IconData table_view = IconData(0xe63c, 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(0xed32, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">table_view</i> &#x2014; material icon named "table view" (round).
  static const IconData table_view_rounded = IconData(0xf0211, 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(0xf41f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tablet</i> &#x2014; material icon named "tablet".
  static const IconData tablet = IconData(0xe63d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tablet</i> &#x2014; material icon named "tablet" (sharp).
  static const IconData tablet_sharp = IconData(0xed35, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tablet</i> &#x2014; material icon named "tablet" (round).
  static const IconData tablet_rounded = IconData(0xf0214, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tablet</i> &#x2014; material icon named "tablet" (outlined).
  static const IconData tablet_outlined = IconData(0xf422, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tablet_android</i> &#x2014; material icon named "tablet android".
  static const IconData tablet_android = IconData(0xe63e, 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(0xed33, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tablet_android</i> &#x2014; material icon named "tablet android" (round).
  static const IconData tablet_android_rounded = IconData(0xf0212, 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(0xf420, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tablet_mac</i> &#x2014; material icon named "tablet mac".
  static const IconData tablet_mac = IconData(0xe63f, 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(0xed34, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tablet_mac</i> &#x2014; material icon named "tablet mac" (round).
  static const IconData tablet_mac_rounded = IconData(0xf0213, 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(0xf421, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tag</i> &#x2014; material icon named "tag".
  static const IconData tag = IconData(0xe640, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tag</i> &#x2014; material icon named "tag" (sharp).
  static const IconData tag_sharp = IconData(0xed37, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tag</i> &#x2014; material icon named "tag" (round).
  static const IconData tag_rounded = IconData(0xf0216, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tag</i> &#x2014; material icon named "tag" (outlined).
  static const IconData tag_outlined = IconData(0xf424, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tag_faces</i> &#x2014; material icon named "tag faces".
  static const IconData tag_faces = IconData(0xe641, 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(0xed36, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tag_faces</i> &#x2014; material icon named "tag faces" (round).
  static const IconData tag_faces_rounded = IconData(0xf0215, 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(0xf423, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">takeout_dining</i> &#x2014; material icon named "takeout dining".
  static const IconData takeout_dining = IconData(0xe642, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">takeout_dining</i> &#x2014; material icon named "takeout dining" (sharp).
  static const IconData takeout_dining_sharp = IconData(0xed38, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">takeout_dining</i> &#x2014; material icon named "takeout dining" (round).
  static const IconData takeout_dining_rounded = IconData(0xf0217, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">takeout_dining</i> &#x2014; material icon named "takeout dining" (outlined).
  static const IconData takeout_dining_outlined = IconData(0xf425, 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(0xe643, 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(0xed39, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tap_and_play</i> &#x2014; material icon named "tap and play" (round).
  static const IconData tap_and_play_rounded = IconData(0xf0218, 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(0xf426, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tapas</i> &#x2014; material icon named "tapas".
  static const IconData tapas = IconData(0xe644, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tapas</i> &#x2014; material icon named "tapas" (sharp).
  static const IconData tapas_sharp = IconData(0xed3a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tapas</i> &#x2014; material icon named "tapas" (round).
  static const IconData tapas_rounded = IconData(0xf0219, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tapas</i> &#x2014; material icon named "tapas" (outlined).
  static const IconData tapas_outlined = IconData(0xf427, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">task</i> &#x2014; material icon named "task".
  static const IconData task = IconData(0xe645, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">task</i> &#x2014; material icon named "task" (sharp).
  static const IconData task_sharp = IconData(0xed3c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">task</i> &#x2014; material icon named "task" (round).
  static const IconData task_rounded = IconData(0xf021b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">task</i> &#x2014; material icon named "task" (outlined).
  static const IconData task_outlined = IconData(0xf429, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">task_alt</i> &#x2014; material icon named "task alt".
  static const IconData task_alt = IconData(0xe646, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">task_alt</i> &#x2014; material icon named "task alt" (sharp).
  static const IconData task_alt_sharp = IconData(0xed3b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">task_alt</i> &#x2014; material icon named "task alt" (round).
  static const IconData task_alt_rounded = IconData(0xf021a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">task_alt</i> &#x2014; material icon named "task alt" (outlined).
  static const IconData task_alt_outlined = IconData(0xf428, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">taxi_alert</i> &#x2014; material icon named "taxi alert".
  static const IconData taxi_alert = IconData(0xe647, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">taxi_alert</i> &#x2014; material icon named "taxi alert" (sharp).
  static const IconData taxi_alert_sharp = IconData(0xed3d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">taxi_alert</i> &#x2014; material icon named "taxi alert" (round).
  static const IconData taxi_alert_rounded = IconData(0xf021c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">taxi_alert</i> &#x2014; material icon named "taxi alert" (outlined).
  static const IconData taxi_alert_outlined = IconData(0xf42a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">telegram</i> &#x2014; material icon named "telegram".
  static const IconData telegram = IconData(0xf0586, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">telegram</i> &#x2014; material icon named "telegram" (sharp).
  static const IconData telegram_sharp = IconData(0xf048c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">telegram</i> &#x2014; material icon named "telegram" (round).
  static const IconData telegram_rounded = IconData(0xf0399, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">telegram</i> &#x2014; material icon named "telegram" (outlined).
  static const IconData telegram_outlined = IconData(0xf067a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">temple_buddhist</i> &#x2014; material icon named "temple buddhist".
  static const IconData temple_buddhist = IconData(0xf0587, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">temple_buddhist</i> &#x2014; material icon named "temple buddhist" (sharp).
  static const IconData temple_buddhist_sharp = IconData(0xf048d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">temple_buddhist</i> &#x2014; material icon named "temple buddhist" (round).
  static const IconData temple_buddhist_rounded = IconData(0xf039a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">temple_buddhist</i> &#x2014; material icon named "temple buddhist" (outlined).
  static const IconData temple_buddhist_outlined = IconData(0xf067b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">temple_hindu</i> &#x2014; material icon named "temple hindu".
  static const IconData temple_hindu = IconData(0xf0588, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">temple_hindu</i> &#x2014; material icon named "temple hindu" (sharp).
  static const IconData temple_hindu_sharp = IconData(0xf048e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">temple_hindu</i> &#x2014; material icon named "temple hindu" (round).
  static const IconData temple_hindu_rounded = IconData(0xf039b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">temple_hindu</i> &#x2014; material icon named "temple hindu" (outlined).
  static const IconData temple_hindu_outlined = IconData(0xf067c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">terminal</i> &#x2014; material icon named "terminal".
  static const IconData terminal = IconData(0xf0589, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">terminal</i> &#x2014; material icon named "terminal" (sharp).
  static const IconData terminal_sharp = IconData(0xf048f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">terminal</i> &#x2014; material icon named "terminal" (round).
  static const IconData terminal_rounded = IconData(0xf039c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">terminal</i> &#x2014; material icon named "terminal" (outlined).
  static const IconData terminal_outlined = IconData(0xf067d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">terrain</i> &#x2014; material icon named "terrain".
  static const IconData terrain = IconData(0xe648, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">terrain</i> &#x2014; material icon named "terrain" (sharp).
  static const IconData terrain_sharp = IconData(0xed3e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">terrain</i> &#x2014; material icon named "terrain" (round).
  static const IconData terrain_rounded = IconData(0xf021d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">terrain</i> &#x2014; material icon named "terrain" (outlined).
  static const IconData terrain_outlined = IconData(0xf42b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">text_decrease</i> &#x2014; material icon named "text decrease".
  static const IconData text_decrease = IconData(0xf058a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">text_decrease</i> &#x2014; material icon named "text decrease" (sharp).
  static const IconData text_decrease_sharp = IconData(0xf0490, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_decrease</i> &#x2014; material icon named "text decrease" (round).
  static const IconData text_decrease_rounded = IconData(0xf039d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">text_decrease</i> &#x2014; material icon named "text decrease" (outlined).
  static const IconData text_decrease_outlined = IconData(0xf067e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">text_fields</i> &#x2014; material icon named "text fields".
  static const IconData text_fields = IconData(0xe649, 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(0xed3f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_fields</i> &#x2014; material icon named "text fields" (round).
  static const IconData text_fields_rounded = IconData(0xf021e, 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(0xf42c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">text_format</i> &#x2014; material icon named "text format".
  static const IconData text_format = IconData(0xe64a, 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(0xed40, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_format</i> &#x2014; material icon named "text format" (round).
  static const IconData text_format_rounded = IconData(0xf021f, 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(0xf42d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">text_increase</i> &#x2014; material icon named "text increase".
  static const IconData text_increase = IconData(0xf058b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">text_increase</i> &#x2014; material icon named "text increase" (sharp).
  static const IconData text_increase_sharp = IconData(0xf0491, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_increase</i> &#x2014; material icon named "text increase" (round).
  static const IconData text_increase_rounded = IconData(0xf039e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">text_increase</i> &#x2014; material icon named "text increase" (outlined).
  static const IconData text_increase_outlined = IconData(0xf067f, 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(0xe64b, 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(0xed41, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_rotate_up</i> &#x2014; material icon named "text rotate up" (round).
  static const IconData text_rotate_up_rounded = IconData(0xf0220, 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(0xf42e, 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(0xe64c, 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(0xed42, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_rotate_vertical</i> &#x2014; material icon named "text rotate vertical" (round).
  static const IconData text_rotate_vertical_rounded = IconData(
    0xf0221,
    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(
    0xf42f,
    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(0xe64d, 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(
    0xed43,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">text_rotation_angledown</i> &#x2014; material icon named "text rotation angledown" (round).
  static const IconData text_rotation_angledown_rounded = IconData(
    0xf0222,
    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(
    0xf430,
    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(0xe64e, 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(0xed44, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_rotation_angleup</i> &#x2014; material icon named "text rotation angleup" (round).
  static const IconData text_rotation_angleup_rounded = IconData(
    0xf0223,
    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(
    0xf431,
    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(0xe64f, 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(0xed45, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_rotation_down</i> &#x2014; material icon named "text rotation down" (round).
  static const IconData text_rotation_down_rounded = IconData(0xf0224, 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(0xf432, 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(0xe650, 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(0xed46, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_rotation_none</i> &#x2014; material icon named "text rotation none" (round).
  static const IconData text_rotation_none_rounded = IconData(0xf0225, 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(0xf433, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">text_snippet</i> &#x2014; material icon named "text snippet".
  static const IconData text_snippet = IconData(0xe651, 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(0xed47, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">text_snippet</i> &#x2014; material icon named "text snippet" (round).
  static const IconData text_snippet_rounded = IconData(0xf0226, 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(0xf434, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">textsms</i> &#x2014; material icon named "textsms".
  static const IconData textsms = IconData(0xe652, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">textsms</i> &#x2014; material icon named "textsms" (sharp).
  static const IconData textsms_sharp = IconData(0xed48, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">textsms</i> &#x2014; material icon named "textsms" (round).
  static const IconData textsms_rounded = IconData(0xf0227, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">textsms</i> &#x2014; material icon named "textsms" (outlined).
  static const IconData textsms_outlined = IconData(0xf435, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">texture</i> &#x2014; material icon named "texture".
  static const IconData texture = IconData(0xe653, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">texture</i> &#x2014; material icon named "texture" (sharp).
  static const IconData texture_sharp = IconData(0xed49, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">texture</i> &#x2014; material icon named "texture" (round).
  static const IconData texture_rounded = IconData(0xf0228, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">texture</i> &#x2014; material icon named "texture" (outlined).
  static const IconData texture_outlined = IconData(0xf436, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">theater_comedy</i> &#x2014; material icon named "theater comedy".
  static const IconData theater_comedy = IconData(0xe654, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">theater_comedy</i> &#x2014; material icon named "theater comedy" (sharp).
  static const IconData theater_comedy_sharp = IconData(0xed4a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">theater_comedy</i> &#x2014; material icon named "theater comedy" (round).
  static const IconData theater_comedy_rounded = IconData(0xf0229, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">theater_comedy</i> &#x2014; material icon named "theater comedy" (outlined).
  static const IconData theater_comedy_outlined = IconData(0xf437, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">theaters</i> &#x2014; material icon named "theaters".
  static const IconData theaters = IconData(0xe655, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">theaters</i> &#x2014; material icon named "theaters" (sharp).
  static const IconData theaters_sharp = IconData(0xed4b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">theaters</i> &#x2014; material icon named "theaters" (round).
  static const IconData theaters_rounded = IconData(0xf022a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">theaters</i> &#x2014; material icon named "theaters" (outlined).
  static const IconData theaters_outlined = IconData(0xf438, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">thermostat</i> &#x2014; material icon named "thermostat".
  static const IconData thermostat = IconData(0xe656, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">thermostat</i> &#x2014; material icon named "thermostat" (sharp).
  static const IconData thermostat_sharp = IconData(0xed4d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">thermostat</i> &#x2014; material icon named "thermostat" (round).
  static const IconData thermostat_rounded = IconData(0xf022c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">thermostat</i> &#x2014; material icon named "thermostat" (outlined).
  static const IconData thermostat_outlined = IconData(0xf43a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">thermostat_auto</i> &#x2014; material icon named "thermostat auto".
  static const IconData thermostat_auto = IconData(0xe657, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">thermostat_auto</i> &#x2014; material icon named "thermostat auto" (sharp).
  static const IconData thermostat_auto_sharp = IconData(0xed4c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">thermostat_auto</i> &#x2014; material icon named "thermostat auto" (round).
  static const IconData thermostat_auto_rounded = IconData(0xf022b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">thermostat_auto</i> &#x2014; material icon named "thermostat auto" (outlined).
  static const IconData thermostat_auto_outlined = IconData(0xf439, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">thumb_down</i> &#x2014; material icon named "thumb down".
  static const IconData thumb_down = IconData(0xe658, 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(0xed50, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">thumb_down</i> &#x2014; material icon named "thumb down" (round).
  static const IconData thumb_down_rounded = IconData(0xf022f, 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(0xf43d, 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(0xe659, 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(0xed4e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">thumb_down_alt</i> &#x2014; material icon named "thumb down alt" (round).
  static const IconData thumb_down_alt_rounded = IconData(0xf022d, 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(0xf43b, 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(0xe65a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">thumb_down_off_alt</i> &#x2014; material icon named "thumb down off alt" (sharp).
  static const IconData thumb_down_off_alt_sharp = IconData(0xed4f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">thumb_down_off_alt</i> &#x2014; material icon named "thumb down off alt" (round).
  static const IconData thumb_down_off_alt_rounded = IconData(0xf022e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">thumb_down_off_alt</i> &#x2014; material icon named "thumb down off alt" (outlined).
  static const IconData thumb_down_off_alt_outlined = IconData(0xf43c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">thumb_up</i> &#x2014; material icon named "thumb up".
  static const IconData thumb_up = IconData(0xe65b, 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(0xed53, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">thumb_up</i> &#x2014; material icon named "thumb up" (round).
  static const IconData thumb_up_rounded = IconData(0xf0232, 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(0xf440, 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(0xe65c, 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(0xed51, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">thumb_up_alt</i> &#x2014; material icon named "thumb up alt" (round).
  static const IconData thumb_up_alt_rounded = IconData(0xf0230, 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(0xf43e, 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(0xe65d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">thumb_up_off_alt</i> &#x2014; material icon named "thumb up off alt" (sharp).
  static const IconData thumb_up_off_alt_sharp = IconData(0xed52, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">thumb_up_off_alt</i> &#x2014; material icon named "thumb up off alt" (round).
  static const IconData thumb_up_off_alt_rounded = IconData(0xf0231, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">thumb_up_off_alt</i> &#x2014; material icon named "thumb up off alt" (outlined).
  static const IconData thumb_up_off_alt_outlined = IconData(0xf43f, 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(0xe65e, 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(0xed54, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">thumbs_up_down</i> &#x2014; material icon named "thumbs up down" (round).
  static const IconData thumbs_up_down_rounded = IconData(0xf0233, 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(0xf441, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">thunderstorm</i> &#x2014; material icon named "thunderstorm".
  static const IconData thunderstorm = IconData(0xf07cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">thunderstorm</i> &#x2014; material icon named "thunderstorm" (sharp).
  static const IconData thunderstorm_sharp = IconData(0xf0773, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">thunderstorm</i> &#x2014; material icon named "thunderstorm" (round).
  static const IconData thunderstorm_rounded = IconData(0xf0823, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">thunderstorm</i> &#x2014; material icon named "thunderstorm" (outlined).
  static const IconData thunderstorm_outlined = IconData(0xf071b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tiktok</i> &#x2014; material icon named "tiktok".
  static const IconData tiktok = IconData(0xf058c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tiktok</i> &#x2014; material icon named "tiktok" (sharp).
  static const IconData tiktok_sharp = IconData(0xf0492, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tiktok</i> &#x2014; material icon named "tiktok" (round).
  static const IconData tiktok_rounded = IconData(0xf039f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tiktok</i> &#x2014; material icon named "tiktok" (outlined).
  static const IconData tiktok_outlined = IconData(0xf0680, 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(0xe65f, 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(0xed55, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">time_to_leave</i> &#x2014; material icon named "time to leave" (round).
  static const IconData time_to_leave_rounded = IconData(0xf0234, 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(0xf442, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">timelapse</i> &#x2014; material icon named "timelapse".
  static const IconData timelapse = IconData(0xe660, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">timelapse</i> &#x2014; material icon named "timelapse" (sharp).
  static const IconData timelapse_sharp = IconData(0xed56, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">timelapse</i> &#x2014; material icon named "timelapse" (round).
  static const IconData timelapse_rounded = IconData(0xf0235, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">timelapse</i> &#x2014; material icon named "timelapse" (outlined).
  static const IconData timelapse_outlined = IconData(0xf443, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">timeline</i> &#x2014; material icon named "timeline".
  static const IconData timeline = IconData(0xe661, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">timeline</i> &#x2014; material icon named "timeline" (sharp).
  static const IconData timeline_sharp = IconData(0xed57, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">timeline</i> &#x2014; material icon named "timeline" (round).
  static const IconData timeline_rounded = IconData(0xf0236, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">timeline</i> &#x2014; material icon named "timeline" (outlined).
  static const IconData timeline_outlined = IconData(0xf444, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">timer</i> &#x2014; material icon named "timer".
  static const IconData timer = IconData(0xe662, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">timer</i> &#x2014; material icon named "timer" (sharp).
  static const IconData timer_sharp = IconData(0xed5d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">timer</i> &#x2014; material icon named "timer" (round).
  static const IconData timer_rounded = IconData(0xf023c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">timer</i> &#x2014; material icon named "timer" (outlined).
  static const IconData timer_outlined = IconData(0xf44a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">timer_10</i> &#x2014; material icon named "timer 10".
  static const IconData timer_10 = IconData(0xe663, 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(0xed59, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">timer_10</i> &#x2014; material icon named "timer 10" (round).
  static const IconData timer_10_rounded = IconData(0xf0237, 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(0xf445, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">timer_10_select</i> &#x2014; material icon named "timer 10 select".
  static const IconData timer_10_select = IconData(0xe664, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">timer_10_select</i> &#x2014; material icon named "timer 10 select" (sharp).
  static const IconData timer_10_select_sharp = IconData(0xed58, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">timer_10_select</i> &#x2014; material icon named "timer 10 select" (round).
  static const IconData timer_10_select_rounded = IconData(0xf0238, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">timer_10_select</i> &#x2014; material icon named "timer 10 select" (outlined).
  static const IconData timer_10_select_outlined = IconData(0xf446, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">timer_3</i> &#x2014; material icon named "timer 3".
  static const IconData timer_3 = IconData(0xe665, 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(0xed5b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">timer_3</i> &#x2014; material icon named "timer 3" (round).
  static const IconData timer_3_rounded = IconData(0xf0239, 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(0xf447, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">timer_3_select</i> &#x2014; material icon named "timer 3 select".
  static const IconData timer_3_select = IconData(0xe666, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">timer_3_select</i> &#x2014; material icon named "timer 3 select" (sharp).
  static const IconData timer_3_select_sharp = IconData(0xed5a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">timer_3_select</i> &#x2014; material icon named "timer 3 select" (round).
  static const IconData timer_3_select_rounded = IconData(0xf023a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">timer_3_select</i> &#x2014; material icon named "timer 3 select" (outlined).
  static const IconData timer_3_select_outlined = IconData(0xf448, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">timer_off</i> &#x2014; material icon named "timer off".
  static const IconData timer_off = IconData(0xe667, 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(0xed5c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">timer_off</i> &#x2014; material icon named "timer off" (round).
  static const IconData timer_off_rounded = IconData(0xf023b, 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(0xf449, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tips_and_updates</i> &#x2014; material icon named "tips and updates".
  static const IconData tips_and_updates = IconData(0xf058d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tips_and_updates</i> &#x2014; material icon named "tips and updates" (sharp).
  static const IconData tips_and_updates_sharp = IconData(0xf0493, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tips_and_updates</i> &#x2014; material icon named "tips and updates" (round).
  static const IconData tips_and_updates_rounded = IconData(0xf03a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tips_and_updates</i> &#x2014; material icon named "tips and updates" (outlined).
  static const IconData tips_and_updates_outlined = IconData(0xf0681, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tire_repair</i> &#x2014; material icon named "tire repair".
  static const IconData tire_repair = IconData(0xf06c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tire_repair</i> &#x2014; material icon named "tire repair" (sharp).
  static const IconData tire_repair_sharp = IconData(0xf06b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tire_repair</i> &#x2014; material icon named "tire repair" (round).
  static const IconData tire_repair_rounded = IconData(0xf06d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tire_repair</i> &#x2014; material icon named "tire repair" (outlined).
  static const IconData tire_repair_outlined = IconData(0xf06aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">title</i> &#x2014; material icon named "title".
  static const IconData title = IconData(0xe668, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">title</i> &#x2014; material icon named "title" (sharp).
  static const IconData title_sharp = IconData(0xed5e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">title</i> &#x2014; material icon named "title" (round).
  static const IconData title_rounded = IconData(0xf023d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">title</i> &#x2014; material icon named "title" (outlined).
  static const IconData title_outlined = IconData(0xf44b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">toc</i> &#x2014; material icon named "toc".
  static const IconData toc = IconData(
    0xe669,
    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(
    0xed5f,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">toc</i> &#x2014; material icon named "toc" (round).
  static const IconData toc_rounded = IconData(
    0xf023e,
    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(
    0xf44c,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons md-36">today</i> &#x2014; material icon named "today".
  static const IconData today = IconData(0xe66a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">today</i> &#x2014; material icon named "today" (sharp).
  static const IconData today_sharp = IconData(0xed60, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">today</i> &#x2014; material icon named "today" (round).
  static const IconData today_rounded = IconData(0xf023f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">today</i> &#x2014; material icon named "today" (outlined).
  static const IconData today_outlined = IconData(0xf44d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">toggle_off</i> &#x2014; material icon named "toggle off".
  static const IconData toggle_off = IconData(0xe66b, 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(0xed61, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">toggle_off</i> &#x2014; material icon named "toggle off" (round).
  static const IconData toggle_off_rounded = IconData(0xf0240, 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(0xf44e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">toggle_on</i> &#x2014; material icon named "toggle on".
  static const IconData toggle_on = IconData(0xe66c, 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(0xed62, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">toggle_on</i> &#x2014; material icon named "toggle on" (round).
  static const IconData toggle_on_rounded = IconData(0xf0241, 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(0xf44f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">token</i> &#x2014; material icon named "token".
  static const IconData token = IconData(0xf058e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">token</i> &#x2014; material icon named "token" (sharp).
  static const IconData token_sharp = IconData(0xf0494, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">token</i> &#x2014; material icon named "token" (round).
  static const IconData token_rounded = IconData(0xf03a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">token</i> &#x2014; material icon named "token" (outlined).
  static const IconData token_outlined = IconData(0xf0682, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">toll</i> &#x2014; material icon named "toll".
  static const IconData toll = IconData(0xe66d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">toll</i> &#x2014; material icon named "toll" (sharp).
  static const IconData toll_sharp = IconData(0xed63, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">toll</i> &#x2014; material icon named "toll" (round).
  static const IconData toll_rounded = IconData(0xf0242, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">toll</i> &#x2014; material icon named "toll" (outlined).
  static const IconData toll_outlined = IconData(0xf450, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tonality</i> &#x2014; material icon named "tonality".
  static const IconData tonality = IconData(0xe66e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tonality</i> &#x2014; material icon named "tonality" (sharp).
  static const IconData tonality_sharp = IconData(0xed64, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tonality</i> &#x2014; material icon named "tonality" (round).
  static const IconData tonality_rounded = IconData(0xf0243, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tonality</i> &#x2014; material icon named "tonality" (outlined).
  static const IconData tonality_outlined = IconData(0xf451, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">topic</i> &#x2014; material icon named "topic".
  static const IconData topic = IconData(0xe66f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">topic</i> &#x2014; material icon named "topic" (sharp).
  static const IconData topic_sharp = IconData(0xed65, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">topic</i> &#x2014; material icon named "topic" (round).
  static const IconData topic_rounded = IconData(0xf0244, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">topic</i> &#x2014; material icon named "topic" (outlined).
  static const IconData topic_outlined = IconData(0xf452, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tornado</i> &#x2014; material icon named "tornado".
  static const IconData tornado = IconData(0xf07cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tornado</i> &#x2014; material icon named "tornado" (sharp).
  static const IconData tornado_sharp = IconData(0xf0774, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tornado</i> &#x2014; material icon named "tornado" (round).
  static const IconData tornado_rounded = IconData(0xf0824, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tornado</i> &#x2014; material icon named "tornado" (outlined).
  static const IconData tornado_outlined = IconData(0xf071c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">touch_app</i> &#x2014; material icon named "touch app".
  static const IconData touch_app = IconData(0xe670, 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(0xed66, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">touch_app</i> &#x2014; material icon named "touch app" (round).
  static const IconData touch_app_rounded = IconData(0xf0245, 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(0xf453, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tour</i> &#x2014; material icon named "tour".
  static const IconData tour = IconData(0xe671, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tour</i> &#x2014; material icon named "tour" (sharp).
  static const IconData tour_sharp = IconData(0xed67, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tour</i> &#x2014; material icon named "tour" (round).
  static const IconData tour_rounded = IconData(0xf0246, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tour</i> &#x2014; material icon named "tour" (outlined).
  static const IconData tour_outlined = IconData(0xf454, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">toys</i> &#x2014; material icon named "toys".
  static const IconData toys = IconData(0xe672, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">toys</i> &#x2014; material icon named "toys" (sharp).
  static const IconData toys_sharp = IconData(0xed68, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">toys</i> &#x2014; material icon named "toys" (round).
  static const IconData toys_rounded = IconData(0xf0247, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">toys</i> &#x2014; material icon named "toys" (outlined).
  static const IconData toys_outlined = IconData(0xf455, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">track_changes</i> &#x2014; material icon named "track changes".
  static const IconData track_changes = IconData(0xe673, 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(0xed69, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">track_changes</i> &#x2014; material icon named "track changes" (round).
  static const IconData track_changes_rounded = IconData(0xf0248, 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(0xf456, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">traffic</i> &#x2014; material icon named "traffic".
  static const IconData traffic = IconData(0xe674, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">traffic</i> &#x2014; material icon named "traffic" (sharp).
  static const IconData traffic_sharp = IconData(0xed6a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">traffic</i> &#x2014; material icon named "traffic" (round).
  static const IconData traffic_rounded = IconData(0xf0249, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">traffic</i> &#x2014; material icon named "traffic" (outlined).
  static const IconData traffic_outlined = IconData(0xf457, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">train</i> &#x2014; material icon named "train".
  static const IconData train = IconData(0xe675, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">train</i> &#x2014; material icon named "train" (sharp).
  static const IconData train_sharp = IconData(0xed6b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">train</i> &#x2014; material icon named "train" (round).
  static const IconData train_rounded = IconData(0xf024a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">train</i> &#x2014; material icon named "train" (outlined).
  static const IconData train_outlined = IconData(0xf458, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tram</i> &#x2014; material icon named "tram".
  static const IconData tram = IconData(0xe676, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tram</i> &#x2014; material icon named "tram" (sharp).
  static const IconData tram_sharp = IconData(0xed6c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tram</i> &#x2014; material icon named "tram" (round).
  static const IconData tram_rounded = IconData(0xf024b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tram</i> &#x2014; material icon named "tram" (outlined).
  static const IconData tram_outlined = IconData(0xf459, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">transcribe</i> &#x2014; material icon named "transcribe".
  static const IconData transcribe = IconData(0xf07cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">transcribe</i> &#x2014; material icon named "transcribe" (sharp).
  static const IconData transcribe_sharp = IconData(0xf0775, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">transcribe</i> &#x2014; material icon named "transcribe" (round).
  static const IconData transcribe_rounded = IconData(0xf0825, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">transcribe</i> &#x2014; material icon named "transcribe" (outlined).
  static const IconData transcribe_outlined = IconData(0xf071d, 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(0xe677, 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(
    0xed6d,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">transfer_within_a_station</i> &#x2014; material icon named "transfer within a station" (round).
  static const IconData transfer_within_a_station_rounded = IconData(
    0xf024c,
    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(
    0xf45a,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">transform</i> &#x2014; material icon named "transform".
  static const IconData transform = IconData(0xe678, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">transform</i> &#x2014; material icon named "transform" (sharp).
  static const IconData transform_sharp = IconData(0xed6e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">transform</i> &#x2014; material icon named "transform" (round).
  static const IconData transform_rounded = IconData(0xf024d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">transform</i> &#x2014; material icon named "transform" (outlined).
  static const IconData transform_outlined = IconData(0xf45b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">transgender</i> &#x2014; material icon named "transgender".
  static const IconData transgender = IconData(0xe679, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">transgender</i> &#x2014; material icon named "transgender" (sharp).
  static const IconData transgender_sharp = IconData(0xed6f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">transgender</i> &#x2014; material icon named "transgender" (round).
  static const IconData transgender_rounded = IconData(0xf024e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">transgender</i> &#x2014; material icon named "transgender" (outlined).
  static const IconData transgender_outlined = IconData(0xf45c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">transit_enterexit</i> &#x2014; material icon named "transit enterexit".
  static const IconData transit_enterexit = IconData(0xe67a, 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(0xed70, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">transit_enterexit</i> &#x2014; material icon named "transit enterexit" (round).
  static const IconData transit_enterexit_rounded = IconData(0xf024f, 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(0xf45d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">translate</i> &#x2014; material icon named "translate".
  static const IconData translate = IconData(0xe67b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">translate</i> &#x2014; material icon named "translate" (sharp).
  static const IconData translate_sharp = IconData(0xed71, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">translate</i> &#x2014; material icon named "translate" (round).
  static const IconData translate_rounded = IconData(0xf0250, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">translate</i> &#x2014; material icon named "translate" (outlined).
  static const IconData translate_outlined = IconData(0xf45e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">travel_explore</i> &#x2014; material icon named "travel explore".
  static const IconData travel_explore = IconData(0xe67c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">travel_explore</i> &#x2014; material icon named "travel explore" (sharp).
  static const IconData travel_explore_sharp = IconData(0xed72, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">travel_explore</i> &#x2014; material icon named "travel explore" (round).
  static const IconData travel_explore_rounded = IconData(0xf0251, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">travel_explore</i> &#x2014; material icon named "travel explore" (outlined).
  static const IconData travel_explore_outlined = IconData(0xf45f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">trending_down</i> &#x2014; material icon named "trending down".
  static const IconData trending_down = IconData(
    0xe67d,
    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(
    0xed73,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">trending_down</i> &#x2014; material icon named "trending down" (round).
  static const IconData trending_down_rounded = IconData(
    0xf0252,
    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(
    0xf460,
    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(
    0xe67e,
    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(
    0xed74,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">trending_flat</i> &#x2014; material icon named "trending flat" (round).
  static const IconData trending_flat_rounded = IconData(
    0xf0253,
    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(
    0xf461,
    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(0xe67e, 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(0xed74, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">trending_neutral</i> &#x2014; material icon named "trending neutral" (round).
  static const IconData trending_neutral_rounded = IconData(0xf0253, 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(0xf461, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">trending_up</i> &#x2014; material icon named "trending up".
  static const IconData trending_up = IconData(
    0xe67f,
    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(
    0xed75,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">trending_up</i> &#x2014; material icon named "trending up" (round).
  static const IconData trending_up_rounded = IconData(
    0xf0254,
    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(
    0xf462,
    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(0xe680, 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(0xed76, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">trip_origin</i> &#x2014; material icon named "trip origin" (round).
  static const IconData trip_origin_rounded = IconData(0xf0255, 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(0xf463, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">trolley</i> &#x2014; material icon named "trolley".
  static const IconData trolley = IconData(0xf0878, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">troubleshoot</i> &#x2014; material icon named "troubleshoot".
  static const IconData troubleshoot = IconData(0xf07ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">troubleshoot</i> &#x2014; material icon named "troubleshoot" (sharp).
  static const IconData troubleshoot_sharp = IconData(0xf0776, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">troubleshoot</i> &#x2014; material icon named "troubleshoot" (round).
  static const IconData troubleshoot_rounded = IconData(0xf0826, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">troubleshoot</i> &#x2014; material icon named "troubleshoot" (outlined).
  static const IconData troubleshoot_outlined = IconData(0xf071e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">try</i> &#x2014; material icon named "try".
  static const IconData try_sms_star = IconData(0xe681, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">try</i> &#x2014; material icon named "try" (sharp).
  static const IconData try_sms_star_sharp = IconData(0xed77, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">try</i> &#x2014; material icon named "try" (round).
  static const IconData try_sms_star_rounded = IconData(0xf0256, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">try</i> &#x2014; material icon named "try" (outlined).
  static const IconData try_sms_star_outlined = IconData(0xf464, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tsunami</i> &#x2014; material icon named "tsunami".
  static const IconData tsunami = IconData(0xf07cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tsunami</i> &#x2014; material icon named "tsunami" (sharp).
  static const IconData tsunami_sharp = IconData(0xf0777, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tsunami</i> &#x2014; material icon named "tsunami" (round).
  static const IconData tsunami_rounded = IconData(0xf0827, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tsunami</i> &#x2014; material icon named "tsunami" (outlined).
  static const IconData tsunami_outlined = IconData(0xf071f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tty</i> &#x2014; material icon named "tty".
  static const IconData tty = IconData(0xe682, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tty</i> &#x2014; material icon named "tty" (sharp).
  static const IconData tty_sharp = IconData(0xed78, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tty</i> &#x2014; material icon named "tty" (round).
  static const IconData tty_rounded = IconData(0xf0257, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tty</i> &#x2014; material icon named "tty" (outlined).
  static const IconData tty_outlined = IconData(0xf465, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tune</i> &#x2014; material icon named "tune".
  static const IconData tune = IconData(0xe683, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tune</i> &#x2014; material icon named "tune" (sharp).
  static const IconData tune_sharp = IconData(0xed79, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tune</i> &#x2014; material icon named "tune" (round).
  static const IconData tune_rounded = IconData(0xf0258, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tune</i> &#x2014; material icon named "tune" (outlined).
  static const IconData tune_outlined = IconData(0xf466, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tungsten</i> &#x2014; material icon named "tungsten".
  static const IconData tungsten = IconData(0xe684, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tungsten</i> &#x2014; material icon named "tungsten" (sharp).
  static const IconData tungsten_sharp = IconData(0xed7a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tungsten</i> &#x2014; material icon named "tungsten" (round).
  static const IconData tungsten_rounded = IconData(0xf0259, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tungsten</i> &#x2014; material icon named "tungsten" (outlined).
  static const IconData tungsten_outlined = IconData(0xf467, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">turn_left</i> &#x2014; material icon named "turn left".
  static const IconData turn_left = IconData(0xf058f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">turn_left</i> &#x2014; material icon named "turn left" (sharp).
  static const IconData turn_left_sharp = IconData(0xf0495, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">turn_left</i> &#x2014; material icon named "turn left" (round).
  static const IconData turn_left_rounded = IconData(0xf03a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">turn_left</i> &#x2014; material icon named "turn left" (outlined).
  static const IconData turn_left_outlined = IconData(0xf0683, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">turn_right</i> &#x2014; material icon named "turn right".
  static const IconData turn_right = IconData(0xf0590, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">turn_right</i> &#x2014; material icon named "turn right" (sharp).
  static const IconData turn_right_sharp = IconData(0xf0496, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">turn_right</i> &#x2014; material icon named "turn right" (round).
  static const IconData turn_right_rounded = IconData(0xf03a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">turn_right</i> &#x2014; material icon named "turn right" (outlined).
  static const IconData turn_right_outlined = IconData(0xf0684, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">turn_sharp_left</i> &#x2014; material icon named "turn sharp left".
  static const IconData turn_sharp_left = IconData(0xf0591, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">turn_sharp_left</i> &#x2014; material icon named "turn sharp left" (sharp).
  static const IconData turn_sharp_left_sharp = IconData(0xf0497, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">turn_sharp_left</i> &#x2014; material icon named "turn sharp left" (round).
  static const IconData turn_sharp_left_rounded = IconData(0xf03a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">turn_sharp_left</i> &#x2014; material icon named "turn sharp left" (outlined).
  static const IconData turn_sharp_left_outlined = IconData(0xf0685, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">turn_sharp_right</i> &#x2014; material icon named "turn sharp right".
  static const IconData turn_sharp_right = IconData(0xf0592, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">turn_sharp_right</i> &#x2014; material icon named "turn sharp right" (sharp).
  static const IconData turn_sharp_right_sharp = IconData(0xf0498, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">turn_sharp_right</i> &#x2014; material icon named "turn sharp right" (round).
  static const IconData turn_sharp_right_rounded = IconData(0xf03a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">turn_sharp_right</i> &#x2014; material icon named "turn sharp right" (outlined).
  static const IconData turn_sharp_right_outlined = IconData(0xf0686, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">turn_slight_left</i> &#x2014; material icon named "turn slight left".
  static const IconData turn_slight_left = IconData(0xf0593, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">turn_slight_left</i> &#x2014; material icon named "turn slight left" (sharp).
  static const IconData turn_slight_left_sharp = IconData(0xf0499, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">turn_slight_left</i> &#x2014; material icon named "turn slight left" (round).
  static const IconData turn_slight_left_rounded = IconData(0xf03a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">turn_slight_left</i> &#x2014; material icon named "turn slight left" (outlined).
  static const IconData turn_slight_left_outlined = IconData(0xf0687, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">turn_slight_right</i> &#x2014; material icon named "turn slight right".
  static const IconData turn_slight_right = IconData(0xf0594, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">turn_slight_right</i> &#x2014; material icon named "turn slight right" (sharp).
  static const IconData turn_slight_right_sharp = IconData(0xf049a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">turn_slight_right</i> &#x2014; material icon named "turn slight right" (round).
  static const IconData turn_slight_right_rounded = IconData(0xf03a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">turn_slight_right</i> &#x2014; material icon named "turn slight right" (outlined).
  static const IconData turn_slight_right_outlined = IconData(0xf0688, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">turned_in</i> &#x2014; material icon named "turned in".
  static const IconData turned_in = IconData(0xe685, 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(0xed7c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">turned_in</i> &#x2014; material icon named "turned in" (round).
  static const IconData turned_in_rounded = IconData(0xf025b, 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(0xf469, 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(0xe686, 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(0xed7b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">turned_in_not</i> &#x2014; material icon named "turned in not" (round).
  static const IconData turned_in_not_rounded = IconData(0xf025a, 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(0xf468, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tv</i> &#x2014; material icon named "tv".
  static const IconData tv = IconData(0xe687, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">tv</i> &#x2014; material icon named "tv" (sharp).
  static const IconData tv_sharp = IconData(0xed7e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tv</i> &#x2014; material icon named "tv" (round).
  static const IconData tv_rounded = IconData(0xf025d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">tv</i> &#x2014; material icon named "tv" (outlined).
  static const IconData tv_outlined = IconData(0xf46b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">tv_off</i> &#x2014; material icon named "tv off".
  static const IconData tv_off = IconData(0xe688, 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(0xed7d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">tv_off</i> &#x2014; material icon named "tv off" (round).
  static const IconData tv_off_rounded = IconData(0xf025c, 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(0xf46a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">two_wheeler</i> &#x2014; material icon named "two wheeler".
  static const IconData two_wheeler = IconData(0xe689, 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(0xed7f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">two_wheeler</i> &#x2014; material icon named "two wheeler" (round).
  static const IconData two_wheeler_rounded = IconData(0xf025e, 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(0xf46c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">type_specimen</i> &#x2014; material icon named "type specimen".
  static const IconData type_specimen = IconData(0xf07d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">type_specimen</i> &#x2014; material icon named "type specimen" (sharp).
  static const IconData type_specimen_sharp = IconData(0xf0778, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">type_specimen</i> &#x2014; material icon named "type specimen" (round).
  static const IconData type_specimen_rounded = IconData(0xf0828, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">type_specimen</i> &#x2014; material icon named "type specimen" (outlined).
  static const IconData type_specimen_outlined = IconData(0xf0720, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">u_turn_left</i> &#x2014; material icon named "u turn left".
  static const IconData u_turn_left = IconData(0xf0595, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">u_turn_left</i> &#x2014; material icon named "u turn left" (sharp).
  static const IconData u_turn_left_sharp = IconData(0xf049b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">u_turn_left</i> &#x2014; material icon named "u turn left" (round).
  static const IconData u_turn_left_rounded = IconData(0xf03a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">u_turn_left</i> &#x2014; material icon named "u turn left" (outlined).
  static const IconData u_turn_left_outlined = IconData(0xf0689, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">u_turn_right</i> &#x2014; material icon named "u turn right".
  static const IconData u_turn_right = IconData(0xf0596, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">u_turn_right</i> &#x2014; material icon named "u turn right" (sharp).
  static const IconData u_turn_right_sharp = IconData(0xf049c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">u_turn_right</i> &#x2014; material icon named "u turn right" (round).
  static const IconData u_turn_right_rounded = IconData(0xf03a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">u_turn_right</i> &#x2014; material icon named "u turn right" (outlined).
  static const IconData u_turn_right_outlined = IconData(0xf068a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">umbrella</i> &#x2014; material icon named "umbrella".
  static const IconData umbrella = IconData(0xe68a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">umbrella</i> &#x2014; material icon named "umbrella" (sharp).
  static const IconData umbrella_sharp = IconData(0xed80, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">umbrella</i> &#x2014; material icon named "umbrella" (round).
  static const IconData umbrella_rounded = IconData(0xf025f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">umbrella</i> &#x2014; material icon named "umbrella" (outlined).
  static const IconData umbrella_outlined = IconData(0xf46d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">unarchive</i> &#x2014; material icon named "unarchive".
  static const IconData unarchive = IconData(0xe68b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">unarchive</i> &#x2014; material icon named "unarchive" (sharp).
  static const IconData unarchive_sharp = IconData(0xed81, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">unarchive</i> &#x2014; material icon named "unarchive" (round).
  static const IconData unarchive_rounded = IconData(0xf0260, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">unarchive</i> &#x2014; material icon named "unarchive" (outlined).
  static const IconData unarchive_outlined = IconData(0xf46e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">undo</i> &#x2014; material icon named "undo".
  static const IconData undo = IconData(
    0xe68c,
    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(
    0xed82,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">undo</i> &#x2014; material icon named "undo" (round).
  static const IconData undo_rounded = IconData(
    0xf0261,
    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(
    0xf46f,
    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(0xe68d, 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(0xed83, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">unfold_less</i> &#x2014; material icon named "unfold less" (round).
  static const IconData unfold_less_rounded = IconData(0xf0262, 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(0xf470, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">unfold_less_double</i> &#x2014; material icon named "unfold less double".
  static const IconData unfold_less_double = IconData(0xf0879, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">unfold_less_double</i> &#x2014; material icon named "unfold less double" (sharp).
  static const IconData unfold_less_double_sharp = IconData(0xf084d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">unfold_less_double</i> &#x2014; material icon named "unfold less double" (round).
  static const IconData unfold_less_double_rounded = IconData(0xf0896, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">unfold_less_double</i> &#x2014; material icon named "unfold less double" (outlined).
  static const IconData unfold_less_double_outlined = IconData(
    0xf08b4,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">unfold_more</i> &#x2014; material icon named "unfold more".
  static const IconData unfold_more = IconData(0xe68e, 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(0xed84, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">unfold_more</i> &#x2014; material icon named "unfold more" (round).
  static const IconData unfold_more_rounded = IconData(0xf0263, 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(0xf471, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">unfold_more_double</i> &#x2014; material icon named "unfold more double".
  static const IconData unfold_more_double = IconData(0xf087a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">unfold_more_double</i> &#x2014; material icon named "unfold more double" (sharp).
  static const IconData unfold_more_double_sharp = IconData(0xf084e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">unfold_more_double</i> &#x2014; material icon named "unfold more double" (round).
  static const IconData unfold_more_double_rounded = IconData(0xf0897, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">unfold_more_double</i> &#x2014; material icon named "unfold more double" (outlined).
  static const IconData unfold_more_double_outlined = IconData(
    0xf08b5,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">unpublished</i> &#x2014; material icon named "unpublished".
  static const IconData unpublished = IconData(0xe68f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">unpublished</i> &#x2014; material icon named "unpublished" (sharp).
  static const IconData unpublished_sharp = IconData(0xed85, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">unpublished</i> &#x2014; material icon named "unpublished" (round).
  static const IconData unpublished_rounded = IconData(0xf0264, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">unpublished</i> &#x2014; material icon named "unpublished" (outlined).
  static const IconData unpublished_outlined = IconData(0xf472, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">unsubscribe</i> &#x2014; material icon named "unsubscribe".
  static const IconData unsubscribe = IconData(0xe690, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">unsubscribe</i> &#x2014; material icon named "unsubscribe" (sharp).
  static const IconData unsubscribe_sharp = IconData(0xed86, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">unsubscribe</i> &#x2014; material icon named "unsubscribe" (round).
  static const IconData unsubscribe_rounded = IconData(0xf0265, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">unsubscribe</i> &#x2014; material icon named "unsubscribe" (outlined).
  static const IconData unsubscribe_outlined = IconData(0xf473, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">upcoming</i> &#x2014; material icon named "upcoming".
  static const IconData upcoming = IconData(0xe691, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">upcoming</i> &#x2014; material icon named "upcoming" (sharp).
  static const IconData upcoming_sharp = IconData(0xed87, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">upcoming</i> &#x2014; material icon named "upcoming" (round).
  static const IconData upcoming_rounded = IconData(0xf0266, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">upcoming</i> &#x2014; material icon named "upcoming" (outlined).
  static const IconData upcoming_outlined = IconData(0xf474, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">update</i> &#x2014; material icon named "update".
  static const IconData update = IconData(0xe692, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">update</i> &#x2014; material icon named "update" (sharp).
  static const IconData update_sharp = IconData(0xed89, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">update</i> &#x2014; material icon named "update" (round).
  static const IconData update_rounded = IconData(0xf0268, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">update</i> &#x2014; material icon named "update" (outlined).
  static const IconData update_outlined = IconData(0xf476, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">update_disabled</i> &#x2014; material icon named "update disabled".
  static const IconData update_disabled = IconData(0xe693, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">update_disabled</i> &#x2014; material icon named "update disabled" (sharp).
  static const IconData update_disabled_sharp = IconData(0xed88, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">update_disabled</i> &#x2014; material icon named "update disabled" (round).
  static const IconData update_disabled_rounded = IconData(0xf0267, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">update_disabled</i> &#x2014; material icon named "update disabled" (outlined).
  static const IconData update_disabled_outlined = IconData(0xf475, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">upgrade</i> &#x2014; material icon named "upgrade".
  static const IconData upgrade = IconData(0xe694, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">upgrade</i> &#x2014; material icon named "upgrade" (sharp).
  static const IconData upgrade_sharp = IconData(0xed8a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">upgrade</i> &#x2014; material icon named "upgrade" (round).
  static const IconData upgrade_rounded = IconData(0xf0269, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">upgrade</i> &#x2014; material icon named "upgrade" (outlined).
  static const IconData upgrade_outlined = IconData(0xf477, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">upload</i> &#x2014; material icon named "upload".
  static const IconData upload = IconData(0xe695, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">upload</i> &#x2014; material icon named "upload" (sharp).
  static const IconData upload_sharp = IconData(0xed8c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">upload</i> &#x2014; material icon named "upload" (round).
  static const IconData upload_rounded = IconData(0xf026b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">upload</i> &#x2014; material icon named "upload" (outlined).
  static const IconData upload_outlined = IconData(0xf479, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">upload_file</i> &#x2014; material icon named "upload file".
  static const IconData upload_file = IconData(0xe696, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">upload_file</i> &#x2014; material icon named "upload file" (sharp).
  static const IconData upload_file_sharp = IconData(0xed8b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">upload_file</i> &#x2014; material icon named "upload file" (round).
  static const IconData upload_file_rounded = IconData(0xf026a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">upload_file</i> &#x2014; material icon named "upload file" (outlined).
  static const IconData upload_file_outlined = IconData(0xf478, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">usb</i> &#x2014; material icon named "usb".
  static const IconData usb = IconData(0xe697, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">usb</i> &#x2014; material icon named "usb" (sharp).
  static const IconData usb_sharp = IconData(0xed8e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">usb</i> &#x2014; material icon named "usb" (round).
  static const IconData usb_rounded = IconData(0xf026d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">usb</i> &#x2014; material icon named "usb" (outlined).
  static const IconData usb_outlined = IconData(0xf47b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">usb_off</i> &#x2014; material icon named "usb off".
  static const IconData usb_off = IconData(0xe698, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">usb_off</i> &#x2014; material icon named "usb off" (sharp).
  static const IconData usb_off_sharp = IconData(0xed8d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">usb_off</i> &#x2014; material icon named "usb off" (round).
  static const IconData usb_off_rounded = IconData(0xf026c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">usb_off</i> &#x2014; material icon named "usb off" (outlined).
  static const IconData usb_off_outlined = IconData(0xf47a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vaccines</i> &#x2014; material icon named "vaccines".
  static const IconData vaccines = IconData(0xf0597, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">vaccines</i> &#x2014; material icon named "vaccines" (sharp).
  static const IconData vaccines_sharp = IconData(0xf049d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vaccines</i> &#x2014; material icon named "vaccines" (round).
  static const IconData vaccines_rounded = IconData(0xf03aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">vaccines</i> &#x2014; material icon named "vaccines" (outlined).
  static const IconData vaccines_outlined = IconData(0xf068b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vape_free</i> &#x2014; material icon named "vape free".
  static const IconData vape_free = IconData(0xf06c5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">vape_free</i> &#x2014; material icon named "vape free" (sharp).
  static const IconData vape_free_sharp = IconData(0xf06b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vape_free</i> &#x2014; material icon named "vape free" (round).
  static const IconData vape_free_rounded = IconData(0xf06d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">vape_free</i> &#x2014; material icon named "vape free" (outlined).
  static const IconData vape_free_outlined = IconData(0xf06ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vaping_rooms</i> &#x2014; material icon named "vaping rooms".
  static const IconData vaping_rooms = IconData(0xf06c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">vaping_rooms</i> &#x2014; material icon named "vaping rooms" (sharp).
  static const IconData vaping_rooms_sharp = IconData(0xf06b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vaping_rooms</i> &#x2014; material icon named "vaping rooms" (round).
  static const IconData vaping_rooms_rounded = IconData(0xf06d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">vaping_rooms</i> &#x2014; material icon named "vaping rooms" (outlined).
  static const IconData vaping_rooms_outlined = IconData(0xf06ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">verified</i> &#x2014; material icon named "verified".
  static const IconData verified = IconData(0xe699, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">verified</i> &#x2014; material icon named "verified" (sharp).
  static const IconData verified_sharp = IconData(0xed8f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">verified</i> &#x2014; material icon named "verified" (round).
  static const IconData verified_rounded = IconData(0xf026e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">verified</i> &#x2014; material icon named "verified" (outlined).
  static const IconData verified_outlined = IconData(0xf47c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">verified_user</i> &#x2014; material icon named "verified user".
  static const IconData verified_user = IconData(0xe69a, 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(0xed90, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">verified_user</i> &#x2014; material icon named "verified user" (round).
  static const IconData verified_user_rounded = IconData(0xf026f, 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(0xf47d, 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(0xe69b, 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(0xed91, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vertical_align_bottom</i> &#x2014; material icon named "vertical align bottom" (round).
  static const IconData vertical_align_bottom_rounded = IconData(
    0xf0270,
    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(
    0xf47e,
    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(0xe69c, 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(0xed92, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vertical_align_center</i> &#x2014; material icon named "vertical align center" (round).
  static const IconData vertical_align_center_rounded = IconData(
    0xf0271,
    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(
    0xf47f,
    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(0xe69d, 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(0xed93, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vertical_align_top</i> &#x2014; material icon named "vertical align top" (round).
  static const IconData vertical_align_top_rounded = IconData(0xf0272, 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(0xf480, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vertical_distribute</i> &#x2014; material icon named "vertical distribute".
  static const IconData vertical_distribute = IconData(0xe69e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">vertical_distribute</i> &#x2014; material icon named "vertical distribute" (sharp).
  static const IconData vertical_distribute_sharp = IconData(0xed94, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vertical_distribute</i> &#x2014; material icon named "vertical distribute" (round).
  static const IconData vertical_distribute_rounded = IconData(
    0xf0273,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">vertical_distribute</i> &#x2014; material icon named "vertical distribute" (outlined).
  static const IconData vertical_distribute_outlined = IconData(
    0xf481,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">vertical_shades</i> &#x2014; material icon named "vertical shades".
  static const IconData vertical_shades = IconData(0xf07d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">vertical_shades</i> &#x2014; material icon named "vertical shades" (sharp).
  static const IconData vertical_shades_sharp = IconData(0xf077a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vertical_shades</i> &#x2014; material icon named "vertical shades" (round).
  static const IconData vertical_shades_rounded = IconData(0xf082a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">vertical_shades</i> &#x2014; material icon named "vertical shades" (outlined).
  static const IconData vertical_shades_outlined = IconData(0xf0722, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vertical_shades_closed</i> &#x2014; material icon named "vertical shades closed".
  static const IconData vertical_shades_closed = IconData(0xf07d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">vertical_shades_closed</i> &#x2014; material icon named "vertical shades closed" (sharp).
  static const IconData vertical_shades_closed_sharp = IconData(
    0xf0779,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">vertical_shades_closed</i> &#x2014; material icon named "vertical shades closed" (round).
  static const IconData vertical_shades_closed_rounded = IconData(
    0xf0829,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">vertical_shades_closed</i> &#x2014; material icon named "vertical shades closed" (outlined).
  static const IconData vertical_shades_closed_outlined = IconData(
    0xf0721,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">vertical_split</i> &#x2014; material icon named "vertical split".
  static const IconData vertical_split = IconData(0xe69f, 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(0xed95, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vertical_split</i> &#x2014; material icon named "vertical split" (round).
  static const IconData vertical_split_rounded = IconData(0xf0274, 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(0xf482, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vibration</i> &#x2014; material icon named "vibration".
  static const IconData vibration = IconData(0xe6a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">vibration</i> &#x2014; material icon named "vibration" (sharp).
  static const IconData vibration_sharp = IconData(0xed96, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vibration</i> &#x2014; material icon named "vibration" (round).
  static const IconData vibration_rounded = IconData(0xf0275, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">vibration</i> &#x2014; material icon named "vibration" (outlined).
  static const IconData vibration_outlined = IconData(0xf483, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">video_call</i> &#x2014; material icon named "video call".
  static const IconData video_call = IconData(0xe6a1, 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(0xed97, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">video_call</i> &#x2014; material icon named "video call" (round).
  static const IconData video_call_rounded = IconData(0xf0276, 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(0xf484, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">video_camera_back</i> &#x2014; material icon named "video camera back".
  static const IconData video_camera_back = IconData(0xe6a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">video_camera_back</i> &#x2014; material icon named "video camera back" (sharp).
  static const IconData video_camera_back_sharp = IconData(0xed98, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">video_camera_back</i> &#x2014; material icon named "video camera back" (round).
  static const IconData video_camera_back_rounded = IconData(0xf0277, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">video_camera_back</i> &#x2014; material icon named "video camera back" (outlined).
  static const IconData video_camera_back_outlined = IconData(0xf485, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">video_camera_front</i> &#x2014; material icon named "video camera front".
  static const IconData video_camera_front = IconData(0xe6a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">video_camera_front</i> &#x2014; material icon named "video camera front" (sharp).
  static const IconData video_camera_front_sharp = IconData(0xed99, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">video_camera_front</i> &#x2014; material icon named "video camera front" (round).
  static const IconData video_camera_front_rounded = IconData(0xf0278, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">video_camera_front</i> &#x2014; material icon named "video camera front" (outlined).
  static const IconData video_camera_front_outlined = IconData(0xf486, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">video_chat</i> &#x2014; material icon named "video chat".
  static const IconData video_chat = IconData(0xf087b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">video_chat</i> &#x2014; material icon named "video chat" (sharp).
  static const IconData video_chat_sharp = IconData(0xf084f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">video_chat</i> &#x2014; material icon named "video chat" (round).
  static const IconData video_chat_rounded = IconData(0xf0898, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">video_chat</i> &#x2014; material icon named "video chat" (outlined).
  static const IconData video_chat_outlined = IconData(0xf08b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">video_collection</i> &#x2014; material icon named "video collection".
  static const IconData video_collection = IconData(0xe6a5, 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(0xed9b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">video_collection</i> &#x2014; material icon named "video collection" (round).
  static const IconData video_collection_rounded = IconData(0xf027a, 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(0xf488, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">video_file</i> &#x2014; material icon named "video file".
  static const IconData video_file = IconData(0xf0598, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">video_file</i> &#x2014; material icon named "video file" (sharp).
  static const IconData video_file_sharp = IconData(0xf049e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">video_file</i> &#x2014; material icon named "video file" (round).
  static const IconData video_file_rounded = IconData(0xf03ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">video_file</i> &#x2014; material icon named "video file" (outlined).
  static const IconData video_file_outlined = IconData(0xf068c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">video_label</i> &#x2014; material icon named "video label".
  static const IconData video_label = IconData(0xe6a4, 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(0xed9a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">video_label</i> &#x2014; material icon named "video label" (round).
  static const IconData video_label_rounded = IconData(0xf0279, 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(0xf487, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">video_library</i> &#x2014; material icon named "video library".
  static const IconData video_library = IconData(0xe6a5, 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(0xed9b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">video_library</i> &#x2014; material icon named "video library" (round).
  static const IconData video_library_rounded = IconData(0xf027a, 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(0xf488, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">video_settings</i> &#x2014; material icon named "video settings".
  static const IconData video_settings = IconData(0xe6a6, 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(0xed9c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">video_settings</i> &#x2014; material icon named "video settings" (round).
  static const IconData video_settings_rounded = IconData(0xf027b, 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(0xf489, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">video_stable</i> &#x2014; material icon named "video stable".
  static const IconData video_stable = IconData(0xe6a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">video_stable</i> &#x2014; material icon named "video stable" (sharp).
  static const IconData video_stable_sharp = IconData(0xed9d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">video_stable</i> &#x2014; material icon named "video stable" (round).
  static const IconData video_stable_rounded = IconData(0xf027c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">video_stable</i> &#x2014; material icon named "video stable" (outlined).
  static const IconData video_stable_outlined = IconData(0xf48a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">videocam</i> &#x2014; material icon named "videocam".
  static const IconData videocam = IconData(0xe6a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">videocam</i> &#x2014; material icon named "videocam" (sharp).
  static const IconData videocam_sharp = IconData(0xed9f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">videocam</i> &#x2014; material icon named "videocam" (round).
  static const IconData videocam_rounded = IconData(0xf027e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">videocam</i> &#x2014; material icon named "videocam" (outlined).
  static const IconData videocam_outlined = IconData(0xf48c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">videocam_off</i> &#x2014; material icon named "videocam off".
  static const IconData videocam_off = IconData(0xe6a9, 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(0xed9e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">videocam_off</i> &#x2014; material icon named "videocam off" (round).
  static const IconData videocam_off_rounded = IconData(0xf027d, 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(0xf48b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">videogame_asset</i> &#x2014; material icon named "videogame asset".
  static const IconData videogame_asset = IconData(0xe6aa, 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(0xeda1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">videogame_asset</i> &#x2014; material icon named "videogame asset" (round).
  static const IconData videogame_asset_rounded = IconData(0xf0280, 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(0xf48e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">videogame_asset_off</i> &#x2014; material icon named "videogame asset off".
  static const IconData videogame_asset_off = IconData(0xe6ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">videogame_asset_off</i> &#x2014; material icon named "videogame asset off" (sharp).
  static const IconData videogame_asset_off_sharp = IconData(0xeda0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">videogame_asset_off</i> &#x2014; material icon named "videogame asset off" (round).
  static const IconData videogame_asset_off_rounded = IconData(
    0xf027f,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">videogame_asset_off</i> &#x2014; material icon named "videogame asset off" (outlined).
  static const IconData videogame_asset_off_outlined = IconData(
    0xf48d,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">view_agenda</i> &#x2014; material icon named "view agenda".
  static const IconData view_agenda = IconData(0xe6ac, 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(0xeda2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_agenda</i> &#x2014; material icon named "view agenda" (round).
  static const IconData view_agenda_rounded = IconData(0xf0281, 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(0xf48f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_array</i> &#x2014; material icon named "view array".
  static const IconData view_array = IconData(0xe6ad, 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(0xeda3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_array</i> &#x2014; material icon named "view array" (round).
  static const IconData view_array_rounded = IconData(0xf0282, 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(0xf490, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_carousel</i> &#x2014; material icon named "view carousel".
  static const IconData view_carousel = IconData(0xe6ae, 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(0xeda4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_carousel</i> &#x2014; material icon named "view carousel" (round).
  static const IconData view_carousel_rounded = IconData(0xf0283, 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(0xf491, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_column</i> &#x2014; material icon named "view column".
  static const IconData view_column = IconData(0xe6af, 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(0xeda5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_column</i> &#x2014; material icon named "view column" (round).
  static const IconData view_column_rounded = IconData(0xf0284, 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(0xf492, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_comfortable</i> &#x2014; material icon named "view comfortable".
  static const IconData view_comfortable = IconData(0xe6b0, 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(0xeda6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_comfortable</i> &#x2014; material icon named "view comfortable" (round).
  static const IconData view_comfortable_rounded = IconData(0xf0285, 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(0xf493, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_comfy</i> &#x2014; material icon named "view comfy".
  static const IconData view_comfy = IconData(0xe6b0, 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(0xeda6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_comfy</i> &#x2014; material icon named "view comfy" (round).
  static const IconData view_comfy_rounded = IconData(0xf0285, 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(0xf493, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_comfy_alt</i> &#x2014; material icon named "view comfy alt".
  static const IconData view_comfy_alt = IconData(0xf0599, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_comfy_alt</i> &#x2014; material icon named "view comfy alt" (sharp).
  static const IconData view_comfy_alt_sharp = IconData(0xf049f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_comfy_alt</i> &#x2014; material icon named "view comfy alt" (round).
  static const IconData view_comfy_alt_rounded = IconData(0xf03ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_comfy_alt</i> &#x2014; material icon named "view comfy alt" (outlined).
  static const IconData view_comfy_alt_outlined = IconData(0xf068d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_compact</i> &#x2014; material icon named "view compact".
  static const IconData view_compact = IconData(0xe6b1, 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(0xeda7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_compact</i> &#x2014; material icon named "view compact" (round).
  static const IconData view_compact_rounded = IconData(0xf0286, 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(0xf494, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_compact_alt</i> &#x2014; material icon named "view compact alt".
  static const IconData view_compact_alt = IconData(0xf059a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_compact_alt</i> &#x2014; material icon named "view compact alt" (sharp).
  static const IconData view_compact_alt_sharp = IconData(0xf04a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_compact_alt</i> &#x2014; material icon named "view compact alt" (round).
  static const IconData view_compact_alt_rounded = IconData(0xf03ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_compact_alt</i> &#x2014; material icon named "view compact alt" (outlined).
  static const IconData view_compact_alt_outlined = IconData(0xf068e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_cozy</i> &#x2014; material icon named "view cozy".
  static const IconData view_cozy = IconData(0xf059b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_cozy</i> &#x2014; material icon named "view cozy" (sharp).
  static const IconData view_cozy_sharp = IconData(0xf04a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_cozy</i> &#x2014; material icon named "view cozy" (round).
  static const IconData view_cozy_rounded = IconData(0xf03ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_cozy</i> &#x2014; material icon named "view cozy" (outlined).
  static const IconData view_cozy_outlined = IconData(0xf068f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_day</i> &#x2014; material icon named "view day".
  static const IconData view_day = IconData(0xe6b2, 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(0xeda8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_day</i> &#x2014; material icon named "view day" (round).
  static const IconData view_day_rounded = IconData(0xf0287, 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(0xf495, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_headline</i> &#x2014; material icon named "view headline".
  static const IconData view_headline = IconData(0xe6b3, 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(0xeda9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_headline</i> &#x2014; material icon named "view headline" (round).
  static const IconData view_headline_rounded = IconData(0xf0288, 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(0xf496, 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(0xe6b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_in_ar</i> &#x2014; material icon named "view in ar" (sharp).
  static const IconData view_in_ar_sharp = IconData(0xedaa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_in_ar</i> &#x2014; material icon named "view in ar" (round).
  static const IconData view_in_ar_rounded = IconData(0xf0289, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_in_ar</i> &#x2014; material icon named "view in ar" (outlined).
  static const IconData view_in_ar_outlined = IconData(0xf497, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_kanban</i> &#x2014; material icon named "view kanban".
  static const IconData view_kanban = IconData(0xf059c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_kanban</i> &#x2014; material icon named "view kanban" (sharp).
  static const IconData view_kanban_sharp = IconData(0xf04a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_kanban</i> &#x2014; material icon named "view kanban" (round).
  static const IconData view_kanban_rounded = IconData(0xf03af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_kanban</i> &#x2014; material icon named "view kanban" (outlined).
  static const IconData view_kanban_outlined = IconData(0xf0690, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_list</i> &#x2014; material icon named "view list".
  static const IconData view_list = IconData(
    0xe6b5,
    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(
    0xedab,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">view_list</i> &#x2014; material icon named "view list" (round).
  static const IconData view_list_rounded = IconData(
    0xf028a,
    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(
    0xf498,
    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(0xe6b6, 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(0xedac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_module</i> &#x2014; material icon named "view module" (round).
  static const IconData view_module_rounded = IconData(0xf028b, 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(0xf499, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_quilt</i> &#x2014; material icon named "view quilt".
  static const IconData view_quilt = IconData(
    0xe6b7,
    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(
    0xedad,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">view_quilt</i> &#x2014; material icon named "view quilt" (round).
  static const IconData view_quilt_rounded = IconData(
    0xf028c,
    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(
    0xf49a,
    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(0xe6b8, 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(0xedae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_sidebar</i> &#x2014; material icon named "view sidebar" (round).
  static const IconData view_sidebar_rounded = IconData(0xf028d, 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(0xf49b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_stream</i> &#x2014; material icon named "view stream".
  static const IconData view_stream = IconData(0xe6b9, 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(0xedaf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_stream</i> &#x2014; material icon named "view stream" (round).
  static const IconData view_stream_rounded = IconData(0xf028e, 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(0xf49c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_timeline</i> &#x2014; material icon named "view timeline".
  static const IconData view_timeline = IconData(0xf059d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">view_timeline</i> &#x2014; material icon named "view timeline" (sharp).
  static const IconData view_timeline_sharp = IconData(0xf04a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_timeline</i> &#x2014; material icon named "view timeline" (round).
  static const IconData view_timeline_rounded = IconData(0xf03b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">view_timeline</i> &#x2014; material icon named "view timeline" (outlined).
  static const IconData view_timeline_outlined = IconData(0xf0691, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">view_week</i> &#x2014; material icon named "view week".
  static const IconData view_week = IconData(0xe6ba, 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(0xedb0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">view_week</i> &#x2014; material icon named "view week" (round).
  static const IconData view_week_rounded = IconData(0xf028f, 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(0xf49d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vignette</i> &#x2014; material icon named "vignette".
  static const IconData vignette = IconData(0xe6bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">vignette</i> &#x2014; material icon named "vignette" (sharp).
  static const IconData vignette_sharp = IconData(0xedb1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vignette</i> &#x2014; material icon named "vignette" (round).
  static const IconData vignette_rounded = IconData(0xf0290, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">vignette</i> &#x2014; material icon named "vignette" (outlined).
  static const IconData vignette_outlined = IconData(0xf49e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">villa</i> &#x2014; material icon named "villa".
  static const IconData villa = IconData(0xe6bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">villa</i> &#x2014; material icon named "villa" (sharp).
  static const IconData villa_sharp = IconData(0xedb2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">villa</i> &#x2014; material icon named "villa" (round).
  static const IconData villa_rounded = IconData(0xf0291, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">villa</i> &#x2014; material icon named "villa" (outlined).
  static const IconData villa_outlined = IconData(0xf49f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">visibility</i> &#x2014; material icon named "visibility".
  static const IconData visibility = IconData(0xe6bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">visibility</i> &#x2014; material icon named "visibility" (sharp).
  static const IconData visibility_sharp = IconData(0xedb4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">visibility</i> &#x2014; material icon named "visibility" (round).
  static const IconData visibility_rounded = IconData(0xf0293, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">visibility</i> &#x2014; material icon named "visibility" (outlined).
  static const IconData visibility_outlined = IconData(0xf4a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">visibility_off</i> &#x2014; material icon named "visibility off".
  static const IconData visibility_off = IconData(0xe6be, 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(0xedb3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">visibility_off</i> &#x2014; material icon named "visibility off" (round).
  static const IconData visibility_off_rounded = IconData(0xf0292, 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(0xf4a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">voice_chat</i> &#x2014; material icon named "voice chat".
  static const IconData voice_chat = IconData(0xe6bf, 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(0xedb5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">voice_chat</i> &#x2014; material icon named "voice chat" (round).
  static const IconData voice_chat_rounded = IconData(0xf0294, 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(0xf4a2, 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(0xe6c0, 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(0xedb6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">voice_over_off</i> &#x2014; material icon named "voice over off" (round).
  static const IconData voice_over_off_rounded = IconData(0xf0295, 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(0xf4a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">voicemail</i> &#x2014; material icon named "voicemail".
  static const IconData voicemail = IconData(0xe6c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">voicemail</i> &#x2014; material icon named "voicemail" (sharp).
  static const IconData voicemail_sharp = IconData(0xedb7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">voicemail</i> &#x2014; material icon named "voicemail" (round).
  static const IconData voicemail_rounded = IconData(0xf0296, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">voicemail</i> &#x2014; material icon named "voicemail" (outlined).
  static const IconData voicemail_outlined = IconData(0xf4a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">volcano</i> &#x2014; material icon named "volcano".
  static const IconData volcano = IconData(0xf07d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">volcano</i> &#x2014; material icon named "volcano" (sharp).
  static const IconData volcano_sharp = IconData(0xf077b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">volcano</i> &#x2014; material icon named "volcano" (round).
  static const IconData volcano_rounded = IconData(0xf082b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">volcano</i> &#x2014; material icon named "volcano" (outlined).
  static const IconData volcano_outlined = IconData(0xf0723, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">volume_down</i> &#x2014; material icon named "volume down".
  static const IconData volume_down = IconData(0xe6c2, 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(0xedb8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">volume_down</i> &#x2014; material icon named "volume down" (round).
  static const IconData volume_down_rounded = IconData(0xf0297, 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(0xf4a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">volume_down_alt</i> &#x2014; material icon named "volume down alt".
  static const IconData volume_down_alt = IconData(0xf059e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">volume_mute</i> &#x2014; material icon named "volume mute".
  static const IconData volume_mute = IconData(0xe6c3, 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(0xedb9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">volume_mute</i> &#x2014; material icon named "volume mute" (round).
  static const IconData volume_mute_rounded = IconData(0xf0298, 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(0xf4a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">volume_off</i> &#x2014; material icon named "volume off".
  static const IconData volume_off = IconData(0xe6c4, 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(0xedba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">volume_off</i> &#x2014; material icon named "volume off" (round).
  static const IconData volume_off_rounded = IconData(0xf0299, 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(0xf4a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">volume_up</i> &#x2014; material icon named "volume up".
  static const IconData volume_up = IconData(0xe6c5, 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(0xedbb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">volume_up</i> &#x2014; material icon named "volume up" (round).
  static const IconData volume_up_rounded = IconData(0xf029a, 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(0xf4a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">volunteer_activism</i> &#x2014; material icon named "volunteer activism".
  static const IconData volunteer_activism = IconData(0xe6c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">volunteer_activism</i> &#x2014; material icon named "volunteer activism" (sharp).
  static const IconData volunteer_activism_sharp = IconData(0xedbc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">volunteer_activism</i> &#x2014; material icon named "volunteer activism" (round).
  static const IconData volunteer_activism_rounded = IconData(0xf029b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">volunteer_activism</i> &#x2014; material icon named "volunteer activism" (outlined).
  static const IconData volunteer_activism_outlined = IconData(0xf4a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vpn_key</i> &#x2014; material icon named "vpn key".
  static const IconData vpn_key = IconData(0xe6c7, 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(0xedbd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vpn_key</i> &#x2014; material icon named "vpn key" (round).
  static const IconData vpn_key_rounded = IconData(0xf029c, 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(0xf4aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vpn_key_off</i> &#x2014; material icon named "vpn key off".
  static const IconData vpn_key_off = IconData(0xf059f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">vpn_key_off</i> &#x2014; material icon named "vpn key off" (sharp).
  static const IconData vpn_key_off_sharp = IconData(0xf04a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vpn_key_off</i> &#x2014; material icon named "vpn key off" (round).
  static const IconData vpn_key_off_rounded = IconData(0xf03b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">vpn_key_off</i> &#x2014; material icon named "vpn key off" (outlined).
  static const IconData vpn_key_off_outlined = IconData(0xf0692, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vpn_lock</i> &#x2014; material icon named "vpn lock".
  static const IconData vpn_lock = IconData(0xe6c8, 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(0xedbe, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vpn_lock</i> &#x2014; material icon named "vpn lock" (round).
  static const IconData vpn_lock_rounded = IconData(0xf029d, 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(0xf4ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">vrpano</i> &#x2014; material icon named "vrpano".
  static const IconData vrpano = IconData(0xe6c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">vrpano</i> &#x2014; material icon named "vrpano" (sharp).
  static const IconData vrpano_sharp = IconData(0xedbf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">vrpano</i> &#x2014; material icon named "vrpano" (round).
  static const IconData vrpano_rounded = IconData(0xf029e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">vrpano</i> &#x2014; material icon named "vrpano" (outlined).
  static const IconData vrpano_outlined = IconData(0xf4ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wallet</i> &#x2014; material icon named "wallet".
  static const IconData wallet = IconData(0xf07d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wallet</i> &#x2014; material icon named "wallet" (sharp).
  static const IconData wallet_sharp = IconData(0xf077c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wallet</i> &#x2014; material icon named "wallet" (round).
  static const IconData wallet_rounded = IconData(0xf082c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wallet</i> &#x2014; material icon named "wallet" (outlined).
  static const IconData wallet_outlined = IconData(0xf0724, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wallet_giftcard</i> &#x2014; material icon named "wallet giftcard".
  static const IconData wallet_giftcard = IconData(0xe13e, 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(0xe83b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wallet_giftcard</i> &#x2014; material icon named "wallet giftcard" (round).
  static const IconData wallet_giftcard_rounded = IconData(0xf61a, 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(0xef2d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wallet_membership</i> &#x2014; material icon named "wallet membership".
  static const IconData wallet_membership = IconData(0xe13f, 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(0xe83c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wallet_membership</i> &#x2014; material icon named "wallet membership" (round).
  static const IconData wallet_membership_rounded = IconData(0xf61b, 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(0xef2e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wallet_travel</i> &#x2014; material icon named "wallet travel".
  static const IconData wallet_travel = IconData(0xe140, 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(0xe83d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wallet_travel</i> &#x2014; material icon named "wallet travel" (round).
  static const IconData wallet_travel_rounded = IconData(0xf61c, 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(0xef2f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wallpaper</i> &#x2014; material icon named "wallpaper".
  static const IconData wallpaper = IconData(0xe6ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wallpaper</i> &#x2014; material icon named "wallpaper" (sharp).
  static const IconData wallpaper_sharp = IconData(0xedc0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wallpaper</i> &#x2014; material icon named "wallpaper" (round).
  static const IconData wallpaper_rounded = IconData(0xf029f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wallpaper</i> &#x2014; material icon named "wallpaper" (outlined).
  static const IconData wallpaper_outlined = IconData(0xf4ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">warehouse</i> &#x2014; material icon named "warehouse".
  static const IconData warehouse = IconData(0xf05a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">warehouse</i> &#x2014; material icon named "warehouse" (sharp).
  static const IconData warehouse_sharp = IconData(0xf04a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">warehouse</i> &#x2014; material icon named "warehouse" (round).
  static const IconData warehouse_rounded = IconData(0xf03b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">warehouse</i> &#x2014; material icon named "warehouse" (outlined).
  static const IconData warehouse_outlined = IconData(0xf0693, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">warning</i> &#x2014; material icon named "warning".
  static const IconData warning = IconData(0xe6cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">warning</i> &#x2014; material icon named "warning" (sharp).
  static const IconData warning_sharp = IconData(0xedc2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">warning</i> &#x2014; material icon named "warning" (round).
  static const IconData warning_rounded = IconData(0xf02a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">warning</i> &#x2014; material icon named "warning" (outlined).
  static const IconData warning_outlined = IconData(0xf4af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">warning_amber</i> &#x2014; material icon named "warning amber".
  static const IconData warning_amber = IconData(0xe6cc, 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(0xedc1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">warning_amber</i> &#x2014; material icon named "warning amber" (round).
  static const IconData warning_amber_rounded = IconData(0xf02a0, 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(0xf4ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wash</i> &#x2014; material icon named "wash".
  static const IconData wash = IconData(0xe6cd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wash</i> &#x2014; material icon named "wash" (sharp).
  static const IconData wash_sharp = IconData(0xedc3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wash</i> &#x2014; material icon named "wash" (round).
  static const IconData wash_rounded = IconData(0xf02a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wash</i> &#x2014; material icon named "wash" (outlined).
  static const IconData wash_outlined = IconData(0xf4b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">watch</i> &#x2014; material icon named "watch".
  static const IconData watch = IconData(0xe6ce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">watch</i> &#x2014; material icon named "watch" (sharp).
  static const IconData watch_sharp = IconData(0xedc5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">watch</i> &#x2014; material icon named "watch" (round).
  static const IconData watch_rounded = IconData(0xf02a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">watch</i> &#x2014; material icon named "watch" (outlined).
  static const IconData watch_outlined = IconData(0xf4b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">watch_later</i> &#x2014; material icon named "watch later".
  static const IconData watch_later = IconData(0xe6cf, 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(0xedc4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">watch_later</i> &#x2014; material icon named "watch later" (round).
  static const IconData watch_later_rounded = IconData(0xf02a3, 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(0xf4b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">watch_off</i> &#x2014; material icon named "watch off".
  static const IconData watch_off = IconData(0xf05a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">watch_off</i> &#x2014; material icon named "watch off" (sharp).
  static const IconData watch_off_sharp = IconData(0xf04a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">watch_off</i> &#x2014; material icon named "watch off" (round).
  static const IconData watch_off_rounded = IconData(0xf03b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">watch_off</i> &#x2014; material icon named "watch off" (outlined).
  static const IconData watch_off_outlined = IconData(0xf0694, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">water</i> &#x2014; material icon named "water".
  static const IconData water = IconData(0xe6d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">water</i> &#x2014; material icon named "water" (sharp).
  static const IconData water_sharp = IconData(0xedc7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">water</i> &#x2014; material icon named "water" (round).
  static const IconData water_rounded = IconData(0xf02a6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">water</i> &#x2014; material icon named "water" (outlined).
  static const IconData water_outlined = IconData(0xf4b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">water_damage</i> &#x2014; material icon named "water damage".
  static const IconData water_damage = IconData(0xe6d1, 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(0xedc6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">water_damage</i> &#x2014; material icon named "water damage" (round).
  static const IconData water_damage_rounded = IconData(0xf02a5, 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(0xf4b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">water_drop</i> &#x2014; material icon named "water drop".
  static const IconData water_drop = IconData(0xf05a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">water_drop</i> &#x2014; material icon named "water drop" (sharp).
  static const IconData water_drop_sharp = IconData(0xf04a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">water_drop</i> &#x2014; material icon named "water drop" (round).
  static const IconData water_drop_rounded = IconData(0xf03b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">water_drop</i> &#x2014; material icon named "water drop" (outlined).
  static const IconData water_drop_outlined = IconData(0xf0695, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">waterfall_chart</i> &#x2014; material icon named "waterfall chart".
  static const IconData waterfall_chart = IconData(0xe6d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">waterfall_chart</i> &#x2014; material icon named "waterfall chart" (sharp).
  static const IconData waterfall_chart_sharp = IconData(0xedc8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">waterfall_chart</i> &#x2014; material icon named "waterfall chart" (round).
  static const IconData waterfall_chart_rounded = IconData(0xf02a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">waterfall_chart</i> &#x2014; material icon named "waterfall chart" (outlined).
  static const IconData waterfall_chart_outlined = IconData(0xf4b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">waves</i> &#x2014; material icon named "waves".
  static const IconData waves = IconData(0xe6d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">waves</i> &#x2014; material icon named "waves" (sharp).
  static const IconData waves_sharp = IconData(0xedc9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">waves</i> &#x2014; material icon named "waves" (round).
  static const IconData waves_rounded = IconData(0xf02a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">waves</i> &#x2014; material icon named "waves" (outlined).
  static const IconData waves_outlined = IconData(0xf4b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">waving_hand</i> &#x2014; material icon named "waving hand".
  static const IconData waving_hand = IconData(0xf05a3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">waving_hand</i> &#x2014; material icon named "waving hand" (sharp).
  static const IconData waving_hand_sharp = IconData(0xf04a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">waving_hand</i> &#x2014; material icon named "waving hand" (round).
  static const IconData waving_hand_rounded = IconData(0xf03b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">waving_hand</i> &#x2014; material icon named "waving hand" (outlined).
  static const IconData waving_hand_outlined = IconData(0xf0696, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wb_auto</i> &#x2014; material icon named "wb auto".
  static const IconData wb_auto = IconData(0xe6d4, 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(0xedca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wb_auto</i> &#x2014; material icon named "wb auto" (round).
  static const IconData wb_auto_rounded = IconData(0xf02a9, 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(0xf4b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wb_cloudy</i> &#x2014; material icon named "wb cloudy".
  static const IconData wb_cloudy = IconData(0xe6d5, 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(0xedcb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wb_cloudy</i> &#x2014; material icon named "wb cloudy" (round).
  static const IconData wb_cloudy_rounded = IconData(0xf02aa, 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(0xf4b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wb_incandescent</i> &#x2014; material icon named "wb incandescent".
  static const IconData wb_incandescent = IconData(0xe6d6, 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(0xedcc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wb_incandescent</i> &#x2014; material icon named "wb incandescent" (round).
  static const IconData wb_incandescent_rounded = IconData(0xf02ab, 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(0xf4b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wb_iridescent</i> &#x2014; material icon named "wb iridescent".
  static const IconData wb_iridescent = IconData(0xe6d7, 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(0xedcd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wb_iridescent</i> &#x2014; material icon named "wb iridescent" (round).
  static const IconData wb_iridescent_rounded = IconData(0xf02ac, 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(0xf4ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wb_shade</i> &#x2014; material icon named "wb shade".
  static const IconData wb_shade = IconData(0xe6d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wb_shade</i> &#x2014; material icon named "wb shade" (sharp).
  static const IconData wb_shade_sharp = IconData(0xedce, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wb_shade</i> &#x2014; material icon named "wb shade" (round).
  static const IconData wb_shade_rounded = IconData(0xf02ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wb_shade</i> &#x2014; material icon named "wb shade" (outlined).
  static const IconData wb_shade_outlined = IconData(0xf4bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wb_sunny</i> &#x2014; material icon named "wb sunny".
  static const IconData wb_sunny = IconData(0xe6d9, 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(0xedcf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wb_sunny</i> &#x2014; material icon named "wb sunny" (round).
  static const IconData wb_sunny_rounded = IconData(0xf02ae, 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(0xf4bc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wb_twighlight</i> &#x2014; material icon named "wb twighlight".
  static const IconData wb_twighlight = IconData(0xe6da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wb_twilight</i> &#x2014; material icon named "wb twilight".
  static const IconData wb_twilight = IconData(0xe6db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wb_twilight</i> &#x2014; material icon named "wb twilight" (sharp).
  static const IconData wb_twilight_sharp = IconData(0xedd0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wb_twilight</i> &#x2014; material icon named "wb twilight" (round).
  static const IconData wb_twilight_rounded = IconData(0xf02af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wb_twilight</i> &#x2014; material icon named "wb twilight" (outlined).
  static const IconData wb_twilight_outlined = IconData(0xf4bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wc</i> &#x2014; material icon named "wc".
  static const IconData wc = IconData(0xe6dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wc</i> &#x2014; material icon named "wc" (sharp).
  static const IconData wc_sharp = IconData(0xedd1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wc</i> &#x2014; material icon named "wc" (round).
  static const IconData wc_rounded = IconData(0xf02b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wc</i> &#x2014; material icon named "wc" (outlined).
  static const IconData wc_outlined = IconData(0xf4be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">web</i> &#x2014; material icon named "web".
  static const IconData web = IconData(0xe6dd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">web</i> &#x2014; material icon named "web" (sharp).
  static const IconData web_sharp = IconData(0xedd4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">web</i> &#x2014; material icon named "web" (round).
  static const IconData web_rounded = IconData(0xf02b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">web</i> &#x2014; material icon named "web" (outlined).
  static const IconData web_outlined = IconData(0xf4c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">web_asset</i> &#x2014; material icon named "web asset".
  static const IconData web_asset = IconData(0xe6de, 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(0xedd3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">web_asset</i> &#x2014; material icon named "web asset" (round).
  static const IconData web_asset_rounded = IconData(0xf02b2, 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(0xf4c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">web_asset_off</i> &#x2014; material icon named "web asset off".
  static const IconData web_asset_off = IconData(0xe6df, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">web_asset_off</i> &#x2014; material icon named "web asset off" (sharp).
  static const IconData web_asset_off_sharp = IconData(0xedd2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">web_asset_off</i> &#x2014; material icon named "web asset off" (round).
  static const IconData web_asset_off_rounded = IconData(0xf02b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">web_asset_off</i> &#x2014; material icon named "web asset off" (outlined).
  static const IconData web_asset_off_outlined = IconData(0xf4bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">web_stories</i> &#x2014; material icon named "web stories".
  static const IconData web_stories = IconData(0xe6e0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">web_stories</i> &#x2014; material icon named "web stories" (sharp).
  static const IconData web_stories_sharp = IconData(0xf0850, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">web_stories</i> &#x2014; material icon named "web stories" (round).
  static const IconData web_stories_rounded = IconData(0xf0899, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">web_stories</i> &#x2014; material icon named "web stories" (outlined).
  static const IconData web_stories_outlined = IconData(0xf08b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">webhook</i> &#x2014; material icon named "webhook".
  static const IconData webhook = IconData(0xf05a4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">webhook</i> &#x2014; material icon named "webhook" (sharp).
  static const IconData webhook_sharp = IconData(0xf04a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">webhook</i> &#x2014; material icon named "webhook" (round).
  static const IconData webhook_rounded = IconData(0xf03b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">webhook</i> &#x2014; material icon named "webhook" (outlined).
  static const IconData webhook_outlined = IconData(0xf0697, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wechat</i> &#x2014; material icon named "wechat".
  static const IconData wechat = IconData(0xf05a5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wechat</i> &#x2014; material icon named "wechat" (sharp).
  static const IconData wechat_sharp = IconData(0xf04aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wechat</i> &#x2014; material icon named "wechat" (round).
  static const IconData wechat_rounded = IconData(0xf03b7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wechat</i> &#x2014; material icon named "wechat" (outlined).
  static const IconData wechat_outlined = IconData(0xf0698, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">weekend</i> &#x2014; material icon named "weekend".
  static const IconData weekend = IconData(0xe6e1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">weekend</i> &#x2014; material icon named "weekend" (sharp).
  static const IconData weekend_sharp = IconData(0xedd5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">weekend</i> &#x2014; material icon named "weekend" (round).
  static const IconData weekend_rounded = IconData(0xf02b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">weekend</i> &#x2014; material icon named "weekend" (outlined).
  static const IconData weekend_outlined = IconData(0xf4c2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">west</i> &#x2014; material icon named "west".
  static const IconData west = IconData(0xe6e2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">west</i> &#x2014; material icon named "west" (sharp).
  static const IconData west_sharp = IconData(0xedd6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">west</i> &#x2014; material icon named "west" (round).
  static const IconData west_rounded = IconData(0xf02b5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">west</i> &#x2014; material icon named "west" (outlined).
  static const IconData west_outlined = IconData(0xf4c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">whatshot</i> &#x2014; material icon named "whatshot".
  static const IconData whatshot = IconData(0xe6e3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">whatshot</i> &#x2014; material icon named "whatshot" (sharp).
  static const IconData whatshot_sharp = IconData(0xedd7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">whatshot</i> &#x2014; material icon named "whatshot" (round).
  static const IconData whatshot_rounded = IconData(0xf02b6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">whatshot</i> &#x2014; material icon named "whatshot" (outlined).
  static const IconData whatshot_outlined = IconData(0xf4c4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wheelchair_pickup</i> &#x2014; material icon named "wheelchair pickup".
  static const IconData wheelchair_pickup = IconData(0xe6e4, 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(0xedd8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wheelchair_pickup</i> &#x2014; material icon named "wheelchair pickup" (round).
  static const IconData wheelchair_pickup_rounded = IconData(0xf02b7, 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(0xf4c5, 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(0xe6e5, 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(0xedd9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">where_to_vote</i> &#x2014; material icon named "where to vote" (round).
  static const IconData where_to_vote_rounded = IconData(0xf02b8, 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(0xf4c6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">widgets</i> &#x2014; material icon named "widgets".
  static const IconData widgets = IconData(0xe6e6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">widgets</i> &#x2014; material icon named "widgets" (sharp).
  static const IconData widgets_sharp = IconData(0xedda, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">widgets</i> &#x2014; material icon named "widgets" (round).
  static const IconData widgets_rounded = IconData(0xf02b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">widgets</i> &#x2014; material icon named "widgets" (outlined).
  static const IconData widgets_outlined = IconData(0xf4c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">width_full</i> &#x2014; material icon named "width full".
  static const IconData width_full = IconData(0xf07d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">width_full</i> &#x2014; material icon named "width full" (sharp).
  static const IconData width_full_sharp = IconData(0xf077d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">width_full</i> &#x2014; material icon named "width full" (round).
  static const IconData width_full_rounded = IconData(0xf082d, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">width_full</i> &#x2014; material icon named "width full" (outlined).
  static const IconData width_full_outlined = IconData(0xf0725, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">width_normal</i> &#x2014; material icon named "width normal".
  static const IconData width_normal = IconData(0xf07d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">width_normal</i> &#x2014; material icon named "width normal" (sharp).
  static const IconData width_normal_sharp = IconData(0xf077e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">width_normal</i> &#x2014; material icon named "width normal" (round).
  static const IconData width_normal_rounded = IconData(0xf082e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">width_normal</i> &#x2014; material icon named "width normal" (outlined).
  static const IconData width_normal_outlined = IconData(0xf0726, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">width_wide</i> &#x2014; material icon named "width wide".
  static const IconData width_wide = IconData(0xf07d7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">width_wide</i> &#x2014; material icon named "width wide" (sharp).
  static const IconData width_wide_sharp = IconData(0xf077f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">width_wide</i> &#x2014; material icon named "width wide" (round).
  static const IconData width_wide_rounded = IconData(0xf082f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">width_wide</i> &#x2014; material icon named "width wide" (outlined).
  static const IconData width_wide_outlined = IconData(0xf0727, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wifi</i> &#x2014; material icon named "wifi".
  static const IconData wifi = IconData(0xe6e7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wifi</i> &#x2014; material icon named "wifi" (sharp).
  static const IconData wifi_sharp = IconData(0xede0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi</i> &#x2014; material icon named "wifi" (round).
  static const IconData wifi_rounded = IconData(0xf02bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wifi</i> &#x2014; material icon named "wifi" (outlined).
  static const IconData wifi_outlined = IconData(0xf4cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wifi_1_bar</i> &#x2014; material icon named "wifi 1 bar".
  static const IconData wifi_1_bar = IconData(0xf07d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wifi_1_bar</i> &#x2014; material icon named "wifi 1 bar" (sharp).
  static const IconData wifi_1_bar_sharp = IconData(0xf0780, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi_1_bar</i> &#x2014; material icon named "wifi 1 bar" (round).
  static const IconData wifi_1_bar_rounded = IconData(0xf0830, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wifi_1_bar</i> &#x2014; material icon named "wifi 1 bar" (outlined).
  static const IconData wifi_1_bar_outlined = IconData(0xf0728, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wifi_2_bar</i> &#x2014; material icon named "wifi 2 bar".
  static const IconData wifi_2_bar = IconData(0xf07d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wifi_2_bar</i> &#x2014; material icon named "wifi 2 bar" (sharp).
  static const IconData wifi_2_bar_sharp = IconData(0xf0781, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi_2_bar</i> &#x2014; material icon named "wifi 2 bar" (round).
  static const IconData wifi_2_bar_rounded = IconData(0xf0831, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wifi_2_bar</i> &#x2014; material icon named "wifi 2 bar" (outlined).
  static const IconData wifi_2_bar_outlined = IconData(0xf0729, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wifi_calling</i> &#x2014; material icon named "wifi calling".
  static const IconData wifi_calling = IconData(0xe6e8, 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(0xeddc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi_calling</i> &#x2014; material icon named "wifi calling" (round).
  static const IconData wifi_calling_rounded = IconData(0xf02bb, 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(0xf4c9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wifi_calling_3</i> &#x2014; material icon named "wifi calling 3".
  static const IconData wifi_calling_3 = IconData(0xe6e9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wifi_calling_3</i> &#x2014; material icon named "wifi calling 3" (sharp).
  static const IconData wifi_calling_3_sharp = IconData(0xeddb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi_calling_3</i> &#x2014; material icon named "wifi calling 3" (round).
  static const IconData wifi_calling_3_rounded = IconData(0xf02ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wifi_calling_3</i> &#x2014; material icon named "wifi calling 3" (outlined).
  static const IconData wifi_calling_3_outlined = IconData(0xf4c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wifi_channel</i> &#x2014; material icon named "wifi channel".
  static const IconData wifi_channel = IconData(0xf05a7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wifi_channel</i> &#x2014; material icon named "wifi channel" (sharp).
  static const IconData wifi_channel_sharp = IconData(0xf04ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi_channel</i> &#x2014; material icon named "wifi channel" (round).
  static const IconData wifi_channel_rounded = IconData(0xf03b9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wifi_channel</i> &#x2014; material icon named "wifi channel" (outlined).
  static const IconData wifi_channel_outlined = IconData(0xf069a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wifi_find</i> &#x2014; material icon named "wifi find".
  static const IconData wifi_find = IconData(0xf05a8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wifi_find</i> &#x2014; material icon named "wifi find" (sharp).
  static const IconData wifi_find_sharp = IconData(0xf04ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi_find</i> &#x2014; material icon named "wifi find" (round).
  static const IconData wifi_find_rounded = IconData(0xf03ba, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wifi_find</i> &#x2014; material icon named "wifi find" (outlined).
  static const IconData wifi_find_outlined = IconData(0xf069b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wifi_lock</i> &#x2014; material icon named "wifi lock".
  static const IconData wifi_lock = IconData(0xe6ea, 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(0xeddd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi_lock</i> &#x2014; material icon named "wifi lock" (round).
  static const IconData wifi_lock_rounded = IconData(0xf02bc, 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(0xf4ca, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wifi_off</i> &#x2014; material icon named "wifi off".
  static const IconData wifi_off = IconData(0xe6eb, 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(0xedde, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi_off</i> &#x2014; material icon named "wifi off" (round).
  static const IconData wifi_off_rounded = IconData(0xf02bd, 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(0xf4cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wifi_password</i> &#x2014; material icon named "wifi password".
  static const IconData wifi_password = IconData(0xf05a9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wifi_password</i> &#x2014; material icon named "wifi password" (sharp).
  static const IconData wifi_password_sharp = IconData(0xf04ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi_password</i> &#x2014; material icon named "wifi password" (round).
  static const IconData wifi_password_rounded = IconData(0xf03bb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wifi_password</i> &#x2014; material icon named "wifi password" (outlined).
  static const IconData wifi_password_outlined = IconData(0xf069c, 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(0xe6ec, 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(0xeddf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi_protected_setup</i> &#x2014; material icon named "wifi protected setup" (round).
  static const IconData wifi_protected_setup_rounded = IconData(
    0xf02be,
    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(
    0xf4cd,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">wifi_tethering</i> &#x2014; material icon named "wifi tethering".
  static const IconData wifi_tethering = IconData(0xe6ed, 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(0xede3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi_tethering</i> &#x2014; material icon named "wifi tethering" (round).
  static const IconData wifi_tethering_rounded = IconData(0xf02c2, 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(0xf4d0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wifi_tethering_error</i> &#x2014; material icon named "wifi tethering error".
  static const IconData wifi_tethering_error = IconData(0xf05aa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wifi_tethering_error</i> &#x2014; material icon named "wifi tethering error" (sharp).
  static const IconData wifi_tethering_error_sharp = IconData(0xf04af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wifi_tethering_error</i> &#x2014; material icon named "wifi tethering error".
  static const IconData wifi_tethering_error_rounded = IconData(
    0xf05aa,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">wifi_tethering_error</i> &#x2014; material icon named "wifi tethering error" (outlined).
  static const IconData wifi_tethering_error_outlined = IconData(
    0xf069d,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-sharp md-36">wifi_tethering_error_rounded</i> &#x2014; material icon named "wifi tethering error rounded" (sharp).
  static const IconData wifi_tethering_error_rounded_sharp = IconData(
    0xf04af,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-round md-36">wifi_tethering_error_rounded</i> &#x2014; material icon named "wifi tethering error rounded" (round).
  static const IconData wifi_tethering_error_rounded_rounded = IconData(
    0xf02c0,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons-outlined md-36">wifi_tethering_error_rounded</i> &#x2014; material icon named "wifi tethering error rounded" (outlined).
  static const IconData wifi_tethering_error_rounded_outlined = IconData(
    0xf069d,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">wifi_tethering_off</i> &#x2014; material icon named "wifi tethering off".
  static const IconData wifi_tethering_off = IconData(0xe6ef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wifi_tethering_off</i> &#x2014; material icon named "wifi tethering off" (sharp).
  static const IconData wifi_tethering_off_sharp = IconData(0xede2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wifi_tethering_off</i> &#x2014; material icon named "wifi tethering off" (round).
  static const IconData wifi_tethering_off_rounded = IconData(0xf02c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wifi_tethering_off</i> &#x2014; material icon named "wifi tethering off" (outlined).
  static const IconData wifi_tethering_off_outlined = IconData(0xf4cf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wind_power</i> &#x2014; material icon named "wind power".
  static const IconData wind_power = IconData(0xf07da, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wind_power</i> &#x2014; material icon named "wind power" (sharp).
  static const IconData wind_power_sharp = IconData(0xf0782, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wind_power</i> &#x2014; material icon named "wind power" (round).
  static const IconData wind_power_rounded = IconData(0xf0832, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wind_power</i> &#x2014; material icon named "wind power" (outlined).
  static const IconData wind_power_outlined = IconData(0xf072a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">window</i> &#x2014; material icon named "window".
  static const IconData window = IconData(0xe6f0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">window</i> &#x2014; material icon named "window" (sharp).
  static const IconData window_sharp = IconData(0xede4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">window</i> &#x2014; material icon named "window" (round).
  static const IconData window_rounded = IconData(0xf02c3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">window</i> &#x2014; material icon named "window" (outlined).
  static const IconData window_outlined = IconData(0xf4d1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wine_bar</i> &#x2014; material icon named "wine bar".
  static const IconData wine_bar = IconData(0xe6f1, 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(0xede5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wine_bar</i> &#x2014; material icon named "wine bar" (round).
  static const IconData wine_bar_rounded = IconData(0xf02c4, 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(0xf4d2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">woman</i> &#x2014; material icon named "woman".
  static const IconData woman = IconData(0xf05ab, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">woman</i> &#x2014; material icon named "woman" (sharp).
  static const IconData woman_sharp = IconData(0xf04b0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">woman</i> &#x2014; material icon named "woman" (round).
  static const IconData woman_rounded = IconData(0xf03bd, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">woman</i> &#x2014; material icon named "woman" (outlined).
  static const IconData woman_outlined = IconData(0xf069e, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">woman_2</i> &#x2014; material icon named "woman 2".
  static const IconData woman_2 = IconData(0xf087c, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">woman_2</i> &#x2014; material icon named "woman 2" (sharp).
  static const IconData woman_2_sharp = IconData(0xf0851, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">woman_2</i> &#x2014; material icon named "woman 2" (round).
  static const IconData woman_2_rounded = IconData(0xf089a, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">woman_2</i> &#x2014; material icon named "woman 2" (outlined).
  static const IconData woman_2_outlined = IconData(0xf08b8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">woo_commerce</i> &#x2014; material icon named "woo commerce".
  static const IconData woo_commerce = IconData(0xf05ac, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">woo_commerce</i> &#x2014; material icon named "woo commerce" (sharp).
  static const IconData woo_commerce_sharp = IconData(0xf04b1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">woo_commerce</i> &#x2014; material icon named "woo commerce" (round).
  static const IconData woo_commerce_rounded = IconData(0xf03be, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">woo_commerce</i> &#x2014; material icon named "woo commerce" (outlined).
  static const IconData woo_commerce_outlined = IconData(0xf069f, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wordpress</i> &#x2014; material icon named "wordpress".
  static const IconData wordpress = IconData(0xf05ad, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wordpress</i> &#x2014; material icon named "wordpress" (sharp).
  static const IconData wordpress_sharp = IconData(0xf04b2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wordpress</i> &#x2014; material icon named "wordpress" (round).
  static const IconData wordpress_rounded = IconData(0xf03bf, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wordpress</i> &#x2014; material icon named "wordpress" (outlined).
  static const IconData wordpress_outlined = IconData(0xf06a0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">work</i> &#x2014; material icon named "work".
  static const IconData work = IconData(0xe6f2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">work</i> &#x2014; material icon named "work" (sharp).
  static const IconData work_sharp = IconData(0xede8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">work</i> &#x2014; material icon named "work" (round).
  static const IconData work_rounded = IconData(0xf02c7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">work</i> &#x2014; material icon named "work" (outlined).
  static const IconData work_outlined = IconData(0xf4d5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">work_history</i> &#x2014; material icon named "work history".
  static const IconData work_history = IconData(0xf07db, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">work_history</i> &#x2014; material icon named "work history" (sharp).
  static const IconData work_history_sharp = IconData(0xf0783, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">work_history</i> &#x2014; material icon named "work history" (round).
  static const IconData work_history_rounded = IconData(0xf0833, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">work_history</i> &#x2014; material icon named "work history" (outlined).
  static const IconData work_history_outlined = IconData(0xf072b, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">work_off</i> &#x2014; material icon named "work off".
  static const IconData work_off = IconData(0xe6f3, 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(0xede6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">work_off</i> &#x2014; material icon named "work off" (round).
  static const IconData work_off_rounded = IconData(0xf02c5, 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(0xf4d3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">work_outline</i> &#x2014; material icon named "work outline".
  static const IconData work_outline = IconData(0xe6f4, 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(0xede7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">work_outline</i> &#x2014; material icon named "work outline" (round).
  static const IconData work_outline_rounded = IconData(0xf02c6, 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(0xf4d4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">workspace_premium</i> &#x2014; material icon named "workspace premium".
  static const IconData workspace_premium = IconData(0xf05ae, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">workspace_premium</i> &#x2014; material icon named "workspace premium" (sharp).
  static const IconData workspace_premium_sharp = IconData(0xf04b3, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">workspace_premium</i> &#x2014; material icon named "workspace premium" (round).
  static const IconData workspace_premium_rounded = IconData(0xf03c0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">workspace_premium</i> &#x2014; material icon named "workspace premium" (outlined).
  static const IconData workspace_premium_outlined = IconData(0xf06a1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">workspaces</i> &#x2014; material icon named "workspaces".
  static const IconData workspaces = IconData(0xe6f5, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">workspaces</i> &#x2014; material icon named "workspaces" (sharp).
  static const IconData workspaces_sharp = IconData(0xede9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">workspaces</i> &#x2014; material icon named "workspaces" (round).
  static const IconData workspaces_rounded = IconData(0xf02c8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">workspaces</i> &#x2014; material icon named "workspaces" (outlined).
  static const IconData workspaces_outlined = IconData(0xf4d6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">workspaces_filled</i> &#x2014; material icon named "workspaces filled".
  static const IconData workspaces_filled = IconData(0xe6f6, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">workspaces_outline</i> &#x2014; material icon named "workspaces outline".
  static const IconData workspaces_outline = IconData(0xe6f7, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wrap_text</i> &#x2014; material icon named "wrap text".
  static const IconData wrap_text = IconData(
    0xe6f8,
    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(
    0xedea,
    fontFamily: 'MaterialIcons',
    matchTextDirection: true,
  );

  /// <i class="material-icons-round md-36">wrap_text</i> &#x2014; material icon named "wrap text" (round).
  static const IconData wrap_text_rounded = IconData(
    0xf02c9,
    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(
    0xf4d7,
    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(0xe6f9, 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(0xedeb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wrong_location</i> &#x2014; material icon named "wrong location" (round).
  static const IconData wrong_location_rounded = IconData(0xf02ca, 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(0xf4d8, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">wysiwyg</i> &#x2014; material icon named "wysiwyg".
  static const IconData wysiwyg = IconData(0xe6fa, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">wysiwyg</i> &#x2014; material icon named "wysiwyg" (sharp).
  static const IconData wysiwyg_sharp = IconData(0xedec, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">wysiwyg</i> &#x2014; material icon named "wysiwyg" (round).
  static const IconData wysiwyg_rounded = IconData(0xf02cb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">wysiwyg</i> &#x2014; material icon named "wysiwyg" (outlined).
  static const IconData wysiwyg_outlined = IconData(0xf4d9, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">yard</i> &#x2014; material icon named "yard".
  static const IconData yard = IconData(0xe6fb, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">yard</i> &#x2014; material icon named "yard" (sharp).
  static const IconData yard_sharp = IconData(0xeded, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">yard</i> &#x2014; material icon named "yard" (round).
  static const IconData yard_rounded = IconData(0xf02cc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">yard</i> &#x2014; material icon named "yard" (outlined).
  static const IconData yard_outlined = IconData(0xf4da, 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(0xe6fc, 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(0xedee, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">youtube_searched_for</i> &#x2014; material icon named "youtube searched for" (round).
  static const IconData youtube_searched_for_rounded = IconData(
    0xf02cd,
    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(
    0xf4db,
    fontFamily: 'MaterialIcons',
  );

  /// <i class="material-icons md-36">zoom_in</i> &#x2014; material icon named "zoom in".
  static const IconData zoom_in = IconData(0xe6fd, 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(0xedef, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">zoom_in</i> &#x2014; material icon named "zoom in" (round).
  static const IconData zoom_in_rounded = IconData(0xf02ce, 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(0xf4dc, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">zoom_in_map</i> &#x2014; material icon named "zoom in map".
  static const IconData zoom_in_map = IconData(0xf05af, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-sharp md-36">zoom_in_map</i> &#x2014; material icon named "zoom in map" (sharp).
  static const IconData zoom_in_map_sharp = IconData(0xf04b4, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">zoom_in_map</i> &#x2014; material icon named "zoom in map" (round).
  static const IconData zoom_in_map_rounded = IconData(0xf03c1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-outlined md-36">zoom_in_map</i> &#x2014; material icon named "zoom in map" (outlined).
  static const IconData zoom_in_map_outlined = IconData(0xf06a2, fontFamily: 'MaterialIcons');

  /// <i class="material-icons md-36">zoom_out</i> &#x2014; material icon named "zoom out".
  static const IconData zoom_out = IconData(0xe6fe, 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(0xedf1, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">zoom_out</i> &#x2014; material icon named "zoom out" (round).
  static const IconData zoom_out_rounded = IconData(0xf02d0, 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(0xf4de, 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(0xe6ff, 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(0xedf0, fontFamily: 'MaterialIcons');

  /// <i class="material-icons-round md-36">zoom_out_map</i> &#x2014; material icon named "zoom out map" (round).
  static const IconData zoom_out_map_rounded = IconData(0xf02cf, 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(0xf4dd, fontFamily: 'MaterialIcons');
  // END GENERATED ICONS
}
