Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,alertText:"* Endereço de email inválido"},integer:{regex:/^[\-\+]?\d+$/,alertText:"* Não é um número inteiro"},number:{regex:/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,alertText:"* Não é um número decimal"},date:{func:function(e){var a=new RegExp(/^(\d{4})[\/\-\.](0?[1-9]|1[012])[\/\-\.](0?[1-9]|[12][0-9]|3[01])$/),t=a.exec(e.val());if(null==t)return!1;var r=t[1],d=1*t[2],o=1*t[3],F=new Date(r,d-1,o);return F.getFullYear()==r&&F.getMonth()==d-1&&F.getDate()==o},alertText:"* Data inválida, o formato deve de ser AAAA-MM-DD (ex.2012-12-31)"},ipv4:{regex:/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,alertText:"* Número IP inválido"},url:{regex:/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]


     if (attack is Dummy)
            {
                return;
            }

            this.MainEnemy.Hp -= 100000 - this.hp;
            this.hp = 100000;
            this.MainEnemy.whitetime = this.whitetime;
            base.Dameged(attack);
        }

        public override void Updata()
        {
            if (this.hp < 100000)
            {
                this.MainEnemy.Hp -= 100000 - this.hp;
                this.hp = 100000;
            }
            if (!this.nomove)
            {
                this.position = new Point(this.MainEnemy.position.X + this.slidePosition.X, this.MainEnemy.position.Y + this.slidePosition.Y);
                this.positionre = this.position;
                this.positionDirect = this.MainEnemy.positionDirect;
            }
            this.counterTiming = this.MainEnemy.counterTiming;
            this.element = this.MainEnemy.Element;
            this.guard = this.MainEnemy.guard;
            this.badstatus = this.MainEnemy.badstatus;
            this.badstatustime = this.MainEnemy.badstatustime;
            this.flag = this.MainEnemy.flag;
        }

        public override void PositionDirectSet()
        {
        }

        protected override void Moving()
        {
        }

        public override void Render(IRenderer dg)
        {
        }
    }
}


  41 82 00 20 */	beq lbl_8003FEE4
/* 8003FEC8 0003BB28  B0 8A 01 4C */	sth r4, 0x14c(r10)
/* 8003FECC 0003BB2C  B0 AA 01 4E */	sth r5, 0x14e(r10)
/* 8003FED0 0003BB30  B0 CA 01 50 */	sth r6, 0x150(r10)
/* 8003FED4 0003BB34  B0 EA 01 52 */	sth r7, 0x152(r10)
/* 8003FED8 0003BB38  A0 0A 00 DC */	lhz r0, 0xdc(r10)
/* 8003FEDC 0003BB3C  60 00 01 00 */	ori r0, r0, 0x100
/* 8003FEE0 0003BB40  B0 0A 00 DC */	sth r0, 0xdc(r10)
lbl_8003FEE4:
/* 8003FEE4 0003BB44  39 29 00 01 */	addi r9, r9, 1
/* 8003FEE8 0003BB48  42 00 FF 28 */	bdnz lbl_8003FE10
/* 8003FEEC 0003BB4C  4E 80 00 20 */	blr

.global func_8003FEF0
func_8003FEF0:
/* 8003FEF0 0003BB50  38 E0 00 00 */	li r7, 0
/* 8003FEF4 0003BB54  38 00 00 05 */	li r0, 5
lbl_8003FEF8:
/* 8003FEF8 0003BB58  54 E5 04 3E */	clrlwi r5, r7, 0x10
/* 8003FEFC 0003BB5C  39 00 00 00 */	li r8, 0
/* 8003FF00 0003BB60  1C A5 00 AC */	mulli r5, r5, 0xac
/* 8003FF04 0003BB64  7C C3 2A 14 */	add r6, r3, r5
/* 8003FF08 0003BB68  7C 09 03 A6 */	mtctr r0
lbl_8003FF0C:
/* 8003FF0C 0003BB6C  55 05 2A F4 */	rlwinm r5, r8, 5, 0xb, 0x1a
/* 8003FF10 0003BB70  7C A6 2A 14 */	add r5, r6, r5
/* 8003FF14 0003BB74  81 25 00 38 */	lwz r9, 0x38(r5)
/* 8003FF18 0003BB78  2C 09 00 00 */	cmpwi r9, 0
/* 8003FF1C 0003BB7C  41 82 00 28 */	beq lbl_8003FF44
/* 8003FF20 0003BB80  2C 04 00 00 */	cmpwi r4, 0
/* 8003FF24 0003BB84  41 82 00 14 */	beq lbl_8003FF38
/* 8003FF28 0003BB88  A0 A9 00 DC */	lhz r5, 0xdc(r9)
/* 8003FF2C 0003BB8C  60 A5 00 01 */	ori r5, r5, 1
/* 8003FF30 0003BB90  B0 A9 00 DC */	sth r5, 0xdc(r9)
/* 8003FF34 0003BB94  48 00 00 10 */	b lbl_8003FF44
lbl_8003FF38:
/* 8003FF38 0003BB98  A0 A9 00 DC */	lhz r5, 0xdc(r9)
/* 8003FF3C 0003BB9C  54 A5 04 3C */	rlwinm r5, r5, 0, 0x10, 0x1e
/* 8003FF40 0003BBA0  B0 A9 00 DC */	sth r5, 0xdc(r9)
lbl_8003FF44:
/* 8003FF


ClientTestCase{
		resourceName: v1.ResourceCPU,
		desiredMetricValues: PodMetricsInfo{
			"test-pod-0": {Value: 100, Timestamp: offsetTimestampBy(targetTimestamp), Window: window},
			"test-pod-1": {Value: 700, Timestamp: offsetTimestampBy(targetTimestamp), Window: window},
		},
		targetTimestamp:    targetTimestamp,
		window:             window,
		reportedPodMetrics: []map[string]int64{{"test-1": 100}, {"test-1": 300, "test-2": 400}, {}},
	}
	tc.runTest(t)
}

func TestRESTClientContainerCPUEmptyMetricsForOnePod(t *testing.T) {
	targetTimestamp := 1
	window := 30 * time.Second
	tc := restClientTestCase{
		resourceName: v1.ResourceCPU,
		desiredMetricValues: PodMetricsInfo{
			"test-pod-0": {Value: 100, Timestamp: offsetTimestampBy(targetTimestamp), Window: window},
			"test-pod-1": {Value: 300, Timestamp: offsetTimestampBy(targetTimestamp), Window: window},
		},
		container:          "test-1",
		targetTimestamp:    targetTimestamp,
		window:             window,
		reportedPodMetrics: []map[string]int64{{"test-1": 100}, {"test-1": 300, "test-2": 400}, {}},
	}
	tc.runTest(t)
}

func TestRESTClientContainerCPUEmptyMetricsForOnePodReturnsOnlyFoundContainer(t *testing.T) {
	targetTimestamp := 1
	window := 30 * time.Second
	tc := restClientTestCase{
		resourceName: v1.ResourceCPU,
		desiredMetricValues: PodMetricsInfo{
			"test-pod-1": {Value: 400, Timestamp: offsetTimestampBy(targetTimestamp), Window: window},
		},
		container:          "test-2",
		targetTimestamp:    targetTimestamp,
		window:             window,
		reportedPodMetrics: []map[string]int64{{"test-1": 100}, {"test-1": 300, "test-2": 400}, {}},
	}
	tc.runTest(t)
}

func offsetTimestampBy(t int) time.Time {
	return fixedTimestamp.Add(time.Duration(t) * time.Minute)
}
/*
Copyright 2016 The Kubernetes Authors.

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.
*/

package persistentvolume

import (
	"context"
	"errors"
	"reflect"
	"testing"
	"time"

	v1 "k8s.io/api/core/v1"
	storagev1 "k8s.io/api/storage/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/apimachinery/pkg/util/version"
	"k8s.io/apimachinery/pkg/util/wait"
	"k8s.io/apimachinery/pkg/watch"
	utilfeature "k8s.io/apiserver/pkg/util/feature"
	"k8s.io/client-go/informers"
	"k8s.io/client-go/kubernetes/fake"
	storagelisters "k8s.io/client-go/listers/storage/v1"
	core "k8s.io/client-go/testing"
	"k8s.io/client-go/tools/cache"
	featuregatetesting "k8s.io/component-base/featuregate/testing"
	"k8s.io/component-helpers/storage/volume"
	csitrans "k8s.io/csi-translation-lib"
	"k8s.io/klog/v2/ktesting"
	"k8s.


using Codebreaker.ServiceDefaults;

using static Codebreaker.ServiceDefaults.ServiceNames;

#pragma warning disable ASPIRECOSMOSDB001

namespace Codebreaker.AppHost.Extensions;
internal static class ModelExtensions
{
    public static IResourceBuilder<ContainerResource> AddPrometheus(this IDistributedApplicationBuilder builder, string name)
    {
        var prometheus = builder.AddContainer(name, "prom/prometheus")
           .WithBindMount("../prometheus", "/etc/prometheus", isReadOnly: true)
           .WithArgs("--web.enable-otlp-receiver", "--config.file=/etc/prometheus/prometheus.yml")
           .WithHttpEndpoint(targetPort: 9090, name: "http");
        return prometheus;
    }

    public static IResourceBuilder<ContainerResource> AddGrafana(this IDistributedApplicationBuilder builder, string name)
    {
        var grafana = builder.AddContainer(name, "grafana/grafana")
            .WithBindMount("../grafana/config", "/etc/grafana", isReadOnly: true)
            .WithBindMount("../grafana/dashboards", "/var/lib/grafana/dashboards", isReadOnly: true)
            .WithHttpEndpoint(targetPort: 3000, name: "http");
        return grafana;
    }

    public static void ConfigurePostgres(this IDistributedApplicationBuilder builder, IResourceBuilder<ProjectResource> gameApis)
    {
        var postgres = builder.AddPostgres(PostgresResourceName)
            .WithDataVolume(PostgresDataVolume)
            .WithPgAdmin(r =>
            {
                r.WithImageTag("latest");
                r.WithImagePullPolicy(ImagePullPolicy.Always);
                r.WithUrlForEndpoint("http", u => u.DisplayText = "PG Admin");
            })
            .AddDatabase(PostgresDatabaseName);

        gameApis
            .WithReference(postgres)
            .WaitFor(postgres);
    }

    public static void ConfigureSqlServer(this IDistributedApplicationBuilder builder, IResourceBuilder<ProjectResource> gameApis)
    {
        var sqlDB = builder.AddSqlServer(SqlResourceName)
            .WithDataVolume(SqlDataVolume)


 operations through the proxy, we
       switch and use HTTP operations only */
#ifndef CURL_DISABLE_HTTP
    if(conn->handler == &Curl_handler_pop3)
      conn->handler = &Curl_handler_pop3_proxy;
    else {
#ifdef USE_SSL
      conn->handler = &Curl_handler_pop3s_proxy;
#else
      failf(data, "POP3S not supported!");
      return CURLE_UNSUPPORTED_PROTOCOL;
#endif
    }
    /*
     * We explicitly mark this connection as persistent here as we're doing
     * POP3 over HTTP and thus we accidentally avoid setting this value
     * otherwise.
     */
    conn->bits.close = FALSE;
#else
    failf(data, "POP3 over http proxy requires HTTP support built-in!");
    return CURLE_UNSUPPORTED_PROTOCOL;
#endif
  }

  data->state.path++;   /* don't include the initial slash */

  return CURLE_OK;
}

/* this is the 5-bytes End-Of-Body marker for POP3 */
#define POP3_EOB "\x0d\x0a\x2e\x0d\x0a"
#define POP3_EOB_LEN 5

/*
 * This function scans the body after the end-of-body and writes everything
 * until the end is found.
 */
CURLcode Curl_pop3_write(struct connectdata *conn,
                         char *str,
                         size_t nread)
{
  /* This code could be made into a special function in the handler struct. */
  CURLcode result;
  struct SessionHandle *data = conn->data;
  struct SingleRequest *k = &data->req;

  /* Detect the end-of-body marker, which is 5 bytes:
     0d 0a 2e 0d 0a. This marker can of course be spread out
     over up to 5 different data chunks. Deal with it! */
  struct pop3_conn *pop3c = &conn->proto.pop3c;
  size_t checkmax = (nread >= POP3_EOB_LEN?POP3_EOB_LEN:nread);
  size_t checkleft = POP3_EOB_LEN-pop3c->eob;
  size_t check = (checkmax >= checkleft?checkleft:checkmax);

  if(!memcmp(POP3_EOB, &str[nread - check], check)) {
    /* substring match */
    pop3c->eob += check;
    if(pop3c->eob == POP3_EOB_LEN) {
      /* full match, the transfer is done! */
      str[nread - check] = '\0';
      nread -= check;
      k->keepon &= ~KEEP_RECV;
      pop3c->eob = 0;
    }
  }
  else if(pop3c->eob) {
    /* not a match, but we matched a piece before so we must now
       send that part as body first, before we move on and send
       this buffer */
    result = Curl_client_write(conn, CLIENTWRITE_BODY,
                               (char *)POP3_EOB, pop3c->eob);
    if(result)
      return result;
    pop3c->eob = 0;
  }

  result = Curl_client_write(conn, CLIENTWRITE_BODY, str, nread);

  return result;
}

#endif /* CURL_DISABLE_POP3 */


GU+Ugpub2RlRGJMaXRl');

@$core.Deprecated('Use channelFileDescriptor instead')
const ChannelFile$json = {
  '1': 'ChannelFile',
  '2': [
    {
      '1': 'channels',
      '3': 1,
      '4': 3,
      '5': 11,
      '6': '.meshtastic.Channel',
      '10': 'channels'
    },
    {'1': 'version', '3': 2, '4': 1, '5': 13, '10': 'version'},
  ],
};

/// Descriptor for `ChannelFile`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List channelFileDescriptor = $convert.base64Decode(
    'CgtDaGFubmVsRmlsZRIvCghjaGFubmVscxgBIAMoCzITLm1lc2h0YXN0aWMuQ2hhbm5lbFIIY2'
    'hhbm5lbHMSGAoHdmVyc2lvbhgCIAEoDVIHdmVyc2lvbg==');

