From 9979d5f72561cab40567a04dad5fedc753e78492 Mon Sep 17 00:00:00 2001 From: Jean Sirmai Date: Tue, 4 Jun 2024 21:36:05 +0200 Subject: [PATCH] WIP: including > graph_area (from GG client) --- Makefile | 11 +- base.h | 91 +++++++++++++++ callback.d | 3 + callback.o | Bin 0 -> 17520 bytes contain.c | 1 + contain.d | 3 + contain.o | Bin 0 -> 42424 bytes display.d | 3 + display.o | Bin 0 -> 35072 bytes graph_area.c | 323 +++++++++++++++++++++++++++++++++++++++++++++++++++ graph_area.d | 3 + graph_area.h | 314 +++++++++++++++++++++++++++++++++++++++++++++++++ graph_area.o | Bin 0 -> 19928 bytes in_depth.d | 1 + in_depth.o | Bin 0 -> 7192 bytes main.d | 1 + main.o | Bin 0 -> 9336 bytes myprogram | Bin 0 -> 86296 bytes texts.d | 1 + texts.o | Bin 0 -> 5944 bytes tree.d | 1 + tree.o | Bin 0 -> 47616 bytes 22 files changed, 755 insertions(+), 1 deletion(-) create mode 100644 base.h create mode 100644 callback.d create mode 100644 callback.o create mode 100644 contain.d create mode 100644 contain.o create mode 100644 display.d create mode 100644 display.o create mode 100644 graph_area.c create mode 100644 graph_area.d create mode 100644 graph_area.h create mode 100644 graph_area.o create mode 100644 in_depth.d create mode 100644 in_depth.o create mode 100644 main.d create mode 100644 main.o create mode 100755 myprogram create mode 100644 texts.d create mode 100644 texts.o create mode 100644 tree.d create mode 100644 tree.o diff --git a/Makefile b/Makefile index 2288c42..5d1340d 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,21 @@ .PHONY: run clean install all +.DELETE_ON_ERROR: $(BINDIR)/Getting_Started_with_GTK .DEFAULT_GOAL: all +NTHREADS= $(shell nproc) + CC=gcc CFLAGS=`pkg-config --cflags gtk4 gl glib-2.0` LDFLAGS=`pkg-config --libs gtk4 gl glib-2.0` WARNINGS = -Wall -DEBUG = -ggdb -fno-omit-frame-pointer +DEBUG = -ggdb -fno-omit-frame-pointer #-fdiagnostics-color=always -fsanitize=bounds -fstack-check OPTIMIZE = -O3 +INCLUDE= $(shell pkg-config --cflags glib-2.0 libxml-2.0 gtk4) +LIBS= $(shell pkg-config --libs glib-2.0 libxml-2.0 gtk4) -lGL -lGLU -lm -lepoxy -lX11 -lGLEW + +BINDIR=bin +BUILDDIR=build +SRCDIR=src sources = $(shell find . -maxdepth 1 -type f -name "*.c") objects = $(patsubst %.c,%.o,$(sources)) diff --git a/base.h b/base.h new file mode 100644 index 0000000..94ea964 --- /dev/null +++ b/base.h @@ -0,0 +1,91 @@ +/* + * Gem-graph OpenGL experiments + * + * Desc: Base header + * + * Copyright (C) 2023 Arthur Menges + * Copyright (C) 2023 Adrien Bourmault + * + * This file is part of Gem-graph. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//#define G_APPLICATION_DEFAULT_FLAGS 0 + +enum { X_AXIS, Y_AXIS, Z_AXIS, N_AXIS }; // Graphical axis +enum { HOME_MODE, RUN_MODE, EDIT_MODE, PRESENTATION_MODE, N_MODE }; // Gem-graph modes +struct arrow_t { uint load; uint site; uint x; uint y; uint z; }; // describes an arrow +static inline char *read_file(char *filename); + +/* I'm standing on Earth (or any spinning spheroid) and looking towards its North pole, then : + X - X = EAST - WEST = rouge - cyan + Y - Y = ZENITH - NADIR = vert - magenta (fuschia) + Z - Z = NORTH - SOUTH = bleu - jaune */ + +#define EAST 0 // + x rouge +#define WEST 1 // - x cyan +#define ZENITH 2 // + y vert +#define NADIR 3 // - y magenta +#define SOUTH 4 // + z bleu +#define NORTH 5 // - z jaune + + +/* + * char *read_file(char *filename) reads a file from filename into a provided buffer + * + * @param filename, file name + * contents, target ptr + * + * @return void + */ +static inline char *read_file(char *filename) +{ + int fd; + int filesize; + char *contents; + + fd = open(filename, O_RDONLY); + if(fd < 0) { + printf("Couldn't read file: %s\n",filename); + return NULL; + } + + filesize = lseek(fd, 0, SEEK_END) + 1 ; + contents = g_malloc(filesize * sizeof(char)); + assert (contents); + + lseek(fd, 0, SEEK_SET); + read(fd,contents,filesize); + + contents[filesize-1] = '\0'; + + close(fd); + + return contents; +} + diff --git a/callback.d b/callback.d new file mode 100644 index 0000000..79a723e --- /dev/null +++ b/callback.d @@ -0,0 +1,3 @@ +callback.o: callback.c tree.h \ + /gnu/store/fkmpkdav2zmz1k72989bdgpdrfac7rz1-glib-2.78.0/include/glib-2.0/glib.h \ + display.h contain.h texts.h in_depth.h diff --git a/callback.o b/callback.o new file mode 100644 index 0000000000000000000000000000000000000000..b0ee77b632644b393c46aeabbbe45f6cc2db552f GIT binary patch literal 17520 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 literal 0 HcmV?d00001 diff --git a/contain.c b/contain.c index 4e4a193..dfbbb1c 100644 --- a/contain.c +++ b/contain.c @@ -134,6 +134,7 @@ GtkWidget *get_SPACE_VIEW_box(){ GtkBox *middle_box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2)); gtk_box_append (middle_box, GTK_WIDGET (get_image_ALL_SPACE())); +////////////////////////// gtk_box_append (middle_box, GTK_WIDGET (get_GLArea())); gtk_box_append (middle_box, GTK_WIDGET (gtk_separator_new (GTK_ORIENTATION_VERTICAL))); gtk_box_append (middle_box, GTK_WIDGET (right_box)); return GTK_WIDGET (middle_box); diff --git a/contain.d b/contain.d new file mode 100644 index 0000000..80faf3a --- /dev/null +++ b/contain.d @@ -0,0 +1,3 @@ +contain.o: contain.c tree.h \ + /gnu/store/fkmpkdav2zmz1k72989bdgpdrfac7rz1-glib-2.78.0/include/glib-2.0/glib.h \ + display.h contain.h texts.h callback.h diff --git a/contain.o b/contain.o new file mode 100644 index 0000000000000000000000000000000000000000..b275591a6ad0ab5ff4832380dd28b14a00ac1162 GIT binary patch literal 42424 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%0DOu#&Yr_7 z;e0NF|8I_82QCi}V6gV)16SwxGvJ0CF9SY_;~#*}5CMWpS{4H#i;u$B~B|w}A0e#Q86R<3$~(XZL-7BTg-Xpns)RCHbWBP(B-YE5zxt zEf9Zu#HoG-=sR(I8E_TEsgFFwsew54*#`Q49N!FlAaK_28^Onn<9mU-ar`*&0FIvr zzKrA7fN$eCdrmZs9ZERvGcdxF!`-wCEAhtsp?r1KG{TtzNgT<_n+|xf?g9i>z4@F&lqrgIu(#ImgA2=KZ)bvupe;cIJ+M14P1(NHX|?g zd*hLuevUM)RUn8(oc8-2;Hx;E1AHBD=0A#7Ldp(~PXL~ZI8DuXv05OwggBMX0{vT# z2Lb<$IQ4M`pVsP<2^P<4&=2MKCg9@{r#_zG{; z8uafz#A%+{_ZALuoc+$-an7H8Kk6dKr$N2>h|3UvxVTOzh*KYSe`gZM_k)i&;?$=vdC?M#IQ3!IueNhM4}4A`PJM<^6H+cBPJKRr zzJlXlfd4|A`i!O~q_pZId8ab!(}n&aMHe{hcUw3gFy{DK&|7i52>3LPKL8&uj`xt3 z)H|2sOdrMZP2jVZ<7~Wb->o_B*X-IKC9(xx#V!d;hfD;rLNHs7ZOwaebO> zQp!2bzUT7=ILp68O@8wh1`N$VwQd1EojESPh)9;Ja$Fho>KyL`ydQ8@FWjyYj6xhz zAP&g_ahd}7cp`A*I1Dp^JI8gzF64SS$Blt+0M6R04smYbIQ@NnT2eS}2z(#MhXFs% z@d?0FIc^U8EO3?|2T8SpJdV2oe~ma;h?i6$PV*K3dKpd01ofwRhFL)y#Hs!tiA*qn z<1xU;b36gKH^+|yU&8S;;2Stz4EzLe)-UY1pT==#X!Iq{rxtv!BYi8v;BgE=eiOV9 z@s>m%2L3NN&c6Ru&hh1-ujKeL;2(jr{{0GZw&*9BVEqDEpolo_7ilUWr8~#vfNOEQ z6L4dWS4wOI)*NTw*I2~yOjEM zdOMD10e9s19pFa5e1bC7E4+3ih2YCHklTApPGS1Ia&@)F%JV#KRZny#hi91_cKO34=o-pl+eJ1{iDs5ORp_GWA-nJR`4$eqb7t)~?T;5NSaH{&VCpCzc|1U$D2 z@`g7UMh)`=$Q1SbKV4s!tV=!Fag9uhOFGowpR16?&#*C3|84yecz&N<|B<*#v~-%S zPd_(^rCGRx<^t^~w!}33qu)oz`4*hnS z1xj?Zu=OQ#lFuuDTmLxRA7RhcF+IP2G+Dq^A(pc1xjJk`c;~eX3IALBl{ZUPVC&QN z(^RthS^L)!#(UB=FRIbMjn}^5yXUv-nRDM(fvM3&=Dri!>zf$M8ubK}^QlOpl{~TVJQYWPNsAkj(vi{X1-Z zCV=^=Mi?E}aJZlnaoGv$v;JqCwV%!Z zCKJ??Uq27lpUExY*Z)S={agRVCrN791Oe0jqmLM}^;!S@t!}!e&LH}iJYNAjW~!Gb pFMj>jgz@`6f&{JL#9yE5e?EV7H}kjkHMdh2@|$Pe3f!#Ve*x(mTuJ}{ literal 0 HcmV?d00001 diff --git a/display.d b/display.d new file mode 100644 index 0000000..35b0d59 --- /dev/null +++ b/display.d @@ -0,0 +1,3 @@ +display.o: display.c tree.h \ + /gnu/store/fkmpkdav2zmz1k72989bdgpdrfac7rz1-glib-2.78.0/include/glib-2.0/glib.h \ + display.h contain.h texts.h diff --git a/display.o b/display.o new file mode 100644 index 0000000000000000000000000000000000000000..5c92f89bca03ba13e280c3a3bab1d9f9ace4af25 GIT binary patch literal 35072 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 + * + * This file is part of Gem-graph. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +#include +#include +#include + +#include "base.h" +//#include "ui.h" +//#include "graphics.h" + +struct stack_index_t { + long stack_id; + void *container_widget; + void *gl_area; +}; + +static struct stack_index_t *stack_index = NULL; +size_t stack_index_size = 0; + + +/* + * Look for stack entry and returns stack_id + * + * @params container_widget, generally the GtkBox that contains the GLArea + * + * @returns stack_id + */ +long ui_get_graphic_stack(void *container_widget) +{ + // look for stack_index entry + for (int i = 0; i < stack_index_size; i++) { + if (stack_index[i].container_widget == (void *)container_widget) { + return stack_index[i].stack_id; + } + } + return -1; +} + +/* + * Look for stack entry and returns stack_id + * + * @params container_widget, generally the GtkBox that contains the GLArea + * + * @returns stack_id + */ +long ui_is_graphic_stack_ready(void *container_widget) +{ + // look for stack_index entry + for (int i = 0; i < stack_index_size; i++) { + if (stack_index[i].container_widget == (void *)container_widget) { + return stack_index[i].stack_id; + } + } + return -1; +} + +/* + * Look for stack entry and initializes OpenGL for it + * + * @params container_widget, generally the GtkBox that contains the GLArea + * + * @returns bool, true if success + */ +bool ui_init_graphic_stack(void *container_widget, GError *error_buffer) +{ + //g_printerr("[debug] ui_init_graphic_stack()\n"); + + //g_printerr("[debug] ui_init_graphic_stack() : target is %p\n", container_widget); + + // look for stack_index entry + for (int i = 0; i < stack_index_size; i++) { + //g_printerr("[debug] ui_init_graphic_stack() : i is %d\n", i); + //g_printerr("[debug] ui_init_graphic_stack() : target would be %p\n", + //stack_index[i].container_widget); + if (stack_index[i].container_widget == (void *)container_widget) { +////////////////////////// stack_index[i].stack_id = graphics_init(&error_buffer); + //g_printerr("[debug] ui_init_graphic_stack() : stack_id is %d\n", + //stack_index[i].stack_id); + if (stack_index[i].stack_id >= 0) + return true; + else + return false; + } + } + return false; +} + +/* + * Look for stack entry and shutdowns OpenGL for it + * + * @params container_widget, generally the GtkBox that contains the GLArea + * + * @returns bool, true if success + */ +bool ui_shutdown_graphic_stack(void *container_widget, GError *error_buffer) +{ + // look for stack_index entry + for (int i = 0; i < stack_index_size; i++) { + if (stack_index[i].container_widget == (void *)container_widget) { +////////////////////////// if (graphics_shutdown(stack_index[i].stack_id, +////////////////////////// &error_buffer) == false) { +////////////////////////// return false; +////////////////////////// } + stack_index[i].stack_id = 0; + return true; + } + } + return false; +} + + +void ui_clean_stack_index(void) +{ + // look for stack_index entry + for (int i = 0; i < stack_index_size; i++) { + stack_index[i].stack_id = 0; + } + return; +} + +/* + * Look for stack entry and triggers OpenGL for drawing + * + * @params container_widget, generally the GtkBox that contains the GLArea + * + * @returns bool, true if success + */ +bool ui_render_stack(GtkWidget *container_widget) +{ + // look for stack_index entry + for (int i = 0; i < stack_index_size; i++) { + if (stack_index[i].container_widget == (void *)container_widget) { +////////////////////////// graphics_draw(stack_index[i].stack_id); + return true; + } + } + return false; +} + +/* + * Look for stack entry and triggers OpenGL for drawing + * + * @params container_widget, generally the GtkBox that contains the GLArea + * + * @returns bool, true if success + */ +bool ui_update_axis_stack(GtkWidget *container_widget, int axis, int value) +{ + // look for stack_index entry + for (int i = 0; i < stack_index_size; i++) { + if (stack_index[i].container_widget == (void *)container_widget) { +////////////////////////// graphic_stack[stack_index[i].stack_id].rotation_angles[axis] = value; + gtk_widget_queue_draw((GtkWidget*)(stack_index[i].gl_area)); + return true; + } + } + return false; +} + +/* + * Look for every stack entry and shutdowns OpenGL for it + * + * @params void + * + * @returns bool, true if success + */ +void ui_shutdown_all_graphic_stacks(void) +{ + // look for stack_index entry + for (int i = 0; i < stack_index_size; i++) { +////////////////////////// graphics_shutdown(stack_index[i].stack_id, NULL); + } + return; +} + +/* + * Creates a slider widget + * + * @params axis, meaning which axis we're building (for label) + * + * @returns GtkWidget*, pointer to the new widget + */ +GtkWidget *create_axis_slider(int axis) +{ + GtkWidget *box, *label, *slider; + GtkAdjustment *adj; + const char *text; + + box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + + switch (axis) { + case X_AXIS: + text = "X"; + break; + + case Y_AXIS: + text = "Y"; + break; + + case Z_AXIS: + text = "Z"; + break; + + default: + g_assert_not_reached(); + } + + label = gtk_label_new(text); + gtk_box_append(GTK_BOX(box), label); + gtk_widget_set_visible (label, TRUE); + + adj = gtk_adjustment_new(0.0, 0.0, 360.0, 1.0, 12.0, 0.0); +////////////////////////// g_signal_connect(adj, "value-changed", +////////////////////////// G_CALLBACK(on_axis_value_change), +////////////////////////// (gpointer) label); + slider = gtk_scale_new(GTK_ORIENTATION_HORIZONTAL, adj); + gtk_box_append(GTK_BOX(box), slider); + gtk_widget_set_hexpand(slider, TRUE); + gtk_widget_set_visible (slider, TRUE); + + gtk_widget_set_visible (box, TRUE); + + return box; +} + +/* + * Creates GLArea and indexes it + * + * @params target_mode, meaning which ui_stack we're on + * target_widget, meaning the box that will host the GLArea + * + * @returns bool, true if success + */ +bool ui_setup_glarea(int target_mode, GtkWidget *target_widget) +{ + GtkWidget *gl_area; + + ////g_printerr("[debug] ui_setup_glarea()\n"); + + assert(target_widget); + + ////g_printerr("[debug] ui_setup_glarea() : target is %p\n", target_widget); + + if (stack_index == NULL) { + stack_index = g_malloc(sizeof(struct stack_index_t)); + stack_index_size = 1; + } else { + // look for stack_index entry + for (int i = 0; i < stack_index_size; i++) { + if (stack_index[i].container_widget == (void *)target_widget) { + return false; + } + } + // create entry + stack_index = + g_realloc(stack_index, + ++stack_index_size * sizeof(struct stack_index_t)); + } + + gl_area = GTK_WIDGET(gtk_gl_area_new()); + assert(gl_area); + + //gtk_widget_set_size_request(gl_area, 1000, 1000); + gtk_gl_area_set_auto_render(GTK_GL_AREA(gl_area), true); + gtk_widget_set_hexpand(gl_area, TRUE); + gtk_widget_set_vexpand(gl_area, TRUE); + //gtk_widget_set_halign(gl_area, GTK_ALIGN_CENTER); + //gtk_widget_set_valign(gl_area, GTK_ALIGN_CENTER); + + // The main "draw" call for GtkGLArea +////////////////////////// g_signal_connect(GTK_GL_AREA(gl_area), +////////////////////////// "render", +////////////////////////// G_CALLBACK(on_glarea_render), NULL); + +////////////////////////// g_signal_connect(gl_area, +////////////////////////// "realize", +////////////////////////// G_CALLBACK(on_glarea_realize), NULL); + +////////////////////////// g_signal_connect(gl_area, +////////////////////////// "unrealize", +////////////////////////// G_CALLBACK(on_glarea_unrealize), NULL); + + stack_index[stack_index_size-1].container_widget = + (void*)target_widget; + + stack_index[stack_index_size-1].gl_area = (void*)gl_area; + + ////g_printerr("[debug] ui_setup_glarea() : set target to %p\n", target_widget); + + ////g_printerr("[debug] ui_setup_glarea() : stack_index (@0x%p) had %ld elements\n", + //stack_index, + //stack_index_size); + + gtk_box_append(GTK_BOX(target_widget), gl_area); + gtk_widget_set_visible (GTK_WIDGET (gl_area), TRUE); + + // Create sliders + for(int i = 0; i < N_AXIS; i++) + gtk_box_append(GTK_BOX(target_widget), create_axis_slider(i)); + + return true; +} diff --git a/graph_area.d b/graph_area.d new file mode 100644 index 0000000..682843f --- /dev/null +++ b/graph_area.d @@ -0,0 +1,3 @@ +graph_area.o: graph_area.c \ + /gnu/store/fkmpkdav2zmz1k72989bdgpdrfac7rz1-glib-2.78.0/include/glib-2.0/glib.h \ + base.h diff --git a/graph_area.h b/graph_area.h new file mode 100644 index 0000000..8d622ee --- /dev/null +++ b/graph_area.h @@ -0,0 +1,314 @@ +/* + * Gem-graph OpenGL experiments + * + * Desc: OpenGL utils header + * + * Copyright (C) 2023 Arthur Menges + * Copyright (C) 2023 Adrien Bourmault + * Copyright (C) 2023 Jean Sirmai + * + * This file is part of Gem-graph. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +#pragma once +#include "base.h" +#include +#include +#include +#include +#include +#include + +#define VERTEX_SHADER_FILE "src/graphics/shaders/shader.vert" +#define FRAG_SHADER_FILE "src/graphics/shaders/shader.frag" +#define GL_TARGET_MAJOR_VERSION 0 +#define GL_TARGET_MINOR_VERSION 4 + +/* + * Structure describing a gl_area and its parameters, used to create a table + * of Gem-graph client current gl_areas + */ +struct graphic_stack_t { + + int id; + int mode; + + float rotation_angles[N_AXIS]; // Rotation angles on each axis + + GLuint vao; // init_buffers + GLuint position_buffer; // shutdown, draw + GLuint color_buffer; // shutdown, draw + GLuint program; // shutdown, init_shaders, draw + GLuint m; // init_shaders, draw + GLuint v; // init_shaders, draw + GLuint p; // init_shaders, draw + + struct arrow_t *arrows_ptr; + long arrows_nb; + + GLfloat *buffer_vertex_origin; + GLfloat *buffer_colors_origin; + GLuint *buffer_lines_origin; + GLuint *buffer_plans_origin; + + long buffer_vertex_size; + long buffer_colors_size; + long buffer_lines_size; + long buffer_plans_size; + + long buffer_vertex_0_arrow; + long buffer_colors_0_arrow; + long buffer_lines_0_arrow; + long buffer_plans_0_arrow; +}; + +/* + * Dynamic array of ptrs to dynamically allocated gl_area_entry + */ +extern struct graphic_stack_t *graphic_stack; + +/* + * Initializes a gl_area + * + * @param gl_area, ptr to the gl_area widget + * + * @return true if initialized + */ +int graphics_init(void *error_buffer); + +/* + * Draws the current buffer to a gl_area + * + * @param gl_area, ptr to the gl_area widget + * + * @return void + */ +void graphics_draw(const int stack_id); + +/* + * Shutdowns a gl_area + * + * @param gl_area, ptr to the gl_area widget + * + * @return true if success + */ +bool graphics_shutdown(const int stack_id, void *error_buffer); + +/* + * Initializes the shaders of a gl_area and link them to a program + * + * @param gl_area, ptr to the gl_area widget + * + * @return true if initialized + */ +bool graphics_init_shaders(const int stack_id); + +/* Initializes the buffer of a gl_area + * Calls according to the user preferences + * @param gl_area, ptr to the gl_area widget + * @return void + */ +void graphics_init_buffers(const int stack_id); + +/* + * Draws a vertex (x, y, z) + * if (console) prints (x, y, z) values to console + * + * @param GLfloat x, GLfloat y, GLfloat z + * + * @return void + */ +void graphics_draw_vertex (const int stack_id, + GLfloat x, + GLfloat y, + GLfloat z); + +/* + * Draws the color (r, g, b) associated to a vertex + * if (console) prints (r, g, b) values to console + * + * @param GLfloat r, GLfloat g, GLfloat b + * + * @return void + */ +void graphics_draw_color (const int stack_id, GLfloat r, GLfloat g, GLfloat b); + +/* + * Writes values to describe a line from a to b into the line buffer + * + * @param coords GLuint (a,b) + * + * @return void + */ +void graphics_draw_line (const int stack_id, GLuint a, GLuint b); + +/* + * Writes values to describe an (a,b,c) plan (triangle) into the plan buffer + * + * @param coords GLuint (a,b,c) + * + * @return void + */ +void graphics_draw_plan (const int stack_id, GLuint a, GLuint b, GLuint c); + +/* + * Created and compile a shader + * + * @param type, shader type + * src, source code of shader + * + * @return shader id + */ +static inline GLuint create_shader(const int stack_id, int type, const char *src) +{ + GLuint shader; + int status; + + shader = glCreateShader(type); + glShaderSource(shader, 1, &src, NULL); + glCompileShader(shader); + + glGetShaderiv(shader, GL_COMPILE_STATUS, &status); + if(status == GL_FALSE) { + int log_len; + char *buffer; + + glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &log_len); + + buffer = g_malloc(log_len + 1); + assert (buffer); + glGetShaderInfoLog(shader, log_len, NULL, buffer); + + g_warning("Compile failure in %s shader:\n%s", + type == GL_VERTEX_SHADER ? "vertex" : "fragment", + buffer); + + g_free(buffer); + + glDeleteShader(shader); + + return 0; + } + + return shader; +} + +static inline void print_stack(int stack_id) +{ + static int n = 0; + + printf("\n[n=%d]***************", n); + + printf("id = %d\tmode = %d\n", + graphic_stack[stack_id].id, + graphic_stack[stack_id].mode); + + printf("rotation_angles = "); + for (int i = 0; i < N_AXIS; i++) { + printf("%f\t", graphic_stack[stack_id].rotation_angles[i]); // Rotation angles on each axis + } + printf("\n"); + + printf("vao = %d\n", graphic_stack[stack_id].vao); + printf("position_buffer = %d\n", graphic_stack[stack_id].position_buffer); + printf("color_buffer = %d\n", graphic_stack[stack_id].color_buffer); + printf("program = %d\n", graphic_stack[stack_id].program); + printf("m = %d\n", graphic_stack[stack_id].m); + printf("v = %d\n", graphic_stack[stack_id].v); + printf("p = %d\n", graphic_stack[stack_id].p); + + printf("arrows_ptr = %p\n", graphic_stack[stack_id].arrows_ptr); + printf("arrows_nb = %ld\n", graphic_stack[stack_id].arrows_nb); + + printf("buffer_vertex_origin = %p\n", graphic_stack[stack_id].buffer_vertex_origin); + printf("buffer_colors_origin = %p\n", graphic_stack[stack_id].buffer_colors_origin); + printf("buffer_lines_origin = %p\n", graphic_stack[stack_id].buffer_lines_origin); + printf("buffer_plans_origin = %p\n", graphic_stack[stack_id].buffer_plans_origin); + + printf("buffer_vertex_size = %ld\n", graphic_stack[stack_id].buffer_vertex_size); + printf("buffer_colors_size = %ld\n", graphic_stack[stack_id].buffer_colors_size); + printf("buffer_lines_size = %ld\n", graphic_stack[stack_id].buffer_lines_size); + printf("buffer_plans_size = %ld\n", graphic_stack[stack_id].buffer_plans_size); + + printf("buffer_vertex_0_arrow = %ld\n", graphic_stack[stack_id].buffer_vertex_0_arrow); + printf("buffer_colors_0_arrow = %ld\n", graphic_stack[stack_id].buffer_colors_0_arrow); + printf("buffer_lines_0_arrow = %ld\n", graphic_stack[stack_id].buffer_lines_0_arrow); + printf("buffer_plans_0_arrow = %ld\n", graphic_stack[stack_id].buffer_plans_0_arrow); + + printf("********************\n"); + n++; +} + + +void graphics_model_setup (const int stack_id); + +int draw_one_arrow_vertex (const int stack_id, + int space_X, + int space_Y, + int space_Z, + int weight, + int site, + int x, + int y, + int z); + +int draw_one_arrow_line(const int stack_id, + int offset_vertex); + +/* + * Writes grid ridges to vertex and color buffers + * + * @param coords long (x,y,z), step_x, step_y, step_z + * + * @return void + */ +int draw_space_ridges_vertex (const int stack_id, + long offset_vertex, + long x, + long y, + long z); + +int draw_space_ridges_lines (const int stack_id); + +/* + * Writes grid lines on space faces + * + * @param coords long (x,y,z) + * + * @return void + */ +long draw_grids_on_space_faces_vertex (const int stack_id, + long x, + long y, + long z); + +long draw_grids_on_space_faces_lines (const int stack_id, + long offset_vertex, + long x, + long y, + long z); + +int set_arrow (int stack_id, + int arrows_nb, + int space_X, + int space_Y, + int space_Z, + int requested_weight, + int site, + int arrow_x, + int arrow_y, + int arrow_z); + diff --git a/graph_area.o b/graph_area.o new file mode 100644 index 0000000000000000000000000000000000000000..714e38b3e4e6a88dd5287eda0b3c091d1ab24a90 GIT binary patch literal 19928 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 literal 0 HcmV?d00001 diff --git a/in_depth.d b/in_depth.d new file mode 100644 index 0000000..cced342 --- /dev/null +++ b/in_depth.d @@ -0,0 +1 @@ +in_depth.o: in_depth.c callback.h diff --git a/in_depth.o b/in_depth.o new file mode 100644 index 0000000000000000000000000000000000000000..f1014eddb4d7aae2a21eaf3d3fac917cd247b6a6 GIT binary patch literal 7192 zcmbuDdpwlc8^GV8aw$wV4a$;BZVghAjZiLKMHJnbVTM`P#yu&Olv`AiS|w4Tlr6

