9 _formatter_parent_source_chunks_pendingNewlines _pendingSpace_pendingNested_pendingFlushLeft _afterComment_rules_hardSplitRules _lazyRules _openSpans_nesting_blockArgumentNesting_preventSplitNesting pageWidthrulewrite writeNewline writeSpacesplit writeComments_writeCommentTextindentunindent startSpanendSpan startRule _activateRule startLazyRuleendRule forceRulesnestExpressionunneststartSelectionFromEndendSelectionFromEndstartBlockArgumentNestingendBlockArgumentNesting startBlockendBlockend preventSplitendPreventSplit_emitPendingWhitespace_chunkForComment_isGenericMethodComment_needsSpaceBeforeComment_needsSpaceAfterComment_needsBlankLineBeforeComment _writeSplit _writeText _startChunk _divideChunks _canDivide_handleHardSplit _hardenRules_trailingIdentifierChar_javaDocComment _javaDocLine_leadingIndentation ChunkBuilderrRegExp SourceVisitorChunk DartFormatter SourceCodeListintboolRuleOpenSpanNestingBuilder NestingLevel pageWidthlastindentmergeEmptySplitsvoidStringforEachclear commitNestingisDouble flushLeftnestspacedummyisHard SourceCommentfirst linesBeforeilengtheverycommenttype CommentType inlineBlock updateSplit isNotEmptyselectionStarttext selectionEndcontainsfixesStyleFix docCommentschunk firstMatchsplittoList trimRightminisEmptyremoveAt removeLastaddline substringspacesIndentblockunindentcostCostnormalstartSpanrule isHardenedspansoutersplitsOnInnerRulesconstrainWhenSplit expressionnowunneststartSelectionFromEndendSelectionFromEndcurrentNesting LineWriter BlockChunk argumentChunk indentation_childrenhard startRule forceSplitunsplitBlockLength forceRulestraceChunkBuilderloggreen dumpChunks writeLinesisCompilationUnituriselectionLength WhitespacedocendsWith startsWithhasMatchhardennesting appendText LineSplitter preventDivideindexisNestedconstrainedRulesother constrainfullySplitValue´×“`Gd{å™[‡ÖDg €Ù€ë€îmath€î dart:math€ö chunk.dart� comment_type.dart�'constants.dart�@dart_formatter.dart�^�q�tdebug�t debug.dart�|line_writer.dart�—nesting_builder.dart�¶nesting_level.dart�Órule/rule.dart�ìsource_code.dart‚source_comment.dart‚%style_fix.dart½RÀ„zƒÓN€œ€Ø€ô€õ� �&�?�]�{�–�µ�Ò�ë‚‚$‚=‚>‚ˆ‚‚Ã#ƒdƒeƒµƒáƒâ„„C„D„”„â…$…(…y…Å놆"†#†t†¨†Ç†È†ä†å‡‡‡G‡c‡i‡�‡«‡¬‡÷ˆˆˆRˆqˆrˆ¥ˆÇˆÈ‰‰$‰%‰`‰f‰´‰Á‰Ü‰ÝŠ)ŠFŠLŠ›Šé‹6‹~‹ÊŒŒ:Œ;Œ‡Œ¨ŒÇŒÈ� �-�.�G�l�m�°�¶ŽŽ5Ž6ނޥޫŽú�G�•�Ç�Í�þ���e�’�“�µ�Õ�Ö‘‘‘3‘R‘s‘w‘x‘Æ‘ç‘ë‘ì’/’5’ƒ’Ï““f“l“r“Ž“µ“»” ”D”J”•”ã•-•u••ߕå–6–ƒ–®–ì—,—D—E—l—„—…—£—¾——×ê—ð˜:˜�˜‡˜Õ™#™m™|™‘™Ýšš)šDšHšIš‰šŸš¹š½š¾š÷šý›L›—›°›èœ4œ|œ­œÑœí� � �3�O�U�V�§�¼�ð�ñž2ž6ž7ž„ž¹ž¿Ÿ ŸSŸYŸ¦ŸéŸÿ I ” Þ¡¡¡3¡I¡P¡h¡o¡½¢ ¢Q¢”¢¶¢Î¢Ý££>£Z£m£y£ƒ£‹£‘£’£Ó¤¤k¤·¥¥#¥*¥:¥N¥`¥g¥·¥ñ¦"¦H¦d¦j¦k¦º§§S§Ÿ§¦§ß§æ§ó§ú¨¨¨E¨f¨Ÿ¨ï©$©*©+©f©–©·©¸©üª0ªKªšª©ªë«!«p«›«Ì«Ö«å¬¬C¬l¬¸¬Ò­­A­^­‰­Ö­â­ó®$®.®/®€®ˆ®‰®²®³®ß¯-¯5¯6¯`¯ª¯²¯³°°H°^°ƒ°µ°Ä°ë°ì±8±R±]±p±”±¾²²²&².²/²K²a²­²µ²»²¼³ ³-³p³Š³Ž³�³³³¹´´H´„´«´¹´¿´À´æµ µ9µ`µnµtµuµ¥µÕµÖ¶¶N¶u¶v¶­¶Ø· ·(·D·N·V·W·Š·§·ó¸7¸?¸@¸W¸]¸^¸�¸½¹¹¹<¹b¹c¹�¹¡¹¾¹öº'ºLºTºUºkº‹º‘º•º–ºâºè»»>»[»_»`»’»¦»¿»Ã»Ä»é»ï¼1¼^¼’¼–¼—¼¶¼É¼õ¼ö½;½Y½€½�½·½Û¾ ¾*¾c¾i¾m¾n¾‰¾�¾»¾Ü¾ñ¾ò¿@¿n¿•¿­¿®¿Ç¿Ë¿Ì¿îÀ@6À@VÀ@…À@«À@±À@ÇÀ@ËÀ@ÌÀAÀA>ÀADÀA�ÀAÙÀAòÀAøÀB.ÀBSÀBhÀBiÀBƒÀB‡ÀBˆÀB§ÀBºÀBÛÀBúÀCÀC"ÀC(ÀC,ÀC-ÀCxÀC~ÀCÍÀDÀDiÀD¹ÀD¿ÀEÀE[ÀE ÀEËÀEÌÀFÀF8ÀF>ÀF‰ÀF×ÀGÀG8ÀGKÀGLÀGgÀGŽÀG’ÀG“ÀGÏÀGÕÀH&ÀH_ÀHeÀH³ÀHØÀHõÀIÀIÀIÀIFÀIJÀIKÀI™ÀIÕÀIÛÀJ+ÀJcÀJ�ÀJ¯ÀJàÀJäÀJåÀK5ÀKmÀKsÀKÃÀKûÀL%ÀLEÀLFÀL‘ÀL¡ÀLÉÀLúÀMÀMGÀMMÀMQÀMRÀM�ÀM»ÀMàÀNÀNÀNÀNlÀN�ÀN·ÀN»ÀN¼ÀOÀOÀORÀOmÀOµÀPÀPKÀP]ÀPªÀPÎÀQÀQÀQ:ÀQ;ÀQˆÀQ‰ÀQ«ÀQ¬ÀQûÀRKÀRrÀRŽÀR«ÀRÙÀRÚÀRîÀRòÀRóÀSCÀSIÀS•ÀSåÀT,ÀTcÀTiÀT¦ÀTÚÀTïÀTðÀU<ÀUkÀU�ÀUŽÀUØÀVÀV)ÀV?ÀVbÀV�ÀVÊÀVçÀVøÀWÀWÀWNÀW�ÀWíÀX0ÀXMÀX^ÀXhÀXpÀXvÀXwÀXÆÀXöÀYÀY:ÀYMÀYQÀYRÀY ÀYÅÀYÚÀYöÀY÷ÀZ ÀZ ÀZ0ÀZZÀZ~ÀZ‘ÀZ—ÀZ˜ÀZÊÀZÛÀ[$À[%À[>À[XÀ[‚À[°À[ÞÀ[ßÀ\.À\\À\„À\ªÀ\«À\âÀ\èÀ\éÀ] À]&À]\À]„À]¯À]³À]´À]ÌÀ]èÀ]ìÀ]íÀ^À^$À^`À^dÀ^eÀ^ªÀ^°À_À_7À_VÀ_•À_¼À_½À_íÀ_þÀ`À`8À`eÀ`iÀ`jÀ`¨À`®À`úÀaAÀabÀa£ÀaÍÀaóÀaôÀb%ÀbTÀbUÀb”ÀbÊÀcÀcÀc!Àc"ÀcsÀcÂÀdÀd#ÀdAÀd_ÀdžÀdÉÀdÏÀdÐÀe Àe;Àe„Àe—Àe�ÀežÀeêÀf3ÀfQÀfoÀf¨Àf»ÀfÁÀfÂÀfÔÀfØÀfÙÀg)Àg/ÀgzÀg€Àg§ÀgßÀh,Àh0Àh1Àh�ÀhÇÀhÍÀiÀifÀišÀi ÀiîÀjÀjNÀj�Àj¯ÀjõÀkÀk7Àk[Àk\ÀkŒÀkÃÀkÄÀl Àl9ÀlkÀlÀl…Àl†ÀlÒÀm Àm$Àm%ÀmsÀm®ÀmôÀnÀnLÀnMÀnyÀnzÀnÃÀnÿÀoÀoÀoÀoiÀo‹Ào¦Ào¾ÀoÖÀoîÀpÀpÀpÀp Àp]ÀpŽÀp½Àp¾ÀpúÀq!Àq"ÀqdÀq†ÀqÆÀqÇÀqØÀqÜÀqÝÀrÀrÀr7ÀrLÀrgÀr„ÀržÀr¸ÀrßÀrðÀs@Às‘ÀsàÀsüÀtKÀtgÀthÀt¤ÀtºÀtÜÀuÀu6Àu@ÀuHÀuIÀušÀuµÀu¶ÀvÀvÀvRÀv�Àv•Àv–ÀvÉÀvÊÀväÀwÀwÀwÀwÀwcÀw|Àw­ÀwÆÀwãÀxÀxÀxÀx;ÀxAÀxBÀx‰Àx¤Àx¥ÀxÁÀxÅÀxÆÀxðÀy;ÀynÀyoÀyªÀyóÀz Àz Àz+Àz=ÀzAÀzBÀz’ÀzËÀzÑÀ{À{NÀ{gÀ{±À{òÀ|À|À|6À|TÀ|‰À|�À|“À|”À|áÀ}À}/À}WÀ}…À}†À}¦À}ÔÀ}ÕÀ~À~<À~=À~ŒÀ~ÏÀ~úÀ~ûÀ ÀÀÀVÀrÀ’À“ÀàÀ€À€1À€2À€~À€‘À€·À€»À€¼À�À�BÀ�HÀ��À�¥À�ÎÀ�ÏÀ�õÀ‚ À‚ À‚AÀ‚rÀ‚—À‚˜À‚¹À‚ôÀƒÀƒ?ÀƒIÀƒQÀƒWÀƒXÀƒ€Àƒ�Àƒ£Àƒ¤ÀƒðÀ„À„&À„IÀ„fÀ„nÀ„tÀ„xÀ„z €Ø€ï€î€õ� �&�?�]�u�t�{�–�µ�Ò�ë‚‚$„DÀ€5…ñ…ñ�¦/// Takes the incremental serialized output of [SourceVisitor]--the source text /// along with any comments and preserved whitespace--and produces a coherent /// tree of [Chunk]s which can then be split into physical lines. /// /// Keeps track of leading indentation, expression nesting, and all of the hairy /// code required to seamlessly integrate existing comments into the pure /// output produced by [SourceVisitor].�Ø€ž�Ø�Ø�ä�å�ë�ê�ö �ü�û‘‘ ‘‘,‘$‘.‘/‘zp‘z‘†‘‡‘ˆ‘‡‘‰ ‘�‘Ž‘—‘�‘œ‘¨ ‘®‘­‘¶ ‘¼‘»††††%€ †¾†¾€€/// The builder for the code surrounding the block that this writer is for, or /// `null` if this is writing the top-level code.†Ê†Û†Û†ç†ù†ù‡€¤‡•‡•€ƒ/// The number of newlines that should be written before the next /// non-whitespace token. /// /// This will always be 0, 1, or 2.‡¨‡®e‡þ‡þH/// Whether a non-breaking space should be written before the next text.ˆˆWˆYˆY9/// Whether the next chunk should use expression nesting.ˆjˆtQˆ¬ˆ¬0/// Whether the next chunk should be flush left.ˆÀˆÊX‰ ‰ ;/// Whether the most recently written output was a comment.‰‰'€³‰É‰É€“/// The nested stack of rules that are currently in use. /// /// New chunks are implicitly split by the innermost rule when the chunk is /// ended.‰Ø‰Ù‰Ò‰×‰Ó‰ß‚YŒŒ‚&/// The set of rules known to contain hard splits that will in turn force /// these rules to harden. /// /// This is accumulated lazily while chunks are being built. Then, once they /// are all done, the rules are all hardened. We do this later because some /// rules may not have all of their constraints fully wired up until after /// the hard split appears. For example, a hard split in a positional /// argument list needs to force the named arguments to split too, but we /// don't create that rule until after the positional arguments are done.Œ6Œ7Œ0Œ5Œ1Œ=€ˆŒ°Œ°h/// The list of rules that are waiting until the next whitespace has been /// written before they start.ŒÃŒÄŒ½ŒÂŒ¾ŒÊa��?/// The nested stack of spans that are currently being written.�)�*��(� �0:�O�O/// The current state.�Z�h�i�o€ÄŽ Ž €�/// The stack of nesting levels where block arguments may start. /// /// A block argument's contents will nest at the last level in this stack.Ž1Ž2Ž#Ž0Ž$Ž8�ä���µ/// The number of calls to [preventSplit()] that have not been ended by a /// call to [endPreventSplit()]. /// /// Splitting is completely disabled inside string interpolation. We do want /// to fix the whitespace inside interpolation, though, so we still format /// them. This tracks whether we're inside an interpolation. We can't use a /// simple bool because interpolation can nest. /// /// When this is non-zero, splits are ignored.��!p�o�oC/// The number of characters of code that can fit in a single line.�•?�À�À/// The current innermost rule.'‘î…Ó–µ–µ„‘/// Writes [string], the text for a single token, to the output. /// /// By default, this also implicitly adds one level of nesting if we aren't /// currently nested at all. We do this here so that if a comment appears /// after any token within a statement or top-level form and that comment /// leads to splitting, we correctly nest. Even pathological cases like: /// /// /// import // comment /// "this_gets_nested.dart"; /// /// If we didn't do this here, we'd have to call [nestExpression] after the /// first token of practically every grammar production. /// /// If [mergeEmptySplits] is `true`, the default, then any pending split /// information will be combined with a previously created split if no text /// has been written since. This generally comes into play when text is /// written after a comment. The comment may leave some pending split /// information while [SourceVisitor] may have also created a split and we /// want to combine those. /// /// It is only `false` when writing the contents of a multiline string. There, /// we may *want* to have a series of empty chunks because those represent /// empty lines in the multiline string.–» –Ö–˖іЖã—Å‚‚™ƒ™ƒ�¦/// Writes one or two hard newlines. /// /// Doesn't immediately write them. That way line breaking is correctly /// interleaved with any comments that appear before the next token. /// /// If [isDouble] is `true`, inserts an extra blank line. If [flushLeft] is /// `true`, the next line will start at column 1 and ignore indentation and /// nesting. If [nest] is `true` then the next line will use expression /// nesting.™˜™ž™�™¯™µ™´™Ç™Í™Ì™¨™À™ÓšKqš�š�=/// Writes a space before the subsequent non-whitespace text.šÀƒu›¸›¸€ç/// Write a split owned by the current innermost rule. /// /// If [nest] is `false`, ignores any current expression nesting. Otherwise, /// uses the current nesting level. If unsplit, it expands to a space if /// [space] is `true`.›¿›Å›Ä›Ñ›×›Ö›Ë›Þž9•TŸðŸð�¡/// Outputs the series of [comments] and associated whitespace that appear /// before [token] (which is not written by this). /// /// The list contains each comment as it appeared in the source between the /// last token written and the next one that's about to be written. /// /// [linesBeforeToken] is the number of lines between the last comment (or /// previous token if there are no comments) and the next token.    # ( ' 9  A @³‘‡´ ´ p/// Writes the text of [comment]. /// /// If it's a JavaDoc comment that should be fixed to use `///`, fixes it.´´.´-´7 ´?´>º˜€Æ»&»&€‚/// Creates a new indentation level [spaces] deeper than the current one. /// /// If omitted, [spaces] defaults to [Indent.block].». »4»3»b`»™»™//// Discards the most recent indentation level.»Æ€Ï¼8¼8f/// Starts a new span with [cost]. /// /// Each call to this needs a later matching call to [endSpan].¼C¼H¼G¼N¼R¼S¼™�Ó¼½¼½/// Ends the innermost span.¾p�Z¾Â¾ÂF/// Starts a new [Rule]. /// /// If omitted, defaults to a new [Rule].¾Í ¾Ô¾Ó¿Î€ü¿Ó¿Ó¿á ¿ç¿æÀ@Î�¸ÀB5ÀB5�Q/// Starts a new [Rule] that comes into play *after* the next whitespace /// (including comments) is written. /// /// This is used for operators who want to start a rule before the first /// operand but not get forced to split if a comment appears before the /// entire expression. /// /// If [rule] is omitted, defaults to a new [Rule].ÀBD ÀBKÀBJÀBŠ€¡ÀB®ÀB®/// Ends the innermost rule.ÀC/‚›ÀE§ÀE§‚^/// Pre-emptively forces all of the current rules to become hard splits. /// /// This is called by [SourceVisitor] when it can determine that a rule will /// will always be split. Turning it (and the surrounding rules) into hard /// splits lets the writer break the output into smaller pieces for the line /// splitter, which helps performance and avoids failing on very large input. /// /// In particular, it's easy for the visitor to know that collections with a /// large number of items must split. Doing that early avoids crashing the /// splitter when it tries to recurse on huge collection literals.ÀEÎ�ÃÀG ÀG �-/// Begins a new expression nesting level [indent] spaces deeper than the /// current one if it splits. /// /// If [indent] is omitted, defaults to [Indent.expression]. If [now] is /// `true`, commits the nesting change immediately instead of waiting until /// after the next chunk of text is written.ÀG ÀG#ÀG"ÀG* ÀG1ÀG0ÀG•�´ÀHßÀHß�6/// Discards the most recent level of expression nesting. /// /// Expressions that are more nested will get increased indentation when split /// if the previous line has a lower level of nesting. /// /// If [now] is `false`, does not commit the nesting change until after the /// next chunk of text is written.ÀHç ÀHîÀHíÀIM�–ÀJjÀJj� /// Marks the selection starting point as occurring [fromEnd] characters to /// the left of the end of what's currently been written. /// /// It counts backwards from the end because this is called *after* the chunk /// of text containing the selection has been output.ÀJ€ ÀJ…ÀJ„ÀJç‚iÀLÀL� /// Marks the selection ending point as occurring [fromEnd] characters to the /// left of the end of what's currently been written. /// /// It counts backwards from the end because this is called *after* the chunk /// of text containing the selection has been output.ÀL ÀLÀLÀMT€ÇÀMÂÀMÂd/// Captures the current nesting level as marking where subsequent block /// arguments should start.ÀN€›ÀNsÀNsL/// Releases the last nesting level captured by [startBlockArgumentNesting].ÀN¾„3ÀOaÀOa€�/// Starts a new block chunk and returns the [ChunkBuilder] for it. /// /// Nested blocks are handled using their own independent [LineWriter].ÀOtÀO|ÀO{ÀOŠÀO�ÀO�ÀOžÀO¤ÀO£ÀO˜ÀO«ÀRõ†[ÀTµÀTµ�¢/// Ends this [ChunkBuilder], which must have been created by [startBlock()]. /// /// Forces the chunk that owns the block to split if it can tell that the /// block contents will always split. It does that by looking for hard splits /// in the block that aren't for top level elements in the block. If /// [forceSplit] is `true`, the block always splits. /// /// Returns the previous writer for the surrounding block.ÀT¿ÀTÅÀTÄÀTÑÀYT„^ÀYÒÀYÒn/// Finishes writing and returns a [SourceCode] containing the final output /// and updated selection, if any.À]¶5À]»À]»À]ïtÀ]ôÀ]ôÀ^g‚À_>À_>€É/// Writes the current pending [Whitespace] to the output, if any. /// /// This should only be called after source lines have been preserved to turn /// any ambiguous whitespace into a concrete choice.À_]À_cÀ_bÀ_tÀ_zÀ_yÀ_mÀ_ŒÀ`l†kÀakÀak€í/// Tries to find an existing chunk to append [comment] to. /// /// If [comment] should be appending to an existing line (in other words, /// should be moved before a split), then this returns that [Chunk]. /// Otherwise, returns `null`.Àa|Àa‹ÀaŠÀa“ Àa›ÀašÀfÛ�TÀg®Àg®€Ã/// Returns `true` if [comment] appears to be a magic generic method comment. /// /// Those get spaced a little differently to look more like real syntax: /// /// int f/**/(int x) => 3;ÀgÆÀgÕÀgÔÀh3„ðÀj¶Àj¶‚e/// Returns `true` if a space should be output between the end of the current /// output and the subsequent comment which is about to be written. /// /// This is only called if the comment is trailing text in the unformatted /// source. In most cases, a space will be output to separate the comment /// from what precedes it. This returns false if: /// /// * This comment does begin the line in the output even if it didn't in /// the source. /// * The comment is a block comment immediately following a grouping /// character (`(`, `[`, or `{`). This is to allow `foo(/* comment */)`, /// et. al.ÀjÏÀjÞÀjÝÀjæ ÀjíÀjìÀm'‚÷ÀmµÀmµ€„/// Returns `true` if a space should be output after the last comment which /// was just written and the token that will be written.ÀmÍÀmÜÀmÛÀmä ÀmìÀmëÀp"�¹Àp'Àp'ÀpDÀpSÀpRÀqß…6Àr?Àr?S/// Starts a new chunk with the given split information. /// /// Returns the chunk.ÀrSÀrYÀrXÀrmÀrsÀrrÀrŠÀr™Àr˜Àr¤ÀrªÀr©Àr¾ÀrÄÀrÃÀraÀr}Àr±ÀrÖÀw�«ÀwƒÀwƒ`/// Writes [text] to either the current chunk or a new one if the current /// chunk is complete.ÀwŽ Àw–Àw•Àwœ Àw¤Àw£ÀxÈ�xÀxÎÀxÎÀxÚÀxèÀxçÀx÷ÀyÀyÀy ÀyÀyÀy$Ày*Ày)ÀyÀy1ÀzD‚NÀ{UÀ{U�/// Pre-processes the chunks after they are done being written by the visitor /// but before they are run through the line splitter. /// /// Marks ranges of chunks that can be line split independently to keep the /// batches we send to [LineSplitter] small.À|–‚yÀ}À}u/// Returns true if we can divide the chunks at [index] and line split the /// ones before and after that separately.À} À}'À}&À�§À]À]B/// Hardens the active rules when a hard split occurs within them.À€¾ƒ¹À�”À�”€È/// Replaces all of the previously hardened rules with hard splits, along /// with every rule that those constrain to also split. /// /// This should only be called after all chunks have been written.‚>€‚‚Ž‚ŽI/// Matches if the last character of a string is an identifier character.‚¨‚®‚¿‚¯‚ÀŸƒ)ƒ)_/// Matches a JavaDoc-style doc comment that starts with "/**" and ends with /// "*/" or "**/".ƒ;ƒAƒaƒBƒezƒ»ƒ»O/// Matches the leading "*" in a line in the middle of a JavaDoc-style comment.ƒÊƒÐƒÞƒÑƒâ_„„1/// Matches spaces at the beginning of as string.„0„6„@„7ƒÓN€œ€Ø€ô€õ� �&�?�]�{�–�µ�Ò�ë‚‚$‚=‚>‚ˆ‚‚Ã#ƒdƒeƒµƒáƒâ„„C„D„”„â…$…(…y…Å놆"†#†t†¨†Ç†È†ä†å‡‡‡G‡c‡i‡�‡«‡¬‡÷ˆˆˆRˆqˆrˆ¥ˆÇˆÈ‰‰$‰%‰`‰f‰´‰Á‰Ü‰ÝŠ)ŠFŠLŠ›Šé‹6‹~‹ÊŒŒ:Œ;Œ‡Œ¨ŒÇŒÈ� �-�.�G�l�m�°�¶ŽŽ5Ž6ނޥޫŽú�G�•�Ç�Í�þ���e�’�“�µ�Õ�Ö‘‘‘3‘R‘s‘w‘x‘Æ‘ç‘ë‘ì’/’5’ƒ’Ï““f“l“r“Ž“µ“»” ”D”J”•”ã•-•u••ߕå–6–ƒ–®–ì—,—D—E—l—„—…—£—¾——×ê—ð˜:˜�˜‡˜Õ™#™m™|™‘™Ýšš)šDšHšIš‰šŸš¹š½š¾š÷šý›L›—›°›èœ4œ|œ­œÑœí� � �3�O�U�V�§�¼�ð�ñž2ž6ž7ž„ž¹ž¿Ÿ ŸSŸYŸ¦ŸéŸÿ I ” Þ¡¡¡3¡I¡P¡h¡o¡½¢ ¢Q¢”¢¶¢Î¢Ý££>£Z£m£y£ƒ£‹£‘£’£Ó¤¤k¤·¥¥#¥*¥:¥N¥`¥g¥·¥ñ¦"¦H¦d¦j¦k¦º§§S§Ÿ§¦§ß§æ§ó§ú¨¨¨E¨f¨Ÿ¨ï©$©*©+©f©–©·©¸©üª0ªKªšª©ªë«!«p«›«Ì«Ö«å¬¬C¬l¬¸¬Ò­­A­^­‰­Ö­â­ó®$®.®/®€®ˆ®‰®²®³®ß¯-¯5¯6¯`¯ª¯²¯³°°H°^°ƒ°µ°Ä°ë°ì±8±R±]±p±”±¾²²²&².²/²K²a²­²µ²»²¼³ ³-³p³Š³Ž³�³³³¹´´H´„´«´¹´¿´À´æµ µ9µ`µnµtµuµ¥µÕµÖ¶¶N¶u¶v¶­¶Ø· ·(·D·N·V·W·Š·§·ó¸7¸?¸@¸W¸]¸^¸�¸½¹¹¹<¹b¹c¹�¹¡¹¾¹öº'ºLºTºUºkº‹º‘º•º–ºâºè»»>»[»_»`»’»¦»¿»Ã»Ä»é»ï¼1¼^¼’¼–¼—¼¶¼É¼õ¼ö½;½Y½€½�½·½Û¾ ¾*¾c¾i¾m¾n¾‰¾�¾»¾Ü¾ñ¾ò¿@¿n¿•¿­¿®¿Ç¿Ë¿Ì¿îÀ@6À@VÀ@…À@«À@±À@ÇÀ@ËÀ@ÌÀAÀA>ÀADÀA�ÀAÙÀAòÀAøÀB.ÀBSÀBhÀBiÀBƒÀB‡ÀBˆÀB§ÀBºÀBÛÀBúÀCÀC"ÀC(ÀC,ÀC-ÀCxÀC~ÀCÍÀDÀDiÀD¹ÀD¿ÀEÀE[ÀE ÀEËÀEÌÀFÀF8ÀF>ÀF‰ÀF×ÀGÀG8ÀGKÀGLÀGgÀGŽÀG’ÀG“ÀGÏÀGÕÀH&ÀH_ÀHeÀH³ÀHØÀHõÀIÀIÀIÀIFÀIJÀIKÀI™ÀIÕÀIÛÀJ+ÀJcÀJ�ÀJ¯ÀJàÀJäÀJåÀK5ÀKmÀKsÀKÃÀKûÀL%ÀLEÀLFÀL‘ÀL¡ÀLÉÀLúÀMÀMGÀMMÀMQÀMRÀM�ÀM»ÀMàÀNÀNÀNÀNlÀN�ÀN·ÀN»ÀN¼ÀOÀOÀORÀOmÀOµÀPÀPKÀP]ÀPªÀPÎÀQÀQÀQ:ÀQ;ÀQˆÀQ‰ÀQ«ÀQ¬ÀQûÀRKÀRrÀRŽÀR«ÀRÙÀRÚÀRîÀRòÀRóÀSCÀSIÀS•ÀSåÀT,ÀTcÀTiÀT¦ÀTÚÀTïÀTðÀU<ÀUkÀU�ÀUŽÀUØÀVÀV)ÀV?ÀVbÀV�ÀVÊÀVçÀVøÀWÀWÀWNÀW�ÀWíÀX0ÀXMÀX^ÀXhÀXpÀXvÀXwÀXÆÀXöÀYÀY:ÀYMÀYQÀYRÀY ÀYÅÀYÚÀYöÀY÷ÀZ ÀZ ÀZ0ÀZZÀZ~ÀZ‘ÀZ—ÀZ˜ÀZÊÀZÛÀ[$À[%À[>À[XÀ[‚À[°À[ÞÀ[ßÀ\.À\\À\„À\ªÀ\«À\âÀ\èÀ\éÀ] À]&À]\À]„À]¯À]³À]´À]ÌÀ]èÀ]ìÀ]íÀ^À^$À^`À^dÀ^eÀ^ªÀ^°À_À_7À_VÀ_•À_¼À_½À_íÀ_þÀ`À`8À`eÀ`iÀ`jÀ`¨À`®À`úÀaAÀabÀa£ÀaÍÀaóÀaôÀb%ÀbTÀbUÀb”ÀbÊÀcÀcÀc!Àc"ÀcsÀcÂÀdÀd#ÀdAÀd_ÀdžÀdÉÀdÏÀdÐÀe Àe;Àe„Àe—Àe�ÀežÀeêÀf3ÀfQÀfoÀf¨Àf»ÀfÁÀfÂÀfÔÀfØÀfÙÀg)Àg/ÀgzÀg€Àg§ÀgßÀh,Àh0Àh1Àh�ÀhÇÀhÍÀiÀifÀišÀi ÀiîÀjÀjNÀj�Àj¯ÀjõÀkÀk7Àk[Àk\ÀkŒÀkÃÀkÄÀl Àl9ÀlkÀlÀl…Àl†ÀlÒÀm Àm$Àm%ÀmsÀm®ÀmôÀnÀnLÀnMÀnyÀnzÀnÃÀnÿÀoÀoÀoÀoiÀo‹Ào¦Ào¾ÀoÖÀoîÀpÀpÀpÀp Àp]ÀpŽÀp½Àp¾ÀpúÀq!Àq"ÀqdÀq†ÀqÆÀqÇÀqØÀqÜÀqÝÀrÀrÀr7ÀrLÀrgÀr„ÀržÀr¸ÀrßÀrðÀs@Às‘ÀsàÀsüÀtKÀtgÀthÀt¤ÀtºÀtÜÀuÀu6Àu@ÀuHÀuIÀušÀuµÀu¶ÀvÀvÀvRÀv�Àv•Àv–ÀvÉÀvÊÀväÀwÀwÀwÀwÀwcÀw|Àw­ÀwÆÀwãÀxÀxÀxÀx;ÀxAÀxBÀx‰Àx¤Àx¥ÀxÁÀxÅÀxÆÀxðÀy;ÀynÀyoÀyªÀyóÀz Àz Àz+Àz=ÀzAÀzBÀz’ÀzËÀzÑÀ{À{NÀ{gÀ{±À{òÀ|À|À|6À|TÀ|‰À|�À|“À|”À|áÀ}À}/À}WÀ}…À}†À}¦À}ÔÀ}ÕÀ~À~<À~=À~ŒÀ~ÏÀ~úÀ~ûÀ ÀÀÀVÀrÀ’À“ÀàÀ€À€1À€2À€~À€‘À€·À€»À€¼À�À�BÀ�HÀ��À�¥À�ÎÀ�ÏÀ�õÀ‚ À‚ À‚AÀ‚rÀ‚—À‚˜À‚¹À‚ôÀƒÀƒ?ÀƒIÀƒQÀƒWÀƒXÀƒ€Àƒ�Àƒ£Àƒ¤ÀƒðÀ„À„&À„IÀ„fÀ„nÀ„tÀ„xÀ„z_trailingIdentifierChar_javaDocComment _javaDocLine_leadingIndentation ChunkBuilder’