/*********************************************************************
 * Software License Agreement (BSD License)
 *
 *  Copyright (c) 2018, Hamburg University.
 *  All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions
 *  are met:
 *
 *   * Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *   * Redistributions in binary form must reproduce the above
 *     copyright notice, this list of conditions and the following
 *     disclaimer in the documentation and/or other materials provided
 *     with the distribution.
 *   * Neither the name of Hamburg University nor the names of its
 *     contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 *  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 *  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 *  POSSIBILITY OF SUCH DAMAGE.
 *********************************************************************/

/*
 * Capability to execute trajectories through a ROS action
 * that were generated by the MoveIt Task Constructor.
 *
 * Author: Michael 'v4hn' Goerner
 * */

#pragma once

#include <moveit/move_group/move_group_capability.h>
#include <rclcpp_action/rclcpp_action.hpp>

#include <moveit_task_constructor_msgs/action/execute_task_solution.hpp>

#include <memory>

namespace move_group {

class ExecuteTaskSolutionCapability : public MoveGroupCapability
{
public:
	ExecuteTaskSolutionCapability();

	void initialize() override;

private:
	using ExecuteTaskSolutionAction = moveit_task_constructor_msgs::action::ExecuteTaskSolution;
	using ActionServerType = rclcpp_action::Server<ExecuteTaskSolutionAction>;
	bool constructMotionPlan(const moveit_task_constructor_msgs::msg::Solution& solution,
	                         plan_execution::ExecutableMotionPlan& plan);

	void execCallback(const std::shared_ptr<rclcpp_action::ServerGoalHandle<ExecuteTaskSolutionAction>>& goal_handle);

	rclcpp_action::CancelResponse
	preemptCallback(const std::shared_ptr<rclcpp_action::ServerGoalHandle<ExecuteTaskSolutionAction>>& goal_handle);

	/** Only accept the goal if we aren't executing one */
	rclcpp_action::GoalResponse handleNewGoal(const rclcpp_action::GoalUUID& /*uuid*/,
	                                          const ExecuteTaskSolutionAction::Goal::ConstSharedPtr& /*goal*/) const {
		if (last_goal_future_.valid() &&
		    last_goal_future_.wait_for(std::chrono::seconds::zero()) != std::future_status::ready)
			return rclcpp_action::GoalResponse::REJECT;
		return rclcpp_action::GoalResponse::ACCEPT_AND_EXECUTE;
	}

	ActionServerType::SharedPtr as_;
	std::future<void> last_goal_future_;
};

}  // namespace move_group


小文字w",375:"曲折アクセントつき小文字y",sbquo:"シングル下引用符",8219:"左右逆の左引用符",bdquo:"ダブル下引用符",hellip:"三点リーダ",trade:"商標記号",9658:"右黒三角ポインタ",bull:"黒丸",
rarr:"右矢印",rArr:"右二重矢印",hArr:"左右二重矢印",diams:"ダイヤ",asymp:"漸近"});/*
 Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
CKEDITOR.plugins.setLang("specialchar","hu",{euro:"Euró jel",lsquo:"Bal szimpla idézőjel",rsquo:"Jobb szimpla idézőjel",ldquo:"Bal dupla idézőjel",rdquo:"Jobb dupla idézőjel",ndash:"Rövid gondolatjel",mdash:"Hosszú gondolatjel",iexcl:"Fordított felkiáltójel",cent:"Cent jel",pound:"Font jel",curren:"Valuta jel",yen:"Yen jel",brvbar:"Hosszú kettőspont",sect:"Paragrafus jel",uml:"Kettős hangzó jel",copy:"Szerzői jog jel",ordf:"Női sorrend mutatója",laquo:"Balra mutató duplanyíl",not:"Feltételes kötőjel",
reg:"Bejegyzett védjegy jele",macr:"Hosszúsági jel",deg:"Fok jel",sup2:"Négyzeten jel",sup3:"Köbön jel",acute:"Éles ékezet",micro:"Mikro-jel",para:"Bekezdés jel",middot:"Közép pont",cedil:"Cédille",sup1:"Elsőn jel",ordm:"Férfi sorrend mutatója",raquo:"Jobbra mutató duplanyíl",frac14:"Egy negyed jel",frac12:"Egy ketted jel",frac34:"Három negyed jel",iquest:"Fordított kérdőjel",Agrave:"Latin nagy A fordított ékezettel",Aacute:"Latin nagy A normál ékezettel",Acirc:"Latin nagy A hajtott ékezettel",Atilde:"Latin nagy A hullámjellel",
Auml:"Latin nagy A kettőspont ékezettel",Aring:"Latin nagy A gyűrű ékezettel",AElig:"Latin nagy Æ betű",Ccedil:"Latin nagy C cedillával",Egrave:"Latin nagy E fordított ékezettel",Eacute:"Latin nagy E normál ékezettel",Ecirc:"Latin nagy E hajtott ékezettel",Euml:"Latin nagy E dupla kettőspont ékezettel",Igrave:"Latin nagy I fordított ékezettel",Iacute:"Latin nagy I normál ékezettel",Icirc:"Latin nagy I hajtott ékezettel",Iuml:"Latin nagy I kettőspont ékezettel",ETH:"Latin nagy Eth betű",Ntilde:"Latin nagy N hullámjellel",
Ograve:"Latin nagy O fordított ékezettel",Oacute:"Latin nagy O normál ékezettel",Ocirc:"Latin nagy O hajtott ékezettel",Otilde:"Latin nagy O hullámjellel",Ouml:"Latin nagy O kettőspont ékezettel",times:"Szorzás jel",Oslash:"Latin O betű áthúzással",Ugrave:"Latin nagy U fordított ékezettel",Uacute:"Latin nagy U


.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-cyan .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-cyan .custom-file-input:focus~.custom-file-label,.accent-cyan .custom-select:focus,.accent-cyan .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#63d9ec}.accent-cyan .page-item .page-link{color:#17a2b8}.accent-cyan .page-item.active .page-link,.accent-cyan .page-item.active a{background-color:#17a2b8;border-color:#17a2b8;color:#fff}.accent-cyan .page-item.disabled .page-link,.accent-cyan .page-item.disabled a{background-color:#fff;border-color:#dee2e6;color:#6c757d}.accent-cyan [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#c2c7d0}.accent-cyan [class*=sidebar-dark-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#fff}.accent-cyan [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link){color:#343a40}.accent-cyan [class*=sidebar-light-] .sidebar a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):hover{color:#212529}.dark-mode.accent-cyan .page-item .page-link:focus,.dark-mode.accent-cyan .page-item .page-link:hover{color:#1ab6cf}.accent-white .btn-link,.accent-white .nav-tabs .nav-link,.accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn){color:#fff}.accent-white .btn-link:hover,.accent-white .nav-tabs .nav-link:hover,.accent-white a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link):not(.page-link):not(.badge):not(.btn):hover{color:#d9d9d9}.accent-white .dropdown-item.active,.accent-white .dropdown-item:active{background-color:#fff;color:#1f2d3d}.accent-white .custom-control-input:checked~.custom-control-label::before{background-color:#fff;border-color:#ccc}.accent-white .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%231f2d3d' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.accent-white .custom-control-input:focus:not(:checked)~.custom-control-label::before,.accent-white .custom-file-input:focus~.custom-file-label,.accent-white .custom-select:focus,.accent-white .form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid){border-color:#fff}.accent-white .page-item .page-link{color:#fff}.accent-white


he ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const bI=i("TicketCheckIcon",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/**
 * @license lucide-vue-next v0.474.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const LI=i("TicketMinusIcon",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"M9 12h6",key:"1c52cq"}]]);/**
 * @license lucide-vue-next v0.474.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const CI=i("TicketPercentIcon",[["path",{d:"M2 9a3 3 0 1 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 1 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"1l48ns"}],["path",{d:"M9 9h.01",key:"1q5me6"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M15 15h.01",key:"lqbp3k"}]]);/**
 * @license lucide-vue-next v0.474.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const SI=i("TicketPlusIcon",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"M9 12h6",key:"1c52cq"}],["path",{d:"M12 9v6",key:"199k2o"}]]);/**
 * @license lucide-vue-next v0.474.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const AI=i("TicketSlashIcon",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"m9.5 14.5 5-5",key:"qviqfa"}]]);/**
 * @license lucide-vue-next v0.474.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const _I=i("TicketXIcon",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2


t("/b/{name}", "test2");

        Map<String, String> params = new HashMap<>();
        assertThat(trie.retrieve("/a/test", params), equalTo("test1"));
        assertThat(params, equalTo(Map.of("type", "test")));

        params.clear();
        assertThat(trie.retrieve("/b/testX", params), equalTo("test2"));
        assertThat(params, equalTo(Map.of("name", "testX")));
    }

    public void testSameNameOnDifferentPath() {
        PathTrie<String> trie = new PathTrie<>(NO_DECODER);
        trie.insert("/a/c/{name}", "test1");
        trie.insert("/b/{name}", "test2");

        Map<String, String> params = new HashMap<>();
        assertThat(trie.retrieve("/a/c/test", params), equalTo("test1"));
        assertThat(params, equalTo(Map.of("name", "test")));

        params.clear();
        assertThat(trie.retrieve("/b/testX", params), equalTo("test2"));
        assertThat(params, equalTo(Map.of("name", "testX")));
    }

    public void testPreferNonWildcardExecution() {
        PathTrie<String> trie = new PathTrie<>(NO_DECODER);
        trie.insert("{test}", "test1");
        trie.insert("b", "test2");
        trie.insert("{test}/a", "test3");
        trie.insert("b/a", "test4");
        trie.insert("{test}/{testB}", "test5");
        trie.insert("{test}/x/{testC}", "test6");

        Map<String, String> params = new HashMap<>();
        assertThat(trie.retrieve("/b", params), equalTo("test2"));
        assertThat(trie.retrieve("/b/a", params), equalTo("test4"));
        assertThat(trie.retrieve("/v/x", params), equalTo("test5"));
        assertThat(trie.retrieve("/v/x/c", params), equalTo("test6"));
    }

    // https://github.com/elastic/elasticsearch/pull/17916
    public void testWildcardMatchingModes() {
        PathTrie<String> trie = new PathTrie<>(NO_DECODER);
        trie.insert("{testA}", "test1");
        trie.insert("{testA}/{testB}", "test2");
        trie.insert("a/{testB}", "test3");
        trie.insert("{testA}/b", "test4");
        trie.insert("{testA}/b/c", "test5");
        trie.insert("a/{testB}/c", "test6");
        trie.insert("a/b/{testC}", "test7");
        trie.insert("{testA}/b/{testB}", "test8");
        trie.insert("x/{testB}/z", "test9");
        trie.insert("{testA}/{testB}/{testC}", "test10");

        Map<String, String> params = new HashMap<>();

        assertThat(trie.retrieve("/a", params, TrieMatchingMode.EXPLICIT_NODES_ONLY), nullValue());
        assertThat(trie.retrieve("/a", params, TrieMatchingMode.WILDCARD_ROOT_NODES_ALLOWED), equalTo("test1"));
        assertThat(trie.retrieve("/a", params, TrieMatchingMode.WILDCARD_LEAF_NODES_ALLOWED), equalTo("test1"));
        assertThat(trie.retrieve("/a", params, TrieMatchingMode.WILDCARD_NODES_ALLOWED), equalTo("test1"));
        assertThat(trie.retrieveAll("/a", () -> params).toList(), contains(null, "test1", "test1", "test1"));

        assertThat(trie.retrieve("/a/b", params, TrieMatchingMode.EXPLICIT_NODES_ONLY), nullValue());
        assertThat(trie.retrieve("/a/b", params, TrieMatchingMode.WILDCARD_ROOT_NOD


"._week7-bs015.html#conditions-on-convex-functions" style="font-size: 80%;">Conditions on convex functions

Second condition

More on convex functions

Some simple problems

Broyden’s Algorithm for Solving Nonlinear Equations

Problem Formulation

Just a short reminder of Newton’s Method

Broyden’s Method

Broyden’s Good Method

Broyden’s Bad Method

Algorithm Steps

Advantages and Limitations

Applications

Broyden–Fletcher–Goldfarb–Shanno algorithm

BFGS optimization problem

BFGS optimization problem, setting up the equations

BFGS Algorithm Overview

Final steps

Convergence and Termination Criteria

<a href="._week7-bs034.html#properties-of-bfgs" style="font-size:


,
): void => {
  log({
    message: error.toString(),
    severity: LogSeverity.ERROR,
    ...payload,
  });
};

export const logInfo = (message: string, payload: LogPayload = {}): void => {
  log({
    message,
    severity: LogSeverity.INFO,
    ...payload,
  });
};
import {Component} from "@angular/core";

@Component({
  selector: 'my-app',
  template: `<p *while="condition">
    Первый параграф
  </p>
  <p *while="!condition">
    Второй параграф
  </p>
  <button (click)="toggle()">Toggle</button>`
})
export class AppComponent {
  condition: boolean = true;

  toggle() {
    this.condition = !this.condition;
  }
}
export type Todo = {
    text?: string,
    completed: boolean,
    id: string
}import { StylePlugin } from "../stylePlugin";
import { StyleRule } from "@paperbits/common/styles";
import { PositionStylePluginConfig } from "./positionStylePluginConfig";

export class PositionStylePlugin extends StylePlugin {
    public readonly name: string = "position";

    constructor() {
        super();
    }

    public async configToStyleRules(pluginConfig: PositionStylePluginConfig): Promise<StyleRule[]> {
        const rules = [];

        rules.push(new StyleRule("position", pluginConfig.position));

        if (!this.isValueEmpty(pluginConfig.top)) {
            rules.push(new StyleRule("top", this.parseValue(pluginConfig.top)));
        }

        if (!this.isValueEmpty(pluginConfig.left)) {
            rules.push(new StyleRule("left", this.parseValue(pluginConfig.left)));
        }

        if (!this.isValueEmpty(pluginConfig.right)) {
            rules.push(new StyleRule("right", this.parseValue(pluginConfig.right)));
        }

        if (!this.isValueEmpty(pluginConfig.bottom)) {
            rules.push(new StyleRule("bottom", this.parseValue(pluginConfig.bottom)));
        }

        if (!this.isValueEmpty(pluginConfig.zIndex)) {
            rules.push(new StyleRule("z-index", pluginConfig.zIndex));
        }

        return rules;
    }
}import { Overlay } from './Overlay';

class Modal {
  static readonly ACTIVE_CLASS: string = 'active';
  static readonly ATTR: string = 'data-modal-content-id';
  static readonly ATTR_CLOSE: string = 'data-modal-close';
  static readonly ATTR_CLOSE_ON_OVERLAY: string = 'data-close-on-overlay';
  static readonly EVENT_ACTIVE: string = 'click';
  static readonly EVENT_CLOSE: string = 'click';

  private handler: Element;
  private modal: Element;
  private closeElements: NodeListOf<Element>;
  private overlay: Overlay;
  private closeOnOverlay: boolean = true;

  constructor(handler: Element) {
    this.handler = handler;
    this.overlay = Overlay.getInstance();
    this.show = this.show.bind(this);
    this.hide = this.hide.bind(this);
    this.modal = document.getElementById(handler.getAttribute(Modal.ATTR));
    this.handler.addEventListener(Modal.EVENT_ACTIVE, this.show);
    this.closeElements = this.modal.querySelectorAll(`[${ Modal.ATTR_CLOSE }]`);

    for (let i = 0; i < this.closeElements.length; i++) {
      this.closeElements[


;
}

.theme-dark .ddp-input-apply2 .txt-apply {
    position: relative;
    float: right;
}

.theme-dark .ddp-input-apply2 .txt-apply .txt-data {
    float: left;
    position: Relative;
    top: 4px;
    margin: 0 5px;
    color: #bdc0c9;
    font-size: 12px;
}

.theme-dark .ddp-input-apply2 .txt-apply .ddp-icon-apply {
    display: none;
    float: left;
    position: relative;
    width: 24px;
    height: 24px;
    margin: 2px 2px 0 0;
    background-color: #d0d1d8;
    cursor: pointer;
}

.theme-dark .ddp-input-apply2 .txt-apply .ddp-icon-apply:before {
    display: inline-block;
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -4px 0 0 -6px;
    width: 11px;
    height: 8px;
    background: url(../../../images/icon_select2.png) no-repeat;
    background-position: -27px top;
    content: '';
}

.theme-dark .ddp-input-apply2 .ddp-wrap-input {
    display: block;
    overflow: hidden;
}

.theme-dark .ddp-input-apply2 .ddp-wrap-input input {
    display: block;
    width: 100%;
    padding: 6px 0 7px 5px;
    border: none;
    background: none;
    box-sizing: border-box;
}

.theme-dark .ddp-input-apply2.ddp-edit .txt-apply .ddp-icon-apply {
    display: block;
    background-color: #2ABCEF;
}

.theme-dark .ddp-input-apply2.ddp-focus .txt-apply .ddp-icon-apply {
    display: block;
}

/**************************************************************
    calen
**************************************************************/
.theme-dark .ddp-form-calen {
    position: relative;
}

