H	transform	translatescalerotatesaverestoresaveRestoreclipRectclipPathrect	clipRRectrrectdrrectrsuperellipseclipRSuperellipsecirclepathlinearc	paragraphshadowimagedrawImageRect	something
everythingincludesexcludesmatchesdescribedescribeMismatchmessagecallIntroductioncall_evaluatePredicates_methodName_count_nonPaintingOperations_filterCanvasCalls_predicatesmatchcheckMethodtoStringsymbolnameargumentCountpaintArgumentIndexcolorstrokeWidthhasMaskFilterstyle	strokeCap
methodNameverifyArgumentsdebugFillDescriptionexpected	expected1	expected2xyradiusp1p2
startAngle
sweepAngle	useCenter	elevationtransparentOccludersourcedestination	predicate_runPredicate	arguments'paintspaintsNothingpaintsAssertionpaintsExactlyCountTimesPaintPatternPredicate_ContextPainterFunction_CanvasPainterFunction_colorsMatchPaintPattern
isPathThat_PathMatcher_MismatchedCall_evaluatePainter_TestRecordingCanvasMatcher&_TestRecordingCanvasPaintsCountMatcher(_TestRecordingCanvasPaintsNothingMatcher*_TestRecordingCanvasPaintsAssertionMatcher"_TestRecordingCanvasPatternMatcher_PaintPredicate_DrawCommandPaintPredicate_OneParameterPaintPredicate_TwoParameterPaintPredicate_RectPaintPredicate_RRectPaintPredicate_DRRectPaintPredicate_RSuperellipsePaintPredicate_CirclePaintPredicate_PathPaintPredicate_LinePaintPredicate_ArcPaintPredicate_ShadowPredicate_DrawImagePaintPredicate_DrawImageRectPaintPredicate_SomethingPaintPredicate_EverythingPaintPredicate_FunctionPaintPredicate_SaveRestorePairPaintPredicate
_valueName_symbolNameImage	ParagraphRenderObjectFinderPaintingContextOffsetMatcherSymbolint	something
everythingboolListdynamicpaintvoidCanvasColordouble
colorSpaceaabsrgbexpect	transformFloat64ListequalsmoreOrLessEquals	translatescalerotatesaverestoreclipRectRectclipPathpathMatcherdrawRectPaintPaintingStyle	clipRRectRRect	drawRRectdrawRSuperellipseRSuperellipseclipRSuperellipse
drawCircledrawPathIterabledrawLinedrawArc	StrokeCapdrawParagraphwithin
drawShadow	BoxShadowMaterialdebugDisableShadows	drawImagedrawImageRectStringPathcontainsincludestoListexcludesoverrideObjectMapoffsetisEmptyjoinDescriptionlengthaddErrorRecordedInvocationfunctionzeroTestAsyncUtils	guardSyncfinderevaluatesinglerenderObjectresultTestRecordingCanvasTestRecordingPaintingContextStringBufferinvocationswritelnerrortoStringwritestack
isNotEmptycall
invocationisMethod
memberNamefirststackToStringindentwhere
canvasCallAssertionErrormatrix4xyanglerectcolorstrokeWidthhasMaskFilterstylerrectouterinnerrsuperellipseradiusp1p2
startAngle
sweepAngle	useCenter	strokeCap	elevationtransparentOccluderimagesourcedestinationaddAllmap	predicateIteratoriteratormoveNextcurrentmatchdatamessagecallIntroductions	TypeError	protectedFlutterErrorruntimeTypecheckMethodpositionalArgumentsmustCallSuper
maskFilterverifyArguments
methodNamedebugFillDescriptionexpectedleftrighttopbottom	blRadiusX	blRadiusY	brRadiusX	brRadiusY	tlRadiusX	tlRadiusY	trRadiusX	trRadiusY	expected1	expected2dxtoStringAsFixeddy	isCloneOfindex	substringMatcherError_TestRecordingCanvasMatcherPaintPattern_PaintPredicate_DrawCommandPaintPredicate_OneParameterPaintPredicate_TwoParameterPaintPredicateĝ})ZY|:  /Image	Paragraph    uidart:ui  3   package:flutter/foundation.dart  ]   package:flutter/widgets.dart     package:matcher/expect.dart     finders.dart     recording_canvas.dart     test_async_utils.dart   <Հـ12\?Z[҂փpڄ	]HPTNR*+xTU689ĉȊ:>Jo|tu/ALn+/12эD9Џ֐bH;Ғ6<ٔAB|ӕ#mѕז"BHX^ !RXƗ̗ܗ!nE̙ҙ'lÛ`*Tstӝ!<Bڞ-.ag*0~ȟF-^l|ڡ!'x¢LR%tŤFL]'6HZsD˨ѩ &j7Ы#5G_wի۬*u_+zĮ.@Yrxy°F J}>P|дm*<Unöaط%oٷ߸#MS>ǹ2Kekl8w}˻Ѽ?E0zɽٽ7=>lr6<ӿ @ @P @ @ A7 Ah Au A A A A A A B B( BB BH BI B| B B C Cd Cs Cy C D D^ D D E E EX Eg E E E E F+ Fy F F F G> Gy G G H H_ Hu H{ H H I IA IQ Iq I I I I I I J J J_ J J J J J K5 K` Kf K L LQ L L L L L M M  M9 MR Ml Mr Ms M M N N2 N8 N N N N O
 O O^ O O PE Pv P P P P P P Q Q) Q/ Q0 QQ QW Q Q Q RE RU R[ R R SE Sn St S T Tf T T T U6 U~ U U U U U VE V V V V V WL W W W X& XO XU X X Y0 YN Y Y Y Y Z Z/ Z_ Z Z Z Z Z Z [' [( [A [Z [[ [g [ [ \ \  \& \D \a \ \ ] ]s ]z ] ] ] ] ^ ^: ^L ^P ^Q ^] ^ ^ ^ ^ _ _" _K _Q _R _n _ _ _ _ _ _ ` ` `: `` `r `x ` ` ` ` ` a  a8 aY az a| a} a a b b8 bh b b b c
 cG cq c c c c c c c d d! dd d d d e  e8 eB ez e e e f f fU fj f f f f g* gU gk gq g g g h0 h\ hf hn h h h h h i i  i, iL i^ i{ i i i i i i i jK j j j j j j j k k8 k k k k l l l4 l l l l l m m" m> mB mD mE m m m n! n% n& n2 n n o  o o o0 ox o o o o o p$ p% pc p p q q] qd qh qj qk q q q r' ra r r r r s s. sj s s s s s t t tV t t t t t u uE u u u u v  v v v v v* v\ v v v v v v w w; wM wS w w w w w w x> x? xK xq x x x x x yF yJ yK yW y~ y y y y y z@ zD zE zQ za z z z z z { { { { {4 {k {o {p {| { { { { { |! |r |v |w | | | | | | | } } }6 }J }` } } } } } } } } ~ ~N ~R ~S ~_ ~n ~ ~ ~ ~ ~ ~ ~  , B d              9 S Z o       , 5 < @ A M d       
 0 F h        F J K W g v         0 > L d z          ' G Y r        * L r             5 < Q l |       	    ! . > V n         1 E e       5 > E I J V       1 Q c z        9 k t {           , 3 H h ~         " # / F [ m        " 8 P r          ; u y z       9 X        r y } ~    0 D J i   " < E Y _     E M |    A U q     " C l t           M a    ) H   1 p    
     ) ?         % D T j          * G d        /     P k t z       & h    S \ b    N u ~     e      / : B H    & / 5 z    : C I M N Z p     * 0 C G H U f      1 7 X         ; Z m       4 5 J K W     ! n         3 k         . M ` s     	 # E F ] ^ u v     7 Q      I c        H u     . 6 < Y        	 
 P h x        E ^ n          M s     : o   , m   0 q    A J P T U a         d ~       R T U       Y Z      & q    A J P T U a    % + / 1 2 s         5 6 I \ t u     - Q u   # . 6 C s   $ M X ` Ð ì  A j u } ă Ķ   4  Ż       @ b Ɣ ơ Ƹ    [ c i ǃ       & 9 L ] t ȍ Ȟ       O u ɤ    ; ʆ ʦ ʳ ʽ     C a ˮ         4 a ̑   7 Z ͔ ͚ ͞ ͠ ͡  + C P ] n ΅ Ξ ί       @ ϊ ϫ   C r М ж  4 = C m ч       % ] Ҋ Ҡ         ! _ v Ӆ Ӛ ӯ      * R S g h Ԅ ԅ ԡ Ԣ Ի Լ     O  ՙ   ! ' ^ ֠ ֺ 
 M V \ ד   ? ؂ ؋ ؑ    k ٭ ٶ ټ     2 J o u ړ      < k q u w x ۩ ۾     & , - Q u ܋ ܦ    & ' 4 f ݇    ; j ޘ ޶  ! . 8 @ F b ߑ ߾  ) A N X ` f    8 h q w    R     0 J     	      R q       B     E K d       I O S T ` v     6 < O S U V          1 ] ^ w       6 s      L n      e p x     g      =          = V }      = E \         , = S d {         ! - _     ^       o     6 P         P }       + ^ d h j k       9 ] }     Y d l    $ P [ c        T ^     W ` f j k w       8 9 E w     Q }     	  0        8 B q   =FLPQ] 9:Fx4Q4P