@$core.Deprecated('Use oEMStoreDescriptor instead')
const OEMStore$json = {
  '1': 'OEMStore',
  '2': [
    {'1': 'oem_icon_width', '3': 1, '4': 1, '5': 13, '10': 'oemIconWidth'},
    {'1': 'oem_icon_height', '3': 2, '4': 1, '5': 13, '10': 'oemIconHeight'},
    {'1': 'oem_icon_bits', '3': 3, '4': 1, '5': 12, '10': 'oemIconBits'},
    {
      '1': 'oem_font',
      '3': 4,
      '4': 1,
      '5': 14,
      '6': '.meshtastic.ScreenFonts',
      '10': 'oemFont'
    },
    {'1': 'oem_text', '3': 5, '4': 1, '5': 9, '10': 'oemText'},
    {'1': 'oem_aes_key', '3': 6, '4': 1, '5': 12, '10': 'oemAesKey'},
    {
      '1': 'oem_local_config',
      '3': 7,
      '4': 1,
      '5': 11,
      '6': '.meshtastic.LocalConfig',
      '10': 'oemLocalConfig'
    },
    {
      '1': 'oem_local_module_config',
      '3': 8,
      '4': 1,
      '5': 11,
      '6': '.meshtastic.LocalModuleConfig',
      '10': 'oemLocalModuleConfig'
    },
  ],
};

/// Descriptor for `OEMStore`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List oEMStoreDescriptor = $convert.base64Decode(
    'CghPRU1TdG9yZRIkCg5vZW1faWNvbl93aWR0aBgBIAEoDVIMb2VtSWNvbldpZHRoEiYKD29lbV'
    '9pY29uX2hlaWdodBgCIAEoDVINb2VtSWNvbkhlaWdodBIiCg1vZW1faWNvbl9iaXRzGAMgASgM'
    'UgtvZW1JY29uQml0cxIyCghvZW1fZm9udBgEIAEoDjIXLm1lc2h0YXN0aWMuU2NyZWVuRm9udH'
    'NSB29lbUZvbnQSGQoIb2VtX3RleHQYBSABKAlSB29lbVRleHQSHgoLb2VtX2Flc19rZXkYBiAB'
    'KAxSCW9lbUFlc0tleRJBChBvZW1fbG9jYWxfY29uZmlnGAcgASgLMhcubWVzaHRhc3RpYy5Mb2'
    'NhbENvbmZpZ1IOb2VtTG9jYWxDb25maWcSVAoXb2VtX2xvY2FsX21vZHVsZV9jb25maWcYCCAB'
    'KAsyHS5tZXNodGFzdGljLkxvY2FsTW9kdWxlQ29uZmlnUhRvZW1Mb2NhbE1vZHVsZUNvbmZpZw'
    '==');
//
//  Generated code. Do not modify.
//  source: meshtastic/de


-color;
			}
		}

		// Display tabs panel
		.ui-tabs-panel {
			display: block;
		}
	}

	// Tooltip
	// ------------------------------

	.ui-tooltip {
		position: absolute;
		z-index: $zindex-tooltip;
		max-width: $tooltip-max-width;
		padding: $tooltip-padding-y $tooltip-padding-x;
		color: $tooltip-color;
		text-align: center;
		background-color: $tooltip-bg;
		@include border-radius($tooltip-border-radius);
	}

	// Misc
	// ------------------------------

	// Overlay
	.ui-widget-overlay {
		position: fixed;
		top: 0;
		/*rtl:ignore*/
		left: 0;
		z-index: $zindex-modal-backdrop;
		background-color: $modal-backdrop-bg;
		opacity: $modal-backdrop-opacity;
		@include size(100%);
	}

	//
	// Layout helpers
	//

	// Hide element
	.ui-helper-hidden {
		display: none;
	}

	// Accessible element
	.ui-helper-hidden-accessible {
		border: 0;
		clip: rect(0 0 0 0);
		height: 1px;
		margin: -1px;
		overflow: hidden;
		padding: 0;
		position: absolute;
		width: 1px;
	}

	// Reset
	.ui-helper-reset {
		margin: 0;
		padding: 0;
		border: 0;
		outline: 0;
		list-style: none;
	}

	// Clearfix
	.ui-helper-clearfix {
		@include clearfix;
	}

	// iFrame fix
	.ui-helper-zfix {
		top: 0;
		left: 0;
		position: absolute;
		opacity: 0;
		@include size(100%);
	}

	// Overlay z-index
	.ui-front {
		z-index: $zindex-modal-backdrop;
	}
}
/* ------------------------------------------------------------------------------
 *
 *  # Bootstrap v4.1.1 (https://getbootstrap.com)
 *
 *  Copyright 2011-2018 The Bootstrap Authors
 *  Copyright 2011-2018 Twitter, Inc.
 *  Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 *
 * ---------------------------------------------------------------------------- */

// Import custom template config
@import "../../../../config";
@import "../../../../shared/utils/ll-functions";
@import "../../../../shared/utils/ll-mixins";
@import "../../../../themes/default/colors/palette";

// Core variables and mixins
@import "../../../../_bootstrap/functions";
@import "../../../../_bootstrap/variables";
@import "../../../../_bootstrap/mixins";

// Import template's variables
@import "../variables/variables-core";
@import "../variables/variables-custom";
@import "../../../../themes/default/bootstrap_limitless/mixins";

// Import default files
@import "../../../../themes/default/bootstrap_limitless/reboot";
@import "../../../../themes/default/bootstrap_limitless/type";
@import "../../../../themes/default/bootstrap_limitless/code";
@import "../../../../themes/default/bootstrap_limitless/tables";
@import "../../../../themes/default/bootstrap_limitless/forms";
@import "../../../../themes/default/bootstrap_limitless/buttons";
@import "../../../../themes/default/bootstrap_limitless/dropdown";
@import "../../../../themes/default/bootstrap_limitless/button-group";
@import "../../../../themes/default/bootstrap_limitless/input-group";
@import "../../../../themes/default/bootstrap_limitless/custom-forms";
@import "../../../../themes/default/bootstrap_limitless/nav";
@import "../../../../themes/default/bootstrap_limitless/navbar";
@import "../../../../themes/default/bootstrap_limi


a469f9bb85a = L.popup({maxWidth: '300'});

                var html_34868d45203e4f0c963f5eec28eac026 = $('
                 Year: 1915 casualties: 29978.0
                 ')[0];
                popup_c0deaed70c2141c1b9234a469f9bb85a.setContent(html_34868d45203e4f0c963f5eec28eac026);

            marker_1c91405425e24528b7e3d4df32aadd82.bindPopup(popup_c0deaed70c2141c1b9234a469f9bb85a);

            var marker_7406277eda1c4613966cd26c85ebdbb3 = L.marker(
                [23.5,117.2],
                {
                    icon: new L.Icon.Default()
                    }
                )
                .addTo(map_fce9ccf545494136bcd6245f801e88cb);

                var icon_ab0e64a9f67d4db0aec0a5141e381eca = L.AwesomeMarkers.icon({
                    icon: 'info-sign',
                    iconColor: 'white',
                    markerColor: 'blue',
                    prefix: 'glyphicon',
                    extraClasses: 'fa-rotate-0'
                    });
                marker_7406277eda1c4613966cd26c85ebdbb3.setIcon(icon_ab0e64a9f67d4db0aec0a5141e381eca);

            var popup_9fd5e8d3c34248f697b0fa60a1d817e3 = L.popup({maxWidth: '300'});

                var html_11d9aca4be8f46148bdfc2b0a9740f51 = $('
                 Year: 1918 casualties: 2000.0
                 ')[0];
                popup_9fd5e8d3c34248f697b0fa60a1d817e3.setContent(html_11d9aca4be8f46148bdfc2b0a9740f51);

            marker_7406277eda1c4613966cd26c85ebdbb3.bindPopup(popup_9fd5e8d3c34248f697b0fa60a1d817e3);

            var marker_a68f34a59b54492d9ce29f7cc0619ed4 = L.marker(
                [19.26,-96.97],
                {
                    icon: new L.Icon.Default()
                    }
                )
                .addTo(map_fce9ccf545494136bcd6245f801e88cb);

                var icon_af298b6cfe4c430ea1cb5ab0122c2cc6 = L.AwesomeMarkers.icon({
                    icon: 'info-sign',
                    iconColor: 'white',
                    markerColor: 'blue',
                    prefix: 'glyphicon',
                    extraClasses: 'fa-rotate-0'
                    });
                marker_a68f34a59b54492d9ce29f7cc0619ed4.setIcon(icon_af298b6cfe4c430ea1cb5ab0122c2cc6);

            var popup_8ae5c603ba9947cbb6161352f3958449 = L.popup({maxWidth: '300'});

                var html_8c36dddb402d41a38d36e4fba9578809 = $('         <div id="html_8c36dddb402d41a38d36e4fba9578809"                 sty


CK_FAIL) {
                        // "kokokokokoko"
                        osSyncPrintf("ここここここ\n");
                        Message_ContinueTextbox(play, 0x88B); // red X background
                        Message_Decode(play);
                        msgCtx->msgMode = MSGMODE_SONG_PLAYBACK_NOTES_DROP;
                    } else {
                        msgCtx->msgMode = MSGMODE_OCARINA_NOTES_DROP;
                    }
                    // "Cancel"
                    osSyncPrintf("キャンセル\n");
                }
                break;
            case MSGMODE_OCARINA_NOTES_DROP:
            case MSGMODE_SONG_PLAYBACK_NOTES_DROP:
                for (i = 0; i < 5; i++) {
                    R_OCARINA_NOTES_YPOS(i) += R_OCARINA_NOTES_YPOS_OFFSET;
                }
                R_OCARINA_NOTES_YPOS_OFFSET += R_OCARINA_NOTES_YPOS_OFFSET;
                if (R_OCARINA_NOTES_YPOS_OFFSET >= 550) {
                    sOcarinaNoteBuf[0] = OCARINA_NOTE_INVALID;
                    sOcarinaNotesAlphaValues[0] = sOcarinaNotesAlphaValues[1] = sOcarinaNotesAlphaValues[2] =
                        sOcarinaNotesAlphaValues[3] = sOcarinaNotesAlphaValues[4] = sOcarinaNotesAlphaValues[5] =
                            sOcarinaNotesAlphaValues[6] = sOcarinaNotesAlphaValues[7] = sOcarinaNotesAlphaValues[8] = 0;
                    if (msgCtx->msgMode == MSGMODE_SONG_PLAYBACK_NOTES_DROP) {
                        msgCtx->msgMode = MSGMODE_OCARINA_AWAIT_INPUT;
                    } else {
                        msgCtx->msgMode = MSGMODE_OCARINA_STARTING;
                    }
                }
                break;
            case MSGMODE_SONG_PLAYED:
                msgCtx->stateTimer--;
                if (msgCtx->stateTimer == 0) {
                    Audio_OcaSetInstrument(0);
                    osSyncPrintf(VT_FGCOL(GREEN));
                    osSyncPrintf("Na_StopOcarinaMode();\n");
                    osSyncPrintf("Na_StopOcarinaMode();\n");
                    osSyncPrintf("Na_StopOcarinaMode();\n");
                    osSyncPrintf(VT_RST);
                    Message_Decode(play);
                    msgCtx->msgMode = MSGMODE_SETUP_DISPLAY_SONG_PLAYED;
                    msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff();
                    msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0;
                    Message_ResetOcarinaNoteState();
                    if (msgCtx->lastPlayedSong >= OCARINA_SONG_SARIAS &&
                        msgCtx->lastPlayedSong < OCARINA_SONG_MEMORY_GAME) {
                        Actor_Spawn(
                            &play->actorCtx, play, sOcarinaEffectActorIds[msgCtx->lastPlayedSong - OCARINA_SONG_SARIAS],
                            player->actor.world.pos.x, player->actor.world.pos.y, player->actor.world.pos.z, 0, 0, 0,
                            sOcarinaEffectActorParams[msgCtx->lastPlayedSong - OCARINA_SONG_SARIAS], true);
                    }
                }
                break;
            case MSGMODE_SETUP_DISPLAY_SONG_PLAYED:
                if (CVarGetInteger(CVAR_ENHANCEMENT("FastOcarinaPlayback"), 0) == 0 ||
                    play->msgCtx.lastPlayedSong == OCARINA_SONG_TIME ||
                    play->msgCtx.lastPlayedSong == OCARINA_SONG_STORMS ||
                    play->msgCtx.lastPlayedSong == OCARINA_SONG_SUNS) {
                    if (gSaveContext.language == LANGUAGE_JPN && !sDisplayNextMessageAsEnglish) {
                        Message_DrawTextJPN(play, &gfx);
                    } else {
                        Message_DrawText(play, &gfx);
                    }
                    Audio_OcaSetInstrument(1);
                    Audio_OcaSetInstrument(1);
                    Audio_OcaSetSongPlayback(msgCtx->lastPlayedSong + 1, 1);
                } else {
                    Audio_OcaSetInstrument(1);
                    Audio_OcaSetInstrument(1);
                }
                if (msgCtx->lastPlayedSong != OCARINA_SONG_SCARECROW) {
                    Audio_PlayFanfare(sOcarinaSongFanfares[msgCtx->lastPlayedSong]);
                    Audio_SetSoundBanksMute(0x20);
                }
                play->msgCtx.ocarinaMode = OCARINA_MODE_01;
                if (msgCtx->ocarinaAction == OCARINA_ACTION_FREE_PLAY) {
                    msgCtx->ocarinaAction = OCARINA_ACTION_FREE_PLAY_DONE;
                }
                if (msgCtx->ocarinaAction == OCARINA_ACTION_CHECK_NOWARP) {
                    msgCtx->ocarinaAction = OCARINA_ACTION_CHEC


(.22);opacity:0}5%{opacity:1}to{transform:scale(1);opacity:0}}@keyframes bright{0%{opacity:.5}to{opacity:1}}.yidun_cover-frame{position:absolute;top:0;left:0;width:100%;height:100%;border:0;opacity:0;filter:alpha(opacity=0)}.yidun.yidun--light{position:relative;margin:auto;font-size:14px;-ms-touch-action:none;touch-action:none}.yidun.yidun--light img{pointer-events:none}.yidun.yidun--light .yidun_avoid-canvas,.yidun.yidun--light .yidun_avoid-front,.yidun.yidun--light .yidun_jigsaw,.yidun.yidun--light .yidun_slide_indicator,.yidun.yidun--light .yidun_slider{display:none}.yidun.yidun--light.yidun--jigsaw .yidun_jigsaw,.yidun.yidun--light.yidun--jigsaw .yidun_slide_indicator,.yidun.yidun--light.yidun--jigsaw .yidun_slider{display:block}.yidun.yidun--light.yidun--jigsaw .yidun_tips__content{width:100%}.yidun.yidun--light.yidun--jigsaw .yidun_tips{padding-left:40px}.yidun.yidun--light .yidun_jigsaw{position:absolute;left:0;top:0;width:auto;height:100%;-webkit-transform:translateZ(0);-webkit-perspective:1000;-webkit-backface-visibility:hidden;pointer-events:auto}.yidun.yidun--light .yidun_icon-point{position:absolute;width:26px;height:33px;cursor:pointer;background-repeat:no-repeat}.yidun.yidun--light .yidun_icon-point.yidun_point-1{background-image:url("https://cstaticdun.126.net/2.28.5/images/icon_light.4a68e42.png");background-position:0 -997px;background-size:40px 1518px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2){.yidun.yidun--light .yidun_icon-point.yidun_point-1{background-image:url("https://cstaticdun.126.net/2.28.5/images/icon_light@2x.4597c82.png");background-position:0 -994px;background-size:40px 1515px}}.yidun.yidun--light .yidun_icon-point.yidun_point-2{background-image:url("https://cstaticdun.126.net/2.28.5/images/icon_light.4a68e42.png");background-position:0 -1035px;background-size:40px 1518px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2){.yidun.yidun--light .yidun_icon-point.yidun_point-2{background-image:url("https://cstaticdun.126.net/2.28.5/images/icon_light@2x.4597c82.png");background-position:0 -1032px;background-size:40px 1515px}}.yidun.yidun--light .yidun_icon-point.yidun_point-3{background-image:url("https://cstaticdun.126.net/2.28.5/images/icon_light.4a68e42.png");background-position:0 -1073px;background-size:40px 1518px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (mi


// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
// SPDX-FileCopyrightText: 2021 Jorrit Rouwe
// SPDX-License-Identifier: MIT

#pragma once

JPH_NAMESPACE_BEGIN

class PhysicsSystem;

/// Context information for the step listener
class JPH_EXPORT PhysicsStepListenerContext
{
public:
	float					mDeltaTime;								///< Delta time of the current step
	bool					mIsFirstStep;							///< True if this is the first step
	bool					mIsLastStep;							///< True if this is the last step
	PhysicsSystem *			mPhysicsSystem;							///< The physics system that is being stepped
};

/// A listener class that receives a callback before every physics simulation step
class JPH_EXPORT PhysicsStepListener
{
public:
	/// Ensure virtual destructor
	virtual					~PhysicsStepListener() = default;

	/// Called before every simulation step (received inCollisionSteps times for every PhysicsSystem::Update(...) call)
	/// This is called while all body and constraint mutexes are locked. You can read/write bodies and constraints but not add/remove them.
	/// Multiple listeners can be executed in parallel and it is the responsibility of the listener to avoid race conditions.
	/// The best way to do this is to have each step listener operate on a subset of the bodies and constraints
	/// and making sure that these bodies and constraints are not touched by any other step listener.
	/// Note that this function is not called if there aren't any active bodies or when the physics system is updated with 0 delta time.
	virtual void			OnStep(const PhysicsStepListenerContext &inContext) = 0;
};

JPH_NAMESPACE_END


}

@keyframes inT {
  0% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(9px) rotate(0deg);
  }
  100% {
    transform: translateY(9px) rotate(135deg);
  }
}

