	keyHelperunicodeScalarValuesscanCodekeyCode	modifiersisDownspecifiedLogicalKeykeyLabelphysicalKey
logicalKeyisModifierPressedgetModifierSidedebugFillProperties==hashCodedebugToolkit	numpadKeyplatformPlanemodifierCapsLockmodifierShiftmodifierControlmodifierAltmodifierMetamodifierNumericPad_mergeModifiersmodifierMod1modifierMod2RawKeyEventDataLinux	KeyHelperGLFWKeyHelperGtkKeyHelper=DiagnosticPropertiesBuilderLogicalKeyboardKeyPhysicalKeyboardKeyKeyEventRawKeyboard
DeprecatedRawKeyEventData	valueMaskintbooloverrideStringfromCharCodekLinuxToPhysicalKeywebPlanefindKeyByKeyId	numpadKey
isNotEmptyisControlCharacterunicodePlane
logicalKeyplatformPlaneModifierKeyKeyboardSideanyisModifierPressedsidekeyCodeisDowngetModifierSidevoiddebugFillPropertiesaddDiagnosticsPropertydebugToolkitdefaultValueObject	identicalruntimeType	keyHelperunicodeScalarValuesscanCode	modifiershashFlutterErrorcontrolModifiershiftModifieraltModifiermetaModifiercapsLockModifiernumLockModifierfunctionModifiersymbolModifierscrollLockModifierallkGlfwNumpadMapkGlfwToLogicalKey	glfwPlanekGtkNumpadMapkGtkToLogicalKeygtkPlaneRawKeyEventData	KeyHelper`S%h�âëSô?*Þƒ�t�”DiagnosticPropertiesBuilder �Kpackage:flutter/foundation.dart�¶�âLogicalKeyboardKeyPhysicalKeyboardKey �™keyboard_key.g.dart   €à   package:flutter/foundation.dart  �   keyboard_maps.g.dart  �-   raw_keyboard.dart¤° À L«�ý =€ˆ€§€©€Ó€Ý€ß�
��,�I�K�—�™�å�ç‚‚‚l‚¹‚¾ƒƒ`ƒeƒtƒyƒ¾ƒÌ„/„h„k„¡„ß„ï…T…�…”…´…Ò…õ††$†=†X†w†Ã†Å‡‡ ‡‡Â‡à‡âˆCˆ�ˆ–ˆõ‰U‰u‰—‰™‰Û‰âŠ/ŠbŠyŠ{Š¹ŠÀ‹‹g‹}‹‹ÊŒ$Œ<Œ>Œ‹Œ¡Œ£Œò���c�²�¹�îŽŽŽ Ž„Ž†Ž“Ž½�"�$�1�X�€�­�þ��Q�Ÿ�Û‘$‘B‘[‘b‘d‘µ’’X’g’»’Ô“7“Œ“““•“å”,”G”]”d”f”µ”Ã•••••o•˜•¤•¶•É•â•ù–––––H–t–y–{–ˆ–Î–ú—O—ª—ï˜2˜y˜»˜Ð™2™:™?™A™N™r™•™©™°™Ý™ò™ùš&šgš¤šËšð››:›?›A›N›e›Ë›Î›ÐœœœYœ�œ¶œ»�
�W�e�€�¹�¼�Øž!ž1žNž‰žŽžµžÓžòŸŸ4ŸBŸˆŸ�Ÿ”Ÿ–Ÿ¿ŸÆ  ! # t Ã Ó ð¡+¡0¡b¡d¡³¡Á¡Ñ¡î¢)¢.¢I¢_¢u¢ ¢»¢Ö¢Ý¢ß££H£J£…£µ£·£î¤¤¤¤E¤J¤™¤æ¤ô¥¥H¥K¥w¥Ç¥ý¦¦G¦˜¦æ§4§‚§�§¦§Õ§×¨'¨f¨m¨­¨Ù¨Û©+©i©p©°©Þ©àª0ªmªtª´ªÞªà«0«u«|«¼«ç«é¬9¬w¬~¬¾¬ï¬ñ¬þ­$­&­…­¯­Ö­þ®'®Q®v®œ®Â®é¯¯4¯6¯ˆ¯Ù°*°R°T°‡°Æ±±D±€±¬±Ù±è±ð±ò²A²F²H²U²p²†²œ²Ç²â²ý³³_³z³Â´´F´ˆ´ÒµµMµ{µ§µ×µßµäµæµó¶&¶p¶¤¶é·····K·p·u·w·„·µ·Ý·â·ä·ñ¸+¸.¸0¸g¸l¸»¹¹¹1¹j¹m¹˜¹èº'º.ºmºÒ»#»s»®»Ä»ð»ò¼B¼x¼¼»¼ê¼ì½<½z½�½½½ë½í¾=¾Œ¾“¾Ï¾ú¾ü¿L¿œ¿®¿µ¿ñÀ @À @À @nÀ @³À @ºÀ @öÀ A"À A$À A1À AVÀ AXÀ A·À AàÀ B
À B5À BaÀ BŽÀ B·À BáÀ C	À C2À C[À C…À C­À C¯À D À DQÀ D¢À DÊÀ DÌÀ DÿÀ E>À EƒÀ E½À EùÀ F9À F`À FoÀ FwÀ FyÀ FÈÀ FÍÀ FÏÀ FÜÀ F÷À GÀ G#À GNÀ GiÀ G„À GŒÀ GæÀ HÀ HIÀ H�À HÎÀ IÀ IZÀ IŸÀ IÎÀ IüÀ J(À JXÀ J`À JeÀ JgÀ JtÀ J§À JðÀ K$À KiÀ K‡À KŒÀ KŽÀ K›À KËÀ KïÀ KôÀ KöÀ LÀ L4À L[À L`À LbÀ LoÀ L¨À L«   (/// @docImport 'hardware_keyboard.dart';€ß   �   �,   �K�t�”�™�¶�â �ç™å„q„q�Ë/// Platform-specific key event data for Linux.
///
/// This class is deprecated and will be removed. Platform specific key event
/// data will no longer be available. See [KeyEvent] for what is available.
///
/// Different window toolkit implementations can map to different key codes. This class
/// will use the correct mapping depending on the [keyHelper] provided.
///
/// See also:
///
///  * [RawKeyboard], which uses this interface to expose key data. „£‚…œ …œ…° :/// Creates a key event data structure specific for Linux.…¸…Ç…Æ  …Ö…Ü…Û  …ù…ÿ…þ  †††  †(†.†-  †A†P†O  †\†b†a  „á„â„ì…‘„ó…X…ñ†	† †9†~†„†¿†»†…†¹†š†††œ†�†¯†°†¾†Ç�‡Ô‡Ô€ð/// A helper class that abstracts the fetching of the toolkit-specific mappings.
///
/// There is no real concept of a "native" window toolkit on Linux, and each implementation
/// (GLFW, GTK, QT, etc) may have a different key code mapping. ‡ä�°‰�‰��€/// An int with up to two Unicode scalar values generated by a single keystroke. An assertion
/// will fire if more than two values are encoded in a single keystroke.
///
/// This is typically the character that [keyCode] would produce without any modifier keys.
/// For dead keys, it is typically the diacritic it would add to a character. Defaults to 0,
/// asserted to be not null. ‰›€ÛŠnŠn€¼/// The hardware scan code id corresponding to this key event.
///
/// These values are not reliable and vary from device to device, so this
/// information is mainly useful for debugging. Š}€ý‹s‹s€ß/// The hardware key code corresponding to this key event.
///
/// This is the physical key that was pressed, not the Unicode character.
/// This value may be different depending on the window toolkit used. See [KeyHelper]. ‹�€¸Œ0Œ0€ž/// A mask of the current modifiers using the values in Modifier Flags.
/// This value may be different depending on the window toolkit used. See [KeyHelper]. Œ@^Œ˜Œ˜I/// Whether or not this key event is a key down (true) or key up (false). Œ¥�i�û�û�5/// A logical key specified by the embedding that should be used instead of
/// deriving from raw data.
///
/// The GTK embedding detects the keyboard layout and maps some keys to
/// logical keys in a way that can not be derived from per-key information.
///
/// This is not part of the native GTK key event. ŽmŽ-Ž-   ŽŽŽˆ€˜Ž­Ž­   ŽˆŽ‰�&…ã�J�J   �&�'›C€†›X›X   ›C›D•€õ•!•!  •3•@•?  •E$•S•R  •••Y•e•f–
m–$–$  –4–A–@  –
––}‚À–�–�  –£&–À–¿  –}–~™C�ú™^™^  ™a™i™h  ™C™Dƒ¾ƒ¿ƒÉ„hƒÎ„1›Ðˆ9�Ë�Ë�~/// Abstract class for window-specific key mappings.
///
/// Given that there might be multiple window toolkit implementations (GLFW,
/// GTK, QT, etc), this creates a common interface for each of the
/// different toolkits.
///
/// This class is deprecated and will be removed. Platform specific key event
/// data will no longer be available. See [KeyEvent] for what is available. �Ú�¸ž˜ ž˜ž¡ E/// Create a KeyHelper implementation depending on the given toolkit.ž¢žªž©  ž#ž$ž.ž‹ž5žR Ÿ˜€‡  e/// Returns the name for the toolkit.
///
/// This is used in debug mode to generate readable string.   £¹M£ø£ø3/// The platform plane mask value of this platform.    %�;¡?¡?€™/// Returns a [KeyboardSide] enum value that describes which side or sides of
/// the given keyboard modifier key were pressed at the time of this event. ¡O¡\¡[   Å Æ Ð¡- × ô¡f�u¢5¢5V/// Returns true if the given [ModifierKey] was pressed at the time of this
/// event. ¢M¢Z¢Y  ¢c¢h¢g  ¢y$¢‡¢†  ¢¤¢²¢±  ¢¿¢Î¢Í  	¡Ã¡Ä¡Î¢+¡Õ¡ò¢�¢™¢š¢áe£/£/6/// The numpad key from the specific key code mapping. £9£>£=   £Lg£›£›7/// The logical key from the specific key code mapping. £¦£«£ª   �W�X�b�¹�g�‚¤”¥Q¥Q€Ô/// Helper class that uses GLFW-specific key mappings.
///
/// This class is deprecated and will be removed. Platform specific key event
/// data will no longer be available. See [KeyEvent] for what is available.  ¥y‚Y§¹§¹‚/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether the CAPS LOCK modifier key is on.
///
/// {@template flutter.services.GLFWKeyHelper.modifierCapsLock}
/// Use this value if you need to decode the [RawKeyEventDataLinux.modifiers]
/// field yourself, but it's much easier to use [isModifierPressed] if you
/// just want to know if a modifier is pressed. This is especially true on
/// GLFW, since its modifiers don't include the effects of the current key
/// event.
/// {@endtemplate}§Ì§Ù€ý¨À¨À€É/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether one of the SHIFT modifier keys is pressed.
///
/// {@macro flutter.services.GLFWKeyHelper.modifierCapsLock}¨Ð¨Ý€þ©Ã©Ã€È/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether one of the CTRL modifier keys is pressed.
///
/// {@macro flutter.services.GLFWKeyHelper.modifierCapsLock}©Õ©â€ùªÇªÇ€Ç/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether one of the ALT modifier keys is pressed.
///
/// {@macro flutter.services.GLFWKeyHelper.modifierCapsLock}ªÕªâ�«Ï«Ï€Ï/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether one of the Meta(SUPER) modifier keys is pressed.
///
/// {@macro flutter.services.GLFWKeyHelper.modifierCapsLock}«Þ«ë�¬Ñ¬Ñ€È/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether any key in the numeric keypad is pressed.
///
/// {@macro flutter.services.GLFWKeyHelper.modifierCapsLock}¬æ¬ó/­­   ¬ó¬ô·æC·û·û   ·æ·ç­(…­,­,  ­=­K­J  ­U­c­b  ­k­z­y   ²Jƒ˜²\²\  ²t²�²€  ²Š²�²Ž  ² $²®²­  ²Ë²Ù²Ø  ²æ²õ²ô  ²J²K²´²À²Áµè�"¶¶  ¶¶¶  µèµé·c·1·1  ·;·@·?  ···yg·š·š  ·¥·ª·©  ·y·z¤æ¤ç¤ñ¥H¤ö¥¸0”y¹s¹s€Ó/// Helper class that uses GTK-specific key mappings.
///
/// This class is deprecated and will be removed. Platform specific key event
/// data will no longer be available. See [KeyEvent] for what is available.  ¹š‚S»×»×‚/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether one of the SHIFT modifier keys is pressed.
///
/// {@template flutter.services.GtkKeyHelper.modifierShift}
/// Use this value if you need to decode the [RawKeyEventDataLinux.modifiers] field yourself, but
/// it's much easier to use [isModifierPressed] if you just want to know if a
/// modifier is pressed. This is especially true on GTK, since its modifiers
/// don't include the effects of the current key event.
/// {@endtemplate}»é»ç»ì»ô€ó¼Î¼Î€¼/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether the CAPS LOCK modifier key is on.
///
/// {@macro flutter.services.GtkKeyHelper.modifierShift}¼ã¼á¼æ¼î€ú½Ð½Ð€Ä/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether one of the CTRL modifier keys is pressed.
///
/// {@macro flutter.services.GtkKeyHelper.modifierShift}½ä½â½ç½ï�¾â¾â€Õ/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether the first modifier key is pressed (usually mapped to alt).
///
/// {@macro flutter.services.GtkKeyHelper.modifierShift}¾ó¾ñ¾ö¾þ�À @À @€å/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether the second modifier key is pressed (assumed to be mapped to
/// num lock).
///
/// {@macro flutter.services.GtkKeyHelper.modifierShift}À @À @À @À @ €ÿÀ A	À A	€Ë/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether one of the Meta(SUPER) modifier keys is pressed.
///
/// {@macro flutter.services.GtkKeyHelper.modifierShift}À AÀ AÀ AÀ A&.À A>À A>   À A&À A'À LdBÀ LyÀ Ly   À LdÀ LeÀ AZ…qÀ A^À A^  À AoÀ A}À A|  À A‡À A•À A”  À A�À A¬À A«   À FÑƒ’À FãÀ Fã  À FûÀ GÀ G  À GÀ GÀ G  À G'$À G5À G4  À GRÀ G`À G_  À GmÀ G|À G{  À FÑÀ FÒÀ G;À GGÀ GHÀ Ji�!À JƒÀ Jƒ  À J“À J À JŸ  À JiÀ JjÀ K�bÀ K±À K±  À K»À KÀÀ K¿  À K�À K‘À KøfÀ LÀ L  À L$À L)À L(  À KøÀ Kù¹¹	¹¹j¹¹3             €²  hardware_keyboard.dart �ý =€ˆ€§€©€Ó€Ý€ß�
��,�I�K�—�™�å�ç‚‚‚l‚¹‚¾ƒƒ`ƒeƒtƒyƒ¾ƒÌ„/„h„k„¡„ß„ï…T…�…”…´…Ò…õ††$†=†X†w†Ã†Å‡‡ ‡‡Â‡à‡âˆCˆ�ˆ–ˆõ‰U‰u‰—‰™‰Û‰âŠ/ŠbŠyŠ{Š¹ŠÀ‹‹g‹}‹‹ÊŒ$Œ<Œ>Œ‹Œ¡Œ£Œò���c�²�¹�îŽŽŽ Ž„Ž†Ž“Ž½�"�$�1�X�€�­�þ��Q�Ÿ�Û‘$‘B‘[‘b‘d‘µ’’X’g’»’Ô“7“Œ“““•“å”,”G”]”d”f”µ”Ã•••••o•˜•¤•¶•É•â•ù–––––H–t–y–{–ˆ–Î–ú—O—ª—ï˜2˜y˜»˜Ð™2™:™?™A™N™r™•™©™°™Ý™ò™ùš&šgš¤šËšð››:›?›A›N›e›Ë›Î›ÐœœœYœ�œ¶œ»�
�W�e�€�¹�¼�Øž!ž1žNž‰žŽžµžÓžòŸŸ4ŸBŸˆŸ�Ÿ”Ÿ–Ÿ¿ŸÆ  ! # t Ã Ó ð¡+¡0¡b¡d¡³¡Á¡Ñ¡î¢)¢.¢I¢_¢u¢ ¢»¢Ö¢Ý¢ß££H£J£…£µ£·£î¤¤¤¤E¤J¤™¤æ¤ô¥¥H¥K¥w¥Ç¥ý¦¦G¦˜¦æ§4§‚§�§¦§Õ§×¨'¨f¨m¨­¨Ù¨Û©+©i©p©°©Þ©àª0ªmªtª´ªÞªà«0«u«|«¼«ç«é¬9¬w¬~¬¾¬ï¬ñ¬þ­$­&­…­¯­Ö­þ®'®Q®v®œ®Â®é¯¯4¯6¯ˆ¯Ù°*°R°T°‡°Æ±±D±€±¬±Ù±è±ð±ò²A²F²H²U²p²†²œ²Ç²â²ý³³_³z³Â´´F´ˆ´ÒµµMµ{µ§µ×µßµäµæµó¶&¶p¶¤¶é·····K·p·u·w·„·µ·Ý·â·ä·ñ¸+¸.¸0¸g¸l¸»¹¹¹1¹j¹m¹˜¹èº'º.ºmºÒ»#»s»®»Ä»ð»ò¼B¼x¼¼»¼ê¼ì½<½z½�½½½ë½í¾=¾Œ¾“¾Ï¾ú¾ü¿L¿œ¿®¿µ¿ñÀ @À @À @nÀ @³À @ºÀ @öÀ A"À A$À A1À AVÀ AXÀ A·À AàÀ B
À B5À BaÀ BŽÀ B·À BáÀ C	À C2À C[À C…À C­À C¯À D À DQÀ D¢À DÊÀ DÌÀ DÿÀ E>À EƒÀ E½À EùÀ F9À F`À FoÀ FwÀ FyÀ FÈÀ FÍÀ FÏÀ FÜÀ F÷À GÀ G#À GNÀ GiÀ G„À GŒÀ GæÀ HÀ HIÀ H�À HÎÀ IÀ IZÀ IŸÀ IÎÀ IüÀ J(À JXÀ J`À JeÀ JgÀ JtÀ J§À JðÀ K$À KiÀ K‡À KŒÀ KŽÀ K›À KËÀ KïÀ KôÀ KöÀ LÀ L4À L[À L`À LbÀ LoÀ L¨À L«   RawKeyEventDataLinux	KeyHelperGLFWKeyHelperGtkKeyHelper/flutter.services.GLFWKeyHelper.modifierCapsLock�%Use this value if you need to decode the [RawKeyEventDataLinux.modifiers]
field yourself, but it's much easier to use [isModifierPressed] if you
just want to know if a modifier is pressed. This is especially true on
GLFW, since its modifiers don't include the effects of the current key
event.+flutter.services.GtkKeyHelper.modifierShift�$Use this value if you need to decode the [RawKeyEventDataLinux.modifiers] field yourself, but
it's much easier to use [isModifierPressed] if you just want to know if a
modifier is pressed. This is especially true on GTK, since its modifiers
don't include the effects of the current key event. •V