D@7Q9!#72z4pm1YQ=G1_M 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 E2PbXqr~m)} literal 0 HcmV?d00001 diff --git a/myprogram b/myprogram new file mode 100755 index 0000000000000000000000000000000000000000..32366c7361bb069e9e9af2f2d497c749d079b9ab GIT binary patch literal 86296 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%0DON2Nk32lk&d;UT^=_$qPZ* zr~RW?D0!7X^=y-=ze@XDE|}_Iz5Ju{kgPo<-zm@Er-_KQWc=toQcwP~(*Jj2vNTM} F{|j!$J~IFS literal 0 HcmV?d00001 diff --git a/tree.d b/tree.d new file mode 100644 index 0000000..dccd5fb --- /dev/null +++ b/tree.d @@ -0,0 +1 @@ +tree.o: tree.c contain.h texts.h callback.h diff --git a/tree.o b/tree.o new file mode 100644 index 0000000000000000000000000000000000000000..91bb7397d01ae706fddb19ae5a7fca43a52728c3 GIT binary patch literal 47616 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 M6S4So+)X+%Sp9=T#Qhw;fz9IKEwHV;`FY zW`CaU&)>bw{U5~r zy^FPXZx5Yi^09UAgxWPt7j@pv&fj!#Y3{A+tNTUQR&4$$clhg>=k>p9cW7^U`s;0g zNzL>&Rcj07ApPg1f-{6mcW0N!r|!+&I`{7OtbHqW_e`4WKDtA1rC8a57yrc zR&B7Uf~&ZpVwuuPE8%m`>kTE{YYLK%Zk>G2W0CUd1wwNo?ss3;>zAAQi#vsCQ+`Id z%b0F`myrKd7Iq^^<@X;x6*f&mMgDt9WC> z(;lN&jyOG-H*sgi63ctto~#SskTq{$vY3Cr6sHYieHF8%u3mMVJ;CYJultLn+IH42 zN|)XjXM5_lM^VV9#SW9Y%{!Oi>bT-~;KMH^izMf0WhJOPH_i5yEt`MD!|>a|InTR2 zeyksFmsDMm`StY9{DEsXrf=6a-%~egx%rAK$YOy@|!Nl*VfFs*wfrcS;ul#^0}3Y4~>l79x8n6zI}gc zZMTnywmp70q}l%2dZB(21-9*SI!9iVjR>0f=*PwO5fjZ@kK_n`KDnoQ$+elG>({q$ z$cZVPTz0J{AiL+ggr=3zQmaLVe3vK*IHx|cH0@YeL5+?6gB|-<1jz6E@UBH8+fr6u zer@b8v3=oJ3a-^OU3Ky+S$i++`bOD^FDX5$qQ=A@`Kg-pYW)%A-(oV4Yz=Z;Zap7m zVLW8DV(6S=15;t~l2v`r9GTTT_(a2G^*1BElG~0;9@u^?zqn?Vl+Q3Zo#o3@AM09do+UY~B1D) z{HDxzf~|vtRo@KsY{}Iw9%%C|LvMDD(B8KT4~wLjoq6d(21t#9`u!%lm9pM}yU!QL$AGWM|j&GHD zYV^=LTTOF4FV(uekyXBZkMb_;imZB~7bIFB*?6Uwd6uA0;m~@22ljlusC! z7M&TsF^F2sal$*{4!+S z{fV(Qv6;rNrt+sJt|es1+gk2QY2h2A*{#u^-FLj=CSJVy_s*I!$=c;I$w%5PL+1ZH zb=FenK-ji%ib4{Bw`PS$dj!SoT>m98>B8=UCBwW{pPyYh%edJ^v~@6d`Q3Sa-`C#G zX<_>MVWZ1twrT{|T~2BlULVq=xIC?WRn?ozN``d~$xT|D`}s7rFVD8rk(akIdA#jH zQ<=}!`_G+sia&iCEqdud$fALlbpvBkw1h48SMQtUnDooO$-Bw$)AwIPCpzy`?9pL8 zH%GEV`Q6p!&($MioqzlH5eoPy(NdLcr6Jj|U-^Anyy1<4-(}$k^OrdZ-VBeNHD|YF zi;;9&%jg@GI;y>cPhM6GkaF$S-QFw1@#2IkoiB+m+`lecp*~_z;Oh=Ap_|{QDTSW6 zF^0RJ!M&csEh7B?>3_lG?Gjxt^nPbK_wpE7=z8E@tsRXP&le2YFtqL4udo>J*3my~ z%kvjEx?IaJQJ&bpEOF!bi%TxO9@t&R@%p+`PeoUyo!OFIpe8qV;sZ(XT+5w)?`!4m z*u1X|T`t=;WN4eR)CT7fBeg!gbQ5~zn1Ap7qqde6iFa3zyjvyrWr@&QXVWo7PpuOR zgNmG2M=9pt(AYTZy=JVn#_i#^FOTiGcj=I}{S}AR`8;qWJ~6C@u9^tq@SJ?u%XSCM&m;nSE z)sMO6-?iT$9(eon=;_Jr_WKI$J9Zh(ciXP>ZdJDieK|GF*Y^VVe#sAyUoX>bWYplO zNe5Kr`VQ+U65H>aY|m-kzDGSdv`=(Nw=k27quWjL6yA#kj-5Ya;wIalE@xEjX67l` z=`9@~9WuITxXKNoV~d6)s;Qcr^a{4Kxqhr==5?JnR&Q)wmtNhGEmt^hL3*y-2NTVN zUtwd&}7y zek|E2W)h)i^zoMF&Re1xCn|TAU3wcZe!~uR(YEGeo6q)FaT#RS5N$fEa6`GmxswwI zoLtuI(_@Y4$tsr>i*Ig-+&6b_zX8vDAFN+&rJnKFs(VA^%@rnbR_miS&bRn*Leuiz z{H5szgH0D(+s}Ed-#bp4~glRiorH*0@uk}?-;ERsJaT(m8s zW>!a8flr$K3g;EcMY$0M*CzL?-9FvjGRw{G>dEBvJwMED?~Wb$VP2N~!Ib#YfZP4V zo@AKBF2DLdxo-FGGm>Pe;Lpa_|Z#@^cB6at>#*s>=f_>H#D=Xp1c zKFVHy{;|)w%1zOlN%x=FeC{S5aJeKczWBtNT_!;<+cs!^`WU=1ufky3pm~$N-<`g9 z&E%}?q`ds-?K?6ZqO+uK9eKSw;Nxqj#4sJpQz`Zxg8h2BKV&br=>y3cdpWMDxaBEf zG(`AQ%Fy2<8y|}AeW4jMxv$lt1^A9@KK3|_7zRqp_H~Gg6x|-=4;#zUF z$7UuKS|w+{@xN@+;ns6_(nzZf?Uu=vh8+gOZ*7SYjTvY9Hoot%)ems zQ$5zG7{-h{W+QR4@LKEK#Tj!})*QI?#PVrz()!z*R9dH28Qpx+?ML0&88H)kPKwhu zHSF`v(CU|YxuQ+jl~kQ|bDE`VhmTvkXp~pMgcB$4y()53DOuw`Wy7k>ci)`fXvkm5 z>S2<(KX`hQXyv^4<8m`glfFcbkDlVB`|@1V7@z8aaxG3DjXwlTS)kG?6Ogz=r$ zVVA#a+=Am}L+&{|@AiDDkz1pKh2L|nOPYfO`&+KMJ7n58jcGQ!c1f#cKG|J)wpn#S z%Ca`8!-MCYknF#}e&_A^{yyOXYbH5$23_~oN5m%om* zx%Fdj_;?o0LGUwj<^o++|=6524FHSQU-{Xbb4*4m(7l*~mT`L5& zO4YTK8t+dLoY=e0Ol0NqDZ=uXTPzPXrW!sl-SlXhvPE=7QIxMpgV<2(ru~DPcMH6K z_$(wdXJ`2kui9z994D?avz0xhwC8X}qF?WC0$NYvq8{{Unla(t1#=mpCO4yIm$N~q z%_l$KED_Q@XM(KbGb#Tai&D2Y2f7@Q3UFT{kn*CkH6`ljq8+U%(ZNSfv`snr)Ff!) zn=Pk!b@k$V^*tLF9MT+W8l-UJzyURpk6TCCn5LcH*HF38>3QsfzUlKUXMWI_W8ohf zT*K2E(&MLcs#5Ny$8B>KBnuz!_ftCc!Jbde(FevFmDc;ui4O?Z8bx7FDT)m5p zm1@fm3{Cf5Eo0^U(E6bJf={=G6c?uyXJ;+X=zjE4-wPLxU+Q_aBUOFJyootUt0ZFY z)-^P!^sHGB&~#+|wt#`d(w?0E8GYk-ZOn^RJwK0YzGbzC-u@pZ@8n@rQ@Uilu zguC97L0|pHoxS)-ZmDyMbFzTS!c>9S z9T|@_HqQJV-`B38DmG_eu6#kt#N58;o}{e!G&oe@?44JiE-b!%RL8bC+gi&^<4ZlS zQsMGgLD9SA^}ABN+&${9KlQ#I|G22z8L1n$hhCqcC-As%)sj=qYmYeE(kC`a-Z16Lo(Bn>{t-QkS)hz2HT-F^KQ)+{J49^_;_(em6P)?>-fj7kaD;DdfhW_dqlI+7AesY zGv)M+mD;OEpI7tlH8lTG`M_Rl^)BxfKKXIYsnPX&QYIdon7hg=Zo^eq=lb{26S-F} zwl)R+h?o-VrKltAcdGxed<*3^p2_xh!F#+$<9W>nM_YU3j*A~2f41aU^}_kK2iy*i zOSY{aqAnC;y8Pb25t*&r3*jd&J$+MAaqp}0{rNEyGWuNDxZUagru_80LFG>yO#~js zjWj+n$3ba)hyAii(`v7^rtI+dayAY0KDK;YuE&*fle1B46lST68G6K6UH9##gQIfR z^$G6nTcFa{@#prj`)58FcO^c*G9C7oThGGSYb7F^ZDfqG*1oH(;H_x>`;WyP~qTT(}P0x zzF3y>JY8p4x7CI#l2Uf~#c5m)3RJS(tN8p@%7jsAYHh96IiC6VlB7>|w8x&lekuO0 z%ei>%!RHKLCcKT;*4sEYZ*Qbee4Ih)%)|}b7tcM?uO^+q)3L&mGjvhXe+bg@S586L;2YvT7#mOUE6nk!m}@Jd%w>Tj{aUyd}G?3=F!>VGG}|M zrifg7ec*?OiRJNURZGlFv|sURHXcj(Y3lC$d|bR>+6UcX>%N69R_JFo_ff*un)kwE zOA6O^`xG`@yL;xL9^0%VZT2-)@A#;BJ|L^D^g*QayULfZ_3NUK9QN~yYF@4@E3JD+ zqV%`X-m&tlBlk@Wh;g`?_ocY)@$rCI^T|_Js?CZt&bc@5tC*rtRMg-5A;tgmJa@)i zlWo;~O!|^3yY|RVe>s5^;o-hdR?TjDl(i=D=bV%+ zM-y-DTch{1Q0JD};73kYVVduHSSId{5VSsHr<&uTr2ftJjeg0iWqzmqj`>zCet59# zn|pxOZig|W8}shQj#;i)AKQ2LmbP2@r9vk%WZVzES92`&FUybo9sFrZ?WC_)l0#ob zuJSDSq%&CM{G@sB(!~_MXRq`>Vrw{WpnK4dV5P>~=Y!(S4&F`9JK6m6)~XGgd_DHh zR281&csW2{I?%IQQfIm%xN>;87gj4|bIx2+F2to&4Fa8U86v0#A33+cxRnr`mCu1B}kqFkAgm^Jr5cQUDWBX!)8+>85M+xjR&Q^3$ zAKHbl@4|O=;hCJ1{;Rm3Wa007?&me`-+%Rgrwf1Fh5zWndvgcMf8{H6;W}OTqAon7 z3qRO}XLsSZyYPlCyeIeE(SMCgt_$b+a__-awdZ+y*zn)@XXEGN=xsyL#>v*+*V8+Q z=j^-6#xc-~d&4((iicwWAGnX@_}aMoI=Yjy+1R_dx;gNix!?Yt-JSbDgd4xs$Jg7{ z!`a5uZl$BWuMMf{6dw1(-rb9>;m6W#!1?%Q>*eLhy(96@CcORJ9DVqG@||yI>^S4nLPv;P9d^%6I_w?`}T{+nL+LB2i?|Wnh!Oj7HQuuNFq5YW( zA8v4Nj@&%BaY3$J#-IN231q5l{d_$;OQB12X8v^Adf51RFjf4m`nx&?{LQxa_H=V| zbg&8F8uskknZ3j9Mjv!8a;lf7o2z~2UJh_|;O`wy{X6$Kzeko`eO&FhPm=M-r_RVi zZac`;HTTY2{-Q^aTZoey>MjJig*Z7rsjnr-EyT&S8}%fD+(MkZ^h%vvp2EPv-R5FZ2cC- z+4?<G?P7?)+-opCwFgBh1+Jeu+0jPK~e$+pNs=7Bugq5Z?ff_y~zpGR5r5fO26 zs3wpzatpl8ieC@Ag75Hh$RCG`Klfb$oeR0Sg_}4&sDP6U+5@3+jFasifOUQ3Z{grF zL7odf7x{EJfUJ=Zf^n@tehls(I3u@(dOzg7U~m!0J7BwU$mtWnJCF;)#O+4D7`A&D z`6{SCgFG0#7kC9r;&q5tu)E{Oo}`N#rrm&v4{DVcy8& zJ+jaoy1hxr{bBy6BA0{y&5+OTjO7I*r}tCWBKL)H#Ul5CdESZK61JO){3rNnm38+cOicc za(dh@LtY4tu0rkw9)MgGj`MZMX?_B7ap<4E51h^qeLQm<)jx#erzad2w7vkgD~^0J z?3V$^MIdJgax+*Th1>?_e;DsRvBRpj(}tEb3ip#B^3!7yLFU_R)0?VwL7VF^~2law*9MN&jg7FSU9s%`}kh?XDBJ|HwG$=LYoC!Z^t>g8FvkhTsBlT+{h9gLN^+NzOc| z7e{UZF3C9gwHbUE<0Qukd^mDDa3#jcujDxevZymoa@O#b$D4$lJ}%V;$H#*)Q%?>l z^4tVj7BWuqxAT?9TY`Km_zK3^99PCk&LOCGN1h5!pHHKG3c`L2XX;7*1gMW^oaCPa z-;O*Bd@ti{4t?JhJwC5P{V}GV@NV#ci+U`$81jSQ;>h=b)91Ho&N=WQsQwJNBJvV&W#rev$0L6Zu7R9Buc3pS zzTRnooIc-WhFk#dN6kV03$|;GToUS+A@2+Bgj@-HC2|FDALLWP1CVQgha)!!Uys}b zJPw>(+{lpV^?VXjPp+To{f#4xljD=#k3EijDdcA|&gNWToaA^yeI9c9{L2k++NU~P zKip&LN&a%~A6Z^9PV&Pc{|)jm@J7bjoUe?NoOq~jK^_M#0C!O7@t+Ld1Nkm+QE)mg z4H%a!a%FH$7~1k&TG7kE#2VT`&ocyHwNb*28`bX-X=&q~NQf$Jd8 z0XJdtN&hk2Ke8-hob;~<{VYW;5AKLu6WkR!eg4rKoc3P={Y0bsS&$Qp+z31ou8{K(oQ{jUUym#=nR+tM^!2$9jFWk$&y#*e9s>D4 z8E10@;l*is{KP@MF!EUNzQ}ihOCnDMmj^DoG0LEZ)~AkIG<|M4K3Bg#0* z=>^YU^+7HQJ_z|Ba2e$E`EEIIIxY*C=Sj%*!OfA=*Yg%K`K13Vox|b2_4)6(NdF4Z z&r0O7;6BLd`@;f|kB9njaN2)3^tlt&n?U_;)qFef{MFQ%~~0asSBD&N#`Z?EqB9Og`zKKA+~vIN9W2*sc%q zf#4y?$AX6=r|&n20jK?|LI3+uy)NV&L{8sNm4R|*K+bulo{VcS*$}rBF;1c_A^#?F z3-Ei4vpE%vlTtgVuSC8ayat?(cLDU-#MF~~`hN5d#z}+^p)3 zq%;!hrI3e%%Oj`nKT$*;3-v1CbX-edTsp{SgD*nv3vS2clm6-Zt5!2kHn|(N>xZ1a z?ihyrB-BSDPX~_$r~T9C4N_746{tUi{1SL3%AxQ7xY&h1Ksomz=Lzz=;8n<9gTF=o z0{jCw9T$DP|AVO~^K3{8xJ5{!^Cvy7njuFN`6qA*#@U=9jFVCUaw50LA^#0I%E;;K zxMPuvLe6+_I^k8v_C3&?qZocy5|vQ#k6=DcQ{Vl()X>FF;2!s-w*K!`3=Z_#yFc(%{a+<4E43h zAA)}Zr{mRz@&07$NogV+hdl>yE8Iel!#9xA8+jG@K*re|S;k49pP^m>c@y{;U z$bW)Q0;l7m@9Q%~PRDDHoIW4r&g7HmBQOskjFbLF;C&3?$h(8bASZw3iY#%+2Z1Mo z)BfrEU{9cW`hLqyZoy$H4PYP6gx?G4*6zuVGw|7$@V(hn%O#^T1y+&gRrIPIB%+eIxQ);9tS% zcpIS44yK;uzlT11lMhXC3q202Ag3Slm*9gLXLA%7Cw(?Sy%O>d;A+U}=NBd-r|-L( z0#3)(1ml{G{0+D>a&dTEznaM>{R_bJ8{v$T{)OQEG3$|c1CK*44Zaom0PtjR+P@t1 zlZoobKz$bSQQ-L~hrZvpgsCUv>IdU`!Z;b17UVofJ`KEzaWOUYi1^*6C z$Ey$H<-v#X$ni$p!1B*z2lm65xFk4GK^u7NxNd>S|% zml2F>4)UqsuE^>8p?#Qq(!U1GLnPy*|0vk*2ILXo@yK_9Z%4iZd@nfdKM?vngX&K} z{W;`E!3$8%M##C@g}+5Pd5}|wJQw^k@;l()ke7mYfYWg$Lq8(q!ak6@haFPbx!agy@^>eZ1qf=@->0BlBzv$J;Q*$voRY&T!<*z(+IA z=1gRq)^)hR6fJO~L87e!x82Aa4Kao3$H4ER95u+P=)#*(PCn#(N1g}%8~HtO zL7C2e$tv08E%098bX@w-&p@W0%rpI5q9Ws@v3DtH)jTkwrcKIwle9B)aClTsmgztqzTB*zQtXCn6iw?MuId>-;3@I~Ns zT>D{M?#Q=+MGvrdM7|FCIe|PGJQH~$_yusC#kkg7hAH0KcHb)pfctVfEGN>0reg|9qt6O79P z`5W+P^$(D% zfWJgJqhMThOg*7m*uOs*C*#tAoHpcI;Pit?U$$M10M)Z$4g(Y zkz?vfK7Cz&9OI-P?V)fX_v~27CeXAn+yNbX+=Q<77L? z>F23qklR81b|#-tFL>SLAmgO}XxQ!%R4yoaEa;&UEC< zzzrE^b7nJ6ay+1ZE^;^UCCG!oZIB0mJAl)1(bwsMkki)(w;`8==dt%P`J{jPd6^T8 zlm4S%yP3!%z%L-*1)hg|2lx$e+CTk1qGzc71k}GoeiXbO<*329zA*JT!5=3cLnJ8GmK{HNk08Pm#K`CeER-- zZRC}ZZ^Ss8Gly}KL*K7IA9*9>EJNM`Zj1aoxD&VlmrcfH1oOWJ`Bd;7$nC-Rfs_40 z`ri!uD}!;;e|LDF_Zj5$%k6TJ4}$u97Ty-Sc&RYpuP(ENbp9K6At70 z#?+H>?S*l5AI`0C3q1~}L5>LWDd4>sXLANJPUgo9>IWk?23G(V;A*>Z|F%J&W0`uA zPv5^ZopF-C403dlF9A1UoXwfbILV=(e^`KgCFIy34*<7E?g#DyPREr5;|fK-2|N*b z7I-R?Px{Y;{guf$>3qi&fPk|c@x6tD-7jgz5zW_cA`7Q9_$cw>8gVS-nfqo`2^<i@XE+yoP)L)E6V~2Yw%%_TLv?uc<-xqoBSX`3Uf@C`S%*I+%JguJ?ju zRNQxLj_CYJkGCn1(+~M%@PUl8IkJqC`7woh1>`fq$AHuEj)y)qn0k``1Nt;%oa8To z924Z$;By&gbCxhpa_HxCY>>M^jtg=>a5v=i^E|7;>9{7txHceH0pE{&9{4dPpY-3W zJNF;ATwt8^9|8U3ArA$=fqVyeDe?sHa&X!|{r;3%RDTre8u90}w(;8KjUIr5B?oKmP)M1BKY6`YPY68h9+>Pfy*ckVxKF=CwL zKZBfE$Sc6-GtTBLW1QsFL%l8XTJV*~zk+)pZwB`Pr{ju-acx8%41NGPeO>+plTZ4e z4)c)9IO(5$F;hPBcIc-VxdeQE<`!~s@Q2{E|I^TCJ*poG^&gPa&tQh16&Q9j<+28oXXUb{Dm<8CX5Sl zZVfr+$QObyV4TgdVVvZ+K)pS3CvZ39KHy%+>F3b=!0EW2z_>OczX_g({1bQvlTZ40 zhIzx>5!D}t`X=NDz<;8gzT^g%Te>TC z{v@kpTmdjH3C4vu&w-pl$g{zRFwW*EGEQ=epQ> zq8~G>j0B|}kB^cLc+b6oe3_Xe*3r~S`?embN>#){vE(L8P_Dpkw!iNd>G?wjuPV}XC~B-My?M&5uA?K8~W5{>PdbE^l8pG z$zKRLmdLHZ7csScad)fe*#YXPlbNoqxv+c|Ac%$cq_^|4>^66xu&^= z<`;pFLQdbuG6^~TKCC&6!$Syu?lQ*VrBlB9Gv198`u>frjFTKPr(`+KIH{-KV|9;l zcqquPf6F+j9|0Txj9eYOj|%^6f963Od^B_SE`y4oa1|vTUF3ULCZYueY zTa+0mIk%vGEb<%RTFC3c^^m^;pUF7cl)Axkh*Pj(5sjK+&$oa9e|oH*o@!M8Ea=Imjdoc06l@K&OF`u()NjFWkDf%yqU?f@RjIBAi7 zZ)7y%B!_-pIu^M<G3cJZe+BP)4v;Gf_yQ#5#W~j z$Vb9!Tpf;1rJB=OeT+8Vv(POc}_(B3~~-2e+B*>`BvEP0;-+cq4PsO zFF6`H{l25=$m#c%8zG+q{m(7n-vR>Vv!R zC&&*#eQOuK0FDcqe*)@Pcj0%DXG48`7d}&@bH~&C%TQ1Meh&5FXi1p85=O zWydYlA3(iR7k&--8>p}8!e@|RCjTSN@4{~&Z>9Zr;WNel%@>3_lrCL(G4fteU*Cn# z?DcQH6wU9#Zy;BK`r0mhM(=;~HK5+93%`bZ2GrMd;rf04&9{Jhhc2A`emQbcUIO*i zsGhp6_`ms1P;b|TUqQYa>R)%^+I|1c4}^z!nm3!e`6-^t-c#v2X!%e!#6 z8u)X0>Fn;$)8Bs{uTdWkzmR>)rX&h5qL4=w_?x>loZuu}d?8sT? z*}S>G^8G(GZmu4Vw1C?z{gp8J3+X&ndrxvqqlDmY}?Vr#>v~(-H}eh|NBol?yO|r(CbZ_qzk_U!|fLJzVsLPNj`o=u9tOT zo&Knr-1*xmxW7X_9!|CctMp^xJaRot91bt;x6XyWpOCK8pQM&u#&9bn^Z)hy>fCur zCcU2Ke&sK8`*62|GQXCr&^`?5?{r{LSpxGm6a}C%{=EIy{E6sx2GzNA{v`89_7Ocl zeEgYb$r-;FdO~M8kABYj1#J`@mGK<9IDg6D&NHk=XF#hwa=Z9n{eMdDJbx-Y9w7ab zyP)*^wErN^P>cLCPEp|h;L*!}=i2|)`f?}y*Y*=m{d<10eX=X?_BV3&U-L)buXG(9 zSoHjz={z2}p8v1&YbteC7?b9h1)rbXe*9Pe1<*hJ`;DakKHNWgemZ~0I3wFvqbG2` zlO=p~=g-+)Y@g0~Hdppv=f6L$^ZaLMVdv_f?Nh!^&kv{59}(n&#Vz!Coz69wD{h6J z{|@sztsy^m!1-Atzti(kf5H7i9-6VYA>_1OaDIIJplRZNUnt4M=P!Ztll{Xk`23%^ z6aQ=fX`byomoc1~>_76=K=k}{|NYmt$yrvw6_PO=f297uj$d+_LWd|hJ1>0_{|9d} Z8W^6xeq7mqoj)A<|J@n$=YM?u{||$dhhYE! literal 0 HcmV?d00001