( listenablebuild createStatedebugFillProperties initStatedidUpdateWidgetdispose _handleChangeposition textDirectiontransformHitTestschild onTransform animation alignment filterQualityscale_handleScaleMatrixturns_handleTurnsMatrixaxis sizeFactor axisAlignmentfixedCrossAxisSizeFactoropacityalwaysIncludeSemanticscreateRenderObjectupdateRenderObjectlerprectsize decoration widthFactor heightFactorstyle textAlignsoftWrapoverflowmaxLinesbuilderAnimatedWidget_AnimatedStateDelegatedTransitionBuilderSlideTransitionTransformCallbackMatrixTransitionScaleTransitionRotationTransitionSizeTransitionFadeTransitionSliverFadeTransitionRelativeRectTweenPositionedTransitionRelativePositionedTransitionDecoratedBoxTransitionAlignTransitionDefaultTextStyleTransitionListenableBuilderAnimatedBuilder€” RelativeRect Listenable AnimationChangeNotifier ValueNotifierImplicitlyAnimatedWidgetAnimationControllerAlign DecoratedBoxDefaultTextStyle PositionedOpacityAnimatedModalBarrier ModalBarrierStatefulWidget protectedWidget BuildContextoverrideStatevoidDiagnosticPropertiesBuilderdebugFillPropertiesaddDiagnosticsProperty initStatewidget listenable addListenerdidUpdateWidgetremoveListenerdisposemountedsetStatebuild ModalRoutedelegatedTransitiondoubleboolOffsetCurvedAnimationCurves elasticIn alignment TextDirectionrtlltrvaluedxdyFractionalTranslation translationtransformHitTestschild onTransformMatrix4 animation AlignmentcenterAnimationStatus dismissed completed FilterQuality Transform transform filterQuality isAnimating fastOutSlowIndiagonal3Values elasticOut rotationZpiClipRect Container FlutterLogoScaffoldAnimatedCrossFadeAxisvertical horizontalAlignmentDirectional heightFactormax widthFactorFlow IgnorePointerAnimatedOpacitySingleChildRenderObjectWidgetRenderAnimatedOpacityopacityalwaysIncludeSemantics FlagPropertyifTrueCustomScrollViewSliverFixedExtentList RenderBoxSliverIgnorePointer SliverOpacitysliverRenderSliverAnimatedOpacitylerpTweenbeginendfillStack elasticInOutAnimatedPositionedfromRelativeRectrectRectzeroSizefromSizetoprightbottomleft Decoration decelerateAnimatedContainernewDecorationPosition backgroundDecorationTween BoxDecoration decorationposition AnimatedAlignAlignmentGeometry TextStyleAnimatedDefaultTextStyle TextOverflowclip TextAlignsoftWrapmaxLinesintstyle textAlignoverflowText FocusNodeFocusValueListenableBuilderTransitionBuilderTweenAnimationBuilderbuilderStatefulWidgetStateAnimatedWidgetMatrixTransitionSingleChildRenderObjectWidgetTweenListenableBuilder�™ØÝ±ù)ÖÁ&•ü™Ê�ê�û RelativeRect�Âpackage:flutter/rendering.dart��)�,math�, dart:math�6package:flutter/rendering.dart�b basic.dart�xcontainer.dart�’framework.dart�¬ text.dartÀ¨yÀ¿[„Ý=€ˆ€§€©€Ú� ���3�5�_�a�w�‘�«�À�Â�þ‚‚G‚L‚�‚•‚åƒ,ƒWƒ\ƒ®ƒ÷ƒü„„\„”„™„ì„ý……H…w…|…°…µ††C†„†Ì‡‡i‡¹ˆˆHˆ�ˆ•ˆµˆº‰ ‰N‰Ÿ‰ñŠ3Š8Š…Š­Šø‹‹c‹µ‹ûŒŒeŒ­ŒÃ� �K�‚�Ñ�îŽ3ŽƒŽ»�� �9�y�{�¶�½�ó���b� �®�Õ�ב‘‘Y‘[‘h‘®‘Ú’*’/’2’4’j’w’�’¥’Ø’Ý’ß’ì“ “G“}“¸“í“ô“ù“û”””R”h”m”o”‰”ž”­”´”Ç•••"•$•1•q•t•v•½•––b–¯–þ—3—8—‚—¨—¿—ܘ˜-˜L˜b˜j˜l˜´˜¹™ ™T™Œ™‘™áš%šsšÁ›››h›¨œœœ.œ|œˆœ�œáœòœ÷�� �Z�~�Ìžžbž±žáŸŸ0Ÿ@ŸjŸŽŸ§Ÿ¸ŸÝŸß  $ s ¼¡¡I¡K¡•¡œ¡é¢7¢F¢M¢ž¢ì¢ó£D£“£º£¼¤¤ ¤Y¤©¤ø¥?¥`¥b¥“¥š¥Ì¥ä¥æ¥ó¦¦@¦o¦ž¦¥¦È¦ä§§&§.§3§6§8§{§€§Ò¨¨J¨L¨�¨†¨×©©©.©€©­©²ªªªª,ª1ª�ªµªÿ«:«k«�«–«Ö«ò¬¬-¬M¬u¬Ž¬Ÿ¬Å¬Ç­­E­m­o­«­²­ÿ®®W®Y®¢®á®è¯9¯`¯~¯€¯Ó¯Ú°)°{°‚°Ã°ê°ì±±$±V±n±p±}±¥±ó²B²•²Î²å³³2³v³‹³“³˜³›³�³Î³Ó´"´f´Ò´×´ìµ:µFµKµŸµ°µµµÄµÉ¶¶_¶­¶ü·H·b·”···¾·þ¸¸)¸P¸y¸“¸¥¸ç¸é¹$¹Q¹S¹�¹”¹Ùººcºfºhº�º•ºç»(»—»œ»±¼¼¼¼j¼{¼€¼�¼”¼á¼ñ½=½W½Œ½²½Ð½à¾¾0¾J¾\¾ž¾ ¾Þ¿ ¿ ¿J¿Q¿ž¿ÎÀ@.À@1À@3À@nÀ@sÀ@ÄÀAÀAKÀAPÀAŸÀAëÀB9ÀB†ÀB”ÀB™ÀBìÀC0ÀC›ÀC ÀCµÀDÀDDÀD�ÀD†ÀDÙÀDêÀDïÀDþÀEÀEQÀE‰ÀEÚÀEïÀF=ÀF…ÀFÓÀG"ÀGQÀGsÀGzÀGÆÀHÀH)ÀHCÀHSÀHsÀHŸÀH¾ÀHâÀHóÀIHÀIoÀIqÀI¸ÀIÐÀIäÀIæÀJ*ÀJ1ÀJƒÀJÒÀJùÀKÀKPÀKpÀK¸ÀKºÀLÀLÀLÀLpÀLÁÀMÀM0ÀM7ÀM…ÀMŒÀMÞÀMýÀMÿÀNHÀNOÀN�ÀNÐÀN×ÀO&ÀOQÀOSÀO„ÀO‹ÀO½ÀOÕÀO×ÀOäÀP ÀP"ÀP7ÀP[ÀP¤ÀPëÀP÷ÀQ$ÀQSÀQ|ÀQªÀQÙÀRÀRÀR#ÀR+ÀR0ÀR3ÀR5ÀR\ÀRaÀR²ÀRåÀRêÀS.ÀS3ÀSƒÀSÇÀSÌÀSáÀTÀT6ÀT;ÀTŽÀTŸÀT¤ÀT¸ÀT½ÀUÀUTÀU¤ÀUîÀVÀV ÀV[ÀV«ÀVþÀW<ÀWAÀW‘ÀWÜÀX+ÀX|ÀXÈÀYÀY ÀYÀY ÀY^ÀY­ÀYÔÀZÀZUÀZ{ÀZ•ÀZ¥ÀZÁÀZëÀZýÀ[À[À[CÀ[JÀ[—À[èÀ\:À\YÀ\}À\À\ËÀ\ÒÀ\ìÀ\óÀ];À]†À]ÏÀ^À^+À^-À^:À^~À^ãÀ^èÀ^êÀ^÷À_NÀ_`À_{À_µÀ_ºÀ_¼À_ÉÀ`À`;À`ŒÀ`¡À`¶À`ÙÀaÀa,Àa6Àa>ÀaCÀaFÀaHÀavÀa{Àa�ÀaÝÀbÀbÀbuÀb†Àb‹Àb×Àc'ÀcGÀcLÀc·Àc¼ÀcÐÀcÕÀd ÀdrÀdÂÀeÀe(Àe-ÀeÀeÏÀfÀf`ÀfkÀfpÀfÀÀgÀg_Àg¯ÀgûÀh:Àh?ÀhNÀhSÀh—ÀhÑÀiÀi;Ài[ÀikÀi‡Ài±ÀiÆÀiäÀiæÀj*Àj1Àj~ÀjÏÀk!Àk@ÀkdÀkfÀk¶Àk½Àk×ÀkÞÀl/ÀlzÀlÃÀlùÀmÀm!Àm.ÀmxÀm¡ÀmºÀmñÀmùÀmþÀnÀn ÀnjÀn|Àn—ÀnÑÀnÖÀnØÀnåÀo+ÀoWÀo¨Ào½ÀoÒÀoõÀpÀpHÀpRÀpZÀp_ÀpbÀpdÀp–Àp›ÀpåÀqÀqÀqOÀq†Àq­Àq´ÀqøÀr"ÀrRÀrTÀr£Àr°ÀrõÀrøÀrúÀs7Às†ÀsËÀsÐÀtÀtÀtXÀt›Àu ÀuÀu&ÀuyÀu…ÀuŠÀuãÀuôÀuùÀvÀv ÀvXÀv‰Àv×Àw&ÀwqÀwšÀwéÀx ÀxZÀxjÀx¶ÀxÐÀyÀy3ÀySÀycÀy�Ày©ÀyÊÀyÌÀzÀz\Àz^Àz�Àz–ÀzÈÀzßÀzáÀzîÀ{À{_À{dÀ{gÀ{iÀ{¶À{üÀ|À|À|HÀ|MÀ|¨À|ëÀ}eÀ}jÀ}À}ÚÀ}æÀ}ëÀ~MÀ~^À~cÀ~rÀ~wÀ~ÅÀ À\À€ÀÍÀÝÀ€)À€CÀ€ŽÀ€·À€ôÀ�'À�.À�}À�ÏÀ�ÞÀ‚À‚À‚;À‚TÀ‚nÀ‚�À‚‘À‚ÓÀ‚ÚÀƒ0Àƒ7ÀƒHÀƒOÀƒŸÀƒÂÀ„À„À„KÀ„lÀ„€À„‚À„³À„ºÀ„ìÀ…À…À…À…:À…’À…ªÀ…ÃÀ…àÀ…ÿÀ†À†/À†7À†<À†?À†AÀ†’À†¬À†±À†ÿÀ‡MÀ‡ÁÀ‡ÆÀ‡ÛÀˆ0Àˆ<ÀˆAÀˆ�Àˆ®Àˆ³ÀˆÂÀˆÇÀ‰À‰fÀ‰–À‰ÍÀŠÀŠ/ÀŠ6ÀŠGÀŠNÀŠkÀŠ�ÀŠ�ÀмÀŠðÀ‹ À‹1À‹3À‹`À‹gÀ‹·À‹ÓÀ‹þÀŒÀŒLÀŒrÀŒtÀŒ¥ÀŒ¬ÀŒÞÀŒõÀŒ÷À�À�,À�†À�‹À�ŽÀ��À�âÀ�çÀŽ5ÀŽ…ÀŽŸÀޤÀ�À�À�*À�xÀ�„À�‰À�ÝÀ�îÀ�óÀ�À�À�RÀ�ƒÀ�ÑÀ‘À‘gÀ‘¶À’À’À’gÀ’�À’ÀÀ“À“"À“)À“:À“AÀ“XÀ“sÀ“ƒÀ“¹À“ÓÀ“êÀ”À”(À”*À”dÀ”ÁÀ”ÃÀ• À•(À•*À•sÀ•’À•”À•ÅÀ•ÌÀ•þÀ–À–À–$À–LÀ–_À–‚À–£À–ÆÀ–ÛÀ–ãÀ–èÀ–ëÀ–íÀ—BÀ—[À—`À—uÀ—ÄÀ˜À˜À˜gÀ˜xÀ˜}À˜ŒÀ˜‘À˜âÀ™À™dÀ™�À™¼ÀšÀš!ÀšGÀšWÀš�Àš›Àš°ÀšËÀšóÀ›À›)À›+À›kÀ›´À›¶À›êÀœ Àœ ÀœEÀœLÀœ…Àœ�ÀœŸÀœÍÀœÔÀœôÀœöÀ�NÀ�UÀ�ŽÀ�¦À�¨À�ÙÀ�àÀžÀž)Àž+Àž8Àž`Àž~Àž™Àž¶ÀžÑÀžìÀŸÀŸÀŸ$ÀŸ)ÀŸ,ÀŸ.ÀŸ~ÀŸŒÀŸ‘ÀŸáÀ -À tÀ ƒÀ ˆÀ ÚÀ¡+À¡yÀ¡ËÀ¢À¢À¢.À¢yÀ¢ËÀ£ À£%À£{À£ŒÀ£‘À£¦À£ïÀ¤AÀ¤lÀ¤qÀ¤ÇÀ¤ØÀ¤ÝÀ¤ÿÀ¥À¥QÀ¥ŸÀ¥êÀ¦%À¦*À¦{À¦ÈÀ§À§4À§9À§�À§ÐÀ§äÀ§éÀ§þÀ¨KÀ¨™À¨äÀ©3À©{À©€À©ÖÀ©çÀ©ìÀ©ûÀªÀªNÀªŒÀªÛÀ«À«CÀ«†À«£À«³À«ÓÀ«ïÀ¬À¬À¬ À¬>À¬EÀ¬\À¬©À¬úÀ­À­À­vÀ­‰À­�À­¡À­¨À­óÀ®8À®>À®€À®™À®¦À®ØÀ®ÚÀ¯À¯$À¯sÀ¯‡À¯«À¯­À¯ßÀ¯æÀ°2À°JÀ°LÀ°YÀ°›À°žÀ° À°×À°ÜÀ±+À±{À±µÀ±ºÀ±ùÀ²À²À²YÀ²^À²«À²ýÀ³MÀ³ŒÀ³½À³ÂÀ³äÀ³éÀ´4À´‚À´ÎÀµÀµÀµ[Àµ­ÀµÒÀµ×À¶À¶lÀ¶€À¶…À¶šÀ¶çÀ·4À·lÀ·qÀ·ÅÀ·ÖÀ·ÛÀ·êÀ·ïÀ¸:À¸ˆÀ¸©À¸õÀ¹=À¹pÀ¹”À¹›À¹ØÀ¹óÀºÀº'ÀºDÀºVÀº|Àº~ÀºÎÀºÕÀ» À»À»%À»,À»|À»ÊÀ»þÀ¼/À¼1À¼�À¼ˆÀ¼¿À¼ÆÀ¼×À¼ÞÀ½+À½kÀ½qÀ½³À½ÌÀ½ÙÀ¾ À¾ À¾OÀ¾VÀ¾¥À¾¹À¾¿À¿À¿À¿%À¿XÀ¿[^/// @docImport 'package:flutter/material.dart'; /// @docImport 'package:flutter/widgets.dart';��-�,�5�a�w�‘�«�Â�ê�û‚�0Ž’Ž’ŒF/// A widget that rebuilds when the given [Listenable] changes value. /// /// {@youtube 560 315 https://www.youtube.com/watch?v=LKKgYpC-EPQ} /// /// [AnimatedWidget] is most commonly used with [Animation] objects, which are /// [Listenable], but it can be used with any [Listenable], including /// [ChangeNotifier] and [ValueNotifier]. /// /// [AnimatedWidget] is most useful for widgets that are otherwise stateless. To /// use [AnimatedWidget], subclass it and implement the build function. /// /// {@tool dartpad} /// This code defines a widget called `Spinner` that spins a green square /// continually. It is built with an [AnimatedWidget]. /// /// ** See code in examples/api/lib/widgets/transitions/animated_widget.0.dart ** /// {@end-tool} /// /// For more complex case involving additional state, consider using /// [AnimatedBuilder] or [ListenableBuilder]. /// /// ## Relationship to [ImplicitlyAnimatedWidget]s /// /// [AnimatedWidget]s (and their subclasses) take an explicit [Listenable] as /// argument, which is usually an [Animation] derived from an /// [AnimationController]. In most cases, the lifecycle of that /// [AnimationController] has to be managed manually by the developer. /// In contrast to that, [ImplicitlyAnimatedWidget]s (and their subclasses) /// automatically manage their own internal [AnimationController] making those /// classes easier to use as no external [Animation] has to be provided by the /// developer. If you only need to set a target value for the animation and /// configure its duration/curve, consider using (a subclass of) /// [ImplicitlyAnimatedWidget]s instead of (a subclass of) this class. /// /// ## Common animated widgets /// /// A number of animated widgets ship with the framework. They are usually named /// `FooTransition`, where `Foo` is the name of the non-animated /// version of that widget. The subclasses of this class should not be confused /// with subclasses of [ImplicitlyAnimatedWidget] (see above), which are usually /// named `AnimatedFoo`. Commonly used animated widgets include: /// /// * [ListenableBuilder], which uses a builder pattern that is useful for /// complex [Listenable] use cases. /// * [AnimatedBuilder], which uses a builder pattern that is useful for /// complex [Animation] use cases. /// * [AlignTransition], which is an animated version of [Align]. /// * [DecoratedBoxTransition], which is an animated version of [DecoratedBox]. /// * [DefaultTextStyleTransition], which is an animated version of /// [DefaultTextStyle]. /// * [PositionedTransition], which is an animated version of [Positioned]. /// * [RelativePositionedTransition], which is an animated version of /// [Positioned]. /// * [RotationTransition], which animates the rotation of a widget. /// * [ScaleTransition], which animates the scale of a widget. /// * [SizeTransition], which animates its own size. /// * [SlideTransition], which animates the position of a widget relative to /// its normal position. /// * [FadeTransition], which is an animated version of [Opacity]. /// * [AnimatedModalBarrier], which is an animated version of [ModalBarrier].޽€º�A�A�Ot/// Creates a widget that rebuilds when the given listenable changes. /// /// The [listenable] argument is required.�Q �X�W�\�k�j�}€“��n/// The [Listenable] to which this widget is listening. /// /// Commonly an [Animation] or a [ChangeNotifier].�€¼�·�·€„/// Override this method to build widgets that depend on the state of the /// listenable (e.g., the current value of the animation).�½�Ë�Ê�¢�£�Ù~‘5‘55/// Subclasses typically do not override this method.‘‘‘]€Ð‘o‘o‘ƒ&‘ ‘Ÿ‘]‘^’4ƒ>’:’:’lo’~’~’l’m’á�’ó’ó“““’á’â“ýn””“ý“þ”q€¯”v”v•&I•:•:•@•N•M•&•'˜lŽÈž·ž·†%/// Animates the position of a widget relative to its normal position. /// /// The translation is expressed as an [Offset] scaled to the child's size. For /// example, an [Offset] with a `dx` of 0.25 will result in a horizontal /// translation of one quarter the width of the child. /// /// By default, the offsets are applied in the coordinate system of the canvas /// (so positive x offsets move the child towards the right). If a /// [textDirection] is provided, then the offsets are applied in the reading /// direction, so in right-to-left text, positive x offsets move towards the /// left, and in left-to-right text, positive x offsets move towards the right. /// /// Here's an illustration of the [SlideTransition] widget, with its [position] /// animated by a [CurvedAnimation] set to [Curves.elasticIn]: /// {@animation 300 378 https://flutter.github.io/assets-for-api-docs/assets/widgets/slide_transition.mp4} /// /// {@tool dartpad} /// The following code implements the [SlideTransition] as seen in the video /// above: /// /// ** See code in examples/api/lib/widgets/transitions/slide_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [AlignTransition], an animated version of an [Align] that animates its /// [Align.alignment] property. /// * [PositionedTransition], a widget that animates its child from a start /// position to an end position over the lifetime of the animation. /// * [RelativePositionedTransition], a widget that transitions its child's /// position based on the value of a rectangle relative to a bounding box.žã€øŸŸŸ,0/// Creates a fractional translation transition.Ÿ4 Ÿ;Ÿ:ŸD#Ÿ`Ÿ_ŸnŸtŸsŸ’Ÿ˜Ÿ—Ÿ« Ÿ±Ÿ°Ÿ‡Ÿ¿ŸÄŸÙŸÏŸÅŸÑ¡M‚j£ª£ª‚&/// The direction to use for the x offset described by the [position]. /// /// If [textDirection] is null, the x offset is applied in the coordinate /// system of the canvas (so positive x offsets move the child towards the /// right). /// /// If [textDirection] is [TextDirection.rtl], the x offset is applied in the /// reading direction such that x offsets move the child towards the left. /// /// If [textDirection] is [TextDirection.ltr], the x offset is applied in the /// reading direction such that x offsets move the child towards the right.£¾�Ÿ¥L¥L�p/// Whether hit testing should be affected by the slide animation. /// /// If false, hit testing will proceed as if the child was not translated at /// all. Setting this value to false is useful for fast animations where you /// expect the user to commonly interact with the child widget in its final /// location and you want the user to benefit from "muscle memory".¥d}¥Ü¥Ü`/// The widget below this widget in the tree. /// /// {@macro flutter.widgets.ProxyWidget.child}Ÿá�f¡¡�/// The animation that controls the position of the child. /// /// If the current value of the position animation is `(dx, dy)`, the child /// will be translated horizontally by `width * dx` and vertically by /// `height * dy`, after applying the [textDirection] if available.¥è�I¥ü¥ü¦¦¦¥è¥é¨L‹M«@«@‚Û/// Animates the [Matrix4] of a transformed widget. /// /// The [onTransform] callback computes a [Matrix4] from the animated value, it /// is called every time the [animation] changes its value. /// /// {@tool dartpad} /// The following example implements a [MatrixTransition] with a rotation around /// the Y axis, with a 3D perspective skew. /// /// ** See code in examples/api/lib/widgets/transitions/matrix_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [ScaleTransition], which animates the scale of a widget, by providing a /// matrix which scales along the X and Y axis. /// * [RotationTransition], which animates the rotation of a widget, by /// providing a matrix which rotates along the Z axis.«m�V«Þ«Þ«îa/// Creates a matrix transition. /// /// The [alignment] argument defaults to [Alignment.center].«ö «ý«ü¬$¬"¬!¬1¬@¬?¬Q!¬W¬V¬y¬¬~¬’ ¬˜¬— ¬b¬k¬l¬¦¬«¬Á¬¶¬¬¬¸¬É€¡­_­_w/// The callback to compute a [Matrix4] from the [animation]. It's called /// every time [animation] changes its value.®[� ¯r¯r€÷/// The alignment of the origin of the coordinate system in which the /// transform takes place, relative to the size of the box. /// /// For example, to set the origin of the transform to bottom middle, you can /// use an alignment of (0.0, 1.0).¯‚�e°Ú°Ú�0/// The filter quality with which to apply the transform as a bitmap operation. /// /// When the animation is stopped (either in [AnimationStatus.dismissed] or /// [AnimationStatus.completed]), the filter quality argument will be ignored. /// /// {@macro flutter.widgets.Transform.optional.FilterQuality}°î}±f±f`/// The widget below this widget in the tree. /// /// {@macro flutter.widgets.ProxyWidget.child}­q€ä®(®(€”/// The animation that controls the matrix of the child. /// /// The matrix will be computed from the animation with the [onTransform] /// callback.±r‚$±†±†±Œ±š±™±r±s³�†Ç·h·hƒ¯/// Animates the scale of a transformed widget. /// /// Here's an illustration of the [ScaleTransition] widget, with it's [scale] /// animated by a [CurvedAnimation] set to [Curves.fastOutSlowIn]: /// {@animation 300 378 https://flutter.github.io/assets-for-api-docs/assets/widgets/scale_transition.mp4} /// /// {@tool dartpad} /// The following code implements the [ScaleTransition] as seen in the video /// above: /// /// ** See code in examples/api/lib/widgets/transitions/scale_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [PositionedTransition], a widget that animates its child from a start /// position to an end position over the lifetime of the animation. /// * [RelativePositionedTransition], a widget that transitions its child's /// position based on the value of a rectangle relative to a bounding box. /// * [SizeTransition], a widget that animates its own size and clips and /// aligns its child.·–�O¸¸¸`/// Creates a scale transition. /// /// The [alignment] argument defaults to [Alignment.center].¸ ¸$¸#¸- ¸I¸H¸T"¸[¸Z¸}¸„¸ƒ¸— ¸ž¸� ¸f¸o¸p¸¬¸±¸ã¸»¸²¸½¸Ï¸Ä¸Ñ¸ëd¹<¹<7/// The animation that controls the scale of the child.¹U� ºº€¡/// The callback that controls the scale of the child. /// /// If the current value of the animation is v, the child will be /// painted v times its normal size.º% º-º,ºh…ǽ]½]‚Û/// Animates the rotation of a widget. /// /// Here's an illustration of the [RotationTransition] widget, with it's [turns] /// animated by a [CurvedAnimation] set to [Curves.elasticOut]: /// {@animation 300 378 https://flutter.github.io/assets-for-api-docs/assets/widgets/rotation_transition.mp4} /// /// {@tool dartpad} /// The following code implements the [RotationTransition] as seen in the video /// above: /// /// ** See code in examples/api/lib/widgets/transitions/rotation_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [ScaleTransition], a widget that animates the scale of a transformed /// widget. /// * [SizeTransition], a widget that animates its own size and clips and /// aligns its child.½Ž�½º½º½Ì"/// Creates a rotation transition.½Ô ½Û½Ú½ä ¾½ÿ¾ "¾¾¾4¾;¾:¾N ¾U¾T ¾¾&¾'¾c¾h¾š¾r¾i¾t¾†¾{¾ˆ¾¢g¾ö¾ö:/// The animation that controls the rotation of the child.¿�¿ß¿ß€´/// The callback that controls the rotation of the child. /// /// If the current value of the animation is v, the child will be rotated /// v * 2 * pi radians before being painted.¿ò ¿ú¿ùÀ@3‘þÀG(ÀG(†Ì/// Animates its own size and clips and aligns its child. /// /// [SizeTransition] acts as a [ClipRect] that animates either its width or its /// height, depending upon the value of [axis]. The alignment of the child along /// the [axis] is specified by the [axisAlignment]. /// /// Like most widgets, [SizeTransition] will conform to the constraints it is /// given, so be sure to put it in a context where it can change size. For /// instance, if you place it into a [Container] with a fixed size, then the /// [SizeTransition] will not be able to change size, and will appear to do /// nothing. /// /// Here's an illustration of the [SizeTransition] widget, with it's [sizeFactor] /// animated by a [CurvedAnimation] set to [Curves.fastOutSlowIn]: /// {@animation 300 378 https://flutter.github.io/assets-for-api-docs/assets/widgets/size_transition.mp4} /// /// {@tool dartpad} /// This code defines a widget that uses [SizeTransition] to change the size /// of [FlutterLogo] continually. It is built with a [Scaffold] /// where the internal widget has space to change its size. /// /// ** See code in examples/api/lib/widgets/transitions/size_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [AnimatedCrossFade], for a widget that automatically animates between /// the sizes of two children, fading between them. /// * [ScaleTransition], a widget that scales the size of the child instead of /// clipping it. /// * [PositionedTransition], a widget that animates its child from a start /// position to an end position over the lifetime of the animation. /// * [RelativePositionedTransition], a widget that transitions its child's /// position based on the value of a rectangle relative to a bounding box.ÀGS‚ÀH1ÀH1ÀH?€È/// Creates a size transition. /// /// The [axis] argument defaults to [Axis.vertical]. The [axisAlignment] /// defaults to zero, which centers the child along the main axis during the /// transition.ÀHG ÀHNÀHMÀHWÀH]ÀH\ÀHw%ÀH“ÀH’ÀH£ÀH©ÀH¨ÀHÂÀHÈÀHÇÀHæ ÀHìÀHëÀHcÀHgÀHhÀH¸ÀHúÀIÀIDÀI"ÀIÀIÀIÀI>ÀI%ÀIAÀIOÀITÀIkÀI_ÀIUÀIaÀIsnÀIÝÀIÝX/// [Axis.horizontal] if [sizeFactor] modifies the width, otherwise /// [Axis.vertical].ÀK¼‚>ÀMíÀMí‚/// Describes how to align the child along the axis that [sizeFactor] is /// modifying. /// /// A value of -1.0 indicates the top when [axis] is [Axis.vertical], and the /// start when [axis] is [Axis.horizontal]. The start is on the left when the /// text direction in effect is [TextDirection.ltr] and on the right when it /// is [TextDirection.rtl]. /// /// A value of 1.0 indicates the bottom or end, depending upon the [axis]. /// /// A value of 0.0 (the default) indicates the center for either [axis] value.ÀN�MÀO6ÀO6�/// The factor by which to multiply the cross axis size of the child. /// /// If the value of [fixedCrossAxisSizeFactor] is less than one, the child /// will be clipped along the appropriate axis. /// /// If `null` (the default), the cross axis size is as large as the parent.ÀOU}ÀOÍÀOÍ`/// The widget below this widget in the tree. /// /// {@macro flutter.widgets.ProxyWidget.child}ÀIè�ÎÀKˆÀKˆ�q/// The animation that controls the (clipped) size of the child. /// /// The width or height (depending on the [axis] value) of this widget will be /// its intrinsic width or height multiplied by [sizeFactor]'s value at the /// current point in the animation. /// /// If the value of [sizeFactor] is less than one, the child will be clipped /// in the appropriate axis.ÀOÙ‚UÀOíÀOíÀOóÀPÀPÀOÙÀOÚÀR5�ÀZÀZ‡¶/// Animates the opacity of a widget. /// /// For a widget that automatically animates between the sizes of two children, /// fading between them, see [AnimatedCrossFade]. /// /// {@youtube 560 315 https://www.youtube.com/watch?v=rLwWVbv3xDQ} /// /// Here's an illustration of the [FadeTransition] widget, with it's [opacity] /// animated by a [CurvedAnimation] set to [Curves.fastOutSlowIn]: /// /// {@tool dartpad} /// The following code implements the [FadeTransition] using /// the Flutter logo: /// /// ** See code in examples/api/lib/widgets/transitions/fade_transition.0.dart ** /// {@end-tool} /// /// ## Hit testing /// /// Setting the [opacity] to zero does not prevent hit testing from being /// applied to the descendants of the [FadeTransition] widget. This can be /// confusing for the user, who may not see anything, and may believe the area /// of the interface where the [FadeTransition] is hiding a widget to be /// non-interactive. /// /// With certain widgets, such as [Flow], that compute their positions only when /// they are painted, this can actually lead to bugs (from unexpected geometry /// to exceptions), because those widgets are not painted by the [FadeTransition] /// widget at all when the [opacity] animation reaches zero. /// /// To avoid such problems, it is generally a good idea to combine this widget /// with an [IgnorePointer] that one enables when the [opacity] animation /// reaches zero. This prevents interactions with any children in the subtree /// when the [child] is not visible. For performance reasons, when implementing /// this, care should be taken not to rebuild the relevant widget (e.g. by /// calling [State.setState]) except at the transition point. /// /// See also: /// /// * [Opacity], which does not animate changes in opacity. /// * [AnimatedOpacity], which animates changes in opacity without taking an /// explicit [Animation] argument. /// * [SliverFadeTransition], the sliver version of this widget.ÀZW€«ÀZƒÀZƒÀZ‘"/// Creates an opacity transition.ÀZ™ ÀZ ÀZŸÀZ©ÀZ¸ÀZ·ÀZÅ#ÀZËÀZÊÀZï ÀZöÀZõÀZãÀ[�rÀ\sÀ\s�@/// The animation that controls the opacity of the child. /// /// If the current value of the opacity animation is v, the child will be /// painted with an opacity of v. For example, if v is 0.5, the child will be /// blended 50% with its background. Similarly, if v is 0.0, the child will be /// completely transparent.À\��§À^À^�m/// Whether the semantic information of the children is always included. /// /// Defaults to false. /// /// When true, regardless of the opacity settings the child semantic /// information is exposed as if the widget were fully visible. This is /// useful in cases where labels may be hidden during animations that /// would otherwise contribute relevant semantics.À^/€·À^RÀ^RÀ^eÀ^sÀ^rÀ^/À^0À^ì€ÌÀ^þÀ^þÀ_À_À_À_'"À_>À_=À^ìÀ^íÀ_¾�ƒÀ_ÐÀ_ÐÀ_ä&À`À`À_¾À_¿ÀaH�Àh×Àhׇ`/// Animates the opacity of a sliver widget. /// /// {@tool dartpad} /// Creates a [CustomScrollView] with a [SliverFixedExtentList] that uses a /// [SliverFadeTransition] to fade the list in and out. /// /// ** See code in examples/api/lib/widgets/transitions/sliver_fade_transition.0.dart ** /// {@end-tool} /// /// Here's an illustration of the [FadeTransition] widget, the [RenderBox] /// equivalent widget, with it's [opacity] animated by a [CurvedAnimation] set /// to [Curves.fastOutSlowIn]: /// /// {@animation 300 378 https://flutter.github.io/assets-for-api-docs/assets/widgets/fade_transition.mp4} /// /// ## Hit testing /// /// Setting the [opacity] to zero does not prevent hit testing from being /// applied to the descendants of the [SliverFadeTransition] widget. This can be /// confusing for the user, who may not see anything, and may believe the area /// of the interface where the [SliverFadeTransition] is hiding a widget to be /// non-interactive. /// /// With certain widgets, such as [Flow], that compute their positions only when /// they are painted, this can actually lead to bugs (from unexpected geometry /// to exceptions), because those widgets are not painted by the /// [SliverFadeTransition] widget at all when the [opacity] animation reaches /// zero. /// /// To avoid such problems, it is generally a good idea to combine this widget /// with a [SliverIgnorePointer] that one enables when the [opacity] animation /// reaches zero. This prevents interactions with any children in the subtree /// when the sliver is not visible. For performance reasons, when implementing /// this, care should be taken not to rebuild the relevant widget (e.g. by /// calling [State.setState]) except at the transition point. /// /// See also: /// /// * [SliverOpacity], which does not animate changes in opacity. /// * [FadeTransition], the box version of this widget.Ài€ËÀiCÀiCÀiW"/// Creates an opacity transition.Ài_ ÀifÀieÀioÀi~Ài}Ài‹#Ài‘Ài�ÀiµÀi¾Ài½Ài©ÀiÍÀiÒÀiàÀiØÀiÓÀiÚÀiè�yÀkZÀkZ�G/// The animation that controls the opacity of the sliver child. /// /// If the current value of the opacity animation is v, the child will be /// painted with an opacity of v. For example, if v is 0.5, the child will be /// blended 50% with its background. Similarly, if v is 0.0, the child will be /// completely transparent.Àkh�´ÀmÀm�z/// Whether the semantic information of the sliver child is always included. /// /// Defaults to false. /// /// When true, regardless of the opacity settings the sliver child's semantic /// information is exposed as if the widget were fully visible. This is /// useful in cases where labels may be hidden during animations that /// would otherwise contribute relevant semantics.Àm#€ÙÀmLÀmLÀm_ÀmmÀmlÀm#Àm$Àn€ÒÀnÀnÀn'Àn5Àn4Àn=(ÀnZÀnYÀnÀnÀnÚ�ƒÀnìÀnìÀo&ÀoÀoÀnÚÀnÛÀpd‚’ÀqUÀqU€ä/// An interpolation between two relative rects. /// /// This class specializes the interpolation of [Tween] to /// use [RelativeRect.lerp]. /// /// See [Tween] for a discussion on how to use interpolation objects.Àqˆ€ÈÀr$Àr$Àr5€�/// Creates a [RelativeRect] tween. /// /// The [begin] and [end] properties may be null; the null value /// is treated as [RelativeRect.fill].Àr7 Àr>Àr=ÀrD ÀrKÀrJÀrV€�Àr¿Àr¿K/// Returns the value this variable has at the given animation clock value.ÀrÄÀrÌÀrËÀr¥Àr¦ÀrúˆkÀxÖÀxÖ…¶/// Animated version of [Positioned] which takes a specific /// [Animation] to transition the child's position from a start /// position to an end position over the lifetime of the animation. /// /// Only works if it's the child of a [Stack]. /// /// Here's an illustration of the [PositionedTransition] widget, with it's [rect] /// animated by a [CurvedAnimation] set to [Curves.elasticInOut]: /// {@animation 300 378 https://flutter.github.io/assets-for-api-docs/assets/widgets/positioned_transition.mp4} /// /// {@tool dartpad} /// The following code implements the [PositionedTransition] as seen in the video /// above: /// /// ** See code in examples/api/lib/widgets/transitions/positioned_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [AnimatedPositioned], which transitions a child's position without /// taking an explicit [Animation] argument. /// * [RelativePositionedTransition], a widget that transitions its child's /// position based on the value of a rectangle relative to a bounding box. /// * [SlideTransition], a widget that animates the position of a widget /// relative to its normal position. /// * [AlignTransition], an animated version of an [Align] that animates its /// [Align.alignment] property. /// * [ScaleTransition], a widget that animates the scale of a transformed /// widget. /// * [SizeTransition], a widget that animates its own size and clips and /// aligns its child.Ày€ÁÀy;Ày;ÀyO*/// Creates a transition for [Positioned].ÀyW Ày^Ày]Àyg%Ày‰ÀyˆÀy“Ày¢Ày¡Ày°ÀyµÀyÆÀyÀÀy¶ÀyÂÀz`|Àz×Àz×`/// The widget below this widget in the tree. /// /// {@macro flutter.widgets.ProxyWidget.child}Ày΀ŒÀz,Àz,>/// The animation that controls the child's size and position.ÀzãÀz÷Àz÷ÀzýÀ{ À{ ÀzãÀzäÀ{iŠÔÀ€½À€½…0/// Animated version of [Positioned] which transitions the child's position /// based on the value of [rect] relative to a bounding box with the /// specified [size]. /// /// Only works if it's the child of a [Stack]. /// /// Here's an illustration of the [RelativePositionedTransition] widget, with it's [rect] /// animated by a [CurvedAnimation] set to [Curves.elasticInOut]: /// {@animation 300 378 https://flutter.github.io/assets-for-api-docs/assets/widgets/relative_positioned_transition.mp4} /// /// {@tool dartpad} /// The following code implements the [RelativePositionedTransition] as seen in the video /// above: /// /// ** See code in examples/api/lib/widgets/transitions/relative_positioned_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [PositionedTransition], a widget that animates its child from a start /// position to an end position over the lifetime of the animation. /// * [AlignTransition], an animated version of an [Align] that animates its /// [Align.alignment] property. /// * [ScaleTransition], a widget that animates the scale of a transformed /// widget. /// * [SizeTransition], a widget that animates its own size and clips and /// aligns its child. /// * [SlideTransition], a widget that animates the position of a widget /// relative to its normal position.À€ö�—À�æÀ�æÀ‚€Ú/// Create an animated version of [Positioned]. /// /// Each frame, the [Positioned] widget will be configured to represent the /// current value of the [rect] argument assuming that the stack has the given /// [size].À‚ À‚À‚À‚À‚5À‚4À‚?À‚NÀ‚MÀ‚XÀ‚gÀ‚fÀ‚uÀ‚zÀ‚‹À‚…À‚{À‚‡À„wÀ„yÀ„ya/// The [Positioned] widget's offsets are relative to a box of this /// size whose origin is 0,0.À„„|À„ûÀ„û`/// The widget below this widget in the tree. /// /// {@macro flutter.widgets.ProxyWidget.child}À‚“�mÀƒÙÀƒÙ�/// The animation that controls the child's size and position. /// /// If the animation returns a null [Rect], the rect is assumed to be [Rect.zero]. /// /// See also: /// /// * [size], which gets the size of the box that the [Positioned] widget's /// offsets are relative to.À…�3À…À…À…!À…/À….À…À…À†A‡KÀ‰œÀ‰œƒA/// Animated version of a [DecoratedBox] that animates the different properties /// of its [Decoration]. /// /// Here's an illustration of the [DecoratedBoxTransition] widget, with it's /// [decoration] animated by a [CurvedAnimation] set to [Curves.decelerate]: /// {@animation 300 378 https://flutter.github.io/assets-for-api-docs/assets/widgets/decorated_box_transition.mp4} /// /// {@tool dartpad} /// The following code implements the [DecoratedBoxTransition] as seen in the video /// above: /// /// ** See code in examples/api/lib/widgets/transitions/decorated_box_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [DecoratedBox], which also draws a [Decoration] but is not animated. /// * [AnimatedContainer], a more full-featured container that also animates on /// decoration using an internal animation.À‰Ï�`ÀŠsÀŠsÀЉ€‹/// Creates an animated [DecoratedBox] whose [Decoration] animation updates /// the widget. /// /// See also: /// /// * [DecoratedBox.new]ÀŠ‘ ÀŠ˜ÀŠ—ÀŠ¡ÀаÀНÀŠÀ-ÀŠÆÀŠÅÀŠôÀ‹À‹ ÀŠÐÀŠâÀŠãÀ‹À‹À‹-À‹!À‹À‹#À‹5€ÆÀ‹ñÀ‹ñ€“/// Animation of the decoration to paint. /// /// Can be created using a [DecorationTween] interpolating typically between /// two [BoxDecoration].ÀŒmÀŒgÀŒgH/// Whether to paint the box decoration behind or in front of the child.ÀŒv|ÀŒíÀŒí`/// The widget below this widget in the tree. /// /// {@macro flutter.widgets.ProxyWidget.child}ÀŒù€�À� À� À�À�!À� ÀŒùÀŒúÀ��‰YÀ’–À’–„ä/// Animated version of an [Align] that animates its [Align.alignment] property. /// /// Here's an illustration of the [DecoratedBoxTransition] widget, with it's /// [DecoratedBoxTransition.decoration] animated by a [CurvedAnimation] set to /// [Curves.decelerate]: /// /// {@animation 300 378 https://flutter.github.io/assets-for-api-docs/assets/widgets/align_transition.mp4} /// /// {@tool dartpad} /// The following code implements the [AlignTransition] as seen in the video /// above: /// /// ** See code in examples/api/lib/widgets/transitions/align_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [AnimatedAlign], which animates changes to the [alignment] without /// taking an explicit [Animation] argument. /// * [PositionedTransition], a widget that animates its child from a start /// position to an end position over the lifetime of the animation. /// * [RelativePositionedTransition], a widget that transitions its child's /// position based on the value of a rectangle relative to a bounding box. /// * [SizeTransition], a widget that animates its own size and clips and /// aligns its child. /// * [SlideTransition], a widget that animates the position of a widget /// relative to its normal position.À’Â�dÀ“`À“`À“o€…/// Creates an animated [Align] whose [AlignmentGeometry] animation updates /// the widget. /// /// See also: /// /// * [Align.new].À“w À“~À“}À“‡/À“®À“­À“½À“ÌÀ“ËÀ“×À“ÝÀ“ÜÀ“îÀ“ôÀ“óÀ” À”À”$À”À”À”À”Å`À•À•C/// If non-null, the child's width factor, see [Align.widthFactor].À•,cÀ•ƒÀ•ƒE/// If non-null, the child's height factor, see [Align.heightFactor].À•–|À– À– `/// The widget below this widget in the tree. /// /// {@macro flutter.widgets.ProxyWidget.child}À”,€“À”‡À”‡6/// The animation that controls the child's alignment.À–€ÍÀ–-À–-À–3À–AÀ–@À–À–À–íˆ=À™‡À™‡‚ƒ/// Animated version of a [DefaultTextStyle] that animates the different properties /// of its [TextStyle]. /// /// {@tool dartpad} /// The following code implements the [DefaultTextStyleTransition] that shows /// a transition between thick blue font and thin red font. /// /// ** See code in examples/api/lib/widgets/transitions/default_text_style_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [AnimatedDefaultTextStyle], which animates changes in text style without /// taking an explicit [Animation] argument. /// * [DefaultTextStyle], which also defines a [TextStyle] for its descendants /// but is not animated.À™¾�iÀš)Àš)ÀšC^/// Creates an animated [DefaultTextStyle] whose [TextStyle] animation updates /// the widget.ÀšK ÀšRÀšQÀš[#ÀšzÀšyÀš…Àš”Àš“ÀšŸÀš¥Àš¤Àš´ÀšºÀš¹ÀšÏ!ÀšÕÀšÔÀš÷ ÀšýÀšü ÀšÄÀšßÀšëÀšìÀ›À›À›%À›À›À› À›¸NÀ›ýÀ›ý0/// How the text should be aligned horizontally.Àœ €�Àœ’Àœ’p/// Whether the text should break at soft line breaks. /// /// See [DefaultTextStyle.softWrap] for more details.Àœ¡PÀœéÀœé./// How visual overflow should be handled. ///Àœø€«À�›À�›€Ž/// An optional maximum number of lines for the text to span, wrapping if necessary. /// /// See [DefaultTextStyle.maxLines] for more details.À�ª|Àž!Àž!`/// The widget below this widget in the tree. /// /// {@macro flutter.widgets.ProxyWidget.child}À›-€…À›†À›†ÀaCÀaFÀaHÀavÀa{Àa�ÀaÝÀbÀbÀbuÀb†Àb‹Àb×Àc'ÀcGÀcLÀc·Àc¼ÀcÐÀcÕÀd ÀdrÀdÂÀeÀe(Àe-ÀeÀeÏÀfÀf`ÀfkÀfpÀfÀÀgÀg_Àg¯ÀgûÀh:Àh?ÀhNÀhSÀh—ÀhÑÀiÀi;Ài[ÀikÀi‡Ài±ÀiÆÀiäÀiæÀj*Àj1Àj~ÀjÏÀk!Àk@ÀkdÀkfÀk¶Àk½Àk×ÀkÞÀl/ÀlzÀlÃÀlùÀmÀm!Àm.ÀmxÀm¡ÀmºÀmñÀmùÀmþÀnÀn ÀnjÀn|Àn—ÀnÑÀnÖÀnØÀnåÀo+ÀoWÀo¨Ào½ÀoÒÀoõÀpÀpHÀpRÀpZÀp_ÀpbÀpdÀp–Àp›ÀpåÀqÀqÀqOÀq†Àq­Àq´ÀqøÀr"ÀrRÀrTÀr£Àr°ÀrõÀrøÀrúÀs7Às†ÀsËÀsÐÀtÀtÀtXÀt›Àu ÀuÀu&ÀuyÀu…ÀuŠÀuãÀuôÀuùÀvÀv ÀvXÀv‰Àv×Àw&ÀwqÀwšÀwéÀx ÀxZÀxjÀx¶ÀxÐÀyÀy3ÀySÀycÀy�Ày©ÀyÊÀyÌÀzÀz\Àz^Àz�Àz–ÀzÈÀzßÀzáÀzîÀ{À{_À{dÀ{gÀ{iÀ{¶À{üÀ|À|À|HÀ|MÀ|¨À|ëÀ}eÀ}jÀ}À}ÚÀ}æÀ}ëÀ~MÀ~^À~cÀ~rÀ~wÀ~ÅÀ À\À€ÀÍÀÝÀ€)À€CÀ€ŽÀ€·À€ôÀ�'À�.À�}À�ÏÀ�ÞÀ‚À‚À‚;À‚TÀ‚nÀ‚�À‚‘À‚ÓÀ‚ÚÀƒ0Àƒ7ÀƒHÀƒOÀƒŸÀƒÂÀ„À„À„KÀ„lÀ„€À„‚À„³À„ºÀ„ìÀ…À…À…À…:À…’À…ªÀ…ÃÀ…àÀ…ÿÀ†À†/À†7À†<À†?À†AÀ†’À†¬À†±À†ÿÀ‡MÀ‡ÁÀ‡ÆÀ‡ÛÀˆ0Àˆ<ÀˆAÀˆ�Àˆ®Àˆ³ÀˆÂÀˆÇÀ‰À‰fÀ‰–À‰ÍÀŠÀŠ/ÀŠ6ÀŠGÀŠNÀŠkÀŠ�ÀŠ�ÀмÀŠðÀ‹ À‹1À‹3À‹`À‹gÀ‹·À‹ÓÀ‹þÀŒÀŒLÀŒrÀŒtÀŒ¥ÀŒ¬ÀŒÞÀŒõÀŒ÷À�À�,À�†À�‹À�ŽÀ��À�âÀ�çÀŽ5ÀŽ…ÀŽŸÀޤÀ�À�À�*À�xÀ�„À�‰À�ÝÀ�îÀ�óÀ�À�À�RÀ�ƒÀ�ÑÀ‘À‘gÀ‘¶À’À’À’gÀ’�À’ÀÀ“À“"À“)À“:À“AÀ“XÀ“sÀ“ƒÀ“¹À“ÓÀ“êÀ”À”(À”*À”dÀ”ÁÀ”ÃÀ• À•(À•*À•sÀ•’À•”À•ÅÀ•ÌÀ•þÀ–À–À–$À–LÀ–_À–‚À–£À–ÆÀ–ÛÀ–ãÀ–èÀ–ëÀ–íÀ—BÀ—[À—`À—uÀ—ÄÀ˜À˜À˜gÀ˜xÀ˜}À˜ŒÀ˜‘À˜âÀ™À™dÀ™�À™¼ÀšÀš!ÀšGÀšWÀš�Àš›Àš°ÀšËÀšóÀ›À›)À›+À›kÀ›´À›¶À›êÀœ Àœ ÀœEÀœLÀœ…Àœ�ÀœŸÀœÍÀœÔÀœôÀœöÀ�NÀ�UÀ�ŽÀ�¦À�¨À�ÙÀ�àÀžÀž)Àž+Àž8Àž`Àž~Àž™Àž¶ÀžÑÀžìÀŸÀŸÀŸ$ÀŸ)ÀŸ,ÀŸ.ÀŸ~ÀŸŒÀŸ‘ÀŸáÀ -À tÀ ƒÀ ˆÀ ÚÀ¡+À¡yÀ¡ËÀ¢À¢À¢.À¢yÀ¢ËÀ£ À£%À£{À£ŒÀ£‘À£¦À£ïÀ¤AÀ¤lÀ¤qÀ¤ÇÀ¤ØÀ¤ÝÀ¤ÿÀ¥À¥QÀ¥ŸÀ¥êÀ¦%À¦*À¦{À¦ÈÀ§À§4À§9À§�À§ÐÀ§äÀ§éÀ§þÀ¨KÀ¨™À¨äÀ©3À©{À©€À©ÖÀ©çÀ©ìÀ©ûÀªÀªNÀªŒÀªÛÀ«À«CÀ«†À«£À«³À«ÓÀ«ïÀ¬À¬À¬ À¬>À¬EÀ¬\À¬©À¬úÀ­À­À­vÀ­‰À­�À­¡À­¨À­óÀ®8À®>À®€À®™À®¦À®ØÀ®ÚÀ¯À¯$À¯sÀ¯‡À¯«À¯­À¯ßÀ¯æÀ°2À°JÀ°LÀ°YÀ°›À°žÀ° À°×À°ÜÀ±+À±{À±µÀ±ºÀ±ùÀ²À²À²YÀ²^À²«À²ýÀ³MÀ³ŒÀ³½À³ÂÀ³äÀ³éÀ´4À´‚À´ÎÀµÀµÀµ[Àµ­ÀµÒÀµ×À¶À¶lÀ¶€À¶…À¶šÀ¶çÀ·4À·lÀ·qÀ·ÅÀ·ÖÀ·ÛÀ·êÀ·ïÀ¸:À¸ˆÀ¸©À¸õÀ¹=À¹pÀ¹”À¹›À¹ØÀ¹óÀºÀº'ÀºDÀºVÀº|Àº~ÀºÎÀºÕÀ» À»À»%À»,À»|À»ÊÀ»þÀ¼/À¼1À¼�À¼ˆÀ¼¿À¼ÆÀ¼×À¼ÞÀ½+À½kÀ½qÀ½³À½ÌÀ½ÙÀ¾ À¾ À¾OÀ¾VÀ¾¥À¾¹À¾¿À¿À¿À¿%À¿XÀ¿[AnimatedWidget_AnimatedStateSlideTransitionMatrixTransitionScaleTransitionRotationTransitionSizeTransitionFadeTransitionSliverFadeTransitionRelativeRectTweenPositionedTransitionRelativePositionedTransitionDecoratedBoxTransitionAlignTransitionDefaultTextStyleTransitionListenableBuilderAnimatedBuilder;flutter.widgets.transitions.ListenableBuilder.optimizations‚IIf the [builder] function contains a subtree that does not depend on the [listenable], it is more efficient to build that subtree once instead of rebuilding it on every change of the [listenable]. Performance is therefore improved by specifying any widgets that don't need to change using the prebuilt [child] attribute. The [ListenableBuilder] passes this [child] back to the [builder] callback so that it can be incorporated into the build. Using this pre-built [child] is entirely optional, but can improve performance significantly in some cases and is therefore a good practice.9flutter.widgets.transitions.AnimatedBuilder.optimizations‚If the [builder] function contains a subtree that does not depend on the animation passed to the constructor, it's more efficient to build that subtree once instead of rebuilding it on every animation tick. If a pre-built subtree is passed as the [child] parameter, the [AnimatedBuilder] will pass it back to the [builder] function so that it can be incorporated into the build. Using this pre-built child is entirely optional, but can improve performance significantly in some cases and is therefore a good practice.ÂB