	direction
controllerphysicsdecorationClipBehaviorclipBehaviorcopyWithtoStringhashCode==
scrollableonScrollViewScrolledvelocityScalar _dragTargetRelatedToScrollOrigin	scrolling
_scrolling_offsetExtent_sizeExtent_axisDirection_scrollDirectionstartAutoScrollIfNecessarystopAutoScroll_scrolllinepagetypemetrics	isEnabled_calculateScrollIncrementgetDirectionalIncrementinvokeScrollableDetailsEdgeDraggingAutoScrollerScrollIncrementCalculatorScrollIncrementTypeScrollIncrementDetailsScrollIntentScrollActionr	ToleranceScrollBehaviorTwoDimensionalScrollableGlowingOverscrollIndicator	Scrollbar	immutable
Scrollable
DeprecatedClipAxisverticalboolreverseAxisDirectionupdown
horizontalleftrightScrollControllerScrollPhysicsMaterialScrollBehaviorStretchingOverscrollIndicatorViewportclipBehavior	direction
controllerphysicsdecorationClipBehavioroverrideStringaddvoidObjecttoStringdescribeIdentityjoininthash	identicalruntimeTypeScrollableStateVoidCallbackdoubleRectOffsetdxdySizewidthheightaxisDirectionaxisDirectionToAxisdeltaToScrollOrigin	translateFuturecontextfindRenderObject	RenderBoxMatrix4getTransformToMatrixUtilstransformRectfromLTWHsizeprecisionErrorTolerancetopLeftbottomRightpositionpixelsminScrollExtentminmaxmaxScrollExtentabsDurationmillisecondsround	animateTodurationcurveCurveslinearcallincrementCalculatorScrollMetricsIntentlineActionBuildContextPrimaryScrollControllertypepageContextActionmaybeOf
hasClients	hasPixelsresolvedPhysicsshouldAcceptUserOffsetwidgetmetricsviewportDimensionof	positionslengthFlutterError	fromPartsDiagnosticsNodeErrorSummaryErrorDescription	ErrorHintnotificationContextmoveTo	easeInOutIntentContextAction¶¥¶éëÍ5Ð¿$!8È‹!‚ÿƒ	Tolerance ‚Ùpackage:flutter/physics.dart   �:   
dart:async  �P   �b�emath�e	dart:math  �o   package:flutter/foundation.dart  �š   package:flutter/rendering.dart  �Æ   actions.dart  �Þ   
basic.dart  �ô   framework.dart  ‚   primary_scroll_controller.dart  ‚8   scroll_configuration.dart  ‚]   scroll_controller.dart  ‚   scroll_metrics.dart  ‚ž   scroll_physics.dart  ‚½   scrollable.dart¢ü À LR�þ =€ˆ€§€©€Ú€ß��-�7�9�O�l�n�™�Ã�Å�Ý�ó‚‚7‚\‚~‚�‚¼‚×‚Ùƒƒƒ`ƒ²ƒèƒí„:„|„ˆ„£„à„ý……1…D…V…ƒ…Ø†#†_†f††¢†ë†í‡6‡\‡w‡�‡ ‡Âˆˆ	ˆTˆ|ˆ—ˆ­ˆÀˆâ‰*‰,‰e‰‡‰‰‰¿‰æ‰èŠŠ<Š>ŠuŠ|ŠºŠâŠé‹7‹�‹½‹Ä‹ÝŒŒŒ=ŒMŒxŒË��N�S�ˆ�Š�Ú�ñŽŽ0ŽSŽpŽ“Ž›ŽºŽé��D�š�¢�§�©�¶�Í�ò�%�'�^�z�¯�¸�¿�Á�÷‘'‘n‘²‘·‘¹‘Æ’"’$’1’U’x’Œ’“’À’Õ’Ü““/“Z““À“Å“È“Ê””.”3”s”x”µ”×••2•J•j•�•”•–•Ï•ô•ö–$–+–y–È–ç———a—“—š—é˜2˜H˜h˜j˜™˜›˜Ê˜ï™™™L™s™˜™»™Ã™È™Êšš*šPšuš}š‚š„šÅ›
››T›[›«›õ›üœKœ�œÓ��w�Ž�É�Ø�ß�ùž	žžž8žSžlžqžsž•žçŸ,ŸdŸvŸËŸÓ  ( Q Y [ h È¡,¡€¡ˆ¡ ¡¸¡×¡Ù¢¢€¢Ó£3£5£c£”£­£µ£á¤¤/¤7¤V¤t¤”¤»¥¥^¥¥±¥å¥ó¦%¦v¦Ì¦í§§S§a§l§�§­§Ø¨)¨¨ ¨Ò©©©B©“©åªª8ªlªzª…ªŒªŽªä««)«8«?«Ž«í¬¬'¬?¬F¬K¬N¬P¬¡¬Ò¬×­$­P­¦­¨­ð®®®j®§®¬®è¯:¯Š¯Ú°#°n°º°Í°á°ý±L±™± ±ï²:²†²¤²­²¯²þ³K³R³¡³ì´8´V´_´b´d´¶µµµ>µyµÇµÉ¶¶¶F¶i¶k¶°¶Ð¶Ó¶Õ·$·O·T·Ž·×·ç¸¸W¸‚¸Ú¸Ü¹*¹9¹[¹]¹Œ¹¯¹²¹´ºº-º2º{ºÅºÛºà»1»€»Ï»Ü¼¼#¼e¼�¼–¼�¼Í¼á¼è½I½ž½£½¥½ó¾¾&¾w¾È¿¿.¿Z¿x¿²¿º¿á¿îÀ @À @`À @hÀ @�À @ÎÀ AÀ AÀ A%À AAÀ AjÀ AµÀ A½À AÂÀ AÄÀ BÀ B.À B…À BãÀ C8À CˆÀ C�À C À C¥À C§À C´À CóÀ D5À DqÀ D‹À DèÀ DûÀ E9À EtÀ E�À EâÀ FÀ F.À FMÀ FŸÀ F¹À FÉÀ FáÀ G1À G�À GÉÀ HÀ HgÀ HwÀ H†À H‘À H§À H´À H¶À HçÀ I0À IZÀ I”À I�À I¹À IÊÀ IÓÀ IÚÀ IçÀ JÀ J[À JcÀ JeÀ J¤À JÎÀ KÀ K(À K/À KuÀ K’À K¡À K¨À KÄÀ KîÀ L"À LBÀ LJÀ LOÀ LR   /// @docImport 'package:flutter/material.dart';
///
/// @docImport 'overscroll_indicator.dart';
/// @docImport 'viewport.dart';�9  �O�e �n  �™  �Å  �Ý  �ó  ‚  ‚7  ‚\  ‚~  ‚�  ‚¼  ‚Ù‚ÿƒ   „è „ù    ………   ………$   …5…5…:   …H…H�4†p   †ƒ†ƒ†‰ …H…I…S†c…\…‰…Þ†)†À†©†Ï†Â†Ò„¥„¥‚D 9/// Creates a set of details describing the [Scrollable].  ‡>‡O‡X    ‡`‡`‡e   ‡{‡{‡€   ‡‘‡‘‡–   ‡¤‡¤‡© ‡o‡Ó‡É‡Ý‡ð‡Õ‡ß‡ì‡í‡ò‡ÿˆ †ï†ï�‡PE/// A constructor specific to a [Scrollable] with an [Axis.vertical].  ˆ\ˆmˆx    ˆ€ˆ€ˆ…   ˆ›ˆ›ˆ    ˆ±ˆ±ˆ¶   ˆÄˆÄˆÉ ˆ�ˆóˆéˆý‰ˆõˆÿ‰‰‰‰!‰"ˆˆ�ˆnG/// A constructor specific to a [Scrollable] with an [Axis.horizontal].  ‰{‰.V‰{5/// {@macro flutter.widgets.Scrollable.axisDirection} ‰Ù‰‹X‰Ù2/// {@macro flutter.widgets.Scrollable.controller} Š2‰êOŠ2//// {@macro flutter.widgets.Scrollable.physics} ‹ëŠ@�Á‹ë�€/// {@macro flutter.material.Material.clipBehavior}
///
/// This can be used by [MaterialScrollBehavior] to clip a
/// [StretchingOverscrollIndicator].
///
/// This [Clip] does not affect the [Viewport.clipBehavior], but is rather
/// passed from the same value by [Scrollable] so that decorators like
/// [StretchingOverscrollIndicator] honor the same clip.
///
/// Defaults to null.  Œ?Œ@ŒJ�PŒQŒ|ŒÏ�ŒŒ�~�_3/// Deprecated getter for [decorationClipBehavior].  ‘»‘¼‘»‘»e‘Ð     ŽŽŽ$   Ž4Ž4ŽF   ŽWŽWŽf   ŽtŽtŽz  �Œ�Œ‚Ž`/// Copy the current [ScrollableDetails] with the given values replacing the
/// current values.  �«�¬�«�«‚
�¿    ’D’D’K ’&’'’&’&��’A „|„}ƒƒ�´„Ž�c/// Describes the aspects of a Scrollable widget to inform inherited widgets
/// like [ScrollBehavior] for decorating or enumerate the properties of combined
/// Scrollables, such as [TwoDimensionalScrollable].
///
/// Decorations like [GlowingOverscrollIndicator]s and [Scrollbar]s require
/// information about the Scrollable in order to be initialized.  • •/    •6•6•;   •N•N•S   •n•n•|  ”Ù”Ù€¹ :/// Creates a auto scroller that scrolls the [scrollable].  •ç•˜Y•ç5/// The [Scrollable] this auto scroller is scrolling. –ý•ø�–ý€á/// Called when a scroll view is scrolled.
///
/// The scroll view may be scrolled multiple times in a row until the drag
/// target no longer triggers the auto scroll. This callback will be called
/// in between each scroll. ˜W—�M˜W�/// {@template flutter.widgets.EdgeDraggingAutoScroller.velocityScalar}
/// The velocity scalar per pixel over scroll.
///
/// It represents how the velocity scale with the over scroll distance. The
/// auto-scroll velocity = (distance of overscroll) * velocityScalar.
/// {@endtemplate} ˜v˜l*˜v ™˜ö˜ñ˜ö    ˜�˜�P˜Õ+/// Whether the auto scroll is in progress.   š†š†=š˜    šÇšÇAšÐ     ™$™$™+   ™3™3™8  ™™€·™    ™ß™ß	™ä   ™ê™ê™ï  ™Ì™Ì€´™Ó    œ¿œ¿œÄ  ››‚þœ¤�{/// Starts the auto scroll if the [dragTarget] is close to the edge.
///
/// The scroll starts to scroll the [scrollable] if the target rect is close
/// to the edge of the [scrollable]; otherwise, it remains stationary.
///
/// If the scrollable is already scrolling, calling this method updates the
/// previous dragTarget to the new value and continues scrolling if necessary.   žž]ž?$/// Stop any ongoing auto scrolling.   žužu�Ôž‚  “Ê“Ê˜‚”»€ä/// An auto scroller that scrolls the [scrollable] if a drag gesture drags close
/// to its edge.
///
/// The scroll velocity is controlled by the [velocityScalar]:
///
/// velocity = (distance of overscroll) * [velocityScalar].  µ� µ—    µ™µ™µ§   µ­µ­µ»  µ@µ@€… 7/// A const constructor for a [ScrollIncrementDetails].  ¶bµË€›¶bs/// The type of scroll this is (e.g. line, page, etc.).
///
/// {@macro flutter.widgets.ScrollIncrementType.intent} ¶Æ¶m`¶ÆA/// The current metrics of the scrollable that is being scrolled.    ´d´d‚mµ$€¶/// A details object that describes the type of scroll increment being requested
/// of a [ScrollIncrementCalculator] function, as well as the current metrics
/// for the scrollable.  ¸Š ¸–    ¸˜¸˜¸¦   ¸±¸±$¸¶ ¸½¸Ð¸Ñ¸¸€Ê o/// Creates a const [ScrollIntent] that requests scrolling in the given
/// [direction], with the given [type].  ¹O¸Þz¹OV/// The direction in which to scroll the scrollable containing the focused
/// widget. ¹¨¹_M¹¨+/// The type of scrolling that is intended.    ¶Õ¶Õ‚Û·í�/// An [Intent] that represents scrolling the nearest scrollable by an amount
/// appropriate for the [type] specified.
///
/// The actual amount of the scroll is determined by the
/// [Scrollable.incrementCalculator], or by its defaults if that is not
/// specified.        ¼4¼4¼A   ¼J¼J¼X ¼¼¼¼�‰¼*    ¿^¿^¿n   ¿|¿|3¿� ¿—¿ª¿«½§½§„¿>�s/// Returns the scroll increment for a single scroll request, for use when
/// scrolling using a hardware keyboard.
///
/// Must not be called when the position is null, or when any of the position
/// metrics (pixels, viewportDimension, maxScrollExtent, minScrollExtent) are
/// null. The widget must have already been laid out so that the position
/// fields are valid.   À BVÀ BVÀ Bf   À BmÀ BmÀ Bz  À AÆÀ AÆ�ÝÀ B>c/// Find out how much of an increment to move by, taking the different
/// directions into account.   À CÂÀ CÂÀ CÏ   À CØÀ CØÀ Cæ À C©À CªÀ C©À C©ˆ¤À C»  ¹´¹´’œ»â‚/// An [Action] that scrolls the relevant [Scrollable] by the amount configured
/// in the [ScrollIntent] given to it.
///
/// If a Scrollable cannot be found above the given [BuildContext], the
/// [PrimaryScrollController] will be considered for default handling of
/// [ScrollAction]s.
///
/// If [Scrollable.incrementCalculator] is null for the scrollable, the default
/// for a [ScrollIntent.type] set to [ScrollIncrementType.page] is 80% of the
/// size of the scroll window, and for [ScrollIncrementType.line], 50 logical
/// pixels.    °ÿ°ÿ�«²¦�‘/// Indicates that the [ScrollIncrementCalculator] should return the scroll
/// distance it should move when the user requests to scroll by a "line".
///
/// The distance a "line" scrolls refers to what should happen when the key
/// binding for "scroll down/up by a line" is triggered. It's up to the
/// [ScrollIncrementCalculator] function to decide what that means for a
/// particular scrollable. ²±²±�«´X�‘/// Indicates that the [ScrollIncrementCalculator] should return the scroll
/// distance it should move when the user requests to scroll by a "page".
///
/// The distance a "page" scrolls refers to what should happen when the key
/// binding for "scroll down/up by a page" is triggered. It's up to the
/// [ScrollIncrementCalculator] function to decide what that means for a
/// particular scrollable.    ­¨­¨†¸°æƒ)/// Describes the type of scroll increment that will be performed by a
/// [ScrollAction] on a [Scrollable].
///
/// This is used to configure a [ScrollIncrementDetails] object to pass to a
/// [ScrollIncrementCalculator] function on a [Scrollable].
///
/// {@template flutter.widgets.ScrollIncrementType.intent}
/// This indicates the *intent* of the scroll, not necessarily the size. Not all
/// scrollable areas will have the concept of a "line" or "page", but they can
/// respond to the different standard key bindings that cause scrolling, which
/// are bound to keys that people use to indicate a "line" scroll (e.g.
/// control-arrowDown keys) or a "page" scroll (e.g. pageDown key). It is
/// recommended that at least the relative magnitudes of the scrolls match
/// expectations.
/// {@endtemplate}         ¬P¬P�T­X€ú/// A typedef for a function that can calculate the offset for a type of scroll
/// increment given a [ScrollIncrementDetails].
///
/// This function is used as the type for [Scrollable.incrementCalculator],
/// which is called from a [ScrollAction].   €²  package:flutter/material.dart  €è  overscroll_indicator.dart  �  viewport.dart �þ =€ˆ€§€©€Ú€ß��-�7�9�O�l�n�™�Ã�Å�Ý�ó‚‚7‚\‚~‚�‚¼‚×‚Ùƒƒƒ`ƒ²ƒèƒí„:„|„ˆ„£„à„ý……1…D…V…ƒ…Ø†#†_†f††¢†ë†í‡6‡\‡w‡�‡ ‡Âˆˆ	ˆTˆ|ˆ—ˆ­ˆÀˆâ‰*‰,‰e‰‡‰‰‰¿‰æ‰èŠŠ<Š>ŠuŠ|ŠºŠâŠé‹7‹�‹½‹Ä‹ÝŒŒŒ=ŒMŒxŒË��N�S�ˆ�Š�Ú�ñŽŽ0ŽSŽpŽ“Ž›ŽºŽé��D�š�¢�§�©�¶�Í�ò�%�'�^�z�¯�¸�¿�Á�÷‘'‘n‘²‘·‘¹‘Æ’"’$’1’U’x’Œ’“’À’Õ’Ü““/“Z““À“Å“È“Ê””.”3”s”x”µ”×••2•J•j•�•”•–•Ï•ô•ö–$–+–y–È–ç———a—“—š—é˜2˜H˜h˜j˜™˜›˜Ê˜ï™™™L™s™˜™»™Ã™È™Êšš*šPšuš}š‚š„šÅ›
››T›[›«›õ›üœKœ�œÓ��w�Ž�É�Ø�ß�ùž	žžž8žSžlžqžsž•žçŸ,ŸdŸvŸËŸÓ  ( Q Y [ h È¡,¡€¡ˆ¡ ¡¸¡×¡Ù¢¢€¢Ó£3£5£c£”£­£µ£á¤¤/¤7¤V¤t¤”¤»¥¥^¥¥±¥å¥ó¦%¦v¦Ì¦í§§S§a§l§�§­§Ø¨)¨¨ ¨Ò©©©B©“©åªª8ªlªzª…ªŒªŽªä««)«8«?«Ž«í¬¬'¬?¬F¬K¬N¬P¬¡¬Ò¬×­$­P­¦­¨­ð®®®j®§®¬®è¯:¯Š¯Ú°#°n°º°Í°á°ý±L±™± ±ï²:²†²¤²­²¯²þ³K³R³¡³ì´8´V´_´b´d´¶µµµ>µyµÇµÉ¶¶¶F¶i¶k¶°¶Ð¶Ó¶Õ·$·O·T·Ž·×·ç¸¸W¸‚¸Ú¸Ü¹*¹9¹[¹]¹Œ¹¯¹²¹´ºº-º2º{ºÅºÛºà»1»€»Ï»Ü¼¼#¼e¼�¼–¼�¼Í¼á¼è½I½ž½£½¥½ó¾¾&¾w¾È¿¿.¿Z¿x¿²¿º¿á¿îÀ @À @`À @hÀ @�À @ÎÀ AÀ AÀ A%À AAÀ AjÀ AµÀ A½À AÂÀ AÄÀ BÀ B.À B…À BãÀ C8À CˆÀ C�À C À C¥À C§À C´À CóÀ D5À DqÀ D‹À DèÀ DûÀ E9À EtÀ E�À EâÀ FÀ F.À FMÀ FŸÀ F¹À FÉÀ FáÀ G1À G�À GÉÀ HÀ HgÀ HwÀ H†À H‘À H§À H´À H¶À HçÀ I0À IZÀ I”À I�À I¹À IÊÀ IÓÀ IÚÀ IçÀ JÀ J[À JcÀ JeÀ J¤À JÎÀ KÀ K(À K/À KuÀ K’À K¡À K¨À KÄÀ KîÀ L"À LBÀ LJÀ LOÀ LR   ScrollableDetailsEdgeDraggingAutoScrollerScrollIncrementTypeScrollIncrementDetailsScrollIntentScrollAction7flutter.widgets.EdgeDraggingAutoScroller.velocityScalar€µThe velocity scalar per pixel over scroll.

It represents how the velocity scale with the over scroll distance. The
auto-scroll velocity = (distance of overscroll) * velocityScalar.*flutter.widgets.ScrollIncrementType.intent�ÁThis indicates the *intent* of the scroll, not necessarily the size. Not all
scrollable areas will have the concept of a "line" or "page", but they can
respond to the different standard key bindings that cause scrolling, which
are bound to keys that people use to indicate a "line" scroll (e.g.
control-arrowDown keys) or a "page" scroll (e.g. pageDown key). It is
recommended that at least the relative magnitudes of the scrolls match
expectations. Q