#8<=I_	OSUV:V		I	_									
/
1
2
U
n





a{   S/// @docImport 'package:flutter/material.dart';
///
/// @docImport 'matchers.dart';/2  \                      /// Indicates that a transform is expected next.
///
/// Calls are skipped until a call to [Canvas.transform] is found. The call's
/// arguments are compared to those provided here. If any fail to match, or if
/// no call to [Canvas.transform] is found, then the matcher fails.
///
/// Dynamic so matchers can be more easily passed in.
///
/// The `matrix4` argument is dynamic so it can be either a [Matcher], or a
/// [Float64List] of [double]s. If it is a [Float64List] of [double]s then
/// each value in the matrix must match in the expected matrix. A deep
/// matching [Matcher] such as [equals] can be used to test each value in the
/// matrix with utilities such as [moreOrLessEquals].   	   	  Sف!/// Indicates that a translation transform is expected next.
///
/// Calls are skipped until a call to [Canvas.translate] is found. The call's
/// arguments are compared to those provided here. If any fail to match, or if
/// no call to [Canvas.translate] is found, then the matcher fails.   ))	1   44	<  A"/// Indicates that a scale transform is expected next.
///
/// Calls are skipped until a call to [Canvas.scale] is found. The call's
/// arguments are compared to those provided here. If any fail to match, or if
/// no call to [Canvas.scale] is found, then the matcher fails.     DD]3/// Indicates that a rotate transform is expected next.
///
/// Calls are skipped until a call to [Canvas.rotate] is found. If the `angle`
/// argument is provided here, the call's argument is compared to it. If that
/// fails to match, or if no call to [Canvas.rotate] is found, then the
/// matcher fails.   zY/// Indicates that a save is expected next.
///
/// Calls are skipped until a call to [Canvas.save] is found. If none is
/// found, the matcher fails.
///
/// See also:
///
///  * [restore], which indicates that a restore is expected next.
///  * [saveRestore], which indicates that a matching pair of save/restore
///    calls is expected next.   ##}Y/// Indicates that a restore is expected next.
///
/// Calls are skipped until a call to [Canvas.restore] is found. If none is
/// found, the matcher fails.
///
/// See also:
///
///  * [save], which indicates that a save is expected next.
///  * [saveRestore], which indicates that a matching pair of save/restore
///    calls is expected next.   s/// Indicates that a matching pair of save/restore calls is expected next.
///
/// Calls are skipped until a call to [Canvas.save] is found, then, calls are
/// skipped until the matching [Canvas.restore] call is found. If no matching
/// pair of calls could be found, the matcher fails.
///
/// See also:
///
///  * [save], which indicates that a save is expected next.
///  * [restore], which indicates that a restore is expected next.   ee
k  [/// Indicates that a rectangular clip is expected next.
///
/// The next rectangular clip is examined. Any arguments that are passed to
/// this method are compared to the actual [Canvas.clipRect] call's argument
/// and any mismatches result in failure.
///
/// If no call to [Canvas.clipRect] was made, then this results in failure.
///
/// Any calls made between the last matched call (if any) and the
/// [Canvas.clipRect] call are ignored.     vv{/// Indicates that a path clip is expected next.
///
/// The next path clip is examined.
/// The path that is passed to the actual [Canvas.clipPath] call is matched
/// using [pathMatcher].
///
/// If no call to [Canvas.clipPath] was made, then this results in failure.
///
/// Any calls made between the last matched call (if any) and the
/// [Canvas.clipPath] call are ignored.   pp
v            ġ  00e/// Indicates that a rectangle is expected next.
///
/// The next rectangle is examined. Any arguments that are passed to this
/// method are compared to the actual [Canvas.drawRect] call's arguments
/// and any mismatches result in failure.
///
/// If no call to [Canvas.drawRect] was made, then this results in failure.
///
/// Any calls made between the last matched call (if any) and the
/// [Canvas.drawRect] call are ignored.
///
/// The [Paint]-related arguments (`color`, `strokeWidth`, `hasMaskFilter`,
/// `style`) are compared against the state of the [Paint] object after the
/// painting has completed, not at the time of the call. If the same [Paint]
/// object is reused multiple times, then this may not match the actual
/// arguments as they were seen by the method.   ӣ  ȁ/// Indicates that a rounded rectangle clip is expected next.
///
/// The next rounded rectangle clip is examined. Any arguments that are passed
/// to this method are compared to the actual [Canvas.clipRRect] call's
/// argument and any mismatches result in failure.
///
/// If no call to [Canvas.clipRRect] was made, then this results in failure.
///
/// Any calls made between the last matched call (if any) and the
/// [Canvas.clipRRect] call are ignored.   ::A   LLS   ^^f   ww}     ."/// Indicates that a rounded rectangle is expected next.
///
/// The next rounded rectangle is examined. Any arguments that are passed to
/// this method are compared to the actual [Canvas.drawRRect] call's arguments
/// and any mismatches result in failure.
///
/// If no call to [Canvas.drawRRect] was made, then this results in failure.
///
/// Any calls made between the last matched call (if any) and the
/// [Canvas.drawRRect] call are ignored.
///
/// The [Paint]-related arguments (`color`, `strokeWidth`, `hasMaskFilter`,
/// `style`) are compared against the state of the [Paint] object after the
/// painting has completed, not at the time of the call. If the same [Paint]
/// object is reused multiple times, then this may not match the actual
/// arguments as they were seen by the method.      ''.   99@   KKR   cch   {{  3/// Indicates that a rounded rectangle outline is expected next.
///
/// The next call to [Canvas.drawRRect] is examined. Any arguments that are
/// passed to this method are compared to the actual [Canvas.drawRRect] call's
/// arguments and any mismatches result in failure.
///
/// If no call to [Canvas.drawRRect] was made, then this results in failure.
///
/// Any calls made between the last matched call (if any) and the
/// [Canvas.drawRRect] call are ignored.
///
/// The [Paint]-related arguments (`color`, `strokeWidth`, `hasMaskFilter`,
/// `style`) are compared against the state of the [Paint] object after the
/// painting has completed, not at the time of the call. If the same [Paint]
/// object is reused multiple times, then this may not match the actual
/// arguments as they were seen by the method.      229   DDL   ]]c  ;/// Indicates that a rounded superellipse is expected next.
///
/// The next rounded superellipse is examined. Any arguments that are passed
/// to this method are compared to the actual [Canvas.drawRSuperellipse]
/// call's arguments and any mismatches result in failure.
///
/// If no call to [Canvas.drawRSuperellipse] was made, then this results in
/// failure.
///
/// Any calls made between the last matched call (if any) and the
/// [Canvas.drawRSuperellipse] call are ignored.
///
/// The [Paint]-related arguments (`color`, `strokeWidth`, `hasMaskFilter`)
/// are compared against the state of the [Paint] object after the
/// painting has completed, not at the time of the call. If the same [Paint]
/// object is reused multiple times, then this may not match the actual
/// arguments as they were seen by the method.     {{;/// Indicates that a rounded superellipse clip is expected next.
///
/// The next rounded superellipse clip is examined. Any arguments that are
/// passed to this method are compared to the actual
/// [Canvas.clipRSuperellipse] call's argument and any mismatches result in
/// failure.
///
/// If no call to [Canvas.clipRSuperellipse] was made, then this results in failure.
///
/// Any calls made between the last matched call (if any) and the
/// [Canvas.clipRSuperellipse] call are ignored.   	   	   "   ..5   @@H   YY_   rr  /// Indicates that a circle is expected next.
///
/// The next circle is examined. Any arguments that are passed to this method
/// are compared to the actual [Canvas.drawCircle] call's arguments and any
/// mismatches result in failure.
///
/// If no call to [Canvas.drawCircle] was made, then this results in failure.
///
/// Any calls made between the last matched call (if any) and the
/// [Canvas.drawCircle] call are ignored.
///
/// The [Paint]-related arguments (`color`, `strokeWidth`, `hasMaskFilter`,
/// `style`) are compared against the state of the [Paint] object after the
/// painting has completed, not at the time of the call. If the same [Paint]
/// object is reused multiple times, then this may not match the actual
/// arguments as they were seen by the method.   ˹         %   66<   OO^  /// Indicates that a path is expected next.
///
/// The next path is examined. Any arguments that are passed to this method
/// are compared to the actual [Canvas.drawPath] call's `paint` argument, and
/// any mismatches result in failure.
///
/// To introspect the Path object (as it stands after the painting has
/// completed), the `includes` and `excludes` arguments can be provided to
/// specify points that should be considered inside or outside the path
/// (respectively).
///
/// If no call to [Canvas.drawPath] was made, then this results in failure.
///
/// Any calls made between the last matched call (if any) and the
/// [Canvas.drawPath] call are ignored.
///
/// The [Paint]-related arguments (`color`, `strokeWidth`, `hasMaskFilter`,
/// `style`) are compared against the state of the [Paint] object after the
/// painting has completed, not at the time of the call. If the same [Paint]
/// object is reused multiple times, then this may not match the actual
/// arguments as they were seen by the method.   
   ͽ
   ݽ         !!0  nn/// Indicates that a line is expected next.
///
/// The next line is examined. Any arguments that are passed to this method
/// are compared to the actual [Canvas.drawLine] call's `p1`, `p2`, and
/// `paint` arguments, and any mismatches result in failure.
///
/// If no call to [Canvas.drawLine] was made, then this results in failure.
///
/// Any calls made between the last matched call (if any) and the
/// [Canvas.drawLine] call are ignored.
///
/// The [Paint]-related arguments (`color`, `strokeWidth`, `hasMaskFilter`,
/// `style`) are compared against the state of the [Paint] object after the
/// painting has completed, not at the time of the call. If the same [Paint]
/// object is reused multiple times, then this may not match the actual
/// arguments as they were seen by the method. 	   Ay Ay
 A    A A A    A A A    A A A    A A A    A A A    A A A    B B B!    B, B, B7  @@ Ao	/// Indicates that an arc is expected next.
///
/// The next arc is examined. Any arguments that are passed to this method
/// are compared to the actual [Canvas.drawArc] call's `paint` argument, and
/// any mismatches result in failure.
///
/// If no call to [Canvas.drawArc] was made, then this results in failure.
///
/// Any calls made between the last matched call (if any) and the
/// [Canvas.drawArc] call are ignored.
///
/// The [Paint]-related arguments (`color`, `strokeWidth`, `hasMaskFilter`,
/// `style`) are compared against the state of the [Paint] object after the
/// painting has completed, not at the time of the call. If the same [Paint]
/// object is reused multiple times, then this may not match the actual
/// arguments as they were seen by the method.    Ey Ey E    E E E   BK BKX En/// Indicates that a paragraph is expected next.
///
/// Calls are skipped until a call to [Canvas.drawParagraph] is found. Any
/// arguments that are passed to this method are compared to the actual
/// [Canvas.drawParagraph] call's argument, and any mismatches result in
/// failure.
///
/// The `offset` argument can be either an [Offset] or a [Matcher]. If it is
/// an [Offset] then the actual value must match the expected offset
/// precisely. If it is a [Matcher] then the comparison is made according to
/// the semantics of the [Matcher]. For example, [within] can be used to
/// assert that the actual offset is within a given distance from the expected
/// offset.
///
/// If no call to [Canvas.drawParagraph] was made, then this results in
/// failure.    IU IU Ig    Iu Iu I    I I I    I I I    I I I   E E7 IHu/// Indicates that a shadow is expected next.
///
/// The next shadow is examined. Any arguments that are passed to this method
/// are compared to the actual [Canvas.drawShadow] call's `paint` argument,
/// and any mismatches result in failure.
///
/// In tests, shadows from framework features such as [BoxShadow] or
/// [Material] are disabled by default, and thus this predicate would not
/// match. The [debugDisableShadows] flag controls this.
///
/// To introspect the Path object (as it stands after the painting has
/// completed), the `includes` and `excludes` arguments can be provided to
/// specify points that should be considered inside or outside the path
/// (respectively).
///
/// If no call to [Canvas.drawShadow] was made, then this results in failure.
///
/// Any calls made between the last matched call (if any) and the
/// [Canvas.drawShadow] call are ignored.    L L L    L L	 L    M M	 M    M M M    M$ M$ M,    M= M= MC    MV MV Me   I I⃏ Lӂ/// Indicates that an image is expected next.
///
/// The next call to [Canvas.drawImage] is examined, and its arguments
/// compared to those passed to _this_ method.
///
/// If no call to [Canvas.drawImage] was made, then this results in
/// failure.
///
/// Any calls made between the last matched call (if any) and the
/// [Canvas.drawImage] call are ignored.
///
/// The [Paint]-related arguments (`color`, `strokeWidth`, `hasMaskFilter`,
/// `style`) are compared against the state of the [Paint] object after the
/// painting has completed, not at the time of the call. If the same [Paint]
/// object is reused multiple times, then this may not match the actual
/// arguments as they were seen by the method.    P P P    P P P    P P P    P P P    P P P    P P Q     Q Q Q"   Mu Mu P}/// Indicates that an image subsection is expected next.
///
/// The next call to [Canvas.drawImageRect] is examined, and its arguments
/// compared to those passed to _this_ method.
///
/// If no call to [Canvas.drawImageRect] was made, then this results in
/// failure.
///
/// Any calls made between the last matched call (if any) and the
/// [Canvas.drawImageRect] call are ignored.
///
/// The [Paint]-related arguments (`color`, `strokeWidth`, `hasMaskFilter`,
/// `style`) are compared against the state of the [Paint] object after the
/// painting has completed, not at the time of the call. If the same [Paint]
/// object is reused multiple times, then this may not match the actual
/// arguments as they were seen by the method.    U U U   Q2 Q2 U?/// Provides a custom matcher.
///
/// Each method call after the last matched call (if any) will be passed to
/// the given predicate, along with the values of its (positional) arguments.
///
/// For each one, the predicate must either return a boolean or throw a
/// [String].
///
/// If the predicate returns true, the call is considered a successful match
/// and the next step in the pattern is examined. If this was the last step,
/// then any calls that were not yet matched are ignored and the [paints]
/// [Matcher] is considered a success.
///
/// If the predicate returns false, then the call is considered uninteresting
/// and the predicate will be called again for the next [Canvas] call that was
/// made by the [RenderObject] under test. If this was the last call, then the
/// [paints] [Matcher] is considered to have failed.
///
/// If the predicate throws a [String], then the [paints] [Matcher] is
/// considered to have failed. The thrown string is used in the message
/// displayed from the test framework and should be complete sentence
/// describing the problem.    Y` Y` Yv   U U҃ YUW/// Provides a custom matcher.
///
/// Each method call after the last matched call (if any) will be passed to
/// the given predicate, along with the values of its (positional) arguments.
///
/// For each one, the predicate must either return a boolean or throw a
/// [String].
///
/// The predicate will be applied to each [Canvas] call until it returns false
/// or all of the method calls have been tested.
///
/// If the predicate returns false, then the [paints] [Matcher] is considered
/// to have failed. If all calls are tested without failing, then the [paints]
/// [Matcher] is considered a success.
///
/// If the predicate throws a [String], then the [paints] [Matcher] is
/// considered to have failed. The thrown string is used in the message
/// displayed from the test framework and should be complete sentence
/// describing the problem. 22 LQ_/// Builder interface for patterns used to match display lists (canvas calls).
///
/// The [paints] matcher returns a [PaintPattern] so that you can build the
/// pattern in the [expect] call.
///
/// Patterns are subset matches, meaning that any calls not described by the
/// pattern are ignored. This allows, for instance, transforms to be skipped.   Z  [     [ [ [    [ [ [   Z Z+     [7 [* [7   [P [C [P       [v [v [~    [ [  [  [] [^ [] [] [n     ^t ^t ^  ^S ^T ^S ^S ^k     ` ` `    `! `! `-    `> `>  `T    `d `d `i  _ _ _ _ _   Z Zԅ Z    `  `     ` ` `    ` ` a    a a	 a   ` `@     a/ a" a/   aG a: aG   at a[ at      ` ` `          d0 d0 d8    d@ d@  dV  d d d d d(     h h" h    i i i   h hW h     iP iP iX    ib ib in    i i  i    i i i  i" i# i" i" i:   c c؆ c    jM  js     jt jt j{    j j	 j  j j j j j j jM jMz     j j j   j j j       k k k)  j j j j k     k k" k    k k k  k k k k k   i iK i   	 p p! p	 p p
 p p p p o oL o       m m m  m m m m m     nM nM" nj    nq nq n~  n( n) n( n( n9     p p( p   pe pe p   mE mE$ mK          q q q    q q  q  q q q ql q     vA vA vM  v  v! v  v  v8     v v v    v v w    w w  w/    w? w? wD  v v v v v   qk qk% qq    x: x; x) x9 x* x w= x       x] x] xe  xA xB xA xA xR     x x	 x    x x	 x  x x x xƀ x     ye ye	 ym    yp yp	 yx  yM yN yM yM{ y^     y y y  y y y yw y    zG zH zG zG_ zX    z z z ze z    { { { {[ {$     { {
 {  {r {s {r {rw {     | | |  { { { {퀈 {     | |
 |    | | |    | | |    | | |    | | |  |y |z |y |yX |     } } }  } } } }| }     ~r ~r ~y    ~ ~ ~    ~ ~ ~    ~ ~ ~    ~ ~ ~  ~U ~V ~U ~U^ ~f                              $ $ *    = = L           h h w                    C D C C^ T                  k k	 s    z z	                                 M N M M ^           + + =    K K R    ] ] e    v v |                   
      
                         .     t   	   2 2
 8    B B J    Z Z b    r r x                                   1 (     h h v        L M L L ]       '    5 5 G    U U \    g g o    ~ ~                   	      	                         %           J J T    _ _ e    q q w                          % & % % 6       .     {          | } | |}        *            "            "    w w w           !     .       ! 6    < < C               h 2             	          	           ) ) .    H H
 M    X X ]    n n s     
           р   	                        #  #   : , :   U I U   { f {           -        !      Ԃ                ؆t     P Q P P c         J K W X J J m    d     =  X     ^ ^ e    q q x                                  1  ' - 0 = =        @ 7 @       n n |  M N M MW ^            3          0  K     Q Q X    d d k    w w                                 * / B 0 8 > A 0 0            R H R   j ` j           x y x x      , , 9           ߆)     R  e     l l
 r    | |                    	          R R         
 
     G  [     b b
 g    r r x                            G G              2 2 @     B "     } }   W X W W h         f  {                                          O    6 - 8 H ? J f f          ?                                   # V $ % 8 R U       q \" q                    } }   W X W W h   U U [    u                                                 2   " . 1 u u     F 8 F   Y K Y   l ^ l           w x w wV             с    2 2 8      #     * * /    = = B    P P V    a a g    x x ~    ȑ ȑ ȗ  ȥ Ȫ  ȫ Ȭ ȶ                         4 4 B      $       %          υ     -  @     G G L    T T Y    a a g    r r x    Ή Ή Ώ    ΢ ΢ Ψ  ζ λ  μ ν    - -                   % % 3           A A N      ,    3     a  s  	   z z	     Ӊ Ӊ ӎ    Ӟ Ӟ ӣ    ӳ ӳ Ӹ                                1 6 O 7 8 A K N a a     a U a   x j x   ԕ ԇ ԕ   ԰ Ԥ ԰           Ծ Կ Ծ Ծ             Á    ! !U '    ۫  ۻ                  
                ۫ ۫     G /  G   k S  k   ܄ w ܄   ܛ ܍ ܛ   ܴ ܨ ܴ     (       -       K K Y  ) * ) ) ;     - -! J      '            ς     V W V V i   x x ~            
                                   $ $ *  8 = Z > ? J V Y  蜀     p ` p    y                    項*             ΁    V V[ \              
 %    0 0 5    A A F    W W ]    h h n                                               D D R  # $ # # 4     4 4 A     Y     𳆶                  )      %         ! 1           & & -    9 9 G    V     m n m m6    k k: q                 *     - % -       R R! o  ; < ; ; L     
 
       +    X    STSS8f                  5      ..      SS!p <=<<M   ?@??R           ! S   				@
  VV\         ҈   	  UU\/// Matches objects or functions that draw `methodName` exactly `count` number
/// of times.        ;     Z1 Z1, ZB    Za Za, Zr  ZM Z[ Z\ ZS ZZ ZT Z} Z Z Z Z Z Y YM Z"/// Matches a [Path] that contains (as defined by [Path.contains]) the given
/// `includes` points and does not contain the given `excludes` points.    a a a    a a a    a a a   a} a}Y a    
D
D
L  
2
2
9      


    [[/// Matches objects or functions that paint a display list that matches the
/// canvas calls described by the pattern.
///
/// Specifically, this can be applied to [RenderObject]s, [Finder]s that
/// correspond to a single [RenderObject], and functions that have either of the
/// following signatures:
///
/// ```dart
/// void exampleOne(PaintingContext context, Offset offset) { }
/// void exampleTwo(Canvas canvas) { }
/// ```
///
/// In the case of functions that take a [PaintingContext] and an [Offset], the
/// [paints] matcher will always pass a zero offset.
///
/// To specify the pattern, call the methods on the returned object. For example:
///
/// ```dart
/// expect(myRenderObject, paints..circle(radius: 10.0)..circle(radius: 20.0));
/// ```
///
/// This particular pattern would verify that the render object `myRenderObject`
/// paints, among other things, two circles of radius 10.0 and 20.0 (in that
/// order).
///
/// See [PaintPattern] for a discussion of the semantics of paint patterns.
///
/// To match something which paints nothing, see [paintsNothing].
///
/// To match something which asserts instead of painting, see [paintsAssertion].   ++L/// Matches objects or functions that does not paint anything on the canvas.   D/// Matches objects or functions that assert when they try to paint.    99P/// Signature for the [PaintPattern.something] and [PaintPattern.everything]
/// predicate argument.
///
/// Used by the [paints] matcher.
///
/// The `methodName` argument is a [Symbol], and can be compared with the symbol
/// literal syntax, for example:
///
/// ```dart
/// if (methodName == #drawCircle) {
///   // ...
/// }
/// ```  怍#4/// The signature of [RenderObject.paint] functions.  uu~?/// The signature of functions that paint directly on a canvas.     package:flutter/material.dart    matchers.dart  <Հـ12\?Z[҂փpڄ	]HPTNR*+xTU689ĉȊ:>Jo|tu/ALn+/12эD9Џ֐bH;Ғ6<ٔAB|ӕ#mѕז"BHX^ !RXƗ̗ܗ!nE̙ҙ'lÛ`*Tstӝ!<Bڞ-.ag*0~ȟF-^l|ڡ!'x¢LR%tŤFL]'6HZsD˨ѩ &j7Ы#5G_wի۬*u_+zĮ.@Yrxy°F J}>P|дm*<Unöaط%oٷ߸#MS>ǹ2Kekl8w}˻Ѽ?E0zɽٽ7=>lr6<ӿ @ @P @ @ A7 Ah Au A A A A A A B B( BB BH BI B| B B C Cd Cs Cy C D D^ D D E E EX Eg E E E E F+ Fy F F F G> Gy G G H H_ Hu H{ H H I IA IQ Iq I I I I I I J J J_ J J J J J K5 K` Kf K L LQ L L L L L M M  M9 MR Ml Mr Ms M M N N2 N8 N N N N O
 O O^ O O PE Pv P P P P P P Q Q) Q/ Q0 QQ QW Q Q Q RE RU R[ R R SE Sn St S T Tf T T T U6 U~ U U U U U VE V V V V V WL W W W X& XO XU X X Y0 YN Y Y Y Y Z Z/ Z_ Z Z Z Z Z Z [' [( [A [Z [[ [g [ [ \ \  \& \D \a \ \ ] ]s ]z ] ] ] ] ^ ^: ^L ^P ^Q ^] ^ ^ ^ ^ _ _" _K _Q _R _n _ _ _ _ _ _ ` ` `: `` `r `x ` ` ` ` ` a  a8 aY az a| a} a a b b8 bh b b b c
 cG cq c c c c c c c d d! dd d d d e  e8 eB ez e e e f f fU fj f f f f g* gU gk gq g g g h0 h\ hf hn h h h h h i i  i, iL i^ i{ i i i i i i i jK j j j j j j j k k8 k k k k l l l4 l l l l l m m" m> mB mD mE m m m n! n% n& n2 n n o  o o o0 ox o o o o o p$ p% pc p p q q] qd qh qj qk q q q r' ra r r r r s s. sj s s s s s t t tV t t t t t u uE u u u u v  v v v v v* v\ v v v v v v w w; wM wS w w w w w w x> x? xK xq x x x x x yF yJ yK yW y~ y y y y y z@ zD zE zQ za z z z z z { { { { {4 {k {o {p {| { { { { { |! |r |v |w | | | | | | | } } }6 }J }` } } } } } } } } ~ ~N ~R ~S ~_ ~n ~ ~ ~ ~ ~ ~ ~  , B d              9 S Z o       , 5 < @ A M d       
 0 F h        F J K W g v         0 > L d z          ' G Y r        * L r             5 < Q l |       	    ! . > V n         1 E e       5 > E I J V       1 Q c z        9 k t {           , 3 H h ~         " # / F [ m        " 8 P r          ; u y z       9 X        r y } ~    0 D J i   " < E Y _     E M |    A U q     " C l t           M a    ) H   1 p    
     ) ?         % D T j          * G d        /     P k t z       & h    S \ b    N u ~     e      / : B H    & / 5 z    : C I M N Z p     * 0 C G H U f      1 7 X         ; Z m       4 5 J K W     ! n         3 k         . M ` s     	 # E F ] ^ u v     7 Q      I c        H u     . 6 < Y        	 
 P h x        E ^ n          M s     : o   , m   0 q    A J P T U a         d ~       R T U       Y Z      & q    A J P T U a    % + / 1 2 s         5 6 I \ t u     - Q u   # . 6 C s   $ M X ` Ð ì  A j u } ă Ķ   4  Ż       @ b Ɣ ơ Ƹ    [ c i ǃ       & 9 L ] t ȍ Ȟ       O u ɤ    ; ʆ ʦ ʳ ʽ     C a ˮ         4 a ̑   7 Z ͔ ͚ ͞ ͠ ͡  + C P ] n ΅ Ξ ί       @ ϊ ϫ   C r М ж  4 = C m ч       % ] Ҋ Ҡ         ! _ v Ӆ Ӛ ӯ      * R S g h Ԅ ԅ ԡ Ԣ Ի Լ     O  ՙ   ! ' ^ ֠ ֺ 
 M V \ ד   ? ؂ ؋ ؑ    k ٭ ٶ ټ     2 J o u ړ      < k q u w x ۩ ۾     & , - Q u ܋ ܦ    & ' 4 f ݇    ; j ޘ ޶  ! . 8 @ F b ߑ ߾  ) A N X ` f    8 h q w    R     0 J     	      R q       B     E K d       I O S T ` v     6 < O S U V          1 ] ^ w       6 s      L n      e p x     g      =          = V }      = E \         , = S d {         ! - _     ^       o     6 P         P }       + ^ d h j k       9 ] }     Y d l    $ P [ c        T ^     W ` f j k w       8 9 E w     Q }     	  0        8 B q   =FLPQ] 9:Fx4Q4P
#8<=I_	OSUV:V		I	_									
/
1
2
U
n





a{   $paintspaintsNothingpaintsAssertionpaintsExactlyCountTimes_colorsMatchPaintPattern
isPathThat_PathMatcher_MismatchedCall_evaluatePainter_TestRecordingCanvasMatcher&_TestRecordingCanvasPaintsCountMatcher(_TestRecordingCanvasPaintsNothingMatcher*_TestRecordingCanvasPaintsAssertionMatcher"_TestRecordingCanvasPatternMatcher_PaintPredicate_DrawCommandPaintPredicate_OneParameterPaintPredicate_TwoParameterPaintPredicate_RectPaintPredicate_RRectPaintPredicate_DRRectPaintPredicate_RSuperellipsePaintPredicate_CirclePaintPredicate_PathPaintPredicate_LinePaintPredicate_ArcPaintPredicate_ShadowPredicate_DrawImagePaintPredicate_DrawImageRectPaintPredicate_SomethingPaintPredicate_EverythingPaintPredicate_FunctionPaintPredicate_SaveRestorePairPaintPredicate
_valueName_symbolName  I