Alright, hi guys, welcome. Welcome back to the second part of this live code demonstration where we'll be explaining two types of clustering methods, that being the K-means and the hierarchical clustering. In this half we're going to be running this using RStudios. So hopefully if you have chosen this session that you've read the prerequisite so that you can keep up with this demo. But yeah, just to recap, the code can be found via GitHub link which is currently in the chat. And all that is required is for you to clone that repo into your local computer after you've obviously installed and downloaded the appropriate software. If you haven't been able to do this so far then please feel free to follow the code along via the web link ending in the HTML which again is available in our GitHub repo. But yeah, let's get started. I would just zoom in a bit to make sure we can see the code clearly. But if you've managed to clone this repo correctly then you should be seeing what I'm seeing now which includes an R markdown file for the K-means tutorial and an R markdown file for the hierarchical clustering tutorial. So yeah, as discussed clustering is a technical machine learning that attempts to find clusters of observations within a data set. We are going to be looking at two data sets for the K-means. This includes a data set called the USA arrests and a data set called Iris which was previously run by Louise in our Python tutorial. Before beginning you need to make sure that you have installed and loaded the correct packages. The packages for K-means include cluster R, cluster, facto extra and facto extra. The remaining packages are more related to like data manipulation and data pre-processing. But yeah, let's begin by looking at our USA data set. The USA data set contains statistics in arrests per 100,000 residents for assault, murder and rape in each of the 50 US states in 1973. It also includes the percentage of the population living in urban areas. So the aim of this data set is to see if there's any dependency between the state being inquired and the arrest history. So the first set would just be to read in this data set. I'm currently calling this into a new data frame called DF and I'm using the assignment operator to do so. I've also included an NA.admit so this just makes sure make sure that we remove any missing values in our data set. We can use the head function to explore the data set briefly and as you can see we have our three crime types in our urban population as well as the states are according. So the first step when it comes to running K-means is to scale and standardize your data set. In R this can be done using the scale function under the R base package. So nothing needs to be installed to run this function. Scaling is basically a technique for comparing data that isn't measured in the same way. So this basically means like the normalization of a data set using the mean value and the standard deviation. Scaling is also known as standardizing so these these terms are synonymous but let's go ahead and scale our data set. Once we do this we can then use the head function to see how results are different. So yeah as you can see that the scale function in short basically subtracts the values of each column by the matching center value from the argument. But once we have scaled our data set we can then move on to do some of the analysis. The first part of the analysis involves a distance matrix. Now typically a correlation matrix is used to summarize data as and there are there are a couple reasons why you might want to run a distance matrix before creating a model for your K-means. The first is to summarize the data set by visualizing we can then understand the relationships between each variables. Another reason might be to form some sort of diagnostic for advanced analysis such as a regression model. But in our instance we're just going to be using this for visualization purposes and we can do this by running the getDist function on our data frame and I'm calling this into a new data frame called distance. It is typically advised to create new data frames when running multiple stages of analysis and I think it's just clearer when running a tutorial to see how the data frame changes as we go along. So go ahead and run that line we can then use the fvis dist function to plot this correlation matrix. I've also set some attribute variables so the gradient and the colors and if we run this we'll get an image of a correlation matrix. So yeah the higher the value the higher the association and the lower value is the lower the association and this is just one way to start to explore your data set. But as you can see this is this is an all too clear to read and it can be quite difficult to understand the interpretations and so we can then move on to run our k-means analysis to start to understand the relationships between these variables between these states and start to cluster these these these states into a more confined group. So let's go ahead and run our k-means analysis. So yeah the basic idea behind k-means clustering consists of defining clusters so that the total intra cluster variation also known as within cluster variation is minimized and we can compute this k-means in R with the k-means function. Here we'll group the data set into two clusters. The k-means function also has this argument called n-stop and basically this attempts to apply multiple initial configurations and reports the best ones for us to use. So I'm going to start with a configuration of 25 and a center of two and again assigning this to a new data frame called k2. We can use the str function which allows us to view the cluster in more detail. So if we print these results we'll see we have quite a messy array of quite a messy list of information. So let's just explore k2 on its own and as you can see we have our cluster means for each of our variable types that includes three crime types and the urban population. We also have our clustering vectors within each state and we have information on its standard deviation. Yeah so if we print these results we'll see that the groupings resulted in two clusters sizes of 30 and 20. As you can see apologies as you can see in this function two groupings 30 and 20. We also get the cluster assignment for each observation and yeah this is just one way to explore that. If there are more than two dimensions it's important to know that the f is cluster will perform their principal component analysis and plot the data points according to the first two principal components that explain the majority of the variance. But for now we can just go ahead and start to visualize our data set using the f is cluster function. So we call on our cluster data set which is the k2 and we refer to our original data set as df. So if we run this and run a visualization you can see how our states have been clustered into two clusters. We see that there's a clear distinction there's no overlap and we can see that the variation in the two are similar. You could also use a standard pairwise scatterplot to basically illustrate the clusters compared to the original variables and we can do this using functions from the Dipler package so this is the as tibble sorry. So calling on our original data set we then call on as tibble. We then mutate this so that our state names and clusters have the appropriate names given and then we can use the ggplot to simply run a scatterplot to do so. So let's have a look at how this would look. As you can see it's very similar to what we produce with the k-means plot but we haven't got those nice groups of clusters that were seen before. So this is why someone might choose to run this k-means plot compared to a standard pairwise scatterplot. But nevertheless that brings us to our second data set. So we've briefly explored the open US crime data set but we can move on to look at iris which is a label data set but yeah so the algorithm will cluster the data and we will be able to compare the predictors results with the original results getting the accuracy of the model. So let's just have a look at what would happen if we create a simple ggplot and pointed out variables. So as we can see Satota is going to be clustered easier meanwhile there is noise between vascala and virginica even when they look perfectly clustered. You can see that variation between the two colors blue and green. Yeah so let's move on to start to run that model. So again k-mean is initialized in that base package from r so we don't need to install any packages and in the k-means function it is necessary to set center which is the number of groups as we did before with the crime data set. But in this case we know that this value will be three so let's set that. But in our instance we're going to try and build a model that where we didn't know how many clusters we had and this is because we're dealing with unsupervised data. So the first set would just be to set the seed and this is just a random iteration so that the cluster can work. We call on a new data set called iris cluster we use the k-means function from the base package and this little bit code here basically removes the it selects the columns one to four and excludes column five which is that labeled variable that we don't want. We then set the centers to three and we set our iterations to 20. If you run this code you'll see in your global environment that a new data set has been created called iris cluster so let's have a quick look at that. So again we have our three clusters of sizes 38, 62 and 50. We also have the within summer squares. We can use the table function to basically compare the predicted values to the cluster values as we did before and this brings up this nice little table that gives you a very nice summary. But the next step would be to plot this data so that we can see those clusters a bit more effectively. And here we have a really nice display of our three variables of our three plant types using some attribute variables such as color, shade and labels. I've set these to true to make sure that these represent different colors and as you can see there's still that overlap there's still that variation between our two plant types I've seen before. So the next step would then be to evaluate your model. We're going to be using the elbow plot method to do so so we might not always be known what the exact number of centers are especially when we have an unlabeled data set. Therefore we can use the elbow plot method to examine the centers we defined. I think it's important to recall that the basic idea behind clustering such as k-means is to define clusters so that the total within cluster variation is minimized and this is what the elbow plot tries to examine. So let's have a run of this function here. What this function does is creates a nice elbow plot and this elbow plot indicates wherever there is a bend would be the like optimal number of clusters. So in our case the result suggests that four could be the optimal number of clusters as it appears to be like the bend or the elbow in the plot. I'd also like to just draw attention to another way that you could plot the clusters. You could use the package it's named if I remember correctly fvis underscore and bclust and I'll quickly just write this out because we have a bit of time. So I'm going to call on a new data frame called data frame 2 and again I'm going to call in the iris dataset. Your second step would be to scale this data set. I'm going to use that scale function from the base package. We're going to call on data frame 2 because we have a categorical variable in a dataset. We want this to be removed so you could either select columns one to four as before or you could just simply minus the column that is not relevant to you. First and foremost calling data frame 2 then we can scale our object and then we can use the fvis underscore nbclust function to create a nice plot. We then run the k-means and the method I'm going to be using is the wss method which I think is applies to and then we have that kind of same elbow plot. You could also add a geo underscore vline which is part of the ggplot2 package and I'll just add an x-intercept. We'll add the set 3 and a line type of I'm going to say 2 so it's not too obvious and this basically will be able to add a line straight down where we can see that the optimal number of clusters is indeed 3. But yeah that's our k-means analysis so we're going to move on to the hierarchical clustering so let me just open that up. So yeah let's get started. So as mentioned in our previous sessions there are two approaches to hierarchical clustering which is the algorithm narrative if I've said that right and the divisive. This is known as the bottom up and the top down approach. I think it's important to know that the first is good at identifying small clusters whereas the second is identifying larger clusters. We use the same packages to run k-means and hierarchical clustering methods so this involves cluster r, cluster and factor extra. However there are some additional packages to reduce some of those visualizations including the dendix 10 and the surplies and color space but these are all just kind of attributes of visualizations. So hierarchical clustering can be performed on a data matrix using the function hclust from the cluster package and we're going to be continue looking at the iris data set. So the first step would be to load and prep the data. We've done this before but I'm just going to rerun it again. We can get a quick summary of our data set but we've already seen these with our petal length and petal width as well as those species but this species variable is not appropriate when we are dealing with unsupervised methods so we're going to treat this as an unlabeled data set. It's always good to check for missing values and you can do that using the is.null function. If the iris data set did have missing values then you can simply just admit this like we did for the usa arrest data set. Now I'm going to briefly discuss two different types of methods that result in the same output and same values but I think it's interesting to know that because R has so many packages available to run clustering that I wanted to introduce two concepts that so that you can explore it yourself. But yeah let's start with some basic clustering. Again we need to perform these on just the numeric values so we use that function within the square brackets to select our columns one to four. We're going to be using the function dist basically this function computes and returns the distance matrix computed by using the specified distance measure to compute the distances between the rows of a data matrix. Very confusing apologies but if we go ahead and run this we then basically just have a data matrix that allows us to run hclust so you need to run this step before exploring a data frame. But now we can use the hclust to run that hierarchical clustering. I've also called this into a new data frame called hcluster just for just for a bit of clarity. So if we explore this we'll see that we've used a euclidean distance and there are 150 objects of which we already knew. So I think it's also important to know that the distance can be any type so this could be euclidean this could be Manhattan but hclust automatically uses the euclidean distance. So once we have established our hierarchical clustering we can then go ahead and visualize our data set and yes this is all it takes to run a hierarchical clustering in R so maybe a little bit less complicated than the Python code but I'm going to talk about some of the advantages and disadvantages of using either towards the end of this talk. So let's go ahead and visualize our clusters using a dendrogram. So just to recap a dendrogram is simply a diagram that shows the hierarchical relationship between objects. So your first step would be to basically convert your hierarchical clustering dataset into a dendrogram and we can do this using the az.dendrogram. So I've called on to a new dataset called hcd which just stands for the hierarchical clustering dendrogram called on the az.dendrogram function and group this with our hierarchical clustering. Let's go ahead and run that. So we then need to establish some attributes just to make the plot a little bit better which is what I've done here. So I'm using node par and basically this is just a list of like plotting parameters to use for the nodes and then this list itself contains further attributes like remember lab cx is basically just the numeric values to indicate the point size. You have the pch which stands for the plot character. It's just a standard argument to set the characters that will be plotted in a number of r functions. We have cex which again is just the numeric values indicating the point size and we have our colors. We can then go ahead and plot this using the plot function. I've added a few labels. I've changed a few colors and I've made the image horizontal. So let's see what happens if we run this chunk of quota. So now we have a clustered dendrogram which is similar to what we had seen in the python tutorial. Obviously in this instance the dendrogram is horizontal rather than vertical but you can simply change this if you have a preference by running false instead of true. So now we've got this in the right way up. We can see our defined clusters as three and that has produced our first dendrogram for our iris dataset. So yeah now we're going to move on to our method two which is another way to produce hierarchical clustering and to explore some of the packages and functions that are available in r. So again the first steps always involve removing those categorical variables. I'm calling on a new dataset this time called iris two so we can just have some differences between what we had already worked on and we don't lose anything that we've done. We are then going to store this as a separate data frame called species and if we have a quick look at and there we see the categorical variables have just been added to its own dataset and this means we don't lose any dataset and this could be saved separately. The last step would be to convert your numeric values and add a color palette so that is exactly what I'm going to do and I'm also calling this onto a I probably haven't loaded a package. I think it might be from color space but let's have a look. Yeah there we go. Typical our error is always going to load packages but yeah I've called this into a new dataset and converted the value to numeric and I've also just added a color palette so then when we come to plotting our dataset we have different clusters with different colors. Our next step would be to you could try to plot a scatter plot matrix so before even running any type of analysis again it's recommended to evaluate any variants. Now a scatter plot matrix are the basically useful tool to help visualize the relationship between multiple quantitative variables. You could also use like a parallel coordinates to explore high-dimensional multivariate data but for the sake of simplicity I've stuck with a scatter plot because I do feel like they sometimes are easier to interpret. But yeah to plot a scatter plot you can simply just use the pairs code. We call on our dataset and I adjust for some of the attributes. I'm calling on our species column which is that new dataset we created above and I'm simply going to add some legends to make this plot to make this image a little bit more readable. So we go ahead and run this we can see yeah we can see our differences between the sepal length and sepal width the petal length and the petal width and we see the relationship between the two. We can see that Cytosis species are distinctively different from VersaColor and Virginica and this is because they have a lower petal length and a lower petal width but VersaColor and Virginica cannot easily be separated based on measurements of their sepal and petal width.  So yeah the default hierarchical clustering method in the H-clust package is complete and as we learn in the K-means tutorial we measure this dissimilarity of observations using distance measures so that's that Euclidean distance or the Manhattan distance and in R the Euclidean distance is used by default to measure this dissimilarity between each pair of observations but yeah as we know it's very easy to compute this dissimilarity by using that guess get dysfunction but how do we measure the dissimilarity between two clusters of observations? There are a number of different cluster algorithms or methods known as our linkage methods that have been developed to answer this question. There are, off the top of my head there are five types of methods to measure the distance between clusters. We're going to be looking at three different methods known as the complete, the single and the average. The first is the complete and excuse me, the complete basically computes the maximum distance between the clusters before merging them and it computes all pairwise dissimilarities between element in cluster one and the elements in cluster two and considers the largest value of the dissimilarities. So let's have a go at running a complete hierarchical clustering method on our iris dataset. The first step is to call on that dysfunction that applies that dissimilarity matrix. We can then run our hierarchical clustering method using the complete method and we then need to re-level, I'm just simply re-leveling some of those variables here. We can then apply our dendrogram. We also want to re-order the observations so we can do this using the rotate function and again I've probably forgot to load a package so I'm just going to rerun all of these because I got an error saying that there was no package that existed. There we go. So yeah, I feel like that was from the facto extra package that I felt to load in the beginning, but never mind. We can then move on to color the branches based on the clusters and I'm using the color underscore branch to do so and I'm setting that k means to three. So we can go ahead and run that line. The next step would be to manually match the labels to the real classification of flowers and I'm using the sort levels values to do so. So we can go ahead and run this. The next step with them to be add the flowers to the types of labels and we can then hang the dendrogram which basically just means to separate the values a little bit better so we can see the differences between the nodes in our dendrogram. This next line is simply just reducing the size of the values and our last step and our final step would be to plot these. So if we go ahead and plot these we see that we have our clustered iris dataset. We have a bit of a nicer diagram than we did running it from method one but as you can see we still have our three clusters available. Again if it becomes confusing to read a dendrogram that's horizontal we could simply change this to false so that we have a versical dendrogram and if we run this again it will simply just rotate on its side. I think it's important just to kind of explain how to exactly read a dendrogram because I understand it can be confusing but basically each leaf corresponds to one observation and as we move up the tree observations are similar to each other are combined into branches which are themselves fused at a higher level. So this height of the fusion provided on the vertical axis indicates that the similarity between two observations the higher the height of the fusion the less similar the observations are. So that's just kind of how you interpret a dendrogram. So once you have your dendrogram your next step would then to run some sort of evaluation process on this. Again we're going to be using the elbow plot method to do so. So similar to how we determine optimal clusters with the K-means clusterings we can execute similar approaches for hierarchical clustering. To perform the elbow method you just need to change the second argument in the ffiz underscore mb class function to fun equals hcut so that's just indicating that this is a hierarchical method. And if we run this we'll see we have that similar elbow plot with that bend at our stage number three. So let's just have a look at how we could explore different linkage messages. We talked about the complete method which is the maximum distance but other methods include the single so let's have a look at how the single method would run. The single method is kind of opposite to the complete in that it computes the minimum distance between clusters before merging them. So we can run this whole trunk of code by just pressing the arrow that faces to the right and this will plot our dendrogram for us and as you can see we have a really messy picture right now which would indicate that the single method probably isn't the best to compute the pair-wise similarities between our clusters and this is a typical flaw with the single method it tends to produce long or loose clusters that can be difficult to interpret. But what about the average method? We can go ahead and change this to average just to see how this would look. Now with the average method what we are doing is basically computing the average distance between clusters before merging them so we have the maximum, the minimum and the average which are three different methods and with the average it basically computes all pair-wise the similarities between the elements in cluster one and the elements in cluster two and then considers the average of these similarities as the distance between the two clusters. So let's have a go at just running this trunk of code and changing our method to average and as you can see we have a little bit of a different dendrogram it's a bit more similar to our complete method but you can still see that there are three clusters and that would be our ideal k-means but how would you go about analysing which method is better not just from looking at a dendrogram? Yeah so we can examine which of these basically has the strongest clustering structure or the strongest linkage method. So for the purpose of this I'm going to create an object that groups the three different methods that we tried into a new object called hcluster methods and then basically going to chain them together into a single dendless object which as the name implies can hold a bunch of dendrograms together for the purpose of further analysis. I'm then going to use this sequence which is a for loop I won't explain too much what that does but yeah this basically will allow us to compare those three different methods and now we have a iris dendless which includes the comparison of three methods and what this has done is obtained the coefficients, the core dendless obtains the coefficients and correlation. In this case we're using a coefficient known as the co-connected correlation I believe it's called but you could also use like POI's correlation and this is where you as a researcher have to start questioning what type of research method would be better for your data set but I'm going to go ahead and just use the the default setting for this and here are our correlation statistics for each of our methods which is the single complete in the average and we can simply plot this using a correlation plot so yeah from this figure we can easily see that the most clustering methods yields very similar results except for the complete method which yields a correlation measure of around 0.6 I'd say um and yeah that draws conclusion to our well that's the end of our tutorial for the k-means and the hierarchical clustering I would like to just draw attention to an additional R markdown script that I wrote um I won't be going through it now but if you're interested in understanding how a principal component analysis can work in a bit more detail then you can explore this wholesale customer data set and work through some of this code by yourself it starts by running some pre-processing some descriptive analysis we focus on standardizing the data set we then refit a k-means model so this is exactly what we've done in our previous two scripts we then look at evaluation and then we have uh the PCA at the bottom here I mean I'm not sure we have time to run through this now no not quite but yeah take your time to explore this yourself and have a go at um like running a PCA analysis yourself uh yeah so thanks for listening um I think I'll just summarise with a few points when it comes to hierarchical clustering in that yes clustering can be very useful tool for data analysis in like unsupervised setting however there are a number of issues that arise in before being clustering and I think there are three things that you should probably be concerned or worry about when running this type of model the first would be what dissimilarity measure should be used the second which would be uh what type of linkage should you use so um we had to go exploring three different linkage methods and then we looked at the correlation coefficients between the three to understand which one has the highest variation and then the last step would be like where should we cut the dendrogram in order to obtain clusters so a lot of these questions are can be answered I guess dependent on your your questions as a researcher your your interests your aims your purposes um so yeah each of these like decisions can have a strong impact on the results obtained but there is no right answer to which one you know is right which linkage message could be right for you I think as long as you choose a method that comes with an explanation then and kind of fit your research methods and aims then you should yeah that should be it um and I understand that some of these k-means and hierarchical clusterings can be performed really really quickly and are as you saw but there are many things important to consider not just from attribute placement um but from understanding these like more deeper theoretical questions about what like dissimilarity measure should be used but yeah that's the end of this tutorial there are some references listed in the armot down if you'd like more like information on some of these functions packages but thank you all for listening