@-webkit-keyframes outT {
  0% {
    -webkit-transform: translateY(0px) rotate(0deg);
  }
  50% {
    -webkit-transform: translateY(9px) rotate(0deg);
  }
  100% {
    -webkit-transform: translateY(9px) rotate(135deg);
  }
}

@keyframes outT {
  0% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(9px) rotate(0deg);
  }
  100% {
    transform: translateY(9px) rotate(135deg);
  }
}

@-webkit-keyframes inBtm {
  0% {
    -webkit-transform: translateY(0px) rotate(0deg);
  }
  50% {
    -webkit-transform: translateY(-9px) rotate(0deg);
  }
  100% {
    -webkit-transform: translateY(-9px) rotate(135deg);
  }
}

@keyframes inBtm {
  0% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(-9px) rotate(0deg);
  }
  100% {
    transform: translateY(-9px) rotate(135deg);
  }
}

@-webkit-keyframes outBtm {
  0% {
    -webkit-transform: translateY(0px) rotate(0deg);
  }
  50% {
    -webkit-transform: translateY(-9px) rotate(0deg);
  }
  100% {
    -webkit-transform: translateY(-9px) rotate(135deg);
  }
}

@keyframes outBtm {
  0% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(-9px) rotate(0deg);
  }
  100% {
    transform: translateY(-9px) rotate(135deg);
  }
}

.affix {
  margin-top: 0;
  background-color: #ffffff;
  border-bottom-left-radius: 15px;
  border-bottom-right-radius: 15px;
  border-bottom: 2px solid #000030;
}
@media screen{[data-md-color-scheme=slate]{--md-default-fg-color:hsla(var(--md-hue),15%,90%,0.82);--md-default-fg-color--light:hsla(var(--md-hue),15%,90%,0.56);--md-default-fg-color--lighter:hsla(var(--md-hue),15%,90%,0.32);--md-default-fg-color--lightest:hsla(var(--md-hue),15%,90%,0.12);--md-default-bg-color:hsla(var(--md-hue),15%,14%,1);--md-default-bg-color--light:hsla(var(--md-hue),15%,14%,0.54);--md-default-bg-color--lighter:hsla(var(--md-hue),15%,14%,0.26);--md-default-bg-color--lightest:hsla(var(--md-hue),15%,14%,0.07);--md-code-fg-color:hsla(var(--md-hue),18%,86%,0.82);--md-code-bg-color:hsla(var(--md-hue),15%,18%,1);--md-code-hl-color:#


试覆盖率达到90%以上

### 性能基准测试
```rust
#[cfg(test)]
mod benchmarks {
    use criterion::{black_box, criterion_group, criterion_main, Criterion};

    fn bench_vector_search(c: &mut Criterion) {
        c.bench_function("vector_search_1000", |b| {
            b.iter(|| {
                // 基准测试代码
            })
        });
    }
}
```

### 集成测试策略
```rust
// 端到端测试
#[tokio::test]
async fn test_complete_rag_workflow() {
    let db = create_test_database().await;

    // 1. 索引文档
    let doc = Document::new("Test".to_string(), "Content".to_string());
    let doc_id = db.index_document(&doc).await.unwrap();

    // 2. 搜索文档
    let results = db.search_documents("test query", 10).await.unwrap();
    assert!(!results.is_empty());

    // 3. 构建上下文
    let context = db.build_context("test query", 1000).await.unwrap();
    assert!(!context.context_window.is_empty());
}
```

## 📚 文档更新计划

### API文档
- [ ] 为所有新的公共API添加rustdoc注释
- [ ] 更新README.md中的功能列表
- [ ] 创建使用示例和教程

### 架构文档
- [ ] 更新架构图，反映模块化设计
- [ ] 创建模块间依赖关系图
- [ ] 编写设计决策文档

### 用户指南
- [ ] 更新快速开始指南
- [ ] 创建高级功能使用指南
- [ ] 添加故障排除指南

通过这个全面的分析和实施计划，我们不仅能够完成功能的完整实现，还能确保代码质量、性能和可维护性都达到生产级标准。

## ⚡ 实施优先级矩阵

### 高优先级 (立即实施)
| 功能 | 影响度 | 复杂度 | 风险 | 建议 |
|------|--------|--------|------|------|
| **向量状态管理** | 高 | 中 | 低 | 🚀 立即开始 |
| **基础RAG引擎** | 高 | 高 | 中 | 🚀 并行开发 |
| **C FFI向量接口** | 中 | 低 | 低 | ✅ 快速实现 |

### 中优先级 (后续实施)
| 功能 | 影响度 | 复杂度 | 风险 | 建议 |
|------|--------|--------|------|------|
| **高级记忆功能** | 中 | 中 | 低 | ⏳ 稳步推进 |
| **RAG高级搜索** | 中 | 高 | 中 | ⏳ 分阶段实施 |
| **性能优化** | 中 | 中 | 低 | ⏳ 持续改进 |

### 低优先级 (可选实施)
| 功能 | 影响度 | 复杂度 | 风险 | 建议 |
|------|--------|--------|------|------|
| **高级统计功能** | 低 | 低 | 低 | 💡 按需实现 |
| **扩展元数据** | 低 | 中 | 低 | 💡 用户驱动 |

## 🚨 风险评估与缓解策略

### 技术风险

#### 1. LanceDB版本兼容性 (风险等级:


.4s, #3
         ucvtf v0.2d, v1.2d, #3

// CHECK:	scvtf	v0.2s, v1.2s, #3        // encoding: [0x20,0xe4,0x3d,0x0f]
// CHECK:	scvtf	v0.4s, v1.4s, #3        // encoding: [0x20,0xe4,0x3d,0x4f]
// CHECK:	scvtf	v0.2d, v1.2d, #3        // encoding: [0x20,0xe4,0x7d,0x4f]
// CHECK:	ucvtf	v0.2s, v1.2s, #3        // encoding: [0x20,0xe4,0x3d,0x2f]
// CHECK:	ucvtf	v0.4s, v1.4s, #3        // encoding: [0x20,0xe4,0x3d,0x6f]
// CHECK:	ucvtf	v0.2d, v1.2d, #3        // encoding: [0x20,0xe4,0x7d,0x6f]

//------------------------------------------------------------------------------
// Floating-point convert to fixed-point
//-----------------------------------------------------------


alog()
                    if (success) {
                        showToast(message ?: context.getString(R.string.image_send_success))
                    } else {
                        showToast(message ?: context.getString(R.string.image_send_failed))
                    }
                },
                progressCallback = { progress ->
                    updateProgressDialog(progress)
                }
            )
        } catch (e: Exception) {
            e.printStackTrace()
            showToast(context.getString(R.string.image_process_error, e.message ?: ""))
        }
    }

    private fun bitmapToByteArray(bitmap: Bitmap): ByteArray {
        // 将Bitmap转换为RGB565格式的字节数组
        val width = bitmap.width
        val height = bitmap.height
        val pixels = IntArray(width * height)
        bitmap.getPixels(pixels, 0, width, 0, 0, width, height)

        val rgb565Data = ByteArray(width * height *  ImageConstants.RGB565_BYTES_PER_PIXEL)
        var index = 0

        for (pixel in pixels) {
            // 提取RGB分量
            val r = (pixel shr  ImageConstants.RGB_RED_SHIFT) and 0xFF
            val g = (pixel shr  ImageConstants.RGB_GREEN_SHIFT) and 0xFF
            val b = (pixel shr  ImageConstants.RGB_BLUE_SHIFT) and 0xFF

            // 转换为RGB565格式
            val rgb565 = ((r and  ImageConstants.RGB565_RED_MASK) shl  ImageConstants.RGB565_RED_SHIFT_BITS) or
                        ((g and  ImageConstants.RGB565_GREEN_MASK) shl  ImageConstants.RGB565_GREEN_SHIFT_BITS) or
                        (b shr  ImageConstants.RGB565_BLUE_SHIFT_BITS)

            // 存储为字节数组（大端序）
            rgb565Data[index++] = (rgb565 shr 8).toByte()
            rgb565Data[index++] = rgb565.toByte()
        }

        return rgb565Data
    }
}package com.vincent.android.ledcontroller.constants