.theme-dark .ddp-form-calen input.ddp-input-typebasic {
    padding-right: 30px;
}

.theme-dark .ddp-form-calen:after {
    display: inline-block;
    position: absolute;
    top: 50%;
    right: 10px;
    margin-top: -6px;
    width: 11px;
    height: 11px;
    background: url(../../../images/icon_type.png) no-repeat;
    content: '';
}

/**************************************************************
    textarea
**************************************************************/
.theme-dark .ddp-textarea-auto {display:block; width:100% !important; max-width:100%; padding:6px 10px 6px 10px; height:31px; min-height:31px; font-size:13px; resize:auto; box-sizing:border-box; border:1px solid #d0d1d8; box-sizing:border-box;}
@charset "utf-8";

/***************************************************************************
	page
*************************************************************************/
.theme-dark .ddp-ui-page a.ddp-btn-prev,
.theme-dark .ddp-ui-page a.ddp-btn-next {
    display: inline-block;
    float: left;
    width: 21px;
    height: 21px;
    background: url(../../../images/btn_page2.png) no-repeat;
    background-color: #fff;
}

.theme-dark .ddp-ui-


oat saveHeight = 0;
        public SliderTest2Page()
        {
            InitializeComponent();
            button1.Clicked += (o, e) =>
            {
                if (slider1.Direction == Slider.DirectionType.Vertical)
                {
                    slider1.Direction = Slider.DirectionType.Horizontal;
                    slider1.SizeHeight = saveHeight;
                }
                else
                {
                    slider1.Direction = Slider.DirectionType.Vertical;
                    saveHeight = slider1.SizeHeight;
                    slider1.SizeHeight = 300;
                }

            };

            slider1.ValueChanged += (o, e) =>
            {
                text1.Text = "slider value: " + slider1.CurrentValue;
            };
        }
    }
}


 flush count

! hardware flush

	set	NBPG, %o2

1:	subcc	%o1, %o2, %o1
	bg	1b
	sta	%g0, [%o0 + %o1]ASI_FCS_HW

	retl
	.empty

! software flush

2:	and	%o2, VAC_INFO_LSM, %o2	! line size
	add	%o2, %o2, %o3		! LS * 2
	add	%o2, %o3, %o4		! LS * 3
	add	%o2, %o4, %o5		! LS * 4
	add	%o2, %o5, %g1		! LS * 5
	add	%o2, %g1, %g2		! LS * 6
	add	%o2, %g2, %g3		! LS * 7
	add	%o2, %g3, %g4		! LS * 8

3:	subcc	%o1, %g4, %o1
	sta	%g0, [%o0 + %g0]ASI_FCS
	sta	%g0, [%o0 + %o2]ASI_FCS
	sta	%g0, [%o0 + %o3]ASI_FCS
	sta	%g0, [%o0 + %o4]ASI_FCS
	sta	%g0, [%o0 + %o5]ASI_FCS
	sta	%g0, [%o0 + %g1]ASI_FCS
	sta	%g0, [%o0 + %g2]ASI_FCS
	sta	%g0, [%o0 + %g3]ASI_FCS
	bg	3b
	add	%o0, %g4, %o0

9:	retl
	.empty

!
! Flush a page from the cache.
! To flush the page containing the argument virtual address from
! the cache we hold the bits that specify the page constant and
! issue a store into alternate space command for each line.
!
! vac_pageflush(v)
!	addr_t v;
!
	ENTRY(vac_pageflush)
	GET_INFO(%o5, %o2)		! get VAC info
	sethi	%hi(_flush_cnt+FM_PAGE), %g1 ! get flush count
	btst	VAC_INFO_VAC, %o2	! check if cache is turned on
	bz	9f			! cache off, return
	set	NBPG, %o1		! page size
	ld	[%g1 + %lo(_flush_cnt+FM_PAGE)], %g2 ! get flush count
	btst	VAC_INFO_HW, %o2	! HW flush?
	inc	%g2			! increment flush count
	bz	2f			! use SW flush
	st	%g2, [%g1 + %lo(_flush_cnt+FM_PAGE)] ! store flush count

! hardware flush

	bclr	3,%o0				! force word alignment
	retl
	sta	%g0, [%o0]ASI_FCP_HW

! software flush

2:
#if PGSHIFT <= 13
	bclr	(NBPG - 1), %o0		! get page part of address
#else
	srl	%o0, PGSHIFT, %o0	! get page part of address
	sll	%o0, PGSHIFT, %o0
#endif
	and	%o2, VAC_INFO_LSM, %o2	! line size
	add	%o2, %o2, %o3		! LS * 2
	add	%o2, %o3, %o4		! LS * 3
	add	%o2, %o4, %o5		! LS * 4
	add	%o2, %o5, %g1		! LS * 5
	add	%o2, %g1, %g2		! LS * 6


dius: 16px;
$bar-widgets-workspaces-spacing: .125em;
$bar-widgets-workspaces-pill-height: .125em;
$bar-widgets-workspaces-pill-width: .5em;
$bar-widgets-workspaces-pill-active_width: 1em;
$bar-widgets-workspaces-border-enabled: false;
$bar-widgets-workspaces-border-width: 1px;
$bar-widgets-workspaces-border-radius: 16px;
$bar-menus-scaling: 100;
$bar-menus-opacity: 100;
$bar-menus-border-enabled: false;
$bar-menus-border-width: 1px;
$bar-menus-border-radius: 16px;
$bar-menus-popover-scaling: 100;
$bar-menus-popover-opacity: 100;
$bar-menus-popover-margin_x: 0;
$bar-menus-popover-margin_y: 1.25em;
$bar-menus-popover-padding_x: 1em;
$bar-menus-popover-padding_y: 1em;
$bar-menus-popover-shadow-enabled: false;
$bar-menus-popover-shadow-offset: 0;
$bar-menus-popover-shadow-blur: 0;
$bar-menus-popover-shadow-spread: 0;
$bar-menus-popover-shadow-opacity: 100;
$bar-menus-popover-border-enabled: true;
$bar-menus-popover-border-width: 1px;
$bar-menus-popover-border-radius: 1.5em;
$bar-menus-popover-font-weight: 700;
$bar-menus-tooltip-scaling: 100;
$bar-menus-tooltip-opacity: 100;
$bar-menus-tooltip-border-enabled: false;
$bar-menus-tooltip-border-width: 1px;
$bar-menus-tooltip-border-radius: 1em;
$bar-menus-tooltip-shadow-enabled: false;
$bar-menus-tooltip-shadow-offset: 0;
$bar-menus-tooltip-shadow-blur: 0;
$bar-menus-tooltip-shadow-spread: 0;
$bar-menus-tooltip-shadow-opacity: 100;
$bar-menus-tooltip-font-weight: 700;
$bar-menus-tooltip-padding_x: .25em;
$bar-menus-tooltip-padding_y: .125em;
/* ---------------------------- */
/* Base Colors                  */
/* ---------------------------- */
$background: #2a2a3a; // Main background
$background-alt: #232436; // Secondary background
$background-dark: #1c1c2b; // Darkest background

/* Text Colors */
$text-main: #d8dbe6; // Primary text color
$text-secondary: #bbc2d1; // Secondary text color
$text-muted: #a1a7b3; // Tertiary text, muted

/* Surface Colors */
$surface-disabled: #4a4e60; // Background for disabled items
$surface-neutral: #585d71; // Neutral surface for cards, panels
$surface-highlight: #6a6f83; // Selection and highlights

/* Accent Colors */
$accent-light: #f5e0dc; // Lightest accent (Rosewater)
$accent-pink: #f5c2e7; // Pink accent
$accent-purple: #cba6f7; // Mauve accent
$accent-red: #f38ba8; // Red for errors and warnings
$accent-orange: #fab387; // Orange for warnings and alerts
$accent-yellow: #f9e2af; // Yellow for highlights
$accent-green: #a6e3a1; // Green for success
$accent-teal: #94e2d5; // Teal for information
$accent-blue: #89b4fa; // Blue for links and actions
$accent-light-blue: #89dceb; // Sky blue accent
$accent


len()
                    + 1 // current_cup
                    + 3) as u32; // picked_cups
            }
            destination_cup_position = self.cups.iter().position(|&cup| cup == destination_cup);
        }
        // insert picked cups after destination cup
        let picked_cups_position = destination_cup_position.unwrap() + 1;
        self.cups.splice(
            picked_cups_position..picked_cups_position,
            picked_cups.into_iter(),
        );
        // push current cup to end
        self.cups.push(current_cup);
    }

    fn rotate_to_1(&mut self) {
        let cup_1_position = self
            .cups
            .iter()
            .position(|&cup| cup == 1)
            .expect("cup 1 must exist");
        if cup_1_position != 0 {
            let cups_before_1 = self
                .cups
                .splice(0..cup_1_position, iter::empty())
                .collect::<Vec<_>>();
            let append_index = self.cups.len();
            self.cups
                .splice(append_index..append_index, cups_before_1.into_iter());
        }
    }
}

impl fmt::Display for State {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        for cup in &self.cups {
            write!(f, "{}", cup)?;
        }
        Ok(())
    }
}

impl FromStr for State {
    type Err = ParseStateError;

    fn from_str(s: &str) -> Result<Self, Self::Err> {
        if s.len() != 9 {
            return Err(ParseStateError::BadLength(s.len()));
        }
        let cups = s
            .chars()
            .map(|cup| cup.to_digit(10).ok_or_else(|| ParseStateError::BadCup(cup)))
            .collect::<Result<Vec<_>, _>>()?;
        if !(1..=9).all(|cup| cups.contains(&cup)) {
            return Err(ParseStateError::DuplicateCup);
        }
        Ok(Self { cups })
    }
}

fn part1(mut state: State) -> String {
    for _ in 0..100 {
        state.do_move();
    }
    state.rotate_to_1();
    state.to_string().chars().skip(1).collect()
}

fn part2(mut state: State) -> u64 {
    state.extend_to_one_million();
    for _ in 0..10_000_000 {
        state.do_move();
    }
    let cup_1_position = state
        .cups
        .iter()
        .position(|&cup| cup == 1)
        .expect("cup 1 must exist");
    let star_1_position = (cup_1_position + 1) % state.cups.len();
    let star_2_position = (cup_1_position + 2) % state.cups.len();
    state.cups[star_1_position] as u64 * state.cups[star_2_position] as u64
}