Hi everybody, my name is Rune Fiedler. In this presentation I will show you how we have built a post-quantum version of an asynchronous deniable key exchange protocol and how we use this for the signal handshake. This is joint work with Jacqueline Brendel, Felix Günther, Christian Jansson and Dagle Stabila. First let's review the setting of instant messaging. Alice wants to initiate a conversation with Bob. If both of them are online at the same point in time, this is straightforward. However, what do we do if Bob is offline when Alice wants to initiate the conversation? In this case we can use a key server and Bob uploads a so-called pre-key bundle to the key server ahead of time. Then Alice, when she wants to initiate the conversation, queries the key server to get Bob's pre-key bundle. Using this pre-key bundle she can compute her first message and send it to Bob, who can read it whenever he's coming back online. Afterwards, both of them can keep sending messages to each other at their convenience. This feature is called Asynchronicity. Another feature that we want is mutual authentication. That means that each party should be sure that they are actually talking to the party that they think they are talking to. And the third feature that Signal is looking for is called Offline Denyability. Intuitively this means that if you have a transcript of a conversation, then you can deny that you were involved in creating this transcript. But we will go into the details of this more later on. The first few messages, so when they agree on a key, this protocol is called the extended triple Diffie-Hellman protocol or X3DH for short. Then when later on, when both parties keep updating their keys to send new messages, this is called the double ratchet protocol. And let's have a look in more detail at the initial handshake. Here we have again Alice and Bob, and both of them have a long-term key and an ephemera key. In addition, Bob has a semi-static key. And first Bob has transferred his pre-key bundle to Alice via the key server. The pre-key bundle of Bob consists of several Diffie-Hellman public keys, and Alice also has round Diffie-Hellman public keys and pairs them according to these arrows here. So Alice's long-term share goes with Bob's semi-static share, and Alice's ephemera share goes with each of Bob's shares. And then Alice sends her own two Diffie-Hellman shares to Bob so that Bob can compute the same Diffie-Hellman shared keys. This protocol, however, is not post-quantum, because it relies on the Diffie-Hellman assumption, which does not hold against quantum adversaries. So we can see that signal consists of two protocols. First the initial handshake, extended triple Diffie-Hellman, which is not post-quantum. And then there's the double-ratchet protocol, which can be replaced with a post-quantum alternative, for example, from key encapsulation mechanisms. This was shown by Alvernet Al at EuroCrypt 2019. And in this talk, we will focus on replacing the initial handshake with a quantum secure version. Key encapsulation mechanisms have been used as a post-quantum replacement for the Diffie-Hellman key exchange in several scenarios. So let's review chems to see if they fit for our purpose here as well. Bob has a key pair and sends his public key over to Alice. Alice then encapsulates against Bob's public key, resulting in a ciphertext and a session key. She sends the ciphertext over to Bob, who can de-capsulate the ciphertext by using his own secret key to learn the session key. Now both parties know the secret session key. How can we use this to construct a post-quantum version of Signal? We could try the following. Bob has three chem key pairs, a long-term semi-static and ephemera key pair. He sends over all of his public keys to Alice, and Alice encapsulates against each of Bob's public keys. She sends over the three resulting ciphertexts to Bob. The problem with this protocol is that there is no Alice to Bob authentication. And Bob doesn't know if this really came from Alice or if this was actually sent by Charlie. To remedy this, we could add a signature so that Alice signs the three ciphertexts. Now Bob can be sure that this message actually came from Alice, however Alice can no longer deny her involvement in this session, because only Alice herself can compute this signature. Though the idea of using chems for a post-quantum replacement of Signal has been around for a bit. Previously, Brandled Al have proposed to replace the initial handshake with a primitive they called split chems. However, this primitive turned out to be not instantiable. But let's follow the design idea from the previous slide of using chems in combination with some form of deniable authentication. And in this work, we use designated verifier signatures for deniable authentication. Separately, Hashimoto et al have used ring signatures for the same purpose. So how do designated verifier signatures work? Alice sends a message M to Bob in a manner that Bob can be sure this message was sent by Alice, however he cannot prove this fact to anybody else. So what Alice does is she can sign a message M with her own secret key and designates it to Bob by including Bob's public key into the signing algorithm. And this results in an Alice to Bob signature. Similarly, Bob can use the simulation algorithm to create a Alice to Bob signature by using his own secret key as well as Alice's public key. And DVS schemes also have a property called source hiding which tell you that for each attacker it is indistinguishable if a signature was created using the sign algorithm or the simulate or the simulate algorithm, even if the attacker knows both secret keys. There are some post quantum DVS instantiations which were not published in the mainstream cryptographic literature. So we believe they are in need of some more scrutiny. Instead we propose to build post quantum DVS schemes from two user ring signatures and we show in our paper how to do this. With this we have the advantage that we can make use of the big literature on post quantum ring signature schemes. After we have published our work there was an update to their work by Hashimoto et al. We show that you can build a two user ring signature from a DVS scheme. So it turns out two user ring signatures and DVS schemes are actually equivalent for some security notions. Now that we are equipped with a tool for deniable authentication, let's have a look at the core idea of our asynchronous deniable authenticated key exchange protocol. Both Alice and Bob have a DVS key in their long term key. And Bob also has a chem key in his long term key and ephemera key. It begins with Bob transferring his public key over to Alice. And now Alice can encapsulate against Bob's long term chem key and against Bob's ephemera chem key, resulting in two different chem ciphertexts. Next Alice can sign these two chem ciphertexts with a DVS scheme, resulting in an Alice to Bob signature over these two chem ciphertexts. With this we have Alice to Bob authentication while retaining deniability for Alice. Hashimoto et al. use the same principle in their protocol, however they are using a ring signature instead of a DVS scheme. As promised, now let's have a more detailed look at deniability. The signal specification says that the initial handshake protocol doesn't give either Alice or Bob publishable cryptographic proof of the contents of the communication or the fact that they communicate it at all. In other words, if there is a third party and this third party has access to private keys from Alice or Bob and this third party has access to a communication transcript that appears to be between Alice and Bob, then this transcript can only have been created by some party who has the legitimate private keys from Alice or Bob. And we have formalized this informal requirement in the following way. So if we want to have a transcript, there's two ways to get this transcript. The first way is Alice executes the protocol as specified on the previous slide by using the Iran algorithm and her own secret key. This results in a transcript and a session key. The second case is Bob uses a different algorithm which we call the fake algorithm. This fake algorithm takes Bob's secret key and adds the results in a transcript and a session key. And now the third party comes into play because the third party should not be able to distinguish if the run or the fake algorithm was used to create this transcript and session key and even if this third party has access to the private keys of both parties. This is the deniability definition that we introduce and let me point out that there is some design space to this deniability definition. In particular, does the fake algorithm require the secret key of Bob or can you run it with public data? Another option to modify this definition would be does the judge get all of the secret keys or does it have to decide based only on public inputs? And thirdly, is the judge allowed to interact with the participants during the protocol execution or does the judge only learn a transcript afterwards? There is a deniability definition which goes back to D. Raymond from 2006. And compared to their definition, our definition is weaker in the sense that our fake algorithm requires the secret key of Bob. However, our definition is stronger in the sense that our judge gets access to all of the secret keys. And we believe this to be very important to model the case of, for example, a legal judge which is able to subpoena you into giving up your secret keys, or if the judge is an ancient state adversary that can infiltrate your smartphone and thereby learn your secret keys. So all in all, these two deniability notions are incomparable, however, we believe ours to be more suitable for the use case at hand. And another downside of the definition by D. Raymond, is that proofs for their definition require some form of knowledge assumptions in all of the cases that are known to us. So for all the proofs that we know of. Let me also point out that there is some concurrent work by Dobson and Galbraith from last year. And they have lifted the extended triple Diffie-Hellman protocol to the setting of super singular isogenes. So they follow the same blueprint, but they rely on isogenic problems instead of the Diffie-Hellman problem. With this, they retain the same properties, but in addition, they get the quantum resistance which we were looking for. And there's also our full construction. So what you've seen previously was only the core idea, and our full construction is called SPQR, which is short for signal in a post-quantum regime. The full construction includes semi-static keys to model the case where ephemeral keys, which are provided by the key server, run out. Also, we secure our protocol against randomness exposure by the use of a twisted PRF. We prove the security of our protocol in a security model analogous to the original signal analyzers from Konkorn et al. And we also prove deniability of our protocol with respect to our definition. Let's compare the different constructions for the initial handshake protocol. So the first one is X3DH, which relies on the Diffie-Hellman key exchange and is therefore not post-quantum secure. It was recently shown to be deniable with respect to the definition of the Ramanu et al. And we also conjecture it to be deniable with respect to strong judges, so our definition. And it covers the full scope of what we expect. That means it covers real-world setting in which ephemeral keys may run out and where you need semi-static keys to cover for that. Then there are two protocols suggested by Hashimoto et al. Relying on cams and ring signatures. The first one is post-quantum secure, but not deniable with respect to the definition of the Ramanu et al. To remedy that, they added non-interactive zero-knowledge proofs on top to get this deniability. And we also conjecture both of them to be deniable with respect to strong judges, our definition, which is however not proven. Though both of them are not full scope. Then there's our construction, SPQR, which uses key encapsulation mechanisms and designated verifier signatures. It is post-quantum and deniable against strong judges, but not against the definition of the Ramanu et al with the weak judges. Though it is full scope. And both the constructions by Hashimoto et al, as well as our SPQR, are generic constructions, which you can instantiate with different cams and ring signatures, nizics and TVS schemes, relying on different problems. However, this is not the case for the last scheme, SIX3DH, which is hard-coded to use SIDH key exchange. Therefore it is post-quantum and also deniable with respect to the definition of the Ramanu et al and full scope. And we conjecture it to be deniable against strong judges as well. But it's not a generic construction. All in all, we are very happy to see that there's many people working towards making signal post-quantum. And our contribution to that is our protocol SPQR, which is a post-quantum replacement for the initial handshake from key encapsulation mechanisms and designated verifier signatures. Along the way, we have introduced a new definition of deniability with strong judges, which our protocol fulfills, and we have shown that you can build TVS from ring signatures. And then using a post-quantum replacement for the initial handshake, such as our SPQR protocol, and a double ratchet replacement, such as the one using key encapsulation mechanisms from Alvan et al, these two in combination can be used to build a post-quantum alternative of signal. Thank you very much for your attention, and please check out our full paper on e-print.