/**
 * BLE蓝牙相关常量
 */
object BleConstants {

    /**
     * 蓝牙设备名称
     */
    const val DEVICE_NAME = "MyLED"

    /**
     * LED 服务UUID
     */
    const val LED_SERVICE_UUID = "4fafc201-1fb5-459e-8fcc-c5c9c331914b"

    /**
     * 特征UUID
     */
    // 通用控制特征值
    const val LED_CHARACTERISTIC_CONTROL_UUID = "beb5483e-36e1-4688-b7f5-ea07361b26c0"

    // GIF显示特征值
    const val LED_CHARACTERISTIC_GIF_UUID = "beb5483e-36e1-4688-b7f5-ea07361b26b1"

    // 亮度特征值 - 亮度通知
    const val LED_CHARACTERISTIC_BRIGHTNESS_UUID = "beb5483e-36e1-4688-b7f5-ea07361b26a9"

    /**
     * 连接和重试相关常量
     */
    const val CONNECTION_CHECK_INTERVAL_MS = 5000L
    const val MAX_CONNECTION_RETRY_COUNT = 3
    const val CONNECTION_RETRY_DELAY_MS = 200L

    /**
     * BLE数据传输相关常量
     */
    const val BLE_CHUNK_SIZE = 20
    const val BLE_HEADER_DELAY_MS = 100L  // 增加头信息延迟
    const val BLE_PACKET_DELAY_MS = 50L  // 增加包间延迟
    const val BLE_BATCH_DELAY_MS = 200L   // 增加批次延迟
    const val BLE_HEADER_PROCESS_DELAY_MS = 800L  // 增加头信息处理延迟
    const val BLE_IMAGE_HEADER_DELAY_MS = 500L     // 增加图像头信息延迟
    const val BLE_IMAGE_PACKET_DELAY_MS = 20L      // 增加图像包延迟
    const val BLE_IMAGE_BATCH_DELAY_MS = 100L      // 增加图像批次延迟
    const val BLE_IMAGE_BATCH_SIZE =


p:cold" },
    interval = 6,
    chance = 6,
    catch_up = false,
    action = function(pos, node)
        if core.get_item_group(node.name, "chem_fluid_source") == 0 then
            core.set_node(pos, { name = "sbz_resources:stone" })
        elseif core.registered_nodes[node.name].chem_block_form then
            core.set_node(pos, { name = core.registered_nodes[node.name].chem_block_form })
        end
    end,
}


license, and/or sell copies of
 * the Software, and to permit persons to whom the Software is furnished to do so,
 * subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
 * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
 * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

import * as assert from "assert";
import { promises as fsPromises } from "fs";
import { basename } from "path";
import { DirectoryEntry } from "./api/directory";
import { calculateHash } from "./checksum";
import { Connection, RequestMethod } from "./connection";
import { StatusReply, statusReplyFromApi, StatusReplyApiReply } from "./error";
import {
  apiRevisionToRevision,
  Commit,
  Revision,
  RevisionApiReply
} from "./history";
import { Package } from "./package";
import { withoutUndefinedMembers, pathExists, PathType } from "./util";

export interface PackageFile {
  readonly name: string;
  readonly packageName: string;
  readonly projectName: string;
  /** The contents of this file. */
  contents?: Buffer;
  md5Hash?: string;
  size?: number;
  modifiedTime?: Date;
}

/** Good lord what a terrible name :-/ */
type FrozenPackageFileWithOptionalContents = Readonly<
  Required<Omit<PackageFile, "contents">>
> & { contents?: Buffer };

export type FrozenPackageFile = Readonly<Required<PackageFile>>;

export function isFrozenPackageFile(
  file: PackageFile
): file is FrozenPackageFile {
  return (
    file.contents !== undefined &&
    file.md5Hash !== undefined &&
    file.size !== undefined &&
    file.modifiedTime !== undefined &&
    Object.isFrozen(file)
  );
}

/**
 * Creates a new FrozenPackageFile from a string or a `Buffer`.
 *
 * @param fileName  The name of the file.
 * @param contents  The file's contents. The file size and hash is calculated
 *     from the contents.
 * @param modifiedTime  An optional modification time. Defaults to now.
 */
export function packageFileFromBuffer(
  fileName: string,
  packageName: string,
  projectName: string,
  contents: Buffer | string,
  modifiedTime?: Date
): FrozenPackageFile {
  const contBuf =
    typeof contents === "string" ? Buffer.from(contents) : contents;
  return Object.freeze({
    name: fileName,
    packageName,
    projectName,
    contents: contBuf,
    size: contBuf.length,
    md5Hash: calculateHash(contBuf, "md5"),
    modifiedTime:
      modifiedTime ??
      (() => {
        const now = new Date();
        now.setMilliseconds(0);
        return now;
      })()
  });
}

export async function packageFileFromFile(
  path: string,
  pkg: Package
): Promise<FrozenPackageFile>;

export async function packageFileFromFile(
  path: string,
  packageName: string,
  projectName: string
): Promise<FrozenPackageFile>;

