Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libkrun for openSUSE:Factory checked in at 2022-12-05 18:00:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libkrun (Old) and /work/SRC/openSUSE:Factory/.libkrun.new.1835 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libkrun" Mon Dec 5 18:00:42 2022 rev:9 rq:1040286 version:1.4.8 Changes: -------- --- /work/SRC/openSUSE:Factory/libkrun/libkrun.changes 2022-09-29 18:15:13.243474042 +0200 +++ /work/SRC/openSUSE:Factory/.libkrun.new.1835/libkrun.changes 2022-12-05 18:00:43.624426683 +0100 @@ -1,0 +2,43 @@ +Mon Dec 05 13:14:11 UTC 2022 - dmuel...@suse.com + +- Update to version 1.4.8: + * Bump version to v1.4.8 + * macos: fix mapped volumes initialization + * Bump version to v1.4.6 + * sev: fix a new clippy error + * fs: fix new clippy issue in descriptor_utils + * macos: init: register rosetta in binfmt_misc + * macos: map Rosetta directory if present + * macos: implement the ioctl Rosetta needs +- add new-kvm-ioctl.patch + +------------------------------------------------------------------- +Mon Dec 5 08:44:44 UTC 2022 - Dirk Müller <dmuel...@suse.com> + +- add proper split-provides +- add cargo_audit + +------------------------------------------------------------------- +Thu Nov 03 13:16:17 UTC 2022 - predi...@mts.rs + +- Update to version 1.4.6: + * Bump version to v1.4.6 + * fs/macos: Fix some clippy warnings + * hvf: write reg on sysreg trap + * Bump version to v1.4.5 + * sev: Don't use a static initrd size + * sev: Update to the final KBS attestation protocol + * vsock: Fix signal logic in Muxer + * examples/Makefile: Remove launch-tee binary on make clean + +------------------------------------------------------------------- +Thu Sep 29 23:42:09 UTC 2022 - Dario Faggioli <dfaggi...@suse.com> + +- Switch to a "proper library" packaging layout. Downstreams (namely, + crun) are now able to cope with this. So do it, and get rid of a lot + of RPM lint warnings and errors! +- Make it easier to turn on/off building the SEV-enabled library +* Patches dropped: + not-set-soname-as-it-is-plugin.patch + +------------------------------------------------------------------- Old: ---- libkrun-1.4.4.obscpio not-set-soname-as-it-is-plugin.patch New: ---- libkrun-1.4.8.obscpio new-kvm-ioctl.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libkrun.spec ++++++ --- /var/tmp/diff_new_pack.MILvoC/_old 2022-12-05 18:00:44.988434111 +0100 +++ /var/tmp/diff_new_pack.MILvoC/_new 2022-12-05 18:00:44.996434155 +0100 @@ -16,9 +16,23 @@ # +%define sev 1 + +%define descr \ +libkrun is a dynamic library that allows programs to easily acquire the\ +ability to run processes in a partially isolated environment using KVM Virtualization.\ +It integrates a VMM (Virtual Machine Monitor, the userspace side of an Hypervisor) with\ +the minimum amount of emulated devices required to its purpose, abstracting most of the\ +complexity that comes from Virtual Machine management, offering users a simple C API. + +# However sev has been defined, reset it if we're not on x86 +%ifnarch x86_64 +%define sev 0 +%endif + %global rustflags '-Clink-arg=-Wl,-z,relro,-z,now' Name: libkrun -Version: 1.4.4 +Version: 1.4.8 Release: 0 Summary: A dynamic library providing KVM-based process isolation capabilities License: Apache-2.0 @@ -26,55 +40,125 @@ Source0: libkrun-%{version}.tar.gz Source1: vendor.tar.xz Source2: cargo_config -# libkrunfw is a plugin for us, more than a full-fledged library, -# so let's avoid setting up a SONAME etc (which upstream is now doing). -Patch1: not-set-soname-as-it-is-plugin.patch +Patch1: new-kvm-ioctl.patch ExclusiveArch: x86_64 aarch64 BuildRequires: cargo >= 1.43.0 BuildRequires: gcc BuildRequires: glibc-static -BuildRequires: libkrunfw >= 0.6 +BuildRequires: libkrunfw-devel >= 3.6.3 BuildRequires: libopenssl-devel +BuildRequires: patchelf BuildRequires: rust -Requires: libkrunfw >= 0.6 +%if %{sev} +BuildRequires: libkrunfw-sev-devel >= 3.6.3 +%endif %ifarch aarch64 BuildRequires: libfdt-devel >= 1.6.0 %endif +# For handling the transition from (very) old versions of the packages Conflicts: libkrun-devel <= 0.1.7 Conflicts: libkrun0 <= 0.1.7 %description -libkrun is a dynamic library that allows programs to easily acquire the ability to run processes in a partially isolated environment using KVM Virtualization. +%{summary} + +%package -n %{name}1 +Summary: A dynamic library providing KVM-based process isolation capabilities +Obsoletes: libkrun <= 1.4.1 + +%description -n %{name}1 +%{descr} + +%package devel +Summary: Header files and libraries for libkrun development +Requires: %{name}1 = %{version}-%{release} + +%description devel +%{descr} + +This package containes the libraries and headers needed to develop programs +that use libkrun Virtualization-based process isolation capabilities. -It integrates a VMM (Virtual Machine Monitor, the userspace side of an Hypervisor) with the minimum amount of emulated devices required to its purpose, abstracting most of the complexity that comes from Virtual Machine management, offering users a simple C API. +%if %{sev} +%package sev1 +Summary: Dynamic library providing Virtualization-based process isolation capabilities (SEV variant) +Obsoletes: libkrun <= 1.4.1 + +%description sev1 +%{descr} + +This package contains the library that enables using AMD SEV to create a +microVM-based Trusted Execution Environment (TEE). + +%package sev-devel +Summary: Header files and libraries for libkrun development +Requires: %{name}-devel = %{version}-%{release} +Requires: %{name}-sev1 = %{version}-%{release} +Provides: %{name}:%{_libdir}/libkrun-sev.so +Obsoletes: %{name} < %{version} + +%description sev-devel +%{descr} + +This package containes the libraries and headers needed to develop programs that +use libkrun-sev Virtualization-based process isolation capabilities. +%endif %prep -%setup -qa1 -%patch1 -p1 +%autosetup -p1 -a1 mkdir .cargo cp %{SOURCE2} .cargo/config %build export RUSTFLAGS=%{rustflags} -%ifarch x86_64 + +%make_build + +%if %{sev} %make_build SEV=1 %endif -%make_build %install export RUSTFLAGS=%{rustflags} -%ifarch x86_64 + +%make_install PREFIX=%{_prefix} + +%if %{sev} %make_install SEV=1 PREFIX=%{_prefix} %endif -%make_install PREFIX=%{_prefix} -%files +%files -n %{name}1 %license LICENSE %doc README.md +%{_libdir}/libkrun.so.%{version} +%{_libdir}/libkrun.so.1 + +%files devel %{_libdir}/libkrun.so -%ifarch x86_64 +%{_includedir}/libkrun.h + +%post -n %{name}1 -p /sbin/ldconfig + +%postun -n %{name}1 -p /sbin/ldconfig + +%if %{sev} +%files sev1 +%license LICENSE +%doc README.md +%{_libdir}/libkrun-sev.so.%{version} +%{_libdir}/libkrun-sev.so.1 + +%files sev-devel %{_libdir}/libkrun-sev.so + +%post sev1 -p /sbin/ldconfig + +%postun sev1 -p /sbin/ldconfig +%endif + +%if %{with check} +%check +%cargo_test %endif -%{_includedir}/libkrun.h %changelog ++++++ _service ++++++ --- /var/tmp/diff_new_pack.MILvoC/_old 2022-12-05 18:00:45.044434416 +0100 +++ /var/tmp/diff_new_pack.MILvoC/_new 2022-12-05 18:00:45.048434437 +0100 @@ -2,7 +2,7 @@ <service name="obs_scm" mode="disabled"> <param name="scm">git</param> - <param name="revision">v1.4.4</param> + <param name="revision">v1.4.8</param> <param name="url">https://github.com/containers/libkrun.git</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> @@ -10,6 +10,10 @@ </service> <service name="cargo_vendor" mode="disabled"> <param name="srcdir">libkrun</param> + <param name="update">true</param> + </service> + <service name="cargo_audit" mode="disabled"> + <param name="srcdir">libkrun</param> </service> <service mode="buildtime" name="tar" /> <service mode="buildtime" name="recompress"> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.MILvoC/_old 2022-12-05 18:00:45.072434568 +0100 +++ /var/tmp/diff_new_pack.MILvoC/_new 2022-12-05 18:00:45.076434590 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/containers/libkrun.git</param> - <param name="changesrevision">1b239cb7d0576ab9e2b845895052d0d0e0871dba</param></service></servicedata> + <param name="changesrevision">dc7182c9aa666dc4c47ca09f73fe389e63e69a03</param></service></servicedata> (No newline at EOF) ++++++ libkrun-1.4.4.obscpio -> libkrun-1.4.8.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/Cargo.lock new/libkrun-1.4.8/Cargo.lock --- old/libkrun-1.4.4/Cargo.lock 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/Cargo.lock 2022-11-07 17:42:47.000000000 +0100 @@ -370,7 +370,7 @@ [[package]] name = "libkrun" -version = "1.4.4" +version = "1.4.8" dependencies = [ "devices", "env_logger", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/Makefile new/libkrun-1.4.8/Makefile --- old/libkrun-1.4.4/Makefile 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/Makefile 2022-11-07 17:42:47.000000000 +0100 @@ -2,7 +2,7 @@ INIT_BINARY = init/init ABI_VERSION=1 -FULL_VERSION=1.4.4 +FULL_VERSION=1.4.8 ifeq ($(SEV),1) VARIANT = -sev @@ -10,6 +10,10 @@ INIT_DEFS := -DSEV=1 endif +ifeq ($(ROSETTA),1) + INIT_DEFS := -D__ROSETTA__ +endif + OS = $(shell uname -s) KRUN_BINARY_Linux = libkrun$(VARIANT).so.$(FULL_VERSION) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/build_on_krunvm.sh new/libkrun-1.4.8/build_on_krunvm.sh --- old/libkrun-1.4.4/build_on_krunvm.sh 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/build_on_krunvm.sh 2022-11-07 17:42:47.000000000 +0100 @@ -24,7 +24,7 @@ exit -1 fi -krunvm start libkrun-builder /usr/bin/make -- init/init +krunvm start libkrun-builder /usr/bin/make -- ROSETTA=1 init/init if [ $? != 0 ]; then krunvm delete libkrun-builder echo "Error running command on VM" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/examples/Makefile new/libkrun-1.4.8/examples/Makefile --- old/libkrun-1.4.4/examples/Makefile 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/examples/Makefile 2022-11-07 17:42:47.000000000 +0100 @@ -36,4 +36,4 @@ podman rm libkrun_chroot_vm clean: - rm -rf chroot_vm $(ROOTFS_DIR) + rm -rf chroot_vm $(ROOTFS_DIR) launch-tee diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/init/init.c new/libkrun-1.4.8/init/init.c --- old/libkrun-1.4.4/init/init.c 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/init/init.c 2022-11-07 17:42:47.000000000 +0100 @@ -450,6 +450,32 @@ return ret; } +#ifdef __ROSETTA__ +char rosetta_binary[] = "/.rosetta/rosetta\0"; +char binfmt_rosetta[] = ":rosetta:M:0:\\x7fELF\\x02\\x01\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x02\\x00\\x3e\\x00:\\xff\\xff\\xff\\xff\\xff\\xfe\\xfe\\x00\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xfe\\xff\\xff\\xff:/.rosetta/rosetta:CF\n"; + +static void enable_rosetta() +{ + int fd; + + if (mount("binfmt_misc", "/proc/sys/fs/binfmt_misc", "binfmt_misc", + MS_NOEXEC | MS_NOSUID | MS_RELATIME, NULL) < 0) { + perror("mount(binfmt_misc)"); + exit(-1); + } else { + fd = open("/proc/sys/fs/binfmt_misc/register", O_WRONLY); + if (fd >= 0) { + if (write(fd, &binfmt_rosetta[0], strlen(binfmt_rosetta)) < 0) { + perror("write to binfmt_misc"); + } + close(fd); + } else { + perror("open binfmt_misc"); + } + } +} +#endif + int main(int argc, char **argv) { struct ifreq ifr; @@ -491,6 +517,12 @@ config_parse_file(&config_argv, &config_workdir); +#ifdef __ROSETTA__ + if (access(rosetta_binary, F_OK) == 0) { + enable_rosetta(); + } +#endif + krun_home = getenv("KRUN_HOME"); if (krun_home) { setenv("HOME", krun_home, 1); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/src/arch/src/x86_64/layout.rs new/libkrun-1.4.8/src/arch/src/x86_64/layout.rs --- old/libkrun-1.4.4/src/arch/src/x86_64/layout.rs 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/src/arch/src/x86_64/layout.rs 2022-11-07 17:42:47.000000000 +0100 @@ -18,8 +18,6 @@ pub const CMDLINE_SEV_SIZE: usize = 0x200; /// Initrd start address on SEV. pub const INITRD_SEV_START: u64 = 0xa00000; -/// Initrd size on SEV. -pub const INITRD_SEV_SIZE: usize = 0x19e000; /// Start of the high memory. pub const HIMEM_START: u64 = 0x0010_0000; //1 MB. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/src/devices/src/virtio/fs/descriptor_utils.rs new/libkrun-1.4.8/src/devices/src/virtio/fs/descriptor_utils.rs --- old/libkrun-1.4.4/src/devices/src/virtio/fs/descriptor_utils.rs 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/src/devices/src/virtio/fs/descriptor_utils.rs 2022-11-07 17:42:47.000000000 +0100 @@ -107,7 +107,7 @@ return Ok(0); } - let bytes_consumed = f(&*bufs)?; + let bytes_consumed = f(&bufs)?; // This can happen if a driver tricks a device into reading/writing more data than // fits in a `usize`. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/src/devices/src/virtio/fs/filesystem.rs new/libkrun-1.4.8/src/devices/src/virtio/fs/filesystem.rs --- old/libkrun-1.4.4/src/devices/src/virtio/fs/filesystem.rs 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/src/devices/src/virtio/fs/filesystem.rs 2022-11-07 17:42:47.000000000 +0100 @@ -1113,23 +1113,33 @@ Err(io::Error::from_raw_os_error(libc::ENOSYS)) } - /// TODO: support this - fn getlk(&self) -> io::Result<()> { + #[allow(clippy::too_many_arguments)] + fn ioctl( + &self, + ctx: Context, + inode: Self::Inode, + handle: Self::Handle, + flags: u32, + cmd: u32, + arg: u64, + in_size: u32, + out_size: u32, + ) -> io::Result<Vec<u8>> { Err(io::Error::from_raw_os_error(bindings::LINUX_ENOSYS)) } /// TODO: support this - fn setlk(&self) -> io::Result<()> { + fn getlk(&self) -> io::Result<()> { Err(io::Error::from_raw_os_error(bindings::LINUX_ENOSYS)) } /// TODO: support this - fn setlkw(&self) -> io::Result<()> { + fn setlk(&self) -> io::Result<()> { Err(io::Error::from_raw_os_error(bindings::LINUX_ENOSYS)) } /// TODO: support this - fn ioctl(&self) -> io::Result<()> { + fn setlkw(&self) -> io::Result<()> { Err(io::Error::from_raw_os_error(bindings::LINUX_ENOSYS)) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/src/devices/src/virtio/fs/macos/passthrough.rs new/libkrun-1.4.8/src/devices/src/virtio/fs/macos/passthrough.rs --- old/libkrun-1.4.4/src/devices/src/virtio/fs/macos/passthrough.rs 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/src/devices/src/virtio/fs/macos/passthrough.rs 2022-11-07 17:42:47.000000000 +0100 @@ -6,7 +6,6 @@ use std::collections::{BTreeMap, HashMap}; use std::ffi::{CStr, CString}; use std::fs::File; -use std::io; use std::mem::{self, MaybeUninit}; use std::os::unix::io::{AsRawFd, FromRawFd, RawFd}; use std::path::PathBuf; @@ -14,6 +13,7 @@ use std::sync::atomic::{AtomicBool, AtomicU64, Ordering}; use std::sync::{Arc, Mutex, RwLock}; use std::time::Duration; +use std::{io, io::Read}; use lru::LruCache; use vm_memory::ByteValued; @@ -27,6 +27,9 @@ use super::super::fuse; use super::super::multikey::MultikeyBTreeMap; +const IOCTL_ROSETTA: u32 = 0x8045_6122; +const KRUNVM_ROSETTA_FILE: &str = ".krunvm-rosetta"; + const INIT_CSTR: &[u8] = b"init.krun\0"; const XATTR_KEY: &[u8] = b"user.containers.override_stat\0"; @@ -169,7 +172,7 @@ if parts.len() > oldparts.len() { let mut fixedpath = String::new(); fixedpath.push_str(&newpath); - fixedpath.push_str("/"); + fixedpath.push('/'); fixedpath.push_str(&parts[oldparts.len()..].join("/")); path_replacements.push((index, fixedpath)); } @@ -496,9 +499,28 @@ // `cfg.writeback` is true and `init` was called with `FsOptions::WRITEBACK_CACHE`. writeback: AtomicBool, + rosetta_data: Option<Vec<u8>>, cfg: Config, } +fn read_rosetta_data() -> io::Result<Vec<u8>> { + let home = std::env::var("HOME") + .map_err(|_| linux_error(io::Error::from_raw_os_error(libc::EINVAL)))?; + let path = format!("{}/{}", home, KRUNVM_ROSETTA_FILE); + let mut file = + File::open(path).map_err(|_| linux_error(io::Error::from_raw_os_error(libc::EINVAL)))?; + + let metadata = file + .metadata() + .map_err(|_| linux_error(io::Error::from_raw_os_error(libc::EINVAL)))?; + + let mut data = vec![0u8; metadata.len() as usize]; + file.read_exact(&mut data) + .map_err(|_| linux_error(io::Error::from_raw_os_error(libc::EINVAL)))?; + + Ok(data) +} + impl PassthroughFs { pub fn new(cfg: Config) -> io::Result<PassthroughFs> { Ok(PassthroughFs { @@ -515,6 +537,8 @@ host_volumes: RwLock::new(HashMap::new()), writeback: AtomicBool::new(false), + + rosetta_data: read_rosetta_data().ok(), cfg, }) } @@ -527,18 +551,14 @@ if let Some(file) = file_cache.get(inode) { Some(file.clone()) } else { - self.pinned_files - .lock() - .unwrap() - .get(&inode) - .map(Arc::clone) + self.pinned_files.lock().unwrap().get(inode).map(Arc::clone) } } fn get_file(&self, inode: Inode) -> io::Result<Arc<File>> { let mut file_cache = self.file_cache.lock().unwrap(); if let Some(file) = self.cached_or_pinned(&inode, &mut file_cache) { - Ok(file.clone()) + Ok(file) } else { open_path( &mut file_cache, @@ -985,8 +1005,7 @@ } else { get_path(path_cache, inode) .ok() - .map(|filepath| open_path(file_cache, inode, &filepath).ok()) - .flatten() + .and_then(|filepath| open_path(file_cache, inode, &filepath).ok()) .map(|file| pinned_files.insert(inode, file)); } } @@ -1071,6 +1090,9 @@ continue; } + // Safe because we just opened this fd above. + let f = unsafe { File::from_raw_fd(fd) }; + let st = fstat(&f)?; let inode = self.next_inode.fetch_add(1, Ordering::Relaxed); @@ -2125,4 +2147,31 @@ Ok(res as u64) } } + + #[allow(clippy::too_many_arguments)] + fn ioctl( + &self, + _ctx: Context, + _inode: Self::Inode, + _ohandle: Self::Handle, + _flags: u32, + cmd: u32, + _arg: u64, + _in_size: u32, + out_size: u32, + ) -> io::Result<Vec<u8>> { + if cmd == IOCTL_ROSETTA { + // This is based on the information found in this article: + // https://threedots.ovh/blog/2022/06/quick-look-at-rosetta-on-linux/ + + if let Some(data) = &self.rosetta_data { + if data.len() == out_size as usize { + return Ok(data.clone()); + } + } + Err(linux_error(io::Error::from_raw_os_error(libc::ENOSYS))) + } else { + Err(linux_error(io::Error::from_raw_os_error(libc::ENOSYS))) + } + } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/src/devices/src/virtio/fs/server.rs new/libkrun-1.4.8/src/devices/src/virtio/fs/server.rs --- old/libkrun-1.4.4/src/devices/src/virtio/fs/server.rs 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/src/devices/src/virtio/fs/server.rs 2022-11-07 17:42:47.000000000 +0100 @@ -1091,11 +1091,34 @@ Ok(0) } - fn ioctl(&self, in_header: InHeader, _r: Reader, w: Writer) -> Result<usize> { - if let Err(e) = self.fs.ioctl() { - reply_error(e, in_header.unique, w) - } else { - Ok(0) + fn ioctl(&self, in_header: InHeader, mut r: Reader, w: Writer) -> Result<usize> { + let IoctlIn { + fh, + flags, + cmd, + arg, + in_size, + out_size, + } = r.read_obj().map_err(Error::DecodeMessage)?; + + match self.fs.ioctl( + Context::from(in_header), + in_header.nodeid.into(), + fh.into(), + flags, + cmd, + arg, + in_size, + out_size, + ) { + Ok(data) => { + let out = IoctlOut { + result: 0, + ..Default::default() + }; + reply_ok(Some(out), Some(&data), in_header.unique, w) + } + Err(e) => reply_error(e, in_header.unique, w), } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/src/devices/src/virtio/vsock/muxer.rs new/libkrun-1.4.8/src/devices/src/virtio/vsock/muxer.rs --- old/libkrun-1.4.4/src/devices/src/virtio/vsock/muxer.rs 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/src/devices/src/virtio/vsock/muxer.rs 2022-11-07 17:42:47.000000000 +0100 @@ -242,7 +242,9 @@ if update.signal_queue { self.interrupt_status .fetch_or(VIRTIO_MMIO_INT_VRING as usize, Ordering::SeqCst); - if let Err(e) = self.interrupt_evt.write(1) { + if let Some(intc) = &self.intc { + intc.lock().unwrap().set_irq(self.irq_line.unwrap()); + } else if let Err(e) = self.interrupt_evt.write(1) { warn!("failed to signal used queue: {:?}", e); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/src/hvf/src/lib.rs new/libkrun-1.4.8/src/hvf/src/lib.rs --- old/libkrun-1.4.4/src/hvf/src/lib.rs 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/src/hvf/src/lib.rs 2022-11-07 17:42:47.000000000 +0100 @@ -400,7 +400,7 @@ } EC_SYSTEMREGISTERTRAP => { let isread: bool = (syndrome & 1) != 0; - let _rt: u32 = ((syndrome >> 5) & 0x1f) as u32; + let rt: u32 = ((syndrome >> 5) & 0x1f) as u32; let reg: u64 = syndrome & SYSREG_MASK; debug!("sysreg operation reg={} (op0={} op1={} op2={} crn={} crm={}) isread={:?}", @@ -409,6 +409,10 @@ (reg >> 10) & 0xf, (reg >> 1) & 0xf, isread); + if isread && rt < 31 { + self.write_reg(rt, 0)?; + } + self.pending_advance_pc = true; Ok(VcpuExit::SystemRegister) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/src/kbs-types/src/lib.rs new/libkrun-1.4.8/src/kbs-types/src/lib.rs --- old/libkrun-1.4.4/src/kbs-types/src/lib.rs 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/src/kbs-types/src/lib.rs 2022-11-07 17:42:47.000000000 +0100 @@ -16,49 +16,40 @@ #[derive(Serialize, Deserialize, Debug)] pub struct Request { pub version: String, - pub workload_id: String, pub tee: Tee, + #[serde(rename = "extra-params")] pub extra_params: String, } #[derive(Serialize, Deserialize, Debug)] pub struct Challenge { pub nonce: String, + #[serde(rename = "extra-params")] pub extra_params: String, } #[derive(Serialize, Deserialize, Debug)] pub struct TeePubKey { - pub algorithm: String, - #[serde(rename = "pubkey-length")] - pub pubkey_length: String, - pub pubkey: String, + pub kty: String, + pub alg: String, + pub k: String, } #[derive(Serialize, Deserialize, Debug)] pub struct Attestation { - pub nonce: String, - pub tee: Tee, #[serde(rename = "tee-pubkey")] pub tee_pubkey: TeePubKey, #[serde(rename = "tee-evidence")] pub tee_evidence: String, } -#[derive(Serialize, Deserialize, Debug, Default)] -pub struct CryptoAnnotation { - pub algorithm: String, - #[serde(rename = "initialization-vector")] - pub initialization_vector: String, - #[serde(rename = "enc-symkey")] - pub enc_symkey: String, -} - #[derive(Serialize, Deserialize, Debug)] pub struct Response { - pub output: String, - #[serde(rename = "crypto-annotation")] - pub crypto_annotation: CryptoAnnotation, + pub protected: String, + pub encrypted_key: String, + pub iv: String, + pub ciphertext: String, + pub tag: String, } #[cfg(test)] @@ -70,9 +61,8 @@ let data = r#" { "version": "0.0.0", - "workload_id": "fakeid", "tee": "sev", - "extra_params": "" + "extra-params": "" }"#; let request: Request = serde_json::from_str(data).unwrap(); @@ -87,7 +77,7 @@ let data = r#" { "nonce": "42", - "extra_params": "" + "extra-params": "" }"#; let challenge: Challenge = serde_json::from_str(data).unwrap(); @@ -100,46 +90,39 @@ fn parse_response() { let data = r#" { - "output": "fakeoutput", - "crypto-annotation": { - "algorithm": "fake-4096", - "initialization-vector": "randomdata", - "enc-symkey": "fakesymkey" - } + "protected": "fakejoseheader", + "encrypted_key": "fakekey", + "iv": "randomdata", + "ciphertext": "fakeencoutput", + "tag": "faketag" }"#; let response: Response = serde_json::from_str(data).unwrap(); - assert_eq!(response.output, "fakeoutput"); - assert_eq!(response.crypto_annotation.algorithm, "fake-4096"); - assert_eq!( - response.crypto_annotation.initialization_vector, - "randomdata" - ); - assert_eq!(response.crypto_annotation.enc_symkey, "fakesymkey"); + assert_eq!(response.protected, "fakejoseheader"); + assert_eq!(response.encrypted_key, "fakekey"); + assert_eq!(response.iv, "randomdata"); + assert_eq!(response.ciphertext, "fakeencoutput"); + assert_eq!(response.tag, "faketag"); } #[test] fn parse_attesation() { let data = r#" { - "nonce": "42", - "tee": "sev", "tee-pubkey": { - "algorithm": "fake-4096", - "pubkey-length": "4096", - "pubkey": "fakepubkey" + "kty": "fakekeytype", + "alg": "fakealgorithm", + "k": "fakepubkey" }, "tee-evidence": "fakeevidence" }"#; let attestation: Attestation = serde_json::from_str(data).unwrap(); - assert_eq!(attestation.nonce, "42"); - assert_eq!(attestation.tee, Tee::Sev); - assert_eq!(attestation.tee_pubkey.algorithm, "fake-4096"); - assert_eq!(attestation.tee_pubkey.pubkey_length, "4096"); - assert_eq!(attestation.tee_pubkey.pubkey, "fakepubkey"); + assert_eq!(attestation.tee_pubkey.kty, "fakekeytype"); + assert_eq!(attestation.tee_pubkey.alg, "fakealgorithm"); + assert_eq!(attestation.tee_pubkey.k, "fakepubkey"); assert_eq!(attestation.tee_evidence, "fakeevidence"); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/src/kbs-types/src/tee/sev.rs new/libkrun-1.4.8/src/kbs-types/src/tee/sev.rs --- old/libkrun-1.4.4/src/kbs-types/src/tee/sev.rs 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/src/kbs-types/src/tee/sev.rs 2022-11-07 17:42:47.000000000 +0100 @@ -7,6 +7,7 @@ pub struct SevRequest { pub build: Build, pub chain: Chain, + pub workload_id: String, } #[derive(Serialize, Deserialize)] @@ -127,7 +128,11 @@ let chain = fetch_chain(&mut fw).unwrap(); let build = fw.platform_status().unwrap().build; - let sev_request = SevRequest { build, chain }; + let sev_request = SevRequest { + build, + chain, + workload_id: "fakeid".to_string(), + }; let sev_request_json = serde_json::to_string(&sev_request).unwrap(); @@ -135,7 +140,6 @@ let request = Request { version: "0.0.0".to_string(), - workload_id: "fakeid".to_string(), tee: Tee::Sev, extra_params: sev_request_json, }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/src/kbs-types/testdata/sev_challenge.json new/libkrun-1.4.8/src/kbs-types/testdata/sev_challenge.json --- old/libkrun-1.4.4/src/kbs-types/testdata/sev_challenge.json 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/src/kbs-types/testdata/sev_challenge.json 2022-11-07 17:42:47.000000000 +0100 @@ -1,4 +1,4 @@ { "nonce": "42", - "extra_params": "{\"id\":\"fakeid\",\"start\":{\"policy\":{\"flags\":{\"bits\":0},\"minfw\":{\"major\":0,\"minor\":0}},\"cert\":[1,0,0,0,0,0,0,0,3,16,0,0,3,0,0,0,2,0,0,0,220,118,31,246,100,195,227,133,83,217,155,58,221,96,70,144,162,175,225,58,212,28,134,86,147,204,242,89,201,25,230,41,241,25,91,38,137,59,179,137,130,228,99,235,174,23,195,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,177,36,224,10,66,241,54,208,236,216,232,214,88,64,138,139,231,173,11,87,140,139,105,71,197,37,179,42,34,119,238,245,130,199,92,150,57,174,224,99,197,225,45,30,87,19,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,16,0,0,2,0,0,0,48,13,71,224,9,17,44,43,96,48,33,117,26,59,13,73,197,191,137,191,150,215,160,187,39,156,160,109,139,193,159,168,70,196,201,196,109,246,235,221,224,244,128,238,89,18,25,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,234,22,167,205,129,119,121,59,75,110,116,107,186,163,32,125,103,159,48,157,137,76,42,99,226,150,143,36,249,160,112,187,163,97,113,138,125,148,92,83,221,145,189,36,244,44,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],\"session\":{\"nonce\":[238,196,109,199,221,50,33,33,47,168,76,39,233,96,22,131],\"wrap_tk\":[5,206,171,89,120,255,82,229,106,72,82,134,234,3,165,59,165,169,193,98,46,74,84,81,6,28,47,59,216,164,52,229],\"wrap_iv\":[80,46,97,219,6,246,99,107,243,104,235,143,5,74,245,12],\"wrap_mac\":[129,92,133,62,8,94,185,238,109,151,146,156,123,222,207,185,193,183,65,180,13,18,139,237 ,116,146,153,71,169,27,15,20],\"policy_mac\":[131,85,47,130,214,95,246,105,180,21,110,117,3,1,26,244,186,12,36,41,146,19,180,104,93,243,99,147,199,70,25,135]}}}" + "extra-params": "{\"id\":\"fakeid\",\"start\":{\"policy\":{\"flags\":{\"bits\":0},\"minfw\":{\"major\":0,\"minor\":0}},\"cert\":[1,0,0,0,0,0,0,0,3,16,0,0,3,0,0,0,2,0,0,0,220,118,31,246,100,195,227,133,83,217,155,58,221,96,70,144,162,175,225,58,212,28,134,86,147,204,242,89,201,25,230,41,241,25,91,38,137,59,179,137,130,228,99,235,174,23,195,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,177,36,224,10,66,241,54,208,236,216,232,214,88,64,138,139,231,173,11,87,140,139,105,71,197,37,179,42,34,119,238,245,130,199,92,150,57,174,224,99,197,225,45,30,87,19,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,16,0,0,2,0,0,0,48,13,71,224,9,17,44,43,96,48,33,117,26,59,13,73,197,191,137,191,150,215,160,187,39,156,160,109,139,193,159,168,70,196,201,196,109,246,235,221,224,244,128,238,89,18,25,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,234,22,167,205,129,119,121,59,75,110,116,107,186,163,32,125,103,159,48,157,137,76,42,99,226,150,143,36,249,160,112,187,163,97,113,138,125,148,92,83,221,145,189,36,244,44,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],\"session\":{\"nonce\":[238,196,109,199,221,50,33,33,47,168,76,39,233,96,22,131],\"wrap_tk\":[5,206,171,89,120,255,82,229,106,72,82,134,234,3,165,59,165,169,193,98,46,74,84,81,6,28,47,59,216,164,52,229],\"wrap_iv\":[80,46,97,219,6,246,99,107,243,104,235,143,5,74,245,12],\"wrap_mac\":[129,92,133,62,8,94,185,238,109,151,146,156,123,222,207,185,193,183,65,180,13,18,139,237 ,116,146,153,71,169,27,15,20],\"policy_mac\":[131,85,47,130,214,95,246,105,180,21,110,117,3,1,26,244,186,12,36,41,146,19,180,104,93,243,99,147,199,70,25,135]}}}" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/src/kbs-types/testdata/sev_request.json new/libkrun-1.4.8/src/kbs-types/testdata/sev_request.json --- old/libkrun-1.4.4/src/kbs-types/testdata/sev_request.json 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/src/kbs-types/testdata/sev_request.json 2022-11-07 17:42:47.000000000 +0100 @@ -2,5 +2,5 @@ "version": "0.0.0", "workload_id": "fakeid", "tee": "sev", - "extra_params": "{\"build\":{\"version\":{\"major\":1,\"minor\":49},\"build\":6},\"chain\":{\"ca\":{\"ask\":[1,0,0,0,115,71,140,5,204,23,75,254,176,110,113,143,167,93,195,200,148,195,142,65,119,208,71,146,146,167,174,103,29,8,63,182,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,16,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,63,43,47,122,197,241,194,234,12,143,84,104,87,22,100,174,45,197,23,230,72,168,40,81,179,72,4,40,60,181,69,206,182,128,239,27,45,135,34,2,46,253,163,74,128,7,68,60,4,10,149,15,133,124,222,56,236,200,40,88,228,206,230,249,116,224,84,48,82,61,248,90,64,171,18,37,196,225,57,233,180,128,222,225,10,33,171,194,253,233,185,247,239,160,134,62,211,10,253,184,185,145,253,130,118,62,81,98,14,114,248,56,184,202,71,227,200,237,18,64,141,163,47,240,134,122,78,230,105,188,63,176,10,193,80,88,88,142,213,194,20,77,2,61,228,112,82,2,37,222,22,176,80,136,98,239,111,171,118,99,254,103,165,125,217,241,196,161,38,123,21,107,0,231,67,174,89,162,169,220,76,54,32,164,170,177,87,20,164,123,10 8,14,155,125,234,142,49,115,156,239,227,236,200,37,161,1,217,248,247,197,108,238,60,162,61,88,100,75,46,125,126,111,146,130,212,111,129,137,96,164,75,216,183,1,53,119,155,144,215,60,102,27,162,40,222,153,109,9,38,36,248,35,13,174,165,79,80,218,163,200,250,20,130,170,97,133,119,91,29,252,32,132,150,151,164,142,157,10,244,201,151,30,165,223,116,19,125,155,214,135,149,141,75,69,228,164,199,3,119,76,109,13,171,240,204,52,10,18,183,149,135,112,91,10,90,52,147,138,91,45,209,0,92,210,138,130,120,179,91,248,248,190,254,140,142,194,91,76,34,44,97,50,80,238,219,4,199,105,18,229,135,241,35,215,61,80,126,159,136,127,167,65,21,185,62,201,170,232,185,155,189,56,143,39,204,237,237,108,20,27,219,191,94,43,7,100,81,151,210,63,238,179,160,225,174,183,116,200,6,201,164,229,240,65,155,63,145,74,175,117,165,14,13,220,100,196,78,244,233,210,129,113,187,176,164,98,249,230,136,185,4,100,38,244,149,41,176,7,249,75,231,137,83,63,26,140,221,16,64,213,44,35,59,102,206,44,101,113,114,183,23,86,209,1,55,53,123,1 05,41,136,89,139,123,93,114,156,49,206,14,148,141,115,63,217,237,151,41,90,221,33,179,180,9,78,228,203,182,229,127,101,137,64,77,184,125,83,179,174,157,77,157,29,185,136,76,42,233,184,162,204,204,252,118,213,73,13,252,89,116,238,109,71,216,119,150,198,214,240,151,58,88,109,241,99,223,250,251,246,50,139,241,246,168,163,245,184,97,212,151,101,12,103,55,51,199,127,1,248,4,176,186,130,156,211,34,226,170,66,247,5,89,133,26,119,241,157,218,249,123,7,90,126,133,56,5,70,114,214,153,129,38,97,30,30,20,49,15,94,140,72,169,50,188,181,169,219,166,87,132,244,102,85,13,97,209,205,148,246,120,122,244,138,94,98,36,130,61,213,203,23,58,42,169,105,12,46,173,42,58,100,87,217,78,46,187,103,52,221,125,55,42,196,86,163,253,12,23,176,124,169,72,153,73,129,150,17,253,224,108,134,58,164,54,85,217,141,112,177,243,251,187,214,15,73,99,8,21,16,235,172,223,71,131,245,154,152,150,243,28,124,103,19,91,207,206,148,44,144,23,182,241,56,171,29,127,28,109,181,162,184,123,208,22,153,173,14,137,177,161,126,48,236,185,2 20,191,188,27,238,40,22,165,9,68,148,175,75,183,250,225,103,74,212,40,194,47,177,219,109,70,209,139,91,89,139,13,136,169,43,148,142,73,221,107,77,66,157,123,26,206,157,171,252,195,111,50,44,175,255,151,108,212,203,213,56,248,68,188,8,207,232,249,34,9,118,21,92,238,108,206,66,9,92,96,253,229,9,12,63,249,3,217,199,162,112,200,190,103,4,88,64,3,66,211,106,236,191,171,9,153,112,41,134,179,65,165,230,94,78,153,18,194,149,94,107,117,196,83,124,219,42,247,75,190,92,39,58,50,176,96,203,131,41,19,130,113,209,26,157,110,32,186,197,47,153,168,124,206,49,97,44,175,91,168,82,214,56,3,145,132,181,204,70,250,53,96,135,124,20,240,58,200,234,235,215,147,176,204,239,123,40,113,204,43,191,48,76,213,121,50,166,90,173,170,160,213,163,164,93,132,84,19,248,137,142,56,79,199,175,73,86,194,5,114,53,209,0,58,108,106,90,77,141,135,121,249,231,196,146,142,207,48,59,92,129,67,48,88,251,10,135,246,165,105,135,67,35,176,156,202,254,117,8,48,90,94,222,35,61,227,114,93,92,148,199,76,132,209,19,192,151,251,165,0],\" ark\":[1,0,0,0,148,195,142,65,119,208,71,146,146,167,174,103,29,8,63,182,148,195,142,65,119,208,71,146,146,167,174,103,29,8,63,182,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,16,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,101,69,18,90,99,93,134,223,35,11,244,65,110,223,241,64,232,181,32,127,114,122,239,114,195,20,12,153,229,131,117,199,179,251,166,112,121,237,92,100,209,75,1,214,201,79,140,83,210,245,124,124,124,205,244,232,226,218,173,216,48,168,32,164,160,227,239,170,144,190,66,140,61,155,49,182,120,164,214,170,198,168,104,233,195,28,105,176,158,49,187,114,75,5,204,77,195,159,49,121,80,147,209,43,30,194,247,237,210,72,158,207,234,9,126,73,122,218,155,36,35,97,220,120,61,67,103,51,252,172,207,69,46,91,134,172,98,75,23,180,0,147,230,39,128,254,45,66,226,155,183,228,157,67,119,115,170,80,50,245,149,173,189,107,28,144,94,236,173,92,204,19,230,122,98,137,104,44,187,143,241,56,243,98,96,19,33,243,201,134,79,229,146,67,5,250,236,10,65,27,71,213,177,69,52,68,121,130,100,112,184,172,43,158,8 2,252,255,3,41,7,172,249,34,91,51,114,207,197,68,108,201,96,19,135,40,242,237,155,229,109,106,30,160,108,160,3,204,196,196,146,227,126,197,10,47,255,157,161,166,215,183,3,123,63,140,39,227,223,177,122,61,72,253,135,29,74,135,233,194,101,233,91,205,110,184,180,162,243,79,52,98,130,57,13,162,92,11,38,230,213,231,207,133,21,202,237,238,81,5,101,128,219,62,154,94,104,63,168,42,100,46,217,226,7,170,188,184,122,12,254,56,174,87,44,61,54,238,119,71,235,180,192,142,175,239,248,129,109,230,179,214,216,57,226,29,70,23,57,107,222,75,142,154,50,124,63,238,79,77,115,212,139,95,82,114,61,238,58,80,38,38,171,97,128,39,106,60,75,182,177,82,67,220,233,254,221,95,188,59,214,82,173,55,71,57,242,4,135,68,115,255,87,56,247,109,145,241,41,126,62,93,230,78,170,172,216,115,88,199,138,205,204,210,192,68,214,90,91,52,172,71,212,148,168,144,109,94,209,212,199,212,241,40,191,95,114,178,24,230,109,113,35,37,224,91,70,199,208,187,66,63,47,161,73,73,33,113,212,243,213,99,87,141,91,96,243,213,23,108,181,168,219,14 6,197,62,152,21,219,37,182,162,150,137,232,117,78,18,217,121,183,208,29,152,74,82,177,211,8,172,171,157,99,118,8,199,25,93,59,30,118,134,67,95,169,169,10,57,34,56,246,89,104,249,13,54,171,137,59,214,62,36,29,245,54,75,69,190,138,184,88,127,202,244,148,52,128,217,206,65,244,180,29,37,152,253,148,65,117,251,170,156,7,193,105,216,141,147,85,241,74,47,252,55,2,183,76,26,127,15,203,35,5,60,189,154,58,66,150,180,40,213,67,122,15,169,226,108,246,72,197,62,143,105,19,22,236,251,241,67,27,73,248,232,185,95,61,196,173,220,9,47,10,92,166,232,165,184,244,54,26,217,135,246,55,15,34,144,225,181,110,53,230,139,49,193,190,93,232,106,105,235,221,154,14,83,189,97,51,5,193,15,167,163,222,119,200,98,238,233,25,137,167,131,182,248,33,172,161,246,186,234,35,69,65,166,166,99,58,194,104,73,93,229,230,93,110,104,40,56,147,19,160,218,110,146,55,180,122,92,39,174,114,64,122,116,174,39,29,53,246,12,94,69,57,124,224,190,83,78,217,77,242,242,27,188,173,131,15,179,90,158,177,102,15,52,229,139,221,193,127,170,69,1 71,213,15,168,80,245,190,79,40,209,241,60,41,78,89,8,222,126,114,62,167,4,138,56,106,95,44,119,192,163,162,75,235,230,15,171,190,0,210,147,255,147,171,215,79,66,106,226,31,198,166,20,145,72,103,88,66,255,36,101,80,132,21,105,140,20,39,9,247,174,97,90,153,37,179,107,45,58,252,188,98,98,67,24,143,247,178,31,241,150,11,76,218,32,188,113,7,202,52,51,17,191,178,129,244,99,127,7,117,191,156,63,226,213,189,47,54,225,130,60,195,47,231,193,172,230,113,169,117,119,23,36,191,235,229,120,158,166,163,50,108,239,90,139,86,41,121,54,185,228,100,186,75,165,149,113,255,125,204,11,244,90,254,34,57,70,27,44,192,88,147,163,4,154,68,154,167,44,88,42,176,109,186,73,59,114,103,31,102,137,97,110,238,89,223,80,143,97,82,16,129,222,124,54,55,26,191,51,32,154,137,131,100,127,168,241,133,57,186,115,76,173,83,10,105,47,127,141,7,209,144,174,156,189,59,137,45,200,30,192,124,66,76,31,6,97,20,6,169,204,171]},\"sev\":{\"pdh\":[1,0,0,0,1,51,0,0,3,16,0,0,3,0,0,0,2,0,0,0,236,142,17,36,204,71,108,223,181,127,119,253,20 1,131,182,132,50,37,64,152,71,209,126,29,62,154,144,219,112,170,146,33,209,152,147,146,184,35,40,240,247,122,134,247,173,41,185,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,235,20,97,145,30,99,73,206,12,137,126,141,79,125,155,218,205,218,40,38,167,21,43,155,53,79,145,121,204,45,57,132,168,43,230,23,221,61,4,190,146,100,40,38,245,46,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,16,0,0,2,0,0,0,48,13,71,224,9,17,44,43,96,48,33,117,26,59,13,73,197,191,137,191,150,215,160,187,39,156,160,109,139,193,159,168,70,196,201,196,109,246,235,221,224,244,128,238,89,18,25,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,234,22,167,205,129,119,121,59,75,110,116,107,186,163,32,125,103,159,48,157,137,76,42,99,226,150,143,36,249,160,112,187,163,97,113,138,125,148,92,83,221,145,189,36,244,44,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],\"pek\":[1,0,0,0,1,51,0,0,2,16,0,0,2,0,0,0,2,0,0,0,109,180,250,189,48,254,207,146,220,182,120,151,197,137,203,147,228,103,27,194,196,247,187,69,57,185,102,252,65,105,204,111,178,254,117,77,30,88,40,98,0,176,5,71,77,129,237,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,245,150,181,175,230,34,68,226,47,80,90,82,141,81,128,230,90,139,105,138,167,172,149,255,208,94,195,205,85,89,133,6,131,194,243,153,56,83,40,165,213,170,161,117,99,22,160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,16,0,0,2,0,0,0,230,146,52,120,157,101,140,107,240,82,104,44,38,81,17,13,138,211,216,229,35,236,3,241,238,98,65,205,168,204,71,141,75,129,136,102,79,5,131,27,118,73,220,248,169,112,173,244,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,107,163,188,106,101,5,46,56,105,104,3,213,106,231,185,187,177,10,7,222,250,33,141,221,194,8 2,13,240,44,127,123,245,82,134,246,148,25,221,52,90,112,210,145,13,195,5,162,51,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,16,0,0,2,0,0,0,143,236,132,36,77,201,133,197,214,227,189,234,82,30,46,244,80,201,118,224,107,251,208,151,110,32,21,125,76,215,83,25 4,2,225,43,141,122,150,222,213,26,240,159,79,248,154,251,161,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,208,114,140,146,83,60,134,56,55,34,120,113,180,114,211,220,204,155,216,119,112,217,109,215,10,131,205,216,197,65,230,10,210,66,101,148,196,214,248,250,11,59,207,111,66,87,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],\"oca\":[1,0,0,0,1,51,0,0,1,16,0,0,2,0,0,0,2,0,0,0,174,234,23,236,230,27,55,192,166,176,152,22,210,198,136,232,48,140,85,172,139,146,215,173,203,229,243,218,154,190,221,65,241,21,210,248,183,216,151,55,31,149,53,102,63,55,85,174,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,233,223,14,218,11,253,32,231,1,162,220,113,36,123,148,146,69,19,87,151,162,7,161,135,49,53,38,206,40,44,176,236,25,72,119,131,244,181,93,168,97,53,86,231,99,119,237,91,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,16,0,0,2,0,0,0,80,47,128,165,10,188,172,209,94,96,43,112,33,152,124,224,72,211,198,90,22,146,76,86,114,212,205,105,115,46,135,22,83,229,33,80,210,190,4,127,225,168,104,189,188,131,188,107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,122,41,248,38,17,235,39,144,200,99,63,213,157,124,112,168,208,237,217,92,55,222,32,41,173,215,38,235,207,23,155,185,225,49,189,171,142,160,227,116,144,42,144,238,22,206,107,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],\"cek\":[1,0,0,0,0,14,0,0,4,16,0,0,2,0,0,0,2,0,0,0,159,96,59,105,216,59,85,56,50,200,125,76,87,130,37,233,174,20,28,60,111,117,79,234,170,87,33,148,31,17,146,105,118,208,102,89,95,109,98,170,179,76,167,31,223,120,47,205,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,136,117,34,148,96,112,35,37,186,222,99,58,101,229,120,234,96,16,118,186,64,182,167,183,197,41,174,2,212,240,147,187,189,196,111,2,91,130,178,191 ,201,196,104,143,30,230,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,0,0,1,1,0,0,1,78,121,130,103,93,92,103,148,22,138,57,230,196,116,53,178,154,144,158,59,177,38,222,246,54,21,214,116,37,32,119,207,21,47,29,218,20,169,22,2 16,175,89,42,238,236,105,207,252,228,82,28,103,74,57,104,196,40,36,0,113,31,113,22,40,30,52,142,95,104,132,194,6,193,160,138,168,240,184,223,90,151,246,218,31,86,124,78,17,242,219,149,73,49,58,9,63,169,45,58,141,112,245,189,66,138,182,237,150,9,179,84,173,118,245,54,184,228,221,136,116,76,17,156,49,110,144,189,203,128,56,95,13,110,146,221,213,123,217,2,202,155,52,190,158,36,111,156,171,166,250,211,225,29,43,98,10,158,125,10,94,208,214,133,171,156,37,157,61,179,98,212,51,250,114,123,124,29,85,79,60,57,99,79,69,112,155,241,232,146,88,127,52,34,234,234,246,201,94,63,5,236,101,91,110,20,89,103,43,128,85,236,255,33,26,218,51,113,170,246,146,83,103,238,86,134,232,206,68,34,173,236,113,163,4,119,80,110,91,38,204,114,57,186,185,155,90,61,69,170,76,20,70,149,66,56,128,106,186,213,188,40,47,236,123,230,61,78,51,96,24,143,228,131,26,158,202,112,36,30,81,113,0,191,82,216,89,103,115,156,237,146,230,243,228,37,150,214,176,238,186,151,254,19,109,61,253,1,135,182,53,101,119,70,191,183,6,72,121,88,1 94,41,150,114,180,178,223,232,87,15,84,39,81,68,167,196,183,224,197,17,118,48,210,195,146,18,175,54,49,23,91,131,40,111,148,183,102,210,221,140,211,85,202,209,22,179,2,106,221,107,113,133,15,129,86,226,170,210,213,15,219,104,225,134,94,241,159,170,132,116,58,181,245,91,96,200,138,12,82,83,19,9,92,178,60,110,225,149,252,121,223,252,15,59,1,232,168,142,141,221,158,120,201,154,140,93,121,55,1,117,35,204,199,136,105,116,17,145,13,16,79,100,23,146,18,118,73,21,10,172,145,124,234,197,100,131,70,31,95,200,62,109,34,186,57,125,27,36,56,229,219,113,146,10,219,81,189,5,150,36,8,238,13,126,101,239,147,68,123,22,10,3,143,81,197,122,249,26,126,171,41,32,80,79,238,92,193,5,27,101,53,145,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}}}" + "extra-params": "{\"workload_id\":\"fakeid\",\"build\":{\"version\":{\"major\":1,\"minor\":49},\"build\":6},\"chain\":{\"ca\":{\"ask\":[1,0,0,0,115,71,140,5,204,23,75,254,176,110,113,143,167,93,195,200,148,195,142,65,119,208,71,146,146,167,174,103,29,8,63,182,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,16,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,63,43,47,122,197,241,194,234,12,143,84,104,87,22,100,174,45,197,23,230,72,168,40,81,179,72,4,40,60,181,69,206,182,128,239,27,45,135,34,2,46,253,163,74,128,7,68,60,4,10,149,15,133,124,222,56,236,200,40,88,228,206,230,249,116,224,84,48,82,61,248,90,64,171,18,37,196,225,57,233,180,128,222,225,10,33,171,194,253,233,185,247,239,160,134,62,211,10,253,184,185,145,253,130,118,62,81,98,14,114,248,56,184,202,71,227,200,237,18,64,141,163,47,240,134,122,78,230,105,188,63,176,10,193,80,88,88,142,213,194,20,77,2,61,228,112,82,2,37,222,22,176,80,136,98,239,111,171,118,99,254,103,165,125,217,241,196,161,38,123,21,107,0,231,67,174,89,162,169,220,76,54,32,1 64,170,177,87,20,164,123,108,14,155,125,234,142,49,115,156,239,227,236,200,37,161,1,217,248,247,197,108,238,60,162,61,88,100,75,46,125,126,111,146,130,212,111,129,137,96,164,75,216,183,1,53,119,155,144,215,60,102,27,162,40,222,153,109,9,38,36,248,35,13,174,165,79,80,218,163,200,250,20,130,170,97,133,119,91,29,252,32,132,150,151,164,142,157,10,244,201,151,30,165,223,116,19,125,155,214,135,149,141,75,69,228,164,199,3,119,76,109,13,171,240,204,52,10,18,183,149,135,112,91,10,90,52,147,138,91,45,209,0,92,210,138,130,120,179,91,248,248,190,254,140,142,194,91,76,34,44,97,50,80,238,219,4,199,105,18,229,135,241,35,215,61,80,126,159,136,127,167,65,21,185,62,201,170,232,185,155,189,56,143,39,204,237,237,108,20,27,219,191,94,43,7,100,81,151,210,63,238,179,160,225,174,183,116,200,6,201,164,229,240,65,155,63,145,74,175,117,165,14,13,220,100,196,78,244,233,210,129,113,187,176,164,98,249,230,136,185,4,100,38,244,149,41,176,7,249,75,231,137,83,63,26,140,221,16,64,213,44,35,59,102,206,44,101,113,114, 183,23,86,209,1,55,53,123,105,41,136,89,139,123,93,114,156,49,206,14,148,141,115,63,217,237,151,41,90,221,33,179,180,9,78,228,203,182,229,127,101,137,64,77,184,125,83,179,174,157,77,157,29,185,136,76,42,233,184,162,204,204,252,118,213,73,13,252,89,116,238,109,71,216,119,150,198,214,240,151,58,88,109,241,99,223,250,251,246,50,139,241,246,168,163,245,184,97,212,151,101,12,103,55,51,199,127,1,248,4,176,186,130,156,211,34,226,170,66,247,5,89,133,26,119,241,157,218,249,123,7,90,126,133,56,5,70,114,214,153,129,38,97,30,30,20,49,15,94,140,72,169,50,188,181,169,219,166,87,132,244,102,85,13,97,209,205,148,246,120,122,244,138,94,98,36,130,61,213,203,23,58,42,169,105,12,46,173,42,58,100,87,217,78,46,187,103,52,221,125,55,42,196,86,163,253,12,23,176,124,169,72,153,73,129,150,17,253,224,108,134,58,164,54,85,217,141,112,177,243,251,187,214,15,73,99,8,21,16,235,172,223,71,131,245,154,152,150,243,28,124,103,19,91,207,206,148,44,144,23,182,241,56,171,29,127,28,109,181,162,184,123,208,22,153,173,14,1 37,177,161,126,48,236,185,220,191,188,27,238,40,22,165,9,68,148,175,75,183,250,225,103,74,212,40,194,47,177,219,109,70,209,139,91,89,139,13,136,169,43,148,142,73,221,107,77,66,157,123,26,206,157,171,252,195,111,50,44,175,255,151,108,212,203,213,56,248,68,188,8,207,232,249,34,9,118,21,92,238,108,206,66,9,92,96,253,229,9,12,63,249,3,217,199,162,112,200,190,103,4,88,64,3,66,211,106,236,191,171,9,153,112,41,134,179,65,165,230,94,78,153,18,194,149,94,107,117,196,83,124,219,42,247,75,190,92,39,58,50,176,96,203,131,41,19,130,113,209,26,157,110,32,186,197,47,153,168,124,206,49,97,44,175,91,168,82,214,56,3,145,132,181,204,70,250,53,96,135,124,20,240,58,200,234,235,215,147,176,204,239,123,40,113,204,43,191,48,76,213,121,50,166,90,173,170,160,213,163,164,93,132,84,19,248,137,142,56,79,199,175,73,86,194,5,114,53,209,0,58,108,106,90,77,141,135,121,249,231,196,146,142,207,48,59,92,129,67,48,88,251,10,135,246,165,105,135,67,35,176,156,202,254,117,8,48,90,94,222,35,61,227,114,93,92,148,199,76,132,2 09,19,192,151,251,165,0],\"ark\":[1,0,0,0,148,195,142,65,119,208,71,146,146,167,174,103,29,8,63,182,148,195,142,65,119,208,71,146,146,167,174,103,29,8,63,182,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,16,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,101,69,18,90,99,93,134,223,35,11,244,65,110,223,241,64,232,181,32,127,114,122,239,114,195,20,12,153,229,131,117,199,179,251,166,112,121,237,92,100,209,75,1,214,201,79,140,83,210,245,124,124,124,205,244,232,226,218,173,216,48,168,32,164,160,227,239,170,144,190,66,140,61,155,49,182,120,164,214,170,198,168,104,233,195,28,105,176,158,49,187,114,75,5,204,77,195,159,49,121,80,147,209,43,30,194,247,237,210,72,158,207,234,9,126,73,122,218,155,36,35,97,220,120,61,67,103,51,252,172,207,69,46,91,134,172,98,75,23,180,0,147,230,39,128,254,45,66,226,155,183,228,157,67,119,115,170,80,50,245,149,173,189,107,28,144,94,236,173,92,204,19,230,122,98,137,104,44,187,143,241,56,243,98,96,19,33,243,201,134,79,229,146,67,5,250,236,10,65,27,71,213,177,69,52,68,121,1 30,100,112,184,172,43,158,82,252,255,3,41,7,172,249,34,91,51,114,207,197,68,108,201,96,19,135,40,242,237,155,229,109,106,30,160,108,160,3,204,196,196,146,227,126,197,10,47,255,157,161,166,215,183,3,123,63,140,39,227,223,177,122,61,72,253,135,29,74,135,233,194,101,233,91,205,110,184,180,162,243,79,52,98,130,57,13,162,92,11,38,230,213,231,207,133,21,202,237,238,81,5,101,128,219,62,154,94,104,63,168,42,100,46,217,226,7,170,188,184,122,12,254,56,174,87,44,61,54,238,119,71,235,180,192,142,175,239,248,129,109,230,179,214,216,57,226,29,70,23,57,107,222,75,142,154,50,124,63,238,79,77,115,212,139,95,82,114,61,238,58,80,38,38,171,97,128,39,106,60,75,182,177,82,67,220,233,254,221,95,188,59,214,82,173,55,71,57,242,4,135,68,115,255,87,56,247,109,145,241,41,126,62,93,230,78,170,172,216,115,88,199,138,205,204,210,192,68,214,90,91,52,172,71,212,148,168,144,109,94,209,212,199,212,241,40,191,95,114,178,24,230,109,113,35,37,224,91,70,199,208,187,66,63,47,161,73,73,33,113,212,243,213,99,87,141,91,96,24 3,213,23,108,181,168,219,146,197,62,152,21,219,37,182,162,150,137,232,117,78,18,217,121,183,208,29,152,74,82,177,211,8,172,171,157,99,118,8,199,25,93,59,30,118,134,67,95,169,169,10,57,34,56,246,89,104,249,13,54,171,137,59,214,62,36,29,245,54,75,69,190,138,184,88,127,202,244,148,52,128,217,206,65,244,180,29,37,152,253,148,65,117,251,170,156,7,193,105,216,141,147,85,241,74,47,252,55,2,183,76,26,127,15,203,35,5,60,189,154,58,66,150,180,40,213,67,122,15,169,226,108,246,72,197,62,143,105,19,22,236,251,241,67,27,73,248,232,185,95,61,196,173,220,9,47,10,92,166,232,165,184,244,54,26,217,135,246,55,15,34,144,225,181,110,53,230,139,49,193,190,93,232,106,105,235,221,154,14,83,189,97,51,5,193,15,167,163,222,119,200,98,238,233,25,137,167,131,182,248,33,172,161,246,186,234,35,69,65,166,166,99,58,194,104,73,93,229,230,93,110,104,40,56,147,19,160,218,110,146,55,180,122,92,39,174,114,64,122,116,174,39,29,53,246,12,94,69,57,124,224,190,83,78,217,77,242,242,27,188,173,131,15,179,90,158,177,102,15,52,2 29,139,221,193,127,170,69,171,213,15,168,80,245,190,79,40,209,241,60,41,78,89,8,222,126,114,62,167,4,138,56,106,95,44,119,192,163,162,75,235,230,15,171,190,0,210,147,255,147,171,215,79,66,106,226,31,198,166,20,145,72,103,88,66,255,36,101,80,132,21,105,140,20,39,9,247,174,97,90,153,37,179,107,45,58,252,188,98,98,67,24,143,247,178,31,241,150,11,76,218,32,188,113,7,202,52,51,17,191,178,129,244,99,127,7,117,191,156,63,226,213,189,47,54,225,130,60,195,47,231,193,172,230,113,169,117,119,23,36,191,235,229,120,158,166,163,50,108,239,90,139,86,41,121,54,185,228,100,186,75,165,149,113,255,125,204,11,244,90,254,34,57,70,27,44,192,88,147,163,4,154,68,154,167,44,88,42,176,109,186,73,59,114,103,31,102,137,97,110,238,89,223,80,143,97,82,16,129,222,124,54,55,26,191,51,32,154,137,131,100,127,168,241,133,57,186,115,76,173,83,10,105,47,127,141,7,209,144,174,156,189,59,137,45,200,30,192,124,66,76,31,6,97,20,6,169,204,171]},\"sev\":{\"pdh\":[1,0,0,0,1,51,0,0,3,16,0,0,3,0,0,0,2,0,0,0,236,142,17,36,204,71 ,108,223,181,127,119,253,201,131,182,132,50,37,64,152,71,209,126,29,62,154,144,219,112,170,146,33,209,152,147,146,184,35,40,240,247,122,134,247,173,41,185,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,235,20,97,145,30,99,73,206,12,137,126,141,79,125,155,218,205,218,40,38,167,21,43,155,53,79,145,121,204,45,57,132,168,43,230,23,221,61,4,190,146,100,40,38,245,46,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,16,0,0,2,0,0,0,48,13,71,224,9,17,44,43,96,48,33,117,26,59,13,73,197,191,137,191,150,215,160,187,39,156,160,109,139,193,159,168,70,196,201,196,109,246,235,221,224,244,128,238,89,18,25,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,234,22,167,205,129,119,121,59,75,110,116,107,186,163,32,125,103,159,48,157,137,76,42,99,226,150,143,36,249,160,112,187,163,97,113,138,125,148,92,83,221,145,189,36,244,44,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],\"pek\":[1,0,0,0,1,51,0,0,2,16,0,0,2,0,0,0,2,0,0,0,109,180,250,189,48,254,207,146,220,182,120,151,197,137,203,147,228,103,27,194,196,247,187,69,57,185,102,252,65,105,204,111,178,254,117,77,30,88,40,98,0,176,5,71,77,129,237,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,245,150,181,175,230,34,68,226,47,80,90,82,141,81,128,230,90,139,105,138,167,172,149,255,208,94,195,205,85,89,133,6,131,194,243,153,56,83,40,165,213,170,161,117,99,22,160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,16,0,0,2,0,0,0,230,146,52,120,157,101,140,107,240,82,104,44,38,81,17,13,138,211,216,229,35,236,3,241,238,98,65,205,168,204,71,141,75,129,136,102,79,5,131,27,118,73,220,248,169,112,173,244,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,107,163,188,106,101,5,46,56,105,104,3,213,106,231,185,187,177,10 ,7,222,250,33,141,221,194,82,13,240,44,127,123,245,82,134,246,148,25,221,52,90,112,210,145,13,195,5,162,51,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,16,0,0,2,0,0,0,143,236,132,36,77,201,133,197,214,227,189,234,82,30,46,244,80,201,118,224,107,251,208,151 ,110,32,21,125,76,215,83,254,2,225,43,141,122,150,222,213,26,240,159,79,248,154,251,161,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,208,114,140,146,83,60,134,56,55,34,120,113,180,114,211,220,204,155,216,119,112,217,109,215,10,131,205,216,197,65,230,10,210,66,101,148,196,214,248,250,11,59,207,111,66,87,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],\"oca\":[1,0,0,0,1,51,0,0,1,16,0,0,2,0,0,0,2,0,0,0,174,234,23,236,230,27,55,192,166,176,152,22,210,198,136,232,48,140,85,172,139,146,215,173,203,229,243,218,154,190,221,65,241,21,210,248,183,216,151,55,31,149,53,102,63,55,85,174,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,233,223,14,218,11,253,32,231,1,162,220,113,36,123,148,146,69,19,87,151,162,7,161,135,49,53,38,206,40,44,176,236,25,72,119,131,244,181,93,168,97,53,86,231,99,119,237,91,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,16,0,0,2,0,0,0,80,47,128,165,10,188,172,209,94,96,43,112,33,152,124,224,72,211,198,90,22,146,76,86,114,212,205,105,115,46,135,22,83,229,33,80,210,190,4,127,225,168,104,189,188,131,188,107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,122,41,248,38,17,235,39,144,200,99,63,213,157,124,112,168,208,237,217,92,55,222,32,41,173,215,38,235,207,23,155,185,225,49,189,171,142,160,227,116,144,42,144,238,22,206,107,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],\"cek\":[1,0,0,0,0,14,0,0,4,16,0,0,2,0,0,0,2,0,0,0,159,96,59,105,216,59,85,56,50,200,125,76,87,130,37,233,174,20,28,60,111,117,79,234,170,87,33,148,31,17,146,105,118,208,102,89,95,109,98,170,179,76,167,31,223,120,47,205,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,136,117,34,148,96,112,35,37,186,222,99,58,101,229,120,234,96,16,118,186,64,182,167,183,197,41,174,2,212,240,147,187,1 89,196,111,2,91,130,178,191,201,196,104,143,30,230,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,0,0,1,1,0,0,1,78,121,130,103,93,92,103,148,22,138,57,230,196,116,53,178,154,144,158,59,177,38,222,246,54,21,214,116,37,32,119,2 07,21,47,29,218,20,169,22,216,175,89,42,238,236,105,207,252,228,82,28,103,74,57,104,196,40,36,0,113,31,113,22,40,30,52,142,95,104,132,194,6,193,160,138,168,240,184,223,90,151,246,218,31,86,124,78,17,242,219,149,73,49,58,9,63,169,45,58,141,112,245,189,66,138,182,237,150,9,179,84,173,118,245,54,184,228,221,136,116,76,17,156,49,110,144,189,203,128,56,95,13,110,146,221,213,123,217,2,202,155,52,190,158,36,111,156,171,166,250,211,225,29,43,98,10,158,125,10,94,208,214,133,171,156,37,157,61,179,98,212,51,250,114,123,124,29,85,79,60,57,99,79,69,112,155,241,232,146,88,127,52,34,234,234,246,201,94,63,5,236,101,91,110,20,89,103,43,128,85,236,255,33,26,218,51,113,170,246,146,83,103,238,86,134,232,206,68,34,173,236,113,163,4,119,80,110,91,38,204,114,57,186,185,155,90,61,69,170,76,20,70,149,66,56,128,106,186,213,188,40,47,236,123,230,61,78,51,96,24,143,228,131,26,158,202,112,36,30,81,113,0,191,82,216,89,103,115,156,237,146,230,243,228,37,150,214,176,238,186,151,254,19,109,61,253,1,135,182,53,101,1 19,70,191,183,6,72,121,88,194,41,150,114,180,178,223,232,87,15,84,39,81,68,167,196,183,224,197,17,118,48,210,195,146,18,175,54,49,23,91,131,40,111,148,183,102,210,221,140,211,85,202,209,22,179,2,106,221,107,113,133,15,129,86,226,170,210,213,15,219,104,225,134,94,241,159,170,132,116,58,181,245,91,96,200,138,12,82,83,19,9,92,178,60,110,225,149,252,121,223,252,15,59,1,232,168,142,141,221,158,120,201,154,140,93,121,55,1,117,35,204,199,136,105,116,17,145,13,16,79,100,23,146,18,118,73,21,10,172,145,124,234,197,100,131,70,31,95,200,62,109,34,186,57,125,27,36,56,229,219,113,146,10,219,81,189,5,150,36,8,238,13,126,101,239,147,68,123,22,10,3,143,81,197,122,249,26,126,171,41,32,80,79,238,92,193,5,27,101,53,145,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}}}" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/src/libkrun/Cargo.toml new/libkrun-1.4.8/src/libkrun/Cargo.toml --- old/libkrun-1.4.4/src/libkrun/Cargo.toml 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/src/libkrun/Cargo.toml 2022-11-07 17:42:47.000000000 +0100 @@ -1,6 +1,6 @@ [package] name = "libkrun" -version = "1.4.4" +version = "1.4.8" authors = ["Sergio Lopez <s...@redhat.com>"] edition = "2021" build = "build.rs" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/src/vmm/src/builder.rs new/libkrun-1.4.8/src/vmm/src/builder.rs --- old/libkrun-1.4.4/src/vmm/src/builder.rs 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/src/vmm/src/builder.rs 2022-11-07 17:42:47.000000000 +0100 @@ -566,7 +566,7 @@ #[cfg(feature = "amd-sev")] let initrd_config = Some(InitrdConfig { address: GuestAddress(arch::x86_64::layout::INITRD_SEV_START as u64), - size: arch::x86_64::layout::INITRD_SEV_SIZE, + size: initrd_bundle.size, }); #[cfg(not(feature = "amd-sev"))] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/src/vmm/src/linux/amdsev.rs new/libkrun-1.4.8/src/vmm/src/linux/amdsev.rs --- old/libkrun-1.4.4/src/vmm/src/linux/amdsev.rs 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/src/vmm/src/linux/amdsev.rs 2022-11-07 17:42:47.000000000 +0100 @@ -11,7 +11,7 @@ use codicon::{Decoder, Encoder}; use curl::easy::{Easy, List}; -use kbs_types::{Attestation, Challenge, Request, SevChallenge, SevRequest, Tee, TeePubKey}; +use kbs_types::{Attestation, Challenge, Request, SevChallenge, SevRequest, TeePubKey}; use kvm_bindings::{kvm_enc_region, kvm_sev_cmd}; use kvm_ioctls::VmFd; use procfs::CpuInfo; @@ -265,7 +265,6 @@ tee_config: TeeConfig, fw: Firmware, start: Start, - session_id: Option<String>, sev_es: bool, curl_agent: Arc<Mutex<CurlAgent>>, } @@ -277,16 +276,19 @@ let chain = get_and_store_chain(&mut fw, tee_config, &mut curl_agent)?; let mut sev_es = false; - let (start, session_id) = if !tee_config.attestation_url.is_empty() { + let start = if !tee_config.attestation_url.is_empty() { let build = fw .platform_status() .map_err(|_| Error::PlatformStatus)? .build; - let sev_request = SevRequest { build, chain }; + let sev_request = SevRequest { + build, + chain, + workload_id: tee_config.workload_id.clone(), + }; let request = Request { version: "0.0.0".to_string(), - workload_id: tee_config.workload_id.clone(), tee: tee_config.tee.clone(), extra_params: serde_json::json!(sev_request).to_string(), }; @@ -312,28 +314,25 @@ sev_es = true; } - (sev_challenge.start, Some(sev_challenge.id)) + sev_challenge.start } else { let policy = Policy::default(); let session = Session::try_from(policy).map_err(Error::SessionFromPolicy)?; - (session.start(chain).map_err(Error::StartFromSession)?, None) + session.start(chain).map_err(Error::StartFromSession)? }; Ok(AmdSev { tee_config: tee_config.clone(), fw, start, - session_id, sev_es, curl_agent: Arc::new(Mutex::new(curl_agent)), }) } fn sev_init(&self, vm_fd: &VmFd) -> Result<(), kvm_ioctls::Error> { - let id = if self.sev_es { 1 } else { 0 }; - let mut cmd = kvm_sev_cmd { - id, + id: u32::from(self.sev_es), data: 0, error: 0, sev_fd: self.fw.as_raw_fd() as u32, @@ -525,14 +524,12 @@ if !self.tee_config.attestation_url.is_empty() { let tee_pubkey = TeePubKey { - algorithm: "".to_string(), - pubkey_length: "".to_string(), - pubkey: "".to_string(), + kty: "".to_string(), + alg: "".to_string(), + k: "".to_string(), }; let attestation = Attestation { - nonce: self.session_id.as_ref().unwrap().clone(), - tee: Tee::Sev, tee_pubkey, tee_evidence: serde_json::json!(measurement).to_string(), }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkrun-1.4.4/src/vmm/src/vmm_config/fs.rs new/libkrun-1.4.8/src/vmm/src/vmm_config/fs.rs --- old/libkrun-1.4.4/src/vmm/src/vmm_config/fs.rs 2022-08-31 10:15:12.000000000 +0200 +++ new/libkrun-1.4.8/src/vmm/src/vmm_config/fs.rs 2022-11-07 17:42:47.000000000 +0100 @@ -1,10 +1,12 @@ use std::collections::VecDeque; use std::fmt; -use std::path::PathBuf; +use std::path::{Path, PathBuf}; use std::sync::{Arc, Mutex}; use devices::virtio::{Fs, FsError}; +const ROSETTA_DIR: &str = "/Library/Apple/usr/libexec/oah/RosettaLinux"; + #[derive(Debug)] pub enum FsConfigError { /// Failed to create the fs device. @@ -48,7 +50,25 @@ } pub fn create_fs(config: FsDeviceConfig) -> Result<Fs> { - devices::virtio::Fs::new(config.fs_id, config.shared_dir, config.mapped_volumes) + let mapped_volumes = if cfg!(target_os = "macos") && std::fs::metadata(ROSETTA_DIR).is_ok() + { + if let Some(config_mapped_volumes) = config.mapped_volumes { + let mut mapped_volumes = config_mapped_volumes.to_vec(); + mapped_volumes.push(( + Path::new(ROSETTA_DIR).to_path_buf(), + Path::new("/.rosetta").to_path_buf(), + )); + Some(mapped_volumes) + } else { + Some(vec![( + Path::new(ROSETTA_DIR).to_path_buf(), + Path::new("/.rosetta").to_path_buf(), + )]) + } + } else { + config.mapped_volumes + }; + devices::virtio::Fs::new(config.fs_id, config.shared_dir, mapped_volumes) .map_err(FsConfigError::CreateFsDevice) } } ++++++ libkrun.obsinfo ++++++ --- /var/tmp/diff_new_pack.MILvoC/_old 2022-12-05 18:00:45.364436158 +0100 +++ /var/tmp/diff_new_pack.MILvoC/_new 2022-12-05 18:00:45.368436180 +0100 @@ -1,5 +1,5 @@ name: libkrun -version: 1.4.4 -mtime: 1661933712 -commit: 1b239cb7d0576ab9e2b845895052d0d0e0871dba +version: 1.4.8 +mtime: 1667839367 +commit: dc7182c9aa666dc4c47ca09f73fe389e63e69a03 ++++++ new-kvm-ioctl.patch ++++++ --- a/src/vmm/src/linux/vstate.rs +++ b/src/vmm/src/linux/vstate.rs @@ -1166,7 +1166,7 @@ impl Vcpu { } // Documentation specifies that below kvm exits are considered // errors. - VcpuExit::FailEntry => { + VcpuExit::FailEntry(..) => { error!("Received KVM_EXIT_FAIL_ENTRY signal"); Err(Error::VcpuUnhandledKvmExit) } ++++++ vendor.tar.xz ++++++ /work/SRC/openSUSE:Factory/libkrun/vendor.tar.xz /work/SRC/openSUSE:Factory/.libkrun.new.1835/vendor.tar.xz differ: char 26, line 1