Here, Director Owen, Director Aizant Gonzalez and Director Lanier. Here. All right. Thank you very much. We have a quorum. We do have a quorum. That is noted. So we can proceed as the Board of Directors. So move on to item number two, which is oral communications. Is there anybody here from the public who would like to address us during this time? Seeing none, we can move on to any consideration of late additions to the agenda, addition to deletions. Are there any of those? Seeing none, we can move on to the consent agenda, which consists of items four, five, six, and seven. Item four is to approve the minutes of our last regular meeting of April 22nd. Number five is to approve the minutes of our special meeting of May 10th, which was to approve our contract with the county and the city. Item six is to accept the finance committee recommendation to accept the April 2019 financial reports. And item seven is to do the same for the May financial reports. Do we have any discussion on the consent agenda? I have a question on the consent agenda for April 22nd. Number 10, summaries from board retreat subcommittees. It says Chair Mezraz reported that the first equipment lease period. Oh. And reported on the first equipment lease? I think that makes sense. Yeah. Or else we have to make it long and describe the whole lease. Something, yeah. Yeah. I think it was just something. We reported on it. We completed or finalized it. We reported on it, yeah. Okay. So we need to add the word on. I think replace that with on. Replace that with on. Okay. Thank you for catching that. Yeah. That was my only. Oh, excellent. Okay. Oh, yeah, I see that. And were there any other questions, comments? Would our finance committee like to chair like to comment on the? No, I mean, that's the way we've been doing. We're still ahead financially as you'll see in the minutes. The last two months are a little slow, but I got a note in Becca's report. We leased it off it.  But overall we're pretty much ahead and Tom keeps a very good spreadsheet. So we're watching things. So other than that, I think there really isn't too much more to report. There's a lot of detail in here. If anybody has any specific questions, I'll be glad to answer it. If not that ends in the comments I might have. So it's the capital budget part of the. Part of the consent agenda that. Yeah, both of them. Okay. I did have a one question on 7400 on the capital budget. Line 7400. There's a big. Is it in April? This would be April. Line 7400. Yeah. Facility lease. Yes. I was just curious. A big difference between March and April of, you know, 80% or something. Oh, what happened is somebody. That kind of was what happened in that particular month. Okay. And then if you see the next one, you'll see us drop down a little because some of the offices came out. But that was due to an advanced payment and the way it was booked. And then one other thing on the balance. Oh, wait 7400. You're talking about the, that's the expenditures. That's what we pay. Yeah. That's our lease payments. Right. So. So she did two payments in one month. Is that right? March and April? Yeah, that's probably. What, what are some, a couple of improvements or something like that? I wouldn't be a lease. Doesn't that fall under the lease? Could. Okay. Yeah. In case what would you think that was? That's my guess is I know there was a discussion about some lease improvements that we pay for. Yeah. Yes. So we talked about it a couple of meetings ago and we approved that of us for improvements. And you had another question. Yeah. And then on the balance sheet, it looks like we put $200,000 in savings from April to May. First in April, I think we had 848,000 in checking, which just seems like a lot. And about a hundred thousand in savings. And then the next month it went down. And I was just wondering if that's what happened and if, do we normally keep that much in checking? Okay. I see you're right here. That's line 1075, 1075. Let's go to the next one. Yeah. Tom, I didn't do too good in the last answer. Why don't you try it? And then in May. Yeah. The checking drops down some and savings goes up, which, you know, makes sense. Is the cash flow sense that we don't? No. Yeah, I think it was moved. I think the money was moved from, to finally closed out one of the accounts. You like me to tell you? We have some clarification from our chair emeritus. I didn't turn on the mic. Let me turn on the mic. Okay. Why don't you call for a bit? Answer the question. Yes. Okay. I'm going to call the chair emeritus, Keith Gujra please. So the first one you asked about the expenditure. Yeah. And that expenditure, I believe was reconciling the triple net from the previous year. That's what Matilda was saying. The approved spending the money to reconcile the triple net from the previous year. And then the second one was about. Just savings and checking. We closed out an account that had been a community area and moved it over into our. Okay. That's kind of what I thought. I wondered except that it's the, it's still a, it's listed on the line as still the same thing. Maybe that just needs to be corrected. Vice chair, Randy, do you have a question? Yeah. I, Keith, don't go away because I need to have a repeat of the beginning because I didn't get it. For the minutes. For the minutes. You need what? So that line 74 about the facility leads. Sit down. 7400 have a seat. I didn't see lights every time. It was the one. The difference in the lease improvements. Right. Facility. Right. And that's the improvements were part of the triple net because of the facilitation. Was that like security system and air conditioning or something like that? There was some air conditioning. There were landscaping. There was the garbage taken back with them. From the other side, people could steal from it. So that was a wall, an enclosure. Yeah. So those are all improvements? Well, I don't think I want to comment. Okay. Okay. But isn't that what we talked about a couple months ago? Yes. And we approved that, right? Yes. Yeah. So I think that's what I'm going to say in a minute. So that was based on... I don't mean to magnetically, but... No, no. No, this is good. It stimulates a little brain cells to remember what we actually talked about. Actually, you can... If you go between the two on your second question, you can see the money moving. It's just the banks are still the same because you go from 848, and the other one is 300. So... The community credit union accounts are all... They're zero now. They're zero now. Yeah. I think it was just moved from the checking to the savings. Yeah. Yeah. To get an extra... To get a 0.23% interest or something like that. No, that's right. I remember that. She mentioned that they were giving a pretty good rate, but that was for the CD, and then they moved into the CD for that. Yeah. There's a spot to it. Okay. Thank you very much. You can stay if you want to. No. I agree on that. Were there any other questions, comments? That's it. Okay. Well, I'll entertain a motion on the consent agenda. Well, I would move that we approve the consent agenda. With the minutes... As corrected. As specified. Yeah. On that changing tip. On for item number 10 for the April 22nd minutes. Great. We have a motion from Director Lanier. Is there a second? Second. We have a second from Director O'Driscoll. I'll call the vote. All those in favor, please say aye. Aye. Any opposed or abstentions? Yes. Hearing none, that carries unanimously. Okay. So I think we will skip item 8, which is the oral part of the executive director, unless somebody wants to... Does anybody have a good... We'll just move to item number 9, which is to adopt the... Or adopt or accept, I said adopt. Recommended mission and vision statements from the ad hoc strategic planning committee. And rather than add them as separate documents since they were fairly brief. I just included them in the agenda. So the mission statement is community television, community television provides tools, training and programming to foster dialogue, civic engagement and self-expression through television, the internet, and other digital media. And the vision statement, which is one, two, three, four, five, six, seven, eight words. Did I count that right? Is to empower our community to thrive in a digital world. Do we have any comments or questions on that? The one thing I would just say for clarification on the mission, it is... The only change is adding the words provides tools, training and programming to... Right. So all the rest of that is our existing mission statement. Which is on our homepage of the community TV website. And I don't know any comments or questions on that. Yes? I like the vision statement, it's to the point. Eight points. In terms of providing tools, training and programming on the mission statement, I think that's probably a good idea. I mean, it seems to focus, you know, laser in on exactly what we're doing rather than, you know, being more general in terms of running retreats for people out in the woods to help them empower their self-expression. And I think that was the thing, you know, the strategic planning and planning when they came up with that. Great. Okay. Any further comments or questions? Seeing none. All right. I'll entertain a motion to... Move approval. All right. We have a motion from Director Manheim. Is there a second? I'll second it. All right. A second from Director Lanier. All those in favor, please say aye. Aye. Any opposed? All right. Carries unanimously. All right. Seeing our Executive Director, Dr. has arrived. We can move back. One, two, item number eight. Are you prepared or should we... Good to go. All right. Good to go. All right. Hardly even breathing heavily. She had plenty of time to rehearse in the car. I'm glad you made it. Thank you for... Thank you. Sorry to keep you waiting. No worries. It's the summer. It is. You could have biked in like Dr. Lanier and probably... Faster. Oh, we have two bicycles. I have a flat tire. Otherwise, I would have been... I'll likely... Okay. Well, I've got a report for you that actually spans two months since we didn't meet in May. But it is... Well, here it is. The co-working center was just under profit by a couple hundred dollars in both May and June. And I looked back at previous... Well, the previous year. The first year, we really can't count that because we started in April. So the second year, we did make more and we were in profit in May and June. So I'm not certain... The interesting thing is we have more members but we have... And we're filling up the cafe space and the offices are down. So we actually have more people coming in but they're paying less money. So it's good and bad. I think it'll level out and I'm looking at just data points to see if there's anything we can do or if it'll just mellow out on its own. I'll keep you posted. We are still in profit for the year, though, because we did really well at the beginning of the year. So we are not under... We are where we should be beyond where we expected. Question. When you say in profit, you're saying over our lease costs or are you talking about our projected budget? Our projected budget. We're over what we expected to make this year. And this is the end of the year. So this is... June, this is it. And we made more than we projected. So that is good. And it could have been better, but we still made more than we expected. So we covered our expenses this year, which is what we strive to do. We filled an office this month, so that will make things better next month. And next month we start over. So we have a clean slate now. We did a ton of meetings that we usually do at this time of year. We did... I approximated because I was waiting for final numbers, but I can tell you that we did 19 in May and 24 in June. So that's tons of meetings. And also most of the... Like half of those are captioned, so that's good for us. For a while, CTV was providing services to CMAP while we were losing a key person. And Victor's been doing most of that work. Some of it's been done by Lynn. And so we're handing it back. We had a meeting and handed over everything. So CMAP has a really good person in charge, a really experienced person, so knows the lingo, really understood what was to be done and had been doing it in Oregon for about 10 years. So it was good. And they're stable. And we earned a little bit of money doing that work for them. And Victor is really happy to hand it over. He's been doing an excellent job of bringing things... Some things were not up to speed to begin with. He corrected a lot of things that should have been happening that weren't and then maintained things over time. And was really good about just checking in on the new guy and making sure he wasn't missing anything and he caught some things. So Victor's been really great. And I'm really happy with the work that he has done on this project. And it was nice of him to do it, as it was extra, for sure. Under equipment and facilities, we did our annual insurance review in May. We do it every year.  But we added a couple of policies this year. Last year we did a huge thing. We changed over, we changed companies, we changed brokers. We got better insurance in a couple of areas where we were lacking. And this year we've added two extra things. One is they're both cyber policies. And one is to protect us from third-party exposure. So if we're working with another party and they get access to our data and something happens to it once they have it, if they don't have, we have really high security. And so, and we don't keep much online. We don't keep anything online here. Our stuff all goes through this big, very, very secure vault, the most secure. But just in case someone else has it and then something could happen, we have a little insurance for that. Well, we have a lot of insurance for that, just in case. Because we keep a lot of, we don't keep anything, but it passes through. And then we also got an extra bit of protection for our employee data, because we don't put, like, I have a file cabinet. Everything about our employee is in there and it's locked. And it's in a locked room. But we do payroll on QuickBooks. So some information is someplace and it's not stored and it's only partial numbers, but it makes me worry. So we've got special insurance for that, should any of their data be compromised. On the building, we are waiting for fiber still. There is, we got apparently PG&E reviewed our permit and found that part of it was okey-dokey, and part of it wasn't. So they started the approval process again on the part that they didn't like. So now it looks like September. And I don't, I don't know if we have any clout to get into. Anyone can intercede or anything. We just get reports from, there is somebody there at Comcast who's very good about updating me every month, but they've never get anywhere. So it's Comcast or AT&T? It's Comcast. So who's our permit with? Well, the permit Comcast is trying to get is with PG&E. To be on their poles. Yeah. So they join to stream the fiber on their poles. Yeah. It's probably the corner of where it is. So they have to get here. And that's probably the deal. So then PG&E reviewed it and said part was OK, but part was not for whatever reason. Yeah, for whatever reason. And it's taken them months to review that part. We should have had this in January. So we've been, that's what they promised. So we signed up, like, wait, why should it not October? And they said, oh, January. And now it's June. So we're, it's PG&E, I guess, is the bottleneck. And I don't think there's anything we can do about that. But I'll just keep it posted. We'll keep trying. Maybe we could beg on air. Yes, we could. We could do a whole, we could invite them in. Perhaps an interview. How you get a permit. Now is this through what they call the joint pole committee or is it just PG&E? Well, they haven't revealed to me exactly who's reviewing it. I just get a little chart. And it says permit, permit, no permit. Did they say what part was good and what part was bad? They didn't tell me I could ask. Why don't you just add a curiosity? OK. But am I right that this is Comcast's application with PG&E, not any application we've filed? No, we're not doing anything. We've wanted to get fiber from them. They're just trying to get surface through Comcast. Comcast needs to do that. I guess we are the first to do this in this area. So they didn't, they weren't prepared. They couldn't just hook us up. They didn't have the wherewithal. If we could make a case that it's a public safety issue, then we could get the sheriff to go down and have a word with them, at least. So this fiber is coming from Comcast. It's not like Cruzeo's. No, Cruzeo doesn't come across the river. Otherwise, we would have gone with them. But they don't go this side of the river. So that's why Comcast. It's sad, but true. So under communications, we did. We were doing First Fridays. And people are really enjoying them. And the artists really like this. And Ian's done a really good job of coordinating these things. We had one in May and one in June. And they've been well attended. And we're really happy with what comes out of those. Mostly we just get a lot of different people that we wouldn't normally have them by. And they get to see the RSVP. And they also get to play around with virtual reality in here. So they get to see the studio, even though they're not coming here to do television, but it kind of sparks their imagination. They can see the lights and the cameras are here. So it is a fun thing for us. And we see lots of people. Ian does a great job. And that's my report. Not going on in the summer. Thank you, Becca. Any further comments, questions? No, I'm just very happy to hear that. When people come to see TV, they see the light. Yeah, absolutely. Thanks to learn. Yeah, I'm for the live. All right, fantastic. Well, we'll move on then to back to item number 10. I don't know if we have much to report. Some of these are board retreat subcommittees. Has there been any further in the libraries? Anybody else? I keep every time I run into somebody involved with a venue, I keep trying to sell them on our thing, but I think I need to start aiming higher. You know, I spoke to somebody at Cabrillo College who manages the SAP with the venue, and they're like, we have no budget. So I think I need to start trying to talk to some direct, you know, some of the trustees at Cabrillo College, if they start, you know, shaking the tree that I'm sure some money won't. Yeah, we're perfect if they don't have a budget. We can help them with that. I tried to sell them on that, but I'm not as persuasive as you are. I think at some point, I know one of the board members, we can invite a couple of the board members to come. I think that would be about as high as you can get in the new president. I have no, I mean, I've just seen him. He seems very personable, and it seems to be eager to do different things. So it's kind of a different attitude there, but I'll talk, I'll see one of the board members later in the week and chat with him. Yeah, I think it's the same, because they have this beautiful, beautiful facility there, and, you know, no video. No, that's embossing. All right, well, so if that's all we have for that, we can move on to the item number 11, which is the All Report from the Voluntary Advisory Committee. I want to go back to the subcommittees, because remember, one of the committees was doing the RSVP. Oh, yes. Do we have some? I am successful. Oh, it has been, okay, please. Love that. All right, that's our shining success. Oh, absolutely. And Keith Gussier worked really hard on that, and I remember that one of the engineers from the new radio station, KSQD, came by. She just fell off her chair all of a sudden. She just thought it was so amazing. Excellent. So, you know, it's, and our director, who is doing the directing right now, Linda Genakos, she loves it. She's done already interviews with people for her program, and she just can't get enough of it. Fantastic. Without having to get six different crew members together into the studio. We've had producers use it for short interviews, too, for their shows, and they were really, they said, one said it was the easiest production he ever did. Wow. Really thrilled with it, and he said, who built this for you? Like, it's a little, it's electrical engineer. All right, very qualified individual, yes. With an MBA. That is good. A big success out of our last year's work retreat. So, with many hours, and we came up with the idea, and many hours of sweat, equity put in by... Mostly Keith. Keith, yes. Great. Well, who knows? Maybe we can expand that and start setting them up in CVS pharmacies around the town. Get your prescription filled, and... We can video take your blood pressure test. All right. Anything else under item number 10? Okay. All right, so we can move on. Our number of hats, the chair of our back is sitting next to me here. Would you have anything to report? Mm-hmm, I will. So, we had a studio kind of class, and one of our students is here on camera three. A couple of them have done that. As you know, people take the class, but we don't want to say, okay, you take the class now, you need to know everything. So, they get to what we call shadow, which actually means they're on the camera, and somebody else is right there next to them in case they have any questions. And so, actually this last cycle, this last class, really got us a couple of really good people that already done their shadowing, and they're ready for producers to use on their show. So, I'm happy with that. But you know, hopefully when our strategic plan is done, we're going to put some more emphasis on getting volunteer leaders and expand on what we're doing, because right now it's funneled into a few people, and you can't overload the same people the whole time. But other than that, one of our producers is now producing two programs, and he's doing both voices from the Village and his own program, BTS, and seems to be very happy with that, and Manning, you know, two crews and two different people, and all at the same night. So, I was there, and it was quite a success. I thought it was very well done. So- So, they were back-to-back productions? Yeah, they did back-to-back productions. On one evening from five to, you know, maybe started at six, and at seven o'clock it was live for the second program. It was very interesting to see, and I'm glad that both programs continue to be strong programs for us. Fantastic. So, other than that, we will be doing some more classes in the next few months. Excellent. Great, well, thank you very much. You're welcome. All right, so that was item number 11. Let's move on to item 12. Oh, and of course- Yes? We talked about the PSA. The PSA Day? Yeah, we just had a very successful one on Friday. Oh, nice.  It's a great sport for our non-profits in Santa Cruz. Santa Cruz County to come, pay a little bit of money, and get this great- High-quality PSA. That is on our channels, and then also people use it- Online. Yeah. Quick question. It's easy to have ideas, because somebody else always does the work, but I wonder at our next meeting, if a couple of the PSAs, we couldn't put them up just to show people, because if they, by some chance, watch our meeting, it kind of reinforces the message. I mean, me talking is great, but I don't think it has the impact to some of what we're doing. I'd love to see some. I think that's an excellent- Yeah, just a thought. I agree, yeah, very good. All right, well, item number 12 is the oral report of the board chair. Past couple of months was focusing mostly on facilitating, getting our contract signed, a lot of back and forth, and Becca, great work on that. I appreciate Director Mannheim for doing his fine wordsmithing and editing, and we have a contract. It's a two-year- Four? Four-year contract, right? Or a three-year with a one-year extension, or something like that, or- I mean, some four years, as far as I understand it. So we'll have to worry about it for a while, and it seems like everybody's happy. That's the longest contract we've had in a long time. I think it's a real vote of confidence. Yeah, yeah. Kind of just the volunteers and the staff and everybody here. We're all working hard trying to make something work. Right? So I guess the next order of business for me would be to organize a board retreat in August if folks are gonna be around, and we can get together. I was dreaming of a Silamar or Fortune Forty, but I can't afford that, so we have a new end profit. How about on the, not the O'Neill, but the Chardonnay, the Chardonnay? We have a board, can we rent that for a day? No. If it's possible to use your clubhouse again, maybe. Yeah, I think that sounds quite nice. We can bring some cookies and bagels. That's not in August, because there's not a lot of people around Santa Cruz in August and maybe it's thinking October and kind of people are re-acquaining themselves with their. After the summer. After the summer. And you got the September. I just thought. Well, the retreat is just with board members. Yeah, I know, but people can be places too. I don't know. Well, you're gonna poll, so you'll see what you find. Yeah. Well, we'll figure it out. We don't have to do it right now. I will mention that I'm on vacation. Hopefully, I actually haven't had it approved yet by my day job employers, but I have reservations. Our next board meeting. So Vice Chair Rand has agreed to chair. Without reservation. Without reservation. But, and hopefully I'll come back refreshed and with lots of energy, we're ready to go and further our mission here as much as I can. So that's my report. We can move on unless anybody has any questions or comments on that. We can move on to item number 13, which is board members, staff requests for specific items to appear on the next meeting agenda. We have a request for some PSAs to be displayed. Also, I think the strategic plan. Oh, right. We'll be coming back. Okay. We'll be ready to bring it back next month. Sorry. We won't be there. Oh no. We can't delay it, but we actually are meeting, I guess this Friday to hopefully finalize it. Well, if I'm somewhere with internet access, I can watch the meeting online and. During your vacation. Yeah, yeah, yeah. Well, traveling abroad. We'll make it a short meeting. I'll be happy to watch it. But yeah, that sounds great. I'll be happy to add that to the agenda. And perhaps just a quick heads up to the board members. Our hope is that everybody will actually have a chance before the meeting to read through it and go over it. There's been a lot of work put into it, both by the board members around the committee, as well as a couple of export members who are on the committee. So, and I think good progress. Excellent. You would like a good review. So we have a lively conversation. Yes. And great new ideas. Okay, good. And if I can make a suggestion, I think a really attractive cover to the report. To two of my own horn names. I was thinking of a half hour PowerPoint presentation. Oh, okay. There we go. With videos. I thought you were gonna do some song and dance. Top hat, hails, yes. Musical number, okay. Well, we'll look forward to seeing the strategic plan that has been labored over for these months and it's finally ready for delivery and rearing and. Close to nine months, but not quite. We can start the college fund now. Great, so that is our number 13. We'll move on to item number 14, which is announcements. If the board has no, anybody have announcements? Okay, I would like to thank our all volunteer crew tonight who have made this telecast possible, cablecast. It's Phil Harmonic, Patrick Delaney, our newest camera person, Richard Ducell, Karen Scott, Linda Janakis and Keith Gudger. Thank you all very much for being here tonight. So we do have item number 15, which is a closed session. The topic is property negotiations. We're gonna end the live cablecast here. And if we have anything to report at the closed session, that'll be in our minutes for the next meeting, correct? So we'll just do it in a German right now? I don't know, we have to move to closed session, right? And then we'll adjourn after that. So I will thank our crew and say good night to any of our audience who are watching. Thank you very much.