/instanceonTap createState _docsOpenOf_decoded_disposedThumb _shownKey _shownImage_maxDecodedThumbs _decodedOrder_evictDecodedIfNeeded _disposeLaterdispose initStatebuild_buildByViewMode_buildPlaceholderCard _frameFor _fitTexture _buildThumb _decodeThumb _refreshPin _pinSnapshot _pinLabel_buildScreenCard_buildScreenTopBar_buildScreenActions_buildScreenDocsOverlay_buildScreenDocRow_buildScreenClosedDocRow_screenActionsFor _buildCardcolorpulsing_cdidUpdateWidgetchild_hovericontooltipbusyimage onRefreshonClose refreshing_w_h CatiaListTile_CatiaListTileState_confirmQuitCatia _StatusDot_StatusDotState _HoverReveal_HoverRevealState _BadgeChip _PinnedBadge�aStatefulWidget CatiaInstance VoidCallbackoverrideStatebool CatiaProviderStringisDocsPanelOpenMap Uint8ListImageintListvoidlength indexWhere identicalkremoveAtremovedisposeWidgetsBindinginstanceaddPostFrameCallbackvaluesimgclear initStatecontextreadrefreshDesktopsWidget BuildContextwidget placeholderCatiaCardDropZonechildwatchsessionSettings cardViewMode CardViewModescreenisOpenUnconnected AppColorswarn CatiaStatus disconnectedcoloropenPid activePidColoractiveWindowColor documentsOpacityopacityGestureDetectorbehaviorHitTestBehavioropaqueonTapidsetDocsPanelOpen onDoubleTapfocusOpenGhostfocusSavedGhost TintedCardtint DesktopTint forNumber desktopNumber alphaBlend withValuesalphapanel borderColor borderWidthColumncrossAxisAlignmentCrossAxisAlignmentstart mainAxisSize MainAxisSizeminchildrenRowFlexibleTexttitlemaxLinesoverflow TextOverflowellipsisstyle TextStyle textSecondary fontWeight FontWeightw700fontSizeheightSizedBoxwidthTooltipmessage desktopName isNotEmpty desktopLabel desktopGuid textMuted StatusBadgestatuscompactfileName fontStyle FontStyleitalic MiniToolbarsizeactionsMiniToolActionemojitooltipconnectShortcuttrimoktriggerConnectShortcutdangeropenSavedGhost dismissGhost _docsOpen Containerpadding symmetric horizontalvertical decoration BoxDecorationbg borderRadius BorderRadiuscircularborderBorderallPaddingdoc kindEmojiExpandedisActivenamescheduleMicrotask$1$2 FittedBoxfitBoxFitcover clipBehaviorCliphardEdgetoDoubleTexture textureIdpinnedFrameFor waitDurationDuration milliseconds antiAliasStackStackFitexpandRawImageimage filterQuality FilterQualitymedium PositionedtoprighticonIconsrefreshbusy isThumbBusycloseclearPin textureIdFortextureSizeForInkWell focusInstance alignment AlignmentcenterCircularProgressIndicator strokeWidthFuture containsKeyfromListinstantiateImageCodec getNextFramemountedsetStateadd debugPrinte captureThumbisPinnedthumbForpinFrameclonefirst realWindowPidpidselectedInstanceIdclosedDocumentsFor AspectRatio aspectRatiomarginstripe cardBorder boxShadow BoxShadowColorsblackisLight blurRadiusoffsetOffsetfill DecoratedBoxgradientLinearGradientbegin topCenterend bottomCentercolorsstopsleftbottom onRefreshonClose refreshing ColoredBoxShadowpulsing isLiveThumbonlyshapeBoxShapecircle EditableTitletextwhitew800shadowsfontFamilyFallbackkEmojiFontFallbackcaptionisEmptyonRenamerenameInstancevshowDesktopMoveDialogisBusygapoverlayMacroPlayButton ClipRRectListViewcd CatiaDocument connectedactivateDocumentsavedaccentenabledopenDocumentFolder saveDocument closeDocumentClosedCatiaDocumentwhite70reopenClosedDocumentremoveClosedDocumentactive togglePintoggleLiveThumbshowRenameDialog isProblemreopenInstancerestartInstanceanyd closeInstanceprogressworkbenchInfoFor workbenchIdcardselected textPrimaryshowDesktopPickDialoglabelMiniPillhasCustomTitleLinearProgressIndicatorvalue minHeightbackgroundColor scaleDown centerLeft mouseCursorSystemMouseCursorsclickbasicwhere StringBufferwrite showDialogbuilder AlertDialogcontenttoString TextButton onPressed Navigatorofctxpop quitCatiaSingleTickerProviderStateMixinAnimationControllervsyncdurationrepeatreversedidUpdateWidget isAnimatingstopAnimatedBuilder animation MouseRegiononEnteronExitcursor MouseCursordeferAnimatedOpacityStatelessWidgetIconData EdgeInsetsIcondoubleStatefulWidgetStateSingleTickerProviderStateMixinStatelessWidgetƒPKW$}rrú[³qWÆV dart:asyncdart:typed_data2BEuiEdart:uiMpackage:flutter/material.dartvpackage:provider/provider.dart€¢../models/catia_document.dart€Ë../models/catia_instance.dart€ô../models/catia_status.dart�../services/catia_provider.dart�F ../services/session_service.dart�r../theme/app_theme.dart�•../theme/desktop_tints.dart�¼catia_card_drop_zone.dart�átinted_card.dart�ýdesktop_move_dialog.dart‚!desktop_pick_dialog.dart‚Eeditable_title.dart‚dmacro_play_button.dart‚†mini_toolbar.dart‚£rename_dialog.dart‚Ámini_pill.dart‚Ûstatus_badge.dart‚ø ../services/workbench_icons.dartÀ[ÎÀ†a‰1JLu€Ÿ€¡€Ê€ó��E�q�”�»�à�ü‚ ‚D‚c‚…‚¢‚À‚Ú‚÷ƒ#ƒ%ƒvƒ¿„ „D„—„ń慅…W…Y…f…¦…©…«…å†.†z†È‡‡V‡–‡âˆˆAˆCˆˆˆØ‰ ‰>‰o‰�‰‘‰Ù‰àŠ.Š}ŠÇ‹‹`‹g‹¶‹ëŒŒŒKŒ›Œ�ŒÇŒÎ��g�·Ž Ž?ŽFŽ�ŽØ�"�M�…�‡�Ò�� �W�¤�ì‘‘F‘’‘Õ’’,’X’_’d’f’¥’¬’ù“E“Ž“´“Ï“å“ô“û”D”I”K”X”l”µ”ß”û••<•R•Y•p•Œ•¢•§•©•¶•Ì•ä–;–s–«–´–¹–»———a—¯—ü˜$˜@˜f˜“˜Ÿ˜¡˜ð™:™Œ™¿šš[š©šß›(›h›ˆ›�›�›Ûœ+œwœ¨œà��<�Œ�Ùž'žNž|žÇŸŸ_Ÿ©Ÿ»Ÿ× ( t ¥ º Ð¡¡h¡°¡Ï¡ú¢¢U¢�¢�¢©¢Ê¢þ£4£P£�£Þ¤ ¤-¤P¤ˆ¤Ð¤ã¥)¥P¥…¥µ¥é¦¦>¦k¦„¦˜¦µ¦Ò¦ô§§?§w§ §Ù¨¨6¨\¨v¨Ž¨¤¨Ñ¨í©3©Ÿ©ðªª@ªoª¯ªÉªò«'«O«u«�«§«½«ê¬¬G¬k¬�¬•¬§¬¼¬Ò­­z­Ä®®b®€®²®Õ®ö¯&¯H¯h¯|¯Ž¯¸¯Ô¯ï° °.°P°s°¾±±V±¦±Í² ²O²e²„²Ä²ç³³4³X³x³Ã´´W´‚´Ô´ìµ µ.µRµrµ¾¶¶4¶c¶‡¶Ò¶ê··-·Q·q·±·à¸ ¸U¸m¸’¸·¸Û¹¹G¹†¹Å¹ëº)ºCº[º~ºŸºÂ» »F»Š»·»ý¼¼'¼9¼}¼©¼Å¼ý½!½C½Y½‡½±½î¾0¾F¾h¾«¾Ì¿ ¿+¿x¿Ÿ¿È¿íÀ@À@VÀ@†À@¶À@ÚÀ@üÀA5ÀA^ÀAŒÀAÚÀB ÀBNÀBƒÀB·ÀBéÀC+ÀCiÀC¤ÀCÕÀDÀD<ÀD`ÀD‚ÀD¢ÀDÀÀDÜÀDôÀE ÀEÀE0ÀE@ÀENÀEZÀEdÀElÀEqÀEsÀE±ÀE¸ÀEûÀFGÀF�ÀFÖÀGÀG>ÀG`ÀGzÀG­ÀGÂÀGÉÀHÀHPÀH�ÀHšÀHŸÀH¡ÀHèÀHïÀI8ÀI…ÀIÓÀJÀJÀJkÀJ³ÀJìÀK)ÀKfÀK}ÀK—ÀK»ÀKÓÀKñÀLÀL?ÀLIÀLQÀLVÀLXÀL¡ÀLèÀLïÀM8ÀM€ÀMÈÀNÀNaÀN§ÀNæÀO0ÀO�ÀO·ÀO¿ÀPÀP,ÀPmÀPˆÀPŸÀPßÀQÀQ4ÀQKÀQbÀQˆÀQ½ÀRÀRQÀR_ÀRˆÀR¡ÀRÄÀRÝÀRöÀSÀS:ÀSpÀS‚ÀSÐÀSëÀTÀTÀT<ÀToÀTŽÀT¯ÀTÛÀU(ÀUtÀU»ÀUÓÀVÀV#ÀVMÀV’ÀVÝÀVõÀW ÀWÀW1ÀWAÀWOÀW[ÀWeÀWlÀWnÀW¼ÀX ÀX[ÀX£ÀX«ÀXøÀYDÀY‘ÀYÛÀZ*ÀZbÀZ¤ÀZÂÀ[À[À[iÀ[£À[¼À\À\3À\PÀ\iÀ\‚À\ªÀ\áÀ]À]-À]XÀ]ŠÀ]˜À]¤À]®À]µÀ]ØÀ]òÀ^<À^ŒÀ^®À^ÇÀ^ÜÀ^ñÀ_À_HÀ_€À_ŒÀ_²À_ÒÀ_èÀ_ÿÀ`>À`JÀ`TÀ`[À`pÀ`°À`èÀ`ÿÀaAÀarÀa�Àa¤Àa»ÀaáÀbÀbPÀb^Àb‡Àb×ÀbôÀcÀc>Àc\ÀcŠÀcºÀcèÀcøÀdÀdÀdÀd$Àd)Àd+ÀdzÀd·ÀdëÀe)Àe4Àe€ÀeÇÀfÀfeÀf“ÀfÏÀfüÀgÀg5ÀgFÀgOÀgfÀg‚Àg“ÀgœÀgéÀh$Àh9Àh„ÀhÑÀi#ÀirÀiªÀiÄÀiæÀiýÀjÀj-ÀjOÀjZÀjmÀjŸÀj¦Àj«Àj­ÀjøÀk ÀkÀk[Àk¥ÀkéÀkðÀl?Àl‹Àl»ÀlÂÀm ÀmUÀmŸÀmÚÀmÜÀn'Àn9Àn@ÀnŠÀnÒÀoÀoÀofÀo²ÀoâÀoéÀp1ÀpzÀpÆÀp÷ÀqÀq1ÀqNÀq[ÀqxÀqžÀqéÀr!ÀrbÀr…ÀrŠÀrŒÀrÜÀrãÀs-ÀsxÀs½ÀsýÀtÀtMÀtyÀt€ÀtÍÀuÀu_ÀuˆÀu�ÀuØÀvÀv3ÀvVÀvwÀvšÀv¥ÀvÀÀvÓÀwÀwÀwÀw ÀwTÀw‚Àw¨ÀwÄÀwéÀxÀxÀx[Àx`ÀxbÀx¦Àx­ÀxËÀyÀycÀy±ÀyøÀz@Àz�Àz¬ÀzÇÀzäÀ{À{À{OÀ{žÀ{ºÀ| À|XÀ|™À|ÛÀ}À}NÀ} À}íÀ~:À~|À~¿À~÷ÀFÀ‘ÀÝÀ€À€À€cÀ€eÀ€¯À€øÀ�CÀ�]À�‰À�“À�ÛÀ‚)À‚sÀ‚ÀÀ‚ÊÀƒÀƒYÀƒ¦ÀƒðÀ„À„ À„jÀ„²À„ûÀ…À…%À…FÀ…vÀ…ˆÀ…ËÀ…ÖÀ…àÀ†À†À†fÀ†²À†ýÀ‡IÀ‡~À‡ˆÀ‡ÏÀˆÀˆjÀˆ±ÀˆùÀ‰À‰3À‰NÀ‰ŠÀ‰³À‰ÙÀŠÀŠ/ÀŠTÀŠŒÀŠªÀŠãÀ‹ À‹GÀ‹WÀ‹qÀ‹‹À‹¼À‹÷ÀŒ ÀŒMÀŒzÀŒŒÀŒœÀŒªÀŒÃÀŒÜÀ�(À�vÀ�¶À�ÈÀŽÀŽ]ÀŽyÀŽ™ÀŽÃÀŽçÀ� À�JÀ�cÀ�„À�¬À�ØÀ�À�0À�BÀ�DÀ��À�“À�ßÀ‘(À‘xÀ‘¡À‘£À‘ðÀ’À’6À’dÀ’“À’ÆÀ’úÀ“À“ZÀ“™À“ØÀ”À”1À”~À”°À”ìÀ•À•À•.À•@À•BÀ•�À•ªÀ•ÄÀ•ßÀ•øÀ–$À–@À–]À–zÀ–�À–¾À–ÒÀ–äÀ–æÀ—2À—À—ÏÀ˜#À˜>À˜XÀ˜sÀ˜�À˜¼À˜ØÀ˜õÀ™À™3À™GÀ™YÀ™[À™§À™¹À™øÀšFÀš�ÀšÛÀ›À›hÀ›²À›ýÀœHÀœ‡Àœ™ÀœØÀœêÀ�5À�wÀ�ªÀ�ÇÀ�ãÀ�ÿÀž'ÀžjÀž´ÀžûÀŸGÀŸ‹ÀŸÏÀŸåÀŸùÀ EÀ �À ÛÀ íÀ¡8À¡†À¡ÖÀ¢%À¢rÀ¢½À£À£(À£zÀ£—À£³À£ÐÀ£ìÀ¤ À¤RÀ¤fÀ¤xÀ¤zÀ¤ÆÀ¤áÀ¤ûÀ¥À¥0À¥KÀ¥šÀ¥¬À¥¼À¥ÊÀ¥ÖÀ¥àÀ¥èÀ¥íÀ¥ïÀ¦?À¦ˆÀ¦ÑÀ§À§4À§OÀ§lÀ§‰À§£À§»À§ÂÀ¨À¨À¨&À¨nÀ¨ƒÀ¨¬À¨áÀ¨íÀ©9À©ƒÀ©³À©ÉÀªÀªÀª7Àª_Àª‡Àª®ÀªþÀ«8À«‰À«™À«§À«ÊÀ¬À¬hÀ¬¸À¬öÀ­À­NÀ­˜À­¿À­ÒÀ­óÀ®À®`À®¯À®áÀ¯À¯$À¯PÀ¯mÀ¯ŠÀ¯¬À¯ãÀ¯óÀ° À°=À°|À°­À°ûÀ±1À±xÀ±†À±’À±µÀ±ýÀ²À²KÀ²�À²½À²ÿÀ³À³?À³oÀ³�À³¬À³ÎÀ³ùÀ´À´'À´\À´{À´ËÀ´õÀµ3ÀµlÀµ¾ÀµÐÀµìÀ¶À¶=À¶wÀ¶‹À¶´À¶ÜÀ¶üÀ·,À·LÀ·rÀ·†À·˜À·¨À·¶À·ÂÀ·åÀ¸#À¸-À¸5À¸:À¸<À¸ƒÀ¸ŠÀ¸×À¹%À¹vÀ¹¡À¹¨À¹òÀºÀº0ÀºKÀºhÀº…Àº�Àº¤ÀºÎÀºßÀ»À»(À»pÀ»ƒÀ»�À»ØÀ¼À¼À¼3À¼�À¼ŸÀ¼ÑÀ¼úÀ½"À½CÀ½sÀ½“À½ÝÀ½ñÀ¾À¾À¾PÀ¾�À¾«À¾ÎÀ¿À¿.À¿NÀ¿žÀ¿²À¿ÄÀ¿ÔÀ¿âÀ¿îÀÀÀÀZÀÀ¨ÀÀîÀÁÀÁÀÁ,ÀÁFÀÁ�ÀÁœÀÁêÀÂ.ÀÂQÀ˜À¢ÀªÀ¯À±ÀÂýÀÃEÀÖÀÃÂÀÃÉÀÄÀÄ]ÀÄ›ÀľÀÄÛÀÄøÀÄÿÀÅAÀÅXÀÅ¥ÀÅÇÀÅýÀÆ.ÀÆxÀÆ‚ÀÆ›ÀÆÌÀÆæÀÇ2ÀÇIÀÇ|ÀǸÀÇâÀÈ#ÀÈ1ÀÈ=ÀÈGÀÈOÀÈTÀÈVÀÈgÀÈ•ÀȳÀÈÐÀÈíÀÉÀÉ ÀÉ!ÀÉBÀÉ„ÀÉ—ÀÉÆÀÉÝÀÊ'ÀÊ<ÀÊSÀÊfÀÊ„ÀÊÅÀÊÕÀÊüÀËÀË/ÀËJÀË�ÀËÐÀËîÀÌ ÀÌCÀÌcÀÌ„ÀÌÊÀÍÀÍ#ÀÍ5ÀÍEÀÍ_ÀÍxÀÍ�ÀÍ­ÀÍÇÀÍçÀÎÀÎ(ÀÎQÀ΃ÀÎØÀÏÀÏDÀÏ”ÀϨÀÏÊÀÏëÀÐ ÀÐ5ÀÐ\ÀЮÀÐÂÀÐàÀÑÀÑ!ÀÑbÀѦÀÑäÀÒ0ÀÒDÀÒ`ÀÒ�ÀÒ ÀÒÏÀÓÀÓ;ÀÓbÀÓ¯ÀÓÃÀÓÕÀÓåÀÓóÀÓÿÀÔ ÀÔÀÔÀÔÀÔ,ÀÔgÀÔ‹ÀÔ¨ÀÔÅÀÔâÀÔéÀÔþÀÕFÀÕYÀÕnÀÕ·ÀÕÜÀÕñÀÖ ÀÖ#ÀÖ?ÀÖoÀÖ–ÀÖ´ÀÖÓÀ×À×)À×;À×KÀ×YÀ×qÀ׈À×�À×¹À×ÑÀ×ÿÀØÀØ<ÀØiÀØ­ÀØìÀÙÀÙCÀÙ‘ÀÙ£ÀÙÍÀÙìÀÚ ÀÚCÀÚhÀÚ¶ÀÚÈÀÚØÀÚæÀÚòÀÚüÀÛÀÛ ÀÛ ÀÛ6ÀÛQÀÛnÀÛ‹ÀÛ›ÀÛ¢ÀÛ°ÀÛÇÀÛÞÀÛôÀÜÀÜ^ÀÜ­ÀÜÊÀÝÀÝ?ÀÝIÀÝ„ÀÝŽÀÝÞÀÞ*ÀÞwÀÞ°ÀÞÇÀÞÝÀßÀßAÀ߆Àß§ÀßúÀà+ÀàuÀà�ÀàÜÀá Àá:ÀáOÀá\Àá¨ÀáìÀâÀâTÀâŸÀâÙÀâøÀãÀãMÀã[ÀãgÀãqÀã¾Àä Àä?ÀäVÀälÀä ÀäÈÀåÀå&ÀåZÀå”ÀåÑÀåÛÀåøÀæÀæ%ÀæJÀægÀæ}ÀæÌÀæÖÀç Àç Àç6ÀçqÀçŽÀçÈÀçõÀè ÀèÀè6ÀèWÀècÀèmÀè¬ÀèÃÀèÙÀéÀécÀé‚Àé£ÀéÞÀéúÀêÀêMÀê�ÀêÃÀêùÀëÀë8ÀëOÀëeÀë©ÀëàÀëþÀìÀì7ÀìuÀìÀì›Àì²ÀìÈÀìëÀí6Àí^Àí{ÀíŸÀíåÀíïÀî Àî"Àî7ÀîoÀîŒÀîÇÀîÑÀîÙÀîÞÀîàÀï ÀïBÀïiÀï«ÀïÕÀðÀð[Àð§ÀðôÀñ8ÀñÀñÉÀòÀòcÀò¬ÀòúÀóGÀómÀó¼ÀóØÀô*ÀôvÀôÅÀõÀõ8ÀõHÀõ{ÀõÊÀö ÀöXÀö¢ÀöÒÀ÷À÷À÷hÀ÷µÀ÷æÀ÷ùÀøÀøMÀøWÀø|Àø³ÀøÆÀøõÀùÀù$ÀùsÀù¼ÀùÙÀùúÀúCÀú_ÀúpÀúŽÀúÞÀúøÀûÀûaÀûÀû²ÀûÒÀüÀüZÀü¡ÀüÉÀýÀý ÀýYÀý„Àý›Àý­ÀýÈÀþÀþ`Àþ«ÀþÔÀþñÀÿ"Àÿ_ÀÿsÀÿžÀÿ¹ÀÿâÀ ÀaÀ³ÀûÀÀUÀœÀÕÀ+ÀiÀ�ÀÅÀùÀÀBÀZÀ©À¿ÀÓÀþÀNÀ�ÀÔÀîÀ2À‹ÀÌÀïÀ,ÀYÀzÀÌÀíÀÀNÀvÀœÀ¶ÀÚÀ À;À}À™ÀÄÀòÀ À RÀ zÀ –À °À ÈÀ ÞÀ òÀ À cÀ ªÀ öÀ >À ‰À ÏÀ À -À JÀ {À ÀÀ îÀ À (À <À NÀ ^À qÀ �À ÈÀ öÀ;ÀjÀ†À¶À×ÀüÀ2À^À¢ÀÂÀàÀòÀÀ&ÀPÀdÀ�ÀžÀÅÀÀ;À{À¢ÀÞÀÀ/ÀGÀ]ÀŠÀ£ÀÑÀøÀ+ÀQÀuÀ�À£À·ÀÉÀÙÀÀTÀžÀ°ÀîÀ À$ÀIÀuÀ«ÀÔÀõÀÀ@ÀhÀŸÀöÀBÀ˜ÀäÀ1ÀMÀ˜ÀéÀ:À�ÀÖÀÿÀ'À\À¥À÷ÀIÀƒÀ¶ÀÀ%ÀXÀ›ÀçÀÀMÀ�À¹ÀáÀ'ÀaÀ°ÀãÀ)ÀuÀÄÀàÀ À 7À nÀ  À ÎÀ!À!8À!dÀ!�À!ÄÀ!úÀ"(À"yÀ"˜À"ÄÀ"îÀ#À#SÀ#€À#ÏÀ#îÀ$À$?À$�À$öÀ%)À%vÀ%¤À%ËÀ&À&;À&†À&ÌÀ'À'0À'YÀ'�À'¸À'òÀ(À(?À(iÀ(–À(´À(ÐÀ(ùÀ)!À)nÀ)ºÀ)ùÀ*À*FÀ*pÀ*£À*ÁÀ*ÝÀ+ À+4À+‚À+ßÀ,BÀ,ŒÀ,æÀ-À-kÀ-«À-ÔÀ-þÀ.+À.[À.|À.›À.ÄÀ.ìÀ/À/`À/ÐÀ0À0IÀ0pÀ0žÀ0îÀ1 À13À1[À1�À1éÀ2CÀ2}À2°À2æÀ3À3]À3yÀ3¢À3ÉÀ3íÀ4PÀ4ƒÀ4ÐÀ4ìÀ5À5À54À5HÀ5sÀ5³À5ÅÀ5ÕÀ6À6iÀ6´À6øÀ7À7GÀ7tÀ7„À7×À7õÀ8EÀ8oÀ8‰À8ÌÀ8øÀ9 À9[À9›À9¯À9ÏÀ:À:/À:jÀ:ŠÀ:ÈÀ:òÀ;À;6À;À;ÆÀ<ÀÀ>BÀ>eÀ>ŒÀ>³À>ÜÀ?À?1À?jÀ?šÀ?ÊÀ?îÀ@À@IÀ@rÀ@ À@ÍÀAÀACÀA|ÀAÑÀBÀBEÀBzÀB®ÀBàÀCÀCYÀCŠÀCÀÀDÀD>ÀDdÀDˆÀDªÀDãÀEÀE:ÀEfÀE»ÀFÀFYÀFŒÀF¾ÀFùÀG=ÀG¤ÀGáÀHÀH]ÀHªÀHÞÀI ÀI5ÀI[ÀIŽÀIÀÀIüÀJKÀJÀJ®ÀJÖÀJüÀK/ÀKaÀK™ÀKÑÀLÀLVÀL‹ÀLÃÀLþÀMGÀM{ÀMªÀMÒÀMøÀN+ÀN\ÀN�ÀNïÀO-ÀOjÀO´ÀOèÀPÀP?ÀPeÀP‰ÀP«ÀPËÀPéÀQÀQÀQnÀQ½ÀQïÀR!ÀRAÀRÀR©ÀRÑÀRíÀSÀS9ÀSbÀS‡ÀSÒÀSòÀT)ÀTPÀT|ÀT¦ÀTÔÀUÀUIÀU{ÀU«ÀUëÀV*ÀVNÀVpÀV�ÀVÇÀVñÀWÀWDÀWuÀW¥ÀWäÀX:ÀX‹ÀXÆÀYÀYUÀY‡ÀY°ÀYÖÀYúÀZ+ÀZ[ÀZ¦ÀZáÀ[0À[bÀ[‹À[±À[ÕÀ[÷À\À\5À\QÀ\kÀ\�À\•À\§À\·À\ÅÀ\ÑÀ\ÛÀ\ãÀ\èÀ\ëÀ\íÀ]@À]‘À]ÉÀ]êÀ^À^À^9À^DÀ^sÀ^¸À^ØÀ_À_À_DÀ_sÀ_³À_ËÀ_ÐÀ`"À`HÀ`_À`ƒÀ`ÕÀa$Àa6ÀaKÀa…Àa¬Àa¸ÀaÍÀbÀbRÀb^ÀbhÀbpÀbvÀb°Àb³ÀbµÀcÀc ÀcXÀc¦ÀcöÀd!Àd7ÀdNÀdPÀd’Àd”Àd¡ÀdÚÀdÝÀdßÀeÀe;ÀewÀe‰Àe¼ÀeÂÀeÄÀeÑÀeçÀeÿÀf2Àf7Àf9ÀfFÀfzÀf›ÀfìÀgÀg;ÀgpÀg‚Àg—ÀgžÀg£Àg¥Àg²ÀgÆÀgÙÀgïÀgôÀgöÀhÀh+ÀhHÀh^Àh}ÀhšÀhÝÀh÷Ài Ài"Ài;ÀieÀi~ÀiªÀiÆÀiëÀjÀj?ÀjlÀj¸ÀjÎÀjâÀjüÀkÀk3Àk_ÀkŠÀk²ÀkÿÀl&ÀlhÀl‰ÀlŸÀl³ÀlÅÀlÕÀlãÀlïÀlùÀmÀmÀm Àm ÀmXÀm§ÀmíÀnÀn1Àn3Àn{Àn¿ÀnÝÀnßÀoÀoÀo(ÀoeÀohÀojÀo¡Ào¹Ào»ÀoÈÀoðÀpÀpWÀpœÀpêÀq3Àq]Àq~Àq�ÀqÈÀqæÀqüÀrÀr Àr&Àr\Àr’ÀrÜÀs&ÀsFÀsjÀs�Às°ÀsÏÀtÀt,ÀtBÀtLÀtTÀtYÀt\Àt^Àt Àt¥ÀtïÀu7Àu‚Àu¸Àu½ÀuíÀuòÀv:Àv?Àv‹ÀvÓÀwÀw3Àw_ÀwwÀw�Àw­Àw¯ÀwêÀwþÀxÀxÀx&Àx?Àx[ÀxuÀx�Àx”Àx–Àx£ÀxËÀxàÀxùÀy1ÀyLÀywÀy˜Ày¿ÀyÜÀyôÀz Àz5ÀzÀzÍÀ{ À{0À{}À{�À{¦À{ýÀ|À|PÀ|‡À|°À|áÀ|ùÀ}À}WÀ}eÀ}qÀ}{À}ƒÀ}ˆÀ}‹À}�À}ÏÀ}ÔÀ~À~HÀ~aÀ~‚À~¡À~£À~ñÀ À À%À5ÀOÀmÀ‰À§À®À°ÀûÀ€À€<À€>À€KÀ€sÀ€ŠÀ€œÀ€¯À€ÑÀ�À�>À�…À�›À�±À�êÀ‚À‚/À‚=À‚IÀ‚SÀ‚xÀ‚�À‚¬À‚ÁÀ‚ÖÀ‚ñÀƒÀƒCÀƒQÀƒ“ÀƒªÀƒ¿ÀƒÖÀƒïÀ„À„9À„VÀ„~À„ÇÀ„ìÀ…À…%À…PÀ…mÀ…“À…ÔÀ…÷À† À†À†-À†;À†GÀ†QÀ†YÀ†^À†a1ELu€¡€Ê€ó��E�q�”�»�à�ü‚ ‚D‚c‚…‚¢‚À‚Ú‚÷… ……… …"…'…'…5…?…?…M……N„ۄDŽۄû„è„û…[…\…[…[I…}ƒ%ƒ%‚‚„��¹/// Ultra-kompakt kart: tek satır baÅŸlık + tek satır dosya + 16px mini toolbar. /// BaÅŸlığa çift tık → yeniden adlandır. Toolbar: ðŸ‘� odak • â–¶ï¸� baÅŸlat • /// 📤 export • â�¹ durdur • 🔄 restart • âœ�ï¸� baÅŸlık • 📄 dökümanlar • â�Œ kapat. /// 🖥 M1 rozeti: CATIA'nın bulunduÄŸu sanal masaüstü. /// 📄 ile açılır döküman listesi: her dökümanda 📂 klasör • 💾 kaydet • â�Œ kapat.‰j‰k‰_ˆE�'‰_€ü/// 📷 Decode edilmiÅŸ önizlemeler: PNG baytları → `ui.ImageInfo`. /// `Image.memory` yerine bunu kullanıyoruz (neden `_buildThumb` yorumunda). /// Anahtar `Uint8List` — her yakalamada yeni bir liste geldiÄŸi için /// eski kareyle karışmaz.‰‡‰v‰q‰v‹ø‰“‚n‹ø‚i/// 🔴 EKRANDA GÖSTERİLEN kare (bayt listesi = [_decoded] anahtarı). /// /// Neden ayrı bir alan: yeni kare geldiÄŸinde [_decoded] onu HENÜZ İÇERMEZ /// (`ui.instantiateImageCodec` asenkron). Eski kod "yeni kare bulunamadı → /// TV kartı kompakt karta düşsün / küçük kutu spinner göstersin" diye /// yazıyordu. Canlı modda (700 ms'de bir yeni kare) bu, kartın sürekli /// TV↔kompakt arasında zıplamasına yani GÖRÜNTÜ FLICKER'ına yol açıyordu. /// /// Artık yeni kare hazır olana kadar [_shownKey]'in karesi çizilmeye devam /// eder; kullanıcı kesintisiz bir görüntü görür.�I�5ŒŸ‚«�5‚“/// 🔴 CANLI MODDA Bellek Sınırlayıcı. /// /// Sorun: her kare YENİ bir `Uint8List` ve YENİ bir `ui.Image` üretir. /// `_decoded` anahtarları bayt listesi olduÄŸu için eski kareler anahtarda /// kalır ve GPU/CPU belleÄŸi **sınırsız** büyürdü (canlı modda saniyede ~1,4 /// kez → dakikada ~85 görüntü). Bu yüzden yalnız son [_maxDecodedThumbs] kare /// tutulur; en eski `ui.Image` serbest bırakılır. /// /// 3 tek kart için yeter (o kartta görüntü var + iki önceki kare, ki /// yenisi decode edilirken boÅŸluk olmasın). Çok kart canlıysa sayıyı /// canlı kart adedine göre büyütmek `_syncDecodedBudget` ile yapılır.�€���u��v�e�O3�eŒŒ€‘Œ[E/// Ekranda gösterilen kare (yoksa null = henüz hiç yakalanmadı).‡õ‡õˆˆ ˆ ˆ…ç…ç‚X‡é‚ /// 📄 Döküman listesi panelinin açık/kapalı olması ARTIK provider'da /// tutulur (bkz. `CatiaProvider.isDocsPanelOpen` / `setDocsPanelOpen`): /// buradaki bir `State` alanı kart aÄŸacı her yeniden kurulduÄŸunda (arama, /// liste türü deÄŸiÅŸimi, arama sekmesi) sıfırlanıyordu — kullanıcı /// bildirimi: "kapatırsam kapalı olduÄŸunu hatırlasın, her seferinde /// sıfırlamasın". Aynı sınıf sorunun döküman tarafında hali /// `DocumentVisibility` (bkz. `lib/services/document_visibility.dart`).�‰�‰‚Ù�ó�u/// [_decoded] içindeki en eski kareyi serbest bırakır (dispose deÄŸil — /// sadece bu kartın önbelleÄŸinden düşürülür). /// /// âš ï¸� Ekranda gösterilen kare ([_shownKey]) ASLA düşürülmez: `ui.Image` /// dispose edilirse `RawImage` onu çizemez ve kart bir kare boyunca boÅŸ/ /// kırık görünür — canlı modda tam da görmek istemediÄŸimiz titreme.“£“£ “¬’h’h�ß“•�-/// `ui.Image`'ı BİR SONRAKİ KAREDEN SONRA serbest bırakır. /// /// âš ï¸� Neden erteleniyor: yeni kare `setState` ile geldiÄŸi anda eski kare /// hâlâ ekranın "ilk kare" listesinde olabilir. Build sırasında dispose /// edilirse `RawImage` onu çizemez → bir kare boyunca bozuk görüntü.”M”N”M”M�X”_•«•¬•«•«� •½—+—+—8——–½–½�à—%V/// Karta bırakılan CATIA dosyası O CATIA'da açılır (bkz. catia_card_drop_zone).™¦™¦™³˜£˜£‚處€ö/// 📺 GÖRÜNÜM SEÇİMİ: kullanıcı Ayarlar'dan seçtiÄŸi moda göre ya TV/poster /// kartı ya kompakt kart çizilir (`SessionSettings.cardViewMode`). TV /// modunda görüntü yoksa `_buildScreenCard` kendi içinde kompakt karta düşer.œÇœÇœÔ›‘›‘©Þœ±�3/// "BaÄŸlı deÄŸil" yer tutucu kart (kayıtlı oturumdan). BaÅŸlık + masaüstü /// rozeti + 🔌 durum hapı, altında ilk dosya (+N), 🔄 (gri kartta: CATIA'yı /// baÅŸlat + kayıtlı dökümanları aç), 📄 (kayıtlı dökümanları göster) ve /// â�Œ (bu açılışta listeden gizle) düğmeleri.ÀG,ÀG, ÀG6ÀEuÀEuƒ(ÀG"�®/// Kartta çizilecek kare + gerekiyorsa decode'u baÅŸlatır. /// /// 🔴 FLICKER KORUMASI: `png` henüz decode EDİLMEMİŞSE ekranda /// [_shownKey]'in karesi (varsa) çizilmeye devam eder; yoksa null döner /// (ilk yakalama — o durumda zaten görüntü yok). Önceki davranış her /// canlı karede `null` dönüp TV kartını kompakt karta / spinner'a /// düşürüyordu; kullanıcı "görüntü titriyor" diye bildirdi.ÀJÈÀJÈ ÀJÌÀJ×ÀJ×ÀJãÀH£ÀH£ƒ±ÀJ¼‚/// 🎬 `Texture` widget'ını kart kutusuna `BoxFit.cover` ile SARAR. /// /// Neden gerekli: `Texture`'ın `fit` parametresi yoktur (RawImage'ın /// aksine) ve `FittedBox` onu sarmalamadan verilen kutuya GEREREK sığar. /// CATIA penceresinin en-boy oranı (ör. 2576×1426 ≈ 1.81) kart kutusundan /// (102×64 = 1.59) farklıdır; sarmazsak görüntü esner ve taÅŸar. /// /// [size] doku boyutudur. Bilinmiyorsa (native geç hâlde döndüyse) 16:10 /// varsayılır — yine de sarmalıdır, çünkü esneme kırpmadan kötüdür.ÀN¼ÀN¼ÀNÊÀNÔÀNÔ ÀNÞÀLZÀLZ—ÍÀN°‚X/// 📷 Yakalanmış CATIA penceresinin önizlemesi. Tıklanınca CATIA öne /// gelir (görüntüdeki içerikle ilgilenmek isteyen kullanıcı için). /// /// NEDEN `Image.memory` DEĞİL: 226 KB'lık PNG'yi her yeniden çizimde /// `Image.memory` ile decode etmek Flutter'ın image cache'inde aynı /// `Uint8List` yeniden kullanıldığında eski kareyi gösterebiliyordu /// (kullanıcı "basıyorum bir ÅŸey olmuyor" diye bildirdi). Bunun yerine /// baytları `ui.Image`'a bir kez decode edip [_decoded] içinde tutuyoruz; /// `RawImage` doÄŸrudan o `ui.Image`'ı çizer — yeniden decode yok.ÀdÓÀdÓ ÀdÝÀd-Àd-†|ÀdÆ€�/// PNG baytlarını `ui.Image`'a çevirir (sonuç [_decoded] içinde saklanır). /// Hata olursa sessizce geçilir — önizleme kritik deÄŸil.ÀqÀqÀq&Àq5Àq5ÀqCÀj¯Àj¯‡ÙÀq†„/// 📌 SABİT KAREYİ YENİLE: o anki ekran görüntüsünü alıp donmuÅŸ kareyi /// günceller. /// /// 🔄 Rozet üzerindeki yenile düğmesiyle çaÄŸrılır; kullanıcı "bu kare /// eskidi, ÅŸimdiki hâlini al" der. `pinFrame` aynı kart id üzerine /// yazdığı için eski kare otomatik olarak serbest bırakılır. /// /// âš ï¸� `captureThumb` ASYNC'tir: `await` OLMADAN `thumbFor` okunursa eldeki /// bayt ESKİ karedir ve rozet bayat görüntüyü "yenilerdi" (kullanıcı /// "yenile çalışmıyor" diye bildirirdi). /// /// âš ï¸� Kart bu aranda listeden çıkmış/sabitliÄŸi kaldırılmış olabilir: /// `pinFrame` yalnız kare NULL DEĞİLSE yazar, ama kart artık sabit /// deÄŸilse yeniden sabitlememek gerekir — aksi halde kullanıcı ✕'e /// bastıktan sonra kare kendiliÄŸinden geri gelirdi. /// 📌 SABİT KAREYİ YENİLE: o anki ekran görüntüsünü alıp donmuÅŸ kareyi /// günceller. /// /// 🔄 Rozet üzerindeki yenile düğmesiyle çaÄŸrılır; kullanıcı "bu kare /// eskidi, ÅŸimdiki hâlini al" der. pinFrame aynı kart id üzerine /// yazdığı için eski kare otomatik olarak serbest bırakılır. /// /// âš ï¸� captureThumb ASYNC'tir: wait OLMADAN humbFor okunursa eldeki /// bayt ESKİ karedir ve rozet bayat görüntüyü "yenilerdi" (kullanıcı /// "yenile çalışmıyor" diye bildirirdi). /// /// âš ï¸� Kart bu arada listeden çıkmış/sabitliÄŸi kaldırılmış olabilir: /// pinFrame kare NULL DEĞİLSE yazar, ama kart artık sabit deÄŸilse /// yeniden sabitlememek gerekir — aksi halde kullanıcı ✕'e bastıktan /// sonra kare kendiliÄŸinden geri gelirdi.Àv Àv Àv+ÀrŽÀrŽ„ŽÀvƒh/// 📌 Sabitleme için o anki kareden BAÄžIMSIZ bir `ui.Image` kopyası üretir. /// /// Neden kopyalıyoruz: sabit kare, kartın `_decoded` LRU listesindeki /// nesneyi TUTAMAZ — kart yeni kare geldiÄŸinde onu `dispose()` eder ve /// sabitlenen resim bozuk/görülmez olur. `ui.Image.clone()` aynı /// pikselleri türetir ama BAÄžIMSIZ yaÅŸam süresine sahiptir. /// /// Doku (Texture) yolunda `frame` null olabilir; o duranda sabitleme /// yapılmaz (mevcut sabitleme korunur). /// /// Neden kopyalıyoruz: panel, kartın `_decoded` LRU listesindeki nesneyi /// TUTAMAZ — kart yeni kare geldiÄŸinde onu `dispose()` eder ve panel /// boÅŸ/görülmez olur. `ui.Image.clone()` aynı pikselleri türetir ama /// BAÄžIMSIZ yaÅŸam süresine sahiptir. /// /// Doku (Texture) yolunda `frame` null olabilir; o duranda sabitleme /// yapılmaz (panel mevcut karesini korur).ÀwgÀwgÀwuÀw"Àw"�<Àw]6/// Sabit panel baÅŸlığında gösterilecek kısa ad.Àz°Àz°Àz½ÀzËÀzËÀzÙÀzèÀzèÀzöÀxdÀxd­‡Àz™‚:/// 📺 TV / POSTER MODU: Ekran görüntüsü kartın TAMAMINI kaplar. /// /// PROFESYONEL TV DÜZENİ: /// - Görüntü arka planda `BoxFit.cover` ile kartı baÅŸtan sona doldurur. /// - Kontroller görüntünün ÜSTÜNDE durur; okunabilirlik için üstte ve /// altta gradyan perde (scrim) vardır — parlak CATIA ekranlarında bile /// yazılar kaybolmaz. Ortada perde saydam: görüntü NET görünür. /// - Görüntü yoksa/henüz decode edilmediyse kompakt kart düşer; TV /// modunda "boÅŸ dev tablo" yerine bilgi dolu kompakt kart tercih edildi.À§8À§8À§EÀ§SÀ§SÀ§aÀ§pÀ§pÀ§~À§�À§�À§’À§§À§§À§¬À¥ñÀ¥ñ’GÀ§�?/// 📺 ÜST BAR — düzen: **solda** durum noktası + baÅŸlık, **saÄŸda** masaüstü /// seçimi + durum rozeti. Masaüstü rozeti TV modunda da TIKLANABILIR /// (kompakt kartta olduÄŸu gibi taşı/adlandır/geç iletiÅŸimi açılır) — /// "masaüstü seçimleri de çalışsın" isteÄŸi bu sayede karşılanır.Àº4Àº4ÀºAÀºOÀºOÀº]ÀºlÀºlÀºzÀº‰Àº‰ÀºŽÀ¸>À¸>ŠoÀº�î/// 📺 ALT BAR — düzen: **solda** dosya adı, **saÄŸda** TAM toolbar. /// /// "Eksik biÅŸi kalmasın" isteÄŸi: kompakt karttaki TÜM düğmeler burada da /// vardır (bkz. [_screenActionsFor]) — öne getir, ekran görüntüsü, baÅŸlık /// düzenle, sanal masaüstü, yeniden baÅŸlat, döküman listesi, kapat, listeden /// kaldır ve hızlı makro çalıştır (â–¶). /// /// Buton boyutu küçültüldü (18px), araları daraltıldı (gap 2) → dokuz /// düğme tek satıra sığar.ÀÄÂÀÄÂÀÄÐÀÄßÀÄßÀÄíÀ³À³…ŸÀĤ‚/// TV alt barının düğme listesi — kompakt kartla BİREBİR aynı iÅŸlemler. /// Ayrı metot: liste [MiniToolbar]'a verilir, okunması kolay olsun. /// 📺 Döküman listesi overlay'i — kartın ÜSTÜNDE açılır (görüntünün ortasını /// kapatır, üst/alt bantlara dokunmaz). /// /// Kompakt kartla BİREBİR aynı iÅŸlemler: açık döküman için 🎯 aktif et · /// 📂 klasör · 💾 kaydet · â�Œ kapat; kapanmış (geçmiÅŸ) döküman için /// ↩ï¸� aynı CATIA'da yeniden aç · 🗑 geçmiÅŸten kalıcı sil.ÀÈ·ÀÈ·ÀÈÅÀÈÔÀÈÔÀÈâÀÈñÀÈñÀÈÿÀÈiÀÈi‹«ÀÈž//// Tek bir AÇIK döküman satırı (TV modu).ÀÔ�ÀÔ�ÀÔ�ÀÔ¬ÀÔ¬ÀÔºÀÔÉÀÔÉÀÔÝÀÔ.ÀÔ.†ÙÀÔp>/// Tek bir KAPANMIÅž (geçmiÅŸ) döküman satırı (TV modu).ÀÛ:ÀÛ:ÀÛGÀÛUÀÛUÀÛcÀÛrÀÛrÀÛ€ÀÛ�ÀÛ� ÀÛ”ÀÛ ÀÛ “ÏÀÛ"ÀîôÀîôÀïÀîâÀîâÀnÀîé…«…«ÀW>…±ÀdXÀdbÀddÀddÀdrÀdyÀdyÀd~ÀdˆÀdRÀdR>Àd/Àd#Àd/ÀdDÀd9ÀdDÀd–Àd—Àd–Àd–BÀdµÀbµÀbµ‚&Àcü�Y/// 🔴 Kart durum noktası: küçük renkli daire + isteÄŸe baÄŸlı nabız animasyonu. /// /// NEDEN AYRI: Kartın sol üstündeki durumu tek bakışta "okunmadan" anlatır. /// Emoji/Metin rozetlerinden daha ferah, liste kalabalığında daha okunaklı. /// Nabız yalnız ÖN PLANDAKİ pencere için çalışır (pulse = "bu ÅŸu an odakta").ÀeaÀetÀe¾Àe€Àe{Àe‚Àe•Àe�Àe—Àe�Àe¥Àe¸Àe²Àe¦Àe´Àe\Àe=€‚Àe\ÀeÆÀeÇÀeÆÀeÆoÀeØÀf]Àf]ÀfrÀf;Àf<Àf;Àf;�fÀfMÀg§Àg¨Àg§Àg§KÀg¹ÀhÀhÀhÀgøÀgùÀgøÀgø… Àh ÀdßÀd߈(ÀdåÀnçÀnóÀnõÀnõÀoÀo Ào ÀoÀnáÀná6Àn)ÀnÀn)ÀnÕÀn5€¥ÀnÕ€–/// Tek tık → CATIA'yı öne getir. TV kartının TAMAMI ekran görüntüsü /// olduÄŸu için kart yüzeyi doÄŸrudan "bu ekrana git" düğmesidir.ÀoÀoÀoÀoFÀo>Àm Àm ‚[Àmó€õ/// 📺 Fare üzerine gelince çocuÄŸu belirginleÅŸtiren sarmalayıcı (TV hissi): /// görüntü her zaman tam kapılı kalır, kart fare ile biraz daha canlı/parlak /// görünür (sinematik "TV" yaklaşımı: içerik önce, kontrol ikinci).Ào±Ào¨Ào£Ào¨Ào×Ào×ÀoäÀo½Ào¾Ào½Ào½„šÀoÑÀojÀoj„ðÀopÀxÀxÀxÀx Àx Àx*Àx*Àx8ÀxCÀxCÀxQÀx_Àx_ÀxmÀxyÀxyÀx~Àx…ÀxÀx€�ÀwpÀwaÀwpÀw†ÀwyÀw†Àw¥Àw’Àw¥Àw÷Àw±JÀw÷@/// 🔄 düğmesi â�³ durumunda döner (yeni kare alınırken).Àx²Àx²Àx¿Àx˜Àx™Àx˜Àx˜„îÀx¬Àt^Àt^‰+Àw9ƒ/// 📌 TV/poster kartının sol üst köşesindeki SABİT kare rozeti. /// /// ðŸ“� NEDEN AYRI WIDGET: kart 16:10 oranlı ve liste sütun sayısına göre /// büyüyüp küçülür. Sabitlenen kare, kart ne kadar büyükse o kadar /// büyümemeli; bu yüzden SABİT px boyutta çizilir ve `Positioned` ile /// kartın içine yerleÅŸtirilir (pencereye deÄŸil). /// /// 🧰 ROZET DÜĞMESİ: küçük daire içinde ikon. /// /// 🔄 = sabit kareyi o anki görüntüyle YENİLE · ✕ = sabitliÄŸi kaldır. /// /// ðŸ“� Neden tek widget: ikisi de aynı boyut/renk/konum kurallarına sahip; /// ayrı ayrı yazılsaydı birinde kontrast düzeltmesi yapılıp diÄŸeri /// unutulurdu (daha önce yarı saydam arka plan koyu CATIA karesinde /// kayboluyordu).ÀÀ!À)À) À/À9À9ÀGÀSÀSÀaÀqÀqÀÀ�À�À’ÀŸÀÀ€�À~YÀ~JÀ~YÀ~vÀ~cÀ~vÀ~—À~„À~—À~þÀ~¥cÀ~þU/// Yenileme sürerken 🔄 düğmesi â�³'ye döner (çift tıklama kilidini önler).À€À€ÀýÀ€À€7À€2À€À€2À€ZÀ€ZÀ€gÀ€@À€AÀ€@À€@†À€TÀ}�À}�ˆÒÀ~ €¡/// 📌 SABİT KARE ROZETİ — kartın sol üst köşesinde donmuÅŸ kare. /// /// 🔄 = o anki görüntüyü alıp rozeti YENİLE · ✕ = sabitliÄŸi kaldır.À]ìÀ]ìÀ]ùÀ^À^À^À^ À^ À^.À\íÀ\í…ÄÀ]Ö€ë/// 🚪 CATIA'yı kapat: tüm uygulamayı kapattığı için önce onay sorar. Onaylanırsa /// CATIA penceresine kapatma isteÄŸi gider; kaydedilmemiÅŸ dökümanlar için CATIA /// kendi diyaloÄŸunu gösterir (zorla sonlandırma yok).‰1JLu€Ÿ€¡€Ê€ó��E�q�”�»�à�ü‚ ‚D‚c‚…‚¢‚À‚Ú‚÷ƒ#ƒ%ƒvƒ¿„ „D„—„ń慅…W…Y…f…¦…©…«…å†.†z†È‡‡V‡–‡âˆˆAˆCˆˆˆØ‰ ‰>‰o‰�‰‘‰Ù‰àŠ.Š}ŠÇ‹‹`‹g‹¶‹ëŒŒŒKŒ›Œ�ŒÇŒÎ��g�·Ž Ž?ŽFŽ�ŽØ�"�M�…�‡�Ò�� �W�¤�ì‘‘F‘’‘Õ’’,’X’_’d’f’¥’¬’ù“E“Ž“´“Ï“å“ô“û”D”I”K”X”l”µ”ß”û••<•R•Y•p•Œ•¢•§•©•¶•Ì•ä–;–s–«–´–¹–»———a—¯—ü˜$˜@˜f˜“˜Ÿ˜¡˜ð™:™Œ™¿šš[š©šß›(›h›ˆ›�›�›Ûœ+œwœ¨œà��<�Œ�Ùž'žNž|žÇŸŸ_Ÿ©Ÿ»Ÿ× ( t ¥ º Ð¡¡h¡°¡Ï¡ú¢¢U¢�¢�¢©¢Ê¢þ£4£P£�£Þ¤ ¤-¤P¤ˆ¤Ð¤ã¥)¥P¥…¥µ¥é¦¦>¦k¦„¦˜¦µ¦Ò¦ô§§?§w§ §Ù¨¨6¨\¨v¨Ž¨¤¨Ñ¨í©3©Ÿ©ðªª@ªoª¯ªÉªò«'«O«u«�«§«½«ê¬¬G¬k¬�¬•¬§¬¼¬Ò­­z­Ä®®b®€®²®Õ®ö¯&¯H¯h¯|¯Ž¯¸¯Ô¯ï° °.°P°s°¾±±V±¦±Í² ²O²e²„²Ä²ç³³4³X³x³Ã´´W´‚´Ô´ìµ µ.µRµrµ¾¶¶4¶c¶‡¶Ò¶ê··-·Q·q·±·à¸ ¸U¸m¸’¸·¸Û¹¹G¹†¹Å¹ëº)ºCº[º~ºŸºÂ» »F»Š»·»ý¼¼'¼9¼}¼©¼Å¼ý½!½C½Y½‡½±½î¾0¾F¾h¾«¾Ì¿ ¿+¿x¿Ÿ¿È¿íÀ@À@VÀ@†À@¶À@ÚÀ@üÀA5ÀA^ÀAŒÀAÚÀB ÀBNÀBƒÀB·ÀBéÀC+ÀCiÀC¤ÀCÕÀDÀD<ÀD`ÀD‚ÀD¢ÀDÀÀDÜÀDôÀE ÀEÀE0ÀE@ÀENÀEZÀEdÀElÀEqÀEsÀE±ÀE¸ÀEûÀFGÀF�ÀFÖÀGÀG>ÀG`ÀGzÀG­ÀGÂÀGÉÀHÀHPÀH�ÀHšÀHŸÀH¡ÀHèÀHïÀI8ÀI…ÀIÓÀJÀJÀJkÀJ³ÀJìÀK)ÀKfÀK}ÀK—ÀK»ÀKÓÀKñÀLÀL?ÀLIÀLQÀLVÀLXÀL¡ÀLèÀLïÀM8ÀM€ÀMÈÀNÀNaÀN§ÀNæÀO0ÀO�ÀO·ÀO¿ÀPÀP,ÀPmÀPˆÀPŸÀPßÀQÀQ4ÀQKÀQbÀQˆÀQ½ÀRÀRQÀR_ÀRˆÀR¡ÀRÄÀRÝÀRöÀSÀS:ÀSpÀS‚ÀSÐÀSëÀTÀTÀT<ÀToÀTŽÀT¯ÀTÛÀU(ÀUtÀU»ÀUÓÀVÀV#ÀVMÀV’ÀVÝÀVõÀW ÀWÀW1ÀWAÀWOÀW[ÀWeÀWlÀWnÀW¼ÀX ÀX[ÀX£ÀX«ÀXøÀYDÀY‘ÀYÛÀZ*ÀZbÀZ¤ÀZÂÀ[À[À[iÀ[£À[¼À\À\3À\PÀ\iÀ\‚À\ªÀ\áÀ]À]-À]XÀ]ŠÀ]˜À]¤À]®À]µÀ]ØÀ]òÀ^<À^ŒÀ^®À^ÇÀ^ÜÀ^ñÀ_À_HÀ_€À_ŒÀ_²À_ÒÀ_èÀ_ÿÀ`>À`JÀ`TÀ`[À`pÀ`°À`èÀ`ÿÀaAÀarÀa�Àa¤Àa»ÀaáÀbÀbPÀb^Àb‡Àb×ÀbôÀcÀc>Àc\ÀcŠÀcºÀcèÀcøÀdÀdÀdÀd$Àd)Àd+ÀdzÀd·ÀdëÀe)Àe4Àe€ÀeÇÀfÀfeÀf“ÀfÏÀfüÀgÀg5ÀgFÀgOÀgfÀg‚Àg“ÀgœÀgéÀh$Àh9Àh„ÀhÑÀi#ÀirÀiªÀiÄÀiæÀiýÀjÀj-ÀjOÀjZÀjmÀjŸÀj¦Àj«Àj­ÀjøÀk ÀkÀk[Àk¥ÀkéÀkðÀl?Àl‹Àl»ÀlÂÀm ÀmUÀmŸÀmÚÀmÜÀn'Àn9Àn@ÀnŠÀnÒÀoÀoÀofÀo²ÀoâÀoéÀp1ÀpzÀpÆÀp÷ÀqÀq1ÀqNÀq[ÀqxÀqžÀqéÀr!ÀrbÀr…ÀrŠÀrŒÀrÜÀrãÀs-ÀsxÀs½ÀsýÀtÀtMÀtyÀt€ÀtÍÀuÀu_ÀuˆÀu�ÀuØÀvÀv3ÀvVÀvwÀvšÀv¥ÀvÀÀvÓÀwÀwÀwÀw ÀwTÀw‚Àw¨ÀwÄÀwéÀxÀxÀx[Àx`ÀxbÀx¦Àx­ÀxËÀyÀycÀy±ÀyøÀz@Àz�Àz¬ÀzÇÀzäÀ{À{À{OÀ{žÀ{ºÀ| À|XÀ|™À|ÛÀ}À}NÀ} À}íÀ~:À~|À~¿À~÷ÀFÀ‘ÀÝÀ€À€À€cÀ€eÀ€¯À€øÀ�CÀ�]À�‰À�“À�ÛÀ‚)À‚sÀ‚ÀÀ‚ÊÀƒÀƒYÀƒ¦ÀƒðÀ„À„ À„jÀ„²À„ûÀ…À…%À…FÀ…vÀ…ˆÀ…ËÀ…ÖÀ…àÀ†À†À†fÀ†²À†ýÀ‡IÀ‡~À‡ˆÀ‡ÏÀˆÀˆjÀˆ±ÀˆùÀ‰À‰3À‰NÀ‰ŠÀ‰³À‰ÙÀŠÀŠ/ÀŠTÀŠŒÀŠªÀŠãÀ‹ À‹GÀ‹WÀ‹qÀ‹‹À‹¼À‹÷ÀŒ ÀŒMÀŒzÀŒŒÀŒœÀŒªÀŒÃÀŒÜÀ�(À�vÀ�¶À�ÈÀŽÀŽ]ÀŽyÀŽ™ÀŽÃÀŽçÀ� À�JÀ�cÀ�„À�¬À�ØÀ�À�0À�BÀ�DÀ��À�“À�ßÀ‘(À‘xÀ‘¡À‘£À‘ðÀ’À’6À’dÀ’“À’ÆÀ’úÀ“À“ZÀ“™À“ØÀ”À”1À”~À”°À”ìÀ•À•À•.À•@À•BÀ•�À•ªÀ•ÄÀ•ßÀ•øÀ–$À–@À–]À–zÀ–�À–¾À–ÒÀ–äÀ–æÀ—2À—À—ÏÀ˜#À˜>À˜XÀ˜sÀ˜�À˜¼À˜ØÀ˜õÀ™À™3À™GÀ™YÀ™[À™§À™¹À™øÀšFÀš�ÀšÛÀ›À›hÀ›²À›ýÀœHÀœ‡Àœ™ÀœØÀœêÀ�5À�wÀ�ªÀ�ÇÀ�ãÀ�ÿÀž'ÀžjÀž´ÀžûÀŸGÀŸ‹ÀŸÏÀŸåÀŸùÀ EÀ �À ÛÀ íÀ¡8À¡†À¡ÖÀ¢%À¢rÀ¢½À£À£(À£zÀ£—À£³À£ÐÀ£ìÀ¤ À¤RÀ¤fÀ¤xÀ¤zÀ¤ÆÀ¤áÀ¤ûÀ¥À¥0À¥KÀ¥šÀ¥¬À¥¼À¥ÊÀ¥ÖÀ¥àÀ¥èÀ¥íÀ¥ïÀ¦?À¦ˆÀ¦ÑÀ§À§4À§OÀ§lÀ§‰À§£À§»À§ÂÀ¨À¨À¨&À¨nÀ¨ƒÀ¨¬À¨áÀ¨íÀ©9À©ƒÀ©³À©ÉÀªÀªÀª7Àª_Àª‡Àª®ÀªþÀ«8À«‰À«™À«§À«ÊÀ¬À¬hÀ¬¸À¬öÀ­À­NÀ­˜À­¿À­ÒÀ­óÀ®À®`À®¯À®áÀ¯À¯$À¯PÀ¯mÀ¯ŠÀ¯¬À¯ãÀ¯óÀ° À°=À°|À°­À°ûÀ±1À±xÀ±†À±’À±µÀ±ýÀ²À²KÀ²�À²½À²ÿÀ³À³?À³oÀ³�À³¬À³ÎÀ³ùÀ´À´'À´\À´{À´ËÀ´õÀµ3ÀµlÀµ¾ÀµÐÀµìÀ¶À¶=À¶wÀ¶‹À¶´À¶ÜÀ¶üÀ·,À·LÀ·rÀ·†À·˜À·¨À·¶À·ÂÀ·åÀ¸#À¸-À¸5À¸:À¸<À¸ƒÀ¸ŠÀ¸×À¹%À¹vÀ¹¡À¹¨À¹òÀºÀº0ÀºKÀºhÀº…Àº�Àº¤ÀºÎÀºßÀ»À»(À»pÀ»ƒÀ»�À»ØÀ¼À¼À¼3À¼�À¼ŸÀ¼ÑÀ¼úÀ½"À½CÀ½sÀ½“À½ÝÀ½ñÀ¾À¾À¾PÀ¾�À¾«À¾ÎÀ¿À¿.À¿NÀ¿žÀ¿²À¿ÄÀ¿ÔÀ¿âÀ¿îÀÀÀÀZÀÀ¨ÀÀîÀÁÀÁÀÁ,ÀÁFÀÁ�ÀÁœÀÁêÀÂ.ÀÂQÀ˜À¢ÀªÀ¯À±ÀÂýÀÃEÀÖÀÃÂÀÃÉÀÄÀÄ]ÀÄ›ÀľÀÄÛÀÄøÀÄÿÀÅAÀÅXÀÅ¥ÀÅÇÀÅýÀÆ.ÀÆxÀÆ‚ÀÆ›ÀÆÌÀÆæÀÇ2ÀÇIÀÇ|ÀǸÀÇâÀÈ#ÀÈ1ÀÈ=ÀÈGÀÈOÀÈTÀÈVÀÈgÀÈ•ÀȳÀÈÐÀÈíÀÉÀÉ ÀÉ!ÀÉBÀÉ„ÀÉ—ÀÉÆÀÉÝÀÊ'ÀÊ<ÀÊSÀÊfÀÊ„ÀÊÅÀÊÕÀÊüÀËÀË/ÀËJÀË�ÀËÐÀËîÀÌ ÀÌCÀÌcÀÌ„ÀÌÊÀÍÀÍ#ÀÍ5ÀÍEÀÍ_ÀÍxÀÍ�ÀÍ­ÀÍÇÀÍçÀÎÀÎ(ÀÎQÀ΃ÀÎØÀÏÀÏDÀÏ”ÀϨÀÏÊÀÏëÀÐ ÀÐ5ÀÐ\ÀЮÀÐÂÀÐàÀÑÀÑ!ÀÑbÀѦÀÑäÀÒ0ÀÒDÀÒ`ÀÒ�ÀÒ ÀÒÏÀÓÀÓ;ÀÓbÀÓ¯ÀÓÃÀÓÕÀÓåÀÓóÀÓÿÀÔ ÀÔÀÔÀÔÀÔ,ÀÔgÀÔ‹ÀÔ¨ÀÔÅÀÔâÀÔéÀÔþÀÕFÀÕYÀÕnÀÕ·ÀÕÜÀÕñÀÖ ÀÖ#ÀÖ?ÀÖoÀÖ–ÀÖ´ÀÖÓÀ×À×)À×;À×KÀ×YÀ×qÀ׈À×�À×¹À×ÑÀ×ÿÀØÀØ<ÀØiÀØ­ÀØìÀÙÀÙCÀÙ‘ÀÙ£ÀÙÍÀÙìÀÚ ÀÚCÀÚhÀÚ¶ÀÚÈÀÚØÀÚæÀÚòÀÚüÀÛÀÛ ÀÛ ÀÛ6ÀÛQÀÛnÀÛ‹ÀÛ›ÀÛ¢ÀÛ°ÀÛÇÀÛÞÀÛôÀÜÀÜ^ÀÜ­ÀÜÊÀÝÀÝ?ÀÝIÀÝ„ÀÝŽÀÝÞÀÞ*ÀÞwÀÞ°ÀÞÇÀÞÝÀßÀßAÀ߆Àß§ÀßúÀà+ÀàuÀà�ÀàÜÀá Àá:ÀáOÀá\Àá¨ÀáìÀâÀâTÀâŸÀâÙÀâøÀãÀãMÀã[ÀãgÀãqÀã¾Àä Àä?ÀäVÀälÀä ÀäÈÀåÀå&ÀåZÀå”ÀåÑÀåÛÀåøÀæÀæ%ÀæJÀægÀæ}ÀæÌÀæÖÀç Àç Àç6ÀçqÀçŽÀçÈÀçõÀè ÀèÀè6ÀèWÀècÀèmÀè¬ÀèÃÀèÙÀéÀécÀé‚Àé£ÀéÞÀéúÀêÀêMÀê�ÀêÃÀêùÀëÀë8ÀëOÀëeÀë©ÀëàÀëþÀìÀì7ÀìuÀìÀì›Àì²ÀìÈÀìëÀí6Àí^Àí{ÀíŸÀíåÀíïÀî Àî"Àî7ÀîoÀîŒÀîÇÀîÑÀîÙÀîÞÀîàÀï ÀïBÀïiÀï«ÀïÕÀðÀð[Àð§ÀðôÀñ8ÀñÀñÉÀòÀòcÀò¬ÀòúÀóGÀómÀó¼ÀóØÀô*ÀôvÀôÅÀõÀõ8ÀõHÀõ{ÀõÊÀö ÀöXÀö¢ÀöÒÀ÷À÷À÷hÀ÷µÀ÷æÀ÷ùÀøÀøMÀøWÀø|Àø³ÀøÆÀøõÀùÀù$ÀùsÀù¼ÀùÙÀùúÀúCÀú_ÀúpÀúŽÀúÞÀúøÀûÀûaÀûÀû²ÀûÒÀüÀüZÀü¡ÀüÉÀýÀý ÀýYÀý„Àý›Àý­ÀýÈÀþÀþ`Àþ«ÀþÔÀþñÀÿ"Àÿ_ÀÿsÀÿžÀÿ¹ÀÿâÀ ÀaÀ³ÀûÀÀUÀœÀÕÀ+ÀiÀ�ÀÅÀùÀÀBÀZÀ©À¿ÀÓÀþÀNÀ�ÀÔÀîÀ2À‹ÀÌÀïÀ,ÀYÀzÀÌÀíÀÀNÀvÀœÀ¶ÀÚÀ À;À}À™ÀÄÀòÀ À RÀ zÀ –À °À ÈÀ ÞÀ òÀ À cÀ ªÀ öÀ >À ‰À ÏÀ À -À JÀ {À ÀÀ îÀ À (À <À NÀ ^À qÀ �À ÈÀ öÀ;ÀjÀ†À¶À×ÀüÀ2À^À¢ÀÂÀàÀòÀÀ&ÀPÀdÀ�ÀžÀÅÀÀ;À{À¢ÀÞÀÀ/ÀGÀ]ÀŠÀ£ÀÑÀøÀ+ÀQÀuÀ�À£À·ÀÉÀÙÀÀTÀžÀ°ÀîÀ À$ÀIÀuÀ«ÀÔÀõÀÀ@ÀhÀŸÀöÀBÀ˜ÀäÀ1ÀMÀ˜ÀéÀ:À�ÀÖÀÿÀ'À\À¥À÷ÀIÀƒÀ¶ÀÀ%ÀXÀ›ÀçÀÀMÀ�À¹ÀáÀ'ÀaÀ°ÀãÀ)ÀuÀÄÀàÀ À 7À nÀ  À ÎÀ!À!8À!dÀ!�À!ÄÀ!úÀ"(À"yÀ"˜À"ÄÀ"îÀ#À#SÀ#€À#ÏÀ#îÀ$À$?À$�À$öÀ%)À%vÀ%¤À%ËÀ&À&;À&†À&ÌÀ'À'0À'YÀ'�À'¸À'òÀ(À(?À(iÀ(–À(´À(ÐÀ(ùÀ)!À)nÀ)ºÀ)ùÀ*À*FÀ*pÀ*£À*ÁÀ*ÝÀ+ À+4À+‚À+ßÀ,BÀ,ŒÀ,æÀ-À-kÀ-«À-ÔÀ-þÀ.+À.[À.|À.›À.ÄÀ.ìÀ/À/`À/ÐÀ0À0IÀ0pÀ0žÀ0îÀ1 À13À1[À1�À1éÀ2CÀ2}À2°À2æÀ3À3]À3yÀ3¢À3ÉÀ3íÀ4PÀ4ƒÀ4ÐÀ4ìÀ5À5À54À5HÀ5sÀ5³À5ÅÀ5ÕÀ6À6iÀ6´À6øÀ7À7GÀ7tÀ7„À7×À7õÀ8EÀ8oÀ8‰À8ÌÀ8øÀ9 À9[À9›À9¯À9ÏÀ:À:/À:jÀ:ŠÀ:ÈÀ:òÀ;À;6À;À;ÆÀ<ÀÀ>BÀ>eÀ>ŒÀ>³À>ÜÀ?À?1À?jÀ?šÀ?ÊÀ?îÀ@À@IÀ@rÀ@ À@ÍÀAÀACÀA|ÀAÑÀBÀBEÀBzÀB®ÀBàÀCÀCYÀCŠÀCÀÀDÀD>ÀDdÀDˆÀDªÀDãÀEÀE:ÀEfÀE»ÀFÀFYÀFŒÀF¾ÀFùÀG=ÀG¤ÀGáÀHÀH]ÀHªÀHÞÀI ÀI5ÀI[ÀIŽÀIÀÀIüÀJKÀJÀJ®ÀJÖÀJüÀK/ÀKaÀK™ÀKÑÀLÀLVÀL‹ÀLÃÀLþÀMGÀM{ÀMªÀMÒÀMøÀN+ÀN\ÀN�ÀNïÀO-ÀOjÀO´ÀOèÀPÀP?ÀPeÀP‰ÀP«ÀPËÀPéÀQÀQÀQnÀQ½ÀQïÀR!ÀRAÀRÀR©ÀRÑÀRíÀSÀS9ÀSbÀS‡ÀSÒÀSòÀT)ÀTPÀT|ÀT¦ÀTÔÀUÀUIÀU{ÀU«ÀUëÀV*ÀVNÀVpÀV�ÀVÇÀVñÀWÀWDÀWuÀW¥ÀWäÀX:ÀX‹ÀXÆÀYÀYUÀY‡ÀY°ÀYÖÀYúÀZ+ÀZ[ÀZ¦ÀZáÀ[0À[bÀ[‹À[±À[ÕÀ[÷À\À\5À\QÀ\kÀ\�À\•À\§À\·À\ÅÀ\ÑÀ\ÛÀ\ãÀ\èÀ\ëÀ\íÀ]@À]‘À]ÉÀ]êÀ^À^À^9À^DÀ^sÀ^¸À^ØÀ_À_À_DÀ_sÀ_³À_ËÀ_ÐÀ`"À`HÀ`_À`ƒÀ`ÕÀa$Àa6ÀaKÀa…Àa¬Àa¸ÀaÍÀbÀbRÀb^ÀbhÀbpÀbvÀb°Àb³ÀbµÀcÀc ÀcXÀc¦ÀcöÀd!Àd7ÀdNÀdPÀd’Àd”Àd¡ÀdÚÀdÝÀdßÀeÀe;ÀewÀe‰Àe¼ÀeÂÀeÄÀeÑÀeçÀeÿÀf2Àf7Àf9ÀfFÀfzÀf›ÀfìÀgÀg;ÀgpÀg‚Àg—ÀgžÀg£Àg¥Àg²ÀgÆÀgÙÀgïÀgôÀgöÀhÀh+ÀhHÀh^Àh}ÀhšÀhÝÀh÷Ài Ài"Ài;ÀieÀi~ÀiªÀiÆÀiëÀjÀj?ÀjlÀj¸ÀjÎÀjâÀjüÀkÀk3Àk_ÀkŠÀk²ÀkÿÀl&ÀlhÀl‰ÀlŸÀl³ÀlÅÀlÕÀlãÀlïÀlùÀmÀmÀm Àm ÀmXÀm§ÀmíÀnÀn1Àn3Àn{Àn¿ÀnÝÀnßÀoÀoÀo(ÀoeÀohÀojÀo¡Ào¹Ào»ÀoÈÀoðÀpÀpWÀpœÀpêÀq3Àq]Àq~Àq�ÀqÈÀqæÀqüÀrÀr Àr&Àr\Àr’ÀrÜÀs&ÀsFÀsjÀs�Às°ÀsÏÀtÀt,ÀtBÀtLÀtTÀtYÀt\Àt^Àt Àt¥ÀtïÀu7Àu‚Àu¸Àu½ÀuíÀuòÀv:Àv?Àv‹ÀvÓÀwÀw3Àw_ÀwwÀw�Àw­Àw¯ÀwêÀwþÀxÀxÀx&Àx?Àx[ÀxuÀx�Àx”Àx–Àx£ÀxËÀxàÀxùÀy1ÀyLÀywÀy˜Ày¿ÀyÜÀyôÀz Àz5ÀzÀzÍÀ{ À{0À{}À{�À{¦À{ýÀ|À|PÀ|‡À|°À|áÀ|ùÀ}À}WÀ}eÀ}qÀ}{À}ƒÀ}ˆÀ}‹À}�À}ÏÀ}ÔÀ~À~HÀ~aÀ~‚À~¡À~£À~ñÀ À À%À5ÀOÀmÀ‰À§À®À°ÀûÀ€À€<À€>À€KÀ€sÀ€ŠÀ€œÀ€¯À€ÑÀ�À�>À�…À�›À�±À�êÀ‚À‚/À‚=À‚IÀ‚SÀ‚xÀ‚�À‚¬À‚ÁÀ‚ÖÀ‚ñÀƒÀƒCÀƒQÀƒ“ÀƒªÀƒ¿ÀƒÖÀƒïÀ„À„9À„VÀ„~À„ÇÀ„ìÀ…À…%À…PÀ…mÀ…“À…ÔÀ…÷À† À†À†-À†;À†GÀ†QÀ†YÀ†^À†a CatiaListTile_CatiaListTileState_confirmQuitCatia _StatusDot_StatusDotState _HoverReveal_HoverRevealState _BadgeChip _PinnedBadge[ð