diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..4020bcb --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,14 @@ +module.exports = { + env: { browser: true, es2020: true }, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:react-hooks/recommended', + ], + parser: '@typescript-eslint/parser', + parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, + plugins: ['react-refresh'], + rules: { + 'react-refresh/only-export-components': 'warn', + }, +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..43d1fd0 --- /dev/null +++ b/Makefile @@ -0,0 +1,16 @@ +.PHONY: build +build: + npm run build + +.PHONY: dev +dev: + npm run dev + +.PHONY: deps +deps: + # protos + deno run -rA misc/otorp.ts > public/protos + # src/messages + deno run -rA misc/dump_registry.ts /Applications/Numbers.app/Contents/MacOS/Numbers > src/messages/numbers.ts + deno run -rA misc/dump_registry.ts /Applications/Keynote.app/Contents/MacOS/Keynote > src/messages/keynote.ts + deno run -rA misc/dump_registry.ts /Applications/Pages.app/Contents/MacOS/Pages > src/messages/pages.ts diff --git a/README.md b/README.md new file mode 100644 index 0000000..685389c --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# iwa-inspector + +source for + +`iwa-inspector` is a tool for inspecting iWork archives. + +When a file is loaded, a table will display the messages in the file. + +When a message is selected, the page will display the Protocol Buffers +definition for the message as well as an inspector for the message and metadata. + +Clicking on a `.TSP.Reference` ID will jump to the referenced message. + +Right-clicking a custom message type will show a context menu with options to +copy the raw byte representation (array of numbers) or parsed object (JSON). + +## Development + +`make dev` starts the dev server. + +`make build` generates the static site. + +## Refreshing data + +`make deps` requires a SIP-disabled Intel Mac. The last run used v13.0 apps. diff --git a/index.html b/index.html new file mode 100644 index 0000000..8e44caa --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + + SheetJS IWA Inspector + + + +
+ + + diff --git a/misc/dump_registry.ts b/misc/dump_registry.ts new file mode 100644 index 0000000..4b6e4ea --- /dev/null +++ b/misc/dump_registry.ts @@ -0,0 +1,57 @@ +#!/usr/bin/env -S deno run -A +/*! dump_registry.ts (C) 2022-present SheetJS LLC -- https://sheetjs.com */ + +/* +NOTE: this script requires an Intel Mac, Numbers, LLDB, and Deno + +USAGE: deno run -A https://oss.sheetjs.com/notes/iwa/dump_registry.ts +*/ + +if(Deno.build.os != "darwin") throw `Must run in macOS!`; +if(Deno.build.arch != "x86_64") throw `Must run on Intel Mac (Apple Silicon currently unsupported)`; + +{ + const p = Deno.run({cmd:["csrutil","status"],stdin:"piped",stdout:"piped" }); + const [status, stdout] = await Promise.all([ p.status(), p.output() ]); + await p.close(); + const data = new TextDecoder().decode(stdout); + //if(data.includes("enabled")) throw `SIP must be disabled!`; +} + +const p = Deno.run({ cmd: `lldb ${Deno?.args?.[0] || "/Applications/Numbers.app/Contents/MacOS/Numbers"} -a x86_64`.split(" "), + stdin: "piped", stdout: "piped" +}); + +const doit = (x: string) => p?.stdin?.write(new TextEncoder().encode(x)) + +const cmds = [ + "b -[NSApplication _sendFinishLaunchingNotification]", + "settings set auto-confirm 1", + "breakpoint command add 1.1", + "po [TSPRegistry sharedRegistry]", + "process kill", + "exit", + "DONE", + "run", +]; +for(const cmd of cmds) await doit(cmd + "\n"); + +/* LLDB does not exit normally, setTimeout workaround */ +setTimeout(() => p.kill("SIGKILL"), 15000) + +const [status, stdout] = await Promise.all([ p.status(), p.output() ]); +await p.close(); + +const data = new TextDecoder().decode(stdout); +const res = data.match(/_messageTypeToPrototypeMap = {([^]*?)}/m)?.[1]; +if(!res) throw `Could not find map!` +const rows = res.split(/[\r\n]+/).map(r => r.trim().split(/\s+/)).filter(x => x.length > 1); +rows.sort((l, r) => +l[0] - +r[0]); +console.log(`export default {`); +rows.forEach(r => { + if(r[3] == "null") return; + console.log(` ${r[0]}: ".${r[3]}",`); +}); +console.log(`} as {[key: number]: string};`); + +//console.log(Object.fromEntries(rows.map(r => [r[0], r[3]]).filter(r => r[1] != "null"))); diff --git a/misc/otorp.ts b/misc/otorp.ts new file mode 100644 index 0000000..4d07cb3 --- /dev/null +++ b/misc/otorp.ts @@ -0,0 +1,625 @@ +#!/usr/bin/env -S deno run -A +/*! otorp (C) 2021-present SheetJS -- http://sheetjs.com */ +import { resolve } from "https://deno.land/std@0.171.0/path/mod.ts"; +import { TerminalSpinner } from "https://deno.land/x/spinners/mod.ts"; + +// #region util.ts + +var u8_to_dataview = (array: Uint8Array): DataView => new DataView(array.buffer, array.byteOffset, array.byteLength); + +var u8str = (u8: Uint8Array): string => new TextDecoder().decode(u8); + +var u8concat = (u8a: Uint8Array[]): Uint8Array => { + var len = u8a.reduce((acc: number, x: Uint8Array) => acc + x.length, 0); + var out = new Uint8Array(len); + var off = 0; + u8a.forEach(u8 => { out.set(u8, off); off += u8.length; }); + return out; +}; + +var indent = (str: string, depth: number /* = 1 */): string => str.split(/\n/g).map(x => x && " ".repeat(depth) + x).join("\n"); + +function u8indexOf(u8: Uint8Array, data: string | number | Uint8Array, byteOffset?: number): number { + //if(Buffer.isBuffer(u8)) return u8.indexOf(data, byteOffset); + if(typeof data == "number") return u8.indexOf(data, byteOffset); + var l = byteOffset; + if(typeof data == "string") { + outs: while((l = u8.indexOf(data.charCodeAt(0), l)) > -1) { + ++l; + for(var j = 1; j < data.length; ++j) if(u8[l+j-1] != data.charCodeAt(j)) continue outs; + return l - 1; + } + } else { + outb: while((l = u8.indexOf(data[0], l)) > -1) { + ++l; + for(var j = 1; j < data.length; ++j) if(u8[l+j-1] != data[j]) continue outb; + return l - 1; + } + } + return -1; +} + +// #endregion + +// #region proto.ts + +type Ptr = [number]; + +/** Parse an integer from the varint that can be exactly stored in a double */ +function parse_varint49(buf: Uint8Array, ptr?: Ptr): number { + var l = ptr ? ptr[0] : 0; + var usz = buf[l] & 0x7F; + varint: if(buf[l++] >= 0x80) { + usz |= (buf[l] & 0x7F) << 7; if(buf[l++] < 0x80) break varint; + usz |= (buf[l] & 0x7F) << 14; if(buf[l++] < 0x80) break varint; + usz |= (buf[l] & 0x7F) << 21; if(buf[l++] < 0x80) break varint; + usz += (buf[l] & 0x7F) * Math.pow(2, 28); ++l; if(buf[l++] < 0x80) break varint; + usz += (buf[l] & 0x7F) * Math.pow(2, 35); ++l; if(buf[l++] < 0x80) break varint; + usz += (buf[l] & 0x7F) * Math.pow(2, 42); ++l; if(buf[l++] < 0x80) break varint; + } + if(ptr) ptr[0] = l; + return usz; +} + +function write_varint49(v: number): Uint8Array { + var usz = new Uint8Array(7); + usz[0] = (v & 0x7F); + var L = 1; + sz: if(v > 0x7F) { + usz[L-1] |= 0x80; usz[L] = (v >> 7) & 0x7F; ++L; + if(v <= 0x3FFF) break sz; + usz[L-1] |= 0x80; usz[L] = (v >> 14) & 0x7F; ++L; + if(v <= 0x1FFFFF) break sz; + usz[L-1] |= 0x80; usz[L] = (v >> 21) & 0x7F; ++L; + if(v <= 0xFFFFFFF) break sz; + usz[L-1] |= 0x80; usz[L] = ((v/0x100) >>> 21) & 0x7F; ++L; + if(v <= 0x7FFFFFFFF) break sz; + usz[L-1] |= 0x80; usz[L] = ((v/0x10000) >>> 21) & 0x7F; ++L; + if(v <= 0x3FFFFFFFFFF) break sz; + usz[L-1] |= 0x80; usz[L] = ((v/0x1000000) >>> 21) & 0x7F; ++L; + } + return usz.slice(0, L); +} + +/** Parse a 32-bit signed integer from the raw varint */ +function varint_to_i32(buf: Uint8Array): number { + var l = 0, i32 = buf[l] & 0x7F; + varint: if(buf[l++] >= 0x80) { + i32 |= (buf[l] & 0x7F) << 7; if(buf[l++] < 0x80) break varint; + i32 |= (buf[l] & 0x7F) << 14; if(buf[l++] < 0x80) break varint; + i32 |= (buf[l] & 0x7F) << 21; if(buf[l++] < 0x80) break varint; + i32 |= (buf[l] & 0x7F) << 28; + } + return i32; +} + +interface ProtoItem { + offset?: number; + data: Uint8Array; + type: number; +} +type ProtoField = Array +type ProtoMessage = Array; + +/** Shallow parse of a message */ +function parse_shallow(buf: Uint8Array): ProtoMessage { + var out: ProtoMessage = [], ptr: Ptr = [0]; + while(ptr[0] < buf.length) { + var off = ptr[0]; + var num = parse_varint49(buf, ptr); + var type = num & 0x07; num = Math.floor(num / 8); + var len = 0; + var res: Uint8Array; + if(num == 0) break; + switch(type) { + case 0: { + var l = ptr[0]; + while(buf[ptr[0]++] >= 0x80); + res = buf.slice(l, ptr[0]); + } break; + case 5: len = 4; res = buf.slice(ptr[0], ptr[0] + len); ptr[0] += len; break; + case 1: len = 8; res = buf.slice(ptr[0], ptr[0] + len); ptr[0] += len; break; + case 2: len = parse_varint49(buf, ptr); res = buf.slice(ptr[0], ptr[0] + len); ptr[0] += len; break; + case 3: // Start group + case 4: // End group + default: throw new Error(`PB Type ${type} for Field ${num} at offset ${off}`); + } + var v: ProtoItem = { offset: off, data: res, type }; + if(out[num] == null) out[num] = [v]; + else out[num].push(v); + } + return out; +} + +/** Serialize a shallow parse */ +function write_shallow(proto: ProtoMessage): Uint8Array { + var out: Uint8Array[] = []; + proto.forEach((field, idx) => { + field.forEach(item => { + out.push(write_varint49(idx * 8 + item.type)); + out.push(item.data); + }); + }); + return u8concat(out); +} + +function mappa(data: ProtoField, cb:(_:Uint8Array) => U): U[] { + if(!data) return []; + return data.map((d) => { try { + return cb(d.data); + } catch(e) { + var m = e.message?.match(/at offset (\d+)/); + if(m) e.message = e.message.replace(/at offset (\d+)/, "at offset " + (+m[1] + (d.offset||0))); + throw e; + }}); +} + +// #endregion + +// #region descriptor.ts + +var TYPES = [ + "error", + "double", + "float", + "int64", + "uint64", + "int32", + "fixed64", + "fixed32", + "bool", + "string", + "group", + "message", + "bytes", + "uint32", + "enum", + "sfixed32", + "sfixed64", + "sint32", + "sint64" +]; + + +interface FileOptions { + javaPackage?: string; + javaOuterClassname?: string; + javaMultipleFiles?: string; + goPackage?: string; +} +function parse_FileOptions(buf: Uint8Array): FileOptions { + var data = parse_shallow(buf); + var out: FileOptions = {}; + if(data[1]?.[0]) out.javaPackage = u8str(data[1][0].data); + if(data[8]?.[0]) out.javaOuterClassname = u8str(data[8][0].data); + if(data[11]?.[0]) out.goPackage = u8str(data[11][0].data); + return out; +} + + +interface EnumValue { + name?: string; + number?: number; +} +function parse_EnumValue(buf: Uint8Array): EnumValue { + var data = parse_shallow(buf); + var out: EnumValue = {}; + if(data[1]?.[0]) out.name = u8str(data[1][0].data); + if(data[2]?.[0]) out.number = varint_to_i32(data[2][0].data); + return out; +} + + +interface Enum { + name?: string; + value?: EnumValue[]; +} +function parse_Enum(buf: Uint8Array): Enum { + var data = parse_shallow(buf); + var out: Enum = {}; + if(data[1]?.[0]) out.name = u8str(data[1][0].data); + out.value = mappa(data[2], parse_EnumValue); + return out; +} +var write_Enum = (en: Enum, pkg?: string): string => { + var out = [`enum ${pkg ? `.${pkg}.` : ""}${en.name} {`]; + en.value?.forEach(({name, number}) => out.push(` ${name} = ${number};`)); + return out.concat(`}`).join("\n"); +}; + + +interface FieldOptions { + packed?: boolean; + deprecated?: boolean; +} +function parse_FieldOptions(buf: Uint8Array): FieldOptions { + var data = parse_shallow(buf); + var out: FieldOptions = {}; + if(data[2]?.[0]) out.packed = !!data[2][0].data; + if(data[3]?.[0]) out.deprecated = !!data[3][0].data; + return out; +} + + +interface Field { + name?: string; + extendee?: string; + number?: number; + label?: number; + type?: number; + typeName?: string; + defaultValue?: string; + options?: FieldOptions; +} +function parse_Field(buf: Uint8Array): Field { + var data = parse_shallow(buf); + var out: Field = {}; + if(data[1]?.[0]) out.name = u8str(data[1][0].data); + if(data[2]?.[0]) out.extendee = u8str(data[2][0].data); + if(data[3]?.[0]) out.number = varint_to_i32(data[3][0].data); + if(data[4]?.[0]) out.label = varint_to_i32(data[4][0].data); + if(data[5]?.[0]) out.type = varint_to_i32(data[5][0].data); + if(data[6]?.[0]) out.typeName = u8str(data[6][0].data); + if(data[7]?.[0]) out.defaultValue = u8str(data[7][0].data); + if(data[8]?.[0]) out.options = parse_FieldOptions(data[8][0].data); + return out; +} +function write_Field(field: Field): string { + var out = []; + var label = ["", "optional ", "required ", "repeated "][field.label||0] || ""; + var type = field.typeName || TYPES[field.type||69] || "s5s"; + var opts = []; + if(field.defaultValue) opts.push(`default = ${field.defaultValue}`); + if(field.options?.packed) opts.push(`packed = true`); + if(field.options?.deprecated) opts.push(`deprecated = true`); + var os = opts.length ? ` [${opts.join(", ")}]`: ""; + out.push(`${label}${type} ${field.name} = ${field.number}${os};`); + return out.length ? indent(out.join("\n"), 1) : ""; +} + + +function write_extensions(ext: Field[], xtra = false, coalesce = true): string { + var res: string[] = []; + var xt: Array<[string, Array]> = []; + ext.forEach(ext => { + if(!ext.extendee) return; + var row = coalesce ? + xt.find(x => x[0] == ext.extendee) : + (xt[xt.length - 1]?.[0] == ext.extendee ? xt[xt.length - 1]: null); + if(row) row[1].push(ext); + else xt.push([ext.extendee, [ext]]); + }); + xt.forEach(extrow => { + var out = [`extend ${extrow[0]} {`]; + extrow[1].forEach(ext => out.push(write_Field(ext))); + res.push(out.concat(`}`).join("\n") + (xtra ? "\n" : "")); + }); + return res.join("\n"); +} + + +interface ExtensionRange { start?: number; end?: number; } +interface MessageType { + name?: string; + nestedType?: MessageType[]; + enumType?: Enum[]; + field?: Field[]; + extension?: Field[]; + extensionRange?: ExtensionRange[]; +} +function parse_mtype(buf: Uint8Array): MessageType { + var data = parse_shallow(buf); + var out: MessageType = {}; + if(data[1]?.[0]) out.name = u8str(data[1][0].data); + if(data[2]?.length >= 1) out.field = mappa(data[2], parse_Field); + if(data[3]?.length >= 1) out.nestedType = mappa(data[3], parse_mtype); + if(data[4]?.length >= 1) out.enumType = mappa(data[4], parse_Enum); + if(data[6]?.length >= 1) out.extension = mappa(data[6], parse_Field); + if(data[5]?.length >= 1) out.extensionRange = data[5].map(d => { + var data = parse_shallow(d.data); + var out: ExtensionRange = {}; + if(data[1]?.[0]) out.start = varint_to_i32(data[1][0].data); + if(data[2]?.[0]) out.end = varint_to_i32(data[2][0].data); + return out; + }); + return out; +} +var write_mtype = (message: MessageType, pkg?: string): string => { + var out = [ `message ${pkg ? `.${pkg}.` : ""}${message.name} {` ]; + message.nestedType?.forEach(m => out.push(indent(write_mtype(m), 1))); + message.enumType?.forEach(en => out.push(indent(write_Enum(en), 1))); + message.field?.forEach(field => out.push(write_Field(field))); + if(message.extensionRange) message.extensionRange.forEach(er => out.push(` extensions ${er.start} to ${(er.end||0) - 1};`)); + if(message.extension?.length) out.push(indent(write_extensions(message.extension), 1)); + return out.concat(`}`).join("\n"); +}; + + +interface Descriptor { + name?: string; + package?: string; + dependency?: string[]; + messageType?: MessageType[]; + enumType?: Enum[]; + extension?: Field[]; + options?: FileOptions; +} +function parse_FileDescriptor(buf: Uint8Array): Descriptor { + var data = parse_shallow(buf); + var out: Descriptor = {}; + if(data[1]?.[0]) out.name = u8str(data[1][0].data); + if(data[2]?.[0]) out.package = u8str(data[2][0].data); + if(data[3]?.[0]) out.dependency = data[3].map(x => u8str(x.data)); + + if(data[4]?.length >= 1) out.messageType = mappa(data[4], parse_mtype); + if(data[5]?.length >= 1) out.enumType = mappa(data[5], parse_Enum); + if(data[7]?.length >= 1) out.extension = mappa(data[7], parse_Field); + + if(data[8]?.[0]) out.options = parse_FileOptions(data[8][0].data); + + return out; +} +var write_FileDescriptor = (pb: Descriptor): string => { + var out = [ +// 'syntax = "proto2";', +// '' + ]; +// if(pb.dependency) pb.dependency.forEach((n: string) => { if(n) out.push(`import "${n}";`); }); +// if(pb.package) out.push(`package ${pb.package};\n`); +/* if(pb.options) { + var o = out.length; + + if(pb.options.javaPackage) out.push(`option java_package = "${pb.options.javaPackage}";`); + if(pb.options.javaOuterClassname?.replace(/\W/g, "")) out.push(`option java_outer_classname = "${pb.options.javaOuterClassname}";`); + if(pb.options.javaMultipleFiles) out.push(`option java_multiple_files = true;`); + if(pb.options.goPackage) out.push(`option go_package = "${pb.options.goPackage}";`); + + if(out.length > o) out.push(''); + }*/ + + pb.enumType?.forEach(en => { if(en.name) out.push(write_Enum(en, pb.package) + "\n"); }); + pb.messageType?.forEach(m => { if(m.name) { var o = write_mtype(m, pb.package); if(o) out.push(o + "\n"); }}); + + if(pb.extension?.length) { + var e = write_extensions(pb.extension, true, false); + if(e) out.push(e); + } + return out.join("\n") + "\n"; +}; + +// #endregion + +// #region macho.ts + +interface MachOEntry { + type: number; + subtype: number; + offset: number; + size: number; + align?: number; + data: Uint8Array; +} +var parse_fat = (buf: Uint8Array): MachOEntry[] => { + var dv = u8_to_dataview(buf); + if(dv.getUint32(0, false) !== 0xCAFEBABE) throw new Error("Unsupported file"); + var nfat_arch = dv.getUint32(4, false); + var out: MachOEntry[] = []; + for(var i = 0; i < nfat_arch; ++i) { + var start = i * 20 + 8; + + var cputype = dv.getUint32(start, false); + var cpusubtype = dv.getUint32(start+4, false); + var offset = dv.getUint32(start+8, false); + var size = dv.getUint32(start+12, false); + var align = dv.getUint32(start+16, false); + + out.push({ + type: cputype, + subtype: cpusubtype, + offset, + size, + align, + data: buf.slice(offset, offset + size) + }); + } + return out; +}; +var parse_macho = (buf: Uint8Array): MachOEntry[] => { + var dv = u8_to_dataview(buf); + var magic = dv.getUint32(0, false); + switch(magic) { + // fat binary (x86_64 / aarch64) + case 0xCAFEBABE: return parse_fat(buf); + // x86_64 + case 0xCFFAEDFE: return [{ + type: dv.getUint32(4, false), + subtype: dv.getUint32(8, false), + offset: 0, + size: buf.length, + data: buf + }]; + } + throw new Error("Unsupported file"); +}; + +// #endregion + +// #region otorp.ts + +interface OtorpEntry { + name: string; + proto: string; +} + +/** Find and stringify all relevant protobuf defs */ +function otorp(buf: Uint8Array, builtins = false): OtorpEntry[] { + var res = proto_offsets(buf); + var registry: {[key: string]: Descriptor} = {}; + var names: Set = new Set(); + var out: OtorpEntry[] = []; + + res.forEach((r, i) => { + if(!builtins && r[1].startsWith("google/protobuf/")) return; + var b = buf.slice(r[0], i < res.length - 1 ? res[i+1][0] : buf.length); + var pb = parse_FileDescriptorProto(b/*, r[1]*/); + names.add(r[1]); + registry[r[1]] = pb; + }); + + names.forEach(name => { + /* ensure partial ordering by dependencies */ + names.delete(name); + var pb = registry[name]; + var doit = (pb.dependency||[]).every((d: string) => !names.has(d)); + if(!doit) { names.add(name); return; } + + var dups = res.filter(r => r[1] == name); + if(dups.length == 1) return out.push({ name, proto: write_FileDescriptor(pb) }); + + /* in a fat binary, compare the defs for x86_64/aarch64 */ + var pbs = dups.map(r => { + var i = res.indexOf(r); + var b = buf.slice(r[0], i < res.length - 1 ? res[i+1][0] : buf.length); + var pb = parse_FileDescriptorProto(b/*, r[1]*/); + return write_FileDescriptor(pb); + }); + for(var l = 1; l < pbs.length; ++l) if(pbs[l] != pbs[0]) throw new Error(`Conflicting definitions for ${name} at offsets 0x${dups[0][0].toString(16)} and 0x${dups[l][0].toString(16)}`); + return out.push({ name, proto: pbs[0] }); + }); + + return out; +} +export default otorp; + +/** Determine if an address is being referenced */ +var is_referenced = (buf: Uint8Array, pos: number): boolean => { + var dv = u8_to_dataview(buf); + + /* Search for LEA reference (x86) */ + for(var leaddr = 0; leaddr > -1 && leaddr < pos; leaddr = u8indexOf(buf, 0x8D, leaddr + 1)) + if(dv.getUint32(leaddr + 2, true) == pos - leaddr - 6) return true; + + /* Search for absolute reference to address */ + try { + var headers = parse_macho(buf); + for(var i = 0; i < headers.length; ++i) { + if(pos < headers[i].offset || pos > headers[i].offset + headers[i].size) continue; + var b = headers[i].data; + var p = pos - headers[i].offset; + var ref = new Uint8Array([0,0,0,0,0,0,0,0]); + var dv = u8_to_dataview(ref); + dv.setUint32(0, p, true); + if(u8indexOf(b, ref, 0) > 0) return true; + ref[4] = 0x01; + if(u8indexOf(b, ref, 0) > 0) return true; + ref[4] = 0x00; ref[6] = 0x10; + if(u8indexOf(b, ref, 0) > 0) return true; + } + } catch(e) {throw e} + return false; +}; + +type OffsetList = Array<[number, string, number, number]>; +/** Generate a list of potential starting points */ +var proto_offsets = (buf: Uint8Array): OffsetList => { + var meta = parse_macho(buf); + var out: OffsetList = []; + var off = 0; + /* note: this loop only works for names < 128 chars */ + search: while((off = u8indexOf(buf, ".proto", off + 1)) > -1) { + var pos = off; + off += 6; + while(off - pos < 256 && buf[pos] != off - pos - 1) { + if(buf[pos] > 0x7F || buf[pos] < 0x20) continue search; + --pos; + } + if(off - pos > 250) continue; + var name = u8str(buf.slice(pos + 1, off)); + if(buf[--pos] != 0x0A) continue; + if(!is_referenced(buf, pos)) { console.error(`Reference to ${name} at ${pos} not found`); continue; } + var bin = meta.find(m => m.offset <= pos && m.offset + m.size >= pos); + out.push([pos, name, bin?.type || -1, bin?.subtype || -1]); + } + return out; +}; + +/** Parse a descriptor that starts with the first byte of the supplied buffer */ +var parse_FileDescriptorProto = (buf: Uint8Array): Descriptor => { + var l = buf.length; + while(l > 0) try { + var b = buf.slice(0,l); + var o = parse_FileDescriptor(b); + return o; + } catch(e) { + var m = e.message.match(/at offset (\d+)/); + if(m && parseInt(m[1], 10) < buf.length) l = parseInt(m[1], 10) - 1; + else --l; + } + throw new RangeError("no protobuf message in range"); +}; + + +// #endregion + +let spin: TerminalSpinner; +const width = Deno.consoleSize().columns; +const seen: any = {}; +function process(inf: string, outf: string) { + if(!inf) ["Numbers", "Keynote", "Pages"].forEach(app => { + const inf = `/Applications/${app}.app`; + for(let info of Deno.readDirSync(inf)) { + if(spin) spin.set(inf.length > width - 4 ? "…" + inf.slice(-(width-4)) : inf); + process(inf + (inf.slice(-1) == "/" ? "" : "/") + info.name, outf); + } + }); + else { + const fi = Deno.statSync(inf); + if(fi.isDirectory) for(let info of Deno.readDirSync(inf)) { + if(spin) spin.set(inf.length > width - 4 ? "…" + inf.slice(-(width-4)) : inf); + process(inf + (inf.slice(-1) == "/" ? "" : "/") + info.name, outf); + } + } + try { + const buf: Uint8Array = Deno.readFileSync(inf); + var dv = u8_to_dataview(buf); + var magic = dv.getUint32(0, false); + if(![0xCAFEBABE, 0xCFFAEDFE].includes(magic)) return; + + otorp(buf).forEach(({name, proto}) => { + if(!outf) { + /* NOTE: this logic assumes the protos do not conflict */ + if(seen[name]) { if(seen[name] != proto) throw new Error(name); return; } + seen[name] = proto; + return console.log(proto); + } + var pth = resolve(outf || "./", name.replace(/[/]/g, "$")); + try { + const str = Deno.readTextFileSync(pth); + if(str == proto) return; + throw `${pth} definition diverges!`; + } catch(e) { if(typeof e == "string") throw e; } + console.error(`writing ${name} to ${pth}`); + Deno.writeTextFileSync(pth, proto); + }); + } catch(e) {} +} + +function doit() { + const [ inf, outf ] = Deno.args; + if(inf == "-h" || inf == "--help") { + console.log(`usage: otorp.ts [output/folder] + +if no output folder specified, log all discovered defs +if output folder specified, attempt to write defs in the folder + +$ otorp.ts /Applications/Numbers.app out/ # search all files +$ otorp.ts /Applications/Numbers.app/Contents/MacOS/Numbers # search one file +`); + Deno.exit(1); + } + if(!inf || Deno.statSync(inf).isDirectory) (spin = new TerminalSpinner({ text: "", writer: Deno.stderr})).start(); + if(outf) try { Deno.mkdirSync(outf, { recursive: true }); } catch(e) {} + process(inf, outf); + if(spin) spin.stop(); +} +doit(); diff --git a/package.json b/package.json new file mode 100644 index 0000000..f07cfcc --- /dev/null +++ b/package.json @@ -0,0 +1,39 @@ +{ + "name": "iwa-inspector", + "author": "sheetjs", + "private": true, + "homepage": "https://sheetjs.com/tools/iwa-inspector", + "license": "Apache-2.0", + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "cfb": "1.2.2", + "printj": "1.3.1", + "react": "18.2.0", + "react-contexify": "6.0.0", + "react-dom": "18.2.0", + "react-inspector": "6.0.1", + "react-resizable-panels": "0.0.45", + "react-toastify": "9.1.3", + "xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz" + }, + "devDependencies": { + "@types/react": "18.2.6", + "@types/react-dom": "18.2.4", + "@typescript-eslint/eslint-plugin": "5.59.5", + "@typescript-eslint/parser": "5.59.5", + "@vitejs/plugin-react": "4.0.0", + "eslint": "8.40.0", + "eslint-plugin-react-hooks": "4.6.0", + "eslint-plugin-react-refresh": "0.3.5", + "typescript": "5.0.4", + "vite": "4.3.5", + "vite-plugin-pwa": "0.14.7" + } +} diff --git a/public/protos b/public/protos new file mode 100644 index 0000000..bb8404e --- /dev/null +++ b/public/protos @@ -0,0 +1,14533 @@ +enum .TN.PageOrder { + PageOrderTopToBottom = 0; + PageOrderLeftToRight = 1; +} + +enum .TN.PageLayoutDirection { + PageLayoutDirectionLeftToRight = 0; + PageLayoutDirectionRightToLeft = 1; +} + +message .TN.SheetUIStateArchive { + required float view_scale = 1; + required .TSP.Point scroll_position = 2; + optional float previous_view_scale = 3; + optional bool scroll_position_is_unscaled = 4; + optional .TSP.Point previous_scroll_position = 5; + optional bool scroll_position_valid = 6; + optional bool previous_scroll_position_valid = 7; + optional .TSP.Size visible_size = 8; + optional .TSP.Size previous_visible_size = 9; + optional uint32 device_idiom = 10; + optional .TSK.SelectionPathArchive selection_path = 11; + optional .TSP.Reference selection_path_transformer = 12; +} + +message .TN.SheetUIStateDictionaryEntryArchive { + required .TSP.Reference sheet = 1; + required .TN.SheetUIStateArchive sheet_uistate = 2; +} + +message .TN.UUIDSheetUIStateDictionaryArchive { + required .TSP.UUID sheet_uuid = 1; + required .TN.SheetUIStateArchive sheet_uistate = 2; +} + +message .TN.UIStateArchive { + enum InspectorPaneViewMode { + kInspectorPaneViewModeFormat = 0; + kInspectorPaneViewModeFilter = 1; + } + required uint32 active_sheet_index = 1 [deprecated = true]; + repeated .TSP.Reference selected_info = 2 [deprecated = true]; + repeated .TN.SheetUIStateDictionaryEntryArchive sheet_uistate_dictionary_entry = 3 [deprecated = true]; + optional .TST.SelectionArchive table_selection = 4 [deprecated = true]; + optional uint32 editing_sheet_index = 5 [deprecated = true]; + optional int32 document_mode = 6; + repeated .TN.SheetUIStateDictionaryEntryArchive edit_mode_sheet_uistate_dictionary_entry = 7 [deprecated = true]; + optional int32 table_editing_mode = 8 [deprecated = true]; + optional uint32 form_focused_record_index = 9 [deprecated = true]; + optional uint32 form_focused_field_index = 10 [deprecated = true]; + optional bool in_chart_mode = 11; + optional .TN.ChartSelectionArchive chart_selection = 12 [deprecated = true]; + optional .TSP.Reference sheet_selection = 13 [deprecated = true]; + optional bool inspector_pane_visible = 14 [default = true]; + optional .TN.UIStateArchive.InspectorPaneViewMode inspector_pane_view_mode = 15 [default = kInspectorPaneViewModeFormat]; + repeated uint32 selected_quick_calc_functions = 16; + optional bool removed_all_quick_calc_functions = 17; + optional bool show_canvas_guides = 18; + optional bool shows_comments = 19; + optional .TSP.Point desktop_window_origin = 20; + optional .TSP.Size desktop_window_size = 21; + optional .TSP.Size desktop_screen_size = 22; + repeated .TSCH.ChartUIState chart_ui_state = 23; + optional .TSK.SelectionPathArchive selection_path = 24; + optional bool inspector_pane_autohidden = 25; + optional bool shows_sidebar = 26 [deprecated = true]; + optional bool shows_rulers = 27; + repeated .TN.UUIDSheetUIStateDictionaryArchive uuid_sheet_uistate_dictionary = 28; + optional .TSP.Reference freehand_drawing_toolkit_state = 29; + optional .TSP.Reference selection_path_transformer = 30; + optional bool editing_disabled = 31; + optional bool sidebar_visible = 32; + optional float sidebar_width = 33; +} + +message .TN.SheetSelectionArchive { + optional .TSP.Reference sheet = 1; + optional bool paginated = 2; +} + +message .TN.FormSelectionArchive { + required uint32 record_index = 1; + required uint32 field_index = 2; +} + +message .TN.FormBuilderSelectionArchive { + optional uint32 viewing_record_index = 1; +} + +message .TN.FormTableChooserSelectionArchive { +} + +message .TN.UndoRedoStateArchive { + required .TN.UIStateArchive ui_state = 1; +} + +message .TN.DocumentArchive { + repeated .TSP.Reference sheets = 1; + required .TSA.DocumentArchive super = 8; + optional .TSP.Reference calculation_engine = 3 [deprecated = true]; + required .TSP.Reference stylesheet = 4; + required .TSP.Reference sidebar_order = 5; + required .TSP.Reference theme = 6; + optional .TN.UIStateArchive uistate = 7; + optional .TSP.Reference custom_format_list = 9; + optional string printer_id = 10 [deprecated = true]; + optional string paper_id = 11; + optional .TSP.Size page_size = 12; +} + +message .TN.PlaceholderArchive { + required .TSWP.ShapeInfoArchive super = 1; +} + +message .TN.SheetArchive { + required string name = 1; + repeated .TSP.Reference drawable_infos = 2; + optional bool in_portrait_page_orientation = 3; + optional bool show_repeating_headers = 4 [deprecated = true]; + optional bool show_page_numbers = 5; + optional bool is_autofit_on = 6; + optional float content_scale = 7; + optional .TN.PageOrder page_order = 8; + optional .TSD.EdgeInsetsArchive print_margins = 10; + optional bool using_start_page_number = 11; + optional int32 start_page_number = 12; + optional float page_header_inset = 13; + optional float page_footer_inset = 14; + optional .TSP.Reference header_storage = 15 [deprecated = true]; + optional .TSP.Reference footer_storage = 16 [deprecated = true]; + optional .TSP.Reference userDefinedGuideStorage = 17; + repeated .TSP.Reference headers = 18; + repeated .TSP.Reference footers = 19; + optional bool uses_single_header_footer = 20; + optional .TN.PageLayoutDirection layout_direction = 21 [default = PageLayoutDirectionLeftToRight]; + optional .TSP.Reference style = 22; + optional bool print_backgrounds = 23; + optional bool should_print_comments = 24; +} + +message .TN.SheetStylePropertiesArchive { + optional .TSD.FillArchive fill = 1; +} + +message .TN.SheetStyleArchive { + required .TSS.StyleArchive super = 1; + optional uint32 override_count = 2; + optional .TN.SheetStylePropertiesArchive sheet_properties = 3; +} + +message .TN.FormBasedSheetArchive { + required .TN.SheetArchive super = 1; + optional .TSP.CFUUIDArchive table_id = 2; +} + +message .TN.ThemeArchive { + required .TSS.ThemeArchive super = 1; + repeated .TSP.Reference prototypes = 2; +} + +message .TN.PasteboardNativeStorageArchive { + optional .TSP.Reference sheet = 1; + optional .TN.SheetUIStateArchive ui_state = 2; +} + +message .TN.ChartMediatorFormulaStorage { + repeated .TSCE.FormulaArchive data_formulae = 1; + repeated .TSCE.FormulaArchive row_label_formulae = 3; + repeated .TSCE.FormulaArchive col_label_formulae = 4; + optional int32 direction = 5; + repeated .TSCE.FormulaArchive error_custom_pos_formulae = 6; + repeated .TSCE.FormulaArchive error_custom_neg_formulae = 7; + repeated .TSCE.FormulaArchive error_custom_pos_scatterX_formulae = 8; + repeated .TSCE.FormulaArchive error_custom_neg_scatterX_formulae = 9; + optional int32 scheme = 10; +} + +message .TN.ChartMediatorArchive { + required .TSCH.ChartMediatorArchive super = 1; + required string entity_id = 2; + optional .TN.ChartMediatorFormulaStorage formulas = 3; + optional bool columns_are_series = 4; + optional bool is_registered_with_calc_engine = 5 [deprecated = true]; +} + +message .TN.ChartSelectionArchive { + optional .TSCE.RangeReferenceArchive reference = 1; + optional .TSCH.ChartSelectionArchive deprecated_super = 2 [deprecated = true]; + optional .TSP.Reference chart = 3; + optional .TSD.DrawableSelectionArchive super = 4; +} + +message .TN.FormCommandActivityBehaviorArchive { + required .TSK.CommandActivityBehaviorArchive super = 1; +} + + +message .TNSOS.InducedVerifyDocumentWithServerCommandArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.UUID sheet_id_list = 2; + optional bool sheet_id_list_undefined = 3; +} + +message .TNSOS.InducedVerifyDrawableZOrdersWithServerCommandArchive { + required .TSASOS.InducedVerifyDrawableZOrdersWithServerCommandArchive super = 1; +} + + +message .TNSOS.SheetStylePropertyChangeSetArchive { + optional .TSDSOS.SpecFillArchive fill = 1; + optional bool fill_undefined = 2; +} + + +message .TN.CommandFormChooseTargetTableArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUID table_id = 2; + optional .TSP.UUID previous_table_id = 3; + required string sheet_name = 4; + optional string previous_sheet_name = 5; + required .TSP.UUID sheet_id = 6; +} + +message .TN.CommandSheetInsertDrawablesArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUID sheet_id = 2; + repeated .TSP.Reference drawables = 3; + repeated .TSK.AddIdOperationArgs args_list = 4; + optional bool forPaste = 5; + repeated .TSP.UUID custom_format_keys = 6; + optional .TSP.Reference drawable_undo_object = 7; + optional .TSP.Reference formula_rewrite_command_for_undo = 9; + optional uint32 saved_next_untitled_resolver_index = 10; + repeated .TSP.UUID chart_entity_uid_for_backing_tables = 11; + repeated .TSP.Reference backing_tables = 12; +} + +message .TN.CommandSheetRemoveDrawablesArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUID sheet_id = 2; + repeated .TSK.RemoveIdOperationArgs args_list = 3; + repeated .TSP.Reference drawables = 4; + repeated .TSP.UUID chart_entity_uid_for_backing_tables = 6; + repeated .TSP.UUID backing_table_uids = 7; +} + +message .TN.CommandSheetMoveDrawableZOrderArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUID sheet_id = 2; + repeated .TSK.RearrangeIdOperationArgs args_list = 3; +} + +message .TN.CommandDocumentInsertSheetArchive { + required .TSK.CommandArchive super = 1; + repeated .TSK.AddIdOperationArgs argsList = 2; + repeated .TSP.Reference sheets = 3; + optional bool allowSameSheetNameAsForms = 4; + repeated .TSP.UUID custom_format_keys = 5; + optional .TSP.Reference drawable_undo_object = 6; + repeated .TN.UUIDSheetUIStateDictionaryArchive sheet_uistates = 7; + optional bool for_paste = 8; +} + +message .TN.CommandDocumentRemoveSheetArchive { + required .TSK.CommandArchive super = 1; + repeated .TSK.RemoveIdOperationArgs argsList = 2; + repeated .TSP.Reference sheets = 3; + required string rescueId = 4; + repeated .TN.UUIDSheetUIStateDictionaryArchive sheet_uistates = 5; + optional bool is_undo_paste = 6; +} + +message .TN.CommandDocumentReorderSheetArchive { + repeated .TSK.RearrangeIdOperationArgs argsList = 1; + required .TSK.CommandArchive super = 2; +} + +message .TN.CommandSetSheetNameArchive { + required .TSK.CommandArchive super = 1; + required string newname = 2; + required .TSP.UUID sheet_uid = 3; + optional string oldname = 4; +} + +message .TN.CommandSetSheetShouldPrintCommentsArchive { + required .TSK.CommandArchive super = 1; + required bool new_should_print_comments = 2; + required .TSP.UUID sheet_uid = 3; + required bool old_should_print_comments = 4; +} + +message .TN.CommandSetSheetDirectionArchive { + required .TSK.CommandArchive super = 1; + required .TN.PageLayoutDirection newDirection = 2; + required .TSP.UUID sheet_uid = 3; + optional .TN.PageLayoutDirection oldDirection = 4; +} + +message .TN.CommandSetPageOrientationArchive { + required bool in_portrait_page_orientation = 1; + required .TSP.UUID sheet_uid = 2; + required .TSK.CommandArchive super = 3; + required bool prev_in_portrait_page_orientation = 4; +} + +message .TN.CommandSetShowPageNumbersValueArchive { + required bool show_page_numbers = 1; + required .TSP.Reference sheet = 2; + required .TSK.CommandArchive super = 3; +} + +message .TN.CommandSetRepeatingHeadersValueArchive { + required bool show_repeating_headers = 1; + required .TSP.Reference sheet = 2; + required .TSK.CommandArchive super = 3; +} + +message .TN.CommandSetContentScaleArchive { + optional float old_content_scale = 2; + required float content_scale = 3; + required .TSP.UUID sheet_uid = 4; + required .TSK.CommandArchive super = 5; + required bool toggled_auto_fit = 6; +} + +message .TN.CommandSetDocumentPaperSize { + required string paper_id = 1; + required .TSP.Size page_size = 2; + required .TSK.CommandArchive super = 3; + required string old_paper_id = 4; + required .TSP.Size old_page_size = 5; +} + +message .TN.CommandEnterPrintPreviewModeArchive { + required .TSK.CommandArchive super = 1; +} + +message .TN.CommandExitPrintPreviewModeArchive { + required .TSK.CommandArchive super = 1; +} + +message .TN.CommandSetPrinterMarginsArchive { + required .TSD.EdgeInsetsArchive new_print_margins = 1; + optional .TSD.EdgeInsetsArchive old_print_margins = 2; + required .TSP.UUID sheet_uid = 3; + required .TSK.CommandArchive super = 4; +} + +message .TN.CommandSetPrintBackgroundsArchive { + required .TSP.UUID sheet_uid = 1; + required bool print_backgrounds = 2; + required bool old_print_backgrounds = 3; + required .TSK.CommandArchive super = 4; +} + +message .TN.CommandSetHeaderFooterInsetsArchive { + optional float old_header_inset = 1; + optional float old_footer_inset = 2; + required float header_inset = 3; + required float footer_inset = 4; + required .TSP.UUID sheet_uid = 5; + required .TSK.CommandArchive super = 6; +} + +message .TN.CommandSetPageOrderArchive { + required uint32 old_page_order = 1; + required uint32 page_order = 2; + required .TSP.UUID sheet_uid = 3; + required .TSK.CommandArchive super = 4; +} + +message .TN.CommandSetUsingStartPageNumberArchive { + required bool using_start_page_number = 1; + required .TSP.UUID sheet_uid = 2; + required .TSK.CommandArchive super = 3; + required bool prev_using_start_page_number = 4; +} + +message .TN.CommandSetStartPageNumberArchive { + required int32 old_start_page_number = 1; + required int32 start_page_number = 2; + required .TSP.UUID sheet_uid = 3; + required .TSK.CommandArchive super = 4; +} + +message .TN.CommandReorderSidebarItemChildrenAchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference sheet = 2; + repeated .TSP.Reference old_children = 3; + repeated .TSP.Reference new_children = 4; +} + +message .TN.CommandChartMediatorSetEditingState { + required .TSCH.ChartCommandArchive super = 1; + optional .TN.ChartMediatorFormulaStorage old_formulas = 3; + optional .TN.ChartMediatorFormulaStorage new_formulas = 4; + optional int32 old_direction = 5; + optional int32 new_direction = 6; + optional int32 old_scatter_format = 7; + optional int32 new_scatter_format = 8; + optional bool for_formula_rewrite = 9; +} + +message .TN.CommandChartMediatorSetGridDirection { + required .TSCH.ChartCommandArchive super = 1; + required uint32 old_direction = 2; + required uint32 new_direction = 3; + optional .TN.ChartMediatorFormulaStorage old_formula_storage = 4; +} + +message .TN.CommandChartMediatorSetSeriesOrder { + required .TSCH.ChartCommandArchive super = 1; + optional .TSP.UUID series_id = 2; + optional .TSP.UUID preceding_series_id = 3; + optional .TSP.UUID inverse_series_id = 4; + optional .TSP.UUID inverse_preceding_series_id = 5; + required int32 undo_current_index = 6; + required int32 undo_new_index = 7; + optional .TN.ChartMediatorFormulaStorage old_formula_storage = 8; +} + +message .TN.CommandChartMediatorUpdateForEntityDelete { + required .TSCH.ChartCommandArchive super = 1; + optional .TSP.Reference cmd = 3; +} + +message .TN.CommandChartMediatorSetFormula { + required .TSCH.ChartCommandArchive super = 1; + required int32 model_update_data_type = 2; + repeated .TSCE.FormulaArchive formulae = 3; + repeated .TSCE.FormulaArchive old_formulae = 4; + required uint32 series_index = 5; + required int32 axis_type = 6; +} + +message .TN.CommandSheetSetBackgroundFillArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUID sheet_id = 2; + required .TSD.FillArchive new_fill = 3; + required .TSD.FillArchive old_fill = 4; +} + +message .TN.CommandSheetSetStyleArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUID sheet_id = 2; + required .TSP.Reference sheet_style = 3; + optional .TSP.Reference old_sheet_style = 4; +} + +message .TN.DocumentSelectionTransformerArchive { + optional .TSP.Reference document_selection = 1; +} + +message .TN.SheetSelectionTransformerArchive { + optional .TSP.UUID sheet_uuid = 1; + required bool paginated = 2; +} + +message .TN.FormSheetSelectionTransformerArchive { + required .TN.SheetSelectionTransformerArchive super = 1; + optional .TSP.UUID table_uuid = 2; +} + +message .TN.CanvasSelectionTransformerArchive { + required .TSD.InfoCollectionSelectionTransformerHelperArchive transformer_helper = 1; + optional .TSP.UUIDPath header_storage_uuid_path = 2; +} + +message .TN.FormTableChooserSelectionTransformerArchive { +} + +message .TN.FormBuilderSelectionTransformerArchive { + required .TSP.UUID table_uuid = 1; + required .TSP.UUID viewing_record_uuid = 2; + required .TSP.UUID field_uuid = 3; +} + +message .TN.FormViewerSelectionTransformerArchive { + required .TSP.UUID table_uuid = 1; + required .TSP.UUID record_uuid = 2; + required .TSP.UUID field_uuid = 3; +} + +message .TN.SheetChangeBaseArchive { + required .TSP.UUID sheet_id = 1; +} + +message .TN.SheetChangeSheetNameArchive { + required .TN.SheetChangeBaseArchive super = 1; + required string sheet_name = 2; +} + +message .TN.CommandInducedSheetChangeArchive { + required .TSK.CommandArchive super = 1; + repeated .TN.SheetChangeSheetNameArchive sheet_changes = 2; +} + + +enum .TSWP.SelectionType { + SelectionType_Normal = 0; + SelectionType_ListLabel = 1; + SelectionType_ListTopic = 2; + SelectionType_Replace = 3; + SelectionType_CopyPasteStyle = 4; + SelectionType_Replace2 = 5; + SelectionType_SmartField = 6; + SelectionType_Visual = 7; + SelectionType_Logical = 8; +} + +enum .TSWP.StyleInsertionBehavior { + StyleInsertionBehavior_NoGrow = 0; + StyleInsertionBehavior_GrowLeft = 1; + StyleInsertionBehavior_GrowRight = 2; +} + +enum .TSWP.CaretAffinity { + CaretAffinity_Start = 0; + CaretAffinity_End = 1; +} + +enum .TSWP.WritingDirectionType { + kWritingDirectionNatural = -1; + kWritingDirectionLeftToRight = 0; + kWritingDirectionRightToLeft = 1; +} + +message .TSWP.SelectionArchive { + required .TSWP.SelectionType deprecated_type = 1 [deprecated = true]; + required .TSP.Range visual_definition_range = 2; + required .TSWP.StyleInsertionBehavior styleInsertionBehavior = 3; + required .TSWP.CaretAffinity caretAffinity = 4; + required .TSP.Range smart_field_range = 5; + optional bool leading_edge = 6; + optional uint32 leading_char_index = 7; + optional .TSWP.SelectionType type = 8; + repeated .TSP.Range ranges = 9; +} + +message .TSWP.ObjectAttributeTable { + message ObjectAttribute { + required uint32 character_index = 1; + optional .TSP.Reference object = 2; + } + repeated .TSWP.ObjectAttributeTable.ObjectAttribute entries = 1; +} + +message .TSWP.StringAttributeTable { + message StringAttribute { + required uint32 character_index = 1; + optional string object = 2; + } + repeated .TSWP.StringAttributeTable.StringAttribute entries = 1; +} + +message .TSWP.ParaDataAttributeTable { + message ParaDataAttribute { + required uint32 character_index = 1; + required uint32 first = 2; + required uint32 second = 3; + } + repeated .TSWP.ParaDataAttributeTable.ParaDataAttribute entries = 1; +} + +message .TSWP.OverlappingFieldAttributeTable { + message OverlappingFieldAttribute { + required .TSP.Range range = 1; + required .TSP.Reference field = 2; + } + repeated .TSWP.OverlappingFieldAttributeTable.OverlappingFieldAttribute entries = 1; +} + +message .TSWP.StorageArchive { + enum KindType { + BODY = 0; + HEADER = 1; + FOOTNOTE = 2; + TEXTBOX = 3; + NOTE = 4; + CELL = 5; + UNCLASSIFIED = 6; + TABLEOFCONTENTS = 7; + UNDEFINED = 8; + } + optional .TSWP.StorageArchive.KindType kind = 1 [default = TEXTBOX]; + optional .TSP.Reference style_sheet = 2; + repeated string text = 3; + optional bool has_itext = 4 [default = false]; + optional bool in_document = 10 [default = false]; + optional .TSWP.ObjectAttributeTable table_para_style = 5; + optional .TSWP.ParaDataAttributeTable table_para_data = 6; + optional .TSWP.ObjectAttributeTable table_list_style = 7; + optional .TSWP.ObjectAttributeTable table_char_style = 8; + optional .TSWP.ObjectAttributeTable table_attachment = 9; + optional .TSWP.ObjectAttributeTable table_smartfield = 11; + optional .TSWP.ObjectAttributeTable table_layout_style = 12; + optional .TSWP.ParaDataAttributeTable table_para_starts = 14; + optional .TSWP.ObjectAttributeTable table_bookmark = 15; + optional .TSWP.ObjectAttributeTable table_footnote = 16; + optional .TSWP.ObjectAttributeTable table_section = 17; + optional .TSWP.ObjectAttributeTable table_rubyfield = 18; + optional .TSWP.StringAttributeTable table_language = 19; + optional .TSWP.StringAttributeTable table_dictation = 20; + optional .TSWP.ObjectAttributeTable table_insertion = 21; + optional .TSWP.ObjectAttributeTable table_deletion = 22; + optional .TSWP.ObjectAttributeTable table_highlight = 23; + optional .TSWP.ParaDataAttributeTable table_para_bidi = 24; + optional .TSWP.OverlappingFieldAttributeTable table_overlapping_highlight = 25; + optional .TSWP.OverlappingFieldAttributeTable table_pencil_annotation = 26; + optional .TSWP.ObjectAttributeTable table_tatechuyoko = 27; + optional .TSWP.ObjectAttributeTable table_drop_cap_style = 28; +} + +message .TSWP.HighlightArchive { + optional .TSP.Reference commentStorage = 1; + optional string text_attribute_uuid_string = 2; +} + +message .TSWP.PencilAnnotationArchive { + optional .TSP.Reference pencil_annotation_storage = 1; + optional string text_attribute_uuid_string = 2; +} + +message .TSWP.FontFeatureArchive { + required uint32 feature_type = 1; + required uint32 feature_selector = 2; +} + +message .TSWP.CharacterStylePropertiesArchive { + enum CapitalizationType { + kNoCaps = 0; + kAllCaps = 1; + kSmallCaps = 2; + kTitled = 3; + } + enum UnderlineType { + kNoUnderline = 0; + kSingleUnderline = 1; + kDoubleUnderline = 2; + kWavyUnderline = 3; + } + enum LigaturesType { + kRequiredLigatures = 0; + kStandardLigatures = 1; + kAllLigatures = 2; + } + enum StrikethruType { + kNoStrikethru = 0; + kSingleStrikethru = 1; + kDoubleStrikethru = 2; + kTripleStrikethru = 3; + } + enum SuperscriptType { + kNoScript = 0; + kSuperscript = 1; + kSubscript = 2; + } + optional bool bold = 1; + optional bool italic = 2; + optional float font_size = 3; + optional bool font_name_null = 4; + optional string font_name = 5; + optional bool font_color_null = 6; + optional .TSP.Color font_color = 7; + optional bool language_null = 8; + optional string language = 9; + optional .TSWP.CharacterStylePropertiesArchive.SuperscriptType superscript = 10; + optional .TSWP.CharacterStylePropertiesArchive.UnderlineType underline = 11; + optional .TSWP.CharacterStylePropertiesArchive.StrikethruType strikethru = 12; + optional .TSWP.CharacterStylePropertiesArchive.CapitalizationType capitalization = 13; + optional float baseline_shift = 14; + optional float kerning = 15; + optional .TSWP.CharacterStylePropertiesArchive.LigaturesType ligatures = 16; + optional bool outline_color_null = 17; + optional .TSP.Color outline_color = 18; + optional float outline = 19; + optional bool shadow_null = 20; + optional .TSD.ShadowArchive shadow = 21; + optional bool strikethru_color_null = 22; + optional .TSP.Color strikethru_color = 23; + optional float strikethru_width = 24; + optional bool background_color_null = 25; + optional .TSP.Color background_color = 26; + optional float tracking = 27; + optional bool underline_color_null = 28; + optional .TSP.Color underline_color = 29; + optional float underline_width = 30; + optional bool word_strikethru = 31; + optional bool word_underline = 32; + optional bool font_features_null = 33; + repeated .TSWP.FontFeatureArchive font_features = 34; + optional .TSWP.WritingDirectionType writing_direction = 35 [default = kWritingDirectionNatural]; + optional bool emphasis_marks_null = 36; + optional string emphasis_marks = 37; + optional bool compatibility_font_name_null = 38; + optional string compatibility_font_name = 39; + optional bool is_named_point_size = 40; + optional bool capitalization_uses_linguistics = 41; + optional bool tate_chu_yoko = 42; + optional bool tsd_stroke_null = 43; + optional .TSD.StrokeArchive tsd_stroke = 44; + optional bool tsd_fill_null = 45; + optional .TSD.FillArchive tsd_fill = 46; + optional bool tsd_fill_should_fill_text_container = 47; +} + +message .TSWP.CharacterStyleArchive { + required .TSS.StyleArchive super = 1; + optional uint32 override_count = 10 [default = 0]; + optional .TSWP.CharacterStylePropertiesArchive char_properties = 11; +} + +message .TSWP.TabArchive { + enum TabAlignmentType { + kTabAlignmentLeft = 0; + kTabAlignmentCenter = 1; + kTabAlignmentRight = 2; + kTabAlignmentDecimal = 3; + } + optional float position = 1; + optional .TSWP.TabArchive.TabAlignmentType alignment = 2; + optional string leader = 3; +} + +message .TSWP.TabsArchive { + repeated .TSWP.TabArchive tabs = 1; +} + +message .TSWP.LineSpacingArchive { + enum LineSpacingModeType { + kRelativeLineSpacing = 0; + kMinimumLineSpacing = 1; + kExactLineSpacing = 2; + kMaximumLineSpacing = 3; + kSpaceBetweenLineSpacing = 4; + } + optional .TSWP.LineSpacingArchive.LineSpacingModeType mode = 1; + optional float amount = 2; + optional float baselineRule = 3; +} + +message .TSWP.ParagraphStylePropertiesArchive { + enum TextAlignmentType { + TATvalue0 = 0; + TATvalue1 = 1; + TATvalue2 = 2; + TATvalue3 = 3; + TATvalue4 = 4; + } + enum ParagraphBorderType { + PBTvalue0 = 0; + PBTvalue1 = 1; + PBTvalue2 = 2; + PBTvalue3 = 3; + PBTvalue4 = 4; + } + enum OutlineStyleType { + OSTvalue0 = 0; + OSTvalue1 = 1; + OSTvalue2 = 2; + } + optional .TSWP.ParagraphStylePropertiesArchive.TextAlignmentType alignment = 1; + optional bool decimal_tab_null = 2; + optional string decimal_tab = 3; + optional float default_tab_stops = 4; + optional bool fill_null = 5; + optional .TSP.Color fill = 6; + optional float first_line_indent = 7; + optional bool hyphenate = 8; + optional bool keep_lines_together = 9; + optional bool keep_with_next = 10; + optional float left_indent = 11; + optional bool line_spacing_null = 12; + optional .TSWP.LineSpacingArchive line_spacing = 13; + optional bool page_break_before = 14; + optional .TSWP.ParagraphStylePropertiesArchive.ParagraphBorderType borders = 15; + optional bool rule_offset_null = 16; + optional .TSP.Point rule_offset = 17; + optional float rule_width = 18; + optional float right_indent = 19; + optional float space_after = 20; + optional float space_before = 21; + optional bool tabs_null = 24; + optional .TSWP.TabsArchive tabs = 25; + optional bool widow_control = 26; + optional uint32 outline_level = 27; + optional .TSWP.ParagraphStylePropertiesArchive.OutlineStyleType outline_style = 28; + optional bool following_style_id_null = 29; + optional string following_style_id = 30; + optional bool stroke_null = 31; + optional .TSD.StrokeArchive stroke = 32; + optional bool show_in_toc = 33; + optional bool toc_style_id_null = 34; + optional string toc_style_id = 35; + optional .TSWP.WritingDirectionType writing_direction = 38 [default = kWritingDirectionNatural]; + optional bool list_style_null = 39; + optional .TSP.Reference list_style = 40; + optional bool following_style_null = 41; + optional .TSP.Reference following_style = 42; + optional bool show_in_bookmarks_list = 43; + optional bool show_in_toc_navigator = 44; +} + +message .TSWP.ParagraphStyleArchive { + required .TSS.StyleArchive super = 1; + optional uint32 override_count = 10 [default = 0]; + optional .TSWP.CharacterStylePropertiesArchive char_properties = 11; + optional .TSWP.ParagraphStylePropertiesArchive para_properties = 12; +} + +message .TSWP.ListStyleArchive { + message LabelGeometry { + optional float scale = 1 [default = 1]; + optional float baseline_offset = 2 [default = 0]; + optional bool scale_with_text = 3 [default = true]; + } + message LabelImage { + optional .TSP.DataReference image = 3; + optional bool image_null = 2; + optional .TSP.Reference database_image = 1; + } + enum LabelType { + kNone = 0; + kImage = 1; + kString = 2; + kNumber = 3; + } + enum NumberType { + kNumericDecimal = 0; + kNumericDoubleParen = 1; + kNumericRightParen = 2; + kRomanUpperDecimal = 3; + kRomanUpperDoubleParen = 4; + kRomanUpperRightParen = 5; + kRomanLowerDecimal = 6; + kRomanLowerDoubleParen = 7; + kRomanLowerRightParen = 8; + kAlphaUpperDecimal = 9; + kAlphaUpperDoubleParen = 10; + kAlphaUpperRightParen = 11; + kAlphaLowerDecimal = 12; + kAlphaLowerDoubleParen = 13; + kAlphaLowerRightParen = 14; + kIdeographicJapaneseDecimalKind = 15; + kIdeographicJapaneseDoubleParenKind = 16; + kIdeographicJapaneseRightParenKind = 17; + kHiraganaDecimalKind = 18; + kHiraganaDoubleParenKind = 19; + kHiraganaRightParenKind = 20; + kKatakanaDecimalKind = 21; + kKatakanaDoubleParenKind = 22; + kKatakanaRightParenKind = 23; + kHiraganaIrohaDecimalKind = 24; + kHiraganaIrohaDoubleParenKind = 25; + kHiraganaIrohaRightParenKind = 26; + kKatakanaIrohaDecimalKind = 27; + kKatakanaIrohaDoubleParenKind = 28; + kKatakanaIrohaRightParenKind = 29; + kIdeographicSimplifiedChineseDecimalKind = 30; + kIdeographicSimplifiedChineseDoubleParenKind = 31; + kIdeographicSimplifiedChineseRightParenKind = 32; + kIdeographicTraditionalChineseDecimalKind = 33; + kIdeographicTraditionalChineseDoubleParenKind = 34; + kIdeographicTraditionalChineseRightParenKind = 35; + kIdeographicFormalJapaneseDecimalKind = 36; + kIdeographicFormalJapaneseDoubleParenKind = 37; + kIdeographicFormalJapaneseRightParenKind = 38; + kIdeographicFormalSimplifiedChineseDecimalKind = 39; + kIdeographicFormalSimplifiedChineseDoubleParenKind = 40; + kIdeographicFormalSimplifiedChineseRightParenKind = 41; + kIdeographicFormalTraditionalChineseDecimalKind = 42; + kIdeographicFormalTraditionalChineseDoubleParenKind = 43; + kIdeographicFormalTraditionalChineseRightParenKind = 44; + kKoreanAlphabetDecimalKind = 45; + kKoreanAlphabetDoubleParenKind = 46; + kKoreanAlphabetRightParenKind = 47; + kCircledNumberKind = 48; + kArabianNumericDecimalKind = 49; + kArabianNumericDoubleParenKind = 50; + kArabianNumericRightParenKind = 51; + kArabianAlphaDecimalKind = 52; + kArabianAlphaDoubleParenKind = 53; + kArabianAlphaRightParenKind = 54; + kArabianAbjadDecimalKind = 55; + kArabianAbjadDoubleParenKind = 56; + kArabianAbjadRightParenKind = 57; + kHebrewAlphaDecimalKind = 58; + kHebrewAlphaDoubleParenKind = 59; + kHebrewAlphaRightParenKind = 60; + kHebrewBiblicalStandardKind = 61; + kHebrewBiblicalDecimalKind = 62; + kHebrewBiblicalDoubleParenKind = 63; + kHebrewBiblicalRightParenKind = 64; + } + required .TSS.StyleArchive super = 1; + optional uint32 override_count = 10 [default = 0]; + repeated .TSWP.ListStyleArchive.LabelType label_types = 11; + repeated float text_indents = 12; + repeated float indents = 13; + repeated .TSWP.ListStyleArchive.LabelGeometry geometries = 14; + repeated .TSWP.ListStyleArchive.NumberType number_types = 15; + repeated string strings = 16; + repeated .TSWP.ListStyleArchive.LabelImage images = 17; + optional bool shadow_null = 18; + optional .TSD.ShadowArchive shadow = 19; + optional bool font_color_null = 20; + optional .TSP.Color font_color = 21; + optional bool font_name_null = 22; + optional string font_name = 23; + optional .TSWP.WritingDirectionType writing_direction = 24 [default = kWritingDirectionNatural]; + repeated bool tiered_numbers = 25; +} + +message .TSWP.TextStylePresetArchive { + optional string preset_identifier = 1; + optional .TSP.Reference paragraph_style = 2; + optional .TSP.Reference list_style = 3; +} + +message .TSWP.ColumnsArchive { + message EqualColumnsArchive { + optional uint32 count = 1; + optional float gap = 2; + } + message NonEqualColumnsArchive { + message GapWidthArchive { + required float gap = 1; + required float width = 2; + } + required float first = 1; + repeated .TSWP.ColumnsArchive.NonEqualColumnsArchive.GapWidthArchive following = 2; + } + optional .TSWP.ColumnsArchive.EqualColumnsArchive equal_columns = 1; + optional .TSWP.ColumnsArchive.NonEqualColumnsArchive non_equal_columns = 2; +} + +message .TSWP.PaddingArchive { + optional float left = 1; + optional float top = 2; + optional float right = 3; + optional float bottom = 4; +} + +message .TSWP.ColumnStylePropertiesArchive { + enum VerticalAlignmentType { + kFrameAlignTop = 0; + kFrameAlignMiddle = 1; + kFrameAlignBottom = 2; + kFrameAlignJustify = 3; + } + optional bool continuous = 1; + optional bool shrink_to_fit = 2; + optional bool vertical_text = 3; + optional float min_horizontal_inset = 4; + optional .TSWP.ColumnStylePropertiesArchive.VerticalAlignmentType vertical_alignment = 5; + optional bool columns_null = 6; + optional .TSWP.ColumnsArchive columns = 7; + optional bool margins_null = 8; + optional .TSWP.PaddingArchive margins = 9; + optional bool padding_null = 10; + optional .TSWP.PaddingArchive padding = 11; + optional .TSWP.WritingDirectionType writing_direction = 12 [default = kWritingDirectionNatural]; +} + +message .TSWP.ColumnStyleArchive { + required .TSS.StyleArchive super = 1; + optional uint32 override_count = 10 [default = 0]; + optional .TSWP.ColumnStylePropertiesArchive column_properties = 11; +} + +message .TSWP.ShapeStylePropertiesArchive { + enum VerticalAlignmentType { + kFrameAlignTop = 0; + kFrameAlignMiddle = 1; + kFrameAlignBottom = 2; + kFrameAlignJustify = 3; + } + optional bool shrink_to_fit = 1; + optional .TSWP.ShapeStylePropertiesArchive.VerticalAlignmentType vertical_alignment = 2; + optional bool columns_null = 3; + optional .TSWP.ColumnsArchive columns = 4; + optional bool padding_null = 5; + optional .TSWP.PaddingArchive padding = 6; + optional uint32 default_text_preset_index = 7; + optional bool vertical_text = 8; + optional bool paragraph_style_null = 9; + optional .TSP.Reference paragraph_style = 10; + optional bool vertical_text_40 = 11; +} + +message .TSWP.ShapeStyleArchive { + required .TSD.ShapeStyleArchive super = 1; + optional uint32 override_count = 10 [default = 0]; + optional .TSWP.ShapeStylePropertiesArchive shape_properties = 11; +} + +message .TSWP.ThemePresetsArchive { + repeated .TSP.Reference list_style_presets = 1; + repeated .TSP.Reference text_style_presets = 2; + repeated .TSP.Reference imported_text_style_presets = 3; + repeated .TSP.Reference toc_entry_style_presets = 4; + repeated .TSP.Reference toc_settings_presets = 5; + repeated .TSP.Reference character_style_presets = 6; + repeated .TSP.Reference paragraph_style_presets = 7; + repeated .TSP.Reference dropcap_style_presets = 8; + extend .TSS.ThemeArchive { + optional .TSWP.ThemePresetsArchive extension = 110; + } +} + +message .TSWP.TextPresetDisplayItemArchive { + required .TSP.Reference preset = 1; + required string display_name = 2; +} + +message .TSWP.TOCEntryStylePropertiesArchive { + optional bool page_number_style_null = 1; + optional .TSP.Reference page_number_style = 2; + optional bool show_page_number = 3; +} + +message .TSWP.TOCEntryStyleArchive { + required .TSWP.ParagraphStyleArchive super = 1; + optional .TSWP.TOCEntryStylePropertiesArchive toc_properties = 2; +} + +message .TSWP.TOCSettingsArchive { + message TOCEntryData { + optional .TSP.Reference paragraph_style = 1; + optional .TSP.Reference toc_entry_style = 2; + optional bool show_in_toc = 3; + } + optional string toc_name = 1; + optional uint32 toc_scope = 2; + repeated .TSWP.TOCSettingsArchive.TOCEntryData entries = 3; +} + +message .TSWP.TOCEntryInstanceArchive { + required uint32 paragraph_index = 1; + required uint32 page_number = 2; + required uint32 number_format = 3; + required string heading = 4; + required .TSP.Reference indexed_style = 5; + optional .TSP.Reference indexed_list_style = 6; + optional uint32 indexed_list_start = 7; + optional uint32 indexed_paragraph_level = 8; + optional string number_format_name = 9; +} + +message .TSWP.UndoTransaction { + message GenericTransaction { + required uint32 value1 = 1; + required uint32 value2 = 2; + required uint32 value3 = 3; + } + message TextTransaction { + required uint32 insert_location = 1; + required uint32 insert_length = 2; + optional string string_to_delete = 3; + } + message CharIndexTransaction { + required uint32 char_index = 1; + required uint32 count = 2; + optional .TSP.Reference object = 3; + } + message ReplaceCharIndexTransaction { + required uint32 attribute_index = 1; + required uint32 char_index = 2; + } + message AttributeIndexTransaction { + required uint32 attribute_index = 1; + required uint32 char_index = 2; + optional .TSP.Reference object = 3; + optional string string = 4; + } + message InsertAttributeTransaction { + required uint32 attribute_index = 1; + required uint32 attribute_count = 2; + optional .TSP.Reference object = 3; + optional string string = 4; + } + message InsertNilTransaction { + required uint32 attribute_index = 1; + required uint32 attribute_count = 2; + } + message CharDeltaTransaction { + required uint32 char_index = 1; + required uint32 attribute_index = 2; + required sint32 char_delta = 3; + } + message ParagraphDataTransaction { + required uint32 attribute_index = 1; + required uint32 first = 2; + required uint32 second = 3; + required uint32 char_index = 4; + } + message ObjectDOLCTransaction { + required uint32 flags = 1; + optional .TSP.Reference object = 2; + } + message CTDateTransaction { + required uint32 attribute_index = 1; + optional .TSP.Date date = 2; + } + message UnionTransaction { + required .TSWP.UndoTransaction.UndoKind kind = 1; + optional uint32 table = 2; + optional .TSWP.UndoTransaction.GenericTransaction generic = 5; + optional .TSWP.UndoTransaction.TextTransaction text = 6; + optional .TSWP.UndoTransaction.CharIndexTransaction char_index = 7; + optional .TSWP.UndoTransaction.ReplaceCharIndexTransaction replace_char_index = 8; + optional .TSWP.UndoTransaction.AttributeIndexTransaction attribute_index = 9; + optional .TSWP.UndoTransaction.InsertNilTransaction insert_nil = 10; + optional .TSWP.UndoTransaction.InsertAttributeTransaction insert_attribute = 11; + optional .TSWP.UndoTransaction.CharDeltaTransaction char_delta = 12; + optional .TSWP.UndoTransaction.ParagraphDataTransaction paragraph_data = 13; + optional .TSWP.UndoTransaction.ObjectDOLCTransaction object_dolc = 14; + optional .TSWP.UndoTransaction.CTDateTransaction ct_date = 15; + } + message StorageAction { + required .TSWP.UndoTransaction.ActionKind kind = 1; + optional uint32 flags = 2; + optional uint32 table = 3; + optional .TSP.Range range = 4; + optional string string = 5; + optional .TSP.Reference object = 6; + optional .TSP.Date date = 7; + optional uint32 paragraph_level = 8; + optional uint32 paragraph_flags = 9; + optional uint32 paragraph_value = 10; + optional int32 placement_index = 11; + optional string placement_uuid_path = 12; + optional .TSP.Reference undo_object = 13; + } + message StorageActionGroup { + required .TSWP.UndoTransaction.ActionGroupKind kind = 1; + repeated .TSWP.UndoTransaction.StorageAction forward_actions = 3; + repeated .TSWP.UndoTransaction.StorageAction inverse_forward_actions = 4; + repeated .TSWP.UndoTransaction.StorageAction inverse_detail_actions = 6; + } + enum UndoKind { + REPLACE_TEXT = 1; + INSERT_ATTRIBUTE = 2; + DELETE_ATTRIBUTE = 3; + ADJUST_CHAR_INDEXES = 4; + COMPR_ADJUST_CHAR_INDEXES = 5; + REPLACE_CHAR_INDEX = 6; + REPLACE_OBJECT = 7; + REPLACE_PARAGRAPH_DATA = 8; + OBJECT_DOLC = 9; + CT_DATE = 10; + } + enum ActionKind { + ACTION_UNDEFINED = 0; + ACTION_TEXT = 1; + ACTION_ATTRIBUTE = 2; + } + enum ActionGroupKind { + ACTION_GROUP_UNDEFINED = 0; + ACTION_GROUP_TEXT = 1; + ACTION_GROUP_ATTRIBUTE = 2; + } + repeated .TSWP.UndoTransaction.UnionTransaction entries = 1; + repeated .TSWP.UndoTransaction.StorageActionGroup group_entries = 2; + optional uint32 flags = 3; + optional uint32 version = 4; +} + +message .TSWP.UndoTransactionWrapperArchive { + required .TSWP.UndoTransaction undo_transaction = 1; +} + +message .TSWP.ShapeInfoArchive { + required .TSD.ShapeArchive super = 1; + optional .TSP.Reference deprecated_storage = 2 [deprecated = true]; + optional .TSP.Reference text_flow = 3; + optional .TSP.Reference owned_storage = 4; + optional bool is_text_box = 6; +} + +message .TSWP.CommentInfoArchive { + required .TSWP.ShapeInfoArchive super = 1; + optional .TSP.Reference comment_storage = 2; +} + +message .TSWP.TOCInfoArchive { + required .TSWP.ShapeInfoArchive super = 1; + optional .TSP.Reference toc_settings = 2; + repeated .TSP.Reference toc_entry_data = 3; + repeated .TSP.Range page_number_ranges = 4; + optional bool sync_toc_settings_with_toc_navigator = 5; +} + +message .TSWP.TOCLayoutHintArchive { + required .TSP.Range charRange = 1; +} + +message .TSWP.EquationInfoArchive { + extend .TSD.ImageArchive { + optional string equation_source_old = 100; + optional .TSWP.CharacterStylePropertiesArchive equation_text_properties = 101; + optional float equation_depth = 102; + optional string equation_source_text = 103; + } +} + +message .TSWP.TextualAttachmentArchive { + enum Kind { + kKindPageNumber = 0; + kKindPageCount = 1; + kKindFootnoteMark = 2; + } + optional string string_equivalent = 1; + optional .TSWP.TextualAttachmentArchive.Kind kind = 2; +} + +message .TSWP.TSWPTOCPageNumberAttachmentArchive { + optional .TSWP.TextualAttachmentArchive super = 1; + optional string page_number = 2; + optional string bookmark_name = 3; +} + +message .TSWP.UIGraphicalAttachment { +} + +message .TSWP.DrawableAttachmentArchive { + optional .TSP.Reference drawable = 1; + optional uint32 h_offset_type = 2; + optional float h_offset = 3; + optional uint32 v_offset_type = 4; + optional float v_offset = 5; +} + +message .TSWP.TOCAttachmentArchive { + required .TSWP.DrawableAttachmentArchive super = 1; +} + +message .TSWP.FootnoteReferenceAttachmentArchive { + optional .TSWP.TextualAttachmentArchive super = 1; + optional .TSP.Reference contained_storage = 2; + optional string custom_mark_string = 3; +} + +message .TSWP.NumberAttachmentArchive { + optional .TSWP.TextualAttachmentArchive super = 1; + optional uint32 number_format = 2; + optional string string_value = 3; + optional string number_format_name = 4; +} + +message .TSWP.SmartFieldArchive { + optional string text_attribute_uuid_string = 1; +} + +message .TSWP.HyperlinkFieldArchive { + optional .TSWP.SmartFieldArchive super = 1; + optional string url_ref = 2; +} + +message .TSWP.PlaceholderSmartFieldArchive { + optional .TSWP.SmartFieldArchive super = 1; + optional bool localizable = 2; + optional string script_tag = 3; +} + +message .TSWP.UnsupportedHyperlinkFieldArchive { + optional .TSWP.PlaceholderSmartFieldArchive super = 1; + optional string url_ref = 2; + optional string url_original_ref = 3; +} + +message .TSWP.BibliographySmartFieldArchive { + optional .TSWP.SmartFieldArchive super = 3; + repeated .TSP.Reference citation_records = 2; + optional bool localizable = 4; + optional .TSWP.PlaceholderSmartFieldArchive old_super = 1; +} + +message .TSWP.CitationRecordArchive { + optional string endnote_xml = 1; + optional bool hide_author_names = 2; + optional bool hide_year = 3; + optional string page_range = 4; + optional string prefix = 5; + optional string suffix = 6; + optional string authors_string = 7; + optional string title = 8; + optional string year = 9; + optional string type = 10; +} + +message .TSWP.CitationSmartFieldArchive { + optional .TSWP.SmartFieldArchive super = 3; + repeated .TSP.Reference citation_records = 2; + optional bool localizable = 4; + optional .TSWP.PlaceholderSmartFieldArchive old_super = 1; +} + +message .TSWP.DateTimeSmartFieldArchive { + enum DateTimeUpdatePlan { + kDateTimeUpdatePlanNever = 0; + kDateTimeUpdatePlanAuto = 1; + kDateTimeUpdatePlanOnce = 2; + } + enum DateTimeFormatterStyle { + kDateTimeFormatterStyleNone = 0; + kDateTimeFormatterStyleShort = 1; + kDateTimeFormatterStyleMedium = 2; + kDateTimeFormatterStyleLong = 3; + kDateTimeFormatterStyleFull = 4; + } + optional .TSWP.SmartFieldArchive super = 1; + optional string format = 2; + optional string locale_identifier = 3; + optional .TSWP.DateTimeSmartFieldArchive.DateTimeFormatterStyle date_style = 4; + optional .TSWP.DateTimeSmartFieldArchive.DateTimeFormatterStyle time_style = 5; + optional .TSWP.DateTimeSmartFieldArchive.DateTimeUpdatePlan update_plan = 6; + optional bool needs_update = 7; + optional .TSP.Date date = 8; +} + +message .TSWP.BookmarkFieldArchive { + optional .TSWP.SmartFieldArchive super = 1; + optional string name = 2; + optional uint32 ranged = 3; + optional uint32 hidden = 4; +} + +message .TSWP.FilenameSmartFieldArchive { + optional .TSWP.PlaceholderSmartFieldArchive super = 1; + optional uint32 display_flags = 2; +} + +message .TSWP.MergeFieldTypeArchive { + optional string contacts_property = 2; + optional string contacts_key = 3; + optional string contacts_label = 4; + optional string table_key = 5; +} + +message .TSWP.MergeSmartFieldArchive { + enum MergeCategory { + kMergeCategoryTo = 0; + kMergeCategoryFrom = 1; + } + optional .TSWP.PlaceholderSmartFieldArchive super = 1; + optional string contacts_property = 2; + optional string contacts_key = 3; + optional string contacts_label = 4; + optional .TSWP.MergeSmartFieldArchive.MergeCategory category = 5; + optional bool requires_following_whitespace = 6; + optional string whitespace = 7; + optional string guid = 8; + optional string table_key = 9; + optional .TSWP.MergeFieldTypeArchive field_type = 10; + optional bool has_custom_text = 11; +} + +message .TSWP.TOCSmartFieldArchive { + message TOCEntry { + optional string bookmark_name = 1; + optional .TSP.Reference target_style = 2; + optional .TSP.Range range = 3; + } + optional .TSWP.PlaceholderSmartFieldArchive super = 1; + repeated .TSWP.TOCSmartFieldArchive.TOCEntry toc_entries = 2; +} + +message .TSWP.RubyFieldArchive { + optional .TSWP.SmartFieldArchive super = 1; + optional string ruby_text = 2; +} + +message .TSWP.TateChuYokoFieldArchive { + optional .TSWP.SmartFieldArchive super = 1; +} + +message .TSWP.ChangeArchive { + enum ChangeKind { + kChangeKindInsertion = 1; + kChangeKindDeletion = 2; + } + optional .TSWP.ChangeArchive.ChangeKind kind = 1; + optional .TSP.Reference session = 2; + optional .TSP.Date date = 3; + optional string text_attribute_uuid_string = 4; +} + +message .TSWP.ChangeSessionArchive { + optional uint32 session_uid = 1; + optional .TSP.Reference author = 2; + optional .TSP.Date date = 3; +} + +message .TSWP.SectionPlaceholderArchive { + optional .TSP.Reference parent_storage = 1; +} + +message .TSWP.HyperlinkSelectionArchive { +} + +message .TSWP.FlowInfoArchive { + optional .TSP.Reference text_storage = 1; + repeated .TSP.Reference textboxes = 2; + optional uint32 user_interface_identifier = 3; +} + +message .TSWP.FlowInfoContainerArchive { + repeated .TSP.Reference flow_infos = 1; + optional uint32 next_user_interface_identifier = 2; +} + +message .TSWP.DropCapArchive { + enum DropCapType { + TSWPDropCapTypeText = 0; + TSWPDropCapTypeShape = 1; + TSWPDropCapTypeImage = 2; + } + enum DropCapWrapType { + TSWPDropCapWrapTypeRectangular = 0; + TSWPDropCapWrapTypeContour = 1; + TSWPDropCapWrapTypeNone = 2; + } + optional .TSWP.DropCapArchive.DropCapType type = 1 [default = TSWPDropCapTypeText]; + optional uint32 number_of_lines = 2 [default = 3]; + optional uint32 number_of_raised_lines = 3 [default = 0]; + optional float deprecated_outdent = 4; + optional double outdent = 11 [default = 0]; + optional float deprecated_padding = 5; + optional double padding = 12 [default = 0]; + optional .TSWP.DropCapArchive.DropCapWrapType wrap_type = 6 [default = TSWPDropCapWrapTypeRectangular]; + optional bool shape_enabled = 7 [default = false]; + optional float deprecated_corner_radius = 8; + optional double corner_radius = 13 [default = 0]; + optional float deprecated_character_scale = 9; + optional double character_scale = 14 [default = 1]; + optional uint32 number_of_characters = 10 [default = 1]; +} + +message .TSWP.DropCapStylePropertiesArchive { + optional .TSWP.DropCapArchive drop_cap = 1; + optional .TSD.StrokeArchive drop_cap_shape_stroke = 3; + optional bool drop_cap_shape_fill_null = 4; + optional .TSD.FillArchive drop_cap_shape_fill = 5; +} + +message .TSWP.DropCapStyleArchive { + required .TSS.StyleArchive super = 1; + optional uint32 override_count = 10 [default = 0]; + optional .TSWP.CharacterStylePropertiesArchive char_properties = 11; + optional .TSWP.DropCapStylePropertiesArchive drop_cap_properties = 12; +} + +message .TSWP.CollaboratorTextCursorSubselectionArchive { + optional .TSWP.SelectionArchive text_selection = 1; + extend .TSK.CollaboratorCursorArchive { + optional .TSWP.CollaboratorTextCursorSubselectionArchive text_cursor_subselection = 100; + } +} + +extend .TSS.CommandPropertyEntryArchive { + optional .TSWP.PaddingArchive padding = 100; +} + + +message .TSWPSOS.SpecSetCharacterStyleArchive { + optional .TSP.Reference character_style = 1; + required bool unset = 2; +} + +message .TSWPSOS.SpecSetColumnsArchive { + optional .TSWP.ColumnsArchive columns = 1; + required bool unset = 2; +} + +message .TSWPSOS.SpecSetDropCapArchive { + optional .TSWP.DropCapArchive drop_cap = 1; + required bool unset = 2; +} + +message .TSWPSOS.SpecSetFontFeaturesArchive { + repeated .TSWP.FontFeatureArchive font_features = 1; + optional bool font_features_undefined = 2; + required bool unset = 3; +} + +message .TSWPSOS.SpecSetLineSpacingArchive { + optional .TSWP.LineSpacingArchive line_spacing = 1; + required bool unset = 2; +} + +message .TSWPSOS.SpecSetListStyleArchive { + optional .TSP.Reference list_style = 1; + required bool unset = 2; +} + +message .TSWPSOS.SpecSetListStyleBoolArrayArchive { + repeated bool list_style_bool_array = 1; + optional bool list_style_bool_array_undefined = 2; + required bool unset = 3; +} + +message .TSWPSOS.SpecSetListStyleFloatArrayArchive { + repeated float list_style_float_array = 1; + optional bool list_style_float_array_undefined = 2; + required bool unset = 3; +} + +message .TSWPSOS.SpecSetListStyleImageDataArrayArchive { + repeated .TSWP.ListStyleArchive.LabelImage list_style_image_data_array = 1; + optional bool list_style_image_data_array_undefined = 2; + required bool unset = 3; +} + +message .TSWPSOS.SpecSetListStyleListLabelGeometryArrayArchive { + repeated .TSWP.ListStyleArchive.LabelGeometry list_style_list_label_geometry_array = 1; + optional bool list_style_list_label_geometry_array_undefined = 2; + required bool unset = 3; +} + +message .TSWPSOS.SpecSetListStyleListLabelTypeArrayArchive { + repeated .TSWP.ListStyleArchive.LabelType list_style_list_label_type_array = 1; + optional bool list_style_list_label_type_array_undefined = 2; + required bool unset = 3; +} + +message .TSWPSOS.SpecSetListStyleListNumberTypeArrayArchive { + repeated .TSWP.ListStyleArchive.NumberType list_style_list_number_type_array = 1; + optional bool list_style_list_number_type_array_undefined = 2; + required bool unset = 3; +} + +message .TSWPSOS.SpecSetListStyleStringArrayArchive { + repeated string list_style_string_array = 1; + optional bool list_style_string_array_undefined = 2; + required bool unset = 3; +} + +message .TSWPSOS.SpecSetPaddingArchive { + optional .TSWP.PaddingArchive padding = 1; + required bool unset = 2; +} + +message .TSWPSOS.SpecSetParagraphStyleArchive { + optional .TSP.Reference paragraph_style = 1; + required bool unset = 2; +} + +message .TSWPSOS.SpecSetRuleOffsetArchive { + optional .TSP.Point rule_offset = 1; + required bool unset = 2; +} + +message .TSWPSOS.SpecSetTabsArchive { + optional .TSWP.TabsArchive tabs = 1; + required bool unset = 2; +} + +message .TSWPSOS.SpecCharacterStyleArchive { + optional .TSWPSOS.SpecSetCharacterStyleArchive spec_set_character_style = 1; +} + +message .TSWPSOS.SpecColumnsArchive { + optional .TSWPSOS.SpecSetColumnsArchive spec_set_columns = 1; +} + +message .TSWPSOS.SpecDropCapArchive { + optional .TSWPSOS.SpecSetDropCapArchive spec_set_drop_cap = 1; +} + +message .TSWPSOS.SpecFontFeaturesArchive { + optional .TSWPSOS.SpecSetFontFeaturesArchive spec_set_font_features = 1; +} + +message .TSWPSOS.SpecLineSpacingArchive { + optional .TSWPSOS.SpecSetLineSpacingArchive spec_set_line_spacing = 1; +} + +message .TSWPSOS.SpecListStyleArchive { + optional .TSWPSOS.SpecSetListStyleArchive spec_set_list_style = 1; +} + +message .TSWPSOS.SpecListStyleBoolArrayArchive { + optional .TSWPSOS.SpecSetListStyleBoolArrayArchive spec_set_list_style_bool_array = 1; +} + +message .TSWPSOS.SpecListStyleFloatArrayArchive { + optional .TSWPSOS.SpecSetListStyleFloatArrayArchive spec_set_list_style_float_array = 1; +} + +message .TSWPSOS.SpecListStyleImageDataArrayArchive { + optional .TSWPSOS.SpecSetListStyleImageDataArrayArchive spec_set_list_style_image_data_array = 1; +} + +message .TSWPSOS.SpecListStyleListLabelGeometryArrayArchive { + optional .TSWPSOS.SpecSetListStyleListLabelGeometryArrayArchive spec_set_list_style_list_label_geometry_array = 1; +} + +message .TSWPSOS.SpecListStyleListLabelTypeArrayArchive { + optional .TSWPSOS.SpecSetListStyleListLabelTypeArrayArchive spec_set_list_style_list_label_type_array = 1; +} + +message .TSWPSOS.SpecListStyleListNumberTypeArrayArchive { + optional .TSWPSOS.SpecSetListStyleListNumberTypeArrayArchive spec_set_list_style_list_number_type_array = 1; +} + +message .TSWPSOS.SpecListStyleStringArrayArchive { + optional .TSWPSOS.SpecSetListStyleStringArrayArchive spec_set_list_style_string_array = 1; +} + +message .TSWPSOS.SpecPaddingArchive { + optional .TSWPSOS.SpecSetPaddingArchive spec_set_padding = 1; +} + +message .TSWPSOS.SpecParagraphStyleArchive { + optional .TSWPSOS.SpecSetParagraphStyleArchive spec_set_paragraph_style = 1; +} + +message .TSWPSOS.SpecRuleOffsetArchive { + optional .TSWPSOS.SpecSetRuleOffsetArchive spec_set_rule_offset = 1; +} + +message .TSWPSOS.SpecTabsArchive { + optional .TSWPSOS.SpecSetTabsArchive spec_set_tabs = 1; +} + +message .TSWPSOS.CharacterStylePropertyChangeSetArchive { + optional .TSSSOS.SpecDoubleArchive baseline_shift = 1; + optional bool baseline_shift_undefined = 2; + optional .TSSSOS.SpecIntegerArchive capitalization = 3; + optional bool capitalization_undefined = 4; + optional .TSSSOS.SpecStringArchive compatibility_font_name = 5; + optional bool compatibility_font_name_undefined = 6; + optional .TSSSOS.SpecStringArchive emphasis_marks = 7; + optional bool emphasis_marks_undefined = 8; + optional .TSSSOS.SpecBoolArchive bold = 9; + optional bool bold_undefined = 10; + optional .TSSSOS.SpecBoolArchive italic = 11; + optional bool italic_undefined = 12; + optional .TSWPSOS.SpecFontFeaturesArchive font_features = 13; + optional bool font_features_undefined = 14; + optional .TSSSOS.SpecStringArchive font_name = 15; + optional bool font_name_undefined = 16; + optional .TSSSOS.SpecDoubleArchive font_size = 17; + optional bool font_size_undefined = 18; + optional .TSSSOS.SpecDoubleArchive font_size_delta = 19; + optional bool font_size_delta_undefined = 20; + optional .TSSSOS.SpecDoubleArchive kerning = 21; + optional bool kerning_undefined = 22; + optional .TSSSOS.SpecStringArchive language = 23; + optional bool language_undefined = 24; + optional .TSSSOS.SpecIntegerArchive ligatures = 25; + optional bool ligatures_undefined = 26; + optional .TSDSOS.SpecShadowArchive text_shadow = 27; + optional bool text_shadow_undefined = 28; + optional .TSSSOS.SpecColorArchive strikethru_color = 29; + optional bool strikethru_color_undefined = 30; + optional .TSSSOS.SpecIntegerArchive strikethru = 31; + optional bool strikethru_undefined = 32; + optional .TSSSOS.SpecDoubleArchive strikethru_width = 33; + optional bool strikethru_width_undefined = 34; + optional .TSSSOS.SpecIntegerArchive superscript = 35; + optional bool superscript_undefined = 36; + optional .TSSSOS.SpecColorArchive text_background = 37; + optional bool text_background_undefined = 38; + optional .TSSSOS.SpecDoubleArchive tracking = 39; + optional bool tracking_undefined = 40; + optional .TSSSOS.SpecColorArchive underline_color = 41; + optional bool underline_color_undefined = 42; + optional .TSSSOS.SpecIntegerArchive underline = 43; + optional bool underline_undefined = 44; + optional .TSSSOS.SpecDoubleArchive underline_width = 45; + optional bool underline_width_undefined = 46; + optional .TSSSOS.SpecBoolArchive word_strikethru = 47; + optional bool word_strikethru_undefined = 48; + optional .TSSSOS.SpecBoolArchive word_underline = 49; + optional bool word_underline_undefined = 50; + optional .TSSSOS.SpecIntegerArchive writing_direction = 51; + optional bool writing_direction_undefined = 52; + optional .TSSSOS.SpecBoolArchive is_named_point_size = 53; + optional bool is_named_point_size_undefined = 54; + optional .TSSSOS.SpecBoolArchive capitalization_uses_linguistics = 55; + optional bool capitalization_uses_linguistics_undefined = 56; + optional .TSDSOS.SpecStrokeArchive character_stroke = 57; + optional bool character_stroke_undefined = 58; + optional .TSDSOS.SpecFillArchive character_fill = 59; + optional bool character_fill_undefined = 60; + optional .TSSSOS.SpecBoolArchive character_fill_should_fill_text_container = 61; + optional bool character_fill_should_fill_text_container_undefined = 62; +} + +message .TSWPSOS.ColumnStylePropertyChangeSetArchive { + optional .TSWPSOS.SpecColumnsArchive columns = 1; + optional bool columns_undefined = 2; + optional .TSSSOS.SpecBoolArchive continuous = 3; + optional bool continuous_undefined = 4; + optional .TSWPSOS.SpecPaddingArchive margins = 5; + optional bool margins_undefined = 6; + optional .TSSSOS.SpecDoubleArchive min_horizontal_inset = 7; + optional bool min_horizontal_inset_undefined = 8; + optional .TSWPSOS.SpecPaddingArchive padding = 9; + optional bool padding_undefined = 10; + optional .TSSSOS.SpecBoolArchive shrink_to_fit = 11; + optional bool shrink_to_fit_undefined = 12; + optional .TSSSOS.SpecIntegerArchive vertical_alignment = 13; + optional bool vertical_alignment_undefined = 14; + optional .TSSSOS.SpecBoolArchive vertical_text = 15; + optional bool vertical_text_undefined = 16; + optional .TSSSOS.SpecIntegerArchive writing_direction = 17; + optional bool writing_direction_undefined = 18; +} + +message .TSWPSOS.DropCapSpecificStylePropertyChangeSetArchive { + optional .TSWPSOS.SpecDropCapArchive drop_cap_model = 1; + optional bool drop_cap_model_undefined = 2; + optional .TSDSOS.SpecStrokeArchive drop_cap_shape_stroke = 3; + optional bool drop_cap_shape_stroke_undefined = 4; + optional .TSDSOS.SpecFillArchive drop_cap_shape_fill = 5; + optional bool drop_cap_shape_fill_undefined = 6; +} + +message .TSWPSOS.DropCapStylePropertyChangeSetArchive { + required .TSWPSOS.CharacterStylePropertyChangeSetArchive super = 1; + optional .TSWPSOS.SpecDropCapArchive drop_cap_model = 2; + optional bool drop_cap_model_undefined = 3; + optional .TSDSOS.SpecStrokeArchive drop_cap_shape_stroke = 4; + optional bool drop_cap_shape_stroke_undefined = 5; + optional .TSDSOS.SpecFillArchive drop_cap_shape_fill = 6; + optional bool drop_cap_shape_fill_undefined = 7; +} + +message .TSWPSOS.ListStylePropertyChangeSetArchive { + optional .TSSSOS.SpecColorArchive list_font_color = 1; + optional bool list_font_color_undefined = 2; + optional .TSSSOS.SpecStringArchive font_name = 3; + optional bool font_name_undefined = 4; + optional .TSWPSOS.SpecListStyleFloatArrayArchive list_classic_text_indent_array = 5; + optional bool list_classic_text_indent_array_undefined = 6; + optional .TSWPSOS.SpecListStyleListLabelGeometryArrayArchive list_label_geometry_array = 7; + optional bool list_label_geometry_array_undefined = 8; + optional .TSWPSOS.SpecListStyleImageDataArrayArchive list_label_image_data_array = 9; + optional bool list_label_image_data_array_undefined = 10; + optional .TSWPSOS.SpecListStyleFloatArrayArchive list_label_indent_array = 11; + optional bool list_label_indent_array_undefined = 12; + optional .TSWPSOS.SpecListStyleListNumberTypeArrayArchive list_label_number_array = 13; + optional bool list_label_number_array_undefined = 14; + optional .TSWPSOS.SpecListStyleBoolArrayArchive list_label_tiered_number_array = 15; + optional bool list_label_tiered_number_array_undefined = 16; + optional .TSDSOS.SpecShadowArchive text_shadow = 17; + optional bool text_shadow_undefined = 18; + optional .TSWPSOS.SpecListStyleStringArrayArchive list_label_string_array = 19; + optional bool list_label_string_array_undefined = 20; + optional .TSWPSOS.SpecListStyleFloatArrayArchive list_text_indent_array = 21; + optional bool list_text_indent_array_undefined = 22; + optional .TSWPSOS.SpecListStyleListLabelTypeArrayArchive list_label_type_array = 23; + optional bool list_label_type_array_undefined = 24; + optional .TSSSOS.SpecIntegerArchive writing_direction = 25; + optional bool writing_direction_undefined = 26; +} + +message .TSWPSOS.ParagraphSpecificStylePropertyChangeSetArchive { + optional .TSSSOS.SpecIntegerArchive alignment = 1; + optional bool alignment_undefined = 2; + optional .TSSSOS.SpecStringArchive decimal_tab = 3; + optional bool decimal_tab_undefined = 4; + optional .TSSSOS.SpecDoubleArchive default_tab_stops = 5; + optional bool default_tab_stops_undefined = 6; + optional .TSSSOS.SpecColorArchive paragraph_fill = 7; + optional bool paragraph_fill_undefined = 8; + optional .TSSSOS.SpecDoubleArchive first_line_indent = 9; + optional bool first_line_indent_undefined = 10; + optional .TSWPSOS.SpecParagraphStyleArchive following_paragraph_style = 11; + optional bool following_paragraph_style_undefined = 12; + optional .TSSSOS.SpecBoolArchive hyphenate = 13; + optional bool hyphenate_undefined = 14; + optional .TSWPSOS.SpecListStyleArchive initial_list_style = 15; + optional bool initial_list_style_undefined = 16; + optional .TSSSOS.SpecBoolArchive keep_lines_together = 17; + optional bool keep_lines_together_undefined = 18; + optional .TSSSOS.SpecBoolArchive keep_with_next = 19; + optional bool keep_with_next_undefined = 20; + optional .TSSSOS.SpecDoubleArchive left_indent = 21; + optional bool left_indent_undefined = 22; + optional .TSWPSOS.SpecLineSpacingArchive line_spacing = 23; + optional bool line_spacing_undefined = 24; + optional .TSSSOS.SpecIntegerArchive outline_level = 25; + optional bool outline_level_undefined = 26; + optional .TSSSOS.SpecIntegerArchive outline_style_type = 27; + optional bool outline_style_type_undefined = 28; + optional .TSSSOS.SpecBoolArchive page_break_before = 29; + optional bool page_break_before_undefined = 30; + optional .TSSSOS.SpecIntegerArchive paragraph_borders = 31; + optional bool paragraph_borders_undefined = 32; + optional .TSWPSOS.SpecRuleOffsetArchive paragraph_rule_offset = 33; + optional bool paragraph_rule_offset_undefined = 34; + optional .TSSSOS.SpecDoubleArchive paragraph_rule_width = 35; + optional bool paragraph_rule_width_undefined = 36; + optional .TSSSOS.SpecDoubleArchive right_indent = 37; + optional bool right_indent_undefined = 38; + optional .TSSSOS.SpecDoubleArchive space_after = 39; + optional bool space_after_undefined = 40; + optional .TSSSOS.SpecDoubleArchive space_before = 41; + optional bool space_before_undefined = 42; + optional .TSDSOS.SpecStrokeArchive paragraph_stroke = 43; + optional bool paragraph_stroke_undefined = 44; + optional .TSWPSOS.SpecTabsArchive tabs = 45; + optional bool tabs_undefined = 46; + optional .TSSSOS.SpecIntegerArchive widow_control = 47; + optional bool widow_control_undefined = 48; + optional .TSSSOS.SpecBoolArchive show_in_bookmarks_list = 49; + optional bool show_in_bookmarks_list_undefined = 50; + optional .TSSSOS.SpecBoolArchive show_in_t_o_c_navigator = 51; + optional bool show_in_t_o_c_navigator_undefined = 52; +} + +message .TSWPSOS.ParagraphStylePropertyChangeSetArchive { + required .TSWPSOS.CharacterStylePropertyChangeSetArchive super = 1; + optional .TSSSOS.SpecIntegerArchive alignment = 2; + optional bool alignment_undefined = 3; + optional .TSSSOS.SpecStringArchive decimal_tab = 4; + optional bool decimal_tab_undefined = 5; + optional .TSSSOS.SpecDoubleArchive default_tab_stops = 6; + optional bool default_tab_stops_undefined = 7; + optional .TSSSOS.SpecColorArchive paragraph_fill = 8; + optional bool paragraph_fill_undefined = 9; + optional .TSSSOS.SpecDoubleArchive first_line_indent = 10; + optional bool first_line_indent_undefined = 11; + optional .TSWPSOS.SpecParagraphStyleArchive following_paragraph_style = 12; + optional bool following_paragraph_style_undefined = 13; + optional .TSSSOS.SpecBoolArchive hyphenate = 14; + optional bool hyphenate_undefined = 15; + optional .TSWPSOS.SpecListStyleArchive initial_list_style = 16; + optional bool initial_list_style_undefined = 17; + optional .TSSSOS.SpecBoolArchive keep_lines_together = 18; + optional bool keep_lines_together_undefined = 19; + optional .TSSSOS.SpecBoolArchive keep_with_next = 20; + optional bool keep_with_next_undefined = 21; + optional .TSSSOS.SpecDoubleArchive left_indent = 22; + optional bool left_indent_undefined = 23; + optional .TSWPSOS.SpecLineSpacingArchive line_spacing = 24; + optional bool line_spacing_undefined = 25; + optional .TSSSOS.SpecIntegerArchive outline_level = 26; + optional bool outline_level_undefined = 27; + optional .TSSSOS.SpecIntegerArchive outline_style_type = 28; + optional bool outline_style_type_undefined = 29; + optional .TSSSOS.SpecBoolArchive page_break_before = 30; + optional bool page_break_before_undefined = 31; + optional .TSSSOS.SpecIntegerArchive paragraph_borders = 32; + optional bool paragraph_borders_undefined = 33; + optional .TSWPSOS.SpecRuleOffsetArchive paragraph_rule_offset = 34; + optional bool paragraph_rule_offset_undefined = 35; + optional .TSSSOS.SpecDoubleArchive paragraph_rule_width = 36; + optional bool paragraph_rule_width_undefined = 37; + optional .TSSSOS.SpecDoubleArchive right_indent = 38; + optional bool right_indent_undefined = 39; + optional .TSSSOS.SpecDoubleArchive space_after = 40; + optional bool space_after_undefined = 41; + optional .TSSSOS.SpecDoubleArchive space_before = 42; + optional bool space_before_undefined = 43; + optional .TSDSOS.SpecStrokeArchive paragraph_stroke = 44; + optional bool paragraph_stroke_undefined = 45; + optional .TSWPSOS.SpecTabsArchive tabs = 46; + optional bool tabs_undefined = 47; + optional .TSSSOS.SpecIntegerArchive widow_control = 48; + optional bool widow_control_undefined = 49; + optional .TSSSOS.SpecBoolArchive show_in_bookmarks_list = 50; + optional bool show_in_bookmarks_list_undefined = 51; + optional .TSSSOS.SpecBoolArchive show_in_t_o_c_navigator = 52; + optional bool show_in_t_o_c_navigator_undefined = 53; +} + +message .TSWPSOS.ShapeStylePropertyChangeSetArchive { + required .TSDSOS.BaseShapeStylePropertyChangeSetArchive super = 1; + optional .TSWPSOS.SpecColumnsArchive columns = 2; + optional bool columns_undefined = 3; + optional .TSWPSOS.SpecPaddingArchive padding = 4; + optional bool padding_undefined = 5; + optional .TSSSOS.SpecBoolArchive shrink_text_to_fit = 6; + optional bool shrink_text_to_fit_undefined = 7; + optional .TSSSOS.SpecIntegerArchive vertical_alignment = 8; + optional bool vertical_alignment_undefined = 9; + optional .TSSSOS.SpecBoolArchive vertical_text = 10; + optional bool vertical_text_undefined = 11; + optional .TSWPSOS.SpecParagraphStyleArchive default_paragraph_style = 12; + optional bool default_paragraph_style_undefined = 13; +} + +message .TSWPSOS.TOCEntryStylePropertyChangeSetArchive { + required .TSWPSOS.ParagraphStylePropertyChangeSetArchive super = 1; + optional .TSSSOS.SpecBoolArchive toc_show_page_number = 2; + optional bool toc_show_page_number_undefined = 3; + optional .TSWPSOS.SpecCharacterStyleArchive toc_page_number_style = 4; + optional bool toc_page_number_style_undefined = 5; +} + +message .TSWPSOS.StyleDiffArchive { + optional .TSP.Reference style = 1; + optional .TSWPSOS.CharacterStylePropertyChangeSetArchive character_change_set = 2; + optional .TSWPSOS.ParagraphStylePropertyChangeSetArchive paragraph_change_set = 3; + optional .TSWPSOS.ShapeStylePropertyChangeSetArchive shape_change_set = 4; +} + + +enum .TSWP.ObjectPropertyType { + kObjectPropertyTypeBool = 0; + kObjectPropertyTypeFloat = 1; + kObjectPropertyTypeInteger = 2; + kObjectPropertyTypeString = 3; + kObjectPropertyTypeIdPath = 4; + kObjectPropertyTypeFill = 5; + kObjectPropertyTypeColor = 6; + kObjectPropertyTypeShadow = 7; +} + +message .TSWP.DummyCommandArchive { + required uint32 foo = 1; +} + +message .TSWP.TextCommandArchive { + enum Kind { + kKindContained = 0; + kKindReplaceText = 1; + kKindPaste = 2; + kKindParagraphStyle = 3; + kKindListStyle = 4; + kKindIndentParagraphLevel = 5; + kKindDragText = 6; + kKindPasteStyle = 7; + kKindApplyChangesInRange = 8; + kKindInsertCitationField = 10; + kKindInsertBibliographyEntry = 11; + kKindFormatCitationFields = 12; + kKindInsertTOCSmartField = 13; + kKindInsertDateTimeField = 14; + kKindUpdateDateTimeField = 15; + kKindSetParagraphFirstTopicNumber = 16; + kKindCharacterStyle = 17; + kKindRevertStyles = 18; + kKindSetParagraphBidi = 19; + } + optional .TSK.CommandArchive super = 1; + optional .TSP.Reference storage = 2; + optional .TSWP.UndoTransaction undo_transaction = 3; + optional uint32 restore_range_location = 4; + optional uint32 restore_range_length = 5; + optional uint32 redo_restore_range_location = 6; + optional uint32 redo_restore_range_length = 7; + optional uint32 text_command_flags = 9; + optional .TSWP.TextCommandArchive.Kind kind = 10 [default = kKindContained]; +} + +message .TSWP.StorageActionCommandArchive { + enum Kind { + kKindContained = 0; + kKindReplaceText = 1; + kKindPaste = 2; + kKindParagraphStyle = 3; + kKindListStyle = 4; + kKindIndentParagraphLevel = 5; + kKindDragText = 6; + kKindPasteStyle = 7; + kKindApplyChangesInRange = 8; + kKindInsertCitationField = 10; + kKindInsertBibliographyEntry = 11; + kKindFormatCitationFields = 12; + kKindInsertTOCSmartField = 13; + kKindInsertDateTimeField = 14; + kKindUpdateDateTimeField = 15; + kKindSetParagraphFirstTopicNumber = 16; + kKindCharacterStyle = 17; + kKindRevertStyles = 18; + kKindSetParagraphBidi = 19; + kKindFormatText = 20; + kKindInsertAttachment = 21; + kKindCreateHyperlink = 22; + kKindModifyHyperlink = 23; + kKindRemoveHyperlink = 24; + kKindApplyHighlightText = 25; + kKindPropagateStyleChanges = 26; + kKindMovedAnchoredDrawableInline = 27; + kKindMoveDrawablesAttached = 28; + kKindMoveMoveDrawablesFloating = 29; + kKindMoveInlineDrawableAnchored = 30; + kKindAnchorAttachment = 31; + kKindBookmark = 32; + kKindReplaceSection = 33; + kKindApplyPencilAnnotation = 34; + kKindCreateRuby = 35; + kKindModifyRuby = 36; + kKindRemoveRuby = 37; + kKindTateChuYoko = 38; + kKindDropCapStyle = 39; + kKindMergeField = 40; + kKindModifyMergeField = 41; + kKindMergeFieldTypeReplace = 42; + } + optional .TSK.CommandArchive super = 1; + optional .TSP.UUIDPath storage = 2; + optional .TSWP.UndoTransaction undo_transaction = 3; + optional uint32 text_command_flags = 4; + optional .TSWP.StorageActionCommandArchive.Kind kind = 5 [default = kKindContained]; + repeated .TSP.UUID custom_format_keys = 6; + optional bool is_forward_inverse_command = 7; + optional bool coalesceable = 8; + optional bool coalescing_text = 9; + optional bool should_migrate_styles = 10; + optional .TSK.DataReferenceRecord changed_data_reference_record = 11; + optional string coalescing_property = 12; + optional .TSWP.StorageArchive.KindType wp_kind = 13; +} + +message .TSWP.SetColumnStyleCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSP.Reference storage = 2; + optional .TSWP.UndoTransaction undo_transaction = 3; +} + +message .TSWP.ReplaceAllUsesOfStyleCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSP.Reference storage = 2; + optional .TSWP.UndoTransaction undo_transaction = 3; +} + +message .TSWP.InsertColumnsCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSP.Reference storage = 2; + optional uint32 column_index = 3; + optional uint32 column_count = 4; + optional .TSWP.UndoTransaction undo_transaction = 5; +} + +message .TSWP.InsertRowsCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSP.Reference storage = 2; + optional uint32 row_index = 3; + optional uint32 row_count = 4; + optional .TSWP.UndoTransaction undo_transaction = 5; +} + +message .TSWP.RemoveColumnsCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSP.Reference storage = 2; + optional uint32 column_index = 3; + optional uint32 column_count = 4; + optional .TSWP.UndoTransaction undo_transaction = 5; +} + +message .TSWP.RemoveRowsCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSP.Reference storage = 2; + optional uint32 row_index = 3; + optional uint32 row_count = 4; + optional .TSWP.UndoTransaction undo_transaction = 5; +} + +message .TSWP.MergeCellsCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSP.Reference storage = 2; + optional uint32 row = 3; + optional uint32 column = 4; + optional uint32 row_count = 5; + optional uint32 column_count = 6; + optional .TSWP.UndoTransaction undo_transaction = 7; +} + +message .TSWP.ApplyPlaceholderTextCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSP.Reference storage = 2; + optional uint32 selection_range_location = 3; + optional uint32 selection_range_length = 4; + optional .TSWP.UndoTransaction undo_transaction = 5; + optional string script_tag = 6; +} + +message .TSWP.UpdateDateTimeFieldCommandArchive { + optional .TSWP.TextCommandArchive super = 1; + optional .TSP.Reference date_time_field = 2; + optional .TSP.Date date = 3; + optional .TSWP.DateTimeSmartFieldArchive.DateTimeFormatterStyle date_style = 4; + optional .TSWP.DateTimeSmartFieldArchive.DateTimeFormatterStyle time_style = 5; +} + +message .TSWP.ApplyRubyTextCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSP.Reference storage = 2; + optional uint32 selection_range_location = 3; + optional uint32 selection_range_length = 4; + optional string ruby_text = 5; + optional .TSWP.UndoTransaction undo_transaction = 6; +} + +message .TSWP.ModifyRubyTextCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSP.Reference ruby_field = 2; + optional string ruby_text = 3; + optional string base_text = 4; + optional .TSWP.UndoTransaction undo_transaction = 5; +} + +message .TSWP.ModifyTOCSettingsBaseCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSP.Reference old_toc_settings = 2; + optional .TSP.Reference new_toc_settings = 3; +} + +message .TSWP.ModifyTOCSettingsForTOCInfoCommandArchive { + optional .TSWP.ModifyTOCSettingsBaseCommandArchive super = 1; + optional .TSP.UUIDPath toc_info_uuid_path = 2; +} + +message .TSWP.ModifyTOCSettingsPresetForThemeCommandArchive { + optional .TSWP.ModifyTOCSettingsBaseCommandArchive super = 1; + optional .TSP.Reference theme = 2; + optional uint32 preset_index = 3; +} + +message .TSWP.AnchorAttachmentCommandArchive { + optional .TSWP.StorageActionCommandArchive super = 1; + optional .TSP.Reference attachment = 2; + optional uint32 h_offset_type = 3; + optional float h_offset = 4; + optional uint32 v_offset_type = 5; + optional float v_offset = 6; + optional bool is_html_wrap = 7; + optional uint32 undo_h_offset_type = 8; + optional float undo_h_offset = 9; + optional uint32 undo_v_offset_type = 10; + optional float undo_v_offset = 11; + optional bool undo_is_html_wrap = 12; +} + +message .TSWP.TextApplyThemeCommandArchive { + optional .TSS.ApplyThemeChildCommandArchive super = 1; + optional .TSP.Reference storage = 2; + optional .TSWP.UndoTransaction undo_transaction = 6; +} + +message .TSWP.MoveColumnsCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSP.Reference storage = 2; + optional uint32 src_index = 3; + optional uint32 dst_index = 4; + optional uint32 count = 5; + optional .TSWP.UndoTransaction undo_transaction = 6; +} + +message .TSWP.MoveRowsCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSP.Reference storage = 2; + optional uint32 src_index = 3; + optional uint32 dst_index = 4; + optional uint32 count = 5; + optional .TSWP.UndoTransaction undo_transaction = 6; +} + +message .TSWP.ShapeApplyPresetCommandArchive { + required .TSD.BaseApplyPresetCommandArchive super = 1; + optional .TSP.Reference undo_style = 2; +} + +message .TSWP.StyleBaseCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSP.Reference theme = 2; + optional .TSP.Reference style = 3; +} + +message .TSWP.StyleCreateCommandArchive { + optional .TSWP.StyleBaseCommandArchive super = 1; + optional uint32 preset_index = 2; +} + +message .TSWP.StyleRenameCommandArchive { + optional .TSWP.StyleBaseCommandArchive super = 1; + optional string updated_name = 2; + optional string old_name = 3; +} + +message .TSWP.StyleUpdateCommandArchive { + optional .TSWP.StyleBaseCommandArchive super = 1; + optional .TSP.Reference original_style = 2; + optional .TSP.Reference updated_style = 3; +} + +message .TSWP.StyleDeleteCommandArchive { + optional .TSWP.StyleBaseCommandArchive super = 1; + optional uint32 old_preset_index = 2; +} + +message .TSWP.StyleReorderCommandArchive { + optional .TSWP.StyleBaseCommandArchive super = 1; + optional uint32 old_preset_index = 2; + optional uint32 new_preset_index = 3; +} + +message .TSWP.StyleUpdatePropertyMapCommandArchive { + required .TSS.StyleUpdatePropertyMapCommandArchive super = 1; +} + +message .TSWP.ShapeStyleSetValueCommandArchive { + required .TSD.BaseStyleSetValueCommandArchive super = 1; + optional .TSWPSOS.ShapeStylePropertyChangeSetArchive change = 4; +} + +message .TSWP.SelectionTransformerArchive { + required .TSP.UUIDPath storage_uuid_path = 1; + required .TSP.Reference selection = 2; + optional bool transformed_to_noop = 3; +} + +message .TSWP.PencilAnnotationSelectionTransformerArchive { + required .TSP.UUIDPath storage_uuid_path = 1; + required string text_pencil_annotation_uuid = 2; +} + +message .TSWP.ShapeSelectionTransformerArchive { + required .TSD.ShapeSelectionTransformerArchive super = 1; + optional .TSP.UUIDPath storage_uuid_path = 2; +} + +message .TSWP.ShapeContentDescription { + required .TSD.DrawableContentDescription super = 1; + optional uint32 text_range_location = 2; + optional uint32 text_range_length = 3; +} + +message .TSWP.ObjectPropertyArchive { + required string name = 1; + required .TSWP.ObjectPropertyType type = 2; + optional bool bool_value = 3; + optional float float_value = 4; + optional int32 integer_value = 5; + optional string string_value = 6; + optional .TSP.UUIDPath id_path_value = 7; + optional .TSD.FillArchive fill_value = 8; + optional .TSP.Color color_value = 9; + optional .TSD.ShadowArchive shadow_value = 10; +} + +message .TSWP.SetObjectPropertiesCommandArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUIDPath object_uuid_path = 2; + repeated .TSWP.ObjectPropertyArchive properties = 3; + optional string action_string = 4; + repeated .TSWP.ObjectPropertyArchive old_properties = 5; +} + +message .TSWP.UpdateFlowInfoCommandArchive { + enum Mode { + kModeRearrange = 0; + kModeAdd = 1; + kModeRemove = 2; + kModeCompensate = 3; + } + optional .TSK.CommandArchive super = 1; + optional .TSWP.UpdateFlowInfoCommandArchive.Mode command_mode = 2 [default = kModeRearrange]; + optional .TSP.UUIDPath flow_info_uuid_path = 3; + optional .TSP.UUIDPath text_box_id_path_to_add_or_remove = 4; + repeated .TSP.UUIDPath text_box_id_paths_at_start = 5; + repeated .TSP.UUIDPath suggested_text_box_id_paths_at_end = 6; + repeated .TSP.Reference undo_text_boxes_to_restore = 7; + optional .TSP.Reference undo_added_shape_info = 8; + optional .TSP.Reference undo_removed_shape_info = 9; +} + +message .TSWP.AddFlowInfoCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSP.Reference flow_info_to_add = 2; + optional .TSP.Reference flow_info_archive = 3; + optional uint32 undo_user_interface_identifier_to_restore = 4; + optional uint32 undo_next_user_interface_identifier_to_restore = 5; + optional .TSP.Reference working_undo_object = 6; +} + +message .TSWP.RemoveFlowInfoCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSP.UUIDPath flow_info_uuid_path = 2; + optional .TSP.Reference undo_object = 3; + optional uint32 undo_user_interface_identifier_to_restore = 4; + optional uint32 undo_next_user_interface_identifier_to_restore = 5; +} + +message .TSWP.TextCommentReplyCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSP.UUIDPath storage_uuid_path = 2; + optional string annotation_uuid = 3; + optional .TSP.Reference forward_comment = 4; + optional .TSP.Reference inverse_comment = 5; + optional .TSD.CommentCommandVariant forward_variant = 6; + optional .TSD.CommentCommandVariant inverse_variant = 7; +} + +message .TSWP.ContainedObjectsCommandArchive { + message AddBehaviorArgs { + repeated .TSK.AddIdOperationArgs args_list = 1; + } + message RemoveBehaviorArgs { + repeated .TSK.RemoveIdOperationArgs args_list = 1; + } + message RearrangeBehaviorArgs { + repeated .TSK.RearrangeIdOperationArgs args_list = 1; + } + required .TSK.CommandArchive super = 1; + required .TSP.Reference target = 2; + repeated .TSP.Reference objects = 3; + optional .TSP.Reference undo_object_for_commit = 4; + optional .TSP.Reference undo_object_for_make_inverse = 5; + optional .TSWP.ContainedObjectsCommandArchive.AddBehaviorArgs add_behavior_args = 6; + optional .TSWP.ContainedObjectsCommandArchive.RemoveBehaviorArgs remove_behavior_args = 7; + optional .TSWP.ContainedObjectsCommandArchive.RearrangeBehaviorArgs rearrange_behavior_args = 8; + optional string container_name = 9; +} + +message .TSWP.EquationInfoGeometryCommandArchive { + optional .TSD.MediaInfoGeometryCommandArchive super = 1; +} + +message .TSWP.CharacterStyleChangePropertyCommand_GArchive { + required .TSWP.StorageActionCommandArchive super = 1; + repeated .TSP.Range range_list = 2; + optional bool range_list_undefined = 3; + repeated .TSWPSOS.CharacterStylePropertyChangeSetArchive change_list = 4; + optional bool change_list_undefined = 5; + required bool disable_character_style_promotion = 6; +} + +message .TSWP.ParagraphStyleChangePropertyCommand_GArchive { + required .TSWP.StorageActionCommandArchive super = 1; + repeated .TSP.Range range_list = 2; + optional bool range_list_undefined = 3; + repeated .TSWPSOS.ParagraphStylePropertyChangeSetArchive change_list = 4; + optional bool change_list_undefined = 5; +} + + +enum .TSCH.TextureTilingMode { + textureTilingModeNone = 0; + textureTilingModeTallest = 1; +} + +enum .TSCH.TextureTilingFace { + textureTilingFaceAll = 0; + textureTilingFaceTopAndBottom = 1; + textureTilingFaceSide = 2; +} + +enum .TSCH.TextureTilingWrap { + textureTilingWrapProjected = 0; + textureTilingWrapFaceWrap = 1; +} + +enum .TSCH.TextureTilingXPosition { + textureTilingXPositionLeft = 0; + textureTilingXPositionCenter = 1; + textureTilingXPositionRight = 2; +} + +enum .TSCH.TextureTilingYPosition { + textureTilingYPositionTop = 0; + textureTilingYPositionMiddle = 1; + textureTilingYPositionBottom = 2; +} + +enum .TSCH.TextureTilingContinuity { + textureTilingContinuityNone = 0; + textureTilingContinuityGlobal = 1; + textureTilingContinuitySeries = 2; + textureTilingContinuityJittered = 3; +} + +enum .TSCH.FillPropertyType { + fillPropertyTypeUndefined = 0; + fillPropertyTypeArea = 1; + fillPropertyTypeBar = 2; + fillPropertyTypeColumn = 3; + fillPropertyTypeLine = 4; + fillPropertyTypePie = 5; +} + +message .TSCH.Chart3DEnvironmentPackageArchive { + repeated .TSCH.Chart3DEnvironmentMaterialArchive materials = 1; +} + +message .TSCH.Chart3DFillArchive { + optional .TSCH.Chart3DLightingModelArchive lightingmodel = 1; + optional string textureset_id = 2; + optional .TSCH.FillPropertyType fill_type = 3; + optional uint32 series_index = 4; +} + +message .TSCH.Chart3DPointLightArchive { + required .TSCH.Chart3DVectorArchive position = 1; +} + +message .TSCH.Chart3DDirectionalLightArchive { + required .TSCH.Chart3DVectorArchive direction = 1; +} + +message .TSCH.Chart3DSpotLightArchive { + required .TSCH.Chart3DVectorArchive position = 1; + required .TSCH.Chart3DVectorArchive direction = 2; + required float cutoff = 3; + required float dropoff = 4; +} + +message .TSCH.Chart3DLightArchive { + required string name = 1; + required .TSCH.Chart3DVectorArchive ambient_color = 2; + required .TSCH.Chart3DVectorArchive diffuse_color = 3; + required .TSCH.Chart3DVectorArchive specular_color = 4; + required float intensity = 5; + required .TSCH.Chart3DVectorArchive attenuation = 6; + required uint32 coordinate_space = 7; + required bool enabled = 8; + optional .TSCH.Chart3DPointLightArchive point_light = 9; + optional .TSCH.Chart3DDirectionalLightArchive directional_light = 10; + optional .TSCH.Chart3DSpotLightArchive spot_light = 11; +} + +message .TSCH.Chart3DLightingModelArchive { + optional .TSCH.Chart3DPhongLightingModelArchive phong = 1; + optional .TSCH.Chart3DFixedFunctionLightingModelArchive fixed_function = 2; + optional .TSCH.Chart3DEnvironmentPackageArchive environment = 3; +} + +message .TSCH.Chart3DLightingPackageArchive { + required string name = 1; + repeated .TSCH.Chart3DLightArchive lights = 2; +} + +message .TSCH.Chart3DTexturesMaterialArchive { + required .TSCH.Chart3DVectorArchive color = 1; + repeated .TSCH.Chart3DTSPImageDataTextureArchive textures = 2; +} + +message .TSCH.Chart3DEmissiveMaterialArchive { + required .TSCH.Chart3DTexturesMaterialArchive super = 1; + repeated .TSCH.Chart3DImageTextureTilingArchive tilings = 2; +} + +message .TSCH.Chart3DDiffuseMaterialArchive { + required .TSCH.Chart3DTexturesMaterialArchive super = 1; + repeated .TSCH.Chart3DImageTextureTilingArchive tilings = 2; +} + +message .TSCH.Chart3DModulateMaterialArchive { + required .TSCH.Chart3DTexturesMaterialArchive super = 1; + repeated .TSCH.Chart3DImageTextureTilingArchive tilings = 2; +} + +message .TSCH.Chart3DSpecularMaterialArchive { + required .TSCH.Chart3DTexturesMaterialArchive super = 1; + repeated .TSCH.Chart3DImageTextureTilingArchive tilings = 2; +} + +message .TSCH.Chart3DShininessMaterialArchive { + required .TSCH.Chart3DTexturesMaterialArchive super = 1; + repeated .TSCH.Chart3DImageTextureTilingArchive tilings = 2; +} + +message .TSCH.Chart3DEnvironmentMaterialArchive { + required .TSCH.Chart3DTexturesMaterialArchive super = 1; + repeated .TSCH.Chart3DBaseImageTextureTilingArchive OBSOLETE_tilings = 2; + optional bool decalMode = 3; + repeated .TSCH.Chart3DImageTextureTilingArchive tilings = 4; +} + +message .TSCH.Chart3DFixedFunctionLightingModelArchive { + required .TSCH.Chart3DPhongMaterialPackageArchive materials = 1; +} + +message .TSCH.Chart3DPhongLightingModelArchive { + required .TSCH.Chart3DPhongMaterialPackageArchive materials = 1; +} + +message .TSCH.Chart3DPhongMaterialPackageArchive { + optional .TSCH.Chart3DEmissiveMaterialArchive emissive = 1; + optional .TSCH.Chart3DDiffuseMaterialArchive diffuse = 2; + optional .TSCH.Chart3DModulateMaterialArchive modulate = 3; + optional .TSCH.Chart3DSpecularMaterialArchive specular = 4; + optional .TSCH.Chart3DShininessMaterialArchive shininess = 5; +} + +message .TSCH.Chart3DTSPImageDataTextureArchive { + optional .TSP.DataReference data = 3; + optional .TSP.DataReference mipmapdata = 4; + optional .TSP.Reference database_data = 1; + optional .TSP.Reference database_mipmapdata = 2; +} + +message .TSCH.Chart3DBaseImageTextureTilingArchive { + optional .TSCH.Chart3DVectorArchive scale = 1; + optional float rotation = 2; +} + +message .TSCH.Chart3DImageTextureTilingArchive { + required .TSCH.Chart3DBaseImageTextureTilingArchive super = 1; + optional .TSCH.TextureTilingMode mode = 2; + optional .TSCH.TextureTilingWrap wrap = 3; + optional .TSCH.TextureTilingFace face = 4; + optional .TSCH.TextureTilingXPosition xposition = 5; + optional .TSCH.TextureTilingYPosition yposition = 6; + optional .TSCH.TextureTilingContinuity scontinuity = 7; + optional .TSCH.TextureTilingContinuity tcontinuity = 8; + optional bool reveal = 9; +} + +message .TSCH.Chart3DVectorArchive { + required float x = 1; + required float y = 2; + required float z = 3; + required float w = 4; +} + +extend .TSD.FillArchive { + optional .TSCH.Chart3DFillArchive fill3d = 100; +} + + +enum .TSCH.ChartType { + undefinedChartType = 0; + columnChartType2D = 1; + barChartType2D = 2; + lineChartType2D = 3; + areaChartType2D = 4; + pieChartType2D = 5; + stackedColumnChartType2D = 6; + stackedBarChartType2D = 7; + stackedAreaChartType2D = 8; + scatterChartType2D = 9; + mixedChartType2D = 10; + twoAxisChartType2D = 11; + columnChartType3D = 12; + barChartType3D = 13; + lineChartType3D = 14; + areaChartType3D = 15; + pieChartType3D = 16; + stackedColumnChartType3D = 17; + stackedBarChartType3D = 18; + stackedAreaChartType3D = 19; + multiDataColumnChartType2D = 20; + multiDataBarChartType2D = 21; + bubbleChartType2D = 22; + multiDataScatterChartType2D = 23; + multiDataBubbleChartType2D = 24; + donutChartType2D = 25; + donutChartType3D = 26; + radarChartType2D = 27; +} + +enum .TSCH.AxisType { + axis_type_unknown = 0; + axis_type_x = 1; + axis_type_y = 2; + axis_type_pie = 3; + axis_type_size = 4; + axis_type_polar_radius = 5; + axis_type_polar_angle = 6; +} + +enum .TSCH.ScatterFormat { + scatter_format_unknown = 0; + scatter_format_separate_x = 1; + scatter_format_shared_x = 2; +} + +enum .TSCH.SeriesDirection { + series_direction_unknown = 0; + series_direction_by_row = 1; + series_direction_by_column = 2; +} + +enum .TSCH.NumberValueType { + numberValueTypeDecimal = 0; + numberValueTypeCurrency = 1; + numberValueTypePercentage = 2; + numberValueTypeScientific = 3; + numberValueTypeFraction = 4; + numberValueTypeBase = 5; + numberValueTypeUnknown = -999; +} + +enum .TSCH.NegativeNumberStyle { + negativeNumberStyleMinus = 0; + negativeNumberStyleRed = 1; + negativeNumberStyleParentheses = 2; + negativeNumberStyleRedAndParentheses = 3; + negativeNumberStyleNone = 4; +} + +enum .TSCH.FractionAccuracy { + fractionAccuracyConflicting = 0; + fractionAccuracyUpToOneDigit = -1; + fractionAccuracyUpToTwoDigits = -2; + fractionAccuracyUpToThreeDigits = -3; + fractionAccuracyHalves = 2; + fractionAccuracyQuarters = 4; + fractionAccuracyEighths = 8; + fractionAccuracySixteenths = 16; + fractionAccuracyTenths = 10; + fractionAccuracyHundredths = 100; +} + +message .TSCH.RectArchive { + required .TSP.Point origin = 1; + required .TSP.Size size = 2; +} + +message .TSCH.ChartsNSNumberDoubleArchive { + optional double number_archive = 1; +} + +message .TSCH.ChartsNSArrayOfNSNumberDoubleArchive { + repeated double numbers = 1; +} + +message .TSCH.DEPRECATEDChart3DFillArchive { + optional .TSD.FillArchive fill = 1; + optional .TSCH.Chart3DLightingModelArchive lightingmodel = 2; + optional string textureset_id = 3; + optional .TSCH.FillPropertyType fill_type = 4; + optional uint32 series_index = 5; +} + +message .TSCH.ChartStyleArchive { + optional .TSS.StyleArchive super = 1; + extensions 10000 to 536870911; +} + +message .TSCH.ChartNonStyleArchive { + optional .TSS.StyleArchive super = 1; + extensions 10000 to 536870911; +} + +message .TSCH.LegendStyleArchive { + optional .TSS.StyleArchive super = 1; + extensions 10000 to 536870911; +} + +message .TSCH.LegendNonStyleArchive { + optional .TSS.StyleArchive super = 1; + extensions 10000 to 536870911; +} + +message .TSCH.ChartAxisStyleArchive { + optional .TSS.StyleArchive super = 1; + extensions 10000 to 536870911; +} + +message .TSCH.ChartAxisNonStyleArchive { + optional .TSS.StyleArchive super = 1; + extensions 10000 to 536870911; +} + +message .TSCH.ChartSeriesStyleArchive { + optional .TSS.StyleArchive super = 1; + extensions 10000 to 536870911; +} + +message .TSCH.ChartSeriesNonStyleArchive { + optional .TSS.StyleArchive super = 1; + extensions 10000 to 536870911; +} + +message .TSCH.GridValue { + optional double numeric_value = 1; + optional double date_value_1_0 = 2; + optional double duration_value = 3; + optional double date_value = 4; +} + +message .TSCH.GridRow { + repeated .TSCH.GridValue value = 1; +} + +message .TSCH.ReferenceLineStyleArchive { + optional .TSS.StyleArchive super = 1; + extensions 10000 to 536870911; +} + +message .TSCH.ReferenceLineNonStyleArchive { + optional .TSS.StyleArchive super = 1; + extensions 10000 to 536870911; +} + + +message .TSCH.Generated.ChartStyleArchive { + optional float tschchartinfodefault3dchartopacity = 1; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfoarea3dlightingpackage = 2; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfobar3dlightingpackage = 3; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfocolumn3dlightingpackage = 4; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfodefault3dlightingpackage = 5; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfoline3dlightingpackage = 6; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfopie3dlightingpackage = 7; + optional bool tschchartinfodefaultaxisanchorlabelatends = 124; + optional .TSD.FillArchive tschchartinfodefaultbackgroundfill = 8; + optional .TSD.StrokeArchive tschchartinfodefaultbackgroundstroke = 9; + optional float tschchartinfodefaultborderopacity = 10; + optional .TSD.ShadowArchive tschchartinfodefaultbordershadow = 11; + optional .TSD.StrokeArchive tschchartinfodefaultborderstroke = 12; + optional bool tschchartinfodefaultcombinelayers = 13; + optional int32 tschchartinfodefaultdatasetnameparagraphstyleindex = 21; + optional .TSD.FillArchive tschchartinfodefaultgridbackgroundfill = 14; + optional float tschchartinfodefaultgridbackgroundopacity = 15; + optional float tschchartinfodefaultinterbargap = 16; + optional float tschchartinfodefaultintersetgap = 17; + optional bool tschchartinfodefaultradarradiusgridlinecurve = 29; + optional bool tschchartinfodefaultroundedcornerouterendonly = 123; + optional float tschchartinfodefaultroundedcornerradius = 122; + optional bool tschchartinfodefaultshowborder = 18; + optional .TSP.Color tschchartinfodefaulttitlecolor = 19; + optional int32 tschchartinfodefaulttitleparagraphstyleindex = 20; + extend .TSCH.ChartStyleArchive { + optional .TSCH.Generated.ChartStyleArchive current = 10000; + } +} + +message .TSCH.Generated.ChartNonStyleArchive { + optional int32 tschchartinfodefault3dbarshape = 1; + optional bool tschchartinfodefault3dbeveledges = 2; + optional float tschchartinfodefault3dintersetdepthgap = 3; + optional .TSCH.Chart3DVectorArchive tschchartinfodefault3drotation = 4; + optional .TSCH.Chart3DVectorArchive tschchartinfoarea3dscale = 5; + optional .TSCH.Chart3DVectorArchive tschchartinfobar3dscale = 6; + optional .TSCH.Chart3DVectorArchive tschchartinfocolumn3dscale = 7; + optional .TSCH.Chart3DVectorArchive tschchartinfodefault3dscale = 8; + optional .TSCH.Chart3DVectorArchive tschchartinfoline3dscale = 9; + optional .TSCH.Chart3DVectorArchive tschchartinfopie3dscale = 10; + optional .TSCH.Chart3DVectorArchive tschchartinfodefault3dviewport = 11; + optional int32 tschchartinfoareacalloutlinetype = 112; + optional int32 tschchartinfobarcalloutlinetype = 113; + optional int32 tschchartinfobubblecalloutlinetype = 114; + optional int32 tschchartinfodefaultcalloutlinetype = 119; + optional int32 tschchartinfolinecalloutlinetype = 115; + optional int32 tschchartinfopiecalloutlinetype = 111; + optional int32 tschchartinfoscattercalloutlinetype = 116; + optional int32 tschchartinfostackedareacalloutlinetype = 117; + optional int32 tschchartinfostackedbarcalloutlinetype = 118; + optional bool tschchartinfodefaultdeprecatedroundedcornerouterendonly = 121; + optional float tschchartinfodefaultdeprecatedroundedcornerradius = 120; + optional int32 tschchartinfodefaultdatasetnamelocation = 24; + optional bool tschchartinfodefaultdonutplacetitleatcenter = 28; + optional float tschchartinfodefaultinnerradius = 27; + optional int32 tschchartinfodefaultmultidatacontroltype = 25; + optional float tschchartinfodefaultpiestartangle = 19; + optional float tschchartinfodefaultradarstartangle = 29; + optional bool tschchartinfodefaultshowlegend = 20; + optional bool tschchartinfodefaultshowtitle = 21; + optional bool tschchartinfodefaultskiphiddendata = 22; + optional string tschchartinfodefaulttitle = 23; + extend .TSCH.ChartNonStyleArchive { + optional .TSCH.Generated.ChartNonStyleArchive current = 10000; + } +} + +message .TSCH.Generated.LegendStyleArchive { + optional .TSD.FillArchive tschlegendmodeldefaultfill = 1; + optional int32 tschlegendmodeldefaultlabelparagraphstyleindex = 2; + optional float tschlegendmodeldefaultopacity = 3; + optional .TSD.ShadowArchive tschlegendmodeldefaultshadow = 4; + optional .TSD.StrokeArchive tschlegendmodeldefaultstroke = 5; + extend .TSCH.LegendStyleArchive { + optional .TSCH.Generated.LegendStyleArchive current = 10000; + } +} + +message .TSCH.Generated.LegendNonStyleArchive { + extend .TSCH.LegendNonStyleArchive { + optional .TSCH.Generated.LegendNonStyleArchive current = 10000; + } +} + +message .TSCH.Generated.ChartAxisStyleArchive { + optional float tschchartaxiscategory3dgridlineopacity = 1; + optional float tschchartaxisvalue3dgridlineopacity = 2; + optional .TSD.StrokeArchive tschchartaxiscategory3dgridlinestroke = 3; + optional .TSD.StrokeArchive tschchartaxisvalue3dgridlinestroke = 4; + optional int32 tschchartaxiscategoryhorizontalspacing = 5; + optional int32 tschchartaxisdefaultlabelanglebaselinedirection = 46; + optional int32 tschchartaxiscategorylabelparagraphstyleindex = 6; + optional int32 tschchartaxisdefaultlabelparagraphstyleindex = 7; + optional int32 tschchartaxisvaluelabelparagraphstyleindex = 8; + optional float tschchartaxiscategorylabelsorientation = 9; + optional float tschchartaxisdefaultlabelsorientation = 10; + optional float tschchartaxisvaluelabelsorientation = 11; + optional float tschchartaxiscategorymajorgridlineopacity = 12; + optional float tschchartaxisvaluemajorgridlineopacity = 13; + optional .TSD.ShadowArchive tschchartaxiscategorymajorgridlineshadow = 14; + optional .TSD.ShadowArchive tschchartaxisvaluemajorgridlineshadow = 15; + optional .TSD.StrokeArchive tschchartaxiscategorymajorgridlinestroke = 16; + optional .TSD.StrokeArchive tschchartaxisvaluemajorgridlinestroke = 17; + optional float tschchartaxiscategoryminorgridlineopacity = 18; + optional float tschchartaxisvalueminorgridlineopacity = 19; + optional .TSD.ShadowArchive tschchartaxiscategoryminorgridlineshadow = 20; + optional .TSD.ShadowArchive tschchartaxisvalueminorgridlineshadow = 21; + optional .TSD.StrokeArchive tschchartaxiscategoryminorgridlinestroke = 22; + optional .TSD.StrokeArchive tschchartaxisvalueminorgridlinestroke = 23; + optional bool tschchartaxiscategoryshowaxis = 24; + optional bool tschchartaxisvalueshowaxis = 25; + optional bool tschchartaxisdefaultshowextensionlines = 47; + optional bool tschchartaxiscategoryshowgridlinetickmarks = 42; + optional bool tschchartaxisvalueshowgridlinetickmarks = 43; + optional bool tschchartaxiscategoryshowlastlabel = 26; + optional bool tschchartaxiscategoryshowmajorgridlines = 27; + optional bool tschchartaxispolarcategoryshowmajorgridlines = 44; + optional bool tschchartaxisvalueshowmajorgridlines = 28; + optional bool tschchartaxiscategoryshowmajortickmarks = 29; + optional bool tschchartaxisvalueshowmajortickmarks = 30; + optional bool tschchartaxisvalueshowminimumlabel = 31; + optional bool tschchartaxiscategoryshowminorgridlines = 32; + optional bool tschchartaxisvalueshowminorgridlines = 33; + optional bool tschchartaxiscategoryshowminortickmarks = 34; + optional bool tschchartaxisvalueshowminortickmarks = 35; + optional int32 tschchartaxiscategorytickmarklocation = 36; + optional int32 tschchartaxisvaluetickmarklocation = 37; + optional int32 tschchartaxiscategorytitleparagraphstyleindex = 38; + optional int32 tschchartaxisdefaulttitleparagraphstyleindex = 39; + optional int32 tschchartaxisvaluetitleparagraphstyleindex = 40; + optional int32 tschchartaxiscategoryverticalspacing = 41; + extend .TSCH.ChartAxisStyleArchive { + optional .TSCH.Generated.ChartAxisStyleArchive current = 10000; + } +} + +message .TSCH.Generated.ChartAxisNonStyleArchive { + optional .TSK.FormatStructArchive tschchartaxisdefault1_0dateformat = 20; + optional .TSK.FormatStructArchive tschchartaxisdefault1_0numberformat = 2; + optional int32 tschchartaxisdefault3dlabelposition = 1; + optional .TSK.FormatStructArchive tschchartaxisdefaultdateformat = 22; + optional .TSK.FormatStructArchive tschchartaxisdefaultdurationformat = 21; + optional float tschchartaxisdefaultlabelexplosion = 23; + optional .TSK.FormatStructArchive tschchartaxisdefaultnumberformat = 42; + optional int32 tschchartaxisdefaultnumberformattype = 3; + optional int32 tschchartaxisvaluenumberofdecades = 4; + optional int32 tschchartaxisvaluenumberofmajorgridlines = 5; + optional int32 tschchartaxisvaluenumberofminorgridlines = 6; + optional bool tschchartaxiscategoryplottoedges = 7; + optional int32 tschchartaxisvaluescale = 8; + optional bool tschchartaxiscategoryshowlabels = 9; + optional bool tschchartaxisdefaultshowlabels = 10; + optional bool tschchartaxisvalueshowlabels = 11; + optional bool tschchartaxiscategoryshowserieslabels = 12; + optional bool tschchartaxismultidatashowserieslabels = 19; + optional bool tschchartaxiscategoryshowtitle = 13; + optional bool tschchartaxisvalueshowtitle = 14; + optional string tschchartaxiscategorytitle = 15; + optional string tschchartaxisvaluetitle = 16; + optional .TSCH.ChartsNSNumberDoubleArchive tschchartaxisdefaultusermax = 17; + optional .TSCH.ChartsNSNumberDoubleArchive tschchartaxisdefaultusermin = 18; + extend .TSCH.ChartAxisNonStyleArchive { + optional .TSCH.Generated.ChartAxisNonStyleArchive current = 10000; + } +} + +message .TSCH.Generated.ChartSeriesStyleArchive { + optional .TSD.LineEndArchive tschchartseriesdefaultcalloutlineendlineend = 130; + optional .TSD.LineEndArchive tschchartseriesdefaultcalloutlinestartlineend = 129; + optional .TSD.StrokeArchive tschchartseriesdefaultcalloutlinestrokestyle = 128; + optional .TSD.LineEndArchive tschchartseriesdefaulterrorbarlineend = 1; + optional .TSD.LineEndArchive tschchartseriesdefaulterrorbarlineendscatterx = 2; + optional .TSD.ShadowArchive tschchartseriesdefaulterrorbarshadow = 3; + optional int32 tschchartseriesdefaulterrorbarspacing = 98; + optional int32 tschchartseriesdefaulterrorbarspacingscatterx = 99; + optional .TSD.StrokeArchive tschchartseriesdefaulterrorbarstroke = 4; + optional .TSD.StrokeArchive tschchartseriesdefaulterrorbarstrokescatterx = 5; + optional .TSD.FillArchive tschchartseries3dareafill = 6; + optional .TSD.FillArchive tschchartseries3dbarfill = 7; + optional .TSD.FillArchive tschchartseries3dcolumnfill = 8; + optional .TSD.FillArchive tschchartseries3dlinefill = 9; + optional .TSD.FillArchive tschchartseries3dpiefill = 10; + optional .TSD.FillArchive tschchartseriesareafill = 11; + optional .TSD.FillArchive tschchartseriesbarfill = 12; + optional .TSD.FillArchive tschchartseriescolumnfill = 13; + optional .TSD.FillArchive tschchartseriesdefaultfill = 14; + optional .TSD.FillArchive tschchartseriesmixedareafill = 15; + optional .TSD.FillArchive tschchartseriesmixedcolumnfill = 16; + optional .TSD.FillArchive tschchartseriespiefill = 17; + optional .TSD.FillArchive tschchartseriesradarareafill = 165; + optional float tschchartseriesradarareafilluseseriesstrokealphamultiplier = 189; + optional bool tschchartseriesradarareafilluseseriesstroke = 188; + optional int32 tschchartseriesarealabelparagraphstyleindex = 18; + optional int32 tschchartseriesbarlabelparagraphstyleindex = 19; + optional int32 tschchartseriesdefaultlabelparagraphstyleindex = 20; + optional int32 tschchartseriesdonutlabelparagraphstyleindex = 152; + optional int32 tschchartserieslinelabelparagraphstyleindex = 21; + optional int32 tschchartseriesmixedlabelparagraphstyleindex = 22; + optional int32 tschchartseriespielabelparagraphstyleindex = 23; + optional int32 tschchartseriesradarlabelparagraphstyleindex = 167; + optional float tschchartseriesdefaultopacity = 24; + optional int32 tschchartseriesareaoutsidelabelparagraphstyleindex = 25; + optional int32 tschchartseriesbaroutsidelabelparagraphstyleindex = 26; + optional int32 tschchartseriesdefaultoutsidelabelparagraphstyleindex = 27; + optional int32 tschchartseriesdonutoutsidelabelparagraphstyleindex = 153; + optional int32 tschchartseriesmixedoutsidelabelparagraphstyleindex = 28; + optional int32 tschchartseriespieoutsidelabelparagraphstyleindex = 29; + optional int32 tschchartseriesradaroutsidelabelparagraphstyleindex = 168; + optional .TSD.ShadowArchive tschchartseries3dareashadow = 30; + optional .TSD.ShadowArchive tschchartseries3dbarshadow = 31; + optional .TSD.ShadowArchive tschchartseries3dcolumnshadow = 32; + optional .TSD.ShadowArchive tschchartseries3dlineshadow = 33; + optional .TSD.ShadowArchive tschchartseries3dpieshadow = 34; + optional .TSD.ShadowArchive tschchartseriesareashadow = 35; + optional .TSD.ShadowArchive tschchartseriesbarshadow = 36; + optional .TSD.ShadowArchive tschchartseriesbubbleshadow = 37; + optional .TSD.ShadowArchive tschchartseriesdefaultshadow = 38; + optional .TSD.ShadowArchive tschchartserieslineshadow = 39; + optional .TSD.ShadowArchive tschchartseriesmixedareashadow = 40; + optional .TSD.ShadowArchive tschchartseriesmixedcolumnshadow = 41; + optional .TSD.ShadowArchive tschchartseriesmixedlineshadow = 42; + optional .TSD.ShadowArchive tschchartseriespieshadow = 43; + optional .TSD.ShadowArchive tschchartseriesradarareashadow = 169; + optional .TSD.ShadowArchive tschchartseriesscattershadow = 44; + optional .TSD.StrokeArchive tschchartseriesareastroke = 45; + optional .TSD.StrokeArchive tschchartseriesbarstroke = 46; + optional .TSD.StrokeArchive tschchartseriesbubblestroke = 47; + optional .TSD.StrokeArchive tschchartserieslinestroke = 48; + optional .TSD.StrokeArchive tschchartseriesmixedareastroke = 49; + optional .TSD.StrokeArchive tschchartseriesmixedcolumnstroke = 50; + optional .TSD.StrokeArchive tschchartseriesmixedlinestroke = 51; + optional .TSD.StrokeArchive tschchartseriespiestroke = 52; + optional .TSD.StrokeArchive tschchartseriesradarareastroke = 172; + optional .TSD.StrokeArchive tschchartseriesscatterstroke = 53; + optional .TSD.FillArchive tschchartseriesareasymbolfill = 54; + optional .TSD.FillArchive tschchartseriesbubblesymbolfill = 55; + optional .TSD.FillArchive tschchartserieslinesymbolfill = 56; + optional .TSD.FillArchive tschchartseriesmixedareasymbolfill = 57; + optional .TSD.FillArchive tschchartseriesmixedlinesymbolfill = 58; + optional .TSD.FillArchive tschchartseriesradarareasymbolfill = 175; + optional .TSD.FillArchive tschchartseriesscattersymbolfill = 59; + optional bool tschchartseriesareasymbolfilluseseriesfill = 60; + optional bool tschchartserieslinesymbolfilluseseriesfill = 61; + optional bool tschchartseriesmixedareasymbolfilluseseriesfill = 62; + optional bool tschchartseriesmixedlinesymbolfilluseseriesfill = 63; + optional bool tschchartseriesradarareasymbolfilluseseriesfill = 177; + optional bool tschchartseriesareasymbolfilluseseriesstroke = 64; + optional bool tschchartseriesbubblesymbolfilluseseriesstroke = 65; + optional bool tschchartserieslinesymbolfilluseseriesstroke = 66; + optional bool tschchartseriesmixedareasymbolfilluseseriesstroke = 67; + optional bool tschchartseriesmixedlinesymbolfilluseseriesstroke = 68; + optional bool tschchartseriesradarareasymbolfilluseseriesstroke = 179; + optional bool tschchartseriesscattersymbolfilluseseriesstroke = 69; + optional float tschchartseriesareasymbolsize = 70; + optional float tschchartserieslinesymbolsize = 71; + optional float tschchartseriesmixedareasymbolsize = 72; + optional float tschchartseriesmixedlinesymbolsize = 73; + optional float tschchartseriesradarareasymbolsize = 181; + optional float tschchartseriesscattersymbolsize = 74; + optional .TSD.StrokeArchive tschchartseriesareasymbolstroke = 75; + optional .TSD.StrokeArchive tschchartseriesbubblesymbolstroke = 76; + optional .TSD.StrokeArchive tschchartserieslinesymbolstroke = 77; + optional .TSD.StrokeArchive tschchartseriesmixedareasymbolstroke = 78; + optional .TSD.StrokeArchive tschchartseriesmixedlinesymbolstroke = 79; + optional .TSD.StrokeArchive tschchartseriesradarareasymbolstroke = 183; + optional .TSD.StrokeArchive tschchartseriesscattersymbolstroke = 80; + optional .TSD.ShadowArchive tschchartseriesdefaulttrendlineshadow = 85; + optional .TSD.StrokeArchive tschchartseriesdefaulttrendlinestroke = 86; + optional float tschchartseriesdefaulttrendlineequationopacity = 81; + optional int32 tschchartseriesdefaulttrendlineequationparagraphstyleindex = 82; + optional float tschchartseriesdefaulttrendlinersquaredopacity = 83; + optional int32 tschchartseriesdefaulttrendlinersquaredparagraphstyleindex = 84; + optional int32 tschchartseriesareavaluelabelposition = 87; + optional int32 tschchartseriesbarvaluelabelposition = 88; + optional int32 tschchartseriesbubblevaluelabelposition = 89; + optional int32 tschchartseriesdefaultvaluelabelposition = 90; + optional int32 tschchartserieslinevaluelabelposition = 91; + optional int32 tschchartseriesmixedareavaluelabelposition = 92; + optional int32 tschchartseriesmixedcolumnvaluelabelposition = 93; + optional int32 tschchartseriesmixedlinevaluelabelposition = 94; + optional int32 tschchartseriesradarareavaluelabelposition = 185; + optional int32 tschchartseriesscattervaluelabelposition = 95; + optional int32 tschchartseriesstackedareavaluelabelposition = 96; + optional int32 tschchartseriesstackedbarvaluelabelposition = 97; + optional int32 tschchartseriesdefaultvaluelabelspacing = 100; + extend .TSCH.ChartSeriesStyleArchive { + optional .TSCH.Generated.ChartSeriesStyleArchive current = 10000; + } +} + +message .TSCH.Generated.ChartSeriesNonStyleArchive { + optional .TSK.FormatStructArchive tschchartseriesdefault1_0dateformat = 69; + optional .TSK.FormatStructArchive tschchartseriesdefault1_0numberformat = 21; + optional .TSK.FormatStructArchive tschchartseriespie1_0numberformat = 22; + optional float tschchartseriespie2_3labelexplosion = 16; + optional float tschchartseriesbubbleadjustmentscale = 1; + optional .TSK.FormatStructArchive tschchartseriesdefaultdateformat = 71; + optional .TSK.FormatStructArchive tschchartseriesdefaultdurationformat = 70; + optional int32 tschchartseriesareaenablecalloutline = 103; + optional int32 tschchartseriesbarenablecalloutline = 104; + optional int32 tschchartseriesbubbleenablecalloutline = 105; + optional int32 tschchartseriesdefaultenablecalloutline = 110; + optional int32 tschchartserieslineenablecalloutline = 106; + optional int32 tschchartseriespieenablecalloutline = 102; + optional int32 tschchartseriesscatterenablecalloutline = 107; + optional int32 tschchartseriesstackedareaenablecalloutline = 108; + optional int32 tschchartseriesstackedbarenablecalloutline = 109; + optional .TSCH.ChartsNSArrayOfNSNumberDoubleArchive tschchartseriesdefaulterrorbarcustomnegativedata = 2; + optional .TSCH.ChartsNSArrayOfNSNumberDoubleArchive tschchartseriesdefaulterrorbarcustomnegativedatascatterx = 3; + optional .TSCH.ChartsNSArrayOfNSNumberDoubleArchive tschchartseriesdefaulterrorbarcustompositivedata = 4; + optional .TSCH.ChartsNSArrayOfNSNumberDoubleArchive tschchartseriesdefaulterrorbarcustompositivedatascatterx = 5; + optional float tschchartseriesdefaulterrorbarfixedvalue = 6; + optional float tschchartseriesdefaulterrorbarfixedvaluescatterx = 7; + optional float tschchartseriesdefaulterrorbarpercentvalue = 8; + optional float tschchartseriesdefaulterrorbarpercentvaluescatterx = 9; + optional int32 tschchartseriesdefaulterrorbarsetting = 10; + optional int32 tschchartseriesdefaulterrorbarsettingscatterx = 11; + optional float tschchartseriesdefaulterrorbarstddevvalue = 12; + optional float tschchartseriesdefaulterrorbarstddevvaluescatterx = 13; + optional int32 tschchartseriesdefaulterrorbartype = 14; + optional int32 tschchartseriesdefaulterrorbartypescatterx = 15; + optional float tschchartseriespielabelexplosion = 147; + optional int32 tschchartseriesbubblelinetype = 17; + optional int32 tschchartserieslinelinetype = 18; + optional int32 tschchartseriesmixedlinelinetype = 19; + optional int32 tschchartseriesradararealinetype = 189; + optional int32 tschchartseriesscatterlinetype = 20; + optional .TSK.FormatStructArchive tschchartseriesdefaultnumberformat = 98; + optional .TSK.FormatStructArchive tschchartseriespienumberformat = 99; + optional int32 tschchartseriesdefaultnumberformattype = 23; + optional int32 tschchartseriespienumberformattype = 24; + optional .TSK.FormatStructArchive tschchartseriesstackedpercentnumberformat = 25; + optional int32 tschchartseriesdefaultseriestype = 26; + optional bool tschchartseriesdefaultshowerrorbar = 27; + optional bool tschchartseriesdefaultshowerrorbarscatterx = 28; + optional bool tschchartseriesbubbleshowlabelsinfront = 101; + optional bool tschchartseriesdefaultshowlabelsinfront = 100; + optional bool tschchartseriesscattershowline = 29; + optional bool tschchartseriesbubbleshownegativedata = 30; + optional bool tschchartseriesbubbleshowserieslabels = 65; + optional bool tschchartseriespieshowserieslabels = 31; + optional bool tschchartseriesscattershowserieslabels = 67; + optional bool tschchartseriesareashowsymbol = 32; + optional bool tschchartserieslineshowsymbol = 33; + optional bool tschchartseriesmixedareashowsymbol = 34; + optional bool tschchartseriesmixedlineshowsymbol = 35; + optional bool tschchartseriesradarareashowsymbol = 160; + optional bool tschchartseriesscattershowsymbol = 36; + optional bool tschchartseriesdefaultshowtrendline = 37; + optional bool tschchartseriesareashowvaluelabels = 38; + optional bool tschchartseriesbarshowvaluelabels = 39; + optional bool tschchartseriesbubbleshowvaluelabels = 40; + optional bool tschchartseriesdefaultshowvaluelabels = 41; + optional bool tschchartserieslineshowvaluelabels = 42; + optional bool tschchartseriesmixedshowvaluelabels = 43; + optional bool tschchartseriespieshowvaluelabels = 44; + optional bool tschchartseriesradarshowvaluelabels = 162; + optional bool tschchartseriesscattershowvaluelabels = 45; + optional int32 tschchartseriesbubblesizedimension = 46; + optional bool tschchartseriesareastacklabels = 139; + optional bool tschchartseriesbarstacklabels = 140; + optional bool tschchartseriesbubblestacklabels = 141; + optional bool tschchartseriesdefaultstacklabels = 146; + optional bool tschchartserieslinestacklabels = 142; + optional bool tschchartseriespiestacklabels = 138; + optional bool tschchartseriesscatterstacklabels = 143; + optional bool tschchartseriesstackedareastacklabels = 144; + optional bool tschchartseriesstackedbarstacklabels = 145; + optional int32 tschchartseriesareasymboltype = 47; + optional int32 tschchartserieslinesymboltype = 48; + optional int32 tschchartseriesmixedareasymboltype = 49; + optional int32 tschchartseriesmixedlinesymboltype = 50; + optional int32 tschchartseriesradarareasymboltype = 163; + optional int32 tschchartseriesscattersymboltype = 51; + optional float tschchartseriesdefaulttrendlineequationoffsetx = 52; + optional float tschchartseriesdefaulttrendlineequationoffsety = 53; + optional string tschchartseriesdefaulttrendlinelabelstring = 54; + optional int32 tschchartseriesdefaulttrendlineorder = 55; + optional int32 tschchartseriesdefaulttrendlineperiod = 56; + optional float tschchartseriesdefaulttrendlinersquaredoffsetx = 57; + optional float tschchartseriesdefaulttrendlinersquaredoffsety = 58; + optional bool tschchartseriesdefaulttrendlineshowequation = 59; + optional bool tschchartseriesdefaulttrendlineshowlabel = 60; + optional bool tschchartseriesdefaulttrendlineshowr2value = 61; + optional int32 tschchartseriesdefaulttrendlinetype = 62; + optional int32 tschchartseriesbubblevaluelabelsaxis = 66; + optional int32 tschchartseriesscattervaluelabelsaxis = 68; + optional float tschchartseriespiewedgeexplosion = 63; + optional int32 tschchartseriesdefaultyaxisordinal = 64; + extend .TSCH.ChartSeriesNonStyleArchive { + optional .TSCH.Generated.ChartSeriesNonStyleArchive current = 10000; + } +} + +message .TSCH.Generated.ReferenceLineStyleArchive { + optional int32 tschreferencelinedefaultlabelparagraphstyleindex = 3; + optional .TSD.ShadowArchive tschreferencelinedefaultshadow = 2; + optional .TSD.StrokeArchive tschreferencelinedefaultstroke = 1; + optional int32 tschreferencelinedefaultvaluelabelparagraphstyleindex = 4; + extend .TSCH.ReferenceLineStyleArchive { + optional .TSCH.Generated.ReferenceLineStyleArchive current = 10000; + } +} + +message .TSCH.Generated.ReferenceLineNonStyleArchive { + optional .TSCH.ChartsNSNumberDoubleArchive tschreferencelinedefaultcustomvalue = 6; + optional string tschreferencelinedefaultlabel = 5; + optional bool tschreferencelinedefaultshowlabel = 3; + optional bool tschreferencelinedefaultshowline = 2; + optional bool tschreferencelinedefaultshowvaluelabel = 4; + optional int32 tschreferencelinedefaulttype = 1; + extend .TSCH.ReferenceLineNonStyleArchive { + optional .TSCH.Generated.ReferenceLineNonStyleArchive current = 10000; + } +} + +message .TSCH.Generated.ChartGenericPropertyMapArchive { + optional int32 tschchartinfo3dbarshape = 1; + optional bool tschchartinfo3dbeveledges = 2; + optional float tschchartinfo3dchartopacity = 3; + optional float tschchartinfo3dintersetdepthgap = 4; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfo3dlightingpackage = 5; + optional .TSCH.Chart3DVectorArchive tschchartinfo3drotation = 6; + optional .TSCH.Chart3DVectorArchive tschchartinfo3dscale = 7; + optional .TSCH.Chart3DVectorArchive tschchartinfo3dviewport = 8; + optional bool tschchartinfoaxisanchorlabelatends = 9; + optional .TSD.FillArchive tschchartinfobackgroundfill = 10; + optional .TSD.StrokeArchive tschchartinfobackgroundstroke = 11; + optional float tschchartinfoborderopacity = 12; + optional .TSD.ShadowArchive tschchartinfobordershadow = 13; + optional .TSD.StrokeArchive tschchartinfoborderstroke = 14; + optional int32 tschchartinfocalloutlinetype = 15; + optional bool tschchartinfocombinelayers = 16; + optional bool tschchartinfodeprecatedroundedcornerouterendonly = 17; + optional float tschchartinfodeprecatedroundedcornerradius = 18; + optional int32 tschchartinfodatasetnamelocation = 19; + optional int32 tschchartinfodatasetnameparagraphstyleindex = 20; + optional bool tschchartinfodonutplacetitleatcenter = 21; + optional .TSD.FillArchive tschchartinfogridbackgroundfill = 22; + optional float tschchartinfogridbackgroundopacity = 23; + optional float tschchartinfoinnerradius = 24; + optional float tschchartinfointerbargap = 25; + optional float tschchartinfointersetgap = 26; + optional int32 tschchartinfomultidatacontroltype = 27; + optional float tschchartinfopiestartangle = 28; + optional bool tschchartinforadarradiusgridlinecurve = 29; + optional float tschchartinforadarstartangle = 30; + optional bool tschchartinforoundedcornerouterendonly = 31; + optional float tschchartinforoundedcornerradius = 32; + optional bool tschchartinfoshowborder = 33; + optional bool tschchartinfoshowlegend = 34; + optional bool tschchartinfoshowtitle = 35; + optional bool tschchartinfoskiphiddendata = 36; + optional .TSP.Color tschchartinfotitlecolor = 37; + optional string tschchartinfotitle = 38; + optional int32 tschchartinfotitleparagraphstyleindex = 39; +} + +message .TSCH.Generated.LegendGenericPropertyMapArchive { + optional .TSD.FillArchive tschlegendmodelfill = 1; + optional int32 tschlegendmodellabelparagraphstyleindex = 2; + optional float tschlegendmodelopacity = 3; + optional .TSD.ShadowArchive tschlegendmodelshadow = 4; + optional .TSD.StrokeArchive tschlegendmodelstroke = 5; +} + +message .TSCH.Generated.ChartAxisGenericPropertyMapArchive { + optional .TSK.FormatStructArchive tschchartaxis1_0dateformat = 1; + optional .TSK.FormatStructArchive tschchartaxis1_0numberformat = 2; + optional float tschchartaxis3dgridlineopacity = 3; + optional .TSD.StrokeArchive tschchartaxis3dgridlinestroke = 4; + optional int32 tschchartaxis3dlabelposition = 5; + optional .TSK.FormatStructArchive tschchartaxisdateformat = 6; + optional .TSK.FormatStructArchive tschchartaxisdurationformat = 7; + optional int32 tschchartaxishorizontalspacing = 8; + optional int32 tschchartaxislabelanglebaselinedirection = 9; + optional float tschchartaxislabelexplosion = 10; + optional int32 tschchartaxislabelparagraphstyleindex = 11; + optional float tschchartaxislabelsorientation = 12; + optional float tschchartaxismajorgridlineopacity = 13; + optional .TSD.ShadowArchive tschchartaxismajorgridlineshadow = 14; + optional .TSD.StrokeArchive tschchartaxismajorgridlinestroke = 15; + optional float tschchartaxisminorgridlineopacity = 16; + optional .TSD.ShadowArchive tschchartaxisminorgridlineshadow = 17; + optional .TSD.StrokeArchive tschchartaxisminorgridlinestroke = 18; + optional .TSK.FormatStructArchive tschchartaxisnumberformat = 19; + optional int32 tschchartaxisnumberformattype = 20; + optional int32 tschchartaxisnumberofdecades = 21; + optional int32 tschchartaxisnumberofmajorgridlines = 22; + optional int32 tschchartaxisnumberofminorgridlines = 23; + optional bool tschchartaxisplottoedges = 24; + optional int32 tschchartaxisscale = 25; + optional bool tschchartaxisshowaxis = 26; + optional bool tschchartaxisshowextensionlines = 27; + optional bool tschchartaxisshowgridlinetickmarks = 28; + optional bool tschchartaxisshowlabels = 29; + optional bool tschchartaxisshowlastlabel = 30; + optional bool tschchartaxisshowmajorgridlines = 31; + optional bool tschchartaxisshowmajortickmarks = 32; + optional bool tschchartaxisshowminimumlabel = 33; + optional bool tschchartaxisshowminorgridlines = 34; + optional bool tschchartaxisshowminortickmarks = 35; + optional bool tschchartaxisshowserieslabels = 36; + optional bool tschchartaxisshowtitle = 37; + optional int32 tschchartaxistickmarklocation = 38; + optional string tschchartaxistitle = 39; + optional int32 tschchartaxistitleparagraphstyleindex = 40; + optional .TSCH.ChartsNSNumberDoubleArchive tschchartaxisusermax = 41; + optional .TSCH.ChartsNSNumberDoubleArchive tschchartaxisusermin = 42; + optional int32 tschchartaxisverticalspacing = 43; +} + +message .TSCH.Generated.ChartSeriesGenericPropertyMapArchive { + optional .TSK.FormatStructArchive tschchartseries1_0dateformat = 1; + optional .TSK.FormatStructArchive tschchartseries1_0numberformat = 2; + optional float tschchartseries2_3labelexplosion = 3; + optional float tschchartseriesadjustmentscale = 4; + optional .TSD.LineEndArchive tschchartseriescalloutlineendlineend = 5; + optional .TSD.LineEndArchive tschchartseriescalloutlinestartlineend = 6; + optional .TSD.StrokeArchive tschchartseriescalloutlinestrokestyle = 7; + optional .TSK.FormatStructArchive tschchartseriesdateformat = 8; + optional .TSK.FormatStructArchive tschchartseriesdurationformat = 9; + optional int32 tschchartseriesenablecalloutline = 10; + optional .TSCH.ChartsNSArrayOfNSNumberDoubleArchive tschchartserieserrorbarcustomnegativedata = 11; + optional .TSCH.ChartsNSArrayOfNSNumberDoubleArchive tschchartserieserrorbarcustomnegativedatascatterx = 12; + optional .TSCH.ChartsNSArrayOfNSNumberDoubleArchive tschchartserieserrorbarcustompositivedata = 13; + optional .TSCH.ChartsNSArrayOfNSNumberDoubleArchive tschchartserieserrorbarcustompositivedatascatterx = 14; + optional float tschchartserieserrorbarfixedvalue = 15; + optional float tschchartserieserrorbarfixedvaluescatterx = 16; + optional .TSD.LineEndArchive tschchartserieserrorbarlineend = 17; + optional .TSD.LineEndArchive tschchartserieserrorbarlineendscatterx = 18; + optional float tschchartserieserrorbarpercentvalue = 19; + optional float tschchartserieserrorbarpercentvaluescatterx = 20; + optional int32 tschchartserieserrorbarsetting = 21; + optional int32 tschchartserieserrorbarsettingscatterx = 22; + optional .TSD.ShadowArchive tschchartserieserrorbarshadow = 23; + optional int32 tschchartserieserrorbarspacing = 24; + optional int32 tschchartserieserrorbarspacingscatterx = 25; + optional float tschchartserieserrorbarstddevvalue = 26; + optional float tschchartserieserrorbarstddevvaluescatterx = 27; + optional .TSD.StrokeArchive tschchartserieserrorbarstroke = 28; + optional .TSD.StrokeArchive tschchartserieserrorbarstrokescatterx = 29; + optional int32 tschchartserieserrorbartype = 30; + optional int32 tschchartserieserrorbartypescatterx = 31; + optional .TSD.FillArchive tschchartseriesfill = 32; + optional float tschchartseriesfilluseseriesstrokealphamultiplier = 33; + optional bool tschchartseriesfilluseseriesstroke = 34; + optional float tschchartserieslabelexplosion = 35; + optional int32 tschchartserieslabelparagraphstyleindex = 36; + optional int32 tschchartserieslinetype = 37; + optional .TSK.FormatStructArchive tschchartseriesnumberformat = 38; + optional int32 tschchartseriesnumberformattype = 39; + optional float tschchartseriesopacity = 40; + optional int32 tschchartseriesoutsidelabelparagraphstyleindex = 41; + optional .TSK.FormatStructArchive tschchartseriespercentnumberformat = 42; + optional int32 tschchartseriesseriestype = 43; + optional .TSD.ShadowArchive tschchartseriesshadow = 44; + optional bool tschchartseriesshowerrorbar = 45; + optional bool tschchartseriesshowerrorbarscatterx = 46; + optional bool tschchartseriesshowlabelsinfront = 47; + optional bool tschchartseriesshowline = 48; + optional bool tschchartseriesshownegativedata = 49; + optional bool tschchartseriesshowserieslabels = 50; + optional bool tschchartseriesshowsymbol = 51; + optional bool tschchartseriesshowtrendline = 52; + optional bool tschchartseriesshowvaluelabels = 53; + optional int32 tschchartseriessizedimension = 54; + optional bool tschchartseriesstacklabels = 55; + optional .TSD.StrokeArchive tschchartseriesstroke = 56; + optional .TSD.FillArchive tschchartseriessymbolfill = 57; + optional bool tschchartseriessymbolfilluseseriesfill = 58; + optional bool tschchartseriessymbolfilluseseriesstroke = 59; + optional float tschchartseriessymbolsize = 60; + optional .TSD.StrokeArchive tschchartseriessymbolstroke = 61; + optional int32 tschchartseriessymboltype = 62; + optional float tschchartseriestrendlineequationoffsetx = 63; + optional float tschchartseriestrendlineequationoffsety = 64; + optional string tschchartseriestrendlinelabelstring = 65; + optional int32 tschchartseriestrendlineorder = 66; + optional int32 tschchartseriestrendlineperiod = 67; + optional float tschchartseriestrendlinersquaredoffsetx = 68; + optional float tschchartseriestrendlinersquaredoffsety = 69; + optional .TSD.ShadowArchive tschchartseriestrendlineshadow = 70; + optional bool tschchartseriestrendlineshowequation = 71; + optional bool tschchartseriestrendlineshowlabel = 72; + optional bool tschchartseriestrendlineshowr2value = 73; + optional .TSD.StrokeArchive tschchartseriestrendlinestroke = 74; + optional int32 tschchartseriestrendlinetype = 75; + optional float tschchartseriestrendlineequationopacity = 76; + optional int32 tschchartseriestrendlineequationparagraphstyleindex = 77; + optional float tschchartseriestrendlinersquaredopacity = 78; + optional int32 tschchartseriestrendlinersquaredparagraphstyleindex = 79; + optional int32 tschchartseriesvaluelabelposition = 80; + optional int32 tschchartseriesvaluelabelspacing = 81; + optional int32 tschchartseriesvaluelabelsaxis = 82; + optional float tschchartserieswedgeexplosion = 83; + optional int32 tschchartseriesyaxisordinal = 84; +} + +message .TSCH.Generated.ReferenceLineGenericPropertyMapArchive { + optional .TSCH.ChartsNSNumberDoubleArchive tschreferencelinecustomvalue = 1; + optional string tschreferencelinelabel = 2; + optional int32 tschreferencelinelabelparagraphstyleindex = 3; + optional .TSD.ShadowArchive tschreferencelineshadow = 4; + optional bool tschreferencelineshowlabel = 5; + optional bool tschreferencelineshowline = 6; + optional bool tschreferencelineshowvaluelabel = 7; + optional .TSD.StrokeArchive tschreferencelinestroke = 8; + optional int32 tschreferencelinetype = 9; + optional int32 tschreferencelinevaluelabelparagraphstyleindex = 10; +} + + +message .TSCHSOS.SpecSetChart3dLightingPackageArchive { + optional .TSCH.Chart3DLightingPackageArchive chart3d_lighting_package = 1; + required bool unset = 2; +} + +message .TSCHSOS.SpecSetChart3dVectorArchive { + optional .TSCH.Chart3DVectorArchive chart3d_vector = 1; + required bool unset = 2; +} + +message .TSCHSOS.SpecSetChartErrorBarCustomDataArchive { + optional .TSCH.ChartsNSArrayOfNSNumberDoubleArchive chart_error_bar_custom_data = 1; + required bool unset = 2; +} + +message .TSCHSOS.SpecSetChartsOptionalDoubleArchiveArchive { + optional .TSCH.ChartsNSNumberDoubleArchive charts_optional_double_archive = 1; + required bool unset = 2; +} + +message .TSCHSOS.SpecSetFormatObjectArchive { + optional .TSK.FormatStructArchive format_object = 1; + required bool unset = 2; +} + +message .TSCHSOS.SpecSetNumberFormatArchive { + optional .TSK.FormatStructArchive number_format = 1; + required bool unset = 2; +} + +message .TSCHSOS.SpecChart3dLightingPackageArchive { + optional .TSCHSOS.SpecSetChart3dLightingPackageArchive spec_set_chart3d_lighting_package = 1; +} + +message .TSCHSOS.SpecChart3dVectorArchive { + optional .TSCHSOS.SpecSetChart3dVectorArchive spec_set_chart3d_vector = 1; +} + +message .TSCHSOS.SpecChartErrorBarCustomDataArchive { + optional .TSCHSOS.SpecSetChartErrorBarCustomDataArchive spec_set_chart_error_bar_custom_data = 1; +} + +message .TSCHSOS.SpecChartsOptionalDoubleArchiveArchive { + optional .TSCHSOS.SpecSetChartsOptionalDoubleArchiveArchive spec_set_charts_optional_double_archive = 1; +} + +message .TSCHSOS.SpecFormatObjectArchive { + optional .TSCHSOS.SpecSetFormatObjectArchive spec_set_format_object = 1; +} + +message .TSCHSOS.SpecNumberFormatArchive { + optional .TSCHSOS.SpecSetNumberFormatArchive spec_set_number_format = 1; +} + +message .TSCHSOS.ChartAxisNonStylePropertyChangeSetArchive { + optional .TSCHSOS.SpecFormatObjectArchive default10_date_format = 1; + optional bool default10_date_format_undefined = 2; + optional .TSCHSOS.SpecNumberFormatArchive default10_number_format = 3; + optional bool default10_number_format_undefined = 4; + optional .TSSSOS.SpecIntegerArchive default3d_label_position = 5; + optional bool default3d_label_position_undefined = 6; + optional .TSCHSOS.SpecFormatObjectArchive default_date_format = 7; + optional bool default_date_format_undefined = 8; + optional .TSCHSOS.SpecFormatObjectArchive default_duration_format = 9; + optional bool default_duration_format_undefined = 10; + optional .TSSSOS.SpecDoubleArchive default_label_explosion = 11; + optional bool default_label_explosion_undefined = 12; + optional .TSCHSOS.SpecNumberFormatArchive default_number_format = 13; + optional bool default_number_format_undefined = 14; + optional .TSSSOS.SpecIntegerArchive default_number_format_type = 15; + optional bool default_number_format_type_undefined = 16; + optional .TSSSOS.SpecIntegerArchive value_number_of_decades = 17; + optional bool value_number_of_decades_undefined = 18; + optional .TSSSOS.SpecIntegerArchive value_number_of_major_gridlines = 19; + optional bool value_number_of_major_gridlines_undefined = 20; + optional .TSSSOS.SpecIntegerArchive value_number_of_minor_gridlines = 21; + optional bool value_number_of_minor_gridlines_undefined = 22; + optional .TSSSOS.SpecBoolArchive category_plot_to_edges = 23; + optional bool category_plot_to_edges_undefined = 24; + optional .TSSSOS.SpecIntegerArchive value_scale = 25; + optional bool value_scale_undefined = 26; + optional .TSSSOS.SpecBoolArchive category_show_labels = 27; + optional bool category_show_labels_undefined = 28; + optional .TSSSOS.SpecBoolArchive default_show_labels = 29; + optional bool default_show_labels_undefined = 30; + optional .TSSSOS.SpecBoolArchive value_show_labels = 31; + optional bool value_show_labels_undefined = 32; + optional .TSSSOS.SpecBoolArchive category_show_series_labels = 33; + optional bool category_show_series_labels_undefined = 34; + optional .TSSSOS.SpecBoolArchive multi_data_show_series_labels = 35; + optional bool multi_data_show_series_labels_undefined = 36; + optional .TSSSOS.SpecBoolArchive category_show_title = 37; + optional bool category_show_title_undefined = 38; + optional .TSSSOS.SpecBoolArchive value_show_title = 39; + optional bool value_show_title_undefined = 40; + optional .TSSSOS.SpecStringArchive category_title = 41; + optional bool category_title_undefined = 42; + optional .TSSSOS.SpecStringArchive value_title = 43; + optional bool value_title_undefined = 44; + optional .TSCHSOS.SpecChartsOptionalDoubleArchiveArchive default_user_max = 45; + optional bool default_user_max_undefined = 46; + optional .TSCHSOS.SpecChartsOptionalDoubleArchiveArchive default_user_min = 47; + optional bool default_user_min_undefined = 48; +} + +message .TSCHSOS.ChartAxisStylePropertyChangeSetArchive { + optional .TSSSOS.SpecDoubleArchive category3d_gridline_opacity = 1; + optional bool category3d_gridline_opacity_undefined = 2; + optional .TSSSOS.SpecDoubleArchive value3d_gridline_opacity = 3; + optional bool value3d_gridline_opacity_undefined = 4; + optional .TSDSOS.SpecStrokeArchive category3d_gridline_stroke = 5; + optional bool category3d_gridline_stroke_undefined = 6; + optional .TSDSOS.SpecStrokeArchive value3d_gridline_stroke = 7; + optional bool value3d_gridline_stroke_undefined = 8; + optional .TSSSOS.SpecIntegerArchive category_horizontal_spacing = 9; + optional bool category_horizontal_spacing_undefined = 10; + optional .TSSSOS.SpecIntegerArchive default_label_angle_baseline_direction = 11; + optional bool default_label_angle_baseline_direction_undefined = 12; + optional .TSSSOS.SpecIntegerArchive category_label_paragraph_style_index = 13; + optional bool category_label_paragraph_style_index_undefined = 14; + optional .TSSSOS.SpecIntegerArchive default_label_paragraph_style_index = 15; + optional bool default_label_paragraph_style_index_undefined = 16; + optional .TSSSOS.SpecIntegerArchive value_label_paragraph_style_index = 17; + optional bool value_label_paragraph_style_index_undefined = 18; + optional .TSSSOS.SpecDoubleArchive category_labels_orientation = 19; + optional bool category_labels_orientation_undefined = 20; + optional .TSSSOS.SpecDoubleArchive default_labels_orientation = 21; + optional bool default_labels_orientation_undefined = 22; + optional .TSSSOS.SpecDoubleArchive value_labels_orientation = 23; + optional bool value_labels_orientation_undefined = 24; + optional .TSSSOS.SpecDoubleArchive category_major_gridline_opacity = 25; + optional bool category_major_gridline_opacity_undefined = 26; + optional .TSSSOS.SpecDoubleArchive value_major_gridline_opacity = 27; + optional bool value_major_gridline_opacity_undefined = 28; + optional .TSDSOS.SpecShadowArchive category_major_gridline_shadow = 29; + optional bool category_major_gridline_shadow_undefined = 30; + optional .TSDSOS.SpecShadowArchive value_major_gridline_shadow = 31; + optional bool value_major_gridline_shadow_undefined = 32; + optional .TSDSOS.SpecStrokeArchive category_major_gridline_stroke = 33; + optional bool category_major_gridline_stroke_undefined = 34; + optional .TSDSOS.SpecStrokeArchive value_major_gridline_stroke = 35; + optional bool value_major_gridline_stroke_undefined = 36; + optional .TSSSOS.SpecDoubleArchive category_minor_gridline_opacity = 37; + optional bool category_minor_gridline_opacity_undefined = 38; + optional .TSSSOS.SpecDoubleArchive value_minor_gridline_opacity = 39; + optional bool value_minor_gridline_opacity_undefined = 40; + optional .TSDSOS.SpecShadowArchive category_minor_gridline_shadow = 41; + optional bool category_minor_gridline_shadow_undefined = 42; + optional .TSDSOS.SpecShadowArchive value_minor_gridline_shadow = 43; + optional bool value_minor_gridline_shadow_undefined = 44; + optional .TSDSOS.SpecStrokeArchive category_minor_gridline_stroke = 45; + optional bool category_minor_gridline_stroke_undefined = 46; + optional .TSDSOS.SpecStrokeArchive value_minor_gridline_stroke = 47; + optional bool value_minor_gridline_stroke_undefined = 48; + optional .TSSSOS.SpecBoolArchive category_show_axis = 49; + optional bool category_show_axis_undefined = 50; + optional .TSSSOS.SpecBoolArchive value_show_axis = 51; + optional bool value_show_axis_undefined = 52; + optional .TSSSOS.SpecBoolArchive default_show_extension_lines = 53; + optional bool default_show_extension_lines_undefined = 54; + optional .TSSSOS.SpecBoolArchive category_show_gridline_tickmarks = 55; + optional bool category_show_gridline_tickmarks_undefined = 56; + optional .TSSSOS.SpecBoolArchive value_show_gridline_tickmarks = 57; + optional bool value_show_gridline_tickmarks_undefined = 58; + optional .TSSSOS.SpecBoolArchive category_show_last_label = 59; + optional bool category_show_last_label_undefined = 60; + optional .TSSSOS.SpecBoolArchive category_show_major_gridlines = 61; + optional bool category_show_major_gridlines_undefined = 62; + optional .TSSSOS.SpecBoolArchive polar_category_show_major_gridlines = 63; + optional bool polar_category_show_major_gridlines_undefined = 64; + optional .TSSSOS.SpecBoolArchive value_show_major_gridlines = 65; + optional bool value_show_major_gridlines_undefined = 66; + optional .TSSSOS.SpecBoolArchive category_show_major_tickmarks = 67; + optional bool category_show_major_tickmarks_undefined = 68; + optional .TSSSOS.SpecBoolArchive value_show_major_tickmarks = 69; + optional bool value_show_major_tickmarks_undefined = 70; + optional .TSSSOS.SpecBoolArchive value_show_minimum_label = 71; + optional bool value_show_minimum_label_undefined = 72; + optional .TSSSOS.SpecBoolArchive category_show_minor_gridlines = 73; + optional bool category_show_minor_gridlines_undefined = 74; + optional .TSSSOS.SpecBoolArchive value_show_minor_gridlines = 75; + optional bool value_show_minor_gridlines_undefined = 76; + optional .TSSSOS.SpecBoolArchive category_show_minor_tickmarks = 77; + optional bool category_show_minor_tickmarks_undefined = 78; + optional .TSSSOS.SpecBoolArchive value_show_minor_tickmarks = 79; + optional bool value_show_minor_tickmarks_undefined = 80; + optional .TSSSOS.SpecIntegerArchive category_tickmark_location = 81; + optional bool category_tickmark_location_undefined = 82; + optional .TSSSOS.SpecIntegerArchive value_tickmark_location = 83; + optional bool value_tickmark_location_undefined = 84; + optional .TSSSOS.SpecIntegerArchive category_title_paragraph_style_index = 85; + optional bool category_title_paragraph_style_index_undefined = 86; + optional .TSSSOS.SpecIntegerArchive default_title_paragraph_style_index = 87; + optional bool default_title_paragraph_style_index_undefined = 88; + optional .TSSSOS.SpecIntegerArchive value_title_paragraph_style_index = 89; + optional bool value_title_paragraph_style_index_undefined = 90; + optional .TSSSOS.SpecIntegerArchive category_vertical_spacing = 91; + optional bool category_vertical_spacing_undefined = 92; +} + +message .TSCHSOS.ChartLegendNonStylePropertyChangeSetArchive { +} + +message .TSCHSOS.ChartLegendStylePropertyChangeSetArchive { + optional .TSDSOS.SpecFillArchive default_fill = 1; + optional bool default_fill_undefined = 2; + optional .TSSSOS.SpecIntegerArchive default_label_paragraph_style_index = 3; + optional bool default_label_paragraph_style_index_undefined = 4; + optional .TSSSOS.SpecDoubleArchive default_opacity = 5; + optional bool default_opacity_undefined = 6; + optional .TSDSOS.SpecShadowArchive default_shadow = 7; + optional bool default_shadow_undefined = 8; + optional .TSDSOS.SpecStrokeArchive default_stroke = 9; + optional bool default_stroke_undefined = 10; +} + +message .TSCHSOS.ChartNonStylePropertyChangeSetArchive { + optional .TSSSOS.SpecIntegerArchive default3d_bar_shape = 1; + optional bool default3d_bar_shape_undefined = 2; + optional .TSSSOS.SpecBoolArchive default3d_bevel_edges = 3; + optional bool default3d_bevel_edges_undefined = 4; + optional .TSSSOS.SpecDoubleArchive default3d_inter_set_depth_gap = 5; + optional bool default3d_inter_set_depth_gap_undefined = 6; + optional .TSCHSOS.SpecChart3dVectorArchive default3d_rotation = 7; + optional bool default3d_rotation_undefined = 8; + optional .TSCHSOS.SpecChart3dVectorArchive area3d_scale = 9; + optional bool area3d_scale_undefined = 10; + optional .TSCHSOS.SpecChart3dVectorArchive bar3d_scale = 11; + optional bool bar3d_scale_undefined = 12; + optional .TSCHSOS.SpecChart3dVectorArchive column3d_scale = 13; + optional bool column3d_scale_undefined = 14; + optional .TSCHSOS.SpecChart3dVectorArchive default3d_scale = 15; + optional bool default3d_scale_undefined = 16; + optional .TSCHSOS.SpecChart3dVectorArchive line3d_scale = 17; + optional bool line3d_scale_undefined = 18; + optional .TSCHSOS.SpecChart3dVectorArchive pie3d_scale = 19; + optional bool pie3d_scale_undefined = 20; + optional .TSCHSOS.SpecChart3dVectorArchive default3d_viewport = 21; + optional bool default3d_viewport_undefined = 22; + optional .TSSSOS.SpecIntegerArchive area_callout_line_type = 23; + optional bool area_callout_line_type_undefined = 24; + optional .TSSSOS.SpecIntegerArchive bar_callout_line_type = 25; + optional bool bar_callout_line_type_undefined = 26; + optional .TSSSOS.SpecIntegerArchive bubble_callout_line_type = 27; + optional bool bubble_callout_line_type_undefined = 28; + optional .TSSSOS.SpecIntegerArchive default_callout_line_type = 29; + optional bool default_callout_line_type_undefined = 30; + optional .TSSSOS.SpecIntegerArchive line_callout_line_type = 31; + optional bool line_callout_line_type_undefined = 32; + optional .TSSSOS.SpecIntegerArchive pie_callout_line_type = 33; + optional bool pie_callout_line_type_undefined = 34; + optional .TSSSOS.SpecIntegerArchive scatter_callout_line_type = 35; + optional bool scatter_callout_line_type_undefined = 36; + optional .TSSSOS.SpecIntegerArchive stacked_area_callout_line_type = 37; + optional bool stacked_area_callout_line_type_undefined = 38; + optional .TSSSOS.SpecIntegerArchive stacked_bar_callout_line_type = 39; + optional bool stacked_bar_callout_line_type_undefined = 40; + optional .TSSSOS.SpecBoolArchive default_d_e_p_r_e_c_a_t_e_d_rounded_corner_outer_end_only = 41; + optional bool default_d_e_p_r_e_c_a_t_e_d_rounded_corner_outer_end_only_undefined = 42; + optional .TSSSOS.SpecDoubleArchive default_d_e_p_r_e_c_a_t_e_d_rounded_corner_radius = 43; + optional bool default_d_e_p_r_e_c_a_t_e_d_rounded_corner_radius_undefined = 44; + optional .TSSSOS.SpecIntegerArchive default_data_set_name_location = 45; + optional bool default_data_set_name_location_undefined = 46; + optional .TSSSOS.SpecBoolArchive default_donut_place_title_at_center = 47; + optional bool default_donut_place_title_at_center_undefined = 48; + optional .TSSSOS.SpecDoubleArchive default_inner_radius = 49; + optional bool default_inner_radius_undefined = 50; + optional .TSSSOS.SpecIntegerArchive default_multi_data_control_type = 51; + optional bool default_multi_data_control_type_undefined = 52; + optional .TSSSOS.SpecDoubleArchive default_pie_start_angle = 53; + optional bool default_pie_start_angle_undefined = 54; + optional .TSSSOS.SpecDoubleArchive default_radar_start_angle = 55; + optional bool default_radar_start_angle_undefined = 56; + optional .TSSSOS.SpecBoolArchive default_show_legend = 57; + optional bool default_show_legend_undefined = 58; + optional .TSSSOS.SpecBoolArchive default_show_title = 59; + optional bool default_show_title_undefined = 60; + optional .TSSSOS.SpecBoolArchive default_skip_hidden_data = 61; + optional bool default_skip_hidden_data_undefined = 62; + optional .TSSSOS.SpecStringArchive default_title = 63; + optional bool default_title_undefined = 64; +} + +message .TSCHSOS.ChartReferenceLineNonStylePropertyChangeSetArchive { + optional .TSCHSOS.SpecChartsOptionalDoubleArchiveArchive default_custom_value = 1; + optional bool default_custom_value_undefined = 2; + optional .TSSSOS.SpecStringArchive default_label = 3; + optional bool default_label_undefined = 4; + optional .TSSSOS.SpecBoolArchive default_show_label = 5; + optional bool default_show_label_undefined = 6; + optional .TSSSOS.SpecBoolArchive default_show_line = 7; + optional bool default_show_line_undefined = 8; + optional .TSSSOS.SpecBoolArchive default_show_value_label = 9; + optional bool default_show_value_label_undefined = 10; + optional .TSSSOS.SpecIntegerArchive default_type = 11; + optional bool default_type_undefined = 12; +} + +message .TSCHSOS.ChartReferenceLineStylePropertyChangeSetArchive { + optional .TSSSOS.SpecIntegerArchive default_label_paragraph_style_index = 1; + optional bool default_label_paragraph_style_index_undefined = 2; + optional .TSDSOS.SpecShadowArchive default_shadow = 3; + optional bool default_shadow_undefined = 4; + optional .TSDSOS.SpecStrokeArchive default_stroke = 5; + optional bool default_stroke_undefined = 6; + optional .TSSSOS.SpecIntegerArchive default_value_label_paragraph_style_index = 7; + optional bool default_value_label_paragraph_style_index_undefined = 8; +} + +message .TSCHSOS.ChartSeriesNonStylePropertyChangeSetArchive { + optional .TSCHSOS.SpecFormatObjectArchive default10_date_format = 1; + optional bool default10_date_format_undefined = 2; + optional .TSCHSOS.SpecNumberFormatArchive default10_number_format = 3; + optional bool default10_number_format_undefined = 4; + optional .TSCHSOS.SpecNumberFormatArchive pie10_number_format = 5; + optional bool pie10_number_format_undefined = 6; + optional .TSSSOS.SpecDoubleArchive pie23_label_explosion = 7; + optional bool pie23_label_explosion_undefined = 8; + optional .TSSSOS.SpecDoubleArchive bubble_adjustment_scale = 9; + optional bool bubble_adjustment_scale_undefined = 10; + optional .TSCHSOS.SpecFormatObjectArchive default_date_format = 11; + optional bool default_date_format_undefined = 12; + optional .TSCHSOS.SpecFormatObjectArchive default_duration_format = 13; + optional bool default_duration_format_undefined = 14; + optional .TSSSOS.SpecIntegerArchive area_enable_callout_line = 15; + optional bool area_enable_callout_line_undefined = 16; + optional .TSSSOS.SpecIntegerArchive bar_enable_callout_line = 17; + optional bool bar_enable_callout_line_undefined = 18; + optional .TSSSOS.SpecIntegerArchive bubble_enable_callout_line = 19; + optional bool bubble_enable_callout_line_undefined = 20; + optional .TSSSOS.SpecIntegerArchive default_enable_callout_line = 21; + optional bool default_enable_callout_line_undefined = 22; + optional .TSSSOS.SpecIntegerArchive line_enable_callout_line = 23; + optional bool line_enable_callout_line_undefined = 24; + optional .TSSSOS.SpecIntegerArchive pie_enable_callout_line = 25; + optional bool pie_enable_callout_line_undefined = 26; + optional .TSSSOS.SpecIntegerArchive scatter_enable_callout_line = 27; + optional bool scatter_enable_callout_line_undefined = 28; + optional .TSSSOS.SpecIntegerArchive stacked_area_enable_callout_line = 29; + optional bool stacked_area_enable_callout_line_undefined = 30; + optional .TSSSOS.SpecIntegerArchive stacked_bar_enable_callout_line = 31; + optional bool stacked_bar_enable_callout_line_undefined = 32; + optional .TSCHSOS.SpecChartErrorBarCustomDataArchive default_error_bar_custom_negative_data = 33; + optional bool default_error_bar_custom_negative_data_undefined = 34; + optional .TSCHSOS.SpecChartErrorBarCustomDataArchive default_error_bar_custom_negative_data_scatter_x = 35; + optional bool default_error_bar_custom_negative_data_scatter_x_undefined = 36; + optional .TSCHSOS.SpecChartErrorBarCustomDataArchive default_error_bar_custom_positive_data = 37; + optional bool default_error_bar_custom_positive_data_undefined = 38; + optional .TSCHSOS.SpecChartErrorBarCustomDataArchive default_error_bar_custom_positive_data_scatter_x = 39; + optional bool default_error_bar_custom_positive_data_scatter_x_undefined = 40; + optional .TSSSOS.SpecDoubleArchive default_error_bar_fixed_value = 41; + optional bool default_error_bar_fixed_value_undefined = 42; + optional .TSSSOS.SpecDoubleArchive default_error_bar_fixed_value_scatter_x = 43; + optional bool default_error_bar_fixed_value_scatter_x_undefined = 44; + optional .TSSSOS.SpecDoubleArchive default_error_bar_percent_value = 45; + optional bool default_error_bar_percent_value_undefined = 46; + optional .TSSSOS.SpecDoubleArchive default_error_bar_percent_value_scatter_x = 47; + optional bool default_error_bar_percent_value_scatter_x_undefined = 48; + optional .TSSSOS.SpecIntegerArchive default_error_bar_setting = 49; + optional bool default_error_bar_setting_undefined = 50; + optional .TSSSOS.SpecIntegerArchive default_error_bar_setting_scatter_x = 51; + optional bool default_error_bar_setting_scatter_x_undefined = 52; + optional .TSSSOS.SpecDoubleArchive default_error_bar_std_dev_value = 53; + optional bool default_error_bar_std_dev_value_undefined = 54; + optional .TSSSOS.SpecDoubleArchive default_error_bar_std_dev_value_scatter_x = 55; + optional bool default_error_bar_std_dev_value_scatter_x_undefined = 56; + optional .TSSSOS.SpecIntegerArchive default_error_bar_type = 57; + optional bool default_error_bar_type_undefined = 58; + optional .TSSSOS.SpecIntegerArchive default_error_bar_type_scatter_x = 59; + optional bool default_error_bar_type_scatter_x_undefined = 60; + optional .TSSSOS.SpecDoubleArchive pie_label_explosion = 61; + optional bool pie_label_explosion_undefined = 62; + optional .TSSSOS.SpecIntegerArchive bubble_line_type = 63; + optional bool bubble_line_type_undefined = 64; + optional .TSSSOS.SpecIntegerArchive line_line_type = 65; + optional bool line_line_type_undefined = 66; + optional .TSSSOS.SpecIntegerArchive mixed_line_line_type = 67; + optional bool mixed_line_line_type_undefined = 68; + optional .TSSSOS.SpecIntegerArchive radar_area_line_type = 69; + optional bool radar_area_line_type_undefined = 70; + optional .TSSSOS.SpecIntegerArchive scatter_line_type = 71; + optional bool scatter_line_type_undefined = 72; + optional .TSCHSOS.SpecNumberFormatArchive default_number_format = 73; + optional bool default_number_format_undefined = 74; + optional .TSCHSOS.SpecNumberFormatArchive pie_number_format = 75; + optional bool pie_number_format_undefined = 76; + optional .TSSSOS.SpecIntegerArchive default_number_format_type = 77; + optional bool default_number_format_type_undefined = 78; + optional .TSSSOS.SpecIntegerArchive pie_number_format_type = 79; + optional bool pie_number_format_type_undefined = 80; + optional .TSCHSOS.SpecNumberFormatArchive stacked_percent_number_format = 81; + optional bool stacked_percent_number_format_undefined = 82; + optional .TSSSOS.SpecIntegerArchive default_series_type = 83; + optional bool default_series_type_undefined = 84; + optional .TSSSOS.SpecBoolArchive default_show_error_bar = 85; + optional bool default_show_error_bar_undefined = 86; + optional .TSSSOS.SpecBoolArchive default_show_error_bar_scatter_x = 87; + optional bool default_show_error_bar_scatter_x_undefined = 88; + optional .TSSSOS.SpecBoolArchive bubble_show_labels_in_front = 89; + optional bool bubble_show_labels_in_front_undefined = 90; + optional .TSSSOS.SpecBoolArchive default_show_labels_in_front = 91; + optional bool default_show_labels_in_front_undefined = 92; + optional .TSSSOS.SpecBoolArchive scatter_show_line = 93; + optional bool scatter_show_line_undefined = 94; + optional .TSSSOS.SpecBoolArchive bubble_show_negative_data = 95; + optional bool bubble_show_negative_data_undefined = 96; + optional .TSSSOS.SpecBoolArchive bubble_show_series_labels = 97; + optional bool bubble_show_series_labels_undefined = 98; + optional .TSSSOS.SpecBoolArchive pie_show_series_labels = 99; + optional bool pie_show_series_labels_undefined = 100; + optional .TSSSOS.SpecBoolArchive scatter_show_series_labels = 101; + optional bool scatter_show_series_labels_undefined = 102; + optional .TSSSOS.SpecBoolArchive area_show_symbol = 103; + optional bool area_show_symbol_undefined = 104; + optional .TSSSOS.SpecBoolArchive line_show_symbol = 105; + optional bool line_show_symbol_undefined = 106; + optional .TSSSOS.SpecBoolArchive mixed_area_show_symbol = 107; + optional bool mixed_area_show_symbol_undefined = 108; + optional .TSSSOS.SpecBoolArchive mixed_line_show_symbol = 109; + optional bool mixed_line_show_symbol_undefined = 110; + optional .TSSSOS.SpecBoolArchive radar_area_show_symbol = 111; + optional bool radar_area_show_symbol_undefined = 112; + optional .TSSSOS.SpecBoolArchive scatter_show_symbol = 113; + optional bool scatter_show_symbol_undefined = 114; + optional .TSSSOS.SpecBoolArchive default_show_trend_line = 115; + optional bool default_show_trend_line_undefined = 116; + optional .TSSSOS.SpecBoolArchive area_show_value_labels = 117; + optional bool area_show_value_labels_undefined = 118; + optional .TSSSOS.SpecBoolArchive bar_show_value_labels = 119; + optional bool bar_show_value_labels_undefined = 120; + optional .TSSSOS.SpecBoolArchive bubble_show_value_labels = 121; + optional bool bubble_show_value_labels_undefined = 122; + optional .TSSSOS.SpecBoolArchive default_show_value_labels = 123; + optional bool default_show_value_labels_undefined = 124; + optional .TSSSOS.SpecBoolArchive line_show_value_labels = 125; + optional bool line_show_value_labels_undefined = 126; + optional .TSSSOS.SpecBoolArchive mixed_show_value_labels = 127; + optional bool mixed_show_value_labels_undefined = 128; + optional .TSSSOS.SpecBoolArchive pie_show_value_labels = 129; + optional bool pie_show_value_labels_undefined = 130; + optional .TSSSOS.SpecBoolArchive radar_show_value_labels = 131; + optional bool radar_show_value_labels_undefined = 132; + optional .TSSSOS.SpecBoolArchive scatter_show_value_labels = 133; + optional bool scatter_show_value_labels_undefined = 134; + optional .TSSSOS.SpecIntegerArchive bubble_size_dimension = 135; + optional bool bubble_size_dimension_undefined = 136; + optional .TSSSOS.SpecBoolArchive area_stack_labels = 137; + optional bool area_stack_labels_undefined = 138; + optional .TSSSOS.SpecBoolArchive bar_stack_labels = 139; + optional bool bar_stack_labels_undefined = 140; + optional .TSSSOS.SpecBoolArchive bubble_stack_labels = 141; + optional bool bubble_stack_labels_undefined = 142; + optional .TSSSOS.SpecBoolArchive default_stack_labels = 143; + optional bool default_stack_labels_undefined = 144; + optional .TSSSOS.SpecBoolArchive line_stack_labels = 145; + optional bool line_stack_labels_undefined = 146; + optional .TSSSOS.SpecBoolArchive pie_stack_labels = 147; + optional bool pie_stack_labels_undefined = 148; + optional .TSSSOS.SpecBoolArchive scatter_stack_labels = 149; + optional bool scatter_stack_labels_undefined = 150; + optional .TSSSOS.SpecBoolArchive stacked_area_stack_labels = 151; + optional bool stacked_area_stack_labels_undefined = 152; + optional .TSSSOS.SpecBoolArchive stacked_bar_stack_labels = 153; + optional bool stacked_bar_stack_labels_undefined = 154; + optional .TSSSOS.SpecIntegerArchive area_symbol_type = 155; + optional bool area_symbol_type_undefined = 156; + optional .TSSSOS.SpecIntegerArchive line_symbol_type = 157; + optional bool line_symbol_type_undefined = 158; + optional .TSSSOS.SpecIntegerArchive mixed_area_symbol_type = 159; + optional bool mixed_area_symbol_type_undefined = 160; + optional .TSSSOS.SpecIntegerArchive mixed_line_symbol_type = 161; + optional bool mixed_line_symbol_type_undefined = 162; + optional .TSSSOS.SpecIntegerArchive radar_area_symbol_type = 163; + optional bool radar_area_symbol_type_undefined = 164; + optional .TSSSOS.SpecIntegerArchive scatter_symbol_type = 165; + optional bool scatter_symbol_type_undefined = 166; + optional .TSSSOS.SpecDoubleArchive default_trend_line_equation_offset_x = 167; + optional bool default_trend_line_equation_offset_x_undefined = 168; + optional .TSSSOS.SpecDoubleArchive default_trend_line_equation_offset_y = 169; + optional bool default_trend_line_equation_offset_y_undefined = 170; + optional .TSSSOS.SpecStringArchive default_trend_line_label_string = 171; + optional bool default_trend_line_label_string_undefined = 172; + optional .TSSSOS.SpecIntegerArchive default_trend_line_order = 173; + optional bool default_trend_line_order_undefined = 174; + optional .TSSSOS.SpecIntegerArchive default_trend_line_period = 175; + optional bool default_trend_line_period_undefined = 176; + optional .TSSSOS.SpecDoubleArchive default_trend_line_r_squared_offset_x = 177; + optional bool default_trend_line_r_squared_offset_x_undefined = 178; + optional .TSSSOS.SpecDoubleArchive default_trend_line_r_squared_offset_y = 179; + optional bool default_trend_line_r_squared_offset_y_undefined = 180; + optional .TSSSOS.SpecBoolArchive default_trend_line_show_equation = 181; + optional bool default_trend_line_show_equation_undefined = 182; + optional .TSSSOS.SpecBoolArchive default_trend_line_show_label = 183; + optional bool default_trend_line_show_label_undefined = 184; + optional .TSSSOS.SpecBoolArchive default_trend_line_show_r2_value = 185; + optional bool default_trend_line_show_r2_value_undefined = 186; + optional .TSSSOS.SpecIntegerArchive default_trend_line_type = 187; + optional bool default_trend_line_type_undefined = 188; + optional .TSSSOS.SpecIntegerArchive bubble_value_labels_axis = 189; + optional bool bubble_value_labels_axis_undefined = 190; + optional .TSSSOS.SpecIntegerArchive scatter_value_labels_axis = 191; + optional bool scatter_value_labels_axis_undefined = 192; + optional .TSSSOS.SpecDoubleArchive pie_wedge_explosion = 193; + optional bool pie_wedge_explosion_undefined = 194; + optional .TSSSOS.SpecIntegerArchive default_y_axis_ordinal = 195; + optional bool default_y_axis_ordinal_undefined = 196; +} + +message .TSCHSOS.ChartSeriesStylePropertyChangeSetArchive { + optional .TSDSOS.SpecLineEndArchive default_callout_line_end_line_end = 1; + optional bool default_callout_line_end_line_end_undefined = 2; + optional .TSDSOS.SpecLineEndArchive default_callout_line_start_line_end = 3; + optional bool default_callout_line_start_line_end_undefined = 4; + optional .TSDSOS.SpecStrokeArchive default_callout_line_stroke_style = 5; + optional bool default_callout_line_stroke_style_undefined = 6; + optional .TSDSOS.SpecLineEndArchive default_error_bar_line_end = 7; + optional bool default_error_bar_line_end_undefined = 8; + optional .TSDSOS.SpecLineEndArchive default_error_bar_line_end_scatter_x = 9; + optional bool default_error_bar_line_end_scatter_x_undefined = 10; + optional .TSDSOS.SpecShadowArchive default_error_bar_shadow = 11; + optional bool default_error_bar_shadow_undefined = 12; + optional .TSSSOS.SpecIntegerArchive default_error_bar_spacing = 13; + optional bool default_error_bar_spacing_undefined = 14; + optional .TSSSOS.SpecIntegerArchive default_error_bar_spacing_scatter_x = 15; + optional bool default_error_bar_spacing_scatter_x_undefined = 16; + optional .TSDSOS.SpecStrokeArchive default_error_bar_stroke = 17; + optional bool default_error_bar_stroke_undefined = 18; + optional .TSDSOS.SpecStrokeArchive default_error_bar_stroke_scatter_x = 19; + optional bool default_error_bar_stroke_scatter_x_undefined = 20; + optional .TSDSOS.SpecFillArchive area3d_fill = 21; + optional bool area3d_fill_undefined = 22; + optional .TSDSOS.SpecFillArchive bar3d_fill = 23; + optional bool bar3d_fill_undefined = 24; + optional .TSDSOS.SpecFillArchive column3d_fill = 25; + optional bool column3d_fill_undefined = 26; + optional .TSDSOS.SpecFillArchive line3d_fill = 27; + optional bool line3d_fill_undefined = 28; + optional .TSDSOS.SpecFillArchive pie3d_fill = 29; + optional bool pie3d_fill_undefined = 30; + optional .TSDSOS.SpecFillArchive area_fill = 31; + optional bool area_fill_undefined = 32; + optional .TSDSOS.SpecFillArchive bar_fill = 33; + optional bool bar_fill_undefined = 34; + optional .TSDSOS.SpecFillArchive column_fill = 35; + optional bool column_fill_undefined = 36; + optional .TSDSOS.SpecFillArchive default_fill = 37; + optional bool default_fill_undefined = 38; + optional .TSDSOS.SpecFillArchive mixed_area_fill = 39; + optional bool mixed_area_fill_undefined = 40; + optional .TSDSOS.SpecFillArchive mixed_column_fill = 41; + optional bool mixed_column_fill_undefined = 42; + optional .TSDSOS.SpecFillArchive pie_fill = 43; + optional bool pie_fill_undefined = 44; + optional .TSDSOS.SpecFillArchive radar_area_fill = 45; + optional bool radar_area_fill_undefined = 46; + optional .TSSSOS.SpecDoubleArchive radar_area_fill_use_series_stroke_alpha_multiplier = 47; + optional bool radar_area_fill_use_series_stroke_alpha_multiplier_undefined = 48; + optional .TSSSOS.SpecBoolArchive radar_area_fill_use_series_stroke = 49; + optional bool radar_area_fill_use_series_stroke_undefined = 50; + optional .TSSSOS.SpecIntegerArchive area_label_paragraph_style_index = 51; + optional bool area_label_paragraph_style_index_undefined = 52; + optional .TSSSOS.SpecIntegerArchive bar_label_paragraph_style_index = 53; + optional bool bar_label_paragraph_style_index_undefined = 54; + optional .TSSSOS.SpecIntegerArchive default_label_paragraph_style_index = 55; + optional bool default_label_paragraph_style_index_undefined = 56; + optional .TSSSOS.SpecIntegerArchive donut_label_paragraph_style_index = 57; + optional bool donut_label_paragraph_style_index_undefined = 58; + optional .TSSSOS.SpecIntegerArchive line_label_paragraph_style_index = 59; + optional bool line_label_paragraph_style_index_undefined = 60; + optional .TSSSOS.SpecIntegerArchive mixed_label_paragraph_style_index = 61; + optional bool mixed_label_paragraph_style_index_undefined = 62; + optional .TSSSOS.SpecIntegerArchive pie_label_paragraph_style_index = 63; + optional bool pie_label_paragraph_style_index_undefined = 64; + optional .TSSSOS.SpecIntegerArchive radar_label_paragraph_style_index = 65; + optional bool radar_label_paragraph_style_index_undefined = 66; + optional .TSSSOS.SpecDoubleArchive default_opacity = 67; + optional bool default_opacity_undefined = 68; + optional .TSSSOS.SpecIntegerArchive area_outside_label_paragraph_style_index = 69; + optional bool area_outside_label_paragraph_style_index_undefined = 70; + optional .TSSSOS.SpecIntegerArchive bar_outside_label_paragraph_style_index = 71; + optional bool bar_outside_label_paragraph_style_index_undefined = 72; + optional .TSSSOS.SpecIntegerArchive default_outside_label_paragraph_style_index = 73; + optional bool default_outside_label_paragraph_style_index_undefined = 74; + optional .TSSSOS.SpecIntegerArchive donut_outside_label_paragraph_style_index = 75; + optional bool donut_outside_label_paragraph_style_index_undefined = 76; + optional .TSSSOS.SpecIntegerArchive mixed_outside_label_paragraph_style_index = 77; + optional bool mixed_outside_label_paragraph_style_index_undefined = 78; + optional .TSSSOS.SpecIntegerArchive pie_outside_label_paragraph_style_index = 79; + optional bool pie_outside_label_paragraph_style_index_undefined = 80; + optional .TSSSOS.SpecIntegerArchive radar_outside_label_paragraph_style_index = 81; + optional bool radar_outside_label_paragraph_style_index_undefined = 82; + optional .TSDSOS.SpecShadowArchive area3d_shadow = 83; + optional bool area3d_shadow_undefined = 84; + optional .TSDSOS.SpecShadowArchive bar3d_shadow = 85; + optional bool bar3d_shadow_undefined = 86; + optional .TSDSOS.SpecShadowArchive column3d_shadow = 87; + optional bool column3d_shadow_undefined = 88; + optional .TSDSOS.SpecShadowArchive line3d_shadow = 89; + optional bool line3d_shadow_undefined = 90; + optional .TSDSOS.SpecShadowArchive pie3d_shadow = 91; + optional bool pie3d_shadow_undefined = 92; + optional .TSDSOS.SpecShadowArchive area_shadow = 93; + optional bool area_shadow_undefined = 94; + optional .TSDSOS.SpecShadowArchive bar_shadow = 95; + optional bool bar_shadow_undefined = 96; + optional .TSDSOS.SpecShadowArchive bubble_shadow = 97; + optional bool bubble_shadow_undefined = 98; + optional .TSDSOS.SpecShadowArchive default_shadow = 99; + optional bool default_shadow_undefined = 100; + optional .TSDSOS.SpecShadowArchive line_shadow = 101; + optional bool line_shadow_undefined = 102; + optional .TSDSOS.SpecShadowArchive mixed_area_shadow = 103; + optional bool mixed_area_shadow_undefined = 104; + optional .TSDSOS.SpecShadowArchive mixed_column_shadow = 105; + optional bool mixed_column_shadow_undefined = 106; + optional .TSDSOS.SpecShadowArchive mixed_line_shadow = 107; + optional bool mixed_line_shadow_undefined = 108; + optional .TSDSOS.SpecShadowArchive pie_shadow = 109; + optional bool pie_shadow_undefined = 110; + optional .TSDSOS.SpecShadowArchive radar_area_shadow = 111; + optional bool radar_area_shadow_undefined = 112; + optional .TSDSOS.SpecShadowArchive scatter_shadow = 113; + optional bool scatter_shadow_undefined = 114; + optional .TSDSOS.SpecStrokeArchive area_stroke = 115; + optional bool area_stroke_undefined = 116; + optional .TSDSOS.SpecStrokeArchive bar_stroke = 117; + optional bool bar_stroke_undefined = 118; + optional .TSDSOS.SpecStrokeArchive bubble_stroke = 119; + optional bool bubble_stroke_undefined = 120; + optional .TSDSOS.SpecStrokeArchive line_stroke = 121; + optional bool line_stroke_undefined = 122; + optional .TSDSOS.SpecStrokeArchive mixed_area_stroke = 123; + optional bool mixed_area_stroke_undefined = 124; + optional .TSDSOS.SpecStrokeArchive mixed_column_stroke = 125; + optional bool mixed_column_stroke_undefined = 126; + optional .TSDSOS.SpecStrokeArchive mixed_line_stroke = 127; + optional bool mixed_line_stroke_undefined = 128; + optional .TSDSOS.SpecStrokeArchive pie_stroke = 129; + optional bool pie_stroke_undefined = 130; + optional .TSDSOS.SpecStrokeArchive radar_area_stroke = 131; + optional bool radar_area_stroke_undefined = 132; + optional .TSDSOS.SpecStrokeArchive scatter_stroke = 133; + optional bool scatter_stroke_undefined = 134; + optional .TSDSOS.SpecFillArchive area_symbol_fill = 135; + optional bool area_symbol_fill_undefined = 136; + optional .TSDSOS.SpecFillArchive bubble_symbol_fill = 137; + optional bool bubble_symbol_fill_undefined = 138; + optional .TSDSOS.SpecFillArchive line_symbol_fill = 139; + optional bool line_symbol_fill_undefined = 140; + optional .TSDSOS.SpecFillArchive mixed_area_symbol_fill = 141; + optional bool mixed_area_symbol_fill_undefined = 142; + optional .TSDSOS.SpecFillArchive mixed_line_symbol_fill = 143; + optional bool mixed_line_symbol_fill_undefined = 144; + optional .TSDSOS.SpecFillArchive radar_area_symbol_fill = 145; + optional bool radar_area_symbol_fill_undefined = 146; + optional .TSDSOS.SpecFillArchive scatter_symbol_fill = 147; + optional bool scatter_symbol_fill_undefined = 148; + optional .TSSSOS.SpecBoolArchive area_symbol_fill_use_series_fill = 149; + optional bool area_symbol_fill_use_series_fill_undefined = 150; + optional .TSSSOS.SpecBoolArchive line_symbol_fill_use_series_fill = 151; + optional bool line_symbol_fill_use_series_fill_undefined = 152; + optional .TSSSOS.SpecBoolArchive mixed_area_symbol_fill_use_series_fill = 153; + optional bool mixed_area_symbol_fill_use_series_fill_undefined = 154; + optional .TSSSOS.SpecBoolArchive mixed_line_symbol_fill_use_series_fill = 155; + optional bool mixed_line_symbol_fill_use_series_fill_undefined = 156; + optional .TSSSOS.SpecBoolArchive radar_area_symbol_fill_use_series_fill = 157; + optional bool radar_area_symbol_fill_use_series_fill_undefined = 158; + optional .TSSSOS.SpecBoolArchive area_symbol_fill_use_series_stroke = 159; + optional bool area_symbol_fill_use_series_stroke_undefined = 160; + optional .TSSSOS.SpecBoolArchive bubble_symbol_fill_use_series_stroke = 161; + optional bool bubble_symbol_fill_use_series_stroke_undefined = 162; + optional .TSSSOS.SpecBoolArchive line_symbol_fill_use_series_stroke = 163; + optional bool line_symbol_fill_use_series_stroke_undefined = 164; + optional .TSSSOS.SpecBoolArchive mixed_area_symbol_fill_use_series_stroke = 165; + optional bool mixed_area_symbol_fill_use_series_stroke_undefined = 166; + optional .TSSSOS.SpecBoolArchive mixed_line_symbol_fill_use_series_stroke = 167; + optional bool mixed_line_symbol_fill_use_series_stroke_undefined = 168; + optional .TSSSOS.SpecBoolArchive radar_area_symbol_fill_use_series_stroke = 169; + optional bool radar_area_symbol_fill_use_series_stroke_undefined = 170; + optional .TSSSOS.SpecBoolArchive scatter_symbol_fill_use_series_stroke = 171; + optional bool scatter_symbol_fill_use_series_stroke_undefined = 172; + optional .TSSSOS.SpecDoubleArchive area_symbol_size = 173; + optional bool area_symbol_size_undefined = 174; + optional .TSSSOS.SpecDoubleArchive line_symbol_size = 175; + optional bool line_symbol_size_undefined = 176; + optional .TSSSOS.SpecDoubleArchive mixed_area_symbol_size = 177; + optional bool mixed_area_symbol_size_undefined = 178; + optional .TSSSOS.SpecDoubleArchive mixed_line_symbol_size = 179; + optional bool mixed_line_symbol_size_undefined = 180; + optional .TSSSOS.SpecDoubleArchive radar_area_symbol_size = 181; + optional bool radar_area_symbol_size_undefined = 182; + optional .TSSSOS.SpecDoubleArchive scatter_symbol_size = 183; + optional bool scatter_symbol_size_undefined = 184; + optional .TSDSOS.SpecStrokeArchive area_symbol_stroke = 185; + optional bool area_symbol_stroke_undefined = 186; + optional .TSDSOS.SpecStrokeArchive bubble_symbol_stroke = 187; + optional bool bubble_symbol_stroke_undefined = 188; + optional .TSDSOS.SpecStrokeArchive line_symbol_stroke = 189; + optional bool line_symbol_stroke_undefined = 190; + optional .TSDSOS.SpecStrokeArchive mixed_area_symbol_stroke = 191; + optional bool mixed_area_symbol_stroke_undefined = 192; + optional .TSDSOS.SpecStrokeArchive mixed_line_symbol_stroke = 193; + optional bool mixed_line_symbol_stroke_undefined = 194; + optional .TSDSOS.SpecStrokeArchive radar_area_symbol_stroke = 195; + optional bool radar_area_symbol_stroke_undefined = 196; + optional .TSDSOS.SpecStrokeArchive scatter_symbol_stroke = 197; + optional bool scatter_symbol_stroke_undefined = 198; + optional .TSDSOS.SpecShadowArchive default_trend_line_shadow = 199; + optional bool default_trend_line_shadow_undefined = 200; + optional .TSDSOS.SpecStrokeArchive default_trend_line_stroke = 201; + optional bool default_trend_line_stroke_undefined = 202; + optional .TSSSOS.SpecDoubleArchive default_trendline_equation_opacity = 203; + optional bool default_trendline_equation_opacity_undefined = 204; + optional .TSSSOS.SpecIntegerArchive default_trendline_equation_paragraph_style_index = 205; + optional bool default_trendline_equation_paragraph_style_index_undefined = 206; + optional .TSSSOS.SpecDoubleArchive default_trendline_r_squared_opacity = 207; + optional bool default_trendline_r_squared_opacity_undefined = 208; + optional .TSSSOS.SpecIntegerArchive default_trendline_r_squared_paragraph_style_index = 209; + optional bool default_trendline_r_squared_paragraph_style_index_undefined = 210; + optional .TSSSOS.SpecIntegerArchive area_value_label_position = 211; + optional bool area_value_label_position_undefined = 212; + optional .TSSSOS.SpecIntegerArchive bar_value_label_position = 213; + optional bool bar_value_label_position_undefined = 214; + optional .TSSSOS.SpecIntegerArchive bubble_value_label_position = 215; + optional bool bubble_value_label_position_undefined = 216; + optional .TSSSOS.SpecIntegerArchive default_value_label_position = 217; + optional bool default_value_label_position_undefined = 218; + optional .TSSSOS.SpecIntegerArchive line_value_label_position = 219; + optional bool line_value_label_position_undefined = 220; + optional .TSSSOS.SpecIntegerArchive mixed_area_value_label_position = 221; + optional bool mixed_area_value_label_position_undefined = 222; + optional .TSSSOS.SpecIntegerArchive mixed_column_value_label_position = 223; + optional bool mixed_column_value_label_position_undefined = 224; + optional .TSSSOS.SpecIntegerArchive mixed_line_value_label_position = 225; + optional bool mixed_line_value_label_position_undefined = 226; + optional .TSSSOS.SpecIntegerArchive radar_area_value_label_position = 227; + optional bool radar_area_value_label_position_undefined = 228; + optional .TSSSOS.SpecIntegerArchive scatter_value_label_position = 229; + optional bool scatter_value_label_position_undefined = 230; + optional .TSSSOS.SpecIntegerArchive stacked_area_value_label_position = 231; + optional bool stacked_area_value_label_position_undefined = 232; + optional .TSSSOS.SpecIntegerArchive stacked_bar_value_label_position = 233; + optional bool stacked_bar_value_label_position_undefined = 234; + optional .TSSSOS.SpecIntegerArchive default_value_label_spacing = 235; + optional bool default_value_label_spacing_undefined = 236; +} + +message .TSCHSOS.ChartStylePropertyChangeSetArchive { + optional .TSSSOS.SpecDoubleArchive default3d_chart_opacity = 1; + optional bool default3d_chart_opacity_undefined = 2; + optional .TSCHSOS.SpecChart3dLightingPackageArchive area3d_lighting_package = 3; + optional bool area3d_lighting_package_undefined = 4; + optional .TSCHSOS.SpecChart3dLightingPackageArchive bar3d_lighting_package = 5; + optional bool bar3d_lighting_package_undefined = 6; + optional .TSCHSOS.SpecChart3dLightingPackageArchive column3d_lighting_package = 7; + optional bool column3d_lighting_package_undefined = 8; + optional .TSCHSOS.SpecChart3dLightingPackageArchive default3d_lighting_package = 9; + optional bool default3d_lighting_package_undefined = 10; + optional .TSCHSOS.SpecChart3dLightingPackageArchive line3d_lighting_package = 11; + optional bool line3d_lighting_package_undefined = 12; + optional .TSCHSOS.SpecChart3dLightingPackageArchive pie3d_lighting_package = 13; + optional bool pie3d_lighting_package_undefined = 14; + optional .TSSSOS.SpecBoolArchive default_axis_anchor_label_at_ends = 15; + optional bool default_axis_anchor_label_at_ends_undefined = 16; + optional .TSDSOS.SpecFillArchive default_background_fill = 17; + optional bool default_background_fill_undefined = 18; + optional .TSDSOS.SpecStrokeArchive default_background_stroke = 19; + optional bool default_background_stroke_undefined = 20; + optional .TSSSOS.SpecDoubleArchive default_border_opacity = 21; + optional bool default_border_opacity_undefined = 22; + optional .TSDSOS.SpecShadowArchive default_border_shadow = 23; + optional bool default_border_shadow_undefined = 24; + optional .TSDSOS.SpecStrokeArchive default_border_stroke = 25; + optional bool default_border_stroke_undefined = 26; + optional .TSSSOS.SpecBoolArchive default_combine_layers = 27; + optional bool default_combine_layers_undefined = 28; + optional .TSSSOS.SpecIntegerArchive default_data_set_name_paragraph_style_index = 29; + optional bool default_data_set_name_paragraph_style_index_undefined = 30; + optional .TSDSOS.SpecFillArchive default_grid_background_fill = 31; + optional bool default_grid_background_fill_undefined = 32; + optional .TSSSOS.SpecDoubleArchive default_grid_background_opacity = 33; + optional bool default_grid_background_opacity_undefined = 34; + optional .TSSSOS.SpecDoubleArchive default_inter_bar_gap = 35; + optional bool default_inter_bar_gap_undefined = 36; + optional .TSSSOS.SpecDoubleArchive default_inter_set_gap = 37; + optional bool default_inter_set_gap_undefined = 38; + optional .TSSSOS.SpecBoolArchive default_radar_radius_gridline_curve = 39; + optional bool default_radar_radius_gridline_curve_undefined = 40; + optional .TSSSOS.SpecBoolArchive default_rounded_corner_outer_end_only = 41; + optional bool default_rounded_corner_outer_end_only_undefined = 42; + optional .TSSSOS.SpecDoubleArchive default_rounded_corner_radius = 43; + optional bool default_rounded_corner_radius_undefined = 44; + optional .TSSSOS.SpecBoolArchive default_show_border = 45; + optional bool default_show_border_undefined = 46; + optional .TSSSOS.SpecColorArchive default_title_color = 47; + optional bool default_title_color_undefined = 48; + optional .TSSSOS.SpecIntegerArchive default_title_paragraph_style_index = 49; + optional bool default_title_paragraph_style_index_undefined = 50; +} + + +message .TSCH.PreUFF.ChartInfoArchive { + required .TSD.DrawableArchive super = 1; + required .TSCH.PreUFF.ChartModelArchive chart_model = 2; + optional .TSP.Reference style = 3; + required .TSCH.ChartType chart_type = 4; + optional .TSCH.PreUFF.LegendModelArchive legend_model = 5; + required .TSCH.RectArchive inner_chart_frame = 6; + repeated .TSP.Reference value_axis_styles = 7; + repeated .TSP.Reference category_axis_styles = 8; + repeated .TSP.Reference value_axis_nonstyles = 9; + repeated .TSP.Reference category_axis_nonstyles = 10; + repeated .TSP.Reference series_theme_styles = 11; + optional .TSP.SparseReferenceArray series_private_styles = 12; + optional .TSP.SparseReferenceArray series_non_styles = 13; + optional .TSP.Reference non_style = 14; + optional .TSP.Reference mediator = 15; + optional .TSP.Point cde_preview_origin = 16; + optional .TSP.Reference chart_style_preset = 17; + repeated .TSP.Reference paragraph_styles = 18; + optional int32 last_row_sected_in_the_cde = 19; + optional int32 last_column_sected_in_the_cde = 20; + optional int32 chart_style_preset_index = 21; + optional bool needs_calc_engine_deferred_import_action = 22; +} + +message .TSCH.PreUFF.LegendModelArchive { + optional .TSP.Reference info = 1; + required .TSCH.RectArchive frame = 2; + required .TSP.Reference style = 3; + required .TSP.Reference non_style = 4; +} + +message .TSCH.PreUFF.ChartModelArchive { + optional .TSP.Reference info = 1; + required .TSP.Reference grid = 2; + repeated uint32 series_types = 3; + optional uint32 scatter_format = 4; + optional .TSCH.PreUFF.ChartGridArchive inline_grid = 5; + optional uint32 multidataset_index = 6; +} + +message .TSCH.PreUFF.ChartGridArchive { + message ValueRow { + repeated double value = 1; + } + required int32 direction = 1; + repeated string row_name = 2; + repeated string column_name = 3; + repeated .TSCH.PreUFF.ChartGridArchive.ValueRow value_row = 4; + required bool dirty = 6; +} + +message .TSCH.PreUFF.ChartsNumberFormatArchive { + required .TSCH.NumberValueType value_type = 1; + optional string format_string = 2; + required uint32 decimal_places = 3; + optional string currency_code = 4; + required .TSCH.NegativeNumberStyle negative_style = 5; + required bool show_thousands_separator = 6; + required .TSCH.FractionAccuracy fraction_accuracy = 7; + optional string suffix_string = 8; + required uint32 base = 9; + required uint32 base_places = 10; + required bool base_use_minus_sign = 11; + required bool use_accounting_style = 12; + required bool is_custom = 13; + required double scale_factor = 14; + repeated string interstitial_strings = 15; + required .TSP.IndexSet interstitial_string_insertion_indexes = 16; + required uint32 index_from_right_of_last_digit_placeholder = 17; + required bool is_text_format = 18; + required uint32 minimum_integer_width = 19; + required uint32 decimal_width = 20; + required uint32 number_of_non_space_integer_placeholder_digits = 21; + required uint32 number_of_non_space_decimal_placeholder_digits = 22; + optional string format_name = 23; + optional string prefix_string = 24; +} + +message .TSCH.PreUFF.ChartStyleArchive { + required .TSS.StyleArchive super = 1; + optional .TSD.FillArchive tschchartinfodefaultbackgroundfill = 10; + optional .TSD.StrokeArchive tschchartinfodefaultbackgroundstroke = 11; + optional .TSD.FillArchive tschchartinfodefaultgridbackgroundfill = 12; + optional float tschchartinfodefaultintersetgap = 13; + optional float tschchartinfodefaultinterbargap = 14; + optional bool tschchartinfodefaultshowborder = 15; + optional .TSD.StrokeArchive tschchartinfodefaultborderstroke = 16; + optional .TSP.Color tschchartinfodefaulttitlecolor = 18; + optional float tschchartinfodefaultgridbackgroundopacity = 19; + optional bool tschchartinfodefaultcombinelayers = 20; + optional .TSD.ShadowArchive tschchartinfodefaultbordershadow = 21; + optional float tschchartinfodefaultborderopacity = 22; + optional int32 tschchartinfodefaulttitleparagraphstyleindex = 23; + optional string tschchartinfodefaultdeprecatedmainfontfamily = 24; + optional int32 tschchartinfodefaultdeprecatedmainfontnamedsize = 25; + optional int32 tschchartinfodefaultdeprecatedtrendlineequationparagraphstyleindex = 30; + optional int32 tschchartinfodefaultdeprecatedtrendlinersquaredparagraphstyleindex = 31; + optional .TSD.ShadowArchive tschchartinfodefaultdeprecatedtrendlineequationshadow = 32; + optional .TSD.ShadowArchive tschchartinfodefaultdeprecatedtrendlinersquaredshadow = 33; + optional float tschchartinfodefaultdeprecatedtrendlineequationopacity = 34; + optional float tschchartinfodefaultdeprecatedtrendlinersquaredopacity = 35; + optional .TSD.ShadowArchive tschchartinfobardeprecated3dshadow = 308; + optional .TSD.ShadowArchive tschchartinfocolumndeprecated3dshadow = 309; + optional .TSD.ShadowArchive tschchartinfolinedeprecated3dshadow = 310; + optional .TSD.ShadowArchive tschchartinfoareadeprecated3dshadow = 311; + optional .TSD.ShadowArchive tschchartinfopiedeprecated3dshadow = 312; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfodefault3dlightingpackage = 313; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfocolumn3dlightingpackage = 314; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfobar3dlightingpackage = 315; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfoline3dlightingpackage = 316; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfoarea3dlightingpackage = 317; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfopie3dlightingpackage = 318; + optional bool tschchartinfodefaultdeprecated3dbeveledges = 326; + optional bool tschchartinfopiedeprecated3dbeveledges = 327; + optional bool tschchartinfobardeprecated3dbeveledges = 328; + optional bool tschchartinfocolumndeprecated3dbeveledges = 329; + optional int32 tschchartinfodefaultdeprecated3dbarshape = 330; + optional float tschchartinfodefault3dchartopacity = 335; +} + +message .TSCH.PreUFF.ChartNonStyleArchive { + required .TSS.StyleArchive super = 1; + optional string tschchartinfodefaulttitle = 10; + optional bool tschchartinfodefaultshowlegend = 11; + optional float tschchartinfodefaultpiestartangle = 12; + optional bool tschchartinfodefaultshowtitle = 13; + optional int32 tschchartinfodefaultdeprecatedagainmainfontnamedsize = 25; + optional .TSCH.Chart3DVectorArchive tschchartinfodefault3drotation = 300; + optional .TSCH.Chart3DVectorArchive tschchartinfodefault3dscale = 301; + optional .TSCH.Chart3DVectorArchive tschchartinfocolumn3dscale = 302; + optional .TSCH.Chart3DVectorArchive tschchartinfobar3dscale = 303; + optional .TSCH.Chart3DVectorArchive tschchartinfoline3dscale = 304; + optional .TSCH.Chart3DVectorArchive tschchartinfoarea3dscale = 305; + optional .TSCH.Chart3DVectorArchive tschchartinfopie3dscale = 306; + optional .TSCH.Chart3DVectorArchive tschchartinfodefault3dviewport = 313; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfodefaultdeprecated3dlightingpackage = 320; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfocolumndeprecated3dlightingpackage = 321; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfobardeprecated3dlightingpackage = 322; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfolinedeprecated3dlightingpackage = 323; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfoareadeprecated3dlightingpackage = 324; + optional .TSCH.Chart3DLightingPackageArchive tschchartinfopiedeprecated3dlightingpackage = 325; + optional bool tschchartinfodefaultskiphiddendata = 326; + optional bool tschchartinfodefault3dbeveledges = 327; + optional int32 tschchartinfodefault3dbarshape = 336; + optional float tschchartinfodefault3dintersetdepthgap = 331; +} + +message .TSCH.PreUFF.LegendStyleArchive { + required .TSS.StyleArchive super = 1; + optional .TSD.FillArchive tschlegendmodeldefaultfill = 10; + optional .TSD.StrokeArchive tschlegendmodeldefaultstroke = 11; + optional .TSD.ShadowArchive tschlegendmodeldefaultshadow = 14; + optional float tschlegendmodeldefaultopacity = 15; + optional int32 tschlegendmodeldefaultlabelparagraphstyleindex = 16; +} + +message .TSCH.PreUFF.LegendNonStyleArchive { + required .TSS.StyleArchive super = 1; +} + +message .TSCH.PreUFF.ChartAxisStyleArchive { + required .TSS.StyleArchive super = 1; + optional bool tschchartaxisvalueshowmajorgridlines = 10; + optional bool tschchartaxisvalueshowminorgridlines = 11; + optional .TSD.StrokeArchive tschchartaxisvaluemajorgridlinestroke = 12; + optional .TSD.StrokeArchive tschchartaxisvalueminorgridlinestroke = 13; + optional int32 tschchartaxisvaluetickmarklocation = 14; + optional bool tschchartaxisvalueshowmajortickmarks = 15; + optional bool tschchartaxisvalueshowminortickmarks = 16; + optional float tschchartaxisvaluelabelsorientation = 17; + optional bool tschchartaxisvalueshowminimumlabel = 18; + optional .TSD.ShadowArchive tschchartaxisvaluemajorgridlineshadow = 21; + optional .TSD.ShadowArchive tschchartaxisvalueminorgridlineshadow = 22; + optional float tschchartaxisvaluemajorgridlineopacity = 23; + optional float tschchartaxisvalueminorgridlineopacity = 24; + optional bool tschchartaxisvalueshowaxis = 25; + optional bool tschchartaxiscategoryshowmajorgridlines = 50; + optional bool tschchartaxiscategoryshowminorgridlines = 51; + optional .TSD.StrokeArchive tschchartaxiscategorymajorgridlinestroke = 52; + optional .TSD.StrokeArchive tschchartaxiscategoryminorgridlinestroke = 53; + optional int32 tschchartaxiscategorytickmarklocation = 54; + optional bool tschchartaxiscategoryshowmajortickmarks = 55; + optional bool tschchartaxiscategoryshowminortickmarks = 56; + optional float tschchartaxiscategorylabelsorientation = 57; + optional int32 tschchartaxiscategoryhorizontalspacing = 58; + optional int32 tschchartaxiscategoryverticalspacing = 59; + optional bool tschchartaxiscategoryshowlastlabel = 60; + optional .TSD.ShadowArchive tschchartaxiscategorymajorgridlineshadow = 63; + optional .TSD.ShadowArchive tschchartaxiscategoryminorgridlineshadow = 64; + optional float tschchartaxiscategorymajorgridlineopacity = 65; + optional float tschchartaxiscategoryminorgridlineopacity = 66; + optional bool tschchartaxiscategoryshowaxis = 67; + optional float tschchartaxisdefaultlabelsorientation = 102; + optional int32 tschchartaxisdefaulttitleparagraphstyleindex = 110; + optional int32 tschchartaxisdefaultlabelparagraphstyleindex = 111; + optional int32 tschchartaxisvaluetitleparagraphstyleindex = 112; + optional int32 tschchartaxisvaluelabelparagraphstyleindex = 113; + optional int32 tschchartaxiscategorytitleparagraphstyleindex = 114; + optional int32 tschchartaxiscategorylabelparagraphstyleindex = 115; + optional .TSD.StrokeArchive tschchartaxisvalue3dgridlinestroke = 331; + optional .TSD.StrokeArchive tschchartaxiscategory3dgridlinestroke = 332; + optional float tschchartaxisvalue3dgridlineopacity = 333; + optional float tschchartaxiscategory3dgridlineopacity = 334; +} + +message .TSCH.PreUFF.ChartAxisNonStyleArchive { + required .TSS.StyleArchive super = 1; + optional .TSCH.ChartsNSNumberDoubleArchive tschchartaxisdefaultusermin = 11; + optional .TSCH.ChartsNSNumberDoubleArchive tschchartaxisdefaultusermax = 12; + optional .TSCH.PreUFF.ChartsNumberFormatArchive tschchartaxisdefaultnumberformat = 13; + optional bool tschchartaxisdefaultshowlabels = 14; + optional int32 tschchartaxisvaluenumberofminorgridlines = 50; + optional int32 tschchartaxisvaluescale = 51; + optional int32 tschchartaxisvaluenumberofdecades = 52; + optional bool tschchartaxisvalueshowlabels = 53; + optional bool tschchartaxisvalueshowtitle = 54; + optional int32 tschchartaxisvaluenumberofmajorgridlines = 55; + optional string tschchartaxisvaluetitle = 56; + optional bool tschchartaxiscategoryshowlabels = 100; + optional bool tschchartaxiscategoryshowserieslabels = 101; + optional bool tschchartaxiscategoryshowtitle = 102; + optional string tschchartaxiscategorytitle = 103; + optional int32 tschchartaxisdefaultnumberformattype = 120; + optional int32 tschchartaxisdefault3dlabelposition = 336; + optional bool tschchartaxiscategoryplottoedges = 116; +} + +message .TSCH.PreUFF.ChartSeriesStyleArchive { + required .TSS.StyleArchive super = 1; + optional int32 tschchartseriesdefaulttrendlineequationparagraphstyleindex = 201; + optional int32 tschchartseriesdefaulttrendlinersquaredparagraphstyleindex = 202; + optional float tschchartseriesdefaulttrendlineequationopacity = 205; + optional float tschchartseriesdefaulttrendlinersquaredopacity = 206; + optional .TSD.FillArchive tschchartseriesbarfill = 10; + optional .TSD.StrokeArchive tschchartseriesbarstroke = 11; + optional int32 tschchartseriesbarvaluelabelposition = 13; + optional .TSD.StrokeArchive tschchartserieslinestroke = 16; + optional .TSD.FillArchive tschchartserieslinesymbolfill = 17; + optional .TSD.StrokeArchive tschchartserieslinesymbolstroke = 18; + optional float tschchartserieslinesymbolsize = 20; + optional int32 tschchartserieslinevaluelabelposition = 22; + optional .TSD.FillArchive tschchartseriesareafill = 25; + optional .TSD.StrokeArchive tschchartseriesareastroke = 26; + optional int32 tschchartseriesareavaluelabelposition = 28; + optional .TSD.FillArchive tschchartseriesareasymbolfill = 29; + optional .TSD.StrokeArchive tschchartseriesareasymbolstroke = 30; + optional float tschchartseriesareasymbolsize = 32; + optional .TSD.FillArchive tschchartseriespiefill = 35; + optional .TSD.StrokeArchive tschchartseriespiestroke = 36; + optional .TSD.StrokeArchive tschchartseriesscatterstroke = 40; + optional .TSD.FillArchive tschchartseriesscattersymbolfill = 41; + optional .TSD.StrokeArchive tschchartseriesscattersymbolstroke = 42; + optional float tschchartseriesscattersymbolsize = 44; + optional int32 tschchartseriesscattervaluelabelposition = 46; + optional .TSD.FillArchive tschchartseriesdefaultfill = 50; + optional int32 tschchartseriesdefaultvaluelabelposition = 52; + optional bool tschchartseriespiedeprecatedserieslabelson = 60; + optional .TSD.FillArchive tschchartseriescolumnfill = 62; + optional .TSD.ShadowArchive tschchartseriespieshadow = 100; + optional .TSD.ShadowArchive tschchartseriesbarshadow = 101; + optional .TSD.ShadowArchive tschchartseriesareashadow = 102; + optional .TSD.ShadowArchive tschchartseriesscattershadow = 103; + optional .TSD.ShadowArchive tschchartseriesmixedlineshadow = 104; + optional .TSD.ShadowArchive tschchartseriesmixedareashadow = 105; + optional .TSD.ShadowArchive tschchartseriesmixedcolumnshadow = 106; + optional .TSD.ShadowArchive tschchartserieslineshadow = 107; + optional .TSD.ShadowArchive tschchartseriesdefaultshadow = 108; + optional .TSD.FillArchive tschchartseriesbubblesymbolfill = 207; + optional .TSD.StrokeArchive tschchartseriesbubblestroke = 211; + optional .TSD.StrokeArchive tschchartseriesbubblesymbolstroke = 212; + optional int32 tschchartseriesbubblevaluelabelposition = 213; + optional .TSD.ShadowArchive tschchartseriesbubbleshadow = 214; + optional bool tschchartseriesbubblesymbolfilluseseriesstroke = 215; + optional .TSD.ShadowArchive tschchartseries3dbarshadow = 306; + optional .TSD.ShadowArchive tschchartseries3dcolumnshadow = 307; + optional .TSD.ShadowArchive tschchartseries3dlineshadow = 308; + optional .TSD.ShadowArchive tschchartseries3dareashadow = 309; + optional .TSD.ShadowArchive tschchartseries3dpieshadow = 310; + optional int32 tschchartseriesdefaultlabelparagraphstyleindex = 110; + optional int32 tschchartseriesbarlabelparagraphstyleindex = 111; + optional int32 tschchartserieslinelabelparagraphstyleindex = 112; + optional int32 tschchartseriesarealabelparagraphstyleindex = 113; + optional int32 tschchartseriespielabelparagraphstyleindex = 114; + optional int32 tschchartseriesmixedlabelparagraphstyleindex = 115; + optional float tschchartseriesdefaultopacity = 116; + optional bool tschchartserieslinesymbolfilluseseriesstroke = 117; + optional bool tschchartseriesareasymbolfilluseseriesstroke = 118; + optional bool tschchartseriesscattersymbolfilluseseriesstroke = 119; + optional bool tschchartseriesmixedlinesymbolfilluseseriesstroke = 120; + optional bool tschchartseriesmixedareasymbolfilluseseriesstroke = 121; + optional bool tschchartserieslinesymbolfilluseseriesfill = 122; + optional bool tschchartseriesareasymbolfilluseseriesfill = 123; + optional bool tschchartseriesmixedlinesymbolfilluseseriesfill = 124; + optional bool tschchartseriesmixedareasymbolfilluseseriesfill = 125; + optional .TSD.FillArchive tschchartseriesmixedcolumnfill = 130; + optional .TSD.FillArchive tschchartseriesmixedareafill = 131; + optional .TSD.StrokeArchive tschchartseriesmixedcolumnstroke = 132; + optional .TSD.StrokeArchive tschchartseriesmixedlinestroke = 133; + optional .TSD.StrokeArchive tschchartseriesmixedareastroke = 134; + optional float tschchartseriesmixedlinesymbolsize = 135; + optional float tschchartseriesmixedareasymbolsize = 136; + optional .TSD.FillArchive tschchartseriesmixedlinesymbolfill = 137; + optional .TSD.FillArchive tschchartseriesmixedareasymbolfill = 138; + optional .TSD.StrokeArchive tschchartseriesmixedlinesymbolstroke = 139; + optional .TSD.StrokeArchive tschchartseriesmixedareasymbolstroke = 140; + optional int32 tschchartseriesmixedcolumnvaluelabelposition = 141; + optional int32 tschchartseriesmixedlinevaluelabelposition = 142; + optional int32 tschchartseriesmixedareavaluelabelposition = 143; + optional int32 tschchartseriesdefaultoutsidelabelparagraphstyleindex = 150; + optional int32 tschchartseriesbaroutsidelabelparagraphstyleindex = 151; + optional int32 tschchartseriesareaoutsidelabelparagraphstyleindex = 153; + optional int32 tschchartseriespieoutsidelabelparagraphstyleindex = 154; + optional int32 tschchartseriesmixedoutsidelabelparagraphstyleindex = 155; + optional int32 tschchartseriesstackedbarvaluelabelposition = 156; + optional int32 tschchartseriesstackedareavaluelabelposition = 157; + optional .TSD.StrokeArchive tschchartseriesdefaulttrendlinestroke = 167; + optional .TSD.ShadowArchive tschchartseriesdefaulttrendlineshadow = 168; + optional .TSD.ShadowArchive tschchartseriesdefaulterrorbarshadow = 180; + optional .TSD.StrokeArchive tschchartseriesdefaulterrorbarstroke = 181; + optional .TSD.StrokeArchive tschchartseriesdefaulterrorbarstrokescatterx = 182; + optional .TSD.LineEndArchive tschchartseriesdefaulterrorbarlineend = 183; + optional .TSD.LineEndArchive tschchartseriesdefaulterrorbarlineendscatterx = 184; + optional .TSCH.DEPRECATEDChart3DFillArchive tschchartseriesdefaultdeprecated3dfill = 300; + optional .TSCH.DEPRECATEDChart3DFillArchive tschchartseriesbardeprecated3dfill = 301; + optional .TSCH.DEPRECATEDChart3DFillArchive tschchartseriescolumndeprecated3dfill = 302; + optional .TSCH.DEPRECATEDChart3DFillArchive tschchartserieslinedeprecated3dfill = 303; + optional .TSCH.DEPRECATEDChart3DFillArchive tschchartseriesareadeprecated3dfill = 304; + optional .TSCH.DEPRECATEDChart3DFillArchive tschchartseriespiedeprecated3dfill = 305; + optional .TSD.FillArchive tschchartseries3dbarfill = 320; + optional .TSD.FillArchive tschchartseries3dcolumnfill = 321; + optional .TSD.FillArchive tschchartseries3dlinefill = 322; + optional .TSD.FillArchive tschchartseries3dareafill = 323; + optional .TSD.FillArchive tschchartseries3dpiefill = 324; +} + +message .TSCH.PreUFF.ChartSeriesNonStyleArchive { + required .TSS.StyleArchive super = 1; + optional .TSCH.PreUFF.ChartsNumberFormatArchive tschchartseriesdefaultnumberformat = 10; + optional int32 tschchartseriesdefaultnumberformattype = 11; + optional bool tschchartseriesbarshowvaluelabels = 12; + optional int32 tschchartserieslinesymboltype = 19; + optional bool tschchartserieslineshowsymbol = 20; + optional bool tschchartserieslineshowvaluelabels = 21; + optional bool tschchartseriesareashowvaluelabels = 27; + optional int32 tschchartserieslinelinetype = 30; + optional int32 tschchartseriesareasymboltype = 31; + optional bool tschchartseriesareashowsymbol = 32; + optional bool tschchartseriespieshowvaluelabels = 37; + optional bool tschchartseriesscattershowvaluelabels = 45; + optional float tschchartseriespiewedgeexplosion = 50; + optional bool tschchartseriesdefaultshowvaluelabels = 51; + optional .TSCH.PreUFF.ChartsNumberFormatArchive tschchartseriespienumberformat = 52; + optional int32 tschchartseriespienumberformattype = 53; + optional float tschchartseriespielabelexplosion = 54; + optional bool tschchartseriesmixedlineshowsymbol = 58; + optional bool tschchartseriesmixedareashowsymbol = 59; + optional int32 tschchartseriesmixedlinesymboltype = 60; + optional int32 tschchartseriesmixedareasymboltype = 61; + optional bool tschchartseriesmixedshowvaluelabels = 62; + optional int32 tschchartseriesmixedlinelinetype = 63; + optional int32 tschchartseriesdefaultyaxisordinal = 65; + optional bool tschchartseriespieshowserieslabels = 66; + optional bool tschchartseriesscattershowsymbol = 69; + optional int32 tschchartseriesscattersymboltype = 70; + optional int32 tschchartseriesscatterlinetype = 71; + optional bool tschchartseriesscattershowline = 72; + optional .TSCH.PreUFF.ChartsNumberFormatArchive tschchartseriesstackedpercentnumberformat = 90; + optional int32 tschchartseriesdefaultseriestype = 126; + optional int32 tschchartseriesdefaulttrendlinetype = 160; + optional int32 tschchartseriesdefaulttrendlineorder = 161; + optional int32 tschchartseriesdefaulttrendlineperiod = 162; + optional bool tschchartseriesdefaulttrendlineshowlabel = 163; + optional string tschchartseriesdefaulttrendlinelabelstring = 164; + optional bool tschchartseriesdefaulttrendlineshowequation = 165; + optional bool tschchartseriesdefaulttrendlineshowr2value = 166; + optional int32 tschchartseriesdefaulterrorbarsetting = 170; + optional int32 tschchartseriesdefaulterrorbarsettingscatterx = 171; + optional int32 tschchartseriesdefaulterrorbartype = 172; + optional int32 tschchartseriesdefaulterrorbartypescatterx = 173; + optional float tschchartseriesdefaulterrorbarfixedvalue = 174; + optional float tschchartseriesdefaulterrorbarfixedvaluescatterx = 175; + optional float tschchartseriesdefaulterrorbarpercentvalue = 176; + optional float tschchartseriesdefaulterrorbarpercentvaluescatterx = 177; + optional float tschchartseriesdefaulterrorbarstddevvalue = 178; + optional float tschchartseriesdefaulterrorbarstddevvaluescatterx = 179; + optional .TSCH.ChartsNSArrayOfNSNumberDoubleArchive tschchartseriesdefaulterrorbarcustompositivedata = 190; + optional .TSCH.ChartsNSArrayOfNSNumberDoubleArchive tschchartseriesdefaulterrorbarcustompositivedatascatterx = 191; + optional .TSCH.ChartsNSArrayOfNSNumberDoubleArchive tschchartseriesdefaulterrorbarcustomnegativedata = 192; + optional .TSCH.ChartsNSArrayOfNSNumberDoubleArchive tschchartseriesdefaulterrorbarcustomnegativedatascatterx = 193; + optional float tschchartseriesdefaulttrendlineequationoffsetx = 194; + optional float tschchartseriesdefaulttrendlineequationoffsety = 195; + optional float tschchartseriesdefaulttrendlinersquaredoffsetx = 196; + optional float tschchartseriesdefaulttrendlinersquaredoffsety = 197; + optional bool tschchartseriesdefaultshowtrendline = 198; + optional bool tschchartseriesdefaultshowerrorbar = 199; + optional bool tschchartseriesdefaultshowerrorbarscatterx = 200; + optional int32 tschchartseriesbubblesizedimension = 208; + optional bool tschchartseriesbubbleshowvaluelabels = 209; + optional int32 tschchartseriesbubblelinetype = 210; + optional bool tschchartseriesbubbleshownegativedata = 216; + optional float tschchartseriesbubbleadjustmentscale = 217; +} + + +message .TSCH.ChartDrawableArchive { + optional .TSD.DrawableArchive super = 1; + extensions 10000 to 536870911; +} + +message .TSCH.ChartArchive { + optional .TSCH.ChartType chart_type = 1; + optional .TSCH.ScatterFormat scatter_format = 2; + optional .TSCH.RectArchive legend_frame = 3; + optional .TSP.Reference preset = 4; + optional .TSCH.SeriesDirection series_direction = 5; + optional bool contains_default_data = 6; + optional .TSCH.ChartGridArchive grid = 7; + optional .TSP.Reference mediator = 8; + optional .TSP.Reference chart_style = 9; + optional .TSP.Reference chart_non_style = 10; + optional .TSP.Reference legend_style = 11; + optional .TSP.Reference legend_non_style = 12; + repeated .TSP.Reference value_axis_styles = 13; + repeated .TSP.Reference value_axis_nonstyles = 14; + repeated .TSP.Reference category_axis_styles = 15; + repeated .TSP.Reference category_axis_nonstyles = 16; + repeated .TSP.Reference series_theme_styles = 17; + optional .TSP.SparseReferenceArray series_private_styles = 18; + optional .TSP.SparseReferenceArray series_non_styles = 19; + repeated .TSP.Reference paragraph_styles = 20; + optional uint32 multidataset_index = 21; + optional bool needs_calc_engine_deferred_import_action = 22; + optional .TSP.Reference owned_preset = 23; + optional bool is_dirty = 24; + extensions 10000 to 536870911; + extend .TSCH.ChartDrawableArchive { + optional .TSCH.ChartArchive unity = 10000; + } +} + +message .TSCH.ChartMultiDataIndexUpgrade { + extend .TSCH.ChartArchive { + optional bool upgraded_to_ui_state = 10021; + } +} + +message .TSCH.ChartGarlicMinMaxUpgrade { + optional double horizontal_min = 1; + optional double horizontal_max = 2; + optional double value_min = 3; + optional double value_max = 4; + extend .TSCH.ChartArchive { + optional .TSCH.ChartGarlicMinMaxUpgrade garlic_min_max_upgrade = 10010; + } +} + +message .TSCH.ChartGarlicLabelFormatUpgrade { + optional string value_prefix = 1; + optional string value_suffix = 2; + optional bool value_use_separator = 3; + optional string horizontal_prefix = 4; + optional string horizontal_suffix = 5; + optional bool horizontal_use_separator = 6; + extend .TSCH.ChartArchive { + optional .TSCH.ChartGarlicLabelFormatUpgrade garlic_label_format_upgrade = 10011; + } +} + +message .TSCH.ChartPasteboardAdditionsArchive { + extend .TSCH.ChartArchive { + optional uint32 preset_index_for_pasteboard = 10000; + optional bytes preset_uuid_for_pasteboard = 10001; + optional .TSP.Reference custom_format_list_for_pasteboard = 10003; + } +} + +message .TSCH.ChartPreserveAppearanceForPresetArchive { + extend .TSCH.ChartArchive { + optional bool appearance_preserved_for_preset = 10023; + } +} + +message .TSCH.ChartSupportsProportionalBendedCalloutLinesArchive { + extend .TSCH.ChartArchive { + optional bool supports_proportional_bended_callout_lines = 10024; + } +} + +message .TSCH.ChartSupportsRoundedCornersArchive { + extend .TSCH.ChartArchive { + optional bool deprecated_supports_rounded_corners = 10025; + optional bool supports_rounded_corners = 10026; + } +} + +message .TSCH.ChartSupportsSeriesPropertySpacingArchive { + extend .TSCH.ChartArchive { + optional bool supports_series_value_label_spacing = 10027; + optional bool supports_series_error_bar_spacing = 10028; + } +} + +message .TSCH.ChartGridArchive { + message ChartGridRowColumnIdMap { + message Entry { + required string uniqueId = 1; + required uint32 index = 2; + } + repeated .TSCH.ChartGridArchive.ChartGridRowColumnIdMap.Entry row_id_map = 1; + repeated .TSCH.ChartGridArchive.ChartGridRowColumnIdMap.Entry column_id_map = 2; + } + repeated string row_name = 1; + repeated string column_name = 2; + repeated .TSCH.GridRow grid_row = 3; + optional .TSCH.ChartGridArchive.ChartGridRowColumnIdMap idMap = 4; +} + +message .TSCH.ChartMediatorArchive { + optional .TSP.Reference info = 1; + repeated uint32 local_series_indexes = 2; + repeated uint32 remote_series_indexes = 3; +} + +message .TSCH.ChartFillSetArchive { + required string identifier = 1; + required string lookup_string = 2; + optional uint32 number_of_theme_series_styles = 3; + repeated .TSP.Reference series_styles = 4; +} + +message .TSCH.ChartStylePreset { + optional .TSP.Reference chart_style = 1; + optional .TSP.Reference legend_style = 2; + repeated .TSP.Reference value_axis_styles = 3; + repeated .TSP.Reference category_axis_styles = 4; + repeated .TSP.Reference series_styles = 5; + repeated .TSP.Reference paragraph_styles = 6; + optional bytes uuid = 7; + extensions 10000 to 536870911; +} + +message .TSCH.ChartPresetsArchive { + repeated .TSP.Reference chart_presets = 1; + extend .TSS.ThemeArchive { + optional .TSCH.ChartPresetsArchive extension = 120; + } +} + +message .TSCH.PropertyValueStorageContainerArchive { + optional .TSP.Reference chart_style = 1; + optional .TSP.Reference chart_nonstyle = 2; + optional .TSP.Reference legend_style = 3; + optional .TSP.Reference legend_nonstyle = 4; + optional .TSP.SparseReferenceArray value_axis_styles = 5; + optional .TSP.SparseReferenceArray value_axis_nonstyles = 6; + optional .TSP.SparseReferenceArray category_axis_styles = 7; + optional .TSP.SparseReferenceArray category_axis_nonstyles = 8; + optional .TSP.SparseReferenceArray series_theme_styles = 9; + optional .TSP.SparseReferenceArray series_private_styles = 10; + optional .TSP.SparseReferenceArray series_nonstyles = 11; + optional .TSP.SparseReferenceArray paragraph_styles = 12; + extensions 10000 to 536870911; +} + +message .TSCH.StylePasteboardDataArchive { + optional .TSS.StyleArchive super = 1; + optional .TSCH.PropertyValueStorageContainerArchive style_network = 2; + optional bool copied_from_entire_chart = 3; +} + +message .TSCH.ChartSelectionPathTypeArchive { + optional string path_type = 1; + optional string path_name = 2; +} + +message .TSCH.ChartAxisIDArchive { + optional .TSCH.AxisType axis_type = 1; + optional uint32 ordinal = 2; +} + +message .TSCH.ChartSelectionPathArgumentArchive { + optional uint32 number = 1; + optional .TSCH.ChartAxisIDArchive axis_id = 2; +} + +message .TSCH.ChartSelectionPathArchive { + optional .TSCH.ChartSelectionPathTypeArchive path_type = 1; + optional .TSCH.ChartSelectionPathArchive sub_selection = 2; + repeated .TSCH.ChartSelectionPathArgumentArchive arguments = 3; +} + +message .TSCH.ChartSelectionArchive { + optional .TSD.DrawableSelectionArchive super = 3; + optional .TSP.Reference chart = 1; + repeated .TSCH.ChartSelectionPathArchive paths = 2; +} + +message .TSCH.ChartCDESelectionArchive { + optional .TSP.Reference chart = 1; + optional int32 selection_type = 2; + optional uint32 row_location = 3; + optional uint32 row_length = 4; + optional uint32 column_location = 5; + optional uint32 column_length = 6; +} + +message .TSCH.ChartUIState { + optional .TSP.Reference chart = 1; + optional int32 cde_last_row_selected = 2; + optional int32 cde_last_col_selected = 3; + optional int32 cde_last_row_count = 4; + optional int32 cde_last_col_count = 5; + optional bool cde_use_full_keyboard = 6; + optional int32 multi_data_set_index = 7; + optional bool is_valid_multi_data_set_index = 8; + extensions 10000 to 536870911; +} + +message .TSCH.ChartUIStateMultiDataIndexUpgrade { + extend .TSCH.ChartUIState { + optional bool upgraded_from_model = 10022; + } +} + +message .TSCH.ChartFormatStructExtensions { + extend .TSK.FormatStructArchive { + optional string prefix = 10000; + optional string suffix = 10001; + } +} + +message .TSCH.ChartReferenceLineNonStyleItem { + required .TSP.Reference non_style = 1; + required .TSP.UUID uuid = 2; +} + +message .TSCH.ChartAxisReferenceLineNonStylesArchive { + required .TSCH.ChartAxisIDArchive axis_id = 1; + repeated .TSCH.ChartReferenceLineNonStyleItem reference_line_non_style_items = 2; +} + +message .TSCH.ChartAxisReferenceLineStylesArchive { + required .TSCH.ChartAxisIDArchive axis_id = 1; + optional .TSP.SparseReferenceArray reference_line_styles = 2; +} + +message .TSCH.ChartReferenceLinesArchive { + repeated .TSCH.ChartAxisReferenceLineNonStylesArchive reference_line_non_styles_map = 1; + repeated .TSCH.ChartAxisReferenceLineStylesArchive reference_line_styles_map = 2; + optional .TSP.Reference theme_preset_reference_line_style = 3; +} + +message .TSCH.ChartPresetReferenceLineStylesArchive { + repeated .TSP.Reference reference_line_styles = 1; +} + +message .TSCH.ChartAxisReferenceLineSparseNonStylesArchive { + required .TSCH.ChartAxisIDArchive axis_id = 1; + repeated .TSCH.ChartReferenceLineNonStyleItem reference_line_non_style_items = 2; +} + +message .TSCH.PropertyValueStorageContainerReferenceLinesArchive { + repeated .TSCH.ChartAxisReferenceLineSparseNonStylesArchive reference_line_non_styles_map = 1; + repeated .TSCH.ChartAxisReferenceLineStylesArchive reference_line_styles_map = 2; + optional .TSP.Reference theme_preset_reference_line_style = 3; +} + +message .TSCH.CollaboratorCDECursorSubselectionArchive { + optional int32 row_location = 1; + optional int32 row_length = 2; + optional int32 column_location = 3; + optional int32 column_length = 4; + extend .TSK.CollaboratorCursorArchive { + optional .TSCH.CollaboratorCDECursorSubselectionArchive cde_cursor_subselection = 300; + } +} + +message .TSCH.CollaboratorChartTitleCursorSubselectionArchive { + optional bool chart_title_selected = 1; + extend .TSK.CollaboratorCursorArchive { + optional .TSCH.CollaboratorChartTitleCursorSubselectionArchive chart_title_cursor_subselection = 301; + } +} + +extend .TSCH.ChartArchive { + optional bool scene3d_settings_constant_depth = 10002; + optional string last_applied_fill_set_lookup_string = 10004; +} + +extend .TSCH.ChartSeriesStyleArchive { + optional bool series_supports_donut = 10001; + optional bool series_supports_radar = 10002; +} + +extend .TSCH.ChartSeriesNonStyleArchive { + optional bool series_supports_custom_number_format = 10001; + optional bool series_supports_custom_date_format = 10002; + optional bool series_supports_callout_lines = 10003; +} + +extend .TSCH.ChartAxisStyleArchive { + optional bool axis_supports_radar = 10001; +} + +extend .TSCH.ChartAxisNonStyleArchive { + optional bool axis_supports_custom_number_format = 10001; + optional bool axis_supports_custom_date_format = 10002; +} + +extend .TSCH.ChartArchive { + optional .TSCH.ChartReferenceLinesArchive reference_lines = 10005; +} + +extend .TSCH.ChartStylePreset { + optional .TSCH.ChartPresetReferenceLineStylesArchive preset_reference_line_styles = 10000; +} + +extend .TSCH.PropertyValueStorageContainerArchive { + optional .TSCH.PropertyValueStorageContainerReferenceLinesArchive property_value_storage_container_reference_lines = 10000; +} + + +enum .TSCH.StyleOwnerType { + chart_info = 1; + legend_model = 2; + chart_axis = 3; + chart_series = 4; + reference_line = 5; +} + +enum .TSCH.StyleSwapType { + chart_style = 1; + chart_non_style = 2; + legend_style = 3; + legend_non_style = 4; + value_axis_style = 5; + value_axis_non_style = 6; + category_axis_style = 7; + category_axis_non_style = 8; + series_theme_style = 9; + series_private_style = 10; + series_non_style = 11; + paragraph_style = 12; + reference_line_style = 13; + reference_line_non_style = 14; + reference_line_theme_style = 15; +} + +enum .TSCH.ApplyPresetBehavior { + remove_overrides = 1; + preserve_overrides = 2; + preserve_appearance = 3; +} + +message .TSCH.StyleOwnerPath { + repeated .TSP.UUID uuids = 1; +} + +message .TSCH.CommandSetChartTypeArchive { + required .TSCH.ChartCommandArchive super = 1; + optional .TSCH.ChartType new_chart_type = 2; + optional .TSCH.ChartType old_chart_type = 3; + optional .TSCH.ChartType rollback_chart_type = 4; + repeated .TSP.UUID row_ids = 5; + repeated .TSP.UUID column_ids = 6; + repeated .TSP.UUID old_row_ids = 7; + repeated .TSP.UUID old_column_ids = 8; + repeated .TSP.UUID rollback_row_ids = 9; + repeated .TSP.UUID rollback_column_ids = 10; + optional bool uses_captured_data = 11; + optional bool use_default_data = 12; +} + +message .TSCH.StyleSwapUndoTupleArchive { + optional .TSP.Reference chart_info = 1; + optional .TSCH.StyleSwapType swap_type = 2; + optional uint32 index = 3; + optional .TSP.Reference old_value = 4; + optional .TSP.Reference new_value = 5; + optional .TSP.UUID ref_line_uuid = 6; +} + +message .TSCH.StyleSwapUndoTuplesArchive { + repeated .TSCH.StyleSwapUndoTupleArchive swap_tuples = 1; +} + +message .TSCH.CommandStyleSwapArchive { + required .TSCH.ChartCommandArchive super = 1; + repeated .TSCH.StyleSwapUndoTupleArchive undo_tuples = 2; +} + +message .TSCH.CommandMutatePropertiesArchive { + message GenericPropertyDeltaMap { + message GenericMapUnion { + optional .TSCH.Generated.ChartGenericPropertyMapArchive chart_map = 2; + optional .TSCH.Generated.LegendGenericPropertyMapArchive legend_map = 3; + optional .TSCH.Generated.ChartAxisGenericPropertyMapArchive axis_map = 4; + optional .TSCH.Generated.ChartSeriesGenericPropertyMapArchive series_map = 5; + optional .TSCH.Generated.ReferenceLineGenericPropertyMapArchive reference_line_map = 6; + } + optional .TSCH.StyleOwnerPath style_owner_path = 1; + optional .TSCH.CommandMutatePropertiesArchive.GenericPropertyDeltaMap.GenericMapUnion forward_map = 2; + optional .TSCH.CommandMutatePropertiesArchive.GenericPropertyDeltaMap.GenericMapUnion reverse_map = 3; + } + message ParagraphStyleDeltaMap { + message ParagraphStylePropertyMapArchive { + optional .TSWP.CharacterStylePropertiesArchive char_properties = 1; + optional .TSWP.ParagraphStylePropertiesArchive para_properties = 2; + } + optional .TSCH.StyleOwnerPath style_owner_path = 1; + optional uint32 paragraph_style_index_property = 2; + optional .TSCH.CommandMutatePropertiesArchive.ParagraphStyleDeltaMap.ParagraphStylePropertyMapArchive forward_map = 3; + optional .TSCH.CommandMutatePropertiesArchive.ParagraphStyleDeltaMap.ParagraphStylePropertyMapArchive reverse_map = 4; + } + required .TSCH.ChartCommandArchive super = 1; + optional .TSP.Reference rollback_cmd = 2; + repeated .TSCH.CommandMutatePropertiesArchive.GenericPropertyDeltaMap generic_property_delta_maps = 3; + repeated .TSCH.CommandMutatePropertiesArchive.ParagraphStyleDeltaMap paragraph_style_delta_maps = 4; + optional bool initiatedOnWeb = 5; +} + +message .TSCH.CommandScaleAllTextArchive { + required .TSCH.ChartCommandArchive super = 1; + optional .TSP.Reference rollback_cmd = 2; + optional double scale_factor = 3; +} + +message .TSCH.CommandSetFontFamilyArchive { + message StyleSemanticTag { + optional .TSCH.StyleSwapType swap_type = 1; + optional uint32 index = 2; + } + message SemanticParagraphStyleMutationMap { + message ParagraphStylePropertyMapArchive { + optional .TSWP.CharacterStylePropertiesArchive char_properties = 1; + optional .TSWP.ParagraphStylePropertiesArchive para_properties = 2; + } + optional .TSCH.CommandSetFontFamilyArchive.StyleSemanticTag style_semantic_tag = 1; + optional uint32 paragraph_style_index_property = 2; + optional .TSCH.CommandSetFontFamilyArchive.SemanticParagraphStyleMutationMap.ParagraphStylePropertyMapArchive forward_map = 3; + optional .TSCH.CommandSetFontFamilyArchive.SemanticParagraphStyleMutationMap.ParagraphStylePropertyMapArchive reverse_map = 4; + } + required .TSCH.ChartCommandArchive super = 1; + optional .TSP.Reference rollback_cmd = 2; + optional string new_font_family = 3; + optional string old_font_family = 4; + repeated .TSCH.CommandSetFontFamilyArchive.SemanticParagraphStyleMutationMap paragraph_style_delta_maps = 5; + required bool is_bold = 6; + required bool is_italic = 7; +} + +message .TSCH.CommandApplyFillSetArchive { + required .TSCH.ChartCommandArchive super = 1; + required .TSCH.ChartType chart_type = 2; + required .TSCH.ChartFillSetArchive fill_set = 3; + optional .TSCH.ChartFillSetArchive old_fill_set = 4; + optional string prior_last_applied_fill_set_lookup_string = 5; + optional .TSP.Reference rollback_cmd = 6; +} + +message .TSCH.CommandSetSeriesNameArchive { + required .TSCH.ChartCommandArchive super = 1; + required uint32 seriesIndex = 2; + optional string oldName = 3; + required string newName = 4; +} + +message .TSCH.CommandSetCategoryNameArchive { + required .TSCH.ChartCommandArchive super = 1; + required uint32 categoryIndex = 2; + optional string oldName = 3; + required string newName = 4; + optional bool isMultiDataIndex = 5; +} + +message .TSCH.CommandAddGridRowsArchive { + required .TSCH.ChartCommandArchive super = 1; + optional .TSP.UUID row_id = 2; + repeated .TSP.UUID row_id_list = 3; + repeated string row_name_list = 4; + optional .TSP.UUID undo_deletion_start_id = 5; + optional .TSP.UUID undo_deletion_end_id = 6; +} + +message .TSCH.CommandAddGridColumnsArchive { + required .TSCH.ChartCommandArchive super = 1; + optional .TSP.UUID column_id = 2; + repeated .TSP.UUID column_id_list = 3; + repeated string column_name_list = 4; + optional .TSP.UUID undo_deletion_start_id = 5; + optional .TSP.UUID undo_deletion_end_id = 6; +} + +message .TSCH.CommandMoveGridRowsArchive { + required .TSCH.ChartCommandArchive super = 1; + required .TSP.UUID start_row_id = 2; + required .TSP.UUID end_row_id = 3; + optional .TSP.UUID after_row_id = 4; + optional .TSP.UUID undo_after_row_id = 5; +} + +message .TSCH.CommandMoveGridColumnsArchive { + required .TSCH.ChartCommandArchive super = 1; + required .TSP.UUID start_column_id = 2; + required .TSP.UUID end_column_id = 3; + optional .TSP.UUID after_column_id = 4; + optional .TSP.UUID undo_after_column_id = 5; +} + +message .TSCH.CommandDeleteGridRowsArchive { + required .TSCH.ChartCommandArchive super = 1; + required .TSP.UUID start_row_id = 2; + required .TSP.UUID end_row_id = 3; + repeated string cut_row_names = 4; + repeated .TSCH.GridRow cut_values = 5; + optional bool undo_discards_values = 6; + optional .TSP.UUID undo_column_insertion_id = 7; + optional .TSP.UUID undo_row_insertion_id = 8; + repeated .TSP.UUID undo_row_id_list = 9; + repeated string cut_column_names = 11; + repeated .TSP.UUID undo_column_id_list = 12; +} + +message .TSCH.CommandDeleteGridColumnsArchive { + required .TSCH.ChartCommandArchive super = 1; + required .TSP.UUID start_column_id = 2; + required .TSP.UUID end_column_id = 3; + repeated string cut_names = 4; + repeated .TSCH.GridRow cut_values = 5; + optional bool undo_discards_values = 6; + optional .TSP.UUID undo_column_insertion_id = 7; + optional .TSP.UUID undo_row_insertion_id = 8; + repeated .TSP.UUID undo_column_id_list = 9; + repeated string cut_row_names = 11; + repeated .TSP.UUID undo_row_id_list = 12; +} + +message .TSCH.CommandSetGridValueArchive { + required .TSCH.ChartCommandArchive super = 1; + required uint32 rowindex = 2; + required uint32 columnindex = 3; + required double oldvalue = 4; + required double newvalue = 5; +} + +message .TSCH.CommandSetGridDirectionArchive { + required .TSCH.ChartCommandArchive super = 1; + required uint32 old_direction = 2; + required uint32 new_direction = 3; +} + +message .TSCH.CommandSetSeriesTypeArchive { + required .TSCH.ChartCommandArchive super = 1; + required uint32 seriesindex = 2; + required uint32 oldtype = 3; + required uint32 newtype = 4; +} + +message .TSCH.CommandSetScatterFormatArchive { + required .TSCH.ChartCommandArchive super = 1; + required uint32 oldformat = 3; + required uint32 newformat = 4; +} + +message .TSCH.CommandSetMultiDataSetIndexArchive { + required .TSCH.ChartCommandArchive super = 1; + required uint32 oldindex = 2; + required uint32 newindex = 3; +} + +message .TSCH.CommandSetLegendFrameArchive { + required .TSCH.ChartCommandArchive super = 1; + required .TSCH.RectArchive old_legend_frame = 2; + required .TSCH.RectArchive new_legend_frame = 3; +} + +message .TSCH.CommandSetPieWedgeExplosion { + required .TSCH.ChartCommandArchive super = 1; + repeated uint32 series_indices = 2; + repeated double wedge_explosions = 3; + repeated uint32 old_series_indices = 5; + repeated double old_wedge_explosions = 6; + optional .TSP.Reference rollback_cmd = 7; +} + +message .TSCH.CommandChartApplyTheme { + required .TSS.ApplyThemeChildCommandArchive super = 1; + required .TSP.Reference info = 2; + optional .TSP.Reference swap_command = 3; + optional .TSP.Reference preset = 4; +} + +message .TSCH.CommandChartApplyPreset { + required .TSCH.ChartCommandArchive super = 1; + optional .TSCH.ApplyPresetBehavior behavior = 2 [default = remove_overrides]; + optional .TSP.Reference preset = 3; + optional .TSP.Reference old_preset = 4; + optional bool should_apply_swap_tuples = 5; + optional bool are_swap_tuples_valid = 6; + repeated .TSCH.StyleSwapUndoTupleArchive swap_tuples = 7; + repeated .TSCH.StyleSwapUndoTupleArchive inverse_swap_tuples = 8; + optional .TSP.Reference rollback_preset = 9; + repeated .TSCH.StyleSwapUndoTupleArchive rollback_swap_tuples = 10; +} + +message .TSCH.CommandCleanupGeometryArchive { + required .TSCH.ChartCommandArchive super = 1; + optional .TSP.Reference info_geometry_command = 2; + optional .TSP.Reference anchor_attachment_command = 3; + optional .TSCH.RectArchive original_legend_rect = 4; +} + +message .TSCH.ChartCommandArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.Reference chart_info = 2; + optional bool original_dirty_state = 3; + optional .TSP.UUIDPath chart_info_id_path = 4; + optional bool is_for_forward_undo_redo = 5; +} + +message .TSCH.CommandReplaceGridValuesArchive { + required .TSCH.ChartCommandArchive super = 1; + repeated .TSCH.GridRow old_data_rows = 4; + repeated .TSCH.GridRow new_data_rows = 5; + repeated string old_row_names = 6; + repeated string new_row_names = 7; + repeated string old_col_names = 8; + repeated string new_col_names = 9; + repeated .TSP.UUID update_row_uuids = 10; + repeated .TSP.UUID update_column_uuids = 11; + repeated .TSP.UUID add_row_uuids = 12; + repeated .TSP.UUID add_column_uuids = 13; + repeated .TSP.UUID delete_row_uuids = 14; + repeated .TSP.UUID delete_column_uuids = 15; + optional bool set_series_direction = 16; + optional uint32 new_series_direction = 17; +} + +message .TSCH.CommandReplaceThemePresetArchive { + message StyleAndIdentifierPair { + required .TSP.Reference style = 1; + required string identifier = 2; + } + required .TSK.CommandArchive super = 1; + required .TSP.Reference theme = 2; + optional .TSP.Reference old_preset = 3; + optional .TSP.Reference new_preset = 4; + repeated .TSCH.CommandReplaceThemePresetArchive.StyleAndIdentifierPair identifiers = 5; + optional uint64 old_preset_index = 6; +} + +message .TSCH.CommandInvalidateWPCaches { + required .TSK.CommandArchive super = 1; +} + +message .TSCH.CommandReplaceCustomFormatArchive { + message FormatObjectMutation { + optional .TSCH.StyleOwnerType style_owner_type = 1; + optional uint32 style_owner_index = 2; + optional uint32 format_object_property = 3; + optional .TSK.FormatStructArchive format_object = 4; + } + required .TSCH.ChartCommandArchive super = 1; + optional .TSP.Reference rollback_cmd = 2; + optional .TSK.FormatStructArchive old_format_object = 3; + optional .TSK.FormatStructArchive new_format_object = 4; + repeated .TSCH.CommandReplaceCustomFormatArchive.FormatObjectMutation forward_mutations = 5; + repeated .TSCH.CommandReplaceCustomFormatArchive.FormatObjectMutation reverse_mutations = 6; +} + +message .TSCH.CommandAddReferenceLineArchive { + required .TSCH.ChartCommandArchive super = 1; + required .TSCH.ChartAxisIDArchive axis_id = 2; + optional .TSP.UUID uuid = 3; + required .TSP.Reference non_style = 4; + optional .TSP.Reference style = 5; + repeated .TSP.Reference paragraph_styles = 6; + repeated .TSP.Reference rollback_commands = 7; +} + +message .TSCH.CommandDeleteReferenceLineArchive { + required .TSCH.ChartCommandArchive super = 1; + required .TSCH.ChartAxisIDArchive axis_id = 2; + required .TSP.UUID uuid = 3; + optional .TSP.Reference non_style = 4; + optional .TSP.Reference style = 5; + repeated .TSP.Reference paragraph_styles = 6; + optional .TSP.Reference style_swap_command = 7; +} + +message .TSCH.CommandPasteStyleArchive { + required .TSCH.ChartCommandArchive super = 1; + optional .TSP.Reference style_swap_command = 2; + optional .TSCH.PropertyValueStorageContainerArchive inverse_chart_style_state = 3; + optional .TSCH.PropertyValueStorageContainerArchive chart_style_state = 4; + optional .TSP.Reference shape_style = 5; + repeated .TSCH.ChartSelectionPathArchive subselection = 6; +} + +message .TSCH.CommandReplaceImageDataArchive { + required .TSCH.ChartCommandArchive super = 1; + optional .TSP.Reference style_swap_command = 2; + optional .TSCH.PropertyValueStorageContainerArchive inverse_chart_style_state = 3; + optional .TSCH.PropertyValueStorageContainerArchive chart_style_state = 4; +} + +message .TSCH.CommandInducedReplaceChartGrid { + required .TSK.CommandArchive super = 1; +} + +message .TSCH.CommandInduced3DChartGeometry { + required .TSK.CommandArchive super = 1; +} + +message .TSCH.ChartTextSelectionTransformerArchive { + optional .TSP.Reference selection = 1; +} + +message .TSCH.ChartDrawableSelectionTransformerArchive { + required .TSD.DrawableSelectionTransformerArchive super = 1; +} + +message .TSCH.ChartSubselectionTransformerHelperArchive { + optional .TSP.Reference selection = 1; +} + +message .TSCH.ChartRefLineSubselectionTransformerHelperArchive { + required .TSCH.ChartSubselectionTransformerHelperArchive super = 1; + repeated .TSP.UUID selected_reference_line_uuids = 2; +} + +message .TSCH.ChartSubselectionIdentityTransformerHelperArchive { + required .TSCH.ChartSubselectionTransformerHelperArchive super = 1; +} + +message .TSCH.ChartSubselectionTransformerArchive { + optional .TSP.Reference selection = 1; + optional .TSP.Reference helper = 2; +} + +message .TSCH.CDESelectionTransformerArchive { + optional .TSP.Reference cde_selection = 1; +} + + +enum .TSS.ValueType { + ObjectType = 0; + IntType = 1; + FloatType = 2; + DoubleType = 3; +} + +enum .TSS.PropertyType { + InvalidPropertyType = 1; + NullPropertyType = 2; + IntegerPropertyType = 3; + FloatPropertyType = 4; + DoublePropertyType = 5; + NSStringPropertyType = 6; + TSPObjectPropertyType = 7; +} + +message .TSS.StyleArchive { + optional string name = 1; + optional string style_identifier = 2; + optional .TSP.Reference parent = 3; + optional bool is_variation = 4 [default = false]; + optional .TSP.Reference stylesheet = 5; +} + +message .TSS.StylesheetArchive { + message IdentifiedStyleEntry { + required string identifier = 1; + required .TSP.Reference style = 2; + } + message StyleChildrenEntry { + required .TSP.Reference parent = 1; + repeated .TSP.Reference children = 2; + } + message VersionedStyles { + repeated .TSP.Reference styles = 1; + repeated .TSS.StylesheetArchive.IdentifiedStyleEntry identifier_to_style_map = 2; + repeated .TSS.StylesheetArchive.StyleChildrenEntry parent_to_children_style_map = 3; + } + repeated .TSP.Reference styles = 1; + repeated .TSS.StylesheetArchive.IdentifiedStyleEntry identifier_to_style_map = 2; + optional .TSP.Reference parent = 3; + optional bool is_locked = 4 [default = true]; + repeated .TSS.StylesheetArchive.StyleChildrenEntry parent_to_children_style_map = 5; + optional bool can_cull_styles = 6 [default = false]; + optional .TSS.StylesheetArchive.VersionedStyles styles_for_10_0 = 7; + optional .TSS.StylesheetArchive.VersionedStyles styles_for_10_1 = 8; + optional .TSS.StylesheetArchive.VersionedStyles styles_for_10_2 = 9; + optional .TSS.StylesheetArchive.VersionedStyles styles_for_11_0 = 10; + optional .TSS.StylesheetArchive.VersionedStyles styles_for_11_1 = 11; + optional .TSS.StylesheetArchive.VersionedStyles styles_for_11_2 = 12; + optional .TSS.StylesheetArchive.VersionedStyles styles_for_12_0 = 13; + optional .TSS.StylesheetArchive.VersionedStyles styles_for_12_1 = 14; + optional .TSS.StylesheetArchive.VersionedStyles styles_for_12_2 = 15; + optional .TSS.StylesheetArchive.VersionedStyles styles_for_13_0 = 16; +} + +message .TSS.ThemeArchive { + optional .TSP.Reference legacy_stylesheet = 1; + optional string theme_identifier = 3; + optional .TSP.Reference document_stylesheet = 4; + repeated .TSP.UUID old_uuids_for_preset_replacements = 5; + repeated .TSP.UUID new_uuids_for_preset_replacements = 6; + repeated .TSP.Color color_presets = 10; + extensions 100 to 536870911; +} + +message .TSS.ApplyThemeCommandArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.Reference commands = 2; + optional .TSP.Reference old_theme = 3; + optional .TSP.Reference new_theme = 4; +} + +message .TSS.ApplyThemeChildCommandArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.Reference parent = 2; +} + +message .TSS.StyleUpdatePropertyMapCommandArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference current_style = 2; + optional .TSP.Reference style_with_old_property_map = 3; + optional .TSP.Reference style_with_new_property_map = 4; + optional .TSP.Reference style_diff = 7; + optional bool notify_for_style_clients = 6 [default = true]; +} + +message .TSS.ThemeReplacePresetCommandArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference preset = 3; + optional .TSP.Reference oldPreset = 4; + required uint32 index = 5; +} + +message .TSS.ThemeReplaceColorPresetCommandArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference theme = 2; + required .TSP.Color color = 3; + required .TSP.Color old_color = 4; + required uint32 index = 5; +} + +message .TSS.ThemeAddStylePresetCommandArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference theme = 2; + required .TSP.Reference preset = 3; + required string preset_kind = 4; + optional string identifier = 5; + optional bool add_preset_to_stylesheet = 6; +} + +message .TSS.ThemeRemoveStylePresetCommandArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference theme = 2; + required .TSP.Reference preset = 3; + required uint32 preset_index = 4; + required string preset_kind = 5; + optional string identifier = 6; + optional .TSP.Reference replacement_preset = 7; +} + +message .TSS.ThemeMovePresetCommandArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference theme = 2; + required .TSP.UUID preset_id = 3; + required uint32 new_index = 4; + required uint32 old_index = 5; +} + +message .TSS.ThemeReplaceStylePresetAndDisconnectStylesCommandArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference preset = 2; + required .TSP.Reference replacement_preset = 3; +} + +message .TSS.CommandPropertyEntryArchive { + required uint32 property = 1; + required int32 type = 2; + optional int32 integer_value = 3; + optional float float_value = 4; + optional double double_value = 5; + optional string string_value = 6; + optional .TSP.Reference tsp_reference = 7; + extensions 8 to 2000; +} + +message .TSS.CommandPropertyMapArchive { + repeated .TSS.CommandPropertyEntryArchive property_entries = 1; +} + +extend .TSS.CommandPropertyEntryArchive { + optional .TSP.Color color = 8; +} + + +message .TSSSOS.SpecSetBoolArchive { + required bool value = 1; + required bool unset = 2; +} + +message .TSSSOS.SpecSetColorArchive { + optional .TSP.Color color = 1; + required bool unset = 2; +} + +message .TSSSOS.SpecSetDoubleArchive { + required double value = 1; + required bool unset = 2; +} + +message .TSSSOS.SpecSetIntegerArchive { + required int32 value = 1; + required bool unset = 2; +} + +message .TSSSOS.SpecSetStringArchive { + optional string value = 1; + required bool unset = 2; +} + +message .TSSSOS.SpecBoolArchive { + optional .TSSSOS.SpecSetBoolArchive spec_set_bool = 1; +} + +message .TSSSOS.SpecColorArchive { + optional .TSSSOS.SpecSetColorArchive spec_set_color = 1; +} + +message .TSSSOS.SpecDoubleArchive { + optional .TSSSOS.SpecSetDoubleArchive spec_set_double = 1; +} + +message .TSSSOS.SpecIntegerArchive { + optional .TSSSOS.SpecSetIntegerArchive spec_set_integer = 1; +} + +message .TSSSOS.SpecStringArchive { + optional .TSSSOS.SpecSetStringArchive spec_set_string = 1; +} + + +enum .TSD.LineJoin { + MiterJoin = 0; + RoundJoin = 1; + BevelJoin = 2; +} + +message .TSD.EdgeInsetsArchive { + required float top = 1; + required float left = 2; + required float bottom = 3; + required float right = 4; +} + +message .TSD.GeometryArchive { + optional .TSP.Point position = 1; + optional .TSP.Size size = 2; + optional uint32 flags = 3; + optional float angle = 4; +} + +message .TSD.PointPathSourceArchive { + enum PointPathSourceType { + kTSDLeftSingleArrow = 0; + kTSDRightSingleArrow = 1; + kTSDDoubleArrow = 10; + kTSDStar = 100; + kTSDPlus = 200; + } + optional .TSD.PointPathSourceArchive.PointPathSourceType type = 1; + optional .TSP.Point point = 2; + optional .TSP.Size naturalSize = 3; +} + +message .TSD.ScalarPathSourceArchive { + enum ScalarPathSourceType { + kTSDRoundedRectangle = 0; + kTSDRegularPolygon = 1; + kTSDChevron = 2; + } + optional .TSD.ScalarPathSourceArchive.ScalarPathSourceType type = 1; + optional float scalar = 2; + optional .TSP.Size naturalSize = 3; + optional bool is_curve_continuous = 4; +} + +message .TSD.BezierPathSourceArchive { + optional string path_string = 1 [deprecated = true]; + optional .TSP.Size naturalSize = 2; + optional .TSP.Path path = 3; +} + +message .TSD.CalloutPathSourceArchive { + optional .TSP.Size natural_size = 1; + optional .TSP.Point tail_position = 2; + optional float tail_size = 3; + optional float corner_radius = 4; + optional bool center_tail = 5; +} + +message .TSD.ConnectionLinePathSourceArchive { + enum ConnectionLinePathSourceType { + kTSDConnectionLineTypeQuadratic = 0; + kTSDConnectionLineTypeOrthogonal = 1; + } + required .TSD.BezierPathSourceArchive super = 1; + optional .TSD.ConnectionLinePathSourceArchive.ConnectionLinePathSourceType type = 2; + optional float outset_from = 3; + optional float outset_to = 4; +} + +message .TSD.EditableBezierPathSourceArchive { + message Node { + required .TSP.Point inControlPoint = 1; + required .TSP.Point nodePoint = 2; + required .TSP.Point outControlPoint = 3; + required .TSD.EditableBezierPathSourceArchive.NodeType type = 4; + } + message Subpath { + repeated .TSD.EditableBezierPathSourceArchive.Node nodes = 1; + required bool closed = 2; + } + enum NodeType { + sharp = 1; + bezier = 2; + smooth = 3; + } + repeated .TSD.EditableBezierPathSourceArchive.Subpath subpaths = 1; + optional .TSP.Size naturalSize = 2; +} + +message .TSD.PathSourceArchive { + optional bool horizontalFlip = 1; + optional bool verticalFlip = 2; + optional .TSD.PointPathSourceArchive point_path_source = 3; + optional .TSD.ScalarPathSourceArchive scalar_path_source = 4; + optional .TSD.BezierPathSourceArchive bezier_path_source = 5; + optional .TSD.CalloutPathSourceArchive callout_path_source = 6; + optional .TSD.ConnectionLinePathSourceArchive connection_line_path_source = 7; + optional .TSD.EditableBezierPathSourceArchive editable_bezier_path_source = 8; + optional string localizationKey = 9; + optional string userDefinedName = 10; +} + +message .TSD.AngleGradientArchive { + optional float gradientangle = 2; +} + +message .TSD.TransformGradientArchive { + optional .TSP.Point start = 1; + optional .TSP.Point end = 2; + optional .TSP.Size baseNaturalSize = 3; +} + +message .TSD.GradientArchive { + message GradientStop { + optional .TSP.Color color = 1; + optional float fraction = 2; + optional float inflection = 3; + } + enum GradientType { + Linear = 0; + Radial = 1; + } + optional .TSD.GradientArchive.GradientType type = 1; + repeated .TSD.GradientArchive.GradientStop stops = 2; + optional float opacity = 3; + optional bool advancedGradient = 4; + optional .TSD.AngleGradientArchive anglegradient = 5; + optional .TSD.TransformGradientArchive transformgradient = 6; +} + +message .TSD.ImageFillArchive { + enum ImageFillTechnique { + NaturalSize = 0; + Stretch = 1; + Tile = 2; + ScaleToFill = 3; + ScaleToFit = 4; + } + optional .TSP.DataReference imagedata = 6; + optional .TSD.ImageFillArchive.ImageFillTechnique technique = 2 [default = NaturalSize]; + optional .TSP.Color tint = 3; + optional .TSP.Size fillsize = 4; + optional .TSP.DataReference originalimagedata = 7 [deprecated = true]; + optional bool interpretsUntaggedImageDataAsGeneric = 8; + optional .TSP.Color referencecolor = 9; + optional .TSP.Reference database_imagedata = 1; + optional .TSP.Reference database_originalimagedata = 5; +} + +message .TSD.FillArchive { + optional .TSP.Color color = 1; + optional .TSD.GradientArchive gradient = 2; + optional .TSD.ImageFillArchive image = 3; + extensions 100 to 536870911; +} + +message .TSD.StrokePatternArchive { + enum StrokePatternType { + TSDPattern = 0; + TSDSolidPattern = 1; + TSDEmptyPattern = 2; + } + optional .TSD.StrokePatternArchive.StrokePatternType type = 1; + optional float phase = 2; + optional uint32 count = 3; + repeated float pattern = 4; +} + +message .TSD.StrokeArchive { + enum LineCap { + ButtCap = 0; + RoundCap = 1; + SquareCap = 2; + } + optional .TSP.Color color = 1; + optional float width = 2; + optional .TSD.StrokeArchive.LineCap cap = 3; + optional .TSD.LineJoin join = 4; + optional float miter_limit = 5; + optional .TSD.StrokePatternArchive pattern = 6; + optional .TSD.SmartStrokeArchive smart_stroke = 7; + optional .TSD.FrameArchive frame = 8; + optional .TSD.PatternedStrokeArchive patterned_stroke = 9; +} + +message .TSD.SmartStrokeArchive { + optional string stroke_name = 2; + optional uint32 random_seed = 3; + optional .TSP.ReferenceDictionary parameterValues = 4; + optional double pattern_offset_distance = 5; +} + +message .TSD.FrameArchive { + optional string frameName = 2; + optional float assetScale = 3; +} + +message .TSD.PatternedStrokeArchive { + optional string pattern_name = 2; +} + +message .TSD.LineEndArchive { + optional .TSP.Path path = 1; + optional .TSD.LineJoin line_join = 2 [default = MiterJoin]; + optional .TSP.Point end_point = 3; + optional bool is_filled = 4; + optional string identifier = 5; +} + +message .TSD.ShadowArchive { + enum ShadowType { + TSDDropShadow = 0; + TSDContactShadow = 1; + TSDCurvedShadow = 2; + } + optional .TSP.Color color = 1; + optional float angle = 2 [default = 315]; + optional float offset = 3 [default = 5]; + optional int32 radius = 4 [default = 1]; + optional float opacity = 5 [default = 1]; + optional bool is_enabled = 6 [default = true]; + optional .TSD.ShadowArchive.ShadowType type = 7 [default = TSDDropShadow]; + optional .TSD.DropShadowArchive dropShadow = 8; + optional .TSD.ContactShadowArchive contactShadow = 9; + optional .TSD.CurvedShadowArchive curvedShadow = 10; +} + +message .TSD.DropShadowArchive { +} + +message .TSD.ContactShadowArchive { + optional float height = 2 [default = 0.2]; + optional float offset = 4 [default = 0]; +} + +message .TSD.CurvedShadowArchive { + optional float curve = 1 [default = 0.6]; +} + +message .TSD.ReflectionArchive { + optional float opacity = 1 [default = 0.5]; +} + +message .TSD.ImageAdjustmentsArchive { + optional float exposure = 1; + optional float saturation = 2; + optional float contrast = 3; + optional float highlights = 4; + optional float shadows = 5; + optional float sharpness = 6; + optional float denoise = 7; + optional float temperature = 8; + optional float tint = 9; + optional float bottom_level = 10; + optional float top_level = 11 [default = 1]; + optional float gamma = 12; + optional bool enhance = 13 [default = false]; + optional bool represents_sage_adjustments = 14 [default = false]; +} + +message .TSD.ShapeStylePropertiesArchive { + optional .TSD.FillArchive fill = 1; + optional .TSD.StrokeArchive stroke = 2; + optional float opacity = 3; + optional .TSD.ShadowArchive shadow = 4; + optional .TSD.ReflectionArchive reflection = 5; + optional .TSD.LineEndArchive head_line_end = 6; + optional .TSD.LineEndArchive tail_line_end = 7; +} + +message .TSD.ShapeStyleArchive { + required .TSS.StyleArchive super = 1; + optional uint32 override_count = 10 [default = 0]; + optional .TSD.ShapeStylePropertiesArchive shape_properties = 11; +} + +message .TSD.MediaStylePropertiesArchive { + optional .TSD.StrokeArchive stroke = 1; + optional float opacity = 2; + optional .TSD.ShadowArchive shadow = 3; + optional .TSD.ReflectionArchive reflection = 4; +} + +message .TSD.MediaStyleArchive { + required .TSS.StyleArchive super = 1; + optional uint32 override_count = 10 [default = 0]; + optional .TSD.MediaStylePropertiesArchive media_properties = 11; +} + +message .TSD.ThemePresetsArchive { + repeated .TSD.FillArchive gradient_fill_presets = 1; + repeated .TSD.FillArchive image_fill_presets = 2; + repeated .TSD.ShadowArchive shadow_presets = 3; + repeated .TSP.Reference line_style_presets = 4; + repeated .TSP.Reference shape_style_presets = 5; + repeated .TSP.Reference textbox_style_presets = 6; + repeated .TSP.Reference image_style_presets = 7; + repeated .TSP.Reference movie_style_presets = 8; + repeated .TSP.Reference drawing_line_style_presets = 9; + extend .TSS.ThemeArchive { + optional .TSD.ThemePresetsArchive extension = 100; + } +} + +message .TSD.ThemeReplaceFillPresetCommandArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference theme = 2; + required .TSD.FillArchive fill = 3; + required .TSD.FillArchive old_fill = 4; + required uint32 index = 5; +} + +message .TSD.DrawableArchive { + optional .TSD.GeometryArchive geometry = 1; + optional .TSP.Reference parent = 2; + optional .TSD.ExteriorTextWrapArchive exterior_text_wrap = 3; + optional string hyperlink_url = 4; + optional bool locked = 5; + optional .TSP.Reference comment = 6; + optional bool aspect_ratio_locked = 7; + optional string accessibility_description = 8; + repeated .TSP.Reference pencil_annotations = 9; + optional .TSP.Reference title = 10; + optional .TSP.Reference caption = 11; + optional bool title_hidden = 12; + optional bool caption_hidden = 13; +} + +message .TSD.ContainerArchive { + optional .TSD.GeometryArchive geometry = 1; + optional .TSP.Reference parent = 2; + repeated .TSP.Reference children = 3; +} + +message .TSD.GroupArchive { + required .TSD.DrawableArchive super = 1; + repeated .TSP.Reference children = 2; + optional .TSP.Reference fake_shape_for_empty_group = 3; + extensions 100 to 536870911; +} + +message .TSD.FreehandDrawingAnimationArchive { + optional double duration = 1; + optional bool should_loop = 2; +} + +message .TSD.FreehandDrawingArchive { + optional .TSP.Reference spacer_shape = 1; + optional double opacity = 2; + optional .TSD.FreehandDrawingAnimationArchive animation = 3; + optional double last_clamped_scale = 4; + extend .TSD.GroupArchive { + optional .TSD.FreehandDrawingArchive freehand_drawing_archive = 100; + } +} + +message .TSD.ShapeArchive { + required .TSD.DrawableArchive super = 1; + optional .TSP.Reference style = 2; + optional .TSD.PathSourceArchive pathsource = 3; + optional .TSD.LineEndArchive head_line_end = 4 [deprecated = true]; + optional .TSD.LineEndArchive tail_line_end = 5 [deprecated = true]; + optional float strokePatternOffsetDistance = 6; +} + +message .TSD.ConnectionLineArchive { + required .TSD.ShapeArchive super = 1; + optional .TSP.Reference connected_from = 2; + optional .TSP.Reference connected_to = 3; + optional .TSP.UUID connected_to_uuid = 4; + optional .TSP.UUID connected_from_uuid = 5; +} + +message .TSD.ImageArchive { + required .TSD.DrawableArchive super = 1; + optional .TSP.DataReference data = 11; + optional .TSP.Reference style = 3; + optional .TSP.Size originalSize = 4; + optional .TSP.Reference mask = 5; + optional .TSP.DataReference thumbnailData = 12; + optional uint32 flags = 7; + optional .TSP.DataReference originalData = 13; + optional .TSP.Size naturalSize = 9; + optional .TSP.Path instantAlphaPath = 10; + optional .TSD.ImageAdjustmentsArchive imageAdjustments = 14; + optional .TSP.DataReference enhancedImageData = 17; + optional .TSP.DataReference adjustedImageData = 15; + optional .TSP.DataReference thumbnailAdjustedImageData = 16; + optional bool interpretsUntaggedImageDataAsGeneric = 18; + optional .TSP.Reference database_data = 2; + optional .TSP.Reference database_thumbnailData = 6; + optional .TSP.Reference database_originalData = 8; + optional .TSP.Path traced_path = 19; + optional .TSD.Attribution attribution = 20; + optional bool should_trace_pdf_content = 21; + optional bool background_removed = 22; + extensions 100 to 999; +} + +message .TSD.MaskArchive { + required .TSD.DrawableArchive super = 1; + optional .TSD.PathSourceArchive pathsource = 2; +} + +message .TSD.ImageDataAttributes { + optional .TSP.Size pixel_size = 1; + optional bool image_is_srgb = 2; + optional bool should_be_interpreted_as_generic_if_untagged = 3; + extend .TSP.DataAttributes { + optional .TSD.ImageDataAttributes image_data_attributes = 100; + } +} + +message .TSD.MovieArchive { + enum MovieLoopOption { + None = 0; + Repeat = 1; + BackAndForth = 2; + } + required .TSD.DrawableArchive super = 1; + optional .TSP.DataReference movieData = 14; + optional .TSP.DataReference importedAuxiliaryMovieData = 22; + optional string imported_auxiliary_movie_data_original_filename = 25; + optional string movieRemoteURL = 17; + optional float startTime = 3; + optional float endTime = 4; + optional float posterTime = 5; + optional uint32 loopOptionAsInteger = 6 [deprecated = true]; + optional .TSD.MovieArchive.MovieLoopOption loop_option = 24 [default = None]; + optional float volume = 7; + optional bool autoPlay = 8 [deprecated = true]; + optional bool audioOnly = 9; + optional bool streaming = 18; + optional bool nativeAudioRecording = 27; + optional bool playsAcrossSlides = 28; + optional .TSP.DataReference posterImageData = 15; + optional .TSP.DataReference audioOnlyImageData = 16; + optional bool poster_image_generated_with_alpha_support = 23; + optional uint32 playableState = 12; + optional uint32 flags = 13; + optional .TSP.Reference database_movieData = 2; + optional .TSP.Reference database_posterImageData = 10; + optional .TSP.Reference database_audioOnlyImageData = 11; + optional .TSP.Reference style = 19; + optional .TSP.Size originalSize = 20; + optional .TSP.Size naturalSize = 21; + optional .TSD.Attribution attribution = 26; + optional .TSD.MovieFingerprint fingerprint = 29; + optional bool is_live_video = 30 [default = false]; + extensions 100 to 999; +} + +message .TSD.ExteriorTextWrapArchive { + optional uint32 type = 1; + optional uint32 direction = 2; + optional uint32 fit_type = 3; + optional float margin = 4; + optional float alpha_threshold = 5; + optional bool is_html_wrap = 6; +} + +message .TSD.DrawableContentDescription { + optional uint32 element_kind = 1; + optional bool is_anchored_to_text = 2; + optional bool is_floating_above_text = 3; + optional bool is_inline_with_text = 4; +} + +message .TSD.FreehandDrawingContentDescription { + required .TSD.DrawableContentDescription super = 1; + optional bool source_doc_wanted_spacer_shape = 2; +} + +message .TSD.FreehandDrawingToolkitUIState { + enum FreehandDrawingToolType { + Pen = 0; + Pencil = 1; + Crayon = 2; + Fill = 3; + Eraser = 4; + MarqueeSelect = 5; + } + optional .TSP.Color current_color = 1 [deprecated = true]; + optional .TSD.FreehandDrawingToolkitUIState.FreehandDrawingToolType most_recent_restorable_tool_type = 2 [default = Pen]; + optional float pen_tool_opacity = 3; + optional float pen_tool_unscaled_width = 4; + optional float pencil_tool_opacity = 5; + optional float pencil_tool_unscaled_width = 6; + optional float crayon_tool_opacity = 7; + optional float crayon_tool_unscaled_width = 8; + optional float fill_tool_opacity = 9; + optional float eraser_tool_scaled_width = 10; + optional bool eraser_tool_erases_whole_objects = 11; + optional .TSP.Color pen_tool_color = 12; + optional .TSP.Color pencil_tool_color = 13; + optional .TSP.Color crayon_tool_color = 14; + optional .TSP.Color fill_tool_color = 15; +} + +message .TSD.StandinCaptionArchive { +} + +message .TSD.GuideArchive { + enum GuideType { + Horizontal = 0; + Vertical = 1; + } + optional .TSD.GuideArchive.GuideType type = 1; + optional float offset = 2; + optional float start = 3; + optional float end = 4; + optional bool dynamic = 5; + optional bool infinite = 6; +} + +message .TSD.UserDefinedGuideArchive { + enum GuideType { + Horizontal = 0; + Vertical = 1; + } + optional .TSD.UserDefinedGuideArchive.GuideType type = 1; + optional float position = 2; +} + +message .TSD.GuideStorageArchive { + repeated .TSD.UserDefinedGuideArchive userDefinedGuides = 1; +} + +message .TSD.CanvasSelectionArchive { + repeated .TSP.Reference infos = 1; + repeated .TSP.Reference non_interactive_infos = 3; + optional .TSP.Reference container = 2 [deprecated = true]; +} + +message .TSD.DrawableSelectionArchive { + repeated .TSP.Reference infos = 2; + repeated .TSP.Reference non_interactive_infos = 3; +} + +message .TSD.GroupSelectionArchive { + required .TSD.DrawableSelectionArchive super = 1; + optional bool has_selected_infos_in_non_group_container = 2; +} + +message .TSD.PathSelectionArchive { +} + +message .TSD.InfoHyperlinkSelectionArchive { +} + +message .TSD.CommentStorageArchive { + optional string text = 1; + optional .TSP.Date creation_date = 2; + optional .TSP.Reference author = 3; + repeated .TSP.Reference replies = 4; + optional .TSP.UUID storage_uuid = 5; +} + +message .TSD.ReplaceAnnotationAuthorCommandArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.Reference old_annotation_author = 2; + optional .TSP.Reference new_annotation_author = 3; +} + +message .TSD.PencilAnnotationArchive { + optional .TSP.Reference pencil_annotation_storage = 1; +} + +message .TSD.PencilAnnotationSelectionArchive { + optional .TSP.Reference pencil_annotation = 1; +} + +message .TSD.PencilAnnotationStorageArchive { + optional int32 attached_location = 1; + optional .TSP.Point markup_offset = 2; + optional .TSP.DataReference rasterized_image = 3; + optional .TSP.DataReference legacy_encoded_drawing = 4; + optional .TSP.Path drawing_path = 5; + optional .TSP.Point strokes_bounding_box_origin = 6; + optional .TSP.Size strokes_bounding_box_size = 7; + optional int32 attached_type = 8; + optional .TSP.Size original_attached_size = 9; + optional double percent_of_pa_contained_in_parent_rep = 10; + optional uint64 text_baselines_touched_count = 11; + optional uint64 visible_strokes_count = 12; + optional .TSP.Color pen_color = 13; + optional int32 tool_type = 14; + repeated .TSP.Reference callout_sub_storages = 15; + optional .TSP.Date creation_date = 16; + optional double pencil_annotation_drawing_scale = 17; + optional int32 compound_annotation_type = 18; + repeated .TSP.Reference sub_storages = 19; + optional .TSP.DataReference encoded_drawing = 20; + optional .TSP.Point stroke_points_frame_origin = 21; + optional .TSP.Size stroke_points_frame_size = 22; + optional .TSP.Point rendered_frame_origin = 23; + optional .TSP.Size rendered_frame_size = 24; +} + +message .TSD.SpecColorFillSetColorArchive { + required .TSP.Color color = 1; +} + +message .TSD.SpecFrameSetAssetScaleArchive { + required double asset_scale = 1; +} + +message .TSD.SpecGradientFillSetAngleArchive { + required double angle = 1; +} + +message .TSD.SpecImageFillSetTechniqueArchive { + required int32 technique = 1; +} + +message .TSD.SpecReflectionSetOpacityArchive { + required double opacity = 1; +} + +message .TSD.SpecShadowSetAngleArchive { + required double angle = 1; +} + +message .TSD.SpecShadowSetColorArchive { + required .TSP.Color color = 1; +} + +message .TSD.SpecShadowSetOffsetArchive { + required double offset = 1; +} + +message .TSD.SpecShadowSetOpacityArchive { + required double opacity = 1; +} + +message .TSD.SpecShadowSetRadiusArchive { + required int32 radius = 1; +} + +message .TSD.SpecStrokeSetColorArchive { + required .TSP.Color color = 1; +} + +message .TSD.SpecStrokeSetPatternArchive { + optional int32 line_cap = 1; + optional int32 line_join = 2; + optional double miter_limit = 3; + optional double width = 4; + optional .TSP.Color color = 5; + required .TSD.StrokePatternArchive pattern = 6; +} + +message .TSD.SpecStrokeSetWidthArchive { + required double width = 1; +} + +message .TSD.Attribution { + optional string title = 1; + optional string description_text = 2; + optional string external_url = 3; + optional string author_name = 4; + optional string author_url = 5; +} + +message .TSD.MovieFingerprint { + repeated .TSD.MovieFingerprintTrack tracks = 1; + repeated uint32 version = 2 [packed = true]; +} + +message .TSD.MovieFingerprintTrack { + optional string media_type = 1; + optional bool enabled = 2; + optional int64 total_sample_data_length = 3; + optional string sample_data_digest_string = 4; + optional int64 time_range_start_value = 5; + optional int32 time_range_start_timescale = 6; + optional bool time_range_start_is_valid = 7; + optional int64 time_range_duration_value = 8; + optional int32 time_range_duration_timescale = 9; + optional bool time_range_duration_is_valid = 10; + optional .TSP.Size natural_size = 11; + optional double preferred_transform_a = 12; + optional double preferred_transform_b = 13; + optional double preferred_transform_c = 14; + optional double preferred_transform_d = 15; + optional double preferred_transform_tx = 16; + optional double preferred_transform_ty = 17; + optional double preferred_volume = 18; + optional string language_code = 19; + optional string extended_language_tag = 20; +} + +extend .TSS.CommandPropertyEntryArchive { + optional .TSD.FillArchive fill = 200; + optional .TSD.StrokeArchive stroke = 201; +} + + +message .TSDSOS.SpecSetFillArchive { + optional .TSD.FillArchive fill = 1; + required bool unset = 2; +} + +message .TSDSOS.SpecSetLineEndArchive { + optional .TSD.LineEndArchive line_end = 1; + required bool unset = 2; +} + +message .TSDSOS.SpecSetReflectionArchive { + optional .TSD.ReflectionArchive reflection = 1; + required bool unset = 2; +} + +message .TSDSOS.SpecSetShadowArchive { + optional .TSD.ShadowArchive shadow = 1; + required bool unset = 2; +} + +message .TSDSOS.SpecSetStrokeArchive { + optional .TSD.StrokeArchive stroke = 1; + required bool unset = 2; +} + +message .TSDSOS.SpecFillArchive { + optional .TSD.SpecColorFillSetColorArchive spec_color_fill_set_color = 1; + optional .TSD.SpecGradientFillSetAngleArchive spec_gradient_fill_set_angle = 2; + optional .TSD.SpecImageFillSetTechniqueArchive spec_image_fill_set_technique = 3; + optional .TSDSOS.SpecSetFillArchive spec_set_fill = 4; +} + +message .TSDSOS.SpecLineEndArchive { + optional .TSDSOS.SpecSetLineEndArchive spec_set_line_end = 1; +} + +message .TSDSOS.SpecReflectionArchive { + optional .TSD.SpecReflectionSetOpacityArchive spec_reflection_set_opacity = 1; + optional .TSDSOS.SpecSetReflectionArchive spec_set_reflection = 2; +} + +message .TSDSOS.SpecShadowArchive { + optional .TSDSOS.SpecSetShadowArchive spec_set_shadow = 1; + optional .TSD.SpecShadowSetAngleArchive spec_shadow_set_angle = 2; + optional .TSD.SpecShadowSetColorArchive spec_shadow_set_color = 3; + optional .TSD.SpecShadowSetOffsetArchive spec_shadow_set_offset = 4; + optional .TSD.SpecShadowSetOpacityArchive spec_shadow_set_opacity = 5; + optional .TSD.SpecShadowSetRadiusArchive spec_shadow_set_radius = 6; +} + +message .TSDSOS.SpecStrokeArchive { + optional .TSD.SpecFrameSetAssetScaleArchive spec_frame_set_asset_scale = 1; + optional .TSDSOS.SpecSetStrokeArchive spec_set_stroke = 2; + optional .TSD.SpecStrokeSetColorArchive spec_stroke_set_color = 3; + optional .TSD.SpecStrokeSetPatternArchive spec_stroke_set_pattern = 4; + optional .TSD.SpecStrokeSetWidthArchive spec_stroke_set_width = 5; +} + +message .TSDSOS.BaseShapeStylePropertyChangeSetArchive { + optional .TSDSOS.SpecFillArchive fill = 1; + optional bool fill_undefined = 2; + optional .TSDSOS.SpecStrokeArchive stroke = 3; + optional bool stroke_undefined = 4; + optional .TSSSOS.SpecDoubleArchive opacity = 5; + optional bool opacity_undefined = 6; + optional .TSDSOS.SpecShadowArchive shadow = 7; + optional bool shadow_undefined = 8; + optional .TSDSOS.SpecReflectionArchive reflection = 9; + optional bool reflection_undefined = 10; + optional .TSDSOS.SpecLineEndArchive head_line_end = 11; + optional bool head_line_end_undefined = 12; + optional .TSDSOS.SpecLineEndArchive tail_line_end = 13; + optional bool tail_line_end_undefined = 14; +} + +message .TSDSOS.MediaStylePropertyChangeSetArchive { + optional .TSDSOS.SpecStrokeArchive stroke = 1; + optional bool stroke_undefined = 2; + optional .TSSSOS.SpecDoubleArchive opacity = 3; + optional bool opacity_undefined = 4; + optional .TSDSOS.SpecShadowArchive shadow = 5; + optional bool shadow_undefined = 6; + optional .TSDSOS.SpecReflectionArchive reflection = 7; + optional bool reflection_undefined = 8; +} + + +enum .TSD.CommentCommandVariant { + BaseComment = 0; + AddReply = 1; + EditReply = 2; + DeleteReply = 3; +} + +enum .TSD.CaptionOrTitleKind { + Caption = 1; + Title = 2; +} + +message .TSD.UndoObjectArchive { + optional .TSP.Reference stylesheet = 2; + repeated .TSP.Reference objects = 1; + repeated string keys = 3; + repeated uint32 counts = 4; +} + +message .TSD.GroupDrawablesCommandArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.Reference drawables = 2; + optional .TSP.Reference group = 3; +} + +message .TSD.UngroupGroupCommandArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.Reference drawables = 2; + optional .TSP.Reference group = 3; +} + +message .TSD.ContainerRemoveChildrenCommandArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.UUIDPath container_id_path = 2; + repeated .TSK.RemoveIdOperationArgs args_list = 3; + repeated .TSP.Reference children = 4; +} + +message .TSD.ContainerRemoveDrawablesCommandArchive { + required .TSD.ContainerRemoveChildrenCommandArchive super = 1; +} + +message .TSD.ContainerInsertChildrenCommandArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.UUIDPath container_id_path = 2; + repeated .TSP.Reference children = 3; + repeated .TSK.AddIdOperationArgs args_list = 4; + repeated .TSP.UUID custom_format_keys = 5; + optional .TSP.Reference undo_object = 6; +} + +message .TSD.ContainerInsertDrawablesCommandArchive { + required .TSD.ContainerInsertChildrenCommandArchive super = 1; + repeated .TSP.Reference drawables = 2; +} + +message .TSD.ContainerReorderChildrenCommandArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.UUIDPath container_id_path = 2; + repeated .TSK.RearrangeIdOperationArgs args_list = 3; +} + +message .TSD.GroupUngroupInformativeCommandArchive { + enum CommandType { + Group = 0; + Ungroup = 1; + } + required .TSK.CommandArchive super = 1; + repeated .TSP.Reference removed_infos = 2; + repeated .TSP.Reference inserted_infos = 3; + optional .TSD.GroupUngroupInformativeCommandArchive.CommandType command_type = 4; +} + +message .TSD.InfoCommandArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.UUIDPath info_id_path = 2; +} + +message .TSD.ConnectionLineConnectCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional .TSP.UUID connected_from_id = 4; + optional .TSP.UUID connected_to_id = 5; + optional .TSP.UUID old_connected_to_id = 6; + optional .TSP.UUID old_connected_from_id = 7; +} + +message .TSD.InfoGeometryCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional .TSD.GeometryArchive newGeometry = 2; + optional .TSD.GeometryArchive oldGeometry = 3; + optional bool matchObjectPlaceholderGeometry = 4; + optional bool oldMatchObjectPlaceholderGeometry = 5; + optional bool shouldTriggerRtuAnimation = 6; + optional bool initiatedOnWeb = 7; +} + +message .TSD.DrawablePathSourceCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional .TSD.PathSourceArchive old_path_source = 2; + optional .TSD.PathSourceArchive new_path_source = 3; +} + +message .TSD.InstantAlphaCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional .TSP.Path oldpath = 2; + optional .TSP.Path newpath = 3; +} + +message .TSD.DrawableApplyThemeCommandArchive { + required .TSS.ApplyThemeChildCommandArchive super = 1; + optional .TSP.Reference info = 2; + optional .TSP.Reference style = 3; +} + +message .TSD.AbstractStyleCommandArchive { + required .TSD.InfoCommandArchive super = 1; +} + +message .TSD.StyledInfoSetStyleCommandArchive { + required .TSD.AbstractStyleCommandArchive super = 1; + optional .TSP.Reference new_style = 2; + optional .TSP.Reference rollback_style = 4; +} + +message .TSD.BaseApplyPresetCommandArchive { + required .TSD.AbstractStyleCommandArchive super = 1; + optional .TSP.Reference preset_style = 2; + optional .TSP.Reference rollback_style = 4; +} + +message .TSD.ShapeApplyPresetCommandArchive { + required .TSD.BaseApplyPresetCommandArchive super = 1; +} + +message .TSD.MediaApplyPresetCommandArchive { + required .TSD.BaseApplyPresetCommandArchive super = 1; +} + +message .TSD.ShapeStyleSetValueCommandArchive { + required .TSD.BaseStyleSetValueCommandArchive super = 1; + optional .TSDSOS.BaseShapeStylePropertyChangeSetArchive change = 4; +} + +message .TSD.BaseStyleSetValueCommandArchive { + required .TSD.AbstractStyleCommandArchive super = 1; + optional .TSP.Reference old_style = 4; + required bool is_border_change = 5; +} + +message .TSD.MovieSetValueCommandArchive { + message PropertyValue { + optional double starttime = 1; + optional double endtime = 2; + optional double postertime = 3; + optional .TSP.DataReference posterimagedata = 4; + optional bool autoplay = 5; + optional .TSD.MovieSetValueCommandArchive.LoopOption loopOption = 6; + optional float volume = 7; + optional .TSP.DataReference media = 8; + optional bool playsAcrossSlides = 9; + } + enum LoopOption { + None = 0; + Repeat = 1; + BackAndForth = 2; + } + required .TSD.InfoCommandArchive super = 1; + optional int32 property = 2; + optional .TSD.MovieSetValueCommandArchive.PropertyValue value = 3; + optional .TSD.MovieSetValueCommandArchive.PropertyValue oldValue = 4; + optional .TSP.DataReference importedauxiliarymedia = 5; + optional .TSP.DataReference oldimportedauxiliarymedia = 6; +} + +message .TSD.MediaStyleSetValueCommandArchive { + required .TSD.BaseStyleSetValueCommandArchive super = 1; + optional .TSDSOS.MediaStylePropertyChangeSetArchive change = 4; +} + +message .TSD.ImageMediaCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional .TSP.DataReference newImageData = 8; + optional .TSP.DataReference oldImageData = 9; + optional .TSP.DataReference oldOriginalImageData = 10; + optional .TSP.Size oldNaturalSize = 6; + optional .TSP.DataReference newOriginalImageData = 11; + optional .TSD.ImageAdjustmentsArchive oldImageAdjustments = 12; + optional .TSP.DataReference oldAdjustedImageData = 13; + optional .TSP.DataReference oldEnhancedImageData = 14; + optional .TSD.ImageAdjustmentsArchive imageAdjustments = 15; + optional .TSP.DataReference adjustedImageData = 16; + optional .TSP.DataReference enhancedImageData = 17; + optional .TSP.DataReference newThumbnailImageData = 18; + optional .TSP.DataReference oldThumbnailImageData = 19; + optional .TSP.DataReference thumbnailAdjustedImageData = 20; + optional .TSP.DataReference oldThumbnailAdjustedImageData = 21; + optional .TSP.Reference database_newImageData = 3; + optional .TSP.Reference database_oldImageData = 4; + optional .TSP.Reference database_oldOriginalImageData = 5; + optional .TSP.Reference database_newOriginalImageData = 7; +} + +message .TSD.MediaOriginalSizeCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional .TSP.Size newOriginalSize = 2; + optional .TSP.Size oldOriginalSize = 3; + required string propertyName = 4; +} + +message .TSD.MediaInfoGeometryCommandArchive { + required .TSD.InfoGeometryCommandArchive super = 1; + required .TSP.Size newOriginalSize = 2; + required .TSP.Size oldOriginalSize = 3; +} + +message .TSD.ImageNaturalSizeCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional .TSP.Size new_natural_size = 2; + optional .TSP.Size old_natural_size = 3; +} + +message .TSD.ImageMaskCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional .TSP.Reference newMaskInfo = 2; + optional .TSP.Reference oldMaskInfo = 3; + optional bool background_removed = 4; + optional bool old_background_removed = 5; +} + +message .TSD.ImageAdjustmentsCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional .TSD.ImageAdjustmentsArchive old_image_adjustments = 2; + optional .TSD.ImageAdjustmentsArchive new_image_adjustments = 3; + optional .TSP.DataReference adjustedImageData = 4; + optional .TSP.DataReference replacedAdjustedImageData = 5; + optional .TSP.DataReference enhancedImageData = 6; + optional .TSP.DataReference replacedEnhancedImageData = 7; + optional .TSP.DataReference thumbnailAdjustedImageData = 8; + optional .TSP.DataReference replacedThumbnailAdjustedImageData = 9; +} + +message .TSD.MediaFlagsCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional bool was_media_replaced = 5; + optional bool is_placeholder = 6; + optional bool old_was_media_replaced = 7; + optional bool old_is_placeholder = 8; + required string property_name = 4; +} + +message .TSD.DrawablesCommandGroupArchive { + enum DrawablesCommandGroupType { + Constructive = 1; + Destructive = 2; + InPlace = 3; + } + required .TSK.CommandGroupArchive super = 1; + optional .TSD.CanvasSelectionArchive obsolete_selection = 2; + optional .TSP.Reference modelforselection = 3; + optional .TSD.DrawablesCommandGroupArchive.DrawablesCommandGroupType type = 4; + optional bool forDrag = 5; + optional .TSP.Reference archivedselection = 6; +} + +message .TSD.ExteriorTextWrapCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional .TSD.ExteriorTextWrapArchive old_exterior_text_wrap = 3; + optional uint32 type = 4; + optional uint32 direction = 5; + optional uint32 fit_type = 6; + optional float margin = 7; + optional float alpha_threshold = 8; + optional bool is_html_wrap = 9; +} + +message .TSD.DrawableHyperlinkCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional string oldhyperlink_url = 2; + optional string newhyperlink_url = 3; +} + +message .TSD.CommentInvalidatingCommandSelectionBehaviorArchive { + required .TSK.CommandSelectionBehaviorArchive super = 1; + optional .TSP.Reference annotation_displaying_command = 2; + optional bool begin_editing_on_undo = 3; + optional bool begin_editing_on_redo = 4; + optional bool should_invalidate_on_undo = 5; + optional bool should_invalidate_on_redo = 6; +} + +message .TSD.ImageReplaceCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional .TSP.DataReference new_image_data = 2; + optional .TSP.DataReference new_original_image_data = 3; + optional .TSP.DataReference old_image_data = 4; + optional .TSP.DataReference old_original_image_data = 5; + optional .TSP.Path instant_alpha_path = 6; + optional .TSP.Path old_instant_alpha_path = 7; + optional .TSP.Size natural_size_for_IAPath = 8; + optional .TSP.Size old_natural_size_for_IAPath = 9; + optional .TSD.GeometryArchive target_image_geometry = 10; + optional .TSD.GeometryArchive old_target_image_geometry = 12; + optional .TSD.GeometryArchive target_mask_geometry = 13; + optional .TSD.GeometryArchive old_target_mask_geometry = 14; + optional .TSD.ImageAdjustmentsArchive image_adjustments = 15; + optional .TSP.DataReference adjusted_image_data = 16; + optional .TSP.DataReference enhanced_image_data = 17; + optional .TSD.ImageAdjustmentsArchive old_image_adjustments = 18; + optional .TSP.DataReference old_adjusted_image_data = 19; + optional .TSP.DataReference old_enhanced_image_data = 20; + optional .TSP.DataReference thumbnail_image_data = 21; + optional .TSP.DataReference old_thumbnail_image_data = 22; + optional .TSP.DataReference thumbnail_adjusted_image_data = 23; + optional .TSP.DataReference old_thumbnail_adjusted_image_data = 24; + optional .TSP.Size natural_size = 25; + optional .TSP.Size old_natural_size = 26; +} + +message .TSD.DrawableLockCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional bool locked = 2; + optional bool was_locked = 3; +} + +message .TSD.DrawableInfoCommentCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional .TSP.Reference old_comment = 2; + optional .TSP.Reference new_comment = 3; + optional .TSD.CommentCommandVariant forward_variant = 4; + optional .TSD.CommentCommandVariant inverse_variant = 5; +} + +message .TSD.DrawablePencilAnnotationCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional .TSP.Reference pencil_annotation_to_add = 2; + optional .TSP.Reference pencil_annotation_to_remove = 3; +} + +message .TSD.AbstractGuideCommandArchive { + required .TSK.CommandArchive super = 1; + repeated .TSD.UserDefinedGuideArchive old_guides = 7; + repeated .TSD.UserDefinedGuideArchive new_guides = 8; +} + +message .TSD.GuideCommandArchive { + required .TSD.AbstractGuideCommandArchive super = 1; + required .TSP.UUIDPath storage_id_path = 2; +} + +message .TSD.DrawableAspectRatioLockedCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional bool aspect_ratio_locked = 2; + optional bool was_aspect_ratio_locked = 3; +} + +message .TSD.DrawableAccessibilityDescriptionCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional string accessibility_description = 2; + optional string old_accessibility_description = 3; +} + +message .TSD.PasteStyleCommandArchive { + required .TSD.AbstractStyleCommandArchive super = 1; + optional .TSP.Reference new_style = 2; + optional .TSP.Reference rollback_style = 5; + optional bool tail_end_on_left = 4; +} + +message .TSD.ImageInfoAbstractGeometryCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional .TSD.GeometryArchive new_image_geometry = 2; + optional .TSD.GeometryArchive old_image_geometry = 3; + optional .TSD.GeometryArchive new_mask_geometry = 4; + optional .TSD.GeometryArchive old_mask_geometry = 5; + optional .TSD.PathSourceArchive new_mask_path_source = 6; + optional .TSD.PathSourceArchive old_mask_path_source = 7; + optional .TSP.Size new_image_original_size = 8; + optional .TSP.Size old_image_original_size = 9; + optional bool background_removed = 10; + optional bool old_background_removed = 11; +} + +message .TSD.ImageInfoGeometryCommandArchive { + required .TSD.ImageInfoAbstractGeometryCommandArchive super = 1; +} + +message .TSD.ImageInfoMaskGeometryCommandArchive { + required .TSD.ImageInfoAbstractGeometryCommandArchive super = 1; +} + +message .TSD.InfoCollectionSelectionTransformerHelperArchive { + repeated .TSP.UUIDPath info_uuid_path_list = 1; +} + +message .TSD.DrawableSelectionTransformerArchive { + required .TSD.InfoCollectionSelectionTransformerHelperArchive transformer_helper = 1; + required .TSP.Reference untransformed_drawable_selection = 2; +} + +message .TSD.InfoHyperlinkSelectionTransformerArchive { +} + +message .TSD.CanvasSelectionTransformerArchive { + required .TSD.InfoCollectionSelectionTransformerHelperArchive transformer_helper = 1; +} + +message .TSD.PathSelectionTransformerArchive { +} + +message .TSD.ShapeSelectionTransformerArchive { + required .TSD.DrawableSelectionTransformerArchive super = 1; +} + +message .TSD.GroupSelectionTransformerArchive { + required .TSD.DrawableSelectionTransformerArchive super = 1; +} + +message .TSD.PencilAnnotationSelectionTransformerArchive { + required .TSP.UUID pencil_annotation_uuid = 1; +} + +message .TSD.FreehandDrawingOpacityCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional double opacity = 2; + optional double old_opacity = 3; +} + +message .TSD.FreehandDrawingAnimationCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional .TSD.FreehandDrawingAnimationArchive animation = 2; + optional .TSD.FreehandDrawingAnimationArchive old_animation = 3; +} + +message .TSD.InsertCaptionOrTitleCommandArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.UUIDPath drawable_info_id_path = 2; + optional .TSP.Reference caption_or_title_info = 3; + optional .TSP.UUID added_caption_or_title_uuid = 4; + optional .TSD.CaptionOrTitleKind caption_or_title_kind = 5; + optional .TSP.Reference undo_object = 6; +} + +message .TSD.RemoveCaptionOrTitleCommandArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.UUIDPath drawable_info_id_path = 2; + optional .TSP.Reference removed_caption_or_title_info = 3; + optional .TSP.UUID removed_caption_or_title_uuid = 4; + optional .TSD.CaptionOrTitleKind caption_or_title_kind = 5; +} + +message .TSD.SetCaptionOrTitleVisibilityCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional .TSD.CaptionOrTitleKind caption_or_title_kind = 2; + optional bool hidden = 3; + optional bool was_hidden = 4; +} + + +enum .TSK.StructuredTextImportType { + ImportType_UNKNOWN = 0; + ImportType_DELIMITED = 1; + ImportType_FIXEDWIDTH = 2; +} + +message .TSK.TreeNode { + optional string name = 1; + repeated .TSP.Reference children = 2; + optional .TSP.Reference object = 3; +} + +message .TSK.LocalCommandHistoryItem { + optional .TSP.Reference command = 1; + optional .TSP.Reference behavior = 2; +} + +message .TSK.LocalCommandHistoryArray { + required .TSP.LargeArray large_array = 1; +} + +message .TSK.LocalCommandHistoryArraySegment { + required .TSP.LargeObjectArraySegment large_object_array_segment = 1; +} + +message .TSK.LocalCommandHistory { + required uint32 undo_count = 1; + optional .TSP.Reference items_array = 2; + optional bool fixed_radar_13365177 = 10; +} + +message .TSK.CollaborationCommandHistoryArray { + required .TSP.LargeArray large_array = 1; +} + +message .TSK.CollaborationCommandHistoryArraySegment { + required .TSP.LargeObjectArraySegment large_object_array_segment = 1; +} + +message .TSK.CollaborationCommandHistory { + message ItemList { + optional .TSP.Reference items_array = 1; + repeated .TSP.Reference transformer_entries = 2; + } + optional .TSP.UUID local_identifier = 1; + optional .TSK.CollaborationCommandHistory.ItemList undo_items = 2; + optional .TSK.CollaborationCommandHistory.ItemList redo_items = 3; +} + +message .TSK.CollaborationCommandHistoryItem { + optional .TSP.Reference command = 1; + optional string action_string = 2; + optional .TSP.Reference behavior = 3; + optional .TSP.Reference coalescing_group = 4; + optional uint64 revision_sequence = 5; +} + +message .TSK.CollaborationCommandHistoryCoalescingGroup { + repeated .TSP.Reference nodes = 1; + optional bool did_coalesce_all_commands = 2 [default = false]; +} + +message .TSK.CollaborationCommandHistoryCoalescingGroupNode { + optional .TSP.Reference command = 1; +} + +message .TSK.CollaborationCommandHistoryOriginatingCommandAcknowledgementObserver { + optional .TSP.Reference coalescing_group = 1; + optional .TSP.Reference node = 2; +} + +message .TSK.DocumentArchive { + optional string locale_identifier = 4; + optional .TSP.Reference annotation_author_storage = 7; + repeated .TSP.Reference activity_log_entries = 8; + optional string creation_locale_identifier = 9; + optional bool prevent_image_conversion_on_open = 10; + optional bool has_floating_locale = 11; + optional bool has_user_defined_locale = 12; + optional .TSP.Reference collaboration_operation_history = 14; + optional bool should_measure_negatively_tracked_text_correctly = 15; + optional bool use_optimized_text_vertical_alignment = 16; + optional .TSK.FormattingSymbolsArchive formatting_symbols = 17; + optional .TSP.Reference activity_stream = 199; +} + +message .TSK.FormattingSymbolsArchive { + message CurrencySymbol { + required string code = 1; + required string symbol = 2; + } + optional string version = 1; + optional string calendar = 2; + optional string numbering_system = 3; + repeated string months = 4; + repeated string standalone_months = 5; + repeated string short_months = 6; + repeated string standalone_short_months = 7; + repeated string weekdays = 8; + repeated string standalone_weekdays = 9; + repeated string short_weekdays = 10; + repeated string standalone_short_weekdays = 11; + optional string am_symbol = 12; + optional string pm_symbol = 13; + repeated string tiny_months = 14; + repeated string standalone_tiny_months = 15; + repeated string tiny_weekdays = 16; + repeated string standalone_tiny_weekdays = 17; + repeated string quarters = 18; + repeated string standalone_quarters = 19; + repeated string short_quarters = 20; + repeated string standalone_short_quarters = 21; + repeated string eras = 22; + repeated string long_eras = 23; + optional string short_date_pattern = 24; + optional string medium_date_pattern = 25; + optional string long_date_pattern = 26; + optional string full_date_pattern = 27; + optional string short_time_pattern = 28; + optional string medium_time_pattern = 29; + optional string long_time_pattern = 30; + optional string full_time_pattern = 31; + optional string decimal_separator = 32; + optional string grouping_separator = 33; + optional string currency_decimal_separator = 34; + optional string currency_grouping_separator = 35; + optional string plus_sign = 36; + optional string minus_sign = 37; + optional string exponential_symbol = 38; + optional string percent_symbol = 39; + optional string per_mille_symbol = 40; + optional string infinity_symbol = 41; + optional string nan_symbol = 42; + optional string decimal_pattern = 43; + optional string scientific_pattern = 44; + optional string percent_pattern = 45; + optional string currency_pattern = 46; + optional string currency_code = 47; + repeated .TSK.FormattingSymbolsArchive.CurrencySymbol currency_symbols = 48; +} + +message .TSK.DocumentSupportCollaborationState { + optional .TSP.Reference collaboration_command_history = 1; + optional .TSP.Reference collaboration_session_state = 2; +} + +message .TSK.DocumentSupportArchive { + optional .TSP.Reference command_history = 1; + optional uint32 undo_count = 4; + optional uint32 redo_count = 5; + optional string undo_action_string = 6; + optional string redo_action_string = 7; + optional .TSP.Reference web_state = 8; + optional bool is_in_collaboration_mode = 9 [default = false]; + optional string action_string_localization = 12; + optional .TSP.Reference collaboration_state = 13; + optional .TSP.Reference activity_notification_map = 14; + optional .TSP.Reference removed_author_auditor_pending_state = 15; + optional .TSP.Reference command_selection_behavior_history = 2 [deprecated = true]; + optional .TSP.Reference view_state = 3 [deprecated = true]; + optional .TSP.Reference collaboration_command_history = 10 [deprecated = true]; + optional .TSP.Reference collaboration_session_state = 11 [deprecated = true]; +} + +message .TSK.ViewStateArchive { + required .TSP.Reference view_state_root = 1; + optional int32 document_revision_sequence = 2; + optional string document_revision_identifier = 3; +} + +message .TSK.CommandArchive { + optional .TSP.Reference undoRedoState = 1 [deprecated = true]; + optional .TSP.Reference undoCollection = 2; + optional bool shadowed_by_transform = 3; + optional bool shadowed_by_commit = 4; + optional bool remote = 5; + optional bool should_hold_until_group_commit = 6; + optional bool server_originated = 7; +} + +message .TSK.CommandGroupArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.Reference commands = 2; + optional .TSP.IndexSet process_results = 3; + optional string action_string = 4; + optional bool can_coalesce_group = 5; +} + +message .TSK.InducedCommandCollectionArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.Reference inducing_command = 2; + repeated .TSP.Reference induced_commands = 3; + optional .TSP.IndexSet indexes_of_processed_induced_commands = 4; +} + +message .TSK.PropagatedCommandCollectionArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference propagatable_command = 2; + optional bool propagatable_command_process_result = 3 [default = false]; + required .TSP.Reference propagating_command = 4; + optional bool propagating_command_process_result = 5 [default = false]; +} + +message .TSK.FinalCommandPairArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference command = 2; + optional bool command_process_result = 3 [default = false]; + required .TSP.Reference final_command = 4; + optional bool final_command_process_result = 5 [default = false]; +} + +message .TSK.CommandContainerArchive { + repeated .TSP.Reference commands = 1; +} + +message .TSK.ProgressiveCommandGroupArchive { + required .TSK.CommandGroupArchive super = 1; +} + +message .TSK.FormatStructArchive { + optional uint32 format_type = 1; + optional uint32 decimal_places = 2; + optional string currency_code = 3; + optional uint32 negative_style = 4; + optional bool show_thousands_separator = 5; + optional bool use_accounting_style = 6; + optional uint32 duration_style = 7; + optional uint32 base = 8; + optional uint32 base_places = 9; + optional bool base_use_minus_sign = 10; + optional uint32 fraction_accuracy = 11; + optional bool suppress_date_format = 12; + optional bool suppress_time_format = 13; + optional string date_time_format = 14; + optional uint32 duration_unit_largest = 15; + optional uint32 duration_unit_smallest = 16; + optional uint32 custom_id = 17; + optional string custom_format_string = 18; + optional double scale_factor = 19; + optional bool requires_fraction_replacement = 20; + optional double control_minimum = 21; + optional double control_maximum = 22; + optional double control_increment = 23; + optional uint32 control_format_type = 24; + optional uint32 slider_orientation = 25; + optional uint32 slider_position = 26; + optional uint32 decimal_width = 27; + optional uint32 min_integer_width = 28; + optional uint32 num_nonspace_integer_digits = 29; + optional uint32 num_nonspace_decimal_digits = 30; + optional uint32 index_from_right_last_integer = 31; + repeated string interstitial_strings = 32; + optional .TSP.IndexSet inters_str_insertion_indexes = 33; + optional uint32 num_hash_decimal_digits = 34; + optional uint32 total_num_decimal_digits = 35; + optional bool is_complex = 36; + optional bool contains_integer_token = 37; + optional uint32 multiple_choice_list_initial_value = 38; + optional uint32 multiple_choice_list_id = 39; + optional bool use_automatic_duration_units = 40; + optional .TSP.UUID custom_uid = 41; + optional .TSK.CustomFormatArchive custom_format = 42; + optional bool uses_plus_sign = 43; + optional string bool_true_string = 44; + optional string bool_false_string = 45; + extensions 10000 to 19999; +} + +message .TSK.CustomFormatArchive { + message Condition { + required uint32 condition_type = 1; + optional float condition_value = 2; + required .TSK.FormatStructArchive condition_format = 3; + optional double condition_value_dbl = 4; + } + required string name = 1; + required uint32 format_type_pre_bnc = 2; + required .TSK.FormatStructArchive default_format = 3; + repeated .TSK.CustomFormatArchive.Condition conditions = 4; + optional uint32 format_type = 5; +} + +message .TSK.CustomFormatListArchive { + repeated .TSP.UUID uuids = 1; + repeated .TSK.CustomFormatArchive custom_formats = 2; +} + +message .TSK.AnnotationAuthorArchive { + optional string name = 1; + optional .TSP.Color color = 2; + optional string public_id = 3; + optional bool is_public_author = 4; + repeated string public_ids = 5; +} + +message .TSK.DeprecatedChangeAuthorArchive { + optional string name = 1; + optional .TSP.Color change_color = 2; +} + +message .TSK.AnnotationAuthorStorageArchive { + repeated .TSP.Reference annotation_author = 1; +} + +message .TSK.SetAnnotationAuthorColorCommandArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.Reference annotation_author = 2; + optional .TSP.Color color = 3; + optional .TSP.Color old_color = 4; +} + +message .TSK.SetActivityAuthorShareParticipantIDCommandArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.Reference activity_author = 2; + optional string share_participant_id = 3; + optional string old_share_participant_id = 4; +} + +message .TSK.CommandBehaviorSelectionPathStorageArchive { + optional .TSK.SelectionPathArchive archived_selection = 1; + optional .TSK.SelectionPathArchive archived_old_selection = 2; + optional .TSK.SelectionPathArchive archived_new_selection = 3; + optional .TSP.Reference forward_selection_path_transformer = 4; + optional .TSP.Reference reverse_selection_path_transformer = 5; +} + +message .TSK.CommandBehaviorArchive { + optional .TSP.Reference selection_behavior = 1; + optional .TSP.Reference activity_behavior = 2; +} + +message .TSK.CommandSelectionBehaviorArchive { + optional .TSP.Reference selection_path_storage = 1; + optional uint64 selection_flags = 2; + optional uint64 additional_forward_selection_flags = 3; + optional uint64 additional_reverse_selection_flags = 4; + repeated .TSP.Reference additional_selection_behaviors = 5; +} + +message .TSK.SelectionPathTransformerArchive { + repeated .TSP.Reference selection_transformers = 1; +} + +message .TSK.SelectionPathArchive { + repeated .TSP.Reference ordered_selections = 1; +} + +message .TSK.DocumentSelectionArchive { + optional .TSP.Reference document_root = 1; +} + +message .TSK.IdOperationArgs { + required .TSP.UUIDPath id_path = 1; +} + +message .TSK.AddIdOperationArgs { + required .TSK.IdOperationArgs super = 1; + required int32 index = 2; +} + +message .TSK.RemoveIdOperationArgs { + required .TSK.IdOperationArgs super = 1; + required int32 index = 2; +} + +message .TSK.RearrangeIdOperationArgs { + required .TSK.IdOperationArgs super = 1; + required int32 from_index = 2; + required int32 to_index = 3; +} + +message .TSK.IdPlacementOperationArgs { + required .TSK.IdOperationArgs super = 1; + required int32 from_index = 2; + required int32 to_index = 3; +} + +message .TSK.NullCommandArchive { + required .TSK.CommandArchive super = 1; +} + +message .TSK.GroupCommitCommandArchive { + required .TSK.CommandArchive super = 1; + optional bool can_coalesce_group = 2; +} + +message .TSK.UpgradeDocPostProcessingCommandArchive { + required .TSK.CommandArchive super = 1; +} + +message .TSK.InducedCommandCollectionCommitCommandArchive { + required .TSK.CommandArchive super = 1; +} + +message .TSK.ActivityCommitCommandArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.Reference activity = 2; + optional .TSP.Reference author = 3; + optional bool was_activity_committed = 4 [default = true]; +} + +message .TSK.ExecuteTestBetweenRollbackAndReapplyCommandArchive { + required .TSK.CommandArchive super = 1; +} + +message .TSK.ChangeDocumentPackageTypeCommandArchive { + enum PackageType { + Default = 0; + Directory = 1; + SingleFile = 2; + } + required .TSK.CommandArchive super = 1; + required .TSK.ChangeDocumentPackageTypeCommandArchive.PackageType new_package_type = 2; + required .TSK.ChangeDocumentPackageTypeCommandArchive.PackageType old_package_type = 3; +} + +message .TSK.CreateLocalStorageSnapshotCommandArchive { + required .TSK.CommandArchive super = 1; + optional string snapshot_id = 2; +} + +message .TSK.BlockDiffsAtCurrentRevisionCommand { + required .TSK.CommandArchive super = 1; +} + +message .TSK.RangeAddress { + repeated uint64 address_identifier = 1; + repeated uint32 range_list = 2; +} + +message .TSK.Operation { + enum OperationType { + Add = 0; + Remove = 1; + Placement = 2; + Rearrange = 3; + UpdateId = 4; + UpdateRange = 5; + ReplaceRange = 6; + } + optional .TSK.Operation.OperationType type = 1 [default = ReplaceRange]; + optional bool noop = 2 [default = false]; + repeated fixed64 address_identifier = 3 [packed = true]; + optional uint64 insert_length = 4 [default = 1]; + optional bool preserve_lower_priority_location = 5 [default = false]; + repeated uint32 range_list = 6 [packed = true]; + optional uint32 transform_behavior = 7 [default = 7]; + optional uint32 property_id = 8; + optional int32 from_index = 9 [default = -1]; + optional int32 to_index = 10 [default = -1]; + optional bool dominating = 11 [default = false]; + optional int32 object_count = 12 [default = -1]; + optional int32 object_counter_space = 13 [default = 0]; +} + +message .TSK.OperationTransformer { + required bool higher_priority = 1; + repeated .TSK.Operation operations = 2; +} + +message .TSK.TransformerEntry { + required uint64 sequence = 1; + required double creation_time = 2; + required .TSK.OperationTransformer transformer = 3; +} + +message .TSK.OutgoingCommandQueueItem { + optional .TSP.Reference command = 1; + optional string serialized_json_without_data_base64_encoded_string = 2; + optional .TSP.DataReference serialized_json_without_data_base64_encoded_data = 4; + repeated .TSK.OutgoingCommandQueueItemUUIDToDataMapEntry uuid_to_data_map_entries = 3; + repeated .TSP.DataReference large_data_list = 5; +} + +message .TSK.OutgoingCommandQueueItemUUIDToDataMapEntry { + required .TSP.UUID uuid = 1; + required .TSP.DataReference data = 2; +} + +message .TSK.CollaborationAppliedCommandDocumentRevisionMapping { + optional .TSP.Reference command = 1; + optional .TSP.UUID document_revision_identifier = 2; + optional int32 document_revision_sequence = 3; + repeated .TSK.Operation remaining_command_operations = 4; + optional .TSP.Date timestamp = 5; +} + +message .TSK.CollaborationDocumentSessionState { + message AcknowledgementObserverEntry { + required .TSP.UUID command_identifier = 1; + repeated .TSP.Reference acknowledgement_observers = 2; + } + repeated string collaborator_ids = 1; + repeated .TSP.Reference rsvp_command_queue_items = 3; + repeated .TSP.Reference collaborator_cursor_transformer_entries = 4; + repeated .TSP.Reference acknowledged_commands_pending_resume_process_diffs = 5; + repeated .TSP.Reference unprocessed_commands_pending_resume_process_diffs = 6; + repeated .TSK.CollaborationDocumentSessionState.AcknowledgementObserverEntry command_acknowledgement_observer_entries = 7; + repeated .TSP.Reference transformer_from_unprocessed_command_operations_entries = 8; + optional int32 mailbox_request_document_revision_sequence = 10; + optional .TSP.UUID mailbox_request_document_revision_identifier = 11; + optional bool last_send_pending_command_queue_item_was_moved_from_rsvp_command_queue = 12 [default = false]; + optional int32 last_command_send_marker_sequence = 13; + optional .TSP.UUID last_command_send_marker_identifier = 14; + repeated .TSP.Reference skipped_acknowledged_commands_pending_resume_process_diffs = 15; + optional .TSP.UUID last_too_old_command_identifier = 16; + optional .TSP.Reference unprocessed_operation_entries_pending_resume_process_diffs = 17; + optional .TSP.Reference send_pending_command_queue = 18; + optional uint64 count_of_send_pending_command_queue_items_moved_from_rsvp_queue = 19 [default = 0]; + optional .TSP.UUID last_enqueued_document_load_command_identifier = 20; + repeated .TSK.CollaborationAppliedCommandDocumentRevisionMapping applied_command_document_revision_mappings_to_notify_pending_resume_process_diffs = 21; + optional uint64 count_of_command_queue_items_in_last_outgoing_command_group = 22 [default = 0]; +} + +message .TSK.NativeContentDescription { + optional string app_name = 1; + optional string app_version = 2; + optional string document_id = 3; + repeated .TSP.Reference drawable_descriptions = 4; +} + +message .TSK.StructuredTextImportSettings { + required .TSK.StructuredTextImportType type = 1; + required int32 starting_row = 2; + repeated string decimal_separators = 3; + repeated string thousands_separators = 4; + optional bool transpose_rows_and_columns = 5; + repeated string delimiters = 6; + repeated string text_qualifiers = 7; + optional bool collapse_consecutive = 8; + optional .TSP.IndexSet column_offsets = 9; + optional bool automatic_delimiters = 10; + optional bool automatic_offsets = 11; + optional uint64 source_encoding = 12; +} + +message .TSK.OperationStorageCommandOperationsEntry { + optional bool command_identifier_same_as_revision_identifier = 1; + repeated fixed64 command_identifier = 2 [packed = true]; + repeated .TSK.Operation operations = 3; + optional bool server_originated = 4; + optional uint64 coalesced_command_entry_count = 5; +} + +message .TSK.OperationStorageEntry { + repeated fixed64 document_revision_identifier = 1 [packed = true]; + optional int32 document_revision_sequence_delta = 2; + repeated .TSK.OperationStorageCommandOperationsEntry command_operation_entries = 3; + optional double first_entry_creation_time = 4; + optional int32 creation_time_diff_bucket = 5; + repeated uint32 file_format_version = 6 [packed = true]; +} + +message .TSK.OperationStorageEntryArray { + optional .TSP.LargeArray large_array = 1; +} + +message .TSK.OperationStorageEntryArraySegment { + optional .TSP.LargeArraySegment large_array_segment = 1; + repeated .TSK.OperationStorageEntry elements = 2; + optional int32 last_document_revision_sequence_before_segment = 3; + optional int32 last_document_revision_sequence = 4; + optional double segment_first_entry_creation_time = 5; +} + +message .TSK.OperationStorage { + required .TSP.Reference entries = 1; + required uint64 operation_count = 2; + optional int32 last_document_revision_sequence = 3; + repeated fixed64 last_document_revision_identifier = 4 [packed = true]; + optional int32 last_unskippable_document_revision_before_entries_sequence = 5; + repeated fixed64 last_unskippable_document_revision_before_entries_identifier = 6 [packed = true]; + optional int32 last_unskippable_document_revision_in_entries_sequence = 7; + repeated fixed64 last_unskippable_document_revision_in_entries_identifier = 8 [packed = true]; + optional .TSP.IndexSet days_with_an_entry = 9; +} + +message .TSK.OutgoingCommandQueue { + optional .TSP.LargeObjectArray large_object_array = 1; +} + +message .TSK.OutgoingCommandQueueSegment { + optional .TSP.LargeObjectArraySegment large_object_array_segment = 1; +} + +message .TSK.DataReferenceRecord { + message ContainerUUIDToReferencedDataPair { + required .TSP.UUID container_uuid = 1; + required .TSP.DataReference referenced_data = 2; + required uint32 reference_count = 3; + } + repeated .TSK.DataReferenceRecord.ContainerUUIDToReferencedDataPair added_container_uuid_to_referenced_data_pairs = 1; + repeated .TSK.DataReferenceRecord.ContainerUUIDToReferencedDataPair removed_container_uuid_to_referenced_data_pairs = 2; + repeated .TSP.DataReference unbounded_referenced_datas = 3; +} + +message .TSK.CommandAssetChunkArchive { + required .TSK.CommandArchive super = 1; + optional string digest = 2; + optional string asset_chunk = 3; + required int64 asset_chunk_length = 4; + required int64 resume_position = 5; + required int64 materialized_length = 6; +} + +message .TSK.AssetUploadStatusCommandArchive { + message AssetUploadStatusInfo { + optional string digest = 1; + optional .TSP.DataUploadStatus upload_status = 2; + } + required .TSK.CommandArchive super = 1; + repeated .TSK.AssetUploadStatusCommandArchive.AssetUploadStatusInfo info_list = 2; +} + +message .TSK.AssetUnmaterializedOnServerCommandArchive { + required .TSK.CommandArchive super = 1; + repeated string digest_list = 2; +} + +message .TSK.PencilAnnotationUIState { + enum PencilAnnotationToolType { + Pen = 0; + Highlighter = 1; + } + optional .TSK.PencilAnnotationUIState.PencilAnnotationToolType current_tool_type = 1 [default = Pen]; + optional .TSP.Color pen_tool_color = 2; + optional float pen_tool_opacity = 3; + optional float pen_tool_width = 4; + optional .TSP.Color highlighter_tool_color = 5; + optional float highlighter_tool_opacity = 6; + optional float highlighter_tool_width = 7; +} + +message .TSK.CollaboratorCursorArchive { + optional .TSP.UUIDPath id_path = 1; + extensions 100 to 999; +} + +message .TSK.ActivityStreamArchive { + optional .TSP.Reference acknowledged_activity_array = 1; + optional .TSP.Reference unacknowledged_local_activity_array = 2; + optional .TSP.Reference author_cache = 3; + optional .TSP.Reference unacknowledged_remote_activity_array = 5; + optional bool did_upgrade_comments_to_activities = 6; + optional .TSK.ActivityStreamTransformationStateArchive activity_stream_transformation_state = 15; + optional .TSK.ActivityStreamActivityCounterArchive activity_counter = 16; +} + +message .TSK.ActivityStreamActivityArray { + optional .TSP.LargeObjectArray large_array = 1; +} + +message .TSK.ActivityStreamActivityArraySegment { + optional .TSP.LargeObjectArraySegment large_array_segment = 1; +} + +message .TSK.ActivityArchive { + repeated .TSP.Reference cursor_collection_persistence_wrappers = 1; + optional .TSP.UUID author_identifier = 2; + optional int32 nondirectional_action_type = 3; + optional int32 direction = 4; + optional bool should_send_notification = 5; + optional .TSP.Date timestamp = 6; + optional int32 revision_sequence = 7; + optional .TSK.ActivityNavigationInfoArchive additional_navigation_info = 8; + optional bool did_prepare_serialized_string_on_server = 9; + optional int32 oldest_revision_sequence_of_next_activities = 10; + optional int32 action_sub_type = 11 [default = 0]; + repeated uint32 min_updatable_version = 12 [packed = true]; +} + +message .TSK.ActivityAuthorArchive { + optional string name = 1; + optional .TSP.Color color = 2; + repeated string public_ids = 3; + optional bool is_public_author = 4; + optional string share_participant_id = 5; +} + +message .TSK.CommandActivityBehaviorArchive { + enum ActionType { + Unknown = 0; + FirstJoin = 1; + Add = 2; + Modify = 3; + Comment = 4; + Reply = 5; + Paste = 6; + Password = 7; + Restore = 8; + Remove = 9; + EditText = 10; + Group = 11; + Ungroup = 12; + Replace = 13; + } + enum ActionSubType { + None = 0; + FilterTable = 1; + SortTable = 2; + CategorizeTable = 3; + ChangeTemplateSlide = 4; + ChangeChartType = 5; + MoveDrawable = 6; + ResizeDrawable = 7; + AddOrRemovePage = 8; + Hyperlink = 9; + SkipSlide = 10; + UnskipSlide = 11; + ChangeBackground = 12; + ChangePageTemplate = 13; + InsertPageNumber = 14; + RefreshPivotTable = 15; + AddPassword = 16; + ChangePassword = 17; + RemovePassword = 18; + Bookmark = 19; + Equation = 20; + SectionBreak = 21; + MoveColumn = 22; + LinkTextbox = 23; + NewTextboxThread = 24; + ChangeTextboxThread = 25; + ConditionalHighlightTableCell = 26; + DataFormatTableCell = 27; + } + repeated .TSP.Reference selection_path_storages = 1; + optional .TSK.CommandActivityBehaviorArchive.ActionType action_type = 2; + optional bool should_send_notification = 3; + optional .TSK.ActivityNavigationInfoArchive additional_navigation_info = 4; + optional .TSK.CommandActivityBehaviorArchive.ActionSubType action_sub_type = 5 [default = None]; +} + +message .TSK.ActivityCursorCollectionArchive { + repeated .TSK.CollaboratorCursorArchive id_cursors = 1; + optional .TSK.CollaboratorCursorArchive text_cursor = 2; + optional .TSK.CollaboratorCursorArchive table_cursor = 3; + optional .TSK.CollaboratorCursorArchive cde_cursor = 4; + optional .TSK.CollaboratorCursorArchive chart_title_cursor = 5; + optional .TSK.CollaboratorCursorArchive gallery_item_cursor = 6; +} + +message .TSK.ActivityCursorCollectionPersistenceWrapperArchive { + optional .TSK.ActivityCursorCollectionArchive activity_cursor_collection = 1; +} + +message .TSK.ActivityNavigationInfoArchive { + extensions 100 to 999; +} + +message .TSK.CommentActivityNavigationInfoArchive { + required string comment_id = 1; + required .TSP.UUID parent_uuid = 2; + required .TSP.UUID storage_uuid = 3; + extend .TSK.ActivityNavigationInfoArchive { + optional .TSK.CommentActivityNavigationInfoArchive comment_activity_navigation_info = 100; + } +} + +message .TSK.ActivityAuthorCacheArchive { + message ShareParticipantIDCache { + required .TSP.UUID identifier = 1; + required string share_participant_id = 2; + } + message PublicIDCache { + required .TSP.UUID identifier = 1; + required string public_identifier = 2; + } + message IndexCache { + required .TSP.UUID identifier = 1; + required uint64 author_index = 2; + } + message FirstJoinCache { + required .TSP.UUID identifier = 1; + optional .TSP.Date first_join_date = 2; + } + repeated .TSK.ActivityAuthorCacheArchive.ShareParticipantIDCache share_participant_id_cache = 1; + repeated .TSK.ActivityAuthorCacheArchive.PublicIDCache fallback_public_id_cache = 3; + repeated .TSK.ActivityAuthorCacheArchive.IndexCache index_cache = 4; + repeated .TSK.ActivityAuthorCacheArchive.FirstJoinCache first_join_cache = 5; + repeated .TSP.Reference authors = 6; + optional .TSP.Date last_audit_date = 7; + repeated .TSP.UUID author_identifiers_to_remove = 8; +} + +message .TSK.ActivityOnlyCommandArchive { + required .TSK.CommandArchive super = 1; +} + +message .TSK.ActivityNotificationItemArchive { + required int32 type = 1; + required .TSP.UUID unique_identifier = 2; + repeated .TSP.Reference activities = 3; + optional .TSP.Date first_timestamp = 4; +} + +message .TSK.ActivityNotificationParticipantCacheArchive { + message UniqueIdentifierAndAttempts { + required .TSP.UUID unique_identifier = 1; + required uint32 attempts = 2; + } + repeated .TSP.Reference notification_items = 1; + optional .TSP.Date last_edit_notification_item_sent_date = 2; + repeated .TSK.ActivityNotificationParticipantCacheArchive.UniqueIdentifierAndAttempts sender_failed_to_enqueue_attempts = 3; + required string private_id = 4; + optional .TSP.Date last_comment_notification_item_sent_date = 5; +} + +message .TSK.ActivityNotificationQueueArchive { + repeated .TSP.Reference unprocessed_notification_items = 1; + repeated .TSP.Reference pending_participant_caches = 3; + repeated .TSP.Reference sent_participant_caches = 5; +} + +message .TSK.ActivityStreamTransformationStateArchive { + enum ActionType { + Trasnform = 0; + Coalesce = 1; + } + required int32 next_activity_to_transform_index = 1; + optional int32 oldest_revision_sequence_after_transformed = 2; + optional .TSP.Date last_activity_coalesced_date = 3; + optional .TSK.ActivityStreamTransformationStateArchive.ActionType action_type = 4; + optional int32 transform_to_document_revision_sequence = 5; + repeated fixed64 transform_to_document_revision_identifier = 6 [packed = true]; + optional double timestamp_of_last_activity_when_last_activity_coalescing = 7; + optional bool preserving_revision_sequence_order = 8; +} + +message .TSK.ActivityStreamActivityCounterArchive { + message ActionTypeCounter { + optional int32 action_type = 1; + optional uint32 count = 2; + } + message CursorTypeCounter { + optional int32 cursor_type = 1; + optional uint32 count = 2; + } + repeated .TSK.ActivityStreamActivityCounterArchive.ActionTypeCounter action_type_counter = 1; + repeated .TSK.ActivityStreamActivityCounterArchive.CursorTypeCounter cursor_type_counter = 2; +} + +message .TSK.ActivityStreamRemovedAuthorAuditorPendingStateArchive { + message DateToAuditAndType { + required .TSP.Date date_to_audit = 1; + required int32 type = 2; + } + repeated .TSP.UUID current_author_identifiers = 1; + repeated .TSK.ActivityStreamRemovedAuthorAuditorPendingStateArchive.DateToAuditAndType dates_to_audit = 3; +} + + +message .TSKSOS.FixCorruptedDataCommandArchive { + required .TSK.CommandArchive super = 1; + repeated string corrupted_digest_list = 2; + optional bool corrupted_digest_list_undefined = 3; +} + +message .TSKSOS.RemoveAuthorIdentifiersCommandArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.UUID author_identifiers = 2; + optional bool author_identifiers_undefined = 3; +} + +message .TSKSOS.ResetActivityStreamCommandArchive { + required .TSK.CommandArchive super = 1; +} + + +enum .TSA.GalleryInfoCaptionMode { + GalleryInfoCaptionModeNone = 0; + GalleryInfoCaptionModePerImage = 1; + GalleryInfoCaptionModeAllImages = 2; +} + +enum .TSA.GalleryInfoProperty { + GalleryInfoCaptionProperty = 0; +} + +enum .TSA.GalleryCaptionMode { + GalleryCaptionModeNone = 0; + GalleryCaptionModePerImage = 1; + GalleryCaptionModeAllImages = 2; +} + +enum .TSA.GalleryItemProperty { + GalleryItemPropertyImageData = 0; + GalleryItemPropertyThumbnailImageData = 1; + GalleryItemPropertyAccessibilityDescription = 2; +} + +message .TSA.DocumentArchive { + required .TSK.DocumentArchive super = 1; + repeated .TSWP.TextPresetDisplayItemArchive text_preset_display_items = 2; + optional string document_language = 3; + optional .TSP.Reference calculation_engine = 4; + optional .TSP.Reference view_state = 5; + optional .TSP.Reference function_browser_state = 6; + optional .TSP.Reference tables_custom_format_list = 7; + optional bool needs_media_compatibility_upgrade = 8; + optional string template_identifier = 9; + optional .TSP.Reference shortcut_controller = 10; + optional .TSP.Reference annotation_cache_deprecated = 11; + optional .TSP.Reference custom_format_list = 12; + optional .TSP.Reference annotation_cache_deprecated_2 = 13; + optional bool collaborative_media_compatibility_upgrade_did_fail = 14; + optional bool can_use_hevc = 15; + optional bool is_content_source = 16; +} + +message .TSA.FunctionBrowserStateArchive { + repeated uint32 recent_functions = 1; + repeated uint32 back_functions = 2; + repeated uint32 forward_functions = 3; + optional uint32 current_function = 4; +} + +message .TSA.ThemePresetsArchive { + repeated .TSP.Reference caption_style_presets = 1; + extend .TSS.ThemeArchive { + optional .TSA.ThemePresetsArchive extension = 210; + } +} + +message .TSA.ShortcutControllerArchive { + message ShortcutMapEntry { + required string shortcut = 1; + required .TSP.Reference style = 2; + } + repeated .TSA.ShortcutControllerArchive.ShortcutMapEntry entries = 1; +} + +message .TSA.PropagatePresetCommandArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference preset_change_command = 2; + required bool always_preserve_appearance = 3; +} + +message .TSA.ShortcutCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSP.Reference old_style = 2; + optional .TSP.Reference new_style = 3; + optional string old_shortcut = 4; + optional string new_shortcut = 5; +} + +message .TSA.AddCustomFormatCommandArchive { + required .TSK.CommandArchive super = 1; + optional .TSK.CustomFormatArchive custom_format = 2; + optional .TSP.UUID custom_format_key = 3; +} + +message .TSA.UpdateCustomFormatCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSK.CustomFormatArchive custom_format = 2; + optional .TSK.CustomFormatArchive old_custom_format = 3; + optional .TSP.UUID custom_format_key = 4; +} + +message .TSA.ReplaceCustomFormatCommandArchive { + optional .TSK.CommandArchive super = 1; + optional .TSK.CustomFormatArchive custom_format = 2; + optional .TSP.UUID custom_format_key = 3; + optional .TSK.FormatStructArchive replacement_format = 4; +} + +message .TSA.NeedsMediaCompatibilityUpgradeCommandArchive { + required .TSK.CommandArchive super = 1; + optional bool needs_media_compatibility_upgrade = 2; + optional bool old_needs_media_compatibility_upgrade = 3; + optional bool collaborative_media_compatibility_upgrade_did_fail = 4; + optional bool old_collaborative_media_compatibility_upgrade_did_fail = 5; + optional bool can_use_hevc = 6; + optional bool old_can_use_hevc = 7; +} + +message .TSA.ChangeDocumentLocaleCommandArchive { + optional .TSK.CommandArchive super = 1; + optional string old_locale_id = 2; + optional string new_locale_id = 3; + optional .TSK.FormattingSymbolsArchive old_formatting_symbols = 4; + optional .TSK.FormattingSymbolsArchive new_formatting_symbols = 5; +} + +message .TSA.InducedVerifyObjectsWithServerCommandArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.UUID object_id_list = 2; + optional bool object_id_list_undefined = 3; + repeated string server_object_s_o_s_string_list = 4; + optional bool server_object_s_o_s_string_list_undefined = 5; + required bool pending_recalc = 6; + required double remote_data_sync_key = 7; +} + +message .TSA.InducedVerifyTransformHistoryWithServerCommandArchive { + required .TSK.CommandArchive super = 1; + repeated .TSK.OperationStorageEntry server_operation_storage_entries = 2; + optional bool server_operation_storage_entries_undefined = 3; +} + +message .TSA.StyleUpdatePropertyMapCommandArchive { + optional .TSWP.StyleUpdatePropertyMapCommandArchive super = 1; +} + +message .TSA.RemoteDataChangeCommandArchive { + required .TSK.CommandArchive super = 1; + required .TSCE.RemoteDataValueMapArchive value_map = 2; + repeated .TSCE.StockArchive quotes = 3; + required double remote_data_sync_key = 4; +} + +message .TSA.GalleryInfoSetValueCommandArchive { + message PropertyValue { + optional .TSA.GalleryInfoCaptionMode caption_mode = 1; + } + required .TSK.CommandArchive super = 1; + optional .TSP.UUIDPath info_id_path = 2; + optional .TSA.GalleryInfoProperty property = 3; + optional .TSA.GalleryInfoSetValueCommandArchive.PropertyValue value = 4; + optional .TSA.GalleryInfoSetValueCommandArchive.PropertyValue old_value = 5; +} + +message .TSA.GalleryInfoInsertItemsCommandArchive { + required .TSD.ContainerInsertChildrenCommandArchive super = 1; + repeated .TSP.Reference items = 2; +} + +message .TSA.GalleryInfoRemoveItemsCommandArchive { + required .TSD.ContainerRemoveChildrenCommandArchive super = 1; +} + +message .TSA.GalleryItemSetGeometryCommand { + required .TSK.CommandArchive super = 1; + optional .TSP.UUIDPath item_id_path = 2; + optional .TSP.Point offset = 3; + optional float scale = 4 [default = 1]; + optional .TSP.Point old_offset = 5; + optional float old_scale = 6; +} + +message .TSA.GalleryItem { + optional .TSP.Point offset = 1; + optional float scale = 2; + optional .TSP.DataReference image_data = 3; + optional .TSP.DataReference thumbnail_image_data = 4; + optional .TSD.ImageAdjustmentsArchive image_adjustments = 5; + optional .TSP.DataReference adjusted_image_data = 6; + optional .TSP.DataReference thumbnail_adjusted_image_data = 7; + optional .TSP.Reference caption_storage = 8; + optional string accessibility_description = 9; +} + +message .TSA.GalleryInfo { + repeated .TSP.Reference items = 1; + optional .TSA.GalleryCaptionMode caption_mode = 2; + optional .TSP.Reference caption_storage = 3; + extend .TSD.ImageArchive { + optional .TSA.GalleryInfo gallery_info = 200; + } +} + +message .TSA.GallerySelectionTransformer { + required .TSD.DrawableSelectionTransformerArchive super = 1; + optional .TSP.UUIDPath gallery_uuid_path = 2; + optional .TSP.UUIDPath caption_storage_uuid_path = 3; +} + +message .TSA.GalleryItemSelection { + optional .TSP.Reference displayed_item = 1; + repeated .TSP.Reference items = 2; +} + +message .TSA.GalleryItemSelectionTransformer { + optional .TSA.GalleryItemSelectionTransformerHelper transformer_helper = 1; + optional .TSP.UUIDPath caption_storage_uuid_path = 2; +} + +message .TSA.GalleryItemSelectionTransformerHelper { + optional .TSP.UUIDPath displayed_item_uuid_path = 1; + repeated .TSP.UUIDPath item_uuid_paths = 2; +} + +message .TSA.GalleryItemSetValueCommand { + message PropertyValue { + optional .TSP.DataReference image_data = 1; + optional string accessibility_description = 2; + } + required .TSK.CommandArchive super = 1; + optional .TSP.UUIDPath item_id_path = 2; + optional .TSA.GalleryItemProperty property = 3; + optional .TSA.GalleryItemSetValueCommand.PropertyValue value = 4; + optional .TSA.GalleryItemSetValueCommand.PropertyValue old_value = 5; +} + +message .TSA.CollaboratorGalleryItemCursor { + optional .TSP.UUID displayed_item_id = 1; + repeated .TSP.UUID item_ids = 2; + extend .TSK.CollaboratorCursorArchive { + optional .TSA.CollaboratorGalleryItemCursor gallery_item_cursor = 400; + } +} + +message .TSA.WebVideoInfo { + optional string url = 1; + optional .TSP.DataReference poster_image_data = 2; + optional .TSD.Attribution attribution = 3; + extend .TSD.ImageArchive { + optional .TSA.WebVideoInfo web_video_info = 300; + } +} + +message .TSA.CaptionPlacementArchive { + optional int32 caption_anchor_location = 1; + optional int32 drawable_anchor_location = 2; +} + +message .TSA.CaptionInfoArchive { + required .TSWP.ShapeInfoArchive super = 1; + optional .TSP.Reference placement = 2; + optional .TSD.CaptionOrTitleKind childInfoKind = 3; +} + +message .TSA.TitlePlacementCommandArchive { + required .TSD.InfoCommandArchive super = 1; + optional .TSD.CaptionOrTitleKind placing_child_info_kind = 2; + optional .TSP.Reference placement = 3; + optional .TSP.Reference old_placement = 4; +} + + +message .TSASOS.InducedVerifyActivityStreamWithServerCommandArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.Reference server_activities = 2; + optional bool server_activities_undefined = 3; + required double timestamp_of_last_activity_when_last_activity_coalescing = 4; + required int32 next_activity_to_transform_index = 5; + repeated .TSP.UUID author_identifiers_to_verify = 6; + optional bool author_identifiers_to_verify_undefined = 7; +} + +message .TSASOS.DrawableZOrderListArchive { + optional .TSP.UUID container_id = 1; + repeated .TSP.UUID drawable_id_list = 2; + optional bool drawable_id_list_undefined = 3; +} + + +message .TSASOS.InducedVerifyDrawableZOrdersWithServerCommandArchive { + required .TSK.CommandArchive super = 1; + repeated .TSASOS.DrawableZOrderListArchive server_drawable_z_order_lists = 2; + optional bool server_drawable_z_order_lists_undefined = 3; +} + +message .TSASOS.PropagateMasterChangeCommandArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.UUID uuids_of_previously_visited_objects = 2; + optional bool uuids_of_previously_visited_objects_undefined = 3; +} + +message .TSASOS.CommandReapplyMasterArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.UUID items_to_visit = 2; + optional bool items_to_visit_undefined = 3; + required bool is_undo = 4; +} + +message .TSASOS.VerifyActivityStreamWithServerCommandArchive { + required .TSK.CommandArchive super = 1; +} + +message .TSASOS.VerifyDocumentWithServerCommandArchive { + required .TSK.CommandArchive super = 1; +} + +message .TSASOS.VerifyDrawableZOrdersWithServerCommandArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.UUID drawable_id_list = 2; + optional bool drawable_id_list_undefined = 3; +} + +message .TSASOS.VerifyObjectsWithServerCommandArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.UUID object_id_list = 2; + optional bool object_id_list_undefined = 3; +} + +message .TSASOS.VerifyTransformHistoryWithServerCommandArchive { + required .TSK.CommandArchive super = 1; + required int32 sequence_start = 2; + required int32 sequence_end = 3; +} + + +enum .TSP.DataUploadStatus { + DataUploadStatus_Pending = 0; + DataUploadStatus_Reserved = 1; + DataUploadStatus_UnableToReserve = 2; + DataUploadStatus_Corrupted = 3; + DataUploadStatus_DocumentMayExceedDocumentSizeLimit = 4; + DataUploadStatus_Expired = 5; +} + +message .TSP.Reference { + required uint64 identifier = 1; + optional int32 deprecated_type = 2; + optional bool deprecated_is_external = 3; +} + +message .TSP.DataReference { + required uint64 identifier = 1; +} + +message .TSP.SparseReferenceArray { + message Entry { + required uint32 index = 1; + required .TSP.Reference reference = 2; + } + required uint32 count = 1; + repeated .TSP.SparseReferenceArray.Entry entries = 2; +} + +message .TSP.Point { + required float x = 1; + required float y = 2; +} + +message .TSP.Size { + required float width = 1; + required float height = 2; +} + +message .TSP.Range { + required uint32 location = 1; + required uint32 length = 2; +} + +message .TSP.Date { + required double seconds = 1; +} + +message .TSP.IndexSet { + repeated .TSP.Range ranges = 1; +} + +message .TSP.Color { + enum ColorModel { + rgb = 1; + cmyk = 2; + white = 3; + } + enum RGBColorSpace { + srgb = 1; + p3 = 2; + } + required .TSP.Color.ColorModel model = 1; + optional float r = 3; + optional float g = 4; + optional float b = 5; + optional .TSP.Color.RGBColorSpace rgbspace = 12; + optional float a = 6 [default = 1]; + optional float c = 7; + optional float m = 8; + optional float y = 9; + optional float k = 10; + optional float w = 11; +} + +message .TSP.Path { + message Element { + required .TSP.Path.ElementType type = 1; + repeated .TSP.Point points = 2; + } + enum ElementType { + moveTo = 1; + lineTo = 2; + quadCurveTo = 3; + curveTo = 4; + closeSubpath = 5; + } + repeated .TSP.Path.Element elements = 1; +} + +message .TSP.ReferenceDictionary { + message Entry { + required .TSP.Reference key = 1; + required .TSP.Reference value = 2; + } + repeated .TSP.ReferenceDictionary.Entry entries = 1; +} + +message .TSP.UUID { + required uint64 lower = 1; + required uint64 upper = 2; +} + +message .TSP.CFUUIDArchive { + optional bytes uuid_bytes = 1; + optional uint32 uuid_w0 = 2; + optional uint32 uuid_w1 = 3; + optional uint32 uuid_w2 = 4; + optional uint32 uuid_w3 = 5; +} + +message .TSP.UUIDSetArchive { + repeated .TSP.UUID uids = 1; +} + +message .TSP.UUIDMapArchive { + repeated .TSP.UUID source = 1; + repeated .TSP.UUID target = 2; +} + +message .TSP.UUIDMultiMapArchive { + repeated .TSP.UUID source = 1; + repeated .TSP.UUID target = 2; +} + +message .TSP.UUIDCoordArchive { + required .TSP.UUID row_uid = 1; + required .TSP.UUID column_uid = 2; +} + +message .TSP.UUIDRectArchive { + repeated .TSP.UUID column_uids = 1; + repeated .TSP.UUID row_uids = 2; +} + +message .TSP.SparseUUIDArray { + message Entry { + required uint32 index = 1; + required .TSP.UUID uuid = 2; + } + required uint32 count = 1; + repeated .TSP.SparseUUIDArray.Entry entries = 2; +} + +message .TSP.UUIDPath { + repeated .TSP.UUID uuids = 1; +} + +message .TSP.SparseUUIDPathArray { + message Entry { + required uint32 index = 1; + required .TSP.UUIDPath uuid_path = 2; + } + required uint32 count = 1; + repeated .TSP.SparseUUIDPathArray.Entry entries = 2; +} + +message .TSP.PasteboardObject { + optional .TSP.Reference stylesheet = 1; + repeated .TSP.Reference drawables = 2; + repeated .TSP.Reference styles = 3; + optional .TSP.Reference wp_storage = 5; + optional .TSP.Reference guide_storage = 9; + optional .TSP.Reference app_native_object = 6; + optional bool is_text_primary = 7 [default = false]; + optional bool is_smart = 8 [default = false]; + repeated .TSP.Reference presets = 10; + repeated .TSP.Reference top_level_objects = 11; + optional .TSP.Reference native_content_description = 12; +} + +message .TSP.ObjectCollection { + repeated .TSP.Reference objects = 1; +} + +message .TSP.ObjectContainer { + optional uint32 identifier = 1; + repeated .TSP.Reference objects = 2; +} + +message .TSP.DataAttributes { + extensions 100 to 536870911; +} + +message .TSP.LargeArraySegment { + optional bool should_delay_archiving = 1; + optional uint32 delayed_archiving_priority = 2; + optional string package_locator = 3; +} + +message .TSP.LargeNumberArraySegment { + optional .TSP.LargeArraySegment large_array_segment = 1; + repeated double elements = 2; +} + +message .TSP.LargeStringArraySegment { + message OptionalElement { + optional string element = 1; + } + optional .TSP.LargeArraySegment large_array_segment = 1; + repeated .TSP.LargeStringArraySegment.OptionalElement elements = 2; +} + +message .TSP.LargeUUIDArraySegment { + optional .TSP.LargeArraySegment large_array_segment = 1; + repeated .TSP.UUID elements = 2; +} + +message .TSP.LargeLazyObjectArraySegment { + optional .TSP.LargeArraySegment large_array_segment = 1; + repeated .TSP.Reference elements = 2; +} + +message .TSP.LargeObjectArraySegment { + optional .TSP.LargeArraySegment large_array_segment = 1; + repeated .TSP.Reference elements = 2; +} + +message .TSP.LargeArray { + repeated .TSP.Range ranges = 1; + repeated .TSP.Reference segments = 2; + optional uint64 max_segment_element_count = 3; + optional uint64 max_segment_size = 4; + optional bool should_delay_archiving = 5; + optional uint32 delayed_archiving_priority = 6; + optional bool store_outside_object_archive = 7; + optional uint64 estimated_byte_size = 8; + optional uint64 max_segment_cost = 9; +} + +message .TSP.LargeNumberArray { + optional .TSP.LargeArray large_array = 1; +} + +message .TSP.LargeStringArray { + optional .TSP.LargeArray large_array = 1; +} + +message .TSP.LargeLazyObjectArray { + optional .TSP.LargeArray large_array = 1; +} + +message .TSP.LargeObjectArray { + optional .TSP.LargeArray large_array = 1; +} + +message .TSP.LargeUUIDArray { + optional .TSP.LargeArray large_array = 1; +} + + +message .TSP.DatabaseData { + required .TSP.DataReference data = 1; +} + +message .TSP.DatabaseDataArchive { + optional .TSP.Reference data = 1; + optional string app_relative_path = 2; + required string display_name = 3; + optional uint64 length = 4; + optional uint32 hash = 5; + required bool sharable = 6 [default = true]; +} + +message .TSP.DatabaseImageDataArchive { + enum ImageType { + unknown = 0; + bitmap = 1; + pdf = 2; + } + required .TSP.DatabaseDataArchive super = 1; + required .TSP.DatabaseImageDataArchive.ImageType type = 2; +} + + +message .TSP.ArchiveInfo { + optional uint64 identifier = 1; + repeated .TSP.MessageInfo message_infos = 2; + optional bool should_merge = 3; +} + +message .TSP.MessageInfo { + required uint32 type = 1; + repeated uint32 version = 2 [packed = true]; + required uint32 length = 3; + repeated .TSP.FieldInfo field_infos = 4; + repeated uint64 object_references = 5 [packed = true]; + repeated uint64 data_references = 6 [packed = true]; + optional uint32 base_message_index = 7; + repeated uint32 diff_merge_version = 8 [packed = true]; + optional .TSP.FieldPath diff_field_path = 9; + repeated .TSP.FieldPath fields_to_remove = 10; + repeated uint32 diff_read_version = 11 [packed = true]; +} + +message .TSP.FieldInfo { + enum Type { + Value = 0; + ObjectReference = 1; + DataReference = 2; + Message = 3; + } + enum UnknownFieldRule { + IgnoreAndPreserveUntilModified = 0; + IgnoreAndPreserve = 1; + MustUnderstand = 2; + NotSupported = -1; + } + enum KnownFieldRule { + None = 0; + PreserveNewerValueUntilModified = 1; + PreserveNewerValue = 2; + } + required .TSP.FieldPath path = 1; + optional .TSP.FieldInfo.Type type = 2 [default = Value]; + optional .TSP.FieldInfo.UnknownFieldRule unknown_field_rule = 3 [default = IgnoreAndPreserveUntilModified]; + repeated uint64 object_references = 4 [packed = true]; + repeated uint64 data_references = 5 [packed = true]; + optional .TSP.FieldInfo.KnownFieldRule known_field_rule = 6 [default = None]; + repeated uint32 known_field_version = 7 [packed = true]; + optional string known_field_feature_identifier = 8; +} + +message .TSP.FieldPath { + repeated uint32 path = 1 [packed = true]; +} + +message .TSP.ComponentInfo { + required uint64 identifier = 1; + required string preferred_locator = 2; + optional string locator = 3; + repeated uint32 document_read_version = 4 [packed = true]; + repeated uint32 document_write_version = 5 [packed = true]; + repeated .TSP.ComponentExternalReference external_references = 6; + repeated .TSP.ComponentDataReference data_references = 7; + optional bool is_stored_outside_object_archive = 10 [default = false]; + repeated .TSP.ObjectUUIDMapEntry object_uuid_map_entries = 11; + optional uint64 save_token = 12 [default = 0]; + repeated .TSP.FeatureInfo feature_infos = 13; + repeated uint32 component_read_version = 14 [packed = true]; + repeated uint32 component_required_version = 15 [packed = true]; + optional uint32 compression_algorithm = 16; + optional bool can_be_dropped = 17; + repeated .TSP.ComponentExternalReference versioned_external_references = 18; + optional bool is_wasteful = 19; + repeated uint64 ambiguous_object_identifiers = 20 [packed = true]; + optional uint32 required_package_identifier = 21; +} + +message .TSP.ComponentExternalReference { + required uint64 component_identifier = 1; + optional uint64 object_identifier = 2; + optional bool is_weak = 3; +} + +message .TSP.ComponentDataReference { + message ObjectReference { + required uint64 object_identifier = 1; + required uint32 count = 2; + } + required uint64 data_identifier = 1; + repeated .TSP.ComponentDataReference.ObjectReference object_reference_list = 2; +} + +message .TSP.ObjectUUIDMapEntry { + required uint64 identifier = 1; + required .TSP.UUID uuid = 2; +} + +message .TSP.FeatureInfo { + required string identifier = 1; + repeated uint32 read_version = 2 [packed = true]; + repeated uint32 write_version = 3 [packed = true]; +} + +message .TSP.PackageMetadata { + enum PackageType { + Default = 0; + Directory = 1; + SingleFile = 2; + } + required uint64 last_object_identifier = 1; + optional .TSP.DocumentRevision revision = 2; + repeated .TSP.ComponentInfo components = 3; + repeated .TSP.DataInfo datas = 4; + repeated uint32 read_version = 5 [packed = true]; + repeated uint32 write_version = 6 [packed = true]; + repeated uint32 file_format_version = 7 [packed = true]; + optional uint64 save_token = 8 [default = 0]; + optional .TSP.PackageMetadata.PackageType preferred_package_type = 9 [default = Default]; + optional .TSP.Reference data_metadata_map = 10; + repeated .TSP.ComponentInfo versioned_components = 11; +} + +message .TSP.DocumentRevision { + optional int32 sequence_32 = 3 [default = 0]; + optional string identifier = 2; + optional uint64 sequence_64 = 1 [default = 0]; +} + +message .TSP.PasteboardMetadata { + repeated uint32 version = 1 [packed = true]; + required string app_name = 2; + repeated .TSP.DataInfo datas = 3; + optional .TSP.UUID source_document_uuid = 5; + optional .TSP.Reference data_metadata_map = 6; + repeated uint32 read_version = 7 [packed = true]; +} + +message .TSP.DataInfo { + enum DownloadPriority { + High = 0; + Default = 1; + } + required uint64 identifier = 1; + required bytes digest = 2; + required string preferred_file_name = 3; + optional string file_name = 4; + optional string document_resource_locator = 5; + optional bytes source_bookmark_data = 6; + optional string remote_url = 7; + optional bool can_download = 8 [default = false]; + optional .TSP.DataInfo.DownloadPriority download_priority = 9 [default = Default]; + optional .TSP.DataAttributes attributes = 10; + optional .TSP.EncryptionInfo encryption_info = 11; + optional bytes last_mismatched_digest = 12; + optional .TSP.IndexSet unmaterialized_ranges = 13; + optional uint64 remote_data_length = 14; + optional bool remote_data_has_package_storage = 15 [default = false]; + optional .TSP.DataUploadStatus upload_status = 16 [default = DataUploadStatus_Pending]; + optional double remote_data_mtime = 17; + optional uint64 materialized_length = 18; + optional string pasteboard_external_file_path = 99; +} + +message .TSP.DataMetadataMap { + message DataMetadataMapEntry { + required uint64 data_identifier = 1; + required .TSP.Reference data_metadata = 2; + } + repeated .TSP.DataMetadataMap.DataMetadataMapEntry data_metadata_entries = 1; +} + +message .TSP.DataMetadata { + optional .TSP.Color fallback_color = 1; +} + +message .TSP.EncryptionInfo { + optional uint64 decoded_length = 1; + optional uint64 preferred_block_size = 2; + repeated .TSP.EncryptionBlockInfo block_infos = 3; +} + +message .TSP.EncryptionBlockInfo { + required uint64 encoded_length = 1; + optional uint64 decoded_length = 2; +} + +message .TSP.ViewStateMetadata { + repeated uint32 version = 1 [packed = true]; + optional .TSP.UUID version_uuid = 4; + required .TSP.ComponentInfo component = 3; + repeated .TSP.ObjectUUIDMapEntry external_object_uuid_map_entries = 5; + repeated uint32 read_version = 6 [packed = true]; +} + +message .TSP.ObjectSerializationMetadata { + repeated uint32 version = 1 [packed = true]; + optional .TSP.UUID source_document_uuid = 2; + optional .TSP.UUID version_uuid = 3; + required .TSP.ComponentInfo component = 4; + repeated .TSP.DataInfo datas = 5; + repeated .TSP.ObjectUUIDMapEntry external_object_uuid_map_entries = 6; + optional .TSP.Reference data_metadata_map = 7; + repeated uint32 read_version = 8 [packed = true]; +} + +message .TSP.ObjectSerializationDirectory { + message Entry { + required string locator = 1; + required uint64 offset = 2; + required uint64 size = 3; + } + repeated .TSP.ObjectSerializationDirectory.Entry entries = 1; +} + +message .TSP.DataPropertiesEntryV1 { + required bytes digest = 1; + optional bool expects_matched_digest = 2; + optional double creation_time_interval_since_1970 = 3; + repeated uint32 creation_version = 4 [packed = true]; + optional bytes last_mismatched_digest = 5; +} + +message .TSP.DataPropertiesV1 { + repeated .TSP.DataPropertiesEntryV1 properties = 1; +} + +message .TSP.DocumentMetadata { + optional bool is_in_collaboration_mode = 1; + optional .TSP.DataPropertiesV1 data_properties_v1 = 3; +} + +message .TSP.SupportMetadata { + message DataCollaborationProperties { + required bytes digest = 1; + optional bool acknowledged_by_server = 2 [default = false]; + optional bool materialized_on_server = 3 [default = false]; + optional int32 revision_sequence_for_materialized_on_server = 5 [default = 0]; + optional .TSP.DataUploadStatus upload_status = 4 [default = DataUploadStatus_Pending]; + optional bool is_remote_data_ever = 6 [default = false]; + optional int32 revision_sequence_for_acknowledged_by_server = 7 [default = 0]; + } + optional bool is_in_collaboration_mode = 1; + repeated .TSP.SupportMetadata.DataCollaborationProperties data_collaboration_properties = 2; +} + + +message .TSCE.CellReferenceArchive { + required uint32 column = 1; + required uint32 row = 2; + required .TSP.CFUUIDArchive table_id = 3; +} + +message .TSCE.InternalCellReferenceArchive { + required .TSCE.CellCoordinateArchive coordinate = 1; + required uint32 owner_id = 2; +} + +message .TSCE.RelativeCellRefArchive { + optional int32 relative_row_offset = 1; + optional int32 relative_column_offset = 2; + optional .TSP.UUID table_uid = 3; + optional bool preserve_column = 4; + optional bool preserve_row = 5; + optional bool is_spanning_column = 6; + optional bool is_spanning_row = 7; +} + +message .TSCE.RangeReferenceArchive { + required .TSP.CFUUIDArchive table_id = 1; + required uint32 top_left_column = 2; + required uint32 top_left_row = 3; + required uint32 bottom_right_column = 4; + required uint32 bottom_right_row = 5; +} + +message .TSCE.InternalRangeReferenceArchive { + required uint32 owner_id = 1; + required .TSCE.RangeCoordinateArchive range = 2; +} + +message .TSCE.IndexSetArchive { + message IndexSetEntry { + required int32 range_begin = 1; + optional int32 range_end = 2; + } + repeated .TSCE.IndexSetArchive.IndexSetEntry entries = 1; +} + +message .TSCE.CellCoordSetArchive { + message ColumnEntry { + required uint32 column = 1; + required .TSCE.IndexSetArchive row_set = 2; + } + repeated .TSCE.CellCoordSetArchive.ColumnEntry column_entries = 1; +} + +message .TSCE.InternalCellRefSetArchive { + message OwnerEntry { + required uint32 owner_id = 1; + required .TSCE.CellCoordSetArchive coord_set = 2; + } + repeated .TSCE.InternalCellRefSetArchive.OwnerEntry owner_entries = 1; +} + +message .TSCE.ColumnRowSize { + optional uint32 num_columns = 1 [default = 1]; + optional uint32 num_rows = 2 [default = 1]; +} + +message .TSCE.CellRectArchive { + required .TSCE.CellCoordinateArchive origin = 1; + required .TSCE.ColumnRowSize size = 2; +} + +message .TSCE.CellRefSetArchive { + message OwnerEntry { + required .TSP.UUID owner_uid = 1; + required .TSCE.CellCoordSetArchive coord_set = 2; + } + repeated .TSCE.CellRefSetArchive.OwnerEntry owner_entries = 1; +} + +message .TSCE.UidCoordSetArchive { + message ColumnEntry { + required .TSP.UUID column = 1; + repeated .TSP.UUID row_set = 2; + } + repeated .TSCE.UidCoordSetArchive.ColumnEntry column_entries = 1; +} + +message .TSCE.UidCellRefSetArchive { + message OwnerEntry { + required .TSP.UUID owner_uid = 1; + required .TSCE.UidCoordSetArchive coord_set = 2; + } + repeated .TSCE.UidCellRefSetArchive.OwnerEntry owner_entries = 1; +} + +message .TSCE.ReferencesToDirtyArchive { + optional .TSCE.IndexSetArchive to_dirty_owner_ids = 1; + optional .TSCE.InternalCellRefSetArchive to_dirty_cells = 2; + optional .TSCE.InternalCellRefSetArchive to_dirty_cells_additional = 3; + repeated .TSCE.InternalRangeReferenceArchive to_dirty_range_refs = 4; + optional .TSCE.InternalCellRefSetArchive calc_in_progress_cells = 6; + optional .TSCE.InternalCellRefSetArchive to_update_precedents_cells = 7; +} + +message .TSCE.CoordMapperArchive { + message BaseToViewEntry { + required uint32 base_column_or_row = 1; + required uint32 view_column_or_row = 2; + } + message SummaryToViewEntry { + required uint32 summary_column_or_row = 1; + required uint32 view_column_or_row = 2; + } + required .TSP.UUID table_uid = 1; + optional .TSCE.IndexSetArchive summary_rows_set = 2; + optional .TSCE.IndexSetArchive summary_columns_set = 3; + optional .TSCE.IndexSetArchive label_rows_set = 4; + repeated .TSCE.CoordMapperArchive.BaseToViewEntry base_to_view_row_map = 5; + repeated .TSCE.CoordMapperArchive.BaseToViewEntry base_to_view_column_map = 6; + repeated .TSCE.CoordMapperArchive.SummaryToViewEntry summary_to_view_row_map = 7; + repeated .TSCE.CoordMapperArchive.SummaryToViewEntry summary_to_view_column_map = 8; +} + +message .TSCE.ReferenceArchive { + enum ReferenceType { + CELL_REFERENCE = 1; + RANGE_REFERENCE = 2; + NAME_DEPENDENCY = 3; + } + required .TSCE.ReferenceArchive.ReferenceType reference_type = 1; + optional .TSCE.CellReferenceArchive cell_reference = 2; + optional .TSCE.RangeReferenceArchive range_reference = 3; +} + +message .TSCE.EdgeArchive { + required uint32 column = 1; + required uint32 row = 2; + required bool is_precedent = 3; + optional .TSP.CFUUIDArchive owner_id = 4; +} + +message .TSCE.EdgesArchive { + repeated uint32 packed_edge_without_owner = 9; + repeated uint32 packed_edge_with_owner = 10; + repeated .TSP.CFUUIDArchive owner_id_for_edge = 11; + repeated uint32 internal_owner_id_for_edge = 12; +} + +message .TSCE.ExpandedEdgesArchive { + repeated uint32 edge_without_owner_rows = 1; + repeated uint32 edge_without_owner_columns = 2; + repeated uint32 edge_with_owner_rows = 3; + repeated uint32 edge_with_owner_columns = 4; + repeated uint32 internal_owner_id_for_edge = 5; +} + +message .TSCE.CellRecordArchive { + required uint32 column = 1; + required uint32 row = 2; + optional uint64 dirty_self_plus_precedents_count = 3 [default = 0]; + optional bool is_in_a_cycle = 4 [default = false]; + repeated .TSCE.EdgeArchive edge = 5 [deprecated = true]; + optional bool contains_a_formula = 6 [default = true]; + optional bool has_calculated_precedents = 7 [default = false]; + optional bool calculate_precedents_on_next_recalc = 8 [default = false, deprecated = true]; + optional bool translate_for_excel_import_on_next_recalc = 10 [default = false]; + optional .TSCE.EdgesArchive edges = 9; +} + +message .TSCE.CellDependenciesArchive { + repeated .TSCE.CellRecordArchive cell_record = 1; + optional uint32 num_dirty_cells = 2; +} + +message .TSCE.CellRecordExpandedArchive { + required uint32 column = 1; + required uint32 row = 2; + optional uint64 dirty_self_plus_precedents_count = 3 [default = 0]; + optional bool is_in_a_cycle = 4 [default = false]; + optional bool has_calculated_precedents = 5 [default = false]; + optional .TSCE.ExpandedEdgesArchive expanded_edges = 6; +} + +message .TSCE.CellDependenciesExpandedArchive { + repeated .TSCE.CellRecordExpandedArchive cell_record = 1; +} + +message .TSCE.CellRecordTileArchive { + required uint32 internal_owner_id = 1; + required uint32 tile_column_begin = 2; + required uint32 tile_row_begin = 3; + repeated .TSCE.CellRecordExpandedArchive cell_records = 4; +} + +message .TSCE.CellDependenciesTiledArchive { + repeated .TSP.Reference cell_record_tiles = 1; +} + +message .TSCE.VolatileDependenciesArchive { + repeated uint32 volatile_time_cell_column = 1; + repeated uint32 volatile_time_cell_row = 2; + repeated uint32 volatile_random_cell_column = 3; + repeated uint32 volatile_random_cell_row = 4; + repeated uint32 volatile_locale_cell_column = 15; + repeated uint32 volatile_locale_cell_row = 16; + repeated uint32 volatile_location_cell_column = 5; + repeated uint32 volatile_location_cell_row = 6; + repeated uint32 volatile_compass_cell_column = 7; + repeated uint32 volatile_compass_cell_row = 8; + repeated uint32 volatile_remote_data_cell_column = 19; + repeated uint32 volatile_remote_data_cell_row = 20; + repeated uint32 volatile_sheet_table_name_cell_column = 17; + repeated uint32 volatile_sheet_table_name_cell_row = 18; + repeated uint32 calculated_dependency_cell_column = 9; + repeated uint32 calculated_dependency_cell_row = 10; + repeated .TSCE.CellReferenceArchive volatile_geometry_cell_reference = 13; + repeated .TSCE.CellCoordinateArchive volatile_geometry_cell = 11; +} + +message .TSCE.VolatileDependenciesExpandedArchive { + optional .TSCE.CellCoordSetArchive volatile_time_cells = 1; + optional .TSCE.CellCoordSetArchive volatile_random_cells = 2; + optional .TSCE.CellCoordSetArchive volatile_locale_cells = 3; + optional .TSCE.CellCoordSetArchive volatile_sheet_table_name_cells = 4; + optional .TSCE.CellCoordSetArchive volatile_remote_data_cells = 5; + optional .TSCE.InternalCellRefSetArchive volatile_geometry_cell_refs = 7; +} + +message .TSCE.RTreeInternalNodeContentsArchive { + repeated uint32 min = 1; + repeated uint32 max = 2; + required .TSCE.RTreeNodeArchive child = 3; +} + +message .TSCE.RTreeLeafNodeContentsArchive { + repeated uint32 min = 1; + repeated uint32 max = 2; + required .TSCE.CellReferenceArchive cell_reference = 3; +} + +message .TSCE.RTreeNodeArchive { + required uint32 level = 1; + required uint32 count = 2; + repeated .TSCE.RTreeInternalNodeContentsArchive internal_node_contents = 3; + repeated .TSCE.RTreeLeafNodeContentsArchive leaf_node_contents = 4; +} + +message .TSCE.RTreeArchive { + required uint32 data_file_id = 1; + required uint32 data_size = 2; + required uint32 data_num_dims = 3; + required uint32 data_elem_size = 4; + required uint32 data_elem_real_size = 5; + required uint32 data_max_nodes = 6; + required uint32 data_min_nodes = 7; + required .TSCE.RTreeNodeArchive root = 8; +} + +message .TSCE.RangeBackDependencyArchive { + required uint32 cell_coord_row = 1; + required uint32 cell_coord_column = 2; + optional .TSCE.RangeReferenceArchive range_reference = 3; + optional .TSCE.InternalRangeReferenceArchive internal_range_reference = 4; +} + +message .TSCE.RangeDependenciesArchive { + repeated .TSCE.RangeBackDependencyArchive back_dependency = 2; +} + +message .TSCE.RangePrecedentsTileArchive { + message FromToRangeArchive { + required .TSCE.CellCoordinateArchive from_coord = 1; + required .TSCE.CellRectArchive refers_to_rect = 2; + } + required uint32 to_owner_id = 1; + repeated .TSCE.RangePrecedentsTileArchive.FromToRangeArchive from_to_range = 2; +} + +message .TSCE.RangeDependenciesTiledArchive { + repeated .TSP.Reference range_precedents_tile = 1; +} + +message .TSCE.SpanningDependenciesArchive { + message ReferringColumnToLocalCells { + required uint32 column = 1; + required .TSCE.SpanningDependenciesArchive.RangeContext range_context = 2; + repeated .TSCE.CellCoordinateArchive cell_coordinate = 3; + } + message ReferringColumnToRemoteCells { + required uint32 column = 1; + required .TSCE.SpanningDependenciesArchive.RangeContext range_context = 2; + repeated .TSCE.InternalCellReferenceArchive internal_cell_reference = 3; + } + enum RangeContext { + DEFAULT = 0; + INCLUDE_HEADERS = 1; + } + repeated uint32 column = 1; + repeated .TSCE.SpanningDependenciesArchive.RangeContext range_context = 2; + repeated .TSCE.CellReferenceArchive cell = 3; + optional .TSCE.RangeCoordinateArchive total_range_for_deleted_table = 4; + optional .TSCE.RangeCoordinateArchive body_range_for_deleted_table = 5; + repeated .TSCE.SpanningDependenciesArchive.ReferringColumnToLocalCells referring_column_to_local_cells = 6; + repeated .TSCE.SpanningDependenciesArchive.ReferringColumnToRemoteCells referring_column_to_remote_cells = 7; +} + +message .TSCE.SpanningDependenciesExpandedArchive { + message ExtentRange { + required uint32 extent_begin = 1; + optional uint32 extent_end = 2; + } + message ExtentRangeWithTableWithContext { + required uint32 owner_id = 1; + required .TSCE.SpanningDependenciesExpandedArchive.RangeContext range_context = 2; + repeated .TSCE.SpanningDependenciesExpandedArchive.ExtentRange ranges = 3; + } + message CellCoordRefersToExtents { + required .TSCE.CellCoordinateArchive coordinate = 1; + repeated .TSCE.SpanningDependenciesExpandedArchive.ExtentRangeWithTableWithContext ranges_by_table_context = 2; + } + enum RangeContext { + DEFAULT = 0; + INCLUDE_HEADERS = 1; + } + repeated .TSCE.SpanningDependenciesExpandedArchive.CellCoordRefersToExtents coord_refers_to_spans = 1; + optional .TSCE.RangeCoordinateArchive total_range_for_table = 2; + optional .TSCE.RangeCoordinateArchive body_range_for_table = 3; +} + +message .TSCE.WholeOwnerDependenciesArchive { + repeated .TSCE.InternalCellReferenceArchive dependent_cell = 1; +} + +message .TSCE.WholeOwnerDependenciesExpandedArchive { + optional .TSCE.InternalCellRefSetArchive dependent_cells = 1; +} + +message .TSCE.CellErrorsArchive { + message ErrorForCell { + required .TSCE.CellCoordinateArchive coordinate = 1; + required .TSCE.CellErrorsArchive.ErrorFlavor error_flavor = 2; + optional .TSCE.InternalCellReferenceArchive err_due_to_cell = 3; + } + enum ErrorFlavor { + NONE = 0; + ERROR = 1; + REF_ERROR = 2; + CIRCULAR_REF_ERROR = 3; + UNSUPPORTED_FUNCTION_ERROR = 4; + } + repeated .TSCE.CellErrorsArchive.ErrorForCell errors = 1; +} + +message .TSCE.UuidReferencesArchive { + message TableRef { + required .TSP.UUID owner_uuid = 1; + optional .TSCE.CellCoordSetArchive coord_set = 2; + } + message UuidRef { + required .TSP.UUID uuid = 1; + optional .TSCE.CellCoordSetArchive coord_set = 2; + } + message TableWithUuidRef { + required .TSP.UUID owner_uuid = 1; + repeated .TSCE.UuidReferencesArchive.UuidRef uuid_refs = 2; + } + repeated .TSCE.UuidReferencesArchive.TableRef table_refs = 1; + repeated .TSCE.UuidReferencesArchive.TableWithUuidRef table_uuid_refs = 2; +} + +message .TSCE.FormulaOwnerDependenciesArchive { + required .TSP.UUID formula_owner_uid = 1; + required uint32 internal_formula_owner_id = 2; + optional uint32 owner_kind = 3 [default = 0]; + optional .TSCE.CellDependenciesExpandedArchive cell_dependencies = 4; + optional .TSCE.RangeDependenciesArchive range_dependencies = 5; + optional .TSCE.VolatileDependenciesExpandedArchive volatile_dependencies = 6; + optional .TSCE.SpanningDependenciesExpandedArchive spanning_column_dependencies = 7; + optional .TSCE.SpanningDependenciesExpandedArchive spanning_row_dependencies = 8; + optional .TSCE.WholeOwnerDependenciesExpandedArchive whole_owner_dependencies = 9; + optional .TSCE.CellErrorsArchive cell_errors = 10; + optional .TSP.Reference formula_owner = 11; + optional .TSP.UUID base_owner_uid = 12; + optional .TSCE.CellDependenciesTiledArchive tiled_cell_dependencies = 13; + optional .TSCE.UuidReferencesArchive uuid_references = 14; + optional .TSCE.RangeDependenciesTiledArchive tiled_range_dependencies = 15; +} + +message .TSCE.FormulaOwnerInfoArchive { + required .TSP.CFUUIDArchive formula_owner_id = 1; + optional .TSCE.CellDependenciesArchive cell_dependencies = 2; + optional .TSCE.RangeDependenciesArchive range_dependencies = 3; + optional .TSCE.VolatileDependenciesArchive volatile_dependencies = 4; + optional .TSCE.SpanningDependenciesArchive spanning_column_dependencies = 5; + optional .TSCE.SpanningDependenciesArchive spanning_row_dependencies = 6; + optional .TSCE.WholeOwnerDependenciesArchive whole_owner_dependencies = 8; + optional .TSCE.CellErrorsArchive cell_errors = 9; + optional .TSP.Reference formula_owner = 7; +} + +message .TSCE.SubFormulaOwnerIDArchive { + required .TSP.UUID base_owner_uid = 1; + required uint32 owner_kind = 2; +} + +message .TSCE.OwnerIDMapArchive { + message OwnerIDMapArchiveEntry { + required uint32 internal_owner_id = 1; + required .TSP.CFUUIDArchive owner_id = 2; + } + repeated .TSCE.OwnerIDMapArchive.OwnerIDMapArchiveEntry map_entry = 1; + repeated uint32 unregistered_internal_owner_id = 2; +} + +message .TSCE.UidLookupListArchive { + repeated .TSP.UUID uuids = 1; +} + +message .TSCE.DependencyTrackerArchive { + repeated .TSCE.FormulaOwnerInfoArchive formula_owner_info = 1; + repeated .TSCE.CellReferenceArchive dirty_leaf = 2 [deprecated = true]; + optional .TSCE.OwnerIDMapArchive owner_id_map = 3; + repeated .TSCE.InternalCellReferenceArchive internal_dirty_leaf = 4 [deprecated = true]; + optional uint64 number_of_formulas = 5; + repeated .TSP.Reference formula_owner_dependencies = 6; +} + +message .TSCE.RemoteDataSpecifierArchive { + required uint32 function_index = 1; + required string symbol = 2; + required uint32 attribute = 3; + optional double date = 4; +} + +message .TSCE.RemoteDataValueMapArchive { + message RemoteDataMapEntry { + required .TSCE.RemoteDataSpecifierArchive specifier = 1; + required .TSCE.CellValueArchive value = 2; + } + repeated .TSCE.RemoteDataValueMapArchive.RemoteDataMapEntry entry = 1; +} + +message .TSCE.StockArchive { + message AttributeEntry { + required uint32 attribute = 1; + required string value = 2; + } + required string symbol = 1; + optional double date = 2; + repeated .TSCE.StockArchive.AttributeEntry attribute = 3; +} + +message .TSCE.RemoteDataStoreArchive { + required .TSCE.RemoteDataValueMapArchive value_map = 1; + repeated .TSCE.StockArchive stocks = 2; +} + +message .TSCE.NameTrackedReferencePair { + required string name = 1; + optional .TSP.Reference tracked_reference = 2; + optional uint32 tracked_reference_id = 3; +} + +message .TSCE.NamesByTrackedReferenceArchive { + required .TSP.CFUUIDArchive table_id = 1; + repeated .TSCE.NameTrackedReferencePair name_tracked_reference_pair = 2; +} + +message .TSCE.NamedReferenceManagerArchive { + required .TSP.Reference reference_tracker = 1; + repeated .TSCE.NamesByTrackedReferenceArchive names_by_tracked_reference_by_table = 2 [deprecated = true]; +} + +message .TSCE.UuidSetStoreArchive { + message UuidSet { + repeated .TSP.UUID uuid = 1; + required uint32 index_of_set = 2; + } + repeated .TSCE.UuidSetStoreArchive.UuidSet uuidSet = 1; +} + +message .TSCE.UuidReferenceMapArchive { + message CellRefsForUuid { + required .TSP.UUID uuid = 1; + repeated .TSCE.InternalCellReferenceArchive cell_ref = 2; + optional .TSCE.InternalCellRefSetArchive cell_refs = 3; + } + repeated .TSCE.UuidReferenceMapArchive.CellRefsForUuid cell_refs_for_uuid = 1; +} + +message .TSCE.GroupByNodeMapArchive { + message CellRefsForGroupNode { + required .TSP.UUID group_node_uid = 1; + optional .TSCE.InternalCellRefSetArchive cell_refs = 3; + } + message GroupNodesForGroupBy { + required .TSP.UUID group_by_uid = 1; + repeated .TSCE.GroupByNodeMapArchive.CellRefsForGroupNode refs_for_group_node = 2; + } + repeated .TSCE.GroupByNodeMapArchive.GroupNodesForGroupBy refs_for_group_by = 1; +} + +message .TSCE.CalculationEngineArchive { + enum ExcelImportDateMode { + DATE_MODE_1900 = 1; + DATE_MODE_1900_LEGACY = 2; + DATE_MODE_1904_LEGACY = 3; + } + optional bool base_date_1904 = 1; + required .TSCE.DependencyTrackerArchive dependency_tracker = 2; + optional .TSP.Reference named_reference_manager = 3; + optional .TSCE.CalculationEngineArchive.ExcelImportDateMode excel_import_date_mode = 4 [default = DATE_MODE_1900]; + optional string saved_locale_identifier_for_4_2 = 5; + optional uint64 document_random_seed = 6; + optional .TSCE.UuidReferenceMapArchive uuid_reference_map = 7; + optional double document_timestamp = 9; + optional string document_timezone = 10; + optional .TSCE.RewriteTableUIDInfoArchive table_uid_history = 11; + optional .TSP.Reference remote_data_store = 12; + optional .TSCE.GroupByNodeMapArchive group_node_map = 13; + optional .TSP.Reference header_name_manager = 14; + optional .TSP.Reference refs_to_dirty = 15; + optional string saved_locale_identifier = 16; + repeated .TSP.UUID begin_tracking_names_legacy_nrm = 17; + repeated .TSP.UUID end_tracking_names_legacy_nrm = 18; +} + +message .TSCE.PreserveColumnRowFlagsArchive { + required bool begin_row_is_absolute = 1; + required bool begin_column_is_absolute = 2; + optional bool end_row_is_absolute = 3; + optional bool end_column_is_absolute = 4; +} + +message .TSCE.CategoryReferenceArchive { + message CatRefUidList { + repeated .TSP.UUID uid = 1; + } + required .TSP.UUID group_by_uid = 1; + required .TSP.UUID column_uid = 2; + required uint32 aggregate_type = 3; + required sint32 group_level = 4; + optional .TSCE.CategoryReferenceArchive.CatRefUidList group_uids = 6; + optional .TSCE.PreserveColumnRowFlagsArchive preserve_flags = 7; + optional int32 relative_column = 8; + optional .TSP.UUID relative_group_uid = 9; + optional .TSP.UUID absolute_group_uid = 10; + optional bool option_refers_to_pivot_rows = 11; + optional bool option_refers_to_pivot_columns = 12; + optional uint32 agg_index_level = 13; + optional bool option_show_aggregate_name = 14; +} + +message .TSCE.ASTNodeArrayArchive { + message ASTLocalCellReferenceNodeArchive { + required uint32 row_handle = 1; + required uint32 column_handle = 2; + required uint32 row_is_sticky = 3; + required uint32 column_is_sticky = 4; + } + message ASTCrossTableCellReferenceNodeArchive { + required uint32 row_handle = 1; + required uint32 column_handle = 2; + required uint32 row_is_sticky = 3; + required uint32 column_is_sticky = 4; + required .TSP.CFUUIDArchive table_id = 5; + optional string AST_reference_whitespace_after_sheet_name = 6; + optional string AST_reference_whitespace_before_table_name = 7; + optional string AST_reference_whitespace_after_table_name = 8; + optional string AST_reference_whitespace_before_cell_address = 9; + } + message ASTColumnCoordinateArchive { + required sint32 column = 1; + optional bool absolute = 2 [default = false]; + } + message ASTRowCoordinateArchive { + required sint32 row = 1; + optional bool absolute = 2 [default = false]; + } + message ASTUidList { + repeated .TSP.UUID uid = 1; + } + message ASTUidTract { + required .TSCE.ASTNodeArrayArchive.ASTUidList columnUids = 1; + required .TSCE.ASTNodeArrayArchive.ASTUidList rowUids = 2; + optional bool is_range_ref = 3; + optional .TSCE.ASTNodeArrayArchive.ASTUidTractPurpose purpose = 4; + optional bool preserve_rectangular = 5 [default = true]; + } + message ASTStickyBits { + required bool begin_row_is_absolute = 1; + required bool begin_column_is_absolute = 2; + required bool end_row_is_absolute = 3; + required bool end_column_is_absolute = 4; + } + message ASTUidTractList { + repeated .TSCE.ASTNodeArrayArchive.ASTUidTract tract = 1; + required .TSCE.ASTNodeArrayArchive.ASTStickyBits sticky_bits = 2; + } + message ASTUidCoordinateArchive { + required .TSP.UUID column_uid = 1; + required .TSP.UUID row_uid = 2; + required bool column_absolute = 3; + required bool row_absolute = 4; + } + message ASTCategoryLevels { + required uint32 AST_column_group_level = 1; + required uint32 AST_row_group_level = 2; + optional uint32 AST_agg_index_level = 3; + } + message ASTCategoryReferenceArchive { + required .TSCE.CategoryReferenceArchive category_ref = 1; + } + message ASTColonTractArchive { + message ASTColonTractRelativeRangeArchive { + required int32 range_begin = 1; + optional int32 range_end = 2; + } + message ASTColonTractAbsoluteRangeArchive { + required uint32 range_begin = 1; + optional uint32 range_end = 2; + } + repeated .TSCE.ASTNodeArrayArchive.ASTColonTractArchive.ASTColonTractRelativeRangeArchive relative_column = 1; + repeated .TSCE.ASTNodeArrayArchive.ASTColonTractArchive.ASTColonTractRelativeRangeArchive relative_row = 2; + repeated .TSCE.ASTNodeArrayArchive.ASTColonTractArchive.ASTColonTractAbsoluteRangeArchive absolute_column = 3; + repeated .TSCE.ASTNodeArrayArchive.ASTColonTractArchive.ASTColonTractAbsoluteRangeArchive absolute_row = 4; + optional bool preserve_rectangular = 5 [default = true]; + } + message ASTCrossTableReferenceExtraInfoArchive { + required .TSP.CFUUIDArchive table_id = 1; + optional string AST_reference_whitespace_after_sheet_name = 2; + optional string AST_reference_whitespace_before_table_name = 3; + optional string AST_reference_whitespace_after_table_name = 4; + optional string AST_reference_whitespace_before_cell_address = 5; + } + message ASTLetNodeWhitespace { + optional string AST_let_whitespace_after_let = 1; + optional string AST_let_whitespace_after_identifier = 2; + optional string AST_let_whitespace_after_equals = 3; + optional string AST_let_whitespace_after_delimiter = 4; + } + message ASTNodeArchive { + required .TSCE.ASTNodeArrayArchive.ASTNodeType AST_node_type = 1; + optional uint32 AST_function_node_index = 2; + optional uint32 AST_function_node_numArgs = 3; + optional double AST_number_node_number = 4; + optional bool AST_boolean_node_boolean = 5; + optional string AST_string_node_string = 6; + optional double AST_date_node_dateNum = 7; + optional bool AST_date_node_suppress_date_format = 19; + optional bool AST_date_node_suppress_time_format = 20; + optional string AST_date_node_date_time_format = 21; + optional double AST_duration_node_unitNum = 8; + optional int32 AST_duration_node_unit = 9; + optional uint32 AST_duration_node_style = 22; + optional uint32 AST_duration_node_duration_unit_largest = 23; + optional uint32 AST_duration_node_duration_unit_smallest = 24; + optional bool AST_duration_node_use_automatic_units = 29; + optional bool AST_token_node_boolean = 10; + optional uint32 AST_array_node_numCol = 11; + optional uint32 AST_array_node_numRow = 12; + optional uint32 AST_list_node_numArgs = 13; + optional .TSCE.ASTNodeArrayArchive AST_thunk_node_array = 14; + optional .TSCE.ASTNodeArrayArchive.ASTLocalCellReferenceNodeArchive AST_local_cell_reference_node_reference = 15; + optional .TSCE.ASTNodeArrayArchive.ASTCrossTableCellReferenceNodeArchive AST_cross_table_cell_reference_node_reference = 16; + optional string AST_unknown_function_node_string = 17; + optional uint32 AST_unknown_function_node_numArgs = 18; + optional string AST_whitespace = 25; + optional .TSCE.ASTNodeArrayArchive.ASTColumnCoordinateArchive AST_column = 26; + optional .TSCE.ASTNodeArrayArchive.ASTRowCoordinateArchive AST_row = 27; + optional .TSCE.ASTNodeArrayArchive.ASTCrossTableReferenceExtraInfoArchive AST_cross_table_reference_extra_info = 28; + optional .TSCE.ASTNodeArrayArchive.ASTUidCoordinateArchive AST_uid_coordinate = 30; + optional .TSCE.ASTNodeArrayArchive.ASTStickyBits AST_sticky_bits = 33; + optional .TSCE.ASTNodeArrayArchive.ASTStickyBits AST_frozen_sticky_bits = 41; + optional string AST_let_identifier = 34; + optional .TSCE.ASTNodeArrayArchive AST_let_e2 = 35; + optional .TSCE.ASTNodeArrayArchive.ASTLetNodeWhitespace AST_let_whitespace = 36; + optional uint32 AST_symbol = 37; + optional .TSCE.ASTNodeArrayArchive.ASTUidTractList AST_tract_list = 38; + optional .TSCE.ASTNodeArrayArchive.ASTCategoryReferenceArchive AST_category_ref = 39; + optional .TSCE.ASTNodeArrayArchive.ASTColonTractArchive AST_colon_tract = 40; + optional uint64 AST_number_node_decimal_low = 42; + optional uint64 AST_number_node_decimal_high = 43; + optional .TSCE.ASTNodeArrayArchive.ASTCategoryLevels AST_category_levels = 44; + } + enum ASTNodeType { + ADDITION_NODE = 1; + SUBTRACTION_NODE = 2; + MULTIPLICATION_NODE = 3; + DIVISION_NODE = 4; + POWER_NODE = 5; + CONCATENATION_NODE = 6; + GREATER_THAN_NODE = 7; + GREATER_THAN_OR_EQUAL_TO_NODE = 8; + LESS_THAN_NODE = 9; + LESS_THAN_OR_EQUAL_TO_NODE = 10; + EQUAL_TO_NODE = 11; + NOT_EQUAL_TO_NODE = 12; + NEGATION_NODE = 13; + PLUS_SIGN_NODE = 14; + PERCENT_NODE = 15; + FUNCTION_NODE = 16; + NUMBER_NODE = 17; + BOOLEAN_NODE = 18; + STRING_NODE = 19; + DATE_NODE = 20; + DURATION_NODE = 21; + EMPTY_ARGUMENT_NODE = 22; + TOKEN_NODE = 23; + ARRAY_NODE = 24; + LIST_NODE = 25; + THUNK_NODE = 26; + LOCAL_CELL_REFERENCE_NODE = 27; + CROSS_TABLE_CELL_REFERENCE_NODE = 28; + COLON_NODE = 29; + REFERENCE_ERROR_NODE = 30; + UNKNOWN_FUNCTION_NODE = 31; + APPEND_WHITESPACE_NODE = 32; + PREPEND_WHITESPACE_NODE = 33; + BEGIN_EMBEDDED_NODE_ARRAY = 34; + END_THUNK_NODE = 35; + CELL_REFERENCE_NODE = 36; + COLON_NODE_WITH_UIDS = 45; + REFERENCE_ERROR_WITH_UIDS = 46; + UID_REFERENCE_NODE = 48; + LET_BIND_NODE = 52; + LET_VAR_NODE = 53; + LET_END_SCOPE_NODE = 54; + LINKED_CELL_REF_NODE = 63; + LINKED_COLUMN_REF_NODE = 64; + LINKED_ROW_REF_NODE = 65; + CATEGORY_REF_NODE = 66; + COLON_TRACT_NODE = 67; + VIEW_TRACT_REF_NODE = 68; + } + enum ASTUidTractPurpose { + UIDS_INCLUDED = 0; + UIDS_PREMERGE = 1; + UIDS_PREMOVEREGION = 2; + UIDS_EXCLUDED = 3; + UIDS_ACTIVE = 4; + UIDS_PREMERGE_TOPLEFT = 5; + UIDS_REMOVED_BY_MOVE = 6; + FULLTUPLE_ROW_COLUMN_HEADER = 7; + FULLTUPLE_AGGREGATE_RULE_UID = 8; + FULLTUPLE_ROW_COLUMN_RULE_VALUE_PAIRS = 9; + } + repeated .TSCE.ASTNodeArrayArchive.ASTNodeArchive AST_node = 1; +} + +message .TSCE.FormulaTranslationFlagsArchive { + optional bool excel_import_translation = 1 [default = false]; + optional bool number_to_date_coercion_removal_translation = 2 [default = false]; + optional bool contains_uid_form_references = 3 [default = false]; + optional bool contains_frozen_references = 4 [default = false]; + optional bool returns_percent_formatted = 5 [default = false]; +} + +message .TSCE.FormulaArchive { + required .TSCE.ASTNodeArrayArchive AST_node_array = 1; + optional uint32 host_column = 2; + optional uint32 host_row = 3; + optional bool host_column_is_negative = 4 [default = false]; + optional bool host_row_is_negative = 5 [default = false]; + optional .TSCE.FormulaTranslationFlagsArchive translation_flags = 6; + optional .TSP.UUID host_table_uid = 7; + optional .TSP.UUID host_column_uid = 8; + optional .TSP.UUID host_row_uid = 9; +} + +message .TSCE.FunctorArchive { + required .TSCE.FormulaArchive formula = 1; + required uint32 num_args = 2; +} + +message .TSCE.FormatStructArchive { + required uint32 format_type = 1; + optional uint32 decimal_places = 2; + optional string currency_code = 3; + optional uint32 negative_style = 4; + optional bool show_thousands_separator = 5; + optional bool use_accounting_style = 6; + optional uint32 duration_style = 7; + optional uint32 base = 8; + optional uint32 base_places = 9; + optional bool base_use_minus_sign = 10; + optional uint32 fraction_accuracy = 11; + optional bool suppress_date_format = 12; + optional bool suppress_time_format = 13; + optional string date_time_format = 14; + optional uint32 duration_unit_largest = 15; + optional uint32 duration_unit_smallest = 16; +} + +message .TSCE.RangeCoordinateArchive { + required uint32 top_left_column = 1; + required uint32 top_left_row = 2; + required uint32 bottom_right_column = 3; + required uint32 bottom_right_row = 4; +} + +message .TSCE.TableTransposeInfoArchive { + required uint32 number_of_footer_rows = 3; + required .TSCE.RangeCoordinateArchive body_range_for_transposed_table = 4; +} + +message .TSCE.MergeOriginMovedArchive { + repeated uint32 src_column = 1; + repeated uint32 src_row = 2; + repeated uint32 dst_column = 3; + repeated uint32 dst_row = 4; +} + +message .TSCE.OwnerUIDMapperArchive { + required .TSP.UUID table_uid = 1; + required .TSP.UUID next_table_uid = 2; + required .TSP.UUID hidden_state_for_rows_owner_uid = 3; + required .TSP.UUID next_hidden_state_for_rows_owner_uid = 4; + required .TSP.UUID hidden_state_for_columns_owner_uid = 5; + required .TSP.UUID next_hidden_state_for_columns_owner_uid = 6; + required .TSP.UUID conditional_style_owner_uid = 7; + required .TSP.UUID next_conditional_style_owner_uid = 8; + required .TSP.UUID sort_rule_reference_tracker_owner_uid = 9; + required .TSP.UUID next_sort_rule_reference_tracker_owner_uid = 10; + required .TSP.UUID merge_owner_uid = 11; + required .TSP.UUID next_merge_owner_uid = 12; + required .TSP.UUID category_aggregates_owner_uid = 15; + required .TSP.UUID next_category_aggregates_owner_uid = 16; + required .TSP.UUID group_by_uid = 17; + required .TSP.UUID next_group_by_uid = 18; + required .TSP.UUID pencil_annotation_owner_uid = 19; + required .TSP.UUID next_pencil_annotation_owner_uid = 20; +} + +message .TSCE.RewriteTableUIDInfoArchive { + message TableUIDMapEntryArchive { + required .TSP.UUID prev_table_uid = 1; + required .TSP.UUID new_table_uid = 2; + } + repeated .TSCE.RewriteTableUIDInfoArchive.TableUIDMapEntryArchive table_uid_map = 1; +} + +message .TSCE.GroupByChangeArchive { + message GroupingColumnChangeArchive { + required uint32 old_level = 1; + required uint32 new_level = 2; + } + enum ChangeType { + NONE = 0; + GROUP_VALUE_CHANGE = 1; + GROUP_DEFINITION_CHANGE = 2; + REMOVE_GROUP_LEVEL = 3; + ADD_GROUP_LEVEL = 4; + PROMOTE = 5; + DEMOTE = 6; + } + required .TSCE.GroupByChangeArchive.ChangeType change_type = 1; + required .TSP.UUID group_by_uid = 2; + optional uint32 previous_level = 3; + optional uint32 updated_level = 4; + optional .TSP.UUIDMapArchive previous_to_updated_map = 5; + optional .TSP.UUIDMapArchive updated_to_previous_map = 6; + repeated .TSP.UUID removed_group_uids = 7; + repeated .TSCE.GroupByChangeArchive.GroupingColumnChangeArchive grouping_column_changes = 8; +} + +message .TSCE.RewriteGroupNodeUIDInfoArchive { + optional .TSP.UUID group_by_uid = 1; + required .TSP.UUIDMapArchive group_node_uid_map = 2; +} + +message .TSCE.IndexedUidsArchive { + message IndexedUid { + required .TSP.UUID uid_for_index = 1; + required uint32 index_for_uid = 2; + } + repeated .TSCE.IndexedUidsArchive.IndexedUid uids = 1; +} + +message .TSCE.RewriteRangeEntryArchive { + required uint32 range_location = 1; + required uint32 range_length = 2; + repeated .TSP.UUID range_uids = 3; + required uint32 offset = 4; +} + +message .TSCE.ColumnOrRowUuidsInfoArchive { + required bool is_rows = 1; + required .TSP.UUID table_uid = 2; + required .TSP.UUID cond_style_owner_uid = 3; + required .TSP.UUID group_by_uid = 4; + required .TSCE.IndexedUidsArchive uids = 5; + repeated .TSCE.RewriteRangeEntryArchive range_entries = 6; + required .TSCE.RangeCoordinateArchive table_range = 7; + optional .TSP.UUID insert_at_uid = 8; + optional .TSP.UUID insert_opposite_uid = 9; +} + +message .TSCE.RegionInfoArchive { + required .TSP.UUID table_uid = 1; + required .TSCE.IndexedUidsArchive column_uids = 2; + required .TSCE.IndexedUidsArchive row_uids = 3; +} + +message .TSCE.RegionMovedInfoArchive { + required .TSCE.RegionInfoArchive src_region = 1; + required .TSCE.RegionInfoArchive dst_region = 2; + optional bool span_rows = 3; + optional bool span_columns = 4; + optional .TSCE.RegionInfoArchive original_src_region = 5; + optional .TSP.UUID final_dest_table_uid = 6; +} + +message .TSCE.MergeSourceArchive { + required uint32 coord_column = 1; + required uint32 coord_row = 2; +} + +message .TSCE.HauntedOwnerArchive { + required .TSP.UUID owner_uid = 1; +} + +message .TSCE.CellCoordinateArchive { + optional fixed32 packedData = 1; + optional uint32 column = 2; + optional uint32 row = 3; +} + +message .TSCE.CellCoordinateVectorArchive { + repeated .TSCE.CellCoordinateArchive cell_coord = 1; +} + +message .TSCE.ExpandedCellRefObjectPairArchive { + required .TSCE.CellReferenceArchive cell_ref = 1; + required .TSP.Reference object = 2; +} + +message .TSCE.ExpandedCellRefObjectMapArchive { + repeated .TSCE.ExpandedCellRefObjectPairArchive cell_ref_object_pair = 1; +} + +message .TSCE.FormulaAtCoordArchive { + required uint32 column = 1; + required uint32 row = 2; + optional .TSCE.FormulaArchive formula = 3; + optional bool repeat_previous_formula = 4 [default = false]; +} + +message .TSCE.FormulaCoordPairsByOwnerArchive { + required uint32 owner_kind = 1; + optional .TSP.UUID owner_uid = 2; + repeated .TSCE.FormulaAtCoordArchive formula_at_coords = 3; +} + +message .TSCE.FormulasForUndoArchive { + repeated .TSCE.FormulaCoordPairsByOwnerArchive formulas_for_owner = 1; +} + +message .TSCE.FormulaRewriteCommandArchive { + optional .TSP.Reference table_rewrite_command = 1; + optional .TSK.CommandArchive super = 2; +} + +message .TSCE.TrackedReferenceArchive { + required .TSCE.ASTNodeArrayArchive ast = 1; + required uint32 formula_id = 2; +} + +message .TSCE.ExpandedTrackedReferenceArchive { + required .TSCE.ASTNodeArrayArchive ast = 1; + required uint32 formula_column = 2; + required uint32 formula_row = 3; +} + +message .TSCE.TrackedReferenceStoreArchive { + required .TSP.CFUUIDArchive uuid = 1; + repeated .TSP.Reference tracked_reference = 2 [deprecated = true]; + repeated .TSCE.TrackedReferenceArchive contained_tracked_reference = 3; + repeated .TSCE.ExpandedTrackedReferenceArchive contained_expanded_tracked_reference = 4; +} + +message .TSCE.ViewTractRefArchive { + required .TSP.UUID table_uid = 1; + optional .TSCE.ASTNodeArrayArchive.ASTUidTract uid_tract = 2; + optional .TSCE.PreserveColumnRowFlagsArchive preserve_flags = 3; + optional uint32 agg_index_level = 4; + optional sint32 column_group_level = 5; + optional sint32 row_group_level = 6; +} + +message .TSCE.BooleanCellValueArchive { + required bool value = 1; + optional .TSK.FormatStructArchive format = 2; + optional bool format_is_explicit = 3 [default = false]; +} + +message .TSCE.DateCellValueArchive { + required double value = 1; + required .TSK.FormatStructArchive format = 2; + optional bool format_is_implicit = 3 [deprecated = true]; + optional bool format_is_explicit = 4 [default = false]; +} + +message .TSCE.NumberCellValueArchive { + optional double value = 1; + optional int32 unit_index = 2; + optional string currency_code = 5; + required .TSK.FormatStructArchive format = 3; + optional bool format_is_implicit = 4 [deprecated = true]; + optional bool format_is_explicit = 6 [default = false]; + optional uint64 decimal_low = 7; + optional uint64 decimal_high = 8; +} + +message .TSCE.StringCellValueArchive { + required string value = 1; + required .TSK.FormatStructArchive format = 2; + optional bool format_is_implicit = 3 [deprecated = true]; + optional bool format_is_explicit = 4 [default = false]; + optional bool is_regex = 5 [default = false]; + optional bool is_case_sensitive_regex = 6 [default = false]; +} + +message .TSCE.ErrorCellValueArchive { + required int32 error_type = 1; + optional int32 extra_info_int = 3; + optional string extra_info_string = 4; + optional double extra_info_double = 5; +} + +message .TSCE.CellValueArchive { + enum CellValueType { + NIL_TYPE = 1; + BOOLEAN_TYPE = 2; + DATE_TYPE = 3; + NUMBER_TYPE = 4; + STRING_TYPE = 5; + } + required .TSCE.CellValueArchive.CellValueType cell_value_type = 1; + optional .TSCE.BooleanCellValueArchive boolean_value = 2; + optional .TSCE.DateCellValueArchive date_value = 3; + optional .TSCE.NumberCellValueArchive number_value = 4; + optional .TSCE.StringCellValueArchive string_value = 5; + optional .TSCE.ErrorCellValueArchive error_value = 6; +} + + +message .TST.Deprecated_TableStrokeArchive { + optional .TSD.StrokeArchive stroke = 1; + optional bool background = 2 [deprecated = true]; + optional float opacity = 3 [deprecated = true]; + optional bool empty = 4 [deprecated = true]; +} + +message .TST.CellStylePropertiesArchive { + optional .TSD.FillArchive cell_fill = 1; + optional bool text_wrap = 3; + optional .TST.Deprecated_TableStrokeArchive deprecated_top_stroke = 4; + optional .TST.Deprecated_TableStrokeArchive deprecated_right_stroke = 5; + optional .TST.Deprecated_TableStrokeArchive deprecated_bottom_stroke = 6; + optional .TST.Deprecated_TableStrokeArchive deprecated_left_stroke = 7; + optional int32 vertical_alignment = 8; + optional .TSWP.PaddingArchive padding = 9; + optional .TSD.StrokeArchive top_stroke = 10; + optional .TSD.StrokeArchive right_stroke = 11; + optional .TSD.StrokeArchive bottom_stroke = 12; + optional .TSD.StrokeArchive left_stroke = 13; +} + +message .TST.Deprecated_StrokePresetDataArchive { + required .TST.Deprecated_TableStrokeArchive deprecated_horizontal_stroke = 2; + required .TST.Deprecated_TableStrokeArchive deprecated_vertical_stroke = 1; + required .TST.Deprecated_TableStrokeArchive deprecated_exterior_stroke = 3; + required int32 deprecated_visible_mask = 5; +} + +message .TST.StrokePresetDataArchive { + optional .TSD.StrokeArchive horizontal_stroke = 1; + optional .TSD.StrokeArchive vertical_stroke = 2; + optional .TSD.StrokeArchive exterior_stroke = 3; + optional int32 visible_mask = 4; +} + +message .TST.StrokePresetListArchive { + required int32 count = 1; + repeated .TST.Deprecated_StrokePresetDataArchive deprecated_preset = 2; + repeated .TST.StrokePresetDataArchive preset = 3; +} + +message .TST.TableStylePropertiesArchive { + optional bool banded_rows = 1; + optional .TSD.FillArchive banded_fill = 2; + optional bool behaves_like_spreadsheet = 21; + optional bool auto_resize = 22; + optional .TST.Deprecated_TableStrokeArchive deprecated_header_row_separator_stroke = 4; + optional .TST.Deprecated_TableStrokeArchive deprecated_header_row_border_stroke = 5; + optional .TST.Deprecated_TableStrokeArchive deprecated_header_row_horizontal_stroke = 23; + optional .TST.Deprecated_TableStrokeArchive deprecated_header_row_vertical_stroke = 24; + optional .TST.Deprecated_TableStrokeArchive deprecated_header_column_border_stroke = 7; + optional .TST.Deprecated_TableStrokeArchive deprecated_header_column_separator_stroke = 8; + optional .TST.Deprecated_TableStrokeArchive deprecated_header_column_horizontal_stroke = 25; + optional .TST.Deprecated_TableStrokeArchive deprecated_header_column_vertical_stroke = 26; + optional .TST.Deprecated_TableStrokeArchive deprecated_footer_row_separator_stroke = 10; + optional .TST.Deprecated_TableStrokeArchive deprecated_footer_row_border_stroke = 11; + optional .TST.Deprecated_TableStrokeArchive deprecated_footer_row_horizontal_stroke = 27; + optional .TST.Deprecated_TableStrokeArchive deprecated_footer_row_vertical_stroke = 28; + optional .TST.Deprecated_TableStrokeArchive deprecated_table_body_horizontal_border_stroke = 12; + optional .TST.Deprecated_TableStrokeArchive deprecated_table_body_vertical_border_stroke = 29; + optional .TST.Deprecated_TableStrokeArchive deprecated_table_body_horizontal_stroke = 30; + optional .TST.Deprecated_TableStrokeArchive deprecated_table_body_vertical_stroke = 31; + optional .TST.StrokePresetListArchive stroke_preset_list = 32; + optional bool v_strokes_visible = 33; + optional bool h_strokes_visible = 34; + optional bool hr_separator_visible = 35; + optional bool hc_separator_visible = 36; + optional bool footer_separator_visible = 37; + optional bool table_border_visible = 38; + optional bool table_header_border_visible = 39; + optional bool table_hc_divider_visible = 42; + optional bool table_hr_divider_visible = 43; + optional bool table_footer_divider_visible = 44; + optional int32 OBSOLETE_master_font_size = 40; + optional string master_font_family = 41; + optional .TSWP.WritingDirectionType writing_direction = 45; + optional .TSD.StrokeArchive header_row_separator_stroke = 46; + optional .TSD.StrokeArchive header_row_border_stroke = 47; + optional .TSD.StrokeArchive header_row_horizontal_stroke = 48; + optional .TSD.StrokeArchive header_row_vertical_stroke = 49; + optional .TSD.StrokeArchive header_column_border_stroke = 50; + optional .TSD.StrokeArchive header_column_separator_stroke = 51; + optional .TSD.StrokeArchive header_column_horizontal_stroke = 52; + optional .TSD.StrokeArchive header_column_vertical_stroke = 53; + optional .TSD.StrokeArchive footer_row_separator_stroke = 54; + optional .TSD.StrokeArchive footer_row_border_stroke = 55; + optional .TSD.StrokeArchive footer_row_horizontal_stroke = 56; + optional .TSD.StrokeArchive footer_row_vertical_stroke = 57; + optional .TSD.StrokeArchive table_body_horizontal_border_stroke = 58; + optional .TSD.StrokeArchive table_body_vertical_border_stroke = 59; + optional .TSD.StrokeArchive table_body_horizontal_stroke = 60; + optional .TSD.StrokeArchive table_body_vertical_stroke = 61; + optional .TSD.StrokeArchive category_level1_top_stroke = 62; + optional .TSD.StrokeArchive category_level2_top_stroke = 63; + optional .TSD.StrokeArchive category_level3_top_stroke = 64; + optional .TSD.StrokeArchive category_level4_top_stroke = 65; + optional .TSD.StrokeArchive category_level5_top_stroke = 66; + optional .TSD.StrokeArchive category_level1_bottom_stroke = 67; + optional .TSD.StrokeArchive category_level2_bottom_stroke = 68; + optional .TSD.StrokeArchive category_level3_bottom_stroke = 69; + optional .TSD.StrokeArchive category_level4_bottom_stroke = 70; + optional .TSD.StrokeArchive category_level5_bottom_stroke = 71; + optional .TSD.StrokeArchive category_level1_interior_stroke = 72; + optional .TSD.StrokeArchive category_level2_interior_stroke = 73; + optional .TSD.StrokeArchive category_level3_interior_stroke = 74; + optional .TSD.StrokeArchive category_level4_interior_stroke = 75; + optional .TSD.StrokeArchive category_level5_interior_stroke = 76; + optional .TSD.StrokeArchive category_level1_label_separator_stroke = 77; + optional .TSD.StrokeArchive category_level2_label_separator_stroke = 78; + optional .TSD.StrokeArchive category_level3_label_separator_stroke = 79; + optional .TSD.StrokeArchive category_level4_label_separator_stroke = 80; + optional .TSD.StrokeArchive category_level5_label_separator_stroke = 81; + optional .TSD.StrokeArchive table_body_pivot_group_horizontal_stroke = 82; + optional .TSD.StrokeArchive table_body_pivot_group_vertical_stroke = 83; + optional .TSD.StrokeArchive table_body_pivot_deemphasis_horizontal_stroke = 84; + optional .TSD.StrokeArchive table_body_pivot_emphasis_vertical_stroke = 85; + optional .TSD.StrokeArchive header_column_pivot_group_horizontal_stroke = 86; + optional .TSD.StrokeArchive header_column_pivot_group_deemphasis_stroke = 87; + optional .TSD.StrokeArchive header_column_pivot_separator_stroke = 88; + optional .TSD.StrokeArchive header_row_pivot_group_vertical_stroke = 89; + optional .TSD.StrokeArchive header_row_pivot_group_deemphasis_stroke = 90; + optional .TSD.StrokeArchive header_row_pivot_title_stroke = 91; + optional .TSD.StrokeArchive footer_row_pivot_group_vertical_stroke = 92; +} + +message .TST.TableStylePresetArchive { + optional int32 index = 1; + optional .TSP.Reference image = 2; + optional .TSP.Reference style_network = 3; +} + +message .TST.TableStrokePresetArchive { + required int32 index = 1; +} + +message .TST.ThemePresetsArchive { + repeated .TSP.Reference table_style_presets = 1; + repeated .TSP.Reference table_cell_stroke_presets = 2; + extend .TSS.ThemeArchive { + optional .TST.ThemePresetsArchive extension = 200; + } +} + + +enum .TST.CellType { + genericCellType = 0; + spanCellType = 1; + numberCellType = 2; + textCellType = 3; + formulaCellType = 4; + dateCellType = 5; + boolCellType = 6; + durationCellType = 7; + formulaErrorCellType = 8; + automaticCellType = 9; +} + +enum .TST.CellValueType { + emptyCellValueType = 0; + numberCellValueType = 1; + stringCellValueType = 2; + providedCellValueType = 3; + dateCellValueType = 4; + boolCellValueType = 5; + durationCellValueType = 6; + errorCellValueType = 7; + richTextCellType = 8; + currencyCellValueType = 9; +} + +enum .TST.TableDimensionArchive { + dimensionNeither = -1; + dimensionRow = 0; + dimensionColumn = 1; +} + +enum .TST.SelectionTypeArchive { + deprecatedCellSelectionType = 0; + rowSelectionType = 1; + columnSelectionType = 2; + deprecatedCellEditingSelectionType = 3; + deprecatedTableNameSelectionType = 4; + deprecatedTableSelectionType = 5; + regionSelectionType = 6; + noSelectionType = 7; +} + +enum .TST.FillDirectionArchive { + kTSTFillDownArchive = 1; + kTSTFillUpArchive = 2; + kTSTFillRightArchive = 3; + kTSTFillLeftArchive = 4; +} + +enum .TST.MergeActionArchive { + mergeActionInsert = 1; + mergeActionRemove = 2; + mergeActionShrink = 3; + mergeActionGrow = 4; +} + +enum .TST.HideShowActionArchive { + hideShowActionHide = 0; + hideShowActionShow = 1; +} + +message .TST.CellID { + required fixed32 packedData = 1; + optional .TSCE.CellCoordinateArchive expanded_coord = 2; +} + +message .TST.CellUIDLookupListArchive { + optional .TSCE.UidLookupListArchive column_uids = 1; + optional .TSCE.UidLookupListArchive row_uids = 2; + repeated int32 column_indexes = 3; + repeated int32 row_indexes = 4; +} + +message .TST.CellUIDListArchive { + repeated .TSP.UUID row_uids = 1; + repeated .TSP.UUID column_uids = 2; + repeated int32 compressed_row_indexes = 3; + repeated int32 compressed_column_indexes = 4; + optional .TST.CellUIDLookupListArchive uncompressed_lookup_list = 5; +} + +message .TST.TableSize { + required fixed32 packedData = 1; + optional uint32 num_columns = 2; + optional uint32 num_rows = 3; +} + +message .TST.ExpandedTableSize { + required uint32 num_columns = 1; + required uint32 num_rows = 2; +} + +message .TST.CellRange { + required .TST.CellID origin = 1; + required .TST.TableSize size = 2; +} + +message .TST.ExpandedCellRange { + required .TSCE.CellCoordinateArchive origin = 1; + required .TST.ExpandedTableSize size = 2; +} + +message .TST.TableSelection { + required .TST.CellRange cellRange = 1; + required .TST.CellRange extendedCellRange = 2; + required bool extendedCellRangeValid = 3; + required .TST.SelectionTypeArchive selection_type = 4; +} + +message .TST.TileRowInfo { + required uint32 tile_row_index = 1; + required uint32 cell_count = 2; + required bytes cell_storage_buffer_pre_bnc = 3; + required bytes cell_offsets_pre_bnc = 4; + optional uint32 storage_version = 5; + optional bytes cell_storage_buffer = 6; + optional bytes cell_offsets = 7; + optional bool has_wide_offsets = 8; +} + +message .TST.Tile { + required uint32 maxColumn = 1; + required uint32 maxRow = 2; + required uint32 numCells = 3; + required uint32 numrows = 4; + repeated .TST.TileRowInfo rowInfos = 5; + optional uint32 storage_version = 6; + optional bool last_saved_in_BNC = 7; + optional bool should_use_wide_rows = 8; +} + +message .TST.TileStorage { + message Tile { + required uint32 tileid = 1; + required .TSP.Reference tile = 2; + } + repeated .TST.TileStorage.Tile tiles = 1; + optional uint32 tile_size = 2; + optional bool should_use_wide_rows = 3; +} + +message .TST.PopUpMenuModel { + message CellValue { + required .TST.PopUpMenuModel.CellValueType cell_value_type = 1; + optional .TSCE.BooleanCellValueArchive boolean_value = 2; + optional .TSCE.DateCellValueArchive date_value = 3; + optional .TSCE.NumberCellValueArchive number_value = 4; + optional .TSCE.StringCellValueArchive string_value = 5; + } + enum CellValueType { + NIL_TYPE = 1; + BOOLEAN_TYPE = 2; + DATE_TYPE = 3; + NUMBER_TYPE = 4; + STRING_TYPE = 5; + } + repeated .TST.PopUpMenuModel.CellValue item = 1 [deprecated = true]; + repeated .TSCE.CellValueArchive tsce_item = 2; +} + +message .TST.ImportWarningSetArchive { + message FormulaImportWarning { + required .TST.ImportWarningSetArchive.FormulaWarningType formula_warning_type = 1; + optional string original_formula = 2; + optional string supplementary_text = 3; + optional int32 formula_warning_type_int = 4; + } + enum FormulaWarningType { + THREE_D_REFERENCE = 1; + ARRAYED_FORMULA = 2; + DIFFERENT_BEHAVIOR_FOR_FUNCTION = 3; + ERROR_TOKEN = 4; + EXTERNAL_REFERENCE = 5; + NATURAL_LANGUAGE_FORMULA = 6; + REFERENCE_OUT_OF_BOUNDS = 7; + SHARED_FORMULA_BASE_NOT_FOUND = 8; + UNKNOWN_NAME = 9; + UNSUPPORTED_FORMULA = 10; + UNSUPPORTED_FUNCTION = 11; + UNSUPPORTED_NAME = 12; + TRANSPOSED_NO_ISSUES = 13; + TRANSPOSED_WITH_ISSUES = 14; + TRANSPOSED_WITH_ISSUES_UNCHANGED = 15; + } + optional .TST.ImportWarningSetArchive.FormulaImportWarning formula_import_warning = 1; + optional bool cond_format_above_avg_equal_avg = 2 [default = false]; + optional bool cond_format_above_avg_std_dev = 3 [default = false]; + optional bool cond_format_complex_formula = 4 [default = false]; + optional bool cond_format_contains_errors = 5 [default = false]; + optional bool cond_format_expr = 6 [default = false]; + optional bool cond_format_not_contains_errors = 7 [default = false]; + optional bool cond_format_parameters_not_all_same_type = 8 [default = false]; + optional bool cond_format_stop_if_true = 9 [default = false]; + optional bool cond_format_unsupported_operator = 10 [default = false]; + optional bool cond_format_unsupported_styling = 11 [default = false]; + optional bool cond_format_unsupported_time_period = 12 [default = false]; + optional bool error_cell_with_no_formula = 13 [default = false]; + optional bool unsupported_cond_format = 14 [default = false]; + optional string original_data_format = 15; + optional bool formula_warning_filtered_column_formula_not_copied = 16 [default = false]; + optional bool duration_format_range_changed = 17 [default = false]; +} + +message .TST.CellRefImportWarningSetPairArchive { + required .TSCE.CellReferenceArchive cell_ref = 1; + optional .TST.ImportWarningSetArchive warning_set = 3; +} + +message .TST.ImportWarningSetByCellRefArchive { + repeated .TST.CellRefImportWarningSetPairArchive cellref_warning_set_pair = 1; +} + +message .TST.TableDataList { + message ListEntry { + required uint32 key = 1; + required uint32 refcount = 2; + optional string string = 3; + optional .TSP.Reference reference = 4; + optional .TSCE.FormulaArchive formula = 5; + optional .TSK.FormatStructArchive format = 6; + optional .TSK.CustomFormatArchive custom_format = 8; + optional .TSP.Reference rich_text_payload = 9; + optional .TSP.Reference comment_storage = 10; + optional .TST.ImportWarningSetArchive import_warning_set = 11; + optional .TST.CellSpecArchive cell_spec = 12; + } + enum ListType { + STRING = 1; + FORMAT = 2; + FORMULA = 3; + STYLE = 4; + FORMULA_ERROR = 5; + CUSTOM_FORMAT = 6; + MULTIPLE_CHOICE_LIST_FORMAT = 7; + RICH_TEXT_PAYLOAD = 8; + CONDITIONAL_STYLE = 9; + COMMENT_STORAGE = 10; + IMPORT_WARNING = 11; + CONTROL_CELL_SPEC = 12; + } + required .TST.TableDataList.ListType listType = 1; + required uint32 nextListID = 2; + repeated .TST.TableDataList.ListEntry entries = 3; + repeated .TSP.Reference segments = 4; + optional bool is_new_for_bnc = 5; +} + +message .TST.TableDataListSegment { + required .TST.TableDataList.ListType list_type = 1; + required .TSP.Range key_range = 2; + repeated .TST.TableDataList.ListEntry entries = 3; +} + +message .TST.TableRBTree { + message Node { + required uint32 key = 1; + required uint32 value = 2; + } + repeated .TST.TableRBTree.Node nodes = 1; +} + +message .TST.HeaderStorageBucket { + message Header { + required uint32 index = 1; + required float size = 2; + required uint32 hidingState = 3; + required uint32 numberOfCells = 4; + optional .TSP.Reference cell_style = 5; + optional .TSP.Reference text_style = 6; + } + required uint32 bucketHashFunction = 1; + repeated .TST.HeaderStorageBucket.Header headers = 2; +} + +message .TST.HeaderStorage { + required uint32 bucketHashFunction = 1; + repeated .TSP.Reference buckets = 2; +} + +message .TST.DataStore { + required .TST.HeaderStorage rowHeaders = 1; + required .TSP.Reference columnHeaders = 2; + required .TST.TileStorage tiles = 3; + required .TSP.Reference stringTable = 4; + required .TSP.Reference styleTable = 5; + required .TSP.Reference formula_table = 6; + optional .TSP.Reference formulaErrorTable = 12; + required .TSP.Reference format_table_pre_bnc = 11; + optional .TSP.Reference multipleChoiceListFormatTable = 16; + optional .TSP.Reference merge_region_map = 13; + optional .TSP.Reference deprecated_custom_format_table = 15; + required uint32 nextRowStripID = 7; + required uint32 nextColumnStripID = 8; + required .TST.TableRBTree rowTileTree = 9; + required .TST.TableRBTree columnTileTree = 10; + optional uint32 storage_version_pre_bnc = 14; + optional .TSP.Reference rich_text_table = 17; + optional .TSP.Reference conditionalstyletable = 18; + optional .TSP.Reference commentStorageTable = 19; + optional .TSP.Reference importWarningSetTable = 20; + optional .TSP.Reference control_cell_spec_table = 21; + optional .TSP.Reference format_table = 22; +} + +message .TST.TableInfoArchive { + required .TSD.DrawableArchive super = 1; + required .TSP.Reference tableModel = 2; + optional .TSP.Reference editing_state = 3 [deprecated = true]; + optional .TSP.Reference summary_model = 4; + optional .TSP.Reference category_order = 5; + optional .TSP.Reference view_column_row_uids = 6; + optional .TSP.UUID group_by_uuid = 7; + optional .TSP.UUID hidden_states_uuid = 8; + optional uint32 formula_coord_space_in_pre40 = 9 [deprecated = true]; + optional uint32 formula_coord_space = 10; + optional .TSCE.CoordMapperArchive pasteboard_coord_mapper = 13; + optional .TST.LayoutEngineArchive layout_engine = 14; + optional .TSP.Reference pivot_data_model = 15; + optional bool is_a_pivot_table = 16; + optional .TSP.Reference pivot_order = 17; +} + +message .TST.CategoryInfoArchive { + required .TSD.DrawableArchive super = 1; + required .TSP.Reference tableModel = 2; +} + +message .TST.WPTableInfoArchive { + required .TST.TableInfoArchive super = 1; + optional .TSP.Reference storage = 2; +} + +message .TST.TableStyleNetworkArchive { + required .TSP.Reference body_text_style = 1; + required .TSP.Reference header_row_text_style = 2; + required .TSP.Reference header_column_text_style = 3; + required .TSP.Reference footer_row_text_style = 4; + required .TSP.Reference body_cell_style = 5; + required .TSP.Reference header_row_style = 6; + required .TSP.Reference header_column_style = 7; + required .TSP.Reference footer_row_style = 8; + required .TSP.Reference table_style = 9; + optional .TSP.Reference table_name_style = 10; + optional .TSP.Reference table_name_shape_style = 11; + optional uint32 preset_id = 12; + optional .TSP.Reference category_level_1_text_style = 13; + optional .TSP.Reference category_level_2_text_style = 14; + optional .TSP.Reference category_level_3_text_style = 15; + optional .TSP.Reference category_level_4_text_style = 16; + optional .TSP.Reference category_level_5_text_style = 17; + optional .TSP.Reference category_level_1_style = 18; + optional .TSP.Reference category_level_2_style = 19; + optional .TSP.Reference category_level_3_style = 20; + optional .TSP.Reference category_level_4_style = 21; + optional .TSP.Reference category_level_5_style = 22; + optional .TSP.Reference label_level_1_text_style = 23; + optional .TSP.Reference label_level_2_text_style = 24; + optional .TSP.Reference label_level_3_text_style = 25; + optional .TSP.Reference label_level_4_text_style = 26; + optional .TSP.Reference label_level_5_text_style = 27; + optional .TSP.Reference label_level_1_style = 28; + optional .TSP.Reference label_level_2_style = 29; + optional .TSP.Reference label_level_3_style = 30; + optional .TSP.Reference label_level_4_style = 31; + optional .TSP.Reference label_level_5_style = 32; + optional .TSP.Reference pivot_body_summary_row_style = 33; + optional .TSP.Reference pivot_body_summary_column_style = 34; + optional .TSP.Reference pivot_header_column_summary_style = 35; +} + +message .TST.TableGroupSortOrderUIDArchive { + message GroupSortRuleUIDArchive { + enum Direction { + ascending = 0; + descending = 1; + } + optional .TSP.UUID grouping_column_uid = 1; + optional .TSP.UUID column_uid = 2; + optional .TST.TableGroupSortOrderUIDArchive.GroupSortRuleUIDArchive.Direction direction = 3; + } + repeated .TST.TableGroupSortOrderUIDArchive.GroupSortRuleUIDArchive group_sort_rules = 1; +} + +message .TST.TableSortOrderArchive { + message SortRuleArchive { + enum Direction { + ascending = 0; + descending = 1; + } + required uint32 index = 1; + required .TST.TableSortOrderArchive.SortRuleArchive.Direction direction = 2; + } + enum SortType { + entire_table = 0; + row_range = 1; + } + required .TST.TableSortOrderArchive.SortType type = 1; + repeated .TST.TableSortOrderArchive.SortRuleArchive rules = 2; +} + +message .TST.TableSortOrderUIDArchive { + message SortRuleArchive { + enum Direction { + ascending = 0; + descending = 1; + } + required .TSP.UUID column_uid = 1; + required .TST.TableSortOrderUIDArchive.SortRuleArchive.Direction direction = 2; + } + enum SortType { + entire_table = 0; + row_range = 1; + } + required .TST.TableSortOrderUIDArchive.SortType type = 1; + repeated .TST.TableSortOrderUIDArchive.SortRuleArchive rules = 2; +} + +message .TST.SortRuleReferenceTrackerArchive { + required .TSP.Reference reference_tracker = 1; +} + +message .TST.CellRegion { + repeated .TST.CellRange cell_ranges = 1; +} + +message .TST.CellUIDRegionArchive { + repeated .TSP.UUIDRectArchive cell_uid_ranges = 1; +} + +message .TST.StructuredTextImportRecord { + required .TSK.StructuredTextImportSettings import_settings = 1; + optional string import_source = 2; + optional double import_date = 3; + optional bytes source_data = 4; + optional uint64 source_encoding = 5; + optional float confidence = 6; + optional .TST.CellRegion imported_region = 7; + optional uint64 source_row_count = 8; + optional uint64 source_column_count = 9; +} + +message .TST.TableModelArchive { + required string table_id = 1; + optional string from_table_id = 43; + optional bool was_cut = 50; + required .TSP.Reference table_style = 3; + required .TSP.Reference body_text_style = 24; + required .TSP.Reference header_row_text_style = 25; + required .TSP.Reference header_column_text_style = 26; + required .TSP.Reference footer_row_text_style = 27; + required .TSP.Reference body_cell_style = 18; + required .TSP.Reference header_row_style = 19; + required .TSP.Reference header_column_style = 20; + required .TSP.Reference footer_row_style = 21; + optional .TSP.Reference table_name_style = 30; + optional .TSP.Reference table_name_shape_style = 36; + optional .TSP.Reference table_style_preset = 48; + optional uint32 preset_index = 28; + required .TST.DataStore base_data_store = 4; + optional .TSP.Reference provider = 5; + required uint32 number_of_rows = 6; + required uint32 number_of_columns = 7; + required string table_name = 8; + optional bool table_name_enabled = 22; + optional double table_name_height = 33; + optional bool table_name_border_enabled = 37; + optional uint32 number_of_header_rows = 9; + optional uint32 number_of_header_columns = 10; + optional uint32 number_of_footer_rows = 11; + optional bool header_rows_frozen = 12; + optional bool header_columns_frozen = 13; + optional uint32 number_of_hidden_rows = 14; + optional uint32 number_of_hidden_columns = 15; + optional uint32 number_of_user_hidden_rows = 41; + optional uint32 number_of_user_hidden_columns = 42; + optional uint32 number_of_filtered_rows = 40; + required double default_row_height = 16; + required double default_column_width = 17; + optional .TST.CellID origin_offset = 23 [deprecated = true]; + optional bool repeating_header_rows_enabled = 29; + optional bool style_apply_clears_all = 31; + optional bool repeating_header_columns_enabled = 32; + optional .TSP.Reference hidden_state_formula_owner_for_columns = 34; + optional .TSP.Reference hidden_state_formula_owner_for_rows = 35; + optional .TSP.Reference row_filter_set_pre_pivot = 38; + optional .TSP.CFUUIDArchive conditional_style_formula_owner_id = 39; + optional .TST.TableSortOrderArchive sort_order = 44; + optional .TST.SortRuleReferenceTrackerArchive sort_rule_reference_tracker = 45; + optional .TSP.Reference base_column_row_uids = 46; + optional .TST.MergeOwnerArchive merge_owner = 47; + optional .TSP.Reference stroke_sidecar = 49; + optional bool preset_needs_strong_ownership = 51; + optional .TST.StructuredTextImportRecord text_import_record = 52; + optional .TSP.Reference category_level_1_style = 60; + optional .TSP.Reference category_level_2_style = 61; + optional .TSP.Reference category_level_3_style = 62; + optional .TSP.Reference category_level_4_style = 63; + optional .TSP.Reference category_level_5_style = 64; + optional .TSP.Reference category_level_1_text_style = 65; + optional .TSP.Reference category_level_2_text_style = 66; + optional .TSP.Reference category_level_3_text_style = 67; + optional .TSP.Reference category_level_4_text_style = 68; + optional .TSP.Reference category_level_5_text_style = 69; + optional .TST.HiddenStatesOwnerArchive hidden_states_owner = 70; + optional .TSP.Reference label_level_1_style = 71; + optional .TSP.Reference label_level_2_style = 72; + optional .TSP.Reference label_level_3_style = 73; + optional .TSP.Reference label_level_4_style = 74; + optional .TSP.Reference label_level_5_style = 75; + optional .TSP.Reference label_level_1_text_style = 76; + optional .TSP.Reference label_level_2_text_style = 77; + optional .TSP.Reference label_level_3_text_style = 78; + optional .TSP.Reference label_level_4_text_style = 79; + optional .TSP.Reference label_level_5_text_style = 80; + optional .TST.CategoryOwnerArchive category_owner_deprecated = 81; + optional .TST.PencilAnnotationOwnerArchive pencil_annotation_owner = 82; + optional string from_group_by_uid = 83; + optional .TSCE.HauntedOwnerArchive haunted_owner = 84; + optional .TSP.Reference pivot_owner = 85; + optional .TSP.Reference category_owner = 86; + optional .TSP.Reference pivot_body_summary_row_style = 87; + optional .TSP.Reference pivot_body_summary_column_style = 88; + optional .TSP.Reference pivot_header_column_summary_style = 89; + repeated uint32 pivot_value_types_by_col = 90; + repeated uint32 pivot_date_grouping_columns = 91; + repeated uint32 pivot_date_grouping_types = 92; +} + +message .TST.SummaryModelArchive { + required .TSP.Reference table_info = 1; + optional .TST.DataStore data_store = 2; + optional .TSP.Reference column_row_uids = 3; + optional .TSP.UUID aggregate_formula_owner_uuid = 4; + optional .TSP.Reference summary_cell_vendor = 5; + optional double category_column_width = 10; + optional double summary_row_level_1_height = 11 [deprecated = true]; + optional double summary_row_level_2_height = 12 [deprecated = true]; + optional double summary_row_level_3_height = 13 [deprecated = true]; + optional double summary_row_level_4_height = 14 [deprecated = true]; + optional double summary_row_level_5_height = 15 [deprecated = true]; + optional double summary_label_row_level_1_height = 16 [deprecated = true]; + optional double summary_label_row_level_2_height = 17 [deprecated = true]; + optional double summary_label_row_level_3_height = 18 [deprecated = true]; + optional double summary_label_row_level_4_height = 19 [deprecated = true]; + optional double summary_label_row_level_5_height = 20 [deprecated = true]; + optional uint32 label_row_visibility_1 = 21 [deprecated = true]; + optional uint32 label_row_visibility_2 = 22 [deprecated = true]; + optional uint32 label_row_visibility_3 = 23 [deprecated = true]; + optional uint32 label_row_visibility_4 = 24 [deprecated = true]; + optional uint32 label_row_visibility_5 = 25 [deprecated = true]; + repeated double summary_row_height_list = 26; + repeated double label_row_height_list = 27; + repeated uint32 label_row_visibility_list = 28; + optional .TST.TableGroupSortOrderUIDArchive group_sort_order = 29; +} + +message .TST.SummaryModelGroupByChangeStateArchive { + optional .TSP.Reference cell_map = 1; + repeated double summary_row_height_list = 2; + repeated double label_row_height_list = 3; + repeated uint32 label_row_visibility_list = 4; +} + +message .TST.ColumnRowUIDMapArchive { + repeated .TSP.UUID sorted_column_uids = 1; + repeated uint32 column_index_for_uid = 2; + repeated uint32 column_uid_for_index = 3; + repeated .TSP.UUID sorted_row_uids = 4; + repeated uint32 row_index_for_uid = 5; + repeated uint32 row_uid_for_index = 6; +} + +message .TST.StrokeLayerArchive { + message StrokeRunArchive { + optional int32 origin = 1; + optional uint32 length = 2; + optional .TSD.StrokeArchive stroke = 3; + optional uint32 order = 4; + } + optional uint32 row_column_index = 1; + repeated .TST.StrokeLayerArchive.StrokeRunArchive stroke_runs = 2; +} + +message .TST.StrokeSidecarArchive { + optional uint32 max_order = 1; + optional uint32 column_count = 2; + optional uint32 row_count = 3; + repeated .TSP.Reference left_column_stroke_layers = 4; + repeated .TSP.Reference right_column_stroke_layers = 5; + repeated .TSP.Reference top_row_stroke_layers = 6; + repeated .TSP.Reference bottom_row_stroke_layers = 7; +} + +message .TST.DurationWrapperArchive { +} + +message .TST.Cell { + required .TST.CellValueType valueType = 2; + optional .TSP.Reference cell_style = 3; + optional .TSP.Reference text_style = 4; + optional double numberValue = 5; + optional string stringValue = 6; + optional bool boolValue = 7; + optional .TSK.FormatStructArchive current_format = 9; + optional .TSP.Reference formulaError = 10; + optional .TSK.FormatStructArchive number_format = 11; + optional .TSK.FormatStructArchive currency_format = 12; + optional .TSK.FormatStructArchive duration_format = 13; + optional .TSK.FormatStructArchive date_format = 14; + optional .TSK.FormatStructArchive custom_format = 16; + optional .TSK.FormatStructArchive base_format = 17; + optional uint32 explicit_format_flags = 19; + optional .TSP.Reference richText = 20; + optional .TSP.Reference conditional_style = 21; + optional .TSP.Reference comment_storage = 23; + optional uint32 conditional_style_applied_rule = 24; + optional .TST.ImportWarningSetArchive import_warning_set = 25; + optional .TSK.CustomFormatArchive custom_format_object = 26; + optional .TST.CellBorderArchive cell_border = 27; + optional .TST.CellSpecArchive cell_spec = 28; + optional uint32 cell_format_kind = 29; + optional .TSK.FormatStructArchive text_format = 30; + optional .TSK.FormatStructArchive boolean_format = 31; + optional uint64 decimal_value_low = 32; + optional uint64 decimal_value_high = 33; +} + +message .TST.MergeRegionMapArchive { + repeated .TST.CellRange cell_range = 1; +} + +message .TST.CellMapArchive { + repeated .TSP.Reference cell_tiles = 2; + required bool uid_based = 3; + repeated .TSCE.CellCoordinateArchive expanded_cell_ids = 14; + optional .TST.CellUIDListArchive cell_uid_list = 5; + repeated .TSP.UUIDRectArchive merge_uid_ranges = 7; + repeated .TSP.UUIDRectArchive unmerge_uid_ranges = 9; + repeated .TST.MergeOperationArchive merge_actions = 13; + optional bool may_modify_formulas_in_cells = 10 [default = true]; + optional bool may_modify_values_referenced_by_formulas = 11 [default = true]; +} + +message .TST.CellListArchive { + message OptionalCell { + optional .TST.Cell cell = 1; + } + repeated .TST.CellListArchive.OptionalCell cells = 1; + optional uint32 trailing_empty_cell_count = 2; +} + +message .TST.ConcurrentCellMapArchive { + repeated .TSP.Reference cell_lists = 1; + required bool uid_based = 2; + repeated .TST.MergeOperationArchive merge_actions = 3; + optional bool may_modify_formulas_in_cells = 4 [default = true]; + optional bool may_modify_values_referenced_by_formulas = 5 [default = true]; + optional bool affects_cell_borders = 6 [default = true]; +} + +message .TST.ConcurrentCellListArchive { + message OptionalCell { + optional .TST.Cell cell = 1; + } + repeated .TST.ConcurrentCellListArchive.OptionalCell cells = 1; + optional .TSP.UUIDRectArchive cell_uid_range = 2; + optional .TST.CellRange cell_range = 3; +} + +message .TST.CellFormatAndValueArchive { + required .TST.CellValueType valueType = 1; + optional double numberValue = 2; + optional string stringValue = 3; + optional bool boolValue = 4; + optional .TSP.Reference richTextStorage = 5; + required bool use_all_spare_formats = 6; + required uint32 explicit_flags = 7; + required uint32 cell_format_kind = 8; + optional .TSK.FormatStructArchive number_format = 10; + optional .TSK.FormatStructArchive currency_format = 11; + optional .TSK.FormatStructArchive date_format = 12; + optional .TSK.FormatStructArchive duration_format = 13; + optional .TSK.FormatStructArchive text_format = 14; + optional .TSK.FormatStructArchive boolean_format = 15; + optional string formatted_value = 16; + optional .TSP.Reference formatted_rich_text_value = 17; + required bool apply_spare_format_only = 18; + required bool spare_format_type = 19; + optional uint64 decimal_low = 20; + optional uint64 decimal_high = 21; + optional bool suppress_apply_value = 22; +} + +message .TST.CellSpecArchive { + required uint32 interaction_type = 1; + optional .TSCE.FormulaArchive formula = 2; + optional double range_control_min = 3; + optional double range_control_max = 4; + optional double range_control_inc = 5; + optional .TSP.Reference chooser_control_popup_model = 6; + optional bool chooser_control_start_w_first = 7; + optional bool category_summary_should_display_label = 8 [deprecated = true]; +} + +message .TST.CommentStorageWrapperArchive { + optional .TSP.Reference comment_storage = 1; +} + +message .TST.CellDiffArchive { + required .TSS.CommandPropertyMapArchive property_map_to_set = 1; + required .TSS.CommandPropertyMapArchive property_map_to_reset = 2; +} + +message .TST.CellDiffArray { + optional .TSP.LargeArray large_array = 1; +} + +message .TST.CellDiffArraySegment { + optional .TSP.LargeArraySegment large_array_segment = 1; + repeated .TST.CellDiffArchive elements = 2; +} + +message .TST.CellDiffMapArchive { + required bool uid_based = 1; + repeated .TSCE.CellCoordinateArchive expanded_cell_ids = 2; + required .TST.CellUIDListArchive cell_uids = 3; + optional .TSP.Reference cell_diff_array = 4; +} + +message .TST.HierarchicalCellDiffMapArchive { + message BoxedRow { + required .TSP.IndexSet column_index_set = 1; + repeated .TST.CellDiffArchive cell_diff_list = 2; + } + required int32 num_row_rules = 1; + required int32 num_column_rules = 2; + repeated .TSP.UUID row_header_uids = 3; + repeated .TSP.UUID column_header_uids = 4; + repeated .TSP.UUID aggregate_rule_uids = 5; + required .TST.TableDimensionArchive active_flattening_dimension = 6; + repeated .TSP.UUID row_value_uids = 7; + repeated uint32 row_level_preorder = 8; + repeated .TSP.UUID column_value_uids = 9; + repeated uint32 column_level_preorder = 10; + repeated .TST.HierarchicalCellDiffMapArchive.BoxedRow cell_diff_storage = 11; + repeated double row_sizes = 12; + repeated double column_sizes = 13; +} + +message .TST.DoubleStyleMapArchive { + message DoubleStyleMapEntryArchive { + required .TST.CellID cell_id = 1; + required .TSP.Reference old_style = 2; + required .TSP.Reference new_style = 3; + } + required uint32 capacity = 1; + required uint32 count = 2; + repeated .TST.DoubleStyleMapArchive.DoubleStyleMapEntryArchive cell_map_entry = 3; +} + +message .TST.StyleTableMapArchive { + message StyleTableMapEntryArchive { + required uint32 key = 1; + required .TSP.Reference old_style = 2; + required .TSP.Reference new_style = 3; + } + required uint32 capacity = 1; + required uint32 count = 2; + repeated .TST.StyleTableMapArchive.StyleTableMapEntryArchive map_entry = 3; +} + +message .TST.SelectionArchive { + optional .TSP.Reference tableModel = 1 [deprecated = true]; + required .TST.SelectionTypeArchive selection_type = 4; + optional .TST.CellID anchor_cell = 5; + repeated .TST.CellRange cell_ranges = 6; + repeated .TST.CellRange base_ranges = 7; + optional .TST.CellID cursor_cell = 8; + optional .TSP.Reference table_info = 9; + optional .TST.CellUIDRegionArchive cell_uid_region = 10; + optional .TST.CellUIDRegionArchive base_uid_region = 11; + optional .TSP.UUIDCoordArchive anchor_cell_uid = 12; + optional .TSP.UUIDCoordArchive cursor_cell_uid = 13; +} + +message .TST.DeathhawkRdar39989167CellSelectionArchive { + optional .TSP.Reference table_info = 1; + optional .TST.SelectionTypeArchive selection_type = 2; + optional .TST.CellUIDRegionArchive cell_uid_region = 3; + optional .TST.CellUIDRegionArchive base_uid_region = 4; + optional .TSP.UUIDCoordArchive anchor_cell_uid = 5; + optional .TSP.UUIDCoordArchive cursor_cell_uid = 6; +} + +message .TST.StrokeSelectionArchive { + optional int32 mask = 1; +} + +message .TST.ControlCellSelectionArchive { +} + +message .TST.StockCellSelectionArchive { +} + +message .TST.TableNameSelectionArchive { +} + +message .TST.AutofillSelectionArchive { + optional .TST.CellRange source_cell_range = 1; + optional .TST.CellRange target_cell_range = 2; +} + +message .TST.FilterRulePrePivotArchive { + required .TST.FormulaPredicatePrePivotArchive predicate = 1; + optional bool disabled = 2; +} + +message .TST.FilterRuleArchive { + required .TST.FormulaPredicateArchive predicate = 1; +} + +message .TST.TableStyleArchive { + required .TSS.StyleArchive super = 1; + optional uint32 override_count = 10 [default = 0]; + optional .TST.TableStylePropertiesArchive table_properties = 11; +} + +message .TST.CellStyleArchive { + required .TSS.StyleArchive super = 1; + optional uint32 override_count = 10 [default = 0]; + optional .TST.CellStylePropertiesArchive cell_properties = 11; +} + +message .TST.FormulaPredArgDataArchive { + optional double double_value = 1; + optional uint64 decimal_low = 2; + optional uint64 decimal_high = 3; + optional string string_value = 4; + optional double date_value = 5; + optional double duration_timeinterval = 6; + optional int32 duration_units = 7; + optional bool boolean_value = 8; +} + +message .TST.FormulaPredArgArchive { + required int32 arg_type = 1; + optional .TST.FormulaPredArgDataArchive arg_value = 2; + optional .TSCE.CellReferenceArchive base_cell_ref = 3; + optional .TSCE.RelativeCellRefArchive relative_cell_ref = 4; + optional .TSCE.CategoryReferenceArchive category_ref = 5; + optional .TSCE.ASTNodeArrayArchive.ASTUidTractList uid_tract_list = 6; + optional .TSCE.CellCoordinateArchive host_cell_coord = 7; + optional bool preserve_row = 8; + optional bool preserve_column = 9; + repeated .TST.FormulaPredArgDataArchive list_entries = 10; + optional .TSCE.ViewTractRefArchive view_tract_ref = 11; +} + +message .TST.FormulaPredicatePrePivotArchive { + required .TSCE.FormulaArchive formula = 1; + required int32 predicate_type = 2; + required int32 qualifier1 = 3; + required int32 qualifier2 = 4; + required int32 param_index1 = 5; + required int32 param_index2 = 6; + required int32 param_index0 = 7; +} + +message .TST.FormulaPredicateArchive { + required int32 predicate_type = 1; + required int32 qualifier1 = 2; + required int32 qualifier2 = 3; + optional .TST.FormulaPredArgArchive param_value0 = 4; + optional .TST.FormulaPredArgArchive param_value1 = 5; + optional .TST.FormulaPredArgArchive param_value2 = 6; + optional .TSCE.FormulaArchive formula = 7; + optional bool for_conditional_style = 8; + optional .TSP.UUID host_table_uid = 9; + optional .TSP.UUID host_column_uid = 10; + optional .TSP.UUID host_row_uid = 11; +} + +message .TST.ConditionalStyleSetArchive { + message ConditionalStyleRulePrePivot { + required .TST.FormulaPredicatePrePivotArchive predicate = 1; + required .TSP.Reference cell_style = 2; + required .TSP.Reference text_style = 3; + } + message ConditionalStyleRule { + optional .TST.FormulaPredicateArchive predicate = 1; + required .TSP.Reference cell_style = 2; + required .TSP.Reference text_style = 3; + } + message ConditionalStyleRules { + repeated .TST.ConditionalStyleSetArchive.ConditionalStyleRule rule = 1; + } + required uint32 ruleCount = 1; + repeated .TST.ConditionalStyleSetArchive.ConditionalStyleRulePrePivot rules_prepivot = 2; + optional .TST.ConditionalStyleSetArchive.ConditionalStyleRules rules = 3; +} + +message .TST.FilterSetArchive { + enum FilterSetType { + FilterSetArchiveTypeAll = 0; + FilterSetArchiveTypeAny = 1; + } + optional .TST.FilterSetArchive.FilterSetType type = 1 [default = FilterSetArchiveTypeAll]; + optional bool is_enabled = 2 [default = true]; + repeated .TST.FilterRulePrePivotArchive filter_rules_prepivot = 3; + optional bool needs_formula_rewrite_for_import = 4 [default = false]; + repeated uint32 filter_offsets = 5; + repeated bool filter_enabled = 6; + repeated .TST.FilterRuleArchive filter_rules = 7; +} + +message .TST.UniqueIndexArchive { + message UniqueIndexEntryArchive { + required string string_value = 1; + repeated .TSP.UUID row_uids = 2; + } + required .TSP.UUID column_uid = 1; + repeated .TST.UniqueIndexArchive.UniqueIndexEntryArchive unique_entries = 2; +} + +message .TST.HiddenStateExtentArchive { + message RowOrColumnState { + required .TSP.UUID row_or_column_uid = 1; + optional bool user_hidden = 2; + optional bool filtered = 3; + optional bool pivot_hidden = 4; + } + enum RowOrColumnDirection { + ColumnDirection = 0; + RowDirection = 1; + } + required .TSP.UUID hidden_state_extent_uid = 1; + repeated .TST.HiddenStateExtentArchive.RowOrColumnState base_hidden_states = 2; + required .TST.HiddenStateExtentArchive.RowOrColumnDirection row_or_column_direction = 3; + repeated .TSCE.CellValueArchive threshold_value = 5; + optional bool needs_to_update_filter_set_for_import = 6 [default = false]; + repeated .TSP.UUID collapsed_group_uids = 7; + optional .TSP.Reference filter_set = 8; + optional .TSCE.IndexSetArchive summary_pivot_hidden_indexes = 9; + optional .TSCE.IndexSetArchive summary_filtered_indexes = 10; + repeated .TST.UniqueIndexArchive unique_indexes = 11; + repeated .TST.HiddenStateExtentArchive.RowOrColumnState summary_hidden_states = 12; +} + +message .TST.HiddenStatesArchive { + required .TSP.UUID hidden_states_uid = 1; + required .TST.HiddenStateExtentArchive column_hidden_state_extent = 2; + required .TST.HiddenStateExtentArchive row_hidden_state_extent = 3; +} + +message .TST.HiddenStatesOwnerArchive { + required .TSP.UUID owner_uid = 1; + repeated .TST.HiddenStatesArchive hidden_states = 2; +} + +message .TST.ExpandCollapseStateArchive { + repeated .TSP.UUID uids_collapsed = 1; + repeated .TSP.UUID uids_expanded = 2; + optional .TST.TableDimensionArchive dimension = 3; +} + +message .TST.TokenAttachmentArchive { + required .TSWP.UIGraphicalAttachment super = 1; + optional .TSP.Reference expressionNode = 2; +} + +message .TST.FormulaArchive { + optional .TSP.Reference expressionTree = 1; +} + +message .TST.ExpressionNodeArchive { + repeated .TSP.Reference children = 1; + optional uint64 first_index = 2 [default = 0]; + optional uint64 last_index = 3 [default = 0]; +} + +message .TST.BooleanNodeArchive { + required .TST.ExpressionNodeArchive super = 1; + required bool value = 2; +} + +message .TST.NumberNodeArchive { + required .TST.ExpressionNodeArchive super = 1; + optional double number = 2; + optional uint64 decimal_low = 3; + optional uint64 decimal_high = 4; +} + +message .TST.StringNodeArchive { + required .TST.ExpressionNodeArchive super = 1; + required string value = 2; +} + +message .TST.IdentifierNodeArchive { + required .TST.ExpressionNodeArchive super = 1; + optional string identifier = 2; + optional uint32 symbol = 3; +} + +message .TST.ArrayNodeArchive { + required .TST.ExpressionNodeArchive super = 1; + optional uint32 columns = 2; + optional uint32 rows = 3; +} + +message .TST.ListNodeArchive { + required .TST.ExpressionNodeArchive super = 1; +} + +message .TST.OperatorNodeArchive { + required .TST.ExpressionNodeArchive super = 1; + required uint32 operatorChar = 2; +} + +message .TST.PostfixOperatorNodeArchive { + required .TST.OperatorNodeArchive super = 1; +} + +message .TST.PrefixOperatorNodeArchive { + required .TST.OperatorNodeArchive super = 1; +} + +message .TST.FunctionNodeArchive { + required .TST.ExpressionNodeArchive super = 1; + required uint32 functionIndex = 2; + optional string invalidFunctionName = 3; +} + +message .TST.FunctionEndNodeArchive { + required .TST.ExpressionNodeArchive super = 1; +} + +message .TST.DateNodeArchive { + required .TST.ExpressionNodeArchive super = 1; + required string value = 2; + optional string format = 3; +} + +message .TST.ReferenceNodeArchive { + required .TST.ExpressionNodeArchive super = 1; + optional .TSCE.RangeReferenceArchive rangeReference = 2; + required uint32 preserve_flags = 3; + optional string hostTableID = 4; + optional .TSCE.CellReferenceArchive host_cell_ref = 10; + optional .TSP.UUID table_uid = 5; + optional .TSP.UUIDCoordArchive range_top_left = 6; + optional .TSP.UUIDCoordArchive range_bottom_right = 7; + optional .TSCE.CategoryReferenceArchive category_ref = 8; + optional .TSP.UUIDRectArchive uid_range_rect = 9; +} + +message .TST.DurationNodeArchive { + required .TST.ExpressionNodeArchive super = 1; + required double timeinterval = 2; + required uint32 smallest = 3; + required uint32 largest = 4; + required uint32 style = 5; +} + +message .TST.ArgumentPlaceholderNodeArchive { + required .TST.ExpressionNodeArchive super = 1; + optional uint32 functionIndex = 2; + optional uint32 argumentIndex = 3; + optional uint32 mode = 4; +} + +message .TST.EmptyExpressionNodeArchive { + required .TST.ExpressionNodeArchive super = 1; +} + +message .TST.LetNodeArchive { + required .TST.ExpressionNodeArchive super = 1; + optional string whitespace_after_let = 2; + optional string whitespace_after_identifier = 3; + optional string whitespace_after_equals = 4; + optional string whitespace_after_delimiter = 5; +} + +message .TST.InNodeArchive { + required .TST.ExpressionNodeArchive super = 1; +} + +message .TST.VariableNodeArchive { + required .TST.ExpressionNodeArchive super = 1; + required string identifier = 2; + required uint32 symbol = 3; +} + +message .TST.LayoutHintArchive { + required bool isValid = 1; + optional .TST.CellRange cellRange = 2; + optional .TST.CellID hintID = 3; + required .TSP.Size maximumSize = 4; + required uint32 partitionPosition = 5; + required bool horizontal = 6; + optional .TSP.Size effectiveSize = 7; + optional uint32 partitioningPass = 8; +} + +message .TST.CompletionTokenAttachmentArchive { + required .TST.TokenAttachmentArchive super = 1; + optional string completionText = 2; + optional uint32 caretPosition = 3; + optional uint32 prefixStart = 4; +} + +message .TST.HiddenStateFormulaOwnerArchive { + optional .TSP.CFUUIDArchive owner_id = 1; + repeated .TSCE.CellValueArchive threshold_value = 2; + optional bool needs_to_update_filter_set_for_import = 3 [default = false]; +} + +message .TST.FormulaStoreArchive { + message FormulaStorePair { + required uint32 formula_index = 1; + required .TSCE.FormulaArchive formula = 2; + } + required uint32 next_formula_index = 2; + repeated .TST.FormulaStoreArchive.FormulaStorePair formulas = 3; +} + +message .TST.MergeOperationArchive { + required .TST.MergeActionArchive merge_type = 1; + repeated .TSP.UUIDRectArchive merge_ranges = 2; + repeated .TSCE.FormulaArchive merge_formulas = 3; + repeated uint32 merge_formula_indexes = 4; +} + +message .TST.MergeOwnerArchive { + required .TSP.CFUUIDArchive owner_id = 1; + optional .TST.FormulaStoreArchive formula_store = 2; +} + +message .TST.PencilAnnotationArchive { + optional .TSP.Reference table_info = 1; + optional .TSP.Reference pencil_annotation_storage = 2; +} + +message .TST.PencilAnnotationOwnerArchive { + required .TSP.CFUUIDArchive owner_id = 1; + optional .TST.FormulaStoreArchive formula_store = 2; + repeated .TSP.Reference annotations = 3; +} + +message .TST.AccumulatorArchive { + optional uint32 bool_count = 1; + optional uint32 number_count = 2; + optional uint32 date_count = 3; + optional uint32 duration_count = 4; + optional uint32 string_count = 5; + required .TSCE.CellValueArchive min_value = 6; + required .TSCE.CellValueArchive max_value = 7; + required .TSCE.CellValueArchive number_total_value = 8; + optional .TSCE.CellValueArchive first_date_seen = 9; + optional double total_secs_since_ref_date = 10; + optional double secs_to_add = 11; + optional uint32 bool_true_count = 12; + optional uint32 error_count = 13; + optional bool is_circular_ref = 14; + optional .TSCE.CellValueArchive product_value = 15; + optional uint32 no_content_count = 16; +} + +message .TST.GroupColumnArchive { + required .TSP.UUID column_uid = 1; + required uint32 grouping_type = 2; + optional .TSCE.FunctorArchive grouping_functor = 3; + optional .TSP.UUID grouping_column_uid = 4; +} + +message .TST.GroupColumnListArchive { + repeated .TST.GroupColumnArchive group_column = 1; +} + +message .TST.ColumnAggregateArchive { + required .TSP.UUID column_uid = 1; + required uint32 level = 2; + required uint32 agg_type = 3; + optional uint32 show_as_type = 4; + optional .TSP.UUID column_aggregate_uid = 5; + optional .TSP.UUID running_total_group_column_uid = 6; +} + +message .TST.ColumnAggregateListArchive { + repeated .TST.ColumnAggregateArchive aggregates = 1; +} + +message .TST.GroupByArchive { + message AggNodeArchive { + required .TSCE.CellCoordinateArchive formula_coord = 1; + optional .TST.AccumulatorArchive accum = 2; + repeated .TST.GroupByArchive.AggNodeArchive child = 3; + } + message AggregatorArchive { + required .TSP.UUID column_uid = 1; + optional .TST.GroupByArchive.AggNodeArchive agg_node = 2; + } + message GroupNodeArchive { + message FormatManagerArchive { + message RowSetArchive { + repeated .TSP.UUID row_uids = 1; + } + optional .TSCE.CellValueArchive cell_value = 1; + repeated .TSK.FormatStructArchive formats = 2; + repeated .TST.GroupByArchive.GroupNodeArchive.FormatManagerArchive.RowSetArchive row_sets = 3; + repeated .TSCE.IndexSetArchive row_uid_lookup_sets = 4; + } + required .TSP.UUID group_uid = 1; + repeated .TST.GroupByArchive.GroupNodeArchive child = 3; + repeated .TSP.UUID row_uid = 4; + repeated .TSCE.CellCoordinateArchive agg_formula_coords = 5; + optional .TST.GroupByArchive.GroupNodeArchive.FormatManagerArchive format_manager = 6; + optional .TSCE.CellValueArchive group_cell_value = 7; + optional .TSCE.IndexSetArchive row_indexes = 8; + optional .TSCE.IndexSetArchive row_lookup_uids = 9; + repeated .TSP.Reference child_ref = 10; + } + required .TSP.UUID group_by_uid = 1; + repeated .TST.GroupColumnArchive group_column = 2; + optional .TST.GroupByArchive.GroupNodeArchive group_node_root = 3; + repeated .TST.GroupByArchive.AggregatorArchive aggregator = 4; + repeated .TST.ColumnAggregateArchive column_agg_type = 5; + required bool is_enabled = 6; + optional .TSCE.CellCoordinateArchive indirect_agg_type_change_formula = 7; + optional .TSCE.CellCoordinateArchive grouping_columns_formula = 8; + optional .TSCE.CellCoordinateArchive aggs_in_group_root_formula = 9; + optional .TSCE.CellCoordinateArchive grouping_column_headers_formula = 10; + optional .TSCE.CellCoordinateArchive column_order_changed_formula = 11; + optional .TSCE.CellCoordinateArchive row_order_changed_formula = 12; + optional .TSCE.CellCoordinateArchive row_order_changed_ignoring_recalc_formula = 13; + optional int32 owner_index = 14 [default = 8]; + optional .TSCE.UidLookupListArchive row_uid_lookup = 15; + optional .TSCE.CellCoordinateArchive hidden_states_changed_formula = 16; + repeated .TSP.Reference aggregator_ref = 17; + optional .TSP.Reference group_node_root_ref = 18; +} + +message .TST.CategoryOwnerArchive { + required .TSP.UUID owner_uid = 1; + repeated .TST.GroupByArchive group_by = 2; +} + +message .TST.CategoryOwnerRefArchive { + repeated .TSP.Reference group_by = 1; +} + +message .TST.PivotGroupingColumnOptionsMapArchive { + repeated .TSP.UUID uids = 1; + repeated uint32 flags = 2; + repeated .TSP.UUID aggregate_rule_uids = 4; +} + +message .TST.PivotOwnerArchive { + optional .TSP.UUID pivot_owner_uid = 2; + optional .TST.GroupColumnListArchive grouping_columns_for_rows = 3; + optional .TST.GroupColumnListArchive grouping_columns_for_columns = 4; + optional .TST.ColumnAggregateListArchive aggregate_columns = 5; + optional int32 flattening_dimension = 6; + optional bool is_empty_pivot = 7; + optional .TSP.UUID source_table_uid = 8; + optional double refresh_timestamp = 9; + optional .TSP.Reference grpg_col_options_map = 10; + optional bool hide_grand_total_rows = 11; + optional string source_table_name = 12; + optional bool hide_grand_total_columns = 13; + optional .TST.FormulaStoreArchive formula_store = 17; + optional .TSP.UUID refresh_uid = 18; + optional .TSP.UUID row_column_rule_change_uid = 19; + optional .TSP.UUID aggregate_rule_change_uid = 20; +} + +message .TST.RichTextPayloadArchive { + required .TSP.Reference storage = 1; + optional .TSP.Range range = 2; + required .TST.CellID cellid = 3; +} + +message .TST.FormulaEqualsTokenAttachmentArchive { + required .TSWP.UIGraphicalAttachment super = 1; +} + +message .TST.CellFillStandIn { + required .TSD.FillArchive fill = 1; + optional bool type_is_mixed = 2; + optional bool color_has_been_modified = 3; + optional bool color_is_mixed = 4; + optional bool first_color_has_been_modified = 5; + optional bool first_color_is_mixed = 6; + optional bool last_color_has_been_modified = 7; + optional bool last_color_is_mixed = 8; + optional bool gradient_type_has_been_modified = 9; + optional bool gradient_type_is_mixed = 10; + optional bool gradient_angle_has_been_modified = 11; + optional bool gradient_angle_is_mixed = 12; + optional bool image_data_has_been_modified = 13; + optional bool image_data_is_mixed = 14; + optional bool tint_color_has_been_modified = 15; + optional bool tint_color_is_mixed = 16; + optional bool scale_has_been_modified = 17; + optional bool scale_is_mixed = 18; + optional bool technique_has_been_modified = 19; + optional bool technique_is_mixed = 20; +} + +message .TST.FormulaSelectionArchive { + required .TSWP.SelectionArchive super = 1; + optional uint32 activeTokenCharIndex = 2; +} + +message .TST.CellBorderArchive { + optional .TSD.StrokeArchive top_stroke = 1; + optional int32 top_stroke_order = 2; + optional .TSD.StrokeArchive right_stroke = 3; + optional int32 right_stroke_order = 4; + optional .TSD.StrokeArchive bottom_stroke = 5; + optional int32 bottom_stroke_order = 6; + optional .TSD.StrokeArchive left_stroke = 7; + optional int32 left_stroke_order = 8; +} + +message .TST.DefaultCellStylesContainerArchive { + required .TSP.Reference table_style_network = 1; + repeated .TSP.UUID row_uids = 2; + repeated .TSP.UUID column_uids = 3; + repeated uint32 row_types = 4; + repeated uint32 column_types = 5; + optional bool is_a_pivot_table = 6; +} + +message .TST.MultiTableRemapperArchive { + enum Purpose { + DEFAULT = 0; + GROUPING = 1; + PAGES_SECTION_DUPLICATION_NONCOLLAB = 2; + } + required .TST.MultiTableRemapperArchive.Purpose mapping_purpose = 1; + required bool should_steal_references = 2; + required bool can_reuse_table_names = 3; + repeated .TSCE.OwnerUIDMapperArchive owner_uid_mapper = 4; + required .TSP.UUIDMapArchive backing_tables_for_charts = 5; + required bool cross_document_paste = 6; + required bool nested_inner_mapper = 7; +} + +message .TST.ChangePropagationMapWrapper { + required int32 replacement_behavior = 1; + repeated .TSP.Reference style_replace_prototypes = 2; + repeated .TSP.Reference style_replace_replacements = 3; + repeated .TSP.Reference style_modify_styles = 4; + repeated .TSP.Reference style_modify_old_prop_maps = 5; + repeated .TSP.Reference style_modify_new_prop_maps = 6; + repeated .TSP.Reference style_delete_prototypes = 7; + repeated .TSP.Reference style_delete_replacements = 8; + optional .TSP.Reference table_preset_replace_prototype = 9; + optional .TSP.Reference table_preset_replace_replacement = 10; + optional .TSP.Reference table_preset_delete_prototype = 11; + optional .TSP.Reference table_preset_delete_replacement = 12; +} + +message .TST.SummaryCellVendorArchive { + message SummaryCellEntry { + required .TSP.UUID wildcardUID = 1; + required .TSP.UUID columnUID = 2; + required .TST.Cell cell = 3; + } + required .TSP.Reference table_info = 1; + repeated .TST.SummaryCellVendorArchive.SummaryCellEntry entries = 2; +} + +message .TST.CategoryOrderArchive { + required .TSP.Reference table_info = 1; + required .TSP.Reference uid_map = 2; +} + +message .TST.PivotOrderArchive { + optional .TSP.Reference uid_map = 1; +} + +message .TST.HeaderNameMgrTileArchive { + message NameFragmentArchive { + required string name_fragment = 1; + required .TSCE.CellCoordinateArchive name_precedent = 2; + optional .TSCE.UidCellRefSetArchive uses_of_name_fragment = 3; + } + required string first_fragment = 1; + required string last_fragment = 2; + repeated .TST.HeaderNameMgrTileArchive.NameFragmentArchive name_frag_entries = 3; +} + +message .TST.HeaderNameMgrArchive { + message PerTableArchive { + required .TSP.UUID table_uid = 1; + required .TSCE.CellCoordinateArchive per_table_precedent = 2; + optional bool is_deleted = 3; + repeated .TSP.UUID header_row_uids = 5; + repeated .TSP.UUID header_column_uids = 6; + repeated .TSP.UUID update_header_row_uids = 7; + repeated .TSP.UUID update_header_column_uids = 8; + } + required .TSP.UUID owner_uid = 1; + optional .TSP.UUID nrm_owner_uid = 2; + repeated .TST.HeaderNameMgrArchive.PerTableArchive per_tables = 3; + repeated .TSP.Reference name_frag_tiles = 4; +} + +message .TST.WidthHeightCacheFittingEntry { + optional uint32 fitting_index = 1; + optional float fitting_size = 2; +} + +message .TST.WidthHeightCache { + repeated .TST.WidthHeightCacheFittingEntry rows_fitting_entries = 1; + optional uint32 columns_count = 3; +} + +message .TST.LayoutEngineArchive { + optional .TST.WidthHeightCache width_height_cache = 1; +} + +message .TST.CollaboratorTableCursorSubselectionArchive { + optional .TST.CellUIDListArchive cell_uid_list = 1; + optional .TST.SelectionTypeArchive selection_type = 3; + repeated .TSP.UUID row_column_uid_list = 4; + extend .TSK.CollaboratorCursorArchive { + optional .TST.CollaboratorTableCursorSubselectionArchive table_cursor_subselection = 200; + } +} + +extend .TSS.CommandPropertyEntryArchive { + optional .TST.ImportWarningSetArchive import_warning_set = 500; + optional .TST.CellFormatAndValueArchive format_and_value = 501; + optional .TST.CellBorderArchive cell_border = 503; + optional .TST.CommentStorageWrapperArchive comment_storage = 504; + optional .TST.CellSpecArchive cell_spec = 505; +} + + +message .TSTSOS.SpecSetTableStrokePresetListArchive { + optional .TST.StrokePresetListArchive table_stroke_preset_list = 1; + required bool unset = 2; +} + +message .TSTSOS.SpecTableStrokePresetListArchive { + optional .TSTSOS.SpecSetTableStrokePresetListArchive spec_set_table_stroke_preset_list = 1; +} + +message .TSTSOS.TableCellStylePropertyChangeSetArchive { + optional .TSSSOS.SpecBoolArchive text_wrap = 1; + optional bool text_wrap_undefined = 2; + optional .TSSSOS.SpecIntegerArchive type = 3; + optional bool type_undefined = 4; + optional .TSDSOS.SpecFillArchive fill = 5; + optional bool fill_undefined = 6; + optional .TSSSOS.SpecIntegerArchive vertical_alignment = 7; + optional bool vertical_alignment_undefined = 8; + optional .TSWPSOS.SpecPaddingArchive padding = 9; + optional bool padding_undefined = 10; +} + +message .TSTSOS.TableStylePropertyChangeSetArchive { + optional .TSSSOS.SpecBoolArchive auto_resize = 1; + optional bool auto_resize_undefined = 2; + optional .TSSSOS.SpecBoolArchive banded_rows = 3; + optional bool banded_rows_undefined = 4; + optional .TSDSOS.SpecFillArchive banded_cell_fill = 5; + optional bool banded_cell_fill_undefined = 6; + optional .TSSSOS.SpecBoolArchive behaves_like_spreadsheet = 7; + optional bool behaves_like_spreadsheet_undefined = 8; + optional .TSDSOS.SpecStrokeArchive body_horizontal_border_stroke = 9; + optional bool body_horizontal_border_stroke_undefined = 10; + optional .TSDSOS.SpecStrokeArchive body_vertical_border_stroke = 11; + optional bool body_vertical_border_stroke_undefined = 12; + optional .TSDSOS.SpecStrokeArchive body_horizontal_stroke = 13; + optional bool body_horizontal_stroke_undefined = 14; + optional .TSDSOS.SpecStrokeArchive body_vertical_stroke = 15; + optional bool body_vertical_stroke_undefined = 16; + optional .TSDSOS.SpecStrokeArchive header_column_border_stroke = 17; + optional bool header_column_border_stroke_undefined = 18; + optional .TSDSOS.SpecStrokeArchive header_column_vertical_stroke = 19; + optional bool header_column_vertical_stroke_undefined = 20; + optional .TSDSOS.SpecStrokeArchive header_column_horizontal_stroke = 21; + optional bool header_column_horizontal_stroke_undefined = 22; + optional .TSDSOS.SpecStrokeArchive header_column_separator_stroke = 23; + optional bool header_column_separator_stroke_undefined = 24; + optional .TSDSOS.SpecStrokeArchive header_row_border_stroke = 25; + optional bool header_row_border_stroke_undefined = 26; + optional .TSDSOS.SpecStrokeArchive header_row_horizontal_stroke = 27; + optional bool header_row_horizontal_stroke_undefined = 28; + optional .TSDSOS.SpecStrokeArchive header_row_vertical_stroke = 29; + optional bool header_row_vertical_stroke_undefined = 30; + optional .TSDSOS.SpecStrokeArchive header_row_separator_stroke = 31; + optional bool header_row_separator_stroke_undefined = 32; + optional .TSDSOS.SpecStrokeArchive footer_row_border_stroke = 33; + optional bool footer_row_border_stroke_undefined = 34; + optional .TSDSOS.SpecStrokeArchive footer_row_horizontal_stroke = 35; + optional bool footer_row_horizontal_stroke_undefined = 36; + optional .TSDSOS.SpecStrokeArchive footer_row_vertical_stroke = 37; + optional bool footer_row_vertical_stroke_undefined = 38; + optional .TSDSOS.SpecStrokeArchive footer_row_separator_stroke = 39; + optional bool footer_row_separator_stroke_undefined = 40; + optional .TSTSOS.SpecTableStrokePresetListArchive stroke_preset_list_object = 41; + optional bool stroke_preset_list_object_undefined = 42; + optional .TSSSOS.SpecBoolArchive vertical_strokes_visible = 43; + optional bool vertical_strokes_visible_undefined = 44; + optional .TSSSOS.SpecBoolArchive horizontal_strokes_visible = 45; + optional bool horizontal_strokes_visible_undefined = 46; + optional .TSSSOS.SpecBoolArchive header_row_sep_visible = 47; + optional bool header_row_sep_visible_undefined = 48; + optional .TSSSOS.SpecBoolArchive header_row_verticals_visible = 49; + optional bool header_row_verticals_visible_undefined = 50; + optional .TSSSOS.SpecBoolArchive header_col_sep_visible = 51; + optional bool header_col_sep_visible_undefined = 52; + optional .TSSSOS.SpecBoolArchive header_col_horizontals_visible = 53; + optional bool header_col_horizontals_visible_undefined = 54; + optional .TSSSOS.SpecBoolArchive footer_sep_visible = 55; + optional bool footer_sep_visible_undefined = 56; + optional .TSSSOS.SpecBoolArchive footer_verticals_visible = 57; + optional bool footer_verticals_visible_undefined = 58; + optional .TSSSOS.SpecBoolArchive border_strokes_visible = 59; + optional bool border_strokes_visible_undefined = 60; + optional .TSSSOS.SpecStringArchive master_font_family = 61; + optional bool master_font_family_undefined = 62; + optional .TSSSOS.SpecIntegerArchive writing_direction = 63; + optional bool writing_direction_undefined = 64; + optional .TSDSOS.SpecStrokeArchive category_level1_top_stroke = 65; + optional bool category_level1_top_stroke_undefined = 66; + optional .TSDSOS.SpecStrokeArchive category_level2_top_stroke = 67; + optional bool category_level2_top_stroke_undefined = 68; + optional .TSDSOS.SpecStrokeArchive category_level3_top_stroke = 69; + optional bool category_level3_top_stroke_undefined = 70; + optional .TSDSOS.SpecStrokeArchive category_level4_top_stroke = 71; + optional bool category_level4_top_stroke_undefined = 72; + optional .TSDSOS.SpecStrokeArchive category_level5_top_stroke = 73; + optional bool category_level5_top_stroke_undefined = 74; + optional .TSDSOS.SpecStrokeArchive category_level1_label_separator_stroke = 75; + optional bool category_level1_label_separator_stroke_undefined = 76; + optional .TSDSOS.SpecStrokeArchive category_level2_label_separator_stroke = 77; + optional bool category_level2_label_separator_stroke_undefined = 78; + optional .TSDSOS.SpecStrokeArchive category_level3_label_separator_stroke = 79; + optional bool category_level3_label_separator_stroke_undefined = 80; + optional .TSDSOS.SpecStrokeArchive category_level4_label_separator_stroke = 81; + optional bool category_level4_label_separator_stroke_undefined = 82; + optional .TSDSOS.SpecStrokeArchive category_level5_label_separator_stroke = 83; + optional bool category_level5_label_separator_stroke_undefined = 84; + optional .TSDSOS.SpecStrokeArchive category_level1_bottom_stroke = 85; + optional bool category_level1_bottom_stroke_undefined = 86; + optional .TSDSOS.SpecStrokeArchive category_level2_bottom_stroke = 87; + optional bool category_level2_bottom_stroke_undefined = 88; + optional .TSDSOS.SpecStrokeArchive category_level3_bottom_stroke = 89; + optional bool category_level3_bottom_stroke_undefined = 90; + optional .TSDSOS.SpecStrokeArchive category_level4_bottom_stroke = 91; + optional bool category_level4_bottom_stroke_undefined = 92; + optional .TSDSOS.SpecStrokeArchive category_level5_bottom_stroke = 93; + optional bool category_level5_bottom_stroke_undefined = 94; + optional .TSDSOS.SpecStrokeArchive category_level1_interior_stroke = 95; + optional bool category_level1_interior_stroke_undefined = 96; + optional .TSDSOS.SpecStrokeArchive category_level2_interior_stroke = 97; + optional bool category_level2_interior_stroke_undefined = 98; + optional .TSDSOS.SpecStrokeArchive category_level3_interior_stroke = 99; + optional bool category_level3_interior_stroke_undefined = 100; + optional .TSDSOS.SpecStrokeArchive category_level4_interior_stroke = 101; + optional bool category_level4_interior_stroke_undefined = 102; + optional .TSDSOS.SpecStrokeArchive category_level5_interior_stroke = 103; + optional bool category_level5_interior_stroke_undefined = 104; + optional .TSDSOS.SpecStrokeArchive body_pivot_group_horizontal_stroke = 105; + optional bool body_pivot_group_horizontal_stroke_undefined = 106; + optional .TSDSOS.SpecStrokeArchive body_pivot_group_vertical_stroke = 107; + optional bool body_pivot_group_vertical_stroke_undefined = 108; + optional .TSDSOS.SpecStrokeArchive body_pivot_de_emphasis_horizontal_stroke = 109; + optional bool body_pivot_de_emphasis_horizontal_stroke_undefined = 110; + optional .TSDSOS.SpecStrokeArchive body_pivot_emphasis_vertical_stroke = 111; + optional bool body_pivot_emphasis_vertical_stroke_undefined = 112; + optional .TSDSOS.SpecStrokeArchive header_column_pivot_group_horizontal_stroke = 113; + optional bool header_column_pivot_group_horizontal_stroke_undefined = 114; + optional .TSDSOS.SpecStrokeArchive header_column_pivot_group_de_emphasis_stroke = 115; + optional bool header_column_pivot_group_de_emphasis_stroke_undefined = 116; + optional .TSDSOS.SpecStrokeArchive header_column_pivot_separator_stroke = 117; + optional bool header_column_pivot_separator_stroke_undefined = 118; + optional .TSDSOS.SpecStrokeArchive header_row_pivot_group_vertical_stroke = 119; + optional bool header_row_pivot_group_vertical_stroke_undefined = 120; + optional .TSDSOS.SpecStrokeArchive header_row_pivot_group_de_emphasis_stroke = 121; + optional bool header_row_pivot_group_de_emphasis_stroke_undefined = 122; + optional .TSDSOS.SpecStrokeArchive header_row_pivot_title_stroke = 123; + optional bool header_row_pivot_title_stroke_undefined = 124; + optional .TSDSOS.SpecStrokeArchive footer_row_pivot_group_vertical_stroke = 125; + optional bool footer_row_pivot_group_vertical_stroke_undefined = 126; +} + + +enum .TST.TableArea { + TableAreaBody = 1; + TableAreaHeaderRow = 2; + TableAreaHeaderColumn = 3; + TableAreaFooterRow = 4; +} + +enum .TST.TableAreaTransition { + TableAreaTransitionHeaderRowToBody = 1; + TableAreaTransitionBodyToHeaderRow = 2; + TableAreaTransitionFooterRowToBody = 3; + TableAreaTransitionBodyToFooterRow = 4; + TableAreaTransitionHeaderColumnToBody = 5; + TableAreaTransitionBodyToHeaderColumn = 6; +} + +enum .TST.ColumnRowBundleItemTypeEnum { + ColumnRowTypeAnchor = 0; + ColumnRowTypeHeaderRow = 1; + ColumnRowTypeBodyRow = 2; + ColumnRowTypeFooterRow = 3; + ColumnRowTypeHeaderColumn = 4; + ColumnRowTypeBodyColumn = 5; +} + +message .TST.TableCommandArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUIDPath table_info_id_path = 2; + optional string commandname = 3; + optional .TSP.Reference default_cell_styles_container = 4; + optional double timestamp = 5; + optional uint32 random_seed_lo = 6; + optional uint32 random_seed_hi = 7; + optional bool is_inverse = 8; + optional double old_timestamp = 9; + optional uint64 old_random_seed = 10; +} + +message .TST.CommandApplyCellContentsArchive { + required .TST.TableCommandArchive super = 1; + required .TSP.Reference cell_diff_map = 2; + optional .TSP.Reference rollback_cell_diff_map = 3; + repeated .TSP.UUID custom_format_keys = 4; + optional string action_string = 5; +} + +message .TST.CommandApplyCellDiffMapArchive { + required .TST.TableCommandArchive super = 1; + required .TSP.Reference cell_diff_map = 2; + required bool should_allow_merge_fragments = 3; + optional .TSP.Reference inverse_cell_diff_map = 4; + repeated .TSP.UUID custom_format_keys = 5; +} + +message .TST.CommandApplyCellMapArchive { + required .TST.TableCommandArchive super = 1; + required .TSP.Reference redo_cell_map = 2; + optional .TSP.Reference undo_cell_map = 3; + optional .TSP.Reference undo_formula_rewrite_command = 4; + repeated .TSP.UUID custom_format_keys = 5; + optional uint32 merge_owner_rollback_index = 6; + required bool is_from_paste = 7; + repeated .TSP.Reference formula_rewrite_commands = 8; +} + +message .TST.CommandApplyConcurrentCellMapArchive { + required .TST.TableCommandArchive super = 1; + required .TSP.Reference redo_concurrent_cell_map = 2; + optional .TSP.Reference undo_concurrent_cell_map = 3; + optional .TSP.Reference undo_formula_rewrite_command = 4; + repeated .TSP.UUID custom_format_keys = 5; + optional uint32 merge_owner_rollback_index = 6; + required bool is_from_paste = 7; + repeated .TSP.Reference formula_rewrite_commands = 8; +} + +message .TST.CommandChangeFreezeHeaderStateArchive { + required .TST.TableCommandArchive super = 1; + required .TST.TableDimensionArchive direction = 2; + required bool new_freeze_state = 3; + required bool prev_freeze_state = 4; +} + +message .TST.CommandDeleteCellsArchive { + required .TST.TableCommandArchive super = 1; + optional bool invalidate_comments = 5; + optional bool invalidate_comments_valid = 6; + optional .TST.CellUIDRegionArchive cell_uid_region = 7; + optional .TST.CellUIDListArchive summary_cell_uid_list = 8; + optional .TSP.Reference inverse_concurrent_cell_map = 9; +} + +message .TST.CommandDeleteCellContentsArchive { + required .TST.TableCommandArchive super = 1; + required .TST.CellUIDListArchive cell_uid_list = 2; + optional .TSP.Reference inverse_cell_diff_map = 3; +} + +message .TST.CommandMutateCellFormatArchive { + required .TST.TableCommandArchive super = 1; + optional .TST.CellUIDListArchive cell_uid_list = 2; + optional .TSP.Reference inverse_cell_diff_map = 3; + optional .TSP.Reference whole_format_diff_map = 4; + required uint32 intended_format_type = 5; +} + +message .TST.CommandSetAutomaticDurationUnitsArchive { + required .TST.CommandMutateCellFormatArchive super = 1; + optional bool automatic_units = 4; +} + +message .TST.CommandSetDurationStyleArchive { + required .TST.CommandMutateCellFormatArchive super = 1; + optional uint32 duration_style = 2; +} + +message .TST.CommandSetDurationUnitSmallestLargestArchive { + required .TST.CommandMutateCellFormatArchive super = 1; + optional uint32 smallest_unit = 2; + optional uint32 largest_unit = 3; +} + +message .TST.CommandReplaceCustomFormatArchive { + optional .TSP.Reference undo_diff_map = 1; + optional .TSP.Reference commit_diff_map = 2; + required .TST.TableCommandArchive super = 6; +} + +message .TST.CommandMoveCellsArchive { + required .TST.TableCommandArchive super = 1; + required .TSP.UUIDPath dst_table_info_id_path = 2; + required .TSP.UUIDRectArchive src_uid_range = 3; + required .TSP.UUIDRectArchive dst_uid_range = 4; + optional .TST.TableDimensionArchive table_dimension = 5; + required .TSP.Reference src_cell_map = 6; + optional .TSP.Reference dst_cell_map = 7; + optional .TSP.Reference dst_cell_styles_container = 8; + optional .TSP.Reference src_undo_cell_map = 9; + optional .TSP.Reference dst_undo_cell_map = 10; + required uint32 dst_merge_owner_rollback_index = 11; + repeated .TSP.Reference formula_rewrite_commands = 12; + optional .TST.MergeOperationArchive merge_action_to_restore = 13; + optional .TST.CellUIDListArchive comment_cell_uids_to_restore = 14; + repeated .TSP.Reference comment_storages_to_restore = 15; +} + +message .TST.ColumnRowMetadataArchive { + required double size = 1; + required uint32 hiding_action = 2; + optional .TSP.Reference cell_style = 3; + optional .TSP.Reference text_style = 4; + optional .TSP.UUID uuid = 5; +} + +message .TST.CommandInsertColumnsOrRowsArchive { + required .TST.TableCommandArchive super = 1; + required .TST.ColumnRowBundleArchive bundle = 2; + required .TSP.Reference concurrent_cell_map = 15; + required .TSP.Reference categories_cell_map = 16; + optional .TSP.Reference undo_commands = 4; + optional .TSP.Reference undo_concurrent_cell_map = 17; + optional .TSP.Reference undo_categories_cell_map = 18; + optional .TST.TableSortOrderUIDArchive sort_order = 6; + optional .TST.TableGroupSortOrderUIDArchive group_sort_order = 14; + optional .TSP.Reference filter_set = 7; + optional bool should_edge_expand_formula_ranges = 8; + optional bool was_categorized = 9; + repeated .TSP.UUID undo_order = 10; + required .TSP.UUID src_row_column_uid = 11; + required .TSP.UUID opp_row_column_uid = 12; + optional .TST.ColumnRowBundleArchive undo_bundle = 13; +} + +message .TST.ColumnRowBundleArchive { + required bool is_row = 1; + repeated .TSP.UUID view_uid_list = 2; + repeated .TST.ColumnRowBundleItemTypeEnum view_type_list = 3; + repeated .TSP.UUID base_uid_list = 4; + repeated .TST.ColumnRowBundleItemTypeEnum base_type_list = 5; + repeated .TSP.UUID category_order_uid_list = 6; + repeated .TST.ColumnRowBundleItemTypeEnum category_order_type_list = 7; + repeated .TST.ColumnRowMetadataArchive metadata_list = 8; +} + +message .TST.CommandRemoveColumnsOrRowsArchive { + required .TST.TableCommandArchive super = 1; + required .TST.ColumnRowBundleArchive bundle = 2; + optional .TSP.Reference concurrent_cell_map = 11; + optional .TSP.Reference categories_cell_map = 12; + optional .TSP.Reference undo_concurrent_cell_map = 13; + optional .TSP.Reference undo_categories_cell_map = 14; + optional .TSP.Reference undo_filter_set = 5; + optional .TST.TableSortOrderUIDArchive undo_sort_order = 6; + optional .TST.TableGroupSortOrderUIDArchive undo_group_sort_order = 10; + optional .TSP.Reference formula_rewrite_command_for_undo = 7; + optional bool inverse_should_edge_expand_formula_ranges = 8; + repeated .TSP.UUID undo_order = 9; +} + +message .TST.CommandRowColumnRangeArchive { + required .TST.TableCommandArchive super = 1; + repeated .TSP.UUID uids = 2; + required bool is_row = 3; +} + +message .TST.CommandResizeColumnOrRowArchive { + required .TST.CommandRowColumnRangeArchive super = 1; + repeated float sizes = 2; + repeated float sizes_for_undo = 3; +} + +message .TST.CommandCategoryResizeColumnOrRowArchive { + required .TST.TableCommandArchive super = 1; + repeated float category_row_sizes = 2; + repeated float category_row_sizes_for_undo = 3; + repeated float category_label_row_sizes = 4; + repeated float category_label_row_sizes_for_undo = 5; + optional double category_column_size = 6; + optional double category_column_size_for_undo = 7; +} + +message .TST.CommandHideShowArchive { + required .TST.CommandRowColumnRangeArchive super = 1; + required .TST.HideShowActionArchive hide_show_action = 2; + required uint32 hiding_action = 3; + repeated .TST.HideShowActionArchive hide_show_action_for_undo = 4; +} + +message .TST.CommandTextPreflightInsertCellArchive { + required .TST.TableCommandArchive super = 3; + optional .TSP.Reference coalesced_textcommand = 6; + optional .TSP.Reference postflightcommand = 8; + optional bool grouped_with_postflight = 9; + required .TST.Cell editing_cell = 10; + required .TSP.Reference editing_storage = 11; + optional uint32 last_column_hit_by_tap = 12; + required .TSP.UUIDCoordArchive cell_uid = 13; + optional .TSK.SelectionPathArchive archived_initial_selection_path = 14; +} + +message .TST.CommandPostflightSetCellArchive { + required .TST.TableCommandArchive super = 3; + optional .TSP.Reference childcommandundo = 4; + required .TST.Cell editing_cell = 6; + required .TST.Cell new_cell = 7; + required .TSP.Reference editing_storage = 8; + optional uint32 last_column_hit_by_tap = 9; + required .TSP.UUIDCoordArchive cell_uid = 10; +} + +message .TST.CommandChangeTableAreaForColumnOrRowArchive { + required .TST.CommandRowColumnRangeArchive super = 1; + required .TST.TableAreaTransition table_area_transition = 2; + optional .TSP.Reference cell_diff_map = 3; + optional .TSP.Reference undo_cell_diff_map = 4; + optional .TSP.Reference undo_commands = 5; + optional string action_string = 6; +} + +message .TST.CommandSetPencilAnnotationsArchive { + required .TST.TableCommandArchive super = 1; + repeated .TSP.Reference annotations = 2; + repeated .TSCE.FormulaArchive formulas = 3; + repeated uint64 formula_indexes = 4; + repeated .TSCE.FormulaArchive inverse_formulas = 5; + repeated uint64 inverse_formula_indexes = 6; + optional uint64 rollback_index = 7; +} + +message .TST.CommandSetTableNameArchive { + required string newtablename = 1; + optional string oldtablename = 2; + optional .TSP.Reference newstyle = 3; + optional .TSP.Reference oldstyle = 4; + required .TST.TableCommandArchive super = 5; + optional .TSP.Reference old_shape_style = 6; + optional .TSP.Reference new_shape_style = 7; + optional bool old_table_name_border_enabled = 8; + optional bool new_table_name_border_enabled = 9; +} + +message .TST.CommandSetTableNameEnabledArchive { + required .TST.TableCommandArchive super = 1; + required bool table_name_enabled = 2; + optional bool prev_table_name_enabled = 3; +} + +message .TST.CommandSetTableFontSizeArchive { + required .TST.TableCommandArchive super = 1; + required bool is_increase = 2; + required int32 font_size_diff = 3; + repeated double font_size_list = 4; + repeated double inverse_font_size_list = 5; + optional .TSP.Reference cell_diff_map = 6; + optional .TSP.Reference inverse_cell_diff_map = 7; + required bool styles_container_refresh_done = 8; +} + +message .TST.CommandSetTableFontNameArchive { + required .TST.TableCommandArchive super = 1; + required string font_name = 2; + required bool preserve_face = 3; + optional string previous_font_name = 4; + optional .TSP.Reference previous_table_style = 5; + repeated .TSP.Reference previous_text_styles = 6; + required .TSP.Reference cell_diff_map = 7; + optional .TSP.Reference inverse_cell_diff_map = 8; +} + +message .TST.CommandSetTableNameHeightArchive { + required .TST.TableCommandArchive super = 1; + required double old_table_name_height = 2; + required double new_table_name_height = 3; +} + +message .TST.CommandSetNowArchive { + required .TST.TableCommandArchive super = 1; +} + +message .TST.CommandSetWasCutArchive { + required .TST.TableCommandArchive super = 1; + required .TSP.UUID from_table_uid = 2; + required .TSP.UUID prev_from_table_uid = 3; + required bool was_cut = 4; + required bool prev_was_cut = 5; + required .TSP.UUID from_group_by_uid = 6; + required .TSP.UUID prev_from_group_by_uid = 7; +} + +message .TST.CommandStyleCellsArchive { + required .TST.TableCommandArchive super = 1; + optional .TSP.ReferenceDictionary format_properties = 2; + required .TST.SelectionArchive selection = 3; + required .TSP.Reference undo_cell_map = 4; + required .TSP.Reference redo_cell_map = 5; + optional .TSP.Reference text_undo = 6; +} + +message .TST.CommandStyleTableArchive { + required .TST.TableCommandArchive super = 1; + optional .TSP.ReferenceDictionary format_properties = 2; + optional .TSTSOS.TableStylePropertyChangeSetArchive old_style = 3; + optional .TSTSOS.TableStylePropertyChangeSetArchive new_style = 4; +} + +message .TST.CommandSetRepeatingHeaderEnabledArchive { + required bool repeating_header_enabled = 1; + required .TST.TableDimensionArchive direction = 2; + required .TST.TableCommandArchive super = 3; + optional bool prev_repeating_header_enabled = 4; +} + +message .TST.CommandSetFiltersEnabledArchive { + required .TST.TableCommandArchive super = 1; + required bool new_filters_enabled = 2; + optional bool old_filters_enabled = 3; + repeated .TSP.UUID rollback_uid_list = 4; +} + +message .TST.CommandAddTableStylePresetArchive { + required .TST.TableCommandArchive super = 1; + required int32 preset_index = 2; + required .TSP.Reference table_styles = 3; + required bool send_notification = 4; +} + +message .TST.CommandRemoveTableStylePresetArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference theme = 2; + required .TSP.Reference removed_table_styles = 3; + required int32 preset_id = 4; + required int32 preset_index_in_theme = 5; +} + +message .TST.CommandReplaceTableStylePresetArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference theme = 2; + required .TSP.Reference old_table_styles = 3; + required .TSP.Reference new_table_styles = 4; +} + +message .TST.CommandApplyTableStylePresetArchive { + required .TST.TableCommandArchive super = 1; + optional .TSP.Reference preset = 2; + optional .TSP.Reference styles = 3; + optional .TSP.Reference undo_preset = 4; + optional .TSP.Reference undo_styles = 5; + optional .TSP.Reference cell_diff_map = 6; + optional .TSP.Reference undo_cell_diff_map = 7; + required int32 apply_preset_option = 8; + required bool table_clears_all_flag = 11; + required bool undo_table_clears_all_flag = 12; + repeated .TST.ColumnRowMetadataArchive row_col_styles = 13; + repeated .TST.ColumnRowMetadataArchive undo_row_col_styles = 14; + optional .TSP.Reference change_prop_map_wrapper = 15; +} + +message .TST.CommandSetBaseArchive { + required .TST.CommandMutateCellFormatArchive super = 1; + required uint32 base = 2; +} + +message .TST.CommandSetBasePlacesArchive { + required .TST.CommandMutateCellFormatArchive super = 1; + required uint32 base_places = 2; +} + +message .TST.CommandSetBaseUseMinusSignArchive { + required .TST.CommandMutateCellFormatArchive super = 1; + required bool base_use_minus_sign = 2; +} + +message .TST.CommandSetCurrencyCodeArchive { + required .TST.CommandMutateCellFormatArchive super = 1; + required string currency_code = 2; +} + +message .TST.CommandSetFractionAccuracyArchive { + required .TST.CommandMutateCellFormatArchive super = 1; + required uint32 fraction_accuracy = 2; +} + +message .TST.CommandSetNegativeNumberStyleArchive { + required .TST.CommandMutateCellFormatArchive super = 1; + required uint32 negative_number_style = 2; +} + +message .TST.CommandSetNumberOfDecimalPlacesArchive { + required .TST.CommandMutateCellFormatArchive super = 1; + required uint32 decimal_places = 2; +} + +message .TST.CommandSetDateTimeFormatArchive { + required .TST.CommandMutateCellFormatArchive super = 1; + optional string date_format_string = 2; + optional string time_format_string = 3; +} + +message .TST.CommandSetShowThousandsSeparatorArchive { + required .TST.CommandMutateCellFormatArchive super = 1; + required bool show_thousands_separator = 2; +} + +message .TST.CommandSetUseAccountingStyleArchive { + required .TST.CommandMutateCellFormatArchive super = 1; + required bool use_accounting_style = 2; +} + +message .TST.CommandSetRangeControlMinMaxIncArchive { + required .TST.TableCommandArchive super = 1; + optional double minimum = 2; + optional double maximum = 3; + optional double increment = 4; + optional .TSP.Reference cell_diff_map = 5; + optional .TST.CellUIDListArchive cell_uid_list = 6; + optional .TSP.Reference inverse_cell_diff_map = 7; + required bool is_first_commit = 8; +} + +message .TST.CommandMoveColumnsOrRowsArchive { + required .TST.TableCommandArchive super = 1; + required .TSP.UUID dest_uid = 2; + required bool before = 3; + required .TSP.UUID undo_dest_uid = 4; + required bool undo_before = 5; + repeated .TSP.UUID uids = 6; + required .TST.TableDimensionArchive direction = 7; + optional .TSP.Reference formula_rewrite_command = 8; +} + +message .TST.CommandSortArchive { + required .TST.TableCommandArchive super = 1; + repeated .TSP.UUID from_row_uids = 2; + repeated .TSP.UUID to_row_uids = 3; + optional .TSP.Reference formula_rewrite_command = 4; +} + +message .TST.FormulaRewriteSpecArchive { + required uint32 rewrite_type = 1; + optional .TSP.UUID table_uid = 2; + optional .TSP.UUID cond_style_owner_uid = 3; + optional .TSP.UUID group_by_uid = 4; + optional bool is_inverse = 5; + optional .TSCE.ColumnOrRowUuidsInfoArchive column_or_row_uuids_info = 6; + optional .TSCE.ColumnOrRowUuidsInfoArchive aux_column_or_row_uuids_info = 7; + optional .TSCE.RegionMovedInfoArchive region_moved_info = 8; + optional .TSCE.RegionInfoArchive region_info = 9; + optional .TSCE.RewriteTableUIDInfoArchive rewrite_table_id_info = 10; + optional .TSCE.TableTransposeInfoArchive transposed_table_info = 11; + optional .TSCE.MergeOriginMovedArchive merge_origin_moved_info = 12; + optional .TSCE.MergeSourceArchive merge_source = 13; + optional .TSCE.RewriteGroupNodeUIDInfoArchive group_node_info = 14; + optional .TSCE.GroupByChangeArchive groupby_change = 15; +} + +message .TST.CommandRewriteFormulasForTransposeArchive { + required .TST.TableCommandArchive super = 1; + required .TST.FormulaRewriteSpecArchive rewrite_spec = 2; + required .TSCE.FormulasForUndoArchive formulas_to_rewrite = 3; + optional .TST.ImportWarningSetByCellRefArchive warningset_map = 4; +} + +message .TST.CommandRewriteTableFormulasForRewriteSpecArchive { + required .TST.TableCommandArchive super = 1; + required .TST.FormulaRewriteSpecArchive rewrite_spec = 2; + required .TSCE.FormulasForUndoArchive formulas_to_rewrite = 3; +} + +message .TST.CommandRewriteMergeFormulasArchive { + required .TST.TableCommandArchive super = 1; + required .TST.FormulaRewriteSpecArchive rewrite_spec = 2; + required .TSCE.FormulasForUndoArchive formulas_to_rewrite = 3; +} + +message .TST.CommandRewriteCategoryFormulasArchive { + required .TST.TableCommandArchive super = 1; + required .TST.FormulaRewriteSpecArchive rewrite_spec = 2; + required .TSCE.FormulasForUndoArchive formulas_to_rewrite = 3; +} + +message .TST.CommandRewriteFilterFormulasForTableResizeArchive { + required .TST.TableCommandArchive super = 1; +} + +message .TST.CommandRewriteFilterFormulasForRewriteSpecArchive { + required .TST.TableCommandArchive super = 1; + required .TSP.Reference filter_set = 2; + required .TST.FormulaRewriteSpecArchive rewrite_spec = 3; +} + +message .TST.CommandRewriteConditionalStylesForRewriteSpecArchive { + required .TST.TableCommandArchive super = 1; + required .TST.FormulaRewriteSpecArchive rewrite_spec = 2; + optional .TSCE.FormulasForUndoArchive formulas_to_rewrite = 3; + optional .TSCE.ExpandedCellRefObjectMapArchive conditional_style_sets = 4; +} + +message .TST.CommandRewritePivotOwnerFormulasArchive { + required .TST.TableCommandArchive super = 1; + required .TST.FormulaRewriteSpecArchive rewrite_spec = 2; + required .TSCE.FormulasForUndoArchive formulas_to_rewrite = 3; +} + +message .TST.CommandMergeArchive { + required .TST.TableCommandArchive super = 1; + required .TST.CellUIDListArchive cell_uid_list = 2; + optional .TSP.Reference undo_cell_map = 3; + optional .TSP.Reference undo_formula_rewrite_command = 4; + optional uint32 merge_owner_rollback = 5; + optional .TSP.Reference commit_cell_map = 6; +} + +message .TST.CommandInverseMergeArchive { + required .TST.CommandApplyCellMapArchive super = 1; + required .TSP.UUIDCoordArchive merge_source_cell_uid = 2; +} + +message .TST.CommandUnmergeArchive { + required .TST.TableCommandArchive super = 1; + repeated .TSP.UUIDRectArchive unmerge_uid_ranges = 2; + optional .TSP.Reference undo_cell_map = 3; + optional .TSP.Reference undo_formula_rewrite_command = 4; +} + +message .TST.CommandChooseTableIdRemapperArchive { + required .TSK.CommandArchive super = 1; + required .TST.MultiTableRemapperArchive table_id_mapper = 2; + optional .TSP.Reference formula_rewrite_command_for_undo = 3; + required bool apply_and_clear = 4; +} + +message .TST.CommandCategorySetGroupingColumnsArchive { + required .TST.TableCommandArchive super = 1; + required int32 new_enabled_changing = 2; + required int32 old_enabled_changing = 3; + required .TST.GroupColumnListArchive new_grouping_columns = 4; + optional .TST.GroupColumnListArchive old_grouping_columns = 5; + required bool restore_base_order = 6; + repeated .TSP.UUID base_row_order = 7; + required bool undo_restore_base_order = 8; + repeated .TSP.UUID undo_base_row_order = 9; + required bool restore_view_order = 10; + repeated .TSP.UUID view_row_order = 11; + required bool undo_restore_view_order = 12; + repeated .TSP.UUID undo_view_row_order = 13; + repeated .TSP.UUID collapse_state = 14; + repeated .TSP.UUID undo_collapse_state = 15; + optional .TST.SummaryModelGroupByChangeStateArchive summary_change_state = 16; + optional .TST.SummaryModelGroupByChangeStateArchive undo_summary_change_state = 17; + optional .TST.ColumnAggregateListArchive new_column_aggregates = 18; + optional .TST.ColumnAggregateListArchive old_column_aggregates = 19; + optional .TSP.Reference undo_set_enabled_rewrite_command = 20; + optional .TSP.Reference undo_set_columns_rewrite_command = 21; + required bool force_restore_all_states = 22; + optional .TSP.Reference cell_diff_map = 23; + optional .TSP.Reference undo_cell_diff_map = 24; + optional .TSP.Reference undo_set_group_sort_order_command = 25; +} + +message .TST.FormulaEditingCommandGroupArchive { + required .TSK.ProgressiveCommandGroupArchive super = 1; + required bool undoSelectionValid = 2; + required uint32 undoSelectionStart = 3; + required uint32 undoSelectionLength = 4; + required uint32 undoActiveToken = 5; + required bool redoSelectionValid = 6; + required uint32 redoSelectionStart = 7; + required uint32 redoSelectionLength = 8; + required uint32 redoActiveToken = 9; +} + +message .TST.FormulaEditingCommandSelectionBehaviorArchive { + required .TSK.CommandSelectionBehaviorArchive super = 1; + optional uint32 undoActiveToken = 2; + optional uint32 redoActiveToken = 3; +} + +message .TST.TableCommandSelectionBehaviorArchive { + required .TSK.CommandSelectionBehaviorArchive super = 1; + optional .TSP.Reference table_info = 2; + optional .TSP.UUID last_column_uid_hit_by_tap = 3; + optional uint32 invalidate_comments = 4; +} + +message .TST.CommandApplyCellCommentArchive { + required .TST.TableCommandArchive super = 1; + required .TSP.UUIDCoordArchive cell_uid = 2; + optional .TSP.Reference old_comment_storage = 3; + optional .TSP.Reference new_comment_storage = 4; + optional .TSD.CommentCommandVariant forward_variant = 5; + optional .TSD.CommentCommandVariant inverse_variant = 6; +} + +message .TST.CommandSetFormulaTokenizationArchive { + required .TSK.CommandArchive super = 1; + required bool tokenization = 2; +} + +message .TST.CommandSetFilterSetTypeArchive { + required .TST.TableCommandArchive super = 1; + optional .TST.FilterSetArchive.FilterSetType old_filter_set_type = 2; + required .TST.FilterSetArchive.FilterSetType new_filter_set_type = 3; + repeated .TSP.UUID rollback_uid_list = 4; +} + +message .TST.CommandSetTextStyleArchive { + required .TST.TableCommandArchive super = 1; + required .TSP.Reference cell_diff_map = 2; + optional .TSP.Reference inverse_cell_diff_map = 3; +} + +message .TST.CommandSetTextStylePropertiesArchive { + required .TST.TableCommandArchive super = 1; + required .TSP.Reference cell_diff_map = 2; + repeated bool cell_was_rich_text = 3; + optional .TSP.Reference inverse_cell_diff_map = 4; +} + +message .TST.CommandJustForNotifyingArchive { + required .TST.TableCommandArchive super = 1; + required uint32 change_descriptor_type = 2; +} + +message .TST.CommandSetStorageLanguageArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference storage = 2; + required string language = 3; + required uint32 range_location = 4; + required uint32 range_length = 5; + optional .TSWP.UndoTransaction undo_transaction = 6; +} + +message .TST.CommandSetSortOrderArchive { + required .TST.TableCommandArchive super = 1; + optional .TST.TableSortOrderArchive old_sort_order = 2; + optional .TST.TableSortOrderArchive new_sort_order = 3; +} + +message .TST.CommandSetGroupSortOrderArchive { + required .TST.TableCommandArchive super = 1; + optional .TST.TableGroupSortOrderUIDArchive old_group_sort_order = 2; + optional .TST.TableGroupSortOrderUIDArchive new_group_sort_order = 3; +} + +message .TST.CommandRewriteSortOrderForTableResizeArchive { + required .TST.TableCommandArchive super = 1; + optional .TST.TableSortOrderArchive old_sort_order = 2; + optional .TST.TableSortOrderArchive new_sort_order = 3; +} + +message .TST.CommandRewriteSortOrderForRewriteSpecArchive { + required .TST.TableCommandArchive super = 1; + required .TST.FormulaRewriteSpecArchive rewrite_spec = 2; + optional .TST.TableSortOrderArchive old_sort_order = 3; + optional .TST.TableSortOrderArchive new_sort_order = 4; +} + +message .TST.CommandSetFilterSetArchive { + required .TST.TableCommandArchive super = 1; + required .TSP.Reference new_filter_set = 2; + optional .TSP.Reference old_filter_set = 3; + repeated .TSP.UUID rollback_uid_list = 4; +} + +message .TST.ColumnRowRestoreDataArchive { + repeated .TSP.UUID uid_list = 1; + repeated .TST.ColumnRowMetadataArchive metadatas = 2; +} + +message .TST.CommandTransposeTableArchive { + required .TST.TableCommandArchive super = 1; + required .TST.ExpandedCellRange original_table_range = 2; + required .TSP.Reference original_cell_map = 3; + required uint32 original_footer_row_count = 4; + repeated float original_column_widths = 5; + repeated float original_row_heights = 6; + repeated .TST.CellRange ineligible_merge_list = 7; + required .TSP.Reference transposed_cell_map = 8; + optional .TSP.Reference undo_formula_rewrite_command = 9; + optional .TSP.Reference rich_text_subcommands = 10; + optional .TST.ColumnRowRestoreDataArchive column_restore_data = 11; + optional .TST.ColumnRowRestoreDataArchive row_restore_data = 12; +} + +message .TST.CommandSetStructuredTextImportRecordArchive { + required .TST.TableCommandArchive super = 1; + optional .TST.StructuredTextImportRecord new_import_record = 2; + optional .TST.StructuredTextImportRecord old_import_record = 3; +} + +message .TST.CommandCategoryCollapseExpandGroupArchive { + required .TST.TableCommandArchive super = 1; + required bool is_collapsing = 2; + required .TST.GroupColumnListArchive grouping_columns = 3; + required .TST.ExpandCollapseStateArchive collapse_state = 4; + optional .TST.ExpandCollapseStateArchive undo_collapse_state = 5; +} + +message .TST.CommandCategoryChangeSummaryAggregateType { + required .TST.TableCommandArchive super = 1; + required uint32 aggregate_type = 2; + required uint32 undo_aggregate_type = 3; + required .TSP.UUID column_uid = 4; + required sint32 group_level = 5; +} + +message .TST.CommandCategorySetLabelRowVisibility { + required .TST.TableCommandArchive super = 1; + required uint32 group_level = 2; + required uint32 label_row_visibility = 3; + required uint32 undo_label_row_visibility = 4; +} + +message .TST.CommandCategoryWillChangeGroupValue { + required .TST.TableCommandArchive super = 1; + required .TSP.UUID group_node_uid = 2; + optional .TSP.UUID undo_group_node_uid = 3; + optional .TSCE.CellValueArchive group_value = 4; + optional .TSCE.CellValueArchive undo_group_value = 5; + optional .TSP.Reference rewrite_command_for_undo = 6; +} + +message .TST.IdempotentSelectionTransformerArchive { + required .TSP.Reference archived_selection = 1; +} + +message .TST.WPSelectionTransformerArchive { + required .TST.TableSubSelectionTransformerBaseArchive super = 1; + required .TSP.Reference archived_selection = 2; + optional .TSP.UUIDCoordArchive origin_cell_uid = 3; +} + +message .TST.TableSubSelectionTransformerBaseArchive { + required .TSP.UUIDPath table_info_id_path = 1; +} + +message .TST.TableNameSelectionTransformerArchive { + required .TST.TableSubSelectionTransformerBaseArchive super = 1; +} + +message .TST.ControlCellSelectionTransformerArchive { + required .TST.TableSubSelectionTransformerBaseArchive super = 1; + optional .TST.CellUIDListArchive cell_uids = 2; + optional .TSP.UUIDCoordArchive origin_cell_uid = 3; + required .TSCE.CellCoordinateArchive origin_cell_id = 4; +} + +message .TST.StockCellSelectionTransformerArchive { + required .TST.TableSubSelectionTransformerBaseArchive super = 1; + optional .TST.CellUIDListArchive cell_uids = 2; + optional .TSP.UUIDCoordArchive origin_cell_uid = 3; + required .TSCE.CellCoordinateArchive origin_cell_id = 4; +} + +message .TST.RegionSelectionTransformerArchive { + required .TST.TableSubSelectionTransformerBaseArchive super = 1; + optional .TST.CellUIDListArchive cell_uids = 2; + optional .TSP.UUIDCoordArchive origin_cell_uid = 3; + required .TSP.UUIDCoordArchive anchor_cell_uid = 4; + required .TSP.UUIDCoordArchive cursor_cell_uid = 5; +} + +message .TST.StrokeSelectionTransformerArchive { + required .TST.TableSubSelectionTransformerBaseArchive super = 1; + required .TSP.Reference archived_selection = 2; +} + +message .TST.RowColumnSelectionTransformerArchive { + required .TST.TableSubSelectionTransformerBaseArchive super = 1; + required .TST.SelectionTypeArchive selection_type = 2; + repeated .TSP.UUID row_col_uids = 3; +} + +message .TST.CommandCategoryMoveRowsArchive { + required .TST.TableCommandArchive super = 1; + required uint32 action_type = 2; + repeated .TSP.UUID category_row_order = 3; + repeated .TSP.UUID undo_category_row_order = 4; + required .TSP.Reference cell_diff_map = 5; + optional .TSP.Reference undo_cell_diff_map = 6; + optional .TST.GroupColumnListArchive grouping_columns = 7; +} + +message .TST.CommandRewriteHiddenStatesForGroupByChangeArchive { + required .TST.TableCommandArchive super = 1; + required .TSCE.GroupByChangeArchive group_by_change = 2; + optional .TST.ExpandCollapseStateArchive collapsed_state = 3; +} + +message .TST.CommandRewritePencilAnnotationFormulasArchive { + message AnnotationPair { + required uint64 index = 1; + required .TSP.Reference annotation = 2; + } + required .TST.TableCommandArchive super = 1; + required .TST.FormulaRewriteSpecArchive rewrite_spec = 2; + required .TSCE.FormulasForUndoArchive formulas_to_rewrite = 3; + repeated .TST.CommandRewritePencilAnnotationFormulasArchive.AnnotationPair annotations_for_undo = 4; +} + +message .TST.CommandPivotSetPivotRulesArchive { + required .TST.TableCommandArchive super = 1; + optional .TSP.UUID new_target_pivot_refresh_uid = 2; + optional .TST.GroupColumnListArchive new_row_groupings = 3; + optional .TST.GroupColumnListArchive old_row_groupings = 4; + optional .TST.GroupColumnListArchive new_column_groupings = 5; + optional .TST.GroupColumnListArchive old_column_groupings = 6; + optional .TST.ColumnAggregateListArchive new_aggregates = 7; + optional .TST.ColumnAggregateListArchive old_aggregates = 8; + optional .TST.TableDimensionArchive new_flattening_dimension = 9; + optional .TST.TableDimensionArchive old_flattening_dimension = 10; + optional .TSP.Reference new_pivot_data_model = 11; + optional .TSP.Reference old_pivot_data_model = 12; + optional .TSP.UUID new_pivot_refresh_uid = 13; + optional .TSP.UUID old_pivot_refresh_uid = 14; + optional double new_pivot_refresh_timestamp = 15; + optional double old_pivot_refresh_timestamp = 16; + optional .TSP.Reference new_options_map = 17; + optional .TSP.Reference old_options_map = 18; + repeated .TSP.UUID new_view_row_order = 19; + repeated .TSP.UUID old_view_row_order = 20; + repeated .TSP.UUID new_view_column_order = 21; + repeated .TSP.UUID old_view_column_order = 22; + repeated .TSP.UUID new_collapsed_row_groups = 23; + repeated .TSP.UUID old_collapsed_row_groups = 24; + repeated .TSP.UUID new_collapsed_column_groups = 25; + repeated .TSP.UUID old_collapsed_column_groups = 26; + optional .TST.HierarchicalCellDiffMapArchive new_hierarchical_cell_diff_map = 27; + optional .TST.HierarchicalCellDiffMapArchive old_hierarchical_cell_diff_map = 28; + optional .TSP.Reference formula_rewrite_command_for_undo = 29; + optional .TSP.UUIDRectArchive new_body_uid_tract = 30; + optional .TSP.UUIDRectArchive old_body_uid_tract = 31; + optional .TSP.UUID old_target_pivot_refresh_uid = 32; + optional .TSP.UUID new_target_pivot_row_column_rule_change_uid = 33; + optional .TSP.UUID old_target_pivot_row_column_rule_change_uid = 34; + optional .TSP.UUID new_target_pivot_aggregate_rule_change_uid = 35; + optional .TSP.UUID old_target_pivot_aggregate_rule_change_uid = 36; + optional bool is_order_finalized = 37; + optional .TSP.Reference new_filter_set = 39; + optional .TSP.Reference old_filter_set = 40; + optional bool use_small_table_limits = 41; + optional int32 setting_filters_enabled = 42; + optional int32 undo_setting_filters_enabled = 43; +} + +message .TST.CommandPivotSetGroupingColumnOptionsArchive { + required .TST.TableCommandArchive super = 1; + optional .TSP.UUID grouping_column_uid = 2; + optional uint32 non_sorting_flag = 3; + optional bool bool_value = 4; + optional bool undo_bool_value = 5; +} + +message .TST.CommandPivotHideShowGrandTotalsArchive { + required .TST.TableCommandArchive super = 1; + optional .TST.TableDimensionArchive dimension = 2; + optional bool is_hiding = 3; + optional bool undo_is_hiding = 4; +} + +message .TST.CommandPivotSortArchive { + required .TST.TableCommandArchive super = 1; + optional .TST.TableDimensionArchive dimension = 2; + repeated .TSP.UUID column_order = 3; + repeated .TSP.UUID undo_column_order = 4; + repeated .TSP.UUID row_order = 5; + repeated .TSP.UUID undo_row_order = 6; + required .TSP.UUID target_pivot_row_column_rule_change_uid = 7; + required .TSP.UUID target_pivot_aggregate_rule_change_uid = 8; + required .TSP.UUID target_pivot_data_refresh_uid = 9; + optional .TSP.UUID grouping_column_uid = 10; + optional uint32 sorting_flags = 11; + optional uint32 undo_sorting_flags = 12; + optional .TSP.UUID sorting_aggregate_rule_uid = 13; + optional .TSP.UUID undo_sorting_aggregate_rule_uid = 14; + required bool is_order_finalized = 15; +} + +message .TST.CommandRewriteTrackedReferencesArchive { + required .TSK.CommandArchive super = 1; + optional .TST.FormulaRewriteSpecArchive rewrite_spec = 2; +} + +message .TST.CommandExtendTableIDHistoryArchive { + required .TSK.CommandArchive super = 1; + required .TST.FormulaRewriteSpecArchive rewrite_spec = 2; + optional .TSCE.RewriteTableUIDInfoArchive table_uid_history_rollback = 3; +} + + +message .KN.AnimationAttributesArchive { + optional string animation_type = 1; + optional string effect = 2; + optional double duration = 3; + optional uint32 direction = 4; + optional double delay = 5; + optional bool is_automatic = 6; + optional .TSP.Color color = 7; + optional .TSD.PathSourceArchive custom_effect_timing_curve_1 = 8; + optional .TSD.PathSourceArchive custom_effect_timing_curve_2 = 9; + optional .TSD.PathSourceArchive custom_effect_timing_curve_3 = 10; + optional uint32 random_number_seed = 11; + optional double custom_detail = 12; + optional string custom_effect_timing_curve_theme_name_1 = 13; + optional string custom_effect_timing_curve_theme_name_2 = 14; + optional string custom_effect_timing_curve_theme_name_3 = 15; + optional bool writing_direction_is_rtl = 16; +} + +message .KN.TransitionAttributesArchive { + enum TransitionCustomAttributesTimingCurveType { + TransitionCustomAttributesTimingCurveTypeLinear = 1; + TransitionCustomAttributesTimingCurveTypeEaseIn = 2; + TransitionCustomAttributesTimingCurveTypeEaseOut = 3; + TransitionCustomAttributesTimingCurveTypeEaseInEaseOut = 4; + TransitionCustomAttributesTimingCurveTypeCustom = 5; + } + enum TransitionCustomAttributesTextDeliveryType { + TransitionCustomAttributesTextDeliveryTypeByObject = 1; + TransitionCustomAttributesTextDeliveryTypeByWord = 2; + TransitionCustomAttributesTextDeliveryTypeByCharacter = 3; + TransitionCustomAttributesTextDeliveryTypeByLine = 4; + } + optional .KN.AnimationAttributesArchive animationAttributes = 8; + optional float custom_twist = 9; + optional uint32 custom_mosaic_size = 10; + optional uint32 custom_mosaic_type = 11; + optional bool custom_bounce = 12; + optional bool custom_magic_move_fade_unmatched_objects = 13; + optional .KN.TransitionAttributesArchive.TransitionCustomAttributesTimingCurveType custom_timing_curve = 15; + optional .KN.TransitionAttributesArchive.TransitionCustomAttributesTextDeliveryType custom_text_delivery_type = 16; + optional bool custom_motion_blur = 17; + optional float custom_travel_distance = 18; + optional string database_animation_type = 1 [deprecated = true]; + optional string database_effect = 2 [deprecated = true]; + optional double database_duration = 3 [deprecated = true]; + optional uint32 database_direction = 4 [deprecated = true]; + optional float database_delay = 5 [deprecated = true]; + optional bool database_is_automatic = 6 [deprecated = true]; + optional .TSP.Color database_color = 7 [deprecated = true]; +} + +message .KN.TransitionArchive { + required .KN.TransitionAttributesArchive attributes = 2; +} + +message .KN.BuildChunkArchive { + optional .TSP.Reference build = 1; + optional uint32 index = 2 [deprecated = true]; + optional double delay = 3; + optional double duration = 4; + optional bool automatic = 5; + optional bool referent = 6; + optional .KN.BuildChunkIdentifierArchive build_chunk_identifier = 7; + optional .TSP.UUID build_id = 8; +} + +message .KN.BuildChunkIdentifierArchive { + optional .TSP.UUID build_id = 1; + optional int32 build_chunk_id = 2; +} + +message .KN.BuildAttributeValueArchive { + enum BuildAttributeValueType { + k_integer = 0; + k_double = 2; + k_bool = 3; + k_string = 4; + k_path_source = 5; + k_color = 6; + } + optional uint32 integer_value = 1; + optional double double_value = 2; + optional bool bool_value = 3; + optional string string_value = 4; + optional .TSD.PathSourceArchive path_source_value = 5; + optional .TSP.Color color_value = 6; + optional .KN.BuildAttributeValueArchive.BuildAttributeValueType type = 7; +} + +message .KN.BuildAttributeTupleArchive { + optional string property = 1; + optional .KN.BuildAttributeValueArchive value = 2; + optional .TSP.UUID build_id = 3; + optional .KN.BuildChunkIdentifierArchive build_chunk_identifier = 4; +} + +message .KN.BuildAttributesArchive { + enum BuildAttributesAcceleration { + kNone = 0; + kEaseIn = 1; + kEaseOut = 2; + kEaseBoth = 3; + kCustom = 4; + } + enum BuildAttributesRotationDirection { + kClockwise = 31; + kCounterclockwise = 32; + } + enum BuildAttributesCurveStyle { + kStraight = 0; + kCurved = 1; + } + enum BuildAttributesTextDelivery { + kTextDeliveryUndefined = 0; + kTextDeliveryByObject = 1; + kTextDeliveryByWord = 2; + kTextDeliveryByCharacter = 3; + kTextDeliveryByLine = 4; + } + enum BuildAttributesDeliveryOption { + kDeliveryOptionUndefined = 0; + kDeliveryOptionForward = 1; + kDeliveryOptionBackward = 2; + kDeliveryOptionFromCenter = 3; + kDeliveryOptionFromEdges = 4; + kDeliveryOptionRandom = 5; + } + enum ActionBuildAttributesJiggleIntensity { + kJiggleIntensitySmall = 0; + kJiggleIntensityMedium = 1; + kJiggleIntensityLarge = 2; + } + optional .KN.AnimationAttributesArchive animationAttributes = 18; + optional uint32 eventTrigger = 4; + optional double delayAutomaticAfter = 6 [deprecated = true]; + optional double delayAutomaticWith = 7 [deprecated = true]; + optional .KN.BuildAttributesArchive.BuildAttributesCurveStyle curveStyle = 14; + optional double ChartRotation3D = 17; + optional uint32 startOffset = 27; + optional uint32 endOffset = 28; + optional double action_rotationAngle = 9; + optional .KN.BuildAttributesArchive.BuildAttributesRotationDirection action_rotationDirection = 10; + optional double action_scaleSize = 11; + optional double action_colorAlpha = 12; + optional .KN.BuildAttributesArchive.BuildAttributesAcceleration action_acceleration = 13; + optional .TSD.PathSourceArchive action_motionPathSource = 22; + optional bool custom_bounce = 19; + optional .KN.BuildAttributesArchive.BuildAttributesTextDelivery custom_textDelivery = 20; + optional .KN.BuildAttributesArchive.BuildAttributesDeliveryOption custom_deliveryOption = 21; + optional bool custom_action_decay = 23; + optional uint32 custom_action_repeatCount = 24; + optional double custom_action_scale = 25; + optional .KN.BuildAttributesArchive.ActionBuildAttributesJiggleIntensity custom_action_jiggleIntensity = 26; + optional bool custom_motion_blur = 29; + optional bool custom_include_endpoints = 30; + optional bool custom_shine = 33; + optional double custom_scale_amount = 34; + optional double custom_travel_distance = 35; + optional bool custom_cursor = 36; + optional bool custom_align_to_path = 37; + optional string database_animationType = 1 [deprecated = true]; + optional string database_effect = 2 [deprecated = true]; + optional uint32 database_direction = 3 [deprecated = true]; + optional double database_delay = 5 [deprecated = true]; + optional double database_duration = 8 [deprecated = true]; + optional .TSP.Color database_color = 16 [deprecated = true]; + optional string motionPathString = 15 [deprecated = true]; +} + +message .KN.BuildArchive { + optional .TSP.Reference drawable = 1; + required string delivery = 2; + optional double duration = 3 [deprecated = true]; + required .KN.BuildAttributesArchive attributes = 4; + optional int32 chunk_id_seed = 5; +} + +message .KN.PlaceholderArchive { + enum Kind { + kKindPlaceholder = 0; + kKindSlideNumberPlaceholder = 1; + kKindTitlePlaceholder = 2; + kKindBodyPlaceholder = 3; + kKindObjectPlaceholder = 4; + } + required .TSWP.ShapeInfoArchive super = 1; + optional .KN.PlaceholderArchive.Kind kind = 2 [default = kKindPlaceholder]; +} + +message .KN.NoteArchive { + required .TSP.Reference containedStorage = 1; +} + +message .KN.ClassicStylesheetRecordArchive { + repeated .TSS.StylesheetArchive.IdentifiedStyleEntry identifier_to_style_map = 1; + optional .TSP.Reference deprecated_theme = 2 [deprecated = true]; +} + +message .KN.ClassicThemeRecordArchive { + optional string uuid = 1; + optional .TSP.Reference stylesheetRecord = 2; + repeated .TSP.Reference templates = 3; +} + +message .KN.SlideArchive { + message SageTagMapEntry { + required string tag = 1; + required .TSP.Reference info = 2; + } + message InstructionalTextMap { + message InstructionalTextMapEntry { + optional .TSP.Reference info = 1; + required string instructional_text = 2; + } + repeated .KN.SlideArchive.InstructionalTextMap.InstructionalTextMapEntry instructional_text_for_infos = 1; + } + required .TSP.Reference style = 1; + repeated .TSP.Reference builds = 2; + repeated .KN.BuildChunkArchive buildChunkArchives = 3 [deprecated = true]; + repeated .TSP.Reference buildChunks = 43; + required .KN.TransitionArchive transition = 4; + optional .TSP.Reference titlePlaceholder = 5; + optional .TSP.Reference bodyPlaceholder = 6; + optional .TSP.Reference objectPlaceholder = 30; + optional .TSP.Reference slideNumberPlaceholder = 20; + repeated .TSP.Reference owned_drawables = 7; + repeated .TSP.Reference drawables_z_order = 42; + repeated .KN.SlideArchive.SageTagMapEntry sage_tag_to_info_map = 28; + optional .KN.SlideArchive.InstructionalTextMap instructional_text_map = 45; + optional string name = 10; + optional .TSD.GeometryArchive titlePlaceholderGeometry = 11; + optional uint32 titlePlaceholderShapeStyleIndex = 12; + optional uint32 titlePlaceholderTextStyleIndex = 13; + optional .TSWP.ShapeStylePropertiesArchive titleLayoutProperties = 24; + optional .TSD.GeometryArchive bodyPlaceholderGeometry = 14; + optional uint32 bodyPlaceholderShapeStyleIndex = 15; + optional uint32 bodyPlaceholderTextStyleIndex = 16; + optional .TSWP.ShapeStylePropertiesArchive bodyLayoutProperties = 25; + optional .TSD.GeometryArchive slideNumberPlaceholderGeometry = 21; + optional uint32 slideNumberPlaceholderShapeStyleIndex = 22; + optional uint32 slideNumberPlaceholderTextStyleIndex = 23; + optional .TSWP.ShapeStylePropertiesArchive slideNumberLayoutProperties = 26; + optional .TSP.Reference classicStylesheetRecord = 29; + repeated .TSP.Reference bodyParagraphStyles = 31; + repeated .TSP.Reference bodyListStyles = 35; + optional string thumbnailTextForTitlePlaceholder = 37; + optional string thumbnailTextForBodyPlaceholder = 38; + optional bool slide_objects_layer_with_template = 41 [default = false]; + optional .TSP.Reference template_slide = 17; + repeated .TSD.GuideArchive staticGuides = 18; + optional .TSP.Reference userDefinedGuideStorage = 36; + required bool inDocument = 19; + optional .TSP.Reference note = 27; + repeated .TSP.Reference infos_using_object_placeholder_geometry = 44; + optional bool deprecated_objectPlaceholderVisibleForExport = 34; + optional .TSP.Reference info_using_object_placeholder_geometry = 39; + optional bool info_using_object_placeholder_geometry_matches_object_placeholder_geometry = 40; +} + +message .KN.SlideNodeArchive { + message SlideSpecificHyperlinkMapEntry { + required string slideNodeIDString = 1; + repeated string infoOrStorageIDString = 2; + } + repeated .TSP.Reference children = 1; + optional .TSP.Reference slide = 2; + optional uint32 depth = 21 [default = 1]; + repeated .TSP.DataReference thumbnails = 16; + repeated .TSP.Size thumbnailSizes = 10; + optional bool thumbnailsAreDirty = 14; + repeated string digests_for_datas_needing_download_for_thumbnail = 25; + required bool isSkipped = 4; + optional bool isCollapsed = 5 [deprecated = true]; + optional bool isCollapsedInOutlineView = 17 [deprecated = true]; + optional bool hasBodyInOutlineView = 19 [deprecated = true]; + required bool hasBuilds = 6 [deprecated = true]; + required bool hasTransition = 7; + optional bool hasNote = 8; + optional bool isSlideNumberVisible = 18 [default = false]; + optional string uniqueIdentifier = 11 [deprecated = true]; + optional string copyFromSlideIdentifier = 12; + optional uint32 slideSpecificHyperlinkCount = 13 [deprecated = true]; + optional uint32 build_event_count = 15; + optional uint32 build_event_count_cache_version = 26; + optional bool build_event_count_is_up_to_date = 22 [deprecated = true]; + optional bool has_explicit_builds = 20; + optional uint32 has_explicit_builds_cache_version = 27; + optional bool has_explicit_builds_is_up_to_date = 23 [deprecated = true]; + repeated .KN.SlideNodeArchive.SlideSpecificHyperlinkMapEntry slideSpecificHyperlinkMap = 24; + optional bool background_is_no_fill_or_color_fill_with_alpha = 28; + optional .TSP.UUID template_slide_id = 29; + repeated .TSP.UUID live_video_source_ids = 30; + repeated .KN.LiveVideoSourceUsageEntry live_video_source_usage_entries = 31; + optional .TSP.Reference database_thumbnail = 3 [deprecated = true]; + repeated .TSP.Reference database_thumbnails = 9 [deprecated = true]; +} + +message .KN.DesktopUILayoutArchive { + enum SidebarViewMode { + kSidebarViewModeNavigator = 0; + kSidebarViewModeOutline = 1; + } + enum InspectorPaneViewMode { + kInspectorPaneViewModeFormat = 0; + kInspectorPaneViewModeAnimate = 1; + kInspectorPaneViewModeSetup = 2; + } + optional bool sidebar_visible = 1; + optional .KN.DesktopUILayoutArchive.SidebarViewMode sidebar_view_mode = 2; + optional bool notes_visible = 3; + optional bool light_table_visible = 5; + optional bool inspector_pane_visible = 6 [default = true]; + optional .KN.DesktopUILayoutArchive.InspectorPaneViewMode inspector_pane_view_mode = 7 [default = kInspectorPaneViewModeFormat]; + optional bool showing_template_slides = 8; + optional bool inspector_pane_autohidden = 9; + optional bool element_list_visible = 10; + optional bool activity_stream_visible = 11; + optional bool activity_stream_was_visible = 12; +} + +message .KN.UIStateArchive { + optional .TSP.Reference slideNodeToEdit = 1 [deprecated = true]; + optional .TSP.Reference deprecated_template_slide_node_to_apply = 2; + optional .TSP.Size deprecated_slideThumbnailSize = 3; + optional float canvasViewScale = 4; + optional .TSP.Point canvasOffset = 5; + repeated .TSP.Reference selectedSlideNodes = 6 [deprecated = true]; + optional float iPhoneCanvasViewScale = 7 [deprecated = true]; + optional .TSP.Point iPhoneCanvasOffset = 8 [deprecated = true]; + optional float iPhone568CanvasViewScale = 9 [deprecated = true]; + optional .TSP.Point iPhone568CanvasOffset = 10 [deprecated = true]; + optional .TSP.Reference desktop_ui_layout = 11; + optional bool desktop_slide_view_content_fits_window = 12; + optional float desktop_canvas_view_scale = 13; + optional .TSP.Point desktop_canvas_offset = 21; + optional float light_table_zoom_scale = 14; + repeated .TSCH.ChartUIState chart_ui_state = 15; + optional bool show_slide_guides = 16; + optional bool show_template_guides = 17; + optional bool shows_comments = 18; + optional bool comments_printing_toggle_enabled = 39; + repeated .TSP.Reference collapsed_slide_nodes = 19; + repeated .TSP.Reference outline_collapsed_slide_nodes = 28; + repeated .TSP.Reference outline_has_body_slide_nodes = 30; + optional bool shows_ruler = 20; + optional float desktop_navigator_view_width = 22; + optional float desktop_outline_view_width = 23; + optional bool desktop_outline_view_default_fixed = 31; + optional .TSP.Size desktop_main_content_size = 24; + optional float desktop_presenter_notes_view_height = 25; + optional .TSP.Point desktop_main_window_origin = 26; + optional bool light_table_hides_skipped_slides = 27; + optional .TSK.SelectionPathArchive selection_path = 29; + optional float desktop_element_list_view_width = 32; + repeated .TSP.Reference element_list_expanded_groups = 33; + optional bool shows_mobile_light_table = 34; + optional float mobile_light_table_zoom_scale = 35; + optional bool mobile_light_table_hides_skipped_slides = 36; + optional .TSP.Reference freehand_drawing_toolkit_state = 37; + optional .TSP.Reference selection_path_transformer = 38; + optional bool shows_mobile_outline = 40; + optional bool editing_disabled = 41; + optional float desktop_activity_stream_view_width = 42; +} + +message .KN.IOSRestorableViewStateRootArchive { + optional .KN.IOSSavedPlaybackStateArchive saved_playback_state = 1; +} + +message .KN.IOSSavedPlaybackStateArchive { + enum PresentationType { + Manual = 1; + Record = 2; + PlayRecording = 3; + Rehearse = 4; + Showcast = 5; + } + optional .KN.IOSSavedPlaybackStateArchive.PresentationType presentation_type = 1; + optional uint32 slide_node_index = 2; + optional uint32 event_index = 3; + repeated string breadcrumb_trail = 4; + optional bool had_external_display = 5; + optional bool is_elapsed_time_started = 6; + optional double elapsed_time_start_time = 7; + optional double recording_playback_current_time = 8; + optional bool should_show_slide_navigator = 9; + optional bool is_multi_presenter_show = 10; +} + +message .KN.CanvasSelectionArchive { + repeated .TSP.Reference infos = 1; + repeated .TSP.Reference non_interactive_infos = 5; + repeated .TSP.Reference infos_for_action_ghost_indexes = 6; + repeated .TSP.IndexSet action_ghost_indexes = 3; + repeated .TSP.Reference build_chunks = 4; + repeated uint32 database_action_ghost_indexes = 2 [deprecated = true]; +} + +message .KN.ActionGhostSelectionArchive { +} + +message .KN.ThemeCustomTimingCurveArchive { + required string name = 1; + required .TSD.PathSourceArchive curve = 2; +} + +message .KN.ThemeArchive { + required .TSS.ThemeArchive super = 1; + repeated .TSP.Reference templates = 2; + optional string uuid = 3; + repeated .TSP.Reference classicThemeRecords = 4; + optional .TSP.Reference default_template_slide_node = 5; + optional .TSP.Reference default_template_slide_node_reference = 6; + optional bool default_template_slide_node_is_our_best_guess = 7; + repeated .KN.ThemeCustomTimingCurveArchive custom_effect_timing_curves = 8; + optional .TSP.Reference live_video_source_collection = 9; + repeated .TSP.Reference motion_background_style_presets = 10; +} + +message .KN.SlideTreeArchive { + optional .TSP.Reference rootSlideNode = 1 [deprecated = true]; + repeated .TSP.Reference slides = 2; +} + +message .KN.ShowArchive { + enum KNShowMode { + kKNShowModeNormal = 0; + kKNShowModeAutoPlay = 1; + kKNShowModeHyperlinksOnly = 2; + } + optional .TSP.Reference uiState = 1; + required .TSP.Reference theme = 2; + required .KN.SlideTreeArchive slideTree = 3; + required .TSP.Size size = 4; + required .TSP.Reference stylesheet = 5; + optional bool slideNumbersVisible = 6; + optional .TSP.Reference recording = 7; + optional bool loop_presentation = 8; + optional .KN.ShowArchive.KNShowMode mode = 9 [default = kKNShowModeNormal]; + optional double autoplay_transition_delay = 10 [default = 5]; + optional double autoplay_build_delay = 11 [default = 2]; + optional bool idle_timer_active = 15; + optional double idle_timer_delay = 16 [default = 900]; + optional .TSP.Reference soundtrack = 17; + optional bool automatically_plays_upon_open = 18; + optional .TSP.Reference slideList = 19; +} + +message .KN.DocumentArchive { + required .TSA.DocumentArchive super = 3; + required .TSP.Reference show = 2; + optional .TSP.Reference tables_custom_format_list = 4; +} + +message .KN.SlideStylePropertiesArchive { + optional .TSD.FillArchive fill = 1; + optional .KN.TransitionAttributesArchive transition = 2; + optional bool transition_null = 3; + optional bool titlePlaceholderVisibility = 4; + optional bool bodyPlaceholderVisibility = 5; + optional bool objectPlaceholderVisibility = 7; + optional bool slideNumberPlaceholderVisibility = 6; +} + +message .KN.SlideStyleArchive { + required .TSS.StyleArchive super = 1; + optional uint32 override_count = 10 [default = 0]; + optional .KN.SlideStylePropertiesArchive slide_properties = 11; +} + +message .KN.PasteboardNativeStorageArchive { + message LiveVideoSourcePair { + optional .TSP.Reference live_video_info = 1; + optional .TSP.Reference live_video_source = 2; + } + repeated .TSP.Reference drawables = 1; + repeated .TSP.Reference builds = 2; + repeated .TSP.Reference buildChunks = 3; + repeated .TSP.Reference slideNodes = 4; + repeated .TSP.Reference displayed_slide_nodes = 12; + repeated .TSP.Reference template_slide_nodes = 9; + repeated .TSP.Reference collapsedSlideNodes = 10; + repeated .TSP.Reference outlineCollapsedSlideNodes = 11; + repeated .TSP.Reference outlineHasBodySlideNodes = 13; + optional .TSP.Size originalShowSize = 5; + repeated .TSP.Range titleRanges = 6; + repeated .TSD.GeometryArchive geometries_in_root = 7; + optional string slide_node_unique_identifier = 8; + repeated .KN.ThemeCustomTimingCurveArchive custom_effect_timing_curves = 14; + repeated string original_slide_node_UUIDs = 15; + optional bool slide_nodes_have_datas_needing_download = 16; + optional .KN.TransitionArchive transition = 17; + repeated .KN.PasteboardNativeStorageArchive.LiveVideoSourcePair live_video_sources = 18; +} + +message .KN.PrototypeForUndoTemplateChangeArchive { + optional .TSP.Reference slide_style = 1; + required .TSP.UUID template_slide_id = 2; + repeated .TSP.UUID drawable_info_id_list = 3; + repeated .TSP.Reference placeholders = 4; + repeated string placeholder_tags_list = 5; +} + +message .KN.RecordingArchive { + enum RecordingSyncStateEnum { + kRecordingSyncStateInSyncWithShow = 0; + kRecordingSyncStateOutOfSyncWithShow = 1; + } + repeated .TSP.Reference event_tracks = 1; + optional .TSP.Reference movie_track = 2; + optional double duration = 3; + optional .KN.RecordingArchive.RecordingSyncStateEnum sync_state_enum = 4 [default = kRecordingSyncStateInSyncWithShow, deprecated = true]; + optional .TSP.Date modification_date = 5; + optional .KN.RecordingSyncState sync_state = 6; + optional .KN.RecordingCorrectionHistory correction_history = 7; +} + +message .KN.RecordingSyncState { + optional .TSP.UUID out_of_sync_token = 1; + optional bool can_clear_out_of_sync_token = 2 [default = false]; +} + +message .KN.RecordingCorrectionHistory { + optional bool did_add_missing_events_for_radar_49654305 = 1; +} + +message .KN.RecordingEventTrackArchive { + optional string type = 1; + repeated .KN.RecordingEventArchive events = 2; +} + +message .KN.RecordingEventArchive { + optional double start_time = 1 [default = -1]; + optional .KN.RecordingNavigationEventArchive navigation_event_archive = 1000; + optional .KN.RecordingLaserEventArchive laser_event_archive = 1001; + optional .KN.RecordingPauseEventArchive pause_event_archive = 1002; + optional .KN.RecordingMovieEventArchive movie_event_archive = 1003; +} + +message .KN.RecordingNavigationEventArchive { + enum RecordingNavigationEventAnimationPhase { + kRecordingNavigationEventAnimationNone = 0; + kRecordingNavigationEventAnimationStart = 1; + kRecordingNavigationEventAnimationEnd = 2; + } + optional .TSP.UUID target_slide_node_id = 4; + optional .TSP.Reference target_slide_node_reference = 1; + optional uint32 target_event_index = 2; + optional .KN.RecordingNavigationEventArchive.RecordingNavigationEventAnimationPhase animation_phase = 3 [default = kRecordingNavigationEventAnimationNone]; +} + +message .KN.RecordingLaserEventArchive { + optional .TSP.Point unscaled_location = 1 [deprecated = true]; + optional .TSP.Point unit_location = 2; +} + +message .KN.RecordingPauseEventArchive { + enum RecordingPauseEventType { + kRecordingPauseEventTypeResume = 0; + kRecordingPauseEventTypePause = 1; + kRecordingPauseEventTypeConcealWithBlack = 2; + kRecordingPauseEventTypeConcealWithWhite = 3; + } + optional .KN.RecordingPauseEventArchive.RecordingPauseEventType pause_event_type = 1 [default = kRecordingPauseEventTypeResume]; +} + +message .KN.RecordingMovieEventArchive { + enum RecordingMovieEventType { + kRecordingMovieEventNone = 0; + kRecordingMovieEventSeek = 1; + kRecordingMovieEventSetRate = 2; + kRecordingMovieEventStartPlayback = 3; + kRecordingMovieEventStopPlayback = 4; + kRecordingMovieEventBeginScrubbing = 5; + kRecordingMovieEventEndScrubbing = 6; + } + optional .TSP.Reference movie_info_reference = 1; + optional .KN.RecordingMovieEventArchive.RecordingMovieEventType movie_event_type = 2 [default = kRecordingMovieEventSeek]; + optional double movie_event_value = 3; + optional .TSP.Reference movie_info_that_played_across_slides_reference = 4; + optional .TSP.UUID movie_slide_node_id = 5; +} + +message .KN.RecordingMovieTrackArchive { + repeated .KN.MovieSegmentArchive movie_segments = 1; + optional bool is_movie_segment_data_trimmed_to_duration = 2; +} + +message .KN.MovieSegmentArchive { + optional .TSP.DataReference movie_data = 3; + optional double start_time = 2 [default = -1]; + optional .TSP.Reference database_movie_data = 1; +} + +message .KN.Soundtrack { + enum SoundtrackMode { + kKNSoundtrackModePlayOnce = 0; + kKNSoundtrackModeLoop = 1; + kKNSoundtrackModeDoNotPlay = 2; + } + optional double volume = 1; + optional .KN.Soundtrack.SoundtrackMode mode = 2 [default = kKNSoundtrackModePlayOnce]; + repeated .TSP.DataReference movie_media = 3; +} + +message .KN.SlideNumberAttachmentArchive { + required .TSWP.TextualAttachmentArchive super = 1; +} + +message .KN.SlideCollectionSelectionArchive { + message OutlineSelection { + required .TSP.Reference slide_node = 1; + required .TSP.IndexSet selected_paragraph_indexes = 2; + } + repeated .TSP.Reference slide_nodes = 1; + optional .TSP.Reference slide_node_to_edit = 2; + repeated .KN.SlideCollectionSelectionArchive.OutlineSelection selected_paragraph_indexes_for_slide_nodes = 3; + optional .TSP.Range range_in_selected_paragraph = 4; +} + +message .KN.PresenterNotesSelectionArchive { + optional .TSP.Reference slide_node = 1; +} + +message .KN.MixedIdOperationArgs { + enum ArgsListKind { + Add = 0; + Remove = 1; + ShowPlaceholder = 2; + HidePlaceholder = 3; + } + repeated .KN.MixedIdOperationArgs.ArgsListKind args_list_types = 1; + repeated .TSK.AddIdOperationArgs add_args_list = 2; + repeated .TSK.IdPlacementOperationArgs show_placeholder_args_list = 3; + repeated .TSK.RemoveIdOperationArgs remove_args_list = 4; + repeated .TSK.IdPlacementOperationArgs hide_placeholder_args_list = 5; +} + +message .KN.LiveVideoInfo { + optional .TSP.UUID source_id = 1; + optional bool is_placeholder = 2; + optional double scale = 3; + optional .TSP.Point normalized_offset = 4; + optional int32 mask_kind = 5; + optional double mask_corner_radius = 6; + optional int32 background_kind = 7; + optional .TSD.FillArchive background_fill = 8; + extend .TSD.MovieArchive { + optional .KN.LiveVideoInfo live_video_info = 100; + } +} + +message .KN.LiveVideoSource { + optional string name = 1; + optional .KN.LiveVideoCaptureDeviceDescription capture_device_description = 2; + optional .KN.LiveVideoSourceCollaborationCommandUsageState collaboration_command_usage_state = 3; + optional .TSP.DataReference poster_image_data = 4; + optional string symbol_abbreviation_text = 5; + optional int32 symbol_image_identifier = 6; + optional int32 symbol_tint_color_identifier = 7; + optional bool is_default_source = 8; +} + +message .KN.LiveVideoSourceCollaborationCommandUsageState { + optional .TSP.UUID single_collaboration_command_usage_token = 1; + optional bool has_multiple_collaboration_command_usage_tokens = 2; +} + +message .KN.LiveVideoCaptureDeviceDescription { + enum Position { + Unspecified = 0; + Back = 1; + Front = 2; + } + optional string unique_id = 1; + optional .KN.LiveVideoCaptureDeviceDescription.Position position = 2; + optional string device_type = 3; + optional string localized_name = 4; + optional bool is_ios_screen_recording_device = 5; + optional string model_id = 6; + optional .TSP.Size default_video_resolution = 7; +} + +message .KN.LiveVideoSourceCollection { + repeated .TSP.Reference sources = 1; + optional .TSP.Reference default_source = 2; +} + +message .KN.LiveVideoSourceUsageEntry { + repeated int32 background_kinds = 1; +} + +message .KN.MotionBackgroundStylePropertiesArchive { + optional string background_name = 1; + optional string variant = 2; + optional .TSD.FillArchive color_gradient = 3; + optional int32 random_number_seed = 10; + optional double color_blur_sigma = 11; + optional double noise_amplitude = 12; + optional double noise_octaves = 13; + optional double noise_scale = 14; + optional double noise_speed = 15; + optional double color_palette_offset = 16; + optional double zoom = 17; + optional bool invert = 18; + optional string blend_mode = 19; + optional string source_blend_factor = 20; + optional string dest_blend_factor = 21; + optional string motion = 22; + optional .TSP.Color background_color = 23; + optional .TSP.Color foreground_color = 24; + optional .TSP.Color line_color = 25; + optional .TSP.Color point_color = 26; + optional double alpha = 27; + optional double border = 28; + optional double blend = 29; + optional double brightness = 30; + optional double border_lightness = 31; + optional double contrast = 32; + optional double damping = 33; + optional double density = 34; + optional double diffuse_power = 35; + optional double distortion = 36; + optional double entropy = 37; + optional double exposure = 38; + optional double filter = 39; + optional double fog_distance = 40; + optional double fog_power = 41; + optional double gamma = 42; + optional double grain_amount = 43; + optional double grain_intensity = 44; + optional double hue = 45; + optional double lightness = 46; + optional double line_alpha = 47; + optional double line_center = 48; + optional double line_fade = 49; + optional double line_fade_power = 50; + optional double line_length = 51; + optional double line_width = 52; + optional double noise_size_scale = 53; + optional double noise_size_weight = 54; + optional double noise_variance = 55; + optional double offset = 56; + optional double motion_background_opacity = 57; + optional double point_depth_alpha = 58; + optional double point_size = 59; + optional double radius = 60; + optional double refraction = 61; + optional double resolution = 62; + optional double saturation = 63; + optional double scale = 64; + optional double shadow_alpha = 65; + optional double shadow_angle = 66; + optional double shadow_offset = 67; + optional double shadow_scale = 68; + optional double shadow_value = 69; + optional double speed = 70; + optional double texture_power = 71; + optional double time = 72; + optional bool draw_points = 73; + optional bool draw_lines = 74; + optional bool draw_shadows = 75; + optional uint32 pixels_per_division = 76; + optional bool symmetry = 77; + optional bool lock_focus = 78; + optional double amplitude = 79; + optional double envelope = 80; + optional double y_offset = 81; + optional double focus = 82; + optional double blur = 83; + optional double grain_speed = 84; + optional .TSP.Color mesh_color = 85; + optional double angle = 86; + optional double mesh_line_width = 87; + optional double delta_time = 88; + optional double time_start = 89; + optional double color_contrast = 90; + optional double color_gamma = 91; + optional double color_saturation = 92; + optional double color_brightness = 93; + optional double color_hue = 94; + optional double color_vibrance = 95; + optional double noise_movement = 96; + optional double power = 97; + optional double threshold = 98; + optional double noise_scale_horizontal = 99; + optional double noise_scale_vertical = 100; + optional double noise_gain = 101; + optional double noise_lacunarity = 102; + optional int32 instance_count = 103; + optional double extrusion = 104; + optional double noise_offset = 105; + optional double color_hue_offset = 106; + optional double shadow_hue = 107; + optional double shadow_hue_offset = 108; + optional double shadow_saturation = 109; + optional double shadow_brightness = 110; + optional double shadow_intensity = 111; + optional double shadow_power = 112; + optional int32 noise_octaves_iterations = 113; +} + +message .KN.MotionBackgroundStyleArchive { + required .TSS.StyleArchive super = 1; + optional uint32 override_count = 10 [default = 0]; + optional .KN.MotionBackgroundStylePropertiesArchive slide_properties = 11; + optional .TSP.DataReference poster_frame_data = 12; +} + +message .KN.MotionBackgroundFillArchive { + required .TSP.Reference motion_background_style = 1; +} + +extend .TSD.FillArchive { + optional .KN.MotionBackgroundFillArchive motionBackgroundFill = 200; +} + + +message .KNSOS.SpecSetTransitionAttributesArchive { + optional .KN.TransitionAttributesArchive transition_attributes = 1; + required bool unset = 2; +} + +message .KNSOS.SpecTransitionAttributesArchive { + optional .KNSOS.SpecSetTransitionAttributesArchive spec_set_transition_attributes = 1; +} + +message .KNSOS.MotionBackgroundStylePropertyChangeSetArchive { + optional .TSSSOS.SpecStringArchive name = 1; + optional bool name_undefined = 2; + optional .TSSSOS.SpecStringArchive variant = 3; + optional bool variant_undefined = 4; + optional .TSDSOS.SpecFillArchive color_gradient = 5; + optional bool color_gradient_undefined = 6; + optional .TSSSOS.SpecIntegerArchive random_seed = 7; + optional bool random_seed_undefined = 8; + optional .TSSSOS.SpecDoubleArchive color_blur_sigma = 9; + optional bool color_blur_sigma_undefined = 10; + optional .TSSSOS.SpecDoubleArchive color_contrast = 11; + optional bool color_contrast_undefined = 12; + optional .TSSSOS.SpecDoubleArchive color_gamma = 13; + optional bool color_gamma_undefined = 14; + optional .TSSSOS.SpecDoubleArchive color_saturation = 15; + optional bool color_saturation_undefined = 16; + optional .TSSSOS.SpecDoubleArchive color_brightness = 17; + optional bool color_brightness_undefined = 18; + optional .TSSSOS.SpecDoubleArchive color_hue = 19; + optional bool color_hue_undefined = 20; + optional .TSSSOS.SpecDoubleArchive color_vibrance = 21; + optional bool color_vibrance_undefined = 22; + optional .TSSSOS.SpecDoubleArchive noise_amplitude = 23; + optional bool noise_amplitude_undefined = 24; + optional .TSSSOS.SpecDoubleArchive noise_movement = 25; + optional bool noise_movement_undefined = 26; + optional .TSSSOS.SpecDoubleArchive noise_octaves = 27; + optional bool noise_octaves_undefined = 28; + optional .TSSSOS.SpecDoubleArchive noise_scale = 29; + optional bool noise_scale_undefined = 30; + optional .TSSSOS.SpecDoubleArchive noise_scale_horizontal = 31; + optional bool noise_scale_horizontal_undefined = 32; + optional .TSSSOS.SpecDoubleArchive noise_scale_vertical = 33; + optional bool noise_scale_vertical_undefined = 34; + optional .TSSSOS.SpecDoubleArchive noise_gain = 35; + optional bool noise_gain_undefined = 36; + optional .TSSSOS.SpecDoubleArchive noise_lacunarity = 37; + optional bool noise_lacunarity_undefined = 38; + optional .TSSSOS.SpecDoubleArchive noise_speed = 39; + optional bool noise_speed_undefined = 40; + optional .TSSSOS.SpecIntegerArchive color_palette_offset = 41; + optional bool color_palette_offset_undefined = 42; + optional .TSSSOS.SpecDoubleArchive zoom = 43; + optional bool zoom_undefined = 44; + optional .TSSSOS.SpecBoolArchive invert = 45; + optional bool invert_undefined = 46; + optional .TSSSOS.SpecStringArchive blend_mode = 47; + optional bool blend_mode_undefined = 48; + optional .TSSSOS.SpecStringArchive source_blend_factor = 49; + optional bool source_blend_factor_undefined = 50; + optional .TSSSOS.SpecStringArchive dest_blend_factor = 51; + optional bool dest_blend_factor_undefined = 52; + optional .TSSSOS.SpecStringArchive motion = 53; + optional bool motion_undefined = 54; + optional .TSSSOS.SpecColorArchive background_color = 55; + optional bool background_color_undefined = 56; + optional .TSSSOS.SpecColorArchive foreground_color = 57; + optional bool foreground_color_undefined = 58; + optional .TSSSOS.SpecColorArchive line_color = 59; + optional bool line_color_undefined = 60; + optional .TSSSOS.SpecColorArchive point_color = 61; + optional bool point_color_undefined = 62; + optional .TSSSOS.SpecDoubleArchive alpha = 63; + optional bool alpha_undefined = 64; + optional .TSSSOS.SpecDoubleArchive border = 65; + optional bool border_undefined = 66; + optional .TSSSOS.SpecDoubleArchive blend = 67; + optional bool blend_undefined = 68; + optional .TSSSOS.SpecDoubleArchive brightness = 69; + optional bool brightness_undefined = 70; + optional .TSSSOS.SpecDoubleArchive border_lightness = 71; + optional bool border_lightness_undefined = 72; + optional .TSSSOS.SpecDoubleArchive contrast = 73; + optional bool contrast_undefined = 74; + optional .TSSSOS.SpecDoubleArchive damping = 75; + optional bool damping_undefined = 76; + optional .TSSSOS.SpecDoubleArchive density = 77; + optional bool density_undefined = 78; + optional .TSSSOS.SpecDoubleArchive diffuse_power = 79; + optional bool diffuse_power_undefined = 80; + optional .TSSSOS.SpecDoubleArchive distortion = 81; + optional bool distortion_undefined = 82; + optional .TSSSOS.SpecDoubleArchive entropy = 83; + optional bool entropy_undefined = 84; + optional .TSSSOS.SpecDoubleArchive exposure = 85; + optional bool exposure_undefined = 86; + optional .TSSSOS.SpecDoubleArchive filter = 87; + optional bool filter_undefined = 88; + optional .TSSSOS.SpecDoubleArchive fog_distance = 89; + optional bool fog_distance_undefined = 90; + optional .TSSSOS.SpecDoubleArchive fog_power = 91; + optional bool fog_power_undefined = 92; + optional .TSSSOS.SpecDoubleArchive gamma = 93; + optional bool gamma_undefined = 94; + optional .TSSSOS.SpecDoubleArchive grain_amount = 95; + optional bool grain_amount_undefined = 96; + optional .TSSSOS.SpecDoubleArchive grain_intensity = 97; + optional bool grain_intensity_undefined = 98; + optional .TSSSOS.SpecDoubleArchive hue = 99; + optional bool hue_undefined = 100; + optional .TSSSOS.SpecDoubleArchive lightness = 101; + optional bool lightness_undefined = 102; + optional .TSSSOS.SpecDoubleArchive line_alpha = 103; + optional bool line_alpha_undefined = 104; + optional .TSSSOS.SpecDoubleArchive line_center = 105; + optional bool line_center_undefined = 106; + optional .TSSSOS.SpecDoubleArchive line_fade = 107; + optional bool line_fade_undefined = 108; + optional .TSSSOS.SpecDoubleArchive line_fade_power = 109; + optional bool line_fade_power_undefined = 110; + optional .TSSSOS.SpecDoubleArchive line_length = 111; + optional bool line_length_undefined = 112; + optional .TSSSOS.SpecDoubleArchive line_width = 113; + optional bool line_width_undefined = 114; + optional .TSSSOS.SpecDoubleArchive noise_size_scale = 115; + optional bool noise_size_scale_undefined = 116; + optional .TSSSOS.SpecDoubleArchive noise_size_weight = 117; + optional bool noise_size_weight_undefined = 118; + optional .TSSSOS.SpecDoubleArchive noise_variance = 119; + optional bool noise_variance_undefined = 120; + optional .TSSSOS.SpecDoubleArchive offset = 121; + optional bool offset_undefined = 122; + optional .TSSSOS.SpecDoubleArchive motion_background_opacity = 123; + optional bool motion_background_opacity_undefined = 124; + optional .TSSSOS.SpecDoubleArchive point_depth_alpha = 125; + optional bool point_depth_alpha_undefined = 126; + optional .TSSSOS.SpecDoubleArchive point_size = 127; + optional bool point_size_undefined = 128; + optional .TSSSOS.SpecDoubleArchive power = 129; + optional bool power_undefined = 130; + optional .TSSSOS.SpecDoubleArchive radius = 131; + optional bool radius_undefined = 132; + optional .TSSSOS.SpecDoubleArchive refraction = 133; + optional bool refraction_undefined = 134; + optional .TSSSOS.SpecDoubleArchive resolution = 135; + optional bool resolution_undefined = 136; + optional .TSSSOS.SpecDoubleArchive saturation = 137; + optional bool saturation_undefined = 138; + optional .TSSSOS.SpecDoubleArchive scale = 139; + optional bool scale_undefined = 140; + optional .TSSSOS.SpecDoubleArchive shadow_alpha = 141; + optional bool shadow_alpha_undefined = 142; + optional .TSSSOS.SpecDoubleArchive shadow_angle = 143; + optional bool shadow_angle_undefined = 144; + optional .TSSSOS.SpecDoubleArchive shadow_offset = 145; + optional bool shadow_offset_undefined = 146; + optional .TSSSOS.SpecDoubleArchive shadow_scale = 147; + optional bool shadow_scale_undefined = 148; + optional .TSSSOS.SpecDoubleArchive shadow_value = 149; + optional bool shadow_value_undefined = 150; + optional .TSSSOS.SpecDoubleArchive speed = 151; + optional bool speed_undefined = 152; + optional .TSSSOS.SpecDoubleArchive texture_power = 153; + optional bool texture_power_undefined = 154; + optional .TSSSOS.SpecDoubleArchive time = 155; + optional bool time_undefined = 156; + optional .TSSSOS.SpecBoolArchive draw_points = 157; + optional bool draw_points_undefined = 158; + optional .TSSSOS.SpecBoolArchive draw_lines = 159; + optional bool draw_lines_undefined = 160; + optional .TSSSOS.SpecBoolArchive draw_shadows = 161; + optional bool draw_shadows_undefined = 162; + optional .TSSSOS.SpecIntegerArchive pixels_per_division = 163; + optional bool pixels_per_division_undefined = 164; + optional .TSSSOS.SpecBoolArchive symmetry = 165; + optional bool symmetry_undefined = 166; + optional .TSSSOS.SpecBoolArchive lock_focus = 167; + optional bool lock_focus_undefined = 168; + optional .TSSSOS.SpecDoubleArchive amplitude = 169; + optional bool amplitude_undefined = 170; + optional .TSSSOS.SpecDoubleArchive envelope = 171; + optional bool envelope_undefined = 172; + optional .TSSSOS.SpecDoubleArchive y_offset = 173; + optional bool y_offset_undefined = 174; + optional .TSSSOS.SpecDoubleArchive focus = 175; + optional bool focus_undefined = 176; + optional .TSSSOS.SpecDoubleArchive blur = 177; + optional bool blur_undefined = 178; + optional .TSSSOS.SpecDoubleArchive grain_speed = 179; + optional bool grain_speed_undefined = 180; + optional .TSSSOS.SpecColorArchive mesh_color = 181; + optional bool mesh_color_undefined = 182; + optional .TSSSOS.SpecDoubleArchive angle = 183; + optional bool angle_undefined = 184; + optional .TSSSOS.SpecDoubleArchive mesh_line_width = 185; + optional bool mesh_line_width_undefined = 186; + optional .TSSSOS.SpecDoubleArchive delta_time = 187; + optional bool delta_time_undefined = 188; + optional .TSSSOS.SpecDoubleArchive threshold = 189; + optional bool threshold_undefined = 190; + optional .TSSSOS.SpecDoubleArchive time_start = 191; + optional bool time_start_undefined = 192; + optional .TSSSOS.SpecIntegerArchive instance_count = 193; + optional bool instance_count_undefined = 194; + optional .TSSSOS.SpecDoubleArchive extrusion = 195; + optional bool extrusion_undefined = 196; + optional .TSSSOS.SpecDoubleArchive noise_offset = 197; + optional bool noise_offset_undefined = 198; + optional .TSSSOS.SpecDoubleArchive color_hue_offset = 199; + optional bool color_hue_offset_undefined = 200; + optional .TSSSOS.SpecDoubleArchive shadow_hue = 201; + optional bool shadow_hue_undefined = 202; + optional .TSSSOS.SpecDoubleArchive shadow_hue_offset = 203; + optional bool shadow_hue_offset_undefined = 204; + optional .TSSSOS.SpecDoubleArchive shadow_saturation = 205; + optional bool shadow_saturation_undefined = 206; + optional .TSSSOS.SpecDoubleArchive shadow_brightness = 207; + optional bool shadow_brightness_undefined = 208; + optional .TSSSOS.SpecDoubleArchive shadow_intensity = 209; + optional bool shadow_intensity_undefined = 210; + optional .TSSSOS.SpecDoubleArchive shadow_power = 211; + optional bool shadow_power_undefined = 212; + optional .TSSSOS.SpecIntegerArchive noise_octaves_iterations = 213; + optional bool noise_octaves_iterations_undefined = 214; +} + +message .KNSOS.SlideStylePropertyChangeSetArchive { + optional .TSDSOS.SpecFillArchive fill = 1; + optional bool fill_undefined = 2; + optional .KNSOS.SpecTransitionAttributesArchive slide_transition = 3; + optional bool slide_transition_undefined = 4; +} + + +enum .KN.AnimationReferent { + kRelativeToStart = 1; + kRelativeToEnd = 2; +} + +message .KN.UIStateCommandGroupArchive { + required .TSK.CommandGroupArchive super = 1; + required .TSP.Reference uiState = 2; + required string property = 3; + repeated .TSP.Reference slideNodesToEdit = 4; + repeated .TSP.Reference template_slide_nodes_to_apply = 5; + repeated .TSP.Size thumbnailSizes = 6; + repeated .TSP.Reference selectedSlideNodes = 7; + repeated .TSP.Reference restoreSelectedSlideNodes = 8; +} + +message .KN.CommandSlideInsertDrawablesArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUID slide_id = 2; + repeated .TSP.Reference drawables = 3; + repeated .TSP.Reference working_drawables = 18; + optional .KN.MixedIdOperationArgs args_list = 4; + required bool update_geometry_to_match_object_placeholder = 5; + repeated .TSP.UUID ids_of_drawables_using_object_placeholder_geometry = 6; + repeated string sage_placeholder_tags_list = 7; + repeated string instructional_text_list = 20; + optional .TSP.Reference undo_archive = 8; + optional bool is_pasting = 9; + repeated .TSP.Reference insert_build_descriptions = 10; + repeated .TSP.Reference working_insert_build_descriptions = 19; + repeated .TSP.Reference remove_build_descriptions = 11; + optional bool remove_slide_specific_hyperlinks = 12; + repeated .TSP.UUID custom_format_keys = 13; + optional uint32 saved_next_untitled_resolver_index = 16; + optional .TSD.GeometryArchive geometry_of_object_placeholder_for_comparison_to_restore_link = 17; +} + +message .KN.CommandSlideSetPlaceholdersForTagsArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUID slide_id = 2; + repeated .TSP.Reference infos = 3; + repeated string tags = 4; + repeated .TSP.Reference old_infos = 6; + repeated string old_tags = 5; +} + +message .KN.CommandTemplateSlideSetPlaceholderForTagArchive { + required .KN.CommandSlideSetPlaceholdersForTagsArchive super = 1; + required .TSP.UUID placeholder_id = 2; + optional string tag = 3; +} + +message .KN.CommandSlidePropagateSetPlaceholderForTagArchive { + required .KN.CommandSlideSetPlaceholdersForTagsArchive super = 1; + required .TSP.UUID placeholder_id = 2; + required .TSP.UUID original_id = 3; +} + +message .KN.CommandSlideRemoveDrawableArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUID slide_id = 2; + repeated .TSP.Reference sortedDrawables = 3; + required .KN.MixedIdOperationArgs args_list = 4; + repeated uint32 drawable_indexes_for_undo = 10; + repeated string placeholderTags = 5; + repeated string instructional_text_list = 11; + repeated .TSP.Reference insert_build_descriptions = 6; + repeated .TSP.Reference remove_build_descriptions = 7; + repeated .TSP.Reference drawables_using_object_placeholder_geometry = 8; + repeated .TSP.Reference inverse_insert_hyperlink_commands = 9; +} + +message .KN.CommandSlideMoveDrawableZOrderArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.Reference old_ordered_infos = 4; + repeated .TSK.RearrangeIdOperationArgs args_list = 6; + required .TSP.UUID slide_id = 7; + repeated .TSP.Reference old_ordered_infos_on_slide_for_undo = 8; +} + +message .KN.CommandSlideNodeSetPropertyArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUIDPath slide_node_id_path = 2; + required string property = 3; + required bool old_value = 4; + required bool value = 5; +} + +message .KN.CommandSlideNodeSetViewStatePropertyArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUIDPath slide_node_id_path = 2; + required string property = 3; + required bool old_value = 4; + required bool value = 5; +} + +message .KN.CommandSlideSetBackgroundFillArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUIDPath slide_id_path = 2; + optional .TSD.FillArchive old_fill = 3; + required .TSD.FillArchive new_fill = 4; +} + +message .KN.CommandSlideSetStyleArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUIDPath slide_id_path = 2; + required .TSP.Reference slide_style = 3; + optional .TSP.Reference old_slide_style = 4; +} + +message .KN.CommandShowMarkOutOfSyncRecordingArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference show = 2; + optional .TSP.Reference old_recording = 3; + optional bool old_is_recording_out_of_sync = 4 [default = false]; + optional bool new_is_recording_out_of_sync = 5 [default = false]; + optional .TSP.Date old_modification_date = 6; + optional .TSP.Date new_modification_date = 7; +} + +message .KN.CommandShowMarkOutOfSyncRecordingIfNeededArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.UUID out_of_sync_token = 2; +} + +message .KN.CommandShowRemoveRecordingArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference show = 2; + optional .TSP.Reference old_recording = 3; +} + +message .KN.CommandShowReplaceRecordingArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference show = 2; + required .TSP.Reference replacement_recording = 3; + optional .TSP.Reference old_recording = 5; +} + +message .KN.CommandShowSetValueArchive { + message PropertyValue { + optional bool bool_value = 1; + optional double double_value = 2; + optional .KN.ShowArchive.KNShowMode show_mode_value = 3; + optional .TSP.Size size_value = 4; + } + required .TSK.CommandArchive super = 1; + required .TSP.Reference show = 2; + required string property = 3; + required .KN.CommandShowSetValueArchive.PropertyValue old_value = 4; + required .KN.CommandShowSetValueArchive.PropertyValue new_value = 5; +} + +message .KN.CommandShowInsertSlideArchive { + enum Kind { + kKindInsertSlide = 0; + kKindInsertSlideForPaste = 1; + kKindInsertSlideForDuplicate = 2; + } + required .TSK.CommandArchive super = 1; + repeated .TSP.Reference slide_nodes_being_inserted = 2; + repeated .TSP.Reference working_slide_nodes_being_inserted = 14; + repeated .TSK.AddIdOperationArgs inserted_args_list = 3; + repeated .TSP.UUID ids_of_slide_nodes_with_depth_changes = 4; + repeated uint32 depths_of_slide_nodes_with_depth_changes = 5; + repeated uint32 old_depths_of_slide_nodes_with_depth_changes = 6; + repeated .TSP.Reference slide_nodes_for_depth_fix_up = 7; + repeated uint32 depths_of_slide_nodes_for_depth_fix_up = 8; + repeated uint32 old_depths_of_slide_nodes_for_depth_fix_up = 9; + optional .KN.CommandShowInsertSlideArchive.Kind kind = 10 [default = kKindInsertSlide]; + repeated .TSP.Reference template_slide_nodes_being_inserted = 11; + repeated .TSP.UUID custom_format_keys = 12; + repeated bool collapsed_state_of_slide_nodes_being_inserted = 13; + optional .TSP.Reference undo_archive = 15; +} + +message .KN.CommandShowMoveSlideArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.Reference slide_nodes_being_moved_linearly = 2; + repeated .TSK.RearrangeIdOperationArgs rearranged_args_list = 3; + repeated .TSP.UUID ids_of_slide_nodes_with_depth_changes = 4; + repeated uint32 depths_of_slide_nodes_with_depth_changes = 5; + repeated uint32 old_depths_of_slide_nodes_with_depth_changes = 6; + repeated .TSP.Reference slide_nodes_for_depth_fix_up = 7; + repeated uint32 depths_of_slide_nodes_for_depth_fix_up = 8; + repeated uint32 old_depths_of_slide_nodes_for_depth_fix_up = 9; +} + +message .KN.CommandShowRemoveSlideArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.Reference slide_nodes_being_removed = 2; + repeated .TSK.RemoveIdOperationArgs removed_args_list = 3; + repeated .TSP.UUID ids_of_slide_nodes_with_depth_changes = 4; + repeated uint32 depths_of_slide_nodes_with_depth_changes = 5; + repeated uint32 old_depths_of_slide_nodes_with_depth_changes = 6; + repeated .TSP.Reference slide_nodes_for_depth_fix_up = 7; + repeated uint32 depths_of_slide_nodes_for_depth_fix_up = 8; + repeated uint32 old_depths_of_slide_nodes_for_depth_fix_up = 9; + repeated bool collapsed_state_of_slide_nodes_being_removed = 11; +} + +message .KN.CommandShowChangeThemeArchive { + message IdentifierToStyleMap { + repeated .TSS.StylesheetArchive.IdentifiedStyleEntry styles = 1; + } + required .TSK.CommandArchive super = 1; + required .TSP.Reference show = 2; + required .TSP.Reference theme = 3; + optional .TSP.Reference old_theme = 4; + optional string template_identifier = 5; + optional string old_template_identifier = 6; + optional .KN.CommandShowChangeThemeArchive.IdentifierToStyleMap identifier_to_style_map = 7; + optional .KN.CommandShowChangeThemeArchive.IdentifierToStyleMap old_identifier_to_style_map = 8; +} + +message .KN.CommandShowChangeSlideSizeArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Size size = 2; +} + +message .KN.CommandSetThemeCustomEffectTimingCurveArchive { + required .TSK.CommandArchive super = 1; + optional string name = 2; + optional .TSD.PathSourceArchive path_source = 3; + optional .TSD.PathSourceArchive old_path_source = 4; +} + +message .KN.CommandMoveTemplatesArchive { + required .TSD.ContainerReorderChildrenCommandArchive super = 1; + repeated .TSP.Reference template_slides = 3; + repeated .TSP.Reference previous_indexes_keys = 4; + repeated uint32 previous_indexes_values = 5; + repeated .TSP.Reference final_template_arrangement = 6; +} + +message .KN.CommandInsertTemplateArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.Reference undo_template_change_commands = 7; + required bool set_inserted_slide_as_default_template_slide = 8; + optional .TSP.Reference undo_replacement_template_slide_node = 9; +} + +message .KN.CommandPrimitiveInsertTemplateArchive { + required .TSD.ContainerInsertChildrenCommandArchive super = 1; + required bool was_inserted_with_drop = 2; + repeated .TSP.UUID custom_format_keys = 3; + repeated .TSP.Reference previous_classic_theme_records = 4; +} + +message .KN.CommandRemoveTemplateArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.Reference replacement_template_slide_node = 5; + repeated .TSP.Reference template_change_commands = 6; + optional bool default_template_slide_node_was_replaced = 7; +} + +message .KN.CommandPrimitiveRemoveTemplateArchive { + required .TSD.ContainerRemoveChildrenCommandArchive super = 1; + repeated .TSP.Reference previous_classic_theme_records = 3; +} + +message .KN.CommandSlideInsertBuildArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference insert_build_description = 2; + optional .KN.BuildChunkIdentifierArchive identifier_for_chunk_to_insert_after = 3; + optional bool should_create_chunks = 4; + repeated .TSP.Reference old_tuples_to_update = 5; + optional bool was_initialized_over_the_wire = 6; + optional bool has_been_committed = 7; +} + +message .KN.InsertBuildDescriptionArchive { + required .TSP.UUID slide_id = 1; + required .TSP.Reference build_to_insert = 2; + repeated .TSP.Reference chunks_to_insert = 3; + required bool should_assign_chunk_identifiers = 4; + repeated .KN.BuildChunkIdentifierArchive identifers_for_chunks_to_insert_after = 5; + repeated .TSP.Reference tuples_to_update = 6; + repeated .KN.BuildChunkIdentifierArchive fallback_chunk_identifiers = 7; + required bool is_for_paste = 8; +} + +message .KN.UndoObjectArchive { + required .TSD.UndoObjectArchive super = 1; +} + +message .KN.CommandSlideRemoveBuildArchive { + required .TSK.CommandArchive super = 1; + required .TSP.Reference remove_build_description = 2; + optional .TSP.Reference build = 3; + repeated .TSP.Reference chunks_to_insert = 4; + repeated .KN.BuildChunkIdentifierArchive identifiers_for_chunks_to_insert_after = 5; + repeated .TSP.Reference old_tuples_to_update = 6; + repeated .KN.BuildChunkIdentifierArchive fallback_chunk_identifiers = 7; +} + +message .KN.RemoveBuildDescriptionArchive { + optional .TSP.UUID slide_id = 1; + optional .TSP.UUID build_id = 2; + optional bool should_remove_chunks = 3; + optional bool should_remove_chunk_identifiers = 4; + repeated .TSP.Reference tuples_to_update = 5; +} + +message .KN.CommandSlideInsertBuildChunkArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUID slide_id = 2; + required .TSP.Reference chunk_to_insert = 3; + optional .KN.BuildChunkIdentifierArchive identifier_for_chunk_to_insert_after = 4; + repeated .TSP.Reference tuples_to_update = 5; + repeated .TSP.Reference old_tuples_to_update = 6; + optional bool needs_selection_update = 7; + optional bool should_assign_chunk_identifier = 8; +} + +message .KN.CommandSlideRemoveBuildChunkArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUID slide_id = 2; + optional .TSP.Reference removed_chunk = 3; + optional .KN.BuildChunkIdentifierArchive identifier_for_chunk_to_remove = 4; + optional .KN.BuildChunkIdentifierArchive identifier_for_chunk_to_insert_after = 5; + repeated .TSP.Reference tuples_to_update = 6; + repeated .TSP.Reference old_tuples_to_update = 7; + optional bool needs_selection_update = 8; +} + +message .KN.CommandSlideMoveBuildChunksArchive { + required .TSK.CommandArchive super = 1; + repeated .KN.BuildChunkIdentifierArchive identifiers_for_chunks_to_move = 2; + repeated .KN.BuildChunkIdentifierArchive identifiers_for_chunks_to_move_after = 3; + repeated .KN.BuildChunkIdentifierArchive identifiers_for_chunks_to_move_after_for_undo = 4; + repeated .TSP.Reference tuples_to_update = 5; + repeated .TSP.Reference old_tuples_to_update = 6; + repeated .KN.BuildChunkIdentifierArchive identifiers_for_chunks_to_move_including_clustered_inactive_chunks = 7; +} + +message .KN.CommandBuildSetValueArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.Reference tuple = 2; + repeated .TSP.Reference chunks_to_add = 3; + repeated .KN.BuildChunkIdentifierArchive identifiers_for_chunks_to_insert_after = 4; + repeated .KN.BuildChunkIdentifierArchive identifiers_for_chunks_to_remove = 5; + repeated .TSP.Reference tuples_to_update = 6; + optional .TSP.Reference old_tuple_for_main_property = 7; + repeated .TSP.Reference old_tuples_to_update_for_sub_commands = 8; + repeated .KN.BuildChunkIdentifierArchive identifiers_for_added_chunks = 9; + repeated .KN.BuildChunkIdentifierArchive generated_identifiers = 10; + repeated .TSP.Reference removed_chunks = 11; + repeated .KN.BuildChunkIdentifierArchive identifiers_for_chunks_prior_to_removed_chunks = 12; + optional uint32 old_chunk_ID_seed = 13; + repeated .KN.BuildChunkIdentifierArchive old_chunk_identifiers = 14; + repeated .TSP.Reference chunks_removed_during_undo = 15; +} + +message .KN.CommandBuildUpdateChunkReferentsArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUID build_id = 2; + repeated .TSP.Reference tuples_to_update = 3; + repeated .TSP.Reference old_tuples_to_update = 4; +} + +message .KN.CommandBuildUpdateChunkCountArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUID slide_id = 2; + repeated .TSP.UUID drawable_ids = 3; + repeated .TSP.Reference expected_delivery_style_tuples = 4; + repeated .TSP.Reference chunks_to_add = 5; + repeated .KN.BuildChunkIdentifierArchive identifiers_for_chunks_to_insert_after = 6; + repeated .KN.BuildChunkIdentifierArchive identifiers_for_chunks_to_remove = 7; + repeated .TSP.Reference tuples_to_update = 8; + optional bool needs_async_process_changes_selection_update = 9; + repeated .TSP.Reference old_tuples_to_update = 10; + repeated .KN.BuildChunkIdentifierArchive identifiers_for_added_chunks = 11; + repeated .KN.BuildChunkIdentifierArchive generated_identifiers = 12; + repeated .TSP.Reference removed_chunks = 13; + repeated .KN.BuildChunkIdentifierArchive identifiers_for_chunks_prior_to_removed_chunks = 14; + repeated .TSP.Reference old_delivery_style_tuples = 15; + repeated uint32 old_chunk_ID_seeds = 16; + repeated .KN.BuildChunkIdentifierArchive old_chunk_identifiers = 17; + repeated .TSP.Reference working_builds = 18; + repeated .TSP.Reference chunks_removed_during_undo = 19; + repeated .TSP.Reference chunks_added_during_undo = 20; +} + +message .KN.CommandBuildChunkSetValueArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.Reference tuples_to_update = 2; + repeated .TSP.Reference old_tuples_to_update = 3; +} + +message .KN.CommandTransitionSetValueArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUIDPath slide_node_id_path = 2; + optional .KN.TransitionAttributesArchive old_attributes = 3; + optional .KN.TransitionAttributesArchive attributes = 4; + optional string property = 5; +} + +message .KN.CommandShowSetSlideNumberVisibilityArchive { + required .TSK.CommandArchive super = 1; + required bool slide_numbers_visible = 3; + repeated .TSP.UUID ids_of_slide_nodes_to_skip = 4; + repeated .TSP.UUID ids_of_slide_nodes_already_correct = 5; + required bool is_undo = 6; +} + +message .KN.CommandTemplateSetThumbnailTextArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUID template_id = 2; + required bool is_body = 3; + optional string new_text = 4; + optional string old_text = 5; +} + +message .KN.CommandTemplateSetBodyStylesArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUID template_id = 2; + repeated .TSP.Reference new_paragraph_styles = 3; + repeated .TSP.Reference new_list_styles = 4; + repeated .TSP.Reference old_paragraph_styles = 5; + repeated .TSP.Reference old_list_styles = 6; +} + +message .KN.CommandChangeTemplateSlideArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUIDPath slide_id_path = 2; + required .TSP.Reference template_slide_node = 3; + optional .TSP.Reference old_template_slide_node = 4; + required bool is_undo_redo = 5; + optional .TSP.Reference target_prototype = 6; +} + +message .KN.CommandSlidePrimitiveSetTemplateArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUIDPath slide_id_path = 2; + required .TSP.UUID template_id = 3; + optional .TSP.Reference old_template_slide_node = 4; +} + +message .KN.CommandSlideResetTemplateBackgroundObjectsArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.UUIDPath slide_id_path = 2; +} + +message .KN.CommandShowSetSoundtrack { + required .TSK.CommandArchive super = 1; + optional .TSP.Reference show = 2; + optional .TSP.Reference soundtrack = 3; + optional .TSP.Reference old_soundtrack = 4; +} + +message .KN.CommandSoundtrackSetValue { + message PropertyValue { + optional double double_value = 1; + optional .KN.Soundtrack.SoundtrackMode mode_value = 2; + repeated .TSP.DataReference media_reference_values = 3; + } + required .TSK.CommandArchive super = 1; + optional .TSP.UUID soundtrack_id = 2; + optional string property = 3; + optional .KN.CommandSoundtrackSetValue.PropertyValue old_value = 4; + optional .KN.CommandSoundtrackSetValue.PropertyValue new_value = 5; +} + +message .KN.CommandSlideUpdateTemplateDrawables { + required .TSK.CommandArchive super = 1; + required .TSP.UUID slide_id = 2; + repeated .TSK.IdPlacementOperationArgs id_placement_operation_args = 3; + repeated .TSP.Reference old_child_infos_for_undo = 4; +} + +message .KN.ChartInfoGeometryCommandArchive { + required .TSD.InfoGeometryCommandArchive super = 1; + required .TSP.Point previous_legend_offset = 2; + required .TSP.Size previous_legend_size = 3; + required .TSP.Point adjusted_legend_offset = 4; + required .TSP.Size adjusted_legend_size = 5; +} + +message .KN.CanvasSelectionTransformerArchive { + required .TSD.InfoCollectionSelectionTransformerHelperArchive transformer_helper = 1; + repeated .KN.BuildChunkIdentifierArchive build_chunk_ids = 2; + repeated .TSP.UUID action_build_ids = 3; + repeated .TSP.UUID originally_selected_drawable_uuids = 4; +} + +message .KN.ActionGhostSelectionTransformerArchive { +} + +message .KN.DocumentSelectionTransformerArchive { + required .TSP.Reference document_selection = 1; +} + +message .KN.NoteCanvasSelectionTransformerArchive { + required .TSD.InfoCollectionSelectionTransformerHelperArchive transformer_helper = 1; +} + +message .KN.OutlineCanvasSelectionTransformerArchive { + required .TSP.Reference canvas_selection_transformer = 1; + optional .TSP.UUIDPath storage_uuid_path = 2; +} + +message .KN.SlideCollectionSelectionTransformerHelperArchive { + repeated .TSP.UUIDPath slide_nodes = 1; + optional .TSP.UUIDPath slide_node_to_edit = 2; + optional bool slide_collection_is_theme = 3 [default = false]; + optional uint32 previous_primary_selected_index = 4; +} + +message .KN.SlideCollectionSelectionTransformerArchive { + required .KN.SlideCollectionSelectionTransformerHelperArchive transformer_helper = 1; +} + +message .KN.OutlineSelectionTransformerArchive { + required .KN.SlideCollectionSelectionTransformerHelperArchive transformer_helper = 1; + optional bool can_have_range_in_selected_paragraph = 2 [default = false]; + repeated .TSK.RangeAddress selection_range_addresses = 3; +} + +message .KN.CommandLiveVideoInfoApplyPreset { + required .TSD.BaseApplyPresetCommandArchive super = 1; +} + +message .KN.CommandLiveVideoInfoSetSource { + required .TSK.CommandArchive super = 1; + required .TSP.UUIDPath live_video_info_id_path = 2; + optional .TSP.UUID source_id = 3; + optional .TSP.UUID local_collaboration_command_usage_token = 4; + optional .KN.LiveVideoSourceCollaborationCommandUsageState working_source_old_collaboration_command_usage_state = 5; + optional .TSP.Reference old_source = 6; + optional .TSP.UUID old_source_id = 7; +} + +message .KN.CommandLiveVideoInfoSetValue { + message PropertyValue { + optional double scale = 1; + optional .TSP.Point normalized_offset = 2; + optional int32 mask_kind = 3; + optional double mask_corner_radius = 4; + optional bool is_placeholder = 5; + optional int32 background_kind = 6; + optional .TSD.FillArchive background_fill = 7; + } + enum Property { + Scale = 0; + NormalizedOffset = 1; + MaskKind = 2; + MaskCornerRadius = 3; + IsPlaceholder = 4; + BackgroundKind = 5; + BackgroundFill = 6; + } + required .TSK.CommandArchive super = 1; + required .TSP.UUIDPath live_video_info_id_path = 2; + required .KN.CommandLiveVideoInfoSetValue.Property property = 3; + optional .KN.CommandLiveVideoInfoSetValue.PropertyValue value = 4; + optional .KN.CommandLiveVideoInfoSetValue.PropertyValue old_value = 5; +} + +message .KN.CommandLiveVideoSourceSetValue { + message PropertyValue { + optional string name = 1; + optional .KN.LiveVideoCaptureDeviceDescription capture_device_description = 2; + optional .TSP.DataReference poster_image_data = 3; + optional string symbol_abbreviation_text = 4; + optional int32 symbol_image_identifier = 5; + optional int32 symbol_tint_color_identifier = 6; + } + enum Property { + SourceName = 0; + CaptureDeviceDescription = 1; + PosterImageData = 2; + SymbolAbbreviationText = 3; + SymbolImageIdentifier = 4; + SymbolTintColorIdentifier = 5; + } + required .TSK.CommandArchive super = 1; + required .TSP.UUID live_video_source_id = 2; + required .KN.CommandLiveVideoSourceSetValue.Property property = 3; + optional .KN.CommandLiveVideoSourceSetValue.PropertyValue value = 4; + optional .KN.CommandLiveVideoSourceSetValue.PropertyValue old_value = 5; +} + +message .KN.CommandLiveVideoStyleSetValue { + required .TSD.BaseStyleSetValueCommandArchive super = 1; + optional .TSDSOS.MediaStylePropertyChangeSetArchive change = 2; +} + +message .KN.CommandThemeAddLiveVideoSource { + required .TSK.CommandArchive super = 1; + optional .TSP.Reference live_video_source = 2; + optional bool is_implicit = 3; +} + +message .KN.CommandThemeRemoveLiveVideoSource { + required .TSK.CommandArchive super = 1; + required .TSP.UUID live_video_source_id = 2; + optional bool is_implicit = 3; + optional .TSP.Reference removed_live_video_source = 4; +} + +message .KN.CommandMotionBackgroundStyleSetValueArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUIDPath slide_id_path = 4; + optional .TSP.Reference old_style = 2; + optional .TSP.Reference old_slide_style = 5; + optional .KNSOS.MotionBackgroundStylePropertyChangeSetArchive change = 3; + optional .KNSOS.MotionBackgroundStylePropertyChangeSetArchive undo_property_change = 6; +} + +message .KN.CommandMotionBackgroundStyleUpdatePosterFrameDataArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.Reference motion_background_style = 2; + optional .TSP.DataReference poster_image_data = 3; + optional .TSP.DataReference old_poster_image_data = 4; +} + + +message .KNSOS.InducedVerifyDocumentWithServerCommandArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.UUID slide_node_id_list = 2; + optional bool slide_node_id_list_undefined = 3; + repeated .TSP.UUID template_slide_node_id_list = 4; + optional bool template_slide_node_id_list_undefined = 5; +} + +message .KNSOS.InducedVerifyDrawableZOrdersWithServerCommandArchive { + required .TSASOS.InducedVerifyDrawableZOrdersWithServerCommandArchive super = 1; +} + +message .KNSOS.CommandSlideReapplyTemplateSlideArchive { + required .TSASOS.CommandReapplyMasterArchive super = 1; +} + + +enum .TP.ViewScaleMode { + ViewScaleMode_UserDefined = 0; + ViewScaleMode_FitWidth = 1; + ViewScaleMode_FirPage = 2; +} + +enum .TP.ViewScaleModeiOS { + ViewScaleModeiOS_Undefined = 0; + ViewScaleModeiOS_UserDefined = 1; + ViewScaleModeiOS_FitWidth = 2; + ViewScaleModeiOS_FitMinimum = 3; + ViewScaleModeiOS_FitPortraitWidth = 4; +} + +enum .TP.PageViewState { + PageViewState_OneUp = 0; + PageViewState_TwoUp = 1; +} + +message .TP.DocumentArchive { + required .TSA.DocumentArchive super = 15; + optional .TSP.Reference stylesheet = 2; + optional .TSP.Reference floating_drawables = 3; + optional .TSP.Reference body_storage = 4; + optional .TSP.Reference section = 5; + optional .TSP.Reference theme = 6; + optional .TSP.Reference settings = 7; + optional .TSP.Reference deprecated_layout_state = 11; + optional .TSP.Reference deprecated_view_state = 12; + repeated .TSP.Reference citation_records = 13; + repeated .TSP.Reference toc_styles = 14; + repeated .TSP.Reference change_sessions = 16; + optional .TSP.Reference most_recent_change_session = 17; + optional .TSP.Reference drawables_zorder = 20; + optional bool uses_single_header_footer = 21; + optional float page_width = 30; + optional float page_height = 31; + optional float left_margin = 32; + optional float right_margin = 33; + optional float top_margin = 34; + optional float bottom_margin = 35; + optional float header_margin = 36; + optional float footer_margin = 37; + optional float page_scale = 38; + optional bool lays_out_body_vertically = 39; + optional bool change_tracking_enabled = 40; + optional .TSP.Reference tables_custom_format_list = 41; + optional uint32 orientation = 42 [default = 0]; + optional string printer_id = 43; + optional string paper_id = 44; + optional .TSP.DataReference equation_environment = 45; + optional bool show_in_bookmarks_list_paragraph_styles_property_initialized = 46 [default = false]; + optional .TSP.Reference flow_info_container = 47; + repeated .TSP.Reference page_templates = 48; + optional bool should_use_anchored_drawable_wrap_slop = 49; + optional .TSP.Reference merge_data = 50; +} + +message .TP.ThemeArchive { + required .TSS.ThemeArchive super = 1; +} + +message .TP.SettingsArchive { + enum FootnoteKind { + kFootnoteKindFootnotes = 0; + kFootnoteKindDocumentEndnotes = 1; + kFootnoteKindSectionEndnotes = 2; + } + enum FootnoteFormat { + kFootnoteFormatNumeric = 0; + kFootnoteFormatRoman = 1; + kFootnoteFormatSymbolic = 2; + kFootnoteFormatJapaneseNumeric = 3; + kFootnoteFormatJapaneseIdeographic = 4; + kFootnoteFormatArabicNumeric = 5; + } + enum FootnoteNumbering { + kFootnoteNumberingContinuous = 0; + kFootnoteNumberingRestartEachPage = 1; + kFootnoteNumberingRestartEachSection = 2; + } + optional bool body = 1 [default = true]; + optional bool headers = 2 [default = true]; + optional bool footers = 3 [default = true]; + optional bool preview = 4 [default = true]; + optional bool copy_movies = 5 [default = true]; + optional bool copy_assets = 6 [default = true]; + optional bool placeholder_authoring = 7 [default = false]; + optional bool links_enabled = 8 [default = true]; + optional bool hyphenation = 9 [default = false]; + optional bool use_ligatures = 10 [default = false]; + optional bool toc_links_enabled = 11 [default = false]; + optional bool show_ct_markup = 12 [default = true]; + optional bool show_ct_deletions = 13 [default = true]; + optional int32 ct_bubbles_visibility = 14; + optional bool change_bars_visible = 15 [default = true]; + optional bool format_changes_visible = 16 [default = true]; + optional bool annotations_visible = 17 [default = true]; + optional bool document_is_rtl = 18 [default = false]; + optional string decimal_tab = 20; + optional string language = 21; + optional string hyphenation_language = 22; + optional string creation_locale = 23; + optional string last_locale = 24; + optional string orig_template = 25; + optional string creation_date = 26; + optional string bibliography_format = 27; + optional .TP.SettingsArchive.FootnoteKind footnote_kind = 30; + optional .TP.SettingsArchive.FootnoteFormat footnote_format = 31; + optional .TP.SettingsArchive.FootnoteNumbering footnote_numbering = 32; + optional int32 footnote_gap = 33; + optional bool facing_pages = 34 [default = false]; + optional bool section_authoring = 40 [default = false]; +} + +message .TP.PlaceholderArchive { + required .TSWP.ShapeInfoArchive super = 1; +} + +message .TP.DrawableTagPairsArchive { + message DrawableTagPair { + required string tag = 1; + required .TSP.Reference drawable = 2; + } + repeated .TP.DrawableTagPairsArchive.DrawableTagPair drawable_tag_pairs = 1; +} + +message .TP.FloatingDrawablesArchive { + message DrawableEntry { + optional .TSP.Reference drawable = 1; + } + message PageGroup { + required uint32 page_index = 1; + repeated .TP.FloatingDrawablesArchive.DrawableEntry background_drawables = 2; + repeated .TP.FloatingDrawablesArchive.DrawableEntry foreground_drawables = 3; + repeated .TP.FloatingDrawablesArchive.DrawableEntry drawables = 4; + } + repeated .TP.FloatingDrawablesArchive.PageGroup page_groups = 1; + optional .TP.DrawableTagPairsArchive drawable_tag_pairs = 2; +} + +message .TP.DrawablesZOrderArchive { + repeated .TSP.Reference drawables = 1; +} + +message .TP.SectionTemplateArchive { + repeated .TSP.Reference headers = 1; + repeated .TSP.Reference footers = 2; + repeated .TSP.Reference section_template_drawables = 3; + optional .TSP.UUIDPath page_template_uuidpath = 4; +} + +message .TP.PageTemplateArchive { + message TagDrawablePair { + required string tag = 1; + required .TSP.Reference drawable = 2; + required uint32 z_index = 3; + } + optional string name = 1; + repeated .TSP.Reference section_template_drawables = 2; + repeated .TP.PageTemplateArchive.TagDrawablePair placeholder_drawables = 3; + required bool headers_footers_match_previous_page = 4; + optional bool hide_headers_footers = 5; + optional .TSD.FillArchive background_fill = 6; + optional .TSP.Reference guide_storage = 7; +} + +message .TP.SectionArchive { + optional bool OBSOLETE_shows_header = 1; + optional bool OBSOLETE_shows_footer = 2; + repeated .TSP.Reference OBSOLETE_headers = 3; + repeated .TSP.Reference OBSOLETE_footers = 4; + optional float OBSOLETE_left_margin = 5; + optional float OBSOLETE_right_margin = 6; + optional float OBSOLETE_top_margin = 7; + optional float OBSOLETE_bottom_margin = 8; + optional float OBSOLETE_header_padding = 9; + optional float OBSOLETE_footer_padding = 10; + optional float OBSOLETE_paper_width = 11; + optional float OBSOLETE_paper_height = 12; + optional bool OBSOLETE_landscape_mode = 13; + repeated .TSP.Reference OBSOLETE_section_template_drawables = 14; + optional float OBSOLETE_header_margin = 15; + optional float OBSOLETE_footer_margin = 16; + optional bool inherit_previous_header_footer = 17; + optional bool section_template_first_page_different = 18; + optional bool section_template_even_odd_pages_different = 19; + optional uint32 section_start_kind = 20; + optional uint32 section_page_number_kind = 21; + optional uint32 section_page_number_start = 22; + optional .TSP.Reference first_section_template_page = 23; + optional .TSP.Reference even_section_template_page = 24; + optional .TSP.Reference odd_section_template_page = 25; + optional string name = 26; + optional bool section_template_first_page_hides_header_footer = 28; + optional .TSP.Reference user_defined_guide_storage = 29; + optional .TSD.FillArchive background_fill = 30; + optional .TSP.UUID section_hyperlink_uuid = 31; +} + +message .TP.DoublePoint { + required double x = 1; + required double y = 2; +} + +message .TP.DoubleSize { + required double width = 1; + required double height = 2; +} + +message .TP.AnchorPosArchive { + optional .TSP.Reference attachment = 1 [deprecated = true]; + optional .TSP.Point position = 2; + optional .TSP.UUIDPath drawable_uuid_path = 3; + optional .TP.DoublePoint double_position = 4; +} + +message .TP.TargetHintArchive { + optional .TSP.Point frame_origin = 1; + optional .TSP.Size frame_size = 2; + optional .TSP.Range range = 3; + optional uint32 next_widow_pulls_down_from_char_index = 4; + optional .TSP.Range anchored_range = 5; + optional uint32 column_count = 6; + optional uint32 line_fragment_count = 7; + optional .TP.DoublePoint double_origin = 8; + optional .TP.DoubleSize double_size = 9; + optional bool end_of_layout = 10; + optional bool last_line_is_empty_and_has_list_label = 11; + optional bool text_is_vertical = 12; + optional bool terminated_by_break = 13; +} + +message .TP.PageHintArchive { + enum PageKind { + kPageKindNone = 0; + kPageKindText = 1; + kPageKindFiller = 2; + kPageKindOrphan = 3; + kPageKindEndnote = 4; + kPageKindDirty = 5; + kTPPageKindPageLayout = 6; + } + enum PageSide { + kTPPageSideUnknown = 0; + kTPPageSideLeft = 1; + kTPPageSideRight = 2; + } + optional .TP.PageHintArchive.PageKind page_kind = 1; + repeated .TP.TargetHintArchive target_hints = 2; + optional .TSP.Range footnote_auto_number_range = 3; + optional .TSP.Range footnote_layout_range = 4; + optional .TSP.Reference first_child_hint = 6 [deprecated = true]; + optional .TSP.Reference last_child_hint = 7 [deprecated = true]; + repeated .TP.AnchorPosArchive anchored_attachments_map = 8; + optional uint32 version_number = 10; + optional uint32 platform_id = 11; + repeated .TSP.Reference child_hints = 12; + repeated .TSP.UUID partitioned_attachment_uuids = 13; + repeated .TSP.Reference text_flows = 14; + repeated .TP.TargetHintArchive flow_hints = 15; + optional .TP.PageHintArchive.PageSide page_side = 17 [deprecated = true]; + optional uint32 page_column = 18; + optional uint32 page_row = 19; + optional .TP.TopicNumberHintsArchive topic_number_hints = 20; + repeated .TP.TopicNumberHintsArchive flow_topic_number_hints = 21; +} + +message .TP.NullChildHintArchive { +} + +message .TP.SectionHintArchive { + repeated .TP.PageHintArchive page_hints = 1; + optional uint32 start_page_index = 2; +} + +message .TP.TextboxHintArchive { + required .TSP.Range range = 1; + required .TSP.Size size = 2; +} + +message .TP.TopicNumberHintLevelDataArchive { + required uint32 number = 1; + required uint32 label_type = 2; + required uint32 number_type = 3; + required bool is_tiered = 4; +} + +message .TP.TopicNumberHintEntryArchive { + required .TSP.Reference list_style = 1; + repeated .TP.TopicNumberHintLevelDataArchive topic_numbers = 2; +} + +message .TP.TopicNumberHintsArchive { + repeated .TP.TopicNumberHintEntryArchive topic_numbers_map = 2; +} + +message .TP.LayoutStateArchive { + optional uint32 section_index = 1; + optional uint32 section_page_index = 2; + optional uint32 document_page_index = 3; + optional uint32 last_page_count = 4; + repeated .TP.SectionHintArchive section_hints = 5; + optional uint32 body_length = 6; + repeated string missing_fonts = 7; + optional int32 os_version = 8; +} + +message .TP.CanvasSelectionArchive { + required .TSWP.SelectionType deprecated_type = 1 [deprecated = true]; + required .TSP.Range visual_definition_range = 2; + required .TSWP.StyleInsertionBehavior style_insertion_behavior = 3; + required .TSWP.CaretAffinity caret_affinity = 4; + repeated .TSP.Reference infos = 5; + repeated .TSP.Reference excluded_infos = 6; + repeated .TSP.Reference additional_infos = 7; + optional .TSP.Reference deprecated_container = 8; + optional bool leading_edge = 9; + optional uint32 leading_char_index = 10; + optional .TSWP.SelectionType type = 11; + repeated .TSP.Range ranges = 12; +} + +message .TP.AllFootnoteSelectionArchive { +} + +message .TP.UIStateArchive { + optional float OBSOLETE_view_scale = 1; + optional .TSP.Point visible_rect_origin = 2; + optional bool OBSOLETE_landscape = 3; + optional .TSP.Reference selection = 4 [deprecated = true]; + optional .TSP.Reference selection_model = 5 [deprecated = true]; + optional bool section_template_drawables_selectable = 6; + optional .TSP.Size visible_rect_size = 7; + repeated .TSCH.ChartUIState chart_ui_state = 8; + optional bool ruler_visible = 9 [default = true]; + optional bool layout_borders_visible = 10 [default = false]; + optional bool word_count_hud_visible = 11 [default = false]; + optional bool shows_comments = 12 [default = true]; + optional bool shows_page_navigator = 13 [default = false]; + optional .TP.ViewScaleMode view_scale_mode = 14 [default = ViewScaleMode_UserDefined]; + optional float view_scale = 15 [default = 1.25]; + optional .TSP.Point window_frame_origin = 16; + optional .TSP.Size window_frame_size = 17; + optional string selected_inspector_switch_segment_identifier = 18; + optional bool inspector_hidden = 19; + optional uint32 word_count_hud_type = 20; + optional float word_count_hud_x_position = 21; + optional float word_count_hud_y_position = 22; + optional bool show_user_defined_guides = 23 [default = true]; + optional bool should_show_comment_sidebar = 24 [default = false]; + optional .TSK.SelectionPathArchive compatibility_selection_path = 25; + optional bool shows_ctmarkup = 26 [default = true]; + optional bool shows_ctdeletions = 27 [default = true]; + optional bool change_tracking_paused = 28 [default = false]; + optional .TSK.SelectionPathArchive selection_path = 29; + optional string filtered_author_name = 30; + optional .TP.ViewScaleModeiOS view_scale_mode_ios = 31 [default = ViewScaleModeiOS_UserDefined]; + optional .TSP.Reference filtered_author = 32; + optional .TP.PageViewState page_view_state = 33; + optional bool pencil_annotations_hidden = 34 [default = false]; + optional .TSP.Reference freehand_drawing_toolkit_state = 35; + optional float presentation_auto_scroll_speed = 36; + optional .TSP.Reference selection_path_transformer = 37; + optional bool shows_toc_navigator = 38 [default = false]; + optional bool show_user_defined_page_template_guides = 39 [default = true]; + optional bool editing_disabled = 40; + optional .TSP.Reference pencil_annotation_ui_state = 41; + optional bool shows_flow_mode = 42 [default = false]; + optional .TP.MailMergeSettingsArchive mail_merge_settings = 43; + optional bool shows_activity_stream = 44 [default = false]; + optional float toc_or_page_nav_width = 45; + optional float activity_or_annotation_width = 46; +} + +message .TP.ViewStateRootArchive { + optional .TSP.Reference layout_state = 1; + optional .TSP.Reference view_state = 2; +} + +message .TP.UserDefinedGuideMapArchive { + message UserDefinedGuide { + required uint32 page_index = 1; + required .TSP.Reference guide_storage = 2; + } + repeated .TP.UserDefinedGuideMapArchive.UserDefinedGuide user_defined_guide_storages = 1; +} + +message .TP.SectionSelectionArchive { + repeated .TSP.Reference sections = 1; +} + +message .TP.SectionSelectionTransformerArchive { + optional .TSP.Reference original_selection = 1; + optional .TSP.UUIDPath storage_uuid_path = 2; + repeated .TSP.UUIDPath section_uuid_paths = 3; +} + +message .TP.SectionPasteboardObjectArchive { + message PageDrawables { + required uint32 page_index = 1; + required .TP.DrawableTagPairsArchive drawable_tag_pairs = 2; + } + required .TSP.Reference text_storage = 1; + required uint32 page_count = 2; + repeated .TP.SectionPasteboardObjectArchive.PageDrawables page_drawables = 3; + repeated .TSP.Reference ordered_drawables = 4; +} + +message .TP.SectionsAppNativeObjectArchive { + message PageTemplatesEntry { + required .TSP.UUID key = 1; + required .TSP.Reference value = 2; + } + repeated .TSP.Reference section_pasteboard_objects = 1; + repeated .TP.SectionsAppNativeObjectArchive.PageTemplatesEntry page_templates = 2; + repeated .TSP.Reference flows = 3; +} + +message .TP.MailMergeSettingsArchive { + message NumbersDataSourceArchive { + optional bytes bookmark_data = 1; + optional .TSP.UUID table_uuid = 2; + optional .TSP.UUID document_uuid = 4; + repeated .TSWP.MergeFieldTypeArchive merge_field_types = 3; + } + message ContactsFieldsMapEntry { + optional string key = 1; + optional .TSWP.MergeFieldTypeArchive value = 2; + } + message NumbersFieldsMapEntry { + optional string key = 1; + optional .TSWP.MergeFieldTypeArchive value = 2; + } + enum CurrentDataSource { + kContactsDataSource = 0; + kNumbersDataSource = 1; + } + optional bool substitute_closest = 1 [default = true]; + optional bool data_has_header_row = 2 [default = true]; + optional .TP.MailMergeSettingsArchive.CurrentDataSource current_data_source = 3 [default = kContactsDataSource]; + optional string contacts_group_identifier = 4; + optional string numbers_document_url = 5 [deprecated = true]; + optional .TSP.UUID numbers_table_uuid = 6 [deprecated = true]; + optional bytes numbers_bookmark_data = 7 [deprecated = true]; + optional .TP.MailMergeSettingsArchive.NumbersDataSourceArchive numbers_data_source = 8; + optional .TP.MailMergeSettingsArchive.NumbersDataSourceArchive merging_numbers_data_source = 9; + repeated .TP.MailMergeSettingsArchive.ContactsFieldsMapEntry contacts_fields_map = 10; + repeated .TP.MailMergeSettingsArchive.NumbersFieldsMapEntry numbers_fields_map = 11; +} + + +message .TPSOS.InducedVerifyDocumentWithServerCommandArchive { + required .TSK.CommandArchive super = 1; + repeated .TSP.UUID drawables_z_order_list = 2; + optional bool drawables_z_order_list_undefined = 3; +} + +message .TPSOS.InducedVerifyDrawableZOrdersWithServerCommandArchive { + required .TSASOS.InducedVerifyDrawableZOrdersWithServerCommandArchive super = 1; +} + +message .TPSOS.ReapplyPageTemplateCommandArchive { + required .TSASOS.CommandReapplyMasterArchive super = 1; +} + + +message .TP.InsertDrawablesCommandArchive { + enum InsertionType { + InsertingPrototype = 0; + Pasting = 1; + Cloning = 2; + } + required .TSK.CommandArchive super = 1; + optional bool for_paste = 2 [deprecated = true]; + optional .TP.InsertDrawablesCommandArchive.InsertionType insertion_type = 10; + repeated .TSK.AddIdOperationArgs args_list = 3; + repeated uint32 page_index_list = 4; + repeated .TSP.Reference drawable_info_list = 5; + repeated string placeholder_tags_list = 9; + repeated .TSP.UUID custom_format_keys = 6; + optional .TSP.Reference drawable_undo_object = 7; + optional uint32 saved_next_untitled_resolver_index = 8; +} + +message .TP.MoveDrawablesPageIndexCommandArchive { + message Drawable { + optional .TSP.Reference drawable = 1; + optional uint32 z_order = 2; + } + required .TSK.CommandArchive super = 1; + optional uint32 page_index = 2 [deprecated = true]; + repeated .TP.MoveDrawablesPageIndexCommandArchive.Drawable drawables = 3 [deprecated = true]; + optional bool maintain_z_order = 4 [deprecated = true]; + repeated .TSP.UUIDPath drawable_info_id_path_list = 5; + repeated uint32 page_index_list = 6; + repeated uint32 original_page_index_list = 7; + repeated string tags_list = 8; + repeated string original_tags_list = 9; + optional bool preserve_tags = 10; +} + +message .TP.InsertSectionBreakCommandArchive { + required .TSWP.StorageActionCommandArchive super = 1; +} + +message .TP.MoveDrawableZOrderCommandArchive { + required .TSK.CommandArchive super = 1; + repeated .TSK.RearrangeIdOperationArgs args_list = 2; + optional uint32 action_string_index = 3; +} + +message .TP.RemoveDrawablesCommandArchive { + required .TSK.CommandArchive super = 1; + repeated .TSK.RemoveIdOperationArgs args_list = 2; + repeated .TSP.Reference drawable_info_list = 3; + repeated uint32 page_index_list = 4; + repeated string tags_list = 5; +} + +message .TP.ChangeSectionMarginsCommandArchive { + enum SectionMargin { + kSectionMarginLeft = 0; + kSectionMarginRight = 1; + kSectionMarginTop = 2; + kSectionMarginBottom = 3; + kSectionMarginHeader = 4; + kSectionMarginFooter = 5; + } + required .TSK.CommandArchive super = 1; + optional .TSP.Reference section = 2; + optional .TP.ChangeSectionMarginsCommandArchive.SectionMargin margin = 3; + optional float margin_value = 4; +} + +message .TP.InsertSectionTemplateDrawablesCommandArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.Reference OBSOLETE_section = 2; + repeated .TSP.Reference section_template_drawables = 3; + optional uint32 drawable_index = 4; + optional .TSP.Reference section_template_drawable_provider = 5; + repeated .TSP.UUID custom_format_keys = 6; +} + +message .TP.MoveSectionTemplateDrawableZOrderCommandArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.Reference OBSOLETE_section = 2; + repeated .TSP.Reference section_template_drawables = 3; + repeated uint32 indexes = 4; + optional .TSP.Reference section_template_drawable_provider = 5; +} + +message .TP.RemoveSectionTemplateDrawablesCommandArchive { + message SectionTemplateDrawable { + optional .TSP.Reference drawable = 1; + optional uint32 drawable_index = 2; + } + required .TSK.CommandArchive super = 1; + optional .TSP.Reference OBSOLETE_section = 2; + repeated .TP.RemoveSectionTemplateDrawablesCommandArchive.SectionTemplateDrawable section_template_drawables = 3; + optional .TSP.Reference section_template_drawable_provider = 4; +} + +message .TP.PasteSectionTemplateDrawablesCommandArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.Reference section = 2; + repeated .TSP.Reference section_template_drawables = 3; + optional uint32 drawable_index = 4; +} + +message .TP.MoveDrawablesAttachedCommandArchive { + message GSSPCharIndexAndPosition { + optional int32 char_index = 1; + optional uint32 h_offset_type = 2; + optional float h_offset = 3; + optional uint32 v_offset_type = 4; + optional float v_offset = 5; + } + required .TSWP.StorageActionCommandArchive super = 1; + repeated .TSK.IdPlacementOperationArgs args_list = 2; + repeated .TSP.Range range_list = 3; + repeated .TSP.UUIDPath drawable_info_id_path_list = 4; + repeated .TP.MoveDrawablesAttachedCommandArchive.GSSPCharIndexAndPosition position_list = 5; + repeated .TSD.ExteriorTextWrapArchive exterior_text_wrap_list = 6; + repeated uint32 original_page_index_list = 7; + repeated .TSD.ExteriorTextWrapArchive original_exterior_text_wrap_list = 8; + repeated .TSP.Reference original_attachment_list = 9; +} + +message .TP.MoveDrawablesFloatingCommandArchive { + required .TSWP.StorageActionCommandArchive super = 1; + repeated .TSK.IdPlacementOperationArgs args_list = 2; + repeated .TSP.Range range_list = 3; + repeated .TSP.UUIDPath drawable_info_id_path_list = 4; + repeated uint32 page_index_list = 5; + repeated .TSD.ExteriorTextWrapArchive exterior_text_wrap_list = 6; + repeated .TSP.Reference original_attachment_list = 7; + repeated .TSD.ExteriorTextWrapArchive original_exterior_text_wrap_list = 8; +} + +message .TP.ChangeFootnoteFormatCommandArchive { + enum FootnoteFormat { + kFootnoteFormatNumeric = 0; + kFootnoteFormatRoman = 1; + kFootnoteFormatSymbolic = 2; + kFootnoteFormatJapaneseNumeric = 3; + kFootnoteFormatJapaneseIdeographic = 4; + kFootnoteFormatArabicNumeric = 5; + } + required .TSK.CommandArchive super = 1; + optional .TP.ChangeFootnoteFormatCommandArchive.FootnoteFormat format = 2; +} + +message .TP.ChangeFootnoteKindCommandArchive { + enum FootnoteKind { + kFootnoteKindFootnotes = 0; + kFootnoteKindDocumentEndnotes = 1; + kFootnoteKindSectionEndnotes = 2; + } + required .TSK.CommandArchive super = 1; + optional .TP.ChangeFootnoteKindCommandArchive.FootnoteKind kind = 2; + optional .TSWP.UndoTransaction undo_transaction = 3; +} + +message .TP.ChangeFootnoteNumberingCommandArchive { + enum FootnoteNumbering { + kFootnoteNumberingContinuous = 0; + kFootnoteNumberingRestartEachPage = 1; + kFootnoteNumberingRestartEachSection = 2; + } + required .TSK.CommandArchive super = 1; + optional .TP.ChangeFootnoteNumberingCommandArchive.FootnoteNumbering numbering = 2; +} + +message .TP.ChangeFootnoteSpacingCommandArchive { + required .TSK.CommandArchive super = 1; + optional int32 footnote_spacing = 2; +} + +message .TP.MoveInlineDrawableAnchoredCommandArchive { + required .TSWP.StorageActionCommandArchive super = 1; + optional .TSK.IdPlacementOperationArgs id_placement_operation_args = 2; + optional uint32 replacement_range_location = 3; + optional uint32 replacement_range_length = 4; + optional .TSP.UUIDPath drawable_info_id_path = 5; + optional .TSD.ExteriorTextWrapArchive exterior_text_wrap = 6; + optional .TSD.ExteriorTextWrapArchive original_exterior_text_wrap = 7; +} + +message .TP.MoveAnchoredDrawableInlineCommandArchive { + required .TSWP.StorageActionCommandArchive super = 1; + optional .TSK.IdPlacementOperationArgs id_placement_operation_args = 2; + optional uint32 replacement_range_location = 3; + optional uint32 replacement_range_length = 4; + optional .TSP.UUIDPath drawable_info_id_path = 5; + optional .TSD.ExteriorTextWrapArchive exterior_text_wrap = 6; + optional .TSD.ExteriorTextWrapArchive original_exterior_text_wrap = 7; +} + +message .TP.InsertFootnoteCommandArchive { + required .TSWP.StorageActionCommandArchive super = 1; +} + +message .TP.ToggleBodyLayoutDirectionCommandArchive { + required .TSK.CommandArchive super = 1; + optional bool new_direction_is_vertical = 2; +} + +message .TP.TrackChangesCommandArchive { + required .TSK.CommandArchive super = 1; + optional bool track_changes = 2; + repeated .TSP.Reference change_session_history = 3; + optional bool paused = 4 [deprecated = true]; + optional .TSP.Reference most_recent_change_session = 5; + optional bool old_track_changes = 6; + repeated .TSP.Reference old_change_session_history = 7; + optional .TSP.Reference old_most_recent_change_session = 8; +} + +message .TP.PauseChangeTrackingCommandArchive { + required .TSK.CommandArchive super = 1; + optional bool paused = 2 [deprecated = true]; +} + +message .TP.SectionGuideCommandArchive { + required .TSD.AbstractGuideCommandArchive super = 1; + required .TSP.UUIDPath section_id_path = 2; + required uint32 page_index = 3; +} + +message .TP.ReplaceHeaderFooterStorageCommandArchive { + required .TSK.CommandArchive super = 1; + optional .TSP.UUIDPath header_footer_storage_id_path = 2; + optional .TSP.Reference replacement_header_footer_storage = 3; + optional .TSP.Reference replacement_header_footer_storage_undo_object = 4; + optional .TSP.Reference old_header_footer_storage = 5; +} + +message .TP.PrototypeForUndoChangePageTemplateForSection { + optional .TSP.UUIDPath id_path_for_template_in_document = 1; + required .TSP.Reference internal_page_template = 2; +} + +message .TP.ChangePageTemplateForSectionCommandArchive { + required .TSK.CommandArchive super = 1; + required .TSP.UUIDPath section_id_path = 2; + required .TSP.Reference page_template = 3; + optional .TSP.Reference old_page_template = 4; + required bool is_undo_redo = 5; + optional .TSP.Reference target_prototype = 6; +} + +message .TP.AllFootnoteSelectionTransformerArchive { + required .TSP.Reference all_footnote_selection = 1; +} + +message .TP.DocumentSelectionTransformerArchive { + required .TSP.Reference document_selection = 1; + required .TSP.UUIDPath storage_uuid_path = 2; +} + +message .TP.CanvasSelectionTransformerArchive { + required .TSWP.SelectionTransformerArchive super = 1; + required .TSD.InfoCollectionSelectionTransformerHelperArchive infos_collection_helper = 2; + required .TSD.InfoCollectionSelectionTransformerHelperArchive excluded_infos_collection_helper = 3; + required .TSD.InfoCollectionSelectionTransformerHelperArchive additional_infos_collection_helper = 4; + optional .TSP.UUIDPath header_or_footnote_storage_uuid_path = 5; +} + + diff --git a/public/test.numbers b/public/test.numbers new file mode 100755 index 0000000..32813e9 Binary files /dev/null and b/public/test.numbers differ diff --git a/src/App.css b/src/App.css new file mode 100644 index 0000000..d0184a0 --- /dev/null +++ b/src/App.css @@ -0,0 +1,52 @@ +html, body { width: 100vw; height: 100vh;} + +#root { + width: 100vw; height: 100vh; + padding: 0; + text-align: center; + box-sizing: border-box; + display: block; +} + +.App { + font-family: sans-serif; + text-align: left; +} + +th { + background: white; + position: sticky; + top: 0; + box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.4); +} + +.header { + top: 0; + width: 100vw; + max-width: 100%; + position: sticky; + box-shadow: 0 -5px 15px 0 #ced4da; + background: white; + z-index: 10; +} + +.page { + width: calc(100vw - 10px); + height: calc(100vh - 35px) !important; + padding: 5px; + max-width: 100%; + display: flex; + flex-direction: column; +} + +.left { text-align: left;} +.right { text-align: right;} + +table { border-collapse: collapse;} +td, th { padding-left: 2px; padding-right: 2px; } + +.overflow { + overflow: auto; + width: 100%; + height: 100%; +} \ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 0000000..3e20a5c --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,359 @@ +/* TODO: + - history + - find example and correctly handle "merge" messages + - messages referencing selected msg + - sort and filter table + - loading icons + - expand referenced object in place + - paste bytes -> analyze + - edit fields / files? + - different menu for message / enum / extend / literal +*/ +import { useState, useEffect, useRef } from 'react'; +import type { MouseEvent as ReactMouseEvent, ChangeEventHandler, ChangeEvent } from 'react'; +import './App.css'; +import { ObjectInspector, ObjectLabel, ObjectName, ObjectValue } from 'react-inspector'; +import { PanelGroup, Panel, PanelResizeHandle } from 'react-resizable-panels'; +import { process, read, ParsedFile } from './iwa'; +import { parse_protos, ProtoMap } from './messages'; +import type { $_TSP_MessageInfo, $_TSP_Reference } from './messages'; +import { Menu, Item, Separator, useContextMenu } from 'react-contexify'; +import 'react-contexify/dist/ReactContexify.css'; +import { ToastContainer, toast } from 'react-toastify'; +import 'react-toastify/dist/ReactToastify.css'; + +//#region Xxd + +//import { vsprintf } from 'printj'; +/*const X = "%02hhx", Y = X + X + " "; +const FMT = [...Array.from({length:16}).map((_,i) => + Y.repeat(i>>1) + (i%2 ? X:" ") + " " + " ".repeat(7 - (i >> 1)) + "|" + "%c".repeat(i) + " ".repeat(16-i) + "|\n" +), Y.repeat(8) + "|" + "%c".repeat(16) + "|\n"]; + +const xxd = (u8: Uint8Array): string => { + let out: string[] = []; + for(let i = 0; i < u8.length; i+=16) { + let d = [...u8.slice(i, i+16)]; + out.push(vsprintf(`%04x: ${FMT[d.length]}`, [i, ...d, ...d.map(x => String.fromCharCode(x).replace(/[^\x20-\x7E]/g,"."))])) + } + return out.join(""); +} + +type XxdProps = { + data?: Uint8Array; +}; + +function Xxd({data}: XxdProps) { + return (
{data && xxd(data)}
); +}*/ +//
+ +//#endregion + +//#region TableView + +type TableViewProps = { + id?: string; + data: any[]; + cols: string[]; + rowclick?: (row: any, R: number, e: ReactMouseEvent) => void; + cellclick?: (value: any, R: number, C: number, e: ReactMouseEvent) => void; +}; + +function TableView({id, data, cols, rowclick, cellclick}: TableViewProps) { + return ( + + + {cols.map((c,idx) => ( + + ))} + + {data.map((row, R) => ( + {e.preventDefault(); e.stopPropagation(); rowclick(row, R, e)}} : {})} + {...(row["id"] == id ? {style: {backgroundColor: "#646cff", color: "#FFFFFF" }} : {})} + >{/* TODO: forward-ref? */} + {cols.map((c,C) => ())} + + ))} +
{c}
{e.preventDefault(); e.stopPropagation(); cellclick(row, R, C, e)}} : {})} + >{row[c]??""}
+ ); +} + +//#endregion + +//#region ContextMenu + +interface ContextMenuProps { + ID: string; + menuType: string; + menuField: string; + menuId: string; + onClickId?: ({props}: any)=>void; + onClickCopyByteArray?: ({props}: any)=>void; + onClickCopyJSON: ({props}: any)=>void; + showProtoDef: ({props}: any)=>void; +} +const ContextMenu = ({ID, menuType, menuField, menuId, onClickId, onClickCopyByteArray, onClickCopyJSON, showProtoDef}: ContextMenuProps) => ( + + {menuField && ({menuField})} + {menuType} + + + Copy byte array + Copy JSON + Show Definition + ); + +//#endregion + +function App() { + /* selected message ID */ + const [id, setId] = useState("0"); + /* parsed file */ + const [file, setFile] = useState({ space: {}, tbl: [], type: "N" }); + /* current object */ + const [obj, setObj] = useState({}); + /* current meta */ + const [meta, setMeta] = useState<$_TSP_MessageInfo>({} as any); + /* protobuf definitions */ + const [protos, setProtos] = useState({}); + /* selected message type */ + const [sel, setSel] = useState(""); + /* current protobuf definition */ + const [__html, setProto] = useState("Select a Row"); + /* "dirty" if inspecting a subfield */ + const [dirty, setDirty] = useState(false); + /* history stack */ + const [stack, setStack] = useState([]); + /* react-contexify */ + const MENU_ID = "insp-menu"; + const { show } = useContextMenu({ id: MENU_ID }); + const [menuField, setMenuField] = useState(""); + const [menuType, setMenuType] = useState(""); + const [menuId, setMenuId] = useState(""); + const tblRef = useRef(null); + + /* update selection based on table row */ + const doitRow = (row: any, R: number, reset?: boolean) => { + let obj: any, meta: $_TSP_MessageInfo; + try { + obj = process(file.space[+row.id][0].data, row.message, protos); + meta = process(file.space[+row.id][0].rawmeta, ".TSP.MessageInfo", protos); + } catch(e) { + console.error(row, e); toast.error(`Could not parse ${row.id} (${row.type})`, {position: toast.POSITION.TOP_CENTER}); return; + } + if(reset == true) setStack([]); else if(typeof reset != "undefined") setStack([...stack, id]); + setSel(row.message); + setProto(protos[row.message] || ""); + setDirty(false); + setObj(obj); + /* .TSP.MessageInfo */ + if(meta.object_references) meta.$object_references = meta.object_references.map((n: BigInt) => { + /* create a fake reference for the inspector */ + var o: $_TSP_Reference = ({ identifier: n }); + Object.defineProperty(o, "PB_TYPE", {value: ".TSP.Reference", enumerable: false}); + return o; + }); + if(meta.field_infos) meta.field_infos.forEach((fi) => { + /* .TSP.FieldInfo */ + if(fi.object_references) fi.$object_references = fi.object_references.map((n: BigInt) => { + /* create a fake reference for the inspector */ + var o: $_TSP_Reference = ({ identifier: n }); + Object.defineProperty(o, "PB_TYPE", {value: ".TSP.Reference", enumerable: false}); + return o; + }); + }) + setMeta(meta); + setId(String(row.id)); + var rowelt = document.getElementById(`tr-${R}`); + var top = rowelt?.offsetTop || 0; + if(tblRef.current) { + let tbl = tblRef.current; + if(top > tbl.scrollTop + tbl.clientHeight - (rowelt?.clientHeight||0) || top < tbl.scrollTop + (rowelt?.clientHeight||0)) tbl.scrollTop = Math.max(0, top - tbl.clientHeight/2 - (rowelt?.clientHeight||0)/2); + } + }; + /* click event handler for the messages table */ + const rowclick = (row: any, R: number) => { doitRow(row, R, true); }; + /* helper for .TSP.Reference */ + const gotoRef = (id: string) => { + var R = file.tbl.findIndex(t => +t.id == +id); + if (R == -1) throw new Error(`Message ${id} not found`); + doitRow(file.tbl[R], R, false); + }; + /* helper for selecting sub-proto */ + const selectProto = (type: string) => { setProto(protos[type] || ""); setDirty(type != sel); }; + /* go back to the previous message */ + const pop = () => { + const oldId = stack.pop()||"0"; + setStack([...stack]); + var R = file.tbl.findIndex(t => +t.id == +oldId); + if (R == -1) throw new Error(`Message ${oldId} not found`); + doitRow(file.tbl[R], R); + }; + + /* on load, get protobuf definitions and process the test file */ + useEffect(() => { + let ignore = false; + (async () => { + const protos = await (await fetch("protos")).text(); + const testfile = await (await fetch("test.numbers")).arrayBuffer(); + if(ignore) return; + setProtos(parse_protos(protos)); + setFile(read(testfile)); + })(); + return () => { ignore = true; } + }, []); + useEffect(() => { if(file.tbl[0]) doitRow(file.tbl[0], 0, true); }, [file]); + + const onChange: ChangeEventHandler = async (e: ChangeEvent) => { + if(!e.target.files) { toast.error("must select a file!"); throw new Error("No file selected!"); } + let data: ParsedFile; + try { data = read(await e.target.files?.[0].arrayBuffer()); } catch(e) { + if((e as any).message?.includes("Failed to read archive")) toast.error("Please select an iWork file", { position: toast.POSITION.TOP_CENTER }); + else toast.error(e && (e as any).message || e, { position: toast.POSITION.TOP_CENTER }); + console.error(e); return; + } + setFile(data); + } + + /* Menu machinations */ + interface MenuProps { + type: string; + field?: string; + id: string; + data: any; + } + function displayMenu(event: ReactMouseEvent, props?: MenuProps) { + setMenuField(props?.field||""); + setMenuType(props?.type||""); + if(props?.id) setMenuId(String(props.id)); + show({ event, props }); + } + function onClickId(){ gotoRef(menuId); } + function onClickCopyByteArray({ props }: {props: MenuProps}){ + var _data = props?.data?.PB_RAW?.data || (+props.id == +id) && file.space[+id][0].data; + if(!_data) throw new Error("Could not find raw data"); + navigator.clipboard.writeText("[" + [..._data].map(x => "0x" + x.toString(16).toUpperCase().padStart(2,"0")).join(", ") + "]"); + } + function onClickCopyJSON({ props }: {props: MenuProps}){ + if(!props?.data) throw new Error("Could not find raw data"); + navigator.clipboard.writeText(JSON.stringify(props.data, (_,v) => typeof v == "bigint" ? v.toString() : v instanceof Uint8Array ? [...v]: v)); + } + function showProtoDef({props}: {props: MenuProps}) { selectProto(props.type); } + + type NodeRendererProps = { + depth: number; + name: string; + data: any; + isNonenumerable: boolean; + expanded: boolean; + } + const nodeRenderer = ({ depth, name, data, isNonenumerable }: NodeRendererProps) => { + if(depth === 0) return ( Message {id} {selectProto(sel);}} onContextMenu={e => {displayMenu(e, { type: sel, id, data })}}>[{sel}] ); + if(typeof data == "bigint" && name.includes("identifier")) return ( <> + : -> {gotoRef(String(data))}}>{String(data)} + ); + if(data.PB_TYPE) { + const frag = ( {selectProto(data.PB_TYPE);}}> + {data.PB_ENUM && } + {data.PB_ENUM && <> = {data.PB_ENUM}} [{data.PB_TYPE}] + ); + if(data.PB_TYPE == ".TSP.Reference") { + let id = String(data?.identifier); + return ( {displayMenu(e, { type: data.PB_TYPE, id, data, field: data.PB_FIELD })}}> + : {frag} -> {gotoRef(id)}}>{id} + ); + } + return ( {displayMenu(e, { type: data.PB_TYPE, id, data, field: data.PB_FIELD })}}> + : {frag} + ); + } + return ( ); + }; + const metaRenderer = ({ depth, name, data, isNonenumerable }: NodeRendererProps) => { + if(depth === 0) return ( Metadata ); + if(typeof data == "bigint" && name.includes("identifier")) return ( <> + : -> {gotoRef(String(data))}}>{String(data)} + ); + if(data.PB_TYPE) { + const frag = ( {selectProto(data.PB_TYPE);}}> + {data.PB_ENUM && } + {data.PB_ENUM && <> = {data.PB_ENUM}} [{data.PB_TYPE}] + ); + if(data.PB_TYPE == ".TSP.Reference") { + let id = String(data?.identifier); + return ( {displayMenu(e, { type: data.PB_TYPE, id, data, field: data.PB_FIELD })}}> + : {frag} -> {gotoRef(id)}}>{id} + ); + } + return ( {displayMenu(e, { type: data.PB_TYPE, id, data, field: data.PB_FIELD })}}> + : {frag} + ); + } + return ( ); + }; + + return ( <> + {/* header */} + + +
+ +
+ + {/* message table */} + + +
+ +
+ + {/* selected message bar */} +
{sel ? (<> + Selected message {(stack.length > 4 ? [...stack.slice(0,2), "...", ...stack.slice(-1)] : stack).map(i => i + " > ").join("")} {id} ({sel}) {file.space[+id]?.[0]?.data?.length || 0} bytes {stack.length && Return to {stack[stack.length - 1]} || ""} + ) : "Select a message to see the contents"}
+ +
+
+ + {/* proto definition */} +
+                {dirty && (<> { selectProto(sel);}}>Return to {sel}

)} + {__html.split("\n").map((r, idx) => ( <>{!r.match(/(optional|repeated|required) \./) ? ( + {r} + ) : ( + {selectProto(r.trim().split(" ")[1]);}}>{r} + )}
))} +
+ +
+ +
+ + {/* inspector */} + Message + + Meta + +
+ +
+
+
+
+ + {/* Menu */} + + + {/* Toast */} + +
+ ); +} + +export default App diff --git a/src/index.css b/src/index.css new file mode 100644 index 0000000..2c3fac6 --- /dev/null +++ b/src/index.css @@ -0,0 +1,69 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/src/iwa.ts b/src/iwa.ts new file mode 100644 index 0000000..a7727ac --- /dev/null +++ b/src/iwa.ts @@ -0,0 +1,411 @@ +import * as CFB from 'cfb'; + +import Messages, { MessageTypes } from "./messages/"; + +/* see https://bugs.webkit.org/show_bug.cgi?id=243148 -- affects iOS Safari */ +declare var Buffer: any; // Buffer is typeof-guarded but TS still needs this :( +var subarray: "subarray" | "slice" = (() => { + try { + if(typeof Uint8Array == "undefined") return "slice"; + if(typeof Uint8Array.prototype.subarray == "undefined") return "slice"; + // NOTE: feature tests are for node < 6.x + if(typeof Buffer !== "undefined") { + if(typeof Buffer.prototype.subarray == "undefined") return "slice"; + if((typeof Buffer.from == "function" ? Buffer.from([72,62]) : new Buffer([72,62])) instanceof Uint8Array) return "subarray"; + return "slice"; + } + return "subarray"; + } catch(e) { return "slice"; } +})(); + +/** Concatenate Uint8Arrays */ +function u8concat(u8a: Uint8Array[]): Uint8Array { + var len = 0; + for(var i = 0; i < u8a.length; ++i) len += u8a[i].length; + var out = new Uint8Array(len); + var off = 0; + for(i = 0; i < u8a.length; ++i) { + var u8 = u8a[i], L = u8.length; + if(L < 250) { for(var j = 0; j < L; ++j) out[off++] = u8[j]; } + else { out.set(u8, off); off += L; } + } + return out; +} + +interface Ptr { l: number; } + +/** Parse an integer from the varint that can be exactly stored in a double */ +function parse_varint49(buf: Uint8Array, ptr: Ptr): number { + var l = ptr.l; + var usz = buf[l] & 0x7F; + varint: if(buf[l++] >= 0x80) { + usz |= (buf[l] & 0x7F) << 7; if(buf[l++] < 0x80) break varint; + usz |= (buf[l] & 0x7F) << 14; if(buf[l++] < 0x80) break varint; + usz |= (buf[l] & 0x7F) << 21; if(buf[l++] < 0x80) break varint; + usz += (buf[l] & 0x7F) * Math.pow(2, 28); ++l; if(buf[l++] < 0x80) break varint; + usz += (buf[l] & 0x7F) * Math.pow(2, 35); ++l; if(buf[l++] < 0x80) break varint; + usz += (buf[l] & 0x7F) * Math.pow(2, 42); ++l; if(buf[l++] < 0x80) break varint; + } + ptr.l = l; + return usz; +} +/** Parse a repeated varint [packed = true] field */ +function parse_packed_varints(buf: Uint8Array): number[] { + var ptr: Ptr = {l: 0}; + var out: number[] = []; + while(ptr.l < buf.length) out.push(parse_varint49(buf, ptr)); + return out; +} +/** Parse a BigInt from the varint */ +function parse_varint64(buf: Uint8Array, ptr: Ptr): BigInt { + var l = ptr.l; + var usz = BigInt(buf[l] & 0x7F); + varint: if(buf[l++] >= 0x80) { + usz += BigInt(buf[l] & 0x7F) << 7n; if(buf[l++] < 0x80) break varint; + usz += BigInt(buf[l] & 0x7F) << 14n; if(buf[l++] < 0x80) break varint; + usz += BigInt(buf[l] & 0x7F) << 21n; if(buf[l++] < 0x80) break varint; + usz += BigInt(buf[l] & 0x7F) << 28n; ++l; if(buf[l++] < 0x80) break varint; + usz += BigInt(buf[l] & 0x7F) << 35n; ++l; if(buf[l++] < 0x80) break varint; + usz += BigInt(buf[l] & 0x7F) << 42n; ++l; if(buf[l++] < 0x80) break varint; + usz += BigInt(buf[l] & 0x7F) << 49n; ++l; if(buf[l++] < 0x80) break varint; + usz += BigInt(buf[l] & 0x7F) << 56n; ++l; if(buf[l++] < 0x80) break varint; + usz += BigInt(buf[l] & 0x7F) << 63n; ++l; if(buf[l++] < 0x80) break varint; + } + ptr.l = l; + return usz; +} +/** Parse a repeated varint [packed = true] field */ +function parse_packed_varint64(buf: Uint8Array): BigInt[] { + var ptr: Ptr = {l: 0}; + var out: BigInt[] = []; + while(ptr.l < buf.length) out.push(parse_varint64(buf, ptr)); + return out; +} +/** Parse a 32-bit signed integer from the raw varint */ +function varint_to_i32(buf: Uint8Array): number { + var l = 0, + i32 = (buf[l] & 0x7F) ; if(buf[l++] < 0x80) return i32; + i32 |= (buf[l] & 0x7F) << 7; if(buf[l++] < 0x80) return i32; + i32 |= (buf[l] & 0x7F) << 14; if(buf[l++] < 0x80) return i32; + i32 |= (buf[l] & 0x7F) << 21; if(buf[l++] < 0x80) return i32; + i32 |= (buf[l] & 0x0F) << 28; return i32; +} +/** Parse a 64-bit unsigned integer as a pair */ +function varint_to_u64(buf: Uint8Array): [number, number] { + var l = 0, lo = buf[l] & 0x7F, hi = 0; + varint: if(buf[l++] >= 0x80) { + lo |= (buf[l] & 0x7F) << 7; if(buf[l++] < 0x80) break varint; + lo |= (buf[l] & 0x7F) << 14; if(buf[l++] < 0x80) break varint; + lo |= (buf[l] & 0x7F) << 21; if(buf[l++] < 0x80) break varint; + lo |= (buf[l] & 0x7F) << 28; hi = (buf[l] >> 4) & 0x07; if(buf[l++] < 0x80) break varint; + hi |= (buf[l] & 0x7F) << 3; if(buf[l++] < 0x80) break varint; + hi |= (buf[l] & 0x7F) << 10; if(buf[l++] < 0x80) break varint; + hi |= (buf[l] & 0x7F) << 17; if(buf[l++] < 0x80) break varint; + hi |= (buf[l] & 0x7F) << 24; if(buf[l++] < 0x80) break varint; + hi |= (buf[l] & 0x7F) << 31; + } + return [lo >>> 0, hi >>> 0]; +} +export { varint_to_i32, varint_to_u64 }; + +interface ProtoItem { + data: Uint8Array; + type: number; +} +type ProtoField = Array; +type ProtoMessage = Array; +interface IWAMessage { + /** Metadata in .TSP.MessageInfo */ + meta: ProtoMessage; + rawmeta: Uint8Array; + data: Uint8Array; +} +interface IWAArchiveInfo { + id: number; + merge?: boolean; + messages: IWAMessage[]; +} +/** Shallow parse of a Protobuf message */ +function parse_shallow(buf: Uint8Array): ProtoMessage { + var out: ProtoMessage = [], ptr: Ptr = {l: 0}; + while(ptr.l < buf.length) { + var off = ptr.l; + var num = parse_varint49(buf, ptr); + var type = num & 0x07; num = (num / 8)|0; + var data: Uint8Array; + var l = ptr.l; + switch(type) { + case 0: { + while(buf[l++] >= 0x80); + data = buf[subarray](ptr.l, l); + ptr.l = l; + } break; + case 1: { data = buf[subarray](l, l + 8); ptr.l = l + 8; } break; + case 2: { + var len = parse_varint49(buf, ptr); + data = buf[subarray](ptr.l, ptr.l + len); + ptr.l += len; + } break; + case 5: { data = buf[subarray](l, l + 4); ptr.l = l + 4; } break; + default: throw new Error(`PB Type ${type} for Field ${num} at offset ${off}`); + } + var v: ProtoItem = { data, type }; + if(out[num] == null) out[num] = []; + out[num].push(v); + } + return out; +} + +/** Extract all messages from a IWA file */ +function parse_iwa_file(buf: Uint8Array): IWAArchiveInfo[] { + var out: IWAArchiveInfo[] = [], ptr: Ptr = {l: 0}; + while(ptr.l < buf.length) { + /* .TSP.ArchiveInfo */ + var len = parse_varint49(buf, ptr); + var ai = parse_shallow(buf[subarray](ptr.l, ptr.l + len)); + ptr.l += len; + + var res: IWAArchiveInfo = { + /* TODO: technically ID is optional */ + id: varint_to_i32(ai[1][0].data), + messages: [] + }; + ai[2].forEach(b => { + var mi = parse_shallow(b.data); + var fl = varint_to_i32(mi[3][0].data); + res.messages.push({ + meta: mi, + rawmeta: b.data, + data: buf[subarray](ptr.l, ptr.l + fl) + }); + ptr.l += fl; + }); + if(ai[3]?.[0]) res.merge = (varint_to_i32(ai[3][0].data) >>> 0) > 0; + out.push(res); + } + return out; +} + +/** Decompress a snappy chunk */ +function parse_snappy_chunk(type: number, buf: Uint8Array): Uint8Array[] { + if(type != 0) throw new Error(`Unexpected Snappy chunk type ${type}`); + var ptr: Ptr = {l: 0}; + + var usz = parse_varint49(buf, ptr); + var chunks: Uint8Array[] = []; + var l = ptr.l; + while(l < buf.length) { + var tag = buf[l] & 0x3; + if(tag == 0) { + var len = buf[l++] >> 2; + if(len < 60) ++len; + else { + var c = len - 59; + len = buf[l]; + if(c > 1) len |= (buf[l+1]<<8); + if(c > 2) len |= (buf[l+2]<<16); + if(c > 3) len |= (buf[l+3]<<24); + len >>>=0; len++; + l += c; + } + chunks.push(buf[subarray](l, l + len)); l += len; continue; + } else { + var offset = 0, length = 0; + if(tag == 1) { + length = ((buf[l] >> 2) & 0x7) + 4; + offset = (buf[l++] & 0xE0) << 3; + offset |= buf[l++]; + } else { + length = (buf[l++] >> 2) + 1; + if(tag == 2) { offset = buf[l] | (buf[l+1]<<8); l += 2; } + else { offset = (buf[l] | (buf[l+1]<<8) | (buf[l+2]<<16) | (buf[l+3]<<24))>>>0; l += 4; } + } + if(offset == 0) throw new Error("Invalid offset 0"); + var j = chunks.length - 1, off = offset; + while(j >=0 && off >= chunks[j].length) { off -= chunks[j].length; --j; } + if(j < 0) { + if(off == 0) off = chunks[(j = 0)].length; + else throw new Error("Invalid offset beyond length"); + } + // Node 0.8 Buffer slice does not support negative indices + if(length < off) chunks.push(chunks[j][subarray](chunks[j].length-off, chunks[j].length-off + length)); + else { + if(off > 0) { chunks.push(chunks[j][subarray](chunks[j].length-off)); length -= off; } ++j; + while(length >= chunks[j].length) { chunks.push(chunks[j]); length -= chunks[j].length; ++j; } + if(length) chunks.push(chunks[j][subarray](0, length)); + } + if(chunks.length > 25) chunks = [u8concat(chunks)]; + } + } + var clen = 0; for(var u8i = 0; u8i < chunks.length; ++u8i) clen += chunks[u8i].length; + if(clen != usz) throw new Error(`Unexpected length: ${clen} != ${usz}`); + return chunks; +} + +/** Decompress IWA file */ +function decompress_iwa_file(buf: Uint8Array): Uint8Array { + if(Array.isArray(buf)) buf = new Uint8Array(buf); + var out: Uint8Array[] = []; + var l = 0; + while(l < buf.length) { + var t = buf[l++]; + var len = buf[l] | (buf[l+1]<<8) | (buf[l+2] << 16); l += 3; + out.push.apply(out, parse_snappy_chunk(t, buf[subarray](l, l + len))); + l += len; + } + if(l !== buf.length) throw new Error("data is not a valid framed stream!"); + return out.length == 1 ? out[0] : u8concat(out); +} + +type MessageSpace = {[id: number]: IWAMessage[]}; +type TableItem = { id: number; path: string; type: number; message: string; }; + +interface ParsedFile { + space: MessageSpace; + tbl: TableItem[]; + type: MessageTypes; +} + +function parse_iwa(cfb: CFB.CFB$Container): ParsedFile { + var M: MessageSpace = {}, indices: number[] = [], tbl: TableItem[] = []; + cfb.FullPaths.forEach(p => { if(p.match(/\.iwpv2/)) throw new Error(`Unsupported password protection`); }); + + var root!: TableItem, rootmsg!: IWAMessage; + /* collect entire message space */ + cfb.FileIndex.forEach((s, idx) => { + if(!s.name.match(/\.iwa$/)) return; + if(s.content[0] != 0) return; // TODO: this should test if the iwa follows the framing format + var o: Uint8Array; + try { o = decompress_iwa_file(s.content as Uint8Array); } catch(e: any) { return console.log("?? " + s.content.length + " " + ((e as Error).message || e)); } + var packets: IWAArchiveInfo[]; + try { packets = parse_iwa_file(o); } catch(e: any) { return console.log("## " + ((e as Error).message || e)); } + packets.forEach(packet => { M[packet.id] = packet.messages; indices.push(packet.id); + var type = varint_to_i32(packet.messages[0].meta[1][0].data); + var item = { + id: packet.id, + type, + path:cfb.FullPaths[idx].replace(/Root Entry/, ""), + message: "??" + }; + if(item.id == 1) { root = item; rootmsg = packet.messages[0]; } + tbl.push(item); + }); + }); + if(!indices.length) throw new Error("File has no messages"); + if(!root) throw new Error(`Root element (id 1) missing!`); + var type: MessageTypes = "N"; + if(root.type == 10000) type = "P"; + else if(parse_shallow(rootmsg.data)?.[2]?.[0]) type = "K"; + + tbl.forEach(item => item.message = Messages[type][item.type] || "??"); + + return { space: M, tbl, type }; +} + +function process_item(item: {data: Uint8Array; type: number}, type: string, protos: any) { + switch(item.type) { + case 0: + var varint = parse_varint49(item.data, {l:0}); + switch(type) { + case "bool": return !!+varint; + case "uint32": return varint; + case "int32": return varint | 0; + case "sint32": return (-(varint&1))^(varint>>1); + case "uint64": var u64 = varint_to_u64(item.data); return (BigInt(u64[1])<<32n) + BigInt(u64[0]); + case "int64": var u64 = varint_to_u64(item.data); return new BigInt64Array([(BigInt(u64[1])<<32n) + BigInt(u64[0])])[0]; + case "sint64": var u64 = varint_to_u64(item.data); var bi = (BigInt(u64[1])<<32n) + BigInt(u64[0]); return (-(bi&1n))^(bi>>1n); + } break; + case 1: switch(type) { + case "fixed64": return new BigUint64Array(new Uint8Array([...item.data]).buffer)[0]; + case "sfixed64": return new BigInt64Array(new Uint8Array([...item.data]).buffer)[0]; + case "double": return new Float64Array(new Uint8Array([...item.data]).buffer)[0]; + } break; + case 2: switch(type) { + case "string": return new TextDecoder().decode(item.data); + case "bytes": return item.data; + } break; + case 5: switch(type) { + case "float": return new Float32Array(new Uint8Array([...item.data]).buffer)[0]; + case "fixed32": return new Uint32Array(new Uint8Array([...item.data]).buffer)[0]; + case "sfixed32": return new Int32Array(new Uint8Array([...item.data]).buffer)[0]; + } + } + if(protos[type]) return process(item.data, type, protos); + console.error(item); + return item; +} + +function process_enum(data: Uint8Array, message: string, protos: any) { + var val = parse_varint49(data, {l: 0}); + if(val >= 4294967296) val |= 0; + var msg = protos[message].split("\n"); + for(let m of msg) { + if(m.startsWith("enum")) continue; + if(m.indexOf("=")> -1) { + let [field, , value] = m.trim().split(" "); + if(val == parseInt(value, 10)) { + var res = {} + Object.defineProperty(res, "value", { get: () => val}); + Object.defineProperty(res, "PB_ENUM", { value: field, enumerable: false}) + return res; + } + } + } + throw [val, message, protos[message]]; +} + +function process(data: Uint8Array, message: string, protos: any) { + if(!protos[message]) return parse_shallow(data); + var shallow = parse_shallow(data); + var proto: string[] = protos[message].split("\n"); + var out: any = {}; + if(proto[0].startsWith("enum")) return process_enum(data, message, protos); + proto.forEach(line => { + if(!line.startsWith(" ") || line.indexOf("=") == -1 || line.startsWith(" ")) return; + const [freq, type, name, , idx] = line.trim().split(/\s+/); + var i = parseInt(idx, 10); + if(isNaN(i)) return; + if(!shallow[i]?.length) return; + switch(freq) { + case "repeated": { + if(/packed\s*=\s*true/.test(line)) { + /* these are the known types as of iwa 13.0 */ + switch(type) { + case "uint32": out[name] = parse_packed_varints(shallow[i][0].data); break; + case "uint64": out[name] = parse_packed_varint64(shallow[i][0].data); break; + case "fixed64": out[name] = new BigUint64Array(new Uint8Array(shallow[i][0].data).buffer); break; + default: + console.log(shallow[i][0], line); + throw new Error(`unsupported packed field of type ${type}`); + } + } else out[name] = shallow[i].map(item => protos[type]?.startsWith("enum") ? process_enum(item.data, type, protos) : process_item(item, type, protos)); + } break; + case "required": case "optional": out[name] = protos[type]?.startsWith("enum") ? process_enum(shallow[i][0].data, type, protos) : process_item(shallow[i][0], type, protos); break + default: throw `unsupported frequency ${freq}`; + } + if(type.startsWith(".")) { + if(freq == "repeated") out[name].forEach((n: any) => {try { Object.defineProperty(n, "PB_TYPE", {value: type, enumerable: false}); } catch(e){}}); + else try { Object.defineProperty(out[name], "PB_TYPE", {value: type, enumerable: false}); } catch(e) {} + } + try { + if(freq == "repeated") out[name].forEach((n: any, idx:number) => {try { Object.defineProperty(n, "PB_RAW", {value: shallow[i][idx], enumerable: false}); } catch(e){}}); + else try { Object.defineProperty(out[name], "PB_RAW", {value: shallow[i][0], enumerable: false}); } catch(e) {} + } catch(e){console.log(e);} + try { + if(freq == "repeated") out[name].forEach((n: any, idx:number) => {try { Object.defineProperty(n, "PB_FIELD", {value: `${name}[${idx}]` , enumerable: false}); } catch(e){}}); + else try { Object.defineProperty(out[name], "PB_FIELD", {value: name, enumerable: false}); } catch(e) {} + } catch(e){console.log(e);} + }) + return out; +} + +function read(ab: ArrayBuffer): ParsedFile { + let cfb: CFB.CFB$Container; + try { + cfb = CFB.read(new Uint8Array(ab), {type: "buffer"}); + } catch(e) { throw new Error(`Failed to read archive: |${e&&(e as any).message||e}|`); } + return parse_iwa(cfb); +} + +export { parse_iwa, read, process } +export type { MessageSpace, TableItem, ParsedFile }; diff --git a/src/main.tsx b/src/main.tsx new file mode 100644 index 0000000..057fb00 --- /dev/null +++ b/src/main.tsx @@ -0,0 +1,10 @@ +import * as React from 'react' +import * as ReactDOM from 'react-dom/client' +import App from './App' +import './index.css' + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + , +) diff --git a/src/messages/index.ts b/src/messages/index.ts new file mode 100644 index 0000000..5318243 --- /dev/null +++ b/src/messages/index.ts @@ -0,0 +1,95 @@ +type MessageTypes = "N" | "K" | "P"; +export type { MessageTypes }; + +type LUT = {[id: number|string]: string}; + +import N from "./numbers"; +import K from "./keynote"; +import P from "./pages"; + +const Messages: {[key in MessageTypes]: LUT} = { N, K, P }; + +export default Messages; + +type ProtoMap = {[key: string]: string}; + +const post_process = (buf: string, key: string, out: ProtoMap) => { + var payload = "", nested = false; + buf.split("\n").forEach(row => { + if(row.startsWith(" message") || row.startsWith(" enum")) { + nested = true + payload = row + "\n"; + } else if(row.startsWith(" }")) { + payload += row + "\n"; + nested = false; + payload = payload.replace(/^ /mg, ""); + var new_key = ""; + payload = payload.replace(/^(message|enum) ([\S]*)/, (_, $1, $2) => { + new_key = key + "." + $2; + return $1 + " " + key + "." + $2 + }); + out[new_key] = payload; + payload = ""; + } else if(nested) payload += row + "\n"; + }); +}; + +const parse_protos = (text: string): ProtoMap => { + const out: ProtoMap = {}; + let buf = "", key = ""; + text.split("\n").forEach(line => { + if(line.startsWith("message") || line.startsWith("enum")) { + key = line.split(" ")[1]; + buf = line + "\n"; + } + else if(line.startsWith(" ")) buf += line + "\n"; + else if(line == "}") { + buf += line; + out[key] = buf; + post_process(buf, key, out); + } + else if(!line){} + else if(line.startsWith("extend")) { + key = line.split(" ")[1]; + buf = out[key] + "\n" + line + "\n"; + } + else throw line; + }); + return out; +}; + +export { parse_protos }; +export type { ProtoMap }; + +interface $_TSP_Reference { + identifier: BigInt; +} +interface $_TSP_FieldPath { + path?: number[]; +} +interface $_TSP_FieldInfo { + path: $_TSP_FieldPath; + type?: number; + unknown_field_rule?: number; + object_references?: BigInt[]; + data_references?: BigInt[]; + known_field_rule?: number; + known_field_version?: number[]; + known_field_feature_identifier?: string; + $object_references?: $_TSP_Reference[]; +} +interface $_TSP_MessageInfo { + type: number; + version: number[]; + length: number; + field_infos?: $_TSP_FieldInfo[]; + object_references?: BigInt[]; + data_references?: BigInt[]; + base_message_index?: number; + diff_merge_version?: number[]; + diff_field_path?: $_TSP_FieldPath; + fields_to_remove?: $_TSP_FieldPath[]; + diff_read_version?: number[]; + $object_references?: $_TSP_Reference[]; +} +export type { $_TSP_MessageInfo, $_TSP_Reference } \ No newline at end of file diff --git a/src/messages/keynote.ts b/src/messages/keynote.ts new file mode 100644 index 0000000..df86a03 --- /dev/null +++ b/src/messages/keynote.ts @@ -0,0 +1,631 @@ +export default { + 1: ".KN.DocumentArchive", + 2: ".KN.ShowArchive", + 3: ".KN.UIStateArchive", + 4: ".KN.SlideNodeArchive", + 5: ".KN.SlideArchive", + 6: ".KN.SlideArchive", + 7: ".KN.PlaceholderArchive", + 8: ".KN.BuildArchive", + 9: ".KN.SlideStyleArchive", + 10: ".KN.ThemeArchive", + 11: ".KN.PasteboardNativeStorageArchive", + 12: ".KN.PlaceholderArchive", + 14: ".TSWP.TextualAttachmentArchive", + 15: ".KN.NoteArchive", + 16: ".KN.RecordingArchive", + 17: ".KN.RecordingEventTrackArchive", + 18: ".KN.RecordingMovieTrackArchive", + 19: ".KN.ClassicStylesheetRecordArchive", + 20: ".KN.ClassicThemeRecordArchive", + 21: ".KN.Soundtrack", + 22: ".KN.SlideNumberAttachmentArchive", + 23: ".KN.DesktopUILayoutArchive", + 24: ".KN.CanvasSelectionArchive", + 25: ".KN.SlideCollectionSelectionArchive", + 26: ".KN.MotionBackgroundStyleArchive", + 100: ".KN.CommandBuildSetValueArchive", + 101: ".KN.CommandShowInsertSlideArchive", + 102: ".KN.CommandShowMoveSlideArchive", + 103: ".KN.CommandShowRemoveSlideArchive", + 104: ".KN.CommandSlideInsertDrawablesArchive", + 105: ".KN.CommandSlideRemoveDrawableArchive", + 106: ".KN.CommandSlideNodeSetPropertyArchive", + 107: ".KN.CommandSlideInsertBuildArchive", + 109: ".KN.CommandSlideRemoveBuildArchive", + 110: ".KN.CommandSlideInsertBuildChunkArchive", + 111: ".KN.CommandSlideMoveBuildChunksArchive", + 112: ".KN.CommandSlideRemoveBuildChunkArchive", + 114: ".KN.CommandTransitionSetValueArchive", + 118: ".KN.CommandSlideMoveDrawableZOrderArchive", + 119: ".KN.CommandChangeTemplateSlideArchive", + 123: ".KN.CommandShowSetSlideNumberVisibilityArchive", + 124: ".KN.CommandShowSetValueArchive", + 128: ".KN.CommandShowMarkOutOfSyncRecordingArchive", + 129: ".KN.CommandShowRemoveRecordingArchive", + 130: ".KN.CommandShowReplaceRecordingArchive", + 131: ".KN.CommandShowSetSoundtrack", + 132: ".KN.CommandSoundtrackSetValue", + 134: ".KN.CommandMoveTemplatesArchive", + 135: ".KN.CommandInsertTemplateArchive", + 136: ".KN.CommandSlideSetStyleArchive", + 137: ".KN.CommandSlideSetPlaceholdersForTagsArchive", + 138: ".KN.CommandBuildChunkSetValueArchive", + 140: ".KN.CommandRemoveTemplateArchive", + 142: ".KN.CommandTemplateSetThumbnailTextArchive", + 143: ".KN.CommandShowChangeThemeArchive", + 144: ".KN.CommandSlidePrimitiveSetTemplateArchive", + 145: ".KN.CommandTemplateSetBodyStylesArchive", + 146: ".KNSOS.CommandSlideReapplyTemplateSlideArchive", + 148: ".KN.ChartInfoGeometryCommandArchive", + 150: ".KN.CommandSlideUpdateTemplateDrawables", + 152: ".KN.CommandSlideSetBackgroundFillArchive", + 153: ".KN.BuildChunkArchive", + 156: ".KN.CommandSlideNodeSetViewStatePropertyArchive", + 157: ".KN.CommandBuildUpdateChunkCountArchive", + 158: ".KN.CommandBuildUpdateChunkReferentsArchive", + 159: ".KN.BuildAttributeTupleArchive", + 160: ".KN.CommandSetThemeCustomEffectTimingCurveArchive", + 161: ".KN.CommandShowChangeSlideSizeArchive", + 162: ".KN.InsertBuildDescriptionArchive", + 163: ".KN.RemoveBuildDescriptionArchive", + 164: ".KN.DocumentSelectionTransformerArchive", + 165: ".KN.SlideCollectionSelectionTransformerArchive", + 166: ".KN.OutlineCanvasSelectionTransformerArchive", + 167: ".KN.NoteCanvasSelectionTransformerArchive", + 168: ".KN.CanvasSelectionTransformerArchive", + 169: ".KN.OutlineSelectionTransformerArchive", + 170: ".KN.UndoObjectArchive", + 172: ".KN.PrototypeForUndoTemplateChangeArchive", + 173: ".KN.CommandShowMarkOutOfSyncRecordingIfNeededArchive", + 174: ".KNSOS.InducedVerifyDocumentWithServerCommandArchive", + 175: ".KNSOS.InducedVerifyDrawableZOrdersWithServerCommandArchive", + 176: ".KN.CommandPrimitiveInsertTemplateArchive", + 177: ".KN.CommandPrimitiveRemoveTemplateArchive", + 178: ".KN.CommandTemplateSlideSetPlaceholderForTagArchive", + 179: ".KN.CommandSlidePropagateSetPlaceholderForTagArchive", + 180: ".KN.ActionGhostSelectionArchive", + 181: ".KN.ActionGhostSelectionTransformerArchive", + 182: ".KN.CommandSlideResetTemplateBackgroundObjectsArchive", + 184: ".KN.LiveVideoSource", + 185: ".KN.LiveVideoSourceCollection", + 186: ".KN.CommandLiveVideoInfoApplyPreset", + 187: ".KN.CommandLiveVideoInfoSetSource", + 188: ".KN.CommandLiveVideoInfoSetValue", + 189: ".KN.CommandLiveVideoSourceSetValue", + 190: ".KN.CommandLiveVideoStyleSetValue", + 191: ".KN.CommandThemeAddLiveVideoSource", + 192: ".KN.CommandThemeRemoveLiveVideoSource", + 194: ".KN.CommandMotionBackgroundStyleSetValueArchive", + 195: ".KN.CommandMotionBackgroundStyleUpdatePosterFrameDataArchive", + 200: ".TSK.DocumentArchive", + 201: ".TSK.LocalCommandHistory", + 202: ".TSK.CommandGroupArchive", + 203: ".TSK.CommandContainerArchive", + 205: ".TSK.TreeNode", + 210: ".TSK.ViewStateArchive", + 211: ".TSK.DocumentSupportArchive", + 212: ".TSK.AnnotationAuthorArchive", + 213: ".TSK.AnnotationAuthorStorageArchive", + 215: ".TSK.SetAnnotationAuthorColorCommandArchive", + 218: ".TSK.CollaborationCommandHistory", + 219: ".TSK.DocumentSelectionArchive", + 220: ".TSK.CommandSelectionBehaviorArchive", + 221: ".TSK.NullCommandArchive", + 222: ".TSK.CustomFormatListArchive", + 223: ".TSK.GroupCommitCommandArchive", + 224: ".TSK.InducedCommandCollectionArchive", + 225: ".TSK.InducedCommandCollectionCommitCommandArchive", + 226: ".TSK.CollaborationDocumentSessionState", + 227: ".TSK.CollaborationCommandHistoryCoalescingGroup", + 228: ".TSK.CollaborationCommandHistoryCoalescingGroupNode", + 229: ".TSK.CollaborationCommandHistoryOriginatingCommandAcknowledgementObserver", + 230: ".TSK.DocumentSupportCollaborationState", + 231: ".TSK.ChangeDocumentPackageTypeCommandArchive", + 232: ".TSK.UpgradeDocPostProcessingCommandArchive", + 233: ".TSK.FinalCommandPairArchive", + 234: ".TSK.OutgoingCommandQueueItem", + 235: ".TSK.TransformerEntry", + 238: ".TSK.CreateLocalStorageSnapshotCommandArchive", + 240: ".TSK.SelectionPathTransformerArchive", + 241: ".TSK.NativeContentDescription", + 242: ".TSD.PencilAnnotationStorageArchive", + 245: ".TSK.OperationStorage", + 246: ".TSK.OperationStorageEntryArray", + 247: ".TSK.OperationStorageEntryArraySegment", + 248: ".TSK.BlockDiffsAtCurrentRevisionCommand", + 249: ".TSK.OutgoingCommandQueue", + 250: ".TSK.OutgoingCommandQueueSegment", + 251: ".TSK.PropagatedCommandCollectionArchive", + 252: ".TSK.LocalCommandHistoryItem", + 253: ".TSK.LocalCommandHistoryArray", + 254: ".TSK.LocalCommandHistoryArraySegment", + 255: ".TSK.CollaborationCommandHistoryItem", + 256: ".TSK.CollaborationCommandHistoryArray", + 257: ".TSK.CollaborationCommandHistoryArraySegment", + 258: ".TSK.PencilAnnotationUIState", + 259: ".TSKSOS.FixCorruptedDataCommandArchive", + 260: ".TSK.CommandAssetChunkArchive", + 261: ".TSK.AssetUploadStatusCommandArchive", + 262: ".TSK.AssetUnmaterializedOnServerCommandArchive", + 263: ".TSK.CommandBehaviorArchive", + 264: ".TSK.CommandBehaviorSelectionPathStorageArchive", + 265: ".TSK.CommandActivityBehaviorArchive", + 273: ".TSK.ActivityOnlyCommandArchive", + 275: ".TSK.SetActivityAuthorShareParticipantIDCommandArchive", + 279: ".TSK.ActivityAuthorCacheArchive", + 280: ".TSK.ActivityStreamArchive", + 281: ".TSK.ActivityArchive", + 282: ".TSK.ActivityCommitCommandArchive", + 283: ".TSK.ActivityStreamActivityArray", + 284: ".TSK.ActivityStreamActivityArraySegment", + 285: ".TSK.ActivityStreamRemovedAuthorAuditorPendingStateArchive", + 286: ".TSK.ActivityAuthorArchive", + 287: ".TSKSOS.ResetActivityStreamCommandArchive", + 288: ".TSKSOS.RemoveAuthorIdentifiersCommandArchive", + 289: ".TSK.ActivityCursorCollectionPersistenceWrapperArchive", + 400: ".TSS.StyleArchive", + 401: ".TSS.StylesheetArchive", + 402: ".TSS.ThemeArchive", + 412: ".TSS.StyleUpdatePropertyMapCommandArchive", + 413: ".TSS.ThemeReplacePresetCommandArchive", + 414: ".TSS.ThemeAddStylePresetCommandArchive", + 415: ".TSS.ThemeRemoveStylePresetCommandArchive", + 416: ".TSS.ThemeReplaceColorPresetCommandArchive", + 417: ".TSS.ThemeMovePresetCommandArchive", + 419: ".TSS.ThemeReplaceStylePresetAndDisconnectStylesCommandArchive", + 600: ".TSA.DocumentArchive", + 601: ".TSA.FunctionBrowserStateArchive", + 602: ".TSA.PropagatePresetCommandArchive", + 603: ".TSA.ShortcutControllerArchive", + 604: ".TSA.ShortcutCommandArchive", + 605: ".TSA.AddCustomFormatCommandArchive", + 606: ".TSA.UpdateCustomFormatCommandArchive", + 607: ".TSA.ReplaceCustomFormatCommandArchive", + 611: ".TSASOS.VerifyObjectsWithServerCommandArchive", + 612: ".TSA.InducedVerifyObjectsWithServerCommandArchive", + 613: ".TSASOS.VerifyDocumentWithServerCommandArchive", + 614: ".TSASOS.VerifyDrawableZOrdersWithServerCommandArchive", + 615: ".TSASOS.InducedVerifyDrawableZOrdersWithServerCommandArchive", + 616: ".TSA.NeedsMediaCompatibilityUpgradeCommandArchive", + 617: ".TSA.ChangeDocumentLocaleCommandArchive", + 618: ".TSA.StyleUpdatePropertyMapCommandArchive", + 619: ".TSA.RemoteDataChangeCommandArchive", + 623: ".TSA.GalleryItem", + 624: ".TSA.GallerySelectionTransformer", + 625: ".TSA.GalleryItemSelection", + 626: ".TSA.GalleryItemSelectionTransformer", + 627: ".TSA.GalleryInfoSetValueCommandArchive", + 628: ".TSA.GalleryItemSetGeometryCommand", + 629: ".TSA.GalleryItemSetValueCommand", + 630: ".TSA.InducedVerifyTransformHistoryWithServerCommandArchive", + 631: ".TSASOS.CommandReapplyMasterArchive", + 632: ".TSASOS.PropagateMasterChangeCommandArchive", + 633: ".TSA.CaptionInfoArchive", + 634: ".TSA.CaptionPlacementArchive", + 635: ".TSA.TitlePlacementCommandArchive", + 636: ".TSA.GalleryInfoInsertItemsCommandArchive", + 637: ".TSA.GalleryInfoRemoveItemsCommandArchive", + 638: ".TSASOS.VerifyActivityStreamWithServerCommandArchive", + 639: ".TSASOS.InducedVerifyActivityStreamWithServerCommandArchive", + 2001: ".TSWP.StorageArchive", + 2002: ".TSWP.SelectionArchive", + 2003: ".TSWP.DrawableAttachmentArchive", + 2004: ".TSWP.TextualAttachmentArchive", + 2005: ".TSWP.StorageArchive", + 2006: ".TSWP.UIGraphicalAttachment", + 2007: ".TSWP.TextualAttachmentArchive", + 2008: ".TSWP.FootnoteReferenceAttachmentArchive", + 2009: ".TSWP.TextualAttachmentArchive", + 2010: ".TSWP.TSWPTOCPageNumberAttachmentArchive", + 2011: ".TSWP.ShapeInfoArchive", + 2013: ".TSWP.HighlightArchive", + 2014: ".TSWP.CommentInfoArchive", + 2015: ".TSWP.EquationInfoArchive", + 2016: ".TSWP.PencilAnnotationArchive", + 2021: ".TSWP.CharacterStyleArchive", + 2022: ".TSWP.ParagraphStyleArchive", + 2023: ".TSWP.ListStyleArchive", + 2024: ".TSWP.ColumnStyleArchive", + 2025: ".TSWP.ShapeStyleArchive", + 2026: ".TSWP.TOCEntryStyleArchive", + 2031: ".TSWP.PlaceholderSmartFieldArchive", + 2032: ".TSWP.HyperlinkFieldArchive", + 2033: ".TSWP.FilenameSmartFieldArchive", + 2034: ".TSWP.DateTimeSmartFieldArchive", + 2035: ".TSWP.BookmarkFieldArchive", + 2036: ".TSWP.MergeSmartFieldArchive", + 2037: ".TSWP.CitationRecordArchive", + 2038: ".TSWP.CitationSmartFieldArchive", + 2039: ".TSWP.UnsupportedHyperlinkFieldArchive", + 2040: ".TSWP.BibliographySmartFieldArchive", + 2041: ".TSWP.TOCSmartFieldArchive", + 2042: ".TSWP.RubyFieldArchive", + 2043: ".TSWP.NumberAttachmentArchive", + 2050: ".TSWP.TextStylePresetArchive", + 2051: ".TSWP.TOCSettingsArchive", + 2052: ".TSWP.TOCEntryInstanceArchive", + 2053: ".TSWPSOS.StyleDiffArchive", + 2060: ".TSWP.ChangeArchive", + 2061: ".TSK.DeprecatedChangeAuthorArchive", + 2062: ".TSWP.ChangeSessionArchive", + 2101: ".TSWP.TextCommandArchive", + 2107: ".TSWP.ApplyPlaceholderTextCommandArchive", + 2116: ".TSWP.ApplyRubyTextCommandArchive", + 2118: ".TSWP.ModifyRubyTextCommandArchive", + 2119: ".TSWP.UpdateDateTimeFieldCommandArchive", + 2120: ".TSWP.ModifyTOCSettingsBaseCommandArchive", + 2121: ".TSWP.ModifyTOCSettingsForTOCInfoCommandArchive", + 2123: ".TSWP.SetObjectPropertiesCommandArchive", + 2124: ".TSWP.UpdateFlowInfoCommandArchive", + 2125: ".TSWP.AddFlowInfoCommandArchive", + 2126: ".TSWP.RemoveFlowInfoCommandArchive", + 2127: ".TSWP.ContainedObjectsCommandArchive", + 2128: ".TSWP.EquationInfoGeometryCommandArchive", + 2206: ".TSWP.AnchorAttachmentCommandArchive", + 2217: ".TSWP.TextCommentReplyCommandArchive", + 2231: ".TSWP.ShapeApplyPresetCommandArchive", + 2240: ".TSWP.TOCInfoArchive", + 2241: ".TSWP.TOCAttachmentArchive", + 2242: ".TSWP.TOCLayoutHintArchive", + 2400: ".TSWP.StyleBaseCommandArchive", + 2401: ".TSWP.StyleCreateCommandArchive", + 2402: ".TSWP.StyleRenameCommandArchive", + 2404: ".TSWP.StyleDeleteCommandArchive", + 2405: ".TSWP.StyleReorderCommandArchive", + 2406: ".TSWP.StyleUpdatePropertyMapCommandArchive", + 2407: ".TSWP.StorageActionCommandArchive", + 2408: ".TSWP.ShapeStyleSetValueCommandArchive", + 2409: ".TSWP.HyperlinkSelectionArchive", + 2410: ".TSWP.FlowInfoArchive", + 2411: ".TSWP.FlowInfoContainerArchive", + 2412: ".TSWP.PencilAnnotationSelectionTransformerArchive", + 3002: ".TSD.DrawableArchive", + 3003: ".TSD.ContainerArchive", + 3004: ".TSD.ShapeArchive", + 3005: ".TSD.ImageArchive", + 3006: ".TSD.MaskArchive", + 3007: ".TSD.MovieArchive", + 3008: ".TSD.GroupArchive", + 3009: ".TSD.ConnectionLineArchive", + 3015: ".TSD.ShapeStyleArchive", + 3016: ".TSD.MediaStyleArchive", + 3021: ".TSD.InfoGeometryCommandArchive", + 3022: ".TSD.DrawablePathSourceCommandArchive", + 3024: ".TSD.ImageMaskCommandArchive", + 3025: ".TSD.ImageMediaCommandArchive", + 3026: ".TSD.ImageReplaceCommandArchive", + 3027: ".TSD.MediaOriginalSizeCommandArchive", + 3028: ".TSD.ShapeStyleSetValueCommandArchive", + 3030: ".TSD.MediaStyleSetValueCommandArchive", + 3031: ".TSD.ShapeApplyPresetCommandArchive", + 3032: ".TSD.MediaApplyPresetCommandArchive", + 3034: ".TSD.MovieSetValueCommandArchive", + 3036: ".TSD.ExteriorTextWrapCommandArchive", + 3037: ".TSD.MediaFlagsCommandArchive", + 3040: ".TSD.DrawableHyperlinkCommandArchive", + 3041: ".TSD.ConnectionLineConnectCommandArchive", + 3042: ".TSD.InstantAlphaCommandArchive", + 3043: ".TSD.DrawableLockCommandArchive", + 3044: ".TSD.ImageNaturalSizeCommandArchive", + 3045: ".TSD.CanvasSelectionArchive", + 3047: ".TSD.GuideStorageArchive", + 3048: ".TSD.StyledInfoSetStyleCommandArchive", + 3049: ".TSD.DrawableInfoCommentCommandArchive", + 3050: ".TSD.GuideCommandArchive", + 3051: ".TSD.DrawableAspectRatioLockedCommandArchive", + 3052: ".TSD.ContainerRemoveChildrenCommandArchive", + 3053: ".TSD.ContainerInsertChildrenCommandArchive", + 3054: ".TSD.ContainerReorderChildrenCommandArchive", + 3055: ".TSD.ImageAdjustmentsCommandArchive", + 3056: ".TSD.CommentStorageArchive", + 3057: ".TSD.ThemeReplaceFillPresetCommandArchive", + 3058: ".TSD.DrawableAccessibilityDescriptionCommandArchive", + 3059: ".TSD.PasteStyleCommandArchive", + 3061: ".TSD.DrawableSelectionArchive", + 3062: ".TSD.GroupSelectionArchive", + 3063: ".TSD.PathSelectionArchive", + 3064: ".TSD.CommentInvalidatingCommandSelectionBehaviorArchive", + 3065: ".TSD.ImageInfoAbstractGeometryCommandArchive", + 3066: ".TSD.ImageInfoGeometryCommandArchive", + 3067: ".TSD.ImageInfoMaskGeometryCommandArchive", + 3068: ".TSD.UndoObjectArchive", + 3070: ".TSD.ReplaceAnnotationAuthorCommandArchive", + 3071: ".TSD.DrawableSelectionTransformerArchive", + 3072: ".TSD.GroupSelectionTransformerArchive", + 3073: ".TSD.ShapeSelectionTransformerArchive", + 3074: ".TSD.PathSelectionTransformerArchive", + 3080: ".TSD.MediaInfoGeometryCommandArchive", + 3082: ".TSD.GroupUngroupInformativeCommandArchive", + 3083: ".TSD.DrawableContentDescription", + 3084: ".TSD.ContainerRemoveDrawablesCommandArchive", + 3085: ".TSD.ContainerInsertDrawablesCommandArchive", + 3086: ".TSD.PencilAnnotationArchive", + 3087: ".TSD.FreehandDrawingOpacityCommandArchive", + 3088: ".TSD.DrawablePencilAnnotationCommandArchive", + 3089: ".TSD.PencilAnnotationSelectionArchive", + 3090: ".TSD.FreehandDrawingContentDescription", + 3091: ".TSD.FreehandDrawingToolkitUIState", + 3092: ".TSD.PencilAnnotationSelectionTransformerArchive", + 3094: ".TSD.FreehandDrawingAnimationCommandArchive", + 3095: ".TSD.InsertCaptionOrTitleCommandArchive", + 3096: ".TSD.RemoveCaptionOrTitleCommandArchive", + 3097: ".TSD.StandinCaptionArchive", + 3098: ".TSD.SetCaptionOrTitleVisibilityCommandArchive", + 4000: ".TSCE.CalculationEngineArchive", + 4001: ".TSCE.FormulaRewriteCommandArchive", + 4003: ".TSCE.NamedReferenceManagerArchive", + 4004: ".TSCE.TrackedReferenceStoreArchive", + 4005: ".TSCE.TrackedReferenceArchive", + 4007: ".TSCE.RemoteDataStoreArchive", + 4008: ".TSCE.FormulaOwnerDependenciesArchive", + 4009: ".TSCE.CellRecordTileArchive", + 4010: ".TSCE.RangePrecedentsTileArchive", + 4011: ".TSCE.ReferencesToDirtyArchive", + 5000: ".TSCH.PreUFF.ChartInfoArchive", + 5002: ".TSCH.PreUFF.ChartGridArchive", + 5004: ".TSCH.ChartMediatorArchive", + 5010: ".TSCH.PreUFF.ChartStyleArchive", + 5011: ".TSCH.PreUFF.ChartSeriesStyleArchive", + 5012: ".TSCH.PreUFF.ChartAxisStyleArchive", + 5013: ".TSCH.PreUFF.LegendStyleArchive", + 5014: ".TSCH.PreUFF.ChartNonStyleArchive", + 5015: ".TSCH.PreUFF.ChartSeriesNonStyleArchive", + 5016: ".TSCH.PreUFF.ChartAxisNonStyleArchive", + 5017: ".TSCH.PreUFF.LegendNonStyleArchive", + 5020: ".TSCH.ChartStylePreset", + 5021: ".TSCH.ChartDrawableArchive", + 5022: ".TSCH.ChartStyleArchive", + 5023: ".TSCH.ChartNonStyleArchive", + 5024: ".TSCH.LegendStyleArchive", + 5025: ".TSCH.LegendNonStyleArchive", + 5026: ".TSCH.ChartAxisStyleArchive", + 5027: ".TSCH.ChartAxisNonStyleArchive", + 5028: ".TSCH.ChartSeriesStyleArchive", + 5029: ".TSCH.ChartSeriesNonStyleArchive", + 5030: ".TSCH.ReferenceLineStyleArchive", + 5031: ".TSCH.ReferenceLineNonStyleArchive", + 5103: ".TSCH.CommandSetChartTypeArchive", + 5104: ".TSCH.CommandSetSeriesNameArchive", + 5105: ".TSCH.CommandSetCategoryNameArchive", + 5107: ".TSCH.CommandSetScatterFormatArchive", + 5108: ".TSCH.CommandSetLegendFrameArchive", + 5109: ".TSCH.CommandSetGridValueArchive", + 5110: ".TSCH.CommandSetGridDirectionArchive", + 5115: ".TSCH.CommandAddGridRowsArchive", + 5116: ".TSCH.CommandAddGridColumnsArchive", + 5118: ".TSCH.CommandMoveGridRowsArchive", + 5119: ".TSCH.CommandMoveGridColumnsArchive", + 5122: ".TSCH.CommandSetPieWedgeExplosion", + 5123: ".TSCH.CommandStyleSwapArchive", + 5125: ".TSCH.CommandChartApplyPreset", + 5126: ".TSCH.ChartCommandArchive", + 5127: ".TSCH.CommandReplaceGridValuesArchive", + 5129: ".TSCH.StylePasteboardDataArchive", + 5130: ".TSCH.CommandSetMultiDataSetIndexArchive", + 5131: ".TSCH.CommandReplaceThemePresetArchive", + 5132: ".TSCH.CommandInvalidateWPCaches", + 5135: ".TSCH.CommandMutatePropertiesArchive", + 5136: ".TSCH.CommandScaleAllTextArchive", + 5137: ".TSCH.CommandSetFontFamilyArchive", + 5138: ".TSCH.CommandApplyFillSetArchive", + 5139: ".TSCH.CommandReplaceCustomFormatArchive", + 5140: ".TSCH.CommandAddReferenceLineArchive", + 5141: ".TSCH.CommandDeleteReferenceLineArchive", + 5142: ".TSCH.CommandDeleteGridColumnsArchive", + 5143: ".TSCH.CommandDeleteGridRowsArchive", + 5145: ".TSCH.ChartSelectionArchive", + 5146: ".TSCH.ChartTextSelectionTransformerArchive", + 5147: ".TSCH.ChartSubselectionTransformerArchive", + 5148: ".TSCH.ChartDrawableSelectionTransformerArchive", + 5149: ".TSCH.ChartSubselectionTransformerHelperArchive", + 5150: ".TSCH.ChartRefLineSubselectionTransformerHelperArchive", + 5151: ".TSCH.CDESelectionTransformerArchive", + 5152: ".TSCH.ChartSubselectionIdentityTransformerHelperArchive", + 5154: ".TSCH.CommandPasteStyleArchive", + 5155: ".TSCH.CommandInducedReplaceChartGrid", + 5156: ".TSCH.CommandReplaceImageDataArchive", + 5157: ".TSCH.CommandInduced3DChartGeometry", + 6000: ".TST.TableInfoArchive", + 6001: ".TST.TableModelArchive", + 6002: ".TST.Tile", + 6003: ".TST.TableStyleArchive", + 6004: ".TST.CellStyleArchive", + 6005: ".TST.TableDataList", + 6006: ".TST.HeaderStorageBucket", + 6007: ".TST.WPTableInfoArchive", + 6008: ".TST.TableStylePresetArchive", + 6009: ".TST.TableStrokePresetArchive", + 6010: ".TST.ConditionalStyleSetArchive", + 6011: ".TST.TableDataListSegment", + 6030: ".TST.SelectionArchive", + 6031: ".TST.CellMapArchive", + 6032: ".TST.DeathhawkRdar39989167CellSelectionArchive", + 6033: ".TST.ConcurrentCellMapArchive", + 6034: ".TST.ConcurrentCellListArchive", + 6100: ".TST.TableCommandArchive", + 6101: ".TST.CommandDeleteCellsArchive", + 6102: ".TST.CommandInsertColumnsOrRowsArchive", + 6103: ".TST.CommandRemoveColumnsOrRowsArchive", + 6104: ".TST.CommandResizeColumnOrRowArchive", + 6107: ".TST.CommandSetTableNameArchive", + 6111: ".TST.CommandChangeFreezeHeaderStateArchive", + 6114: ".TST.CommandSetTableNameEnabledArchive", + 6117: ".TST.CommandApplyTableStylePresetArchive", + 6120: ".TST.CommandSetRepeatingHeaderEnabledArchive", + 6123: ".TST.CommandSortArchive", + 6125: ".TST.CommandStyleTableArchive", + 6126: ".TST.CommandSetNumberOfDecimalPlacesArchive", + 6127: ".TST.CommandSetShowThousandsSeparatorArchive", + 6128: ".TST.CommandSetNegativeNumberStyleArchive", + 6129: ".TST.CommandSetFractionAccuracyArchive", + 6131: ".TST.CommandSetCurrencyCodeArchive", + 6132: ".TST.CommandSetUseAccountingStyleArchive", + 6136: ".TST.CommandSetTableFontNameArchive", + 6137: ".TST.CommandSetTableFontSizeArchive", + 6142: ".TST.CommandSetTableNameHeightArchive", + 6144: ".TST.MergeRegionMapArchive", + 6145: ".TST.CommandHideShowArchive", + 6146: ".TST.CommandSetBaseArchive", + 6147: ".TST.CommandSetBasePlacesArchive", + 6148: ".TST.CommandSetBaseUseMinusSignArchive", + 6149: ".TST.CommandSetTextStylePropertiesArchive", + 6150: ".TST.CommandCategoryChangeSummaryAggregateType", + 6152: ".TST.CommandCategoryResizeColumnOrRowArchive", + 6153: ".TST.CommandCategoryMoveRowsArchive", + 6156: ".TST.CommandSetPencilAnnotationsArchive", + 6157: ".TST.CommandCategoryWillChangeGroupValue", + 6158: ".TST.CommandApplyConcurrentCellMapArchive", + 6159: ".TST.CommandSetGroupSortOrderArchive", + 6179: ".TST.FormulaEqualsTokenAttachmentArchive", + 6181: ".TST.TokenAttachmentArchive", + 6182: ".TST.ExpressionNodeArchive", + 6183: ".TST.BooleanNodeArchive", + 6184: ".TST.NumberNodeArchive", + 6185: ".TST.StringNodeArchive", + 6186: ".TST.ArrayNodeArchive", + 6187: ".TST.ListNodeArchive", + 6188: ".TST.OperatorNodeArchive", + 6189: ".TST.FunctionNodeArchive", + 6190: ".TST.DateNodeArchive", + 6191: ".TST.ReferenceNodeArchive", + 6192: ".TST.DurationNodeArchive", + 6193: ".TST.ArgumentPlaceholderNodeArchive", + 6194: ".TST.PostfixOperatorNodeArchive", + 6195: ".TST.PrefixOperatorNodeArchive", + 6196: ".TST.FunctionEndNodeArchive", + 6197: ".TST.EmptyExpressionNodeArchive", + 6198: ".TST.LayoutHintArchive", + 6199: ".TST.CompletionTokenAttachmentArchive", + 6201: ".TST.TableDataList", + 6204: ".TST.HiddenStateFormulaOwnerArchive", + 6205: ".TST.CommandSetAutomaticDurationUnitsArchive", + 6206: ".TST.PopUpMenuModel", + 6218: ".TST.RichTextPayloadArchive", + 6220: ".TST.FilterSetArchive", + 6221: ".TST.CommandSetFiltersEnabledArchive", + 6224: ".TST.CommandRewriteFilterFormulasForTableResizeArchive", + 6226: ".TST.CommandTextPreflightInsertCellArchive", + 6228: ".TST.CommandDeleteCellContentsArchive", + 6229: ".TST.CommandPostflightSetCellArchive", + 6235: ".TST.IdentifierNodeArchive", + 6238: ".TST.CommandSetDateTimeFormatArchive", + 6239: ".TST.TableCommandSelectionBehaviorArchive", + 6244: ".TST.CommandApplyCellCommentArchive", + 6246: ".TST.CommandSetFormulaTokenizationArchive", + 6247: ".TST.TableStyleNetworkArchive", + 6250: ".TST.CommandSetFilterSetTypeArchive", + 6255: ".TST.CommandSetTextStyleArchive", + 6256: ".TST.CommandJustForNotifyingArchive", + 6258: ".TST.CommandSetSortOrderArchive", + 6262: ".TST.CommandAddTableStylePresetArchive", + 6264: ".TST.CellDiffMapArchive", + 6265: ".TST.CommandApplyCellContentsArchive", + 6266: ".TST.CommandRemoveTableStylePresetArchive", + 6267: ".TST.ColumnRowUIDMapArchive", + 6268: ".TST.CommandMoveColumnsOrRowsArchive", + 6269: ".TST.CommandReplaceCustomFormatArchive", + 6270: ".TST.CommandReplaceTableStylePresetArchive", + 6271: ".TST.FormulaSelectionArchive", + 6273: ".TST.CellListArchive", + 6275: ".TST.CommandApplyCellDiffMapArchive", + 6276: ".TST.CommandSetFilterSetArchive", + 6277: ".TST.CommandMutateCellFormatArchive", + 6278: ".TST.CommandSetStorageLanguageArchive", + 6280: ".TST.CommandMergeArchive", + 6281: ".TST.CommandUnmergeArchive", + 6282: ".TST.CommandApplyCellMapArchive", + 6283: ".TST.ControlCellSelectionArchive", + 6284: ".TST.TableNameSelectionArchive", + 6285: ".TST.CommandRewriteFormulasForTransposeArchive", + 6287: ".TST.CommandTransposeTableArchive", + 6289: ".TST.CommandSetDurationStyleArchive", + 6290: ".TST.CommandSetDurationUnitSmallestLargestArchive", + 6291: ".TST.CommandRewriteTableFormulasForRewriteSpecArchive", + 6292: ".TST.CommandRewriteConditionalStylesForRewriteSpecArchive", + 6293: ".TST.CommandRewriteFilterFormulasForRewriteSpecArchive", + 6294: ".TST.CommandRewriteSortOrderForRewriteSpecArchive", + 6295: ".TST.StrokeSelectionArchive", + 6297: ".TST.LetNodeArchive", + 6298: ".TST.VariableNodeArchive", + 6299: ".TST.InNodeArchive", + 6300: ".TST.CommandInverseMergeArchive", + 6301: ".TST.CommandMoveCellsArchive", + 6302: ".TST.DefaultCellStylesContainerArchive", + 6303: ".TST.CommandRewriteMergeFormulasArchive", + 6304: ".TST.CommandChangeTableAreaForColumnOrRowArchive", + 6305: ".TST.StrokeSidecarArchive", + 6306: ".TST.StrokeLayerArchive", + 6307: ".TST.CommandChooseTableIdRemapperArchive", + 6310: ".TST.CommandSetWasCutArchive", + 6311: ".TST.AutofillSelectionArchive", + 6312: ".TST.StockCellSelectionArchive", + 6313: ".TST.CommandSetNowArchive", + 6314: ".TST.CommandSetStructuredTextImportRecordArchive", + 6315: ".TST.CommandRewriteCategoryFormulasArchive", + 6316: ".TST.SummaryModelArchive", + 6317: ".TST.SummaryCellVendorArchive", + 6318: ".TST.CategoryOrderArchive", + 6320: ".TST.CommandCategoryCollapseExpandGroupArchive", + 6321: ".TST.CommandCategorySetGroupingColumnsArchive", + 6323: ".TST.CommandRewriteHiddenStatesForGroupByChangeArchive", + 6350: ".TST.IdempotentSelectionTransformerArchive", + 6351: ".TST.TableSubSelectionTransformerBaseArchive", + 6352: ".TST.TableNameSelectionTransformerArchive", + 6353: ".TST.RegionSelectionTransformerArchive", + 6354: ".TST.RowColumnSelectionTransformerArchive", + 6355: ".TST.ControlCellSelectionTransformerArchive", + 6357: ".TST.ChangePropagationMapWrapper", + 6358: ".TST.WPSelectionTransformerArchive", + 6359: ".TST.StockCellSelectionTransformerArchive", + 6360: ".TST.CommandSetRangeControlMinMaxIncArchive", + 6361: ".TST.CommandCategorySetLabelRowVisibility", + 6362: ".TST.CommandRewritePencilAnnotationFormulasArchive", + 6363: ".TST.PencilAnnotationArchive", + 6364: ".TST.StrokeSelectionTransformerArchive", + 6365: ".TST.HeaderNameMgrTileArchive", + 6366: ".TST.HeaderNameMgrArchive", + 6367: ".TST.CellDiffArray", + 6368: ".TST.CellDiffArraySegment", + 6369: ".TST.PivotOrderArchive", + 6370: ".TST.PivotOwnerArchive", + 6371: ".TST.CommandPivotSetPivotRulesArchive", + 6372: ".TST.CategoryOwnerRefArchive", + 6373: ".TST.GroupByArchive", + 6374: ".TST.PivotGroupingColumnOptionsMapArchive", + 6375: ".TST.CommandPivotSetGroupingColumnOptionsArchive", + 6376: ".TST.CommandPivotHideShowGrandTotalsArchive", + 6377: ".TST.CommandPivotSortArchive", + 6379: ".TST.CommandRewritePivotOwnerFormulasArchive", + 6380: ".TST.CommandRewriteTrackedReferencesArchive", + 6381: ".TST.CommandExtendTableIDHistoryArchive", + 6382: ".TST.GroupByArchive.AggregatorArchive", + 6383: ".TST.GroupByArchive.GroupNodeArchive", + 10011: ".TSWP.SectionPlaceholderArchive", + 10020: ".TSWP.ShapeSelectionTransformerArchive", + 10021: ".TSWP.SelectionTransformerArchive", + 10022: ".TSWP.ShapeContentDescription", + 10023: ".TSWP.TateChuYokoFieldArchive", + 10024: ".TSWP.DropCapStyleArchive", + 11000: ".TSP.PasteboardObject", + 11006: ".TSP.PackageMetadata", + 11007: ".TSP.PasteboardMetadata", + 11008: ".TSP.ObjectContainer", + 11009: ".TSP.ViewStateMetadata", + 11010: ".TSP.ObjectCollection", + 11011: ".TSP.DocumentMetadata", + 11012: ".TSP.SupportMetadata", + 11013: ".TSP.ObjectSerializationMetadata", + 11014: ".TSP.DataMetadata", + 11015: ".TSP.DataMetadataMap", + 11016: ".TSP.LargeNumberArraySegment", + 11017: ".TSP.LargeStringArraySegment", + 11018: ".TSP.LargeLazyObjectArraySegment", + 11019: ".TSP.LargeNumberArray", + 11020: ".TSP.LargeStringArray", + 11021: ".TSP.LargeLazyObjectArray", + 11024: ".TSP.LargeUUIDArraySegment", + 11025: ".TSP.LargeUUIDArray", + 11026: ".TSP.LargeObjectArraySegment", + 11027: ".TSP.LargeObjectArray", +} as {[key: number]: string}; diff --git a/src/messages/numbers.ts b/src/messages/numbers.ts new file mode 100644 index 0000000..705a1a4 --- /dev/null +++ b/src/messages/numbers.ts @@ -0,0 +1,581 @@ +export default { + 1: ".TN.DocumentArchive", + 2: ".TN.SheetArchive", + 3: ".TN.FormBasedSheetArchive", + 7: ".TN.PlaceholderArchive", + 200: ".TSK.DocumentArchive", + 201: ".TSK.LocalCommandHistory", + 202: ".TSK.CommandGroupArchive", + 203: ".TSK.CommandContainerArchive", + 205: ".TSK.TreeNode", + 210: ".TSK.ViewStateArchive", + 211: ".TSK.DocumentSupportArchive", + 212: ".TSK.AnnotationAuthorArchive", + 213: ".TSK.AnnotationAuthorStorageArchive", + 215: ".TSK.SetAnnotationAuthorColorCommandArchive", + 218: ".TSK.CollaborationCommandHistory", + 219: ".TSK.DocumentSelectionArchive", + 220: ".TSK.CommandSelectionBehaviorArchive", + 221: ".TSK.NullCommandArchive", + 222: ".TSK.CustomFormatListArchive", + 223: ".TSK.GroupCommitCommandArchive", + 224: ".TSK.InducedCommandCollectionArchive", + 225: ".TSK.InducedCommandCollectionCommitCommandArchive", + 226: ".TSK.CollaborationDocumentSessionState", + 227: ".TSK.CollaborationCommandHistoryCoalescingGroup", + 228: ".TSK.CollaborationCommandHistoryCoalescingGroupNode", + 229: ".TSK.CollaborationCommandHistoryOriginatingCommandAcknowledgementObserver", + 230: ".TSK.DocumentSupportCollaborationState", + 231: ".TSK.ChangeDocumentPackageTypeCommandArchive", + 232: ".TSK.UpgradeDocPostProcessingCommandArchive", + 233: ".TSK.FinalCommandPairArchive", + 234: ".TSK.OutgoingCommandQueueItem", + 235: ".TSK.TransformerEntry", + 238: ".TSK.CreateLocalStorageSnapshotCommandArchive", + 240: ".TSK.SelectionPathTransformerArchive", + 241: ".TSK.NativeContentDescription", + 242: ".TSD.PencilAnnotationStorageArchive", + 245: ".TSK.OperationStorage", + 246: ".TSK.OperationStorageEntryArray", + 247: ".TSK.OperationStorageEntryArraySegment", + 248: ".TSK.BlockDiffsAtCurrentRevisionCommand", + 249: ".TSK.OutgoingCommandQueue", + 250: ".TSK.OutgoingCommandQueueSegment", + 251: ".TSK.PropagatedCommandCollectionArchive", + 252: ".TSK.LocalCommandHistoryItem", + 253: ".TSK.LocalCommandHistoryArray", + 254: ".TSK.LocalCommandHistoryArraySegment", + 255: ".TSK.CollaborationCommandHistoryItem", + 256: ".TSK.CollaborationCommandHistoryArray", + 257: ".TSK.CollaborationCommandHistoryArraySegment", + 258: ".TSK.PencilAnnotationUIState", + 259: ".TSKSOS.FixCorruptedDataCommandArchive", + 260: ".TSK.CommandAssetChunkArchive", + 261: ".TSK.AssetUploadStatusCommandArchive", + 262: ".TSK.AssetUnmaterializedOnServerCommandArchive", + 263: ".TSK.CommandBehaviorArchive", + 264: ".TSK.CommandBehaviorSelectionPathStorageArchive", + 265: ".TSK.CommandActivityBehaviorArchive", + 273: ".TSK.ActivityOnlyCommandArchive", + 275: ".TSK.SetActivityAuthorShareParticipantIDCommandArchive", + 279: ".TSK.ActivityAuthorCacheArchive", + 280: ".TSK.ActivityStreamArchive", + 281: ".TSK.ActivityArchive", + 282: ".TSK.ActivityCommitCommandArchive", + 283: ".TSK.ActivityStreamActivityArray", + 284: ".TSK.ActivityStreamActivityArraySegment", + 285: ".TSK.ActivityStreamRemovedAuthorAuditorPendingStateArchive", + 286: ".TSK.ActivityAuthorArchive", + 287: ".TSKSOS.ResetActivityStreamCommandArchive", + 288: ".TSKSOS.RemoveAuthorIdentifiersCommandArchive", + 289: ".TSK.ActivityCursorCollectionPersistenceWrapperArchive", + 400: ".TSS.StyleArchive", + 401: ".TSS.StylesheetArchive", + 402: ".TSS.ThemeArchive", + 412: ".TSS.StyleUpdatePropertyMapCommandArchive", + 413: ".TSS.ThemeReplacePresetCommandArchive", + 414: ".TSS.ThemeAddStylePresetCommandArchive", + 415: ".TSS.ThemeRemoveStylePresetCommandArchive", + 416: ".TSS.ThemeReplaceColorPresetCommandArchive", + 417: ".TSS.ThemeMovePresetCommandArchive", + 419: ".TSS.ThemeReplaceStylePresetAndDisconnectStylesCommandArchive", + 600: ".TSA.DocumentArchive", + 601: ".TSA.FunctionBrowserStateArchive", + 602: ".TSA.PropagatePresetCommandArchive", + 603: ".TSA.ShortcutControllerArchive", + 604: ".TSA.ShortcutCommandArchive", + 605: ".TSA.AddCustomFormatCommandArchive", + 606: ".TSA.UpdateCustomFormatCommandArchive", + 607: ".TSA.ReplaceCustomFormatCommandArchive", + 611: ".TSASOS.VerifyObjectsWithServerCommandArchive", + 612: ".TSA.InducedVerifyObjectsWithServerCommandArchive", + 613: ".TSASOS.VerifyDocumentWithServerCommandArchive", + 614: ".TSASOS.VerifyDrawableZOrdersWithServerCommandArchive", + 615: ".TSASOS.InducedVerifyDrawableZOrdersWithServerCommandArchive", + 616: ".TSA.NeedsMediaCompatibilityUpgradeCommandArchive", + 617: ".TSA.ChangeDocumentLocaleCommandArchive", + 618: ".TSA.StyleUpdatePropertyMapCommandArchive", + 619: ".TSA.RemoteDataChangeCommandArchive", + 623: ".TSA.GalleryItem", + 624: ".TSA.GallerySelectionTransformer", + 625: ".TSA.GalleryItemSelection", + 626: ".TSA.GalleryItemSelectionTransformer", + 627: ".TSA.GalleryInfoSetValueCommandArchive", + 628: ".TSA.GalleryItemSetGeometryCommand", + 629: ".TSA.GalleryItemSetValueCommand", + 630: ".TSA.InducedVerifyTransformHistoryWithServerCommandArchive", + 631: ".TSASOS.CommandReapplyMasterArchive", + 632: ".TSASOS.PropagateMasterChangeCommandArchive", + 633: ".TSA.CaptionInfoArchive", + 634: ".TSA.CaptionPlacementArchive", + 635: ".TSA.TitlePlacementCommandArchive", + 636: ".TSA.GalleryInfoInsertItemsCommandArchive", + 637: ".TSA.GalleryInfoRemoveItemsCommandArchive", + 638: ".TSASOS.VerifyActivityStreamWithServerCommandArchive", + 639: ".TSASOS.InducedVerifyActivityStreamWithServerCommandArchive", + 2001: ".TSWP.StorageArchive", + 2002: ".TSWP.SelectionArchive", + 2003: ".TSWP.DrawableAttachmentArchive", + 2004: ".TSWP.TextualAttachmentArchive", + 2005: ".TSWP.StorageArchive", + 2006: ".TSWP.UIGraphicalAttachment", + 2007: ".TSWP.TextualAttachmentArchive", + 2008: ".TSWP.FootnoteReferenceAttachmentArchive", + 2009: ".TSWP.TextualAttachmentArchive", + 2010: ".TSWP.TSWPTOCPageNumberAttachmentArchive", + 2011: ".TSWP.ShapeInfoArchive", + 2013: ".TSWP.HighlightArchive", + 2014: ".TSWP.CommentInfoArchive", + 2015: ".TSWP.EquationInfoArchive", + 2016: ".TSWP.PencilAnnotationArchive", + 2021: ".TSWP.CharacterStyleArchive", + 2022: ".TSWP.ParagraphStyleArchive", + 2023: ".TSWP.ListStyleArchive", + 2024: ".TSWP.ColumnStyleArchive", + 2025: ".TSWP.ShapeStyleArchive", + 2026: ".TSWP.TOCEntryStyleArchive", + 2031: ".TSWP.PlaceholderSmartFieldArchive", + 2032: ".TSWP.HyperlinkFieldArchive", + 2033: ".TSWP.FilenameSmartFieldArchive", + 2034: ".TSWP.DateTimeSmartFieldArchive", + 2035: ".TSWP.BookmarkFieldArchive", + 2036: ".TSWP.MergeSmartFieldArchive", + 2037: ".TSWP.CitationRecordArchive", + 2038: ".TSWP.CitationSmartFieldArchive", + 2039: ".TSWP.UnsupportedHyperlinkFieldArchive", + 2040: ".TSWP.BibliographySmartFieldArchive", + 2041: ".TSWP.TOCSmartFieldArchive", + 2042: ".TSWP.RubyFieldArchive", + 2043: ".TSWP.NumberAttachmentArchive", + 2050: ".TSWP.TextStylePresetArchive", + 2051: ".TSWP.TOCSettingsArchive", + 2052: ".TSWP.TOCEntryInstanceArchive", + 2053: ".TSWPSOS.StyleDiffArchive", + 2060: ".TSWP.ChangeArchive", + 2061: ".TSK.DeprecatedChangeAuthorArchive", + 2062: ".TSWP.ChangeSessionArchive", + 2101: ".TSWP.TextCommandArchive", + 2107: ".TSWP.ApplyPlaceholderTextCommandArchive", + 2116: ".TSWP.ApplyRubyTextCommandArchive", + 2118: ".TSWP.ModifyRubyTextCommandArchive", + 2119: ".TSWP.UpdateDateTimeFieldCommandArchive", + 2120: ".TSWP.ModifyTOCSettingsBaseCommandArchive", + 2121: ".TSWP.ModifyTOCSettingsForTOCInfoCommandArchive", + 2123: ".TSWP.SetObjectPropertiesCommandArchive", + 2124: ".TSWP.UpdateFlowInfoCommandArchive", + 2125: ".TSWP.AddFlowInfoCommandArchive", + 2126: ".TSWP.RemoveFlowInfoCommandArchive", + 2127: ".TSWP.ContainedObjectsCommandArchive", + 2128: ".TSWP.EquationInfoGeometryCommandArchive", + 2206: ".TSWP.AnchorAttachmentCommandArchive", + 2217: ".TSWP.TextCommentReplyCommandArchive", + 2231: ".TSWP.ShapeApplyPresetCommandArchive", + 2240: ".TSWP.TOCInfoArchive", + 2241: ".TSWP.TOCAttachmentArchive", + 2242: ".TSWP.TOCLayoutHintArchive", + 2400: ".TSWP.StyleBaseCommandArchive", + 2401: ".TSWP.StyleCreateCommandArchive", + 2402: ".TSWP.StyleRenameCommandArchive", + 2404: ".TSWP.StyleDeleteCommandArchive", + 2405: ".TSWP.StyleReorderCommandArchive", + 2406: ".TSWP.StyleUpdatePropertyMapCommandArchive", + 2407: ".TSWP.StorageActionCommandArchive", + 2408: ".TSWP.ShapeStyleSetValueCommandArchive", + 2409: ".TSWP.HyperlinkSelectionArchive", + 2410: ".TSWP.FlowInfoArchive", + 2411: ".TSWP.FlowInfoContainerArchive", + 2412: ".TSWP.PencilAnnotationSelectionTransformerArchive", + 3002: ".TSD.DrawableArchive", + 3003: ".TSD.ContainerArchive", + 3004: ".TSD.ShapeArchive", + 3005: ".TSD.ImageArchive", + 3006: ".TSD.MaskArchive", + 3007: ".TSD.MovieArchive", + 3008: ".TSD.GroupArchive", + 3009: ".TSD.ConnectionLineArchive", + 3015: ".TSD.ShapeStyleArchive", + 3016: ".TSD.MediaStyleArchive", + 3021: ".TSD.InfoGeometryCommandArchive", + 3022: ".TSD.DrawablePathSourceCommandArchive", + 3024: ".TSD.ImageMaskCommandArchive", + 3025: ".TSD.ImageMediaCommandArchive", + 3026: ".TSD.ImageReplaceCommandArchive", + 3027: ".TSD.MediaOriginalSizeCommandArchive", + 3028: ".TSD.ShapeStyleSetValueCommandArchive", + 3030: ".TSD.MediaStyleSetValueCommandArchive", + 3031: ".TSD.ShapeApplyPresetCommandArchive", + 3032: ".TSD.MediaApplyPresetCommandArchive", + 3034: ".TSD.MovieSetValueCommandArchive", + 3036: ".TSD.ExteriorTextWrapCommandArchive", + 3037: ".TSD.MediaFlagsCommandArchive", + 3040: ".TSD.DrawableHyperlinkCommandArchive", + 3041: ".TSD.ConnectionLineConnectCommandArchive", + 3042: ".TSD.InstantAlphaCommandArchive", + 3043: ".TSD.DrawableLockCommandArchive", + 3044: ".TSD.ImageNaturalSizeCommandArchive", + 3045: ".TSD.CanvasSelectionArchive", + 3047: ".TSD.GuideStorageArchive", + 3048: ".TSD.StyledInfoSetStyleCommandArchive", + 3049: ".TSD.DrawableInfoCommentCommandArchive", + 3050: ".TSD.GuideCommandArchive", + 3051: ".TSD.DrawableAspectRatioLockedCommandArchive", + 3052: ".TSD.ContainerRemoveChildrenCommandArchive", + 3053: ".TSD.ContainerInsertChildrenCommandArchive", + 3054: ".TSD.ContainerReorderChildrenCommandArchive", + 3055: ".TSD.ImageAdjustmentsCommandArchive", + 3056: ".TSD.CommentStorageArchive", + 3057: ".TSD.ThemeReplaceFillPresetCommandArchive", + 3058: ".TSD.DrawableAccessibilityDescriptionCommandArchive", + 3059: ".TSD.PasteStyleCommandArchive", + 3061: ".TSD.DrawableSelectionArchive", + 3062: ".TSD.GroupSelectionArchive", + 3063: ".TSD.PathSelectionArchive", + 3064: ".TSD.CommentInvalidatingCommandSelectionBehaviorArchive", + 3065: ".TSD.ImageInfoAbstractGeometryCommandArchive", + 3066: ".TSD.ImageInfoGeometryCommandArchive", + 3067: ".TSD.ImageInfoMaskGeometryCommandArchive", + 3068: ".TSD.UndoObjectArchive", + 3070: ".TSD.ReplaceAnnotationAuthorCommandArchive", + 3071: ".TSD.DrawableSelectionTransformerArchive", + 3072: ".TSD.GroupSelectionTransformerArchive", + 3073: ".TSD.ShapeSelectionTransformerArchive", + 3074: ".TSD.PathSelectionTransformerArchive", + 3080: ".TSD.MediaInfoGeometryCommandArchive", + 3082: ".TSD.GroupUngroupInformativeCommandArchive", + 3083: ".TSD.DrawableContentDescription", + 3084: ".TSD.ContainerRemoveDrawablesCommandArchive", + 3085: ".TSD.ContainerInsertDrawablesCommandArchive", + 3086: ".TSD.PencilAnnotationArchive", + 3087: ".TSD.FreehandDrawingOpacityCommandArchive", + 3088: ".TSD.DrawablePencilAnnotationCommandArchive", + 3089: ".TSD.PencilAnnotationSelectionArchive", + 3090: ".TSD.FreehandDrawingContentDescription", + 3091: ".TSD.FreehandDrawingToolkitUIState", + 3092: ".TSD.PencilAnnotationSelectionTransformerArchive", + 3094: ".TSD.FreehandDrawingAnimationCommandArchive", + 3095: ".TSD.InsertCaptionOrTitleCommandArchive", + 3096: ".TSD.RemoveCaptionOrTitleCommandArchive", + 3097: ".TSD.StandinCaptionArchive", + 3098: ".TSD.SetCaptionOrTitleVisibilityCommandArchive", + 4000: ".TSCE.CalculationEngineArchive", + 4001: ".TSCE.FormulaRewriteCommandArchive", + 4003: ".TSCE.NamedReferenceManagerArchive", + 4004: ".TSCE.TrackedReferenceStoreArchive", + 4005: ".TSCE.TrackedReferenceArchive", + 4007: ".TSCE.RemoteDataStoreArchive", + 4008: ".TSCE.FormulaOwnerDependenciesArchive", + 4009: ".TSCE.CellRecordTileArchive", + 4010: ".TSCE.RangePrecedentsTileArchive", + 4011: ".TSCE.ReferencesToDirtyArchive", + 5000: ".TSCH.PreUFF.ChartInfoArchive", + 5002: ".TSCH.PreUFF.ChartGridArchive", + 5004: ".TSCH.ChartMediatorArchive", + 5010: ".TSCH.PreUFF.ChartStyleArchive", + 5011: ".TSCH.PreUFF.ChartSeriesStyleArchive", + 5012: ".TSCH.PreUFF.ChartAxisStyleArchive", + 5013: ".TSCH.PreUFF.LegendStyleArchive", + 5014: ".TSCH.PreUFF.ChartNonStyleArchive", + 5015: ".TSCH.PreUFF.ChartSeriesNonStyleArchive", + 5016: ".TSCH.PreUFF.ChartAxisNonStyleArchive", + 5017: ".TSCH.PreUFF.LegendNonStyleArchive", + 5020: ".TSCH.ChartStylePreset", + 5021: ".TSCH.ChartDrawableArchive", + 5022: ".TSCH.ChartStyleArchive", + 5023: ".TSCH.ChartNonStyleArchive", + 5024: ".TSCH.LegendStyleArchive", + 5025: ".TSCH.LegendNonStyleArchive", + 5026: ".TSCH.ChartAxisStyleArchive", + 5027: ".TSCH.ChartAxisNonStyleArchive", + 5028: ".TSCH.ChartSeriesStyleArchive", + 5029: ".TSCH.ChartSeriesNonStyleArchive", + 5030: ".TSCH.ReferenceLineStyleArchive", + 5031: ".TSCH.ReferenceLineNonStyleArchive", + 5103: ".TSCH.CommandSetChartTypeArchive", + 5104: ".TSCH.CommandSetSeriesNameArchive", + 5105: ".TSCH.CommandSetCategoryNameArchive", + 5107: ".TSCH.CommandSetScatterFormatArchive", + 5108: ".TSCH.CommandSetLegendFrameArchive", + 5109: ".TSCH.CommandSetGridValueArchive", + 5110: ".TSCH.CommandSetGridDirectionArchive", + 5115: ".TSCH.CommandAddGridRowsArchive", + 5116: ".TSCH.CommandAddGridColumnsArchive", + 5118: ".TSCH.CommandMoveGridRowsArchive", + 5119: ".TSCH.CommandMoveGridColumnsArchive", + 5122: ".TSCH.CommandSetPieWedgeExplosion", + 5123: ".TSCH.CommandStyleSwapArchive", + 5125: ".TSCH.CommandChartApplyPreset", + 5126: ".TSCH.ChartCommandArchive", + 5127: ".TSCH.CommandReplaceGridValuesArchive", + 5129: ".TSCH.StylePasteboardDataArchive", + 5130: ".TSCH.CommandSetMultiDataSetIndexArchive", + 5131: ".TSCH.CommandReplaceThemePresetArchive", + 5132: ".TSCH.CommandInvalidateWPCaches", + 5135: ".TSCH.CommandMutatePropertiesArchive", + 5136: ".TSCH.CommandScaleAllTextArchive", + 5137: ".TSCH.CommandSetFontFamilyArchive", + 5138: ".TSCH.CommandApplyFillSetArchive", + 5139: ".TSCH.CommandReplaceCustomFormatArchive", + 5140: ".TSCH.CommandAddReferenceLineArchive", + 5141: ".TSCH.CommandDeleteReferenceLineArchive", + 5142: ".TSCH.CommandDeleteGridColumnsArchive", + 5143: ".TSCH.CommandDeleteGridRowsArchive", + 5145: ".TSCH.ChartSelectionArchive", + 5146: ".TSCH.ChartTextSelectionTransformerArchive", + 5147: ".TSCH.ChartSubselectionTransformerArchive", + 5148: ".TSCH.ChartDrawableSelectionTransformerArchive", + 5149: ".TSCH.ChartSubselectionTransformerHelperArchive", + 5150: ".TSCH.ChartRefLineSubselectionTransformerHelperArchive", + 5151: ".TSCH.CDESelectionTransformerArchive", + 5152: ".TSCH.ChartSubselectionIdentityTransformerHelperArchive", + 5154: ".TSCH.CommandPasteStyleArchive", + 5155: ".TSCH.CommandInducedReplaceChartGrid", + 5156: ".TSCH.CommandReplaceImageDataArchive", + 5157: ".TSCH.CommandInduced3DChartGeometry", + 6000: ".TST.TableInfoArchive", + 6001: ".TST.TableModelArchive", + 6002: ".TST.Tile", + 6003: ".TST.TableStyleArchive", + 6004: ".TST.CellStyleArchive", + 6005: ".TST.TableDataList", + 6006: ".TST.HeaderStorageBucket", + 6007: ".TST.WPTableInfoArchive", + 6008: ".TST.TableStylePresetArchive", + 6009: ".TST.TableStrokePresetArchive", + 6010: ".TST.ConditionalStyleSetArchive", + 6011: ".TST.TableDataListSegment", + 6030: ".TST.SelectionArchive", + 6031: ".TST.CellMapArchive", + 6032: ".TST.DeathhawkRdar39989167CellSelectionArchive", + 6033: ".TST.ConcurrentCellMapArchive", + 6034: ".TST.ConcurrentCellListArchive", + 6100: ".TST.TableCommandArchive", + 6101: ".TST.CommandDeleteCellsArchive", + 6102: ".TST.CommandInsertColumnsOrRowsArchive", + 6103: ".TST.CommandRemoveColumnsOrRowsArchive", + 6104: ".TST.CommandResizeColumnOrRowArchive", + 6107: ".TST.CommandSetTableNameArchive", + 6111: ".TST.CommandChangeFreezeHeaderStateArchive", + 6114: ".TST.CommandSetTableNameEnabledArchive", + 6117: ".TST.CommandApplyTableStylePresetArchive", + 6120: ".TST.CommandSetRepeatingHeaderEnabledArchive", + 6123: ".TST.CommandSortArchive", + 6125: ".TST.CommandStyleTableArchive", + 6126: ".TST.CommandSetNumberOfDecimalPlacesArchive", + 6127: ".TST.CommandSetShowThousandsSeparatorArchive", + 6128: ".TST.CommandSetNegativeNumberStyleArchive", + 6129: ".TST.CommandSetFractionAccuracyArchive", + 6131: ".TST.CommandSetCurrencyCodeArchive", + 6132: ".TST.CommandSetUseAccountingStyleArchive", + 6136: ".TST.CommandSetTableFontNameArchive", + 6137: ".TST.CommandSetTableFontSizeArchive", + 6142: ".TST.CommandSetTableNameHeightArchive", + 6144: ".TST.MergeRegionMapArchive", + 6145: ".TST.CommandHideShowArchive", + 6146: ".TST.CommandSetBaseArchive", + 6147: ".TST.CommandSetBasePlacesArchive", + 6148: ".TST.CommandSetBaseUseMinusSignArchive", + 6149: ".TST.CommandSetTextStylePropertiesArchive", + 6150: ".TST.CommandCategoryChangeSummaryAggregateType", + 6152: ".TST.CommandCategoryResizeColumnOrRowArchive", + 6153: ".TST.CommandCategoryMoveRowsArchive", + 6156: ".TST.CommandSetPencilAnnotationsArchive", + 6157: ".TST.CommandCategoryWillChangeGroupValue", + 6158: ".TST.CommandApplyConcurrentCellMapArchive", + 6159: ".TST.CommandSetGroupSortOrderArchive", + 6179: ".TST.FormulaEqualsTokenAttachmentArchive", + 6181: ".TST.TokenAttachmentArchive", + 6182: ".TST.ExpressionNodeArchive", + 6183: ".TST.BooleanNodeArchive", + 6184: ".TST.NumberNodeArchive", + 6185: ".TST.StringNodeArchive", + 6186: ".TST.ArrayNodeArchive", + 6187: ".TST.ListNodeArchive", + 6188: ".TST.OperatorNodeArchive", + 6189: ".TST.FunctionNodeArchive", + 6190: ".TST.DateNodeArchive", + 6191: ".TST.ReferenceNodeArchive", + 6192: ".TST.DurationNodeArchive", + 6193: ".TST.ArgumentPlaceholderNodeArchive", + 6194: ".TST.PostfixOperatorNodeArchive", + 6195: ".TST.PrefixOperatorNodeArchive", + 6196: ".TST.FunctionEndNodeArchive", + 6197: ".TST.EmptyExpressionNodeArchive", + 6198: ".TST.LayoutHintArchive", + 6199: ".TST.CompletionTokenAttachmentArchive", + 6201: ".TST.TableDataList", + 6204: ".TST.HiddenStateFormulaOwnerArchive", + 6205: ".TST.CommandSetAutomaticDurationUnitsArchive", + 6206: ".TST.PopUpMenuModel", + 6218: ".TST.RichTextPayloadArchive", + 6220: ".TST.FilterSetArchive", + 6221: ".TST.CommandSetFiltersEnabledArchive", + 6224: ".TST.CommandRewriteFilterFormulasForTableResizeArchive", + 6226: ".TST.CommandTextPreflightInsertCellArchive", + 6228: ".TST.CommandDeleteCellContentsArchive", + 6229: ".TST.CommandPostflightSetCellArchive", + 6235: ".TST.IdentifierNodeArchive", + 6238: ".TST.CommandSetDateTimeFormatArchive", + 6239: ".TST.TableCommandSelectionBehaviorArchive", + 6244: ".TST.CommandApplyCellCommentArchive", + 6246: ".TST.CommandSetFormulaTokenizationArchive", + 6247: ".TST.TableStyleNetworkArchive", + 6250: ".TST.CommandSetFilterSetTypeArchive", + 6255: ".TST.CommandSetTextStyleArchive", + 6256: ".TST.CommandJustForNotifyingArchive", + 6258: ".TST.CommandSetSortOrderArchive", + 6262: ".TST.CommandAddTableStylePresetArchive", + 6264: ".TST.CellDiffMapArchive", + 6265: ".TST.CommandApplyCellContentsArchive", + 6266: ".TST.CommandRemoveTableStylePresetArchive", + 6267: ".TST.ColumnRowUIDMapArchive", + 6268: ".TST.CommandMoveColumnsOrRowsArchive", + 6269: ".TST.CommandReplaceCustomFormatArchive", + 6270: ".TST.CommandReplaceTableStylePresetArchive", + 6271: ".TST.FormulaSelectionArchive", + 6273: ".TST.CellListArchive", + 6275: ".TST.CommandApplyCellDiffMapArchive", + 6276: ".TST.CommandSetFilterSetArchive", + 6277: ".TST.CommandMutateCellFormatArchive", + 6278: ".TST.CommandSetStorageLanguageArchive", + 6280: ".TST.CommandMergeArchive", + 6281: ".TST.CommandUnmergeArchive", + 6282: ".TST.CommandApplyCellMapArchive", + 6283: ".TST.ControlCellSelectionArchive", + 6284: ".TST.TableNameSelectionArchive", + 6285: ".TST.CommandRewriteFormulasForTransposeArchive", + 6287: ".TST.CommandTransposeTableArchive", + 6289: ".TST.CommandSetDurationStyleArchive", + 6290: ".TST.CommandSetDurationUnitSmallestLargestArchive", + 6291: ".TST.CommandRewriteTableFormulasForRewriteSpecArchive", + 6292: ".TST.CommandRewriteConditionalStylesForRewriteSpecArchive", + 6293: ".TST.CommandRewriteFilterFormulasForRewriteSpecArchive", + 6294: ".TST.CommandRewriteSortOrderForRewriteSpecArchive", + 6295: ".TST.StrokeSelectionArchive", + 6297: ".TST.LetNodeArchive", + 6298: ".TST.VariableNodeArchive", + 6299: ".TST.InNodeArchive", + 6300: ".TST.CommandInverseMergeArchive", + 6301: ".TST.CommandMoveCellsArchive", + 6302: ".TST.DefaultCellStylesContainerArchive", + 6303: ".TST.CommandRewriteMergeFormulasArchive", + 6304: ".TST.CommandChangeTableAreaForColumnOrRowArchive", + 6305: ".TST.StrokeSidecarArchive", + 6306: ".TST.StrokeLayerArchive", + 6307: ".TST.CommandChooseTableIdRemapperArchive", + 6310: ".TST.CommandSetWasCutArchive", + 6311: ".TST.AutofillSelectionArchive", + 6312: ".TST.StockCellSelectionArchive", + 6313: ".TST.CommandSetNowArchive", + 6314: ".TST.CommandSetStructuredTextImportRecordArchive", + 6315: ".TST.CommandRewriteCategoryFormulasArchive", + 6316: ".TST.SummaryModelArchive", + 6317: ".TST.SummaryCellVendorArchive", + 6318: ".TST.CategoryOrderArchive", + 6320: ".TST.CommandCategoryCollapseExpandGroupArchive", + 6321: ".TST.CommandCategorySetGroupingColumnsArchive", + 6323: ".TST.CommandRewriteHiddenStatesForGroupByChangeArchive", + 6350: ".TST.IdempotentSelectionTransformerArchive", + 6351: ".TST.TableSubSelectionTransformerBaseArchive", + 6352: ".TST.TableNameSelectionTransformerArchive", + 6353: ".TST.RegionSelectionTransformerArchive", + 6354: ".TST.RowColumnSelectionTransformerArchive", + 6355: ".TST.ControlCellSelectionTransformerArchive", + 6357: ".TST.ChangePropagationMapWrapper", + 6358: ".TST.WPSelectionTransformerArchive", + 6359: ".TST.StockCellSelectionTransformerArchive", + 6360: ".TST.CommandSetRangeControlMinMaxIncArchive", + 6361: ".TST.CommandCategorySetLabelRowVisibility", + 6362: ".TST.CommandRewritePencilAnnotationFormulasArchive", + 6363: ".TST.PencilAnnotationArchive", + 6364: ".TST.StrokeSelectionTransformerArchive", + 6365: ".TST.HeaderNameMgrTileArchive", + 6366: ".TST.HeaderNameMgrArchive", + 6367: ".TST.CellDiffArray", + 6368: ".TST.CellDiffArraySegment", + 6369: ".TST.PivotOrderArchive", + 6370: ".TST.PivotOwnerArchive", + 6371: ".TST.CommandPivotSetPivotRulesArchive", + 6372: ".TST.CategoryOwnerRefArchive", + 6373: ".TST.GroupByArchive", + 6374: ".TST.PivotGroupingColumnOptionsMapArchive", + 6375: ".TST.CommandPivotSetGroupingColumnOptionsArchive", + 6376: ".TST.CommandPivotHideShowGrandTotalsArchive", + 6377: ".TST.CommandPivotSortArchive", + 6379: ".TST.CommandRewritePivotOwnerFormulasArchive", + 6380: ".TST.CommandRewriteTrackedReferencesArchive", + 6381: ".TST.CommandExtendTableIDHistoryArchive", + 6382: ".TST.GroupByArchive.AggregatorArchive", + 6383: ".TST.GroupByArchive.GroupNodeArchive", + 10011: ".TSWP.SectionPlaceholderArchive", + 10020: ".TSWP.ShapeSelectionTransformerArchive", + 10021: ".TSWP.SelectionTransformerArchive", + 10022: ".TSWP.ShapeContentDescription", + 10023: ".TSWP.TateChuYokoFieldArchive", + 10024: ".TSWP.DropCapStyleArchive", + 11000: ".TSP.PasteboardObject", + 11006: ".TSP.PackageMetadata", + 11007: ".TSP.PasteboardMetadata", + 11008: ".TSP.ObjectContainer", + 11009: ".TSP.ViewStateMetadata", + 11010: ".TSP.ObjectCollection", + 11011: ".TSP.DocumentMetadata", + 11012: ".TSP.SupportMetadata", + 11013: ".TSP.ObjectSerializationMetadata", + 11014: ".TSP.DataMetadata", + 11015: ".TSP.DataMetadataMap", + 11016: ".TSP.LargeNumberArraySegment", + 11017: ".TSP.LargeStringArraySegment", + 11018: ".TSP.LargeLazyObjectArraySegment", + 11019: ".TSP.LargeNumberArray", + 11020: ".TSP.LargeStringArray", + 11021: ".TSP.LargeLazyObjectArray", + 11024: ".TSP.LargeUUIDArraySegment", + 11025: ".TSP.LargeUUIDArray", + 11026: ".TSP.LargeObjectArraySegment", + 11027: ".TSP.LargeObjectArray", + 12002: ".TN.CommandSheetInsertDrawablesArchive", + 12003: ".TN.CommandDocumentInsertSheetArchive", + 12004: ".TN.CommandDocumentRemoveSheetArchive", + 12005: ".TN.CommandSetSheetNameArchive", + 12006: ".TN.ChartMediatorArchive", + 12008: ".TN.CommandDocumentReorderSheetArchive", + 12009: ".TN.ThemeArchive", + 12012: ".TN.CommandSheetRemoveDrawablesArchive", + 12013: ".TN.CommandSheetMoveDrawableZOrderArchive", + 12014: ".TN.CommandChartMediatorSetEditingState", + 12015: ".TN.CommandFormChooseTargetTableArchive", + 12017: ".TN.CommandSetPageOrientationArchive", + 12018: ".TN.CommandSetContentScaleArchive", + 12026: ".TN.UIStateArchive", + 12028: ".TN.SheetSelectionArchive", + 12030: ".TN.CommandSetDocumentPaperSize", + 12031: ".TN.CommandSetPrinterMarginsArchive", + 12032: ".TN.CommandSetHeaderFooterInsetsArchive", + 12033: ".TN.CommandSetPageOrderArchive", + 12034: ".TN.CommandSetUsingStartPageNumberArchive", + 12035: ".TN.CommandSetStartPageNumberArchive", + 12036: ".TN.ChartSelectionArchive", + 12037: ".TN.CommandChartMediatorSetGridDirection", + 12038: ".TN.CommandChartMediatorSetFormula", + 12039: ".TN.CommandChartMediatorSetSeriesOrder", + 12040: ".TN.FormSelectionArchive", + 12041: ".TN.DocumentSelectionTransformerArchive", + 12042: ".TN.SheetSelectionTransformerArchive", + 12043: ".TN.CommandInducedSheetChangeArchive", + 12044: ".TNSOS.InducedVerifyDocumentWithServerCommandArchive", + 12045: ".TNSOS.InducedVerifyDrawableZOrdersWithServerCommandArchive", + 12046: ".TN.PasteboardNativeStorageArchive", + 12047: ".TN.CanvasSelectionTransformerArchive", + 12048: ".TN.CommandSetSheetDirectionArchive", + 12049: ".TN.CommandSetSheetShouldPrintCommentsArchive", + 12050: ".TN.SheetStyleArchive", + 12051: ".TN.CommandSheetSetBackgroundFillArchive", + 12052: ".TN.CommandSetPrintBackgroundsArchive", + 12053: ".TN.FormBuilderSelectionArchive", + 12054: ".TN.FormTableChooserSelectionArchive", + 12055: ".TN.FormTableChooserSelectionTransformerArchive", + 12056: ".TN.FormBuilderSelectionTransformerArchive", + 12057: ".TN.FormViewerSelectionTransformerArchive", + 12058: ".TN.FormSheetSelectionTransformerArchive", + 12059: ".TN.FormCommandActivityBehaviorArchive", +} as {[key: number]: string}; diff --git a/src/messages/pages.ts b/src/messages/pages.ts new file mode 100644 index 0000000..a5c5f26 --- /dev/null +++ b/src/messages/pages.ts @@ -0,0 +1,582 @@ +export default { + 7: ".TP.PlaceholderArchive", + 200: ".TSK.DocumentArchive", + 201: ".TSK.LocalCommandHistory", + 202: ".TSK.CommandGroupArchive", + 203: ".TSK.CommandContainerArchive", + 205: ".TSK.TreeNode", + 210: ".TSK.ViewStateArchive", + 211: ".TSK.DocumentSupportArchive", + 212: ".TSK.AnnotationAuthorArchive", + 213: ".TSK.AnnotationAuthorStorageArchive", + 215: ".TSK.SetAnnotationAuthorColorCommandArchive", + 218: ".TSK.CollaborationCommandHistory", + 219: ".TSK.DocumentSelectionArchive", + 220: ".TSK.CommandSelectionBehaviorArchive", + 221: ".TSK.NullCommandArchive", + 222: ".TSK.CustomFormatListArchive", + 223: ".TSK.GroupCommitCommandArchive", + 224: ".TSK.InducedCommandCollectionArchive", + 225: ".TSK.InducedCommandCollectionCommitCommandArchive", + 226: ".TSK.CollaborationDocumentSessionState", + 227: ".TSK.CollaborationCommandHistoryCoalescingGroup", + 228: ".TSK.CollaborationCommandHistoryCoalescingGroupNode", + 229: ".TSK.CollaborationCommandHistoryOriginatingCommandAcknowledgementObserver", + 230: ".TSK.DocumentSupportCollaborationState", + 231: ".TSK.ChangeDocumentPackageTypeCommandArchive", + 232: ".TSK.UpgradeDocPostProcessingCommandArchive", + 233: ".TSK.FinalCommandPairArchive", + 234: ".TSK.OutgoingCommandQueueItem", + 235: ".TSK.TransformerEntry", + 238: ".TSK.CreateLocalStorageSnapshotCommandArchive", + 240: ".TSK.SelectionPathTransformerArchive", + 241: ".TSK.NativeContentDescription", + 242: ".TSD.PencilAnnotationStorageArchive", + 245: ".TSK.OperationStorage", + 246: ".TSK.OperationStorageEntryArray", + 247: ".TSK.OperationStorageEntryArraySegment", + 248: ".TSK.BlockDiffsAtCurrentRevisionCommand", + 249: ".TSK.OutgoingCommandQueue", + 250: ".TSK.OutgoingCommandQueueSegment", + 251: ".TSK.PropagatedCommandCollectionArchive", + 252: ".TSK.LocalCommandHistoryItem", + 253: ".TSK.LocalCommandHistoryArray", + 254: ".TSK.LocalCommandHistoryArraySegment", + 255: ".TSK.CollaborationCommandHistoryItem", + 256: ".TSK.CollaborationCommandHistoryArray", + 257: ".TSK.CollaborationCommandHistoryArraySegment", + 258: ".TSK.PencilAnnotationUIState", + 259: ".TSKSOS.FixCorruptedDataCommandArchive", + 260: ".TSK.CommandAssetChunkArchive", + 261: ".TSK.AssetUploadStatusCommandArchive", + 262: ".TSK.AssetUnmaterializedOnServerCommandArchive", + 263: ".TSK.CommandBehaviorArchive", + 264: ".TSK.CommandBehaviorSelectionPathStorageArchive", + 265: ".TSK.CommandActivityBehaviorArchive", + 273: ".TSK.ActivityOnlyCommandArchive", + 275: ".TSK.SetActivityAuthorShareParticipantIDCommandArchive", + 279: ".TSK.ActivityAuthorCacheArchive", + 280: ".TSK.ActivityStreamArchive", + 281: ".TSK.ActivityArchive", + 282: ".TSK.ActivityCommitCommandArchive", + 283: ".TSK.ActivityStreamActivityArray", + 284: ".TSK.ActivityStreamActivityArraySegment", + 285: ".TSK.ActivityStreamRemovedAuthorAuditorPendingStateArchive", + 286: ".TSK.ActivityAuthorArchive", + 287: ".TSKSOS.ResetActivityStreamCommandArchive", + 288: ".TSKSOS.RemoveAuthorIdentifiersCommandArchive", + 289: ".TSK.ActivityCursorCollectionPersistenceWrapperArchive", + 400: ".TSS.StyleArchive", + 401: ".TSS.StylesheetArchive", + 402: ".TSS.ThemeArchive", + 412: ".TSS.StyleUpdatePropertyMapCommandArchive", + 413: ".TSS.ThemeReplacePresetCommandArchive", + 414: ".TSS.ThemeAddStylePresetCommandArchive", + 415: ".TSS.ThemeRemoveStylePresetCommandArchive", + 416: ".TSS.ThemeReplaceColorPresetCommandArchive", + 417: ".TSS.ThemeMovePresetCommandArchive", + 419: ".TSS.ThemeReplaceStylePresetAndDisconnectStylesCommandArchive", + 600: ".TSA.DocumentArchive", + 601: ".TSA.FunctionBrowserStateArchive", + 602: ".TSA.PropagatePresetCommandArchive", + 603: ".TSA.ShortcutControllerArchive", + 604: ".TSA.ShortcutCommandArchive", + 605: ".TSA.AddCustomFormatCommandArchive", + 606: ".TSA.UpdateCustomFormatCommandArchive", + 607: ".TSA.ReplaceCustomFormatCommandArchive", + 611: ".TSASOS.VerifyObjectsWithServerCommandArchive", + 612: ".TSA.InducedVerifyObjectsWithServerCommandArchive", + 613: ".TSASOS.VerifyDocumentWithServerCommandArchive", + 614: ".TSASOS.VerifyDrawableZOrdersWithServerCommandArchive", + 615: ".TSASOS.InducedVerifyDrawableZOrdersWithServerCommandArchive", + 616: ".TSA.NeedsMediaCompatibilityUpgradeCommandArchive", + 617: ".TSA.ChangeDocumentLocaleCommandArchive", + 618: ".TSA.StyleUpdatePropertyMapCommandArchive", + 619: ".TSA.RemoteDataChangeCommandArchive", + 623: ".TSA.GalleryItem", + 624: ".TSA.GallerySelectionTransformer", + 625: ".TSA.GalleryItemSelection", + 626: ".TSA.GalleryItemSelectionTransformer", + 627: ".TSA.GalleryInfoSetValueCommandArchive", + 628: ".TSA.GalleryItemSetGeometryCommand", + 629: ".TSA.GalleryItemSetValueCommand", + 630: ".TSA.InducedVerifyTransformHistoryWithServerCommandArchive", + 631: ".TSASOS.CommandReapplyMasterArchive", + 632: ".TSASOS.PropagateMasterChangeCommandArchive", + 633: ".TSA.CaptionInfoArchive", + 634: ".TSA.CaptionPlacementArchive", + 635: ".TSA.TitlePlacementCommandArchive", + 636: ".TSA.GalleryInfoInsertItemsCommandArchive", + 637: ".TSA.GalleryInfoRemoveItemsCommandArchive", + 638: ".TSASOS.VerifyActivityStreamWithServerCommandArchive", + 639: ".TSASOS.InducedVerifyActivityStreamWithServerCommandArchive", + 2001: ".TSWP.StorageArchive", + 2002: ".TSWP.SelectionArchive", + 2003: ".TSWP.DrawableAttachmentArchive", + 2004: ".TSWP.TextualAttachmentArchive", + 2005: ".TSWP.StorageArchive", + 2006: ".TSWP.UIGraphicalAttachment", + 2007: ".TSWP.TextualAttachmentArchive", + 2008: ".TSWP.FootnoteReferenceAttachmentArchive", + 2009: ".TSWP.TextualAttachmentArchive", + 2010: ".TSWP.TSWPTOCPageNumberAttachmentArchive", + 2011: ".TSWP.ShapeInfoArchive", + 2013: ".TSWP.HighlightArchive", + 2014: ".TSWP.CommentInfoArchive", + 2015: ".TSWP.EquationInfoArchive", + 2016: ".TSWP.PencilAnnotationArchive", + 2021: ".TSWP.CharacterStyleArchive", + 2022: ".TSWP.ParagraphStyleArchive", + 2023: ".TSWP.ListStyleArchive", + 2024: ".TSWP.ColumnStyleArchive", + 2025: ".TSWP.ShapeStyleArchive", + 2026: ".TSWP.TOCEntryStyleArchive", + 2031: ".TSWP.PlaceholderSmartFieldArchive", + 2032: ".TSWP.HyperlinkFieldArchive", + 2033: ".TSWP.FilenameSmartFieldArchive", + 2034: ".TSWP.DateTimeSmartFieldArchive", + 2035: ".TSWP.BookmarkFieldArchive", + 2036: ".TSWP.MergeSmartFieldArchive", + 2037: ".TSWP.CitationRecordArchive", + 2038: ".TSWP.CitationSmartFieldArchive", + 2039: ".TSWP.UnsupportedHyperlinkFieldArchive", + 2040: ".TSWP.BibliographySmartFieldArchive", + 2041: ".TSWP.TOCSmartFieldArchive", + 2042: ".TSWP.RubyFieldArchive", + 2043: ".TSWP.NumberAttachmentArchive", + 2050: ".TSWP.TextStylePresetArchive", + 2051: ".TSWP.TOCSettingsArchive", + 2052: ".TSWP.TOCEntryInstanceArchive", + 2053: ".TSWPSOS.StyleDiffArchive", + 2060: ".TSWP.ChangeArchive", + 2061: ".TSK.DeprecatedChangeAuthorArchive", + 2062: ".TSWP.ChangeSessionArchive", + 2101: ".TSWP.TextCommandArchive", + 2107: ".TSWP.ApplyPlaceholderTextCommandArchive", + 2116: ".TSWP.ApplyRubyTextCommandArchive", + 2118: ".TSWP.ModifyRubyTextCommandArchive", + 2119: ".TSWP.UpdateDateTimeFieldCommandArchive", + 2120: ".TSWP.ModifyTOCSettingsBaseCommandArchive", + 2121: ".TSWP.ModifyTOCSettingsForTOCInfoCommandArchive", + 2123: ".TSWP.SetObjectPropertiesCommandArchive", + 2124: ".TSWP.UpdateFlowInfoCommandArchive", + 2125: ".TSWP.AddFlowInfoCommandArchive", + 2126: ".TSWP.RemoveFlowInfoCommandArchive", + 2127: ".TSWP.ContainedObjectsCommandArchive", + 2128: ".TSWP.EquationInfoGeometryCommandArchive", + 2206: ".TSWP.AnchorAttachmentCommandArchive", + 2217: ".TSWP.TextCommentReplyCommandArchive", + 2231: ".TSWP.ShapeApplyPresetCommandArchive", + 2240: ".TSWP.TOCInfoArchive", + 2241: ".TSWP.TOCAttachmentArchive", + 2242: ".TSWP.TOCLayoutHintArchive", + 2400: ".TSWP.StyleBaseCommandArchive", + 2401: ".TSWP.StyleCreateCommandArchive", + 2402: ".TSWP.StyleRenameCommandArchive", + 2404: ".TSWP.StyleDeleteCommandArchive", + 2405: ".TSWP.StyleReorderCommandArchive", + 2406: ".TSWP.StyleUpdatePropertyMapCommandArchive", + 2407: ".TSWP.StorageActionCommandArchive", + 2408: ".TSWP.ShapeStyleSetValueCommandArchive", + 2409: ".TSWP.HyperlinkSelectionArchive", + 2410: ".TSWP.FlowInfoArchive", + 2411: ".TSWP.FlowInfoContainerArchive", + 2412: ".TSWP.PencilAnnotationSelectionTransformerArchive", + 3002: ".TSD.DrawableArchive", + 3003: ".TSD.ContainerArchive", + 3004: ".TSD.ShapeArchive", + 3005: ".TSD.ImageArchive", + 3006: ".TSD.MaskArchive", + 3007: ".TSD.MovieArchive", + 3008: ".TSD.GroupArchive", + 3009: ".TSD.ConnectionLineArchive", + 3015: ".TSD.ShapeStyleArchive", + 3016: ".TSD.MediaStyleArchive", + 3021: ".TSD.InfoGeometryCommandArchive", + 3022: ".TSD.DrawablePathSourceCommandArchive", + 3024: ".TSD.ImageMaskCommandArchive", + 3025: ".TSD.ImageMediaCommandArchive", + 3026: ".TSD.ImageReplaceCommandArchive", + 3027: ".TSD.MediaOriginalSizeCommandArchive", + 3028: ".TSD.ShapeStyleSetValueCommandArchive", + 3030: ".TSD.MediaStyleSetValueCommandArchive", + 3031: ".TSD.ShapeApplyPresetCommandArchive", + 3032: ".TSD.MediaApplyPresetCommandArchive", + 3034: ".TSD.MovieSetValueCommandArchive", + 3036: ".TSD.ExteriorTextWrapCommandArchive", + 3037: ".TSD.MediaFlagsCommandArchive", + 3040: ".TSD.DrawableHyperlinkCommandArchive", + 3041: ".TSD.ConnectionLineConnectCommandArchive", + 3042: ".TSD.InstantAlphaCommandArchive", + 3043: ".TSD.DrawableLockCommandArchive", + 3044: ".TSD.ImageNaturalSizeCommandArchive", + 3045: ".TSD.CanvasSelectionArchive", + 3047: ".TSD.GuideStorageArchive", + 3048: ".TSD.StyledInfoSetStyleCommandArchive", + 3049: ".TSD.DrawableInfoCommentCommandArchive", + 3050: ".TSD.GuideCommandArchive", + 3051: ".TSD.DrawableAspectRatioLockedCommandArchive", + 3052: ".TSD.ContainerRemoveChildrenCommandArchive", + 3053: ".TSD.ContainerInsertChildrenCommandArchive", + 3054: ".TSD.ContainerReorderChildrenCommandArchive", + 3055: ".TSD.ImageAdjustmentsCommandArchive", + 3056: ".TSD.CommentStorageArchive", + 3057: ".TSD.ThemeReplaceFillPresetCommandArchive", + 3058: ".TSD.DrawableAccessibilityDescriptionCommandArchive", + 3059: ".TSD.PasteStyleCommandArchive", + 3061: ".TSD.DrawableSelectionArchive", + 3062: ".TSD.GroupSelectionArchive", + 3063: ".TSD.PathSelectionArchive", + 3064: ".TSD.CommentInvalidatingCommandSelectionBehaviorArchive", + 3065: ".TSD.ImageInfoAbstractGeometryCommandArchive", + 3066: ".TSD.ImageInfoGeometryCommandArchive", + 3067: ".TSD.ImageInfoMaskGeometryCommandArchive", + 3068: ".TSD.UndoObjectArchive", + 3070: ".TSD.ReplaceAnnotationAuthorCommandArchive", + 3071: ".TSD.DrawableSelectionTransformerArchive", + 3072: ".TSD.GroupSelectionTransformerArchive", + 3073: ".TSD.ShapeSelectionTransformerArchive", + 3074: ".TSD.PathSelectionTransformerArchive", + 3080: ".TSD.MediaInfoGeometryCommandArchive", + 3082: ".TSD.GroupUngroupInformativeCommandArchive", + 3083: ".TSD.DrawableContentDescription", + 3084: ".TSD.ContainerRemoveDrawablesCommandArchive", + 3085: ".TSD.ContainerInsertDrawablesCommandArchive", + 3086: ".TSD.PencilAnnotationArchive", + 3087: ".TSD.FreehandDrawingOpacityCommandArchive", + 3088: ".TSD.DrawablePencilAnnotationCommandArchive", + 3089: ".TSD.PencilAnnotationSelectionArchive", + 3090: ".TSD.FreehandDrawingContentDescription", + 3091: ".TSD.FreehandDrawingToolkitUIState", + 3092: ".TSD.PencilAnnotationSelectionTransformerArchive", + 3094: ".TSD.FreehandDrawingAnimationCommandArchive", + 3095: ".TSD.InsertCaptionOrTitleCommandArchive", + 3096: ".TSD.RemoveCaptionOrTitleCommandArchive", + 3097: ".TSD.StandinCaptionArchive", + 3098: ".TSD.SetCaptionOrTitleVisibilityCommandArchive", + 4000: ".TSCE.CalculationEngineArchive", + 4001: ".TSCE.FormulaRewriteCommandArchive", + 4003: ".TSCE.NamedReferenceManagerArchive", + 4004: ".TSCE.TrackedReferenceStoreArchive", + 4005: ".TSCE.TrackedReferenceArchive", + 4007: ".TSCE.RemoteDataStoreArchive", + 4008: ".TSCE.FormulaOwnerDependenciesArchive", + 4009: ".TSCE.CellRecordTileArchive", + 4010: ".TSCE.RangePrecedentsTileArchive", + 4011: ".TSCE.ReferencesToDirtyArchive", + 5000: ".TSCH.PreUFF.ChartInfoArchive", + 5002: ".TSCH.PreUFF.ChartGridArchive", + 5004: ".TSCH.ChartMediatorArchive", + 5010: ".TSCH.PreUFF.ChartStyleArchive", + 5011: ".TSCH.PreUFF.ChartSeriesStyleArchive", + 5012: ".TSCH.PreUFF.ChartAxisStyleArchive", + 5013: ".TSCH.PreUFF.LegendStyleArchive", + 5014: ".TSCH.PreUFF.ChartNonStyleArchive", + 5015: ".TSCH.PreUFF.ChartSeriesNonStyleArchive", + 5016: ".TSCH.PreUFF.ChartAxisNonStyleArchive", + 5017: ".TSCH.PreUFF.LegendNonStyleArchive", + 5020: ".TSCH.ChartStylePreset", + 5021: ".TSCH.ChartDrawableArchive", + 5022: ".TSCH.ChartStyleArchive", + 5023: ".TSCH.ChartNonStyleArchive", + 5024: ".TSCH.LegendStyleArchive", + 5025: ".TSCH.LegendNonStyleArchive", + 5026: ".TSCH.ChartAxisStyleArchive", + 5027: ".TSCH.ChartAxisNonStyleArchive", + 5028: ".TSCH.ChartSeriesStyleArchive", + 5029: ".TSCH.ChartSeriesNonStyleArchive", + 5030: ".TSCH.ReferenceLineStyleArchive", + 5031: ".TSCH.ReferenceLineNonStyleArchive", + 5103: ".TSCH.CommandSetChartTypeArchive", + 5104: ".TSCH.CommandSetSeriesNameArchive", + 5105: ".TSCH.CommandSetCategoryNameArchive", + 5107: ".TSCH.CommandSetScatterFormatArchive", + 5108: ".TSCH.CommandSetLegendFrameArchive", + 5109: ".TSCH.CommandSetGridValueArchive", + 5110: ".TSCH.CommandSetGridDirectionArchive", + 5115: ".TSCH.CommandAddGridRowsArchive", + 5116: ".TSCH.CommandAddGridColumnsArchive", + 5118: ".TSCH.CommandMoveGridRowsArchive", + 5119: ".TSCH.CommandMoveGridColumnsArchive", + 5122: ".TSCH.CommandSetPieWedgeExplosion", + 5123: ".TSCH.CommandStyleSwapArchive", + 5125: ".TSCH.CommandChartApplyPreset", + 5126: ".TSCH.ChartCommandArchive", + 5127: ".TSCH.CommandReplaceGridValuesArchive", + 5129: ".TSCH.StylePasteboardDataArchive", + 5130: ".TSCH.CommandSetMultiDataSetIndexArchive", + 5131: ".TSCH.CommandReplaceThemePresetArchive", + 5132: ".TSCH.CommandInvalidateWPCaches", + 5135: ".TSCH.CommandMutatePropertiesArchive", + 5136: ".TSCH.CommandScaleAllTextArchive", + 5137: ".TSCH.CommandSetFontFamilyArchive", + 5138: ".TSCH.CommandApplyFillSetArchive", + 5139: ".TSCH.CommandReplaceCustomFormatArchive", + 5140: ".TSCH.CommandAddReferenceLineArchive", + 5141: ".TSCH.CommandDeleteReferenceLineArchive", + 5142: ".TSCH.CommandDeleteGridColumnsArchive", + 5143: ".TSCH.CommandDeleteGridRowsArchive", + 5145: ".TSCH.ChartSelectionArchive", + 5146: ".TSCH.ChartTextSelectionTransformerArchive", + 5147: ".TSCH.ChartSubselectionTransformerArchive", + 5148: ".TSCH.ChartDrawableSelectionTransformerArchive", + 5149: ".TSCH.ChartSubselectionTransformerHelperArchive", + 5150: ".TSCH.ChartRefLineSubselectionTransformerHelperArchive", + 5151: ".TSCH.CDESelectionTransformerArchive", + 5152: ".TSCH.ChartSubselectionIdentityTransformerHelperArchive", + 5154: ".TSCH.CommandPasteStyleArchive", + 5155: ".TSCH.CommandInducedReplaceChartGrid", + 5156: ".TSCH.CommandReplaceImageDataArchive", + 5157: ".TSCH.CommandInduced3DChartGeometry", + 6000: ".TST.TableInfoArchive", + 6001: ".TST.TableModelArchive", + 6002: ".TST.Tile", + 6003: ".TST.TableStyleArchive", + 6004: ".TST.CellStyleArchive", + 6005: ".TST.TableDataList", + 6006: ".TST.HeaderStorageBucket", + 6007: ".TST.WPTableInfoArchive", + 6008: ".TST.TableStylePresetArchive", + 6009: ".TST.TableStrokePresetArchive", + 6010: ".TST.ConditionalStyleSetArchive", + 6011: ".TST.TableDataListSegment", + 6030: ".TST.SelectionArchive", + 6031: ".TST.CellMapArchive", + 6032: ".TST.DeathhawkRdar39989167CellSelectionArchive", + 6033: ".TST.ConcurrentCellMapArchive", + 6034: ".TST.ConcurrentCellListArchive", + 6100: ".TST.TableCommandArchive", + 6101: ".TST.CommandDeleteCellsArchive", + 6102: ".TST.CommandInsertColumnsOrRowsArchive", + 6103: ".TST.CommandRemoveColumnsOrRowsArchive", + 6104: ".TST.CommandResizeColumnOrRowArchive", + 6107: ".TST.CommandSetTableNameArchive", + 6111: ".TST.CommandChangeFreezeHeaderStateArchive", + 6114: ".TST.CommandSetTableNameEnabledArchive", + 6117: ".TST.CommandApplyTableStylePresetArchive", + 6120: ".TST.CommandSetRepeatingHeaderEnabledArchive", + 6123: ".TST.CommandSortArchive", + 6125: ".TST.CommandStyleTableArchive", + 6126: ".TST.CommandSetNumberOfDecimalPlacesArchive", + 6127: ".TST.CommandSetShowThousandsSeparatorArchive", + 6128: ".TST.CommandSetNegativeNumberStyleArchive", + 6129: ".TST.CommandSetFractionAccuracyArchive", + 6131: ".TST.CommandSetCurrencyCodeArchive", + 6132: ".TST.CommandSetUseAccountingStyleArchive", + 6136: ".TST.CommandSetTableFontNameArchive", + 6137: ".TST.CommandSetTableFontSizeArchive", + 6142: ".TST.CommandSetTableNameHeightArchive", + 6144: ".TST.MergeRegionMapArchive", + 6145: ".TST.CommandHideShowArchive", + 6146: ".TST.CommandSetBaseArchive", + 6147: ".TST.CommandSetBasePlacesArchive", + 6148: ".TST.CommandSetBaseUseMinusSignArchive", + 6149: ".TST.CommandSetTextStylePropertiesArchive", + 6150: ".TST.CommandCategoryChangeSummaryAggregateType", + 6152: ".TST.CommandCategoryResizeColumnOrRowArchive", + 6153: ".TST.CommandCategoryMoveRowsArchive", + 6156: ".TST.CommandSetPencilAnnotationsArchive", + 6157: ".TST.CommandCategoryWillChangeGroupValue", + 6158: ".TST.CommandApplyConcurrentCellMapArchive", + 6159: ".TST.CommandSetGroupSortOrderArchive", + 6179: ".TST.FormulaEqualsTokenAttachmentArchive", + 6181: ".TST.TokenAttachmentArchive", + 6182: ".TST.ExpressionNodeArchive", + 6183: ".TST.BooleanNodeArchive", + 6184: ".TST.NumberNodeArchive", + 6185: ".TST.StringNodeArchive", + 6186: ".TST.ArrayNodeArchive", + 6187: ".TST.ListNodeArchive", + 6188: ".TST.OperatorNodeArchive", + 6189: ".TST.FunctionNodeArchive", + 6190: ".TST.DateNodeArchive", + 6191: ".TST.ReferenceNodeArchive", + 6192: ".TST.DurationNodeArchive", + 6193: ".TST.ArgumentPlaceholderNodeArchive", + 6194: ".TST.PostfixOperatorNodeArchive", + 6195: ".TST.PrefixOperatorNodeArchive", + 6196: ".TST.FunctionEndNodeArchive", + 6197: ".TST.EmptyExpressionNodeArchive", + 6198: ".TST.LayoutHintArchive", + 6199: ".TST.CompletionTokenAttachmentArchive", + 6201: ".TST.TableDataList", + 6204: ".TST.HiddenStateFormulaOwnerArchive", + 6205: ".TST.CommandSetAutomaticDurationUnitsArchive", + 6206: ".TST.PopUpMenuModel", + 6218: ".TST.RichTextPayloadArchive", + 6220: ".TST.FilterSetArchive", + 6221: ".TST.CommandSetFiltersEnabledArchive", + 6224: ".TST.CommandRewriteFilterFormulasForTableResizeArchive", + 6226: ".TST.CommandTextPreflightInsertCellArchive", + 6228: ".TST.CommandDeleteCellContentsArchive", + 6229: ".TST.CommandPostflightSetCellArchive", + 6235: ".TST.IdentifierNodeArchive", + 6238: ".TST.CommandSetDateTimeFormatArchive", + 6239: ".TST.TableCommandSelectionBehaviorArchive", + 6244: ".TST.CommandApplyCellCommentArchive", + 6246: ".TST.CommandSetFormulaTokenizationArchive", + 6247: ".TST.TableStyleNetworkArchive", + 6250: ".TST.CommandSetFilterSetTypeArchive", + 6255: ".TST.CommandSetTextStyleArchive", + 6256: ".TST.CommandJustForNotifyingArchive", + 6258: ".TST.CommandSetSortOrderArchive", + 6262: ".TST.CommandAddTableStylePresetArchive", + 6264: ".TST.CellDiffMapArchive", + 6265: ".TST.CommandApplyCellContentsArchive", + 6266: ".TST.CommandRemoveTableStylePresetArchive", + 6267: ".TST.ColumnRowUIDMapArchive", + 6268: ".TST.CommandMoveColumnsOrRowsArchive", + 6269: ".TST.CommandReplaceCustomFormatArchive", + 6270: ".TST.CommandReplaceTableStylePresetArchive", + 6271: ".TST.FormulaSelectionArchive", + 6273: ".TST.CellListArchive", + 6275: ".TST.CommandApplyCellDiffMapArchive", + 6276: ".TST.CommandSetFilterSetArchive", + 6277: ".TST.CommandMutateCellFormatArchive", + 6278: ".TST.CommandSetStorageLanguageArchive", + 6280: ".TST.CommandMergeArchive", + 6281: ".TST.CommandUnmergeArchive", + 6282: ".TST.CommandApplyCellMapArchive", + 6283: ".TST.ControlCellSelectionArchive", + 6284: ".TST.TableNameSelectionArchive", + 6285: ".TST.CommandRewriteFormulasForTransposeArchive", + 6287: ".TST.CommandTransposeTableArchive", + 6289: ".TST.CommandSetDurationStyleArchive", + 6290: ".TST.CommandSetDurationUnitSmallestLargestArchive", + 6291: ".TST.CommandRewriteTableFormulasForRewriteSpecArchive", + 6292: ".TST.CommandRewriteConditionalStylesForRewriteSpecArchive", + 6293: ".TST.CommandRewriteFilterFormulasForRewriteSpecArchive", + 6294: ".TST.CommandRewriteSortOrderForRewriteSpecArchive", + 6295: ".TST.StrokeSelectionArchive", + 6297: ".TST.LetNodeArchive", + 6298: ".TST.VariableNodeArchive", + 6299: ".TST.InNodeArchive", + 6300: ".TST.CommandInverseMergeArchive", + 6301: ".TST.CommandMoveCellsArchive", + 6302: ".TST.DefaultCellStylesContainerArchive", + 6303: ".TST.CommandRewriteMergeFormulasArchive", + 6304: ".TST.CommandChangeTableAreaForColumnOrRowArchive", + 6305: ".TST.StrokeSidecarArchive", + 6306: ".TST.StrokeLayerArchive", + 6307: ".TST.CommandChooseTableIdRemapperArchive", + 6310: ".TST.CommandSetWasCutArchive", + 6311: ".TST.AutofillSelectionArchive", + 6312: ".TST.StockCellSelectionArchive", + 6313: ".TST.CommandSetNowArchive", + 6314: ".TST.CommandSetStructuredTextImportRecordArchive", + 6315: ".TST.CommandRewriteCategoryFormulasArchive", + 6316: ".TST.SummaryModelArchive", + 6317: ".TST.SummaryCellVendorArchive", + 6318: ".TST.CategoryOrderArchive", + 6320: ".TST.CommandCategoryCollapseExpandGroupArchive", + 6321: ".TST.CommandCategorySetGroupingColumnsArchive", + 6323: ".TST.CommandRewriteHiddenStatesForGroupByChangeArchive", + 6350: ".TST.IdempotentSelectionTransformerArchive", + 6351: ".TST.TableSubSelectionTransformerBaseArchive", + 6352: ".TST.TableNameSelectionTransformerArchive", + 6353: ".TST.RegionSelectionTransformerArchive", + 6354: ".TST.RowColumnSelectionTransformerArchive", + 6355: ".TST.ControlCellSelectionTransformerArchive", + 6357: ".TST.ChangePropagationMapWrapper", + 6358: ".TST.WPSelectionTransformerArchive", + 6359: ".TST.StockCellSelectionTransformerArchive", + 6360: ".TST.CommandSetRangeControlMinMaxIncArchive", + 6361: ".TST.CommandCategorySetLabelRowVisibility", + 6362: ".TST.CommandRewritePencilAnnotationFormulasArchive", + 6363: ".TST.PencilAnnotationArchive", + 6364: ".TST.StrokeSelectionTransformerArchive", + 6365: ".TST.HeaderNameMgrTileArchive", + 6366: ".TST.HeaderNameMgrArchive", + 6367: ".TST.CellDiffArray", + 6368: ".TST.CellDiffArraySegment", + 6369: ".TST.PivotOrderArchive", + 6370: ".TST.PivotOwnerArchive", + 6371: ".TST.CommandPivotSetPivotRulesArchive", + 6372: ".TST.CategoryOwnerRefArchive", + 6373: ".TST.GroupByArchive", + 6374: ".TST.PivotGroupingColumnOptionsMapArchive", + 6375: ".TST.CommandPivotSetGroupingColumnOptionsArchive", + 6376: ".TST.CommandPivotHideShowGrandTotalsArchive", + 6377: ".TST.CommandPivotSortArchive", + 6379: ".TST.CommandRewritePivotOwnerFormulasArchive", + 6380: ".TST.CommandRewriteTrackedReferencesArchive", + 6381: ".TST.CommandExtendTableIDHistoryArchive", + 6382: ".TST.GroupByArchive.AggregatorArchive", + 6383: ".TST.GroupByArchive.GroupNodeArchive", + 10000: ".TP.DocumentArchive", + 10001: ".TP.ThemeArchive", + 10010: ".TP.FloatingDrawablesArchive", + 10011: ".TP.SectionArchive", + 10012: ".TP.SettingsArchive", + 10015: ".TP.DrawablesZOrderArchive", + 10016: ".TP.UserDefinedGuideMapArchive", + 10017: ".TP.PageTemplateArchive", + 10020: ".TSWP.ShapeSelectionTransformerArchive", + 10021: ".TSWP.SelectionTransformerArchive", + 10022: ".TSWP.ShapeContentDescription", + 10023: ".TSWP.TateChuYokoFieldArchive", + 10024: ".TSWP.DropCapStyleArchive", + 10101: ".TP.InsertDrawablesCommandArchive", + 10102: ".TP.RemoveDrawablesCommandArchive", + 10110: ".TP.MoveDrawablesAttachedCommandArchive", + 10111: ".TP.MoveDrawablesFloatingCommandArchive", + 10112: ".TP.MoveInlineDrawableAnchoredCommandArchive", + 10113: ".TP.InsertFootnoteCommandArchive", + 10114: ".TP.ChangeFootnoteFormatCommandArchive", + 10115: ".TP.ChangeFootnoteKindCommandArchive", + 10116: ".TP.ChangeFootnoteNumberingCommandArchive", + 10118: ".TP.ChangeFootnoteSpacingCommandArchive", + 10119: ".TP.MoveAnchoredDrawableInlineCommandArchive", + 10125: ".TP.InsertSectionTemplateDrawablesCommandArchive", + 10126: ".TP.RemoveSectionTemplateDrawablesCommandArchive", + 10127: ".TP.PasteSectionTemplateDrawablesCommandArchive", + 10130: ".TP.MoveDrawablesPageIndexCommandArchive", + 10131: ".TP.LayoutStateArchive", + 10132: ".TP.CanvasSelectionArchive", + 10133: ".TP.UIStateArchive", + 10135: ".TP.SectionSelectionArchive", + 10136: ".TP.SectionSelectionTransformerArchive", + 10140: ".TP.MoveSectionTemplateDrawableZOrderCommandArchive", + 10141: ".TP.MoveDrawableZOrderCommandArchive", + 10143: ".TP.SectionTemplateArchive", + 10147: ".TP.ViewStateRootArchive", + 10149: ".TP.TrackChangesCommandArchive", + 10152: ".TP.InsertSectionBreakCommandArchive", + 10157: ".TP.PauseChangeTrackingCommandArchive", + 10160: ".TP.AllFootnoteSelectionArchive", + 10161: ".TP.SectionGuideCommandArchive", + 10162: ".TP.DocumentSelectionTransformerArchive", + 10163: ".TP.CanvasSelectionTransformerArchive", + 10164: ".TP.AllFootnoteSelectionTransformerArchive", + 10165: ".TPSOS.InducedVerifyDocumentWithServerCommandArchive", + 10166: ".TP.NullChildHintArchive", + 10167: ".TPSOS.InducedVerifyDrawableZOrdersWithServerCommandArchive", + 10169: ".TP.ReplaceHeaderFooterStorageCommandArchive", + 10170: ".TP.ChangePageTemplateForSectionCommandArchive", + 10171: ".TP.PrototypeForUndoChangePageTemplateForSection", + 10172: ".TPSOS.ReapplyPageTemplateCommandArchive", + 10173: ".TP.SectionsAppNativeObjectArchive", + 10174: ".TP.SectionPasteboardObjectArchive", + 10175: ".TP.MailMergeSettingsArchive", + 11000: ".TSP.PasteboardObject", + 11006: ".TSP.PackageMetadata", + 11007: ".TSP.PasteboardMetadata", + 11008: ".TSP.ObjectContainer", + 11009: ".TSP.ViewStateMetadata", + 11010: ".TSP.ObjectCollection", + 11011: ".TSP.DocumentMetadata", + 11012: ".TSP.SupportMetadata", + 11013: ".TSP.ObjectSerializationMetadata", + 11014: ".TSP.DataMetadata", + 11015: ".TSP.DataMetadataMap", + 11016: ".TSP.LargeNumberArraySegment", + 11017: ".TSP.LargeStringArraySegment", + 11018: ".TSP.LargeLazyObjectArraySegment", + 11019: ".TSP.LargeNumberArray", + 11020: ".TSP.LargeStringArray", + 11021: ".TSP.LargeLazyObjectArray", + 11024: ".TSP.LargeUUIDArraySegment", + 11025: ".TSP.LargeUUIDArray", + 11026: ".TSP.LargeObjectArraySegment", + 11027: ".TSP.LargeObjectArray", +} as {[key: number]: string}; diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..8795d5f --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "ESNext", + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..cfa1ab5 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/types.ts b/types.ts new file mode 100644 index 0000000..d384355 --- /dev/null +++ b/types.ts @@ -0,0 +1,65 @@ +/// + +declare type RawData = Uint8Array | number[]; +interface BinaryRecord { + n?: string; + f: any; + T?: -1 | 1; + p?: number; + r?: number; +} +declare function recordhopper(data: RawData, cb:(val: any, R: BinaryRecord, RT: number)=>void): void; +declare interface ReadableData { + l: number; + read_shift(t: 4): number; + read_shift(t: any): any; +} +declare type ParseFunc = (data: ReadableData, length: number) => T; +declare var parse_XLWideString: ParseFunc; + +declare interface WritableData { + l: number; + write_shift(t: 4, val: number): void; + write_shift(t: number, val: string|number, f?: string): any; +} +declare type WritableRawData = WritableData & RawData; +interface BufArray { + end(): RawData; + next(sz: number): WritableData; + push(buf: RawData): void; +} +declare function buf_array(): BufArray; +declare function write_record(ba: BufArray, type: number, payload?: RawData, length?: number): void; +declare function new_buf(sz: number): RawData & WritableData & ReadableData; + +declare var tagregex: RegExp; +declare var XML_HEADER: string; +declare var RELS: any; +declare function parsexmltag(tag: string, skip_root?: boolean, skip_LC?: boolean): object; +declare function strip_ns(x: string): string; +declare function write_UInt32LE(x: number, o?: WritableData): RawData; +declare function write_XLWideString(data: string, o?: WritableData): RawData; +declare function writeuint16(x: number): RawData; + +declare function utf8read(x: string): string; +declare function utf8write(x: string): string; + +declare function a2s(a: RawData): string; +declare function s2a(s: string): RawData; + +interface ParseXLMetaOptions { + WTF?: number|boolean; +} +interface XLMDT { + name: string; + offsets?: number[]; +} +interface XLMetaRef { + type: string; + index: number; +} +interface XLMeta { + Types: XLMDT[]; + Cell: XLMetaRef[]; + Value: XLMetaRef[]; +} \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..ed31cb3 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,24 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' +import { VitePWA } from "vite-plugin-pwa"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react(), VitePWA({ + registerType: 'autoUpdate', + workbox: { + globPatterns: ['**/*.{js,css,html,ico,png,svg,numbers}', '**/protos'] + }, + manifest: { + icons: [ + { + src: "https://sheetjs.com/favico/favicon-196x196.png", + sizes: "196x196", + type: "image/png", + purpose: "any" + } + ] + } + })], + base: "" +})