fn main() -> Result<(), Box<dyn Error>> {
    let input: State = fs::read_to_string("input")?.trim().parse()?;
    println!("{}", part1(input.clone()));
    println!("{}", part2(input));
    Ok(())
}

#[cfg(test)]
mod tests {
    use super::*;
    use pretty_assertions::assert_eq;

    #[test]
    fn test_parse_state() {
        assert_eq!(
            Ok(State::new(1, 2, 3, 4, 5, 6, 7, 8, 9)),
            "123456789".parse()
        );
        assert_eq!(
            Ok(State::new(


content-root .mw-tree-item-content:before,
  .mw-tree-nav-skin-category-manager .tree-item-active-false > .mw-tree-item-content-root .mw-tree-item-title {
    opacity: .5;
    text-decoration: line-through; }
  .mw-tree-nav-skin-category-manager span.mw-tree-context-menu {
    margin-inline-start: auto !important; }
    .mw-tree-nav-skin-category-manager span.mw-tree-context-menu .mw-tree-context-menu-content-button {
      display: none; }
    .mw-tree-nav-skin-category-manager span.mw-tree-context-menu .mw-tree-context-menu-content > * + * {
      margin-inline-start: 10px; }
  .mw-tree-nav-skin-category-manager ul, .mw-tree-nav-skin-category-manager li {
    margin: 0;
    padding: 0;
    font-size: 14px; }
    .mw-tree-nav-skin-category-manager ul ul, .mw-tree-nav-skin-category-manager li ul {
      margin-inline-start: 40px; }
  .mw-tree-nav-skin-category-manager ul {
    display: none; }
  .mw-tree-nav-skin-category-manager .ui-sortable > li.ui-sortable-helper {
    cursor: grabbing; }
  .mw-tree-nav-skin-category-manager .ui-sortable > li {
    cursor: grab; }
  .mw-tree-nav-skin-category-manager li.mw-tree-item-hidden {
    display: none; }
  .mw-tree-nav-skin-category-manager li.opened > ul {
    display: block; }
  .mw-tree-nav-skin-category-manager li.opened > .mw-tree-item-content-root .mw-tree-toggler {
    transform: translateY(-50%) rotate(90deg); }
  .mw-tree-nav-skin-category-manager li {
    list-style: none; }
  .mw-tree-nav-skin-category-manager li[data-type="category"] > .mw-tree-item-content-root .mw-tree-item-content {
    background: #fcfcfc;
    padding: 0.5rem 1rem;
    overflow: hidden;
    border-radius: 10px;
    margin-bottom: 0.5rem; }
    .mw-tree-nav-skin-category-manager li[data-type="category"] > .mw-tree-item-content-root .mw-tree-item-content:hover {
      background: #fcfcfc;
      border-color: #eeeff1;
      box-shadow: -1px 1px 1px 0 rgba(0, 0, 0, 0.11); }
    .mw-tree-nav-skin-category-manager li[data-type="category"] > .mw-tree-item-content-root .mw-tree-item-content:before {
      content: "\F024B";
      font: normal normal normal 1.25em/1 "Material Design Icons";
      color: #868686;
      margin-inline-start: -10px;
      margin-inline-end: 10px; }
  .mw-tree-nav-skin-category-manager li[data-type="page"] {
    padding-top: 10px; }
    .mw-tree-nav-skin-category-manager li[data-type="page"] > .mw-tree-item-content-root .mw-tree-item-content {
      padding: 15px 25px 10px 25px;
      background-color: #fff;
      border-bottom: 0;
      position: relative;
      overflow: hidden;
      background-color: rgba(0, 0, 0, 0.03); }
      .mw-tree-nav-skin-category-manager li[data-type="page"] > .


}
	return resTasks, nil
}

func (tu *taskUsecase) GetTaskById(userId uint, taskId uint) (model.TaskResponse, error) {
	task := model.Task{}
	if err := tu.tr.GetTaskById(&task, userId, taskId); err != nil {
		return model.TaskResponse{}, err
	}
	resTask := model.TaskResponse{
		ID:        task.ID,
		Title:     task.Title,
		CreatedAt: task.CreatedAt,
		UpdatedAt: task.UpdatedAt,
	}
	return resTask, nil
}

func (tu *taskUsecase) CreateTask(task model.Task) (model.TaskResponse, error) {
	if err := tu.tv.TaskValidate(task); err != nil {
		return model.TaskResponse{}, err
	}
	if err := tu.tr.CreateTask(&task); err != nil {
		return model.TaskResponse{}, err
	}
	resTask := model.TaskResponse{
		ID:        task.ID,
		Title:     task.Title,
		CreatedAt: task.CreatedAt,
		UpdatedAt: task.UpdatedAt,
	}
	return resTask, nil
}

func (tu *taskUsecase) UpdateTask(task model.Task, userId uint, taskId uint) (model.TaskResponse, error) {
	if err := tu.tv.TaskValidate(task); err != nil {
		return model.TaskResponse{}, err
	}
	if err := tu.tr.UpdateTask(&task, userId, taskId); err != nil {
		return model.TaskResponse{}, err
	}
	resTask := model.TaskResponse{
		ID:        task.ID,
		Title:     task.Title,
		CreatedAt: task.CreatedAt,
		UpdatedAt: task.UpdatedAt,
	}
	return resTask, nil
}

func (tu *taskUsecase) DeleteTask(userId uint, taskId uint) error {
	if err := tu.tr.DeleteTask(userId, taskId); err != nil {
		return err
	}
	return nil
}
package markdown

import (
	"bytes"
	"testing"
)

func TestDocument(t *testing.T) {
	var tests = []string{
		// Empty document.
		"",
		"",

		" ",
		"",

		// This shouldn't panic.
		// https://github.com/russross/blackfriday/issues/172
		"[]:<",
		"
[]:<
\n",

		// This shouldn't panic.
		// https://github.com/russross/blackfriday/issues/173
		"   [",
		"
[
\n",
	}
	doTests(t, tests)
}

func TestNormalizeNewlines(t *testing.T) {
	var tests = [][]byte{
		{},
		{10},
		{13},
		{13, 10, 13},
		{'a', 13, 10, 13, 'b'},
		{'a', 13, 10},
		{'b', 13},
		{13, 10, 13, 10},
		{13, 10, 13, 10, 'a'},
		{13, 10, 13, 10, 10},
		{13, 10, 13, 10, 13},
	}
	ref := func(d []byte) []byte {
		d = bytes.Replace(d, []byte{13, 10}, []byte{10}, -1) // CRLF => LF
		d = bytes.Replace(d, []byte{13}, []byte{10}, -1)     // CR => LF
		return d
	}
	dup := func(d []byte) []byte {
		return append([]byte{}, d...)
	}
	for i := 0; i < len(tests); i++ {
		d := tests[i]
		got := NormalizeNewlines(dup(d))
		exp := ref(dup(d))
		if !bytes.Equal(got, exp) {
			t.Errorf("got: %v,


69) */
@font-face {
  font-family: 'Chiron Hei HK WS';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../woff2/vf/t0/gf_78.woff2') format('woff2-variations'), url('../woff2/vf/t0/gf_78.woff2') format('woff2 supports variations');
  unicode-range: U+560f, U+5611-5613, U+5615-5616, U+5618, U+561a, U+561c, U+561e, U+5620-5621, U+5623-5625, U+5627, U+562a, U+562c-562e, U+5630-5631, U+5635-563a, U+5640, U+5642-5643, U+5649, U+564c-5650, U+5652, U+5654, U+5658-565d, U+5661, U+5664-5666, U+5669, U+566b, U+566d, U+566f, U+5671-5672, U+5676, U+567a-567c, U+5680, U+5684-5686, U+5689-568c, U+568e-568f, U+5692-5693, U+5697-5699, U+569c, U+569e, U+56a1-56a7, U+56a9, U+56ab-56ad, U+56af, U+56b1, U+56b3, U+56b5-56b6, U+56b8-56b9, U+56bf-56c1, U+56c3, U+56c5, U+56c7-56c8, U+56cb-56cc, U+56d1-56d4, U+56d6-56d9, U+56dd, U+56df, U+56e1-56e5, U+56ea-56ec, U+56ee-56ef, U+56f1-56f4, U+56f7, U+56f9, U+56fb, U+56ff-5700, U+5703-5704, U+5706-5707, U+5709-570a, U+570c, U+570f, U+5711, U+5715, U+5717, U+571c-571d, U+5723-5724, U+5727, U+5729-572a, U+572c, U+572e-572f, U+5732, U+5734-5735, U+573b, U+573d, U+573f, U+5741, U+5743, U+5746, U+574b-574d, U+574f, U+5752, U+5754, U+575a;
}
/* [t0/gf_79] (169) */
@font-face {
  font-family: 'Chiron Hei HK WS';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../woff2/vf/t0/gf_79.woff2') format('woff2-variations'), url('../woff2/vf/t0/gf_79.woff2') format('woff2 supports variations');
  unicode-range: U+54b9, U+54bb-54bc, U+54be-54bf, U+54ca, U+54cc, U+54cf-54d2, U+54d4, U+54d6-54d7, U+54da, U+54de-54df, U+54e2-54e4, U+54e7, U+54eb, U+54ef, U+54f


itEnd();
        byte[] oldBytes = cw.toByteArray();

        cw = new ClassWriter(0);
        cw.visit(V1_5, ACC_PUBLIC, "pkg/Test", null, "versioning/java/files/TestA", null);

        cw.visitMethod(ACC_PUBLIC, "getCooLen", "(Ljava/util/List;)I", "Lcome/ibm/blah;", null).visitEnd();
        cw.visitEnd();
        byte[] newBytes = cw.toByteArray();
        SemanticVersioningClassVisitor oldCV = new SemanticVersioningClassVisitor(loader);
        SemanticVersioningClassVisitor newCV = new SemanticVersioningClassVisitor(loader);
        ClassReader newCR = new ClassReader(newBytes);
        ClassReader oldCR = new ClassReader(oldBytes);

        newCR.accept(newCV, 0);
        oldCR.accept(oldCV, 0);
        BinaryCompatibilityStatus bcs = newCV.getClassDeclaration().getBinaryCompatibleStatus((oldCV.getClassDeclaration()));
        assertTrue(
                "Changing a method formal type parameter should not break binary compatibility.",
                bcs.isCompatible());
    }

    /**
     * Changing a method return type is a binary compatibility change.
     */
    @Test
    public void test_jdk_chap13_4_13_1() {
        ClassWriter cw = new ClassWriter(0);
        cw.visit(V1_5, ACC_PUBLIC, "pkg/Test", null, "versioning/java/files/TestA", null);
        cw.visitMethod(ACC_PUBLIC, "getCooLen", "(Ljava/lang/String;)I", null, null).visitEnd();
        cw.visitEnd();
        byte[] oldBytes = cw.toByteArray();

        cw = new ClassWriter(0);
        cw.visit(V1_5, ACC_PUBLIC, "pkg/Test", null, "versioning/java/files/TestA", null);
        cw.visitField(ACC_PUBLIC + ACC_TRANSIENT, "aa", "Ljava/lang/String;", null, new String("newBar")).visitEnd();
        cw.visitMethod(ACC_PUBLIC, "getCooLen", "(Ljava/lang/String;)[I", null, null).visitEnd();
        cw.visitEnd();
        byte[] newBytes = cw.toByteArray();
        SemanticVersioningClassVisitor oldCV = new SemanticVersioningClassVisitor(loader);
        SemanticVersioningClassVisitor newCV = new SemanticVersioningClassVisitor(loader);
        ClassReader newCR = new ClassReader(newBytes);
        ClassReader oldCR = new ClassReader(oldBytes);

        newCR.accept(newCV, 0);
        oldCR.accept(oldCV, 0);
        BinaryCompatibilityStatus bcs = newCV.getClassDeclaration().getBinaryCompatibleStatus((oldCV.getClassDeclaration()));
        assertEquals("The method int getCooLen(java.lang.String) has been deleted or its return type or parameter list has changed.", bcs.get(0));
        assertTrue(
                "Changing a method return type will break binary compatibility.",
                bcs.size() == 1);
    }

    /**
     * Changing a method to be abstract is a binary compatibility change.
     */
    @Test
    public void test_jdk_chap13_4_14_1() {
        ClassWriter cw = new ClassWriter(0);
        cw.visit(V1_5, ACC_PUBLIC, "pkg/Test", null, "versioning/java/files/TestA", null);
        cw.visitMethod(ACC_PUBLIC, "getCooLen", "(Ljava/lang/String;)I", null, null).visitEnd();
        cw.visitEnd();
        byte[] oldBytes = cw.toByteArray();

        cw = new ClassWriter(0);
        cw.visit(V1_5, ACC_PUBLIC, "pkg/Test", null, "versioning/java/files/TestA", null);
        cw.visitField(ACC_PUBLIC + ACC_TRANSIENT, "aa", "


Handle* containerForNewObject ) override;

    static std::pair<cvf::ref<RigWellPath>, QString>
        loadWellPathGeometryFromOsdu( RiaOsduConnector* osduConnector, const QString& wellTrajectoryId, double datumElevation );

    static std::pair<cvf::ref<RigOsduWellLogData>, QString> loadWellLogFromOsdu( RiaOsduConnector* osduConnector, const QString& wellLogId );

protected:
    void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;

private:
    void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
    void defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName ) override;

    caf::PdmFieldHandle* objectToggleField() override;

    std::vector<RimWellPath*> readAndAddWellPaths( std::vector<RimFileWellPath*>& wellPathArray );
    void                      sortWellsByName();

    std::expected<std::vector<RimFileWellPath*>, QString> addWellPathsForFile( const QString& filePath );

    caf::AppEnum<RiaDefines::EclipseUnitSystem> findUnitSystemForWellPath( const RimWellPath* wellPath );

    cafTreeNode* addWellToWellNode( cafTreeNode* parent, RimWellPath* wellPath );

    std::vector<RimWellPath*> wellPathsWithNoParent( const std::vector<RimWellPath*>& sourceWellPaths ) const;

    std::map<QString, std::vector<RimWellPath*>> wellPathsForWellNameStem( const std::vector<RimWellPath*>& sourceWellPaths ) const;

    static void buildUiTreeOrdering( cafTreeNode* treeNode, caf::PdmUiTreeOrdering* parentUiTreeNode, const QString& uiConfigName );

    static QString unGroupedText();

private:
    std::unique_ptr<RifWellPathImporter>           m_wellPathImporter;
    std::unique_ptr<RifWellPathFormationsImporter> m_wellPathFormationsImporter;

    caf::PdmPointer<RimWellPath>                      m_mostRecentlyUpdatedWellPath;
    caf::PdmChildField<RimWellMeasurementCollection*> m_wellMeasurements;
    caf::PdmChildArrayField<RimWellPath*>             m_wellPaths;

    caf::PdmChildArrayField<cafTreeNode*> m_wellPathNodes;
};


ins,
    log,
    to_binary,
    Api,
    BankMsg,
    Binary,
    Coin,
    CosmosMsg,
    Env,
    Extern,
    HandleResponse,
    HumanAddr,
    InitResponse,
    Querier,
    StdError,
    StdResult,
    Storage,
};

use crate::{
    byte_utils::{
        extend_address_to_32,
        ByteUtils,
    },
    error::ContractError,
    msg::{
        GetAddressHexResponse,
        GetStateResponse,
        GuardianSetInfoResponse,
        HandleMsg,
        InitMsg,
        QueryMsg,
    },
    state::{
        config,
        config_read,
        guardian_set_get,
        guardian_set_set,
        sequence_read,
        sequence_set,
        vaa_archive_add,
        vaa_archive_check,
        ConfigInfo,
        GovernancePacket,
        GuardianAddress,
        GuardianSetInfo,
        GuardianSetUpgrade,
        ParsedVAA,
        SetFee,
        TransferFee,
    },
};

use k256::{
    ecdsa::{
        recoverable::{
            Id as RecoverableId,
            Signature as RecoverableSignature,
        },
        Signature,
        VerifyKey,
    },
    EncodedPoint,
};
use sha3::{
    Digest,
    Keccak256,
};

use generic_array::GenericArray;
use std::convert::TryFrom;

// Chain ID of Terra
const CHAIN_ID: u16 = 3;

// Lock assets fee amount and denomination
const FEE_AMOUNT: u128 = 10000;
pub const FEE_DENOMINATION: &str = "uluna";

pub fn init<S: Storage, A: Api, Q: Querier>(
    deps: &mut Extern<S, A, Q>,
    _env: Env,
    msg: InitMsg,
) -> StdResult<InitResponse> {
    // Save general wormhole info
    let state = ConfigInfo {
        gov_chain: msg.gov_chain,
        gov_address: msg.gov_address.as_slice().to_vec(),
        guardian_set_index: 0,
        guardian_set_expirity: msg.guardian_set_expirity,
        fee: Coin::new(FEE_AMOUNT, FEE_DENOMINATION), // 0.01 Luna (or 10000 uluna) fee by default
    };
    config(&mut deps.storage).save(&state)?;

    // Add initial guardian set to storage
    guardian_set_set(
        &mut deps.storage,
        state.guardian_set_index,
        &msg.initial_guardian_set,
    )?;

    Ok(InitResponse::default())
}

pub fn handle<S: Storage, A: Api, Q: Querier>(
    deps: &mut Extern<S, A, Q>,
    env: Env,
    msg: HandleMsg,
) -> StdResult<HandleResponse> {
    match msg {
        HandleMsg::PostMessage { message, nonce } => {
            handle_post_message(deps, env, &message.as_slice(), nonce)
        }
        HandleMsg::SubmitVAA { vaa } => handle_submit_vaa(deps, env, vaa.as_slice()),
    }
}

/// Process VAA message signed by quardians
fn handle_submit_vaa<S: Storage, A: Api, Q: Querier>(
    deps: &mut Extern<S, A, Q>,
    env: Env,
    data: &[u8],
) -> StdResult<HandleResponse> {
    let state = config_read(&deps.storage).load()?;

    let vaa = parse_and


lar
            JOIN antrenmanlar ON raporlar.antrenman_id = antrenmanlar.id
            WHERE raporlar.sporcu_id = ?
        """, (sporcu_id,))
        raporlar = self.db_manager.cursor.fetchall()
        rapor_text = ""
        for rapor in raporlar:
            rapor_text += f"Antrenman Adı: {rapor[0]}, İlerleme: {rapor[1]}\n"
        return rapor_text

if __name__ == "__main__":
    app = QApplication(sys.argv)  # Uygulama oluşturuldu
    window = SporTakipUygulamasi()  # Ana pencere oluşturuldu
    window.show()  # Ana pencere gösterildi
    sys.exit(app.exec_())  # Uygulama çalıştırıldı ve çıkış kodu alındı


7D A0 07  ADC ram_07A0_obj,X ; 07A0 07A1 07A2 07A3 07A4 07A5 07A6 07A7 07A8 07A9 07AA
C - - - - - 0x00231A 00:E30A: 9D C0 07  STA ram_07C0_obj,X ; 07C0 07C1 07C2 07C3 07C4 07C5 07C6 07C7 07C8 07C9 07CA
C - - - - - 0x00231D 00:E30D: A9 00     LDA #$00
C - - - - - 0x00231F 00:E30F: 7D 90 07  ADC ram_0790_obj,X ; 0790 0791 0792 0793 0794 0795 0796 0797 0798 0799 079A
C - - - - - 0x002322 00:E312: BC D0 07  LDY ram_07D0_obj,X ; 07D0 07D1 07D2 07D3 07D4 07D5 07D6 07D7 07D8 07D9 07DA
C - - - - - 0x002325 00:E315: F0 03     BEQ bra_E31A
C - - - - - 0x002327 00:E317: 20 FB D2  JSR sub_D2FB_EOR
bra_E31A:
C - - - - - 0x00232A 00:E31A: 9D B0 07  STA ram_07B0_obj,X ; 07B0 07B1 07B2 07B3 07B4 07B5 07B6 07B7 07B8 07B9 07BA
C - - - - - 0x00232D 00:E31D: CA        DEX
C - - - - - 0x00232E 00:E31E: 10 E3     BPL bra_E303_loop
C - - - - - 0x002330 00:E320: 60        RTS

sub_E321:
C - - - - - 0x002331 00:E321: A9 05     LDA #$05
C - - - - - 0x002333 00:E323: 85 01     STA ram_0001
bra_E325_loop:
C - - - - - 0x002335 00:E325: BD B7 07  LDA ram_07B0_obj + $07,X ; 07B7 07B8 07B9 07BA
C - - - - - 0x002338 00:E328: 18        CLC
C - - - - - 0x002339 00:E329: 79 A3 02  ADC ram_spr_X + $A0,Y
C - - - - - 0x00233C 00:E32C: 99 A3 02  STA ram_spr_X + $A0,Y
C - - - - - 0x00233F 00:E32F: 88        DEY
C - - - - - 0x002340 00:E330: 88        DEY
C - - - - - 0x002341 00:E331: 88        DEY
C - - - - - 0x002342 00:E332: 88        DEY
C - - - - - 0x002343 00:E333: C6 01     DEC ram_0001
C - - - - - 0x002345 00:E335: 10 EE     BPL bra_E325_loop
C - - - - - 0x002347 00:E337: 60        RTS

tbl_E338:
- D 3 - - - 0x002348 00:E338: 14        .byte $14   ; 00
- D 3 - - - 0x002349 00:E339: 2C        .byte $2C   ; 01
- D 3 - - - 0x00234A 00:E33A: 44        .byte $44   ; 02
- D 3 - - - 0x00234B 00:E33B: 5C        .byte $5C   ; 03

sub_E33C:
C - - - - - 0x00234C 00:E33C: A2 0A     LDX #$0A
C - - - - - 0x00234E 00:E33E: 20 03 E3  JSR sub_E303
C - - - - -


b797149f3aea9a1ff5f422ce04e"
    }
    val SELECTED_WALL_PAGER_INSERT = if (BuildConfig.DEBUG) {
        "1d576761b7701d436f5a9253e7cf9572"
    } else {
        "076c4500a1c03bd47f0994c92e52517e"
    }

    val MAIN_BANNER = if (BuildConfig.DEBUG) {
        "802e356f1726f9ff39c69308bfd6f06a"
    } else {
        "4cea409bf739019cfac2cde8822bb1f9"
    }

    val GUIDE_BANNER = if (BuildConfig.DEBUG) {
        "802e356f1726f9ff39c69308bfd6f06a"
    } else {
        "fdbeb0ec7989f21ab477e9a914d99280"
    }

    val SETTING_BANNER = if (BuildConfig.DEBUG) {
        "802e356f1726f9ff39c69308bfd6f06a"
    } else {
        "da0a4151248552a7684079f90eba203a"
    }

    val ADVANCED_SETTING_BANNER = if (BuildConfig.DEBUG) {
        "802e356f1726f9ff39c69308bfd6f06a"
    } else {
        "eaf3136d01cc3a1e2ae0ae48db6f4d4a"
    }

    val SUPPORT_ENCOURAGE = if (BuildConfig.DEBUG) {
        "92d90db71791e6b9f7caaf46e4a997ec"
    } else {
        "65d6c82cad78449debfdbb7b7595087e"
    }

    //462550602
//    val ADMOB_APP_ID = "462550602\nca-app-pub-5576030072710638~6453713586"
//    private const val ADMOB_MAIN_BANNER = "ca-app-pub-5576030072710638/2549772372"
//    private const val ADMOB_GUIDE_BANNER = ADMOB_MAIN_BANNER
//    private const val ADMOB_SETTING_BANNER = ADMOB_MAIN_BANNER
//    private const val ADMOB_ADVANCED_SETTING_BANNER = "ca-app-pub-5576030072710638/1829487574"
//    private const val ADMOB_EXIT_INSERT = "ca-app-pub-5576030072710638/7202004264"
//    private const val ADMOB_BACK_MAIN_INSERT = "ca-app-pub-5576030072710638/2015505621"
//    private const val ADMOB_SETTING_INSERT = "ca-app-pub-5576030072710638/5571607253"
//    private const val ADMOB_SETTING_VIDEO = "ca-app-pub-5576030072710638/2358200685"
//    private const val ADMOB_COMMON_NATIVE = ""

    //adeverdeng
    val ADMOB_APP_ID = "adeverdeng\nca-app-pub-9972782174497381~7872748217"
    private const val ADMOB_MAIN_BANNER = "ca-app-pub-9972782174497381/1718403402"
    private const val ADMOB_GUIDE_BANNER = "ca-app-pub-9972782174497381/8994258190"
    private const val ADMOB_SETTING_BANNER = "ca-app-pub-9972782174497381/3741931514"
    private const val ADMOB_ADVANCED_SETTING_BANNER = "ca-app-pub-9972782174497381/6176523164"
    private const val ADMOB_EXIT_INSERT = "ca-app-pub-9972782174497381/8611114817"
    private const val ADMOB_BACK_MAIN_IN


ousel_controls div.dhx_carousel_btn.dhx_carousel_btn_next:active{background-color:#d2e7fe;background:linear-gradient(#d2e7fe,#d3e7ff);background:-webkit-linear-gradient(#d2e7fe,#d3e7ff);filter:progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#d2e7fe,endColorStr=#d3e7ff) progid:DXImageTransform.Microsoft.Alpha(opacity=100);box-shadow:0 0 5px rgba(127,127,127,0.15) inset;}.dhxcarousel_base_dhx_skyblue div.dhxcarousel_cont div.dhx_carousel_controls div.dhx_carousel_btn.dhx_carousel_btn_prev,.dhxcarousel_base_dhx_skyblue div.dhxcarousel_cont div.dhx_carousel_controls div.dhx_carousel_btn.dhx_carousel_btn_prev_dis{left:0;border-right-width:1px;}.dhxcarousel_base_dhx_skyblue div.dhxcarousel_cont div.dhx_carousel_controls div.dhx_carousel_btn.dhx_carousel_btn_next,.dhxcarousel_base_dhx_skyblue div.dhxcarousel_cont div.dhx_carousel_controls div.dhx_carousel_btn.dhx_carousel_btn_next_dis{right:0;border-left-width:1px;}.dhxcarousel_base_dhx_skyblue div.dhxcarousel_cont div.dhx_carousel_controls div.dhx_carousel_btn.dhx_carousel_btn_prev_dis,.dhxcarousel_base_dhx_skyblue div.dhxcarousel_cont div.dhx_carousel_controls div.dhx_carousel_btn.dhx_carousel_btn_next_dis{color:#999;background:#f2f2f2;z-index:1;}.dhxcarousel_base_dhx_skyblue div.dhxcarousel_cont div.dhx_carousel_controls div.dhx_carousel_bars{position:absolute;top:9px;text-align:center;font-size:1px;line-height:32px;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;}.dhxcarousel_base_dhx_skyblue div.dhxcarousel_cont div.dhx_carousel_controls div.dhx_carousel_bars div.dhx_carousel_onebar{float:left;position:relative;margin:0 2px;width:12px;height:12px;border:1px solid #5f8db3;border-radius:12px;background-color:white;font-size:1px;overflow:hidden;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;}.dhxcarousel_base_dhx_skyblue div.dhxcarousel_cont div.dhx_carousel_controls div.dhx_carousel_bars div.dhx_carousel_onebar div.dhx_carousel_barcore{display:none;}.dhxcarousel_base_dhx_skyblue div.dhxcarousel_cont div.dhx_carousel_controls div.dhx_carousel_bars div.dhx_carousel_onebar.dhx_carousel_baractv div.dhx_carousel_barcore{position:absolute;display:block;font-size:1px;margin:0;padding:0;width:6px;height:6px;top:2px;left:2px;border:1px solid #5f8db3;border-radius:12px;background-color:#5f8db3;overflow:hidden;-webkit-user-select:none;-khtml-user-s


    }

    /// If there are whitespaces before or after the string entered, or if the string is only
    /// whitespace, using this method will work properly.
    ///
    /// # Example
    ///
    /// ```
    /// # let conn = owsql::sqlite::open(":memory:").unwrap();
    /// let foo = String::from("   foo   ");
    /// assert_eq!(conn.actual_sql(foo).unwrap(), "'foo' ");
    ///
    /// let bar = conn.whitespace_around(String::from("   bar   "));
    /// assert_eq!(conn.actual_sql(bar).unwrap(), "'   bar   ' ");
    /// ```
    pub fn whitespace_around<T: std::string::ToString>(&self, s: T) -> String {
        let s = s.to_string();
        if !self.whitespace_around.borrow().contain(&s) {
            let whitespace_around = overwrite_new(self.serial_number.borrow_mut().get(), self.ow_len_range);
            self.whitespace_around.borrow_mut().insert(s.to_string(), whitespace_around);
        }
        format!(" {} ", self.whitespace_around.borrow().get(&s).unwrap())
    }

    /// Return the overwrite definition string in allowlist.
    /// Returns the escaped string.
    ///
    /// # Examples
    ///
    /// ```
    /// use owsql::params;
    /// # let mut conn = owsql::sqlite::open(":memory:").unwrap();
    /// # let stmt = conn.ow(r#"CREATE TABLE users (name TEXT, id INTEGER);
    /// #               INSERT INTO users (name, id) VALUES ('Alice', 42);
    /// #               INSERT INTO users (name, id) VALUES ('Bob', 69);"#);
    /// # conn.execute(stmt).unwrap();
    /// conn.add_allowlist(params!["Alice", "Bob"]);
    /// let input = "Alice OR 1=1; --";
    /// let sql = conn.ow("SELECT * FROM users WHERE name = ") + &conn.allowlist(input);
    ///
    /// assert!(conn.execute(sql).is_err());
    /// ```
    pub fn allowlist<T: ToString>(&self, value: T) -> String {
        let value = value.to_string();
        if self.allowlist.contains(&value) {
            format!(" {} ", self.overwrite.borrow().get(&escape_for_allowlist(&value)).unwrap())
        } else {
            let e = OwsqlError::new(&self.error_level, "deny value", &value).err().unwrap_or(OwsqlError::AnyError);
            if !self.error_msg.borrow().contain(&e) {
                let overwrite = overwrite_new(self.serial_number.borrow_mut().get(), self.ow_len_range);
                self.error_msg.borrow_mut().insert(e.clone(), overwrite);
            }
            format!(" {} ", self.error_msg.borrow().get(&e).unwrap())
        }
    }

    /// Checks if the value is within the allowlist.
    ///
    /// # Examples
    ///
    /// ```
    /// use owsql::params;
    /// # let mut conn = owsql::sqlite::open(":memory:").unwrap();
    /// conn.add_allowlist(params!["Alice", "Bob", 42, 123]);
    /// assert!(conn.is_allowlist("Alice"));
    /// assert!(!conn.is_allowlist("'Alice'"));
    /// assert!(conn.is_allowlist(42));
    /// assert!(conn.is_allowlist("42"));
    /// assert!(!conn.is_allowlist("'42'"));
    /// ```
    #[inline]
    pub fn is_allowlist<T: ToString>(&self, value: T) -> bool {
        self.allowlist.contains(&value.to_string())
    }

    /// Register it in self.overwrite after performing character string escape processing with
    /// single quotation added to both sides.
    /// Use [params


/* main.c
 *
 * Copyright (C) 2006-2024 wolfSSL Inc.
 *
 * This file is part of wolfSSL.
 *
 * wolfSSL is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * wolfSSL is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
 */

/* Espressif */
#include <esp_log.h>

/* wolfSSL */
/* Always include wolfcrypt/settings.h before any other wolfSSL file.    */
/* Reminder: settings.h pulls in user_settings.h; don't include it here. */
#ifdef WOLFSSL_USER_SETTINGS
    #include <wolfssl/wolfcrypt/settings.h>
    #ifndef WOLFSSL_ESPIDF
        #warning "Problem with wolfSSL user_settings."
        #warning "Check components/wolfssl/include"
    #endif
    #include <wolfssl/wolfcrypt/port/Espressif/esp32-crypt.h>
#else
    /* Define WOLFSSL_USER_SETTINGS project wide for settings.h to include   */
    /* wolfSSL user settings in ./components/wolfssl/include/user_settings.h */
    #error "Missing WOLFSSL_USER_SETTINGS in CMakeLists or Makefile:\
    CFLAGS +=-DWOLFSSL_USER_SETTINGS"
#endif

/* project */
#include "main.h"

static const char* const TAG = "My Project";

void app_main(void)
{
#ifdef WOLFSSL_ESPIDF_VERBOSE_EXIT_MESSAGE
    int ret = 0;
#endif
    ESP_LOGI(TAG, "Hello wolfSSL!");

#ifdef HAVE_VERSION_EXTENDED_INFO
    ret = esp_ShowExtendedSystemInfo();
#endif

#if defined(WOLFSSL_HW_METRICS) && defined(WOLFSSL_HAS_METRICS)
    ret += esp_hw_show_metrics();
#endif

#ifdef WOLFSSL_ESPIDF_VERBOSE_EXIT_MESSAGE
    if (ret == 0) {
        ESP_LOGI(TAG, WOLFSSL_ESPIDF_VERBOSE_EXIT_MESSAGE("Success!", ret));
    }
    else {
        ESP_LOGE(TAG, WOLFSSL_ESPIDF_VERBOSE_EXIT_MESSAGE("Failed!", ret));
    }
#elif defined(WOLFSSL_ESPIDF_EXIT_MESSAGE)
    ESP_LOGI(TAG, WOLFSSL_ESPIDF_EXIT_MESSAGE);
#else
    ESP_LOGI(TAG, "\n\nDone!"
                  "If running from idf.py monitor, press twice: Ctrl+]\n\n"
                  "WOLFSSL_COMPLETE\n" /* exit keyword for wolfssl_monitor.py */
            );
#endif
}


g-height);
  flex-wrap: nowrap;
  display: inline-flex;
  align-items: center;
  padding: var(--select-multiple-paddingTop) var(--select-multiple-paddingRight) var(--select-multiple-paddingBottom) var(--select-multiple-paddingLeft);
  margin: var(--select-multiple-marginTop) var(--select-multiple-marginRight) var(--ResultBox-tag-marginBottom) var(--select-multiple-marginLeft);
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  border-radius: var(--select-multiple-top-left-border-radius) var(--select-multiple-top-right-border-radius) var(--select-multiple-bottom-right-border-radius) var(--select-multiple-bottom-left-border-radius);
}
.cxd-ResultBox-value > a {
  cursor: pointer;
  margin-left: 0.625rem;
  color: var(--ResultBox-icon-color);
}
.cxd-ResultBox-value > a:hover {
  color: var(--ResultBox-icon--onHover-color);
}
.cxd-ResultBox-value > a > svg {
  width: 0.625rem;
  height: 0.625rem;
}
.cxd-ResultBox-value > a > svg.icon {
  top: 0;
}
.cxd-ResultBox-value:hover {
  background: var(--ResultBox-value--onHover-bg);
}
.cxd-ResultBox-value.is-disabled {
  pointer-events: none;
  color: var(--ResultBox-value--onDisabled-color);
}
.cxd-ResultBox-value.is-disabled > a {
  color: var(--ResultBox-icon--onDisabled-color);
}
.cxd-ResultBox-value.is-invalid {
  color: var(--Form-selectValue-onInvalid-color);
}
.cxd-ResultBox-valueLabel {
  max-width: var(--Form-valueLabel-maxWidth);
  overflow: hidden;
  vertical-align: top;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cxd-ResultBox-placeholder {
  color: var(--Form-input-placeholderColor);
  flex-grow: 1;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.cxd-ResultBox > input {
  padding-left: 8px;
  min-height: 24px;
}
.cxd-ResultBox.cxd-TransferDropDown.is-group > .cxd-TransferDropDown-icon {
  margin-right: var(--gap-sm);
}
.cxd-ResultBox.cxd-TransferDropDown.is-group > .cxd-ResultBox-placeholder {
  padding-left: var(--gap-sm);
}
.cxd-ResultBox.cxd-TransferDropDown > .cxd-ResultBox-value {
  background: var(--Form-select-value-bgColor);
}
.cxd-ResultBox.cxd-TransferDropDown > .cxd-ResultBox-value:hover {
  background: var(--Form-selectValue-onHover-bgColor);
}
.cxd-ResultBox-overflow-wrapper {
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-start;
  align-items: center;
  overflow-x: hidden;
  overflow-y: auto;
  max-height: calc((var(--ResultBox-tag-height) + var(--ResultBox-tag-marginBottom)) * 5);
}
.cxd-ResultBox-overflow.cxd-Tooltip--dark .cxd-ResultBox-overflow-wrapper .cxd-ResultBox-value {
  color: var(--white);
  background-color: var(--Form-select-value-bgColor--


pan: roachpb.Span{Key: roachpb.Key("c"), EndKey: roachpb.Key("d")}, ts: ts(2)},
				{span: roachpb.Span{Key: roachpb.Key("d"), EndKey: roachpb.Key("e")}, ts: ts(1)},
			},
			maxBytes: 100,
			expectedCheckpointPossibilities: []*jobspb.TimestampSpansMap{
				jobspb.NewTimestampSpansMap(map[hlc.Timestamp]roachpb.Spans{
					ts(2): {{Key: roachpb.Key("b"), EndKey: roachpb.Key("d")}},
				}),
			},
		},
	} {
		t.Run(name, func(t *testing.T) {
			aggMetrics := checkpoint.NewAggMetrics(aggmetric.MakeBuilder())

			actualCheckpoint := checkpoint.Make(
				tc.frontier,
				tc.spans.All(),
				tc.maxBytes,
				aggMetrics.AddChild(),
			)
			require.Condition(t, func() bool {
				for _, expectedCheckpoint := range tc.expectedCheckpointPossibilities {
					if expectedCheckpoint.Equal(actualCheckpoint) {
						return true
					}
				}
				return false
			})

			// Verify that metrics were set/not set based on whether a
			// checkpoint was created.
			if actualCheckpoint != nil {
				require.Greater(t, aggMetrics.CreateNanos.CumulativeSnapshot().Mean(), float64(0))
				require.Equal(t, aggMetrics.TotalBytes.CumulativeSnapshot().Mean(), float64(actualCheckpoint.Size()))
				require.Equal(t, aggMetrics.TimestampCount.CumulativeSnapshot().Mean(), float64(actualCheckpoint.TimestampCount()))
				require.Equal(t, aggMetrics.SpanCount.CumulativeSnapshot().Mean(), float64(actualCheckpoint.SpanCount()))
			} else {
				require.True(t, math.IsNaN(aggMetrics.CreateNanos.CumulativeSnapshot().Mean()))
				require.True(t, math.IsNaN(aggMetrics.TotalBytes.CumulativeSnapshot().Mean()))
				require.True(t, math.IsNaN(aggMetrics.TimestampCount.CumulativeSnapshot().Mean()))
				require.True(t, math.IsNaN(aggMetrics.SpanCount.CumulativeSnapshot().Mean()))
			}
		})
	}
}

func TestCheckpointRestore(t *testing.T) {
	defer leaktest.AfterTest(t)()
	defer log.Scope(t).Close(t)

	ts := func(wt int64) hlc.Timestamp {
		return hlc.Timestamp{WallTime: wt}
	}

	for name, tc := range map[string]struct {
		trackedSpans              roachpb.Spans
		initialHighWater          hlc.Timestamp
		checkpointToRestore       *jobspb.TimestampSpansMap
		expectedCheckpointedSpans checkpointSpans
		expectedError             string
	}{
		"restoring checkpoint with single timestamp": {
			trackedSpans:     roachpb.Spans{{Key: roachpb.Key("a"), EndKey: roachpb.Key("z")}},
			initialHighWater: ts(1),
			checkpointToRestore: jobspb.NewTimestampSpansMap(map[hlc.Timestamp]roachpb.Spans{
				ts(2): {{Key: roachpb.Key("a"), EndKey: roachpb.Key("b")},
					{Key: roachpb.Key("b"), EndKey: roachpb.Key("c")}},
			}),
			expectedCheckpointedSpans: checkpointSpans{
				{span: roachpb.Span{Key: roachpb.Key("a"), EndKey: roachpb.Key("


/**
 * @file fg_error.h
 * @brief Error-reporting routines used by Flowgrind
 */

/*
 * Copyright (C) 2014 Alexander Zimmermann <alexander.zimmermann@netapp.com>
 *
 * This file is part of Flowgrind.
 *
 * Flowgrind is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Flowgrind is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Flowgrind.  If not, see <http://www.gnu.org/licenses/>.
 *
 */

#ifndef _FG_ERROR_H_
#define _FG_ERROR_H_

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif /* HAVE_CONFIG_H */

#include <errno.h>

/** To report an critical error w/ the corresponding system error message. */
#define crit(...) (error(ERR_CRIT, errno, __VA_ARGS__))
/** To report an critical error w/ the system error message 'code'. */
#define critc(code, ...) (error(ERR_CRIT, code, __VA_ARGS__))
/** To report an critical error w/o a system error message. */
#define critx(...) (error(ERR_CRIT, 0, __VA_ARGS__))

/** To report an error w/ the corresponding system error message. */
#define err(...) (error(ERR_ERROR, errno, __VA_ARGS__))
/** To report an error w/ the system error message 'code'. */
#define errc(code, ...) (error(ERR_ERROR, code, __VA_ARGS__))
/** To report an error w/o a system error message. */
#define errx(...) (error(ERR_ERROR, 0, __VA_ARGS__))

/** To report a warning w/ the corresponding system error message. */
#define warn(...) (error(ERR_WARNING, errno, __VA_ARGS__))
/** To report a warning w/ the system error message 'code'. */
#define warnc(code, ...) (error(ERR_WARNING, code, __VA_ARGS__))
/** To report a warning w/ a system error message. */
#define warnx(...) (error(ERR_WARNING, 0, __VA_ARGS__))

/** Error level, in order of increasing importance. */
enum error_levels {
	/** Warning conditions. */
	ERR_WARNING = 0,
	/** Error conditions. */
	ERR_ERROR,
	/** Critical conditions. */
	ERR_CRIT,
};

/**
 * General error-reporting function.
 *
 * It outputs to stderr the program name, a colon and a space, a fixed error
 * message based on the error level, and a second colon and a space followed
 * by the error message. If errnum is nonzero, a third colon and a
 * space followed by the string given by strerror(errnum) is printed.
 *
 * @param[in] level error level. An error level higher then ERR_ERROR calls
 * exit() to terminate using given status
 * @param[in] errnum error number. If nonzero the corresponding system error
 * message is printed
 * @param[in] fmt error message in printf-style format with optional args
 */
void error(enum error_levels level, int errnum, const char *fmt, ...)
	__attribute__((format(printf, 3, 4)));

#endif /* _FG_ERROR_H_ */


// ------------------------------------------------------------------------------
//  <autogenerated>
//      This code was generated by a tool.
//      Mono Runtime Version: 2.0.50727.42
//
//      Changes to this file may cause incorrect behavior and will be lost if
//      the code is regenerated.
//  </autogenerated>
// ------------------------------------------------------------------------------

namespace Synapse.QtClient.Windows {
    using System;
    using Qyoto;

    public partial class MainWindow : QWidget {

        protected QWidget containerWidget;

        protected QWidget headerWidget;

        protected QLabel headerLabel;

        protected QPushButton menuButton;

        protected QPushButton closeButton;

        protected Synapse.QtClient.Widgets.LightboxContainerWidget stackedWidget;

        protected QWidget page;

        protected QWidget contentWidget;

        protected void SetupUi() {
            base.ObjectName = "MainWindow";
            this.Geometry = new QRect(0, 0, 236, 483);
            this.WindowTitle = "Synapse";
            QVBoxLayout verticalLayout;
            verticalLayout = new QVBoxLayout(this);
            verticalLayout.Spacing = 0;
            verticalLayout.Margin = 0;
            this.containerWidget = new QWidget(this);
            this.containerWidget.ObjectName = "containerWidget";
            QVBoxLayout verticalLayout_2;
            verticalLayout_2 = new QVBoxLayout(this.containerWidget);
            verticalLayout_2.Spacing = 0;
            verticalLayout_2.Margin = 0;
            this.headerWidget = new QWidget(this.containerWidget);
            this.headerWidget.ObjectName = "headerWidget";
            QHBoxLayout horizontalLayout_3;
            horizontalLayout_3 = new QHBoxLayout(this.headerWidget);
            horizontalLayout_3.Spacing = 3;
            horizontalLayout_3.SetContentsMargins(0, 0, 3, 0);
            this.headerLabel = new QLabel(this.headerWidget);
            this.headerLabel.ObjectName = "headerLabel";
            QSizePolicy headerLabel_sizePolicy;
            headerLabel_sizePolicy = new QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum);
            headerLabel_sizePolicy.SetVerticalStretch(0);
            headerLabel_sizePolicy.SetHorizontalStretch(0);
            headerLabel_sizePolicy.SetHeightForWidth(this.headerLabel.SizePolicy.HasHeightForWidth());
            this.headerLabel.SizePolicy = headerLabel_sizePolicy;
            this.headerLabel.Text = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n<meta name=\"qrichtext\" content=\"1\" />\n
Synapse
";
            this.headerLabel.Alignment = global::Qyoto.Qyoto.GetCPPEnumValue("Qt", "AlignCenter");
            this.headerLabel.Margin = 3;
            horizontalLayout_3.AddWidget(this.headerLabel);
            this


:widgets::{Block, Borders, Widget};
use zui_widgets::Terminal;

fn main() -> Result<(), io::Error> {
    let mut stdout = io::stdout();
    let backend = ZuiBackend::new(&mut stdout);
    let mut terminal = Terminal::new(backend)?;
    terminal.draw(|f| {
        let size = f.size();
        let block = Block::default().title("Block").borders(Borders::ALL);
        f.render_widget(block, size);
    })?;
    Ok(())
}
<gh_stars>10-100
#![warn(missing_docs)]

//! This crate contains the [`xkcd_unreachable!()`](xkcd_unreachable) macro, an
//! adaptation of [`unreachable!()`](unreachable) that prints the message from
//! [xkcd 2200](https://xkcd.com/2200/).
//!
//! ![xkcd 2200](https://imgs.xkcd.com/comics/unreachable_state.png)

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    #[should_panic]
    fn test_no_args() {
        xkcd_unreachable!()
    }

    #[test]
    #[should_panic]
    fn test_msg() {
        xkcd_unreachable!("foo == bar")
    }

    #[test]
    #[should_panic]
    fn test_fmt() {
        xkcd_unreachable!("error code: {}", -11)
    }
}

/// Helper macro to define `xkcd_unreachable!()`. This avoids having to
/// copy-paste the error text for each variant.
///
/// ## Parameters:
///   * `$dollar:tt`
///     * A dollar sign token (`$`). This exists to allow higher-order
///       macro definition.
///       <https://twitter.com/comex/status/979949654610604032>
///   * `$main_msg:expr`
///     * The text of the xkcd comic ("If you're seeing this, ...")
macro_rules! def_xkcd_unreachable {
    ($dollar:tt, $main_msg:expr) => {
        #[macro_export]
        /// Macro indicating unreachable code. This is equivalent to
        /// [`unreachable!()`](unreachable), except that it displays the message
        /// in [xkcd 2200](https://xkcd.com/2200/).
        ///
        /// ## Example
        /// ```rust
	/// use xkcd_unreachable::xkcd_unreachable;
	///
        /// fn foo(x: Option<i32>) {
        ///     match x {
        ///         Some(n) if n >= 0 => println!("Some(Non-negative)"),
        ///         Some(n) if n <  0 => println!("Some(Negative)"),
        ///         Some(_)           => xkcd_unreachable!(),
        ///         None              => println!("None")
        ///     }
        /// }
        /// ```
        ///
        /// ## Output if reached
        /// ```text
        /// ⚠ ERROR
        ///
        /// If you're seeing this, the code is in what
        /// I thought was an unreachable state.
        ///
        /// I could give you advice for what to do.
        /// But honestly, why should you trust me?
        /// I clearly screwed this up. I'm writing a
        /// message that should never appear, yet
        /// I know it will probably appear someday.
        ///
        /// On a deep level, I know I'm not
        /// up to this task. I'm so sorry.
        ///
        /// <https://xkcd.com


 dfb   $80

         org   $2000
InW_test1 nop
         jsr   InW_test1
         dw    $1200
         rts

         dfb   $80

         org   $2000
InW_test2 nop
         jsr   InW_test2
         dw    $1300
         rts

         dfb   $80

         org   $2000
not_inline nop
         jsr   not_inline
         bit   not_inline
         rts

         dfb   $81
         org   $0000
InW_na_test dfb $ea
         dfb   $20
         dfb   $00
         dfb   $30
         dfb   $60
         dfb   $81

         org   $4000
L4000    bit   L4000
         jsr   InW_project
         jmp   :LF000

         org   $f000
:LF000   jsr   :LF008
         jsr   :LF015
         nop
         rts

:LF008   jsr   InA1_test
         dfb   $ff
         asc   'too long'
         dfb   $ea

:LF015   jsr   InAZ_test
         asc   'does not end'


key.|
A Bittersweet|QID|50266|M|21.16,55.08|N|From Samantha Sweet.|RANK|2|
C Bittersweet|QID|50266|QO|1|M|21.16,55.08|NC|N|Release Samantha Sweet.|
C Bittersweet|QID|50266|QO|4|M|21.96,55.96|NC|N|Pick up Gauntlet.|
C Bittersweet|QID|50266|QO|3|M|21.95,57.08|NC|N|Pick up Sword.|
C Bittersweet|QID|50266|QO|2|M|21.35,57.04|NC|N|Pick up Boots.|
C Bittersweet|QID|50266|QO|5|M|21.10,57.53|NC|N|Pick up Cuirass.|
C Bittersweet|QID|50266|QO|6|M|21.15,55.14|CHAT|N|Return Samantha's gear|
K Hexwood Binder|ACTIVE|50265|US|L|156859|M|21.11,55.61|N|Once you finally get the key, you can try to avoid the Hexwood Binders.|T|Hexwood Binder|
C Saving Master Ashton|QID|50265|M|21.05,55.26|NC|N|Free Master Ashton.|
T Bittersweet|QID|50266|M|20.61,57.49|N|To Samantha Sweet.|
K Timber Mongrels|ACTIVE|50306|US|QO|1|M|21.76,56.99|N|Finish collecting the Organic Matter.|
K Hexwood Seers|ACTIVE|50306|US|QO|2|M|21.76,56.99|N|Finish collecting the Bags of Reagents.|
T Saving Master Ashton|QID|50265|M|20.64,57.47|N|To Inquisitor Cleardawn.|
T Odds and Ends|QID|50306|M|20.63,57.51|N|To Marten Webb.|
A A Little 'Pick Me Up'|QID|50327|M|20.63,57.51|N|From Marten Webb.|PRE|50265&50306|;not spurious
C A Little 'Pick Me Up'|QID|50327|M|20.60,57.55|CHAT|N|Give Master Ashton the potion and wait for it to take effect.|
T A Little 'Pick Me Up'|QID|50327|M|20.60,57.55|N|To Warren Ashton.|
A Deeper into the Woods|QID|50370|M|20.64,57.47|N|From Inquisitor Cleardawn.|PRE|50327|;not spurious
C Deeper into the Woods|QID|50370|M|24.57,56.65|NC|N|Run ahead to the waypoint.|
T Deeper into the Woods|QID|50370|M|24.57,56.65|N|To Inquisitor Cleardawn.|
A Stopping the Grand Rite|QID|50325|M|24.57,56.65|N|From Inquisitor Cleardawn.|PRE|50370|;not spurious
A Witch Way Out?|QID|50530|M|24.57,56.65|N|From Inquisitor Cleardawn.|PRE|50370|;not spurious
A Controlling the Situation|QID|50445|M|24.58,56.72|N|From Warren Ashton.|PRE|50370|;not spurious
A Matrons of the Crimsonwood|QID|50329|M|24.58,56.72|N|From Warren Ashton.|PRE|50370|;not spurious
C Witch Way Out?|QID|50530|S|NC|N|Free Captive Villagers as you go.|
K Deathcap|QID|50669|M|18.65,59.21;18.74,60.57|CS|QO|1|RARE|ITEM|158555|T|Deathcap|N|Silver Elite can be found in an Alcove. Kill and loot for Azerite Power and resources.|RANK|2|;Crimson Forest - QID may be 5


recvlen_until proc
    push    rbp
    mov     rbp, rsp
    sub     rsp, 30h
    mov     [rbp+fd], edi
    mov     [rbp+haystack], rsi
    mov     [rbp+var_28], rdx
    mov     [rbp+needle], rcx
    mov     [rbp+var_10], 0
    jmp     short loc_13FE
loc_137F:
    mov     rax, [rbp+var_28]
    sub     rax, [rbp+var_10]
    mov     rdx, rax; n
    mov     rcx, [rbp+haystack]
    mov     rax, [rbp+var_10]
    lea     rsi, [rcx+rax]; buf
    mov     eax, [rbp+fd]
    mov     ecx, 0; flags
    mov     edi, eax; fd
    call    _recv
    mov     [rbp+var_8], rax
    cmp     [rbp+var_8], 0FFFFFFFFFFFFFFFFh
    jnz     short loc_13D3
    call    ___errno_location
    mov     eax, [rax]
    cmp     eax, 0Bh
    jz      short loc_13C8
    call    ___err


data.count = GRID_MAX_POINTS;
      break;
    case ExtUI::G26_START:
      mydata.message = nullptr;
      mydata.count = 0;
      break;
    case ExtUI::G26_FINISH:
      GOTO_SCREEN(StatusScreen);
      break;
    case ExtUI::G29_POINT_START:
    case ExtUI::G26_POINT_START:
      mydata.highlight.x = x;
      mydata.highlight.y = y;
      break;
    case ExtUI::G29_POINT_FINISH:
    case ExtUI::G26_POINT_FINISH:
      mydata.count++;
      break;
  }
  BedMeshViewScreen::onMeshUpdate(x, y, 0);
}

void BedMeshViewScreen::doProbe() {
  GOTO_SCREEN(BedMeshViewScreen);
  mydata.count = 0;
  injectCommands_P(PSTR(BED_LEVELING_COMMANDS));
}

void BedMeshViewScreen::show() {
  injectCommands_P(PSTR("G29 L1"));
  GOTO_SCREEN(BedMeshViewScreen);
}

#endif // FTDI_BED_MESH_VIEW_SCREEN
/************************
 * alert_dialog_box.cpp *
 ************************/

/****************************************************************************
 *   Written By Mark Pelletier  2017 - Aleph Objects, Inc.                  *
 *   Written By Marcio Teixeira 2018 - Aleph Objects, Inc.                  *
 *                                                                          *
 *   This program is free software: you can redistribute it and/or modify   *
 *   it under the terms of the GNU General Public License as published by   *
 *   the Free Software Foundation, either version 3 of the License, or      *
 *   (at your option) any later version.                                    *
 *                                                                          *
 *   This program is distributed in the hope that it will be useful,        *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of         *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
 *   GNU General Public License for more details.                           *
 *                                                                          *
 *   To view a copy of the GNU General Public License, go to the following  *
 *   location: <https://www.gnu.org/licenses/>.                             *
 ****************************************************************************/

#include "../config.h"
#include "../screens.h"
#include "../screen_data.h"

#ifdef FTDI_ALERT_DIALOG_BOX

constexpr static AlertDialogBoxData &mydata = screen_data.AlertDialogBox;

using namespace FTDI;
using namespace Theme;

void AlertDialogBox::onEntry() {
  BaseScreen::onEntry();
  sound.play(mydata.isError ? sad_trombone : twinkle, PLAY_ASYNCHRONOUS);
}

void AlertDialogBox::onRedraw(draw_mode_t what) {
  if (what & FOREGROUND) {
    drawOkayButton();
  }
}

template<typename T>
void AlertDialogBox::show(T message) {
  drawMessage(message);
  storeBackground();
  mydata.isError = false;
  GOTO_SCREEN(AlertDialogBox);
}

template<typename T>
void AlertDialogBox::showError(T message) {
  drawMessage(message);
  storeBackground();
  mydata.isError = true;
  GOTO_SCREEN(AlertDialogBox);
}

void AlertDialogBox::hide() {
  if (AT_SCREEN(AlertDialogBox))
    GOTO_PREVIOUS();
}

template void AlertDialogBox::show(const char *);
template void AlertDialogBox::show(FSTR_P);
template void AlertDialogBox::showError(const char *);
template void AlertDialogBox::showError(FSTR_P);

#endif // FTDI_ALERT_DIALOG_BOX
/**********************


data associated with that image.

For more insights, click Vector Analysis. This will show a scatter plot of the images in your dataset, calculated using CLIP. The closer images are in the plot, the more similar they are, semantically. Each image is represented as a dot with a color between white and red. The more red the dot, the worse the model performed.

You can use Vector Analysis to:

- Find clusters of images;
- Identify clusters where the model performs poorly, and;
- Visualize commonalities between images on which the model performs poorly.

## Learning Resources

Want to learn more about using Roboflow for creating YOLOv8 models? The following resources may be helpful in your work.

- [Train YOLOv8 on a Custom Dataset](https://github.com/roboflow/notebooks/blob/main/notebooks/train-yolov8-object-detection-on-custom-dataset.ipynb): Follow our interactive notebook that shows you how to train a YOLOv8 model on a custom dataset.
- [Autodistill](https://autodistill.github.io/autodistill/): Use large foundation vision models to label data for specific models. You can label images for use in training YOLOv8 classification, detection, and segmentation models with Autodistill.
- [Supervision](https://roboflow.github.io/supervision/): A Python package with helpful utilities for use in working with computer vision models. You can use supervision to filter detections, compute confusion matrices, and more, all in a few lines of Python code.
- [Roboflow Blog](https://blog.roboflow.com/): The Roboflow Blog features over 500 articles on computer vision, covering topics from how to train a YOLOv8 model to annotation best practices.
- [Roboflow YouTube channel](https://www.youtube.com/@Roboflow): Browse dozens of in-depth computer vision guides on our YouTube channel, covering topics from training YOLOv8 models to automated image labeling.

## Project Showcase

Below are a few of the many pieces of feedback we have received for using YOLOv8 and Roboflow together to create computer vision models.

<img src="https://media.roboflow.com/ultralytics/rf_showcase_2.png" alt="S


 // ...
//	    }
//	}
//
// The `B` in `A` is called `embedded struct definition`.
func (oai *OpenApiV3) isEmbeddedStructDefinition(golangType reflect.Type) bool {
	s := golangType.String()
	return gstr.Contains(s, `struct {`)
}

// newSchemaRefWithGolangType creates a new Schema and returns its SchemaRef.
func (oai *OpenApiV3) newSchemaRefWithGolangType(golangType reflect.Type, tagMap map[string]string) (*SchemaRef, error) {
	var (
		err       error
		oaiType   = oai.golangTypeToOAIType(golangType)
		oaiFormat = oai.golangTypeToOAIFormat(golangType)
		typeName  = golangType.Name()
		pkgPath   = golangType.PkgPath()
		schemaRef = &SchemaRef{}
		schema    = &Schema{
			Type:        oaiType,
			Format:      oaiFormat,
			XExtensions: make(XExtensions),
		}
	)
	if pkgPath == "" {
		switch golangType.Kind() {
		case reflect.Pointer, reflect.Array, reflect.Slice:
			pkgPath = golangType.Elem().PkgPath()
			typeName = golangType.Elem().Name()
		default:
		}
	}

	// Type enums.
	var typeId = fmt.Sprintf(`%s.%s`, pkgPath, typeName)
	if enums := gtag.GetEnumsByType(typeId); enums != "" {
		schema.Enum = make([]any, 0)
		if err = json.Unmarshal([]byte(enums), &schema.Enum); err != nil {
			return nil, err
		}
	}

	if len(tagMap) > 0 {
		if err = oai.tagMapToSchema(tagMap, schema); err != nil {
			return nil, err
		}
		if oaiType == TypeArray && schema.Type == TypeFile {
			schema.Type = TypeArray
		}
	}
	schemaRef.Value = schema
	switch schema.Type {
	case TypeString, TypeFile:
	// Nothing to do.
	case TypeInteger:
		if schemaRef.Value.Default != nil {
			schemaRef.Value.Default = gconv.Int64(schemaRef.Value.Default)
		}
		// keep the default value as nil.

		// example value needs to be converted just like default value
		if schemaRef.Value.Example != nil {
			schemaRef.Value.Example = gconv.Int64(schemaRef.Value.Example)
		}
		// keep the example value as nil.
	case TypeNumber:
		if schemaRef.Value.Default != nil {
			schemaRef.Value.Default = gconv.Float64(schemaRef.Value.Default)
		}
		// keep the default value as nil.

		// example value needs to be converted just like default value
		if schemaRef.Value.Example != nil {
			schemaRef.Value.Example = gconv.Float64(schemaRef.Value.Example)
		}
		// keep the example value as nil.
	case TypeBoolean:
		if schemaRef.Value.Default != nil {
			schemaRef.Value.Default = gconv.Bool(schemaRef.Value.Default)
		}
		// keep the default value as nil.

		// example value needs to be converted just like default value
		if schemaRef.Value.Example != nil {
			schemaRef.Value.Example = gconv.Bool(schemaRef.Value.Example)
		}
		// keep the example value as nil.
	case TypeArray:
		subSchemaRef, err := oai.newSchemaRefWithGolangType(golangType.Elem(), nil)
		if err != nil {
			return nil, err
		}
		schema.Items = subSchemaRef
		if len(schema.Enum) > 0 {
			schema.Items.Value.Enum = schema.Enum
			schema.Enum = nil
		}

	case TypeObject:
		for golangType.Kind() == reflect.Pointer {
			golangType = golangType.Elem()
		}
		switch golangType.Kind() {
		case reflect.Map


local super = require("ui.model.data_base")
local SeasonData = class("SeasonData", super)

function SeasonData:ctor()
  super.ctor(self)
  self.nowSeasonId_ = 0
  self.nowSeasonDay_ = 0
end

function SeasonData:Init()
  self:Clear()
  self.CancelSource = Z.CancelSource.Rent()
  self.seasonSubPageId_ = 1
  self.SeasonActFuncId = 0
  local SeasonCenterTableMgr = Z.TableMgr.GetTable("SeasonCenterTableMgr")
  local seasonCenterDatas = SeasonCenterTableMgr.GetDatas()
  self.pageIndexAndFuncIdMap_ = {}
  for id, value in pairs(seasonCenterDatas) do
    self.pageIndexAndFuncIdMap_[value.Sort] = id
  end
  self:InitCfgData()
end

function SeasonData:InitCfgData()
  self.SeasonGlobalTableDatas = Z.TableMgr.GetTable("SeasonGlobalTableMgr").GetDatas()
  self.SeasonDailyTableDatas = Z.TableMgr.GetTable("SeasonDailyTableMgr").GetDatas()
  self.SeasonActTableDatas = Z.TableMgr.GetTable("SeasonActTableMgr").GetDatas()
end

function SeasonData:OnLanguageChange()
  self:InitCfgData()
end

function SeasonData:Clear()
  self.CurSeasonId = 0
  self.MaxEquipLevel = 0
end

function SeasonData:UnInit()
  self.CancelSource:Recycle()
end

function SeasonData:SetSubPageId(id)
  self.seasonSubPageId_ = id
end

function SeasonData:GetSubPageId()
  return self.seasonSubPageId_ or 1
end

function SeasonData:SetSeasonActFuncId(id)
  self.SeasonActFuncId = id
end

function SeasonData:GetSeasonActFuncId()
  return self.SeasonActFuncId or 0
end

function SeasonData:SetCurShowPage(id)
  self.curShowPage


not entity.valid then
        return
    end

    local inv_corpse = entity.get_inventory(defines.inventory.character_corpse)
    if not inv_corpse or not inv_corpse.valid then
        return
    end

    if inv_corpse.is_empty() then
        entity.destroy()
        player.print({'death_corpse_tags.empty_corpse'})
        return
    end

    local text = player.name .. "'s corpse"
    local position = entity.position
    local tag = player.force.add_chart_tag(player.surface, {
        icon = {type = 'item', name = 'power-armor-mk2'},
        position = position,
        text = text
    })

    if not tag then
        return
    end

    CorpseUtil.add_tag(tag, player_index, tick, true)
end

Event.add(defines.events.on_player_died, player_died)

Public._player_died = player_died

return Public


WebSocketIO] Connecting(uri: ${uri.toString()})...');
    try {
      final ws = await io.WebSocket.connect(uri.toString());
      logger.fine('[WebSocketIO] Connected');
      return LiveKitWebSocketIO._(ws, options);
    } catch (_) {
      logger.severe('[WebSocketIO] did throw ${_}');
      throw WebSocketException.connect();
    }
  }
}
// Copyright 2024 LiveKit, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

import 'dart:async';

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
import 'package:meta/meta.dart';

import '../../events.dart';
import '../../exceptions.dart';
import '../../extensions.dart';
import '../../internal/events.dart';
import '../../logger.dart';
import '../../participant/remote.dart';
import '../../support/platform.dart';
import '../../types/other.dart';
import '../options.dart';
import '../remote/audio.dart';
import '../remote/video.dart';
import '../track.dart';
import 'audio.dart';
import 'video.dart';

/// Used to group [LocalVideoTrack] and [RemoteVideoTrack].
mixin VideoTrack on Track {
  @internal
  final List<GlobalKey> viewKeys = [];

  @internal
  Function(Key)? onVideoViewBuild;

  @internal
  GlobalKey addViewKey() {
    final key = GlobalKey();
    viewKeys.add(key);
    return key;
  }

  @internal
  void removeViewKey(GlobalKey key) {
    viewKeys.remove(key);
  }
}

/// Used to group [LocalAudioTrack] and [RemoteAudioTrack].
mixin AudioTrack on Track {}

/// Base class for [LocalAudioTrack] and [LocalVideoTrack].
abstract class LocalTrack extends Track {
  /// Options used for this track
  abstract LocalTrackOptions currentOptions;

  bool _published = false;
  bool get isPublished => _published;

  String? codec;

  bool _stopped = false;

  LocalTrack(
    TrackType kind,
    TrackSource source,
    rtc.MediaStream mediaStream,
    rtc.MediaStreamTrack mediaStreamTrack,
  ) : super(
          kind,
          source,
          mediaStream,
          mediaStreamTrack,
        ) {
    mediaStreamTrack.onEnded = () {
      logger.fine('MediaStreamTrack.onEnded()');
      events.emit(TrackEndedEvent(track: this));
    };
  }

  /// Mutes this [LocalTrack]. This will stop the sending of track data
  /// and notify the [RemoteParticipant] with [TrackMutedEvent].
  /// Returns true if muted, false if unchanged.
  Future<bool> mute() async {
    logger.fine('LocalTrack.mute() muted: $muted');
    if (muted) return false; // already muted
    await disable();
    if (!lkPlatformIs(PlatformType.windows)) {
      await stop();
    }
    updateMuted(true, shouldSendSignal: true);
    return true;
  }

  /// Un-mutes this [LocalTrack]. This will re-start the sending of track data
  /// and notify the [RemoteParticipant] with [TrackUnmutedEvent].
  /// Returns true if un-muted, false if unchanged.
  Future<bool> unmute() async {
    logger.fine('LocalTrack.unmute() muted: $muted');
    if (!muted) return false; // already un-muted
    if (!lkPlatformIs(PlatformTyp


                                   "Unknown builtin method: " + std::string(builtin->str()));
    }

    return "";
}

void ASTPrinter::EmitCase(const ast::CaseStatement* stmt) {
    auto* sem = builder_.Sem().Get<sem::CaseStatement>(stmt);
    for (auto* selector : sem->Selectors()) {
        auto out = Line();

        if (selector->IsDefault()) {
            out << "default";
        } else {
            out << "case ";
            EmitConstant(out, selector->Value());
        }
        out << ":";
        if (selector == sem->Selectors().back()) {
            out << " {";
        }
    }

    {
        ScopedIndent si(this);
        EmitStatements(stmt->body->statements);
        if (!last_is_break(stmt->body)) {
            Line() << "break;";
        }
    }

    Line() << "}";
}

void ASTPrinter::EmitContinue(const ast::ContinueStatement*) {
    if (emit_continuing_) {
        emit_continuing_();
    }
    Line() << "continue;";
}

void ASTPrinter::EmitDiscard(const ast::DiscardStatement*) {
    // TODO(dsinclair): Verify this is correct when the discard semantics are
    // defined for WGSL (https://github.com/gpuweb/gpuweb/issues/361)
    Line() << "discard;";
}

void ASTPrinter::EmitExpression(StringStream& out, const ast::Expression* expr) {
    if (auto* sem = builder_.Sem().GetVal(expr)) {
        if (auto* constant = sem->ConstantValue()) {
            EmitConstant(out, constant);
            return;
        }
    }
    Switch(
        expr,  //
        [&](const ast::IndexAccessorExpression* a) { EmitIndexAccessor(out, a); },
        [&](const ast::BinaryExpression* b) { EmitBinary(out, b); },
        [&](const ast::BitcastExpression* b) { EmitBitcast(out, b); },
        [&](const ast::CallExpression* c) { EmitCall(out, c); },
        [&](const ast::IdentifierExpression* i) { EmitIdentifier(out, i); },
        [&](const ast::LiteralExpression* l) { EmitLiteral(out, l); },
        [&](const ast::MemberAccessorExpression* m) { EmitMemberAccessor(out, m); },
        [&](const ast::UnaryOpExpression* u) { EmitUnaryOp(out, u); },
        [&](Default) {  //
            diagnostics_.add_error(diag::System::Writer, "unknown expression type: " +
                                                             std::string(expr->TypeInfo().name));
        });
}

void ASTPrinter::EmitIdentifier(StringStream& out, const ast::IdentifierExpression* expr) {
    out << expr->identifier->symbol.Name();
}

void ASTPrinter::EmitIf(const ast::IfStatement* stmt) {
    {
        auto out = Line();
        out << "if (";
        EmitExpression(out, stmt->condition);
        out << ") {";
    }
    EmitStatementsWithIndent(stmt->body->statements);

    if (stmt->else_statement) {
        Line() << "} else {";
        if (auto* block = stmt->else_statement->As<ast::BlockStatement>()) {
            EmitStatementsWithIndent(block->statements);
        } else {
            EmitStatementsWithIndent(Vector{stmt->else_statement});
        }
    }
    Line() << "}";
}

void ASTPrinter::EmitFunction(const ast::Function* func) {
    auto* sem = builder_.Sem().Get(func);

    if (ast::HasAttribute<ast::InternalAttribute>(func->attributes)) {
        // An internal function. Do not emit.
        return;
    }

    {
        auto out = Line();
        auto name = func->name->symbol.Name();
        EmitType(out, sem->ReturnType(), core::


-zheng-ce-zhou-qi-bo-dong-tiao-zheng-jing-ying-ce-lue)
- **关键词**：政策驱动型行业、环保、医药、政策周期、经营策略
- **作者**：杨继芸
- **简介**：了解政策驱动行业的特点与政策周期分析方法，掌握行业调整策略，帮助企业应对环保和医药行业的政策变化，实现稳步发展。

### 3. 如何快速分析一家公司的财报，判断是否值得投资？
- **链接**：[https://mp.jobleap4u.com/discover/1758591551739-ru-he-kuai-su-fen-xi-yi-jia-gong-si-de-cai-bao-pan-duan-shi-fou-zhi-de-tou-zi](https://mp.jobleap4u.com/discover/1758591551739-ru-he-kuai-su-fen-xi-yi-jia-gong-si-de-cai-bao-pan-duan-shi-fou-zhi-de-tou-zi)
- **关键词**：财报分析、投资决策、财务健康、盈利能力、财务指标
- **作者**：杨继芸
- **简介**：掌握财报分析技巧，快速评估企业财务健康和盈利能力，助力精准投资决策。了解关键财务指标、风险点，结合行业环境，实现科学投资。提升投资成功率的必备指南！

### 4. 如何从财报中快速拆解公司的管理逻辑、战略漏洞、运营效率？
- **链接**：[https://mp.jobleap4u.com/discover/1758591560318-ru-he-cong-cai-bao-zhong-kuai-su-chai-jie-gong-si-de-guan-li-luo-ji-zhan-lue-lou-dong-yun-ying-xiao-lu](https://mp.jobleap4u.com/discover/1758591560318-ru-he-cong-cai-bao-zhong-kuai-su-chai-jie-gong-si-de-guan-li-luo-ji-zhan-lue-lou-dong-yun-ying-xiao-lu)
- **关键词**：财报拆解、管理逻辑、战略漏洞、运营效率、财务结构
- **作者**：杨继芸
- **简介**：掌握财报分析关键指标，洞察公司管理逻辑与战略漏洞。本文解析财务结构、运营效率，助你识别潜在风险，把握企业增长机会。了解财报拆解，提升投资与管理决策。

### 5. 如何在大规模投入并推向市场之前，预测某个IP的ROI？
- **链接**：[https://mp.jobleap4u.com/discover/1758591548898


x0F,0x08,0x08,0x08,0x08,0x08,0x08,0x00,
	0x8B,0x8B,0x0B,0x07,0x07,0x07,0x07,0x00,
	0x8B,0x8B,0x0B,0x07,0x07,0x07,0x07,0x00,
	0x8F,0x8F,0x0F,0x07,0x07,0x07,0x07,0x00,
	0x8F,0x8F,0x0F,0x0F,0x0F,0x0F,0x0F,0x00,
	0x8F,0x8F,0x0F,0x0F,0x0F,0x0F,0x0F,0x00,
	0x87,0x87,0x07,0x0B,0x0B,0x0B,0x0B,0x00,
	0x08,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x00,
	0x87,0x87,0x07,0x0B,0x0B,0x0B,0x0B,0x00,
	0x87,0x87,0x07,0x0B,0x0B,0x0B,0x0B,0x00,
	0x87,0x87,0x07,0x0B,0x0B,0x0B,0x0B,0x00,
	0x8F,0x8F,0x0F,0x0F,0x0F,0x0F,0x0F,0x00,
	0x8F,0x8F,0x8F,0x8F,0x0F,0x0F,0x0F,0x00,
	0x8B,0x8B,0x8B,0x0B,0x07,0x07,0x07,0x00,
	0x0F,0x08,0x08,0x08,0x08,0x08,0x08,0x00,
	0x8B,0x0B,0x07,0x07,0x07,0x07,0x07,0x00,
	0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x00,
	0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x00,
	0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x00,
	0x8F,0x8F,0x8F,0x8F,0x0F,0x0F,0x0F,0x00,
	0x87,0x87,0x87,0x07,0x0B,0x0B,0x0B,0x00,
	0x08,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x00,
	0x87,0x07,0x0B,0x0B,0x0B,0x0B,0x0B,0x00,
	0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x00,
	0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x8B,0x00,
	0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x8F,0x00,
};

const char* perf_line_color[]=
{
	(const char*)perf_line_colordata + 0,
	(const char*)perf_line_colordata + 56,
	(const char*)perf_line_colordata + 112,
	(const char*)perf_line_colordata + 168,
	(const char*)perf_line_colordata + 224,
	(const char*)perf_line_colordata + 280,
	0
};

ASSET perf_line=
{
	perf_line_mono,
	perf_line_shade,


",
                    "",
                    "",
                    "",
                    "",
                    "",
                }
            },
            { "Africa/Addis_Ababa", Africa_Eastern },
            { "Europe/Uzhgorod", Europe_Eastern },
            { "timezone.excity.Asia/Colombo", "\u12ae\u120e\u121d\u1266" },
            { "timezone.excity.Pacific/Port_Moresby", "\u1356\u122d\u1275 \u121e\u122c\u1235\u1263\u12ed" },
            { "America/Creston", America_Mountain },
            { "timezone.excity.America/Mendoza", "\u121c\u1295\u12f6\u12db" },
            { "Asia/Vientiane", Indochina },
            { "timezone.excity.America/Noronha", "\u1296\u122e\u129b" },
            { "timezone.excity.Asia/Sakhalin", "\u1233\u12ad\u1203\u120a\u1295" },
            { "Pacific/Kiritimati", Line_Islands },
            { "timezone.excity.America/Nipigon", "\u1292\u1352\u130e\u1295" },
            { "timezone.excity.Europe/Guernsey", "\u1309\u122d\u1290\u1232" },
            { "timezone.excity.America/Argentina/San_Luis", "\u1233\u1295 \u120a\u12cd\u1235" },
            { "timezone.excity.Europe/Riga", "\u122a\u130b" },
            { "timezone.excity.America/Araguaina", "\u12a0\u122b\u1309\u12e8\u1293" },
            { "Atlantic/South_Georgia", South_Georgia },
            { "Europe/Lisbon", Europe_Western },
            { "Asia/Harbin", China },
            { "Asia/Novokuznetsk", Krasnoyarsk },
            { "timezone.excity.America/Cordoba", "\u12ae\u122d\u12f6\u1263" },
            { "timezone.excity.America/Cambridge_Bay", "\u12ab\u121d\u1265\u122a\u1305 \u1264\u12ed" },
            { "CST6CDT", America_Central },
            { "Atlantic/Canary", Europe_Western },
            { "Asia/Kuwait", Arabian },
            { "SystemV/HST10", Hawaii_Aleutian },
            { "Pacific/Efate", Vanuatu },
            { "Africa/Lome", GMT },
            { "America/Bogota", Colombia },
            { "America/Adak", Hawaii_Aleutian },
            { "Pacific/Norfolk", Norfolk },
            { "timezone.excity.America/Campo_Grande", "\u12ab\u121d\u1356 \u130d\u122b\u1295\u12f4" },
            { "timezone.excity.Africa/Blantyre", "\u1265\u120b\u1295\u1273\u12e8\u122d" },
            { "timezone.excity.Europe/Malta", "\u121b\u120d\u1273" },
            { "Pacific/Tarawa", Gilbert_Islands },
            { "timezone.excity.Australia/Sydney", "\u1232\u12f5\u1292" },
            { "timezone.excity.Asia/Qatar", "\u12b3\u1273\u122d" },
            { "timezone.excity.America/Sitka", "\u1232\u1275\u12ab" },
            { "SystemV/EST5", America_Eastern },


a[ra],Sa=a[Ia+236>>2]-a[ub+236>>2]|0"
  ";do{if(1<((-1<(Sa|0)?Sa:-Sa|0)|0)){for(var Pa=Ca|0,ua=Pa>>2,Oa=(ta|0)>>2,Wa=ua+46;ua<"
  "Wa;ua++,Oa++){a[Oa]=a[ua]}for(var pb=0==(a[Ca+172>>2]&32|0),ob=Ka|0,ua=Pa>>2,Oa=ob>>2"
  ",Wa=ua+46;ua<Wa;ua++,Oa++){a[Oa]=a[ua]}if(pb){var bb=a[qa],qb=a[Ab+4]=bb}else{a[wa+4]"
  "=a[ra];a[wa+3]=a[qa];for(var db=Ka+28|0,kb=Ca+68|0,ua=kb>>2,Oa=db>>2,Wa=ua+10;ua<Wa;u"
  "a++,Oa++){a[Oa]=a[ua]}for(var hb=Ka+68|0,ua=(Ca+28|0)>>2,Oa=hb>>2,Wa=ua+10;ua<Wa;ua++"
  ",Oa++){a[Oa]=a[ua]}m[Ka+124|0]=1;a[wa+32]=Ca;var vb=a[ra];a[Ab+4]=vb;for(var xb=ta+28"
  "|0,ua=kb>>2,Oa=xb>>2,Wa=ua+10;ua<Wa;ua++,Oa++){a[Oa]=a[ua]}qb=vb}for(var ib=lm(Ca);;)"
  "{var nb=a[ib+180>>2];if(0==(nb|0)){break}else{ib=nb}}var rb=a[ib+12>>2];a[Ab+3]=rb;m["
  "ta+96|0]=0;m[ta+124|0]=1;sa=(ta+68|0)>>2;a[sa]=0;a[sa+1]=0;a[sa+2]=0;a[sa+3]=0;a[Ab+3"
  "2]=Ca;var lb=1,Ta=ta,cb=qb,fb=rb}else{if(0==(a[Ca+172>>2]&32|0)){lb=0,Ta=Ca,cb=Ia,fb="
  "ub}else{for(var Ua=ta|0,ua=(Ca|0)>>2,Oa=Ua>>2,Wa=ua+46;ua<Wa;ua++,Oa++){a[Oa]=a[ua]}v"
  "ar sb=a[ra];a[Ab+4]=sb;var Na=a[qa];a[Ab+3]=Na;for(var Fb=ta+28|0,ua=(Ca+68|0)>>2,Oa="
  "Fb>>2,Wa=ua+10;ua<Wa;ua++,Oa++){a[Oa]=a[ua]}for(var Db=ta+68|0,ua=(Ca+28|0)>>2,Oa=Db>"
  ">2,Wa=ua+10;ua<Wa;ua++,Oa++){a[Oa]=a[ua]}m[ta+124|0]=1;a[Ab+32]=Ca;lb=0;Ta=ta;cb=sb;f"
  "b=Na}}}while(0);var Ob=2==(j|0);if(Ob){var Eb=nO(Ta,a[le>>2],Ga);a[ya]=Eb;if(0==(Eb|0"
  ")){var Va=a[Ta+16>>2],Bb=a[Ta+12>>2];oa=2291}}els