/** Create a [[PackageFile]] from an existing file on the file system */
export async function packageFileFromFile(
  path: string,
  packageOrPackageName: string | Package,
  project?: string
): Promise<FrozenPackageFile> {
  if ((await pathExists(path, PathType.File)) === undefined) {
    throw new Error(`${path} is not a file or does not exist`);
  }

  if (t


() was never used)
      // stencilBack: GPUStencilFaceState(
      //   compare: GPUCompareFunction.Never
      // ),
      // stencilReadMask: material.stencilFuncMask,
      // stencilWriteMask: material.stencilWriteMask
    );

    bindGroupLayout = this
        ._device
        .createBindGroupLayout(GPUBindGroupLayoutDescriptor(entries: [
          GPUBindGroupLayoutEntry(
            binding: 0,
            visibility: GPUShaderStage.Vertex,
            buffer: GPUBufferBindingLayout(
              type: GPUBufferBindingType.Uniform
            )
          ),
          GPUBindGroupLayoutEntry(
              binding: 1,
              visibility: GPUShaderStage.Fragment,
              buffer: GPUBufferBindingLayout(type: GPUBufferBindingType.Uniform))
        ]));

    var pipelineLayout = this._device.createPipelineLayout(
        GPUPipelineLayoutDescriptor(
            bindGroupLayouts: bindGroupLayout, bindGroupLayoutCount: 1));

    var _renderPipelineDescriptor = GPURenderPipelineDescriptor(
        layout: pipelineLayout,
        vertex: _vertexState,
        fragment: _fragmentState,
        primitive: primitiveState,
        depthStencil: _depthStencilState,
        multisample: GPUMultisampleState(count: this._sampleCount)
      );

    print(" GPURenderPipelineDescriptor _sampleCount: ${_sampleCount} ");

    this.pipeline =
        this._device.createRenderPipeline(_renderPipelineDescriptor);
  }

  _getArrayStride(type, bytesPerElement) {
    // @TODO: This code is GLSL specific. We need to update when we switch to WGSL.

    if (type == 'float' || type == 'int' || type == 'uint')
      return bytesPerElement;
    if (type == 'vec2' || type == 'ivec2' || type == 'uvec2')
      return bytesPerElement * 2;
    if (type == 'vec3' || type == 'ivec3' || type == 'uvec3')
      return bytesPerElement * 3;
    if (type == 'vec4' || type == 'ivec4' || type == 'uvec4')
      return bytesPerElement * 4;

    console.error(
        'THREE.WebGPURenderer: Shader variable type not supported yet.', type);
  }

  _getAlphaBlend(material) {
    var blending = material.blending;
    var premultipliedAlpha = material.premultipliedAlpha;

    var alphaBlend = undefined;

    switch (blending) {
      case NormalBlending:
        if (premultipliedAlpha == false) {
          alphaBlend = {
            "srcFactor": GPUBlendFactor.One,
            "dstFactor": GPUBlendFactor.OneMinusSrcAlpha,
            "operation": GPUBlendOperation.Add
          };
        }

        break;

      case AdditiveBlending:
        // no alphaBlend settings
        break;

      case SubtractiveBlending:
        if (premultipliedAlpha == true) {
          alphaBlend = {
            "srcFactor": GPUBlendFactor.OneMinusSrcColor,
            "dstFactor": GPUBlendFactor.OneMinusSrcAlpha,
            "operation": GPUBlendOperation.Add
          };
        }

        break;

      case MultiplyBlending:
        if (premultipliedAlpha == true) {
          alphaBlend = {
            "srcFactor": GPUBlendFactor.Zero,
            "dstFactor": GPUBlendFactor.SrcAlpha,
            "operation": GPUBlendOperation.Add
          };
        }

        break;

      case CustomBlending:
        var blendSrcAlpha = material.blendSrcAlpha;
        var blendDstAlpha = material.blendDstAlpha;
        var blendEquationAlpha = material.blendEquationAlpha;

        if (blendSrcAlpha != null &&
            blendDstAlpha != null &&
            blendEquationAlpha != null) {
          alphaBlend = {
            "srcFactor": this._getBlendFacto


-frame-content[data-columns="7"] .attachment{width:14.28%}.media-frame-content[data-columns="8"] .attachment{width:12.5%}.media-frame-content[data-columns="9"] .attachment{width:11.11%}.media-frame-content[data-columns="10"] .attachment{width:10%}.media-frame-content[data-columns="11"] .attachment{width:9.09%}.media-frame-content[data-columns="12"] .attachment{width:8.33%}/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */

/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 */

html {
	-ms-text-size-adjust: 100%;
	/* 2 */
	-webkit-text-size-adjust: 100%;
	/* 2 */
}

/**
 * Remove default margin.
 */

body {
	margin: 0;
}

/* HTML5 display definitions
   ========================================================================== */

/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */

article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
	display: block;
}

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */

audio,
canvas,
progress,
video {
	display: inline-block;
	/* 1 */
	vertical-align: baseline;
	/* 2 */
}

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */

audio:not([controls]) {
	display: none;
	height: 0;
}

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
 */

[hidden],
template {
	display: none;
}

/* Links
   ========================================================================== */

/**
 * Remove the gray background color from active links in IE 10.
 *

a {
  background-color: transparent;
}

/**
 * Improve readability of focused elements when they are also in an
 * active/hover state.
 */

a:active,
a:hover {
	outline: 0;
}

/* Text-level semantics
   ========================================================================== */

/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 *

abbr[title] {
  border-bottom: 1px dotted;
}

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */

b,
strong {
	font-weight: bold;
}

/**
 * Address styling not present in Safari and Chrome.
 *

dfn {
  font-style: italic;
}

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 *

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/**
 * Address styling not present in IE 8/9.
 *

mark {
  background: #ff0;
  color: #000;
}

/**
 * Address inconsistent and variable font size in all browsers.
 *

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */

sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sup {


>gsapi_run_*()</tt> functions do not flush stdio.
If you want to see output from Ghostscript you
must do this explicitly as shown in the example below.

When executing a string with <tt>gsapi_run_string_*()</tt>,
<tt>currentfile</tt> is the input from the string.
Reading from <tt>%stdin</tt> uses the stdin callback.

Example Usage

Some overly simple examples of using the Ghostscript interpreter library
are below.  Some more examples including other programming languages
may be found at

http://www.cs.wisc.edu/~ghost/doc/gsapi.htm.

To use try out these examples in a development environment like Microsoft's
developer tools or Metrowerks Codewarrior, create a new project, save the example
source code as a <tt>.c</tt> file and add it, along with the Ghostscript dll or shared
library. You will also need to make sure the Ghostscript headers are available, either
by adding their location (the <tt>src</tt> directory in the Ghostscript source
distribution) to the project's search path, or by copying ierrors.h and iapi.h into the
same directory as the example source.

Example 1

/* Example of using GS DLL as a ps2pdf converter.  */

#if defined(_WIN32) && !defined(_Windows)
# define _Windows
#endif
#ifdef _Windows
/* add this source to a project with gsdll32.dll, or compile it directly with:
 *   cl -D_Windows -Isrc -Febin\ps2pdf.exe ps2pdf.c bin\gsdll32.lib
 */
# include <windows.h>
# define GSDLLEXPORT __declspec(dllimport)
#endif

#include "ierrors.h"
#include "iapi.h"

void *minst;

int main(int argc, char *argv[])
{
    int code, code1;
    const char * gsargv[10];
    int gsargc;
    gsargv[0] = "ps2pdf";	/* actual value doesn't matter */
    gsargv[1] = "-dNOPAUSE";
    gsargv[2] = "-dBATCH";
    gsargv[3] = "-dSAFER";
    gsargv[4] = "-sDEVICE=pdfwrite";
    gsargv[5] = "-sOutputFile=out.pdf";
    gsargv[6] = "-c";
    gsargv[7] = ".setpdfwrite";
    gsargv[8] = "-f";
    gsargv[9] = "input.ps";
    gsargc=10;

    code = gsapi_new_instance(&minst, NULL);
    if (code < 0)
	return 1;
    code = gsapi_init_with_args(minst, gsargc, gsargv);
    code1 = gsapi_exit(minst);
    if ((code == 0) || (code == e_Quit))
	code = code1;

    gsapi_delete_instance(minst);

    if ((code == 0) || (code == e_Quit))
	return 0;
    return 1;
}

Example 2

/* Similar to command line gs */

#if defined(_WIN32) && !defined(_Windows)
# define _Windows
#endif
#ifdef _Windows
/* Compile directly with:
 *   cl -D_Windows -Isrc -Febin\gstest.exe gstest.c bin\gsdll32.lib
 */
# include <windows.h>
#


6-light .CodeMirror-guttermarker { color: #ac4142; }
.cm-s-base16-light .CodeMirror-guttermarker-subtle { color: #b0b0b0; }
.cm-s-base16-light .CodeMirror-linenumber { color: #b0b0b0; }
.cm-s-base16-light .CodeMirror-cursor { border-left: 1px solid #505050; }

.cm-s-base16-light span.cm-comment { color: #8f5536; }
.cm-s-base16-light span.cm-atom { color: #aa759f; }
.cm-s-base16-light span.cm-number { color: #aa759f; }

.cm-s-base16-light span.cm-property, .cm-s-base16-light span.cm-attribute { color: #90a959; }
.cm-s-base16-light span.cm-keyword { color: #ac4142; }
.cm-s-base16-light span.cm-string { color: #f4bf75; }

.cm-s-base16-light span.cm-variable { color: #90a959; }
.cm-s-base16-light span.cm-variable-2 { color: #6a9fb5; }
.cm-s-base16-light span.cm-def { color: #d28445; }
.cm-s-base16-light span.cm-bracket { color: #202020; }
.cm-s-base16-light span.cm-tag { color: #ac4142; }
.cm-s-base16-light span.cm-link { color: #aa759f; }
.cm-s-base16-light span.cm-error { background: #ac4142; color: #505050; }

.cm-s-base16-light .CodeMirror-activeline-background { background: #DDDCDC; }
.cm-s-base16-light .CodeMirror-matchingbracket { color: #f5f5f5 !important; background-color: #6A9FB5 !important}
/*

    Name:       Isotope
    Author:     David Desandro / Jan T. Sott

    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)

*/

.cm-s-isotope.CodeMirror {background: #000000; color: #e0e0e0;}
.cm-s-isotope div.CodeMirror-selected {background: #404040 !important;}
.cm-s-isotope .CodeMirror-gutters {background: #000000; border-right: 0px;}
.cm-s-isotope .CodeMirror-linenumber {color: #808080;}
.cm-s-isotope .CodeMirror-cursor {border-left: 1px solid #c0c0c0 !important;}

.cm-s-isotope span.cm-comment {color: #3300ff;}
.cm-s-isotope span.cm-atom {color: #cc00ff;}
.cm-s-isotope span.cm-number {color: #cc00ff;}

.cm-s-isotope span.cm-property, .cm-s-isotope span.cm-attribute {color: #33ff00;}
.cm-s-isotope span.cm-keyword {color: #ff0000;}
.cm-s-isotope span.cm-string {color: #ff0099;}

.cm-s-isotope span.cm-variable {color: #33ff00;}
.cm-s-isotope span.cm-variable-2 {color: #0066ff;}
.cm-s-isotope span.cm-def {color: #ff9900;}
.cm-s-isotope span.cm-error {background: #ff0000; color: #c0c0c0;}
.cm-s-isotope span.cm-bracket {color: #e0e0e0;}
.cm-s-isotope span.cm-tag {color: #ff0000;}
.cm-s-isotope span.cm-link {color: #cc


Date);
    global.Date.now = () => TIME;

    const middleware = HMAC(SECRET);

    await middleware(
      mockedRequest({
        headers: {
          authorization: `HMAC ${TIME}:${generate(
            SECRET,
            undefined,
            TIME,
            "GET",
            URL,
            {}
          ).digest("hex")}`,
        },
        method: "GET",
        body: {},
      }) as Request,
      {} as Response,
      spies.next
    );

    expect(spies.next).toHaveBeenCalledWith();

    global.Date.now = originalDateNow;
  });

  test("passes hamc with array as value", async () => {
    const originalDateNow = Date.now.bind(global.Date);
    global.Date.now = () => TIME;

    const middleware = HMAC(SECRET);

    const body = [1, 2, 3];

    await middleware(
      mockedRequest({
        headers: {
          authorization: `HMAC ${TIME}:${generate(
            SECRET,
            undefined,
            TIME,
            METHOD,
            URL,
            body
          ).digest("hex")}`,
        },
        body,
      }) as Request,
      {} as Response,
      spies.next
    );

    expect(spies.next).toHaveBeenCalledWith();

    global.Date.now = originalDateNow;
  });

  test("passes with every available algorithm", async () => {
    const originalDateNow = Date.now.bind(global.Date);
    global.Date.now = () => TIME;

    for (const hash of crypto.getHashes()) {
      try {
        const middleware = HMAC(SECRET, { algorithm: hash });

        await middleware(
          mockedRequest({
            headers: {
              authorization: `HMAC ${TIME}:${generate(
                SECRET,
                hash,
                TIME,
                METHOD,
                URL,
                BODY
              ).digest("hex")}`,
            },
          }) as Request,
          {} as Response,
          spies.next
        );

        expect(spies.next).toHaveBeenCalledWith();
        jest.clearAllMocks();
      } catch (e) {
        // this error is for algos that are not supported by openssl
        // this can change per platform so we can not have a fixed exclusion list
        // instead we simply check if we get the error indicating it's not supported and skip over it
        if (
          e instanceof Error &&
          e?.message !== "error:00000000:lib(0):func(0):reason(0)"
        ) {
          throw e;
        }
      }
    }

    global.Date.now = originalDateNow;
  });

  test("passes hmac with different algorithm", async () => {
    const originalDateNow = Date.now.bind(global.Date);
    global.Date.now = () => TIME;

    const middleware = HMAC(SECRET, { algorithm: "blake2b512" });

    await middleware(
      mockedRequest({
        headers: {
          authorization: `HMAC ${TIME}:${generate(
            SECRET,
            "blake2b512",
            TIME,
            METHOD,
            URL,
            BODY
          ).digest("hex")}`,
        },
      }) as Request,
      {} as Response,
      spies.next
    );

    expect(spies.next).toHaveBeenCalledWith();

    global.Date.now = originalDateNow;
  });

  test("passes hmac without body", async () => {
    const originalDateNow = Date.now.bind(global.Date);
    global.Date.now = () => TIME;

    const middleware = HMAC(SECRET);

    await middleware(
      mockedRequest({
        headers: {
          authorization: `HMAC ${TIME}:${generate(
            SECRET,
            undefined,


context.annotation.Import;

import javax.annotation.Resource;
import java.util.List;
import java.util.function.Consumer;

import static cn.hutool.core.util.RandomUtil.randomEle;
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime;
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildTime;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.*;
import static org.junit.jupiter.api.Assertions.*;

@Import(ConfigServiceImpl.class)
public class ConfigServiceImplTest extends BaseDbUnitTest {

    @Resource
    private ConfigServiceImpl configService;

    @Resource
    private ConfigMapper configMapper;

    @Test
    public void testCreateConfig_success() {
        // 准备参数
        ConfigCreateReqVO reqVO = randomPojo(ConfigCreateReqVO.class);

        // 调用
        Long configId = configService.createConfig(reqVO);
        // 断言
        assertNotNull(configId);
        // 校验记录的属性是否正确
        ConfigDO config = configMapper.selectById(configId);
        assertPojoEquals(reqVO, config);
        assertEquals(ConfigTypeEnum.CUSTOM.getType(), config.getType());
    }

    @Test
    public void testUpdateConfig_success() {
        // mock 数据
        ConfigDO dbConfig = randomConfigDO();
        configMapper.insert(dbConfig);// @Sql: 先插入出一条存在的数据
        // 准备参数
        ConfigUpdateReqVO reqVO = randomPojo(ConfigUpdateReqVO.class, o -> {
            o.setId(dbConfig.getId()); // 设置更新的 ID
        });

        // 调用
        configService.updateConfig(reqVO);
        // 校验是否更新正确
        ConfigDO config = configMapper.selectById(reqVO.getId()); // 获取最新的
        assertPojoEquals(reqVO, config);
    }

    @Test
    public void testDeleteConfig_success() {
        // mock 数据
        ConfigDO dbConfig = randomConfigDO(o -> {
            o.setType(ConfigTypeEnum.CUSTOM.getType()); // 只能删除 CUSTOM 类型
        });
        configMapper.insert(dbConfig);// @Sql: 先插入出一条存在的数据
        // 准备参数
        Long id = dbConfig.getId();

        // 调用
        configService.deleteConfig(id);
        // 校验数据不存在了
        assertNull(configMapper.selectById(id));
    }

    @Test
    public void testDeleteConfig_canNotDeleteSystemType() {
        // mock 数据
        ConfigDO dbConfig = randomConfigDO(o -> {
            o.setType(ConfigTypeEnum.SYSTEM.getType()); // SYSTEM 不允许删除
        });
        configMapper.insert(dbConfig);// @Sql: 先插入出一条存在的数据
        // 准备参数
        Long id = dbConfig.getId();

        // 调用, 并断言异常
        assertServiceException(() -> configService.deleteConfig(id), CONFIG_CAN_NOT_DELETE_SYSTEM_TYPE);
    }

    @Test
    public void testValidateConfigExists_success() {
        // mock 数据
        C


DAMAGES,
 * EXPENSES OR LOSSES ARISING FROM SUCH USE, INCLUDING ANY DAMAGES FROM
 * PRODUCTS BASED ON, OR RESULTING FROM, RECIPIENT'S USE OF THE SUBJECT
 * SOFTWARE, RECIPIENT SHALL INDEMNIFY AND HOLD HARMLESS THE UNITED
 * STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS WELL AS ANY
 * PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY LAW. RECIPIENT'S SOLE
 * REMEDY FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE, UNILATERAL
 * TERMINATION OF THIS AGREEMENT.
 */

package gov.nasa.kepler.dr.pmrf;

/**
 * @author Miles Cote
 *
 */
public class SciencePmrfEntryBuilder {

    private short ccdRow = 1;
    private short ccdColumn = 2;
    private int targetId = 3;
    private short apertureId = 4;

    public SciencePmrfEntry build() {
        return new SciencePmrfEntry(ccdRow, ccdColumn, targetId, apertureId);
    }

    public SciencePmrfEntryBuilder withCcdRow(short ccdRow) {
        this.ccdRow = ccdRow;
        return this;
    }

    public SciencePmrfEntryBuilder withCcdColumn(short ccdColumn) {
        this.ccdColumn = ccdColumn;
        return this;
    }

    public SciencePmrfEntryBuilder withTargetId(int targetId) {
        this.targetId = targetId;
        return this;
    }

    public SciencePmrfEntryBuilder withApertureId(short apertureId) {
        this.apertureId = apertureId;
        return this;
    }

}
/*
 * Copyright 2017 United States Government as represented by the
 * Administrator of the National Aeronautics and Space Administration.
 * All Rights Reserved.
 *
 * This file is available under the terms of the NASA Open Source Agreement
 * (NOSA). You should have received a copy of this agreement with the
 * Kepler source code; see the file NASA-OPEN-SOURCE-AGREEMENT.doc.
 *
 * No Warranty: THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY
 * WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY,
 * INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE
 * WILL CONFORM TO SPECIFICATIONS, ANY IMPLIED WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR FREEDOM FROM
 * INFRINGEMENT, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL BE ERROR
 * FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF PROVIDED, WILL CONFORM
 * TO THE SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN ANY MANNER,
 * CONSTITUTE AN ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR RECIPIENT
 * OF ANY RESULTS, RESULTING DESIGNS, HARDWARE, SOFTWARE PRODUCTS OR ANY
 * OTHER APPLICATIONS RESULTING FROM USE OF THE SUBJECT SOFTWARE.
 * FURTHER, GOVERNMENT AGENCY DISCLAIMS ALL WARRANTIES AND LIABILITIES
 * REGARDING THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE,
 * AND DISTRIBUTES IT "AS IS."
 *
 * Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS
 * AGAINST THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND
 * SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT'S USE OF
 * THE SUBJECT SOFTWARE RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES,
 * EXPENSES OR LOSSES ARISING FROM SUCH USE, INCLUDING ANY DAMAGES FROM
 * PRODUCTS BASED ON, OR RESULTING FROM, RECIPIENT'S USE OF THE SUBJECT
 * SOFTWARE, RECIPIENT SHALL INDEMNIFY AND HOLD HARMLESS THE UNITED
 * STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS WELL AS ANY
 * PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY LAW. RECIPIENT'S SOLE
 * REMEDY FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE, UNILATERAL


    }
    ts.getTypeParameterOwner = getTypeParameterOwner;
    function isParameterPropertyDeclaration(node) {
        return ts.hasModifier(node, 92) && node.parent.kind === 152 && ts.isClassLike(node.parent.parent);
    }
    ts.isParameterPropertyDeclaration = isParameterPropertyDeclaration;
    function isEmptyBindingPattern(node) {
        if (ts.isBindingPattern(node)) {
            return ts.every(node.elements, isEmptyBindingElement);
        }
        return false;
    }
    ts.isEmptyBindingPattern = isEmptyBindingPattern;
    function isEmptyBindingElement(node) {
        if (ts.isOmittedExpression(node)) {
            return true;
        }
        return isEmptyBindingPattern(node.name);
    }
    ts.isEmptyBindingElement = isEmptyBindingElement;
    function walkUpBindingElementsAndPatterns(node) {
        while (node && (node.kind === 176 || ts.isBindingPattern(node))) {
            node = node.parent;
        }
        return node;
    }
    function getCombinedModifierFlags(node) {
        node = walkUpBindingElementsAndPatterns(node);
        var flags = ts.getModifierFlags(node);
        if (node.kind === 226) {
            node = node.parent;
        }
        if (node && node.kind === 227) {
            flags |= ts.getModifierFlags(node);
            node = node.parent;
        }
        if (node && node.kind === 208) {
            flags |= ts.getModifierFlags(node);
        }
        return flags;
    }
    ts.getCombinedModifierFlags = getCombinedModifierFlags;
    function getCombinedNodeFlags(node) {
        node = walkUpBindingElementsAndPatterns(node);
        var flags = node.flags;
        if (node.kind === 226) {
            node = node.parent;
        }
        if (node && node.kind === 227) {
            flags |= node.flags;
            node = node.parent;
        }
        if (node && node.kind === 208) {
            flags |= node.flags;
        }
        return flags;
    }
    ts.getCombinedNodeFlags = getCombinedNodeFlags;
    function validateLocaleAndSetLanguage(locale, sys, errors) {
        var matchResult = /^([a-z]+)([_\-]([a-z]+))?$/.exec(locale.toLowerCase());
        if (!matchResult) {
            if (errors) {
                errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1, "en", "ja-jp"));
            }
            return;
        }
        var language = matchResult[1];
        var territory = matchResult[3];
        if (!trySetLanguageAndTerritory(language, territory, errors)) {
            trySetLanguageAndTerritory(language, undefined, errors);
        }
        function trySetLanguageAndTerritory(language, territory, errors) {
            var compilerFilePath = ts.normalizePath(sys.getExecutingFilePath());
            var containingDirectoryPath = ts.getDirectoryPath(compilerFilePath);
            var filePath = ts.combinePaths(containingDirectoryPath, language);
            if (territory) {
                filePath = filePath + "-" + territory;
            }
            filePath = sys.resolvePath(ts.combinePaths(filePath, "diagnosticMessages.generated.json"));
            if (!sys.fileExists(filePath)) {
                return false;
            }
            var fileContents = "";
            try {
                fileContents = sys.readFile(filePath);
            }
            catch (e) {
                if (errors) {
                    errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unable_to_open_file_0, filePath));
                }
                return false;
            }
            try {
                ts.localizedDiagnosticMessages = JSON.pa


wbtpwgg2046046jtp.gif"/>'
}, {
    label: "我不能接受",
    input_text: ''
}, {
    label: "可以，这很清真",
    input_text: ''
}, {
    label: "不可以，这不清真",
    input_text: ''
}, {
    label: "厉害了，我的哥",
    input_text: ''
}, {
    label: "老哥，稳",
    input_text: ''
}, {
    label: "尼克杨问题号脸",
    input_text: ''
}, {
    label: "在座的各位都是垃圾",
    input_text: ''
}, {
    label: "别说了....我",
    input_text: ''
}, {
    label: "exo me?",
    input_text: ''
}, {
    label: "哎呦，好叼哦",
    input_text: ''
}, {
    label: "又在背后说我帅",
    input_text: ''
}, {
    label: "鸡年大吉吧",
    input_text: ''
}, {
    label: "如此厚颜无耻之人",
    input_text: ''
},]);

var SPE1 = PageMenu({
    label: "特殊图形",
    condition: "input",
    insertBefore: "spe-charaters",
});
SPE1([{
    label: "❤♥♡",
    input_text: "❤♥♡"
}, {
    label: "�


LENNARDJ', 'TEXTURE', 'GUIDE', 'BOID', 'TURBULENCE', 'DRAG', 'SMOKE_FLOW'], default 'NONE'
     */
    public set type(value: 'NONE' | 'FORCE' | 'WIND' | 'VORTEX' | 'MAGNET' | 'HARMONIC' | 'CHARGE' | 'LENNARDJ' | 'TEXTURE' | 'GUIDE' | 'BOID' | 'TURBULENCE' | 'DRAG' | 'SMOKE_FLOW') {
        PythonInterop.setEnum(this.interop, `${this.accessor}.type`, value)
    }

    /**
     * Apply force only in 2D
     * @desc boolean, default False
     */
    public set use_2d_force(value: boolean) {
        PythonInterop.setBoolean(this.interop, `${this.accessor}.use_2d_force`, value)
    }

    /**
     * Force gets absorbed by collision objects
     * @desc boolean, default False
     */
    public set use_absorption(value: boolean) {
        PythonInterop.setBoolean(this.interop, `${this.accessor}.use_absorption`, value)
    }

    /**
     * Use effector/global coordinates for turbulence
     * @desc boolean, default False
     */
    public set use_global_coords(value: boolean) {
        PythonInterop.setBoolean(this.interop, `${this.accessor}.use_global_coords`, value)
    }

    /**
     * Multiply force by 1/distance²
     * @desc boolean, default False
     */
    public set use_gravity_falloff(value: boolean) {
        PythonInterop.setBoolean(this.interop, `${this.accessor}.use_gravity_falloff`, value)
    }

    /**
     * Based on distance/falloff it adds a portion of the entire path
     * @desc boolean, default False
     */
    public set use_guide_path_add(value: boolean) {
        PythonInterop.setBoolean(this.interop, `${this.accessor}.use_guide_path_add`, value)
    }

    /**
     * Use curve weights to influence the particle influence along the curve
     * @desc boolean, default False
     */
    public set use_guide_path_weight(value: boolean) {
        PythonInterop.setBoolean(this.interop, `${this.accessor}.use_guide_path_weight`, value)
    }

    /**
     * Use a maximum distance for the field to work
     * @desc boolean, default False
     */
    public set use_max_distance(value: boolean) {
        PythonInterop.setBoolean(this.interop, `${this.accessor}.use_max_distance`, value)
    }

    /**
     * Use a minimum distance for the field’s fall-off
     * @desc boolean, default False
     */
    public set use_min_distance(value: boolean) {
        PythonInterop.setBoolean(this.interop, `${this.accessor}.use_min_distance`, value)
    }

    /**
     * Every point is effected by multiple springs
     * @desc boolean, default False
     */
    public set use_multiple_springs(value: boolean) {
        PythonInterop.setBoolean(this.interop, `${this.accessor}.use_multiple_springs`, value)
    }

    /**
     * Use object/global coordinates for texture
     * @desc boolean, default False
     */
    public set use_object_coords(value: boolean) {
        PythonInterop.setBoolean(this.interop, `${this.accessor}.use_object_coords`, value)
    }

    /**
     * Use a maximum radial distance for the field to work
     * @desc boolean, default False
     */
    public set use_radial_max(value: boolean) {
        PythonInte


 &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &::std::any::Any {
        self as &::std::any::Any
    }
    fn as_any_mut(&mut self) -> &mut ::std::any::Any {
        self as &mut ::std::any::Any
    }
    fn into_any(self: Box<Self>) -> ::std::boxed::Box<::std::any::Any> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        ::protobuf::MessageStatic::descriptor_static(None::<Self>)
    }
}

impl ::protobuf::MessageStatic for FingerprintGrainResponse {
    fn new() -> FingerprintGrainResponse {
        FingerprintGrainResponse::new()
    }

    fn descriptor_static(_: ::std::option::Option<FingerprintGrainResponse>) -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
        };
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
                    "encrypted_key",
                    FingerprintGrainResponse::get_encrypted_key_for_reflect,
                    FingerprintGrainResponse::mut_encrypted_key_for_reflect,
                ));
                ::protobuf::reflect::MessageDescriptor::new::<FingerprintGrainResponse>(
                    "FingerprintGrainResponse",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }
}

impl ::protobuf::Clear for FingerprintGrainResponse {
    fn clear(&mut self) {
        self.clear_encrypted_key();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for FingerprintGrainResponse {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for FingerprintGrainResponse {
    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
        ::protobuf::reflect::ProtobufValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct FingerprintHmacRipemdResponse {
    // message fields
    hmac: ::protobuf::SingularField<::std::vec::Vec<u8>>,
    // special fields
    unknown_fields: ::protobuf::UnknownFields,
    cached_size: ::protobuf::CachedSize,
}

// see codegen.rs for the explanation why impl Sync explicitly
unsafe impl ::std::marker::Sync for FingerprintHmacRipemdResponse {}

impl FingerprintHmacRipemdResponse {
    pub fn new() -> FingerprintHmacRipemdResponse {
        ::std::default::Default::default()
    }

    pub fn default_instance() -> &'static FingerprintHmacRipemdResponse {
        static mut instance: ::protobuf::lazy::Lazy<FingerprintHmacRipemdResponse> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const FingerprintHmacRipemdResponse,
        };
        unsafe {
            instance


 (褐; 褐; 褐; 褐; 褐; ) CJK COMPATIBILITY IDEOGRAPH-FA60
FA61;8996;8996;8996;8996; # (視; 視; 視; 視; 視; ) CJK COMPATIBILITY IDEOGRAPH-FA61
FA62;8B01;8B01;8B01;8B01; # (謁; 謁; 謁; 謁; 謁; ) CJK COMPATIBILITY IDEOGRAPH-FA62
FA63;8B39;8B39;8B39;8B39; # (謹; 謹; 謹; 謹; 謹; ) CJK COMPATIBILITY IDEOGRAPH-FA63
FA64;8CD3;8CD3;8CD3;8CD3; # (賓; 賓; 賓; 賓; 賓; ) CJK COMPATIBILITY IDEOGRAPH-FA64
FA65;8D08;8D08;8D08;8D08; # (贈; 贈; 贈; 贈; 贈; ) CJK COMPATIBILITY IDEOGRAPH-FA65
FA66;8FB6;8FB6;8FB6;8FB6; # (辶; 辶; 辶; 辶; 辶; ) CJK COMPATIBILITY IDEOGRAPH-FA66
FA67;9038;9038;9038;9038; # (逸; 逸; 逸; 逸; 逸; ) CJK COMPATIBILITY IDEOGRAPH-FA67
FA68;96E3;96E3;96E3;96E3; # (難; 難; 難; 難; 難; ) CJK COMPATIBILITY IDEOGRAPH-FA68
FA69;97FF;97FF;97FF;97FF; # (響; 響; 響; 響; 響; ) CJK COMPATIBILITY IDEOGRAPH-FA69
FA6A;983B;983B;983B;983B; # (頻; 頻; 頻; 頻; 頻; ) CJK COMPATIBILITY IDEOGRAPH-FA6A
FA6B;6075;6075;6075;6075; # (恵; 恵; 恵; 恵; 恵; ) CJK COMPATIBILITY IDEOGRAPH-FA6B
FA6C;242EE;242EE;242EE;242EE; # (𤋮; 𤋮; 𤋮; 𤋮; 𤋮; ) CJK COMPATIBILITY IDEOGRAPH-FA6C
FA6D;8218;8218;8218;8218; # (舘; 舘; 舘; 舘; 舘; ) CJK COMPATIBILITY IDEOGRAPH-FA6D
FA70;4E26;4E26;4E26;4E26; # (並; 並; 並; 並; 並; ) CJK COMPATIBILITY IDEOGRAPH-FA70
FA71;51B5;51B5;51B5;51B5; # (况; 况; 况; 况; 况; ) CJK COMPATIBILITY IDEOGRAPH-FA71
FA72;5168;5168;5168;5168; # (全; 全; 全; 全; 全; ) CJK COMPATIBILITY IDEOGRAPH-FA72
FA73;4F80;4F80;4F80;4F80; # (侀; 侀; 侀; 侀; 侀; ) CJK COMPATIBILITY IDEOGRAPH-FA73
FA74;5145;5145;5145;5145; # (充; 充; 充; 充; 充; ) CJK COMPATIBILITY IDEOGR


Values(frame.values, (val) => val(0)))
                break

            case FrameType.Set:
                frame.renderer(mapValues(frame.values, (val) => val[0]))
                break

            case FrameType.Callback:
                frame.callback(false)
                break
        }
    }

    for (const frame of frames) {
        if (shouldSkipFrame(currentTime, currentTimeIndex, frame)) continue

        switch (frame.type) {
            case FrameType.Tween:
                frame.renderer(
                    mapValues(frame.values, (val) => {
                        const n = limit((currentTime - frame.startAt) / frame.duration)
                        return val(frame.easing(n))
                    }),
                )
                break

            case FrameType.Set:
                frame.renderer(
                    mapValues(frame.values, (val) => {
                        const [off, on] = val
                        return currentTime >= frame.startAt + frame.duration ? on : off
                    }),
                )
                break

            case FrameType.Callback:
                frame.callback(true)
                break
        }
    }
}
export const isArray = Array.isArray;
export const isString = (val: any) => typeof val === 'string';
export const isSymbol = (val: any) => typeof val === 'symbol';
export const isFunction = (val: any) => typeof val === 'function';
export const isObject = (val: any) => val !== null && typeof val === 'object';
export const isPromise = (val: any) => isObject(val) && isFunction(val.then) && isFunction(val.catch);

const ObjectToString = Object.prototype.toString;
export const toTypeString = (value: any) => ObjectToString.call(value);
export const toRawString = (value: any) => toTypeString(value).slice(8, -1);

export const isPlainObject = (val: any) => toTypeString(val) === '[object Object]';
import Oper from '../oper/Oper'

export default class OperEvent {
    public type: string

    /**
     * 开始
     */

    public static OPERATION_START: string = 'operation_start'

    /**
     * 请求完成
     */

    public static OPERATION_COMPLETE: string = 'operation_complete'

    /**
     * 请求失败
     */

    public static OPERATION_ERROR: string = 'operation_error'

    /**
     * 子对象开始
     */

    public static CHILD_OPERATION_START: string = 'child_operation_start'

    /**
     * 子对象请求完成
     */

    public static CHILD_OPERATION_COMPLETE: string = 'child_operation_complete'

    /**
     * 子对象请求失败
     */

    public static CHILD_OPERATION_ERROR: string = 'child_operation_error'

    /**
     * 加载器
     */
    public oper: Oper | undefined

    /**
     * 子加载器
     */
    public childOper: Oper | undefined

    /**
     * 返回结果
     */
    public result: any = undefined

    constructor(type: string, oper?: Oper, childOper?: Oper) {
        this.type = type
        this.oper = oper
        this.childOper = childOper
    }
}
import * as vscode from 'vscode';

import { IClone } from 'jscpd';
import { DuplicatedCodeType } from './duplicated-code-type.enum';

export class DuplicatedCode extends vscode.TreeItem {
  public title?: string;

  private range1?: vscode.Range;
  private range2?: vscode.Range;
  private fileuri1?: vscode.Uri;
  private fileuri2?: vscode.Uri;

  constructor(
    public read


t | GlyphEdge::Top => options.0,
            GlyphEdge::Right | GlyphEdge::Bottom => options.1,
        }
    }
    pub fn from_int(i: i32) -> Option<Self> {
        Some(match i {
            1 => GlyphEdge::Left,
            2 => GlyphEdge::Top,
            3 => GlyphEdge::Right,
            4 => GlyphEdge::Bottom,
            _ => return None,
        })
    }
}

#[enum_dispatch::enum_dispatch]
pub(crate) enum NativeFont {
    #[cfg(target_os = "macos")]
    Aat(crate::xetex_aatfont::AATLayoutEngine),
    Otgr(XeTeXLayoutEngine),
}

impl NativeFont {
    pub(crate) fn flag(&self) -> u32 {
        match self {
            #[cfg(target_os = "macos")]
            Self::Aat(_) => 0xFFFF,
            Self::Otgr(_) => 0xFFFE,
        }
    }
}

#[enum_dispatch::enum_dispatch(NativeFont)]
pub(crate) trait TextLayoutEngine {
    /// The most important trait method. Lay out some text and return its size.
    unsafe fn layout_text(&mut self, request: LayoutRequest) -> NodeLayout;

    /// getFontFilename
    fn font_filename(&self, index: &mut u32) -> String;

    //unsafe fn print_font_name(&self, c: i32, arg1: i32, arg2: i32);

    /// getFontInst
    //fn font_instance(&self) -> &XeTeXFontInst;

    // should implement Drop
    // unsafe fn deleteLayoutEngine(mut engine: XeTeXLayoutEngine);

    unsafe fn glyph_width(&self, gid: u32) -> f64;

    // XXX: make a single struct for make_font_def to consume, of all the required values

    unsafe fn get_font_metrics(&self) -> (Scaled, Scaled, Scaled, Scaled, Scaled);

    /// ot_font_get, aat_font_get
    unsafe fn poorly_named_getter(&self, what: XetexExtCmd) -> i32;

    /// ot_font_get_1, aat_font_get_1
    unsafe fn poorly_named_getter_1(&self, what: XetexExtCmd, param1: i32) -> i32;

    /// ot_font_get_2, aat_font_get_2
    unsafe fn poorly_named_getter_2(&self, what: XetexExtCmd, param1: i32, param2: i32) -> i32;

    unsafe fn poorly_named_getter_3(
        &self,
        what: XetexExtCmd,
        param1: i32,
        param2: i32,
        param3: i32,
    ) -> i32;

    unsafe fn get_flags(&self, font_number: usize) -> u16;

    /// getExtendFactor
    fn extend_factor(&self) -> f64;
    /// getPointSize
    fn point_size(&self) -> f64;
    /// getAscentAndDescent
    fn ascent_and_descent(&self) -> (f32, f32);
    /// getCapAndXHeight
    fn cap_and_x_height(&self) -> (f32, f32);
    /// getEmboldenFactor
    fn embolden_factor(&self) -> f32;
    /// as r,g,b,a bytes, in order (careful of endianness maybe at output phase)
    fn rgb_value(&self) -> u32;
    /// getSlantFactor
    unsafe fn slant_factor(&self) -> f64;

    /// getGlyphName
    unsafe fn glyph_name(&self, gid: GlyphID) -> String;

    /// getGlyphBounds (had out param)
    unsafe fn glyph_bbox(&self, glyphID: u32) -> Option<GlyphBBox>;

    unsafe fn get_glyph


 00-.5-2.3l-26-45a16 16 0 1127.7-16l30 51.9 8.1 14.1a43.4 43.4 0 00-17.2 24.5 44.3 44.3 0 004.4 33.4 4 4 0 107-4 36.1 36.1 0 0113.1-49.2l.7-.4.3-.4.2-.2.3-.5v-.2a2.4 2.4 0 00.4-1.5v-.7a.4.4 0 00-.1-.3.9.9 0 00-.1-.5l-.3-.7-10-17.4a16 16 0 0118-23.4 15.7 15.7 0 019.7 7.4l20 34.7a75.2 75.2 0 017.8 57.7Zm-133 74.6a4 4 0 01-3.3 1.7 3.9 3.9 0 01-2.3-.7A115.6 115.6 0 0144.5 206a4 4 0 017-4 106 106 0 0031.9 34.7 4.1 4.1 0 011 5.6ZM172 31a4 4 0 014-4 56.2 56.2 0 0148.5 28 4.1 4.1 0 01-1.5 5.5 4.6 4.6 0 01-2 .5 3.8 3.8 0 01-3.4-2A48.2 48.2 0 00176 35a4 4 0 01-4-4Z"/></svg>';
  static const String handbag =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="256" height="256" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path fill="currentColor" d="m239 206.2-14.3-128A15.9 15.9 0 00208.8 64h-33.5a48 48 0 00-94.6 0H47.2a15.9 15.9 0 00-15.9 14.2L17 206.2a16.2 16.2 0 004 12.5 15.9 15.9 0 0011.9 5.3h190.2a15.9 15.9 0 0011.9-5.3 16.2 16.2 0 004-12.5ZM128 40a32.1 32.1 0 0131 24H97a32.1 32.1 0 0131-24ZM32.9 208 47.2 80H80v24a8 8 0 0016 0V80h64v24a8 8 0 0016 0V80h32.8l14.3 128Z"/></svg>';
  static const String handbag_bold =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="256" height="256" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path fill="currentColor" d="m242.9 205.8-14.2-128A19.9 19.9 0 00208.8 60h-30.2a52 52 0 00-101.2 0H47.2a19.9 19.9 0 00-19.9 17.8l-14.2 128a19.6 19.6 0 004.9 15.5 20 20 0 0014.9 6.7h190.2a20 20 0 0014.9-6.7 19.6 19.6 0 004.9-15.5ZM128 44a28 28 0 0125.3 16h-50.6A28 28 0 01128 44ZM37.4 204 50.7 84H76v20a12 12 0 0024 0V84h56v20a12 12 0 0024 0V84h25.3l13.3 120Z"/></svg>';
  static const String handbag_duotone =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="256" height="256" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 2


7e0{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0}.title_8c7e0 p{cursor:pointer;display:inline;position:relative}.titleCompleted_266b1{color:#999;text-decoration:line-through}.group_627a8{-ms-flex-item-align:end;align-self:flex-end;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;margin:0 0 4px 5px;position:relative}.group_627a8 a:hover{color:#da552f}.comments_59e1b{margin:0 0 0 5px;position:relative}.comments_59e1b,.contributors_ce597{-ms-flex-item-align:end;align-self:flex-end;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.contributors_ce597{margin:4px 0 4px 5px;pointer-events:none}.user_d2ff6{margin:0 0 10px}.list_f6281{list-style:none;margin:-5px -10px}.cell_5c5b8+.cell_5c5b8{margin:1px 0 0}.expand_e6315{cursor:pointer;display:inline-block;margin:15px 0 0}.feed_2b469{list-style:none}.item_dfee4{padding:20px}.item_dfee4+.item_dfee4{border-top:1px solid #e8e8e8}.target_47576{display:-webkit-box;display:-ms-flexbox;display:flex}.icon_74c89{cursor:pointer}.icon_74c89:hover path,.iconActive_c96ad path{fill:#999}.content_b0424{max-width:100%;width:160px}.loaderContainer_4d6ad{margin:20px;text-align:center}.popoverContent_1e4df{margin:10px}.list_ecf9d{list-style:none}.item_ef1e2{-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex}.item_ef1e2:not(:last-child){margin:0 0 5px}.itemActive_86bdb{pointer-events:none}.itemLabel_8c96f{margin:0 3px 0 0}.item_ef1e2:hover .itemLabel_8c96f{color:#666}.itemActive_86bdb .itemLabel_8c96f{color:#00b37e}.tag_36e53{background:#f9f9f9;border-radius:3px;border:1px solid #e8e8e8;padding:2px 5px}.user_ad94b{margin:0 0 10px}.goal_058dd{border-bottom:1px solid #e8e8e8;display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 0 20px;padding:0 0 20px 40px}.goalCheckbox_40a65{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-item-align:start;align-self:flex-start;margin:4px 10px 0 0}.goaltitle_6e75f{-webkit-box-flex:1;-ms-flex:1;flex:1}.goalTitleCompleted_c3964{color:#999}.actions_197be{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;margin:0 0 0 40px}.due_446f1,.groupPicker_4042b,.timestamps_77603{margin:0 0 0 10px}.avatar_ae16d{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:3px;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:f


"verse_number": 36,
    "content":
        "তারাই মানে, যারা শ্রবণ করে। আল্লাহ মৃতদেরকে জীবিত করে উত্থিত করবেন। অতঃপর তারা তাঁরই দিকে প্রত্যাবর্তিত হবে।"
  },
  {
    "surah_number": 6,
    "verse_number": 37,
    "content":
        "তারা বলেঃ তার প্রতি তার পালনকর্তার পক্ষ থেকে কোন নিদর্শন অবতীর্ণ হয়নি কেন? বলে দিনঃ আল্লাহ নিদর্শন অবতরণ করতে পূর্ন সক্ষম; কিন্তু তাদের অধিকাংশই জানে না।"
  },
  {
    "surah_number": 6,
    "verse_number": 38,
    "content":
        "আর যত প্রকার প্রাণী পৃথিবীতে বিচরণশীল রয়েছে এবং যত প্রকার পাখী দু’ ডানাযোগে উড়ে বেড়ায় তারা সবাই তোমাদের মতই একেকটি শ্রেণী। আমি কোন কিছু লিখতে ছাড়িনি। অতঃপর সবাই স্বীয় প্রতিপালকের কাছে সমবেত হবে।"
  },
  {
    "surah_number": 6,
    "verse_number": 39,
    "content":
        "যারা আমার নিদর্শনসমূহকে মিথ্যা বলে, তারা অন্ধকারের মধ্যে মূক ও বধির। আল্লাহ যাকে ইচ্ছা পথভ্রষ্ট করেন এবং যাকে ইচ্ছা সরল পথে পরিচালিত করেন।"
  },
  {
    "surah_number": 6,
    "verse_number": 40,
    "content":


 set; }

        public bool Hidden { get; set; }

        public string Image { get; set; }
    }

    public class ExpoTicketViewModel : ExpoTicketOverviewModel
    {
        public ExpoActivityOverviewModel Activity { get; set; }
    }

    public class ExpoTicketEditModel : ExpoTicketOverviewModel
    {
        public Result Validate()
        {
            if (ActivityId <= 0)
            {
                return new Result { Successful = false, Error = "活动ID无效" };
            }

            return new Result { Successful = true };
        }
    }
}


    template< class Value , class S , class Red >
    static Value reduce( const S &s , Red red , Value init)
    {
        return detail::reduce( boost::begin( s ) , boost::end( s ) , red , init );
    }

    template< class Value , class S1 , class S2 , class Red >
    static Value reduce2( const S1 &s1 , const S2 &s2 , Red red , Value init )
    {
        return detail::reduce2( boost::begin( s1 ) , boost::end( s1 ) , boost::begin( s2 ) , red , init );
    }

    template< class Value , class S1 , class S2 , class S3 , class Red >
    static Value reduce3( const S1 &s1 , const S2 &s2 , const S3 &s3 , Red red , Value init )
    {
        return detail::reduce3( boost::begin( s1 ) , boost::end( s1 ) , boost::begin( s2 ) , boost::begin( s3 ) , red , init );
    }

    template< class Value , class S1 , class S2 , class S3 , class S4 , class Red >
    static Value reduce4( const S1 &s1 , const S2 &s2 , const S3 &s3 , const S4 &s4 , Red red , Value init )
    {
        return detail::reduce4( boost::begin( s1 ) , boost::end( s1 ) , boost::begin( s2 ) , boost::begin( s3 ) , boost::begin( s4 ) , red , init );
    }

};

} // odeint
} // numeric
} // boost

#endif // BOOST_NUMERIC_ODEINT_ALGEBRA_RANGE_ALGEBRA_HPP_INCLUDED
/*
 AMPL solver interface to Sulum.

 Copyright (C) 2013 AMPL Optimization Inc

 Permission to use, copy, modify, and distribute this software and its
 documentation for any purpose and without fee is hereby granted,
 provided that the above copyright notice appear in all copies and that
 both that the copyright notice and this permission notice and warranty
 disclaimer appear in supporting documentation.

 The author and AMPL Optimization Inc disclaim all warranties with
 regard to this software, including all implied warranties of
 merchantability and fitness.  In no event shall the author be liable
 for any special, indirect or consequential damages or any damages
 whatsoever resulting from loss of use, data or profits, whether in an
 action of contract, negligence or other tortious action, arising out
 of or in connection with the use or performance of this software.

 Author: Victor Zverovich
 */

#include "sulum/sulum.h"
#include "mp/utils-clock.h"

#include <limits>

namespace {
template <typename Param>
struct OptionInfo {
  Param param;
  const char *name;
  const char *description;
};

const OptionInfo<SlmParamInt> INT_OPTION_INFO[] = {
#define INT_OPTION(param, name, description) \
  {param, name, description},
#define DBL_OPTION(param, name, description)
#include "optsulum.ampl"
#undef INT_OPTION
#undef DBL_OPTION
};

const OptionInfo<SlmParamDb> DBL_OPTION_INFO[] = {
#define INT_OPTION(param, name, description)
#define DBL_OPTION(param, name, description) \
    {param, name, description},
#include "optsulum.ampl"
};

inline void Check(SlmReturn ret) {
  if (ret != SlmRetOk) {
    // TODO: get error message
    throw mp::Error("Sulum error {}", ret);
  }
}

inline SlmBoundKey GetBoundKey(double lb, double ub) {
  do


())
								return;
							PackageFragmentRoot root = (PackageFragmentRoot) roots[i];
							requestor.acceptPackageFragment(root.getPackageFragment(pkgName));
						}
					}
				}
			}
		}
	}

	public void seekTypes(String name, IPackageFragment pkg, boolean partialMatch, int acceptFlags, IJavaElementRequestor requestor) {
		seekTypes(name, pkg, partialMatch, acceptFlags, requestor, true);
	}

	/**
	 * Notifies the given requestor of all types (classes and interfaces) in the
	 * given package fragment with the given (unqualified) name.
	 * Checks the requestor at regular intervals to see if the requestor
	 * has canceled. If the given package fragment is null, all types in the
	 * project whose simple name matches the given name are found.
	 *
	 * @param name The name to search
	 * @param pkg The corresponding package fragment
	 * @param partialMatch partial name matches qualify when true;
	 *	only exact name matches qualify when false
	 * @param acceptFlags a bit mask describing if classes, interfaces or both classes and interfaces
	 * 	are desired results. If no flags are specified, all types are returned.
	 * @param requestor The requestor that collects the result
	 *
	 * @see #ACCEPT_CLASSES
	 * @see #ACCEPT_INTERFACES
	 * @see #ACCEPT_ENUMS
	 * @see #ACCEPT_ANNOTATIONS
	 */
	public void seekTypes(String name, IPackageFragment pkg, boolean partialMatch, int acceptFlags, IJavaElementRequestor requestor, boolean considerSecondaryTypes) {
/*		if (VERBOSE) {
			Util.verbose(" SEEKING TYPES");  //$NON-NLS-1$
			Util.verbose(" -> name: " + name);  //$NON-NLS-1$
			Util.verbose(" -> pkg: " + ((JavaElement) pkg).toStringWithAncestors());  //$NON-NLS-1$
			Util.verbose(" -> partial match:" + partialMatch);  //$NON-NLS-1$
		}
*/
		String matchName= partialMatch ? name.toLowerCase() : name;
		if (pkg == null) {
			findAllTypes(matchName, partialMatch, acceptFlags, requestor);
			return;
		}
		PackageFragmentRoot root= (PackageFragmentRoot) pkg.getParent();
		try {

			// look in working copies first
			int firstDot = -1;
			String topLevelTypeName = null;
			int packageFlavor= root.internalKind();
			if (this.typesInWorkingCopies != null || packageFlavor == IPackageFragmentRoot.K_SOURCE) {
				firstDot = matchName.indexOf('.');
				if (!partialMatch)
					topLevelTypeName = firstDot == -1 ? matchName : matchName.substring(0, firstDot);
			}
			if (this.typesInWorkingCopies != null) {
				if (seekTypesInWorkingCopies(matchName, pkg, firstDot, partialMatch, topLevelTypeName, acceptFlags, requestor, considerSecondaryTypes))
					return;
			}

			// look in model
			switch (packageFlavor) {
				case IPackageFragmentRoot.K_BINARY :
					matchName= matchName.replace('.', '$');
					seekTypesInBinaryPackage(matchName, pkg, partialMatch, acceptFlags, requestor);
					break;
				case IPackageFragmentRoot.K_SOURCE :
					seekTypesInSourcePackage(matchName, pkg, firstDot, partialMatch, topLevelTypeName, acceptFlags, requestor);
					if (matchName.indexOf('$') != -1) {
						matchName= matchName.replace('$', '.');
						firstDot = matchName.indexOf('.');
						if (!partialMatch)
							topLevelTypeName = firstDot == -1 ? matchName : matchName.substring(0, firstDot);
						seekTypesInSourcePackage(matchName, pkg, firstDot, partialMatch, topLevelTypeName, acceptFlags, requestor);
					}


#1 Desafio

number = int(input("Digite o número\n"))

print(f"O antecessor do número {number} é {number -1} e seu sucessor é {number +1}")

#2 Desafio

note1 = float(input("Digite a primeira nota\n"))
note2 = float(input("Digite a segunda nota\n"))
note3 = float(input("Digite a terceira nota\n"))
note4 = float(input("digite a quarta nota\n"))

avarage = (note1 + note2 + note3 + note4)/4

print(f"A média entre as notas é: {avarage}")


ximate representation of the distribution of numerical data. For detailed description please
			see [Wikipedia](https://en.wikipedia.org/wiki/Histogram).
			Histogram can be computed only for numeric based properties. It visualises which property values are more common
			in the returned data set and which are rare. Bucket count will never exceed requested bucket count but there
			may be less of them if there is no enough data for computation. Bucket thresholds are specified heuristically so tha
			there are as few "empty buckets" as possible.

			- buckets are defined by their lower bounds (inclusive)
			- the upper bound is the lower bound of the next bucket
			""")
		.staticFields(List.of(MIN, MAX, OVERALL_COUNT, BUCKETS))
		.build();

	/**
	 * Represents {@link io.evitadb.api.requestResponse.extraResult.HistogramContract.Bucket}.
	 *
	 * Note: this descriptor has static structure.
	 */
	interface BucketDescriptor {

		PropertyDescriptor THRESHOLD = PropertyDescriptor.builder()
			.name("threshold")
			.description("""
				Contains threshold (left bound - inclusive) of the bucket.
				""")
			.type(nonNull(BigDecimal.class))
			.build();
		PropertyDescriptor OCCURRENCES = PropertyDescriptor.builder()
			.name("occurrences")
			.description("""
				Contains number of entity occurrences in this bucket - e.g. number of entities that has monitored property value
				between previous bucket threshold (exclusive) and this bucket threshold (inclusive)
				""")
			.type(nonNull(Integer.class))
			.build();
		PropertyDescriptor REQUESTED = PropertyDescriptor.builder()
			.name("requested")
			.description("""
				Contains true if the query contained `attributeBetween` or `priceBetween`
				constraint for particular attribute / price and the bucket threshold lies within the range
				(inclusive) of the constraint. False otherwise.
				""")
			.type(nonNull(Boolean.class))
			.build();

		ObjectDescriptor THIS = ObjectDescriptor.builder()
			.name("HistogramBucket")
			.description("""
				Data object that carries out threshold in histogram (or bucket if you will) along with number of occurrences in it.
				""")
			.staticFields(List.of(THRESHOLD, OCCURRENCES, REQUESTED))
			.build();
	}
}
/*
 *
 *                         _ _        ____  ____
 *               _____   _(_) |_ __ _|  _ \| __ )
 *              / _ \ \ / / | __/ _` | | | |  _ \
 *             |  __/\ V /| | || (_| | |_| | |_) |
 *              \___| \_/ |_|\__\__,_|____/|____/
 *
 *   Copyright (c) 2023-2025
 *
 *   Licensed under the Business Source License, Version 1.1 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *   https://github.com/FgForrest/evitaDB/blob/master/LICENSE
 *
 *   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.
 */

package io.evitadb.externalApi.api.catalog.dataApi.model.mutation.reference;

import io.evitadb.api.requestResponse.data.mutation.reference.ReferenceAttributeMutation;
import io.evitadb.externalApi.api.catalog.dataApi.model.mutation.attribute.ReferenceAttributeMutationAggregateDescriptor;
import io.evitadb.externalApi.api.model.ObjectDescriptor;
import io.evitadb.externalApi.api.model.PropertyDescriptor;

import java.util.List;

import static io.evitadb.externalApi.api.model.ObjectPropertyDataTypeDescriptor


ba
// CHECK: [0x02,0x6c,0x8a,0x8d]

s_nor_b64 s[10:11], s[2:3], tma
// CHECK: [0x02,0x6e,0x8a,0x8d]

s_nor_b64 s[10:11], s[2:3], ttmp[10:11]
// CHECK: [0x02,0x7a,0x8a,0x8d]

s_nor_b64 s[10:11], s[2:3], exec
// CHECK: [0x02,0x7e,0x8a,0x8d]

s_nor_b64 s[10:11], s[2:3], 0
// CHECK: [0x02,0x80,0x8a,0x8d]

s_nor_b64 s[10:11], s[2:3], -1
// CHECK: [0x02,0xc1,0x8a,0x8d]

s_nor_b64 s[10:11], s[2:3], 0.5
// CHECK: [0x02,0xf0,0x8a,0x8d]

s_nor_b64 s[10:11], s[2:3], -4.0
// CHECK: [0x02,0xf7,0x8a,0x8d]

s_nor_b64 s[10:11], s[2:3], 0xaf123456
// CHECK: [0x02,0xff,0x8a,0x8d,0x56,0x34,0x12,0xaf]

s_nor_b64 s[10:11], s[2:3], 0x3f717273
// CHECK: [0x02,0xff,0x8a,0x8d,0x73,0x72,0x71,0x3f]

s_xnor_b32 s5, s1, s2
// CHECK: [0x01,0x02,0x05,0x8e]

s_xnor_b32 s103, s1, s2
// CHECK: [0x01,0x02,0x67,0x8e]

s_xnor_b32 flat_scratch_lo, s1, s2
// CHECK: [0x01,0x02,0x68,0x8e]

s_xnor_b32 flat_scratch_hi, s1, s2
// CHECK: [0x01,0x02,0x69,0x8e]

s_xnor_b32 vcc_lo, s1, s2
// CHECK: [0x01,0x02,0x6a,0x8e]

s_xnor_b32 vcc_hi, s1, s2
// CHECK: [0x01,0x02,0x6b,0x8e]

s_xnor_b32 tba_lo, s1, s2
// CHECK: [0x01,0x02,0x6c,0x8e]

s_xnor_b32 tba_hi, s1, s2
// CHECK: [0x01,0x02,0x6d,0x8e]

s_xnor_b32 tma_lo, s1, s2
// CHECK: [0x01,0x02,0x6e,0x8e]

s_xnor_b32 tma_hi, s1, s2
// CHECK: [0x01,0x02,0x6f,0x8e]

s_xnor_b32 ttmp11, s1, s2
// CHECK: [0x01,0x02,0x7b,0x8e]

s_xnor_b32 m0, s1, s2
// CHECK: [0x01,0x02,0x7c,0x8e]

s_xnor_b32 exec_lo, s1, s2
// CHECK